@kirbydesign/designsystem 7.0.0-rc.0 → 7.0.0-rc.4

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 (138) hide show
  1. package/esm2020/lib/components/charts/chart/chart.component.mjs +18 -0
  2. package/esm2020/lib/components/charts/chart/index.mjs +2 -0
  3. package/esm2020/lib/components/charts/charts.module.mjs +19 -0
  4. package/esm2020/lib/components/charts/index.mjs +6 -0
  5. package/esm2020/lib/components/charts/shared/base-chart/base-chart.component.mjs +121 -0
  6. package/esm2020/lib/components/charts/shared/base-chart/index.mjs +2 -0
  7. package/esm2020/lib/components/charts/shared/chart-config-service/chart-config.service.mjs +75 -0
  8. package/esm2020/lib/components/charts/shared/chart-config-service/configs/annotations.config.mjs +32 -0
  9. package/esm2020/lib/components/charts/shared/chart-config-service/configs/global-defaults.config.mjs +65 -0
  10. package/esm2020/lib/components/charts/shared/chart-config-service/configs/interaction-functions-extensions.config.mjs +13 -0
  11. package/esm2020/lib/components/charts/shared/chart-config-service/configs/type.config.mjs +204 -0
  12. package/esm2020/lib/components/charts/shared/chart-config-service/index.mjs +2 -0
  13. package/esm2020/lib/components/charts/shared/chart-js-service/annotations.delegate.mjs +35 -0
  14. package/esm2020/lib/components/charts/shared/chart-js-service/chart-js.service.mjs +174 -0
  15. package/esm2020/lib/components/charts/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.mjs +199 -0
  16. package/esm2020/lib/components/charts/shared/chart-js-service/configured-chart-js.mjs +22 -0
  17. package/esm2020/lib/components/charts/shared/chart-js-service/index.mjs +3 -0
  18. package/esm2020/lib/components/charts/shared/chart-js-service/test-utils.mjs +167 -0
  19. package/esm2020/lib/components/charts/shared/charts.types.mjs +4 -0
  20. package/esm2020/lib/components/charts/shared/index.mjs +5 -0
  21. package/esm2020/lib/components/charts/stock-chart/index.mjs +2 -0
  22. package/esm2020/lib/components/charts/stock-chart/stock-chart-js.service.mjs +100 -0
  23. package/esm2020/lib/components/charts/stock-chart/stock-chart.component.mjs +22 -0
  24. package/esm2020/lib/components/chip/chip.component.mjs +5 -2
  25. package/esm2020/lib/components/dropdown/dropdown.component.mjs +48 -29
  26. package/esm2020/lib/components/fab-sheet/fab-sheet.component.mjs +13 -8
  27. package/esm2020/lib/components/flag/flag.component.mjs +2 -2
  28. package/esm2020/lib/components/icon/kirby-icon-settings.mjs +2 -1
  29. package/esm2020/lib/components/index.mjs +2 -4
  30. package/esm2020/lib/components/modal/action-sheet/action-sheet.component.mjs +2 -2
  31. package/esm2020/lib/components/modal/footer/modal-footer.component.mjs +13 -8
  32. package/esm2020/lib/components/modal/modal-wrapper/modal-elements-mover.delegate.mjs +62 -0
  33. package/esm2020/lib/components/modal/modal-wrapper/modal-wrapper.component.mjs +66 -120
  34. package/esm2020/lib/components/modal/services/modal.interfaces.mjs +39 -1
  35. package/esm2020/lib/components/page/page.component.mjs +50 -22
  36. package/esm2020/lib/components/reorder-list/reorder-list.component.mjs +2 -2
  37. package/esm2020/lib/components/segmented-control/segmented-control.component.mjs +10 -5
  38. package/esm2020/lib/kirby.module.mjs +6 -14
  39. package/esm2020/testing-base/lib/components/index.mjs +1 -2
  40. package/esm2020/testing-base/lib/components/mock.page.component.mjs +5 -2
  41. package/esm2020/testing-base/lib/kirby-testing-base.module.mjs +49 -50
  42. package/esm2020/testing-base/lib/mock-components.mjs +1 -3
  43. package/fesm2015/kirbydesign-designsystem-testing-base.mjs +7 -45
  44. package/fesm2015/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  45. package/fesm2015/kirbydesign-designsystem.mjs +865 -1673
  46. package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
  47. package/fesm2020/kirbydesign-designsystem-testing-base.mjs +7 -45
  48. package/fesm2020/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  49. package/fesm2020/kirbydesign-designsystem.mjs +956 -1776
  50. package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
  51. package/icons/svg/insurance.svg +5 -0
  52. package/lib/components/avatar/avatar.component.d.ts +1 -1
  53. package/lib/components/charts/chart/chart.component.d.ts +7 -0
  54. package/lib/components/charts/chart/index.d.ts +1 -0
  55. package/lib/components/charts/charts.module.d.ts +8 -0
  56. package/lib/components/charts/index.d.ts +6 -0
  57. package/lib/components/{chart/chart.component.d.ts → charts/shared/base-chart/base-chart.component.d.ts} +7 -8
  58. package/lib/components/charts/shared/base-chart/index.d.ts +1 -0
  59. package/lib/components/charts/shared/chart-config-service/chart-config.service.d.ts +30 -0
  60. package/lib/components/charts/shared/chart-config-service/configs/annotations.config.d.ts +2 -0
  61. package/lib/components/{chart → charts/shared/chart-config-service}/configs/global-defaults.config.d.ts +4 -1
  62. package/lib/components/{chart → charts/shared/chart-config-service}/configs/interaction-functions-extensions.config.d.ts +0 -0
  63. package/lib/components/{chart → charts/shared/chart-config-service}/configs/type.config.d.ts +1 -1
  64. package/lib/components/charts/shared/chart-config-service/index.d.ts +1 -0
  65. package/lib/components/charts/shared/chart-js-service/annotations.delegate.d.ts +16 -0
  66. package/lib/components/{chart/chart-js → charts/shared/chart-js-service}/chart-js.service.d.ts +13 -27
  67. package/lib/components/{chart/chart-js → charts/shared/chart-js-service}/chartjs-plugin-marker/chartjs-plugin-marker.d.ts +0 -0
  68. package/lib/components/{chart/chart-js → charts/shared/chart-js-service}/configured-chart-js.d.ts +0 -0
  69. package/lib/components/charts/shared/chart-js-service/index.d.ts +2 -0
  70. package/lib/components/charts/shared/chart-js-service/test-utils.d.ts +4 -0
  71. package/lib/components/{chart/chart.types.d.ts → charts/shared/charts.types.d.ts} +0 -0
  72. package/lib/components/charts/shared/index.d.ts +4 -0
  73. package/lib/components/charts/stock-chart/index.d.ts +1 -0
  74. package/lib/components/charts/stock-chart/stock-chart-js.service.d.ts +37 -0
  75. package/lib/components/charts/stock-chart/stock-chart.component.d.ts +9 -0
  76. package/lib/components/chip/chip.component.d.ts +1 -0
  77. package/lib/components/dropdown/dropdown.component.d.ts +9 -5
  78. package/lib/components/fab-sheet/fab-sheet.component.d.ts +3 -2
  79. package/lib/components/index.d.ts +1 -3
  80. package/lib/components/modal/footer/modal-footer.component.d.ts +5 -2
  81. package/lib/components/modal/modal-wrapper/modal-elements-mover.delegate.d.ts +14 -0
  82. package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +13 -16
  83. package/lib/components/modal/services/modal.interfaces.d.ts +22 -0
  84. package/lib/components/page/page.component.d.ts +11 -6
  85. package/lib/components/segmented-control/segmented-control.component.d.ts +5 -1
  86. package/lib/kirby.module.d.ts +60 -62
  87. package/ngcc.config.js +1 -1
  88. package/package.json +2 -3
  89. package/readme.md +5 -37
  90. package/testing-base/lib/components/index.d.ts +0 -1
  91. package/testing-base/lib/components/mock.page.component.d.ts +2 -1
  92. package/testing-base/lib/kirby-testing-base.module.d.ts +48 -49
  93. package/esm2020/lib/components/chart/chart-js/chart-js.service.mjs +0 -331
  94. package/esm2020/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.mjs +0 -199
  95. package/esm2020/lib/components/chart/chart-js/configured-chart-js.mjs +0 -22
  96. package/esm2020/lib/components/chart/chart.component.mjs +0 -124
  97. package/esm2020/lib/components/chart/chart.module.mjs +0 -18
  98. package/esm2020/lib/components/chart/chart.types.mjs +0 -4
  99. package/esm2020/lib/components/chart/configs/annotations.config.mjs +0 -32
  100. package/esm2020/lib/components/chart/configs/chart-config.service.mjs +0 -31
  101. package/esm2020/lib/components/chart/configs/global-defaults.config.mjs +0 -48
  102. package/esm2020/lib/components/chart/configs/interaction-functions-extensions.config.mjs +0 -13
  103. package/esm2020/lib/components/chart/configs/shared.utils.mjs +0 -22
  104. package/esm2020/lib/components/chart/configs/type.config.mjs +0 -204
  105. package/esm2020/lib/components/chart/index.mjs +0 -5
  106. package/esm2020/lib/components/chart-deprecated/chart-deprecated-helper.mjs +0 -27
  107. package/esm2020/lib/components/chart-deprecated/chart-deprecated-type.mjs +0 -12
  108. package/esm2020/lib/components/chart-deprecated/chart-deprecated.component.mjs +0 -248
  109. package/esm2020/lib/components/chart-deprecated/index.mjs +0 -3
  110. package/esm2020/lib/components/chart-deprecated/options/activitygauge.mjs +0 -86
  111. package/esm2020/lib/components/chart-deprecated/options/areaspline.mjs +0 -94
  112. package/esm2020/lib/components/chart-deprecated/options/bar.mjs +0 -89
  113. package/esm2020/lib/components/chart-deprecated/options/column.mjs +0 -97
  114. package/esm2020/lib/components/chart-deprecated/options/donut.mjs +0 -117
  115. package/esm2020/lib/components/chart-deprecated/options/timeseries.mjs +0 -96
  116. package/esm2020/lib/components/stock-chart-deprecated/index.mjs +0 -3
  117. package/esm2020/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.mjs +0 -202
  118. package/esm2020/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.mjs +0 -85
  119. package/esm2020/testing-base/lib/components/mock.chart-deprecated.component.mjs +0 -43
  120. package/lib/components/chart/chart.module.d.ts +0 -7
  121. package/lib/components/chart/configs/annotations.config.d.ts +0 -2
  122. package/lib/components/chart/configs/chart-config.service.d.ts +0 -14
  123. package/lib/components/chart/configs/shared.utils.d.ts +0 -5
  124. package/lib/components/chart/index.d.ts +0 -5
  125. package/lib/components/chart-deprecated/chart-deprecated-helper.d.ts +0 -10
  126. package/lib/components/chart-deprecated/chart-deprecated-type.d.ts +0 -10
  127. package/lib/components/chart-deprecated/chart-deprecated.component.d.ts +0 -34
  128. package/lib/components/chart-deprecated/index.d.ts +0 -2
  129. package/lib/components/chart-deprecated/options/activitygauge.d.ts +0 -4
  130. package/lib/components/chart-deprecated/options/areaspline.d.ts +0 -4
  131. package/lib/components/chart-deprecated/options/bar.d.ts +0 -2
  132. package/lib/components/chart-deprecated/options/column.d.ts +0 -2
  133. package/lib/components/chart-deprecated/options/donut.d.ts +0 -4
  134. package/lib/components/chart-deprecated/options/timeseries.d.ts +0 -4
  135. package/lib/components/stock-chart-deprecated/index.d.ts +0 -2
  136. package/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.d.ts +0 -8
  137. package/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.d.ts +0 -26
  138. package/testing-base/lib/components/mock.chart-deprecated.component.d.ts +0 -15
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BaseChartComponent, ChartJSService } from '../shared';
3
+ import * as i0 from "@angular/core";
4
+ export class ChartComponent extends BaseChartComponent {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.type = 'column';
8
+ }
9
+ }
10
+ /** @nocollapse */ ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
+ /** @nocollapse */ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ChartComponent, 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"] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartComponent, decorators: [{
13
+ type: Component,
14
+ 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"] }]
15
+ }], propDecorators: { type: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NoYXJlZC9iYXNlLWNoYXJ0L2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBYSxNQUFNLFdBQVcsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFOdEQ7O1FBT1csU0FBSSxHQUFnQyxRQUFRLENBQUM7S0FDdkQ7OzhIQUZZLGNBQWM7a0hBQWQsY0FBYyxnRUFGZCxDQUFDLGNBQWMsQ0FBQyxpRENSN0Isa1JBT0E7MkZER2EsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxhQUFhLGFBR1osQ0FBQyxjQUFjLENBQUM7OEJBR2xCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50LCBDaGFydEpTU2VydmljZSwgQ2hhcnRUeXBlIH0gZnJvbSAnLi4vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4uL3NoYXJlZC9iYXNlLWNoYXJ0L2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vc2hhcmVkL2Jhc2UtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDaGFydEpTU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNoYXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdHlwZTogRXhjbHVkZTxDaGFydFR5cGUsICdzdG9jayc+ID0gJ2NvbHVtbic7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gIDxjYW52YXMgI2NoYXJ0Q2FudmFzPlxuICAgIDwhLS0gU2xvdHRlZCBjb250ZW50IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGluc2VydCBmYWxsYmFjayBjb250ZW50IGZvciBzY3JlZW4gcmVhZGVycyBcbiAgICBodHRwczovL3d3dy5jaGFydGpzLm9yZy9kb2NzL2xhdGVzdC9nZW5lcmFsL2FjY2Vzc2liaWxpdHkuaHRtbC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9jYW52YXM+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { ChartComponent } from './chart.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL2NoYXJ0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGFydC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ChartComponent } from './chart';
3
+ import { ChartConfigService } from './shared';
4
+ import { StockChartComponent } from './stock-chart';
5
+ import * as i0 from "@angular/core";
6
+ export class ChartsModule {
7
+ }
8
+ /** @nocollapse */ ChartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ /** @nocollapse */ ChartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartsModule, declarations: [ChartComponent, StockChartComponent], exports: [ChartComponent, StockChartComponent] });
10
+ /** @nocollapse */ ChartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartsModule, providers: [ChartConfigService] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartsModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [ChartComponent, StockChartComponent],
15
+ exports: [ChartComponent, StockChartComponent],
16
+ providers: [ChartConfigService],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydHMvY2hhcnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLFlBQVk7OzRIQUFaLFlBQVk7NkhBQVosWUFBWSxpQkFKUixjQUFjLEVBQUUsbUJBQW1CLGFBQ3hDLGNBQWMsRUFBRSxtQkFBbUI7NkhBR2xDLFlBQVksYUFGWixDQUFDLGtCQUFrQixDQUFDOzJGQUVwQixZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY2hhcnQnO1xuaW1wb3J0IHsgQ2hhcnRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQnO1xuaW1wb3J0IHsgU3RvY2tDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3RvY2stY2hhcnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaGFydENvbXBvbmVudCwgU3RvY2tDaGFydENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtDaGFydENvbXBvbmVudCwgU3RvY2tDaGFydENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0NoYXJ0Q29uZmlnU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0c01vZHVsZSB7fVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './chart';
2
+ export * from './stock-chart';
3
+ export * from './shared/charts.types';
4
+ export { Chart } from 'chart.js';
5
+ export { ChartsModule } from './charts.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUEyQyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGFydCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b2NrLWNoYXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2NoYXJ0cy50eXBlcyc7XG5leHBvcnQgeyBDaGFydE9wdGlvbnMsIENoYXJ0RXZlbnQsIEFjdGl2ZUVsZW1lbnQsIENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuZXhwb3J0IHsgQW5ub3RhdGlvbk9wdGlvbnMgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcblxuZXhwb3J0IHsgQ2hhcnRzTW9kdWxlIH0gZnJvbSAnLi9jaGFydHMubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,121 @@
1
+ import { Component, ElementRef, HostBinding, Input, ViewChild, } from '@angular/core';
2
+ import { ResizeObserverFactory } from '../../../shared';
3
+ import { ChartJSService } from '../chart-js-service/';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../chart-js-service/";
6
+ export class BaseChartComponent {
7
+ constructor(chartJSService) {
8
+ this.chartJSService = chartJSService;
9
+ this.chartHasBeenRendered = false;
10
+ }
11
+ set height(value) {
12
+ this._height = typeof value === 'number' ? `${value}px` : value;
13
+ }
14
+ ngAfterViewInit() {
15
+ /*
16
+ A chart is not rendered until it has both a height and a width.
17
+ If ChartComponent is slotted in an ionic component it will
18
+ not have any height or width on afterViewInit. This will cause
19
+ the animation to not be played on first draw.
20
+ */
21
+ const canvasElement = this.canvasElement.nativeElement;
22
+ this.whenElementHasHeightAndWidth(canvasElement).then(() => this.renderChart());
23
+ }
24
+ whenElementHasHeightAndWidth(element) {
25
+ const rectIs2D = ({ width, height }) => height > 0 && width > 0;
26
+ return new Promise((resolve) => {
27
+ const initialClientRect = element.getBoundingClientRect();
28
+ if (rectIs2D(initialClientRect))
29
+ resolve();
30
+ const resizeObserver = new ResizeObserverFactory().create(([resizeObserverEntry]) => {
31
+ if (rectIs2D(resizeObserverEntry.contentRect)) {
32
+ resizeObserver.unobserve(element);
33
+ resolve();
34
+ }
35
+ });
36
+ resizeObserver.observe(element);
37
+ });
38
+ }
39
+ ngOnChanges(simpleChanges) {
40
+ if (this.chartHasBeenRendered) {
41
+ let shouldRedrawChart = false;
42
+ const keyUpdateFnPairs = {
43
+ data: () => this.updateData(),
44
+ labels: () => this.updateLabels(),
45
+ type: () => this.updateType(),
46
+ customOptions: () => this.updateCustomOptions(),
47
+ annotations: () => this.updateAnnotations(),
48
+ highlightedElements: () => this.updateHighlightedElements(),
49
+ };
50
+ Object.entries(simpleChanges).forEach(([key]) => {
51
+ if (simpleChanges[key].firstChange || !keyUpdateFnPairs[key])
52
+ return;
53
+ shouldRedrawChart = true;
54
+ keyUpdateFnPairs[key]();
55
+ });
56
+ if (shouldRedrawChart)
57
+ this.redrawChart();
58
+ }
59
+ }
60
+ renderChart(additionalArgs) {
61
+ this.chartHasBeenRendered = true;
62
+ this.chartJSService.renderChart({
63
+ targetElement: this.canvasElement,
64
+ type: this.type,
65
+ data: this.data,
66
+ labels: this.labels,
67
+ customOptions: this.customOptions,
68
+ annotations: this.annotations,
69
+ highlightedElements: this.highlightedElements,
70
+ ...additionalArgs,
71
+ });
72
+ }
73
+ updateData() {
74
+ this.chartJSService.updateData(this.data);
75
+ }
76
+ updateLabels() {
77
+ this.chartJSService.updateLabels(this.labels);
78
+ }
79
+ updateType() {
80
+ this.chartJSService.updateType(this.type, this.customOptions);
81
+ }
82
+ updateCustomOptions() {
83
+ this.chartJSService.updateOptions(this.customOptions, this.type);
84
+ }
85
+ updateAnnotations() {
86
+ this.chartJSService.updateAnnotations(this.annotations);
87
+ }
88
+ updateHighlightedElements() {
89
+ this.chartJSService.updateHighlightedElements(this.highlightedElements);
90
+ }
91
+ redrawChart() {
92
+ this.chartJSService.redrawChart();
93
+ }
94
+ }
95
+ /** @nocollapse */ BaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: BaseChartComponent, deps: [{ token: i1.ChartJSService }], target: i0.ɵɵFactoryTarget.Component });
96
+ /** @nocollapse */ BaseChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: BaseChartComponent, 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"] });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: BaseChartComponent, decorators: [{
98
+ type: Component,
99
+ 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"] }]
100
+ }], ctorParameters: function () { return [{ type: i1.ChartJSService }]; }, propDecorators: { type: [{
101
+ type: Input
102
+ }], data: [{
103
+ type: Input
104
+ }], labels: [{
105
+ type: Input
106
+ }], customOptions: [{
107
+ type: Input
108
+ }], annotations: [{
109
+ type: Input
110
+ }], highlightedElements: [{
111
+ type: Input
112
+ }], _height: [{
113
+ type: HostBinding,
114
+ args: ['style.--kirby-chart-height']
115
+ }], height: [{
116
+ type: Input
117
+ }], canvasElement: [{
118
+ type: ViewChild,
119
+ args: ['chartCanvas']
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NoYXJlZC9iYXNlLWNoYXJ0L2Jhc2UtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9zaGFyZWQvYmFzZS1jaGFydC9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBT3RELE1BQU0sT0FBTyxrQkFBa0I7SUFxQjdCLFlBQXNCLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUY1Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7SUFFUyxDQUFDO0lBVHhELElBQWEsTUFBTSxDQUFDLEtBQXNCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEUsQ0FBQztJQVNELGVBQWU7UUFDYjs7Ozs7VUFLRTtRQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQ3ZELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdB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bGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCwgQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzLCBDaGFydExhYmVsLCBDaGFydFR5cGUgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IENoYXJ0SlNTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhcnQtanMtc2VydmljZS8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1iYXNlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHR5cGU6IENoYXJ0VHlwZTtcbiAgQElucHV0KCkgZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXTtcblxuICBASW5wdXQoKSBsYWJlbHM6IENoYXJ0TGFiZWxbXTtcblxuICBASW5wdXQoKSBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zO1xuICBASW5wdXQoKSBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gIEBJbnB1dCgpIGhpZ2hsaWdodGVkRWxlbWVudHM/OiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWtpcmJ5LWNoYXJ0LWhlaWdodCcpXG4gIF9oZWlnaHQ6IHN0cmluZztcbiAgQElucHV0KCkgc2V0IGhlaWdodCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5faGVpZ2h0ID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IGAke3ZhbHVlfXB4YCA6IHZhbHVlO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnRDYW52YXMnKVxuICBjYW52YXNFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICBwcml2YXRlIGNoYXJ0SGFzQmVlblJlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYXJ0SlNTZXJ2aWNlOiBDaGFydEpTU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLyogXG4gICAgICAgQSBjaGFydCBpcyBub3QgcmVuZGVyZWQgdW50aWwgaXQgaGFzIGJvdGggYSBoZWlnaHQgYW5kIGEgd2lkdGguIFxuICAgICAgIElmIENoYXJ0Q29tcG9uZW50IGlzIHNsb3R0ZWQgaW4gYW4gaW9uaWMgY29tcG9uZW50IGl0IHdpbGxcbiAgICAgICBub3QgaGF2ZSBhbnkgaGVpZ2h0IG9yIHdpZHRoIG9uIGFmdGVyVmlld0luaXQuIFRoaXMgd2lsbCBjYXVzZSBcbiAgICAgICB0aGUgYW5pbWF0aW9uIHRvIG5vdCBiZSBwbGF5ZWQgb24gZmlyc3QgZHJhdy4gXG4gICAgKi9cbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy53aGVuRWxlbWVudEhhc0hlaWdodEFuZFdpZHRoKGNhbnZhc0VsZW1lbnQpLnRoZW4oKCkgPT4gdGhpcy5yZW5kZXJDaGFydCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgd2hlbkVsZW1lbnRIYXNIZWlnaHRBbmRXaWR0aChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlY3RJczJEID0gKHsgd2lkdGgsIGhlaWdodCB9KSA9PiBoZWlnaHQgPiAwICYmIHdpZHRoID4gMDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgaW5pdGlhbENsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJlY3RJczJEKGluaXRpYWxDbGllbnRSZWN0KSkgcmVzb2x2ZSgpO1xuXG4gICAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlckZhY3RvcnkoKS5jcmVhdGUoKFtyZXNpemVPYnNlcnZlckVudHJ5XSkgPT4ge1xuICAgICAgICBpZiAocmVjdElzMkQocmVzaXplT2JzZXJ2ZXJFbnRyeS5jb250ZW50UmVjdCkpIHtcbiAgICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5jaGFydEhhc0JlZW5SZW5kZXJlZCkge1xuICAgICAgbGV0IHNob3VsZFJlZHJhd0NoYXJ0ID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGtleVVwZGF0ZUZuUGFpcnMgPSB7XG4gICAgICAgIGRhdGE6ICgpID0+IHRoaXMudXBkYXRlRGF0YSgpLFxuICAgICAgICBsYWJlbHM6ICgpID0+IHRoaXMudXBkYXRlTGFiZWxzKCksXG4gICAgICAgIHR5cGU6ICgpID0+IHRoaXMudXBkYXRlVHlwZSgpLFxuICAgICAgICBjdXN0b21PcHRpb25zOiAoKSA9PiB0aGlzLnVwZGF0ZUN1c3RvbU9wdGlvbnMoKSxcbiAgICAgICAgYW5ub3RhdGlvbnM6ICgpID0+IHRoaXMudXBkYXRlQW5ub3RhdGlvbnMoKSxcbiAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogKCkgPT4gdGhpcy51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKCksXG4gICAgICB9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhzaW1wbGVDaGFuZ2VzKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlIHx8ICFrZXlVcGRhdGVGblBhaXJzW2tleV0pIHJldHVybjtcbiAgICAgICAgc2hvdWxkUmVkcmF3Q2hhcnQgPSB0cnVlO1xuICAgICAgICBrZXlVcGRhdGVGblBhaXJzW2tleV0oKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc2hvdWxkUmVkcmF3Q2hhcnQpIHRoaXMucmVkcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyQ2hhcnQoYWRkaXRpb25hbEFyZ3M/OiBhbnkpIHtcbiAgICB0aGlzLmNoYXJ0SGFzQmVlblJlbmRlcmVkID0gdHJ1ZTtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnJlbmRlckNoYXJ0KHtcbiAgICAgIHRhcmdldEVsZW1lbnQ6IHRoaXMuY2FudmFzRWxlbWVudCxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIGxhYmVsczogdGhpcy5sYWJlbHMsXG4gICAgICBjdXN0b21PcHRpb25zOiB0aGlzLmN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9uczogdGhpcy5hbm5vdGF0aW9ucyxcbiAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICAgIC4uLmFkZGl0aW9uYWxBcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlRGF0YSh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMYWJlbHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVMYWJlbHModGhpcy5sYWJlbHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUeXBlKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlVHlwZSh0aGlzLnR5cGUsIHRoaXMuY3VzdG9tT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUN1c3RvbU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVPcHRpb25zKHRoaXMuY3VzdG9tT3B0aW9ucywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQW5ub3RhdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVBbm5vdGF0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cygpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHModGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS5yZWRyYXdDaGFydCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gIDxjYW52YXMgI2NoYXJ0Q2FudmFzPlxuICAgIDwhLS0gU2xvdHRlZCBjb250ZW50IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGluc2VydCBmYWxsYmFjayBjb250ZW50IGZvciBzY3JlZW4gcmVhZGVycyBcbiAgICBodHRwczovL3d3dy5jaGFydGpzLm9yZy9kb2NzL2xhdGVzdC9nZW5lcmFsL2FjY2Vzc2liaWxpdHkuaHRtbC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9jYW52YXM+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { BaseChartComponent } from './base-chart.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NoYXJlZC9iYXNlLWNoYXJ0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { toDate } from 'date-fns';
3
+ import { deepCopy } from '../../../../helpers/deep-copy';
4
+ import { CHART_ANNOTATIONS_CONFIG } from './configs/annotations.config';
5
+ import { CHART_INTERACTION_FUNCTIONS_EXTENSIONS } from './configs/interaction-functions-extensions.config';
6
+ import { CHART_TYPES_CONFIG } from './configs/type.config';
7
+ import * as i0 from "@angular/core";
8
+ export class ChartConfigService {
9
+ getTypeConfig(chartType) {
10
+ /* Deep copy to avoid Chart object modifying parts of CHART_TYPES_CONFIG
11
+ as it copies by reference when initialized */
12
+ return deepCopy(CHART_TYPES_CONFIG[chartType]);
13
+ }
14
+ getAnnotationDefaults(type) {
15
+ return CHART_ANNOTATIONS_CONFIG[type];
16
+ }
17
+ /* Our types does not always map 1 to 1 to the same type
18
+ that the chart.js chart is actually configured with. Therefore this function
19
+ for looking up the ChartJSType of a type. */
20
+ chartTypeToChartJSType(chartType) {
21
+ return CHART_TYPES_CONFIG[chartType]['type'];
22
+ }
23
+ applyInteractionFunctionsExtensions(options) {
24
+ const interactionFunctionsExtensions = CHART_INTERACTION_FUNCTIONS_EXTENSIONS;
25
+ Object.entries(interactionFunctionsExtensions).forEach(([key, _]) => {
26
+ const callback = options[key];
27
+ options[key] = (e, a, c) => {
28
+ interactionFunctionsExtensions[key](e, a, c, callback);
29
+ };
30
+ });
31
+ return options;
32
+ }
33
+ getStockChartOptions(dataLabelOptions, locale) {
34
+ return {
35
+ locale: locale,
36
+ plugins: {
37
+ tooltip: {
38
+ callbacks: {
39
+ title: (tooltipItems) => {
40
+ const date = toDate(tooltipItems[0]?.raw?.x);
41
+ if (date.valueOf()) {
42
+ return date.toLocaleTimeString(locale, {
43
+ day: 'numeric',
44
+ month: 'short',
45
+ hour: '2-digit',
46
+ minute: '2-digit',
47
+ });
48
+ }
49
+ },
50
+ label: (context) => {
51
+ // It's not possible to add spacing between color legend and text so we
52
+ // prefix with a space.
53
+ return ' ' + context.formattedValue + (dataLabelOptions.valueSuffix || '');
54
+ },
55
+ },
56
+ },
57
+ },
58
+ scales: {
59
+ y: {
60
+ ticks: {
61
+ callback: (value) => {
62
+ return value + (dataLabelOptions.valueSuffix || '');
63
+ },
64
+ },
65
+ },
66
+ },
67
+ };
68
+ }
69
+ }
70
+ /** @nocollapse */ ChartConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
+ /** @nocollapse */ ChartConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartConfigService });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ChartConfigService, decorators: [{
73
+ type: Injectable
74
+ }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NoYXJlZC9jaGFydC1jb25maWctc2VydmljZS9jaGFydC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUczRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLGFBQWEsQ0FBQyxTQUFvQjtRQUN2QztxREFDNkM7UUFDN0MsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBb0I7UUFDL0MsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O2lEQUU2QztJQUN0QyxzQkFBc0IsQ0FBQyxTQUFvQjtRQUNoRCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztJQUM5RCxDQUFDO0lBRU0sbUNBQW1DLENBQUMsT0FBcUI7UUFDOUQsTUFBTSw4QkFBOEIsR0FBRyxzQ0FBc0MsQ0FBQztRQUM5RSxNQUFNLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBUSxFQUFFLENBQWtCLEVBQUUsQ0FBUSxFQUFFLEVBQUU7Z0JBQ3hELDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVNLG9CQUFvQixDQUFDLGdCQUF1QyxFQUFFLE1BQW1CO1FBQ3RGLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFOzRCQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0NBQ2xCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtvQ0FDckMsR0FBRyxFQUFFLFNBQVM7b0NBQ2QsS0FBSyxFQUFFLE9BQU87b0NBQ2QsSUFBSSxFQUFFLFNBQVM7b0NBQ2YsTUFBTSxFQUFFLFNBQVM7aUNBQ2xCLENBQUMsQ0FBQzs2QkFDSjt3QkFDSCxDQUFDO3dCQUNELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFOzRCQUNqQix1RUFBdUU7NEJBQ3ZFLHVCQUF1Qjs0QkFDdkIsT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDN0UsQ0FBQztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLENBQUMsRUFBRTtvQkFDRCxLQUFLLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2xCLE9BQU8sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUN0RCxDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7a0lBaEVVLGtCQUFrQjtzSUFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVFbGVtZW50LCBDaGFydCwgQ2hhcnRPcHRpb25zLCBDaGFydFR5cGUgYXMgQ2hhcnRKU1R5cGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZSwgQW5ub3RhdGlvblR5cGVSZWdpc3RyeSB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBDaGFydERhdGFMYWJlbE9wdGlvbnMsIENoYXJ0TG9jYWxlLCBDaGFydFR5cGUsIENoYXJ0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBkZWVwQ29weSB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMvZGVlcC1jb3B5JztcblxuaW1wb3J0IHsgQ0hBUlRfQU5OT1RBVElPTlNfQ09ORklHIH0gZnJvbSAnLi9jb25maWdzL2Fubm90YXRpb25zLmNvbmZpZyc7XG5pbXBvcnQgeyBDSEFSVF9JTlRFUkFDVElPTl9GVU5DVElPTlNfRVhURU5TSU9OUyB9IGZyb20gJy4vY29uZmlncy9pbnRlcmFjdGlvbi1mdW5jdGlvbnMtZXh0ZW5zaW9ucy5jb25maWcnO1xuaW1wb3J0IHsgQ0hBUlRfVFlQRVNfQ09ORklHIH0gZnJvbSAnLi9jb25maWdzL3R5cGUuY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyBnZXRUeXBlQ29uZmlnKGNoYXJ0VHlwZTogQ2hhcnRUeXBlKTogQ2hhcnRUeXBlQ29uZmlnIHtcbiAgICAvKiBEZWVwIGNvcHkgdG8gYXZvaWQgQ2hhcnQgb2JqZWN0IG1vZGlmeWluZyBwYXJ0cyBvZiBDSEFSVF9UWVBFU19DT05GSUcgXG4gICAgYXMgaXQgY29waWVzIGJ5IHJlZmVyZW5jZSB3aGVuIGluaXRpYWxpemVkICovXG4gICAgcmV0dXJuIGRlZXBDb3B5KENIQVJUX1RZUEVTX0NPTkZJR1tjaGFydFR5cGVdKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbm5vdGF0aW9uRGVmYXVsdHModHlwZTogQW5ub3RhdGlvblR5cGUpOiBBbm5vdGF0aW9uVHlwZVJlZ2lzdHJ5W0Fubm90YXRpb25UeXBlXSB7XG4gICAgcmV0dXJuIENIQVJUX0FOTk9UQVRJT05TX0NPTkZJR1t0eXBlXTtcbiAgfVxuXG4gIC8qIE91ciB0eXBlcyBkb2VzIG5vdCBhbHdheXMgbWFwIDEgdG8gMSB0byB0aGUgc2FtZSB0eXBlIFxuICB0aGF0IHRoZSBjaGFydC5qcyBjaGFydCBpcyBhY3R1YWxseSBjb25maWd1cmVkIHdpdGguIFRoZXJlZm9yZSB0aGlzIGZ1bmN0aW9uIFxuICBmb3IgbG9va2luZyB1cCB0aGUgQ2hhcnRKU1R5cGUgb2YgYSB0eXBlLiAgKi9cbiAgcHVibGljIGNoYXJ0VHlwZVRvQ2hhcnRKU1R5cGUoY2hhcnRUeXBlOiBDaGFydFR5cGUpOiBDaGFydEpTVHlwZSB7XG4gICAgcmV0dXJuIENIQVJUX1RZUEVTX0NPTkZJR1tjaGFydFR5cGVdWyd0eXBlJ10gYXMgQ2hhcnRKU1R5cGU7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMob3B0aW9uczogQ2hhcnRPcHRpb25zKTogQ2hhcnRPcHRpb25zIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMgPSBDSEFSVF9JTlRFUkFDVElPTl9GVU5DVElPTlNfRVhURU5TSU9OUztcbiAgICBPYmplY3QuZW50cmllcyhpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMpLmZvckVhY2goKFtrZXksIF9dKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG9wdGlvbnNba2V5XTtcbiAgICAgIG9wdGlvbnNba2V5XSA9IChlOiBFdmVudCwgYTogQWN0aXZlRWxlbWVudFtdLCBjOiBDaGFydCkgPT4ge1xuICAgICAgICBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnNba2V5XShlLCBhLCBjLCBjYWxsYmFjayk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldFN0b2NrQ2hhcnRPcHRpb25zKGRhdGFMYWJlbE9wdGlvbnM6IENoYXJ0RGF0YUxhYmVsT3B0aW9ucywgbG9jYWxlOiBDaGFydExvY2FsZSkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgdGl0bGU6ICh0b29sdGlwSXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRvRGF0ZSgodG9vbHRpcEl0ZW1zWzBdPy5yYXcgYXMgYW55KT8ueCk7XG4gICAgICAgICAgICAgIGlmIChkYXRlLnZhbHVlT2YoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBhZGQgc3BhY2luZyBiZXR3ZWVuIGNvbG9yIGxlZ2VuZCBhbmQgdGV4dCBzbyB3ZVxuICAgICAgICAgICAgICAvLyBwcmVmaXggd2l0aCBhIHNwYWNlLlxuICAgICAgICAgICAgICByZXR1cm4gJyAnICsgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeToge1xuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,32 @@
1
+ import { ColorHelper } from '../../../../../helpers';
2
+ const { getThemeColorHexString } = ColorHelper;
3
+ /* The chart.js annotation does not allow for changing the
4
+ defaults it comes with. In order to have sensible defaults
5
+ this object is used instead and manually merged with the
6
+ rest of the annotations object */
7
+ const borderColor = getThemeColorHexString('semi-dark');
8
+ const borderDash = [6, 3];
9
+ const borderWidth = 1;
10
+ export const CHART_ANNOTATIONS_CONFIG = {
11
+ line: {
12
+ borderDash,
13
+ borderWidth,
14
+ borderColor,
15
+ },
16
+ ellipse: {
17
+ borderDash,
18
+ borderWidth,
19
+ borderColor,
20
+ backgroundColor: 'transparent',
21
+ },
22
+ box: {
23
+ borderDash,
24
+ borderWidth,
25
+ borderColor,
26
+ backgroundColor: 'transparent',
27
+ },
28
+ point: {
29
+ backgroundColor: 'initial',
30
+ },
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9zaGFyZWQvY2hhcnQtY29uZmlnLXNlcnZpY2UvY29uZmlncy9hbm5vdGF0aW9ucy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLFdBQVcsQ0FBQztBQUUvQzs7O2lDQUdpQztBQUNqQyxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4RCxNQUFNLFVBQVUsR0FBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRXRCLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFzRDtJQUN6RixJQUFJLEVBQUU7UUFDSixVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7S0FDWjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztRQUNYLGVBQWUsRUFBRSxhQUFhO0tBQy9CO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO1FBQ1gsZUFBZSxFQUFFLGFBQWE7S0FDL0I7SUFDRCxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUUsU0FBUztLQUMzQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9uVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IENvbG9ySGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaGVscGVycyc7XG5cbmNvbnN0IHsgZ2V0VGhlbWVDb2xvckhleFN0cmluZyB9ID0gQ29sb3JIZWxwZXI7XG5cbi8qIFRoZSBjaGFydC5qcyBhbm5vdGF0aW9uIGRvZXMgbm90IGFsbG93IGZvciBjaGFuZ2luZyB0aGUgXG5kZWZhdWx0cyBpdCBjb21lcyB3aXRoLiBJbiBvcmRlciB0byBoYXZlIHNlbnNpYmxlIGRlZmF1bHRzIFxudGhpcyBvYmplY3QgaXMgdXNlZCBpbnN0ZWFkIGFuZCBtYW51YWxseSBtZXJnZWQgd2l0aCB0aGUgXG5yZXN0IG9mIHRoZSBhbm5vdGF0aW9ucyBvYmplY3QgKi9cbmNvbnN0IGJvcmRlckNvbG9yID0gZ2V0VGhlbWVDb2xvckhleFN0cmluZygnc2VtaS1kYXJrJyk7XG5jb25zdCBib3JkZXJEYXNoOiBbbnVtYmVyLCBudW1iZXJdID0gWzYsIDNdO1xuY29uc3QgYm9yZGVyV2lkdGggPSAxO1xuXG5leHBvcnQgY29uc3QgQ0hBUlRfQU5OT1RBVElPTlNfQ09ORklHOiBPbWl0PEFubm90YXRpb25UeXBlUmVnaXN0cnksICdsYWJlbCcgfCAncG9seWdvbic+ID0ge1xuICBsaW5lOiB7XG4gICAgYm9yZGVyRGFzaCxcbiAgICBib3JkZXJXaWR0aCxcbiAgICBib3JkZXJDb2xvcixcbiAgfSxcbiAgZWxsaXBzZToge1xuICAgIGJvcmRlckRhc2gsXG4gICAgYm9yZGVyV2lkdGgsXG4gICAgYm9yZGVyQ29sb3IsXG4gICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICB9LFxuICBib3g6IHtcbiAgICBib3JkZXJEYXNoLFxuICAgIGJvcmRlcldpZHRoLFxuICAgIGJvcmRlckNvbG9yLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgfSxcbiAgcG9pbnQ6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdpbml0aWFsJyxcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { ColorHelper } from '../../../../../helpers';
2
+ const { getThemeColorHexString } = ColorHelper;
3
+ const hoverBackgroundColor = getThemeColorHexString('primary');
4
+ const backgroundColor = getThemeColorHexString('secondary');
5
+ function scriptedBackgroundColor(context) {
6
+ const dataset = context.dataset;
7
+ const highlightedElements = dataset?.kirbyOptions?.highlightedElements;
8
+ if (highlightedElements && highlightedElements.includes(context.dataIndex)) {
9
+ return hoverBackgroundColor;
10
+ }
11
+ else {
12
+ return backgroundColor;
13
+ }
14
+ }
15
+ // Only adds a hovercolor if an onClick handler is provided
16
+ function scriptedHoverBackgroundColor(context) {
17
+ if (context.chart.options.onClick) {
18
+ return hoverBackgroundColor;
19
+ }
20
+ }
21
+ export const CHART_GLOBAL_DEFAULTS = {
22
+ maintainAspectRatio: false,
23
+ color: getThemeColorHexString('black'),
24
+ resizeDelay: 10,
25
+ elements: {
26
+ bar: {
27
+ backgroundColor: scriptedBackgroundColor,
28
+ hoverBackgroundColor: scriptedHoverBackgroundColor,
29
+ },
30
+ line: {
31
+ borderColor: scriptedBackgroundColor,
32
+ borderWidth: 2,
33
+ tension: 0.3,
34
+ },
35
+ },
36
+ scales: {
37
+ linear: {
38
+ display: false,
39
+ ticks: {
40
+ display: false,
41
+ },
42
+ },
43
+ category: {
44
+ display: true,
45
+ grid: {
46
+ display: false,
47
+ },
48
+ },
49
+ },
50
+ font: {
51
+ family: 'Roboto',
52
+ },
53
+ plugins: {
54
+ legend: {
55
+ display: false,
56
+ },
57
+ datalabels: {
58
+ display: false,
59
+ },
60
+ tooltip: {
61
+ enabled: false,
62
+ },
63
+ },
64
+ };
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWRlZmF1bHRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydHMvc2hhcmVkL2NoYXJ0LWNvbmZpZy1zZXJ2aWNlL2NvbmZpZ3MvZ2xvYmFsLWRlZmF1bHRzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsV0FBVyxDQUFDO0FBRS9DLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0QsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFNUQsU0FBUyx1QkFBdUIsQ0FBQyxPQUFxQztJQUNwRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBdUIsQ0FBQztJQUNoRCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFFdkUsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzFFLE9BQU8sb0JBQW9CLENBQUM7S0FDN0I7U0FBTTtRQUNMLE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxTQUFTLDRCQUE0QixDQUFDLE9BQXFDO0lBQ3pFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ2pDLE9BQU8sb0JBQW9CLENBQUM7S0FDN0I7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixLQUFLLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQ3RDLFdBQVcsRUFBRSxFQUFFO0lBQ2YsUUFBUSxFQUFFO1FBQ1IsR0FBRyxFQUFFO1lBQ0gsZUFBZSxFQUFFLHVCQUF1QjtZQUN4QyxvQkFBb0IsRUFBRSw0QkFBNEI7U0FDbkQ7UUFDRCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLFdBQVcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLEdBQUc7U0FDYjtLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7YUFDZjtTQUNGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLEtBQUs7YUFDZjtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7UUFDRCxVQUFVLEVBQUU7WUFDVixPQUFPLEVBQUUsS0FBSztTQUNmO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0VHlwZSwgU2NyaXB0YWJsZUNvbnRleHQgfSBmcm9tICdjaGFydC5qcyc7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBDb2xvckhlbHBlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xuXG5jb25zdCB7IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcgfSA9IENvbG9ySGVscGVyO1xuXG5jb25zdCBob3ZlckJhY2tncm91bmRDb2xvciA9IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3ByaW1hcnknKTtcbmNvbnN0IGJhY2tncm91bmRDb2xvciA9IGdldFRoZW1lQ29sb3JIZXhTdHJpbmcoJ3NlY29uZGFyeScpO1xuXG5mdW5jdGlvbiBzY3JpcHRlZEJhY2tncm91bmRDb2xvcihjb250ZXh0OiBTY3JpcHRhYmxlQ29udGV4dDxDaGFydFR5cGU+KSB7XG4gIGNvbnN0IGRhdGFzZXQgPSBjb250ZXh0LmRhdGFzZXQgYXMgQ2hhcnREYXRhc2V0O1xuICBjb25zdCBoaWdobGlnaHRlZEVsZW1lbnRzID0gZGF0YXNldD8ua2lyYnlPcHRpb25zPy5oaWdobGlnaHRlZEVsZW1lbnRzO1xuXG4gIGlmIChoaWdobGlnaHRlZEVsZW1lbnRzICYmIGhpZ2hsaWdodGVkRWxlbWVudHMuaW5jbHVkZXMoY29udGV4dC5kYXRhSW5kZXgpKSB7XG4gICAgcmV0dXJuIGhvdmVyQmFja2dyb3VuZENvbG9yO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYWNrZ3JvdW5kQ29sb3I7XG4gIH1cbn1cblxuLy8gT25seSBhZGRzIGEgaG92ZXJjb2xvciBpZiBhbiBvbkNsaWNrIGhhbmRsZXIgaXMgcHJvdmlkZWRcbmZ1bmN0aW9uIHNjcmlwdGVkSG92ZXJCYWNrZ3JvdW5kQ29sb3IoY29udGV4dDogU2NyaXB0YWJsZUNvbnRleHQ8Q2hhcnRUeXBlPikge1xuICBpZiAoY29udGV4dC5jaGFydC5vcHRpb25zLm9uQ2xpY2spIHtcbiAgICByZXR1cm4gaG92ZXJCYWNrZ3JvdW5kQ29sb3I7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENIQVJUX0dMT0JBTF9ERUZBVUxUUyA9IHtcbiAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gIGNvbG9yOiBnZXRUaGVtZUNvbG9ySGV4U3RyaW5nKCdibGFjaycpLFxuICByZXNpemVEZWxheTogMTAsXG4gIGVsZW1lbnRzOiB7XG4gICAgYmFyOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHNjcmlwdGVkQmFja2dyb3VuZENvbG9yLFxuICAgICAgaG92ZXJCYWNrZ3JvdW5kQ29sb3I6IHNjcmlwdGVkSG92ZXJCYWNrZ3JvdW5kQ29sb3IsXG4gICAgfSxcbiAgICBsaW5lOiB7XG4gICAgICBib3JkZXJDb2xvcjogc2NyaXB0ZWRCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBib3JkZXJXaWR0aDogMixcbiAgICAgIHRlbnNpb246IDAuMyxcbiAgICB9LFxuICB9LFxuICBzY2FsZXM6IHtcbiAgICBsaW5lYXI6IHtcbiAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgICAgdGlja3M6IHtcbiAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2F0ZWdvcnk6IHtcbiAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICBncmlkOiB7XG4gICAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBmb250OiB7XG4gICAgZmFtaWx5OiAnUm9ib3RvJyxcbiAgfSxcbiAgcGx1Z2luczoge1xuICAgIGxlZ2VuZDoge1xuICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgfSxcbiAgICBkYXRhbGFiZWxzOiB7XG4gICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICB9LFxuICAgIHRvb2x0aXA6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
@@ -0,0 +1,13 @@
1
+ /* Allows for adding functionality to interactions chart.js while
2
+ preserving the interaction functionality the consumer of the component has
3
+ passed by being provided as a callback. */
4
+ export const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {
5
+ onHover: (_event, activeElements, _chart, callback) => {
6
+ if (_chart.options.onClick) {
7
+ _chart.canvas.style.cursor = activeElements[0] ? 'pointer' : 'default';
8
+ }
9
+ if (callback)
10
+ callback(_event, activeElements, _chart);
11
+ },
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tZnVuY3Rpb25zLWV4dGVuc2lvbnMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9zaGFyZWQvY2hhcnQtY29uZmlnLXNlcnZpY2UvY29uZmlncy9pbnRlcmFjdGlvbi1mdW5jdGlvbnMtZXh0ZW5zaW9ucy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OzBDQUUwQztBQUMxQyxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRztJQUNwRCxPQUFPLEVBQUUsQ0FDUCxNQUFrQixFQUNsQixjQUErQixFQUMvQixNQUFhLEVBQ2IsUUFBaUMsRUFDakMsRUFBRTtRQUNGLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDeEU7UUFFRCxJQUFJLFFBQVE7WUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZUVsZW1lbnQsIENoYXJ0LCBDaGFydEV2ZW50LCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcyc7XG5cbi8qIEFsbG93cyBmb3IgYWRkaW5nIGZ1bmN0aW9uYWxpdHkgdG8gaW50ZXJhY3Rpb25zIGNoYXJ0LmpzIHdoaWxlIFxucHJlc2VydmluZyB0aGUgaW50ZXJhY3Rpb24gZnVuY3Rpb25hbGl0eSB0aGUgY29uc3VtZXIgb2YgdGhlIGNvbXBvbmVudCBoYXMgXG5wYXNzZWQgYnkgYmVpbmcgcHJvdmlkZWQgYXMgYSBjYWxsYmFjay4gKi9cbmV4cG9ydCBjb25zdCBDSEFSVF9JTlRFUkFDVElPTl9GVU5DVElPTlNfRVhURU5TSU9OUyA9IHtcbiAgb25Ib3ZlcjogKFxuICAgIF9ldmVudDogQ2hhcnRFdmVudCxcbiAgICBhY3RpdmVFbGVtZW50czogQWN0aXZlRWxlbWVudFtdLFxuICAgIF9jaGFydDogQ2hhcnQsXG4gICAgY2FsbGJhY2s6IENoYXJ0T3B0aW9uc1snb25Ib3ZlciddXG4gICkgPT4ge1xuICAgIGlmIChfY2hhcnQub3B0aW9ucy5vbkNsaWNrKSB7XG4gICAgICBfY2hhcnQuY2FudmFzLnN0eWxlLmN1cnNvciA9IGFjdGl2ZUVsZW1lbnRzWzBdID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soX2V2ZW50LCBhY3RpdmVFbGVtZW50cywgX2NoYXJ0KTtcbiAgfSxcbn07XG4iXX0=