@kirbydesign/designsystem 11.4.0 → 11.4.2

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 (142) hide show
  1. package/action-group/index.d.ts.map +1 -1
  2. package/badge/index.d.ts.map +1 -1
  3. package/button/index.d.ts.map +1 -1
  4. package/calendar/index.d.ts.map +1 -1
  5. package/card/index.d.ts.map +1 -1
  6. package/chart/index.d.ts.map +1 -1
  7. package/config/index.d.ts.map +1 -1
  8. package/dropdown/index.d.ts +2 -2
  9. package/dropdown/index.d.ts.map +1 -1
  10. package/fesm2022/kirbydesign-designsystem-accordion.mjs +10 -10
  11. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  12. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  13. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  14. package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
  15. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  16. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  17. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  18. package/fesm2022/kirbydesign-designsystem-button.mjs +3 -3
  19. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  20. package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
  21. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  22. package/fesm2022/kirbydesign-designsystem-card.mjs +16 -16
  23. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  24. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  25. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  26. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
  27. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  28. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  30. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  32. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +16 -14
  34. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
  36. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +3 -3
  38. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  40. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-form-field.mjs +29 -29
  42. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
  44. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
  46. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  47. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  48. package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
  49. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  50. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  51. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  52. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  53. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  54. package/fesm2022/kirbydesign-designsystem-item.mjs +20 -12
  55. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  56. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  57. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  58. package/fesm2022/kirbydesign-designsystem-list.mjs +42 -42
  59. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  60. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  61. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  62. package/fesm2022/kirbydesign-designsystem-menu.mjs +16 -9
  63. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-modal.mjs +42 -42
  65. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-page.mjs +40 -40
  67. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  68. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  69. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  70. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  71. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  72. package/fesm2022/kirbydesign-designsystem-radio.mjs +15 -15
  73. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  74. package/fesm2022/kirbydesign-designsystem-range.mjs +8 -5
  75. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  76. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +4 -4
  77. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  78. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  79. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  80. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  81. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  82. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  83. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  84. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  85. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  86. package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
  87. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  88. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +3 -3
  89. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  90. package/fesm2022/kirbydesign-designsystem-slide.mjs +13 -13
  91. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  92. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  93. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  94. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +10 -10
  95. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  96. package/fesm2022/kirbydesign-designsystem-tabs.mjs +13 -13
  97. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  98. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  99. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  100. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  101. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  102. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  103. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  104. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  105. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  106. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  107. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  108. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +8 -7
  109. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  110. package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -4
  111. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  112. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  113. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  114. package/fesm2022/kirbydesign-designsystem.mjs +32 -29
  115. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  116. package/flag/index.d.ts.map +1 -1
  117. package/form-field/index.d.ts.map +1 -1
  118. package/icon/index.d.ts.map +1 -1
  119. package/index.d.ts +3 -1
  120. package/index.d.ts.map +1 -1
  121. package/item/index.d.ts +6 -3
  122. package/item/index.d.ts.map +1 -1
  123. package/item-sliding/index.d.ts.map +1 -1
  124. package/list/index.d.ts.map +1 -1
  125. package/menu/index.d.ts +4 -3
  126. package/menu/index.d.ts.map +1 -1
  127. package/modal/index.d.ts.map +1 -1
  128. package/package.json +2 -2
  129. package/page/index.d.ts.map +1 -1
  130. package/radio/index.d.ts +2 -2
  131. package/radio/index.d.ts.map +1 -1
  132. package/range/index.d.ts +3 -2
  133. package/range/index.d.ts.map +1 -1
  134. package/shared/floating/index.d.ts.map +1 -1
  135. package/shared/index.d.ts.map +1 -1
  136. package/slide/index.d.ts.map +1 -1
  137. package/testing/index.d.ts.map +1 -1
  138. package/testing-base/index.d.ts.map +1 -1
  139. package/toast/index.d.ts.map +1 -1
  140. package/toggle/index.d.ts.map +1 -1
  141. package/toggle-button/index.d.ts.map +1 -1
  142. package/types/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-chart.mjs","sources":["../tmp-esm2022/chart/shared/charts.types.js","../tmp-esm2022/chart/shared/chart-js-service/annotations.delegate.js","../tmp-esm2022/chart/shared/chart-config-service/configs/global-defaults.config.js","../tmp-esm2022/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.js","../tmp-esm2022/chart/shared/chart-js-service/configured-chart-js.js","../tmp-esm2022/chart/shared/chart-config-service/configs/annotations.config.js","../tmp-esm2022/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.js","../tmp-esm2022/chart/shared/chart-config-service/configs/type.config.js","../tmp-esm2022/chart/shared/chart-config-service/chart-config.service.js","../tmp-esm2022/chart/shared/chart-js-service/chart-js.service.js","../tmp-esm2022/chart/shared/chart-js-service/test-utils.js","../tmp-esm2022/chart/shared/base-chart/base-chart.component.js","../tmp-esm2022/chart/chart/chart.component.js","../tmp-esm2022/chart/stock-chart/stock-chart-js.service.js","../tmp-esm2022/chart/stock-chart/stock-chart.component.js","../tmp-esm2022/chart/charts.module.js","../tmp-esm2022/chart/chart-config/chart-base-config.js","../tmp-esm2022/chart/chart-config/chart-bar-config/chart-bar-config.js","../tmp-esm2022/chart/chart-config/chart-stock-config/data-label-position/data-label-position.js","../tmp-esm2022/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.js","../tmp-esm2022/chart/chart-config/chart-stock-config/chart-stock-config.js","../tmp-esm2022/chart/kirbydesign-designsystem-chart.js"],"sourcesContent":["export function isNumberArray(value) {\n return Array.isArray(value) && value.every((item) => typeof item === 'number');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2hhcnQvc3JjL3NoYXJlZC9jaGFydHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JBLE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCBhcyBDaGFydEpTRGF0YXNldCwgQ2hhcnRUeXBlIGFzIENoYXJ0SlNUeXBlLCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5cbmV4cG9ydCB0eXBlIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyA9IG51bWJlcltdW107XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZSA9ICdjb2x1bW4nIHwgJ2JhcicgfCAnbGluZScgfCAnc3RvY2snO1xuXG5leHBvcnQgdHlwZSBDaGFydFR5cGVDb25maWcgPSB7IHR5cGU6IENoYXJ0SlNUeXBlOyBvcHRpb25zPzogQ2hhcnRPcHRpb25zIH07XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZXNDb25maWcgPSB7XG4gIFtrZXkgaW4gQ2hhcnRUeXBlXTogQ2hhcnRUeXBlQ29uZmlnO1xufTtcbmV4cG9ydCB0eXBlIENoYXJ0TGFiZWwgPSBzdHJpbmcgfCBzdHJpbmdbXTsgLy8gU3RyaW5nW10gYWxsb3dzIGZvciBtdWx0aS1saW5lIGxhYmVsc1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFMYWJlbE9wdGlvbnMgPSB7XG4gIHNob3dNaW4/OiBib29sZWFuO1xuICBzaG93TWF4PzogYm9vbGVhbjtcbiAgc2hvd0N1cnJlbnQ/OiBib29sZWFuO1xuICBsb2NhbGU/OiBDaGFydExvY2FsZTtcbiAgdmFsdWVTdWZmaXg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFydExvY2FsZSA9ICdkYS1ESycgfCAnZW4tVVMnO1xuXG4vKiBcbiAga2lyYnlPcHRpb25zLmlzU3RvY2tDaGFydCBpcyBhIGhhY2t5IHNvbHV0aW9uIHRvIHRoaXMgaXNzdWU6IFxuICBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8xOTY3IFxuKi9cbmV4cG9ydCB0eXBlIENoYXJ0RGF0YXNldCA9IHtcbiAga2lyYnlPcHRpb25zPzogeyBoaWdobGlnaHRlZEVsZW1lbnRzPzogbnVtYmVyW107IGlzU3RvY2tDaGFydD86IGJvb2xlYW4gfTtcbn0gJiBDaGFydEpTRGF0YXNldDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyQXJyYXkodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlcltdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpO1xufVxuIl19","import { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nexport class AnnotationsDelegate {\n constructor(chartConfigService) {\n this.chartConfigService = chartConfigService;\n }\n applyDefaultsToAnnotations(annotations) {\n return annotations.map((annotation) => {\n const annotationTypeDefaults = this.chartConfigService.getAnnotationDefaults(annotation.type);\n return mergeDeepAll(annotationTypeDefaults, annotation);\n });\n }\n createAnnotationPluginOptionsObject(annotations) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n return {\n plugins: {\n annotation: {\n annotations: annotationsWithDefaults,\n },\n },\n };\n }\n getExistingChartAnnotations(chart) {\n const annotations = chart.options.plugins?.annotation?.annotations;\n /* In browser chart.js might return annotations as a Proxy object; force it to be an array.\n Each annotationOption in the resulting array will also be a Proxy object.\n But internally chart.js will just work with them as normal values */\n if (annotations !== undefined) {\n return Object.keys(annotations).map((key) => annotations[key]);\n }\n else {\n return [];\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuZGVsZWdhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvc2hhcmVkL2NoYXJ0LWpzLXNlcnZpY2UvYW5ub3RhdGlvbnMuZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTWpFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFBRyxDQUFDO0lBRXZELDBCQUEwQixDQUFDLFdBQWdDO1FBQ2hFLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RixPQUFPLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQ0FBbUMsQ0FBQyxXQUFnQztRQUN6RSxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RSxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsdUJBQXVCO2lCQUNyQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSwyQkFBMkIsQ0FBQyxLQUFZO1FBQzdDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7UUFDbkU7OytFQUV1RTtRQUN2RSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGVlcEFsbCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaGVscGVycyc7XG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IENoYXJ0Q29uZmlnU2VydmljZSB9IGZyb20gJy4uLyc7XG5cbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uc0RlbGVnYXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFydENvbmZpZ1NlcnZpY2U6IENoYXJ0Q29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgYXBwbHlEZWZhdWx0c1RvQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW10pIHtcbiAgICByZXR1cm4gYW5ub3RhdGlvbnMubWFwKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uVHlwZURlZmF1bHRzID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuZ2V0QW5ub3RhdGlvbkRlZmF1bHRzKGFubm90YXRpb24udHlwZSk7XG4gICAgICByZXR1cm4gbWVyZ2VEZWVwQWxsKGFubm90YXRpb25UeXBlRGVmYXVsdHMsIGFubm90YXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUFubm90YXRpb25QbHVnaW5PcHRpb25zT2JqZWN0KGFubm90YXRpb25zOiBBbm5vdGF0aW9uT3B0aW9uc1tdKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHMgPSB0aGlzLmFwcGx5RGVmYXVsdHNUb0Fubm90YXRpb25zKGFubm90YXRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBhbm5vdGF0aW9uOiB7XG4gICAgICAgICAgYW5ub3RhdGlvbnM6IGFubm90YXRpb25zV2l0aERlZmF1bHRzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldEV4aXN0aW5nQ2hhcnRBbm5vdGF0aW9ucyhjaGFydDogQ2hhcnQpOiBBbm5vdGF0aW9uT3B0aW9uc1tdIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNoYXJ0Lm9wdGlvbnMucGx1Z2lucz8uYW5ub3RhdGlvbj8uYW5ub3RhdGlvbnM7XG4gICAgLyogSW4gYnJvd3NlciBjaGFydC5qcyBtaWdodCByZXR1cm4gYW5ub3RhdGlvbnMgYXMgYSBQcm94eSBvYmplY3Q7IGZvcmNlIGl0IHRvIGJlIGFuIGFycmF5LlxuICAgICAgIEVhY2ggYW5ub3RhdGlvbk9wdGlvbiBpbiB0aGUgcmVzdWx0aW5nIGFycmF5ICB3aWxsIGFsc28gYmUgYSBQcm94eSBvYmplY3QuIFxuICAgICAgIEJ1dCBpbnRlcm5hbGx5IGNoYXJ0LmpzIHdpbGwganVzdCB3b3JrIHdpdGggdGhlbSBhcyBub3JtYWwgdmFsdWVzICovXG4gICAgaWYgKGFubm90YXRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykubWFwKChrZXkpID0+IGFubm90YXRpb25zW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG59XG4iXX0=","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nconst { getThemeColorHexString } = ColorHelper;\nconst hoverBackgroundColor = getThemeColorHexString('primary');\nconst backgroundColor = getThemeColorHexString('secondary');\nfunction scriptedBackgroundColor(context) {\n const dataset = context.dataset;\n const highlightedElements = dataset?.kirbyOptions?.highlightedElements;\n if (highlightedElements && highlightedElements.includes(context.dataIndex)) {\n return hoverBackgroundColor;\n }\n else {\n return backgroundColor;\n }\n}\n// Only adds a hovercolor if an onClick handler is provided\nfunction scriptedHoverBackgroundColor(context) {\n if (context.chart.options.onClick) {\n return hoverBackgroundColor;\n }\n}\nexport const CHART_GLOBAL_DEFAULTS = {\n maintainAspectRatio: false,\n color: getThemeColorHexString('black'),\n resizeDelay: 10,\n elements: {\n bar: {\n backgroundColor: scriptedBackgroundColor,\n hoverBackgroundColor: scriptedHoverBackgroundColor,\n },\n line: {\n borderColor: scriptedBackgroundColor,\n borderWidth: 2,\n tension: 0.3,\n },\n },\n scales: {\n linear: {\n display: false,\n ticks: {\n display: false,\n },\n },\n category: {\n display: true,\n grid: {\n display: false,\n },\n },\n },\n font: {\n family: 'Roboto',\n },\n plugins: {\n legend: {\n display: false,\n },\n datalabels: {\n display: false,\n },\n tooltip: {\n enabled: false,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWRlZmF1bHRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvY2hhcnQtY29uZmlnLXNlcnZpY2UvY29uZmlncy9nbG9iYWwtZGVmYXVsdHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUtoRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxXQUFXLENBQUM7QUFFL0MsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRCxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUU1RCxTQUFTLHVCQUF1QixDQUFDLE9BQXFDO0lBQ3BFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUF1QixDQUFDO0lBQ2hELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUV2RSxJQUFJLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztBQUNILENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsU0FBUyw0QkFBNEIsQ0FBQyxPQUFxQztJQUN6RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7SUFDdEMsV0FBVyxFQUFFLEVBQUU7SUFDZixRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUU7WUFDSCxlQUFlLEVBQUUsdUJBQXVCO1lBQ3hDLG9CQUFvQixFQUFFLDRCQUE0QjtTQUNuRDtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSx1QkFBdUI7WUFDcEMsV0FBVyxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsR0FBRztTQUNiO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEtBQUs7U0FDZjtRQUNELFVBQVUsRUFBRTtZQUNWLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JIZWxwZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ2hhcnRUeXBlLCBTY3JpcHRhYmxlQ29udGV4dCB9IGZyb20gJ2NoYXJ0LmpzJztcblxuaW1wb3J0IHsgQ2hhcnREYXRhc2V0IH0gZnJvbSAnLi4vLi4vJztcblxuY29uc3QgeyBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nIH0gPSBDb2xvckhlbHBlcjtcblxuY29uc3QgaG92ZXJCYWNrZ3JvdW5kQ29sb3IgPSBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdwcmltYXJ5Jyk7XG5jb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdzZWNvbmRhcnknKTtcblxuZnVuY3Rpb24gc2NyaXB0ZWRCYWNrZ3JvdW5kQ29sb3IoY29udGV4dDogU2NyaXB0YWJsZUNvbnRleHQ8Q2hhcnRUeXBlPikge1xuICBjb25zdCBkYXRhc2V0ID0gY29udGV4dC5kYXRhc2V0IGFzIENoYXJ0RGF0YXNldDtcbiAgY29uc3QgaGlnaGxpZ2h0ZWRFbGVtZW50cyA9IGRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaGlnaGxpZ2h0ZWRFbGVtZW50cztcblxuICBpZiAoaGlnaGxpZ2h0ZWRFbGVtZW50cyAmJiBoaWdobGlnaHRlZEVsZW1lbnRzLmluY2x1ZGVzKGNvbnRleHQuZGF0YUluZGV4KSkge1xuICAgIHJldHVybiBob3ZlckJhY2tncm91bmRDb2xvcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFja2dyb3VuZENvbG9yO1xuICB9XG59XG5cbi8vIE9ubHkgYWRkcyBhIGhvdmVyY29sb3IgaWYgYW4gb25DbGljayBoYW5kbGVyIGlzIHByb3ZpZGVkXG5mdW5jdGlvbiBzY3JpcHRlZEhvdmVyQmFja2dyb3VuZENvbG9yKGNvbnRleHQ6IFNjcmlwdGFibGVDb250ZXh0PENoYXJ0VHlwZT4pIHtcbiAgaWYgKGNvbnRleHQuY2hhcnQub3B0aW9ucy5vbkNsaWNrKSB7XG4gICAgcmV0dXJuIGhvdmVyQmFja2dyb3VuZENvbG9yO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDSEFSVF9HTE9CQUxfREVGQVVMVFMgPSB7XG4gIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICBjb2xvcjogZ2V0VGhlbWVDb2xvckhleFN0cmluZygnYmxhY2snKSxcbiAgcmVzaXplRGVsYXk6IDEwLFxuICBlbGVtZW50czoge1xuICAgIGJhcjoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzY3JpcHRlZEJhY2tncm91bmRDb2xvcixcbiAgICAgIGhvdmVyQmFja2dyb3VuZENvbG9yOiBzY3JpcHRlZEhvdmVyQmFja2dyb3VuZENvbG9yLFxuICAgIH0sXG4gICAgbGluZToge1xuICAgICAgYm9yZGVyQ29sb3I6IHNjcmlwdGVkQmFja2dyb3VuZENvbG9yLFxuICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICB0ZW5zaW9uOiAwLjMsXG4gICAgfSxcbiAgfSxcbiAgc2NhbGVzOiB7XG4gICAgbGluZWFyOiB7XG4gICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgIHRpY2tzOiB7XG4gICAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhdGVnb3J5OiB7XG4gICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgZ3JpZDoge1xuICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgZm9udDoge1xuICAgIGZhbWlseTogJ1JvYm90bycsXG4gIH0sXG4gIHBsdWdpbnM6IHtcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgIH0sXG4gICAgZGF0YWxhYmVsczoge1xuICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgfSxcbiAgICB0b29sdGlwOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","/*\n The marker plugin is heavily inspired by https://chartjs-plugin-crosshair.netlify.app\n The project appears stale and only the vertical line feature is needed\n part of the plugin that was actually needed is implemented here.\n*/\nimport { valueOrDefault } from 'chart.js/helpers';\nconst defaultOptions = {\n line: {\n color: 'black',\n width: 1,\n dashPattern: [],\n },\n snap: {\n enabled: false,\n },\n};\nconst hasMarkerConfiguration = (chart) => {\n /*\n Hacky solution. Should be fixed in this issue: https://github.com/kirbydesign/designsystem/issues/1967\n */\n return chart.data.datasets.some((dataset) => !!dataset?.kirbyOptions?.isStockChart);\n};\nexport default {\n id: 'marker',\n afterInit: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n const xScaleType = chart.config.options.scales.x.type;\n if (xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic') {\n return;\n }\n if (chart.options.plugins.marker === undefined) {\n chart.options.plugins.marker = defaultOptions;\n }\n chart.marker = {\n enabled: false,\n suppressUpdate: false,\n x: null,\n originalData: [],\n originalXRange: {},\n dragStarted: false,\n dragStartX: null,\n dragEndX: null,\n suppressTooltips: false,\n ignoreNextEvents: 0,\n };\n },\n getOption: function (chart, category, name) {\n return valueOrDefault(chart.options.plugins.marker[category]\n ? chart.options.plugins.marker[category][name]\n : undefined, defaultOptions[category][name]);\n },\n getXScale: function (chart) {\n return chart.data.datasets.length ? chart.scales[chart.getDatasetMeta(0).xAxisID] : null;\n },\n getYScale: function (chart) {\n return chart.scales[chart.getDatasetMeta(0).yAxisID];\n },\n afterEvent: function (chart, event) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n if (chart.config.options.scales.x.length == 0) {\n return;\n }\n const e = event.event;\n const xScaleType = chart.config.options.scales.x.type;\n if (xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic') {\n return;\n }\n const xScale = this.getXScale(chart);\n if (!xScale) {\n return;\n }\n if (chart.marker.ignoreNextEvents > 0) {\n chart.marker.ignoreNextEvents -= 1;\n return;\n }\n chart.marker.enabled =\n e.type !== 'mouseout' &&\n e.x > xScale.getPixelForValue(xScale.min) &&\n e.x < xScale.getPixelForValue(xScale.max);\n if (!chart.marker.enabled && !chart.marker.suppressUpdate) {\n if (e.x > xScale.getPixelForValue(xScale.max)) {\n // suppress future updates to prevent endless redrawing of chart\n chart.marker.suppressUpdate = true;\n chart.update('none');\n }\n chart.marker.dragStarted = false; // cancel zoom in progress\n return false;\n }\n chart.marker.suppressUpdate = false;\n chart.marker.x = e.x;\n chart.draw();\n },\n doDraw: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n if (!chart.marker.enabled) {\n return;\n }\n this.drawTraceLine(chart);\n this.interpolateValues(chart);\n this.drawTracePoints(chart);\n return true;\n },\n beforeDraw: function (chart) {\n return this.doDraw(chart);\n },\n // Logic moved to beforeDraw in order\n // for the vertical line to be drawn\n // under tooltip and datalabels.\n // afterDraw: function(chart) {\n // return this.doDraw(chart);\n // },\n drawTraceLine: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n const yScale = this.getYScale(chart);\n const lineWidth = this.getOption(chart, 'line', 'width');\n const color = this.getOption(chart, 'line', 'color');\n const dashPattern = this.getOption(chart, 'line', 'dashPattern');\n const snapEnabled = this.getOption(chart, 'snap', 'enabled');\n let lineX = chart.marker.x;\n if (snapEnabled && chart._active.length) {\n lineX = chart._active[0].element.x;\n }\n chart.ctx.beginPath();\n chart.ctx.setLineDash(dashPattern);\n chart.ctx.moveTo(lineX, yScale.getPixelForValue(yScale.max));\n chart.ctx.lineWidth = lineWidth;\n chart.ctx.strokeStyle = color;\n chart.ctx.lineTo(lineX, yScale.getPixelForValue(yScale.min));\n chart.ctx.stroke();\n chart.ctx.setLineDash([]);\n },\n drawTracePoints: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n for (let chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n const dataset = chart.data.datasets[chartIndex];\n const meta = chart.getDatasetMeta(chartIndex);\n const yScale = chart.scales[meta.yAxisID];\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n chart.ctx.beginPath();\n chart.ctx.arc(chart.marker.x, yScale.getPixelForValue(dataset.interpolatedValue), 3, 0, 2 * Math.PI, false);\n chart.ctx.fillStyle = 'white';\n chart.ctx.lineWidth = 2;\n chart.ctx.strokeStyle = dataset.borderColor;\n chart.ctx.fill();\n chart.ctx.stroke();\n }\n },\n interpolateValues: function (chart) {\n for (let chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n const dataset = chart.data.datasets[chartIndex];\n const meta = chart.getDatasetMeta(chartIndex);\n const xScale = chart.scales[meta.xAxisID];\n const xValue = xScale.getValueForPixel(chart.marker.x);\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n const data = dataset.data;\n const index = data.findIndex(function (o) {\n return o.x >= xValue;\n });\n const prev = data[index - 1];\n const next = data[index];\n if (chart.data.datasets[chartIndex].steppedLine && prev) {\n dataset.interpolatedValue = prev.y;\n }\n else if (prev && next) {\n const slope = (next.y - prev.y) / (next.x - prev.x);\n dataset.interpolatedValue = prev.y + (xValue - prev.x) * slope;\n }\n else {\n dataset.interpolatedValue = NaN;\n }\n }\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy1wbHVnaW4tbWFya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY2hhcnQvc3JjL3NoYXJlZC9jaGFydC1qcy1zZXJ2aWNlL2NoYXJ0anMtcGx1Z2luLW1hcmtlci9jaGFydGpzLXBsdWdpbi1tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxNQUFNLGNBQWMsR0FBRztJQUNyQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtJQUM5Qzs7TUFFRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDO0FBRUYsZUFBZTtJQUNiLEVBQUUsRUFBRSxRQUFRO0lBRVosU0FBUyxFQUFFLFVBQVUsS0FBSztRQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXRELElBQ0UsVUFBVSxLQUFLLFFBQVE7WUFDdkIsVUFBVSxLQUFLLE1BQU07WUFDckIsVUFBVSxLQUFLLFVBQVU7WUFDekIsVUFBVSxLQUFLLGFBQWEsRUFDNUIsQ0FB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eEMsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN0QyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3hELE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogXG4gIFRoZSBtYXJrZXIgcGx1Z2luIGlzIGhlYXZpbHkgaW5zcGlyZWQgYnkgaHR0cHM6Ly9jaGFydGpzLXBsdWdpbi1jcm9zc2hhaXIubmV0bGlmeS5hcHBcbiAgVGhlIHByb2plY3QgYXBwZWFycyBzdGFsZSBhbmQgb25seSB0aGUgdmVydGljYWwgbGluZSBmZWF0dXJlIGlzIG5lZWRlZFxuICAgcGFydCBvZiB0aGUgcGx1Z2luIHRoYXQgd2FzIGFjdHVhbGx5IG5lZWRlZCBpcyBpbXBsZW1lbnRlZCBoZXJlLiBcbiovXG5cbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgdmFsdWVPckRlZmF1bHQgfSBmcm9tICdjaGFydC5qcy9oZWxwZXJzJztcblxuaW1wb3J0IHsgQ2hhcnREYXRhc2V0IH0gZnJvbSAnLi4vLi4vY2hhcnRzLnR5cGVzJztcblxuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gIGxpbmU6IHtcbiAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICB3aWR0aDogMSxcbiAgICBkYXNoUGF0dGVybjogW10sXG4gIH0sXG4gIHNuYXA6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgfSxcbn07XG5cbmNvbnN0IGhhc01hcmtlckNvbmZpZ3VyYXRpb24gPSAoY2hhcnQ6IENoYXJ0KSA9PiB7XG4gIC8qIFxuICAgIEhhY2t5IHNvbHV0aW9uLiBTaG91bGQgYmUgZml4ZWQgaW4gdGhpcyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2tpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pc3N1ZXMvMTk2N1xuICAqL1xuICByZXR1cm4gY2hhcnQuZGF0YS5kYXRhc2V0cy5zb21lKChkYXRhc2V0OiBDaGFydERhdGFzZXQpID0+ICEhZGF0YXNldD8ua2lyYnlPcHRpb25zPy5pc1N0b2NrQ2hhcnQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBpZDogJ21hcmtlcicsXG5cbiAgYWZ0ZXJJbml0OiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeFNjYWxlVHlwZSA9IGNoYXJ0LmNvbmZpZy5vcHRpb25zLnNjYWxlcy54LnR5cGU7XG5cbiAgICBpZiAoXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbGluZWFyJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ3RpbWUnICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnY2F0ZWdvcnknICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbG9nYXJpdGhtaWMnXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY2hhcnQub3B0aW9ucy5wbHVnaW5zLm1hcmtlciA9IGRlZmF1bHRPcHRpb25zO1xuICAgIH1cblxuICAgIGNoYXJ0Lm1hcmtlciA9IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NVcGRhdGU6IGZhbHNlLFxuICAgICAgeDogbnVsbCxcbiAgICAgIG9yaWdpbmFsRGF0YTogW10sXG4gICAgICBvcmlnaW5hbFhSYW5nZToge30sXG4gICAgICBkcmFnU3RhcnRlZDogZmFsc2UsXG4gICAgICBkcmFnU3RhcnRYOiBudWxsLFxuICAgICAgZHJhZ0VuZFg6IG51bGwsXG4gICAgICBzdXBwcmVzc1Rvb2x0aXBzOiBmYWxzZSxcbiAgICAgIGlnbm9yZU5leHRFdmVudHM6IDAsXG4gICAgfTtcbiAgfSxcblxuICBnZXRPcHRpb246IGZ1bmN0aW9uIChjaGFydCwgY2F0ZWdvcnksIG5hbWUpIHtcbiAgICByZXR1cm4gdmFsdWVPckRlZmF1bHQoXG4gICAgICBjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyW2NhdGVnb3J5XVxuICAgICAgICA/IGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXJbY2F0ZWdvcnldW25hbWVdXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9wdGlvbnNbY2F0ZWdvcnldW25hbWVdXG4gICAgKTtcbiAgfSxcblxuICBnZXRYU2NhbGU6IGZ1bmN0aW9uIChjaGFydCkge1xuICAgIHJldHVybiBjaGFydC5kYXRhLmRhdGFzZXRzLmxlbmd0aCA/IGNoYXJ0LnNjYWxlc1tjaGFydC5nZXREYXRhc2V0TWV0YSgwKS54QXhpc0lEXSA6IG51bGw7XG4gIH0sXG4gIGdldFlTY2FsZTogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgcmV0dXJuIGNoYXJ0LnNjYWxlc1tjaGFydC5nZXREYXRhc2V0TWV0YSgwKS55QXhpc0lEXTtcbiAgfSxcblxuICBhZnRlckV2ZW50OiBmdW5jdGlvbiAoY2hhcnQsIGV2ZW50KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlID0gZXZlbnQuZXZlbnQ7XG5cbiAgICBjb25zdCB4U2NhbGVUeXBlID0gY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngudHlwZTtcblxuICAgIGlmIChcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsaW5lYXInICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAndGltZScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdjYXRlZ29yeScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsb2dhcml0aG1pYydcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB4U2NhbGUgPSB0aGlzLmdldFhTY2FsZShjaGFydCk7XG5cbiAgICBpZiAoIXhTY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFydC5tYXJrZXIuaWdub3JlTmV4dEV2ZW50cyA+IDApIHtcbiAgICAgIGNoYXJ0Lm1hcmtlci5pZ25vcmVOZXh0RXZlbnRzIC09IDE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2hhcnQubWFya2VyLmVuYWJsZWQgPVxuICAgICAgZS50eXBlICE9PSAnbW91c2VvdXQnICYmXG4gICAgICBlLnggPiB4U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh4U2NhbGUubWluKSAmJlxuICAgICAgZS54IDwgeFNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeFNjYWxlLm1heCk7XG5cbiAgICBpZiAoIWNoYXJ0Lm1hcmtlci5lbmFibGVkICYmICFjaGFydC5tYXJrZXIuc3VwcHJlc3NVcGRhdGUpIHtcbiAgICAgIGlmIChlLnggPiB4U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh4U2NhbGUubWF4KSkge1xuICAgICAgICAvLyBzdXBwcmVzcyBmdXR1cmUgdXBkYXRlcyB0byBwcmV2ZW50IGVuZGxlc3MgcmVkcmF3aW5nIG9mIGNoYXJ0XG4gICAgICAgIGNoYXJ0Lm1hcmtlci5zdXBwcmVzc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgIGNoYXJ0LnVwZGF0ZSgnbm9uZScpO1xuICAgICAgfVxuICAgICAgY2hhcnQubWFya2VyLmRyYWdTdGFydGVkID0gZmFsc2U7IC8vIGNhbmNlbCB6b29tIGluIHByb2dyZXNzXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNoYXJ0Lm1hcmtlci5zdXBwcmVzc1VwZGF0ZSA9IGZhbHNlO1xuXG4gICAgY2hhcnQubWFya2VyLnggPSBlLng7XG5cbiAgICBjaGFydC5kcmF3KCk7XG4gIH0sXG4gIGRvRHJhdzogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2hhcnQubWFya2VyLmVuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYXdUcmFjZUxpbmUoY2hhcnQpO1xuICAgIHRoaXMuaW50ZXJwb2xhdGVWYWx1ZXMoY2hhcnQpO1xuICAgIHRoaXMuZHJhd1RyYWNlUG9pbnRzKGNoYXJ0KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuICBiZWZvcmVEcmF3OiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICByZXR1cm4gdGhpcy5kb0RyYXcoY2hhcnQpO1xuICB9LFxuICAvLyBMb2dpYyBtb3ZlZCB0byBiZWZvcmVEcmF3IGluIG9yZGVyXG4gIC8vIGZvciB0aGUgdmVydGljYWwgbGluZSB0byBiZSBkcmF3blxuICAvLyB1bmRlciB0b29sdGlwIGFuZCBkYXRhbGFiZWxzLlxuICAvLyBhZnRlckRyYXc6IGZ1bmN0aW9uKGNoYXJ0KSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZG9EcmF3KGNoYXJ0KTtcbiAgLy8gfSxcblxuICBkcmF3VHJhY2VMaW5lOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHlTY2FsZSA9IHRoaXMuZ2V0WVNjYWxlKGNoYXJ0KTtcblxuICAgIGNvbnN0IGxpbmVXaWR0aCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICd3aWR0aCcpO1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5nZXRPcHRpb24oY2hhcnQsICdsaW5lJywgJ2NvbG9yJyk7XG4gICAgY29uc3QgZGFzaFBhdHRlcm4gPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnZGFzaFBhdHRlcm4nKTtcbiAgICBjb25zdCBzbmFwRW5hYmxlZCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnc25hcCcsICdlbmFibGVkJyk7XG5cbiAgICBsZXQgbGluZVggPSBjaGFydC5tYXJrZXIueDtcblxuICAgIGlmIChzbmFwRW5hYmxlZCAmJiBjaGFydC5fYWN0aXZlLmxlbmd0aCkge1xuICAgICAgbGluZVggPSBjaGFydC5fYWN0aXZlWzBdLmVsZW1lbnQueDtcbiAgICB9XG5cbiAgICBjaGFydC5jdHguYmVnaW5QYXRoKCk7XG4gICAgY2hhcnQuY3R4LnNldExpbmVEYXNoKGRhc2hQYXR0ZXJuKTtcbiAgICBjaGFydC5jdHgubW92ZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWF4KSk7XG4gICAgY2hhcnQuY3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcbiAgICBjaGFydC5jdHguc3Ryb2tlU3R5bGUgPSBjb2xvcjtcbiAgICBjaGFydC5jdHgubGluZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWluKSk7XG4gICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIGNoYXJ0LmN0eC5zZXRMaW5lRGFzaChbXSk7XG4gIH0sXG5cbiAgZHJhd1RyYWNlUG9pbnRzOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGNoYXJ0SW5kZXggPSAwOyBjaGFydEluZGV4IDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGNoYXJ0SW5kZXgrKykge1xuICAgICAgY29uc3QgZGF0YXNldCA9IGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF07XG4gICAgICBjb25zdCBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoY2hhcnRJbmRleCk7XG5cbiAgICAgIGNvbnN0IHlTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnlBeGlzSURdO1xuXG4gICAgICBpZiAobWV0YS5oaWRkZW4gfHwgIWRhdGFzZXQuaW50ZXJwb2xhdGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYXJ0LmN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGNoYXJ0LmN0eC5hcmMoXG4gICAgICAgIGNoYXJ0Lm1hcmtlci54LFxuICAgICAgICB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlKSxcbiAgICAgICAgMyxcbiAgICAgICAgMCxcbiAgICAgICAgMiAqIE1hdGguUEksXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY2hhcnQuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICBjaGFydC5jdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGNoYXJ0LmN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuYm9yZGVyQ29sb3I7XG4gICAgICBjaGFydC5jdHguZmlsbCgpO1xuICAgICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIH1cbiAgfSxcblxuICBpbnRlcnBvbGF0ZVZhbHVlczogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgZm9yIChsZXQgY2hhcnRJbmRleCA9IDA7IGNoYXJ0SW5kZXggPCBjaGFydC5kYXRhLmRhdGFzZXRzLmxlbmd0aDsgY2hhcnRJbmRleCsrKSB7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gY2hhcnQuZGF0YS5kYXRhc2V0c1tjaGFydEluZGV4XTtcblxuICAgICAgY29uc3QgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGNoYXJ0SW5kZXgpO1xuXG4gICAgICBjb25zdCB4U2NhbGUgPSBjaGFydC5zY2FsZXNbbWV0YS54QXhpc0lEXTtcbiAgICAgIGNvbnN0IHhWYWx1ZSA9IHhTY2FsZS5nZXRWYWx1ZUZvclBpeGVsKGNoYXJ0Lm1hcmtlci54KTtcblxuICAgICAgaWYgKG1ldGEuaGlkZGVuIHx8ICFkYXRhc2V0LmludGVycG9sYXRlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhID0gZGF0YXNldC5kYXRhO1xuICAgICAgY29uc3QgaW5kZXggPSBkYXRhLmZpbmRJbmRleChmdW5jdGlvbiAobykge1xuICAgICAgICByZXR1cm4gby54ID49IHhWYWx1ZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcHJldiA9IGRhdGFbaW5kZXggLSAxXTtcbiAgICAgIGNvbnN0IG5leHQgPSBkYXRhW2luZGV4XTtcblxuICAgICAgaWYgKGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF0uc3RlcHBlZExpbmUgJiYgcHJldikge1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55O1xuICAgICAgfSBlbHNlIGlmIChwcmV2ICYmIG5leHQpIHtcbiAgICAgICAgY29uc3Qgc2xvcGUgPSAobmV4dC55IC0gcHJldi55KSAvIChuZXh0LnggLSBwcmV2LngpO1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55ICsgKHhWYWx1ZSAtIHByZXYueCkgKiBzbG9wZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFzZXQuaW50ZXJwb2xhdGVkVmFsdWUgPSBOYU47XG4gICAgICB9XG4gICAgfVxuICB9LFxufTtcbiJdfQ==","import { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { BarController, BarElement, CategoryScale, Chart, Filler, Legend, LinearScale, LineController, LineElement, PointElement, TimeScale, Tooltip, } from 'chart.js';\nimport 'chartjs-adapter-date-fns';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { CHART_GLOBAL_DEFAULTS } from '../chart-config-service/configs/global-defaults.config';\nimport MarkerPlugin from './chartjs-plugin-marker/chartjs-plugin-marker';\nconst CHART_SCALES = [CategoryScale, LinearScale, TimeScale];\nconst CHART_ELEMENTS = [BarElement, LineElement, PointElement];\nconst CHART_CONTROLLERS = [BarController, LineController];\nconst CHART_PLUGINS = [annotationPlugin, Filler, ChartDataLabels, Tooltip, MarkerPlugin].map((plugin) => (plugin?.__esModule ? plugin.default : plugin));\n/* Order matters; defaults must be merged after register as\n register modifies the Chart.defaults objects */\nChart.register(Legend, ...CHART_SCALES, ...CHART_ELEMENTS, ...CHART_CONTROLLERS, ...CHART_PLUGINS);\n/* Chart.defaults is read only; set each key modified in\n CHART_GLOBAL_DEFAULTS manually */\nconst mergedDefaults = mergeDeepAll(Chart.defaults, CHART_GLOBAL_DEFAULTS);\nObject.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {\n Chart.defaults[key] = mergedDefaults[key];\n});\nexport { Chart };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlZC1jaGFydC1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvY2hhcnQtanMtc2VydmljZS9jb25maWd1cmVkLWNoYXJ0LWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2IsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLGNBQWMsRUFDZCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTywwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sZUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRS9GLE9BQU8sWUFBWSxNQUFNLCtDQUErQyxDQUFDO0FBRXpFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM3RCxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMxRCxNQUFNLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FDMUYsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQ2hFLENBQUM7QUFFRjtrREFDa0Q7QUFDbEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0FBRW5HO29DQUNvQztBQUNwQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7SUFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZXJnZURlZXBBbGwgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHtcbiAgQmFyQ29udHJvbGxlcixcbiAgQmFyRWxlbWVudCxcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIEZpbGxlcixcbiAgTGVnZW5kLFxuICBMaW5lYXJTY2FsZSxcbiAgTGluZUNvbnRyb2xsZXIsXG4gIExpbmVFbGVtZW50LFxuICBQb2ludEVsZW1lbnQsXG4gIFRpbWVTY2FsZSxcbiAgVG9vbHRpcCxcbn0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0ICdjaGFydGpzLWFkYXB0ZXItZGF0ZS1mbnMnO1xuaW1wb3J0IGFubm90YXRpb25QbHVnaW4gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuXG5pbXBvcnQgeyBDSEFSVF9HTE9CQUxfREVGQVVMVFMgfSBmcm9tICcuLi9jaGFydC1jb25maWctc2VydmljZS9jb25maWdzL2dsb2JhbC1kZWZhdWx0cy5jb25maWcnO1xuXG5pbXBvcnQgTWFya2VyUGx1Z2luIGZyb20gJy4vY2hhcnRqcy1wbHVnaW4tbWFya2VyL2NoYXJ0anMtcGx1Z2luLW1hcmtlcic7XG5cbmNvbnN0IENIQVJUX1NDQUxFUyA9IFtDYXRlZ29yeVNjYWxlLCBMaW5lYXJTY2FsZSwgVGltZVNjYWxlXTtcbmNvbnN0IENIQVJUX0VMRU1FTlRTID0gW0JhckVsZW1lbnQsIExpbmVFbGVtZW50LCBQb2ludEVsZW1lbnRdO1xuY29uc3QgQ0hBUlRfQ09OVFJPTExFUlMgPSBbQmFyQ29udHJvbGxlciwgTGluZUNvbnRyb2xsZXJdO1xuY29uc3QgQ0hBUlRfUExVR0lOUyA9IFthbm5vdGF0aW9uUGx1Z2luLCBGaWxsZXIsIENoYXJ0RGF0YUxhYmVscywgVG9vbHRpcCwgTWFya2VyUGx1Z2luXS5tYXAoXG4gIChwbHVnaW46IGFueSkgPT4gKHBsdWdpbj8uX19lc01vZHVsZSA/IHBsdWdpbi5kZWZhdWx0IDogcGx1Z2luKVxuKTtcblxuLyogT3JkZXIgbWF0dGVyczsgZGVmYXVsdHMgbXVzdCBiZSBtZXJnZWQgYWZ0ZXIgcmVnaXN0ZXIgYXMgXG4gICByZWdpc3RlciBtb2RpZmllcyB0aGUgQ2hhcnQuZGVmYXVsdHMgb2JqZWN0cyAqL1xuQ2hhcnQucmVnaXN0ZXIoTGVnZW5kLCAuLi5DSEFSVF9TQ0FMRVMsIC4uLkNIQVJUX0VMRU1FTlRTLCAuLi5DSEFSVF9DT05UUk9MTEVSUywgLi4uQ0hBUlRfUExVR0lOUyk7XG5cbi8qIENoYXJ0LmRlZmF1bHRzIGlzIHJlYWQgb25seTsgc2V0IGVhY2gga2V5IG1vZGlmaWVkIGluIFxuICAgQ0hBUlRfR0xPQkFMX0RFRkFVTFRTIG1hbnVhbGx5ICovXG5jb25zdCBtZXJnZWREZWZhdWx0cyA9IG1lcmdlRGVlcEFsbChDaGFydC5kZWZhdWx0cywgQ0hBUlRfR0xPQkFMX0RFRkFVTFRTKTtcbk9iamVjdC5lbnRyaWVzKENIQVJUX0dMT0JBTF9ERUZBVUxUUykuZm9yRWFjaCgoW2tleV0pID0+IHtcbiAgQ2hhcnQuZGVmYXVsdHNba2V5XSA9IG1lcmdlZERlZmF1bHRzW2tleV07XG59KTtcblxuZXhwb3J0IHsgQ2hhcnQgfTtcbiJdfQ==","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nconst { getThemeColorHexString } = ColorHelper;\n/* The chart.js annotation does not allow for changing the\ndefaults it comes with. In order to have sensible defaults\nthis object is used instead and manually merged with the\nrest of the annotations object */\nconst borderColor = getThemeColorHexString('semi-dark');\nconst borderDash = [6, 3];\nconst borderWidth = 1;\nexport const CHART_ANNOTATIONS_CONFIG = {\n line: {\n borderDash,\n borderWidth,\n borderColor,\n },\n ellipse: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n box: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n point: {\n backgroundColor: 'initial',\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY2hhcnQvc3JjL3NoYXJlZC9jaGFydC1jb25maWctc2VydmljZS9jb25maWdzL2Fubm90YXRpb25zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHaEUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsV0FBVyxDQUFDO0FBRS9DOzs7aUNBR2lDO0FBQ2pDLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sVUFBVSxHQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXNEO0lBQ3pGLElBQUksRUFBRTtRQUNKLFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztLQUNaO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO1FBQ1gsZUFBZSxFQUFFLGFBQWE7S0FDL0I7SUFDRCxHQUFHLEVBQUU7UUFDSCxVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7UUFDWCxlQUFlLEVBQUUsYUFBYTtLQUMvQjtJQUNELEtBQUssRUFBRTtRQUNMLGVBQWUsRUFBRSxTQUFTO0tBQzNCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9ySGVscGVyIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7IEFubm90YXRpb25UeXBlUmVnaXN0cnkgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcblxuY29uc3QgeyBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nIH0gPSBDb2xvckhlbHBlcjtcblxuLyogVGhlIGNoYXJ0LmpzIGFubm90YXRpb24gZG9lcyBub3QgYWxsb3cgZm9yIGNoYW5naW5nIHRoZSBcbmRlZmF1bHRzIGl0IGNvbWVzIHdpdGguIEluIG9yZGVyIHRvIGhhdmUgc2Vuc2libGUgZGVmYXVsdHMgXG50aGlzIG9iamVjdCBpcyB1c2VkIGluc3RlYWQgYW5kIG1hbnVhbGx5IG1lcmdlZCB3aXRoIHRoZSBcbnJlc3Qgb2YgdGhlIGFubm90YXRpb25zIG9iamVjdCAqL1xuY29uc3QgYm9yZGVyQ29sb3IgPSBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdzZW1pLWRhcmsnKTtcbmNvbnN0IGJvcmRlckRhc2g6IFtudW1iZXIsIG51bWJlcl0gPSBbNiwgM107XG5jb25zdCBib3JkZXJXaWR0aCA9IDE7XG5cbmV4cG9ydCBjb25zdCBDSEFSVF9BTk5PVEFUSU9OU19DT05GSUc6IE9taXQ8QW5ub3RhdGlvblR5cGVSZWdpc3RyeSwgJ2xhYmVsJyB8ICdwb2x5Z29uJz4gPSB7XG4gIGxpbmU6IHtcbiAgICBib3JkZXJEYXNoLFxuICAgIGJvcmRlcldpZHRoLFxuICAgIGJvcmRlckNvbG9yLFxuICB9LFxuICBlbGxpcHNlOiB7XG4gICAgYm9yZGVyRGFzaCxcbiAgICBib3JkZXJXaWR0aCxcbiAgICBib3JkZXJDb2xvcixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gIH0sXG4gIGJveDoge1xuICAgIGJvcmRlckRhc2gsXG4gICAgYm9yZGVyV2lkdGgsXG4gICAgYm9yZGVyQ29sb3IsXG4gICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICB9LFxuICBwb2ludDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJ2luaXRpYWwnLFxuICB9LFxufTtcbiJdfQ==","/* Allows for adding functionality to interactions chart.js while\npreserving the interaction functionality the consumer of the component has\npassed by being provided as a callback. */\nexport const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {\n onHover: (_event, activeElements, _chart, callback) => {\n if (_chart.options.onClick) {\n _chart.canvas.style.cursor = activeElements[0] ? 'pointer' : 'default';\n }\n if (callback)\n callback(_event, activeElements, _chart);\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tZnVuY3Rpb25zLWV4dGVuc2lvbnMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY2hhcnQvc3JjL3NoYXJlZC9jaGFydC1jb25maWctc2VydmljZS9jb25maWdzL2ludGVyYWN0aW9uLWZ1bmN0aW9ucy1leHRlbnNpb25zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7MENBRTBDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHO0lBQ3BELE9BQU8sRUFBRSxDQUNQLE1BQWtCLEVBQ2xCLGNBQStCLEVBQy9CLE1BQWEsRUFDYixRQUFpQyxFQUNqQyxFQUFFO1FBQ0YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxJQUFJLFFBQVE7WUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZUVsZW1lbnQsIENoYXJ0LCBDaGFydEV2ZW50LCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5cbi8qIEFsbG93cyBmb3IgYWRkaW5nIGZ1bmN0aW9uYWxpdHkgdG8gaW50ZXJhY3Rpb25zIGNoYXJ0LmpzIHdoaWxlIFxucHJlc2VydmluZyB0aGUgaW50ZXJhY3Rpb24gZnVuY3Rpb25hbGl0eSB0aGUgY29uc3VtZXIgb2YgdGhlIGNvbXBvbmVudCBoYXMgXG5wYXNzZWQgYnkgYmVpbmcgcHJvdmlkZWQgYXMgYSBjYWxsYmFjay4gKi9cbmV4cG9ydCBjb25zdCBDSEFSVF9JTlRFUkFDVElPTl9GVU5DVElPTlNfRVhURU5TSU9OUyA9IHtcbiAgb25Ib3ZlcjogKFxuICAgIF9ldmVudDogQ2hhcnRFdmVudCxcbiAgICBhY3RpdmVFbGVtZW50czogQWN0aXZlRWxlbWVudFtdLFxuICAgIF9jaGFydDogQ2hhcnQsXG4gICAgY2FsbGJhY2s6IENoYXJ0T3B0aW9uc1snb25Ib3ZlciddXG4gICkgPT4ge1xuICAgIGlmIChfY2hhcnQub3B0aW9ucy5vbkNsaWNrKSB7XG4gICAgICBfY2hhcnQuY2FudmFzLnN0eWxlLmN1cnNvciA9IGFjdGl2ZUVsZW1lbnRzWzBdID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soX2V2ZW50LCBhY3RpdmVFbGVtZW50cywgX2NoYXJ0KTtcbiAgfSxcbn07XG4iXX0=","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nconst { fontSize } = DesignTokenHelper;\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\n/**\n * A filter to read a chartpoint from a Chart.js point context (used for chartdata points). Context is provided by Chart.js.\n */\nconst getChartPointFromContext = (context) => {\n return context.dataset.data[context.dataIndex];\n};\nexport const CHART_TYPES_CONFIG = {\n bar: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'y',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('s')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n x: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0.2,\n borderColor: getThemeColorHexString('medium'),\n },\n point: {\n radius: 0,\n },\n },\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n borderColor: getThemeColorHexString('medium'),\n borderWidth: 1,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n padding: 10,\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n labelColor: (tooltipItem) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n borderColor: getThemeColorHexString('semi-light'),\n borderWidth: 2, // This value must be exactly 2. If it is less, a white \"border\" will appear, if greater than, a shadow around the box will be shown.\n // An issue has been created, requesting a test to check this value doesn´t change: https://github.com/kirbydesign/designsystem/issues/2578\n };\n },\n },\n },\n datalabels: {\n backgroundColor: (context) => context.dataset.borderColor,\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context) => getChartPointFromContext(context)?.datalabel.position,\n display: (context) => !!getChartPointFromContext(context)?.datalabel,\n formatter: (value) => value.datalabel.value,\n },\n },\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvc2hhcmVkL2NoYXJ0LWNvbmZpZy1zZXJ2aWNlL2NvbmZpZ3MvdHlwZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztBQUN2QyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxXQUFXLENBQUM7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHLENBQUMsT0FBZ0IsRUFBUyxFQUFFO0lBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBVSxDQUFDO0FBQzFELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFxQjtJQUNsRCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRTtnQkFDUixHQUFHLEVBQUU7b0JBQ0gsYUFBYSxFQUFFLEdBQUc7aUJBQ25CO2dCQUNELElBQUksRUFBRTtvQkFDSixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGO1lBQ0QsU0FBUyxFQUFFLEdBQUc7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFO29CQUNELElBQUksRUFBRTt3QkFDSixVQUFVLEVBQUUsS0FBSztxQkFDbEI7b0JBQ0QsS0FBSyxFQUFFO3dCQUNMLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDOUI7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLENB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RSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxFQUFFLENBQUM7d0JBQ04sSUFBSSxFQUFFLENBQUM7d0JBQ1AsS0FBSyxFQUFFLENBQUM7d0JBQ1IsTUFBTSxFQUFFLENBQUM7cUJBQ1Y7b0JBQ0QsTUFBTSxFQUFFLENBQUM7b0JBQ1QsS0FBSyxFQUFFLENBQUMsT0FBZ0IsRUFBUyxFQUFFLENBQ2hDLHdCQUF3QixDQUFDLE9BQU8sQ0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRO29CQUNoRSxPQUFPLEVBQUUsQ0FBQyxPQUFnQixFQUFXLEVBQUUsQ0FDckMsQ0FBQyxDQUFFLHdCQUF3QixDQUFDLE9BQU8sQ0FBUyxFQUFFLFNBQVM7b0JBQ3pELFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLO2lCQUN6RDthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvckhlbHBlciwgRGVzaWduVG9rZW5IZWxwZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ2hhcnRUeXBlUmVnaXN0cnksIENvbG9yLCBQb2ludCwgVG9vbHRpcEl0ZW0sIFRvb2x0aXBMYWJlbFN0eWxlIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzL3R5cGVzL29wdGlvbnMnO1xuXG5pbXBvcnQgeyBDaGFydFR5cGVzQ29uZmlnIH0gZnJvbSAnLi4vLi4vJztcblxuY29uc3QgeyBmb250U2l6ZSB9ID0gRGVzaWduVG9rZW5IZWxwZXI7XG5jb25zdCB7IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcsIGdldFRoZW1lQ29sb3JSZ2JTdHJpbmcgfSA9IENvbG9ySGVscGVyO1xuXG4vKipcbiAqIEEgZmlsdGVyIHRvIHJlYWQgYSBjaGFydHBvaW50IGZyb20gYSBDaGFydC5qcyBwb2ludCBjb250ZXh0ICh1c2VkIGZvciBjaGFydGRhdGEgcG9pbnRzKS4gQ29udGV4dCBpcyBwcm92aWRlZCBieSBDaGFydC5qcy5cbiAqL1xuY29uc3QgZ2V0Q2hhcnRQb2ludEZyb21Db250ZXh0ID0gKGNvbnRleHQ6IENvbnRleHQpOiBQb2ludCA9PiB7XG4gIHJldHVybiBjb250ZXh0LmRhdGFzZXQuZGF0YVtjb250ZXh0LmRhdGFJbmRleF0gYXMgUG9pbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgQ0hBUlRfVFlQRVNfQ09ORklHOiBDaGFydFR5cGVzQ29uZmlnID0ge1xuICBiYXI6IHtcbiAgICB0eXBlOiAnYmFyJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBkYXRhc2V0czoge1xuICAgICAgICBiYXI6IHtcbiAgICAgICAgICBiYXJQZXJjZW50YWdlOiAwLjYsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICBzcGFuR2FwczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpbmRleEF4aXM6ICd5JyxcbiAgICAgIHNjYWxlczoge1xuICAgICAgICB5OiB7XG4gICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgZHJhd0JvcmRlcjogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgICBzaXplOiBwYXJzZUludChmb250U2l6ZSgncycpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICBwb2ludDoge1xuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIGJvcmRlckNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdtZWRpdW0nKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgY29sdW1uOiB7XG4gICAgdHlwZTogJ2JhcicsXG4gICAgb3B0aW9uczoge1xuICAgICAgZGF0YXNldHM6IHtcbiAgICAgICAgYmFyOiB7XG4gICAgICAgICAgYmFyUGVyY2VudGFnZTogMC42LFxuICAgICAgICB9LFxuICAgICAgICBsaW5lOiB7XG4gICAgICAgICAgc3BhbkdhcHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaW5kZXhBeGlzOiAneCcsXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeDoge1xuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGRyYXdCb3JkZXI6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgICAgc2l6ZTogcGFyc2VJbnQoZm9udFNpemUoJ3hzJykpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICB0ZW5zaW9uOiAwLjIsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ21lZGl1bScpLFxuICAgICAgICB9LFxuICAgICAgICBwb2ludDoge1xuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgbGluZToge1xuICAgIHR5cGU6ICdsaW5lJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldFRoZW1lQ29sb3JSZ2JTdHJpbmcoJ3NlbWktbGlnaHQnLCAwLjUpLFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBib3JkZXJDb2xvcjogZ2V0VGhlbWVDb2xvckhleFN0cmluZygnbWVkaXVtJyksXG4gICAgICAgICAgICBib3JkZXJXaWR0aDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICAgIHNpemU6IHBhcnNlSW50KGZvbnRTaXplKCd4cycpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICBwb2ludDoge1xuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgc3RvY2s6IHtcbiAgICB0eXBlOiAnbGluZScsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgIGFuaW1hdGlvbjoge1xuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgIGxlZnQ6IDIwLFxuICAgICAgICAgIHJpZ2h0OiAyMCxcbiAgICAgICAgICB0b3A6IDMwLFxuICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldFRoZW1lQ29sb3JSZ2JTdHJpbmcoJ3NlbWktbGlnaHQnLCAwLjUpLFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBsaW5lV2lkdGg6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgbWF4Um90YXRpb246IDAsXG4gICAgICAgICAgICBhdXRvU2tpcFBhZGRpbmc6IDEyMCxcbiAgICAgICAgICAgIGZvbnQ6IHtcbiAgICAgICAgICAgICAgc2l6ZTogcGFyc2VJbnQoZm9udFNpemUoJ3hzJykpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB5OiB7XG4gICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBkcmF3Qm9yZGVyOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgICBzaXplOiBwYXJzZUludChmb250U2l6ZSgneHMnKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIHRlbnNpb246IDAsIC8vIFNtb290aCBjdXJ2ZSAoMCA9IG5vIHNtb290aGluZylcbiAgICAgICAgICBib3JkZXJXaWR0aDogMixcbiAgICAgICAgfSxcbiAgICAgICAgcG9pbnQ6IHtcbiAgICAgICAgICBoaXRSYWRpdXM6IDIwLFxuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgICBob3ZlclJhZGl1czogMCxcbiAgICAgICAgICBob3ZlckJvcmRlcldpZHRoOiAwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG5vcm1hbGl6ZWQ6IHRydWUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBwYWRkaW5nOiAxMCxcblxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgbW9kZTogJ2luZGV4JyxcbiAgICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZ2V0VGhlbWVDb2xvckhleFN0cmluZygnc2VtaS1saWdodCcpLFxuICAgICAgICAgIHRpdGxlQ29sb3I6IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3NlbWktbGlnaHQtY29udHJhc3QnKSxcbiAgICAgICAgICBib2R5Q29sb3I6IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3NlbWktbGlnaHQtY29udHJhc3QnKSxcbiAgICAgICAgICBjYXJldFNpemU6IDAsXG4gICAgICAgICAgYm9keVNwYWNpbmc6IDUsXG4gICAgICAgICAgdGl0bGVTcGFjaW5nOiA1LFxuICAgICAgICAgIGJvcmRlckNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgbGFiZWxDb2xvcjogKHRvb2x0aXBJdGVtOiBUb29sdGlwSXRlbTxrZXlvZiBDaGFydFR5cGVSZWdpc3RyeT4pID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRvb2x0aXBJdGVtLmRhdGFzZXQuYm9yZGVyQ29sb3IsXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3NlbWktbGlnaHQnKSxcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMiwgLy8gVGhpcyB2YWx1ZSBtdXN0IGJlIGV4YWN0bHkgMi4gSWYgaXQgaXMgbGVzcywgYSB3aGl0ZSBcImJvcmRlclwiIHdpbGwgYXBwZWFyLCBpZiBncmVhdGVyIHRoYW4sIGEgc2hhZG93IGFyb3VuZCB0aGUgYm94IHdpbGwgYmUgc2hvd24uXG4gICAgICAgICAgICAgICAgLy8gQW4gaXNzdWUgaGFzIGJlZW4gY3JlYXRlZCwgcmVxdWVzdGluZyBhIHRlc3QgdG8gY2hlY2sgdGhpcyB2YWx1ZSBkb2VzbsK0dCBjaGFuZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzI1NzhcbiAgICAgICAgICAgICAgfSBhcyBUb29sdGlwTGFiZWxTdHlsZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YWxhYmVsczoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogKGNvbnRleHQ6IENvbnRleHQpID0+IGNvbnRleHQuZGF0YXNldC5ib3JkZXJDb2xvciBhcyBDb2xvcixcbiAgICAgICAgICBjb2xvcjogZ2V0VGhlbWVDb2xvckhleFN0cmluZygnd2hpdGUnKSxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDMsXG4gICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IHBhcnNlSW50KGZvbnRTaXplKCd4cycpKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgIHRvcDogNixcbiAgICAgICAgICAgIGxlZnQ6IDUsXG4gICAgICAgICAgICByaWdodDogNSxcbiAgICAgICAgICAgIGJvdHRvbTogNSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9mZnNldDogNSxcbiAgICAgICAgICBhbGlnbjogKGNvbnRleHQ6IENvbnRleHQpOiBBbGlnbiA9PlxuICAgICAgICAgICAgKGdldENoYXJ0UG9pbnRGcm9tQ29udGV4dChjb250ZXh0KSBhcyBhbnkpPy5kYXRhbGFiZWwucG9zaXRpb24sXG4gICAgICAgICAgZGlzcGxheTogKGNvbnRleHQ6IENvbnRleHQpOiBib29sZWFuID0+XG4gICAgICAgICAgICAhIShnZXRDaGFydFBvaW50RnJvbUNvbnRleHQoY29udGV4dCkgYXMgYW55KT8uZGF0YWxhYmVsLFxuICAgICAgICAgIGZvcm1hdHRlcjogKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4gdmFsdWUuZGF0YWxhYmVsLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { Injectable } from '@angular/core';\nimport { deepCopy } from '@kirbydesign/designsystem/helpers';\nimport { toDate } from 'date-fns';\nimport { CHART_ANNOTATIONS_CONFIG } from './configs/annotations.config';\nimport { CHART_INTERACTION_FUNCTIONS_EXTENSIONS } from './configs/interaction-functions-extensions.config';\nimport { CHART_TYPES_CONFIG } from './configs/type.config';\nimport * as i0 from \"@angular/core\";\nexport class ChartConfigService {\n getTypeConfig(chartType) {\n /* Deep copy to avoid Chart object modifying parts of CHART_TYPES_CONFIG\n as it copies by reference when initialized */\n return deepCopy(CHART_TYPES_CONFIG[chartType]);\n }\n getAnnotationDefaults(type) {\n return CHART_ANNOTATIONS_CONFIG[type];\n }\n /* Our types does not always map 1 to 1 to the same type\n that the chart.js chart is actually configured with. Therefore this function\n for looking up the ChartJSType of a type. */\n chartTypeToChartJSType(chartType) {\n return CHART_TYPES_CONFIG[chartType]['type'];\n }\n applyInteractionFunctionsExtensions(options) {\n const interactionFunctionsExtensions = CHART_INTERACTION_FUNCTIONS_EXTENSIONS;\n Object.entries(interactionFunctionsExtensions).forEach(([key]) => {\n const callback = options[key];\n options[key] = (e, a, c) => {\n interactionFunctionsExtensions[key](e, a, c, callback);\n };\n });\n return options;\n }\n getStockChartOptions(dataLabelOptions, locale) {\n return {\n locale: locale,\n plugins: {\n tooltip: {\n callbacks: {\n title: (tooltipItems) => {\n const date = toDate(tooltipItems[0]?.raw?.x);\n if (date.valueOf()) {\n return date.toLocaleTimeString(locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n },\n label: (context) => {\n // It's not possible to add spacing between color legend and text so we\n // prefix with a space.\n return ' ' + context.formattedValue + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n scales: {\n y: {\n ticks: {\n callback: (value) => {\n return value + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n };\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartConfigService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartConfigService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvc2hhcmVkL2NoYXJ0LWNvbmZpZy1zZXJ2aWNlL2NoYXJ0LWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzNELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsYUFBYSxDQUFDLFNBQW9CO1FBQ3ZDO3FEQUM2QztRQUM3QyxPQUFPLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxJQUFvQjtRQUMvQyxPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7aURBRTZDO0lBQ3RDLHNCQUFzQixDQUFDLFNBQW9CO1FBQ2hELE9BQU8sa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFnQixDQUFDO0lBQzlELENBQUM7SUFFTSxtQ0FBbUMsQ0FBQyxPQUFxQjtRQUM5RCxNQUFNLDhCQUE4QixHQUFHLHNDQUFzQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQVEsRUFBRSxDQUFrQixFQUFFLENBQVEsRUFBRSxFQUFFO2dCQUN4RCw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxnQkFBdUMsRUFBRSxNQUFtQjtRQUN0RixPQUFPO1lBQ0wsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFO29CQUNQLFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRTs0QkFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0NBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtvQ0FDckMsR0FBRyxFQUFFLFNBQVM7b0NBQ2QsS0FBSyxFQUFFLE9BQU87b0NBQ2QsSUFBSSxFQUFFLFNBQVM7b0NBQ2YsTUFBTSxFQUFFLFNBQVM7aUNBQ2xCLENBQUMsQ0FBQzs0QkFDTCxDQUFDO3dCQUNILENBQUM7d0JBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7NEJBQ2pCLHVFQUF1RTs0QkFDdkUsdUJBQXVCOzRCQUN2QixPQUFPLEdBQUcsR0FBRyxPQUFPLENBQUMsY0FBYyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUM3RSxDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFO29CQUNELEtBQUssRUFBRTt3QkFDTCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDbEIsT0FBTyxLQUFLLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQ3RELENBQUM7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO2tJQWhFVSxrQkFBa0I7c0lBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZXBDb3B5IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7IEFjdGl2ZUVsZW1lbnQsIENoYXJ0LCBDaGFydFR5cGUgYXMgQ2hhcnRKU1R5cGUsIENoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25UeXBlLCBBbm5vdGF0aW9uVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDaGFydERhdGFMYWJlbE9wdGlvbnMsIENoYXJ0TG9jYWxlLCBDaGFydFR5cGUsIENoYXJ0VHlwZUNvbmZpZyB9IGZyb20gJy4uL2NoYXJ0cy50eXBlcyc7XG5cbmltcG9ydCB7IENIQVJUX0FOTk9UQVRJT05TX0NPTkZJRyB9IGZyb20gJy4vY29uZmlncy9hbm5vdGF0aW9ucy5jb25maWcnO1xuaW1wb3J0IHsgQ0hBUlRfSU5URVJBQ1RJT05fRlVOQ1RJT05TX0VYVEVOU0lPTlMgfSBmcm9tICcuL2NvbmZpZ3MvaW50ZXJhY3Rpb24tZnVuY3Rpb25zLWV4dGVuc2lvbnMuY29uZmlnJztcbmltcG9ydCB7IENIQVJUX1RZUEVTX0NPTkZJRyB9IGZyb20gJy4vY29uZmlncy90eXBlLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGFydENvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgZ2V0VHlwZUNvbmZpZyhjaGFydFR5cGU6IENoYXJ0VHlwZSk6IENoYXJ0VHlwZUNvbmZpZyB7XG4gICAgLyogRGVlcCBjb3B5IHRvIGF2b2lkIENoYXJ0IG9iamVjdCBtb2RpZnlpbmcgcGFydHMgb2YgQ0hBUlRfVFlQRVNfQ09ORklHIFxuICAgIGFzIGl0IGNvcGllcyBieSByZWZlcmVuY2Ugd2hlbiBpbml0aWFsaXplZCAqL1xuICAgIHJldHVybiBkZWVwQ29weShDSEFSVF9UWVBFU19DT05GSUdbY2hhcnRUeXBlXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW5ub3RhdGlvbkRlZmF1bHRzKHR5cGU6IEFubm90YXRpb25UeXBlKTogQW5ub3RhdGlvblR5cGVSZWdpc3RyeVtBbm5vdGF0aW9uVHlwZV0ge1xuICAgIHJldHVybiBDSEFSVF9BTk5PVEFUSU9OU19DT05GSUdbdHlwZV07XG4gIH1cblxuICAvKiBPdXIgdHlwZXMgZG9lcyBub3QgYWx3YXlzIG1hcCAxIHRvIDEgdG8gdGhlIHNhbWUgdHlwZSBcbiAgdGhhdCB0aGUgY2hhcnQuanMgY2hhcnQgaXMgYWN0dWFsbHkgY29uZmlndXJlZCB3aXRoLiBUaGVyZWZvcmUgdGhpcyBmdW5jdGlvbiBcbiAgZm9yIGxvb2tpbmcgdXAgdGhlIENoYXJ0SlNUeXBlIG9mIGEgdHlwZS4gICovXG4gIHB1YmxpYyBjaGFydFR5cGVUb0NoYXJ0SlNUeXBlKGNoYXJ0VHlwZTogQ2hhcnRUeXBlKTogQ2hhcnRKU1R5cGUge1xuICAgIHJldHVybiBDSEFSVF9UWVBFU19DT05GSUdbY2hhcnRUeXBlXVsndHlwZSddIGFzIENoYXJ0SlNUeXBlO1xuICB9XG5cbiAgcHVibGljIGFwcGx5SW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKG9wdGlvbnM6IENoYXJ0T3B0aW9ucyk6IENoYXJ0T3B0aW9ucyB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zID0gQ0hBUlRfSU5URVJBQ1RJT05fRlVOQ1RJT05TX0VYVEVOU0lPTlM7XG4gICAgT2JqZWN0LmVudHJpZXMoaW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2sgPSBvcHRpb25zW2tleV07XG4gICAgICBvcHRpb25zW2tleV0gPSAoZTogRXZlbnQsIGE6IEFjdGl2ZUVsZW1lbnRbXSwgYzogQ2hhcnQpID0+IHtcbiAgICAgICAgaW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zW2tleV0oZSwgYSwgYywgY2FsbGJhY2spO1xuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdG9ja0NoYXJ0T3B0aW9ucyhkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnMsIGxvY2FsZTogQ2hhcnRMb2NhbGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAodG9vbHRpcEl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUoKHRvb2x0aXBJdGVtc1swXT8ucmF3IGFzIGFueSk/LngpO1xuICAgICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcobG9jYWxlLCB7XG4gICAgICAgICAgICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgICAgICAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYWJlbDogKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgLy8gSXQncyBub3QgcG9zc2libGUgdG8gYWRkIHNwYWNpbmcgYmV0d2VlbiBjb2xvciBsZWdlbmQgYW5kIHRleHQgc28gd2VcbiAgICAgICAgICAgICAgLy8gcHJlZml4IHdpdGggYSBzcGFjZS5cbiAgICAgICAgICAgICAgcmV0dXJuICcgJyArIGNvbnRleHQuZm9ybWF0dGVkVmFsdWUgKyAoZGF0YUxhYmVsT3B0aW9ucy52YWx1ZVN1ZmZpeCB8fCAnJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHk6IHtcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgKyAoZGF0YUxhYmVsT3B0aW9ucy52YWx1ZVN1ZmZpeCB8fCAnJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { chartConfigHasType, mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { isNumberArray, } from '../charts.types';\nimport { AnnotationsDelegate } from './annotations.delegate';\nimport { Chart } from './configured-chart-js';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../chart-config-service\";\nexport class ChartJSService {\n constructor(chartConfigService) {\n this.chartConfigService = chartConfigService;\n this.annotationsDelegate = new AnnotationsDelegate(chartConfigService);\n }\n renderChart(args) {\n const { targetElement, type, data, labels, customOptions, annotations, highlightedElements } = args;\n this.highlightedElements = highlightedElements || null;\n this.chartType = type;\n const datasets = this.createDatasets(data);\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n this.initializeNewChart(targetElement.nativeElement, config);\n }\n redrawChart() {\n this.chart.update();\n }\n destroyChart() {\n this.chart?.destroy();\n }\n updateData(data) {\n const datasets = this.createDatasets(data);\n this.chart.data.datasets = datasets;\n }\n updateLabels(labels) {\n /* As labels provided via the 'labels' input property always has\n highest priority - we can just set the property directly */\n this.chart.data.labels = labels;\n }\n updateType(type, customOptions) {\n if (type === 'bar' || type === 'column') {\n /* indexAxis does not update predictably; update by replacing\n the chart entirely instead */\n this.destructivelyUpdateType(type, customOptions);\n }\n else {\n this.nonDestructivelyUpdateType(type, customOptions);\n }\n }\n updateOptions(customOptions, type) {\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n this.chartType = type;\n this.chart.options = this.createOptionsObject({ customOptions, annotations });\n }\n updateAnnotations(annotations) {\n const annotationsWithDefaults = this.annotationsDelegate.applyDefaultsToAnnotations(annotations);\n this.chart.options.plugins.annotation.annotations = annotationsWithDefaults;\n }\n updateHighlightedElements(highlightedElements) {\n this.highlightedElements = highlightedElements;\n const oldDatasets = this.chart.data.datasets;\n // Clear old datasets of highlighted elements\n oldDatasets.map((dataset) => {\n if (dataset?.kirbyOptions?.highlightedElements) {\n delete dataset.kirbyOptions.highlightedElements;\n }\n });\n this.chart.data.datasets = this.createDatasets(oldDatasets);\n }\n createOptionsObject(args) {\n const { customOptions, annotations } = args;\n const typeConfig = this.chartConfigService.getTypeConfig(this.chartType);\n const typeConfigOptions = typeConfig?.options;\n const annotationPluginOptions = annotations\n ? this.annotationsDelegate.createAnnotationPluginOptionsObject(annotations)\n : {};\n const mergedOptions = mergeDeepAll(typeConfigOptions, customOptions, annotationPluginOptions);\n return this.chartConfigService.applyInteractionFunctionsExtensions(mergedOptions);\n }\n getDefaultLabels(datasets) {\n /*\n Chart.js requires labels along the index axis to render anything therefore\n use blank labels\n */\n const largestDataset = datasets.reduce((previousDataset, currentDataset) => previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset);\n return Array(largestDataset.data.length).fill('');\n }\n createConfigurationObject(type, datasets, options, labels) {\n const typeConfig = this.chartConfigService.getTypeConfig(type);\n const indexAxis = typeConfig?.options?.indexAxis ?? 'x';\n const labelsToApply = this.getLabelsToApply({ labels, datasets, type, indexAxis });\n return mergeDeepAll(typeConfig, {\n data: {\n labels: labelsToApply,\n datasets,\n },\n options,\n });\n }\n createDatasets(data) {\n const datasets = isNumberArray(data) ? [{ data }] : data;\n if (this.highlightedElements)\n this.addHighlightedElementsToDatasets(this.highlightedElements, datasets);\n return datasets;\n }\n destructivelyUpdateType(type, customOptions) {\n const datasets = this.chart.data.datasets;\n const labels = this.chart.data.labels; // chart.js stores labels as unknown[]; cast it to ChartLabel[]\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n this.chartType = type;\n const options = this.createOptionsObject({ customOptions, annotations });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n const canvasElement = this.chart.canvas;\n this.chart.destroy();\n this.initializeNewChart(canvasElement, config);\n }\n nonDestructivelyUpdateType(chartType, customOptions) {\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n this.chartType = chartType;\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n this.chart.options = options;\n if (chartConfigHasType(this.chart.config)) {\n this.chart.config.type = this.chartConfigService.chartTypeToChartJSType(chartType);\n }\n }\n initializeNewChart(canvasElement, config) {\n this.chart = new Chart(canvasElement, config);\n }\n addHighlightedElementsToDatasets(highlightedElements, datasets) {\n highlightedElements.forEach(([datasetIndex, dataIndex]) => {\n const dataset = datasets[datasetIndex];\n if (!dataset)\n return;\n if (dataset?.kirbyOptions?.highlightedElements) {\n dataset.kirbyOptions.highlightedElements.push(dataIndex);\n }\n else {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n highlightedElements: [dataIndex],\n };\n }\n });\n }\n getLabelsToApply(args) {\n const { datasets, labels, indexAxis } = args;\n const datasetHasLabels = ({ data }) => !!data?.some((datapoint) => typeof datapoint === 'object' && typeof datapoint[indexAxis] === 'string');\n /*\n Labels can be provided by the user two ways:\n 1. As a seperate ChartLabel[] via the 'labels' input prop - this has highest priority\n 2. Together with the dataset via the 'data' input prop - here each datapoint contains\n a label for the indexAxis.\n For example: { x: 'label1', y: 1} in the case where the index axis is 'x'.\n \n If no labels are provided then default labels are used.\n */\n const labelsAreGivenAsSeperateArray = labels !== undefined;\n const labelsAreGivenTogetherWithDataset = datasets.some(datasetHasLabels);\n if (labelsAreGivenAsSeperateArray) {\n return labels;\n }\n else if (labelsAreGivenTogetherWithDataset) {\n return null;\n }\n else {\n return this.getDefaultLabels(datasets);\n }\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartJSService, deps: [{ token: i1.ChartConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartJSService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartJSService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.ChartConfigService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvY2hhcnQtanMtc2VydmljZS9jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3JGLE9BQU8sRUFLTCxhQUFhLEdBQ2QsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUc5QyxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFzQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUMxRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxXQUFXLENBQUMsSUFRbEI7UUFDQyxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsR0FDMUYsSUFBSSxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN2QyxhQUFhO1lBQ2IsV0FBVztTQUNaLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFH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Z0JBQ04sT0FBTyxDQUFDLFlBQVksR0FBRztvQkFDckIsR0FBRyxPQUFPLENBQUMsWUFBWTtvQkFDdkIsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ2pDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFLeEI7UUFDQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFnQixFQUFFLEVBQUUsQ0FDbEQsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQ1YsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ3pGLENBQUM7UUFFSjs7Ozs7Ozs7VUFRRTtRQUNGLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQztRQUMzRCxNQUFNLGlDQUFpQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUxRSxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksaUNBQWlDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7a0lBN09VLGNBQWM7c0lBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoYXJ0Q29uZmlnSGFzVHlwZSwgbWVyZ2VEZWVwQWxsIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7IENoYXJ0Q29uZmlndXJhdGlvbiwgQ2hhcnRPcHRpb25zIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbk9wdGlvbnMgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcblxuaW1wb3J0IHsgQ2hhcnRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhcnQtY29uZmlnLXNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ2hhcnREYXRhc2V0LFxuICBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gIENoYXJ0TGFiZWwsXG4gIENoYXJ0VHlwZSxcbiAgaXNOdW1iZXJBcnJheSxcbn0gZnJvbSAnLi4vY2hhcnRzLnR5cGVzJztcblxuaW1wb3J0IHsgQW5ub3RhdGlvbnNEZWxlZ2F0ZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMuZGVsZWdhdGUnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuL2NvbmZpZ3VyZWQtY2hhcnQtanMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hhcnRKU1NlcnZpY2Uge1xuICBwcml2YXRlIGNoYXJ0OiBDaGFydDtcbiAgcHJpdmF0ZSBoaWdobGlnaHRlZEVsZW1lbnRzOiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XG4gIHByb3RlY3RlZCBjaGFydFR5cGU6IENoYXJ0VHlwZTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uc0RlbGVnYXRlOiBBbm5vdGF0aW9uc0RlbGVnYXRlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFydENvbmZpZ1NlcnZpY2U6IENoYXJ0Q29uZmlnU2VydmljZSkge1xuICAgIHRoaXMuYW5ub3RhdGlvbnNEZWxlZ2F0ZSA9IG5ldyBBbm5vdGF0aW9uc0RlbGVnYXRlKGNoYXJ0Q29uZmlnU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyQ2hhcnQoYXJnczoge1xuICAgIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIHR5cGU6IENoYXJ0VHlwZTtcbiAgICBkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdO1xuICAgIGxhYmVscz86IENoYXJ0TGFiZWxbXTtcbiAgICBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zO1xuICAgIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgICBoaWdobGlnaHRlZEVsZW1lbnRzPzogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3QgeyB0YXJnZXRFbGVtZW50LCB0eXBlLCBkYXRhLCBsYWJlbHMsIGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zLCBoaWdobGlnaHRlZEVsZW1lbnRzIH0gPVxuICAgICAgYXJncztcblxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyA9IGhpZ2hsaWdodGVkRWxlbWVudHMgfHwgbnVsbDtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IHR5cGU7XG5cbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMoZGF0YSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHtcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICB9KTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25PYmplY3QodHlwZSwgZGF0YXNldHMsIG9wdGlvbnMsIGxhYmVscyk7XG5cbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydCh0YXJnZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURhdGEoZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFzZXRzID0gdGhpcy5jcmVhdGVEYXRhc2V0cyhkYXRhKTtcblxuICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IGRhdGFzZXRzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxhYmVscyhsYWJlbHM6IENoYXJ0TGFiZWxbXSkge1xuICAgIC8qIEFzIGxhYmVscyBwcm92aWRlZCB2aWEgdGhlICdsYWJlbHMnIGlucHV0IHByb3BlcnR5IGFsd2F5cyBoYXMgXG4gICAgaGlnaGVzdCBwcmlvcml0eSAtIHdlIGNhbiBqdXN0IHNldCB0aGUgcHJvcGVydHkgZGlyZWN0bHkgKi9cbiAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gbGFiZWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgaWYgKHR5cGUgPT09ICdiYXInIHx8IHR5cGUgPT09ICdjb2x1bW4nKSB7XG4gICAgICAvKiBpbmRleEF4aXMgZG9lcyBub3QgdXBkYXRlIHByZWRpY3RhYmx5OyB1cGRhdGUgYnkgcmVwbGFjaW5nIFxuICAgICAgICAgdGhlIGNoYXJ0IGVudGlyZWx5IGluc3RlYWQgKi9cbiAgICAgIHRoaXMuZGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9uRGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU9wdGlvbnMoY3VzdG9tT3B0aW9uczogQ2hhcnRPcHRpb25zLCB0eXBlOiBDaGFydFR5cGUpIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuYW5ub3RhdGlvbnNEZWxlZ2F0ZS5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnModGhpcy5jaGFydCk7XG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIHRoaXMuY2hhcnQub3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7IGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFubm90YXRpb25zKGFubm90YXRpb25zOiBBbm5vdGF0aW9uT3B0aW9uc1tdKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHMgPVxuICAgICAgdGhpcy5hbm5vdGF0aW9uc0RlbGVnYXRlLmFwcGx5RGVmYXVsdHNUb0Fubm90YXRpb25zKGFubm90YXRpb25zKTtcbiAgICB0aGlzLmNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5hbm5vdGF0aW9uLmFubm90YXRpb25zID0gYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cyhoaWdobGlnaHRlZEVsZW1lbnRzPzogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgdGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzID0gaGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgICBjb25zdCBvbGREYXRhc2V0cyA9IHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyBhcyBDaGFydERhdGFzZXRbXTtcblxuICAgIC8vIENsZWFyIG9sZCBkYXRhc2V0cyBvZiBoaWdobGlnaHRlZCBlbGVtZW50c1xuICAgIG9sZERhdGFzZXRzLm1hcCgoZGF0YXNldCkgPT4ge1xuICAgICAgaWYgKGRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgICAgICBkZWxldGUgZGF0YXNldC5raXJieU9wdGlvbnMuaGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMob2xkRGF0YXNldHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9wdGlvbnNPYmplY3QoYXJnczoge1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gICAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uT3B0aW9uc1tdO1xuICB9KTogQ2hhcnRPcHRpb25zIHtcbiAgICBjb25zdCB7IGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmdldFR5cGVDb25maWcodGhpcy5jaGFydFR5cGUpO1xuICAgIGNvbnN0IHR5cGVDb25maWdPcHRpb25zID0gdHlwZUNvbmZpZz8ub3B0aW9ucztcbiAgICBjb25zdCBhbm5vdGF0aW9uUGx1Z2luT3B0aW9ucyA9IGFubm90YXRpb25zXG4gICAgICA/IHRoaXMuYW5ub3RhdGlvbnNEZWxlZ2F0ZS5jcmVhdGVBbm5vdGF0aW9uUGx1Z2luT3B0aW9uc09iamVjdChhbm5vdGF0aW9ucylcbiAgICAgIDoge307XG5cbiAgICBjb25zdCBtZXJnZWRPcHRpb25zOiBDaGFydE9wdGlvbnMgPSBtZXJnZURlZXBBbGwoXG4gICAgICB0eXBlQ29uZmlnT3B0aW9ucyxcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9uUGx1Z2luT3B0aW9uc1xuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuYXBwbHlJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMobWVyZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdExhYmVscyhkYXRhc2V0czogQ2hhcnREYXRhc2V0W10pOiBDaGFydExhYmVsIHwgQ2hhcnRMYWJlbFtdIHtcbiAgICAvKiBcbiAgICAgIENoYXJ0LmpzIHJlcXVpcmVzIGxhYmVscyBhbG9uZyB0aGUgaW5kZXggYXhpcyB0byByZW5kZXIgYW55dGhpbmcgdGhlcmVmb3JlXG4gICAgICB1c2UgYmxhbmsgbGFiZWxzIFxuICAgICovXG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gQXJyYXkobGFyZ2VzdERhdGFzZXQuZGF0YS5sZW5ndGgpLmZpbGwoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KFxuICAgIHR5cGU6IENoYXJ0VHlwZSxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W10sXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zLFxuICAgIGxhYmVscz86IENoYXJ0TGFiZWxbXVxuICApOiBDaGFydENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRUeXBlQ29uZmlnKHR5cGUpO1xuXG4gICAgY29uc3QgaW5kZXhBeGlzID0gdHlwZUNvbmZpZz8ub3B0aW9ucz8uaW5kZXhBeGlzID8/ICd4JztcbiAgICBjb25zdCBsYWJlbHNUb0FwcGx5ID0gdGhpcy5nZXRMYWJlbHNUb0FwcGx5KHsgbGFiZWxzLCBkYXRhc2V0cywgdHlwZSwgaW5kZXhBeGlzIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlRGVlcEFsbCh0eXBlQ29uZmlnLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVsczogbGFiZWxzVG9BcHBseSxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICB9KSBhcyBDaGFydENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlRGF0YXNldHMoZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXSk6IENoYXJ0RGF0YXNldFtdIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IGlzTnVtYmVyQXJyYXkoZGF0YSkgPyBbeyBkYXRhIH1dIDogZGF0YTtcblxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMpXG4gICAgICB0aGlzLmFkZEhpZ2hsaWdodGVkRWxlbWVudHNUb0RhdGFzZXRzKHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cywgZGF0YXNldHMpO1xuXG4gICAgcmV0dXJuIGRhdGFzZXRzO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZSh0eXBlOiBDaGFydFR5cGUsIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnMpIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyBhcyBDaGFydERhdGFzZXRbXTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzIGFzIENoYXJ0TGFiZWxbXTsgLy8gY2hhcnQuanMgc3RvcmVzIGxhYmVscyBhcyB1bmtub3duW107IGNhc3QgaXQgdG8gQ2hhcnRMYWJlbFtdXG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSB0aGlzLmFubm90YXRpb25zRGVsZWdhdGUuZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKHRoaXMuY2hhcnQpO1xuXG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNyZWF0ZU9wdGlvbnNPYmplY3QoeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucyB9KTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25PYmplY3QodHlwZSwgZGF0YXNldHMsIG9wdGlvbnMsIGxhYmVscyk7XG4gICAgY29uc3QgY2FudmFzRWxlbWVudCA9IHRoaXMuY2hhcnQuY2FudmFzO1xuXG4gICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgdGhpcy5pbml0aWFsaXplTmV3Q2hhcnQoY2FudmFzRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9uRGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUoY2hhcnRUeXBlOiBDaGFydFR5cGUsIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnMpIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuYW5ub3RhdGlvbnNEZWxlZ2F0ZS5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnModGhpcy5jaGFydCk7XG4gICAgdGhpcy5jaGFydFR5cGUgPSBjaGFydFR5cGU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7XG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYXJ0Lm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgaWYgKGNoYXJ0Q29uZmlnSGFzVHlwZSh0aGlzLmNoYXJ0LmNvbmZpZykpIHtcbiAgICAgIHRoaXMuY2hhcnQuY29uZmlnLnR5cGUgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5jaGFydFR5cGVUb0NoYXJ0SlNUeXBlKGNoYXJ0VHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTmV3Q2hhcnQoY2FudmFzRWxlbWVudDogSFRNTENhbnZhc0VsZW1lbnQsIGNvbmZpZzogQ2hhcnRDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydChjYW52YXNFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRIaWdobGlnaHRlZEVsZW1lbnRzVG9EYXRhc2V0cyhcbiAgICBoaWdobGlnaHRlZEVsZW1lbnRzOiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gICAgZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdXG4gICkge1xuICAgIGhpZ2hsaWdodGVkRWxlbWVudHMuZm9yRWFjaCgoW2RhdGFzZXRJbmRleCwgZGF0YUluZGV4XSkgPT4ge1xuICAgICAgY29uc3QgZGF0YXNldCA9IGRhdGFzZXRzW2RhdGFzZXRJbmRleF07XG4gICAgICBpZiAoIWRhdGFzZXQpIHJldHVybjtcblxuICAgICAgaWYgKGRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgICAgICBkYXRhc2V0LmtpcmJ5T3B0aW9ucy5oaWdobGlnaHRlZEVsZW1lbnRzLnB1c2goZGF0YUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zID0ge1xuICAgICAgICAgIC4uLmRhdGFzZXQua2lyYnlPcHRpb25zLFxuICAgICAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IFtkYXRhSW5kZXhdLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYWJlbHNUb0FwcGx5KGFyZ3M6IHtcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W107XG4gICAgdHlwZTogQ2hhcnRUeXBlO1xuICAgIGluZGV4QXhpczogJ3gnIHwgJ3knO1xuICAgIGxhYmVscz86IENoYXJ0TGFiZWxbXTtcbiAgfSkge1xuICAgIGNvbnN0IHsgZGF0YXNldHMsIGxhYmVscywgaW5kZXhBeGlzIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgZGF0YXNldEhhc0xhYmVscyA9ICh7IGRhdGEgfTogQ2hhcnREYXRhc2V0KSA9PlxuICAgICAgISFkYXRhPy5zb21lKFxuICAgICAgICAoZGF0YXBvaW50KSA9PiB0eXBlb2YgZGF0YXBvaW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZGF0YXBvaW50W2luZGV4QXhpc10gPT09ICdzdHJpbmcnXG4gICAgICApO1xuXG4gICAgLypcbiAgICAgICBMYWJlbHMgY2FuIGJlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIHR3byB3YXlzOlxuICAgICAgIDEuIEFzIGEgc2VwZXJhdGUgQ2hhcnRMYWJlbFtdIHZpYSB0aGUgJ2xhYmVscycgaW5wdXQgcHJvcCAtIHRoaXMgaGFzIGhpZ2hlc3QgcHJpb3JpdHlcbiAgICAgICAyLiBUb2dldGhlciB3aXRoIHRoZSBkYXRhc2V0IHZpYSB0aGUgJ2RhdGEnIGlucHV0IHByb3AgLSBoZXJlIGVhY2ggZGF0YXBvaW50IGNvbnRhaW5zIFxuICAgICAgIGEgbGFiZWwgZm9yIHRoZSBpbmRleEF4aXMuIFxuICAgICAgIEZvciBleGFtcGxlOiB7IHg6ICdsYWJlbDEnLCB5OiAxfSBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgaW5kZXggYXhpcyBpcyAneCcuIFxuXG4gICAgICAgSWYgbm8gbGFiZWxzIGFyZSBwcm92aWRlZCB0aGVuIGRlZmF1bHQgbGFiZWxzIGFyZSB1c2VkLiBcbiAgICAqL1xuICAgIGNvbnN0IGxhYmVsc0FyZUdpdmVuQXNTZXBlcmF0ZUFycmF5ID0gbGFiZWxzICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgbGFiZWxzQXJlR2l2ZW5Ub2dldGhlcldpdGhEYXRhc2V0ID0gZGF0YXNldHMuc29tZShkYXRhc2V0SGFzTGFiZWxzKTtcblxuICAgIGlmIChsYWJlbHNBcmVHaXZlbkFzU2VwZXJhdGVBcnJheSkge1xuICAgICAgcmV0dXJuIGxhYmVscztcbiAgICB9IGVsc2UgaWYgKGxhYmVsc0FyZUdpdmVuVG9nZXRoZXJXaXRoRGF0YXNldCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRMYWJlbHMoZGF0YXNldHMpO1xuICAgIH1cbiAgfVxufVxuIl19","export const TEST_CHART_TYPES_CONFIG = {\n bar: {\n type: 'bar',\n options: {\n indexAxis: 'y',\n elements: {\n line: {\n borderColor: 'blue',\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n backgroundColor: 'red',\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: 'blue',\n elements: {\n line: {\n borderColor: 'red',\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n locale: 'en-US',\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 0,\n right: 10,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: 'rgba(235, 235, 235, 0.5)',\n scales: {\n x: {\n type: 'time',\n time: {\n unit: 'day',\n displayFormats: {\n hour: 'HH:mm',\n day: 'MMM d',\n },\n },\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n source: 'data',\n autoSkipPadding: 40,\n font: {\n size: 12,\n },\n },\n adapters: {\n date: {\n locale: {\n code: 'en-US',\n formatLong: {},\n localize: {},\n match: {},\n options: {\n weekStartsOn: 0,\n firstWeekContainsDate: 1,\n },\n },\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: 12,\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0,\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n mode: 'index',\n intersect: false,\n caretSize: 1,\n caretPadding: 12,\n displayColors: true,\n backgroundColor: '#ebebeb',\n padding: 8,\n titleColor: 'black',\n bodyColor: 'black',\n titleFont: {\n weight: 'normal',\n size: 12,\n },\n bodyFont: {\n size: 16,\n weight: 'bold',\n },\n callbacks: {},\n },\n // marker: {\n // line: {\n // color: 'red',\n // },\n // },\n datalabels: {\n color: '#ffffff',\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: 12,\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n },\n },\n },\n },\n};\nexport const TEST_CHART_ANNOTATIONS_CONFIG = {\n line: {\n borderDash: [6, 3],\n },\n ellipse: {\n borderDash: [3, 6],\n },\n box: {},\n point: {\n backgroundColor: 'initial',\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvY2hhcnQtanMtc2VydmljZS90ZXN0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFxQjtJQUN2RCxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxHQUFHO1lBQ2QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRTtvQkFDSixXQUFXLEVBQUUsTUFBTTtpQkFDcEI7YUFDRjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRTtZQUNQLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRTtZQUNQLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUU7b0JBQ0osV0FBVyxFQUFFLEtBQUs7aUJBQ25CO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUU7WUFDUCxNQUFNLEVBQUUsT0FBTztZQUNmLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUUsQ0FBQzthQUNaO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsQ0FBQztvQkFDUCxLQUFLLEVBQUUsRUFBRTtvQkFDVCxHQUFHLEVBQUUsRUFBRTtvQkFDUCxNQUFNLEVBQUUsQ0FBQztpQkFDVjthQUNGO1lBQ0QsZUFBZSxFQUFFLDBCQUEwQjtZQUMzQyxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFO29CQUNELElBQUksRUFBRSxNQUFNO29CQUNaLElBQUks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RTtJQUNQLEtBQUssRUFBRTtRQUNMLGVBQWUsRUFBRSxTQUFTO0tBQzNCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25UeXBlUmVnaXN0cnkgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcbmltcG9ydCB7IENoYXJ0VHlwZXNDb25maWcgfSBmcm9tICcuLi9jaGFydHMudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgVEVTVF9DSEFSVF9UWVBFU19DT05GSUc6IENoYXJ0VHlwZXNDb25maWcgPSB7XG4gIGJhcjoge1xuICAgIHR5cGU6ICdiYXInLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGluZGV4QXhpczogJ3knLFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIGJvcmRlckNvbG9yOiAnYmx1ZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGNvbHVtbjoge1xuICAgIHR5cGU6ICdiYXInLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JlZCcsXG4gICAgfSxcbiAgfSxcbiAgbGluZToge1xuICAgIHR5cGU6ICdsaW5lJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdibHVlJyxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICBib3JkZXJDb2xvcjogJ3JlZCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHN0b2NrOiB7XG4gICAgdHlwZTogJ2xpbmUnLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGxvY2FsZTogJ2VuLVVTJyxcbiAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICBhbmltYXRpb246IHtcbiAgICAgICAgZHVyYXRpb246IDAsXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHJpZ2h0OiAxMCxcbiAgICAgICAgICB0b3A6IDMwLFxuICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDIzNSwgMjM1LCAyMzUsIDAuNSknLFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICB0eXBlOiAndGltZScsXG4gICAgICAgICAgdGltZToge1xuICAgICAgICAgICAgdW5pdDogJ2RheScsXG4gICAgICAgICAgICBkaXNwbGF5Rm9ybWF0czoge1xuICAgICAgICAgICAgICBob3VyOiAnSEg6bW0nLFxuICAgICAgICAgICAgICBkYXk6ICdNTU0gZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgbGluZVdpZHRoOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgIG1heFJvdGF0aW9uOiAwLFxuICAgICAgICAgICAgc291cmNlOiAnZGF0YScsXG4gICAgICAgICAgICBhdXRvU2tpcFBhZGRpbmc6IDQwLFxuICAgICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgICBzaXplOiAxMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhZGFwdGVyczoge1xuICAgICAgICAgICAgZGF0ZToge1xuICAgICAgICAgICAgICBsb2NhbGU6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnZW4tVVMnLFxuICAgICAgICAgICAgICAgIGZvcm1hdExvbmc6IHt9LFxuICAgICAgICAgICAgICAgIGxvY2FsaXplOiB7fSxcbiAgICAgICAgICAgICAgICBtYXRjaDoge30sXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgd2Vla1N0YXJ0c09uOiAwLFxuICAgICAgICAgICAgICAgICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGRyYXdCb3JkZXI6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICAgIHNpemU6IDEyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICB0ZW5zaW9uOiAwLFxuICAgICAgICAgIGJvcmRlcldpZHRoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBwb2ludDoge1xuICAgICAgICAgIGhpdFJhZGl1czogMjAsXG4gICAgICAgICAgcmFkaXVzOiAwLFxuICAgICAgICAgIGhvdmVyUmFkaXVzOiAwLFxuICAgICAgICAgIGhvdmVyQm9yZGVyV2lkdGg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbm9ybWFsaXplZDogdHJ1ZSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgIG1vZGU6ICdpbmRleCcsXG4gICAgICAgICAgaW50ZXJzZWN0OiBmYWxzZSxcbiAgICAgICAgICBjYXJldFNpemU6IDEsXG4gICAgICAgICAgY2FyZXRQYWRkaW5nOiAxMixcbiAgICAgICAgICBkaXNwbGF5Q29sb3JzOiB0cnVlLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNlYmViZWInLFxuICAgICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgICAgdGl0bGVDb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICBib2R5Q29sb3I6ICdibGFjaycsXG4gICAgICAgICAgdGl0bGVGb250OiB7XG4gICAgICAgICAgICB3ZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgICAgICAgc2l6ZTogMTIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBib2R5Rm9udDoge1xuICAgICAgICAgICAgc2l6ZTogMTYsXG4gICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbGxiYWNrczoge30sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIG1hcmtlcjoge1xuICAgICAgICAvLyAgIGxpbmU6IHtcbiAgICAgICAgLy8gICAgIGNvbG9yOiAncmVkJyxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9LFxuICAgICAgICBkYXRhbGFiZWxzOiB7XG4gICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDMsXG4gICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IDEyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgdG9wOiA2LFxuICAgICAgICAgICAgbGVmdDogNSxcbiAgICAgICAgICAgIHJpZ2h0OiA1LFxuICAgICAgICAgICAgYm90dG9tOiA1LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb2Zmc2V0OiA1LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFRFU1RfQ0hBUlRfQU5OT1RBVElPTlNfQ09ORklHOiBPbWl0PEFubm90YXRpb25UeXBlUmVnaXN0cnksICdsYWJlbCcgfCAncG9seWdvbic+ID0ge1xuICBsaW5lOiB7XG4gICAgYm9yZGVyRGFzaDogWzYsIDNdLFxuICB9LFxuICBlbGxpcHNlOiB7XG4gICAgYm9yZGVyRGFzaDogWzMsIDZdLFxuICB9LFxuICBib3g6IHt9LFxuICBwb2ludDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogJ2luaXRpYWwnLFxuICB9LFxufTtcbiJdfQ==","import { Component, HostBinding, Input, ViewChild, } from '@angular/core';\nimport { ResizeObserverFactory } from '@kirbydesign/designsystem/shared';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../chart-js-service/\";\nexport class BaseChartComponent {\n set height(value) {\n this._height = typeof value === 'number' ? `${value}px` : value;\n }\n constructor(chartJSService) {\n this.chartJSService = chartJSService;\n this.chartHasBeenRendered = false;\n }\n ngAfterViewInit() {\n /*\n A chart is not rendered until it has both a height and a width.\n If ChartComponent is slotted in an ionic component it will\n not have any height or width on afterViewInit. This will cause\n the animation to not be played on first draw.\n */\n const canvasElement = this.canvasElement.nativeElement;\n this.whenElementHasHeightAndWidth(canvasElement).then(() => this.renderChart());\n }\n whenElementHasHeightAndWidth(element) {\n const rectIs2D = ({ width, height }) => height > 0 && width > 0;\n return new Promise((resolve) => {\n const initialClientRect = element.getBoundingClientRect();\n if (rectIs2D(initialClientRect))\n resolve();\n const resizeObserver = new ResizeObserverFactory().create(([resizeObserverEntry]) => {\n if (rectIs2D(resizeObserverEntry.contentRect)) {\n resizeObserver.unobserve(element);\n resolve();\n }\n });\n resizeObserver.observe(element);\n });\n }\n ngOnChanges(simpleChanges) {\n if (this.chartHasBeenRendered) {\n let shouldRedrawChart = false;\n const keyUpdateFnPairs = {\n data: () => this.updateData(),\n labels: () => this.updateLabels(),\n type: () => this.updateType(),\n customOptions: () => this.updateCustomOptions(),\n annotations: () => this.updateAnnotations(),\n highlightedElements: () => this.updateHighlightedElements(),\n };\n Object.entries(simpleChanges).forEach(([key]) => {\n if (simpleChanges[key].firstChange || !keyUpdateFnPairs[key])\n return;\n shouldRedrawChart = true;\n keyUpdateFnPairs[key]();\n });\n if (shouldRedrawChart)\n this.redrawChart();\n }\n }\n renderChart(additionalArgs) {\n this.chartHasBeenRendered = true;\n this.chartJSService.renderChart({\n targetElement: this.canvasElement,\n type: this.type,\n data: this.data,\n labels: this.labels,\n customOptions: this.customOptions,\n annotations: this.annotations,\n highlightedElements: this.highlightedElements,\n ...additionalArgs,\n });\n }\n updateData() {\n this.chartJSService.updateData(this.data);\n }\n updateLabels() {\n this.chartJSService.updateLabels(this.labels);\n }\n updateType() {\n this.chartJSService.updateType(this.type, this.customOptions);\n }\n updateCustomOptions() {\n this.chartJSService.updateOptions(this.customOptions, this.type);\n }\n updateAnnotations() {\n this.chartJSService.updateAnnotations(this.annotations);\n }\n updateHighlightedElements() {\n this.chartJSService.updateHighlightedElements(this.highlightedElements);\n }\n redrawChart() {\n this.chartJSService.redrawChart();\n }\n ngOnDestroy() {\n this.chartJSService.destroyChart();\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: BaseChartComponent, deps: [{ token: i1.ChartJSService }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: BaseChartComponent, isStandalone: true, selector: \"kirby-base-chart\", inputs: { type: \"type\", data: \"data\", labels: \"labels\", customOptions: \"customOptions\", annotations: \"annotations\", highlightedElements: \"highlightedElements\", height: \"height\" }, host: { properties: { \"style.--kirby-chart-height\": \"this._height\" } }, viewQueries: [{ propertyName: \"canvasElement\", first: true, predicate: [\"chartCanvas\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: BaseChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-base-chart', template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.ChartJSService }], propDecorators: { type: [{\n type: Input\n }], data: [{\n type: Input\n }], labels: [{\n type: Input\n }], customOptions: [{\n type: Input\n }], annotations: [{\n type: Input\n }], highlightedElements: [{\n type: Input\n }], _height: [{\n type: HostBinding,\n args: ['style.--kirby-chart-height']\n }], height: [{\n type: Input\n }], canvasElement: [{\n type: ViewChild,\n args: ['chartCanvas']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvc2hhcmVkL2Jhc2UtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvc2hhcmVkL2Jhc2UtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZekUsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QixJQUFhLE1BQU0sQ0FBQyxLQUFzQjtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xFLENBQUM7SUFPRCxZQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGNUMseUJBQW9CLEdBQVksS0FBSyxDQUFDO0lBRVMsQ0FBQztJQUV4RCxlQUFlO1FBQ2I7Ozs7O1VBS0U7UUFDRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUN2RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxPQUFvQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FB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QyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7a0lBdkhVLGtCQUFrQjtzSEFBbEIsa0JBQWtCLDJjQ3ZCL0Isa1JBT0E7OzRGRGdCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0Usa0JBQWtCOztzQkFLM0IsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBRUwsS0FBSzs7c0JBRUwsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBRUwsV0FBVzt1QkFBQyw0QkFBNEI7O3NCQUV4QyxLQUFLOztzQkFJTCxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlckZhY3RvcnkgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uT3B0aW9ucyB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuXG5pbXBvcnQgeyBDaGFydERhdGFzZXQsIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cywgQ2hhcnRMYWJlbCwgQ2hhcnRUeXBlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB7IENoYXJ0SlNTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhcnQtanMtc2VydmljZS8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1iYXNlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlO1xuICBASW5wdXQoKSBkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpIGxhYmVsczogQ2hhcnRMYWJlbFtdO1xuXG4gIEBJbnB1dCgpIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0ta2lyYnktY2hhcnQtaGVpZ2h0JylcbiAgX2hlaWdodDogc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgaGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gYCR7dmFsdWV9cHhgIDogdmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpXG4gIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2hhcnRIYXNCZWVuUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2hhcnRKU1NlcnZpY2U6IENoYXJ0SlNTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvKlxuICAgICAgIEEgY2hhcnQgaXMgbm90IHJlbmRlcmVkIHVudGlsIGl0IGhhcyBib3RoIGEgaGVpZ2h0IGFuZCBhIHdpZHRoLlxuICAgICAgIElmIENoYXJ0Q29tcG9uZW50IGlzIHNsb3R0ZWQgaW4gYW4gaW9uaWMgY29tcG9uZW50IGl0IHdpbGxcbiAgICAgICBub3QgaGF2ZSBhbnkgaGVpZ2h0IG9yIHdpZHRoIG9uIGFmdGVyVmlld0luaXQuIFRoaXMgd2lsbCBjYXVzZVxuICAgICAgIHRoZSBhbmltYXRpb24gdG8gbm90IGJlIHBsYXllZCBvbiBmaXJzdCBkcmF3LlxuICAgICovXG4gICAgY29uc3QgY2FudmFzRWxlbWVudCA9IHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMud2hlbkVsZW1lbnRIYXNIZWlnaHRBbmRXaWR0aChjYW52YXNFbGVtZW50KS50aGVuKCgpID0+IHRoaXMucmVuZGVyQ2hhcnQoKSk7XG4gIH1cblxuICBwcml2YXRlIHdoZW5FbGVtZW50SGFzSGVpZ2h0QW5kV2lkdGgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWN0SXMyRCA9ICh7IHdpZHRoLCBoZWlnaHQgfSkgPT4gaGVpZ2h0ID4gMCAmJiB3aWR0aCA+IDA7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxDbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChyZWN0SXMyRChpbml0aWFsQ2xpZW50UmVjdCkpIHJlc29sdmUoKTtcblxuICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXJGYWN0b3J5KCkuY3JlYXRlKChbcmVzaXplT2JzZXJ2ZXJFbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKHJlY3RJczJEKHJlc2l6ZU9ic2VydmVyRW50cnkuY29udGVudFJlY3QpKSB7XG4gICAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuY2hhcnRIYXNCZWVuUmVuZGVyZWQpIHtcbiAgICAgIGxldCBzaG91bGRSZWRyYXdDaGFydCA9IGZhbHNlO1xuXG4gICAgICBjb25zdCBrZXlVcGRhdGVGblBhaXJzID0ge1xuICAgICAgICBkYXRhOiAoKSA9PiB0aGlzLnVwZGF0ZURhdGEoKSxcbiAgICAgICAgbGFiZWxzOiAoKSA9PiB0aGlzLnVwZGF0ZUxhYmVscygpLFxuICAgICAgICB0eXBlOiAoKSA9PiB0aGlzLnVwZGF0ZVR5cGUoKSxcbiAgICAgICAgY3VzdG9tT3B0aW9uczogKCkgPT4gdGhpcy51cGRhdGVDdXN0b21PcHRpb25zKCksXG4gICAgICAgIGFubm90YXRpb25zOiAoKSA9PiB0aGlzLnVwZGF0ZUFubm90YXRpb25zKCksXG4gICAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6ICgpID0+IHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cygpLFxuICAgICAgfTtcblxuICAgICAgT2JqZWN0LmVudHJpZXMoc2ltcGxlQ2hhbmdlcykuZm9yRWFjaCgoW2tleV0pID0+IHtcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXNba2V5XS5maXJzdENoYW5nZSB8fCAha2V5VXBkYXRlRm5QYWlyc1trZXldKSByZXR1cm47XG4gICAgICAgIHNob3VsZFJlZHJhd0NoYXJ0ID0gdHJ1ZTtcbiAgICAgICAga2V5VXBkYXRlRm5QYWlyc1trZXldKCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHNob3VsZFJlZHJhd0NoYXJ0KSB0aGlzLnJlZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckNoYXJ0KGFkZGl0aW9uYWxBcmdzPzogYW55KSB7XG4gICAgdGhpcy5jaGFydEhhc0JlZW5SZW5kZXJlZCA9IHRydWU7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS5yZW5kZXJDaGFydCh7XG4gICAgICB0YXJnZXRFbGVtZW50OiB0aGlzLmNhbnZhc0VsZW1lbnQsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBsYWJlbHM6IHRoaXMubGFiZWxzLFxuICAgICAgY3VzdG9tT3B0aW9uczogdGhpcy5jdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnM6IHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICBoaWdobGlnaHRlZEVsZW1lbnRzOiB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMsXG4gICAgICAuLi5hZGRpdGlvbmFsQXJncyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0YSgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZURhdGEodGhpcy5kYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFiZWxzKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlTGFiZWxzKHRoaXMubGFiZWxzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVHlwZSgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZVR5cGUodGhpcy50eXBlLCB0aGlzLmN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDdXN0b21PcHRpb25zKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlT3B0aW9ucyh0aGlzLmN1c3RvbU9wdGlvbnMsIHRoaXMudHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFubm90YXRpb25zKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlQW5ub3RhdGlvbnModGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd0NoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UucmVkcmF3Q2hhcnQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UuZGVzdHJveUNoYXJ0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cbiAgPGNhbnZhcyAjY2hhcnRDYW52YXM+XG4gICAgPCEtLSBTbG90dGVkIGNvbnRlbnQgbWFrZXMgaXQgcG9zc2libGUgdG8gaW5zZXJ0IGZhbGxiYWNrIGNvbnRlbnQgZm9yIHNjcmVlbiByZWFkZXJzIFxuICAgIGh0dHBzOi8vd3d3LmNoYXJ0anMub3JnL2RvY3MvbGF0ZXN0L2dlbmVyYWwvYWNjZXNzaWJpbGl0eS5odG1sLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2NhbnZhcz5cbjwvZGl2PlxuIl19","import { Component, Input } from '@angular/core';\nimport { BaseChartComponent, ChartJSService } from '../shared';\nimport * as i0 from \"@angular/core\";\nexport class ChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.type = 'column';\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: ChartComponent, isStandalone: true, selector: \"kirby-chart\", inputs: { type: \"type\" }, providers: [ChartJSService], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-chart', providers: [ChartJSService], template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }]\n }], propDecorators: { type: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2hhcnQvc3JjL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvYmFzZS1jaGFydC9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQWEsTUFBTSxXQUFXLENBQUM7O0FBUTFFLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBTnREOztRQU9XLFNBQUksR0FBZ0MsUUFBUSxDQUFDO0tBQ3ZEO2tJQUZZLGNBQWM7c0hBQWQsY0FBYyxvRkFGZCxDQUFDLGNBQWMsQ0FBQyxpRENSN0Isa1JBT0E7OzRGREdhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsY0FBYyxDQUFDOztzQkFHMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50LCBDaGFydEpTU2VydmljZSwgQ2hhcnRUeXBlIH0gZnJvbSAnLi4vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4uL3NoYXJlZC9iYXNlLWNoYXJ0L2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vc2hhcmVkL2Jhc2UtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDaGFydEpTU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNoYXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdHlwZTogRXhjbHVkZTxDaGFydFR5cGUsICdzdG9jayc+ID0gJ2NvbHVtbic7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gIDxjYW52YXMgI2NoYXJ0Q2FudmFzPlxuICAgIDwhLS0gU2xvdHRlZCBjb250ZW50IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGluc2VydCBmYWxsYmFjayBjb250ZW50IGZvciBzY3JlZW4gcmVhZGVycyBcbiAgICBodHRwczovL3d3dy5jaGFydGpzLm9yZy9kb2NzL2xhdGVzdC9nZW5lcmFsL2FjY2Vzc2liaWxpdHkuaHRtbC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9jYW52YXM+XG48L2Rpdj5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { toDate } from 'date-fns';\nimport { ChartJSService, } from '../shared';\nimport * as i0 from \"@angular/core\";\nexport class StockChartJSService extends ChartJSService {\n constructor() {\n super(...arguments);\n this.chartType = 'stock';\n }\n static { this.STOCK_CHART_LOCALE_DEFAULT = 'en-US'; }\n renderChart(args) {\n const { dataLabelOptions, ...superArgs } = args;\n this.dataLabelOptions = dataLabelOptions || null;\n super.renderChart(superArgs);\n }\n get locale() {\n return this.dataLabelOptions?.locale || StockChartJSService.STOCK_CHART_LOCALE_DEFAULT;\n }\n getDefaultLabels(datasets) {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) => previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset);\n return largestDataset.data.map((point) => toDate(point.x).toLocaleDateString(this.locale, {\n month: 'short',\n day: 'numeric',\n }));\n }\n createOptionsObject(args) {\n const superOptions = super.createOptionsObject(args);\n const stockOptions = this.chartConfigService.getStockChartOptions(this.dataLabelOptions, this.locale);\n return mergeDeepAll(stockOptions, superOptions);\n }\n createDatasets(data) {\n let datasets = super.createDatasets(data);\n /*\n Hacky solution. Should be fixed in this issue:\n https://github.com/kirbydesign/designsystem/issues/1967\n */\n // We need to modify the datasets in order to add datalabels.\n if (this.dataLabelOptions?.showCurrent ||\n this.dataLabelOptions?.showMax ||\n this.dataLabelOptions?.showMin) {\n datasets = this.addDataLabelsData(datasets);\n }\n return datasets.map((dataset) => ({\n ...dataset,\n kirbyOptions: { ...dataset.kirbyOptions, isStockChart: true },\n }));\n }\n /**\n * Decorate ChartDataset with properties to allow for datalabels.\n *\n * @param data\n * @returns ChartDataset[]\n */\n addDataLabelsData(data) {\n const decorateDataPoint = (set, axis, direction, position) => {\n const { value, pointer } = this.locateValueIndexInDataset(set, axis, direction);\n set.data[pointer] = {\n ...set.data[pointer],\n datalabel: {\n value: value + (this.dataLabelOptions.valueSuffix || ''),\n position,\n },\n };\n };\n data.map((set) => {\n if (this.dataLabelOptions.showMin) {\n decorateDataPoint(set, 'y', 'low', 'bottom');\n }\n if (this.dataLabelOptions.showMax) {\n decorateDataPoint(set, 'y', 'high', 'top');\n }\n if (this.dataLabelOptions.showCurrent) {\n decorateDataPoint(set, 'x', 'high', 'right');\n }\n });\n return data;\n }\n locateValueIndexInDataset(dataset, axis, direction) {\n let pointer;\n let value;\n dataset.data.forEach((datapoint, index) => {\n if (direction == 'low' && (!value || datapoint[axis] < value)) {\n value = datapoint['y'];\n pointer = index;\n }\n if (direction == 'high' && (!value || datapoint[axis] > value)) {\n value = datapoint['y'];\n pointer = index;\n }\n });\n return { value, pointer };\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: StockChartJSService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: StockChartJSService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: StockChartJSService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zdG9jay1jaGFydC9zdG9jay1jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUdMLGNBQWMsR0FJZixNQUFNLFdBQVcsQ0FBQzs7QUFHbkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFEdkQ7O1FBSXFCLGNBQVMsR0FBRyxPQUFPLENBQUM7S0E0SHhDO2FBOUhRLCtCQUEwQixHQUFnQixPQUFPLEFBQXZCLENBQXdCO0lBS2xELFdBQVcsQ0FBQyxJQVNsQjtRQUNDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ2pELEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLElBQUksbUJBQW1CLENBQUMsMEJBQTBCLENBQUM7SUFDekYsQ0FBQztJQUVTLGdCQUFnQixDQUFDLFFBQXdCO1FBQ2pELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FDekUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMs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Q2QsQ0FBQztJQUVPLHlCQUF5QixDQUMvQixPQUFxQixFQUNyQixJQUFZLEVBQ1osU0FBeUI7UUFFekIsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxLQUFhLENBQUM7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlELEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDbEIsQ0FBQztZQUNELElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztrSUE5SFUsbUJBQW1CO3NJQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZURlZXBBbGwgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ2hhcnREYXRhc2V0LCBDaGFydE9wdGlvbnMsIFNjYXR0ZXJEYXRhUG9pbnQgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uT3B0aW9ucyB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQge1xuICBDaGFydERhdGFMYWJlbE9wdGlvbnMsXG4gIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgQ2hhcnRKU1NlcnZpY2UsXG4gIENoYXJ0TGFiZWwsXG4gIENoYXJ0TG9jYWxlLFxuICBDaGFydFR5cGUsXG59IGZyb20gJy4uL3NoYXJlZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdG9ja0NoYXJ0SlNTZXJ2aWNlIGV4dGVuZHMgQ2hhcnRKU1NlcnZpY2Uge1xuICBzdGF0aWMgU1RPQ0tfQ0hBUlRfTE9DQUxFX0RFRkFVTFQ6IENoYXJ0TG9jYWxlID0gJ2VuLVVTJztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhcnRUeXBlID0gJ3N0b2NrJztcbiAgcHJpdmF0ZSBkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG5cbiAgcHVibGljIHJlbmRlckNoYXJ0KGFyZ3M6IHtcbiAgICB0YXJnZXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcbiAgICB0eXBlOiBDaGFydFR5cGU7XG4gICAgZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXTtcbiAgICBsYWJlbHM/OiBDaGFydExhYmVsW107XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gICAgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgICBoaWdobGlnaHRlZEVsZW1lbnRzPzogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3QgeyBkYXRhTGFiZWxPcHRpb25zLCAuLi5zdXBlckFyZ3MgfSA9IGFyZ3M7XG4gICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zID0gZGF0YUxhYmVsT3B0aW9ucyB8fCBudWxsO1xuICAgIHN1cGVyLnJlbmRlckNoYXJ0KHN1cGVyQXJncyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBsb2NhbGUoKTogQ2hhcnRMb2NhbGUge1xuICAgIHJldHVybiB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LmxvY2FsZSB8fCBTdG9ja0NoYXJ0SlNTZXJ2aWNlLlNUT0NLX0NIQVJUX0xPQ0FMRV9ERUZBVUxUO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdKSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gbGFyZ2VzdERhdGFzZXQuZGF0YS5tYXAoKHBvaW50OiBTY2F0dGVyRGF0YVBvaW50KSA9PlxuICAgICAgdG9EYXRlKHBvaW50LngpLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSwge1xuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT3B0aW9uc09iamVjdChhcmdzOiB7XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gIH0pOiBDaGFydE9wdGlvbnMge1xuICAgIGNvbnN0IHN1cGVyT3B0aW9ucyA9IHN1cGVyLmNyZWF0ZU9wdGlvbnNPYmplY3QoYXJncyk7XG4gICAgY29uc3Qgc3RvY2tPcHRpb25zOiBDaGFydE9wdGlvbnMgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRTdG9ja0NoYXJ0T3B0aW9ucyhcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucyxcbiAgICAgIHRoaXMubG9jYWxlXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZURlZXBBbGwoc3RvY2tPcHRpb25zLCBzdXBlck9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZURhdGFzZXRzKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pIHtcbiAgICBsZXQgZGF0YXNldHMgPSBzdXBlci5jcmVhdGVEYXRhc2V0cyhkYXRhKTtcbiAgICAvKiBcbiAgICAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6XG4gICAgICBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8xOTY3IFxuICAgICovXG4gICAgLy8gV2UgbmVlZCB0byBtb2RpZnkgdGhlIGRhdGFzZXRzIGluIG9yZGVyIHRvIGFkZCBkYXRhbGFiZWxzLlxuICAgIGlmIChcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucz8uc2hvd0N1cnJlbnQgfHxcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucz8uc2hvd01heCB8fFxuICAgICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zPy5zaG93TWluXG4gICAgKSB7XG4gICAgICBkYXRhc2V0cyA9IHRoaXMuYWRkRGF0YUxhYmVsc0RhdGEoZGF0YXNldHMpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhc2V0cy5tYXAoKGRhdGFzZXQ6IGFueSkgPT4gKHtcbiAgICAgIC4uLmRhdGFzZXQsXG4gICAgICBraXJieU9wdGlvbnM6IHsgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsIGlzU3RvY2tDaGFydDogdHJ1ZSB9LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvcmF0ZSBDaGFydERhdGFzZXQgd2l0aCBwcm9wZXJ0aWVzIHRvIGFsbG93IGZvciBkYXRhbGFiZWxzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyBDaGFydERhdGFzZXRbXVxuICAgKi9cbiAgcHJpdmF0ZSBhZGREYXRhTGFiZWxzRGF0YShkYXRhOiBDaGFydERhdGFzZXRbXSk6IENoYXJ0RGF0YXNldFtdIHtcbiAgICBjb25zdCBkZWNvcmF0ZURhdGFQb2ludCA9IChcbiAgICAgIHNldDogQ2hhcnREYXRhc2V0LFxuICAgICAgYXhpczogJ3gnIHwgJ3knLFxuICAgICAgZGlyZWN0aW9uOiAnaGlnaCcgfCAnbG93JyxcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyB8ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgcG9pbnRlciB9ID0gdGhpcy5sb2NhdGVWYWx1ZUluZGV4SW5EYXRhc2V0KHNldCwgYXhpcywgZGlyZWN0aW9uKTtcbiAgICAgIHNldC5kYXRhW3BvaW50ZXJdID0ge1xuICAgICAgICAuLi4oc2V0LmRhdGFbcG9pbnRlcl0gYXMgU2NhdHRlckRhdGFQb2ludCksXG4gICAgICAgIGRhdGFsYWJlbDoge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZSArICh0aGlzLmRhdGFMYWJlbE9wdGlvbnMudmFsdWVTdWZmaXggfHwgJycpLFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBTY2F0dGVyRGF0YVBvaW50O1xuICAgIH07XG5cbiAgICBkYXRhLm1hcCgoc2V0KSA9PiB7XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNaW4pIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdsb3cnLCAnYm90dG9tJyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNYXgpIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdoaWdoJywgJ3RvcCcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93Q3VycmVudCkge1xuICAgICAgICBkZWNvcmF0ZURhdGFQb2ludChzZXQsICd4JywgJ2hpZ2gnLCAncmlnaHQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYXRlVmFsdWVJbmRleEluRGF0YXNldChcbiAgICBkYXRhc2V0OiBDaGFydERhdGFzZXQsXG4gICAgYXhpczogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ2xvdycgfCAnaGlnaCdcbiAgKTogeyB2YWx1ZTogbnVtYmVyOyBwb2ludGVyOiBudW1iZXIgfSB7XG4gICAgbGV0IHBvaW50ZXI6IG51bWJlcjtcbiAgICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgICBkYXRhc2V0LmRhdGEuZm9yRWFjaCgoZGF0YXBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnbG93JyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA8IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09ICdoaWdoJyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA+IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdmFsdWUsIHBvaW50ZXIgfTtcbiAgfVxufVxuIl19","import { Component, Input } from '@angular/core';\nimport { BaseChartComponent, ChartConfigService, ChartJSService, } from '../shared';\nimport { StockChartJSService } from './stock-chart-js.service';\nimport * as i0 from \"@angular/core\";\nexport class StockChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.type = 'stock';\n }\n renderChart() {\n super.renderChart({ dataLabelOptions: this.dataLabelOptions });\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: StockChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: StockChartComponent, isStandalone: true, selector: \"kirby-stock-chart\", inputs: { dataLabelOptions: \"dataLabelOptions\" }, providers: [{ provide: ChartJSService, useClass: StockChartJSService }, ChartConfigService], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: StockChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-stock-chart', providers: [{ provide: ChartJSService, useClass: StockChartJSService }, ChartConfigService], template: \"<div class=\\\"chart-container\\\">\\n <canvas #chartCanvas>\\n <!-- Slotted content makes it possible to insert fallback content for screen readers \\n https://www.chartjs.org/docs/latest/general/accessibility.html-->\\n <ng-content></ng-content>\\n </canvas>\\n</div>\\n\", styles: [\":host div{height:var(--kirby-chart-height, 300px);position:relative}\\n\"] }]\n }], propDecorators: { dataLabelOptions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2hhcnQvc3JjL3N0b2NrLWNoYXJ0L3N0b2NrLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9zaGFyZWQvYmFzZS1jaGFydC9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBRWxCLGNBQWMsR0FDZixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRL0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQU4zRDs7UUFTVyxTQUFJLEdBQUcsT0FBTyxDQUFDO0tBS3pCO0lBSFcsV0FBVztRQUNuQixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO2tJQVBVLG1CQUFtQjtzSEFBbkIsbUJBQW1CLGtIQUpuQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxpRENiN0Ysa1JBT0E7OzRGRFVhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxtQkFBbUIsYUFDbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsa0JBQWtCLENBQUM7O3NCQUsxRixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCYXNlQ2hhcnRDb21wb25lbnQsXG4gIENoYXJ0Q29uZmlnU2VydmljZSxcbiAgQ2hhcnREYXRhTGFiZWxPcHRpb25zLFxuICBDaGFydEpTU2VydmljZSxcbn0gZnJvbSAnLi4vc2hhcmVkJztcblxuaW1wb3J0IHsgU3RvY2tDaGFydEpTU2VydmljZSB9IGZyb20gJy4vc3RvY2stY2hhcnQtanMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXN0b2NrLWNoYXJ0JyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDaGFydEpTU2VydmljZSwgdXNlQ2xhc3M6IFN0b2NrQ2hhcnRKU1NlcnZpY2UgfSwgQ2hhcnRDb25maWdTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuLi9zaGFyZWQvYmFzZS1jaGFydC9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL3NoYXJlZC9iYXNlLWNoYXJ0L2Jhc2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG5cbiAgcmVhZG9ubHkgdHlwZSA9ICdzdG9jayc7XG5cbiAgcHJvdGVjdGVkIHJlbmRlckNoYXJ0KCkge1xuICAgIHN1cGVyLnJlbmRlckNoYXJ0KHsgZGF0YUxhYmVsT3B0aW9uczogdGhpcy5kYXRhTGFiZWxPcHRpb25zIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gIDxjYW52YXMgI2NoYXJ0Q2FudmFzPlxuICAgIDwhLS0gU2xvdHRlZCBjb250ZW50IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGluc2VydCBmYWxsYmFjayBjb250ZW50IGZvciBzY3JlZW4gcmVhZGVycyBcbiAgICBodHRwczovL3d3dy5jaGFydGpzLm9yZy9kb2NzL2xhdGVzdC9nZW5lcmFsL2FjY2Vzc2liaWxpdHkuaHRtbC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9jYW52YXM+XG48L2Rpdj5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { ChartComponent } from './chart';\nimport { ChartConfigService } from './shared';\nimport { StockChartComponent } from './stock-chart';\nimport * as i0 from \"@angular/core\";\nexport class ChartsModule {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartsModule, imports: [ChartComponent, StockChartComponent], exports: [ChartComponent, StockChartComponent] }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartsModule, providers: [ChartConfigService] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ChartsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartComponent, StockChartComponent],\n exports: [ChartComponent, StockChartComponent],\n providers: [ChartConfigService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NoYXJ0L3NyYy9jaGFydHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sWUFBWTtrSUFBWixZQUFZO21JQUFaLFlBQVksWUFKYixjQUFjLEVBQUUsbUJBQW1CLGFBQ25DLGNBQWMsRUFBRSxtQkFBbUI7bUlBR2xDLFlBQVksYUFGWixDQUFDLGtCQUFrQixDQUFDOzs0RkFFcEIsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUM7b0JBQzlDLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0JztcbmltcG9ydCB7IENoYXJ0Q29uZmlnU2VydmljZSB9IGZyb20gJy4vc2hhcmVkJztcbmltcG9ydCB7IFN0b2NrQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3N0b2NrLWNoYXJ0JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NoYXJ0Q29tcG9uZW50LCBTdG9ja0NoYXJ0Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0NoYXJ0Q29tcG9uZW50LCBTdG9ja0NoYXJ0Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbQ2hhcnRDb25maWdTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzTW9kdWxlIHt9XG4iXX0=","export class ChartBaseConfig {\n static { this.registerPlugins = () => { }; }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYmFzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jaGFydC9zcmMvY2hhcnQtY29uZmlnL2NoYXJ0LWJhc2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxlQUFlO2FBR1osb0JBQWUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydENvbmZpZ3VyYXRpb24sIENoYXJ0VHlwZSwgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDaGFydEJhc2VDb25maWcge1xuICBwdWJsaWMgc3RhdGljIGJhc2VDb25maWc6IENoYXJ0Q29uZmlndXJhdGlvbjxDaGFydFR5cGU+O1xuICBwdWJsaWMgc3RhdGljIHRvb2x0aXBQbHVnaW46IFBhcnRpYWw8VG9vbHRpcE9wdGlvbnM8J2xpbmUnPj47XG4gIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXJQbHVnaW5zID0gKCkgPT4ge307XG59XG4iXX0=","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { ChartBaseConfig } from '../chart-base-config';\nconst { getThemeColorHexString } = ColorHelper;\n/**\n * This class is still experimental. Feel free to use it, but please note that it is still subject to breaking changes.\n */\nexport class BarChartConfig extends ChartBaseConfig {\n static { this.BAR_CHART_LOCALE_DEFAULT = 'en-US'; }\n static { this.baseConfig = {\n type: 'bar',\n data: {\n datasets: [],\n },\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n },\n x: {},\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n }; }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYmFyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9jaGFydC1jb25maWcvY2hhcnQtYmFyLWNvbmZpZy9jaGFydC1iYXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUloRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsV0FBVyxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFlO2FBQ2xDLDZCQUF3QixHQUFnQixPQUFPLENBQUM7YUFFakQsZUFBVSxHQUFrQztRQUN4RCxJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRTtZQUNKLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRCxPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFO29CQUNILGFBQWEsRUFBRSxHQUFHO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELFNBQVMsRUFBRSxHQUFHO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osVUFBVSxFQUFFLEtBQUs7cUJBQ2xCO2lCQUNGO2dCQUNELENBQUMsRUFBRSxFQUFFO2FBQ047WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFO29CQUNMLE1BQU0sRUFBRSxDQUFDO2lCQUNWO2dCQUNELElBQUksRUFBRTtvQkFDSixXQUFXLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDO2lCQUM5QzthQUNGO1NBQ0Y7S0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JIZWxwZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ2hhcnRDb25maWd1cmF0aW9uLCBDaGFydFR5cGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBDaGFydExvY2FsZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7IENoYXJ0QmFzZUNvbmZpZyB9IGZyb20gJy4uL2NoYXJ0LWJhc2UtY29uZmlnJztcblxuY29uc3QgeyBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nIH0gPSBDb2xvckhlbHBlcjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHN0aWxsIGV4cGVyaW1lbnRhbC4gRmVlbCBmcmVlIHRvIHVzZSBpdCwgYnV0IHBsZWFzZSBub3RlIHRoYXQgaXQgaXMgc3RpbGwgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgQmFyQ2hhcnRDb25maWcgZXh0ZW5kcyBDaGFydEJhc2VDb25maWcge1xuICBwcml2YXRlIHN0YXRpYyBCQVJfQ0hBUlRfTE9DQUxFX0RFRkFVTFQ6IENoYXJ0TG9jYWxlID0gJ2VuLVVTJztcblxuICBwdWJsaWMgc3RhdGljIGJhc2VDb25maWc6IENoYXJ0Q29uZmlndXJhdGlvbjxDaGFydFR5cGU+ID0ge1xuICAgIHR5cGU6ICdiYXInLFxuICAgIGRhdGE6IHtcbiAgICAgIGRhdGFzZXRzOiBbXSxcbiAgICB9LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGRhdGFzZXRzOiB7XG4gICAgICAgIGJhcjoge1xuICAgICAgICAgIGJhclBlcmNlbnRhZ2U6IDAuNixcbiAgICAgICAgfSxcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIHNwYW5HYXBzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGluZGV4QXhpczogJ3gnLFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHk6IHtcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBkcmF3Qm9yZGVyOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB4OiB7fSxcbiAgICAgIH0sXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICBwb2ludDoge1xuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIGJvcmRlckNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdtZWRpdW0nKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nconst { getThemeColorHexString } = ColorHelper;\nconst { fontSize } = DesignTokenHelper;\nexport const getDataLabelPosition = (data, dataIndex) => {\n const scatterPointDataYvalues = data.map((scatterDatapoint) => scatterDatapoint.y);\n const minValue = Math.min(...scatterPointDataYvalues);\n const minValueIndex = scatterPointDataYvalues.indexOf(minValue);\n if (dataIndex === minValueIndex) {\n return 'bottom';\n }\n const maxValue = Math.max(...scatterPointDataYvalues);\n const maxValueIndex = scatterPointDataYvalues.indexOf(maxValue);\n if (dataIndex === maxValueIndex) {\n return 'top';\n }\n return null;\n};\nexport const dataLabelsPluginConfig = {\n backgroundColor: '#005c3c',\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context) => getDataLabelPosition(context.dataset.data, context.dataIndex),\n display: (context) => {\n return showDataLabel(context);\n },\n formatter: (dataPoint) => dataPoint.y.toString(),\n};\nfunction showDataLabel(context) {\n const data = [...context.dataset.data];\n const yValues = data.map((dataPoints) => dataPoints.y);\n const minValue = Math.min(...yValues);\n const minValueIndex = yValues.indexOf(minValue);\n const maxValue = Math.max(...yValues);\n const maxValueIndex = yValues.indexOf(maxValue);\n return context.dataIndex === maxValueIndex || context.dataIndex === minValueIndex;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sYWJlbC1wb3NpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NoYXJ0L3NyYy9jaGFydC1jb25maWcvY2hhcnQtc3RvY2stY29uZmlnL2RhdGEtbGFiZWwtcG9zaXRpb24vZGF0YS1sYWJlbC1wb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLbkYsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsV0FBVyxDQUFDO0FBQy9DLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQXdCLEVBQUUsU0FBaUIsRUFBZ0IsRUFBRTtJQUNoRyxNQUFNLHVCQUF1QixHQUFjLElBQTJCLENBQUMsR0FBRyxDQUN4RSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQ3pDLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztJQUN0RCxNQUFNLGFBQWEsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFaEUsSUFBSSxTQUFTLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sYUFBYSxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVoRSxJQUFJLFNBQVMsS0FBSyxhQUFhLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFxQjtJQUN0RCxlQUFlLEVBQUUsU0FBUztJQUMxQixLQUFLLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQ3RDLFlBQVksRUFBRSxDQUFDO0lBQ2YsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUM7UUFDYixJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUNELE9BQU8sRUFBRTtRQUNQLEdBQUcsRUFBRSxDQUFDO1FBQ04sSUFBSSxFQUFFLENBQUM7UUFDUCxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxDQUFDLE9BQWdCLEVBQVMsRUFBRSxDQUNqQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQTBCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNyRixPQUFPLEVBQUUsQ0FBQyxPQUFnQixFQUFXLEVBQUU7UUFDckMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELFNBQVMsRUFBRSxDQUFDLFNBQTJCLEVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzNFLENBQUM7QUFFRixTQUFTLGFBQWEsQ0FBQyxPQUFnQjtJQUNyQyxNQUFNLElBQUksR0FBdUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUF1QixDQUFDO0lBQ2pGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVoRCxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssYUFBYSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssYUFBYSxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvckhlbHBlciwgRGVzaWduVG9rZW5IZWxwZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2NhdHRlckRhdGFQb2ludCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzL3R5cGVzL2NvbnRleHQnO1xuaW1wb3J0IHsgQWxpZ24sIE9wdGlvbnMgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzL3R5cGVzL29wdGlvbnMnO1xuXG5jb25zdCB7IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcgfSA9IENvbG9ySGVscGVyO1xuY29uc3QgeyBmb250U2l6ZSB9ID0gRGVzaWduVG9rZW5IZWxwZXI7XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhTGFiZWxQb3NpdGlvbiA9IChkYXRhOiBTY2F0dGVyRGF0YVBvaW50W10sIGRhdGFJbmRleDogbnVtYmVyKTogQWxpZ24gfCBudWxsID0+IHtcbiAgY29uc3Qgc2NhdHRlclBvaW50RGF0YVl2YWx1ZXM6IG51bWJlcltdID0gKGRhdGEgYXMgU2NhdHRlckRhdGFQb2ludFtdKS5tYXAoXG4gICAgKHNjYXR0ZXJEYXRhcG9pbnQpID0+IHNjYXR0ZXJEYXRhcG9pbnQueVxuICApO1xuXG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uc2NhdHRlclBvaW50RGF0YVl2YWx1ZXMpO1xuICBjb25zdCBtaW5WYWx1ZUluZGV4ID0gc2NhdHRlclBvaW50RGF0YVl2YWx1ZXMuaW5kZXhPZihtaW5WYWx1ZSk7XG5cbiAgaWYgKGRhdGFJbmRleCA9PT0gbWluVmFsdWVJbmRleCkge1xuICAgIHJldHVybiAnYm90dG9tJztcbiAgfVxuXG4gIGNvbnN0IG1heFZhbHVlID0gTWF0aC5tYXgoLi4uc2NhdHRlclBvaW50RGF0YVl2YWx1ZXMpO1xuICBjb25zdCBtYXhWYWx1ZUluZGV4ID0gc2NhdHRlclBvaW50RGF0YVl2YWx1ZXMuaW5kZXhPZihtYXhWYWx1ZSk7XG5cbiAgaWYgKGRhdGFJbmRleCA9PT0gbWF4VmFsdWVJbmRleCkge1xuICAgIHJldHVybiAndG9wJztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGRhdGFMYWJlbHNQbHVnaW5Db25maWc6IFBhcnRpYWw8T3B0aW9ucz4gPSB7XG4gIGJhY2tncm91bmRDb2xvcjogJyMwMDVjM2MnLFxuICBjb2xvcjogZ2V0VGhlbWVDb2xvckhleFN0cmluZygnd2hpdGUnKSxcbiAgYm9yZGVyUmFkaXVzOiAzLFxuICBmb250OiB7XG4gICAgbGluZUhlaWdodDogMSxcbiAgICBzaXplOiBwYXJzZUludChmb250U2l6ZSgneHMnKSksXG4gIH0sXG4gIHBhZGRpbmc6IHtcbiAgICB0b3A6IDYsXG4gICAgbGVmdDogNSxcbiAgICByaWdodDogNSxcbiAgICBib3R0b206IDUsXG4gIH0sXG4gIG9mZnNldDogNSxcbiAgYWxpZ246IChjb250ZXh0OiBDb250ZXh0KTogQWxpZ24gPT5cbiAgICBnZXREYXRhTGFiZWxQb3NpdGlvbihjb250ZXh0LmRhdGFzZXQuZGF0YSBhcyBTY2F0dGVyRGF0YVBvaW50W10sIGNvbnRleHQuZGF0YUluZGV4KSxcbiAgZGlzcGxheTogKGNvbnRleHQ6IENvbnRleHQpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gc2hvd0RhdGFMYWJlbChjb250ZXh0KTtcbiAgfSxcbiAgZm9ybWF0dGVyOiAoZGF0YVBvaW50OiBTY2F0dGVyRGF0YVBvaW50KTogc3RyaW5nID0+IGRhdGFQb2ludC55LnRvU3RyaW5nKCksXG59O1xuXG5mdW5jdGlvbiBzaG93RGF0YUxhYmVsKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3QgZGF0YTogU2NhdHRlckRhdGFQb2ludFtdID0gWy4uLmNvbnRleHQuZGF0YXNldC5kYXRhXSBhcyBTY2F0dGVyRGF0YVBvaW50W107XG4gIGNvbnN0IHlWYWx1ZXMgPSBkYXRhLm1hcCgoZGF0YVBvaW50cykgPT4gZGF0YVBvaW50cy55KTtcblxuICBjb25zdCBtaW5WYWx1ZSA9IE1hdGgubWluKC4uLnlWYWx1ZXMpO1xuICBjb25zdCBtaW5WYWx1ZUluZGV4ID0geVZhbHVlcy5pbmRleE9mKG1pblZhbHVlKTtcblxuICBjb25zdCBtYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnlWYWx1ZXMpO1xuICBjb25zdCBtYXhWYWx1ZUluZGV4ID0geVZhbHVlcy5pbmRleE9mKG1heFZhbHVlKTtcblxuICByZXR1cm4gY29udGV4dC5kYXRhSW5kZXggPT09IG1heFZhbHVlSW5kZXggfHwgY29udGV4dC5kYXRhSW5kZXggPT09IG1pblZhbHVlSW5kZXg7XG59XG4iXX0=","const verticalLineId = 'verticalLine';\nexport const getVerticalLinePluginConfig = {\n id: verticalLineId,\n drawTime: 'beforeDraw',\n defaults: {\n width: 1,\n color: 'black',\n },\n afterInit: (chart) => {\n chart[verticalLineId] = {\n x: 0,\n y: 0,\n };\n },\n afterEvent: (chart, args) => {\n const { inChartArea } = args;\n const { x, y } = args.event;\n chart[verticalLineId] = { x, y, draw: inChartArea };\n chart.draw();\n },\n beforeDraw: (chart, _, options) => {\n const { ctx } = chart;\n const { top, bottom } = chart.chartArea;\n const { x, draw } = chart[verticalLineId];\n if (!draw)\n return;\n ctx.save();\n ctx.beginPath();\n ctx.lineWidth = options.width;\n ctx.strokeStyle = options.color;\n ctx.moveTo(x, bottom);\n ctx.lineTo(x, top);\n ctx.stroke();\n ctx.restore();\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtbGluZS1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9jaGFydC9zcmMvY2hhcnQtY29uZmlnL2NoYXJ0LXN0b2NrLWNvbmZpZy92ZXJ0aWNhbC1saW5lLXBsdWdpbi92ZXJ0aWNhbC1saW5lLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXVCO0lBQzdELEVBQUUsRUFBRSxjQUFjO0lBQ2xCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRSxDQUFDO1FBQ1IsS0FBSyxFQUFFLE9BQU87S0FDZjtJQUNELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRztZQUN0QixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztJQUNKLENBQUM7SUFDRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDMUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFNUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN0QixNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDeEMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVYLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7UUFDeEMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBZSxDQUFDO1FBRTFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUViLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnRpY2FsTGluZVBsdWdpbiB9IGZyb20gJy4vdmVydGljYWwtbGluZS1wbHVnaW4ubW9kZWwnO1xuXG5jb25zdCB2ZXJ0aWNhbExpbmVJZCA9ICd2ZXJ0aWNhbExpbmUnO1xuXG5leHBvcnQgY29uc3QgZ2V0VmVydGljYWxMaW5lUGx1Z2luQ29uZmlnOiBWZXJ0aWNhbExpbmVQbHVnaW4gPSB7XG4gIGlkOiB2ZXJ0aWNhbExpbmVJZCxcbiAgZHJhd1RpbWU6ICdiZWZvcmVEcmF3JyxcbiAgZGVmYXVsdHM6IHtcbiAgICB3aWR0aDogMSxcbiAgICBjb2xvcjogJ2JsYWNrJyxcbiAgfSxcbiAgYWZ0ZXJJbml0OiAoY2hhcnQpID0+IHtcbiAgICBjaGFydFt2ZXJ0aWNhbExpbmVJZF0gPSB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICB9O1xuICB9LFxuICBhZnRlckV2ZW50OiAoY2hhcnQsIGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IGluQ2hhcnRBcmVhIH0gPSBhcmdzO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gYXJncy5ldmVudDtcblxuICAgIGNoYXJ0W3ZlcnRpY2FsTGluZUlkXSA9IHsgeCwgeSwgZHJhdzogaW5DaGFydEFyZWEgfTtcbiAgICBjaGFydC5kcmF3KCk7XG4gIH0sXG4gIGJlZm9yZURyYXc6IChjaGFydCwgXywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBjaGFydDtcbiAgICBjb25zdCB7IHRvcCwgYm90dG9tIH0gPSBjaGFydC5jaGFydEFyZWE7XG4gICAgY29uc3QgeyB4LCBkcmF3IH0gPSBjaGFydFt2ZXJ0aWNhbExpbmVJZF07XG4gICAgaWYgKCFkcmF3KSByZXR1cm47XG5cbiAgICBjdHguc2F2ZSgpO1xuXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgIGN0eC5saW5lV2lkdGggPSBvcHRpb25zLndpZHRoIGFzIG51bWJlcjtcbiAgICBjdHguc3Ryb2tlU3R5bGUgPSBvcHRpb25zLmNvbG9yIGFzIHN0cmluZztcblxuICAgIGN0eC5tb3ZlVG8oeCwgYm90dG9tKTtcbiAgICBjdHgubGluZVRvKHgsIHRvcCk7XG4gICAgY3R4LnN0cm9rZSgpO1xuXG4gICAgY3R4LnJlc3RvcmUoKTtcbiAgfSxcbn07XG4iXX0=","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { BarController, BarElement, CategoryScale, Chart, Filler, LinearScale, LineController, LineElement, PointElement, TimeScale, Tooltip, } from 'chart.js';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport { ChartBaseConfig } from '../chart-base-config';\nimport { dataLabelsPluginConfig, getDataLabelPosition, } from './data-label-position/data-label-position';\nimport { getVerticalLinePluginConfig } from './vertical-line-plugin/vertical-line-plugin';\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\nconst { fontSize } = DesignTokenHelper;\n/**\n * This class is still experimental. Feel free to use it, but please note that it is still subject to breaking changes.\n */\nexport class StockChartConfig extends ChartBaseConfig {\n static { this.STOCK_CHART_LOCALE_DEFAULT = 'en-US'; }\n static { this.scales = [CategoryScale, LinearScale, TimeScale]; }\n static { this.elements = [BarElement, LineElement, PointElement]; }\n static { this.controllers = [BarController, LineController]; }\n static { this.plugins = [annotationPlugin, Filler, Tooltip]; }\n static { this.registeredElements = [\n ...this.scales,\n ...this.controllers,\n ...this.elements,\n ...this.plugins,\n ]; }\n static { this.pluginsRegistered = false; }\n static registerPlugins() {\n if (StockChartConfig.pluginsRegistered) {\n return;\n }\n this.registeredElements.forEach((scale) => {\n Chart.register(scale);\n });\n StockChartConfig.pluginsRegistered = true;\n }\n static { this.baseConfig = {\n type: 'line',\n data: {\n datasets: [],\n },\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n adapters: {\n date: {\n locale: StockChartConfig.STOCK_CHART_LOCALE_DEFAULT,\n },\n },\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n callback(tickValue) {\n const dateInMiliseconds = parseInt(this.getLabelForValue(parseInt(tickValue + '')));\n return getChartStockShortDate(dateInMiliseconds, StockChartConfig.STOCK_CHART_LOCALE_DEFAULT);\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {},\n },\n }; }\n static { this.tooltipPlugin = {\n padding: 10,\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n title: (toolTipItem) => {\n const dateInMiliseconds = parseInt(toolTipItem[0].label); // TODO: Right now we use index === 0. I expect multiple datasets will change this\n return getChartStockShortDateTime(dateInMiliseconds, StockChartConfig.STOCK_CHART_LOCALE_DEFAULT);\n },\n label: (context) => context.parsed.y.toString(),\n labelColor: (tooltipItem) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n borderColor: getThemeColorHexString('semi-light'),\n borderWidth: 2, // This value must be exactly 2. If it is less, a white \"border\" will appear, if greater than, a shadow around the box will be shown.\n // An issue has been created, requesting a test to check this value doesn´t change: https://github.com/kirbydesign/designsystem/issues/2578\n };\n },\n },\n }; }\n static { this.dataLabelsPluginConfig = dataLabelsPluginConfig; }\n static { this.verticalLinePluginConfig = getVerticalLinePluginConfig; }\n static { this.getDataLabelPosition = getDataLabelPosition; }\n}\nconst getChartStockShortDate = (dateInMiliseconds, locale) => {\n const newDate = new Date(dateInMiliseconds);\n return newDate.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'short',\n });\n};\nconst getChartStockShortDateTime = (dateInMiliseconds, locale) => {\n const newDate = new Date(dateInMiliseconds);\n return newDate.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtc3RvY2stY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY2hhcnQvc3JjL2NoYXJ0LWNvbmZpZy9jaGFydC1zdG9jay1jb25maWcvY2hhcnQtc3RvY2stY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2IsS0FBSyxFQUlMLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULE9BQU8sR0FLUixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNyQixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTFGLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLFdBQVcsQ0FBQztBQUN2RSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsaUJBQWlCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTthQUNwQywrQkFBMEIsR0FBZ0IsT0FBTyxDQUFDO2FBRWxELFdBQU0sR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDakQsYUFBUSxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNuRCxnQkFBVyxHQUFHLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzlDLFlBQU8sR0FBRyxD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QkFBeUIsRUFBRSxNQUFtQixFQUFFLEVBQUU7SUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1QyxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7UUFDeEMsR0FBRyxFQUFFLFNBQVM7UUFDZCxLQUFLLEVBQUUsT0FBTztLQUNmLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxpQkFBeUIsRUFBRSxNQUFtQixFQUFFLEVBQUU7SUFDcEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1QyxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7UUFDeEMsR0FBRyxFQUFFLFNBQVM7UUFDZCxLQUFLLEVBQUUsT0FBTztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLFNBQVM7S0FDbEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JIZWxwZXIsIERlc2lnblRva2VuSGVscGVyIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7XG4gIEJhckNvbnRyb2xsZXIsXG4gIEJhckVsZW1lbnQsXG4gIENhdGVnb3J5U2NhbGUsXG4gIENoYXJ0LFxuICBDaGFydENvbmZpZ3VyYXRpb24sXG4gIENoYXJ0VHlwZSxcbiAgQ2hhcnRUeXBlUmVnaXN0cnksXG4gIEZpbGxlcixcbiAgTGluZWFyU2NhbGUsXG4gIExpbmVDb250cm9sbGVyLFxuICBMaW5lRWxlbWVudCxcbiAgUG9pbnRFbGVtZW50LFxuICBUaW1lU2NhbGUsXG4gIFRvb2x0aXAsXG4gIFRvb2x0aXBDYWxsYmFja3MsXG4gIFRvb2x0aXBJdGVtLFxuICBUb29sdGlwTGFiZWxTdHlsZSxcbiAgVG9vbHRpcE9wdGlvbnMsXG59IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCBhbm5vdGF0aW9uUGx1Z2luIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IHsgQ2hhcnRMb2NhbGUgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgQ2hhcnRCYXNlQ29uZmlnIH0gZnJvbSAnLi4vY2hhcnQtYmFzZS1jb25maWcnO1xuXG5pbXBvcnQge1xuICBkYXRhTGFiZWxzUGx1Z2luQ29uZmlnLFxuICBnZXREYXRhTGFiZWxQb3NpdGlvbixcbn0gZnJvbSAnLi9kYXRhLWxhYmVsLXBvc2l0aW9uL2RhdGEtbGFiZWwtcG9zaXRpb24nO1xuaW1wb3J0IHsgZ2V0VmVydGljYWxMaW5lUGx1Z2luQ29uZmlnIH0gZnJvbSAnLi92ZXJ0aWNhbC1saW5lLXBsdWdpbi92ZXJ0aWNhbC1saW5lLXBsdWdpbic7XG5cbmNvbnN0IHsgZ2V0VGhlbWVDb2xvckhleFN0cmluZywgZ2V0VGhlbWVDb2xvclJnYlN0cmluZyB9ID0gQ29sb3JIZWxwZXI7XG5jb25zdCB7IGZvbnRTaXplIH0gPSBEZXNpZ25Ub2tlbkhlbHBlcjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHN0aWxsIGV4cGVyaW1lbnRhbC4gRmVlbCBmcmVlIHRvIHVzZSBpdCwgYnV0IHBsZWFzZSBub3RlIHRoYXQgaXQgaXMgc3RpbGwgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgU3RvY2tDaGFydENvbmZpZyBleHRlbmRzIENoYXJ0QmFzZUNvbmZpZyB7XG4gIHByaXZhdGUgc3RhdGljIFNUT0NLX0NIQVJUX0xPQ0FMRV9ERUZBVUxUOiBDaGFydExvY2FsZSA9ICdlbi1VUyc7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2NhbGVzID0gW0NhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBUaW1lU2NhbGVdO1xuICBwcml2YXRlIHN0YXRpYyBlbGVtZW50cyA9IFtCYXJFbGVtZW50LCBMaW5lRWxlbWVudCwgUG9pbnRFbGVtZW50XTtcbiAgcHJpdmF0ZSBzdGF0aWMgY29udHJvbGxlcnMgPSBbQmFyQ29udHJvbGxlciwgTGluZUNvbnRyb2xsZXJdO1xuICBwcml2YXRlIHN0YXRpYyBwbHVnaW5zID0gW2Fubm90YXRpb25QbHVnaW4sIEZpbGxlciwgVG9vbHRpcF07XG4gIHByaXZhdGUgc3RhdGljIHJlZ2lzdGVyZWRFbGVtZW50cyA9IFtcbiAgICAuLi50aGlzLnNjYWxlcyxcbiAgICAuLi50aGlzLmNvbnRyb2xsZXJzLFxuICAgIC4uLnRoaXMuZWxlbWVudHMsXG4gICAgLi4udGhpcy5wbHVnaW5zLFxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHBsdWdpbnNSZWdpc3RlcmVkID0gZmFsc2U7XG5cbiAgcHVibGljIHN0YXRpYyByZWdpc3RlclBsdWdpbnMoKSB7XG4gICAgaWYgKFN0b2NrQ2hhcnRDb25maWcucGx1Z2luc1JlZ2lzdGVyZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdGVyZWRFbGVtZW50cy5mb3JFYWNoKChzY2FsZSkgPT4ge1xuICAgICAgQ2hhcnQucmVnaXN0ZXIoc2NhbGUpO1xuICAgIH0pO1xuICAgIFN0b2NrQ2hhcnRDb25maWcucGx1Z2luc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiYXNlQ29uZmlnOiBDaGFydENvbmZpZ3VyYXRpb248Q2hhcnRUeXBlPiA9IHtcbiAgICB0eXBlOiAnbGluZScsXG4gICAgZGF0YToge1xuICAgICAgZGF0YXNldHM6IFtdLFxuICAgIH0sXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgIGFuaW1hdGlvbjoge1xuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgIGxlZnQ6IDIwLFxuICAgICAgICAgIHJpZ2h0OiAyMCxcbiAgICAgICAgICB0b3A6IDMwLFxuICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldFRoZW1lQ29sb3JSZ2JTdHJpbmcoJ3NlbWktbGlnaHQnLCAwLjUpLFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBhZGFwdGVyczoge1xuICAgICAgICAgICAgZGF0ZToge1xuICAgICAgICAgICAgICBsb2NhbGU6IFN0b2NrQ2hhcnRDb25maWcuU1RPQ0tfQ0hBUlRfTE9DQUxFX0RFRkFVTFQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgbGluZVdpZHRoOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgIG1heFJvdGF0aW9uOiAwLFxuICAgICAgICAgICAgYXV0b1NraXBQYWRkaW5nOiAxMjAsXG4gICAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICAgIHNpemU6IHBhcnNlSW50KGZvbnRTaXplKCd4cycpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYWxsYmFjayh0aWNrVmFsdWUpIHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0ZUluTWlsaXNlY29uZHMgPSBwYXJzZUludCh0aGlzLmdldExhYmVsRm9yVmFsdWUocGFyc2VJbnQodGlja1ZhbHVlICsgJycpKSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGdldENoYXJ0U3RvY2tTaG9ydERhdGUoXG4gICAgICAgICAgICAgICAgZGF0ZUluTWlsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgU3RvY2tDaGFydENvbmZpZy5TVE9DS19DSEFSVF9MT0NBTEVfREVGQVVMVFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB5OiB7XG4gICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBkcmF3Qm9yZGVyOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgICBzaXplOiBwYXJzZUludChmb250U2l6ZSgneHMnKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgbGluZToge1xuICAgICAgICAgIHRlbnNpb246IDAsIC8vIFNtb290aCBjdXJ2ZSAoMCA9IG5vIHNtb290aGluZylcbiAgICAgICAgICBib3JkZXJXaWR0aDogMixcbiAgICAgICAgfSxcbiAgICAgICAgcG9pbnQ6IHtcbiAgICAgICAgICBoaXRSYWRpdXM6IDIwLFxuICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgICBob3ZlclJhZGl1czogMCxcbiAgICAgICAgICBob3ZlckJvcmRlcldpZHRoOiAwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG5vcm1hbGl6ZWQ6IHRydWUsXG4gICAgICBwbHVnaW5zOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgdG9vbHRpcFBsdWdpbjogUGFydGlhbDxUb29sdGlwT3B0aW9uczwnbGluZSc+PiA9IHtcbiAgICBwYWRkaW5nOiAxMCxcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIG1vZGU6ICdpbmRleCcsXG4gICAgaW50ZXJzZWN0OiBmYWxzZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3NlbWktbGlnaHQnKSxcbiAgICB0aXRsZUNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdzZW1pLWxpZ2h0LWNvbnRyYXN0JyksXG4gICAgYm9keUNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdzZW1pLWxpZ2h0LWNvbnRyYXN0JyksXG4gICAgY2FyZXRTaXplOiAwLFxuICAgIGJvZHlTcGFjaW5nOiA1LFxuICAgIHRpdGxlU3BhY2luZzogNSxcbiAgICBib3JkZXJDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICBjYWxsYmFja3M6IHtcbiAgICAgIHRpdGxlOiAodG9vbFRpcEl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZUluTWlsaXNlY29uZHMgPSBwYXJzZUludCh0b29sVGlwSXRlbVswXS5sYWJlbCk7IC8vIFRPRE86IFJpZ2h0IG5vdyB3ZSB1c2UgaW5kZXggPT09IDAuIEkgZXhwZWN0IG11bHRpcGxlIGRhdGFzZXRzIHdpbGwgY2hhbmdlIHRoaXNcbiAgICAgICAgcmV0dXJuIGdldENoYXJ0U3RvY2tTaG9ydERhdGVUaW1lKFxuICAgICAgICAgIGRhdGVJbk1pbGlzZWNvbmRzLFxuICAgICAgICAgIFN0b2NrQ2hhcnRDb25maWcuU1RPQ0tfQ0hBUlRfTE9DQUxFX0RFRkFVTFRcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBsYWJlbDogKGNvbnRleHQpID0+IGNvbnRleHQucGFyc2VkLnkudG9TdHJpbmcoKSxcbiAgICAgIGxhYmVsQ29sb3I6ICh0b29sdGlwSXRlbTogVG9vbHRpcEl0ZW08a2V5b2YgQ2hhcnRUeXBlUmVnaXN0cnk+KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0b29sdGlwSXRlbS5kYXRhc2V0LmJvcmRlckNvbG9yLFxuICAgICAgICAgIGJvcmRlckNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdzZW1pLWxpZ2h0JyksXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IDIsIC8vIFRoaXMgdmFsdWUgbXVzdCBiZSBleGFjdGx5IDIuIElmIGl0IGlzIGxlc3MsIGEgd2hpdGUgXCJib3JkZXJcIiB3aWxsIGFwcGVhciwgaWYgZ3JlYXRlciB0aGFuLCBhIHNoYWRvdyBhcm91bmQgdGhlIGJveCB3aWxsIGJlIHNob3duLlxuICAgICAgICAgIC8vIEFuIGlzc3VlIGhhcyBiZWVuIGNyZWF0ZWQsIHJlcXVlc3RpbmcgYSB0ZXN0IHRvIGNoZWNrIHRoaXMgdmFsdWUgZG9lc27CtHQgY2hhbmdlOiBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yNTc4XG4gICAgICAgIH0gYXMgVG9vbHRpcExhYmVsU3R5bGU7XG4gICAgICB9LFxuICAgIH0gYXMgVG9vbHRpcENhbGxiYWNrczwnbGluZSc+LFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgZGF0YUxhYmVsc1BsdWdpbkNvbmZpZyA9IGRhdGFMYWJlbHNQbHVnaW5Db25maWc7XG5cbiAgcHVibGljIHN0YXRpYyB2ZXJ0aWNhbExpbmVQbHVnaW5Db25maWcgPSBnZXRWZXJ0aWNhbExpbmVQbHVnaW5Db25maWc7XG5cbiAgcHVibGljIHN0YXRpYyBnZXREYXRhTGFiZWxQb3NpdGlvbiA9IGdldERhdGFMYWJlbFBvc2l0aW9uO1xufVxuXG5jb25zdCBnZXRDaGFydFN0b2NrU2hvcnREYXRlID0gKGRhdGVJbk1pbGlzZWNvbmRzOiBudW1iZXIsIGxvY2FsZTogQ2hhcnRMb2NhbGUpID0+IHtcbiAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGVJbk1pbGlzZWNvbmRzKTtcblxuICByZXR1cm4gbmV3RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7XG4gICAgZGF5OiAnbnVtZXJpYycsXG4gICAgbW9udGg6ICdzaG9ydCcsXG4gIH0pO1xufTtcblxuY29uc3QgZ2V0Q2hhcnRTdG9ja1Nob3J0RGF0ZVRpbWUgPSAoZGF0ZUluTWlsaXNlY29uZHM6IG51bWJlciwgbG9jYWxlOiBDaGFydExvY2FsZSkgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZUluTWlsaXNlY29uZHMpO1xuXG4gIHJldHVybiBuZXdEYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHtcbiAgICBkYXk6ICdudW1lcmljJyxcbiAgICBtb250aDogJ3Nob3J0JyxcbiAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgbWludXRlOiAnMi1kaWdpdCcsXG4gIH0pO1xufTtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLWNoYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY2hhcnQvc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS1jaGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["getThemeColorHexString","fontSize","getThemeColorRgbString","i1.ChartConfigService","i1.ChartJSService"],"mappings":";;;;;;;;;;;AAAO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClF;;ACDO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,CAAC,kBAAkB,EAAE;AACpC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AACpD,IAAI;AACJ,IAAI,0BAA0B,CAAC,WAAW,EAAE;AAC5C,QAAQ,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AAC/C,YAAY,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC;AACzG,YAAY,OAAO,YAAY,CAAC,sBAAsB,EAAE,UAAU,CAAC;AACnE,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,mCAAmC,CAAC,WAAW,EAAE;AACrD,QAAQ,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;AACpF,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE;AACrB,gBAAgB,UAAU,EAAE;AAC5B,oBAAoB,WAAW,EAAE,uBAAuB;AACxD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,2BAA2B,CAAC,KAAK,EAAE;AACvC,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW;AAC1E;AACA;AACA;AACA,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1E,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,IAAI;AACJ;;AChCA,MAAM,0BAAEA,wBAAsB,EAAE,GAAG,WAAW;AAC9C,MAAM,oBAAoB,GAAGA,wBAAsB,CAAC,SAAS,CAAC;AAC9D,MAAM,eAAe,GAAGA,wBAAsB,CAAC,WAAW,CAAC;AAC3D,SAAS,uBAAuB,CAAC,OAAO,EAAE;AAC1C,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;AACnC,IAAI,MAAM,mBAAmB,GAAG,OAAO,EAAE,YAAY,EAAE,mBAAmB;AAC1E,IAAI,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChF,QAAQ,OAAO,oBAAoB;AACnC,IAAI;AACJ,SAAS;AACT,QAAQ,OAAO,eAAe;AAC9B,IAAI;AACJ;AACA;AACA,SAAS,4BAA4B,CAAC,OAAO,EAAE;AAC/C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;AACvC,QAAQ,OAAO,oBAAoB;AACnC,IAAI;AACJ;AACO,MAAM,qBAAqB,GAAG;AACrC,IAAI,mBAAmB,EAAE,KAAK;AAC9B,IAAI,KAAK,EAAEA,wBAAsB,CAAC,OAAO,CAAC;AAC1C,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,QAAQ,EAAE;AACd,QAAQ,GAAG,EAAE;AACb,YAAY,eAAe,EAAE,uBAAuB;AACpD,YAAY,oBAAoB,EAAE,4BAA4B;AAC9D,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,WAAW,EAAE,uBAAuB;AAChD,YAAY,WAAW,EAAE,CAAC;AAC1B,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,MAAM,EAAE;AAChB,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,KAAK,EAAE;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,MAAM,EAAE,QAAQ;AACxB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,MAAM,EAAE;AAChB,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,KAAK;AACL,CAAC;;AC/DD;AACA;AACA;AACA;AACA;AAEA,MAAM,cAAc,GAAG;AACvB,IAAI,IAAI,EAAE;AACV,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,WAAW,EAAE,EAAE;AACvB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,OAAO,EAAE,KAAK;AACtB,KAAK;AACL,CAAC;AACD,MAAM,sBAAsB,GAAG,CAAC,KAAK,KAAK;AAC1C;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;AACvF,CAAC;AACD,mBAAe;AACf,IAAI,EAAE,EAAE,QAAQ;AAChB,IAAI,SAAS,EAAE,UAAU,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;AAC7D,QAAQ,IAAI,UAAU,KAAK,QAAQ;AACnC,YAAY,UAAU,KAAK,MAAM;AACjC,YAAY,UAAU,KAAK,UAAU;AACrC,YAAY,UAAU,KAAK,aAAa,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;AACxD,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc;AACzD,QAAQ;AACR,QAAQ,KAAK,CAAC,MAAM,GAAG;AACvB,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,CAAC,EAAE,IAAI;AACnB,YAAY,YAAY,EAAE,EAAE;AAC5B,YAAY,cAAc,EAAE,EAAE;AAC9B,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,gBAAgB,EAAE,KAAK;AACnC,YAAY,gBAAgB,EAAE,CAAC;AAC/B,SAAS;AACT,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;AAChD,QAAQ,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;AACnE,cAAc,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;AACzD,cAAc,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,UAAU,KAAK,EAAE;AAChC,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAChG,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,UAAU,KAAK,EAAE;AAChC,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK,EAAE;AACxC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACvD,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK;AAC7B,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;AAC7D,QAAQ,IAAI,UAAU,KAAK,QAAQ;AACnC,YAAY,UAAU,KAAK,MAAM;AACjC,YAAY,UAAU,KAAK,UAAU;AACrC,YAAY,UAAU,KAAK,aAAa,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE;AAC/C,YAAY,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,CAAC,MAAM,CAAC,OAAO;AAC5B,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU;AACjC,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;AACzD,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;AACzD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC3D;AACA,gBAAgB,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI;AAClD,gBAAgB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,YAAY;AACZ,YAAY,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7C,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK;AAC3C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,IAAI,CAAC;AACL,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AACnC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACjC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnC,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,UAAU,KAAK,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,IAAI,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,EAAE,UAAU,KAAK,EAAE;AACpC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC5C,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAChE,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAC5D,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC;AACxE,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AACpE,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,QAAQ,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AACjD,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAQ;AACR,QAAQ,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;AAC7B,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC;AAC1C,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS;AACvC,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK;AACrC,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;AAC1B,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACjC,IAAI,CAAC;AACL,IAAI,eAAe,EAAE,UAAU,KAAK,EAAE;AACtC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;AACxF,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC3D,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;AACzD,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACrD,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;AACjC,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AACvH,YAAY,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO;AACzC,YAAY,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC;AACnC,YAAY,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AACvD,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5B,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;AAC9B,QAAQ;AACR,IAAI,CAAC;AACL,IAAI,iBAAiB,EAAE,UAAU,KAAK,EAAE;AACxC,QAAQ,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;AACxF,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC3D,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;AACzD,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACrD,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;AACrC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;AACtD,gBAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;AACpC,YAAY,CAAC,CAAC;AACd,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACxC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AACpC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE;AACrE,gBAAgB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;AAClD,YAAY;AACZ,iBAAiB,IAAI,IAAI,IAAI,IAAI,EAAE;AACnC,gBAAgB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnE,gBAAgB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9E,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,iBAAiB,GAAG,GAAG;AAC/C,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC;AACL,CAAC;;ACzLD,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;AAC5D,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;AAC9D,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC;AACzD,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;AACxJ;AACA;AACA,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC;AAClG;AACA;AACA,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC;AAC1E,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;AACzD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;AAC7C,CAAC,CAAC;;AClBF,MAAM,0BAAEA,wBAAsB,EAAE,GAAG,WAAW;AAC9C;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAGA,wBAAsB,CAAC,WAAW,CAAC;AACvD,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,WAAW,GAAG,CAAC;AACd,MAAM,wBAAwB,GAAG;AACxC,IAAI,IAAI,EAAE;AACV,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,eAAe,EAAE,aAAa;AACtC,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,eAAe,EAAE,aAAa;AACtC,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,eAAe,EAAE,SAAS;AAClC,KAAK;AACL,CAAC;;AC9BD;AACA;AACA;AACO,MAAM,sCAAsC,GAAG;AACtD,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,KAAK;AAC3D,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;AACpC,YAAY,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS;AAClF,QAAQ;AACR,QAAQ,IAAI,QAAQ;AACpB,YAAY,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC;AACpD,IAAI,CAAC;AACL,CAAC;;ACVD,MAAM,YAAEC,UAAQ,EAAE,GAAG,iBAAiB;AACtC,MAAM,0BAAED,wBAAsB,0BAAEE,wBAAsB,EAAE,GAAG,WAAW;AACtE;AACA;AACA;AACA,MAAM,wBAAwB,GAAG,CAAC,OAAO,KAAK;AAC9C,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAClD,CAAC;AACM,MAAM,kBAAkB,GAAG;AAClC,IAAI,GAAG,EAAE;AACT,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,OAAO,EAAE;AACjB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,EAAE;AACrB,oBAAoB,aAAa,EAAE,GAAG;AACtC,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,QAAQ,EAAE,IAAI;AAClC,iBAAiB;AACjB,aAAa;AACb,YAAY,SAAS,EAAE,GAAG;AAC1B,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAACD,UAAQ,CAAC,GAAG,CAAC,CAAC;AACzD,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,WAAW,EAAED,wBAAsB,CAAC,QAAQ,CAAC;AACjE,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,OAAO,EAAE;AACjB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,EAAE;AACrB,oBAAoB,aAAa,EAAE,GAAG;AACtC,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,QAAQ,EAAE,IAAI;AAClC,iBAAiB;AACjB,aAAa;AACb,YAAY,SAAS,EAAE,GAAG;AAC1B,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAACC,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,OAAO,EAAE,GAAG;AAChC,oBAAoB,WAAW,EAAED,wBAAsB,CAAC,QAAQ,CAAC;AACjE,iBAAiB;AACjB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO,EAAE;AACjB,YAAY,eAAe,EAAEE,wBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC;AACtE,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,WAAW,EAAEF,wBAAsB,CAAC,QAAQ,CAAC;AACrE,wBAAwB,WAAW,EAAE,CAAC;AACtC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAACC,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO,EAAE;AACjB,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,EAAE;AAC5B,oBAAoB,KAAK,EAAE,EAAE;AAC7B,oBAAoB,GAAG,EAAE,EAAE;AAC3B,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,YAAY,eAAe,EAAEC,wBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC;AACtE,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,EAAE,CAAC;AACpC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,WAAW,EAAE,CAAC;AACtC,wBAAwB,eAAe,EAAE,GAAG;AAC5C,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAACD,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,QAAQ,EAAE,OAAO;AACrC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,OAAO,EAAE,IAAI;AACrC,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,OAAO,EAAE,CAAC;AAC9B,oBAAoB,WAAW,EAAE,CAAC;AAClC,iBAAiB;AACjB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,SAAS,EAAE,EAAE;AACjC,oBAAoB,MAAM,EAAE,CAAC;AAC7B,oBAAoB,WAAW,EAAE,CAAC;AAClC,oBAAoB,gBAAgB,EAAE,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,OAAO,EAAE;AACrB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,KAAK;AACpC,oBAAoB,eAAe,EAAED,wBAAsB,CAAC,YAAY,CAAC;AACzE,oBAAoB,UAAU,EAAEA,wBAAsB,CAAC,qBAAqB,CAAC;AAC7E,oBAAoB,SAAS,EAAEA,wBAAsB,CAAC,qBAAqB,CAAC;AAC5E,oBAAoB,SAAS,EAAE,CAAC;AAChC,oBAAoB,WAAW,EAAE,CAAC;AAClC,oBAAoB,YAAY,EAAE,CAAC;AACnC,oBAAoB,WAAW,EAAE,aAAa;AAC9C,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,UAAU,EAAE,CAAC,WAAW,KAAK;AACrD,4BAA4B,OAAO;AACnC,gCAAgC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW;AAChF,gCAAgC,WAAW,EAAEA,wBAAsB,CAAC,YAAY,CAAC;AACjF,gCAAgC,WAAW,EAAE,CAAC;AAC9C;AACA,6BAA6B;AAC7B,wBAAwB,CAAC;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,UAAU,EAAE;AAC5B,oBAAoB,eAAe,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW;AAC7E,oBAAoB,KAAK,EAAEA,wBAAsB,CAAC,OAAO,CAAC;AAC1D,oBAAoB,YAAY,EAAE,CAAC;AACnC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,CAAC;AACrC,wBAAwB,IAAI,EAAE,QAAQ,CAACC,UAAQ,CAAC,IAAI,CAAC,CAAC;AACtD,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,EAAE,CAAC;AAC9B,wBAAwB,IAAI,EAAE,CAAC;AAC/B,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,MAAM,EAAE,CAAC;AACjC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,oBAAoB,KAAK,EAAE,CAAC,OAAO,KAAK,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,QAAQ;AAC7F,oBAAoB,OAAO,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS;AACxF,oBAAoB,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK;AAC/D,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,CAAC;;ACtMM,MAAM,kBAAkB,CAAC;AAChC,IAAI,aAAa,CAAC,SAAS,EAAE;AAC7B;AACA;AACA,QAAQ,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACtD,IAAI;AACJ,IAAI,qBAAqB,CAAC,IAAI,EAAE;AAChC,QAAQ,OAAO,wBAAwB,CAAC,IAAI,CAAC;AAC7C,IAAI;AACJ;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;AACpD,IAAI;AACJ,IAAI,mCAAmC,CAAC,OAAO,EAAE;AACjD,QAAQ,MAAM,8BAA8B,GAAG,sCAAsC;AACrF,QAAQ,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;AAC1E,YAAY,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;AACzC,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AACxC,gBAAgB,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;AACtE,YAAY,CAAC;AACb,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE;AACrB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,KAAK,EAAE,CAAC,YAAY,KAAK;AACjD,4BAA4B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACxE,4BAA4B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChD,gCAAgC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACvE,oCAAoC,GAAG,EAAE,SAAS;AAClD,oCAAoC,KAAK,EAAE,OAAO;AAClD,oCAAoC,IAAI,EAAE,SAAS;AACnD,oCAAoC,MAAM,EAAE,SAAS;AACrD,iCAAiC,CAAC;AAClC,4BAA4B;AAC5B,wBAAwB,CAAC;AACzB,wBAAwB,KAAK,EAAE,CAAC,OAAO,KAAK;AAC5C;AACA;AACA,4BAA4B,OAAO,GAAG,GAAG,OAAO,CAAC,cAAc,IAAI,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC;AACtG,wBAAwB,CAAC;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,QAAQ,EAAE,CAAC,KAAK,KAAK;AAC7C,4BAA4B,OAAO,KAAK,IAAI,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC;AAC/E,wBAAwB,CAAC;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACzM,uBAAuB,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AClEN,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,kBAAkB,EAAE;AACpC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AACpD,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,kBAAkB,CAAC;AAC9E,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAI;AAC3G,QAAQ,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,IAAI,IAAI;AAC9D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACjD,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AACtF,QAAQ,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC;AACpE,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC3C,IAAI;AACJ,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM;AACvC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE;AACpC,QAAQ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE;AACjD;AACA;AACA,YAAY,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC;AAC7D,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC;AAChE,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE;AACvC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5F,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AACrF,IAAI;AACJ,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,MAAM,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,WAAW,CAAC;AACxG,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,GAAG,uBAAuB;AACnF,IAAI;AACJ,IAAI,yBAAyB,CAAC,mBAAmB,EAAE;AACnD,QAAQ,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;AACtD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AACpD;AACA,QAAQ,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACrC,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;AAC5D,gBAAgB,OAAO,OAAO,CAAC,YAAY,CAAC,mBAAmB;AAC/D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AACnE,IAAI;AACJ,IAAI,mBAAmB,CAAC,IAAI,EAAE;AAC9B,QAAQ,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI;AACnD,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AAChF,QAAQ,MAAM,iBAAiB,GAAG,UAAU,EAAE,OAAO;AACrD,QAAQ,MAAM,uBAAuB,GAAG;AACxC,cAAc,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW;AACtF,cAAc,EAAE;AAChB,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,EAAE,aAAa,EAAE,uBAAuB,CAAC;AACrG,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,mCAAmC,CAAC,aAAa,CAAC;AACzF,IAAI;AACJ,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B;AACA;AACA;AACA;AACA,QAAQ,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,cAAc,KAAK,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,cAAc,CAAC;AAChL,QAAQ,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD,IAAI;AACJ,IAAI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,SAAS,GAAG,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,GAAG;AAC/D,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC1F,QAAQ,OAAO,YAAY,CAAC,UAAU,EAAE;AACxC,YAAY,IAAI,EAAE;AAClB,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,QAAQ;AACxB,aAAa;AACb,YAAY,OAAO;AACnB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;AAChE,QAAQ,IAAI,IAAI,CAAC,mBAAmB;AACpC,YAAY,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACrF,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE;AACjD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AACjD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5F,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAChF,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AACtF,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC;AACtD,IAAI;AACJ,IAAI,0BAA0B,CAAC,SAAS,EAAE,aAAa,EAAE;AACzD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5F,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACjD,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AACpC,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACnD,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAC9F,QAAQ;AACR,IAAI;AACJ,IAAI,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;AACrD,IAAI;AACJ,IAAI,gCAAgC,CAAC,mBAAmB,EAAE,QAAQ,EAAE;AACpE,QAAQ,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK;AACnE,YAAY,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AAClD,YAAY,IAAI,CAAC,OAAO;AACxB,gBAAgB;AAChB,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;AAC5D,gBAAgB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;AACxE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,YAAY,GAAG;AACvC,oBAAoB,GAAG,OAAO,CAAC,YAAY;AAC3C,oBAAoB,mBAAmB,EAAE,CAAC,SAAS,CAAC;AACpD,iBAAiB;AACjB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE;AAC3B,QAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;AACpD,QAAQ,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,6BAA6B,GAAG,MAAM,KAAK,SAAS;AAClE,QAAQ,MAAM,iCAAiC,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACjF,QAAQ,IAAI,6BAA6B,EAAE;AAC3C,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR,aAAa,IAAI,iCAAiC,EAAE;AACpD,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAClD,QAAQ;AACR,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEE,kBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrO,uBAAuB,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEA,kBAAqB,EAAE,CAAC,EAAE,CAAC;;AChL1D,MAAC,uBAAuB,GAAG;AACvC,IAAI,GAAG,EAAE;AACT,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,OAAO,EAAE;AACjB,YAAY,SAAS,EAAE,GAAG;AAC1B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,WAAW,EAAE,MAAM;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,OAAO,EAAE;AACjB,YAAY,eAAe,EAAE,KAAK;AAClC,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO,EAAE;AACjB,YAAY,eAAe,EAAE,MAAM;AACnC,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,WAAW,EAAE,KAAK;AACtC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,CAAC;AAC3B,oBAAoB,KAAK,EAAE,EAAE;AAC7B,oBAAoB,GAAG,EAAE,EAAE;AAC3B,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,YAAY,eAAe,EAAE,0BAA0B;AACvD,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,IAAI,EAAE,KAAK;AACnC,wBAAwB,cAAc,EAAE;AACxC,4BAA4B,IAAI,EAAE,OAAO;AACzC,4BAA4B,GAAG,EAAE,OAAO;AACxC,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,EAAE,CAAC;AACpC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,WAAW,EAAE,CAAC;AACtC,wBAAwB,MAAM,EAAE,MAAM;AACtC,wBAAwB,eAAe,EAAE,EAAE;AAC3C,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,EAAE;AACpC,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,IAAI,EAAE,OAAO;AAC7C,gCAAgC,UAAU,EAAE,EAAE;AAC9C,gCAAgC,QAAQ,EAAE,EAAE;AAC5C,gCAAgC,KAAK,EAAE,EAAE;AACzC,gCAAgC,OAAO,EAAE;AACzC,oCAAoC,YAAY,EAAE,CAAC;AACnD,oCAAoC,qBAAqB,EAAE,CAAC;AAC5D,iCAAiC;AACjC,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,QAAQ,EAAE,OAAO;AACrC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,OAAO,EAAE,IAAI;AACrC,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,EAAE;AACpC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,OAAO,EAAE,CAAC;AAC9B,oBAAoB,WAAW,EAAE,CAAC;AAClC,iBAAiB;AACjB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,SAAS,EAAE,EAAE;AACjC,oBAAoB,MAAM,EAAE,CAAC;AAC7B,oBAAoB,WAAW,EAAE,CAAC;AAClC,oBAAoB,gBAAgB,EAAE,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,OAAO,EAAE;AACrB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,KAAK;AACpC,oBAAoB,SAAS,EAAE,CAAC;AAChC,oBAAoB,YAAY,EAAE,EAAE;AACpC,oBAAoB,aAAa,EAAE,IAAI;AACvC,oBAAoB,eAAe,EAAE,SAAS;AAC9C,oBAAoB,OAAO,EAAE,CAAC;AAC9B,oBAAoB,UAAU,EAAE,OAAO;AACvC,oBAAoB,SAAS,EAAE,OAAO;AACtC,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,MAAM,EAAE,QAAQ;AACxC,wBAAwB,IAAI,EAAE,EAAE;AAChC,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE,EAAE;AAChC,wBAAwB,MAAM,EAAE,MAAM;AACtC,qBAAqB;AACrB,oBAAoB,SAAS,EAAE,EAAE;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU,EAAE;AAC5B,oBAAoB,KAAK,EAAE,SAAS;AACpC,oBAAoB,YAAY,EAAE,CAAC;AACnC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,CAAC;AACrC,wBAAwB,IAAI,EAAE,EAAE;AAChC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,EAAE,CAAC;AAC9B,wBAAwB,IAAI,EAAE,CAAC;AAC/B,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,MAAM,EAAE,CAAC;AACjC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACY,MAAC,6BAA6B,GAAG;AAC7C,IAAI,IAAI,EAAE;AACV,QAAQ,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,KAAK,EAAE;AACX,QAAQ,eAAe,EAAE,SAAS;AAClC,KAAK;AACL;;ACjKO,MAAM,kBAAkB,CAAC;AAChC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK;AACvE,IAAI;AACJ,IAAI,WAAW,CAAC,cAAc,EAAE;AAChC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACzC,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa;AAC9D,QAAQ,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACvF,IAAI;AACJ,IAAI,4BAA4B,CAAC,OAAO,EAAE;AAC1C,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;AACvE,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,EAAE;AACrE,YAAY,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AAC3C,gBAAgB,OAAO,EAAE;AACzB,YAAY,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK;AACjG,gBAAgB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE;AAC/D,oBAAoB,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;AACrD,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3C,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,aAAa,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACvC,YAAY,IAAI,iBAAiB,GAAG,KAAK;AACzC,YAAY,MAAM,gBAAgB,GAAG;AACrC,gBAAgB,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;AAC7C,gBAAgB,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE;AACjD,gBAAgB,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;AAC7C,gBAAgB,aAAa,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE;AAC/D,gBAAgB,WAAW,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC3D,gBAAgB,mBAAmB,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAAE;AAC3E,aAAa;AACb,YAAY,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;AAC7D,gBAAgB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC5E,oBAAoB;AACpB,gBAAgB,iBAAiB,GAAG,IAAI;AACxC,gBAAgB,gBAAgB,CAAC,GAAG,CAAC,EAAE;AACvC,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,iBAAiB;AACjC,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,cAAc,EAAE;AAChC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC,QAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AACxC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,YAAY,WAAW,EAAE,IAAI,CAAC,WAAW;AACzC,YAAY,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AACzD,YAAY,GAAG,cAAc;AAC7B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AACrD,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;AACrE,IAAI;AACJ,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC;AACxE,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/D,IAAI;AACJ,IAAI,yBAAyB,GAAG;AAChC,QAAQ,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC/E,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACzC,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC1C,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEC,cAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpO,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,4BAA4B,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE,CAAC,CAAC;AAC77B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE;AACra,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEA,cAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AAC1F,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,4BAA4B;AACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,aAAa;AACpC,aAAa,CAAC,EAAE,EAAE,CAAC;;ACtHZ,MAAM,cAAc,SAAS,kBAAkB,CAAC;AACvD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACtM,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE,CAAC,CAAC;AACnoB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE;AAC7b,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACXZ,MAAM,mBAAmB,SAAS,cAAc,CAAC;AACxD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,OAAO;AAChC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC;AACvD,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI;AACvD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI;AACxD,QAAQ,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;AACpC,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,EAAE,MAAM,IAAI,mBAAmB,CAAC,0BAA0B;AAC9F,IAAI;AACJ,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,cAAc,KAAK,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,cAAc,CAAC;AAChL,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;AAClG,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE,SAAS;AAC1B,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,mBAAmB,CAAC,IAAI,EAAE;AAC9B,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5D,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;AAC7G,QAAQ,OAAO,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC;AACvD,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,WAAW;AAC9C,YAAY,IAAI,CAAC,gBAAgB,EAAE,OAAO;AAC1C,YAAY,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE;AAC5C,YAAY,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AACvD,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AAC1C,YAAY,GAAG,OAAO;AACtB,YAAY,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE;AACzE,SAAS,CAAC,CAAC;AACX,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAC5B,QAAQ,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK;AACtE,YAAY,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC;AAC3F,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;AAChC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACpC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC;AAC5E,oBAAoB,QAAQ;AAC5B,iBAAiB;AACjB,aAAa;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC1B,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C,gBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC5D,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C,gBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;AAC1D,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AACnD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC;AAC5D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;AACxD,QAAQ,IAAI,OAAO;AACnB,QAAQ,IAAI,KAAK;AACjB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,KAAK;AACnD,YAAY,IAAI,SAAS,IAAI,KAAK,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;AAC3E,gBAAgB,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;AACtC,gBAAgB,OAAO,GAAG,KAAK;AAC/B,YAAY;AACZ,YAAY,IAAI,SAAS,IAAI,MAAM,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;AAC5E,gBAAgB,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;AACtC,gBAAgB,OAAO,GAAG,KAAK;AAC/B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACjC,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5M,uBAAuB,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC7J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC9FN,MAAM,mBAAmB,SAAS,kBAAkB,CAAC;AAC5D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;AAC3B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,WAAW,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACtE,IAAI;AACJ,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3M,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE,CAAC,CAAC;AACtuB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,CAAC,EAAE,QAAQ,EAAE,kRAAkR,EAAE,MAAM,EAAE,CAAC,wEAAwE,CAAC,EAAE;AACngB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;AACjD,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACfZ,MAAM,YAAY,CAAC;AAC1B,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjM,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACnP,uBAAuB,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AAClE,oBAAoB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AAClE,oBAAoB,SAAS,EAAE,CAAC,kBAAkB,CAAC;AACnD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACjBN,MAAM,eAAe,CAAC;AAC7B,IAAI,SAAS,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,CAAC,CAAC;AAC9C;;ACAA,MAAM,0BAAEJ,wBAAsB,EAAE,GAAG,WAAW;AAC9C;AACA;AACA;AACO,MAAM,cAAc,SAAS,eAAe,CAAC;AACpD,IAAI,SAAS,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC;AACrD,IAAI,SAAS,IAAI,CAAC,UAAU,GAAG;AAC/B,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,IAAI,EAAE;AACd,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,EAAE;AACrB,oBAAoB,aAAa,EAAE,GAAG;AACtC,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,QAAQ,EAAE,IAAI;AAClC,iBAAiB;AACjB,aAAa;AACb,YAAY,SAAS,EAAE,GAAG;AAC1B,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,CAAC,EAAE,EAAE;AACrB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,WAAW,EAAEA,wBAAsB,CAAC,QAAQ,CAAC;AACjE,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;;ACxCA,MAAM,0BAAEA,wBAAsB,EAAE,GAAG,WAAW;AAC9C,MAAM,YAAEC,UAAQ,EAAE,GAAG,iBAAiB;AAC/B,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK;AACzD,IAAI,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC,CAAC;AACtF,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC;AACzD,IAAI,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnE,IAAI,IAAI,SAAS,KAAK,aAAa,EAAE;AACrC,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC;AACzD,IAAI,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnE,IAAI,IAAI,SAAS,KAAK,aAAa,EAAE;AACrC,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,CAAC;AACM,MAAM,sBAAsB,GAAG;AACtC,IAAI,eAAe,EAAE,SAAS;AAC9B,IAAI,KAAK,EAAED,wBAAsB,CAAC,OAAO,CAAC;AAC1C,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,IAAI,EAAE;AACV,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ,CAACC,UAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,GAAG,EAAE,CAAC;AACd,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,MAAM,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,KAAK,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;AACrF,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK;AAC1B,QAAQ,OAAO,aAAa,CAAC,OAAO,CAAC;AACrC,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpD,CAAC;AACD,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;AAC1D,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACzC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACzC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,aAAa,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa;AACrF;;AC9CA,MAAM,cAAc,GAAG,cAAc;AAC9B,MAAM,2BAA2B,GAAG;AAC3C,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,QAAQ,EAAE;AACd,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK;AACL,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK;AAC1B,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG;AAChC,YAAY,CAAC,EAAE,CAAC;AAChB,YAAY,CAAC,EAAE,CAAC;AAChB,SAAS;AACT,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK;AACjC,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;AACpC,QAAQ,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;AACnC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC3D,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,KAAK;AACvC,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK;AAC7B,QAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS;AAC/C,QAAQ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC;AACjD,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ,QAAQ,GAAG,CAAC,IAAI,EAAE;AAClB,QAAQ,GAAG,CAAC,SAAS,EAAE;AACvB,QAAQ,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK;AACrC,QAAQ,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK;AACvC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;AAC7B,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1B,QAAQ,GAAG,CAAC,MAAM,EAAE;AACpB,QAAQ,GAAG,CAAC,OAAO,EAAE;AACrB,IAAI,CAAC;AACL,CAAC;;AC7BD,MAAM,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,GAAG,WAAW;AACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB;AACtC;AACA;AACA;AACO,MAAM,gBAAgB,SAAS,eAAe,CAAC;AACtD,IAAI,SAAS,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC;AACvD,IAAI,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACnE,IAAI,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACrE,IAAI,SAAS,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAChE,IAAI,SAAS,IAAI,CAAC,OAAO,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAChE,IAAI,SAAS,IAAI,CAAC,kBAAkB,GAAG;AACvC,QAAQ,GAAG,IAAI,CAAC,MAAM;AACtB,QAAQ,GAAG,IAAI,CAAC,WAAW;AAC3B,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACxB,QAAQ,GAAG,IAAI,CAAC,OAAO;AACvB,KAAK,CAAC;AACN,IAAI,SAAS,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC5C,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,IAAI,gBAAgB,CAAC,iBAAiB,EAAE;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACnD,YAAY,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACjC,QAAQ,CAAC,CAAC;AACV,QAAQ,gBAAgB,CAAC,iBAAiB,GAAG,IAAI;AACjD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,UAAU,GAAG;AAC/B,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE;AACd,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,EAAE;AAC5B,oBAAoB,KAAK,EAAE,EAAE;AAC7B,oBAAoB,GAAG,EAAE,EAAE;AAC3B,oBAAoB,MAAM,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa;AACb,YAAY,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC;AACtE,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,MAAM,EAAE,gBAAgB,CAAC,0BAA0B;AAC/E,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,EAAE,CAAC;AACpC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,WAAW,EAAE,CAAC;AACtC,wBAAwB,eAAe,EAAE,GAAG;AAC5C,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,SAAS,EAAE;AAC5C,4BAA4B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/G,4BAA4B,OAAO,sBAAsB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,0BAA0B,CAAC;AACzH,wBAAwB,CAAC;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,CAAC,EAAE;AACnB,oBAAoB,QAAQ,EAAE,OAAO;AACrC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,UAAU,EAAE,KAAK;AACzC,qBAAqB;AACrB,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,OAAO,EAAE,IAAI;AACrC,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,OAAO,EAAE,CAAC;AAC9B,oBAAoB,WAAW,EAAE,CAAC;AAClC,iBAAiB;AACjB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,SAAS,EAAE,EAAE;AACjC,oBAAoB,MAAM,EAAE,CAAC;AAC7B,oBAAoB,WAAW,EAAE,CAAC;AAClC,oBAAoB,gBAAgB,EAAE,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,OAAO,EAAE,EAAE;AACvB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,SAAS,IAAI,CAAC,aAAa,GAAG;AAClC,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAE,KAAK;AACxB,QAAQ,eAAe,EAAE,sBAAsB,CAAC,YAAY,CAAC;AAC7D,QAAQ,UAAU,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;AACjE,QAAQ,SAAS,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;AAChE,QAAQ,SAAS,EAAE,CAAC;AACpB,QAAQ,WAAW,EAAE,CAAC;AACtB,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,WAAW,EAAE,aAAa;AAClC,QAAQ,SAAS,EAAE;AACnB,YAAY,KAAK,EAAE,CAAC,WAAW,KAAK;AACpC,gBAAgB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzE,gBAAgB,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,0BAA0B,CAAC;AACjH,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC3D,YAAY,UAAU,EAAE,CAAC,WAAW,KAAK;AACzC,gBAAgB,OAAO;AACvB,oBAAoB,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW;AACpE,oBAAoB,WAAW,EAAE,sBAAsB,CAAC,YAAY,CAAC;AACrE,oBAAoB,WAAW,EAAE,CAAC;AAClC;AACA,iBAAiB;AACjB,YAAY,CAAC;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,SAAS,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;AAClE,IAAI,SAAS,IAAI,CAAC,wBAAwB,GAAG,2BAA2B,CAAC;AACzE,IAAI,SAAS,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAC9D;AACA,MAAM,sBAAsB,GAAG,CAAC,iBAAiB,EAAE,MAAM,KAAK;AAC9D,IAAI,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC;AAC/C,IAAI,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC9C,QAAQ,GAAG,EAAE,SAAS;AACtB,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN,CAAC;AACD,MAAM,0BAA0B,GAAG,CAAC,iBAAiB,EAAE,MAAM,KAAK;AAClE,IAAI,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC;AAC/C,IAAI,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC9C,QAAQ,GAAG,EAAE,SAAS;AACtB,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,MAAM,EAAE,SAAS;AACzB,KAAK,CAAC;AACN,CAAC;;ACvJD;AACA;AACA;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-chart.mjs","sources":["../../chart/src/shared/charts.types.ts","../../chart/src/shared/chart-js-service/annotations.delegate.ts","../../chart/src/shared/chart-config-service/configs/global-defaults.config.ts","../../chart/src/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.ts","../../chart/src/shared/chart-js-service/configured-chart-js.ts","../../chart/src/shared/chart-config-service/configs/annotations.config.ts","../../chart/src/shared/chart-config-service/configs/interaction-functions-extensions.config.ts","../../chart/src/shared/chart-config-service/configs/type.config.ts","../../chart/src/shared/chart-config-service/chart-config.service.ts","../../chart/src/shared/chart-js-service/chart-js.service.ts","../../chart/src/shared/chart-js-service/test-utils.ts","../../chart/src/shared/base-chart/base-chart.component.ts","../../chart/src/shared/base-chart/base-chart.component.html","../../chart/src/chart/chart.component.ts","../../chart/src/stock-chart/stock-chart-js.service.ts","../../chart/src/stock-chart/stock-chart.component.ts","../../chart/src/charts.module.ts","../../chart/src/chart-config/chart-base-config.ts","../../chart/src/chart-config/chart-bar-config/chart-bar-config.ts","../../chart/src/chart-config/chart-stock-config/data-label-position/data-label-position.ts","../../chart/src/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.ts","../../chart/src/chart-config/chart-stock-config/chart-stock-config.ts","../../chart/src/kirbydesign-designsystem-chart.ts"],"sourcesContent":["import { ChartDataset as ChartJSDataset, ChartType as ChartJSType, ChartOptions } from 'chart.js';\n\nexport type ChartHighlightedElements = number[][];\n\nexport type ChartType = 'column' | 'bar' | 'line' | 'stock';\n\nexport type ChartTypeConfig = { type: ChartJSType; options?: ChartOptions };\n\nexport type ChartTypesConfig = {\n [key in ChartType]: ChartTypeConfig;\n};\nexport type ChartLabel = string | string[]; // String[] allows for multi-line labels\n\nexport type ChartDataLabelOptions = {\n showMin?: boolean;\n showMax?: boolean;\n showCurrent?: boolean;\n locale?: ChartLocale;\n valueSuffix?: string;\n};\n\nexport type ChartLocale = 'da-DK' | 'en-US';\n\n/* \n kirbyOptions.isStockChart is a hacky solution to this issue: \n https://github.com/kirbydesign/designsystem/issues/1967 \n*/\nexport type ChartDataset = {\n kirbyOptions?: { highlightedElements?: number[]; isStockChart?: boolean };\n} & ChartJSDataset;\n\nexport function isNumberArray(value: any): value is number[] {\n return Array.isArray(value) && value.every((item) => typeof item === 'number');\n}\n","import { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { Chart } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\n\nimport { ChartConfigService } from '../';\n\nexport class AnnotationsDelegate {\n constructor(private chartConfigService: ChartConfigService) {}\n\n public applyDefaultsToAnnotations(annotations: AnnotationOptions[]) {\n return annotations.map((annotation) => {\n const annotationTypeDefaults = this.chartConfigService.getAnnotationDefaults(annotation.type);\n return mergeDeepAll(annotationTypeDefaults, annotation);\n });\n }\n\n public createAnnotationPluginOptionsObject(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n return {\n plugins: {\n annotation: {\n annotations: annotationsWithDefaults,\n },\n },\n };\n }\n\n public getExistingChartAnnotations(chart: Chart): AnnotationOptions[] {\n const annotations = chart.options.plugins?.annotation?.annotations;\n /* In browser chart.js might return annotations as a Proxy object; force it to be an array.\n Each annotationOption in the resulting array will also be a Proxy object. \n But internally chart.js will just work with them as normal values */\n if (annotations !== undefined) {\n return Object.keys(annotations).map((key) => annotations[key]);\n } else {\n return [];\n }\n }\n}\n","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { ChartType, ScriptableContext } from 'chart.js';\n\nimport { ChartDataset } from '../../';\n\nconst { getThemeColorHexString } = ColorHelper;\n\nconst hoverBackgroundColor = getThemeColorHexString('primary');\nconst backgroundColor = getThemeColorHexString('secondary');\n\nfunction scriptedBackgroundColor(context: ScriptableContext<ChartType>) {\n const dataset = context.dataset as ChartDataset;\n const highlightedElements = dataset?.kirbyOptions?.highlightedElements;\n\n if (highlightedElements && highlightedElements.includes(context.dataIndex)) {\n return hoverBackgroundColor;\n } else {\n return backgroundColor;\n }\n}\n\n// Only adds a hovercolor if an onClick handler is provided\nfunction scriptedHoverBackgroundColor(context: ScriptableContext<ChartType>) {\n if (context.chart.options.onClick) {\n return hoverBackgroundColor;\n }\n}\n\nexport const CHART_GLOBAL_DEFAULTS = {\n maintainAspectRatio: false,\n color: getThemeColorHexString('black'),\n resizeDelay: 10,\n elements: {\n bar: {\n backgroundColor: scriptedBackgroundColor,\n hoverBackgroundColor: scriptedHoverBackgroundColor,\n },\n line: {\n borderColor: scriptedBackgroundColor,\n borderWidth: 2,\n tension: 0.3,\n },\n },\n scales: {\n linear: {\n display: false,\n ticks: {\n display: false,\n },\n },\n category: {\n display: true,\n grid: {\n display: false,\n },\n },\n },\n font: {\n family: 'Roboto',\n },\n plugins: {\n legend: {\n display: false,\n },\n datalabels: {\n display: false,\n },\n tooltip: {\n enabled: false,\n },\n },\n};\n","/* \n The marker plugin is heavily inspired by https://chartjs-plugin-crosshair.netlify.app\n The project appears stale and only the vertical line feature is needed\n part of the plugin that was actually needed is implemented here. \n*/\n\nimport { Chart } from 'chart.js';\nimport { valueOrDefault } from 'chart.js/helpers';\n\nimport { ChartDataset } from '../../charts.types';\n\nconst defaultOptions = {\n line: {\n color: 'black',\n width: 1,\n dashPattern: [],\n },\n snap: {\n enabled: false,\n },\n};\n\nconst hasMarkerConfiguration = (chart: Chart) => {\n /* \n Hacky solution. Should be fixed in this issue: https://github.com/kirbydesign/designsystem/issues/1967\n */\n return chart.data.datasets.some((dataset: ChartDataset) => !!dataset?.kirbyOptions?.isStockChart);\n};\n\nexport default {\n id: 'marker',\n\n afterInit: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n const xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n if (chart.options.plugins.marker === undefined) {\n chart.options.plugins.marker = defaultOptions;\n }\n\n chart.marker = {\n enabled: false,\n suppressUpdate: false,\n x: null,\n originalData: [],\n originalXRange: {},\n dragStarted: false,\n dragStartX: null,\n dragEndX: null,\n suppressTooltips: false,\n ignoreNextEvents: 0,\n };\n },\n\n getOption: function (chart, category, name) {\n return valueOrDefault(\n chart.options.plugins.marker[category]\n ? chart.options.plugins.marker[category][name]\n : undefined,\n defaultOptions[category][name]\n );\n },\n\n getXScale: function (chart) {\n return chart.data.datasets.length ? chart.scales[chart.getDatasetMeta(0).xAxisID] : null;\n },\n getYScale: function (chart) {\n return chart.scales[chart.getDatasetMeta(0).yAxisID];\n },\n\n afterEvent: function (chart, event) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n if (chart.config.options.scales.x.length == 0) {\n return;\n }\n\n const e = event.event;\n\n const xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n const xScale = this.getXScale(chart);\n\n if (!xScale) {\n return;\n }\n\n if (chart.marker.ignoreNextEvents > 0) {\n chart.marker.ignoreNextEvents -= 1;\n return;\n }\n\n chart.marker.enabled =\n e.type !== 'mouseout' &&\n e.x > xScale.getPixelForValue(xScale.min) &&\n e.x < xScale.getPixelForValue(xScale.max);\n\n if (!chart.marker.enabled && !chart.marker.suppressUpdate) {\n if (e.x > xScale.getPixelForValue(xScale.max)) {\n // suppress future updates to prevent endless redrawing of chart\n chart.marker.suppressUpdate = true;\n chart.update('none');\n }\n chart.marker.dragStarted = false; // cancel zoom in progress\n return false;\n }\n chart.marker.suppressUpdate = false;\n\n chart.marker.x = e.x;\n\n chart.draw();\n },\n doDraw: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n if (!chart.marker.enabled) {\n return;\n }\n\n this.drawTraceLine(chart);\n this.interpolateValues(chart);\n this.drawTracePoints(chart);\n\n return true;\n },\n beforeDraw: function (chart) {\n return this.doDraw(chart);\n },\n // Logic moved to beforeDraw in order\n // for the vertical line to be drawn\n // under tooltip and datalabels.\n // afterDraw: function(chart) {\n // return this.doDraw(chart);\n // },\n\n drawTraceLine: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n const yScale = this.getYScale(chart);\n\n const lineWidth = this.getOption(chart, 'line', 'width');\n const color = this.getOption(chart, 'line', 'color');\n const dashPattern = this.getOption(chart, 'line', 'dashPattern');\n const snapEnabled = this.getOption(chart, 'snap', 'enabled');\n\n let lineX = chart.marker.x;\n\n if (snapEnabled && chart._active.length) {\n lineX = chart._active[0].element.x;\n }\n\n chart.ctx.beginPath();\n chart.ctx.setLineDash(dashPattern);\n chart.ctx.moveTo(lineX, yScale.getPixelForValue(yScale.max));\n chart.ctx.lineWidth = lineWidth;\n chart.ctx.strokeStyle = color;\n chart.ctx.lineTo(lineX, yScale.getPixelForValue(yScale.min));\n chart.ctx.stroke();\n chart.ctx.setLineDash([]);\n },\n\n drawTracePoints: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n for (let chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n const dataset = chart.data.datasets[chartIndex];\n const meta = chart.getDatasetMeta(chartIndex);\n\n const yScale = chart.scales[meta.yAxisID];\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n chart.ctx.beginPath();\n chart.ctx.arc(\n chart.marker.x,\n yScale.getPixelForValue(dataset.interpolatedValue),\n 3,\n 0,\n 2 * Math.PI,\n false\n );\n chart.ctx.fillStyle = 'white';\n chart.ctx.lineWidth = 2;\n chart.ctx.strokeStyle = dataset.borderColor;\n chart.ctx.fill();\n chart.ctx.stroke();\n }\n },\n\n interpolateValues: function (chart) {\n for (let chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n const dataset = chart.data.datasets[chartIndex];\n\n const meta = chart.getDatasetMeta(chartIndex);\n\n const xScale = chart.scales[meta.xAxisID];\n const xValue = xScale.getValueForPixel(chart.marker.x);\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n const data = dataset.data;\n const index = data.findIndex(function (o) {\n return o.x >= xValue;\n });\n const prev = data[index - 1];\n const next = data[index];\n\n if (chart.data.datasets[chartIndex].steppedLine && prev) {\n dataset.interpolatedValue = prev.y;\n } else if (prev && next) {\n const slope = (next.y - prev.y) / (next.x - prev.x);\n dataset.interpolatedValue = prev.y + (xValue - prev.x) * slope;\n } else {\n dataset.interpolatedValue = NaN;\n }\n }\n },\n};\n","import { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport {\n BarController,\n BarElement,\n CategoryScale,\n Chart,\n Filler,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Tooltip,\n} from 'chart.js';\nimport 'chartjs-adapter-date-fns';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nimport { CHART_GLOBAL_DEFAULTS } from '../chart-config-service/configs/global-defaults.config';\n\nimport MarkerPlugin from './chartjs-plugin-marker/chartjs-plugin-marker';\n\nconst CHART_SCALES = [CategoryScale, LinearScale, TimeScale];\nconst CHART_ELEMENTS = [BarElement, LineElement, PointElement];\nconst CHART_CONTROLLERS = [BarController, LineController];\nconst CHART_PLUGINS = [annotationPlugin, Filler, ChartDataLabels, Tooltip, MarkerPlugin].map(\n (plugin: any) => (plugin?.__esModule ? plugin.default : plugin)\n);\n\n/* Order matters; defaults must be merged after register as \n register modifies the Chart.defaults objects */\nChart.register(Legend, ...CHART_SCALES, ...CHART_ELEMENTS, ...CHART_CONTROLLERS, ...CHART_PLUGINS);\n\n/* Chart.defaults is read only; set each key modified in \n CHART_GLOBAL_DEFAULTS manually */\nconst mergedDefaults = mergeDeepAll(Chart.defaults, CHART_GLOBAL_DEFAULTS);\nObject.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {\n Chart.defaults[key] = mergedDefaults[key];\n});\n\nexport { Chart };\n","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\n\nconst { getThemeColorHexString } = ColorHelper;\n\n/* The chart.js annotation does not allow for changing the \ndefaults it comes with. In order to have sensible defaults \nthis object is used instead and manually merged with the \nrest of the annotations object */\nconst borderColor = getThemeColorHexString('semi-dark');\nconst borderDash: [number, number] = [6, 3];\nconst borderWidth = 1;\n\nexport const CHART_ANNOTATIONS_CONFIG: Omit<AnnotationTypeRegistry, 'label' | 'polygon'> = {\n line: {\n borderDash,\n borderWidth,\n borderColor,\n },\n ellipse: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n box: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n point: {\n backgroundColor: 'initial',\n },\n};\n","import { ActiveElement, Chart, ChartEvent, ChartOptions } from 'chart.js';\n\n/* Allows for adding functionality to interactions chart.js while \npreserving the interaction functionality the consumer of the component has \npassed by being provided as a callback. */\nexport const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {\n onHover: (\n _event: ChartEvent,\n activeElements: ActiveElement[],\n _chart: Chart,\n callback: ChartOptions['onHover']\n ) => {\n if (_chart.options.onClick) {\n _chart.canvas.style.cursor = activeElements[0] ? 'pointer' : 'default';\n }\n\n if (callback) callback(_event, activeElements, _chart);\n },\n};\n","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { ChartTypeRegistry, Color, Point, TooltipItem, TooltipLabelStyle } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { Align } from 'chartjs-plugin-datalabels/types/options';\n\nimport { ChartTypesConfig } from '../../';\n\nconst { fontSize } = DesignTokenHelper;\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\n\n/**\n * A filter to read a chartpoint from a Chart.js point context (used for chartdata points). Context is provided by Chart.js.\n */\nconst getChartPointFromContext = (context: Context): Point => {\n return context.dataset.data[context.dataIndex] as Point;\n};\n\nexport const CHART_TYPES_CONFIG: ChartTypesConfig = {\n bar: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'y',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('s')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n x: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0.2,\n borderColor: getThemeColorHexString('medium'),\n },\n point: {\n radius: 0,\n },\n },\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n borderColor: getThemeColorHexString('medium'),\n borderWidth: 1,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n padding: 10,\n\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n labelColor: (tooltipItem: TooltipItem<keyof ChartTypeRegistry>) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n borderColor: getThemeColorHexString('semi-light'),\n borderWidth: 2, // This value must be exactly 2. If it is less, a white \"border\" will appear, if greater than, a shadow around the box will be shown.\n // An issue has been created, requesting a test to check this value doesn´t change: https://github.com/kirbydesign/designsystem/issues/2578\n } as TooltipLabelStyle;\n },\n },\n },\n datalabels: {\n backgroundColor: (context: Context) => context.dataset.borderColor as Color,\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context: Context): Align =>\n (getChartPointFromContext(context) as any)?.datalabel.position,\n display: (context: Context): boolean =>\n !!(getChartPointFromContext(context) as any)?.datalabel,\n formatter: (value: any): string => value.datalabel.value,\n },\n },\n },\n },\n};\n","import { Injectable } from '@angular/core';\nimport { deepCopy } from '@kirbydesign/designsystem/helpers';\nimport { ActiveElement, Chart, ChartType as ChartJSType, ChartOptions } from 'chart.js';\nimport { AnnotationType, AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\nimport { toDate } from 'date-fns';\nimport { ChartDataLabelOptions, ChartLocale, ChartType, ChartTypeConfig } from '../charts.types';\n\nimport { CHART_ANNOTATIONS_CONFIG } from './configs/annotations.config';\nimport { CHART_INTERACTION_FUNCTIONS_EXTENSIONS } from './configs/interaction-functions-extensions.config';\nimport { CHART_TYPES_CONFIG } from './configs/type.config';\n\n@Injectable()\nexport class ChartConfigService {\n public getTypeConfig(chartType: ChartType): ChartTypeConfig {\n /* Deep copy to avoid Chart object modifying parts of CHART_TYPES_CONFIG \n as it copies by reference when initialized */\n return deepCopy(CHART_TYPES_CONFIG[chartType]);\n }\n\n public getAnnotationDefaults(type: AnnotationType): AnnotationTypeRegistry[AnnotationType] {\n return CHART_ANNOTATIONS_CONFIG[type];\n }\n\n /* Our types does not always map 1 to 1 to the same type \n that the chart.js chart is actually configured with. Therefore this function \n for looking up the ChartJSType of a type. */\n public chartTypeToChartJSType(chartType: ChartType): ChartJSType {\n return CHART_TYPES_CONFIG[chartType]['type'] as ChartJSType;\n }\n\n public applyInteractionFunctionsExtensions(options: ChartOptions): ChartOptions {\n const interactionFunctionsExtensions = CHART_INTERACTION_FUNCTIONS_EXTENSIONS;\n Object.entries(interactionFunctionsExtensions).forEach(([key]) => {\n const callback = options[key];\n options[key] = (e: Event, a: ActiveElement[], c: Chart) => {\n interactionFunctionsExtensions[key](e, a, c, callback);\n };\n });\n return options;\n }\n\n public getStockChartOptions(dataLabelOptions: ChartDataLabelOptions, locale: ChartLocale) {\n return {\n locale: locale,\n plugins: {\n tooltip: {\n callbacks: {\n title: (tooltipItems) => {\n const date = toDate((tooltipItems[0]?.raw as any)?.x);\n if (date.valueOf()) {\n return date.toLocaleTimeString(locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n },\n label: (context) => {\n // It's not possible to add spacing between color legend and text so we\n // prefix with a space.\n return ' ' + context.formattedValue + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n scales: {\n y: {\n ticks: {\n callback: (value) => {\n return value + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n };\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { chartConfigHasType, mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { ChartConfiguration, ChartOptions } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\n\nimport { ChartConfigService } from '../chart-config-service';\nimport {\n ChartDataset,\n ChartHighlightedElements,\n ChartLabel,\n ChartType,\n isNumberArray,\n} from '../charts.types';\n\nimport { AnnotationsDelegate } from './annotations.delegate';\nimport { Chart } from './configured-chart-js';\n\n@Injectable()\nexport class ChartJSService {\n private chart: Chart;\n private highlightedElements: ChartHighlightedElements;\n protected chartType: ChartType;\n private annotationsDelegate: AnnotationsDelegate;\n\n constructor(protected chartConfigService: ChartConfigService) {\n this.annotationsDelegate = new AnnotationsDelegate(chartConfigService);\n }\n\n public renderChart(args: {\n targetElement: ElementRef<HTMLCanvasElement>;\n type: ChartType;\n data: ChartDataset[] | number[];\n labels?: ChartLabel[];\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n highlightedElements?: ChartHighlightedElements;\n }): void {\n const { targetElement, type, data, labels, customOptions, annotations, highlightedElements } =\n args;\n\n this.highlightedElements = highlightedElements || null;\n this.chartType = type;\n\n const datasets = this.createDatasets(data);\n\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n\n this.initializeNewChart(targetElement.nativeElement, config);\n }\n\n public redrawChart() {\n this.chart.update();\n }\n\n public destroyChart() {\n this.chart?.destroy();\n }\n\n public updateData(data: ChartDataset[] | number[]): void {\n const datasets = this.createDatasets(data);\n\n this.chart.data.datasets = datasets;\n }\n\n public updateLabels(labels: ChartLabel[]) {\n /* As labels provided via the 'labels' input property always has \n highest priority - we can just set the property directly */\n this.chart.data.labels = labels;\n }\n\n public updateType(type: ChartType, customOptions?: ChartOptions) {\n if (type === 'bar' || type === 'column') {\n /* indexAxis does not update predictably; update by replacing \n the chart entirely instead */\n this.destructivelyUpdateType(type, customOptions);\n } else {\n this.nonDestructivelyUpdateType(type, customOptions);\n }\n }\n\n public updateOptions(customOptions: ChartOptions, type: ChartType) {\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n this.chartType = type;\n this.chart.options = this.createOptionsObject({ customOptions, annotations });\n }\n\n public updateAnnotations(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults =\n this.annotationsDelegate.applyDefaultsToAnnotations(annotations);\n this.chart.options.plugins.annotation.annotations = annotationsWithDefaults;\n }\n\n public updateHighlightedElements(highlightedElements?: ChartHighlightedElements) {\n this.highlightedElements = highlightedElements;\n const oldDatasets = this.chart.data.datasets as ChartDataset[];\n\n // Clear old datasets of highlighted elements\n oldDatasets.map((dataset) => {\n if (dataset?.kirbyOptions?.highlightedElements) {\n delete dataset.kirbyOptions.highlightedElements;\n }\n });\n\n this.chart.data.datasets = this.createDatasets(oldDatasets);\n }\n\n protected createOptionsObject(args: {\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n }): ChartOptions {\n const { customOptions, annotations } = args;\n\n const typeConfig = this.chartConfigService.getTypeConfig(this.chartType);\n const typeConfigOptions = typeConfig?.options;\n const annotationPluginOptions = annotations\n ? this.annotationsDelegate.createAnnotationPluginOptionsObject(annotations)\n : {};\n\n const mergedOptions: ChartOptions = mergeDeepAll(\n typeConfigOptions,\n customOptions,\n annotationPluginOptions\n );\n\n return this.chartConfigService.applyInteractionFunctionsExtensions(mergedOptions);\n }\n\n protected getDefaultLabels(datasets: ChartDataset[]): ChartLabel | ChartLabel[] {\n /* \n Chart.js requires labels along the index axis to render anything therefore\n use blank labels \n */\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return Array(largestDataset.data.length).fill('');\n }\n\n private createConfigurationObject(\n type: ChartType,\n datasets: ChartDataset[],\n options: ChartOptions,\n labels?: ChartLabel[]\n ): ChartConfiguration {\n const typeConfig = this.chartConfigService.getTypeConfig(type);\n\n const indexAxis = typeConfig?.options?.indexAxis ?? 'x';\n const labelsToApply = this.getLabelsToApply({ labels, datasets, type, indexAxis });\n\n return mergeDeepAll(typeConfig, {\n data: {\n labels: labelsToApply,\n datasets,\n },\n options,\n }) as ChartConfiguration;\n }\n\n protected createDatasets(data: ChartDataset[] | number[]): ChartDataset[] {\n const datasets = isNumberArray(data) ? [{ data }] : data;\n\n if (this.highlightedElements)\n this.addHighlightedElementsToDatasets(this.highlightedElements, datasets);\n\n return datasets;\n }\n\n private destructivelyUpdateType(type: ChartType, customOptions?: ChartOptions) {\n const datasets = this.chart.data.datasets as ChartDataset[];\n const labels = this.chart.data.labels as ChartLabel[]; // chart.js stores labels as unknown[]; cast it to ChartLabel[]\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n\n this.chartType = type;\n const options = this.createOptionsObject({ customOptions, annotations });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n const canvasElement = this.chart.canvas;\n\n this.chart.destroy();\n this.initializeNewChart(canvasElement, config);\n }\n\n private nonDestructivelyUpdateType(chartType: ChartType, customOptions?: ChartOptions) {\n const annotations = this.annotationsDelegate.getExistingChartAnnotations(this.chart);\n this.chartType = chartType;\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n\n this.chart.options = options;\n\n if (chartConfigHasType(this.chart.config)) {\n this.chart.config.type = this.chartConfigService.chartTypeToChartJSType(chartType);\n }\n }\n\n private initializeNewChart(canvasElement: HTMLCanvasElement, config: ChartConfiguration) {\n this.chart = new Chart(canvasElement, config);\n }\n\n private addHighlightedElementsToDatasets(\n highlightedElements: ChartHighlightedElements,\n datasets: ChartDataset[]\n ) {\n highlightedElements.forEach(([datasetIndex, dataIndex]) => {\n const dataset = datasets[datasetIndex];\n if (!dataset) return;\n\n if (dataset?.kirbyOptions?.highlightedElements) {\n dataset.kirbyOptions.highlightedElements.push(dataIndex);\n } else {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n highlightedElements: [dataIndex],\n };\n }\n });\n }\n\n private getLabelsToApply(args: {\n datasets: ChartDataset[];\n type: ChartType;\n indexAxis: 'x' | 'y';\n labels?: ChartLabel[];\n }) {\n const { datasets, labels, indexAxis } = args;\n\n const datasetHasLabels = ({ data }: ChartDataset) =>\n !!data?.some(\n (datapoint) => typeof datapoint === 'object' && typeof datapoint[indexAxis] === 'string'\n );\n\n /*\n Labels can be provided by the user two ways:\n 1. As a seperate ChartLabel[] via the 'labels' input prop - this has highest priority\n 2. Together with the dataset via the 'data' input prop - here each datapoint contains \n a label for the indexAxis. \n For example: { x: 'label1', y: 1} in the case where the index axis is 'x'. \n\n If no labels are provided then default labels are used. \n */\n const labelsAreGivenAsSeperateArray = labels !== undefined;\n const labelsAreGivenTogetherWithDataset = datasets.some(datasetHasLabels);\n\n if (labelsAreGivenAsSeperateArray) {\n return labels;\n } else if (labelsAreGivenTogetherWithDataset) {\n return null;\n } else {\n return this.getDefaultLabels(datasets);\n }\n }\n}\n","import { AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\nimport { ChartTypesConfig } from '../charts.types';\n\nexport const TEST_CHART_TYPES_CONFIG: ChartTypesConfig = {\n bar: {\n type: 'bar',\n options: {\n indexAxis: 'y',\n elements: {\n line: {\n borderColor: 'blue',\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n backgroundColor: 'red',\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: 'blue',\n elements: {\n line: {\n borderColor: 'red',\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n locale: 'en-US',\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 0,\n right: 10,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: 'rgba(235, 235, 235, 0.5)',\n scales: {\n x: {\n type: 'time',\n time: {\n unit: 'day',\n displayFormats: {\n hour: 'HH:mm',\n day: 'MMM d',\n },\n },\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n source: 'data',\n autoSkipPadding: 40,\n font: {\n size: 12,\n },\n },\n adapters: {\n date: {\n locale: {\n code: 'en-US',\n formatLong: {},\n localize: {},\n match: {},\n options: {\n weekStartsOn: 0,\n firstWeekContainsDate: 1,\n },\n },\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: 12,\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0,\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n mode: 'index',\n intersect: false,\n caretSize: 1,\n caretPadding: 12,\n displayColors: true,\n backgroundColor: '#ebebeb',\n padding: 8,\n titleColor: 'black',\n bodyColor: 'black',\n titleFont: {\n weight: 'normal',\n size: 12,\n },\n bodyFont: {\n size: 16,\n weight: 'bold',\n },\n callbacks: {},\n },\n // marker: {\n // line: {\n // color: 'red',\n // },\n // },\n datalabels: {\n color: '#ffffff',\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: 12,\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n },\n },\n },\n },\n};\n\nexport const TEST_CHART_ANNOTATIONS_CONFIG: Omit<AnnotationTypeRegistry, 'label' | 'polygon'> = {\n line: {\n borderDash: [6, 3],\n },\n ellipse: {\n borderDash: [3, 6],\n },\n box: {},\n point: {\n backgroundColor: 'initial',\n },\n};\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ResizeObserverFactory } from '@kirbydesign/designsystem/shared';\nimport { ChartOptions } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\n\nimport { ChartDataset, ChartHighlightedElements, ChartLabel, ChartType } from '../';\nimport { ChartJSService } from '../chart-js-service/';\n\n@Component({\n selector: 'kirby-base-chart',\n templateUrl: './base-chart.component.html',\n styleUrls: ['./base-chart.component.scss'],\n})\nexport class BaseChartComponent implements AfterViewInit, OnChanges, OnDestroy {\n @Input() type: ChartType;\n @Input() data: ChartDataset[] | number[];\n\n @Input() labels: ChartLabel[];\n\n @Input() customOptions?: ChartOptions;\n @Input() annotations?: AnnotationOptions[];\n @Input() highlightedElements?: ChartHighlightedElements;\n\n @HostBinding('style.--kirby-chart-height')\n _height: string;\n @Input() set height(value: string | number) {\n this._height = typeof value === 'number' ? `${value}px` : value;\n }\n\n @ViewChild('chartCanvas')\n canvasElement: ElementRef<HTMLCanvasElement>;\n\n private chartHasBeenRendered: boolean = false;\n\n constructor(protected chartJSService: ChartJSService) {}\n\n ngAfterViewInit() {\n /*\n A chart is not rendered until it has both a height and a width.\n If ChartComponent is slotted in an ionic component it will\n not have any height or width on afterViewInit. This will cause\n the animation to not be played on first draw.\n */\n const canvasElement = this.canvasElement.nativeElement;\n this.whenElementHasHeightAndWidth(canvasElement).then(() => this.renderChart());\n }\n\n private whenElementHasHeightAndWidth(element: HTMLElement): Promise<void> {\n const rectIs2D = ({ width, height }) => height > 0 && width > 0;\n\n return new Promise((resolve) => {\n const initialClientRect = element.getBoundingClientRect();\n if (rectIs2D(initialClientRect)) resolve();\n\n const resizeObserver = new ResizeObserverFactory().create(([resizeObserverEntry]) => {\n if (rectIs2D(resizeObserverEntry.contentRect)) {\n resizeObserver.unobserve(element);\n resolve();\n }\n });\n\n resizeObserver.observe(element);\n });\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.chartHasBeenRendered) {\n let shouldRedrawChart = false;\n\n const keyUpdateFnPairs = {\n data: () => this.updateData(),\n labels: () => this.updateLabels(),\n type: () => this.updateType(),\n customOptions: () => this.updateCustomOptions(),\n annotations: () => this.updateAnnotations(),\n highlightedElements: () => this.updateHighlightedElements(),\n };\n\n Object.entries(simpleChanges).forEach(([key]) => {\n if (simpleChanges[key].firstChange || !keyUpdateFnPairs[key]) return;\n shouldRedrawChart = true;\n keyUpdateFnPairs[key]();\n });\n\n if (shouldRedrawChart) this.redrawChart();\n }\n }\n\n protected renderChart(additionalArgs?: any) {\n this.chartHasBeenRendered = true;\n this.chartJSService.renderChart({\n targetElement: this.canvasElement,\n type: this.type,\n data: this.data,\n labels: this.labels,\n customOptions: this.customOptions,\n annotations: this.annotations,\n highlightedElements: this.highlightedElements,\n ...additionalArgs,\n });\n }\n\n private updateData() {\n this.chartJSService.updateData(this.data);\n }\n\n private updateLabels() {\n this.chartJSService.updateLabels(this.labels);\n }\n\n private updateType() {\n this.chartJSService.updateType(this.type, this.customOptions);\n }\n\n private updateCustomOptions() {\n this.chartJSService.updateOptions(this.customOptions, this.type);\n }\n\n private updateAnnotations() {\n this.chartJSService.updateAnnotations(this.annotations);\n }\n\n private updateHighlightedElements() {\n this.chartJSService.updateHighlightedElements(this.highlightedElements);\n }\n\n private redrawChart() {\n this.chartJSService.redrawChart();\n }\n\n ngOnDestroy() {\n this.chartJSService.destroyChart();\n }\n}\n","<div class=\"chart-container\">\n <canvas #chartCanvas>\n <!-- Slotted content makes it possible to insert fallback content for screen readers \n https://www.chartjs.org/docs/latest/general/accessibility.html-->\n <ng-content></ng-content>\n </canvas>\n</div>\n","import { Component, Input } from '@angular/core';\n\nimport { BaseChartComponent, ChartJSService, ChartType } from '../shared';\n\n@Component({\n selector: 'kirby-chart',\n templateUrl: '../shared/base-chart/base-chart.component.html',\n styleUrls: ['../shared/base-chart/base-chart.component.scss'],\n providers: [ChartJSService],\n})\nexport class ChartComponent extends BaseChartComponent {\n @Input() type: Exclude<ChartType, 'stock'> = 'column';\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { mergeDeepAll } from '@kirbydesign/designsystem/helpers';\nimport { ChartDataset, ChartOptions, ScatterDataPoint } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\nimport { toDate } from 'date-fns';\n\nimport {\n ChartDataLabelOptions,\n ChartHighlightedElements,\n ChartJSService,\n ChartLabel,\n ChartLocale,\n ChartType,\n} from '../shared';\n\n@Injectable()\nexport class StockChartJSService extends ChartJSService {\n static STOCK_CHART_LOCALE_DEFAULT: ChartLocale = 'en-US';\n\n protected readonly chartType = 'stock';\n private dataLabelOptions: ChartDataLabelOptions;\n\n public renderChart(args: {\n targetElement: ElementRef<HTMLCanvasElement>;\n type: ChartType;\n data: ChartDataset[] | number[];\n labels?: ChartLabel[];\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n dataLabelOptions?: ChartDataLabelOptions;\n highlightedElements?: ChartHighlightedElements;\n }): void {\n const { dataLabelOptions, ...superArgs } = args;\n this.dataLabelOptions = dataLabelOptions || null;\n super.renderChart(superArgs);\n }\n\n private get locale(): ChartLocale {\n return this.dataLabelOptions?.locale || StockChartJSService.STOCK_CHART_LOCALE_DEFAULT;\n }\n\n protected getDefaultLabels(datasets: ChartDataset[]) {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return largestDataset.data.map((point: ScatterDataPoint) =>\n toDate(point.x).toLocaleDateString(this.locale, {\n month: 'short',\n day: 'numeric',\n })\n );\n }\n\n protected createOptionsObject(args: {\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n }): ChartOptions {\n const superOptions = super.createOptionsObject(args);\n const stockOptions: ChartOptions = this.chartConfigService.getStockChartOptions(\n this.dataLabelOptions,\n this.locale\n );\n\n return mergeDeepAll(stockOptions, superOptions);\n }\n\n protected createDatasets(data: ChartDataset[] | number[]) {\n let datasets = super.createDatasets(data);\n /* \n Hacky solution. Should be fixed in this issue:\n https://github.com/kirbydesign/designsystem/issues/1967 \n */\n // We need to modify the datasets in order to add datalabels.\n if (\n this.dataLabelOptions?.showCurrent ||\n this.dataLabelOptions?.showMax ||\n this.dataLabelOptions?.showMin\n ) {\n datasets = this.addDataLabelsData(datasets);\n }\n\n return datasets.map((dataset: any) => ({\n ...dataset,\n kirbyOptions: { ...dataset.kirbyOptions, isStockChart: true },\n }));\n }\n\n /**\n * Decorate ChartDataset with properties to allow for datalabels.\n *\n * @param data\n * @returns ChartDataset[]\n */\n private addDataLabelsData(data: ChartDataset[]): ChartDataset[] {\n const decorateDataPoint = (\n set: ChartDataset,\n axis: 'x' | 'y',\n direction: 'high' | 'low',\n position: 'bottom' | 'top' | 'left' | 'right'\n ): void => {\n const { value, pointer } = this.locateValueIndexInDataset(set, axis, direction);\n set.data[pointer] = {\n ...(set.data[pointer] as ScatterDataPoint),\n datalabel: {\n value: value + (this.dataLabelOptions.valueSuffix || ''),\n position,\n },\n } as ScatterDataPoint;\n };\n\n data.map((set) => {\n if (this.dataLabelOptions.showMin) {\n decorateDataPoint(set, 'y', 'low', 'bottom');\n }\n if (this.dataLabelOptions.showMax) {\n decorateDataPoint(set, 'y', 'high', 'top');\n }\n if (this.dataLabelOptions.showCurrent) {\n decorateDataPoint(set, 'x', 'high', 'right');\n }\n });\n return data;\n }\n\n private locateValueIndexInDataset(\n dataset: ChartDataset,\n axis: string,\n direction: 'low' | 'high'\n ): { value: number; pointer: number } {\n let pointer: number;\n let value: number;\n dataset.data.forEach((datapoint, index) => {\n if (direction == 'low' && (!value || datapoint[axis] < value)) {\n value = datapoint['y'];\n pointer = index;\n }\n if (direction == 'high' && (!value || datapoint[axis] > value)) {\n value = datapoint['y'];\n pointer = index;\n }\n });\n return { value, pointer };\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport {\n BaseChartComponent,\n ChartConfigService,\n ChartDataLabelOptions,\n ChartJSService,\n} from '../shared';\n\nimport { StockChartJSService } from './stock-chart-js.service';\n\n@Component({\n selector: 'kirby-stock-chart',\n providers: [{ provide: ChartJSService, useClass: StockChartJSService }, ChartConfigService],\n templateUrl: '../shared/base-chart/base-chart.component.html',\n styleUrls: ['../shared/base-chart/base-chart.component.scss'],\n})\nexport class StockChartComponent extends BaseChartComponent {\n @Input() dataLabelOptions?: ChartDataLabelOptions;\n\n readonly type = 'stock';\n\n protected renderChart() {\n super.renderChart({ dataLabelOptions: this.dataLabelOptions });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ChartComponent } from './chart';\nimport { ChartConfigService } from './shared';\nimport { StockChartComponent } from './stock-chart';\n\n@NgModule({\n imports: [ChartComponent, StockChartComponent],\n exports: [ChartComponent, StockChartComponent],\n providers: [ChartConfigService],\n})\nexport class ChartsModule {}\n","import { ChartConfiguration, ChartType, TooltipOptions } from 'chart.js';\n\nexport class ChartBaseConfig {\n public static baseConfig: ChartConfiguration<ChartType>;\n public static tooltipPlugin: Partial<TooltipOptions<'line'>>;\n public static registerPlugins = () => {};\n}\n","import { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { ChartConfiguration, ChartType } from 'chart.js';\nimport { ChartLocale } from '../../shared';\n\nimport { ChartBaseConfig } from '../chart-base-config';\n\nconst { getThemeColorHexString } = ColorHelper;\n\n/**\n * This class is still experimental. Feel free to use it, but please note that it is still subject to breaking changes.\n */\nexport class BarChartConfig extends ChartBaseConfig {\n private static BAR_CHART_LOCALE_DEFAULT: ChartLocale = 'en-US';\n\n public static baseConfig: ChartConfiguration<ChartType> = {\n type: 'bar',\n data: {\n datasets: [],\n },\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n },\n x: {},\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n };\n}\n","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { ScatterDataPoint } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels/types/context';\nimport { Align, Options } from 'chartjs-plugin-datalabels/types/options';\n\nconst { getThemeColorHexString } = ColorHelper;\nconst { fontSize } = DesignTokenHelper;\n\nexport const getDataLabelPosition = (data: ScatterDataPoint[], dataIndex: number): Align | null => {\n const scatterPointDataYvalues: number[] = (data as ScatterDataPoint[]).map(\n (scatterDatapoint) => scatterDatapoint.y\n );\n\n const minValue = Math.min(...scatterPointDataYvalues);\n const minValueIndex = scatterPointDataYvalues.indexOf(minValue);\n\n if (dataIndex === minValueIndex) {\n return 'bottom';\n }\n\n const maxValue = Math.max(...scatterPointDataYvalues);\n const maxValueIndex = scatterPointDataYvalues.indexOf(maxValue);\n\n if (dataIndex === maxValueIndex) {\n return 'top';\n }\n\n return null;\n};\n\nexport const dataLabelsPluginConfig: Partial<Options> = {\n backgroundColor: '#005c3c',\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context: Context): Align =>\n getDataLabelPosition(context.dataset.data as ScatterDataPoint[], context.dataIndex),\n display: (context: Context): boolean => {\n return showDataLabel(context);\n },\n formatter: (dataPoint: ScatterDataPoint): string => dataPoint.y.toString(),\n};\n\nfunction showDataLabel(context: Context) {\n const data: ScatterDataPoint[] = [...context.dataset.data] as ScatterDataPoint[];\n const yValues = data.map((dataPoints) => dataPoints.y);\n\n const minValue = Math.min(...yValues);\n const minValueIndex = yValues.indexOf(minValue);\n\n const maxValue = Math.max(...yValues);\n const maxValueIndex = yValues.indexOf(maxValue);\n\n return context.dataIndex === maxValueIndex || context.dataIndex === minValueIndex;\n}\n","import { VerticalLinePlugin } from './vertical-line-plugin.model';\n\nconst verticalLineId = 'verticalLine';\n\nexport const getVerticalLinePluginConfig: VerticalLinePlugin = {\n id: verticalLineId,\n drawTime: 'beforeDraw',\n defaults: {\n width: 1,\n color: 'black',\n },\n afterInit: (chart) => {\n chart[verticalLineId] = {\n x: 0,\n y: 0,\n };\n },\n afterEvent: (chart, args) => {\n const { inChartArea } = args;\n const { x, y } = args.event;\n\n chart[verticalLineId] = { x, y, draw: inChartArea };\n chart.draw();\n },\n beforeDraw: (chart, _, options) => {\n const { ctx } = chart;\n const { top, bottom } = chart.chartArea;\n const { x, draw } = chart[verticalLineId];\n if (!draw) return;\n\n ctx.save();\n\n ctx.beginPath();\n ctx.lineWidth = options.width as number;\n ctx.strokeStyle = options.color as string;\n\n ctx.moveTo(x, bottom);\n ctx.lineTo(x, top);\n ctx.stroke();\n\n ctx.restore();\n },\n};\n","import { ColorHelper, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport {\n BarController,\n BarElement,\n CategoryScale,\n Chart,\n ChartConfiguration,\n ChartType,\n ChartTypeRegistry,\n Filler,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Tooltip,\n TooltipCallbacks,\n TooltipItem,\n TooltipLabelStyle,\n TooltipOptions,\n} from 'chart.js';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport { ChartLocale } from '../../shared';\nimport { ChartBaseConfig } from '../chart-base-config';\n\nimport {\n dataLabelsPluginConfig,\n getDataLabelPosition,\n} from './data-label-position/data-label-position';\nimport { getVerticalLinePluginConfig } from './vertical-line-plugin/vertical-line-plugin';\n\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\nconst { fontSize } = DesignTokenHelper;\n\n/**\n * This class is still experimental. Feel free to use it, but please note that it is still subject to breaking changes.\n */\nexport class StockChartConfig extends ChartBaseConfig {\n private static STOCK_CHART_LOCALE_DEFAULT: ChartLocale = 'en-US';\n\n private static scales = [CategoryScale, LinearScale, TimeScale];\n private static elements = [BarElement, LineElement, PointElement];\n private static controllers = [BarController, LineController];\n private static plugins = [annotationPlugin, Filler, Tooltip];\n private static registeredElements = [\n ...this.scales,\n ...this.controllers,\n ...this.elements,\n ...this.plugins,\n ];\n\n private static pluginsRegistered = false;\n\n public static registerPlugins() {\n if (StockChartConfig.pluginsRegistered) {\n return;\n }\n\n this.registeredElements.forEach((scale) => {\n Chart.register(scale);\n });\n StockChartConfig.pluginsRegistered = true;\n }\n\n public static baseConfig: ChartConfiguration<ChartType> = {\n type: 'line',\n data: {\n datasets: [],\n },\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n adapters: {\n date: {\n locale: StockChartConfig.STOCK_CHART_LOCALE_DEFAULT,\n },\n },\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n callback(tickValue) {\n const dateInMiliseconds = parseInt(this.getLabelForValue(parseInt(tickValue + '')));\n\n return getChartStockShortDate(\n dateInMiliseconds,\n StockChartConfig.STOCK_CHART_LOCALE_DEFAULT\n );\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {},\n },\n };\n\n public static tooltipPlugin: Partial<TooltipOptions<'line'>> = {\n padding: 10,\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n title: (toolTipItem) => {\n const dateInMiliseconds = parseInt(toolTipItem[0].label); // TODO: Right now we use index === 0. I expect multiple datasets will change this\n return getChartStockShortDateTime(\n dateInMiliseconds,\n StockChartConfig.STOCK_CHART_LOCALE_DEFAULT\n );\n },\n label: (context) => context.parsed.y.toString(),\n labelColor: (tooltipItem: TooltipItem<keyof ChartTypeRegistry>) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n borderColor: getThemeColorHexString('semi-light'),\n borderWidth: 2, // This value must be exactly 2. If it is less, a white \"border\" will appear, if greater than, a shadow around the box will be shown.\n // An issue has been created, requesting a test to check this value doesn´t change: https://github.com/kirbydesign/designsystem/issues/2578\n } as TooltipLabelStyle;\n },\n } as TooltipCallbacks<'line'>,\n };\n\n public static dataLabelsPluginConfig = dataLabelsPluginConfig;\n\n public static verticalLinePluginConfig = getVerticalLinePluginConfig;\n\n public static getDataLabelPosition = getDataLabelPosition;\n}\n\nconst getChartStockShortDate = (dateInMiliseconds: number, locale: ChartLocale) => {\n const newDate = new Date(dateInMiliseconds);\n\n return newDate.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'short',\n });\n};\n\nconst getChartStockShortDateTime = (dateInMiliseconds: number, locale: ChartLocale) => {\n const newDate = new Date(dateInMiliseconds);\n\n return newDate.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["getThemeColorHexString","fontSize","getThemeColorRgbString","i1.ChartConfigService","i1.ChartJSService"],"mappings":"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"}