@kirbydesign/designsystem 10.2.1 → 10.3.0

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 (1343) 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 +18 -18
  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 +11 -118
  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/esm2022/accordion/accordion-item.component.mjs +0 -85
  934. package/esm2022/accordion/accordion.directive.mjs +0 -14
  935. package/esm2022/accordion/accordion.module.mjs +0 -20
  936. package/esm2022/accordion/kirbydesign-designsystem-accordion.mjs +0 -5
  937. package/esm2022/accordion/public_api.mjs +0 -4
  938. package/esm2022/action-group/action-group.component.mjs +0 -131
  939. package/esm2022/action-group/kirbydesign-designsystem-action-group.mjs +0 -5
  940. package/esm2022/action-group/public_api.mjs +0 -2
  941. package/esm2022/avatar/avatar.component.mjs +0 -51
  942. package/esm2022/avatar/kirbydesign-designsystem-avatar.mjs +0 -5
  943. package/esm2022/avatar/public_api.mjs +0 -2
  944. package/esm2022/badge/badge.component.mjs +0 -38
  945. package/esm2022/badge/kirbydesign-designsystem-badge.mjs +0 -5
  946. package/esm2022/badge/public_api.mjs +0 -2
  947. package/esm2022/button/button.component.mjs +0 -158
  948. package/esm2022/button/kirbydesign-designsystem-button.mjs +0 -5
  949. package/esm2022/button/public_api.mjs +0 -2
  950. package/esm2022/calendar/calendar.component.mjs +0 -514
  951. package/esm2022/calendar/interfaces/calendar-day.mjs +0 -2
  952. package/esm2022/calendar/interfaces/calendar-year-navigator-config.mjs +0 -2
  953. package/esm2022/calendar/kirbydesign-designsystem-calendar.mjs +0 -5
  954. package/esm2022/calendar/public_api.mjs +0 -2
  955. package/esm2022/card/card-as-button/card-as-button.directive.mjs +0 -64
  956. package/esm2022/card/card-flag-level.mjs +0 -2
  957. package/esm2022/card/card-footer/card-footer.component.mjs +0 -19
  958. package/esm2022/card/card-header/card-header.component.mjs +0 -35
  959. package/esm2022/card/card.component.mjs +0 -78
  960. package/esm2022/card/card.module.mjs +0 -34
  961. package/esm2022/card/kirbydesign-designsystem-card.mjs +0 -5
  962. package/esm2022/card/public_api.mjs +0 -7
  963. package/esm2022/chart/chart/chart.component.mjs +0 -18
  964. package/esm2022/chart/chart/index.mjs +0 -2
  965. package/esm2022/chart/chart-config/chart-bar-config/chart-bar-config.mjs +0 -43
  966. package/esm2022/chart/chart-config/chart-base-config.mjs +0 -4
  967. package/esm2022/chart/chart-config/chart-stock-config/chart-stock-config.mjs +0 -153
  968. package/esm2022/chart/chart-config/chart-stock-config/data-label-position/data-label-position.mjs +0 -48
  969. package/esm2022/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.mjs +0 -37
  970. package/esm2022/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.mjs +0 -2
  971. package/esm2022/chart/charts.module.mjs +0 -19
  972. package/esm2022/chart/kirbydesign-designsystem-chart.mjs +0 -5
  973. package/esm2022/chart/public_api.mjs +0 -7
  974. package/esm2022/chart/shared/base-chart/base-chart.component.mjs +0 -124
  975. package/esm2022/chart/shared/base-chart/index.mjs +0 -2
  976. package/esm2022/chart/shared/chart-config-service/chart-config.service.mjs +0 -75
  977. package/esm2022/chart/shared/chart-config-service/configs/annotations.config.mjs +0 -32
  978. package/esm2022/chart/shared/chart-config-service/configs/global-defaults.config.mjs +0 -65
  979. package/esm2022/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.mjs +0 -13
  980. package/esm2022/chart/shared/chart-config-service/configs/type.config.mjs +0 -207
  981. package/esm2022/chart/shared/chart-config-service/index.mjs +0 -2
  982. package/esm2022/chart/shared/chart-js-service/annotations.delegate.mjs +0 -35
  983. package/esm2022/chart/shared/chart-js-service/chart-js.service.mjs +0 -179
  984. package/esm2022/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.mjs +0 -194
  985. package/esm2022/chart/shared/chart-js-service/configured-chart-js.mjs +0 -22
  986. package/esm2022/chart/shared/chart-js-service/index.mjs +0 -3
  987. package/esm2022/chart/shared/chart-js-service/test-utils.mjs +0 -167
  988. package/esm2022/chart/shared/charts.types.mjs +0 -4
  989. package/esm2022/chart/shared/index.mjs +0 -5
  990. package/esm2022/chart/stock-chart/index.mjs +0 -2
  991. package/esm2022/chart/stock-chart/stock-chart-js.service.mjs +0 -100
  992. package/esm2022/chart/stock-chart/stock-chart.component.mjs +0 -22
  993. package/esm2022/checkbox/checkbox.component.mjs +0 -166
  994. package/esm2022/checkbox/kirbydesign-designsystem-checkbox.mjs +0 -5
  995. package/esm2022/checkbox/public_api.mjs +0 -2
  996. package/esm2022/data-table/data-table.module.mjs +0 -24
  997. package/esm2022/data-table/kirbydesign-designsystem-data-table.mjs +0 -5
  998. package/esm2022/data-table/public_api.mjs +0 -3
  999. package/esm2022/data-table/sortable/sortable.component.mjs +0 -58
  1000. package/esm2022/divider/divider.component.mjs +0 -14
  1001. package/esm2022/divider/kirbydesign-designsystem-divider.mjs +0 -5
  1002. package/esm2022/divider/public_api.mjs +0 -2
  1003. package/esm2022/dropdown/dropdown.component.mjs +0 -611
  1004. package/esm2022/dropdown/dropdown.module.mjs +0 -47
  1005. package/esm2022/dropdown/dropdown.types.mjs +0 -12
  1006. package/esm2022/dropdown/keyboard-handler.service.mjs +0 -50
  1007. package/esm2022/dropdown/kirbydesign-designsystem-dropdown.mjs +0 -5
  1008. package/esm2022/dropdown/public_api.mjs +0 -6
  1009. package/esm2022/empty-state/empty-state.component.mjs +0 -69
  1010. package/esm2022/empty-state/empty-state.module.mjs +0 -21
  1011. package/esm2022/empty-state/kirbydesign-designsystem-empty-state.mjs +0 -5
  1012. package/esm2022/empty-state/public_api.mjs +0 -3
  1013. package/esm2022/fab-sheet/fab-sheet.component.mjs +0 -78
  1014. package/esm2022/fab-sheet/kirbydesign-designsystem-fab-sheet.mjs +0 -5
  1015. package/esm2022/fab-sheet/public_api.mjs +0 -2
  1016. package/esm2022/flag/flag.component.mjs +0 -30
  1017. package/esm2022/flag/kirbydesign-designsystem-flag.mjs +0 -5
  1018. package/esm2022/flag/public_api.mjs +0 -2
  1019. package/esm2022/form-field/directives/affix/affix.directive.mjs +0 -21
  1020. package/esm2022/form-field/directives/date/date-input.directive.mjs +0 -129
  1021. package/esm2022/form-field/directives/decimal-mask/decimal-mask.directive.mjs +0 -131
  1022. package/esm2022/form-field/form-field-message/form-field-message.component.mjs +0 -18
  1023. package/esm2022/form-field/form-field.component.mjs +0 -156
  1024. package/esm2022/form-field/form-field.module.mjs +0 -24
  1025. package/esm2022/form-field/input/input.component.mjs +0 -116
  1026. package/esm2022/form-field/input-counter/input-counter.component.mjs +0 -35
  1027. package/esm2022/form-field/kirbydesign-designsystem-form-field.mjs +0 -5
  1028. package/esm2022/form-field/public_api.mjs +0 -10
  1029. package/esm2022/form-field/textarea/textarea.component.mjs +0 -66
  1030. package/esm2022/header/header.component.mjs +0 -158
  1031. package/esm2022/header/header.module.mjs +0 -34
  1032. package/esm2022/header/kirbydesign-designsystem-header.mjs +0 -5
  1033. package/esm2022/header/public_api.mjs +0 -3
  1034. package/esm2022/helpers/chart-config-has-type.mjs +0 -10
  1035. package/esm2022/helpers/color-helper.mjs +0 -2
  1036. package/esm2022/helpers/content-mutation-observer.mjs +0 -50
  1037. package/esm2022/helpers/deep-copy.mjs +0 -52
  1038. package/esm2022/helpers/design-token-helper.mjs +0 -2
  1039. package/esm2022/helpers/element-ancestor-utils.mjs +0 -33
  1040. package/esm2022/helpers/ionic-element-part-helper.mjs +0 -25
  1041. package/esm2022/helpers/kirby-animation.mjs +0 -15
  1042. package/esm2022/helpers/kirbydesign-designsystem-helpers.mjs +0 -5
  1043. package/esm2022/helpers/line-clamp-helper.mjs +0 -31
  1044. package/esm2022/helpers/merge-deep.mjs +0 -38
  1045. package/esm2022/helpers/platform.service.mjs +0 -27
  1046. package/esm2022/helpers/public_api.mjs +0 -17
  1047. package/esm2022/helpers/scss/kirbydesign-designsystem-helpers-scss.mjs +0 -5
  1048. package/esm2022/helpers/scss/public_api.mjs +0 -2
  1049. package/esm2022/helpers/scss/scss-helper.mjs +0 -9
  1050. package/esm2022/helpers/string-helper.mjs +0 -2
  1051. package/esm2022/helpers/theme-color.type.mjs +0 -2
  1052. package/esm2022/helpers/unique-id-generator.helper.mjs +0 -19
  1053. package/esm2022/icon/icon-registry.service.mjs +0 -61
  1054. package/esm2022/icon/icon-settings.mjs +0 -2
  1055. package/esm2022/icon/icon.component.mjs +0 -62
  1056. package/esm2022/icon/icon.module.mjs +0 -19
  1057. package/esm2022/icon/kirby-icon-settings.mjs +0 -130
  1058. package/esm2022/icon/kirbydesign-designsystem-icon.mjs +0 -5
  1059. package/esm2022/icon/public_api.mjs +0 -6
  1060. package/esm2022/item/item.component.mjs +0 -74
  1061. package/esm2022/item/item.module.mjs +0 -22
  1062. package/esm2022/item/kirbydesign-designsystem-item.mjs +0 -5
  1063. package/esm2022/item/label/label.component.mjs +0 -23
  1064. package/esm2022/item/public_api.mjs +0 -4
  1065. package/esm2022/item-group/item-group.component.mjs +0 -18
  1066. package/esm2022/item-group/kirbydesign-designsystem-item-group.mjs +0 -5
  1067. package/esm2022/item-group/public_api.mjs +0 -2
  1068. package/esm2022/item-sliding/item-sliding.component.mjs +0 -38
  1069. package/esm2022/item-sliding/item-sliding.types.mjs +0 -2
  1070. package/esm2022/item-sliding/kirbydesign-designsystem-item-sliding.mjs +0 -5
  1071. package/esm2022/item-sliding/public_api.mjs +0 -3
  1072. package/esm2022/kirby-app/kirby-app.component.mjs +0 -35
  1073. package/esm2022/kirby-app/kirby-app.module.mjs +0 -19
  1074. package/esm2022/kirby-app/kirbydesign-designsystem-kirby-app.mjs +0 -5
  1075. package/esm2022/kirby-app/public_api.mjs +0 -3
  1076. package/esm2022/kirby-ionic-module/kirby-ionic.module.mjs +0 -23
  1077. package/esm2022/kirby-ionic-module/kirbydesign-designsystem-kirby-ionic-module.mjs +0 -5
  1078. package/esm2022/kirby-ionic-module/public_api.mjs +0 -2
  1079. package/esm2022/kirbydesign-designsystem.mjs +0 -5
  1080. package/esm2022/lib/components/index.mjs +0 -3
  1081. package/esm2022/lib/components/segmented-control/segment-item.mjs +0 -2
  1082. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +0 -166
  1083. package/esm2022/lib/directives/index.mjs +0 -3
  1084. package/esm2022/lib/directives/key-handler/key-handler.directive.mjs +0 -28
  1085. package/esm2022/lib/directives/modal-router-link/modal-router-link.directive.mjs +0 -35
  1086. package/esm2022/lib/index.mjs +0 -49
  1087. package/esm2022/lib/kirby.module.mjs +0 -339
  1088. package/esm2022/list/directives/index.mjs +0 -4
  1089. package/esm2022/list/directives/infinite-scroll.directive.mjs +0 -114
  1090. package/esm2022/list/directives/list-item-color.directive.mjs +0 -30
  1091. package/esm2022/list/directives/scroll.model.mjs +0 -2
  1092. package/esm2022/list/helpers/index.mjs +0 -2
  1093. package/esm2022/list/helpers/list-helper.mjs +0 -83
  1094. package/esm2022/list/kirbydesign-designsystem-list.mjs +0 -5
  1095. package/esm2022/list/list-experimental/index.mjs +0 -2
  1096. package/esm2022/list/list-experimental/list-experimental.component.mjs +0 -24
  1097. package/esm2022/list/list-header/index.mjs +0 -2
  1098. package/esm2022/list/list-header/list-header.component.mjs +0 -12
  1099. package/esm2022/list/list-item/index.mjs +0 -2
  1100. package/esm2022/list/list-item/list-item.component.mjs +0 -129
  1101. package/esm2022/list/list-section-header/index.mjs +0 -2
  1102. package/esm2022/list/list-section-header/list-section-header.component.mjs +0 -13
  1103. package/esm2022/list/list-swipe-action.mjs +0 -2
  1104. package/esm2022/list/list-swipe-action.type.mjs +0 -2
  1105. package/esm2022/list/list.component.mjs +0 -187
  1106. package/esm2022/list/list.directive.mjs +0 -43
  1107. package/esm2022/list/list.event.mjs +0 -2
  1108. package/esm2022/list/list.module.mjs +0 -93
  1109. package/esm2022/list/public_api.mjs +0 -12
  1110. package/esm2022/loading-overlay/kirbydesign-designsystem-loading-overlay.mjs +0 -5
  1111. package/esm2022/loading-overlay/loading-overlay.component.mjs +0 -26
  1112. package/esm2022/loading-overlay/loading-overlay.service.mjs +0 -49
  1113. package/esm2022/loading-overlay/public_api.mjs +0 -3
  1114. package/esm2022/menu/kirbydesign-designsystem-menu.mjs +0 -5
  1115. package/esm2022/menu/menu.component.mjs +0 -294
  1116. package/esm2022/menu/public_api.mjs +0 -2
  1117. package/esm2022/modal/kirbydesign-designsystem-modal.mjs +0 -5
  1118. package/esm2022/modal/modal/action-sheet/action-sheet.component.mjs +0 -45
  1119. package/esm2022/modal/modal/action-sheet/config/action-sheet-config.mjs +0 -2
  1120. package/esm2022/modal/modal/action-sheet/config/action-sheet-item.mjs +0 -2
  1121. package/esm2022/modal/modal/action-sheet/index.mjs +0 -4
  1122. package/esm2022/modal/modal/alert/alert.component.mjs +0 -76
  1123. package/esm2022/modal/modal/alert/config/alert-config.mjs +0 -2
  1124. package/esm2022/modal/modal/alert/index.mjs +0 -3
  1125. package/esm2022/modal/modal/footer/modal-footer.component.mjs +0 -38
  1126. package/esm2022/modal/modal/index.mjs +0 -7
  1127. package/esm2022/modal/modal/modal-component/modal.component.mjs +0 -152
  1128. package/esm2022/modal/modal/services/action-sheet.helper.mjs +0 -46
  1129. package/esm2022/modal/modal/services/alert.helper.mjs +0 -56
  1130. package/esm2022/modal/modal/services/can-dismiss-modal-guard.mjs +0 -31
  1131. package/esm2022/modal/modal/services/can-dismiss.helper.mjs +0 -29
  1132. package/esm2022/modal/modal/services/index.mjs +0 -7
  1133. package/esm2022/modal/modal/services/modal-animation-builder.service.mjs +0 -268
  1134. package/esm2022/modal/modal/services/modal.controller.mjs +0 -121
  1135. package/esm2022/modal/modal/services/modal.helper.mjs +0 -118
  1136. package/esm2022/modal/modal-navigation.service.mjs +0 -265
  1137. package/esm2022/modal/modal-wrapper/compact/index.mjs +0 -2
  1138. package/esm2022/modal/modal-wrapper/compact/modal-compact-wrapper.component.mjs +0 -89
  1139. package/esm2022/modal/modal-wrapper/config/drawer-supplementary-action.mjs +0 -3
  1140. package/esm2022/modal/modal-wrapper/config/index.mjs +0 -4
  1141. package/esm2022/modal/modal-wrapper/config/modal-config.helper.mjs +0 -3
  1142. package/esm2022/modal/modal-wrapper/config/modal-config.mjs +0 -2
  1143. package/esm2022/modal/modal-wrapper/index.mjs +0 -4
  1144. package/esm2022/modal/modal-wrapper/modal-elements-mover.delegate.mjs +0 -62
  1145. package/esm2022/modal/modal-wrapper/modal-wrapper.component.mjs +0 -543
  1146. package/esm2022/modal/modal.interfaces.mjs +0 -50
  1147. package/esm2022/modal/public_api.mjs +0 -5
  1148. package/esm2022/page/kirbydesign-designsystem-page.mjs +0 -5
  1149. package/esm2022/page/page-footer/page-footer.component.mjs +0 -35
  1150. package/esm2022/page/page.component.mjs +0 -734
  1151. package/esm2022/page/page.module.mjs +0 -107
  1152. package/esm2022/page/public_api.mjs +0 -4
  1153. package/esm2022/popover/kirbydesign-designsystem-popover.mjs +0 -5
  1154. package/esm2022/popover/popover.component.mjs +0 -159
  1155. package/esm2022/popover/public_api.mjs +0 -2
  1156. package/esm2022/progress-circle/kirbydesign-designsystem-progress-circle.mjs +0 -5
  1157. package/esm2022/progress-circle/progress-circle-ring.component.mjs +0 -62
  1158. package/esm2022/progress-circle/progress-circle.component.mjs +0 -88
  1159. package/esm2022/progress-circle/public_api.mjs +0 -3
  1160. package/esm2022/public-api.mjs +0 -2
  1161. package/esm2022/radio/kirbydesign-designsystem-radio.mjs +0 -5
  1162. package/esm2022/radio/public_api.mjs +0 -4
  1163. package/esm2022/radio/radio-group/radio-group.component.mjs +0 -252
  1164. package/esm2022/radio/radio-module.mjs +0 -21
  1165. package/esm2022/radio/radio.component.mjs +0 -80
  1166. package/esm2022/range/kirbydesign-designsystem-range.mjs +0 -5
  1167. package/esm2022/range/public_api.mjs +0 -2
  1168. package/esm2022/range/range.component.mjs +0 -136
  1169. package/esm2022/reorder-list/kirbydesign-designsystem-reorder-list.mjs +0 -5
  1170. package/esm2022/reorder-list/public_api.mjs +0 -3
  1171. package/esm2022/reorder-list/reorder-event.mjs +0 -14
  1172. package/esm2022/reorder-list/reorder-list.component.mjs +0 -80
  1173. package/esm2022/router-outlet/kirbydesign-designsystem-router-outlet.mjs +0 -5
  1174. package/esm2022/router-outlet/public_api.mjs +0 -6
  1175. package/esm2022/router-outlet/router-outlet.component.mjs +0 -19
  1176. package/esm2022/router-outlet/router-outlet.module.mjs +0 -19
  1177. package/esm2022/section-header/kirbydesign-designsystem-section-header.mjs +0 -5
  1178. package/esm2022/section-header/public_api.mjs +0 -2
  1179. package/esm2022/section-header/section-header.component.mjs +0 -13
  1180. package/esm2022/shared/component-configuration.mjs +0 -2
  1181. package/esm2022/shared/component-loader.directive.mjs +0 -36
  1182. package/esm2022/shared/controls/label-helpers.mjs +0 -23
  1183. package/esm2022/shared/dynamic-component.mjs +0 -2
  1184. package/esm2022/shared/fit-heading/fit-heading.directive.mjs +0 -107
  1185. package/esm2022/shared/fit-heading/index.mjs +0 -2
  1186. package/esm2022/shared/floating/floating.directive.mjs +0 -385
  1187. package/esm2022/shared/floating/kirbydesign-designsystem-shared-floating.mjs +0 -5
  1188. package/esm2022/shared/floating/public_api.mjs +0 -2
  1189. package/esm2022/shared/kirbydesign-designsystem-shared.mjs +0 -5
  1190. package/esm2022/shared/portal/kirbydesign-designsystem-shared-portal.mjs +0 -5
  1191. package/esm2022/shared/portal/portal.directive.mjs +0 -78
  1192. package/esm2022/shared/portal/public_api.mjs +0 -2
  1193. package/esm2022/shared/public_api.mjs +0 -10
  1194. package/esm2022/shared/resize-observer/resize-observer.factory.mjs +0 -18
  1195. package/esm2022/shared/resize-observer/resize-observer.service.mjs +0 -50
  1196. package/esm2022/shared/theme-color/theme-color.directive.mjs +0 -127
  1197. package/esm2022/shared/translation/translation.interface.mjs +0 -2
  1198. package/esm2022/shared/translation/translation.service.mjs +0 -37
  1199. package/esm2022/shared/translation/translations/da.mjs +0 -11
  1200. package/esm2022/shared/translation/translations/en.mjs +0 -11
  1201. package/esm2022/slide/kirbydesign-designsystem-slide.mjs +0 -5
  1202. package/esm2022/slide/public_api.mjs +0 -5
  1203. package/esm2022/slide/slide-stretch-height.directive.mjs +0 -19
  1204. package/esm2022/slide/slide.directive.mjs +0 -13
  1205. package/esm2022/slide/slide.module.mjs +0 -24
  1206. package/esm2022/slide/slides.component.mjs +0 -113
  1207. package/esm2022/slide-button/kirbydesign-designsystem-slide-button.mjs +0 -5
  1208. package/esm2022/slide-button/public_api.mjs +0 -2
  1209. package/esm2022/slide-button/slide-button.component.mjs +0 -138
  1210. package/esm2022/spinner/kirbydesign-designsystem-spinner.mjs +0 -5
  1211. package/esm2022/spinner/public_api.mjs +0 -3
  1212. package/esm2022/spinner/spinner.component.mjs +0 -11
  1213. package/esm2022/spinner/spinner.module.mjs +0 -19
  1214. package/esm2022/tab-navigation/kirbydesign-designsystem-tab-navigation.mjs +0 -5
  1215. package/esm2022/tab-navigation/public_api.mjs +0 -4
  1216. package/esm2022/tab-navigation/tab-navigation/tab-navigation.component.mjs +0 -136
  1217. package/esm2022/tab-navigation/tab-navigation-item/tab-navigation-item.component.mjs +0 -20
  1218. package/esm2022/tab-navigation/tab-navigation.module.mjs +0 -19
  1219. package/esm2022/tabs/kirbydesign-designsystem-tabs.mjs +0 -5
  1220. package/esm2022/tabs/public_api.mjs +0 -6
  1221. package/esm2022/tabs/tab-button/tab-button.component.mjs +0 -32
  1222. package/esm2022/tabs/tab-button/tab-button.events.mjs +0 -2
  1223. package/esm2022/tabs/tabs.component.mjs +0 -31
  1224. package/esm2022/tabs/tabs.module.mjs +0 -23
  1225. package/esm2022/tabs/tabs.service.mjs +0 -26
  1226. package/esm2022/testing/element-css-custom-matchers.mjs +0 -94
  1227. package/esm2022/testing/kirbydesign-designsystem-testing.mjs +0 -5
  1228. package/esm2022/testing/public_api.mjs +0 -3
  1229. package/esm2022/testing/test-helper.mjs +0 -155
  1230. package/esm2022/testing-base/kirbydesign-designsystem-testing-base.mjs +0 -5
  1231. package/esm2022/testing-base/lib/components/index.mjs +0 -65
  1232. package/esm2022/testing-base/lib/components/mock.accordion-item.component.mjs +0 -37
  1233. package/esm2022/testing-base/lib/components/mock.action-group.component.mjs +0 -35
  1234. package/esm2022/testing-base/lib/components/mock.action-sheet.component.mjs +0 -49
  1235. package/esm2022/testing-base/lib/components/mock.alert.component.mjs +0 -43
  1236. package/esm2022/testing-base/lib/components/mock.avatar.component.mjs +0 -45
  1237. package/esm2022/testing-base/lib/components/mock.badge.component.mjs +0 -33
  1238. package/esm2022/testing-base/lib/components/mock.base-chart.component.mjs +0 -43
  1239. package/esm2022/testing-base/lib/components/mock.button.component.mjs +0 -44
  1240. package/esm2022/testing-base/lib/components/mock.calendar.component.mjs +0 -76
  1241. package/esm2022/testing-base/lib/components/mock.card-footer.component.mjs +0 -31
  1242. package/esm2022/testing-base/lib/components/mock.card-header.component.mjs +0 -39
  1243. package/esm2022/testing-base/lib/components/mock.card.component.mjs +0 -41
  1244. package/esm2022/testing-base/lib/components/mock.chart.component.mjs +0 -34
  1245. package/esm2022/testing-base/lib/components/mock.checkbox.component.mjs +0 -46
  1246. package/esm2022/testing-base/lib/components/mock.divider.component.mjs +0 -31
  1247. package/esm2022/testing-base/lib/components/mock.dropdown.component.mjs +0 -60
  1248. package/esm2022/testing-base/lib/components/mock.empty-state.component.mjs +0 -35
  1249. package/esm2022/testing-base/lib/components/mock.fab-sheet.component.mjs +0 -33
  1250. package/esm2022/testing-base/lib/components/mock.flag.component.mjs +0 -33
  1251. package/esm2022/testing-base/lib/components/mock.form-field-message.component.mjs +0 -33
  1252. package/esm2022/testing-base/lib/components/mock.form-field.component.mjs +0 -36
  1253. package/esm2022/testing-base/lib/components/mock.header.component.mjs +0 -87
  1254. package/esm2022/testing-base/lib/components/mock.icon.component.mjs +0 -33
  1255. package/esm2022/testing-base/lib/components/mock.input-counter.component.mjs +0 -31
  1256. package/esm2022/testing-base/lib/components/mock.input.component.mjs +0 -48
  1257. package/esm2022/testing-base/lib/components/mock.item-group.component.mjs +0 -29
  1258. package/esm2022/testing-base/lib/components/mock.item-sliding.component.mjs +0 -33
  1259. package/esm2022/testing-base/lib/components/mock.item.component.mjs +0 -41
  1260. package/esm2022/testing-base/lib/components/mock.kirby-app.component.mjs +0 -29
  1261. package/esm2022/testing-base/lib/components/mock.label.component.mjs +0 -31
  1262. package/esm2022/testing-base/lib/components/mock.list-experimental.component.mjs +0 -29
  1263. package/esm2022/testing-base/lib/components/mock.list-header.component.mjs +0 -29
  1264. package/esm2022/testing-base/lib/components/mock.list-item.component.mjs +0 -51
  1265. package/esm2022/testing-base/lib/components/mock.list-section-header.component.mjs +0 -31
  1266. package/esm2022/testing-base/lib/components/mock.list.component.mjs +0 -65
  1267. package/esm2022/testing-base/lib/components/mock.loading-overlay.component.mjs +0 -35
  1268. package/esm2022/testing-base/lib/components/mock.menu.component.mjs +0 -54
  1269. package/esm2022/testing-base/lib/components/mock.modal-compact-wrapper.component.mjs +0 -31
  1270. package/esm2022/testing-base/lib/components/mock.modal-footer.component.mjs +0 -33
  1271. package/esm2022/testing-base/lib/components/mock.modal-wrapper.component.mjs +0 -37
  1272. package/esm2022/testing-base/lib/components/mock.page-footer.component.mjs +0 -31
  1273. package/esm2022/testing-base/lib/components/mock.page.component.mjs +0 -289
  1274. package/esm2022/testing-base/lib/components/mock.popover.component.mjs +0 -38
  1275. package/esm2022/testing-base/lib/components/mock.progress-circle-ring.component.mjs +0 -39
  1276. package/esm2022/testing-base/lib/components/mock.progress-circle.component.mjs +0 -35
  1277. package/esm2022/testing-base/lib/components/mock.radio-group.component.mjs +0 -48
  1278. package/esm2022/testing-base/lib/components/mock.radio.component.mjs +0 -37
  1279. package/esm2022/testing-base/lib/components/mock.range.component.mjs +0 -66
  1280. package/esm2022/testing-base/lib/components/mock.reorder-list.component.mjs +0 -43
  1281. package/esm2022/testing-base/lib/components/mock.router-outlet.component.mjs +0 -31
  1282. package/esm2022/testing-base/lib/components/mock.section-header.component.mjs +0 -29
  1283. package/esm2022/testing-base/lib/components/mock.segmented-control.component.mjs +0 -49
  1284. package/esm2022/testing-base/lib/components/mock.slide-button.component.mjs +0 -41
  1285. package/esm2022/testing-base/lib/components/mock.slides.component.mjs +0 -41
  1286. package/esm2022/testing-base/lib/components/mock.spinner.component.mjs +0 -29
  1287. package/esm2022/testing-base/lib/components/mock.stock-chart.component.mjs +0 -34
  1288. package/esm2022/testing-base/lib/components/mock.tab-button.component.mjs +0 -36
  1289. package/esm2022/testing-base/lib/components/mock.tab-navigation-item.component.mjs +0 -31
  1290. package/esm2022/testing-base/lib/components/mock.tab-navigation.component.mjs +0 -34
  1291. package/esm2022/testing-base/lib/components/mock.tabs.component.mjs +0 -29
  1292. package/esm2022/testing-base/lib/components/mock.textarea.component.mjs +0 -42
  1293. package/esm2022/testing-base/lib/components/mock.toggle-button.component.mjs +0 -36
  1294. package/esm2022/testing-base/lib/components/mock.toggle.component.mjs +0 -38
  1295. package/esm2022/testing-base/lib/directives/index.mjs +0 -18
  1296. package/esm2022/testing-base/lib/directives/mock.accordion.directive.mjs +0 -27
  1297. package/esm2022/testing-base/lib/directives/mock.affix.directive.mjs +0 -30
  1298. package/esm2022/testing-base/lib/directives/mock.card-as-button.directive.mjs +0 -27
  1299. package/esm2022/testing-base/lib/directives/mock.component-loader.directive.mjs +0 -31
  1300. package/esm2022/testing-base/lib/directives/mock.date-input.directive.mjs +0 -27
  1301. package/esm2022/testing-base/lib/directives/mock.decimal-mask.directive.mjs +0 -41
  1302. package/esm2022/testing-base/lib/directives/mock.fit-heading.directive.mjs +0 -30
  1303. package/esm2022/testing-base/lib/directives/mock.floating.directive.mjs +0 -69
  1304. package/esm2022/testing-base/lib/directives/mock.infinite-scroll.directive.mjs +0 -33
  1305. package/esm2022/testing-base/lib/directives/mock.key-handler.directive.mjs +0 -27
  1306. package/esm2022/testing-base/lib/directives/mock.list-item-color.directive.mjs +0 -30
  1307. package/esm2022/testing-base/lib/directives/mock.list.directive.mjs +0 -89
  1308. package/esm2022/testing-base/lib/directives/mock.modal-router-link.directive.mjs +0 -33
  1309. package/esm2022/testing-base/lib/directives/mock.portal.directive.mjs +0 -28
  1310. package/esm2022/testing-base/lib/directives/mock.slide.directive.mjs +0 -26
  1311. package/esm2022/testing-base/lib/directives/mock.theme-color.directive.mjs +0 -34
  1312. package/esm2022/testing-base/lib/index.mjs +0 -4
  1313. package/esm2022/testing-base/lib/kirby-testing-base.module.mjs +0 -96
  1314. package/esm2022/testing-base/lib/mock-components.mjs +0 -142
  1315. package/esm2022/testing-base/lib/mock-directives.mjs +0 -39
  1316. package/esm2022/testing-base/public_api.mjs +0 -2
  1317. package/esm2022/testing-jasmine/kirbydesign-designsystem-testing-jasmine.mjs +0 -5
  1318. package/esm2022/testing-jasmine/lib/kirby-testing.module.mjs +0 -20
  1319. package/esm2022/testing-jasmine/lib/mock-providers.mjs +0 -86
  1320. package/esm2022/testing-jasmine/public_api.mjs +0 -2
  1321. package/esm2022/testing-jest/kirbydesign-designsystem-testing-jest.mjs +0 -5
  1322. package/esm2022/testing-jest/lib/kirby-testing.module.mjs +0 -20
  1323. package/esm2022/testing-jest/lib/mock-providers.mjs +0 -92
  1324. package/esm2022/testing-jest/public_api.mjs +0 -2
  1325. package/esm2022/toast/config/toast-config.mjs +0 -2
  1326. package/esm2022/toast/kirbydesign-designsystem-toast.mjs +0 -5
  1327. package/esm2022/toast/public_api.mjs +0 -4
  1328. package/esm2022/toast/services/indexs.mjs +0 -3
  1329. package/esm2022/toast/services/toast.controller.mjs +0 -22
  1330. package/esm2022/toast/services/toast.helper.mjs +0 -39
  1331. package/esm2022/toggle/kirbydesign-designsystem-toggle.mjs +0 -5
  1332. package/esm2022/toggle/public_api.mjs +0 -2
  1333. package/esm2022/toggle/toggle.component.mjs +0 -114
  1334. package/esm2022/toggle-button/kirbydesign-designsystem-toggle-button.mjs +0 -5
  1335. package/esm2022/toggle-button/public_api.mjs +0 -3
  1336. package/esm2022/toggle-button/toggle-button.component.mjs +0 -30
  1337. package/esm2022/toggle-button/toggle-button.module.mjs +0 -19
  1338. package/esm2022/types/event-listener-dispose-fn.mjs +0 -2
  1339. package/esm2022/types/kirbydesign-designsystem-types.mjs +0 -5
  1340. package/esm2022/types/public_api.mjs +0 -4
  1341. package/esm2022/types/unobserve-fn.mjs +0 -2
  1342. package/esm2022/types/window-ref.mjs +0 -16
  1343. package/ngcc.config.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-page.mjs","sources":["../../page/src/page.component.ts","../../page/src/page.component.html","../../page/src/page-footer/page-footer.component.ts","../../page/src/page-footer/page-footer.component.html","../../page/src/page.module.ts","../../page/src/kirbydesign-designsystem-page.ts"],"sourcesContent":["import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport {\n IonBackButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonRouterOutlet,\n IonToolbar,\n NavController,\n} from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\nimport type { ScrollDetail } from '@ionic/core';\nimport { selectedTabClickEvent, TabsComponent } from '@kirbydesign/designsystem/tabs';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { ACTIONGROUP_CONFIG, ActionGroupConfig } from '@kirbydesign/designsystem/action-group';\nimport {\n HeaderActionsDirective,\n HeaderComponent,\n HeaderTitleActionIconDirective,\n} from '@kirbydesign/designsystem/header';\nimport { IonicElementPartHelper, KirbyAnimation } from '@kirbydesign/designsystem/helpers';\nimport {\n ModalElementComponent,\n ModalElementsAdvertiser,\n ModalElementType,\n ModalNavigationService,\n} from '@kirbydesign/designsystem/modal';\nimport {\n FitHeadingConfig,\n ResizeObserverService,\n TranslationService,\n} from '@kirbydesign/designsystem/shared';\n\n/**\n * Specify scroll event debounce time in ms and scrolled offset from top in pixels\n */\nconst contentScrollDebounceTimeInMS = 10;\nconst contentScrolledOffsetInPixels = 4;\n\ntype stickyConfig = { sticky: boolean };\ntype fixedConfig = { fixed: boolean };\ntype MaxWidth = 'default' | 'lg' | 'xl' | 'full';\n\nexport const PAGE_BACK_BUTTON_OVERRIDE = new InjectionToken<PageBackButtonOverride>(\n 'page-back-button-override'\n);\n\nexport interface PageBackButtonOverride {\n navigateBack: (\n routerOutlet: IonRouterOutlet,\n navCtrl: NavController,\n defaultBackHref: string\n ) => void;\n}\n\n/**\n * Event emitted when \"pull-to-refresh\" begins.\n */\nexport interface PullToRefreshEvent {\n /**\n * Invoke this callback-method when action to perform upon \"pull-to-refresh\" completes.\n */\n complete();\n}\n\n@Directive({\n selector: '[kirbyPageTitle]',\n})\nexport class PageTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageSubtitle]',\n})\nexport class PageSubtitleDirective {}\n\n@Directive({\n selector: '[kirbyPageToolbarTitle]',\n})\nexport class PageToolbarTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageActions]',\n})\nexport class PageActionsDirective {\n @Input('kirbyPageActions') config: stickyConfig | fixedConfig;\n private readonly stickyDefault = true;\n private readonly fixedDefault = false;\n\n constructor(public template: TemplateRef<any>) {\n console.warn(\n 'Defining Page Actions via *kirbyPageActions is deprecated and will be removed in Kirby v11. A Kirby Header with Actions should be used instead, as it has an improved API with better support for responsive layouts.'\n );\n }\n\n get isSticky(): boolean {\n return this.config ? (this.config as stickyConfig).sticky : this.stickyDefault;\n }\n\n get isFixed(): boolean {\n return this.config ? (this.config as fixedConfig).fixed : this.fixedDefault;\n }\n}\n\n@Directive({\n selector: '[kirbyPageContent]',\n})\nexport class PageContentDirective {\n @Input('kirbyPageContent') config: fixedConfig;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isFixed(): boolean {\n return this.config && this.config.fixed;\n }\n}\n\n@Directive({\n selector: '[kirbyPageStickyContent]',\n})\nexport class PageStickyContentDirective {}\n\n@Component({\n selector: 'kirby-page-progress',\n template: `\n <ng-content></ng-content>\n `,\n styles: [\n `\n :host {\n display: flex;\n margin-inline-end: 4px; /* Add spacing to potential supplementary action button */\n }\n `,\n ],\n})\nexport class PageProgressComponent extends ModalElementComponent {\n // TODO: Find alternative implementation, which aligns with future page configuration / consumption\n // This implementation was chosen over expanding `moveChild` method in component wrapper with yet another scenario\n @HostBinding('attr.slot') slot = 'start';\n\n constructor(\n @Optional() modalElementsAdvertiser: ModalElementsAdvertiser,\n elementRef: ElementRef<HTMLElement>\n ) {\n super(ModalElementType.PAGE_PROGRESS, elementRef, modalElementsAdvertiser);\n }\n}\n@Component({\n selector: 'kirby-page-title',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PageTitleComponent extends ModalElementComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() modalElementsAdvertiser: ModalElementsAdvertiser\n ) {\n super(ModalElementType.TITLE, elementRef, modalElementsAdvertiser);\n }\n}\n\n@Component({\n selector: 'kirby-page-content',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PageContentComponent {}\n\n@Component({\n selector: 'kirby-page-actions',\n template: `\n <ng-content select=\"button[kirby-button]\"></ng-content>\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n column-gap: 8px;\n }\n `,\n ],\n})\nexport class PageActionsComponent {}\n\n@Component({\n selector: 'kirby-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n})\nexport class PageComponent\n implements OnInit, OnDestroy, AfterViewInit, AfterContentChecked, OnChanges\n{\n @Input() title: string;\n @Input() subtitle: string;\n @Input() toolbarTitle: string;\n @Input() titleAlignment: 'left' | 'center' | 'right' = 'left';\n @Input() defaultBackHref: string;\n @Input() hideBackButton: boolean;\n @Input() titleMaxLines: number;\n @Input() hasInteractiveTitle: boolean;\n\n @Input() set maxWidth(width: MaxWidth) {\n this._maxWidth = width;\n }\n\n get maxWidth(): MaxWidth {\n return this._maxWidth;\n }\n\n private _maxWidth: MaxWidth = 'default';\n\n private _tabBarBottomHidden: boolean;\n public get tabBarBottomHidden(): boolean {\n return this._tabBarBottomHidden;\n }\n @Input()\n public set tabBarBottomHidden(value: boolean) {\n if (this.tabsComponent) {\n // as we are setting a class on tabs, we need this to happen in a separate cd cycle\n setTimeout(() => {\n this.tabsComponent.tabBarBottomHidden = value;\n this.changeDetectorRef.markForCheck();\n });\n }\n this._tabBarBottomHidden = value;\n }\n\n @Output() enter = new EventEmitter<void>();\n @Output() leave = new EventEmitter<void>();\n @Output() refresh = new EventEmitter<PullToRefreshEvent>();\n @Output() backButtonClick = new EventEmitter<Event>();\n @Output() toolbarTitleClick = new EventEmitter<PointerEvent>();\n\n @ViewChild(IonContent, { static: true }) private content?: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef })\n private ionContentElement: ElementRef<HTMLIonContentElement>;\n @ViewChild(IonHeader, { static: true, read: ElementRef })\n ionHeaderElement: ElementRef<HTMLIonHeaderElement>;\n @ViewChild(IonFooter, { static: true, read: ElementRef })\n private ionFooterElement: ElementRef<HTMLIonFooterElement>;\n @ViewChild(IonToolbar, { static: true, read: ElementRef })\n private ionToolbarElement: ElementRef<HTMLIonToolbarElement>;\n @ViewChildren(IonButtons, { read: ElementRef })\n private ionToolbarButtonsElement: QueryList<ElementRef<HTMLIonButtonsElement>>;\n @ViewChild(IonBackButton, { static: false })\n private backButton: IonBackButton;\n @ViewChild('pageTitle', { static: false, read: ElementRef })\n private pageTitle: ElementRef;\n @ViewChild('stickyContentContainer', { static: false, read: ElementRef })\n private stickyContentContainer: ElementRef;\n\n @ViewChild('simpleTitleTemplate', { static: true, read: TemplateRef })\n private simpleTitleTemplate: TemplateRef<any>;\n @ViewChild('simpleToolbarTitleTemplate', { static: true, read: TemplateRef })\n private simpleToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageToolbarTitleDirective, { static: false, read: TemplateRef })\n private customToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageTitleDirective, { static: false, read: TemplateRef })\n customTitleTemplate: TemplateRef<any>;\n @ContentChild(PageSubtitleDirective, { static: false, read: TemplateRef })\n customSubtitleTemplate: TemplateRef<any>;\n @ContentChildren(PageActionsDirective)\n customActions: QueryList<PageActionsDirective>;\n @ContentChildren(PageContentDirective)\n private customContent: QueryList<PageContentDirective>;\n @ContentChild(PageStickyContentDirective, { static: false, read: TemplateRef })\n private stickyContentRef: TemplateRef<any>;\n @ContentChild(HeaderComponent)\n header?: HeaderComponent;\n\n hasHeader: boolean;\n hasPageTitle: boolean;\n hasPageSubtitle: boolean;\n toolbarTitleVisible: boolean;\n toolbarActionsVisible: boolean;\n isContentScrolled: boolean;\n isStickyContentPinned = false;\n\n fitHeadingConfig: FitHeadingConfig;\n\n toolbarTitleTemplate: TemplateRef<any>;\n customContentTemplate: TemplateRef<any>;\n pageActionsTemplate: TemplateRef<any>;\n fixedContentTemplate: TemplateRef<any>;\n stickyActionsTemplate: TemplateRef<any>;\n fixedActionsTemplate: TemplateRef<any>;\n stickyContentTemplate: TemplateRef<PageStickyContentDirective>;\n headerActionsTemplate: TemplateRef<HeaderActionsDirective>;\n titleActionIconTemplate: TemplateRef<HeaderTitleActionIconDirective>;\n\n private titleIntersectionObserver?: IntersectionObserver;\n private stickyActionsIntersectionObserver?: IntersectionObserver;\n private stickyContentIntersectionObserver?: IntersectionObserver;\n private isObservingTitle = false;\n private isObservingActions = false;\n\n private url: string;\n private isActive: boolean;\n\n private ngOnDestroy$: Subject<void> = new Subject<void>();\n private contentScrolled$: Observable<ScrollDetail>;\n\n private navigationStart$: Observable<NavigationStart> = this.router.events.pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntil(this.ngOnDestroy$)\n );\n\n private navigationEnd$: Observable<NavigationEnd> = this.router.events.pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this.ngOnDestroy$)\n );\n\n toolbarActionGroupInjector: Injector;\n\n constructor(\n private elementRef: ElementRef,\n private injector: Injector,\n private renderer: Renderer2,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n private zone: NgZone,\n private modalNavigationService: ModalNavigationService,\n private resizeObserverService: ResizeObserverService,\n @Optional() @SkipSelf() private tabsComponent: TabsComponent,\n @Optional()\n @Inject(PAGE_BACK_BUTTON_OVERRIDE)\n private backButtonOverride: PageBackButtonOverride,\n @Optional()\n private routerOutlet: IonRouterOutlet,\n @Optional()\n private navCtrl: NavController,\n private ionicElementPartHelper: IonicElementPartHelper,\n public translations: TranslationService\n ) {}\n\n private contentReadyPromise: Promise<void>;\n private whenContentReady() {\n if (!this.contentReadyPromise) {\n this.contentReadyPromise = new Promise((resolve) => {\n this.resizeObserverService.observe(this.ionContentElement, (entry) => {\n if (entry.contentRect.height > 0) {\n this.resizeObserverService.unobserve(this.ionContentElement);\n resolve();\n }\n });\n });\n }\n return this.contentReadyPromise;\n }\n\n ngOnInit(): void {\n this.removeWrapper();\n this.ionicElementPartHelper.setPart(\n 'background',\n this.ionToolbarElement,\n '.toolbar-background'\n );\n\n const actionGroupConfig: ActionGroupConfig = {\n isCondensed: true,\n maxVisibleActions: 1,\n };\n this.toolbarActionGroupInjector = Injector.create({\n providers: [\n {\n provide: ACTIONGROUP_CONFIG,\n useValue: actionGroupConfig,\n },\n ],\n parent: this.injector,\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.titleMaxLines) {\n this.fitHeadingConfig = {\n maxLines: changes.titleMaxLines.currentValue,\n };\n }\n if (changes.subtitle && !changes.subtitle.isFirstChange) {\n this.subtitle = changes.title.currentValue;\n this.hasPageSubtitle = this.subtitle !== undefined;\n }\n }\n\n ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.contentScrolled$ = this.content.ionScroll.pipe(\n debounceTime(contentScrollDebounceTimeInMS),\n map((event) => event.detail),\n takeUntil(this.ngOnDestroy$)\n );\n\n this.contentScrolled$.subscribe((scrollInfo: ScrollDetail) => {\n if (scrollInfo.scrollTop > contentScrolledOffsetInPixels !== this.isContentScrolled) {\n this.isContentScrolled = !this.isContentScrolled;\n this.changeDetectorRef.detectChanges();\n }\n });\n });\n\n // This instance has observed a page enter so register the correct url for this instance\n this.url = this.router.url;\n this.onEnter();\n\n // Watch navigation events for page enter and leave\n this.navigationStart$.subscribe((event: NavigationStart) => {\n if (\n this.getPathname(event.url) !== this.getPathname(this.url) &&\n !this.modalNavigationService.isModalRoute(this.url) &&\n !this.modalNavigationService.isModalRoute(event.url)\n ) {\n this.onLeave();\n }\n });\n\n this.navigationEnd$.subscribe((event: NavigationEnd) => {\n if (this.getPathname(event.urlAfterRedirects) === this.getPathname(this.url)) {\n this.onEnter();\n }\n });\n\n this.interceptBackButtonClicksSetup();\n this.initializeStickyIntersectionObserver();\n this.setActionButtonsWidth();\n }\n\n ngAfterContentChecked(): void {\n this.initializeHeader();\n this.initializeTitle();\n this.initializeActions();\n this.initializeContent();\n this.initializeStickyContent();\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngOnDestroy$.next();\n this.ngOnDestroy$.complete();\n\n this.titleIntersectionObserver?.disconnect();\n this.stickyActionsIntersectionObserver?.disconnect();\n this.stickyContentIntersectionObserver?.disconnect();\n }\n\n delegateRefreshEvent(event: any): void {\n this.refresh.emit({\n complete: event.target.complete.bind(event.target),\n });\n }\n\n getMaxWidthClasses() {\n if (!this.maxWidth) {\n return '';\n }\n if (this.maxWidth === 'default') {\n return '';\n }\n return `max-width-${this.maxWidth}`;\n }\n\n onTitleClick(event: PointerEvent) {\n if (this.toolbarTitleClick.observed) {\n this.toolbarTitleClick.emit(event);\n } else {\n this.header?.titleClick.emit(event);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, this.ionHeaderElement.nativeElement);\n this.renderer.appendChild(parent, this.ionContentElement.nativeElement);\n this.renderer.appendChild(parent, this.ionFooterElement.nativeElement);\n }\n\n private onEnter() {\n if (this.isActive) return;\n this.isActive = true;\n\n this.enter.emit();\n\n this.observeTitle();\n this.observeActions();\n }\n\n private onLeave() {\n if (!this.isActive) return;\n this.isActive = false;\n\n this.leave.emit();\n\n this.unobserveTitle();\n this.unobserveActions();\n\n if (this.tabBarBottomHidden && this.tabsComponent) {\n this.tabsComponent.tabBarBottomHidden = false;\n }\n }\n\n private interceptBackButtonClicksSetup() {\n if (this.backButtonOverride) {\n this.backButton.onClick = (event: Event) => {\n event.preventDefault();\n this.backButtonOverride.navigateBack(this.routerOutlet, this.navCtrl, this.defaultBackHref);\n };\n }\n\n // Intercept back-button click events, defaulting to the built-in click-handler.\n if (this.backButtonClick.observers.length === 0) {\n this.backButtonClick\n .pipe(takeUntil(this.ngOnDestroy$))\n .subscribe(this.backButton.onClick.bind(this.backButton));\n }\n this.backButton.onClick = (event: Event) => {\n this.backButtonClick.emit(event);\n };\n }\n\n private initializeStickyIntersectionObserver() {\n if (this.stickyContentTemplate) {\n // Sticky content present - start observing for stickiness\n if (!this.stickyContentIntersectionObserver) {\n this.stickyContentIntersectionObserver = this.createStickyContentIntersectionObserver();\n }\n setTimeout(() => {\n this.stickyContentIntersectionObserver.observe(this.stickyContentContainer.nativeElement);\n });\n }\n }\n\n private initializeHeader() {\n if (this.hasHeader === undefined && !!this.header) {\n this.hasHeader = true;\n // Header could later be removed from DOM (e.g. in virtual scrolling scenarios),\n // so store a reference to `header.titleActionIconTemplate` and `header.titleClick`:\n this.titleActionIconTemplate = this.header.titleActionIconTemplate;\n if (this.header.titleClick.observed && this.hasInteractiveTitle === undefined) {\n this.hasInteractiveTitle = true;\n }\n }\n }\n\n private initializeTitle() {\n if (this.hasHeader && this.isObservingTitle && !this.header?.titleElement) {\n // If we're already observing the header's title element, but it's no longer present,\n // it means it has been removed from DOM (e.g. in virtual scrolling scenarios).\n // Flip observing flag:\n this.isObservingTitle = false;\n }\n if (this.hasPageTitle) {\n if (!this.isObservingTitle && !!this.header?.titleElement) {\n // Header and title element re-attached to DOM - observe title:\n this.observeTitle();\n }\n\n // Ensures rest of initializeTitle() won't run, if already initialized\n return;\n }\n\n this.hasPageTitle =\n this.title !== undefined || !!this.customTitleTemplate || !!this.header?.title;\n this.toolbarTitleVisible = !this.hasPageTitle;\n this.hasPageSubtitle = this.subtitle !== undefined || !!this.customSubtitleTemplate;\n if (this.header?.title && !this.toolbarTitle) {\n this.toolbarTitle = this.header.title;\n this.header.title$.pipe(takeUntil(this.ngOnDestroy$)).subscribe((title) => {\n this.toolbarTitle = title;\n });\n }\n\n this.observeTitle();\n\n const defaultTitleTemplate = this.customTitleTemplate || this.simpleTitleTemplate;\n /* eslint-disable */\n // prettier-ignore\n this.toolbarTitleTemplate = this.customToolbarTitleTemplate\n ? this.customToolbarTitleTemplate\n : typeof this.toolbarTitle === 'string'\n ? this.simpleToolbarTitleTemplate\n : defaultTitleTemplate;\n\n if (this.toolbarTitleClick.observed && this.hasInteractiveTitle === undefined) {\n this.hasInteractiveTitle = true;\n }\n }\n\n private observeTitle() {\n if (!this.hasPageTitle) {\n // Nothing to observe\n return;\n }\n if (this.isObservingTitle) {\n // Already observing\n return;\n }\n\n // We are not actually observing the title until after the `whenContentReady` promise has resolved,\n // but since we've already checked that the page has a title in the guard above,\n // we'll - eagerly - set this flag now to prevent unnecessary re-runs of the rest of this method:\n this.isObservingTitle = true;\n\n if (!this.titleIntersectionObserver) {\n this.titleIntersectionObserver = new IntersectionObserver(\n (entries) => {\n // In rare scenarios we get more than 1 entry - use the last one:\n const lastEntry = entries[entries.length - 1];\n if (lastEntry) {\n const showToolbarTitle = !lastEntry.isIntersecting;\n // Only flip the flag and run Change Detection when changed:\n if (showToolbarTitle !== this.toolbarTitleVisible) {\n this.toolbarTitleVisible = showToolbarTitle;\n this.changeDetectorRef.detectChanges();\n }\n }\n },\n { root: this.ionContentElement.nativeElement }\n );\n }\n\n // Run outside Angular to prevent unnecessary triggering change detection\n // and - under certain conditions - an infinite loop when called within ngAfterContentChecked:\n this.zone.runOutsideAngular(() => {\n this.whenContentReady().then(() => {\n const titleElementRef = this.pageTitle || this.header?.titleElement;\n if (titleElementRef?.nativeElement) {\n this.titleIntersectionObserver.observe(titleElementRef.nativeElement);\n }\n });\n });\n }\n\n private unobserveTitle() {\n const titleElementRef = this.pageTitle || this.header?.titleElement;\n if (titleElementRef) {\n this.titleIntersectionObserver?.unobserve(titleElementRef.nativeElement);\n }\n this.isObservingTitle = false;\n }\n\n private initializeActions() {\n if (this.headerActionsTemplate === undefined && !!this.header) {\n this.headerActionsTemplate = this.header.actionsTemplate;\n }\n if (this.hasHeader && this.isObservingActions && !this.header?.actionsElement) {\n // If we're already observing the header's actions element, but it's no longer present,\n // it means it has been removed from DOM (e.g. in virtual scrolling scenarios).\n // Flip observing flag:\n this.isObservingActions = false;\n }\n\n this.observeActions();\n\n this.customActions.forEach((pageAction) => {\n if (pageAction.isFixed) {\n this.fixedActionsTemplate = pageAction.template;\n } else if (pageAction.isSticky) {\n this.stickyActionsTemplate = pageAction.template;\n } else {\n this.pageActionsTemplate = pageAction.template;\n }\n });\n }\n\n private observeActions() {\n if (!this.header?.actionsElement) {\n // Nothing to observe\n return;\n }\n\n if (this.isObservingActions) {\n // Already observing\n return;\n }\n\n // We are not actually observing actions until after the `whenContentReady` promise has resolved,\n // but since we've already checked that there's an actions element present in the guard above,\n // we'll - eagerly - set this flag now to prevent unnecessary re-runs of the rest of this method:\n this.isObservingActions = true;\n\n if (!this.stickyActionsIntersectionObserver) {\n this.stickyActionsIntersectionObserver = new IntersectionObserver(\n (entries) => {\n // In rare scenarios we get more than 1 entry - use the last one:\n const lastEntry = entries[entries.length - 1];\n if (lastEntry) {\n const showToolbarActions = !lastEntry.isIntersecting;\n // Only flip the flag and run Change Detection when changed:\n if (showToolbarActions !== this.toolbarActionsVisible) {\n this.toolbarActionsVisible = showToolbarActions;\n this.changeDetectorRef.detectChanges();\n }\n }\n },\n { root: this.ionContentElement.nativeElement }\n );\n }\n\n // Run outside Angular to prevent unnecessary triggering change detection\n // and - under certain conditions - an infinite loop when called within ngAfterContentChecked:\n this.zone.runOutsideAngular(() => {\n this.whenContentReady().then(() => {\n if (this.header?.actionsElement?.nativeElement) {\n this.stickyActionsIntersectionObserver.observe(this.header.actionsElement.nativeElement);\n }\n });\n });\n }\n\n private unobserveActions() {\n if (this.header?.actionsElement) {\n this.stickyActionsIntersectionObserver?.unobserve(this.header.actionsElement.nativeElement);\n }\n this.isObservingActions = false;\n }\n\n private setActionButtonsWidth() {\n if (!this.ionToolbarButtonsElement) return;\n\n // Ensure ion-toolbar custom element has been defined (primarily when testing, but doesn't hurt):\n customElements.whenDefined(this.ionToolbarElement.nativeElement.localName).then(() => {\n // Ensure toolbar and buttons have been rendered and has dimensions:\n componentOnReady(this.ionToolbarElement.nativeElement, (toolbar) => {\n let startButtonsWidth = 0;\n let endButtonsWidth = 0;\n\n this.ionToolbarButtonsElement\n .map((ionButtonsElementRef) => ionButtonsElementRef.nativeElement)\n .forEach((ionButtonsElement) => {\n const style = getComputedStyle(ionButtonsElement);\n const margin = parseInt(style.marginLeft) + parseInt(style.marginRight);\n if (ionButtonsElement.getAttribute('slot') === 'start') {\n startButtonsWidth += ionButtonsElement.offsetWidth + margin;\n } else {\n endButtonsWidth += ionButtonsElement.offsetWidth + margin;\n }\n });\n\n const actionButtonsMaxWidth = Math.max(startButtonsWidth, endButtonsWidth);\n this.renderer.setStyle(\n toolbar,\n '--action-buttons-width',\n `${actionButtonsMaxWidth}px`,\n RendererStyleFlags2.DashCase\n );\n });\n });\n }\n\n private initializeContent() {\n this.customContent.forEach((content) => {\n if (content.isFixed) {\n this.fixedContentTemplate = content.template;\n } else {\n this.customContentTemplate = content.template;\n }\n });\n }\n\n private initializeStickyContent() {\n this.stickyContentTemplate = this.stickyContentRef;\n }\n\n private createStickyContentIntersectionObserver() {\n const options: IntersectionObserverInit = {\n root: this.ionContentElement.nativeElement,\n threshold: 1,\n };\n\n const callback: IntersectionObserverCallback = (entries) => {\n if (this.isStickyContentPinned !== !entries[0].isIntersecting) {\n this.isStickyContentPinned = !this.isStickyContentPinned;\n this.changeDetectorRef.detectChanges();\n }\n };\n return new IntersectionObserver(callback, options);\n }\n\n private getPathname(url: string) {\n return url.split('?')[0];\n }\n\n @HostListener('window:keyboardWillShow', ['$event'])\n _onKeyboardWillShow(info?: { keyboardHeight: number }) {\n if (info && info.keyboardHeight) {\n this.ionContentElement.nativeElement.style.setProperty(\n '--keyboard-offset',\n `${info.keyboardHeight}px`\n );\n }\n }\n\n @HostListener('window:keyboardWillHide')\n _onKeyboardWillHide() {\n this.ionContentElement.nativeElement.style.setProperty('--keyboard-offset', '0px');\n }\n\n @HostListener(`window:${selectedTabClickEvent}`)\n _onSelectedTabClick() {\n if (this.content) {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n }\n }\n}\n","<ion-header>\n <ion-toolbar\n [class.content-scrolled]=\"isContentScrolled\"\n [class.content-pinned]=\"isStickyContentPinned\"\n >\n <ion-buttons slot=\"start\">\n <ion-back-button\n text=\"\"\n [defaultHref]=\"defaultBackHref\"\n icon=\"assets/kirby/icons/svg/arrow-back.svg\"\n [style.visibility]=\"hideBackButton ? 'hidden' : null\"\n [attr.aria-label]=\"translations.get('back')\"\n ></ion-back-button>\n </ion-buttons>\n <ion-title [class.slide-and-fade-in]=\"toolbarTitleVisible\">\n <div class=\"toolbar-title\">\n <ng-container *ngIf=\"!titleActionIconTemplate && !hasInteractiveTitle\">\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </ng-container>\n <span\n *ngIf=\"!!titleActionIconTemplate || hasInteractiveTitle\"\n [class.clickable]=\"hasInteractiveTitle\"\n [class.has-icon]=\"!!titleActionIconTemplate\"\n (click)=\"onTitleClick($event)\"\n >\n <span>\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </span>\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </span>\n </div>\n </ion-title>\n <ion-buttons\n *ngIf=\"!!headerActionsTemplate\"\n class=\"hide\"\n slot=\"primary\"\n [class.fade-in]=\"toolbarActionsVisible\"\n >\n <ng-container\n *ngTemplateOutlet=\"headerActionsTemplate; injector: toolbarActionGroupInjector\"\n ></ng-container>\n </ion-buttons>\n <ion-buttons *ngIf=\"!!stickyActionsTemplate\" class=\"legacy-actions\" slot=\"primary\">\n <ng-container *ngTemplateOutlet=\"stickyActionsTemplate\"></ng-container>\n </ion-buttons>\n <ion-buttons *ngIf=\"!!fixedActionsTemplate\" class=\"legacy-actions\" slot=\"secondary\">\n <ng-container *ngTemplateOutlet=\"fixedActionsTemplate\"></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content\n scrollEvents=\"true\"\n forceOverscroll=\"false\"\n [class]=\"getMaxWidthClasses()\"\n [class.has-header]=\"hasHeader\"\n>\n <ion-refresher\n *ngIf=\"refresh.observers.length > 0\"\n (ionRefresh)=\"delegateRefreshEvent($event)\"\n slot=\"fixed\"\n >\n <kirby-spinner></kirby-spinner>\n </ion-refresher>\n\n <!-- Page header -->\n <div class=\"page-header-container\" *ngIf=\"hasPageTitle && !hasHeader\">\n <div\n class=\"page-header\"\n [ngClass]=\"{\n 'text-center': titleAlignment === 'center',\n 'text-right': titleAlignment === 'right',\n }\"\n >\n <div #pageTitle class=\"page-title\" [class.has-actions]=\"!!pageActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"customTitleTemplate || defaultPageTitleTemplate\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"pageActionsTemplate || defaultPageActionsTemplate\"\n ></ng-container>\n </div>\n <div *ngIf=\"hasPageSubtitle\" class=\"page-subtitle\">\n <ng-container\n *ngTemplateOutlet=\"customSubtitleTemplate || defaultPageSubtitleTemplate\"\n ></ng-container>\n </div>\n </div>\n </div>\n\n <!-- Header -->\n <div class=\"page-header-container\" *ngIf=\"hasHeader\">\n <ng-content select=\"kirby-header\"></ng-content>\n </div>\n\n <!-- Sticky content -->\n <ng-container *ngIf=\"stickyContentTemplate\">\n <div\n #stickyContentContainer\n class=\"sticky-content-container\"\n [class.content-pinned]=\"isStickyContentPinned\"\n >\n <div>\n <ng-container *ngTemplateOutlet=\"stickyContentTemplate\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Content -->\n <div class=\"content-inner\">\n <ng-container\n *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\"\n ></ng-container>\n </div>\n\n <div slot=\"fixed\" class=\"fixed-content\" *ngIf=\"fixedContentTemplate\">\n <div class=\"content-inner\">\n <ng-container *ngTemplateOutlet=\"fixedContentTemplate\"></ng-container>\n </div>\n </div>\n</ion-content>\n\n<ion-footer>\n <ng-content select=\"kirby-page-footer\"></ng-content>\n</ion-footer>\n\n<ng-template #defaultPageTitleTemplate>\n <h1 [kirbyFitHeading]=\"fitHeadingConfig\">\n <ng-container *ngTemplateOutlet=\"simpleTitleTemplate\"></ng-container>\n </h1>\n</ng-template>\n<ng-template #defaultPageSubtitleTemplate>\n <ng-container *ngTemplateOutlet=\"simpleSubtitleTemplate\"></ng-container>\n</ng-template>\n<ng-template #defaultPageActionsTemplate>\n <ng-content select=\"kirby-page-actions\"></ng-content>\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n <ng-content select=\"kirby-page-content\"></ng-content>\n</ng-template>\n\n<ng-template #simpleTitleTemplate>{{ title }}</ng-template>\n<ng-template #simpleSubtitleTemplate>{{ subtitle }}</ng-template>\n<ng-template #simpleToolbarTitleTemplate>{{ toolbarTitle }}</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\n\nimport { PageComponent } from '../page.component';\n\n@Component({\n selector: 'kirby-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageFooterComponent implements OnDestroy {\n @Input()\n hasPadding: boolean = true;\n\n constructor(\n @Optional() @SkipSelf() private pageComponent: PageComponent,\n private hostElement: ElementRef,\n private renderer: Renderer2\n ) {\n if (!pageComponent) {\n throw new Error('Page footer must reside inside of a Kirby page');\n }\n }\n\n close() {\n this.pageComponent.tabBarBottomHidden = false;\n this.renderer.removeChild(\n this.hostElement.nativeElement.parentElement,\n this.hostElement.nativeElement,\n true\n );\n }\n\n ngOnDestroy(): void {\n this.pageComponent.tabBarBottomHidden = false;\n }\n}\n","<div class=\"wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { FitHeadingDirective } from '@kirbydesign/designsystem/shared';\n\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport {\n IonBackButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonRefresher,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { PageFooterComponent } from './page-footer/page-footer.component';\nimport {\n PageActionsComponent,\n PageActionsDirective,\n PageComponent,\n PageContentComponent,\n PageContentDirective,\n PageProgressComponent,\n PageStickyContentDirective,\n PageSubtitleDirective,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n} from './page.component';\n\n@NgModule({\n declarations: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n PageStickyContentDirective,\n ],\n imports: [\n CommonModule,\n FitHeadingDirective,\n SpinnerModule,\n HeaderModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonContent,\n IonTitle,\n IonRefresher,\n IonFooter,\n ],\n exports: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n FitHeadingDirective,\n PageStickyContentDirective,\n ],\n})\nexport class PageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.PageComponent"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-page.mjs","sources":["../../page/src/page.component.ts","../../page/src/page.component.html","../../page/src/page-footer/page-footer.component.ts","../../page/src/page-footer/page-footer.component.html","../../page/src/page.module.ts","../../page/src/kirbydesign-designsystem-page.ts"],"sourcesContent":["import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport {\n IonBackButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonRouterOutlet,\n IonToolbar,\n NavController,\n} from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\nimport type { ScrollDetail } from '@ionic/core';\nimport { selectedTabClickEvent, TabsComponent } from '@kirbydesign/designsystem/tabs';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { ACTIONGROUP_CONFIG, ActionGroupConfig } from '@kirbydesign/designsystem/action-group';\nimport {\n HeaderActionsDirective,\n HeaderComponent,\n HeaderTitleActionIconDirective,\n} from '@kirbydesign/designsystem/header';\nimport { IonicElementPartHelper, KirbyAnimation } from '@kirbydesign/designsystem/helpers';\nimport {\n ModalElementComponent,\n ModalElementsAdvertiser,\n ModalElementType,\n ModalNavigationService,\n} from '@kirbydesign/designsystem/modal';\nimport {\n FitHeadingConfig,\n ResizeObserverService,\n TranslationService,\n} from '@kirbydesign/designsystem/shared';\n\n/**\n * Specify scroll event debounce time in ms and scrolled offset from top in pixels\n */\nconst contentScrollDebounceTimeInMS = 10;\nconst contentScrolledOffsetInPixels = 4;\n\ntype stickyConfig = { sticky: boolean };\ntype fixedConfig = { fixed: boolean };\ntype MaxWidth = 'default' | 'lg' | 'xl' | 'full';\n\nexport const PAGE_BACK_BUTTON_OVERRIDE = new InjectionToken<PageBackButtonOverride>(\n 'page-back-button-override'\n);\n\nexport interface PageBackButtonOverride {\n navigateBack: (\n routerOutlet: IonRouterOutlet,\n navCtrl: NavController,\n defaultBackHref: string\n ) => void;\n}\n\n/**\n * Event emitted when \"pull-to-refresh\" begins.\n */\nexport interface PullToRefreshEvent {\n /**\n * Invoke this callback-method when action to perform upon \"pull-to-refresh\" completes.\n */\n complete();\n}\n\n@Directive({\n selector: '[kirbyPageTitle]',\n standalone: false,\n})\nexport class PageTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageSubtitle]',\n standalone: false,\n})\nexport class PageSubtitleDirective {}\n\n@Directive({\n selector: '[kirbyPageToolbarTitle]',\n standalone: false,\n})\nexport class PageToolbarTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageActions]',\n standalone: false,\n})\nexport class PageActionsDirective {\n @Input('kirbyPageActions') config: stickyConfig | fixedConfig;\n private readonly stickyDefault = true;\n private readonly fixedDefault = false;\n\n constructor(public template: TemplateRef<any>) {\n console.warn(\n 'Defining Page Actions via *kirbyPageActions is deprecated and will be removed in Kirby v11. A Kirby Header with Actions should be used instead, as it has an improved API with better support for responsive layouts.'\n );\n }\n\n get isSticky(): boolean {\n return this.config ? (this.config as stickyConfig).sticky : this.stickyDefault;\n }\n\n get isFixed(): boolean {\n return this.config ? (this.config as fixedConfig).fixed : this.fixedDefault;\n }\n}\n\n@Directive({\n selector: '[kirbyPageContent]',\n standalone: false,\n})\nexport class PageContentDirective {\n @Input('kirbyPageContent') config: fixedConfig;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isFixed(): boolean {\n return this.config && this.config.fixed;\n }\n}\n\n@Directive({\n selector: '[kirbyPageStickyContent]',\n standalone: false,\n})\nexport class PageStickyContentDirective {}\n\n@Component({\n selector: 'kirby-page-progress',\n template: `\n <ng-content></ng-content>\n `,\n styles: [\n `\n :host {\n display: flex;\n margin-inline-end: 4px; /* Add spacing to potential supplementary action button */\n }\n `,\n ],\n standalone: false,\n})\nexport class PageProgressComponent extends ModalElementComponent {\n // TODO: Find alternative implementation, which aligns with future page configuration / consumption\n // This implementation was chosen over expanding `moveChild` method in component wrapper with yet another scenario\n @HostBinding('attr.slot') slot = 'start';\n\n constructor(\n @Optional() modalElementsAdvertiser: ModalElementsAdvertiser,\n elementRef: ElementRef<HTMLElement>\n ) {\n super(ModalElementType.PAGE_PROGRESS, elementRef, modalElementsAdvertiser);\n }\n}\n@Component({\n selector: 'kirby-page-title',\n template: `\n <ng-content></ng-content>\n `,\n standalone: false,\n})\nexport class PageTitleComponent extends ModalElementComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() modalElementsAdvertiser: ModalElementsAdvertiser\n ) {\n super(ModalElementType.TITLE, elementRef, modalElementsAdvertiser);\n }\n}\n\n@Component({\n selector: 'kirby-page-content',\n template: `\n <ng-content></ng-content>\n `,\n standalone: false,\n})\nexport class PageContentComponent {}\n\n@Component({\n selector: 'kirby-page-actions',\n template: `\n <ng-content select=\"button[kirby-button]\"></ng-content>\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n column-gap: 8px;\n }\n `,\n ],\n standalone: false,\n})\nexport class PageActionsComponent {}\n\n@Component({\n selector: 'kirby-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n standalone: false,\n})\nexport class PageComponent\n implements OnInit, OnDestroy, AfterViewInit, AfterContentChecked, OnChanges\n{\n @Input() title: string;\n @Input() subtitle: string;\n @Input() toolbarTitle: string;\n @Input() titleAlignment: 'left' | 'center' | 'right' = 'left';\n @Input() defaultBackHref: string;\n @Input() hideBackButton: boolean;\n @Input() titleMaxLines: number;\n @Input() hasInteractiveTitle: boolean;\n\n @Input() set maxWidth(width: MaxWidth) {\n this._maxWidth = width;\n }\n\n get maxWidth(): MaxWidth {\n return this._maxWidth;\n }\n\n private _maxWidth: MaxWidth = 'default';\n\n private _tabBarBottomHidden: boolean;\n public get tabBarBottomHidden(): boolean {\n return this._tabBarBottomHidden;\n }\n @Input()\n public set tabBarBottomHidden(value: boolean) {\n if (this.tabsComponent) {\n // as we are setting a class on tabs, we need this to happen in a separate cd cycle\n setTimeout(() => {\n this.tabsComponent.tabBarBottomHidden = value;\n this.changeDetectorRef.markForCheck();\n });\n }\n this._tabBarBottomHidden = value;\n }\n\n @Output() enter = new EventEmitter<void>();\n @Output() leave = new EventEmitter<void>();\n @Output() refresh = new EventEmitter<PullToRefreshEvent>();\n @Output() backButtonClick = new EventEmitter<Event>();\n @Output() toolbarTitleClick = new EventEmitter<PointerEvent>();\n\n @ViewChild(IonContent, { static: true }) private content?: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef })\n private ionContentElement: ElementRef<HTMLIonContentElement>;\n @ViewChild(IonHeader, { static: true, read: ElementRef })\n ionHeaderElement: ElementRef<HTMLIonHeaderElement>;\n @ViewChild(IonFooter, { static: true, read: ElementRef })\n private ionFooterElement: ElementRef<HTMLIonFooterElement>;\n @ViewChild(IonToolbar, { static: true, read: ElementRef })\n private ionToolbarElement: ElementRef<HTMLIonToolbarElement>;\n @ViewChildren(IonButtons, { read: ElementRef })\n private ionToolbarButtonsElement: QueryList<ElementRef<HTMLIonButtonsElement>>;\n @ViewChild(IonBackButton, { static: false })\n private backButton: IonBackButton;\n @ViewChild('pageTitle', { static: false, read: ElementRef })\n private pageTitle: ElementRef;\n @ViewChild('stickyContentContainer', { static: false, read: ElementRef })\n private stickyContentContainer: ElementRef;\n\n @ViewChild('simpleTitleTemplate', { static: true, read: TemplateRef })\n private simpleTitleTemplate: TemplateRef<any>;\n @ViewChild('simpleToolbarTitleTemplate', { static: true, read: TemplateRef })\n private simpleToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageToolbarTitleDirective, { static: false, read: TemplateRef })\n private customToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageTitleDirective, { static: false, read: TemplateRef })\n customTitleTemplate: TemplateRef<any>;\n @ContentChild(PageSubtitleDirective, { static: false, read: TemplateRef })\n customSubtitleTemplate: TemplateRef<any>;\n @ContentChildren(PageActionsDirective)\n customActions: QueryList<PageActionsDirective>;\n @ContentChildren(PageContentDirective)\n private customContent: QueryList<PageContentDirective>;\n @ContentChild(PageStickyContentDirective, { static: false, read: TemplateRef })\n private stickyContentRef: TemplateRef<any>;\n @ContentChild(HeaderComponent)\n header?: HeaderComponent;\n\n hasHeader: boolean;\n hasPageTitle: boolean;\n hasPageSubtitle: boolean;\n toolbarTitleVisible: boolean;\n toolbarActionsVisible: boolean;\n isContentScrolled: boolean;\n isStickyContentPinned = false;\n\n fitHeadingConfig: FitHeadingConfig;\n\n toolbarTitleTemplate: TemplateRef<any>;\n customContentTemplate: TemplateRef<any>;\n pageActionsTemplate: TemplateRef<any>;\n fixedContentTemplate: TemplateRef<any>;\n stickyActionsTemplate: TemplateRef<any>;\n fixedActionsTemplate: TemplateRef<any>;\n stickyContentTemplate: TemplateRef<PageStickyContentDirective>;\n headerActionsTemplate: TemplateRef<HeaderActionsDirective>;\n titleActionIconTemplate: TemplateRef<HeaderTitleActionIconDirective>;\n\n private titleIntersectionObserver?: IntersectionObserver;\n private stickyActionsIntersectionObserver?: IntersectionObserver;\n private stickyContentIntersectionObserver?: IntersectionObserver;\n private isObservingTitle = false;\n private isObservingActions = false;\n\n private url: string;\n private isActive: boolean;\n\n private ngOnDestroy$: Subject<void> = new Subject<void>();\n private contentScrolled$: Observable<ScrollDetail>;\n\n private navigationStart$: Observable<NavigationStart> = this.router.events.pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntil(this.ngOnDestroy$)\n );\n\n private navigationEnd$: Observable<NavigationEnd> = this.router.events.pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this.ngOnDestroy$)\n );\n\n toolbarActionGroupInjector: Injector;\n\n constructor(\n private elementRef: ElementRef,\n private injector: Injector,\n private renderer: Renderer2,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n private zone: NgZone,\n private modalNavigationService: ModalNavigationService,\n private resizeObserverService: ResizeObserverService,\n @Optional() @SkipSelf() private tabsComponent: TabsComponent,\n @Optional()\n @Inject(PAGE_BACK_BUTTON_OVERRIDE)\n private backButtonOverride: PageBackButtonOverride,\n @Optional()\n private routerOutlet: IonRouterOutlet,\n @Optional()\n private navCtrl: NavController,\n private ionicElementPartHelper: IonicElementPartHelper,\n public translations: TranslationService\n ) {}\n\n private contentReadyPromise: Promise<void>;\n private whenContentReady() {\n if (!this.contentReadyPromise) {\n this.contentReadyPromise = new Promise((resolve) => {\n this.resizeObserverService.observe(this.ionContentElement, (entry) => {\n if (entry.contentRect.height > 0) {\n this.resizeObserverService.unobserve(this.ionContentElement);\n resolve();\n }\n });\n });\n }\n return this.contentReadyPromise;\n }\n\n ngOnInit(): void {\n this.removeWrapper();\n this.ionicElementPartHelper.setPart(\n 'background',\n this.ionToolbarElement,\n '.toolbar-background'\n );\n\n const actionGroupConfig: ActionGroupConfig = {\n isCondensed: true,\n maxVisibleActions: 1,\n };\n this.toolbarActionGroupInjector = Injector.create({\n providers: [\n {\n provide: ACTIONGROUP_CONFIG,\n useValue: actionGroupConfig,\n },\n ],\n parent: this.injector,\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.titleMaxLines) {\n this.fitHeadingConfig = {\n maxLines: changes.titleMaxLines.currentValue,\n };\n }\n if (changes.subtitle && !changes.subtitle.isFirstChange) {\n this.subtitle = changes.title.currentValue;\n this.hasPageSubtitle = this.subtitle !== undefined;\n }\n }\n\n ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.contentScrolled$ = this.content.ionScroll.pipe(\n debounceTime(contentScrollDebounceTimeInMS),\n map((event) => event.detail),\n takeUntil(this.ngOnDestroy$)\n );\n\n this.contentScrolled$.subscribe((scrollInfo: ScrollDetail) => {\n if (scrollInfo.scrollTop > contentScrolledOffsetInPixels !== this.isContentScrolled) {\n this.isContentScrolled = !this.isContentScrolled;\n this.changeDetectorRef.detectChanges();\n }\n });\n });\n\n // This instance has observed a page enter so register the correct url for this instance\n this.url = this.router.url;\n this.onEnter();\n\n // Watch navigation events for page enter and leave\n this.navigationStart$.subscribe((event: NavigationStart) => {\n if (\n this.getPathname(event.url) !== this.getPathname(this.url) &&\n !this.modalNavigationService.isModalRoute(this.url) &&\n !this.modalNavigationService.isModalRoute(event.url)\n ) {\n this.onLeave();\n }\n });\n\n this.navigationEnd$.subscribe((event: NavigationEnd) => {\n if (this.getPathname(event.urlAfterRedirects) === this.getPathname(this.url)) {\n this.onEnter();\n }\n });\n\n this.interceptBackButtonClicksSetup();\n this.initializeStickyIntersectionObserver();\n this.setActionButtonsWidth();\n }\n\n ngAfterContentChecked(): void {\n this.initializeHeader();\n this.initializeTitle();\n this.initializeActions();\n this.initializeContent();\n this.initializeStickyContent();\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngOnDestroy$.next();\n this.ngOnDestroy$.complete();\n\n this.titleIntersectionObserver?.disconnect();\n this.stickyActionsIntersectionObserver?.disconnect();\n this.stickyContentIntersectionObserver?.disconnect();\n }\n\n delegateRefreshEvent(event: any): void {\n this.refresh.emit({\n complete: event.target.complete.bind(event.target),\n });\n }\n\n getMaxWidthClasses() {\n if (!this.maxWidth) {\n return '';\n }\n if (this.maxWidth === 'default') {\n return '';\n }\n return `max-width-${this.maxWidth}`;\n }\n\n onTitleClick(event: PointerEvent) {\n if (this.toolbarTitleClick.observed) {\n this.toolbarTitleClick.emit(event);\n } else {\n this.header?.titleClick.emit(event);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, this.ionHeaderElement.nativeElement);\n this.renderer.appendChild(parent, this.ionContentElement.nativeElement);\n this.renderer.appendChild(parent, this.ionFooterElement.nativeElement);\n }\n\n private onEnter() {\n if (this.isActive) return;\n this.isActive = true;\n\n this.enter.emit();\n\n this.observeTitle();\n this.observeActions();\n }\n\n private onLeave() {\n if (!this.isActive) return;\n this.isActive = false;\n\n this.leave.emit();\n\n this.unobserveTitle();\n this.unobserveActions();\n\n if (this.tabBarBottomHidden && this.tabsComponent) {\n this.tabsComponent.tabBarBottomHidden = false;\n }\n }\n\n private interceptBackButtonClicksSetup() {\n if (this.backButtonOverride) {\n this.backButton.onClick = (event: Event) => {\n event.preventDefault();\n this.backButtonOverride.navigateBack(this.routerOutlet, this.navCtrl, this.defaultBackHref);\n };\n }\n\n // Intercept back-button click events, defaulting to the built-in click-handler.\n if (this.backButtonClick.observers.length === 0) {\n this.backButtonClick\n .pipe(takeUntil(this.ngOnDestroy$))\n .subscribe(this.backButton.onClick.bind(this.backButton));\n }\n this.backButton.onClick = (event: Event) => {\n this.backButtonClick.emit(event);\n };\n }\n\n private initializeStickyIntersectionObserver() {\n if (this.stickyContentTemplate) {\n // Sticky content present - start observing for stickiness\n if (!this.stickyContentIntersectionObserver) {\n this.stickyContentIntersectionObserver = this.createStickyContentIntersectionObserver();\n }\n setTimeout(() => {\n this.stickyContentIntersectionObserver.observe(this.stickyContentContainer.nativeElement);\n });\n }\n }\n\n private initializeHeader() {\n if (this.hasHeader === undefined && !!this.header) {\n this.hasHeader = true;\n // Header could later be removed from DOM (e.g. in virtual scrolling scenarios),\n // so store a reference to `header.titleActionIconTemplate` and `header.titleClick`:\n this.titleActionIconTemplate = this.header.titleActionIconTemplate;\n if (this.header.titleClick.observed && this.hasInteractiveTitle === undefined) {\n this.hasInteractiveTitle = true;\n }\n }\n }\n\n private initializeTitle() {\n if (this.hasHeader && this.isObservingTitle && !this.header?.titleElement) {\n // If we're already observing the header's title element, but it's no longer present,\n // it means it has been removed from DOM (e.g. in virtual scrolling scenarios).\n // Flip observing flag:\n this.isObservingTitle = false;\n }\n if (this.hasPageTitle) {\n if (!this.isObservingTitle && !!this.header?.titleElement) {\n // Header and title element re-attached to DOM - observe title:\n this.observeTitle();\n }\n\n // Ensures rest of initializeTitle() won't run, if already initialized\n return;\n }\n\n this.hasPageTitle =\n this.title !== undefined || !!this.customTitleTemplate || !!this.header?.title;\n this.toolbarTitleVisible = !this.hasPageTitle;\n this.hasPageSubtitle = this.subtitle !== undefined || !!this.customSubtitleTemplate;\n if (this.header?.title && !this.toolbarTitle) {\n this.toolbarTitle = this.header.title;\n this.header.title$.pipe(takeUntil(this.ngOnDestroy$)).subscribe((title) => {\n this.toolbarTitle = title;\n });\n }\n\n this.observeTitle();\n\n const defaultTitleTemplate = this.customTitleTemplate || this.simpleTitleTemplate;\n /* eslint-disable */\n // prettier-ignore\n this.toolbarTitleTemplate = this.customToolbarTitleTemplate\n ? this.customToolbarTitleTemplate\n : typeof this.toolbarTitle === 'string'\n ? this.simpleToolbarTitleTemplate\n : defaultTitleTemplate;\n\n if (this.toolbarTitleClick.observed && this.hasInteractiveTitle === undefined) {\n this.hasInteractiveTitle = true;\n }\n }\n\n private observeTitle() {\n if (!this.hasPageTitle) {\n // Nothing to observe\n return;\n }\n if (this.isObservingTitle) {\n // Already observing\n return;\n }\n\n // We are not actually observing the title until after the `whenContentReady` promise has resolved,\n // but since we've already checked that the page has a title in the guard above,\n // we'll - eagerly - set this flag now to prevent unnecessary re-runs of the rest of this method:\n this.isObservingTitle = true;\n\n if (!this.titleIntersectionObserver) {\n this.titleIntersectionObserver = new IntersectionObserver(\n (entries) => {\n // In rare scenarios we get more than 1 entry - use the last one:\n const lastEntry = entries[entries.length - 1];\n if (lastEntry) {\n const showToolbarTitle = !lastEntry.isIntersecting;\n // Only flip the flag and run Change Detection when changed:\n if (showToolbarTitle !== this.toolbarTitleVisible) {\n this.toolbarTitleVisible = showToolbarTitle;\n this.changeDetectorRef.detectChanges();\n }\n }\n },\n { root: this.ionContentElement.nativeElement }\n );\n }\n\n // Run outside Angular to prevent unnecessary triggering change detection\n // and - under certain conditions - an infinite loop when called within ngAfterContentChecked:\n this.zone.runOutsideAngular(() => {\n this.whenContentReady().then(() => {\n const titleElementRef = this.pageTitle || this.header?.titleElement;\n if (titleElementRef?.nativeElement) {\n this.titleIntersectionObserver.observe(titleElementRef.nativeElement);\n }\n });\n });\n }\n\n private unobserveTitle() {\n const titleElementRef = this.pageTitle || this.header?.titleElement;\n if (titleElementRef) {\n this.titleIntersectionObserver?.unobserve(titleElementRef.nativeElement);\n }\n this.isObservingTitle = false;\n }\n\n private initializeActions() {\n if (this.headerActionsTemplate === undefined && !!this.header) {\n this.headerActionsTemplate = this.header.actionsTemplate;\n }\n if (this.hasHeader && this.isObservingActions && !this.header?.actionsElement) {\n // If we're already observing the header's actions element, but it's no longer present,\n // it means it has been removed from DOM (e.g. in virtual scrolling scenarios).\n // Flip observing flag:\n this.isObservingActions = false;\n }\n\n this.observeActions();\n\n this.customActions.forEach((pageAction) => {\n if (pageAction.isFixed) {\n this.fixedActionsTemplate = pageAction.template;\n } else if (pageAction.isSticky) {\n this.stickyActionsTemplate = pageAction.template;\n } else {\n this.pageActionsTemplate = pageAction.template;\n }\n });\n }\n\n private observeActions() {\n if (!this.header?.actionsElement) {\n // Nothing to observe\n return;\n }\n\n if (this.isObservingActions) {\n // Already observing\n return;\n }\n\n // We are not actually observing actions until after the `whenContentReady` promise has resolved,\n // but since we've already checked that there's an actions element present in the guard above,\n // we'll - eagerly - set this flag now to prevent unnecessary re-runs of the rest of this method:\n this.isObservingActions = true;\n\n if (!this.stickyActionsIntersectionObserver) {\n this.stickyActionsIntersectionObserver = new IntersectionObserver(\n (entries) => {\n // In rare scenarios we get more than 1 entry - use the last one:\n const lastEntry = entries[entries.length - 1];\n if (lastEntry) {\n const showToolbarActions = !lastEntry.isIntersecting;\n // Only flip the flag and run Change Detection when changed:\n if (showToolbarActions !== this.toolbarActionsVisible) {\n this.toolbarActionsVisible = showToolbarActions;\n this.changeDetectorRef.detectChanges();\n }\n }\n },\n { root: this.ionContentElement.nativeElement }\n );\n }\n\n // Run outside Angular to prevent unnecessary triggering change detection\n // and - under certain conditions - an infinite loop when called within ngAfterContentChecked:\n this.zone.runOutsideAngular(() => {\n this.whenContentReady().then(() => {\n if (this.header?.actionsElement?.nativeElement) {\n this.stickyActionsIntersectionObserver.observe(this.header.actionsElement.nativeElement);\n }\n });\n });\n }\n\n private unobserveActions() {\n if (this.header?.actionsElement) {\n this.stickyActionsIntersectionObserver?.unobserve(this.header.actionsElement.nativeElement);\n }\n this.isObservingActions = false;\n }\n\n private setActionButtonsWidth() {\n if (!this.ionToolbarButtonsElement) return;\n\n // Ensure ion-toolbar custom element has been defined (primarily when testing, but doesn't hurt):\n customElements.whenDefined(this.ionToolbarElement.nativeElement.localName).then(() => {\n // Ensure toolbar and buttons have been rendered and has dimensions:\n componentOnReady(this.ionToolbarElement.nativeElement, (toolbar) => {\n let startButtonsWidth = 0;\n let endButtonsWidth = 0;\n\n this.ionToolbarButtonsElement\n .map((ionButtonsElementRef) => ionButtonsElementRef.nativeElement)\n .forEach((ionButtonsElement) => {\n const style = getComputedStyle(ionButtonsElement);\n const margin = parseInt(style.marginLeft) + parseInt(style.marginRight);\n if (ionButtonsElement.getAttribute('slot') === 'start') {\n startButtonsWidth += ionButtonsElement.offsetWidth + margin;\n } else {\n endButtonsWidth += ionButtonsElement.offsetWidth + margin;\n }\n });\n\n const actionButtonsMaxWidth = Math.max(startButtonsWidth, endButtonsWidth);\n this.renderer.setStyle(\n toolbar,\n '--action-buttons-width',\n `${actionButtonsMaxWidth}px`,\n RendererStyleFlags2.DashCase\n );\n });\n });\n }\n\n private initializeContent() {\n this.customContent.forEach((content) => {\n if (content.isFixed) {\n this.fixedContentTemplate = content.template;\n } else {\n this.customContentTemplate = content.template;\n }\n });\n }\n\n private initializeStickyContent() {\n this.stickyContentTemplate = this.stickyContentRef;\n }\n\n private createStickyContentIntersectionObserver() {\n const options: IntersectionObserverInit = {\n root: this.ionContentElement.nativeElement,\n threshold: 1,\n };\n\n const callback: IntersectionObserverCallback = (entries) => {\n if (this.isStickyContentPinned !== !entries[0].isIntersecting) {\n this.isStickyContentPinned = !this.isStickyContentPinned;\n this.changeDetectorRef.detectChanges();\n }\n };\n return new IntersectionObserver(callback, options);\n }\n\n private getPathname(url: string) {\n return url.split('?')[0];\n }\n\n @HostListener('window:keyboardWillShow', ['$event'])\n _onKeyboardWillShow(info?: { keyboardHeight: number }) {\n if (info && info.keyboardHeight) {\n this.ionContentElement.nativeElement.style.setProperty(\n '--keyboard-offset',\n `${info.keyboardHeight}px`\n );\n }\n }\n\n @HostListener('window:keyboardWillHide')\n _onKeyboardWillHide() {\n this.ionContentElement.nativeElement.style.setProperty('--keyboard-offset', '0px');\n }\n\n @HostListener(`window:${selectedTabClickEvent}`)\n _onSelectedTabClick() {\n if (this.content) {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n }\n }\n}\n","<ion-header>\n <ion-toolbar\n [class.content-scrolled]=\"isContentScrolled\"\n [class.content-pinned]=\"isStickyContentPinned\"\n >\n <ion-buttons slot=\"start\">\n <ion-back-button\n text=\"\"\n [defaultHref]=\"defaultBackHref\"\n icon=\"assets/kirby/icons/svg/arrow-back.svg\"\n [style.visibility]=\"hideBackButton ? 'hidden' : null\"\n [attr.aria-label]=\"translations.get('back')\"\n ></ion-back-button>\n </ion-buttons>\n <ion-title [class.slide-and-fade-in]=\"toolbarTitleVisible\">\n <div class=\"toolbar-title\">\n <ng-container *ngIf=\"!titleActionIconTemplate && !hasInteractiveTitle\">\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </ng-container>\n <span\n *ngIf=\"!!titleActionIconTemplate || hasInteractiveTitle\"\n [class.clickable]=\"hasInteractiveTitle\"\n [class.has-icon]=\"!!titleActionIconTemplate\"\n (click)=\"onTitleClick($event)\"\n >\n <span>\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </span>\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </span>\n </div>\n </ion-title>\n <ion-buttons\n *ngIf=\"!!headerActionsTemplate\"\n class=\"hide\"\n slot=\"primary\"\n [class.fade-in]=\"toolbarActionsVisible\"\n >\n <ng-container\n *ngTemplateOutlet=\"headerActionsTemplate; injector: toolbarActionGroupInjector\"\n ></ng-container>\n </ion-buttons>\n <ion-buttons *ngIf=\"!!stickyActionsTemplate\" class=\"legacy-actions\" slot=\"primary\">\n <ng-container *ngTemplateOutlet=\"stickyActionsTemplate\"></ng-container>\n </ion-buttons>\n <ion-buttons *ngIf=\"!!fixedActionsTemplate\" class=\"legacy-actions\" slot=\"secondary\">\n <ng-container *ngTemplateOutlet=\"fixedActionsTemplate\"></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content\n scrollEvents=\"true\"\n forceOverscroll=\"false\"\n [class]=\"getMaxWidthClasses()\"\n [class.has-header]=\"hasHeader\"\n>\n <ion-refresher\n *ngIf=\"refresh.observers.length > 0\"\n (ionRefresh)=\"delegateRefreshEvent($event)\"\n slot=\"fixed\"\n >\n <kirby-spinner></kirby-spinner>\n </ion-refresher>\n\n <!-- Page header -->\n <div class=\"page-header-container\" *ngIf=\"hasPageTitle && !hasHeader\">\n <div\n class=\"page-header\"\n [ngClass]=\"{\n 'text-center': titleAlignment === 'center',\n 'text-right': titleAlignment === 'right',\n }\"\n >\n <div #pageTitle class=\"page-title\" [class.has-actions]=\"!!pageActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"customTitleTemplate || defaultPageTitleTemplate\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"pageActionsTemplate || defaultPageActionsTemplate\"\n ></ng-container>\n </div>\n <div *ngIf=\"hasPageSubtitle\" class=\"page-subtitle\">\n <ng-container\n *ngTemplateOutlet=\"customSubtitleTemplate || defaultPageSubtitleTemplate\"\n ></ng-container>\n </div>\n </div>\n </div>\n\n <!-- Header -->\n <div class=\"page-header-container\" *ngIf=\"hasHeader\">\n <ng-content select=\"kirby-header\"></ng-content>\n </div>\n\n <!-- Sticky content -->\n <ng-container *ngIf=\"stickyContentTemplate\">\n <div\n #stickyContentContainer\n class=\"sticky-content-container\"\n [class.content-pinned]=\"isStickyContentPinned\"\n >\n <div>\n <ng-container *ngTemplateOutlet=\"stickyContentTemplate\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Content -->\n <div class=\"content-inner\">\n <ng-container\n *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\"\n ></ng-container>\n </div>\n\n <div slot=\"fixed\" class=\"fixed-content\" *ngIf=\"fixedContentTemplate\">\n <div class=\"content-inner\">\n <ng-container *ngTemplateOutlet=\"fixedContentTemplate\"></ng-container>\n </div>\n </div>\n</ion-content>\n\n<ion-footer>\n <ng-content select=\"kirby-page-footer\"></ng-content>\n</ion-footer>\n\n<ng-template #defaultPageTitleTemplate>\n <h1 [kirbyFitHeading]=\"fitHeadingConfig\">\n <ng-container *ngTemplateOutlet=\"simpleTitleTemplate\"></ng-container>\n </h1>\n</ng-template>\n<ng-template #defaultPageSubtitleTemplate>\n <ng-container *ngTemplateOutlet=\"simpleSubtitleTemplate\"></ng-container>\n</ng-template>\n<ng-template #defaultPageActionsTemplate>\n <ng-content select=\"kirby-page-actions\"></ng-content>\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n <ng-content select=\"kirby-page-content\"></ng-content>\n</ng-template>\n\n<ng-template #simpleTitleTemplate>{{ title }}</ng-template>\n<ng-template #simpleSubtitleTemplate>{{ subtitle }}</ng-template>\n<ng-template #simpleToolbarTitleTemplate>{{ toolbarTitle }}</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\n\nimport { PageComponent } from '../page.component';\n\n@Component({\n selector: 'kirby-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PageFooterComponent implements OnDestroy {\n @Input()\n hasPadding: boolean = true;\n\n constructor(\n @Optional() @SkipSelf() private pageComponent: PageComponent,\n private hostElement: ElementRef,\n private renderer: Renderer2\n ) {\n if (!pageComponent) {\n throw new Error('Page footer must reside inside of a Kirby page');\n }\n }\n\n close() {\n this.pageComponent.tabBarBottomHidden = false;\n this.renderer.removeChild(\n this.hostElement.nativeElement.parentElement,\n this.hostElement.nativeElement,\n true\n );\n }\n\n ngOnDestroy(): void {\n this.pageComponent.tabBarBottomHidden = false;\n }\n}\n","<div class=\"wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { FitHeadingDirective } from '@kirbydesign/designsystem/shared';\n\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport {\n IonBackButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonRefresher,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { PageFooterComponent } from './page-footer/page-footer.component';\nimport {\n PageActionsComponent,\n PageActionsDirective,\n PageComponent,\n PageContentComponent,\n PageContentDirective,\n PageProgressComponent,\n PageStickyContentDirective,\n PageSubtitleDirective,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n} from './page.component';\n\n@NgModule({\n declarations: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n PageStickyContentDirective,\n ],\n imports: [\n CommonModule,\n FitHeadingDirective,\n SpinnerModule,\n HeaderModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonContent,\n IonTitle,\n IonRefresher,\n IonFooter,\n ],\n exports: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n FitHeadingDirective,\n PageStickyContentDirective,\n ],\n})\nexport class PageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.PageComponent"],"mappings":"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"}
@@ -134,14 +134,14 @@ class PopoverComponent {
134
134
  this.renderer.setStyle(this.targetElement, 'pointer-events', 'none');
135
135
  }
136
136
  }
137
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
138
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PopoverComponent, isStandalone: true, selector: "kirby-popover", inputs: { popout: "popout", target: "target" }, outputs: { willHide: "willHide" }, host: { listeners: { "window:resize": "_onWindowResize()" } }, viewQueries: [{ propertyName: "wrapperElement", first: true, predicate: ["wrapper"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
137
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
138
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: PopoverComponent, isStandalone: true, selector: "kirby-popover", inputs: { popout: "popout", target: "target" }, outputs: { willHide: "willHide" }, host: { listeners: { "window:resize": "_onWindowResize()" } }, viewQueries: [{ propertyName: "wrapperElement", first: true, predicate: ["wrapper"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
139
139
  <div #wrapper class="wrapper"><ng-content></ng-content></div>
140
140
  `, isInline: true, styles: [":host{display:none;position:fixed;inset:0;z-index:850}:host(.is-opening){display:block;visibility:hidden}:host(.is-open){display:block}.wrapper{position:fixed;margin-top:4px;margin-bottom:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoverComponent, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PopoverComponent, decorators: [{
143
143
  type: Component,
144
- args: [{ standalone: true, imports: [CommonModule], selector: 'kirby-popover', template: `
144
+ args: [{ imports: [CommonModule], selector: 'kirby-popover', template: `
145
145
  <div #wrapper class="wrapper"><ng-content></ng-content></div>
146
146
  `, styles: [":host{display:none;position:fixed;inset:0;z-index:850}:host(.is-opening){display:block;visibility:hidden}:host(.is-open){display:block}.wrapper{position:fixed;margin-top:4px;margin-bottom:4px}\n"] }]
147
147
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { wrapperElement: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-popover.mjs","sources":["../../popover/src/popover.component.ts","../../popover/src/kirbydesign-designsystem-popover.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\n\nexport enum HorizontalDirection {\n right = 'right',\n left = 'left',\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'kirby-popover',\n template: `\n <div #wrapper class=\"wrapper\"><ng-content></ng-content></div>\n `,\n styleUrls: ['./popover.component.scss'],\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n // removeEventListener same instance of event handler & options\n private readonly preventScrollEventListenerOptions = {\n passive: false,\n } as EventListenerOptions;\n\n private readonly POPOVER_BODY_PADDING = 12;\n\n private isShowing: boolean = false;\n private isFirstToLockScroll: boolean;\n private zIndex: number;\n private document: Document;\n\n @ViewChild('wrapper', { static: true, read: ElementRef })\n wrapperElement: ElementRef<HTMLDivElement>;\n\n @Input()\n popout: HorizontalDirection | `${HorizontalDirection}` = HorizontalDirection.right;\n\n @Input()\n target: HTMLElement | ElementRef<HTMLElement>;\n\n @Output()\n willHide = new EventEmitter<void>();\n\n private get targetElement(): HTMLElement {\n if (this.target instanceof ElementRef) {\n return this.target.nativeElement;\n } else {\n return this.target;\n }\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n this.hide();\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.document = elementRef.nativeElement.ownerDocument;\n }\n\n ngAfterViewInit(): void {\n this.placePopoverAboveClosestModal();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private placePopoverAboveClosestModal() {\n const closestIonModal = this.elementRef.nativeElement.closest('ion-modal');\n if (closestIonModal) {\n this.zIndex = parseInt((closestIonModal as HTMLElement).style.zIndex) + 1;\n this.elementRef.nativeElement.style.zIndex = `${this.zIndex}`;\n } else {\n this.zIndex = parseInt(DesignTokenHelper.zLayer('popover'));\n }\n }\n\n // document.removeEventListener needs the exact same event handler & options reference:\n private static preventEventOutsidePopover(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInPopover = !!event.target.closest('kirby-popover');\n if (!targetIsInPopover) {\n event.preventDefault();\n }\n }\n }\n\n private preventScroll() {\n this.isFirstToLockScroll = !this.document.body.classList.contains('backdrop-no-scroll');\n if (this.isFirstToLockScroll) {\n this.renderer.addClass(this.document.body, 'backdrop-no-scroll');\n }\n\n // preventDefault does not work with Renderer2.listen method; add event listener directly to document instead\n this.document.addEventListener(\n 'touchmove',\n PopoverComponent.preventEventOutsidePopover,\n this.preventScrollEventListenerOptions\n );\n }\n\n private releaseScroll() {\n if (this.isFirstToLockScroll) {\n this.renderer.removeClass(this.document.body, 'backdrop-no-scroll');\n }\n\n this.document.removeEventListener(\n 'touchmove',\n PopoverComponent.preventEventOutsidePopover,\n this.preventScrollEventListenerOptions\n );\n }\n\n show() {\n this.renderer.addClass(this.elementRef.nativeElement, 'is-opening');\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n this.preventScroll();\n this.positionWrapper();\n\n this.renderer.addClass(this.elementRef.nativeElement, 'is-open');\n this.renderer.removeClass(this.elementRef.nativeElement, 'is-opening');\n\n this.isShowing = true;\n }\n\n hide() {\n if (!this.isShowing) return;\n\n this.willHide.emit();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n this.releaseScroll();\n\n this.renderer.removeStyle(this.targetElement, 'z-index');\n this.renderer.removeStyle(this.targetElement, 'pointer-events');\n this.isShowing = false;\n }\n\n private positionWrapper() {\n const targetDimensions = this.targetElement.getBoundingClientRect();\n\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n const wrapperElement = this.wrapperElement.nativeElement;\n const wrapperDimensions = wrapperElement.getBoundingClientRect();\n const viewport = wrapperElement.ownerDocument.defaultView;\n this.positionHorizontally(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n this.positionVertically(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n }\n\n private positionHorizontally(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortWidth = viewPort.innerWidth;\n const contentWidth = wrapperDimensions.width;\n const availableSpaceRight = viewPortWidth - targetDimensions.left;\n const availableSpaceLeft = targetDimensions.right;\n const contentCanFitRightOfTarget =\n availableSpaceRight >= contentWidth + this.POPOVER_BODY_PADDING;\n const openRight = contentCanFitRightOfTarget || availableSpaceRight >= availableSpaceLeft;\n\n const [direction, oppositeDirection] =\n this.popout === HorizontalDirection.left || !openRight\n ? ['left', 'right']\n : ['right', 'left'];\n\n const pxValue =\n direction === 'left' ? viewPortWidth - targetDimensions.right : targetDimensions.left;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n }\n\n private positionVertically(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortHeight = viewPort.innerHeight;\n const contentHeight = wrapperDimensions.height;\n const availableSpaceDown = viewPortHeight - targetDimensions.bottom;\n const availableSpaceUp = targetDimensions.top;\n const contentCanFitBelowTarget =\n availableSpaceDown >= contentHeight + this.POPOVER_BODY_PADDING;\n\n const isAvailableSpaceBelow =\n contentCanFitBelowTarget || availableSpaceDown >= availableSpaceUp;\n const [direction, oppositeDirection] = isAvailableSpaceBelow\n ? ['bottom', 'top']\n : ['top', 'bottom'];\n\n const pxValue =\n direction === 'bottom' ? targetDimensions.bottom : viewPortHeight - targetDimensions.top;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n\n if (direction === 'top') {\n // Ensure target is elevated above shadows in popover, i.e. content wrapped in Card:\n this.renderer.setStyle(this.targetElement, 'z-index', `${this.zIndex + 1}`);\n this.renderer.setStyle(this.targetElement, 'pointer-events', 'none');\n }\n }\n}\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-popover.mjs","sources":["../../popover/src/popover.component.ts","../../popover/src/kirbydesign-designsystem-popover.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\n\nexport enum HorizontalDirection {\n right = 'right',\n left = 'left',\n}\n\n@Component({\n imports: [CommonModule],\n selector: 'kirby-popover',\n template: `\n <div #wrapper class=\"wrapper\"><ng-content></ng-content></div>\n `,\n styleUrls: ['./popover.component.scss'],\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n // removeEventListener same instance of event handler & options\n private readonly preventScrollEventListenerOptions = {\n passive: false,\n } as EventListenerOptions;\n\n private readonly POPOVER_BODY_PADDING = 12;\n\n private isShowing: boolean = false;\n private isFirstToLockScroll: boolean;\n private zIndex: number;\n private document: Document;\n\n @ViewChild('wrapper', { static: true, read: ElementRef })\n wrapperElement: ElementRef<HTMLDivElement>;\n\n @Input()\n popout: HorizontalDirection | `${HorizontalDirection}` = HorizontalDirection.right;\n\n @Input()\n target: HTMLElement | ElementRef<HTMLElement>;\n\n @Output()\n willHide = new EventEmitter<void>();\n\n private get targetElement(): HTMLElement {\n if (this.target instanceof ElementRef) {\n return this.target.nativeElement;\n } else {\n return this.target;\n }\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n this.hide();\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.document = elementRef.nativeElement.ownerDocument;\n }\n\n ngAfterViewInit(): void {\n this.placePopoverAboveClosestModal();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private placePopoverAboveClosestModal() {\n const closestIonModal = this.elementRef.nativeElement.closest('ion-modal');\n if (closestIonModal) {\n this.zIndex = parseInt((closestIonModal as HTMLElement).style.zIndex) + 1;\n this.elementRef.nativeElement.style.zIndex = `${this.zIndex}`;\n } else {\n this.zIndex = parseInt(DesignTokenHelper.zLayer('popover'));\n }\n }\n\n // document.removeEventListener needs the exact same event handler & options reference:\n private static preventEventOutsidePopover(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInPopover = !!event.target.closest('kirby-popover');\n if (!targetIsInPopover) {\n event.preventDefault();\n }\n }\n }\n\n private preventScroll() {\n this.isFirstToLockScroll = !this.document.body.classList.contains('backdrop-no-scroll');\n if (this.isFirstToLockScroll) {\n this.renderer.addClass(this.document.body, 'backdrop-no-scroll');\n }\n\n // preventDefault does not work with Renderer2.listen method; add event listener directly to document instead\n this.document.addEventListener(\n 'touchmove',\n PopoverComponent.preventEventOutsidePopover,\n this.preventScrollEventListenerOptions\n );\n }\n\n private releaseScroll() {\n if (this.isFirstToLockScroll) {\n this.renderer.removeClass(this.document.body, 'backdrop-no-scroll');\n }\n\n this.document.removeEventListener(\n 'touchmove',\n PopoverComponent.preventEventOutsidePopover,\n this.preventScrollEventListenerOptions\n );\n }\n\n show() {\n this.renderer.addClass(this.elementRef.nativeElement, 'is-opening');\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n this.preventScroll();\n this.positionWrapper();\n\n this.renderer.addClass(this.elementRef.nativeElement, 'is-open');\n this.renderer.removeClass(this.elementRef.nativeElement, 'is-opening');\n\n this.isShowing = true;\n }\n\n hide() {\n if (!this.isShowing) return;\n\n this.willHide.emit();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n this.releaseScroll();\n\n this.renderer.removeStyle(this.targetElement, 'z-index');\n this.renderer.removeStyle(this.targetElement, 'pointer-events');\n this.isShowing = false;\n }\n\n private positionWrapper() {\n const targetDimensions = this.targetElement.getBoundingClientRect();\n\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n const wrapperElement = this.wrapperElement.nativeElement;\n const wrapperDimensions = wrapperElement.getBoundingClientRect();\n const viewport = wrapperElement.ownerDocument.defaultView;\n this.positionHorizontally(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n this.positionVertically(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n }\n\n private positionHorizontally(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortWidth = viewPort.innerWidth;\n const contentWidth = wrapperDimensions.width;\n const availableSpaceRight = viewPortWidth - targetDimensions.left;\n const availableSpaceLeft = targetDimensions.right;\n const contentCanFitRightOfTarget =\n availableSpaceRight >= contentWidth + this.POPOVER_BODY_PADDING;\n const openRight = contentCanFitRightOfTarget || availableSpaceRight >= availableSpaceLeft;\n\n const [direction, oppositeDirection] =\n this.popout === HorizontalDirection.left || !openRight\n ? ['left', 'right']\n : ['right', 'left'];\n\n const pxValue =\n direction === 'left' ? viewPortWidth - targetDimensions.right : targetDimensions.left;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n }\n\n private positionVertically(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortHeight = viewPort.innerHeight;\n const contentHeight = wrapperDimensions.height;\n const availableSpaceDown = viewPortHeight - targetDimensions.bottom;\n const availableSpaceUp = targetDimensions.top;\n const contentCanFitBelowTarget =\n availableSpaceDown >= contentHeight + this.POPOVER_BODY_PADDING;\n\n const isAvailableSpaceBelow =\n contentCanFitBelowTarget || availableSpaceDown >= availableSpaceUp;\n const [direction, oppositeDirection] = isAvailableSpaceBelow\n ? ['bottom', 'top']\n : ['top', 'bottom'];\n\n const pxValue =\n direction === 'bottom' ? targetDimensions.bottom : viewPortHeight - targetDimensions.top;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n\n if (direction === 'top') {\n // Ensure target is elevated above shadows in popover, i.e. content wrapped in Card:\n this.renderer.setStyle(this.targetElement, 'z-index', `${this.zIndex + 1}`);\n this.renderer.setStyle(this.targetElement, 'pointer-events', 'none');\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -35,12 +35,12 @@ class ProgressCircleRingComponent {
35
35
  return 0;
36
36
  return this.strokeWidth;
37
37
  }
38
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressCircleRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressCircleRingComponent, isStandalone: true, selector: "kirby-progress-circle-ring", inputs: { radius: "radius", value: "value", themeColor: "themeColor", strokeWidth: "strokeWidth", upperBound: "upperBound" }, host: { properties: { "class.view-initialized": "this.viewInitialized", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: ["svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ProgressCircleRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: ProgressCircleRingComponent, isStandalone: true, selector: "kirby-progress-circle-ring", inputs: { radius: "radius", value: "value", themeColor: "themeColor", strokeWidth: "strokeWidth", upperBound: "upperBound" }, host: { properties: { "class.view-initialized": "this.viewInitialized", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: ["svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressCircleRingComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ProgressCircleRingComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ standalone: true, imports: [CommonModule], selector: 'kirby-progress-circle-ring', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: ["svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"] }]
43
+ args: [{ imports: [CommonModule], selector: 'kirby-progress-circle-ring', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: ["svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"] }]
44
44
  }], propDecorators: { radius: [{
45
45
  type: Input
46
46
  }], value: [{
@@ -122,12 +122,12 @@ class ProgressCircleComponent {
122
122
  // This is needed to make sure that an input value close to 100 is not shown as 100
123
123
  return this.SIZE_CONFIG[this.size].upperBound;
124
124
  }
125
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressCircleComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressCircleComponent, isStandalone: true, selector: "kirby-progress-circle", inputs: { value: "value", size: "size", themeColor: "themeColor" }, host: { properties: { "class": "this._cssSize", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [":host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: ProgressCircleRingComponent, selector: "kirby-progress-circle-ring", inputs: ["radius", "value", "themeColor", "strokeWidth", "upperBound"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: ThemeColorDirective, selector: "kirby-avatar[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]", inputs: ["themeColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
125
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ProgressCircleComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: ProgressCircleComponent, isStandalone: true, selector: "kirby-progress-circle", inputs: { value: "value", size: "size", themeColor: "themeColor" }, host: { properties: { "class": "this._cssSize", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [":host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: ProgressCircleRingComponent, selector: "kirby-progress-circle-ring", inputs: ["radius", "value", "themeColor", "strokeWidth", "upperBound"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: ThemeColorDirective, selector: "kirby-avatar[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]", inputs: ["themeColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressCircleComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ProgressCircleComponent, decorators: [{
129
129
  type: Component,
130
- args: [{ standalone: true, imports: [ProgressCircleRingComponent, CommonModule, ThemeColorDirective], selector: 'kirby-progress-circle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [":host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"] }]
130
+ args: [{ imports: [ProgressCircleRingComponent, CommonModule, ThemeColorDirective], selector: 'kirby-progress-circle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [":host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"] }]
131
131
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
132
132
  type: Input
133
133
  }], size: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-progress-circle.mjs","sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html","../../progress-circle/src/kirbydesign-designsystem-progress-circle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n @Input() radius: number; // The desired outer radius of the SVG circle\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() strokeWidth: number;\n @Input() upperBound: number;\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.radius * 2;\n }\n\n get _centerRadius(): number {\n return this.radius - this.strokeWidth / 2;\n }\n\n get _centerCircumference(): number {\n return this._centerRadius * 2 * Math.PI;\n }\n\n get _progress(): number {\n const valueWithinBounds = this.value < this.upperBound || this.value > 99;\n const _value = valueWithinBounds ? this.value : this.upperBound;\n const progressPercentage = _value / 100;\n return this._centerCircumference * progressPercentage;\n }\n\n get _remainder(): number {\n return this._centerCircumference - this._progress;\n }\n\n get _progressStrokeWidth(): number {\n // Do not render stroke if progress is 0, otherwise it will show as a dot\n if (this._progress === 0) return 0;\n\n return this.strokeWidth;\n }\n}\n","<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n standalone: true,\n imports: [ProgressCircleRingComponent, CommonModule, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n readonly SIZE_CONFIG = {\n sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },\n md: { diameter: 56, strokeWidth: 4, upperBound: 96 },\n lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },\n };\n\n @Input() value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.SIZE_CONFIG[this.size].diameter;\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n\n get _radius() {\n return this._diameter / 2;\n }\n\n get _strokeWidth() {\n return this.SIZE_CONFIG[this.size].strokeWidth;\n }\n\n get _upperBound() {\n // This is needed to make sure that an input value close to 100 is not shown as 100\n return this.SIZE_CONFIG[this.size].upperBound;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\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-progress-circle.mjs","sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html","../../progress-circle/src/kirbydesign-designsystem-progress-circle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n imports: [CommonModule],\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n @Input() radius: number; // The desired outer radius of the SVG circle\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() strokeWidth: number;\n @Input() upperBound: number;\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.radius * 2;\n }\n\n get _centerRadius(): number {\n return this.radius - this.strokeWidth / 2;\n }\n\n get _centerCircumference(): number {\n return this._centerRadius * 2 * Math.PI;\n }\n\n get _progress(): number {\n const valueWithinBounds = this.value < this.upperBound || this.value > 99;\n const _value = valueWithinBounds ? this.value : this.upperBound;\n const progressPercentage = _value / 100;\n return this._centerCircumference * progressPercentage;\n }\n\n get _remainder(): number {\n return this._centerCircumference - this._progress;\n }\n\n get _progressStrokeWidth(): number {\n // Do not render stroke if progress is 0, otherwise it will show as a dot\n if (this._progress === 0) return 0;\n\n return this.strokeWidth;\n }\n}\n","<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n imports: [ProgressCircleRingComponent, CommonModule, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n readonly SIZE_CONFIG = {\n sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },\n md: { diameter: 56, strokeWidth: 4, upperBound: 96 },\n lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },\n };\n\n @Input() value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.SIZE_CONFIG[this.size].diameter;\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n\n get _radius() {\n return this._diameter / 2;\n }\n\n get _strokeWidth() {\n return this.SIZE_CONFIG[this.size].strokeWidth;\n }\n\n get _upperBound() {\n // This is needed to make sure that an input value close to 100 is not shown as 100\n return this.SIZE_CONFIG[this.size].upperBound;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}