@kirbydesign/designsystem 10.2.1 → 10.3.1

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 (1344) hide show
  1. package/accordion/accordion-item.component.d.ts +1 -0
  2. package/accordion/accordion-item.component.d.ts.map +1 -0
  3. package/accordion/accordion.directive.d.ts +1 -0
  4. package/accordion/accordion.directive.d.ts.map +1 -0
  5. package/accordion/accordion.module.d.ts +1 -0
  6. package/accordion/accordion.module.d.ts.map +1 -0
  7. package/accordion/index.d.ts +1 -0
  8. package/accordion/kirbydesign-designsystem-accordion.d.ts.map +1 -0
  9. package/accordion/public_api.d.ts +1 -0
  10. package/accordion/public_api.d.ts.map +1 -0
  11. package/action-group/action-group.component.d.ts +1 -0
  12. package/action-group/action-group.component.d.ts.map +1 -0
  13. package/action-group/index.d.ts +1 -0
  14. package/action-group/kirbydesign-designsystem-action-group.d.ts.map +1 -0
  15. package/action-group/public_api.d.ts +1 -0
  16. package/action-group/public_api.d.ts.map +1 -0
  17. package/avatar/avatar.component.d.ts +1 -0
  18. package/avatar/avatar.component.d.ts.map +1 -0
  19. package/avatar/index.d.ts +1 -0
  20. package/avatar/kirbydesign-designsystem-avatar.d.ts.map +1 -0
  21. package/avatar/public_api.d.ts +1 -0
  22. package/avatar/public_api.d.ts.map +1 -0
  23. package/badge/badge.component.d.ts +1 -0
  24. package/badge/badge.component.d.ts.map +1 -0
  25. package/badge/index.d.ts +1 -0
  26. package/badge/kirbydesign-designsystem-badge.d.ts.map +1 -0
  27. package/badge/public_api.d.ts +1 -0
  28. package/badge/public_api.d.ts.map +1 -0
  29. package/button/button.component.d.ts +1 -0
  30. package/button/button.component.d.ts.map +1 -0
  31. package/button/index.d.ts +1 -0
  32. package/button/kirbydesign-designsystem-button.d.ts.map +1 -0
  33. package/button/public_api.d.ts +1 -0
  34. package/button/public_api.d.ts.map +1 -0
  35. package/calendar/calendar.component.d.ts +1 -0
  36. package/calendar/calendar.component.d.ts.map +1 -0
  37. package/calendar/index.d.ts +1 -0
  38. package/calendar/interfaces/calendar-day.d.ts +1 -0
  39. package/calendar/interfaces/calendar-day.d.ts.map +1 -0
  40. package/calendar/interfaces/calendar-year-navigator-config.d.ts +1 -0
  41. package/calendar/interfaces/calendar-year-navigator-config.d.ts.map +1 -0
  42. package/calendar/kirbydesign-designsystem-calendar.d.ts.map +1 -0
  43. package/calendar/public_api.d.ts +1 -0
  44. package/calendar/public_api.d.ts.map +1 -0
  45. package/card/card-as-button/card-as-button.directive.d.ts +1 -0
  46. package/card/card-as-button/card-as-button.directive.d.ts.map +1 -0
  47. package/card/card-flag-level.d.ts +1 -0
  48. package/card/card-flag-level.d.ts.map +1 -0
  49. package/card/card-footer/card-footer.component.d.ts +1 -0
  50. package/card/card-footer/card-footer.component.d.ts.map +1 -0
  51. package/card/card-header/card-header.component.d.ts +1 -0
  52. package/card/card-header/card-header.component.d.ts.map +1 -0
  53. package/card/card.component.d.ts +1 -0
  54. package/card/card.component.d.ts.map +1 -0
  55. package/card/card.module.d.ts +1 -0
  56. package/card/card.module.d.ts.map +1 -0
  57. package/card/index.d.ts +1 -0
  58. package/card/kirbydesign-designsystem-card.d.ts.map +1 -0
  59. package/card/public_api.d.ts +1 -0
  60. package/card/public_api.d.ts.map +1 -0
  61. package/chart/chart/chart.component.d.ts +1 -0
  62. package/chart/chart/chart.component.d.ts.map +1 -0
  63. package/chart/chart/index.d.ts +1 -0
  64. package/chart/chart/index.d.ts.map +1 -0
  65. package/chart/chart-config/chart-bar-config/chart-bar-config.d.ts +1 -0
  66. package/chart/chart-config/chart-bar-config/chart-bar-config.d.ts.map +1 -0
  67. package/chart/chart-config/chart-base-config.d.ts +1 -0
  68. package/chart/chart-config/chart-base-config.d.ts.map +1 -0
  69. package/chart/chart-config/chart-stock-config/chart-stock-config.d.ts +1 -0
  70. package/chart/chart-config/chart-stock-config/chart-stock-config.d.ts.map +1 -0
  71. package/chart/chart-config/chart-stock-config/data-label-position/data-label-position.d.ts +1 -0
  72. package/chart/chart-config/chart-stock-config/data-label-position/data-label-position.d.ts.map +1 -0
  73. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.d.ts +1 -0
  74. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.d.ts.map +1 -0
  75. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.d.ts +1 -0
  76. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.d.ts.map +1 -0
  77. package/chart/charts.module.d.ts +1 -0
  78. package/chart/charts.module.d.ts.map +1 -0
  79. package/chart/index.d.ts +1 -0
  80. package/chart/kirbydesign-designsystem-chart.d.ts.map +1 -0
  81. package/chart/public_api.d.ts +1 -0
  82. package/chart/public_api.d.ts.map +1 -0
  83. package/chart/shared/base-chart/base-chart.component.d.ts +1 -0
  84. package/chart/shared/base-chart/base-chart.component.d.ts.map +1 -0
  85. package/chart/shared/base-chart/index.d.ts +1 -0
  86. package/chart/shared/base-chart/index.d.ts.map +1 -0
  87. package/chart/shared/chart-config-service/chart-config.service.d.ts +2 -1
  88. package/chart/shared/chart-config-service/chart-config.service.d.ts.map +1 -0
  89. package/chart/shared/chart-config-service/configs/annotations.config.d.ts +1 -0
  90. package/chart/shared/chart-config-service/configs/annotations.config.d.ts.map +1 -0
  91. package/chart/shared/chart-config-service/configs/global-defaults.config.d.ts +1 -0
  92. package/chart/shared/chart-config-service/configs/global-defaults.config.d.ts.map +1 -0
  93. package/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.d.ts +1 -0
  94. package/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.d.ts.map +1 -0
  95. package/chart/shared/chart-config-service/configs/type.config.d.ts +1 -0
  96. package/chart/shared/chart-config-service/configs/type.config.d.ts.map +1 -0
  97. package/chart/shared/chart-config-service/index.d.ts +1 -0
  98. package/chart/shared/chart-config-service/index.d.ts.map +1 -0
  99. package/chart/shared/chart-js-service/annotations.delegate.d.ts +1 -0
  100. package/chart/shared/chart-js-service/annotations.delegate.d.ts.map +1 -0
  101. package/chart/shared/chart-js-service/chart-js.service.d.ts +1 -0
  102. package/chart/shared/chart-js-service/chart-js.service.d.ts.map +1 -0
  103. package/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.d.ts +1 -0
  104. package/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.d.ts.map +1 -0
  105. package/chart/shared/chart-js-service/configured-chart-js.d.ts +1 -0
  106. package/chart/shared/chart-js-service/configured-chart-js.d.ts.map +1 -0
  107. package/chart/shared/chart-js-service/index.d.ts +1 -0
  108. package/chart/shared/chart-js-service/index.d.ts.map +1 -0
  109. package/chart/shared/chart-js-service/test-utils.d.ts +1 -0
  110. package/chart/shared/chart-js-service/test-utils.d.ts.map +1 -0
  111. package/chart/shared/charts.types.d.ts +1 -0
  112. package/chart/shared/charts.types.d.ts.map +1 -0
  113. package/chart/shared/index.d.ts +1 -0
  114. package/chart/shared/index.d.ts.map +1 -0
  115. package/chart/stock-chart/index.d.ts +1 -0
  116. package/chart/stock-chart/index.d.ts.map +1 -0
  117. package/chart/stock-chart/stock-chart-js.service.d.ts +1 -0
  118. package/chart/stock-chart/stock-chart-js.service.d.ts.map +1 -0
  119. package/chart/stock-chart/stock-chart.component.d.ts +1 -0
  120. package/chart/stock-chart/stock-chart.component.d.ts.map +1 -0
  121. package/checkbox/checkbox.component.d.ts +1 -0
  122. package/checkbox/checkbox.component.d.ts.map +1 -0
  123. package/checkbox/index.d.ts +1 -0
  124. package/checkbox/kirbydesign-designsystem-checkbox.d.ts.map +1 -0
  125. package/checkbox/public_api.d.ts +1 -0
  126. package/checkbox/public_api.d.ts.map +1 -0
  127. package/data-table/data-table.module.d.ts +1 -0
  128. package/data-table/data-table.module.d.ts.map +1 -0
  129. package/data-table/index.d.ts +1 -0
  130. package/data-table/kirbydesign-designsystem-data-table.d.ts.map +1 -0
  131. package/data-table/public_api.d.ts +1 -0
  132. package/data-table/public_api.d.ts.map +1 -0
  133. package/data-table/sortable/sortable.component.d.ts +1 -0
  134. package/data-table/sortable/sortable.component.d.ts.map +1 -0
  135. package/divider/divider.component.d.ts +1 -0
  136. package/divider/divider.component.d.ts.map +1 -0
  137. package/divider/index.d.ts +1 -0
  138. package/divider/kirbydesign-designsystem-divider.d.ts.map +1 -0
  139. package/divider/public_api.d.ts +1 -0
  140. package/divider/public_api.d.ts.map +1 -0
  141. package/dropdown/dropdown.component.d.ts +1 -0
  142. package/dropdown/dropdown.component.d.ts.map +1 -0
  143. package/dropdown/dropdown.module.d.ts +1 -0
  144. package/dropdown/dropdown.module.d.ts.map +1 -0
  145. package/dropdown/dropdown.types.d.ts +1 -0
  146. package/dropdown/dropdown.types.d.ts.map +1 -0
  147. package/dropdown/index.d.ts +1 -0
  148. package/dropdown/keyboard-handler.service.d.ts +1 -0
  149. package/dropdown/keyboard-handler.service.d.ts.map +1 -0
  150. package/dropdown/kirbydesign-designsystem-dropdown.d.ts.map +1 -0
  151. package/dropdown/public_api.d.ts +1 -0
  152. package/dropdown/public_api.d.ts.map +1 -0
  153. package/empty-state/empty-state.component.d.ts +1 -0
  154. package/empty-state/empty-state.component.d.ts.map +1 -0
  155. package/empty-state/empty-state.module.d.ts +1 -0
  156. package/empty-state/empty-state.module.d.ts.map +1 -0
  157. package/empty-state/index.d.ts +1 -0
  158. package/empty-state/kirbydesign-designsystem-empty-state.d.ts.map +1 -0
  159. package/empty-state/public_api.d.ts +1 -0
  160. package/empty-state/public_api.d.ts.map +1 -0
  161. package/fab-sheet/fab-sheet.component.d.ts +1 -0
  162. package/fab-sheet/fab-sheet.component.d.ts.map +1 -0
  163. package/fab-sheet/index.d.ts +1 -0
  164. package/fab-sheet/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -0
  165. package/fab-sheet/public_api.d.ts +1 -0
  166. package/fab-sheet/public_api.d.ts.map +1 -0
  167. package/fesm2022/kirbydesign-designsystem-accordion.mjs +12 -11
  168. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  169. package/fesm2022/kirbydesign-designsystem-action-group.mjs +4 -4
  170. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  171. package/fesm2022/kirbydesign-designsystem-avatar.mjs +4 -4
  172. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  173. package/fesm2022/kirbydesign-designsystem-badge.mjs +4 -4
  174. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  175. package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
  176. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  177. package/fesm2022/kirbydesign-designsystem-calendar.mjs +11 -10
  178. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  179. package/fesm2022/kirbydesign-designsystem-card.mjs +20 -19
  180. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  181. package/fesm2022/kirbydesign-designsystem-chart.mjs +25 -25
  182. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  183. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +4 -4
  184. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  185. package/fesm2022/kirbydesign-designsystem-data-table.mjs +8 -8
  186. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  187. package/fesm2022/kirbydesign-designsystem-divider.mjs +4 -4
  188. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  189. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  190. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  191. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +8 -8
  192. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  193. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
  194. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  195. package/fesm2022/kirbydesign-designsystem-flag.mjs +4 -4
  196. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  197. package/fesm2022/kirbydesign-designsystem-form-field.mjs +34 -34
  198. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  199. package/fesm2022/kirbydesign-designsystem-header.mjs +24 -20
  200. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  201. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
  202. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  203. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  204. package/fesm2022/kirbydesign-designsystem-icon.mjs +29 -13
  205. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  206. package/fesm2022/kirbydesign-designsystem-item-group.mjs +4 -4
  207. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  208. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +4 -4
  209. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  210. package/fesm2022/kirbydesign-designsystem-item.mjs +12 -12
  211. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  212. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +8 -8
  213. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  214. package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs +4 -4
  215. package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs.map +1 -1
  216. package/fesm2022/kirbydesign-designsystem-list.mjs +51 -45
  217. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  218. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +7 -7
  219. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  220. package/fesm2022/kirbydesign-designsystem-menu.mjs +4 -4
  221. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  222. package/fesm2022/kirbydesign-designsystem-modal.mjs +55 -52
  223. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  224. package/fesm2022/kirbydesign-designsystem-page.mjs +52 -44
  225. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  226. package/fesm2022/kirbydesign-designsystem-popover.mjs +4 -4
  227. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  228. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +8 -8
  229. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  230. package/fesm2022/kirbydesign-designsystem-radio.mjs +21 -23
  231. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  232. package/fesm2022/kirbydesign-designsystem-range.mjs +4 -4
  233. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  234. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +5 -5
  235. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  236. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +8 -8
  237. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  238. package/fesm2022/kirbydesign-designsystem-section-header.mjs +4 -4
  239. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  240. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  241. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  242. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  243. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  244. package/fesm2022/kirbydesign-designsystem-shared.mjs +19 -19
  245. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  246. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
  247. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  248. package/fesm2022/kirbydesign-designsystem-slide.mjs +16 -14
  249. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  250. package/fesm2022/kirbydesign-designsystem-spinner.mjs +8 -8
  251. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  252. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +12 -12
  253. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  254. package/fesm2022/kirbydesign-designsystem-tabs.mjs +15 -15
  255. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  256. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +287 -354
  257. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  258. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  259. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  260. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  261. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  262. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  263. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  264. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  265. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  266. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +19 -10
  267. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  268. package/fesm2022/kirbydesign-designsystem-toggle.mjs +4 -4
  269. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  270. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  271. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  272. package/fesm2022/kirbydesign-designsystem.mjs +16 -14
  273. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  274. package/flag/flag.component.d.ts +1 -0
  275. package/flag/flag.component.d.ts.map +1 -0
  276. package/flag/index.d.ts +1 -0
  277. package/flag/kirbydesign-designsystem-flag.d.ts.map +1 -0
  278. package/flag/public_api.d.ts +1 -0
  279. package/flag/public_api.d.ts.map +1 -0
  280. package/form-field/directives/affix/affix.directive.d.ts +1 -0
  281. package/form-field/directives/affix/affix.directive.d.ts.map +1 -0
  282. package/form-field/directives/date/date-input.directive.d.ts +1 -0
  283. package/form-field/directives/date/date-input.directive.d.ts.map +1 -0
  284. package/form-field/directives/decimal-mask/decimal-mask.directive.d.ts +1 -0
  285. package/form-field/directives/decimal-mask/decimal-mask.directive.d.ts.map +1 -0
  286. package/form-field/form-field-message/form-field-message.component.d.ts +1 -0
  287. package/form-field/form-field-message/form-field-message.component.d.ts.map +1 -0
  288. package/form-field/form-field.component.d.ts +1 -0
  289. package/form-field/form-field.component.d.ts.map +1 -0
  290. package/form-field/form-field.module.d.ts +1 -0
  291. package/form-field/form-field.module.d.ts.map +1 -0
  292. package/form-field/index.d.ts +1 -0
  293. package/form-field/input/input.component.d.ts +1 -0
  294. package/form-field/input/input.component.d.ts.map +1 -0
  295. package/form-field/input-counter/input-counter.component.d.ts +1 -0
  296. package/form-field/input-counter/input-counter.component.d.ts.map +1 -0
  297. package/form-field/kirbydesign-designsystem-form-field.d.ts.map +1 -0
  298. package/form-field/public_api.d.ts +1 -0
  299. package/form-field/public_api.d.ts.map +1 -0
  300. package/form-field/textarea/textarea.component.d.ts +1 -0
  301. package/form-field/textarea/textarea.component.d.ts.map +1 -0
  302. package/header/header.component.d.ts +1 -0
  303. package/header/header.component.d.ts.map +1 -0
  304. package/header/header.module.d.ts +1 -0
  305. package/header/header.module.d.ts.map +1 -0
  306. package/header/index.d.ts +1 -0
  307. package/header/kirbydesign-designsystem-header.d.ts.map +1 -0
  308. package/header/public_api.d.ts +1 -0
  309. package/header/public_api.d.ts.map +1 -0
  310. package/helpers/chart-config-has-type.d.ts +1 -0
  311. package/helpers/chart-config-has-type.d.ts.map +1 -0
  312. package/helpers/color-helper.d.ts +1 -0
  313. package/helpers/color-helper.d.ts.map +1 -0
  314. package/helpers/content-mutation-observer.d.ts +1 -0
  315. package/helpers/content-mutation-observer.d.ts.map +1 -0
  316. package/helpers/deep-copy.d.ts +1 -0
  317. package/helpers/deep-copy.d.ts.map +1 -0
  318. package/helpers/design-token-helper.d.ts +1 -0
  319. package/helpers/design-token-helper.d.ts.map +1 -0
  320. package/helpers/element-ancestor-utils.d.ts +1 -0
  321. package/helpers/element-ancestor-utils.d.ts.map +1 -0
  322. package/helpers/index.d.ts +1 -0
  323. package/helpers/ionic-element-part-helper.d.ts +1 -0
  324. package/helpers/ionic-element-part-helper.d.ts.map +1 -0
  325. package/helpers/kirby-animation.d.ts +1 -0
  326. package/helpers/kirby-animation.d.ts.map +1 -0
  327. package/helpers/kirbydesign-designsystem-helpers.d.ts.map +1 -0
  328. package/helpers/line-clamp-helper.d.ts +1 -0
  329. package/helpers/line-clamp-helper.d.ts.map +1 -0
  330. package/helpers/merge-deep.d.ts +1 -0
  331. package/helpers/merge-deep.d.ts.map +1 -0
  332. package/helpers/platform.service.d.ts +1 -0
  333. package/helpers/platform.service.d.ts.map +1 -0
  334. package/helpers/public_api.d.ts +1 -0
  335. package/helpers/public_api.d.ts.map +1 -0
  336. package/helpers/scss/index.d.ts +1 -0
  337. package/helpers/scss/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -0
  338. package/helpers/scss/public_api.d.ts +1 -0
  339. package/helpers/scss/public_api.d.ts.map +1 -0
  340. package/helpers/scss/scss-helper.d.ts +1 -0
  341. package/helpers/scss/scss-helper.d.ts.map +1 -0
  342. package/helpers/string-helper.d.ts +1 -0
  343. package/helpers/string-helper.d.ts.map +1 -0
  344. package/helpers/theme-color.type.d.ts +1 -0
  345. package/helpers/theme-color.type.d.ts.map +1 -0
  346. package/helpers/unique-id-generator.helper.d.ts +1 -0
  347. package/helpers/unique-id-generator.helper.d.ts.map +1 -0
  348. package/icon/icon-registry.service.d.ts +1 -0
  349. package/icon/icon-registry.service.d.ts.map +1 -0
  350. package/icon/icon-settings.d.ts +1 -0
  351. package/icon/icon-settings.d.ts.map +1 -0
  352. package/icon/icon.component.d.ts +7 -2
  353. package/icon/icon.component.d.ts.map +1 -0
  354. package/icon/icon.module.d.ts +1 -0
  355. package/icon/icon.module.d.ts.map +1 -0
  356. package/icon/index.d.ts +1 -0
  357. package/icon/kirby-icon-settings.d.ts +1 -0
  358. package/icon/kirby-icon-settings.d.ts.map +1 -0
  359. package/icon/kirbydesign-designsystem-icon.d.ts.map +1 -0
  360. package/icon/public_api.d.ts +1 -0
  361. package/icon/public_api.d.ts.map +1 -0
  362. package/icons/svg/expense.svg +1 -0
  363. package/icons/svg/income.svg +1 -0
  364. package/icons/svg/notification-fill.svg +1 -0
  365. package/icons/svg/signed-document.svg +1 -0
  366. package/index.d.ts +1 -0
  367. package/item/index.d.ts +1 -0
  368. package/item/item.component.d.ts +1 -0
  369. package/item/item.component.d.ts.map +1 -0
  370. package/item/item.module.d.ts +1 -0
  371. package/item/item.module.d.ts.map +1 -0
  372. package/item/kirbydesign-designsystem-item.d.ts.map +1 -0
  373. package/item/label/label.component.d.ts +1 -0
  374. package/item/label/label.component.d.ts.map +1 -0
  375. package/item/public_api.d.ts +1 -0
  376. package/item/public_api.d.ts.map +1 -0
  377. package/item-group/index.d.ts +1 -0
  378. package/item-group/item-group.component.d.ts +1 -0
  379. package/item-group/item-group.component.d.ts.map +1 -0
  380. package/item-group/kirbydesign-designsystem-item-group.d.ts.map +1 -0
  381. package/item-group/public_api.d.ts +1 -0
  382. package/item-group/public_api.d.ts.map +1 -0
  383. package/item-sliding/index.d.ts +1 -0
  384. package/item-sliding/item-sliding.component.d.ts +1 -0
  385. package/item-sliding/item-sliding.component.d.ts.map +1 -0
  386. package/item-sliding/item-sliding.types.d.ts +1 -0
  387. package/item-sliding/item-sliding.types.d.ts.map +1 -0
  388. package/item-sliding/kirbydesign-designsystem-item-sliding.d.ts.map +1 -0
  389. package/item-sliding/public_api.d.ts +1 -0
  390. package/item-sliding/public_api.d.ts.map +1 -0
  391. package/kirby-app/index.d.ts +1 -0
  392. package/kirby-app/kirby-app.component.d.ts +1 -0
  393. package/kirby-app/kirby-app.component.d.ts.map +1 -0
  394. package/kirby-app/kirby-app.module.d.ts +1 -0
  395. package/kirby-app/kirby-app.module.d.ts.map +1 -0
  396. package/kirby-app/kirbydesign-designsystem-kirby-app.d.ts.map +1 -0
  397. package/kirby-app/public_api.d.ts +1 -0
  398. package/kirby-app/public_api.d.ts.map +1 -0
  399. package/kirby-ionic-module/index.d.ts +1 -0
  400. package/kirby-ionic-module/kirby-ionic.module.d.ts +1 -0
  401. package/kirby-ionic-module/kirby-ionic.module.d.ts.map +1 -0
  402. package/kirby-ionic-module/kirbydesign-designsystem-kirby-ionic-module.d.ts.map +1 -0
  403. package/kirby-ionic-module/public_api.d.ts +1 -0
  404. package/kirby-ionic-module/public_api.d.ts.map +1 -0
  405. package/kirbydesign-designsystem.d.ts.map +1 -0
  406. package/lib/components/index.d.ts +1 -0
  407. package/lib/components/index.d.ts.map +1 -0
  408. package/lib/components/segmented-control/segment-item.d.ts +1 -0
  409. package/lib/components/segmented-control/segment-item.d.ts.map +1 -0
  410. package/lib/components/segmented-control/segmented-control.component.d.ts +1 -2
  411. package/lib/components/segmented-control/segmented-control.component.d.ts.map +1 -0
  412. package/lib/directives/index.d.ts +1 -0
  413. package/lib/directives/index.d.ts.map +1 -0
  414. package/lib/directives/key-handler/key-handler.directive.d.ts +1 -0
  415. package/lib/directives/key-handler/key-handler.directive.d.ts.map +1 -0
  416. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts +1 -0
  417. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts.map +1 -0
  418. package/lib/index.d.ts +1 -0
  419. package/lib/index.d.ts.map +1 -0
  420. package/lib/kirby.module.d.ts +1 -0
  421. package/lib/kirby.module.d.ts.map +1 -0
  422. package/list/directives/index.d.ts +1 -0
  423. package/list/directives/index.d.ts.map +1 -0
  424. package/list/directives/infinite-scroll.directive.d.ts +1 -0
  425. package/list/directives/infinite-scroll.directive.d.ts.map +1 -0
  426. package/list/directives/list-item-color.directive.d.ts +1 -0
  427. package/list/directives/list-item-color.directive.d.ts.map +1 -0
  428. package/list/directives/scroll.model.d.ts +1 -0
  429. package/list/directives/scroll.model.d.ts.map +1 -0
  430. package/list/helpers/index.d.ts +1 -0
  431. package/list/helpers/index.d.ts.map +1 -0
  432. package/list/helpers/list-helper.d.ts +1 -0
  433. package/list/helpers/list-helper.d.ts.map +1 -0
  434. package/list/index.d.ts +1 -0
  435. package/list/kirbydesign-designsystem-list.d.ts.map +1 -0
  436. package/list/list-experimental/index.d.ts +1 -0
  437. package/list/list-experimental/index.d.ts.map +1 -0
  438. package/list/list-experimental/list-experimental.component.d.ts +1 -0
  439. package/list/list-experimental/list-experimental.component.d.ts.map +1 -0
  440. package/list/list-header/index.d.ts +1 -0
  441. package/list/list-header/index.d.ts.map +1 -0
  442. package/list/list-header/list-header.component.d.ts +1 -0
  443. package/list/list-header/list-header.component.d.ts.map +1 -0
  444. package/list/list-item/index.d.ts +1 -0
  445. package/list/list-item/index.d.ts.map +1 -0
  446. package/list/list-item/list-item.component.d.ts +1 -0
  447. package/list/list-item/list-item.component.d.ts.map +1 -0
  448. package/list/list-section-header/index.d.ts +1 -0
  449. package/list/list-section-header/index.d.ts.map +1 -0
  450. package/list/list-section-header/list-section-header.component.d.ts +1 -0
  451. package/list/list-section-header/list-section-header.component.d.ts.map +1 -0
  452. package/list/list-swipe-action.d.ts +1 -0
  453. package/list/list-swipe-action.d.ts.map +1 -0
  454. package/list/list-swipe-action.type.d.ts +1 -0
  455. package/list/list-swipe-action.type.d.ts.map +1 -0
  456. package/list/list.component.d.ts +1 -0
  457. package/list/list.component.d.ts.map +1 -0
  458. package/list/list.directive.d.ts +1 -0
  459. package/list/list.directive.d.ts.map +1 -0
  460. package/list/list.event.d.ts +1 -0
  461. package/list/list.event.d.ts.map +1 -0
  462. package/list/list.module.d.ts +1 -0
  463. package/list/list.module.d.ts.map +1 -0
  464. package/list/public_api.d.ts +1 -0
  465. package/list/public_api.d.ts.map +1 -0
  466. package/loading-overlay/index.d.ts +1 -0
  467. package/loading-overlay/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -0
  468. package/loading-overlay/loading-overlay.component.d.ts +1 -0
  469. package/loading-overlay/loading-overlay.component.d.ts.map +1 -0
  470. package/loading-overlay/loading-overlay.service.d.ts +1 -0
  471. package/loading-overlay/loading-overlay.service.d.ts.map +1 -0
  472. package/loading-overlay/public_api.d.ts +1 -0
  473. package/loading-overlay/public_api.d.ts.map +1 -0
  474. package/menu/index.d.ts +1 -0
  475. package/menu/kirbydesign-designsystem-menu.d.ts.map +1 -0
  476. package/menu/menu.component.d.ts +1 -0
  477. package/menu/menu.component.d.ts.map +1 -0
  478. package/menu/public_api.d.ts +1 -0
  479. package/menu/public_api.d.ts.map +1 -0
  480. package/modal/index.d.ts +1 -0
  481. package/modal/kirbydesign-designsystem-modal.d.ts.map +1 -0
  482. package/modal/modal/action-sheet/action-sheet.component.d.ts +1 -0
  483. package/modal/modal/action-sheet/action-sheet.component.d.ts.map +1 -0
  484. package/modal/modal/action-sheet/config/action-sheet-config.d.ts +1 -0
  485. package/modal/modal/action-sheet/config/action-sheet-config.d.ts.map +1 -0
  486. package/modal/modal/action-sheet/config/action-sheet-item.d.ts +1 -0
  487. package/modal/modal/action-sheet/config/action-sheet-item.d.ts.map +1 -0
  488. package/modal/modal/action-sheet/index.d.ts +1 -0
  489. package/modal/modal/action-sheet/index.d.ts.map +1 -0
  490. package/modal/modal/alert/alert.component.d.ts +1 -0
  491. package/modal/modal/alert/alert.component.d.ts.map +1 -0
  492. package/modal/modal/alert/config/alert-config.d.ts +1 -0
  493. package/modal/modal/alert/config/alert-config.d.ts.map +1 -0
  494. package/modal/modal/alert/index.d.ts +1 -0
  495. package/modal/modal/alert/index.d.ts.map +1 -0
  496. package/modal/modal/footer/modal-footer.component.d.ts +1 -0
  497. package/modal/modal/footer/modal-footer.component.d.ts.map +1 -0
  498. package/modal/modal/index.d.ts +1 -0
  499. package/modal/modal/index.d.ts.map +1 -0
  500. package/modal/modal/modal-component/modal.component.d.ts +1 -0
  501. package/modal/modal/modal-component/modal.component.d.ts.map +1 -0
  502. package/modal/modal/services/action-sheet.helper.d.ts +1 -0
  503. package/modal/modal/services/action-sheet.helper.d.ts.map +1 -0
  504. package/modal/modal/services/alert.helper.d.ts +1 -0
  505. package/modal/modal/services/alert.helper.d.ts.map +1 -0
  506. package/modal/modal/services/can-dismiss-modal-guard.d.ts +1 -0
  507. package/modal/modal/services/can-dismiss-modal-guard.d.ts.map +1 -0
  508. package/modal/modal/services/can-dismiss.helper.d.ts +1 -0
  509. package/modal/modal/services/can-dismiss.helper.d.ts.map +1 -0
  510. package/modal/modal/services/index.d.ts +1 -0
  511. package/modal/modal/services/index.d.ts.map +1 -0
  512. package/modal/modal/services/modal-animation-builder.service.d.ts +1 -0
  513. package/modal/modal/services/modal-animation-builder.service.d.ts.map +1 -0
  514. package/modal/modal/services/modal.controller.d.ts +1 -0
  515. package/modal/modal/services/modal.controller.d.ts.map +1 -0
  516. package/modal/modal/services/modal.helper.d.ts +1 -0
  517. package/modal/modal/services/modal.helper.d.ts.map +1 -0
  518. package/modal/modal-navigation.service.d.ts +1 -0
  519. package/modal/modal-navigation.service.d.ts.map +1 -0
  520. package/modal/modal-wrapper/compact/index.d.ts +1 -0
  521. package/modal/modal-wrapper/compact/index.d.ts.map +1 -0
  522. package/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +1 -0
  523. package/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts.map +1 -0
  524. package/modal/modal-wrapper/config/drawer-supplementary-action.d.ts +1 -0
  525. package/modal/modal-wrapper/config/drawer-supplementary-action.d.ts.map +1 -0
  526. package/modal/modal-wrapper/config/index.d.ts +1 -0
  527. package/modal/modal-wrapper/config/index.d.ts.map +1 -0
  528. package/modal/modal-wrapper/config/modal-config.d.ts +1 -0
  529. package/modal/modal-wrapper/config/modal-config.d.ts.map +1 -0
  530. package/modal/modal-wrapper/config/modal-config.helper.d.ts +1 -0
  531. package/modal/modal-wrapper/config/modal-config.helper.d.ts.map +1 -0
  532. package/modal/modal-wrapper/index.d.ts +1 -0
  533. package/modal/modal-wrapper/index.d.ts.map +1 -0
  534. package/modal/modal-wrapper/modal-elements-mover.delegate.d.ts +1 -0
  535. package/modal/modal-wrapper/modal-elements-mover.delegate.d.ts.map +1 -0
  536. package/modal/modal-wrapper/modal-wrapper.component.d.ts +1 -0
  537. package/modal/modal-wrapper/modal-wrapper.component.d.ts.map +1 -0
  538. package/modal/modal.interfaces.d.ts +1 -0
  539. package/modal/modal.interfaces.d.ts.map +1 -0
  540. package/modal/public_api.d.ts +1 -0
  541. package/modal/public_api.d.ts.map +1 -0
  542. package/package.json +49 -156
  543. package/page/index.d.ts +1 -0
  544. package/page/kirbydesign-designsystem-page.d.ts.map +1 -0
  545. package/page/page-footer/page-footer.component.d.ts +1 -0
  546. package/page/page-footer/page-footer.component.d.ts.map +1 -0
  547. package/page/page.component.d.ts +1 -0
  548. package/page/page.component.d.ts.map +1 -0
  549. package/page/page.module.d.ts +1 -0
  550. package/page/page.module.d.ts.map +1 -0
  551. package/page/public_api.d.ts +1 -0
  552. package/page/public_api.d.ts.map +1 -0
  553. package/popover/index.d.ts +1 -0
  554. package/popover/kirbydesign-designsystem-popover.d.ts.map +1 -0
  555. package/popover/popover.component.d.ts +1 -0
  556. package/popover/popover.component.d.ts.map +1 -0
  557. package/popover/public_api.d.ts +1 -0
  558. package/popover/public_api.d.ts.map +1 -0
  559. package/progress-circle/index.d.ts +1 -0
  560. package/progress-circle/kirbydesign-designsystem-progress-circle.d.ts.map +1 -0
  561. package/progress-circle/progress-circle-ring.component.d.ts +1 -0
  562. package/progress-circle/progress-circle-ring.component.d.ts.map +1 -0
  563. package/progress-circle/progress-circle.component.d.ts +1 -0
  564. package/progress-circle/progress-circle.component.d.ts.map +1 -0
  565. package/progress-circle/public_api.d.ts +1 -0
  566. package/progress-circle/public_api.d.ts.map +1 -0
  567. package/public-api.d.ts +1 -0
  568. package/public-api.d.ts.map +1 -0
  569. package/radio/index.d.ts +1 -0
  570. package/radio/kirbydesign-designsystem-radio.d.ts.map +1 -0
  571. package/radio/public_api.d.ts +1 -0
  572. package/radio/public_api.d.ts.map +1 -0
  573. package/radio/radio-group/radio-group.component.d.ts +1 -0
  574. package/radio/radio-group/radio-group.component.d.ts.map +1 -0
  575. package/radio/radio-module.d.ts +1 -0
  576. package/radio/radio-module.d.ts.map +1 -0
  577. package/radio/radio.component.d.ts +1 -0
  578. package/radio/radio.component.d.ts.map +1 -0
  579. package/range/index.d.ts +1 -0
  580. package/range/kirbydesign-designsystem-range.d.ts.map +1 -0
  581. package/range/public_api.d.ts +1 -0
  582. package/range/public_api.d.ts.map +1 -0
  583. package/range/range.component.d.ts +1 -0
  584. package/range/range.component.d.ts.map +1 -0
  585. package/reorder-list/index.d.ts +1 -0
  586. package/reorder-list/kirbydesign-designsystem-reorder-list.d.ts.map +1 -0
  587. package/reorder-list/public_api.d.ts +1 -0
  588. package/reorder-list/public_api.d.ts.map +1 -0
  589. package/reorder-list/reorder-event.d.ts +1 -0
  590. package/reorder-list/reorder-event.d.ts.map +1 -0
  591. package/reorder-list/reorder-list.component.d.ts +1 -0
  592. package/reorder-list/reorder-list.component.d.ts.map +1 -0
  593. package/router-outlet/index.d.ts +1 -0
  594. package/router-outlet/kirbydesign-designsystem-router-outlet.d.ts.map +1 -0
  595. package/router-outlet/public_api.d.ts +1 -0
  596. package/router-outlet/public_api.d.ts.map +1 -0
  597. package/router-outlet/router-outlet.component.d.ts +1 -0
  598. package/router-outlet/router-outlet.component.d.ts.map +1 -0
  599. package/router-outlet/router-outlet.module.d.ts +1 -0
  600. package/router-outlet/router-outlet.module.d.ts.map +1 -0
  601. package/section-header/index.d.ts +1 -0
  602. package/section-header/kirbydesign-designsystem-section-header.d.ts.map +1 -0
  603. package/section-header/public_api.d.ts +1 -0
  604. package/section-header/public_api.d.ts.map +1 -0
  605. package/section-header/section-header.component.d.ts +1 -0
  606. package/section-header/section-header.component.d.ts.map +1 -0
  607. package/shared/component-configuration.d.ts +1 -0
  608. package/shared/component-configuration.d.ts.map +1 -0
  609. package/shared/component-loader.directive.d.ts +1 -0
  610. package/shared/component-loader.directive.d.ts.map +1 -0
  611. package/shared/controls/label-helpers.d.ts +1 -0
  612. package/shared/controls/label-helpers.d.ts.map +1 -0
  613. package/shared/dynamic-component.d.ts +1 -0
  614. package/shared/dynamic-component.d.ts.map +1 -0
  615. package/shared/fit-heading/fit-heading.directive.d.ts +1 -0
  616. package/shared/fit-heading/fit-heading.directive.d.ts.map +1 -0
  617. package/shared/fit-heading/index.d.ts +1 -0
  618. package/shared/fit-heading/index.d.ts.map +1 -0
  619. package/shared/floating/floating.directive.d.ts +1 -0
  620. package/shared/floating/floating.directive.d.ts.map +1 -0
  621. package/shared/floating/index.d.ts +1 -0
  622. package/shared/floating/kirbydesign-designsystem-shared-floating.d.ts.map +1 -0
  623. package/shared/floating/public_api.d.ts +1 -0
  624. package/shared/floating/public_api.d.ts.map +1 -0
  625. package/shared/index.d.ts +1 -0
  626. package/shared/kirbydesign-designsystem-shared.d.ts.map +1 -0
  627. package/shared/portal/index.d.ts +1 -0
  628. package/shared/portal/kirbydesign-designsystem-shared-portal.d.ts.map +1 -0
  629. package/shared/portal/portal.directive.d.ts +1 -0
  630. package/shared/portal/portal.directive.d.ts.map +1 -0
  631. package/shared/portal/public_api.d.ts +1 -0
  632. package/shared/portal/public_api.d.ts.map +1 -0
  633. package/shared/public_api.d.ts +1 -0
  634. package/shared/public_api.d.ts.map +1 -0
  635. package/shared/resize-observer/resize-observer.factory.d.ts +1 -0
  636. package/shared/resize-observer/resize-observer.factory.d.ts.map +1 -0
  637. package/shared/resize-observer/resize-observer.service.d.ts +1 -0
  638. package/shared/resize-observer/resize-observer.service.d.ts.map +1 -0
  639. package/shared/theme-color/theme-color.directive.d.ts +1 -0
  640. package/shared/theme-color/theme-color.directive.d.ts.map +1 -0
  641. package/shared/translation/translation.interface.d.ts +1 -0
  642. package/shared/translation/translation.interface.d.ts.map +1 -0
  643. package/shared/translation/translation.service.d.ts +1 -0
  644. package/shared/translation/translation.service.d.ts.map +1 -0
  645. package/shared/translation/translations/da.d.ts +1 -0
  646. package/shared/translation/translations/da.d.ts.map +1 -0
  647. package/shared/translation/translations/en.d.ts +1 -0
  648. package/shared/translation/translations/en.d.ts.map +1 -0
  649. package/slide/index.d.ts +1 -0
  650. package/slide/kirbydesign-designsystem-slide.d.ts.map +1 -0
  651. package/slide/public_api.d.ts +1 -0
  652. package/slide/public_api.d.ts.map +1 -0
  653. package/slide/slide-stretch-height.directive.d.ts +1 -0
  654. package/slide/slide-stretch-height.directive.d.ts.map +1 -0
  655. package/slide/slide.directive.d.ts +1 -0
  656. package/slide/slide.directive.d.ts.map +1 -0
  657. package/slide/slide.module.d.ts +1 -0
  658. package/slide/slide.module.d.ts.map +1 -0
  659. package/slide/slides.component.d.ts +1 -0
  660. package/slide/slides.component.d.ts.map +1 -0
  661. package/slide-button/index.d.ts +1 -0
  662. package/slide-button/kirbydesign-designsystem-slide-button.d.ts.map +1 -0
  663. package/slide-button/public_api.d.ts +1 -0
  664. package/slide-button/public_api.d.ts.map +1 -0
  665. package/slide-button/slide-button.component.d.ts +1 -0
  666. package/slide-button/slide-button.component.d.ts.map +1 -0
  667. package/spinner/index.d.ts +1 -0
  668. package/spinner/kirbydesign-designsystem-spinner.d.ts.map +1 -0
  669. package/spinner/public_api.d.ts +1 -0
  670. package/spinner/public_api.d.ts.map +1 -0
  671. package/spinner/spinner.component.d.ts +1 -0
  672. package/spinner/spinner.component.d.ts.map +1 -0
  673. package/spinner/spinner.module.d.ts +1 -0
  674. package/spinner/spinner.module.d.ts.map +1 -0
  675. package/tab-navigation/index.d.ts +1 -0
  676. package/tab-navigation/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -0
  677. package/tab-navigation/public_api.d.ts +1 -0
  678. package/tab-navigation/public_api.d.ts.map +1 -0
  679. package/tab-navigation/tab-navigation/tab-navigation.component.d.ts +1 -0
  680. package/tab-navigation/tab-navigation/tab-navigation.component.d.ts.map +1 -0
  681. package/tab-navigation/tab-navigation-item/tab-navigation-item.component.d.ts +1 -0
  682. package/tab-navigation/tab-navigation-item/tab-navigation-item.component.d.ts.map +1 -0
  683. package/tab-navigation/tab-navigation.module.d.ts +1 -0
  684. package/tab-navigation/tab-navigation.module.d.ts.map +1 -0
  685. package/tabs/index.d.ts +1 -0
  686. package/tabs/kirbydesign-designsystem-tabs.d.ts.map +1 -0
  687. package/tabs/public_api.d.ts +1 -0
  688. package/tabs/public_api.d.ts.map +1 -0
  689. package/tabs/tab-button/tab-button.component.d.ts +1 -0
  690. package/tabs/tab-button/tab-button.component.d.ts.map +1 -0
  691. package/tabs/tab-button/tab-button.events.d.ts +1 -0
  692. package/tabs/tab-button/tab-button.events.d.ts.map +1 -0
  693. package/tabs/tabs.component.d.ts +1 -0
  694. package/tabs/tabs.component.d.ts.map +1 -0
  695. package/tabs/tabs.module.d.ts +1 -0
  696. package/tabs/tabs.module.d.ts.map +1 -0
  697. package/tabs/tabs.service.d.ts +1 -0
  698. package/tabs/tabs.service.d.ts.map +1 -0
  699. package/testing/element-css-custom-matchers.d.ts +1 -0
  700. package/testing/element-css-custom-matchers.d.ts.map +1 -0
  701. package/testing/index.d.ts +1 -0
  702. package/testing/kirbydesign-designsystem-testing.d.ts.map +1 -0
  703. package/testing/public_api.d.ts +1 -0
  704. package/testing/public_api.d.ts.map +1 -0
  705. package/testing/test-helper.d.ts +1 -0
  706. package/testing/test-helper.d.ts.map +1 -0
  707. package/testing-base/index.d.ts +1 -0
  708. package/testing-base/kirbydesign-designsystem-testing-base.d.ts.map +1 -0
  709. package/testing-base/lib/components/index.d.ts +1 -0
  710. package/testing-base/lib/components/index.d.ts.map +1 -0
  711. package/testing-base/lib/components/mock.accordion-item.component.d.ts +2 -1
  712. package/testing-base/lib/components/mock.accordion-item.component.d.ts.map +1 -0
  713. package/testing-base/lib/components/mock.action-group.component.d.ts +2 -1
  714. package/testing-base/lib/components/mock.action-group.component.d.ts.map +1 -0
  715. package/testing-base/lib/components/mock.action-sheet.component.d.ts +2 -1
  716. package/testing-base/lib/components/mock.action-sheet.component.d.ts.map +1 -0
  717. package/testing-base/lib/components/mock.alert.component.d.ts +2 -1
  718. package/testing-base/lib/components/mock.alert.component.d.ts.map +1 -0
  719. package/testing-base/lib/components/mock.avatar.component.d.ts +2 -1
  720. package/testing-base/lib/components/mock.avatar.component.d.ts.map +1 -0
  721. package/testing-base/lib/components/mock.badge.component.d.ts +2 -1
  722. package/testing-base/lib/components/mock.badge.component.d.ts.map +1 -0
  723. package/testing-base/lib/components/mock.base-chart.component.d.ts +2 -1
  724. package/testing-base/lib/components/mock.base-chart.component.d.ts.map +1 -0
  725. package/testing-base/lib/components/mock.button.component.d.ts +2 -1
  726. package/testing-base/lib/components/mock.button.component.d.ts.map +1 -0
  727. package/testing-base/lib/components/mock.calendar.component.d.ts +2 -1
  728. package/testing-base/lib/components/mock.calendar.component.d.ts.map +1 -0
  729. package/testing-base/lib/components/mock.card-footer.component.d.ts +2 -1
  730. package/testing-base/lib/components/mock.card-footer.component.d.ts.map +1 -0
  731. package/testing-base/lib/components/mock.card-header.component.d.ts +2 -1
  732. package/testing-base/lib/components/mock.card-header.component.d.ts.map +1 -0
  733. package/testing-base/lib/components/mock.card.component.d.ts +2 -1
  734. package/testing-base/lib/components/mock.card.component.d.ts.map +1 -0
  735. package/testing-base/lib/components/mock.chart.component.d.ts +2 -1
  736. package/testing-base/lib/components/mock.chart.component.d.ts.map +1 -0
  737. package/testing-base/lib/components/mock.checkbox.component.d.ts +2 -1
  738. package/testing-base/lib/components/mock.checkbox.component.d.ts.map +1 -0
  739. package/testing-base/lib/components/mock.divider.component.d.ts +2 -1
  740. package/testing-base/lib/components/mock.divider.component.d.ts.map +1 -0
  741. package/testing-base/lib/components/mock.dropdown.component.d.ts +2 -1
  742. package/testing-base/lib/components/mock.dropdown.component.d.ts.map +1 -0
  743. package/testing-base/lib/components/mock.empty-state.component.d.ts +2 -1
  744. package/testing-base/lib/components/mock.empty-state.component.d.ts.map +1 -0
  745. package/testing-base/lib/components/mock.fab-sheet.component.d.ts +2 -1
  746. package/testing-base/lib/components/mock.fab-sheet.component.d.ts.map +1 -0
  747. package/testing-base/lib/components/mock.flag.component.d.ts +2 -1
  748. package/testing-base/lib/components/mock.flag.component.d.ts.map +1 -0
  749. package/testing-base/lib/components/mock.form-field-message.component.d.ts +2 -1
  750. package/testing-base/lib/components/mock.form-field-message.component.d.ts.map +1 -0
  751. package/testing-base/lib/components/mock.form-field.component.d.ts +2 -1
  752. package/testing-base/lib/components/mock.form-field.component.d.ts.map +1 -0
  753. package/testing-base/lib/components/mock.header.component.d.ts +4 -3
  754. package/testing-base/lib/components/mock.header.component.d.ts.map +1 -0
  755. package/testing-base/lib/components/mock.icon.component.d.ts +2 -1
  756. package/testing-base/lib/components/mock.icon.component.d.ts.map +1 -0
  757. package/testing-base/lib/components/mock.input-counter.component.d.ts +2 -1
  758. package/testing-base/lib/components/mock.input-counter.component.d.ts.map +1 -0
  759. package/testing-base/lib/components/mock.input.component.d.ts +2 -1
  760. package/testing-base/lib/components/mock.input.component.d.ts.map +1 -0
  761. package/testing-base/lib/components/mock.item-group.component.d.ts +2 -1
  762. package/testing-base/lib/components/mock.item-group.component.d.ts.map +1 -0
  763. package/testing-base/lib/components/mock.item-sliding.component.d.ts +2 -1
  764. package/testing-base/lib/components/mock.item-sliding.component.d.ts.map +1 -0
  765. package/testing-base/lib/components/mock.item.component.d.ts +2 -1
  766. package/testing-base/lib/components/mock.item.component.d.ts.map +1 -0
  767. package/testing-base/lib/components/mock.kirby-app.component.d.ts +2 -1
  768. package/testing-base/lib/components/mock.kirby-app.component.d.ts.map +1 -0
  769. package/testing-base/lib/components/mock.label.component.d.ts +2 -1
  770. package/testing-base/lib/components/mock.label.component.d.ts.map +1 -0
  771. package/testing-base/lib/components/mock.list-experimental.component.d.ts +2 -1
  772. package/testing-base/lib/components/mock.list-experimental.component.d.ts.map +1 -0
  773. package/testing-base/lib/components/mock.list-header.component.d.ts +2 -1
  774. package/testing-base/lib/components/mock.list-header.component.d.ts.map +1 -0
  775. package/testing-base/lib/components/mock.list-item.component.d.ts +2 -1
  776. package/testing-base/lib/components/mock.list-item.component.d.ts.map +1 -0
  777. package/testing-base/lib/components/mock.list-section-header.component.d.ts +2 -1
  778. package/testing-base/lib/components/mock.list-section-header.component.d.ts.map +1 -0
  779. package/testing-base/lib/components/mock.list.component.d.ts +2 -1
  780. package/testing-base/lib/components/mock.list.component.d.ts.map +1 -0
  781. package/testing-base/lib/components/mock.loading-overlay.component.d.ts +2 -1
  782. package/testing-base/lib/components/mock.loading-overlay.component.d.ts.map +1 -0
  783. package/testing-base/lib/components/mock.menu.component.d.ts +2 -1
  784. package/testing-base/lib/components/mock.menu.component.d.ts.map +1 -0
  785. package/testing-base/lib/components/mock.modal-compact-wrapper.component.d.ts +2 -1
  786. package/testing-base/lib/components/mock.modal-compact-wrapper.component.d.ts.map +1 -0
  787. package/testing-base/lib/components/mock.modal-footer.component.d.ts +2 -1
  788. package/testing-base/lib/components/mock.modal-footer.component.d.ts.map +1 -0
  789. package/testing-base/lib/components/mock.modal-wrapper.component.d.ts +2 -1
  790. package/testing-base/lib/components/mock.modal-wrapper.component.d.ts.map +1 -0
  791. package/testing-base/lib/components/mock.page-footer.component.d.ts +2 -1
  792. package/testing-base/lib/components/mock.page-footer.component.d.ts.map +1 -0
  793. package/testing-base/lib/components/mock.page.component.d.ts +12 -11
  794. package/testing-base/lib/components/mock.page.component.d.ts.map +1 -0
  795. package/testing-base/lib/components/mock.popover.component.d.ts +2 -1
  796. package/testing-base/lib/components/mock.popover.component.d.ts.map +1 -0
  797. package/testing-base/lib/components/mock.progress-circle-ring.component.d.ts +2 -1
  798. package/testing-base/lib/components/mock.progress-circle-ring.component.d.ts.map +1 -0
  799. package/testing-base/lib/components/mock.progress-circle.component.d.ts +2 -1
  800. package/testing-base/lib/components/mock.progress-circle.component.d.ts.map +1 -0
  801. package/testing-base/lib/components/mock.radio-group.component.d.ts +2 -1
  802. package/testing-base/lib/components/mock.radio-group.component.d.ts.map +1 -0
  803. package/testing-base/lib/components/mock.radio.component.d.ts +2 -1
  804. package/testing-base/lib/components/mock.radio.component.d.ts.map +1 -0
  805. package/testing-base/lib/components/mock.range.component.d.ts +2 -1
  806. package/testing-base/lib/components/mock.range.component.d.ts.map +1 -0
  807. package/testing-base/lib/components/mock.reorder-list.component.d.ts +2 -1
  808. package/testing-base/lib/components/mock.reorder-list.component.d.ts.map +1 -0
  809. package/testing-base/lib/components/mock.router-outlet.component.d.ts +2 -1
  810. package/testing-base/lib/components/mock.router-outlet.component.d.ts.map +1 -0
  811. package/testing-base/lib/components/mock.section-header.component.d.ts +2 -1
  812. package/testing-base/lib/components/mock.section-header.component.d.ts.map +1 -0
  813. package/testing-base/lib/components/mock.segmented-control.component.d.ts +2 -1
  814. package/testing-base/lib/components/mock.segmented-control.component.d.ts.map +1 -0
  815. package/testing-base/lib/components/mock.slide-button.component.d.ts +2 -1
  816. package/testing-base/lib/components/mock.slide-button.component.d.ts.map +1 -0
  817. package/testing-base/lib/components/mock.slides.component.d.ts +2 -1
  818. package/testing-base/lib/components/mock.slides.component.d.ts.map +1 -0
  819. package/testing-base/lib/components/mock.spinner.component.d.ts +2 -1
  820. package/testing-base/lib/components/mock.spinner.component.d.ts.map +1 -0
  821. package/testing-base/lib/components/mock.stock-chart.component.d.ts +2 -1
  822. package/testing-base/lib/components/mock.stock-chart.component.d.ts.map +1 -0
  823. package/testing-base/lib/components/mock.tab-button.component.d.ts +2 -1
  824. package/testing-base/lib/components/mock.tab-button.component.d.ts.map +1 -0
  825. package/testing-base/lib/components/mock.tab-navigation-item.component.d.ts +2 -1
  826. package/testing-base/lib/components/mock.tab-navigation-item.component.d.ts.map +1 -0
  827. package/testing-base/lib/components/mock.tab-navigation.component.d.ts +2 -1
  828. package/testing-base/lib/components/mock.tab-navigation.component.d.ts.map +1 -0
  829. package/testing-base/lib/components/mock.tabs.component.d.ts +2 -1
  830. package/testing-base/lib/components/mock.tabs.component.d.ts.map +1 -0
  831. package/testing-base/lib/components/mock.textarea.component.d.ts +2 -1
  832. package/testing-base/lib/components/mock.textarea.component.d.ts.map +1 -0
  833. package/testing-base/lib/components/mock.toggle-button.component.d.ts +2 -1
  834. package/testing-base/lib/components/mock.toggle-button.component.d.ts.map +1 -0
  835. package/testing-base/lib/components/mock.toggle.component.d.ts +2 -1
  836. package/testing-base/lib/components/mock.toggle.component.d.ts.map +1 -0
  837. package/testing-base/lib/directives/index.d.ts +1 -0
  838. package/testing-base/lib/directives/index.d.ts.map +1 -0
  839. package/testing-base/lib/directives/mock.accordion.directive.d.ts +2 -1
  840. package/testing-base/lib/directives/mock.accordion.directive.d.ts.map +1 -0
  841. package/testing-base/lib/directives/mock.affix.directive.d.ts +2 -1
  842. package/testing-base/lib/directives/mock.affix.directive.d.ts.map +1 -0
  843. package/testing-base/lib/directives/mock.card-as-button.directive.d.ts +2 -1
  844. package/testing-base/lib/directives/mock.card-as-button.directive.d.ts.map +1 -0
  845. package/testing-base/lib/directives/mock.component-loader.directive.d.ts +2 -1
  846. package/testing-base/lib/directives/mock.component-loader.directive.d.ts.map +1 -0
  847. package/testing-base/lib/directives/mock.date-input.directive.d.ts +2 -1
  848. package/testing-base/lib/directives/mock.date-input.directive.d.ts.map +1 -0
  849. package/testing-base/lib/directives/mock.decimal-mask.directive.d.ts +2 -1
  850. package/testing-base/lib/directives/mock.decimal-mask.directive.d.ts.map +1 -0
  851. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts +2 -1
  852. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts.map +1 -0
  853. package/testing-base/lib/directives/mock.floating.directive.d.ts +2 -1
  854. package/testing-base/lib/directives/mock.floating.directive.d.ts.map +1 -0
  855. package/testing-base/lib/directives/mock.infinite-scroll.directive.d.ts +2 -1
  856. package/testing-base/lib/directives/mock.infinite-scroll.directive.d.ts.map +1 -0
  857. package/testing-base/lib/directives/mock.key-handler.directive.d.ts +2 -1
  858. package/testing-base/lib/directives/mock.key-handler.directive.d.ts.map +1 -0
  859. package/testing-base/lib/directives/mock.list-item-color.directive.d.ts +2 -1
  860. package/testing-base/lib/directives/mock.list-item-color.directive.d.ts.map +1 -0
  861. package/testing-base/lib/directives/mock.list.directive.d.ts +5 -4
  862. package/testing-base/lib/directives/mock.list.directive.d.ts.map +1 -0
  863. package/testing-base/lib/directives/mock.modal-router-link.directive.d.ts +2 -1
  864. package/testing-base/lib/directives/mock.modal-router-link.directive.d.ts.map +1 -0
  865. package/testing-base/lib/directives/mock.portal.directive.d.ts +2 -1
  866. package/testing-base/lib/directives/mock.portal.directive.d.ts.map +1 -0
  867. package/testing-base/lib/directives/mock.slide.directive.d.ts +2 -1
  868. package/testing-base/lib/directives/mock.slide.directive.d.ts.map +1 -0
  869. package/testing-base/lib/directives/mock.theme-color.directive.d.ts +2 -1
  870. package/testing-base/lib/directives/mock.theme-color.directive.d.ts.map +1 -0
  871. package/testing-base/lib/index.d.ts +1 -0
  872. package/testing-base/lib/index.d.ts.map +1 -0
  873. package/testing-base/lib/kirby-testing-base.module.d.ts +2 -1
  874. package/testing-base/lib/kirby-testing-base.module.d.ts.map +1 -0
  875. package/testing-base/lib/mock-components.d.ts +1 -0
  876. package/testing-base/lib/mock-components.d.ts.map +1 -0
  877. package/testing-base/lib/mock-directives.d.ts +1 -0
  878. package/testing-base/lib/mock-directives.d.ts.map +1 -0
  879. package/testing-base/public_api.d.ts +1 -0
  880. package/testing-base/public_api.d.ts.map +1 -0
  881. package/testing-jasmine/index.d.ts +1 -0
  882. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -0
  883. package/testing-jasmine/lib/kirby-testing.module.d.ts +1 -0
  884. package/testing-jasmine/lib/kirby-testing.module.d.ts.map +1 -0
  885. package/testing-jasmine/lib/mock-providers.d.ts +1 -0
  886. package/testing-jasmine/lib/mock-providers.d.ts.map +1 -0
  887. package/testing-jasmine/public_api.d.ts +1 -0
  888. package/testing-jasmine/public_api.d.ts.map +1 -0
  889. package/testing-jest/index.d.ts +1 -0
  890. package/testing-jest/kirbydesign-designsystem-testing-jest.d.ts.map +1 -0
  891. package/testing-jest/lib/kirby-testing.module.d.ts +1 -0
  892. package/testing-jest/lib/kirby-testing.module.d.ts.map +1 -0
  893. package/testing-jest/lib/mock-providers.d.ts +1 -0
  894. package/testing-jest/lib/mock-providers.d.ts.map +1 -0
  895. package/testing-jest/public_api.d.ts +1 -0
  896. package/testing-jest/public_api.d.ts.map +1 -0
  897. package/toast/config/toast-config.d.ts +1 -0
  898. package/toast/config/toast-config.d.ts.map +1 -0
  899. package/toast/index.d.ts +1 -0
  900. package/toast/kirbydesign-designsystem-toast.d.ts.map +1 -0
  901. package/toast/public_api.d.ts +1 -0
  902. package/toast/public_api.d.ts.map +1 -0
  903. package/toast/services/indexs.d.ts +1 -0
  904. package/toast/services/indexs.d.ts.map +1 -0
  905. package/toast/services/toast.controller.d.ts +1 -0
  906. package/toast/services/toast.controller.d.ts.map +1 -0
  907. package/toast/services/toast.helper.d.ts +1 -0
  908. package/toast/services/toast.helper.d.ts.map +1 -0
  909. package/toggle/index.d.ts +1 -0
  910. package/toggle/kirbydesign-designsystem-toggle.d.ts.map +1 -0
  911. package/toggle/public_api.d.ts +1 -0
  912. package/toggle/public_api.d.ts.map +1 -0
  913. package/toggle/toggle.component.d.ts +1 -0
  914. package/toggle/toggle.component.d.ts.map +1 -0
  915. package/toggle-button/index.d.ts +1 -0
  916. package/toggle-button/kirbydesign-designsystem-toggle-button.d.ts.map +1 -0
  917. package/toggle-button/public_api.d.ts +1 -0
  918. package/toggle-button/public_api.d.ts.map +1 -0
  919. package/toggle-button/toggle-button.component.d.ts +6 -1
  920. package/toggle-button/toggle-button.component.d.ts.map +1 -0
  921. package/toggle-button/toggle-button.module.d.ts +1 -0
  922. package/toggle-button/toggle-button.module.d.ts.map +1 -0
  923. package/types/event-listener-dispose-fn.d.ts +1 -0
  924. package/types/event-listener-dispose-fn.d.ts.map +1 -0
  925. package/types/index.d.ts +1 -0
  926. package/types/kirbydesign-designsystem-types.d.ts.map +1 -0
  927. package/types/public_api.d.ts +1 -0
  928. package/types/public_api.d.ts.map +1 -0
  929. package/types/unobserve-fn.d.ts +1 -0
  930. package/types/unobserve-fn.d.ts.map +1 -0
  931. package/types/window-ref.d.ts +1 -0
  932. package/types/window-ref.d.ts.map +1 -0
  933. package/README.md +0 -7
  934. package/esm2022/accordion/accordion-item.component.mjs +0 -85
  935. package/esm2022/accordion/accordion.directive.mjs +0 -14
  936. package/esm2022/accordion/accordion.module.mjs +0 -20
  937. package/esm2022/accordion/kirbydesign-designsystem-accordion.mjs +0 -5
  938. package/esm2022/accordion/public_api.mjs +0 -4
  939. package/esm2022/action-group/action-group.component.mjs +0 -131
  940. package/esm2022/action-group/kirbydesign-designsystem-action-group.mjs +0 -5
  941. package/esm2022/action-group/public_api.mjs +0 -2
  942. package/esm2022/avatar/avatar.component.mjs +0 -51
  943. package/esm2022/avatar/kirbydesign-designsystem-avatar.mjs +0 -5
  944. package/esm2022/avatar/public_api.mjs +0 -2
  945. package/esm2022/badge/badge.component.mjs +0 -38
  946. package/esm2022/badge/kirbydesign-designsystem-badge.mjs +0 -5
  947. package/esm2022/badge/public_api.mjs +0 -2
  948. package/esm2022/button/button.component.mjs +0 -158
  949. package/esm2022/button/kirbydesign-designsystem-button.mjs +0 -5
  950. package/esm2022/button/public_api.mjs +0 -2
  951. package/esm2022/calendar/calendar.component.mjs +0 -514
  952. package/esm2022/calendar/interfaces/calendar-day.mjs +0 -2
  953. package/esm2022/calendar/interfaces/calendar-year-navigator-config.mjs +0 -2
  954. package/esm2022/calendar/kirbydesign-designsystem-calendar.mjs +0 -5
  955. package/esm2022/calendar/public_api.mjs +0 -2
  956. package/esm2022/card/card-as-button/card-as-button.directive.mjs +0 -64
  957. package/esm2022/card/card-flag-level.mjs +0 -2
  958. package/esm2022/card/card-footer/card-footer.component.mjs +0 -19
  959. package/esm2022/card/card-header/card-header.component.mjs +0 -35
  960. package/esm2022/card/card.component.mjs +0 -78
  961. package/esm2022/card/card.module.mjs +0 -34
  962. package/esm2022/card/kirbydesign-designsystem-card.mjs +0 -5
  963. package/esm2022/card/public_api.mjs +0 -7
  964. package/esm2022/chart/chart/chart.component.mjs +0 -18
  965. package/esm2022/chart/chart/index.mjs +0 -2
  966. package/esm2022/chart/chart-config/chart-bar-config/chart-bar-config.mjs +0 -43
  967. package/esm2022/chart/chart-config/chart-base-config.mjs +0 -4
  968. package/esm2022/chart/chart-config/chart-stock-config/chart-stock-config.mjs +0 -153
  969. package/esm2022/chart/chart-config/chart-stock-config/data-label-position/data-label-position.mjs +0 -48
  970. package/esm2022/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.mjs +0 -37
  971. package/esm2022/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.mjs +0 -2
  972. package/esm2022/chart/charts.module.mjs +0 -19
  973. package/esm2022/chart/kirbydesign-designsystem-chart.mjs +0 -5
  974. package/esm2022/chart/public_api.mjs +0 -7
  975. package/esm2022/chart/shared/base-chart/base-chart.component.mjs +0 -124
  976. package/esm2022/chart/shared/base-chart/index.mjs +0 -2
  977. package/esm2022/chart/shared/chart-config-service/chart-config.service.mjs +0 -75
  978. package/esm2022/chart/shared/chart-config-service/configs/annotations.config.mjs +0 -32
  979. package/esm2022/chart/shared/chart-config-service/configs/global-defaults.config.mjs +0 -65
  980. package/esm2022/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.mjs +0 -13
  981. package/esm2022/chart/shared/chart-config-service/configs/type.config.mjs +0 -207
  982. package/esm2022/chart/shared/chart-config-service/index.mjs +0 -2
  983. package/esm2022/chart/shared/chart-js-service/annotations.delegate.mjs +0 -35
  984. package/esm2022/chart/shared/chart-js-service/chart-js.service.mjs +0 -179
  985. package/esm2022/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.mjs +0 -194
  986. package/esm2022/chart/shared/chart-js-service/configured-chart-js.mjs +0 -22
  987. package/esm2022/chart/shared/chart-js-service/index.mjs +0 -3
  988. package/esm2022/chart/shared/chart-js-service/test-utils.mjs +0 -167
  989. package/esm2022/chart/shared/charts.types.mjs +0 -4
  990. package/esm2022/chart/shared/index.mjs +0 -5
  991. package/esm2022/chart/stock-chart/index.mjs +0 -2
  992. package/esm2022/chart/stock-chart/stock-chart-js.service.mjs +0 -100
  993. package/esm2022/chart/stock-chart/stock-chart.component.mjs +0 -22
  994. package/esm2022/checkbox/checkbox.component.mjs +0 -166
  995. package/esm2022/checkbox/kirbydesign-designsystem-checkbox.mjs +0 -5
  996. package/esm2022/checkbox/public_api.mjs +0 -2
  997. package/esm2022/data-table/data-table.module.mjs +0 -24
  998. package/esm2022/data-table/kirbydesign-designsystem-data-table.mjs +0 -5
  999. package/esm2022/data-table/public_api.mjs +0 -3
  1000. package/esm2022/data-table/sortable/sortable.component.mjs +0 -58
  1001. package/esm2022/divider/divider.component.mjs +0 -14
  1002. package/esm2022/divider/kirbydesign-designsystem-divider.mjs +0 -5
  1003. package/esm2022/divider/public_api.mjs +0 -2
  1004. package/esm2022/dropdown/dropdown.component.mjs +0 -611
  1005. package/esm2022/dropdown/dropdown.module.mjs +0 -47
  1006. package/esm2022/dropdown/dropdown.types.mjs +0 -12
  1007. package/esm2022/dropdown/keyboard-handler.service.mjs +0 -50
  1008. package/esm2022/dropdown/kirbydesign-designsystem-dropdown.mjs +0 -5
  1009. package/esm2022/dropdown/public_api.mjs +0 -6
  1010. package/esm2022/empty-state/empty-state.component.mjs +0 -69
  1011. package/esm2022/empty-state/empty-state.module.mjs +0 -21
  1012. package/esm2022/empty-state/kirbydesign-designsystem-empty-state.mjs +0 -5
  1013. package/esm2022/empty-state/public_api.mjs +0 -3
  1014. package/esm2022/fab-sheet/fab-sheet.component.mjs +0 -78
  1015. package/esm2022/fab-sheet/kirbydesign-designsystem-fab-sheet.mjs +0 -5
  1016. package/esm2022/fab-sheet/public_api.mjs +0 -2
  1017. package/esm2022/flag/flag.component.mjs +0 -30
  1018. package/esm2022/flag/kirbydesign-designsystem-flag.mjs +0 -5
  1019. package/esm2022/flag/public_api.mjs +0 -2
  1020. package/esm2022/form-field/directives/affix/affix.directive.mjs +0 -21
  1021. package/esm2022/form-field/directives/date/date-input.directive.mjs +0 -129
  1022. package/esm2022/form-field/directives/decimal-mask/decimal-mask.directive.mjs +0 -131
  1023. package/esm2022/form-field/form-field-message/form-field-message.component.mjs +0 -18
  1024. package/esm2022/form-field/form-field.component.mjs +0 -156
  1025. package/esm2022/form-field/form-field.module.mjs +0 -24
  1026. package/esm2022/form-field/input/input.component.mjs +0 -116
  1027. package/esm2022/form-field/input-counter/input-counter.component.mjs +0 -35
  1028. package/esm2022/form-field/kirbydesign-designsystem-form-field.mjs +0 -5
  1029. package/esm2022/form-field/public_api.mjs +0 -10
  1030. package/esm2022/form-field/textarea/textarea.component.mjs +0 -66
  1031. package/esm2022/header/header.component.mjs +0 -158
  1032. package/esm2022/header/header.module.mjs +0 -34
  1033. package/esm2022/header/kirbydesign-designsystem-header.mjs +0 -5
  1034. package/esm2022/header/public_api.mjs +0 -3
  1035. package/esm2022/helpers/chart-config-has-type.mjs +0 -10
  1036. package/esm2022/helpers/color-helper.mjs +0 -2
  1037. package/esm2022/helpers/content-mutation-observer.mjs +0 -50
  1038. package/esm2022/helpers/deep-copy.mjs +0 -52
  1039. package/esm2022/helpers/design-token-helper.mjs +0 -2
  1040. package/esm2022/helpers/element-ancestor-utils.mjs +0 -33
  1041. package/esm2022/helpers/ionic-element-part-helper.mjs +0 -25
  1042. package/esm2022/helpers/kirby-animation.mjs +0 -15
  1043. package/esm2022/helpers/kirbydesign-designsystem-helpers.mjs +0 -5
  1044. package/esm2022/helpers/line-clamp-helper.mjs +0 -31
  1045. package/esm2022/helpers/merge-deep.mjs +0 -38
  1046. package/esm2022/helpers/platform.service.mjs +0 -27
  1047. package/esm2022/helpers/public_api.mjs +0 -17
  1048. package/esm2022/helpers/scss/kirbydesign-designsystem-helpers-scss.mjs +0 -5
  1049. package/esm2022/helpers/scss/public_api.mjs +0 -2
  1050. package/esm2022/helpers/scss/scss-helper.mjs +0 -9
  1051. package/esm2022/helpers/string-helper.mjs +0 -2
  1052. package/esm2022/helpers/theme-color.type.mjs +0 -2
  1053. package/esm2022/helpers/unique-id-generator.helper.mjs +0 -19
  1054. package/esm2022/icon/icon-registry.service.mjs +0 -61
  1055. package/esm2022/icon/icon-settings.mjs +0 -2
  1056. package/esm2022/icon/icon.component.mjs +0 -62
  1057. package/esm2022/icon/icon.module.mjs +0 -19
  1058. package/esm2022/icon/kirby-icon-settings.mjs +0 -130
  1059. package/esm2022/icon/kirbydesign-designsystem-icon.mjs +0 -5
  1060. package/esm2022/icon/public_api.mjs +0 -6
  1061. package/esm2022/item/item.component.mjs +0 -74
  1062. package/esm2022/item/item.module.mjs +0 -22
  1063. package/esm2022/item/kirbydesign-designsystem-item.mjs +0 -5
  1064. package/esm2022/item/label/label.component.mjs +0 -23
  1065. package/esm2022/item/public_api.mjs +0 -4
  1066. package/esm2022/item-group/item-group.component.mjs +0 -18
  1067. package/esm2022/item-group/kirbydesign-designsystem-item-group.mjs +0 -5
  1068. package/esm2022/item-group/public_api.mjs +0 -2
  1069. package/esm2022/item-sliding/item-sliding.component.mjs +0 -38
  1070. package/esm2022/item-sliding/item-sliding.types.mjs +0 -2
  1071. package/esm2022/item-sliding/kirbydesign-designsystem-item-sliding.mjs +0 -5
  1072. package/esm2022/item-sliding/public_api.mjs +0 -3
  1073. package/esm2022/kirby-app/kirby-app.component.mjs +0 -35
  1074. package/esm2022/kirby-app/kirby-app.module.mjs +0 -19
  1075. package/esm2022/kirby-app/kirbydesign-designsystem-kirby-app.mjs +0 -5
  1076. package/esm2022/kirby-app/public_api.mjs +0 -3
  1077. package/esm2022/kirby-ionic-module/kirby-ionic.module.mjs +0 -23
  1078. package/esm2022/kirby-ionic-module/kirbydesign-designsystem-kirby-ionic-module.mjs +0 -5
  1079. package/esm2022/kirby-ionic-module/public_api.mjs +0 -2
  1080. package/esm2022/kirbydesign-designsystem.mjs +0 -5
  1081. package/esm2022/lib/components/index.mjs +0 -3
  1082. package/esm2022/lib/components/segmented-control/segment-item.mjs +0 -2
  1083. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +0 -166
  1084. package/esm2022/lib/directives/index.mjs +0 -3
  1085. package/esm2022/lib/directives/key-handler/key-handler.directive.mjs +0 -28
  1086. package/esm2022/lib/directives/modal-router-link/modal-router-link.directive.mjs +0 -35
  1087. package/esm2022/lib/index.mjs +0 -49
  1088. package/esm2022/lib/kirby.module.mjs +0 -339
  1089. package/esm2022/list/directives/index.mjs +0 -4
  1090. package/esm2022/list/directives/infinite-scroll.directive.mjs +0 -114
  1091. package/esm2022/list/directives/list-item-color.directive.mjs +0 -30
  1092. package/esm2022/list/directives/scroll.model.mjs +0 -2
  1093. package/esm2022/list/helpers/index.mjs +0 -2
  1094. package/esm2022/list/helpers/list-helper.mjs +0 -83
  1095. package/esm2022/list/kirbydesign-designsystem-list.mjs +0 -5
  1096. package/esm2022/list/list-experimental/index.mjs +0 -2
  1097. package/esm2022/list/list-experimental/list-experimental.component.mjs +0 -24
  1098. package/esm2022/list/list-header/index.mjs +0 -2
  1099. package/esm2022/list/list-header/list-header.component.mjs +0 -12
  1100. package/esm2022/list/list-item/index.mjs +0 -2
  1101. package/esm2022/list/list-item/list-item.component.mjs +0 -129
  1102. package/esm2022/list/list-section-header/index.mjs +0 -2
  1103. package/esm2022/list/list-section-header/list-section-header.component.mjs +0 -13
  1104. package/esm2022/list/list-swipe-action.mjs +0 -2
  1105. package/esm2022/list/list-swipe-action.type.mjs +0 -2
  1106. package/esm2022/list/list.component.mjs +0 -187
  1107. package/esm2022/list/list.directive.mjs +0 -43
  1108. package/esm2022/list/list.event.mjs +0 -2
  1109. package/esm2022/list/list.module.mjs +0 -93
  1110. package/esm2022/list/public_api.mjs +0 -12
  1111. package/esm2022/loading-overlay/kirbydesign-designsystem-loading-overlay.mjs +0 -5
  1112. package/esm2022/loading-overlay/loading-overlay.component.mjs +0 -26
  1113. package/esm2022/loading-overlay/loading-overlay.service.mjs +0 -49
  1114. package/esm2022/loading-overlay/public_api.mjs +0 -3
  1115. package/esm2022/menu/kirbydesign-designsystem-menu.mjs +0 -5
  1116. package/esm2022/menu/menu.component.mjs +0 -294
  1117. package/esm2022/menu/public_api.mjs +0 -2
  1118. package/esm2022/modal/kirbydesign-designsystem-modal.mjs +0 -5
  1119. package/esm2022/modal/modal/action-sheet/action-sheet.component.mjs +0 -45
  1120. package/esm2022/modal/modal/action-sheet/config/action-sheet-config.mjs +0 -2
  1121. package/esm2022/modal/modal/action-sheet/config/action-sheet-item.mjs +0 -2
  1122. package/esm2022/modal/modal/action-sheet/index.mjs +0 -4
  1123. package/esm2022/modal/modal/alert/alert.component.mjs +0 -76
  1124. package/esm2022/modal/modal/alert/config/alert-config.mjs +0 -2
  1125. package/esm2022/modal/modal/alert/index.mjs +0 -3
  1126. package/esm2022/modal/modal/footer/modal-footer.component.mjs +0 -38
  1127. package/esm2022/modal/modal/index.mjs +0 -7
  1128. package/esm2022/modal/modal/modal-component/modal.component.mjs +0 -152
  1129. package/esm2022/modal/modal/services/action-sheet.helper.mjs +0 -46
  1130. package/esm2022/modal/modal/services/alert.helper.mjs +0 -56
  1131. package/esm2022/modal/modal/services/can-dismiss-modal-guard.mjs +0 -31
  1132. package/esm2022/modal/modal/services/can-dismiss.helper.mjs +0 -29
  1133. package/esm2022/modal/modal/services/index.mjs +0 -7
  1134. package/esm2022/modal/modal/services/modal-animation-builder.service.mjs +0 -268
  1135. package/esm2022/modal/modal/services/modal.controller.mjs +0 -121
  1136. package/esm2022/modal/modal/services/modal.helper.mjs +0 -118
  1137. package/esm2022/modal/modal-navigation.service.mjs +0 -265
  1138. package/esm2022/modal/modal-wrapper/compact/index.mjs +0 -2
  1139. package/esm2022/modal/modal-wrapper/compact/modal-compact-wrapper.component.mjs +0 -89
  1140. package/esm2022/modal/modal-wrapper/config/drawer-supplementary-action.mjs +0 -3
  1141. package/esm2022/modal/modal-wrapper/config/index.mjs +0 -4
  1142. package/esm2022/modal/modal-wrapper/config/modal-config.helper.mjs +0 -3
  1143. package/esm2022/modal/modal-wrapper/config/modal-config.mjs +0 -2
  1144. package/esm2022/modal/modal-wrapper/index.mjs +0 -4
  1145. package/esm2022/modal/modal-wrapper/modal-elements-mover.delegate.mjs +0 -62
  1146. package/esm2022/modal/modal-wrapper/modal-wrapper.component.mjs +0 -543
  1147. package/esm2022/modal/modal.interfaces.mjs +0 -50
  1148. package/esm2022/modal/public_api.mjs +0 -5
  1149. package/esm2022/page/kirbydesign-designsystem-page.mjs +0 -5
  1150. package/esm2022/page/page-footer/page-footer.component.mjs +0 -35
  1151. package/esm2022/page/page.component.mjs +0 -734
  1152. package/esm2022/page/page.module.mjs +0 -107
  1153. package/esm2022/page/public_api.mjs +0 -4
  1154. package/esm2022/popover/kirbydesign-designsystem-popover.mjs +0 -5
  1155. package/esm2022/popover/popover.component.mjs +0 -159
  1156. package/esm2022/popover/public_api.mjs +0 -2
  1157. package/esm2022/progress-circle/kirbydesign-designsystem-progress-circle.mjs +0 -5
  1158. package/esm2022/progress-circle/progress-circle-ring.component.mjs +0 -62
  1159. package/esm2022/progress-circle/progress-circle.component.mjs +0 -88
  1160. package/esm2022/progress-circle/public_api.mjs +0 -3
  1161. package/esm2022/public-api.mjs +0 -2
  1162. package/esm2022/radio/kirbydesign-designsystem-radio.mjs +0 -5
  1163. package/esm2022/radio/public_api.mjs +0 -4
  1164. package/esm2022/radio/radio-group/radio-group.component.mjs +0 -252
  1165. package/esm2022/radio/radio-module.mjs +0 -21
  1166. package/esm2022/radio/radio.component.mjs +0 -80
  1167. package/esm2022/range/kirbydesign-designsystem-range.mjs +0 -5
  1168. package/esm2022/range/public_api.mjs +0 -2
  1169. package/esm2022/range/range.component.mjs +0 -136
  1170. package/esm2022/reorder-list/kirbydesign-designsystem-reorder-list.mjs +0 -5
  1171. package/esm2022/reorder-list/public_api.mjs +0 -3
  1172. package/esm2022/reorder-list/reorder-event.mjs +0 -14
  1173. package/esm2022/reorder-list/reorder-list.component.mjs +0 -80
  1174. package/esm2022/router-outlet/kirbydesign-designsystem-router-outlet.mjs +0 -5
  1175. package/esm2022/router-outlet/public_api.mjs +0 -6
  1176. package/esm2022/router-outlet/router-outlet.component.mjs +0 -19
  1177. package/esm2022/router-outlet/router-outlet.module.mjs +0 -19
  1178. package/esm2022/section-header/kirbydesign-designsystem-section-header.mjs +0 -5
  1179. package/esm2022/section-header/public_api.mjs +0 -2
  1180. package/esm2022/section-header/section-header.component.mjs +0 -13
  1181. package/esm2022/shared/component-configuration.mjs +0 -2
  1182. package/esm2022/shared/component-loader.directive.mjs +0 -36
  1183. package/esm2022/shared/controls/label-helpers.mjs +0 -23
  1184. package/esm2022/shared/dynamic-component.mjs +0 -2
  1185. package/esm2022/shared/fit-heading/fit-heading.directive.mjs +0 -107
  1186. package/esm2022/shared/fit-heading/index.mjs +0 -2
  1187. package/esm2022/shared/floating/floating.directive.mjs +0 -385
  1188. package/esm2022/shared/floating/kirbydesign-designsystem-shared-floating.mjs +0 -5
  1189. package/esm2022/shared/floating/public_api.mjs +0 -2
  1190. package/esm2022/shared/kirbydesign-designsystem-shared.mjs +0 -5
  1191. package/esm2022/shared/portal/kirbydesign-designsystem-shared-portal.mjs +0 -5
  1192. package/esm2022/shared/portal/portal.directive.mjs +0 -78
  1193. package/esm2022/shared/portal/public_api.mjs +0 -2
  1194. package/esm2022/shared/public_api.mjs +0 -10
  1195. package/esm2022/shared/resize-observer/resize-observer.factory.mjs +0 -18
  1196. package/esm2022/shared/resize-observer/resize-observer.service.mjs +0 -50
  1197. package/esm2022/shared/theme-color/theme-color.directive.mjs +0 -127
  1198. package/esm2022/shared/translation/translation.interface.mjs +0 -2
  1199. package/esm2022/shared/translation/translation.service.mjs +0 -37
  1200. package/esm2022/shared/translation/translations/da.mjs +0 -11
  1201. package/esm2022/shared/translation/translations/en.mjs +0 -11
  1202. package/esm2022/slide/kirbydesign-designsystem-slide.mjs +0 -5
  1203. package/esm2022/slide/public_api.mjs +0 -5
  1204. package/esm2022/slide/slide-stretch-height.directive.mjs +0 -19
  1205. package/esm2022/slide/slide.directive.mjs +0 -13
  1206. package/esm2022/slide/slide.module.mjs +0 -24
  1207. package/esm2022/slide/slides.component.mjs +0 -113
  1208. package/esm2022/slide-button/kirbydesign-designsystem-slide-button.mjs +0 -5
  1209. package/esm2022/slide-button/public_api.mjs +0 -2
  1210. package/esm2022/slide-button/slide-button.component.mjs +0 -138
  1211. package/esm2022/spinner/kirbydesign-designsystem-spinner.mjs +0 -5
  1212. package/esm2022/spinner/public_api.mjs +0 -3
  1213. package/esm2022/spinner/spinner.component.mjs +0 -11
  1214. package/esm2022/spinner/spinner.module.mjs +0 -19
  1215. package/esm2022/tab-navigation/kirbydesign-designsystem-tab-navigation.mjs +0 -5
  1216. package/esm2022/tab-navigation/public_api.mjs +0 -4
  1217. package/esm2022/tab-navigation/tab-navigation/tab-navigation.component.mjs +0 -136
  1218. package/esm2022/tab-navigation/tab-navigation-item/tab-navigation-item.component.mjs +0 -20
  1219. package/esm2022/tab-navigation/tab-navigation.module.mjs +0 -19
  1220. package/esm2022/tabs/kirbydesign-designsystem-tabs.mjs +0 -5
  1221. package/esm2022/tabs/public_api.mjs +0 -6
  1222. package/esm2022/tabs/tab-button/tab-button.component.mjs +0 -32
  1223. package/esm2022/tabs/tab-button/tab-button.events.mjs +0 -2
  1224. package/esm2022/tabs/tabs.component.mjs +0 -31
  1225. package/esm2022/tabs/tabs.module.mjs +0 -23
  1226. package/esm2022/tabs/tabs.service.mjs +0 -26
  1227. package/esm2022/testing/element-css-custom-matchers.mjs +0 -94
  1228. package/esm2022/testing/kirbydesign-designsystem-testing.mjs +0 -5
  1229. package/esm2022/testing/public_api.mjs +0 -3
  1230. package/esm2022/testing/test-helper.mjs +0 -155
  1231. package/esm2022/testing-base/kirbydesign-designsystem-testing-base.mjs +0 -5
  1232. package/esm2022/testing-base/lib/components/index.mjs +0 -65
  1233. package/esm2022/testing-base/lib/components/mock.accordion-item.component.mjs +0 -37
  1234. package/esm2022/testing-base/lib/components/mock.action-group.component.mjs +0 -35
  1235. package/esm2022/testing-base/lib/components/mock.action-sheet.component.mjs +0 -49
  1236. package/esm2022/testing-base/lib/components/mock.alert.component.mjs +0 -43
  1237. package/esm2022/testing-base/lib/components/mock.avatar.component.mjs +0 -45
  1238. package/esm2022/testing-base/lib/components/mock.badge.component.mjs +0 -33
  1239. package/esm2022/testing-base/lib/components/mock.base-chart.component.mjs +0 -43
  1240. package/esm2022/testing-base/lib/components/mock.button.component.mjs +0 -44
  1241. package/esm2022/testing-base/lib/components/mock.calendar.component.mjs +0 -76
  1242. package/esm2022/testing-base/lib/components/mock.card-footer.component.mjs +0 -31
  1243. package/esm2022/testing-base/lib/components/mock.card-header.component.mjs +0 -39
  1244. package/esm2022/testing-base/lib/components/mock.card.component.mjs +0 -41
  1245. package/esm2022/testing-base/lib/components/mock.chart.component.mjs +0 -34
  1246. package/esm2022/testing-base/lib/components/mock.checkbox.component.mjs +0 -46
  1247. package/esm2022/testing-base/lib/components/mock.divider.component.mjs +0 -31
  1248. package/esm2022/testing-base/lib/components/mock.dropdown.component.mjs +0 -60
  1249. package/esm2022/testing-base/lib/components/mock.empty-state.component.mjs +0 -35
  1250. package/esm2022/testing-base/lib/components/mock.fab-sheet.component.mjs +0 -33
  1251. package/esm2022/testing-base/lib/components/mock.flag.component.mjs +0 -33
  1252. package/esm2022/testing-base/lib/components/mock.form-field-message.component.mjs +0 -33
  1253. package/esm2022/testing-base/lib/components/mock.form-field.component.mjs +0 -36
  1254. package/esm2022/testing-base/lib/components/mock.header.component.mjs +0 -87
  1255. package/esm2022/testing-base/lib/components/mock.icon.component.mjs +0 -33
  1256. package/esm2022/testing-base/lib/components/mock.input-counter.component.mjs +0 -31
  1257. package/esm2022/testing-base/lib/components/mock.input.component.mjs +0 -48
  1258. package/esm2022/testing-base/lib/components/mock.item-group.component.mjs +0 -29
  1259. package/esm2022/testing-base/lib/components/mock.item-sliding.component.mjs +0 -33
  1260. package/esm2022/testing-base/lib/components/mock.item.component.mjs +0 -41
  1261. package/esm2022/testing-base/lib/components/mock.kirby-app.component.mjs +0 -29
  1262. package/esm2022/testing-base/lib/components/mock.label.component.mjs +0 -31
  1263. package/esm2022/testing-base/lib/components/mock.list-experimental.component.mjs +0 -29
  1264. package/esm2022/testing-base/lib/components/mock.list-header.component.mjs +0 -29
  1265. package/esm2022/testing-base/lib/components/mock.list-item.component.mjs +0 -51
  1266. package/esm2022/testing-base/lib/components/mock.list-section-header.component.mjs +0 -31
  1267. package/esm2022/testing-base/lib/components/mock.list.component.mjs +0 -65
  1268. package/esm2022/testing-base/lib/components/mock.loading-overlay.component.mjs +0 -35
  1269. package/esm2022/testing-base/lib/components/mock.menu.component.mjs +0 -54
  1270. package/esm2022/testing-base/lib/components/mock.modal-compact-wrapper.component.mjs +0 -31
  1271. package/esm2022/testing-base/lib/components/mock.modal-footer.component.mjs +0 -33
  1272. package/esm2022/testing-base/lib/components/mock.modal-wrapper.component.mjs +0 -37
  1273. package/esm2022/testing-base/lib/components/mock.page-footer.component.mjs +0 -31
  1274. package/esm2022/testing-base/lib/components/mock.page.component.mjs +0 -289
  1275. package/esm2022/testing-base/lib/components/mock.popover.component.mjs +0 -38
  1276. package/esm2022/testing-base/lib/components/mock.progress-circle-ring.component.mjs +0 -39
  1277. package/esm2022/testing-base/lib/components/mock.progress-circle.component.mjs +0 -35
  1278. package/esm2022/testing-base/lib/components/mock.radio-group.component.mjs +0 -48
  1279. package/esm2022/testing-base/lib/components/mock.radio.component.mjs +0 -37
  1280. package/esm2022/testing-base/lib/components/mock.range.component.mjs +0 -66
  1281. package/esm2022/testing-base/lib/components/mock.reorder-list.component.mjs +0 -43
  1282. package/esm2022/testing-base/lib/components/mock.router-outlet.component.mjs +0 -31
  1283. package/esm2022/testing-base/lib/components/mock.section-header.component.mjs +0 -29
  1284. package/esm2022/testing-base/lib/components/mock.segmented-control.component.mjs +0 -49
  1285. package/esm2022/testing-base/lib/components/mock.slide-button.component.mjs +0 -41
  1286. package/esm2022/testing-base/lib/components/mock.slides.component.mjs +0 -41
  1287. package/esm2022/testing-base/lib/components/mock.spinner.component.mjs +0 -29
  1288. package/esm2022/testing-base/lib/components/mock.stock-chart.component.mjs +0 -34
  1289. package/esm2022/testing-base/lib/components/mock.tab-button.component.mjs +0 -36
  1290. package/esm2022/testing-base/lib/components/mock.tab-navigation-item.component.mjs +0 -31
  1291. package/esm2022/testing-base/lib/components/mock.tab-navigation.component.mjs +0 -34
  1292. package/esm2022/testing-base/lib/components/mock.tabs.component.mjs +0 -29
  1293. package/esm2022/testing-base/lib/components/mock.textarea.component.mjs +0 -42
  1294. package/esm2022/testing-base/lib/components/mock.toggle-button.component.mjs +0 -36
  1295. package/esm2022/testing-base/lib/components/mock.toggle.component.mjs +0 -38
  1296. package/esm2022/testing-base/lib/directives/index.mjs +0 -18
  1297. package/esm2022/testing-base/lib/directives/mock.accordion.directive.mjs +0 -27
  1298. package/esm2022/testing-base/lib/directives/mock.affix.directive.mjs +0 -30
  1299. package/esm2022/testing-base/lib/directives/mock.card-as-button.directive.mjs +0 -27
  1300. package/esm2022/testing-base/lib/directives/mock.component-loader.directive.mjs +0 -31
  1301. package/esm2022/testing-base/lib/directives/mock.date-input.directive.mjs +0 -27
  1302. package/esm2022/testing-base/lib/directives/mock.decimal-mask.directive.mjs +0 -41
  1303. package/esm2022/testing-base/lib/directives/mock.fit-heading.directive.mjs +0 -30
  1304. package/esm2022/testing-base/lib/directives/mock.floating.directive.mjs +0 -69
  1305. package/esm2022/testing-base/lib/directives/mock.infinite-scroll.directive.mjs +0 -33
  1306. package/esm2022/testing-base/lib/directives/mock.key-handler.directive.mjs +0 -27
  1307. package/esm2022/testing-base/lib/directives/mock.list-item-color.directive.mjs +0 -30
  1308. package/esm2022/testing-base/lib/directives/mock.list.directive.mjs +0 -89
  1309. package/esm2022/testing-base/lib/directives/mock.modal-router-link.directive.mjs +0 -33
  1310. package/esm2022/testing-base/lib/directives/mock.portal.directive.mjs +0 -28
  1311. package/esm2022/testing-base/lib/directives/mock.slide.directive.mjs +0 -26
  1312. package/esm2022/testing-base/lib/directives/mock.theme-color.directive.mjs +0 -34
  1313. package/esm2022/testing-base/lib/index.mjs +0 -4
  1314. package/esm2022/testing-base/lib/kirby-testing-base.module.mjs +0 -96
  1315. package/esm2022/testing-base/lib/mock-components.mjs +0 -142
  1316. package/esm2022/testing-base/lib/mock-directives.mjs +0 -39
  1317. package/esm2022/testing-base/public_api.mjs +0 -2
  1318. package/esm2022/testing-jasmine/kirbydesign-designsystem-testing-jasmine.mjs +0 -5
  1319. package/esm2022/testing-jasmine/lib/kirby-testing.module.mjs +0 -20
  1320. package/esm2022/testing-jasmine/lib/mock-providers.mjs +0 -86
  1321. package/esm2022/testing-jasmine/public_api.mjs +0 -2
  1322. package/esm2022/testing-jest/kirbydesign-designsystem-testing-jest.mjs +0 -5
  1323. package/esm2022/testing-jest/lib/kirby-testing.module.mjs +0 -20
  1324. package/esm2022/testing-jest/lib/mock-providers.mjs +0 -92
  1325. package/esm2022/testing-jest/public_api.mjs +0 -2
  1326. package/esm2022/toast/config/toast-config.mjs +0 -2
  1327. package/esm2022/toast/kirbydesign-designsystem-toast.mjs +0 -5
  1328. package/esm2022/toast/public_api.mjs +0 -4
  1329. package/esm2022/toast/services/indexs.mjs +0 -3
  1330. package/esm2022/toast/services/toast.controller.mjs +0 -22
  1331. package/esm2022/toast/services/toast.helper.mjs +0 -39
  1332. package/esm2022/toggle/kirbydesign-designsystem-toggle.mjs +0 -5
  1333. package/esm2022/toggle/public_api.mjs +0 -2
  1334. package/esm2022/toggle/toggle.component.mjs +0 -114
  1335. package/esm2022/toggle-button/kirbydesign-designsystem-toggle-button.mjs +0 -5
  1336. package/esm2022/toggle-button/public_api.mjs +0 -3
  1337. package/esm2022/toggle-button/toggle-button.component.mjs +0 -30
  1338. package/esm2022/toggle-button/toggle-button.module.mjs +0 -19
  1339. package/esm2022/types/event-listener-dispose-fn.mjs +0 -2
  1340. package/esm2022/types/kirbydesign-designsystem-types.mjs +0 -5
  1341. package/esm2022/types/public_api.mjs +0 -4
  1342. package/esm2022/types/unobserve-fn.mjs +0 -2
  1343. package/esm2022/types/window-ref.mjs +0 -16
  1344. package/ngcc.config.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-chart.mjs","sources":["../../chart/src/shared/charts.types.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/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-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 { 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 { 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 { 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 { BaseChartComponent, ChartDataLabelOptions, ChartJSService } from '../shared';\n\nimport { StockChartJSService } from './stock-chart-js.service';\n\n@Component({\n selector: 'kirby-stock-chart',\n providers: [{ provide: ChartJSService, useClass: StockChartJSService }],\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 declarations: [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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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-chart.mjs","sources":["../../chart/src/shared/charts.types.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/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-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 { 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 { 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 { 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 standalone: false,\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 standalone: false,\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 { BaseChartComponent, ChartDataLabelOptions, ChartJSService } from '../shared';\n\nimport { StockChartJSService } from './stock-chart-js.service';\n\n@Component({\n selector: 'kirby-stock-chart',\n providers: [{ provide: ChartJSService, useClass: StockChartJSService }],\n templateUrl: '../shared/base-chart/base-chart.component.html',\n styleUrls: ['../shared/base-chart/base-chart.component.scss'],\n standalone: false,\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 declarations: [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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"}
@@ -108,8 +108,8 @@ class CheckboxComponent {
108
108
  setDisabledState(isDisabled) {
109
109
  this.disabled = isDisabled;
110
110
  }
111
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
112
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxComponent, isStandalone: true, selector: "kirby-checkbox", inputs: { checked: "checked", attentionLevel: "attentionLevel", text: "text", size: "size", hasError: "hasError", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "class": "this.size", "class.error": "this.hasError", "attr.disabled": "this._isDisabled", "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.has-hidden-label": "this._labelText" } }, providers: [
111
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: CheckboxComponent, isStandalone: true, selector: "kirby-checkbox", inputs: { checked: "checked", attentionLevel: "attentionLevel", text: "text", size: "size", hasError: "hasError", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "class": "this.size", "class.error": "this.hasError", "attr.disabled": "this._isDisabled", "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.has-hidden-label": "this._labelText" } }, providers: [
113
113
  IonicElementPartHelper,
114
114
  {
115
115
  provide: NG_VALUE_ACCESSOR,
@@ -118,9 +118,9 @@ class CheckboxComponent {
118
118
  },
119
119
  ], viewQueries: [{ propertyName: "ionCheckboxElement", first: true, predicate: IonCheckbox, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n (ionBlur)=\"onBlur()\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n <span class=\"hidden-label\" *ngIf=\"_labelText\">{{ _labelText }}</span>\n <span *ngIf=\"text\">{{ text }}</span>\n <span class=\"default-content\">\n <ng-content></ng-content>\n </span>\n</ion-checkbox>\n", styles: [":host{display:flex}:host.attention-level1 ion-checkbox{--checkmark-color: var(--kirby-black);--checkbox-background-checked: var(--kirby-success);--border-color-checked: var(--kirby-success)}@media (hover: hover){:host.attention-level1 ion-checkbox:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--checkbox-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--border-color-checked: rgb(45.030660793, 192.689339207, 114.1474889868)}}:host.attention-level1 ion-checkbox:active,:host.attention-level1 ion-checkbox.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--checkbox-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--border-color-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595)}:host.attention-level2 ion-checkbox{--checkmark-color: var(--kirby-white);--checkbox-background-checked: var(--kirby-black);--border-color-checked: var(--kirby-black)}@media (hover: hover){:host.attention-level2 ion-checkbox:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--checkbox-background-checked: rgb(91.56, 91.56, 91.56);--border-color-checked: rgb(91.56, 91.56, 91.56)}}:host.attention-level2 ion-checkbox:active,:host.attention-level2 ion-checkbox.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--checkmark-color: rgb(234.6, 234.6, 234.6);--checkbox-background-checked: rgb(109.72, 109.72, 109.72);--border-color-checked: rgb(109.72, 109.72, 109.72)}:host.error ion-checkbox{--border-color: var(--kirby-danger)}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-checkbox{--checkmark-color: var(--kirby-semi-dark);--checkbox-background: var(--kirby-semi-light);--checkbox-background-checked: var(--kirby-semi-light);--border-color: var(--kirby-medium);--border-color-checked: var(--kirby-semi-light)}:host[disabled] ion-checkbox::part(label-text-wrapper){opacity:1}:host[disabled] ion-checkbox::part(native-wrapper){opacity:1}:host:has(ion-checkbox.in-item.checkbox-justify-space-between){width:100%}:host.xs ion-checkbox:not(.in-item)::part(label){padding-block:4px}:host.sm ion-checkbox:not(.in-item)::part(label){padding-block:10px}:host.md ion-checkbox:not(.in-item)::part(label){padding-block:16px}:host.xs ion-checkbox::part(label){line-height:16px;font-size:14px}:host.xs ion-checkbox{--size: 16px;--border-radius: 4px}:host.xs ion-checkbox::part(container){padding:2px}@media (hover: hover) and (pointer: fine){:host ion-checkbox:focus-within::part(container){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){:host ion-checkbox:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--checkbox-background: rgb(234.6, 234.6, 234.6)}}:host ion-checkbox:active,:host ion-checkbox.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--checkbox-background: rgb(224.4, 224.4, 224.4)}:host ion-checkbox{--transition: 80ms;--size: 24px;--checkmark-width: 4px;--checkbox-background: var(--kirby-white);--border-width: 1px;--border-color: var(--kirby-semi-dark);--border-radius: 6px}:host ion-checkbox::part(container){padding:4px}:host ion-checkbox::part(label){align-items:start;padding-inline:16px 12px;line-height:24px}:host ion-checkbox::part(label-text-wrapper){margin-inline:12px 0;white-space:pre-line}:host ion-checkbox.in-item::part(label){align-items:center;padding-inline:0}:host ion-checkbox.in-item::part(label-text-wrapper){margin-block:0}:host ion-checkbox.in-item.checkbox-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}:host ion-checkbox.in-item.checkbox-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}:host.has-hidden-label{position:initial}:host.has-hidden-label[slot=end] ion-checkbox{margin-inline-start:12px}:host.has-hidden-label ion-checkbox{position:initial}:host.has-hidden-label ion-checkbox.in-item.checkbox-label-placement-start::part(label-text-wrapper),:host.has-hidden-label ion-checkbox.in-item.checkbox-label-placement-end::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host :host-context(kirby-item){z-index:1}:host :host-context(kirby-item) ion-checkbox{margin:0}:host :host-context(kirby-item)[slot=start]{margin-block:0;margin-inline-end:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CheckboxComponent, decorators: [{
122
122
  type: Component,
123
- args: [{ standalone: true, imports: [CommonModule, IonCheckbox], selector: 'kirby-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
123
+ args: [{ imports: [CommonModule, IonCheckbox], selector: 'kirby-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
124
124
  IonicElementPartHelper,
125
125
  {
126
126
  provide: NG_VALUE_ACCESSOR,
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-checkbox.mjs","sources":["../../checkbox/src/checkbox.component.ts","../../checkbox/src/checkbox.component.html","../../checkbox/src/kirbydesign-designsystem-checkbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { IonCheckbox } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\n\n@Component({\n standalone: true,\n imports: [CommonModule, IonCheckbox],\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent\n implements AfterViewInit, ControlValueAccessor, OnInit, AfterContentInit\n{\n @ViewChild(IonCheckbox, { read: ElementRef, static: true })\n private ionCheckboxElement?: ElementRef<HTMLIonCheckboxElement>;\n\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n _hasSlottedContent: boolean;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-checkbox for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-checkbox is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.element.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionCheckboxElement, '.checkbox-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionCheckboxElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart(\n 'native-wrapper',\n this.ionCheckboxElement,\n '.native-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\n\n if (!this.text && !this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.element.nativeElement);\n }\n }\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n onBlur() {\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the checkbox's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n /**\n * Saves a callback function to be invoked when the checkbox's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the checkbox is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Disables the checkbox. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n (ionBlur)=\"onBlur()\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n <span class=\"hidden-label\" *ngIf=\"_labelText\">{{ _labelText }}</span>\n <span *ngIf=\"text\">{{ text }}</span>\n <span class=\"default-content\">\n <ng-content></ng-content>\n </span>\n</ion-checkbox>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-checkbox.mjs","sources":["../../checkbox/src/checkbox.component.ts","../../checkbox/src/checkbox.component.html","../../checkbox/src/kirbydesign-designsystem-checkbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { IonCheckbox } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\n\n@Component({\n imports: [CommonModule, IonCheckbox],\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent\n implements AfterViewInit, ControlValueAccessor, OnInit, AfterContentInit\n{\n @ViewChild(IonCheckbox, { read: ElementRef, static: true })\n private ionCheckboxElement?: ElementRef<HTMLIonCheckboxElement>;\n\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n _hasSlottedContent: boolean;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-checkbox for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-checkbox is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.element.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionCheckboxElement, '.checkbox-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionCheckboxElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart(\n 'native-wrapper',\n this.ionCheckboxElement,\n '.native-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\n\n if (!this.text && !this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.element.nativeElement);\n }\n }\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n onBlur() {\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the checkbox's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n }\n\n /**\n * Saves a callback function to be invoked when the checkbox's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the checkbox is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Disables the checkbox. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n (ionBlur)=\"onBlur()\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n <span class=\"hidden-label\" *ngIf=\"_labelText\">{{ _labelText }}</span>\n <span *ngIf=\"text\">{{ text }}</span>\n <span class=\"default-content\">\n <ng-content></ng-content>\n </span>\n</ion-checkbox>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}