@kirbydesign/designsystem 11.4.2 → 11.5.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 (267) hide show
  1. package/fesm2022/kirbydesign-designsystem-accordion.mjs +11 -11
  2. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  3. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  4. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  5. package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
  6. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  7. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  8. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  9. package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
  10. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  11. package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
  12. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  13. package/fesm2022/kirbydesign-designsystem-card.mjs +17 -17
  14. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  15. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  16. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  17. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +5 -5
  18. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  19. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  20. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  21. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  22. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  23. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  24. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  25. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
  26. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  27. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
  28. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  30. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-form-field.mjs +132 -113
  32. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
  34. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-helpers.mjs +73 -10
  36. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
  38. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  40. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  42. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-item.mjs +11 -11
  44. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  46. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-list.mjs +40 -40
  48. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  50. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  51. package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
  52. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  53. package/fesm2022/kirbydesign-designsystem-modal.mjs +51 -51
  54. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  55. package/fesm2022/kirbydesign-designsystem-page.mjs +41 -41
  56. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  57. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  58. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  60. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-radio.mjs +11 -11
  62. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  63. package/fesm2022/kirbydesign-designsystem-range.mjs +5 -5
  64. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  65. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
  66. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  67. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  68. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  69. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  70. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  71. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +4 -4
  72. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  73. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  74. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  75. package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
  76. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  77. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
  78. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  79. package/fesm2022/kirbydesign-designsystem-slide.mjs +14 -14
  80. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  81. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  82. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  83. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
  84. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  85. package/fesm2022/kirbydesign-designsystem-tabs.mjs +15 -15
  86. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  87. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +294 -287
  88. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  89. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  90. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  91. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  92. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  93. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  94. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  95. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  96. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  97. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
  98. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  99. package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -5
  100. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  101. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  102. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  103. package/fesm2022/kirbydesign-designsystem.mjs +15 -15
  104. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  105. package/package.json +63 -63
  106. package/{accordion/index.d.ts → types/kirbydesign-designsystem-accordion.d.ts} +1 -1
  107. package/types/kirbydesign-designsystem-accordion.d.ts.map +1 -0
  108. package/{action-group/index.d.ts → types/kirbydesign-designsystem-action-group.d.ts} +1 -1
  109. package/types/kirbydesign-designsystem-action-group.d.ts.map +1 -0
  110. package/{avatar/index.d.ts → types/kirbydesign-designsystem-avatar.d.ts} +2 -2
  111. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -0
  112. package/{badge/index.d.ts → types/kirbydesign-designsystem-badge.d.ts} +1 -1
  113. package/types/kirbydesign-designsystem-badge.d.ts.map +1 -0
  114. package/{button/index.d.ts → types/kirbydesign-designsystem-button.d.ts} +2 -2
  115. package/types/kirbydesign-designsystem-button.d.ts.map +1 -0
  116. package/{calendar/index.d.ts → types/kirbydesign-designsystem-calendar.d.ts} +1 -1
  117. package/types/kirbydesign-designsystem-calendar.d.ts.map +1 -0
  118. package/{card/index.d.ts → types/kirbydesign-designsystem-card.d.ts} +2 -2
  119. package/types/kirbydesign-designsystem-card.d.ts.map +1 -0
  120. package/{chart/index.d.ts → types/kirbydesign-designsystem-chart.d.ts} +1 -1
  121. package/types/kirbydesign-designsystem-chart.d.ts.map +1 -0
  122. package/{checkbox/index.d.ts → types/kirbydesign-designsystem-checkbox.d.ts} +1 -1
  123. package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -0
  124. package/{config/index.d.ts → types/kirbydesign-designsystem-config.d.ts} +1 -1
  125. package/types/kirbydesign-designsystem-config.d.ts.map +1 -0
  126. package/{data-table/index.d.ts → types/kirbydesign-designsystem-data-table.d.ts} +1 -1
  127. package/types/kirbydesign-designsystem-data-table.d.ts.map +1 -0
  128. package/{divider/index.d.ts → types/kirbydesign-designsystem-divider.d.ts} +1 -1
  129. package/types/kirbydesign-designsystem-divider.d.ts.map +1 -0
  130. package/{dropdown/index.d.ts → types/kirbydesign-designsystem-dropdown.d.ts} +1 -1
  131. package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -0
  132. package/{empty-state/index.d.ts → types/kirbydesign-designsystem-empty-state.d.ts} +1 -1
  133. package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -0
  134. package/{fab-sheet/index.d.ts → types/kirbydesign-designsystem-fab-sheet.d.ts} +1 -1
  135. package/types/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -0
  136. package/{flag/index.d.ts → types/kirbydesign-designsystem-flag.d.ts} +1 -1
  137. package/types/kirbydesign-designsystem-flag.d.ts.map +1 -0
  138. package/{form-field/index.d.ts → types/kirbydesign-designsystem-form-field.d.ts} +21 -24
  139. package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -0
  140. package/{header/index.d.ts → types/kirbydesign-designsystem-header.d.ts} +1 -1
  141. package/types/kirbydesign-designsystem-header.d.ts.map +1 -0
  142. package/{helpers/scss/index.d.ts → types/kirbydesign-designsystem-helpers-scss.d.ts} +1 -1
  143. package/types/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -0
  144. package/{helpers/index.d.ts → types/kirbydesign-designsystem-helpers.d.ts} +81 -13
  145. package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -0
  146. package/{icon/index.d.ts → types/kirbydesign-designsystem-icon.d.ts} +1 -1
  147. package/types/kirbydesign-designsystem-icon.d.ts.map +1 -0
  148. package/{item-group/index.d.ts → types/kirbydesign-designsystem-item-group.d.ts} +1 -1
  149. package/types/kirbydesign-designsystem-item-group.d.ts.map +1 -0
  150. package/{item-sliding/index.d.ts → types/kirbydesign-designsystem-item-sliding.d.ts} +1 -1
  151. package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -0
  152. package/{item/index.d.ts → types/kirbydesign-designsystem-item.d.ts} +1 -1
  153. package/types/kirbydesign-designsystem-item.d.ts.map +1 -0
  154. package/{kirby-app/index.d.ts → types/kirbydesign-designsystem-kirby-app.d.ts} +1 -1
  155. package/types/kirbydesign-designsystem-kirby-app.d.ts.map +1 -0
  156. package/{list/index.d.ts → types/kirbydesign-designsystem-list.d.ts} +1 -1
  157. package/types/kirbydesign-designsystem-list.d.ts.map +1 -0
  158. package/{loading-overlay/index.d.ts → types/kirbydesign-designsystem-loading-overlay.d.ts} +1 -1
  159. package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -0
  160. package/{menu/index.d.ts → types/kirbydesign-designsystem-menu.d.ts} +1 -1
  161. package/types/kirbydesign-designsystem-menu.d.ts.map +1 -0
  162. package/{modal/index.d.ts → types/kirbydesign-designsystem-modal.d.ts} +2 -2
  163. package/types/kirbydesign-designsystem-modal.d.ts.map +1 -0
  164. package/{page/index.d.ts → types/kirbydesign-designsystem-page.d.ts} +1 -1
  165. package/types/kirbydesign-designsystem-page.d.ts.map +1 -0
  166. package/{popover/index.d.ts → types/kirbydesign-designsystem-popover.d.ts} +1 -1
  167. package/types/kirbydesign-designsystem-popover.d.ts.map +1 -0
  168. package/{progress-circle/index.d.ts → types/kirbydesign-designsystem-progress-circle.d.ts} +1 -1
  169. package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -0
  170. package/{radio/index.d.ts → types/kirbydesign-designsystem-radio.d.ts} +1 -1
  171. package/types/kirbydesign-designsystem-radio.d.ts.map +1 -0
  172. package/{range/index.d.ts → types/kirbydesign-designsystem-range.d.ts} +1 -1
  173. package/types/kirbydesign-designsystem-range.d.ts.map +1 -0
  174. package/{reorder-list/index.d.ts → types/kirbydesign-designsystem-reorder-list.d.ts} +1 -1
  175. package/types/kirbydesign-designsystem-reorder-list.d.ts.map +1 -0
  176. package/{router-outlet/index.d.ts → types/kirbydesign-designsystem-router-outlet.d.ts} +1 -1
  177. package/types/kirbydesign-designsystem-router-outlet.d.ts.map +1 -0
  178. package/{section-header/index.d.ts → types/kirbydesign-designsystem-section-header.d.ts} +1 -1
  179. package/types/kirbydesign-designsystem-section-header.d.ts.map +1 -0
  180. package/{shared/floating/index.d.ts → types/kirbydesign-designsystem-shared-floating.d.ts} +1 -1
  181. package/types/kirbydesign-designsystem-shared-floating.d.ts.map +1 -0
  182. package/{shared/portal/index.d.ts → types/kirbydesign-designsystem-shared-portal.d.ts} +1 -1
  183. package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -0
  184. package/{shared/index.d.ts → types/kirbydesign-designsystem-shared.d.ts} +1 -1
  185. package/types/kirbydesign-designsystem-shared.d.ts.map +1 -0
  186. package/{slide-button/index.d.ts → types/kirbydesign-designsystem-slide-button.d.ts} +1 -1
  187. package/types/kirbydesign-designsystem-slide-button.d.ts.map +1 -0
  188. package/{slide/index.d.ts → types/kirbydesign-designsystem-slide.d.ts} +1 -1
  189. package/types/kirbydesign-designsystem-slide.d.ts.map +1 -0
  190. package/{spinner/index.d.ts → types/kirbydesign-designsystem-spinner.d.ts} +1 -1
  191. package/types/kirbydesign-designsystem-spinner.d.ts.map +1 -0
  192. package/{tab-navigation/index.d.ts → types/kirbydesign-designsystem-tab-navigation.d.ts} +1 -1
  193. package/types/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -0
  194. package/{tabs/index.d.ts → types/kirbydesign-designsystem-tabs.d.ts} +1 -1
  195. package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -0
  196. package/{testing-base/index.d.ts → types/kirbydesign-designsystem-testing-base.d.ts} +5 -3
  197. package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -0
  198. package/{testing-jasmine/index.d.ts → types/kirbydesign-designsystem-testing-jasmine.d.ts} +1 -1
  199. package/types/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -0
  200. package/{testing-jest/index.d.ts → types/kirbydesign-designsystem-testing-jest.d.ts} +1 -1
  201. package/types/kirbydesign-designsystem-testing-jest.d.ts.map +1 -0
  202. package/{testing/index.d.ts → types/kirbydesign-designsystem-testing.d.ts} +1 -1
  203. package/types/kirbydesign-designsystem-testing.d.ts.map +1 -0
  204. package/{toast/index.d.ts → types/kirbydesign-designsystem-toast.d.ts} +1 -1
  205. package/types/kirbydesign-designsystem-toast.d.ts.map +1 -0
  206. package/{toggle-button/index.d.ts → types/kirbydesign-designsystem-toggle-button.d.ts} +1 -1
  207. package/types/kirbydesign-designsystem-toggle-button.d.ts.map +1 -0
  208. package/{toggle/index.d.ts → types/kirbydesign-designsystem-toggle.d.ts} +1 -1
  209. package/types/kirbydesign-designsystem-toggle.d.ts.map +1 -0
  210. package/types/{index.d.ts → kirbydesign-designsystem-types.d.ts} +1 -1
  211. package/types/kirbydesign-designsystem-types.d.ts.map +1 -0
  212. package/{index.d.ts → types/kirbydesign-designsystem.d.ts} +1 -1
  213. package/types/kirbydesign-designsystem.d.ts.map +1 -0
  214. package/accordion/index.d.ts.map +0 -1
  215. package/action-group/index.d.ts.map +0 -1
  216. package/avatar/index.d.ts.map +0 -1
  217. package/badge/index.d.ts.map +0 -1
  218. package/button/index.d.ts.map +0 -1
  219. package/calendar/index.d.ts.map +0 -1
  220. package/card/index.d.ts.map +0 -1
  221. package/chart/index.d.ts.map +0 -1
  222. package/checkbox/index.d.ts.map +0 -1
  223. package/config/index.d.ts.map +0 -1
  224. package/data-table/index.d.ts.map +0 -1
  225. package/divider/index.d.ts.map +0 -1
  226. package/dropdown/index.d.ts.map +0 -1
  227. package/empty-state/index.d.ts.map +0 -1
  228. package/fab-sheet/index.d.ts.map +0 -1
  229. package/flag/index.d.ts.map +0 -1
  230. package/form-field/index.d.ts.map +0 -1
  231. package/header/index.d.ts.map +0 -1
  232. package/helpers/index.d.ts.map +0 -1
  233. package/helpers/scss/index.d.ts.map +0 -1
  234. package/icon/index.d.ts.map +0 -1
  235. package/index.d.ts.map +0 -1
  236. package/item/index.d.ts.map +0 -1
  237. package/item-group/index.d.ts.map +0 -1
  238. package/item-sliding/index.d.ts.map +0 -1
  239. package/kirby-app/index.d.ts.map +0 -1
  240. package/list/index.d.ts.map +0 -1
  241. package/loading-overlay/index.d.ts.map +0 -1
  242. package/menu/index.d.ts.map +0 -1
  243. package/modal/index.d.ts.map +0 -1
  244. package/page/index.d.ts.map +0 -1
  245. package/popover/index.d.ts.map +0 -1
  246. package/progress-circle/index.d.ts.map +0 -1
  247. package/radio/index.d.ts.map +0 -1
  248. package/range/index.d.ts.map +0 -1
  249. package/reorder-list/index.d.ts.map +0 -1
  250. package/router-outlet/index.d.ts.map +0 -1
  251. package/section-header/index.d.ts.map +0 -1
  252. package/shared/floating/index.d.ts.map +0 -1
  253. package/shared/index.d.ts.map +0 -1
  254. package/shared/portal/index.d.ts.map +0 -1
  255. package/slide/index.d.ts.map +0 -1
  256. package/slide-button/index.d.ts.map +0 -1
  257. package/spinner/index.d.ts.map +0 -1
  258. package/tab-navigation/index.d.ts.map +0 -1
  259. package/tabs/index.d.ts.map +0 -1
  260. package/testing/index.d.ts.map +0 -1
  261. package/testing-base/index.d.ts.map +0 -1
  262. package/testing-jasmine/index.d.ts.map +0 -1
  263. package/testing-jest/index.d.ts.map +0 -1
  264. package/toast/index.d.ts.map +0 -1
  265. package/toggle/index.d.ts.map +0 -1
  266. package/toggle-button/index.d.ts.map +0 -1
  267. package/types/index.d.ts.map +0 -1
@@ -456,10 +456,10 @@ class CalendarComponent {
456
456
  event.preventDefault();
457
457
  this.focusDate(newDate);
458
458
  }
459
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CalendarComponent, deps: [{ token: LOCALE_ID }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
460
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CalendarComponent, isStandalone: true, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", locales: "locales", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", enabledDates: "enabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect", previousMonthClicked: "previousMonthClicked", nextMonthClicked: "nextMonthClicked" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('previousMonth')\"\n [attr.aria-disabled]=\"_canNavigateBack ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(-1)\"\n >\n <kirby-icon name=\"arrow-back\" aria-hidden=\"true\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\" [id]=\"_tableMonthId\" aria-live=\"polite\" aria-atomic=\"true\">\n <span class=\"month\">{{ activeMonthName }}</span>\n @if (!_hasYearNavigator) {\n <span class=\"year\">{{ activeYear }}</span>\n }\n </div>\n\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('nextMonth')\"\n [attr.aria-disabled]=\"_canNavigateForward ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(1)\"\n >\n <kirby-icon name=\"arrow-more\" aria-hidden=\"true\"></kirby-icon>\n </button>\n </div>\n @if (_hasYearNavigator) {\n <kirby-dropdown\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n [attr.aria-label]=\"translations.get('selectYear')\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n }\n</div>\n\n<table [attr.aria-labelledby]=\"_tableMonthId\" role=\"grid\">\n <thead>\n <tr>\n @for (weekDay of _weekDays; track weekDay.fullName) {\n <th scope=\"col\">\n <span aria-hidden=\"true\">{{ weekDay.firstLetterCapitalized }}</span>\n <span class=\"kirby-visually-hidden\">{{ weekDay.fullName }}</span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of _month; track $index) {\n <tr>\n @for (day of week; track day.date + '-' + day.monthIndex + '-' + day.year) {\n <td [attr.aria-selected]=\"day.isSelected ? true : false\">\n <button\n kirby-button\n type=\"button\"\n (click)=\"_onDateSelected(day)\"\n (keydown)=\"_onDateKeydown($event)\"\n class=\"day\"\n [class.current-month]=\"day.isCurrentMonth\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.selectable]=\"day.isSelectable\"\n [class.selected]=\"day.isSelected\"\n [class.focussed]=\"day.isFocussed\"\n [class.past]=\"day.isPast\"\n [attr.aria-label]=\"day.ariaLabel\"\n [attr.aria-disabled]=\"day.isSelectable ? null : true\"\n [noDecoration]=\"true\"\n [disabled]=\"day.isFocusable ? null : true\"\n [tabIndex]=\"day.isFocussed ? 0 : -1\"\n >\n {{ day.date }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{font-size:16px}table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-and-year{-webkit-user-select:none;user-select:none;font-weight:700}.month-and-year .month{margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;min-width:40px;min-height:40px;width:40px;height:40px;margin:4px 0;font-size:16px}.day:focus{z-index:1}button[aria-disabled=true]{color:#b4b4b4}.day.selectable:not(.current-month,.selected){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "focusedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["hasErrorChange", "change"] }, { kind: "component", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button],a[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size", "showIconOnly"] }, { kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
459
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CalendarComponent, deps: [{ token: LOCALE_ID }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
460
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: CalendarComponent, isStandalone: true, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", locales: "locales", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", enabledDates: "enabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect", previousMonthClicked: "previousMonthClicked", nextMonthClicked: "nextMonthClicked" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('previousMonth')\"\n [attr.aria-disabled]=\"_canNavigateBack ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(-1)\"\n >\n <kirby-icon name=\"arrow-back\" aria-hidden=\"true\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\" [id]=\"_tableMonthId\" aria-live=\"polite\" aria-atomic=\"true\">\n <span class=\"month\">{{ activeMonthName }}</span>\n @if (!_hasYearNavigator) {\n <span class=\"year\">{{ activeYear }}</span>\n }\n </div>\n\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('nextMonth')\"\n [attr.aria-disabled]=\"_canNavigateForward ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(1)\"\n >\n <kirby-icon name=\"arrow-more\" aria-hidden=\"true\"></kirby-icon>\n </button>\n </div>\n @if (_hasYearNavigator) {\n <kirby-dropdown\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n [attr.aria-label]=\"translations.get('selectYear')\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n }\n</div>\n\n<table [attr.aria-labelledby]=\"_tableMonthId\" role=\"grid\">\n <thead>\n <tr>\n @for (weekDay of _weekDays; track weekDay.fullName) {\n <th scope=\"col\">\n <span aria-hidden=\"true\">{{ weekDay.firstLetterCapitalized }}</span>\n <span class=\"kirby-visually-hidden\">{{ weekDay.fullName }}</span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of _month; track $index) {\n <tr>\n @for (day of week; track day.date + '-' + day.monthIndex + '-' + day.year) {\n <td [attr.aria-selected]=\"day.isSelected ? true : false\">\n <button\n kirby-button\n type=\"button\"\n (click)=\"_onDateSelected(day)\"\n (keydown)=\"_onDateKeydown($event)\"\n class=\"day\"\n [class.current-month]=\"day.isCurrentMonth\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.selectable]=\"day.isSelectable\"\n [class.selected]=\"day.isSelected\"\n [class.focussed]=\"day.isFocussed\"\n [class.past]=\"day.isPast\"\n [attr.aria-label]=\"day.ariaLabel\"\n [attr.aria-disabled]=\"day.isSelectable ? null : true\"\n [noDecoration]=\"true\"\n [disabled]=\"day.isFocusable ? null : true\"\n [tabIndex]=\"day.isFocussed ? 0 : -1\"\n >\n {{ day.date }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{font-size:16px}table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-and-year{-webkit-user-select:none;user-select:none;font-weight:700}.month-and-year .month{margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;min-width:40px;min-height:40px;width:40px;height:40px;margin:4px 0;font-size:16px}.day:focus{z-index:1}button[aria-disabled=true]{color:#b4b4b4}.day.selectable:not(.current-month,.selected){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "focusedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["hasErrorChange", "change"] }, { kind: "component", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button],a[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size", "showIconOnly"] }, { kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
461
461
  }
462
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CalendarComponent, decorators: [{
462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CalendarComponent, decorators: [{
463
463
  type: Component,
464
464
  args: [{ imports: [DropdownComponent, ButtonComponent, IconComponent], selector: 'kirby-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('previousMonth')\"\n [attr.aria-disabled]=\"_canNavigateBack ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(-1)\"\n >\n <kirby-icon name=\"arrow-back\" aria-hidden=\"true\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\" [id]=\"_tableMonthId\" aria-live=\"polite\" aria-atomic=\"true\">\n <span class=\"month\">{{ activeMonthName }}</span>\n @if (!_hasYearNavigator) {\n <span class=\"year\">{{ activeYear }}</span>\n }\n </div>\n\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('nextMonth')\"\n [attr.aria-disabled]=\"_canNavigateForward ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(1)\"\n >\n <kirby-icon name=\"arrow-more\" aria-hidden=\"true\"></kirby-icon>\n </button>\n </div>\n @if (_hasYearNavigator) {\n <kirby-dropdown\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n [attr.aria-label]=\"translations.get('selectYear')\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n }\n</div>\n\n<table [attr.aria-labelledby]=\"_tableMonthId\" role=\"grid\">\n <thead>\n <tr>\n @for (weekDay of _weekDays; track weekDay.fullName) {\n <th scope=\"col\">\n <span aria-hidden=\"true\">{{ weekDay.firstLetterCapitalized }}</span>\n <span class=\"kirby-visually-hidden\">{{ weekDay.fullName }}</span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of _month; track $index) {\n <tr>\n @for (day of week; track day.date + '-' + day.monthIndex + '-' + day.year) {\n <td [attr.aria-selected]=\"day.isSelected ? true : false\">\n <button\n kirby-button\n type=\"button\"\n (click)=\"_onDateSelected(day)\"\n (keydown)=\"_onDateKeydown($event)\"\n class=\"day\"\n [class.current-month]=\"day.isCurrentMonth\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.selectable]=\"day.isSelectable\"\n [class.selected]=\"day.isSelected\"\n [class.focussed]=\"day.isFocussed\"\n [class.past]=\"day.isPast\"\n [attr.aria-label]=\"day.ariaLabel\"\n [attr.aria-disabled]=\"day.isSelectable ? null : true\"\n [noDecoration]=\"true\"\n [disabled]=\"day.isFocusable ? null : true\"\n [tabIndex]=\"day.isFocussed ? 0 : -1\"\n >\n {{ day.date }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{font-size:16px}table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-and-year{-webkit-user-select:none;user-select:none;font-weight:700}.month-and-year .month{margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;min-width:40px;min-height:40px;width:40px;height:40px;margin:4px 0;font-size:16px}.day:focus{z-index:1}button[aria-disabled=true]{color:#b4b4b4}.day.selectable:not(.current-month,.selected){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}\n"] }]
465
465
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-calendar.mjs","sources":["../../calendar/src/calendar.component.ts","../../calendar/src/calendar.component.html","../../calendar/src/kirbydesign-designsystem-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {\n add,\n eachDayOfInterval,\n endOfWeek,\n format,\n getYear,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWeekend,\n lastDayOfWeek,\n Locale as LocaleDateFns,\n startOfDay,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport { fromZonedTime, toZonedTime } from 'date-fns-tz';\nimport { da, de, enGB, enUS } from 'date-fns/locale';\n\nimport { capitalizeFirstLetter } from '@kirbydesign/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { DropdownComponent } from '@kirbydesign/designsystem/dropdown';\nimport { UniqueIdGenerator } from '@kirbydesign/designsystem/helpers';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { TranslationService } from '@kirbydesign/designsystem/shared';\nimport { CalendarDay, CalendarDayMetadata } from './interfaces/calendar-day';\nimport { CalendarYearNavigatorConfig } from './interfaces/calendar-year-navigator-config';\n\nexport type Locale = LocaleDateFns;\n\ninterface WeekDay {\n firstLetterCapitalized: string;\n fullName: string;\n}\n\nenum TimeUnit {\n years = 'years',\n months = 'months',\n weeks = 'weeks',\n days = 'days',\n hours = 'hours',\n minutes = 'minutes',\n seconds = 'seconds',\n milliseconds = 'milliseconds',\n}\n\n@Component({\n imports: [DropdownComponent, ButtonComponent, IconComponent],\n selector: 'kirby-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @Output() dateChange = new EventEmitter<Date>();\n @Output() dateSelect = new EventEmitter<Date>();\n @Output() yearSelect = new EventEmitter<number>();\n @Output() previousMonthClicked = new EventEmitter<Date>();\n @Output() nextMonthClicked = new EventEmitter<Date>();\n @Input() timezone: 'local' | 'UTC' = 'local';\n @Input() disableWeekends = false;\n @Input() disablePastDates = false;\n @Input() disableFutureDates = false;\n @Input() alwaysEnableToday = false;\n\n @Input() set locales(locales: { [key: string]: Locale }) {\n console.warn(\n `Supplying additional locales to the Kirby Calendar Component via an input property is deprecated and should not be used.\n A future update will allow injecting additional locales via a provider instead.`\n );\n }\n @Input() customLocales: { [key: string]: Locale } = {};\n /*\n Experimental: Input property not documented on purpose.\n For context see: https://github.com/kirbydesign/designsystem/issues/2087\n */\n @Input() usePopover = false;\n /**\n * Configuration for the year navigator.\n *\n * Internally, calendar component:\n * - bases yearNavigatorOptions.from and yearNavigatorOptions.to on todayDate if a number is provided\n * - prioritizes minDate and maxDate over yearNavigatorOptions.from and yearNavigatorOptions.to\n */\n @Input() yearNavigatorOptions: CalendarYearNavigatorConfig;\n\n _tableMonthId = UniqueIdGenerator.scopedTo('kirby-calendar-month').next();\n _month: CalendarDay[][];\n _weekDays: WeekDay[];\n private selectedDay: CalendarDay;\n private focussedDay: CalendarDay;\n // NOTE: Internally, all Dates\n // are normalized to point to local timezone midnight, regardless of the timezone\n // setting.\n private activeMonth: Date;\n private _selectedDate: Date;\n private _disabledDates: Date[] = [];\n private _enabledDates: Date[] = [];\n private _todayDate: Date;\n private _minDate: Date;\n private _maxDate: Date;\n private focussedDate: Date;\n private locale: Locale;\n private timeZoneName: string;\n private includedLocales = { da, de, enGB, enUS };\n\n get selectedDate(): Date {\n return this._selectedDate;\n }\n\n @Input() set selectedDate(valueLocalOrUTC: Date | null) {\n const value = this.normalizeDate(valueLocalOrUTC);\n\n if (valueLocalOrUTC) {\n this.setActiveMonth(value);\n }\n\n if (this.hasDateChanged(value, this._selectedDate)) {\n this.onSelectedDateChange(value);\n this.focusDate(value);\n this._selectedDate = value;\n }\n }\n\n get disabledDates(): Date[] {\n return this._disabledDates;\n }\n\n @Input() set disabledDates(value: Date[]) {\n this._disabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get enabledDates(): Date[] {\n return this._enabledDates;\n }\n\n @Input() set enabledDates(value: Date[]) {\n this._enabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get todayDate(): Date {\n return this._todayDate;\n }\n\n @Input() set todayDate(value: Date) {\n this._todayDate = this.normalizeDate(value);\n }\n\n get minDate(): Date {\n return this._minDate;\n }\n\n @Input() set minDate(value: Date) {\n if (value && this.activeMonth && isBefore(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._minDate = this.normalizeDate(value);\n }\n\n get maxDate(): Date {\n return this._maxDate;\n }\n\n @Input() set maxDate(value: Date) {\n if (value && this.activeMonth && isAfter(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._maxDate = this.normalizeDate(value);\n }\n\n get activeMonthName(): string {\n return capitalizeFirstLetter(this.formatWithLocale(this.activeMonth, 'MMMM'));\n }\n\n get activeYear(): string {\n return this.formatWithLocale(this.activeMonth, 'yyyy');\n }\n\n /**\n * Gets navigable years for year navigator based on yearNavigatorOptions.\n */\n get navigableYears(): string[] {\n const dateOfFirstNavigableYear =\n this.minDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.from);\n\n const dateOfLastNavigableYear =\n this.maxDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.to);\n\n return this.getYearsBetweenDates(dateOfFirstNavigableYear, dateOfLastNavigableYear);\n }\n\n get navigatedYear(): number {\n return this.navigableYears.indexOf(this.activeYear);\n }\n\n @HostBinding('class.has-year-navigator')\n get _hasYearNavigator() {\n return !!this.yearNavigatorOptions;\n }\n\n private getTodayDate() {\n return startOfDay(this.todayDate ?? new Date());\n }\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n public translations: TranslationService\n ) {\n this.locale = this.mapLocale(locale);\n this.timeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n private formatWithLocale(date: Date, formatString: string): string {\n return format(date, formatString, {\n locale: this.locale,\n });\n }\n\n private mapLocale(locale: string): Locale {\n if (locale === 'en') {\n locale = 'enGB'; // if english locale is provided without region, we default to GB\n }\n locale = locale.replace('-', '');\n const availableLocales = { ...this.includedLocales, ...this.locales, ...this.customLocales };\n return availableLocales[locale] || this.includedLocales.enGB; // Default to enGB if injected locale doesnt exist\n }\n\n private formatDateLabel(): string {\n const localeDateFormats = {\n da: 'd. MMMM',\n de: 'd. MMMM',\n 'en-GB': 'd MMMM',\n 'en-US': 'MMMM d',\n };\n\n const defaultDateFormat = localeDateFormats['en-US'];\n const dateFormat = localeDateFormats[this.locale.code] || defaultDateFormat;\n return dateFormat;\n }\n\n ngOnInit() {\n this.focussedDate = this.getTodayDate();\n this._weekDays = this.getWeekDays();\n this.setActiveMonth(this.selectedDate);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.activeMonth) return;\n if (\n changes.disableWeekends ||\n changes.disablePastDates ||\n changes.disableFutureDates ||\n changes.disabledDates ||\n changes.enabledDates ||\n changes.minDate ||\n changes.maxDate ||\n changes.todayDate ||\n changes.timezone\n ) {\n this.refreshActiveMonth();\n }\n }\n\n private setActiveMonth(date: Date = new Date()) {\n if (!this.activeMonth || !isSameMonth(this.activeMonth, date)) {\n this.activeMonth = startOfMonth(date);\n this.refreshActiveMonth();\n }\n }\n\n // For leniency, the component will accept any Date that points to either UTC midnight\n // or to local timezone midnight although we will internally normalize the representation\n // of all received dates to point to local timezone midnight.\n // We currently log no warnings if the date doesn't match the timezone setting or\n // if it doesn't point to midnight.\n private normalizeDate(dateLocalOrUTC: Date) {\n if (!dateLocalOrUTC) return;\n\n if (startOfDay(dateLocalOrUTC).getTime() === dateLocalOrUTC.getTime()) {\n // date is local timezone midnight\n return dateLocalOrUTC;\n }\n if (\n startOfDay(toZonedTime(dateLocalOrUTC, this.timeZoneName)).getTime() ===\n toZonedTime(dateLocalOrUTC, this.timeZoneName).getTime()\n ) {\n // the date is a UTC midnight; create the equivalent local timezone midnight date\n const normalizedUTCdate = toZonedTime(dateLocalOrUTC, this.timeZoneName);\n return normalizedUTCdate;\n }\n // does not point to midnight so we make it\n return startOfDay(dateLocalOrUTC);\n }\n\n private getWeekDays(): WeekDay[] {\n const now = new Date();\n const week = eachDayOfInterval({\n start: startOfWeek(now, { locale: this.locale }),\n end: endOfWeek(now, { locale: this.locale }),\n });\n\n const weekdayNarrowFormat = 'EEEEE';\n const weekdayWideFormat = 'EEEE';\n\n return week.map((date) => ({\n firstLetterCapitalized: this.formatWithLocale(date, weekdayNarrowFormat),\n fullName: this.formatWithLocale(date, weekdayWideFormat),\n }));\n }\n\n private hasDateChanged(newDate: Date, previousDate: Date): boolean {\n if (!newDate && !previousDate) {\n return false;\n }\n if (newDate instanceof Date && !previousDate) {\n return true;\n }\n return !isSameDay(newDate, previousDate);\n }\n\n private isDisabledDate(date: Date): boolean {\n return this.disabledDates.some((disabledDate) => isSameDay(disabledDate, date));\n }\n\n private isEnabledDate(date: Date): boolean {\n return (\n this._enabledDates.length === 0 ||\n this.enabledDates.some((enabledDate) => isSameDay(enabledDate, date))\n );\n }\n\n refreshActiveMonth() {\n if (!this.activeMonth) return;\n\n const monthStart = startOfMonth(this.activeMonth);\n const startOfFirstWeek = startOfWeek(monthStart, { locale: this.locale });\n\n const totalNumberOfDays = 42; // Always show 42 days (6 weeks) in calendar\n const daysArray = Array.from(Array(totalNumberOfDays).keys());\n const today = this.getTodayDate();\n\n const calendarDays: CalendarDay[] = daysArray.map((number) => {\n const dateOfCalendarDay = add(startOfFirstWeek, { [TimeUnit.days]: number });\n\n const calendarDay: CalendarDay = {\n date: dateOfCalendarDay.getDate(),\n monthIndex: dateOfCalendarDay.getMonth(),\n year: dateOfCalendarDay.getFullYear(),\n ariaLabel: this.formatWithLocale(dateOfCalendarDay, this.formatDateLabel()),\n ...this.getCalendarDayMetadata(dateOfCalendarDay, today, monthStart),\n };\n if (calendarDay.isSelected) {\n this.selectedDay = calendarDay;\n }\n if (calendarDay.isFocussed) {\n this.focussedDay = calendarDay;\n }\n return calendarDay;\n });\n this._month = this.chunk(calendarDays, 7);\n }\n\n private getCalendarDayMetadata(date: Date, today: Date, monthStart: Date): CalendarDayMetadata {\n return {\n isToday: isSameDay(today, date),\n isPast: isBefore(date, today),\n isFuture: isAfter(date, today),\n isWeekend: isWeekend(date),\n isCurrentMonth: isSameMonth(date, monthStart),\n isSelectable: this.isSelectable(date, today),\n isFocusable: this.isWithinAllowedRange(date, today),\n isSelected: isSameDay(this.selectedDate, date),\n isFocussed: isSameDay(this.focussedDate, date),\n };\n }\n\n private isSelectable(date: Date, today: Date): boolean {\n if (this.alwaysEnableToday && isSameDay(today, date)) return true;\n\n if (!this.isWithinAllowedRange(date, today)) return false;\n if (this.isDisabledDate(date)) return false;\n if (!this.isEnabledDate(date)) return false;\n if (this.disableWeekends && isWeekend(date)) return false;\n\n return true;\n }\n\n private isWithinAllowedRange(date: Date, today: Date): boolean {\n if (this.disablePastDates && isBefore(date, today)) return false;\n if (this.disableFutureDates && isAfter(date, today)) return false;\n if (this.minDate && isBefore(date, this.minDate)) return false;\n if (this.maxDate && isAfter(date, this.maxDate)) return false;\n\n return true;\n }\n\n private chunk(array: any[], size: number) {\n const results = [];\n while (array.length) {\n results.push(array.splice(0, size));\n }\n return results;\n }\n\n private onSelectedDateChange(newDate: Date): void {\n if (this.selectedDay) {\n this.selectedDay.isSelected = false;\n }\n\n const newDay = this.getDay(newDate);\n if (newDay) {\n newDay.isSelected = true;\n this.selectedDay = newDay;\n }\n }\n\n _onDateSelected(newDay: CalendarDay) {\n if (!newDay.isSelectable) return;\n\n let newDate = new Date(newDay.year, newDay.monthIndex, newDay.date);\n\n if (this.timezone === 'UTC') {\n newDate = fromZonedTime(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n const dateToEmit = newDate;\n\n if (this.hasDateChanged(newDate, this._selectedDate)) {\n this.setActiveMonth(newDate);\n this.onSelectedDateChange(newDate);\n this.selectedDate = newDate;\n this.dateChange.emit(dateToEmit);\n }\n this.dateSelect.emit(dateToEmit);\n }\n\n _changeMonth(index: number) {\n if (index > 0 && !this._canNavigateForward) return;\n if (index < 0 && !this._canNavigateBack) return;\n\n this.changeActiveView(index, TimeUnit.months);\n index > 0\n ? this.nextMonthClicked.emit(this.activeMonth)\n : this.previousMonthClicked.emit(this.activeMonth);\n }\n\n _changeYear(year: string) {\n const yearNumeric = Number(year);\n this.changeActiveView(yearNumeric - getYear(this.activeMonth), TimeUnit.years);\n this.yearSelect.emit(yearNumeric);\n }\n\n private changeActiveView(index: number, unit: TimeUnit) {\n if (index === 0) return;\n this.activeMonth = add(this.activeMonth, { [unit]: index });\n this.focussedDate = add(this.focussedDate, { [unit]: index });\n\n this.refreshActiveMonth();\n }\n\n get _canNavigateBack(): boolean {\n const today = this.getTodayDate();\n const reachedPastDatesLimit = this.disablePastDates && isSameMonth(this.activeMonth, today);\n\n const reachedOrExceededMinDate =\n this.minDate &&\n (isSameMonth(this.activeMonth, this.minDate) || isBefore(this.activeMonth, this.minDate));\n\n return !reachedPastDatesLimit && !reachedOrExceededMinDate;\n }\n\n get _canNavigateForward(): boolean {\n const today = this.getTodayDate();\n const reachedFutureDatesLimit = this.disableFutureDates && isSameMonth(this.activeMonth, today);\n\n const reachedOrExceededMaxDate =\n this.maxDate &&\n (isSameMonth(this.activeMonth, this.maxDate) || isAfter(this.activeMonth, this.maxDate));\n\n return !reachedFutureDatesLimit && !reachedOrExceededMaxDate;\n }\n\n private getDay(date: Date) {\n let foundDay: CalendarDay = null;\n if (date) {\n for (const week of this._month) {\n foundDay = week.find((day) => {\n return day.isCurrentMonth && day.date === date.getDate();\n });\n if (foundDay) {\n break;\n }\n }\n }\n return foundDay;\n }\n\n private subtractTimezoneOffset(date: Date): Date {\n const timezoneOffsetInMs = date.getTimezoneOffset() * 60 * 1000;\n return new Date(date.getTime() - timezoneOffsetInMs);\n }\n\n private getDateFromNavigableYear(navigableYear: number | Date): Date {\n if (navigableYear instanceof Date) return navigableYear;\n const today = this.todayDate || new Date();\n return new Date(today.getFullYear() + navigableYear, 0, 1);\n }\n\n private getYearsBetweenDates(startDate: Date, endDate: Date): string[] {\n // Ensure years are ordered correctly if parameters are switched:\n const [startYear, endYear] = [startDate.getFullYear(), endDate.getFullYear()].sort();\n const numberOfYears = endYear - startYear;\n return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());\n }\n\n private setFocussedDay(newDate: Date) {\n const newDay = this.getDay(newDate);\n if (!newDay) return;\n\n if (this.focussedDay) {\n this.focussedDay.isFocussed = false;\n }\n newDay.isFocussed = true;\n this.focussedDay = newDay;\n }\n\n private focusDate(newDate: Date | null) {\n if (!newDate) return;\n\n newDate = this.normalizeDate(newDate);\n\n if (this.timezone === 'UTC') {\n newDate = fromZonedTime(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n const today = this.getTodayDate();\n if (!this.isWithinAllowedRange(newDate, today)) return;\n\n if (!this.hasDateChanged(newDate, this.focussedDate)) return;\n\n this.setActiveMonth(newDate);\n this.setFocussedDay(newDate);\n this.focussedDate = newDate;\n\n this.cdr.detectChanges(); //sync focussed class to template before setting focus\n const elementMarkedForFocus = this.elementRef.nativeElement.querySelector('.focussed');\n elementMarkedForFocus.focus();\n }\n\n _onDateKeydown(event: KeyboardEvent) {\n const { key, shiftKey } = event;\n let newDate;\n\n switch (key) {\n case 'ArrowUp':\n newDate = add(this.focussedDate, { days: -7 });\n break;\n case 'ArrowDown':\n newDate = add(this.focussedDate, { days: 7 });\n break;\n case 'ArrowRight':\n newDate = add(this.focussedDate, { days: 1 });\n break;\n case 'ArrowLeft':\n newDate = add(this.focussedDate, { days: -1 });\n break;\n case 'Home':\n newDate = startOfWeek(this.focussedDate, { locale: this.locale });\n break;\n case 'End':\n newDate = lastDayOfWeek(this.focussedDate, { locale: this.locale });\n break;\n case 'PageUp':\n newDate = shiftKey\n ? add(this.focussedDate, { years: -1 })\n : add(this.focussedDate, { months: -1 });\n break;\n case 'PageDown':\n newDate = shiftKey\n ? add(this.focussedDate, { years: 1 })\n : add(this.focussedDate, { months: 1 });\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.focusDate(newDate);\n }\n}\n","<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('previousMonth')\"\n [attr.aria-disabled]=\"_canNavigateBack ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(-1)\"\n >\n <kirby-icon name=\"arrow-back\" aria-hidden=\"true\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\" [id]=\"_tableMonthId\" aria-live=\"polite\" aria-atomic=\"true\">\n <span class=\"month\">{{ activeMonthName }}</span>\n @if (!_hasYearNavigator) {\n <span class=\"year\">{{ activeYear }}</span>\n }\n </div>\n\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('nextMonth')\"\n [attr.aria-disabled]=\"_canNavigateForward ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(1)\"\n >\n <kirby-icon name=\"arrow-more\" aria-hidden=\"true\"></kirby-icon>\n </button>\n </div>\n @if (_hasYearNavigator) {\n <kirby-dropdown\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n [attr.aria-label]=\"translations.get('selectYear')\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n }\n</div>\n\n<table [attr.aria-labelledby]=\"_tableMonthId\" role=\"grid\">\n <thead>\n <tr>\n @for (weekDay of _weekDays; track weekDay.fullName) {\n <th scope=\"col\">\n <span aria-hidden=\"true\">{{ weekDay.firstLetterCapitalized }}</span>\n <span class=\"kirby-visually-hidden\">{{ weekDay.fullName }}</span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of _month; track $index) {\n <tr>\n @for (day of week; track day.date + '-' + day.monthIndex + '-' + day.year) {\n <td [attr.aria-selected]=\"day.isSelected ? true : false\">\n <button\n kirby-button\n type=\"button\"\n (click)=\"_onDateSelected(day)\"\n (keydown)=\"_onDateKeydown($event)\"\n class=\"day\"\n [class.current-month]=\"day.isCurrentMonth\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.selectable]=\"day.isSelectable\"\n [class.selected]=\"day.isSelected\"\n [class.focussed]=\"day.isFocussed\"\n [class.past]=\"day.isPast\"\n [attr.aria-label]=\"day.ariaLabel\"\n [attr.aria-disabled]=\"day.isSelectable ? null : true\"\n [noDecoration]=\"true\"\n [disabled]=\"day.isFocusable ? null : true\"\n [tabIndex]=\"day.isFocussed ? 0 : -1\"\n >\n {{ day.date }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\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-calendar.mjs","sources":["../../calendar/src/calendar.component.ts","../../calendar/src/calendar.component.html","../../calendar/src/kirbydesign-designsystem-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {\n add,\n eachDayOfInterval,\n endOfWeek,\n format,\n getYear,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWeekend,\n lastDayOfWeek,\n Locale as LocaleDateFns,\n startOfDay,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport { fromZonedTime, toZonedTime } from 'date-fns-tz';\nimport { da, de, enGB, enUS } from 'date-fns/locale';\n\nimport { capitalizeFirstLetter } from '@kirbydesign/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { DropdownComponent } from '@kirbydesign/designsystem/dropdown';\nimport { UniqueIdGenerator } from '@kirbydesign/designsystem/helpers';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { TranslationService } from '@kirbydesign/designsystem/shared';\nimport { CalendarDay, CalendarDayMetadata } from './interfaces/calendar-day';\nimport { CalendarYearNavigatorConfig } from './interfaces/calendar-year-navigator-config';\n\nexport type Locale = LocaleDateFns;\n\ninterface WeekDay {\n firstLetterCapitalized: string;\n fullName: string;\n}\n\nenum TimeUnit {\n years = 'years',\n months = 'months',\n weeks = 'weeks',\n days = 'days',\n hours = 'hours',\n minutes = 'minutes',\n seconds = 'seconds',\n milliseconds = 'milliseconds',\n}\n\n@Component({\n imports: [DropdownComponent, ButtonComponent, IconComponent],\n selector: 'kirby-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @Output() dateChange = new EventEmitter<Date>();\n @Output() dateSelect = new EventEmitter<Date>();\n @Output() yearSelect = new EventEmitter<number>();\n @Output() previousMonthClicked = new EventEmitter<Date>();\n @Output() nextMonthClicked = new EventEmitter<Date>();\n @Input() timezone: 'local' | 'UTC' = 'local';\n @Input() disableWeekends = false;\n @Input() disablePastDates = false;\n @Input() disableFutureDates = false;\n @Input() alwaysEnableToday = false;\n\n @Input() set locales(locales: { [key: string]: Locale }) {\n console.warn(\n `Supplying additional locales to the Kirby Calendar Component via an input property is deprecated and should not be used.\n A future update will allow injecting additional locales via a provider instead.`\n );\n }\n @Input() customLocales: { [key: string]: Locale } = {};\n /*\n Experimental: Input property not documented on purpose.\n For context see: https://github.com/kirbydesign/designsystem/issues/2087\n */\n @Input() usePopover = false;\n /**\n * Configuration for the year navigator.\n *\n * Internally, calendar component:\n * - bases yearNavigatorOptions.from and yearNavigatorOptions.to on todayDate if a number is provided\n * - prioritizes minDate and maxDate over yearNavigatorOptions.from and yearNavigatorOptions.to\n */\n @Input() yearNavigatorOptions: CalendarYearNavigatorConfig;\n\n _tableMonthId = UniqueIdGenerator.scopedTo('kirby-calendar-month').next();\n _month: CalendarDay[][];\n _weekDays: WeekDay[];\n private selectedDay: CalendarDay;\n private focussedDay: CalendarDay;\n // NOTE: Internally, all Dates\n // are normalized to point to local timezone midnight, regardless of the timezone\n // setting.\n private activeMonth: Date;\n private _selectedDate: Date;\n private _disabledDates: Date[] = [];\n private _enabledDates: Date[] = [];\n private _todayDate: Date;\n private _minDate: Date;\n private _maxDate: Date;\n private focussedDate: Date;\n private locale: Locale;\n private timeZoneName: string;\n private includedLocales = { da, de, enGB, enUS };\n\n get selectedDate(): Date {\n return this._selectedDate;\n }\n\n @Input() set selectedDate(valueLocalOrUTC: Date | null) {\n const value = this.normalizeDate(valueLocalOrUTC);\n\n if (valueLocalOrUTC) {\n this.setActiveMonth(value);\n }\n\n if (this.hasDateChanged(value, this._selectedDate)) {\n this.onSelectedDateChange(value);\n this.focusDate(value);\n this._selectedDate = value;\n }\n }\n\n get disabledDates(): Date[] {\n return this._disabledDates;\n }\n\n @Input() set disabledDates(value: Date[]) {\n this._disabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get enabledDates(): Date[] {\n return this._enabledDates;\n }\n\n @Input() set enabledDates(value: Date[]) {\n this._enabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get todayDate(): Date {\n return this._todayDate;\n }\n\n @Input() set todayDate(value: Date) {\n this._todayDate = this.normalizeDate(value);\n }\n\n get minDate(): Date {\n return this._minDate;\n }\n\n @Input() set minDate(value: Date) {\n if (value && this.activeMonth && isBefore(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._minDate = this.normalizeDate(value);\n }\n\n get maxDate(): Date {\n return this._maxDate;\n }\n\n @Input() set maxDate(value: Date) {\n if (value && this.activeMonth && isAfter(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._maxDate = this.normalizeDate(value);\n }\n\n get activeMonthName(): string {\n return capitalizeFirstLetter(this.formatWithLocale(this.activeMonth, 'MMMM'));\n }\n\n get activeYear(): string {\n return this.formatWithLocale(this.activeMonth, 'yyyy');\n }\n\n /**\n * Gets navigable years for year navigator based on yearNavigatorOptions.\n */\n get navigableYears(): string[] {\n const dateOfFirstNavigableYear =\n this.minDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.from);\n\n const dateOfLastNavigableYear =\n this.maxDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.to);\n\n return this.getYearsBetweenDates(dateOfFirstNavigableYear, dateOfLastNavigableYear);\n }\n\n get navigatedYear(): number {\n return this.navigableYears.indexOf(this.activeYear);\n }\n\n @HostBinding('class.has-year-navigator')\n get _hasYearNavigator() {\n return !!this.yearNavigatorOptions;\n }\n\n private getTodayDate() {\n return startOfDay(this.todayDate ?? new Date());\n }\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n public translations: TranslationService\n ) {\n this.locale = this.mapLocale(locale);\n this.timeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n private formatWithLocale(date: Date, formatString: string): string {\n return format(date, formatString, {\n locale: this.locale,\n });\n }\n\n private mapLocale(locale: string): Locale {\n if (locale === 'en') {\n locale = 'enGB'; // if english locale is provided without region, we default to GB\n }\n locale = locale.replace('-', '');\n const availableLocales = { ...this.includedLocales, ...this.locales, ...this.customLocales };\n return availableLocales[locale] || this.includedLocales.enGB; // Default to enGB if injected locale doesnt exist\n }\n\n private formatDateLabel(): string {\n const localeDateFormats = {\n da: 'd. MMMM',\n de: 'd. MMMM',\n 'en-GB': 'd MMMM',\n 'en-US': 'MMMM d',\n };\n\n const defaultDateFormat = localeDateFormats['en-US'];\n const dateFormat = localeDateFormats[this.locale.code] || defaultDateFormat;\n return dateFormat;\n }\n\n ngOnInit() {\n this.focussedDate = this.getTodayDate();\n this._weekDays = this.getWeekDays();\n this.setActiveMonth(this.selectedDate);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.activeMonth) return;\n if (\n changes.disableWeekends ||\n changes.disablePastDates ||\n changes.disableFutureDates ||\n changes.disabledDates ||\n changes.enabledDates ||\n changes.minDate ||\n changes.maxDate ||\n changes.todayDate ||\n changes.timezone\n ) {\n this.refreshActiveMonth();\n }\n }\n\n private setActiveMonth(date: Date = new Date()) {\n if (!this.activeMonth || !isSameMonth(this.activeMonth, date)) {\n this.activeMonth = startOfMonth(date);\n this.refreshActiveMonth();\n }\n }\n\n // For leniency, the component will accept any Date that points to either UTC midnight\n // or to local timezone midnight although we will internally normalize the representation\n // of all received dates to point to local timezone midnight.\n // We currently log no warnings if the date doesn't match the timezone setting or\n // if it doesn't point to midnight.\n private normalizeDate(dateLocalOrUTC: Date) {\n if (!dateLocalOrUTC) return;\n\n if (startOfDay(dateLocalOrUTC).getTime() === dateLocalOrUTC.getTime()) {\n // date is local timezone midnight\n return dateLocalOrUTC;\n }\n if (\n startOfDay(toZonedTime(dateLocalOrUTC, this.timeZoneName)).getTime() ===\n toZonedTime(dateLocalOrUTC, this.timeZoneName).getTime()\n ) {\n // the date is a UTC midnight; create the equivalent local timezone midnight date\n const normalizedUTCdate = toZonedTime(dateLocalOrUTC, this.timeZoneName);\n return normalizedUTCdate;\n }\n // does not point to midnight so we make it\n return startOfDay(dateLocalOrUTC);\n }\n\n private getWeekDays(): WeekDay[] {\n const now = new Date();\n const week = eachDayOfInterval({\n start: startOfWeek(now, { locale: this.locale }),\n end: endOfWeek(now, { locale: this.locale }),\n });\n\n const weekdayNarrowFormat = 'EEEEE';\n const weekdayWideFormat = 'EEEE';\n\n return week.map((date) => ({\n firstLetterCapitalized: this.formatWithLocale(date, weekdayNarrowFormat),\n fullName: this.formatWithLocale(date, weekdayWideFormat),\n }));\n }\n\n private hasDateChanged(newDate: Date, previousDate: Date): boolean {\n if (!newDate && !previousDate) {\n return false;\n }\n if (newDate instanceof Date && !previousDate) {\n return true;\n }\n return !isSameDay(newDate, previousDate);\n }\n\n private isDisabledDate(date: Date): boolean {\n return this.disabledDates.some((disabledDate) => isSameDay(disabledDate, date));\n }\n\n private isEnabledDate(date: Date): boolean {\n return (\n this._enabledDates.length === 0 ||\n this.enabledDates.some((enabledDate) => isSameDay(enabledDate, date))\n );\n }\n\n refreshActiveMonth() {\n if (!this.activeMonth) return;\n\n const monthStart = startOfMonth(this.activeMonth);\n const startOfFirstWeek = startOfWeek(monthStart, { locale: this.locale });\n\n const totalNumberOfDays = 42; // Always show 42 days (6 weeks) in calendar\n const daysArray = Array.from(Array(totalNumberOfDays).keys());\n const today = this.getTodayDate();\n\n const calendarDays: CalendarDay[] = daysArray.map((number) => {\n const dateOfCalendarDay = add(startOfFirstWeek, { [TimeUnit.days]: number });\n\n const calendarDay: CalendarDay = {\n date: dateOfCalendarDay.getDate(),\n monthIndex: dateOfCalendarDay.getMonth(),\n year: dateOfCalendarDay.getFullYear(),\n ariaLabel: this.formatWithLocale(dateOfCalendarDay, this.formatDateLabel()),\n ...this.getCalendarDayMetadata(dateOfCalendarDay, today, monthStart),\n };\n if (calendarDay.isSelected) {\n this.selectedDay = calendarDay;\n }\n if (calendarDay.isFocussed) {\n this.focussedDay = calendarDay;\n }\n return calendarDay;\n });\n this._month = this.chunk(calendarDays, 7);\n }\n\n private getCalendarDayMetadata(date: Date, today: Date, monthStart: Date): CalendarDayMetadata {\n return {\n isToday: isSameDay(today, date),\n isPast: isBefore(date, today),\n isFuture: isAfter(date, today),\n isWeekend: isWeekend(date),\n isCurrentMonth: isSameMonth(date, monthStart),\n isSelectable: this.isSelectable(date, today),\n isFocusable: this.isWithinAllowedRange(date, today),\n isSelected: isSameDay(this.selectedDate, date),\n isFocussed: isSameDay(this.focussedDate, date),\n };\n }\n\n private isSelectable(date: Date, today: Date): boolean {\n if (this.alwaysEnableToday && isSameDay(today, date)) return true;\n\n if (!this.isWithinAllowedRange(date, today)) return false;\n if (this.isDisabledDate(date)) return false;\n if (!this.isEnabledDate(date)) return false;\n if (this.disableWeekends && isWeekend(date)) return false;\n\n return true;\n }\n\n private isWithinAllowedRange(date: Date, today: Date): boolean {\n if (this.disablePastDates && isBefore(date, today)) return false;\n if (this.disableFutureDates && isAfter(date, today)) return false;\n if (this.minDate && isBefore(date, this.minDate)) return false;\n if (this.maxDate && isAfter(date, this.maxDate)) return false;\n\n return true;\n }\n\n private chunk(array: any[], size: number) {\n const results = [];\n while (array.length) {\n results.push(array.splice(0, size));\n }\n return results;\n }\n\n private onSelectedDateChange(newDate: Date): void {\n if (this.selectedDay) {\n this.selectedDay.isSelected = false;\n }\n\n const newDay = this.getDay(newDate);\n if (newDay) {\n newDay.isSelected = true;\n this.selectedDay = newDay;\n }\n }\n\n _onDateSelected(newDay: CalendarDay) {\n if (!newDay.isSelectable) return;\n\n let newDate = new Date(newDay.year, newDay.monthIndex, newDay.date);\n\n if (this.timezone === 'UTC') {\n newDate = fromZonedTime(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n const dateToEmit = newDate;\n\n if (this.hasDateChanged(newDate, this._selectedDate)) {\n this.setActiveMonth(newDate);\n this.onSelectedDateChange(newDate);\n this.selectedDate = newDate;\n this.dateChange.emit(dateToEmit);\n }\n this.dateSelect.emit(dateToEmit);\n }\n\n _changeMonth(index: number) {\n if (index > 0 && !this._canNavigateForward) return;\n if (index < 0 && !this._canNavigateBack) return;\n\n this.changeActiveView(index, TimeUnit.months);\n index > 0\n ? this.nextMonthClicked.emit(this.activeMonth)\n : this.previousMonthClicked.emit(this.activeMonth);\n }\n\n _changeYear(year: string) {\n const yearNumeric = Number(year);\n this.changeActiveView(yearNumeric - getYear(this.activeMonth), TimeUnit.years);\n this.yearSelect.emit(yearNumeric);\n }\n\n private changeActiveView(index: number, unit: TimeUnit) {\n if (index === 0) return;\n this.activeMonth = add(this.activeMonth, { [unit]: index });\n this.focussedDate = add(this.focussedDate, { [unit]: index });\n\n this.refreshActiveMonth();\n }\n\n get _canNavigateBack(): boolean {\n const today = this.getTodayDate();\n const reachedPastDatesLimit = this.disablePastDates && isSameMonth(this.activeMonth, today);\n\n const reachedOrExceededMinDate =\n this.minDate &&\n (isSameMonth(this.activeMonth, this.minDate) || isBefore(this.activeMonth, this.minDate));\n\n return !reachedPastDatesLimit && !reachedOrExceededMinDate;\n }\n\n get _canNavigateForward(): boolean {\n const today = this.getTodayDate();\n const reachedFutureDatesLimit = this.disableFutureDates && isSameMonth(this.activeMonth, today);\n\n const reachedOrExceededMaxDate =\n this.maxDate &&\n (isSameMonth(this.activeMonth, this.maxDate) || isAfter(this.activeMonth, this.maxDate));\n\n return !reachedFutureDatesLimit && !reachedOrExceededMaxDate;\n }\n\n private getDay(date: Date) {\n let foundDay: CalendarDay = null;\n if (date) {\n for (const week of this._month) {\n foundDay = week.find((day) => {\n return day.isCurrentMonth && day.date === date.getDate();\n });\n if (foundDay) {\n break;\n }\n }\n }\n return foundDay;\n }\n\n private subtractTimezoneOffset(date: Date): Date {\n const timezoneOffsetInMs = date.getTimezoneOffset() * 60 * 1000;\n return new Date(date.getTime() - timezoneOffsetInMs);\n }\n\n private getDateFromNavigableYear(navigableYear: number | Date): Date {\n if (navigableYear instanceof Date) return navigableYear;\n const today = this.todayDate || new Date();\n return new Date(today.getFullYear() + navigableYear, 0, 1);\n }\n\n private getYearsBetweenDates(startDate: Date, endDate: Date): string[] {\n // Ensure years are ordered correctly if parameters are switched:\n const [startYear, endYear] = [startDate.getFullYear(), endDate.getFullYear()].sort();\n const numberOfYears = endYear - startYear;\n return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());\n }\n\n private setFocussedDay(newDate: Date) {\n const newDay = this.getDay(newDate);\n if (!newDay) return;\n\n if (this.focussedDay) {\n this.focussedDay.isFocussed = false;\n }\n newDay.isFocussed = true;\n this.focussedDay = newDay;\n }\n\n private focusDate(newDate: Date | null) {\n if (!newDate) return;\n\n newDate = this.normalizeDate(newDate);\n\n if (this.timezone === 'UTC') {\n newDate = fromZonedTime(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n const today = this.getTodayDate();\n if (!this.isWithinAllowedRange(newDate, today)) return;\n\n if (!this.hasDateChanged(newDate, this.focussedDate)) return;\n\n this.setActiveMonth(newDate);\n this.setFocussedDay(newDate);\n this.focussedDate = newDate;\n\n this.cdr.detectChanges(); //sync focussed class to template before setting focus\n const elementMarkedForFocus = this.elementRef.nativeElement.querySelector('.focussed');\n elementMarkedForFocus.focus();\n }\n\n _onDateKeydown(event: KeyboardEvent) {\n const { key, shiftKey } = event;\n let newDate;\n\n switch (key) {\n case 'ArrowUp':\n newDate = add(this.focussedDate, { days: -7 });\n break;\n case 'ArrowDown':\n newDate = add(this.focussedDate, { days: 7 });\n break;\n case 'ArrowRight':\n newDate = add(this.focussedDate, { days: 1 });\n break;\n case 'ArrowLeft':\n newDate = add(this.focussedDate, { days: -1 });\n break;\n case 'Home':\n newDate = startOfWeek(this.focussedDate, { locale: this.locale });\n break;\n case 'End':\n newDate = lastDayOfWeek(this.focussedDate, { locale: this.locale });\n break;\n case 'PageUp':\n newDate = shiftKey\n ? add(this.focussedDate, { years: -1 })\n : add(this.focussedDate, { months: -1 });\n break;\n case 'PageDown':\n newDate = shiftKey\n ? add(this.focussedDate, { years: 1 })\n : add(this.focussedDate, { months: 1 });\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.focusDate(newDate);\n }\n}\n","<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('previousMonth')\"\n [attr.aria-disabled]=\"_canNavigateBack ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(-1)\"\n >\n <kirby-icon name=\"arrow-back\" aria-hidden=\"true\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\" [id]=\"_tableMonthId\" aria-live=\"polite\" aria-atomic=\"true\">\n <span class=\"month\">{{ activeMonthName }}</span>\n @if (!_hasYearNavigator) {\n <span class=\"year\">{{ activeYear }}</span>\n }\n </div>\n\n <button\n kirby-button\n type=\"button\"\n class=\"no-margin\"\n [attr.aria-label]=\"translations.get('nextMonth')\"\n [attr.aria-disabled]=\"_canNavigateForward ? null : true\"\n [noDecoration]=\"true\"\n (click)=\"_changeMonth(1)\"\n >\n <kirby-icon name=\"arrow-more\" aria-hidden=\"true\"></kirby-icon>\n </button>\n </div>\n @if (_hasYearNavigator) {\n <kirby-dropdown\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n [attr.aria-label]=\"translations.get('selectYear')\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n }\n</div>\n\n<table [attr.aria-labelledby]=\"_tableMonthId\" role=\"grid\">\n <thead>\n <tr>\n @for (weekDay of _weekDays; track weekDay.fullName) {\n <th scope=\"col\">\n <span aria-hidden=\"true\">{{ weekDay.firstLetterCapitalized }}</span>\n <span class=\"kirby-visually-hidden\">{{ weekDay.fullName }}</span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of _month; track $index) {\n <tr>\n @for (day of week; track day.date + '-' + day.monthIndex + '-' + day.year) {\n <td [attr.aria-selected]=\"day.isSelected ? true : false\">\n <button\n kirby-button\n type=\"button\"\n (click)=\"_onDateSelected(day)\"\n (keydown)=\"_onDateKeydown($event)\"\n class=\"day\"\n [class.current-month]=\"day.isCurrentMonth\"\n [class.weekend]=\"day.isWeekend\"\n [class.today]=\"day.isToday\"\n [class.selectable]=\"day.isSelectable\"\n [class.selected]=\"day.isSelected\"\n [class.focussed]=\"day.isFocussed\"\n [class.past]=\"day.isPast\"\n [attr.aria-label]=\"day.ariaLabel\"\n [attr.aria-disabled]=\"day.isSelectable ? null : true\"\n [noDecoration]=\"true\"\n [disabled]=\"day.isFocusable ? null : true\"\n [tabIndex]=\"day.isFocussed ? 0 : -1\"\n >\n {{ day.date }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -8,10 +8,10 @@ class CardFooterComponent {
8
8
  constructor() {
9
9
  this.hasPadding = true;
10
10
  }
11
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CardFooterComponent, isStandalone: true, selector: "kirby-card-footer", inputs: { hasPadding: "hasPadding" }, host: { properties: { "class.has-padding": "this.hasPadding" } }, ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;backface-visibility:hidden;transform:translateZ(0)}:host.has-padding{padding:16px}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: CardFooterComponent, isStandalone: true, selector: "kirby-card-footer", inputs: { hasPadding: "hasPadding" }, host: { properties: { "class.has-padding": "this.hasPadding" } }, ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;backface-visibility:hidden;transform:translateZ(0)}:host.has-padding{padding:16px}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardFooterComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardFooterComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'kirby-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;backface-visibility:hidden;transform:translateZ(0)}:host.has-padding{padding:16px}footer{display:inherit;flex:inherit}\n"] }]
17
17
  }], propDecorators: { hasPadding: [{
@@ -29,10 +29,10 @@ class CardHeaderComponent {
29
29
  get _cssClass() {
30
30
  return [this.flagged, this.flagged ? 'flagged' : null];
31
31
  }
32
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CardHeaderComponent, isStandalone: true, selector: "kirby-card-header", inputs: { title: "title", subtitle: "subtitle", isTitleBold: "isTitleBold", flagged: "flagged", hasPadding: "hasPadding" }, host: { properties: { "class.has-padding": "this.hasPadding", "class": "this._cssClass" } }, ngImport: i0, template: "@if (title) {\n <p class=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</p>\n}\n@if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n}\n<ng-content></ng-content>\n", styles: [":host{display:block;border-top-left-radius:16px;border-top-right-radius:16px;text-align:center;padding:0;color:var(--kirby-card-header-color);background-color:var(--kirby-card-header-background-color)}:host.has-padding{padding:var(--kirby-internal-card-header-padding, 16px)}:host.success{--kirby-card-header-background-color: var(--kirby-success-tint)}:host.warning{--kirby-card-header-background-color: var(--kirby-warning-tint)}:host.danger{--kirby-card-header-background-color: var(--kirby-danger-tint)}:host.info{--kirby-card-header-background-color: var(--kirby-semi-light)}:host{--kirby-card-header-color: var(--kirby-black)}.title{margin-bottom:var(--kirby-internal-card-header-margin-bottom, 8px);line-height:var(--kirby-internal-card-header-line-height, 28px)}.title.bold{font-weight:700}.subtitle{font-size:14px;margin-bottom:0}:host(.flagged){--kirby-internal-card-header-padding: 2px 8px}:host(.flagged) p{--kirby-internal-card-header-line-height: 24px;--kirby-internal-card-header-margin-bottom: 0px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: CardHeaderComponent, isStandalone: true, selector: "kirby-card-header", inputs: { title: "title", subtitle: "subtitle", isTitleBold: "isTitleBold", flagged: "flagged", hasPadding: "hasPadding" }, host: { properties: { "class.has-padding": "this.hasPadding", "class": "this._cssClass" } }, ngImport: i0, template: "@if (title) {\n <p class=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</p>\n}\n@if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n}\n<ng-content></ng-content>\n", styles: [":host{display:block;border-top-left-radius:16px;border-top-right-radius:16px;text-align:center;padding:0;color:var(--kirby-card-header-color);background-color:var(--kirby-card-header-background-color)}:host.has-padding{padding:var(--kirby-internal-card-header-padding, 16px)}:host.success{--kirby-card-header-background-color: var(--kirby-success-tint)}:host.warning{--kirby-card-header-background-color: var(--kirby-warning-tint)}:host.danger{--kirby-card-header-background-color: var(--kirby-danger-tint)}:host.info{--kirby-card-header-background-color: var(--kirby-semi-light)}:host{--kirby-card-header-color: var(--kirby-black)}.title{margin-bottom:var(--kirby-internal-card-header-margin-bottom, 8px);line-height:var(--kirby-internal-card-header-line-height, 28px)}.title.bold{font-weight:700}.subtitle{font-size:14px;margin-bottom:0}:host(.flagged){--kirby-internal-card-header-padding: 2px 8px}:host(.flagged) p{--kirby-internal-card-header-line-height: 24px;--kirby-internal-card-header-margin-bottom: 0px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardHeaderComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardHeaderComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'kirby-card-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (title) {\n <p class=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</p>\n}\n@if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n}\n<ng-content></ng-content>\n", styles: [":host{display:block;border-top-left-radius:16px;border-top-right-radius:16px;text-align:center;padding:0;color:var(--kirby-card-header-color);background-color:var(--kirby-card-header-background-color)}:host.has-padding{padding:var(--kirby-internal-card-header-padding, 16px)}:host.success{--kirby-card-header-background-color: var(--kirby-success-tint)}:host.warning{--kirby-card-header-background-color: var(--kirby-warning-tint)}:host.danger{--kirby-card-header-background-color: var(--kirby-danger-tint)}:host.info{--kirby-card-header-background-color: var(--kirby-semi-light)}:host{--kirby-card-header-color: var(--kirby-black)}.title{margin-bottom:var(--kirby-internal-card-header-margin-bottom, 8px);line-height:var(--kirby-internal-card-header-line-height, 28px)}.title.bold{font-weight:700}.subtitle{font-size:14px;margin-bottom:0}:host(.flagged){--kirby-internal-card-header-padding: 2px 8px}:host(.flagged) p{--kirby-internal-card-header-line-height: 24px;--kirby-internal-card-header-margin-bottom: 0px}\n"] }]
38
38
  }], propDecorators: { title: [{
@@ -75,10 +75,10 @@ class CardAsButtonDirective {
75
75
  _onInactiveHandler() {
76
76
  this._pressed = false;
77
77
  }
78
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardAsButtonDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
79
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CardAsButtonDirective, isStandalone: true, selector: "kirby-card[click]", host: { listeners: { "keydown.space": "_onKeydownHandler($event)", "keydown.enter": "_onKeydownHandler($event)", "keyup.space": "_onInactiveHandler()", "keyup.enter": "_onInactiveHandler()", "blur": "_onInactiveHandler()" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex", "class.interaction-state-active": "this._pressed" } }, ngImport: i0 }); }
78
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardAsButtonDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
79
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CardAsButtonDirective, isStandalone: true, selector: "kirby-card[click]", host: { listeners: { "keydown.space": "_onKeydownHandler($event)", "keydown.enter": "_onKeydownHandler($event)", "keyup.space": "_onInactiveHandler()", "keyup.enter": "_onInactiveHandler()", "blur": "_onInactiveHandler()" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex", "class.interaction-state-active": "this._pressed" } }, ngImport: i0 }); }
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardAsButtonDirective, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardAsButtonDirective, decorators: [{
82
82
  type: Directive,
83
83
  args: [{
84
84
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -158,12 +158,12 @@ class CardComponent {
158
158
  });
159
159
  }
160
160
  }
161
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardComponent, deps: [{ token: i0.ElementRef }, { token: i1.ResizeObserverService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
162
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CardComponent, isStandalone: true, selector: "kirby-card", inputs: { title: "title", subtitle: "subtitle", backgroundImageUrl: "backgroundImageUrl", hasPadding: "hasPadding", sizes: "sizes", variant: "variant" }, host: { properties: { "style.--kirby-card-background-image": "this._backgroundImage", "class": "this.variant" } }, ngImport: i0, template: "<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{--kirby-card-main-background-color: var(--kirby-white);--kirby-card-main-color: var(--kirby-white-contrast);--kirby-card-footer-background-color: var(--kirby-white);--kirby-card-footer-color: var(--kirby-white-contrast);--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-inputs-elevation: none;--kirby-divider-color: var(--kirby-background-color)}:host.kirby-color-brightness-light{--kirby-inputs-background-color: var(--kirby-white);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-divider-color: var(--kirby-medium);--kirby-inputs-elevation: var(--kirby-elevation-2)}:host.kirby-color-brightness-dark{--kirby-inputs-background-color: var(--kirby-white-overlay);--kirby-inputs-background-color-hover: var(--kirby-white-overlay-30);--kirby-inputs-background-color-active: var(--kirby-white-overlay-40);--kirby-inputs-color: var(--kirby-white);--kirby-inputs-indicator-background-color: var(--kirby-white);--kirby-inputs-indicator-color: var(--kirby-black);--kirby-inputs-placeholder-color: var(--kirby-white-overlay-50);--kirby-inputs-elevation: none}@media (hover: hover){:host.kirby-color-brightness-dark[role=button]:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}:host.kirby-color-brightness-dark[role=button]:active,:host.kirby-color-brightness-dark[role=button].interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast)}:host .content-layer{display:inherit;flex-direction:inherit;justify-content:inherit}:host{border-radius:16px;box-shadow:0 1px 24px #1c1c1c0a;color:var(--kirby-card-main-color);background-color:var(--kirby-card-main-background-color);background-image:var(--kirby-card-background-image);background-repeat:var(--kirby-card-background-repeat, no-repeat);background-position:var(--kirby-card-background-position, center);background-size:var(--kirby-card-background-size, cover);border:var(--kirby-card-border, none);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;z-index:1;width:var(--kirby-card-width, auto)}:host.flat{box-shadow:none}:host.outlined{background-color:transparent;border:var(--kirby-card-border, 1px solid var(--kirby-medium));box-shadow:none}:host.outlined:has(kirby-card-header.flagged){border:none}:host.outlined:has(kirby-card-header.flagged) .content-wrapper{border-block-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-start:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-bottom-left-radius:16px;border-bottom-right-radius:16px}:host[role=button]{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}:host[role=button] .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host[role=button] .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host[role=button] .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:0;border-radius:inherit;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media (hover: hover){:host[role=button]:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host[role=button]:active,:host[role=button].interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}@media (hover: hover) and (pointer: fine){:host[role=button]:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host[role=button]:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host[role=button]:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host[role=button]{outline:none}.content-wrapper.padding{padding-top:var(--kirby-card-padding-top, 16px);padding-bottom:var(--kirby-card-padding-bottom, 16px);padding-inline:16px}.content-layer{height:100%}:host(.primary):not(.outlined){--kirby-card-main-background-color: var(--kirby-primary);--kirby-card-main-color: var(--kirby-primary-contrast)}:host(.secondary):not(.outlined){--kirby-card-main-background-color: var(--kirby-secondary);--kirby-card-main-color: var(--kirby-secondary-contrast)}:host(.tertiary):not(.outlined){--kirby-card-main-background-color: var(--kirby-tertiary);--kirby-card-main-color: var(--kirby-tertiary-contrast)}:host(.success):not(.outlined){--kirby-card-main-background-color: var(--kirby-success);--kirby-card-main-color: var(--kirby-success-contrast)}:host(.warning):not(.outlined){--kirby-card-main-background-color: var(--kirby-warning);--kirby-card-main-color: var(--kirby-warning-contrast)}:host(.danger):not(.outlined){--kirby-card-main-background-color: var(--kirby-danger);--kirby-card-main-color: var(--kirby-danger-contrast)}:host(.white-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-white-overlay);--kirby-card-main-color: var(--kirby-white-overlay-contrast)}:host(.light):not(.outlined){--kirby-card-main-background-color: var(--kirby-light);--kirby-card-main-color: var(--kirby-light-contrast)}:host(.medium):not(.outlined){--kirby-card-main-background-color: var(--kirby-medium);--kirby-card-main-color: var(--kirby-medium-contrast)}:host(.dark):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark);--kirby-card-main-color: var(--kirby-dark-contrast)}:host(.dark-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark-overlay);--kirby-card-main-color: var(--kirby-dark-overlay-contrast)}\n"] }); }
161
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardComponent, deps: [{ token: i0.ElementRef }, { token: i1.ResizeObserverService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
162
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: CardComponent, isStandalone: true, selector: "kirby-card", inputs: { title: "title", subtitle: "subtitle", backgroundImageUrl: "backgroundImageUrl", hasPadding: "hasPadding", sizes: "sizes", variant: "variant" }, host: { properties: { "style.--kirby-card-background-image": "this._backgroundImage", "class": "this.variant" } }, ngImport: i0, template: "<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{--kirby-card-main-background-color: var(--kirby-white);--kirby-card-main-color: var(--kirby-white-contrast);--kirby-card-footer-background-color: var(--kirby-white);--kirby-card-footer-color: var(--kirby-white-contrast);--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-inputs-elevation: none;--kirby-divider-color: var(--kirby-background-color)}:host.kirby-color-brightness-light{--kirby-inputs-background-color: var(--kirby-white);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-divider-color: var(--kirby-medium);--kirby-inputs-elevation: var(--kirby-elevation-2)}:host.kirby-color-brightness-dark{--kirby-inputs-background-color: var(--kirby-white-overlay);--kirby-inputs-background-color-hover: var(--kirby-white-overlay-30);--kirby-inputs-background-color-active: var(--kirby-white-overlay-40);--kirby-inputs-color: var(--kirby-white);--kirby-inputs-indicator-background-color: var(--kirby-white);--kirby-inputs-indicator-color: var(--kirby-black);--kirby-inputs-placeholder-color: var(--kirby-white-overlay-50);--kirby-inputs-elevation: none}@media(hover:hover){:host.kirby-color-brightness-dark[role=button]:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}:host.kirby-color-brightness-dark[role=button]:active,:host.kirby-color-brightness-dark[role=button].interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast)}:host .content-layer{display:inherit;flex-direction:inherit;justify-content:inherit}:host{border-radius:16px;box-shadow:0 1px 24px #1c1c1c0a;color:var(--kirby-card-main-color);background-color:var(--kirby-card-main-background-color);background-image:var(--kirby-card-background-image);background-repeat:var(--kirby-card-background-repeat, no-repeat);background-position:var(--kirby-card-background-position, center);background-size:var(--kirby-card-background-size, cover);border:var(--kirby-card-border, none);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;z-index:1;width:var(--kirby-card-width, auto)}:host.flat{box-shadow:none}:host.outlined{background-color:transparent;border:var(--kirby-card-border, 1px solid var(--kirby-medium));box-shadow:none}:host.outlined:has(kirby-card-header.flagged){border:none}:host.outlined:has(kirby-card-header.flagged) .content-wrapper{border-block-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-start:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-bottom-left-radius:16px;border-bottom-right-radius:16px}:host[role=button]{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}:host[role=button] .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host[role=button] .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host[role=button] .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:0;border-radius:inherit;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media(hover:hover){:host[role=button]:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host[role=button]:active,:host[role=button].interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}@media(hover:hover)and (pointer:fine){:host[role=button]:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host[role=button]:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host[role=button]:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host[role=button]{outline:none}.content-wrapper.padding{padding-top:var(--kirby-card-padding-top, 16px);padding-bottom:var(--kirby-card-padding-bottom, 16px);padding-inline:16px}.content-layer{height:100%}:host(.primary):not(.outlined){--kirby-card-main-background-color: var(--kirby-primary);--kirby-card-main-color: var(--kirby-primary-contrast)}:host(.secondary):not(.outlined){--kirby-card-main-background-color: var(--kirby-secondary);--kirby-card-main-color: var(--kirby-secondary-contrast)}:host(.tertiary):not(.outlined){--kirby-card-main-background-color: var(--kirby-tertiary);--kirby-card-main-color: var(--kirby-tertiary-contrast)}:host(.success):not(.outlined){--kirby-card-main-background-color: var(--kirby-success);--kirby-card-main-color: var(--kirby-success-contrast)}:host(.warning):not(.outlined){--kirby-card-main-background-color: var(--kirby-warning);--kirby-card-main-color: var(--kirby-warning-contrast)}:host(.danger):not(.outlined){--kirby-card-main-background-color: var(--kirby-danger);--kirby-card-main-color: var(--kirby-danger-contrast)}:host(.white-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-white-overlay);--kirby-card-main-color: var(--kirby-white-overlay-contrast)}:host(.light):not(.outlined){--kirby-card-main-background-color: var(--kirby-light);--kirby-card-main-color: var(--kirby-light-contrast)}:host(.medium):not(.outlined){--kirby-card-main-background-color: var(--kirby-medium);--kirby-card-main-color: var(--kirby-medium-contrast)}:host(.dark):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark);--kirby-card-main-color: var(--kirby-dark-contrast)}:host(.dark-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark-overlay);--kirby-card-main-color: var(--kirby-dark-overlay-contrast)}\n"] }); }
163
163
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardComponent, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardComponent, decorators: [{
165
165
  type: Component,
166
- args: [{ selector: 'kirby-card', template: "<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{--kirby-card-main-background-color: var(--kirby-white);--kirby-card-main-color: var(--kirby-white-contrast);--kirby-card-footer-background-color: var(--kirby-white);--kirby-card-footer-color: var(--kirby-white-contrast);--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-inputs-elevation: none;--kirby-divider-color: var(--kirby-background-color)}:host.kirby-color-brightness-light{--kirby-inputs-background-color: var(--kirby-white);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-divider-color: var(--kirby-medium);--kirby-inputs-elevation: var(--kirby-elevation-2)}:host.kirby-color-brightness-dark{--kirby-inputs-background-color: var(--kirby-white-overlay);--kirby-inputs-background-color-hover: var(--kirby-white-overlay-30);--kirby-inputs-background-color-active: var(--kirby-white-overlay-40);--kirby-inputs-color: var(--kirby-white);--kirby-inputs-indicator-background-color: var(--kirby-white);--kirby-inputs-indicator-color: var(--kirby-black);--kirby-inputs-placeholder-color: var(--kirby-white-overlay-50);--kirby-inputs-elevation: none}@media (hover: hover){:host.kirby-color-brightness-dark[role=button]:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}:host.kirby-color-brightness-dark[role=button]:active,:host.kirby-color-brightness-dark[role=button].interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast)}:host .content-layer{display:inherit;flex-direction:inherit;justify-content:inherit}:host{border-radius:16px;box-shadow:0 1px 24px #1c1c1c0a;color:var(--kirby-card-main-color);background-color:var(--kirby-card-main-background-color);background-image:var(--kirby-card-background-image);background-repeat:var(--kirby-card-background-repeat, no-repeat);background-position:var(--kirby-card-background-position, center);background-size:var(--kirby-card-background-size, cover);border:var(--kirby-card-border, none);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;z-index:1;width:var(--kirby-card-width, auto)}:host.flat{box-shadow:none}:host.outlined{background-color:transparent;border:var(--kirby-card-border, 1px solid var(--kirby-medium));box-shadow:none}:host.outlined:has(kirby-card-header.flagged){border:none}:host.outlined:has(kirby-card-header.flagged) .content-wrapper{border-block-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-start:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-bottom-left-radius:16px;border-bottom-right-radius:16px}:host[role=button]{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}:host[role=button] .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host[role=button] .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host[role=button] .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:0;border-radius:inherit;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media (hover: hover){:host[role=button]:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host[role=button]:active,:host[role=button].interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}@media (hover: hover) and (pointer: fine){:host[role=button]:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host[role=button]:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host[role=button]:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host[role=button]{outline:none}.content-wrapper.padding{padding-top:var(--kirby-card-padding-top, 16px);padding-bottom:var(--kirby-card-padding-bottom, 16px);padding-inline:16px}.content-layer{height:100%}:host(.primary):not(.outlined){--kirby-card-main-background-color: var(--kirby-primary);--kirby-card-main-color: var(--kirby-primary-contrast)}:host(.secondary):not(.outlined){--kirby-card-main-background-color: var(--kirby-secondary);--kirby-card-main-color: var(--kirby-secondary-contrast)}:host(.tertiary):not(.outlined){--kirby-card-main-background-color: var(--kirby-tertiary);--kirby-card-main-color: var(--kirby-tertiary-contrast)}:host(.success):not(.outlined){--kirby-card-main-background-color: var(--kirby-success);--kirby-card-main-color: var(--kirby-success-contrast)}:host(.warning):not(.outlined){--kirby-card-main-background-color: var(--kirby-warning);--kirby-card-main-color: var(--kirby-warning-contrast)}:host(.danger):not(.outlined){--kirby-card-main-background-color: var(--kirby-danger);--kirby-card-main-color: var(--kirby-danger-contrast)}:host(.white-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-white-overlay);--kirby-card-main-color: var(--kirby-white-overlay-contrast)}:host(.light):not(.outlined){--kirby-card-main-background-color: var(--kirby-light);--kirby-card-main-color: var(--kirby-light-contrast)}:host(.medium):not(.outlined){--kirby-card-main-background-color: var(--kirby-medium);--kirby-card-main-color: var(--kirby-medium-contrast)}:host(.dark):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark);--kirby-card-main-color: var(--kirby-dark-contrast)}:host(.dark-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark-overlay);--kirby-card-main-color: var(--kirby-dark-overlay-contrast)}\n"] }]
166
+ args: [{ selector: 'kirby-card', template: "<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{--kirby-card-main-background-color: var(--kirby-white);--kirby-card-main-color: var(--kirby-white-contrast);--kirby-card-footer-background-color: var(--kirby-white);--kirby-card-footer-color: var(--kirby-white-contrast);--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-inputs-elevation: none;--kirby-divider-color: var(--kirby-background-color)}:host.kirby-color-brightness-light{--kirby-inputs-background-color: var(--kirby-white);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);--kirby-divider-color: var(--kirby-medium);--kirby-inputs-elevation: var(--kirby-elevation-2)}:host.kirby-color-brightness-dark{--kirby-inputs-background-color: var(--kirby-white-overlay);--kirby-inputs-background-color-hover: var(--kirby-white-overlay-30);--kirby-inputs-background-color-active: var(--kirby-white-overlay-40);--kirby-inputs-color: var(--kirby-white);--kirby-inputs-indicator-background-color: var(--kirby-white);--kirby-inputs-indicator-color: var(--kirby-black);--kirby-inputs-placeholder-color: var(--kirby-white-overlay-50);--kirby-inputs-elevation: none}@media(hover:hover){:host.kirby-color-brightness-dark[role=button]:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}:host.kirby-color-brightness-dark[role=button]:active,:host.kirby-color-brightness-dark[role=button].interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast)}:host .content-layer{display:inherit;flex-direction:inherit;justify-content:inherit}:host{border-radius:16px;box-shadow:0 1px 24px #1c1c1c0a;color:var(--kirby-card-main-color);background-color:var(--kirby-card-main-background-color);background-image:var(--kirby-card-background-image);background-repeat:var(--kirby-card-background-repeat, no-repeat);background-position:var(--kirby-card-background-position, center);background-size:var(--kirby-card-background-size, cover);border:var(--kirby-card-border, none);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;z-index:1;width:var(--kirby-card-width, auto)}:host.flat{box-shadow:none}:host.outlined{background-color:transparent;border:var(--kirby-card-border, 1px solid var(--kirby-medium));box-shadow:none}:host.outlined:has(kirby-card-header.flagged){border:none}:host.outlined:has(kirby-card-header.flagged) .content-wrapper{border-block-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-start:var(--kirby-card-border, 1px solid var(--kirby-medium));border-inline-end:var(--kirby-card-border, 1px solid var(--kirby-medium));border-bottom-left-radius:16px;border-bottom-right-radius:16px}:host[role=button]{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}:host[role=button] .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host[role=button] .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host[role=button] .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:0;border-radius:inherit;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media(hover:hover){:host[role=button]:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host[role=button]:active,:host[role=button].interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}@media(hover:hover)and (pointer:fine){:host[role=button]:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host[role=button]:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host[role=button]:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host[role=button]{outline:none}.content-wrapper.padding{padding-top:var(--kirby-card-padding-top, 16px);padding-bottom:var(--kirby-card-padding-bottom, 16px);padding-inline:16px}.content-layer{height:100%}:host(.primary):not(.outlined){--kirby-card-main-background-color: var(--kirby-primary);--kirby-card-main-color: var(--kirby-primary-contrast)}:host(.secondary):not(.outlined){--kirby-card-main-background-color: var(--kirby-secondary);--kirby-card-main-color: var(--kirby-secondary-contrast)}:host(.tertiary):not(.outlined){--kirby-card-main-background-color: var(--kirby-tertiary);--kirby-card-main-color: var(--kirby-tertiary-contrast)}:host(.success):not(.outlined){--kirby-card-main-background-color: var(--kirby-success);--kirby-card-main-color: var(--kirby-success-contrast)}:host(.warning):not(.outlined){--kirby-card-main-background-color: var(--kirby-warning);--kirby-card-main-color: var(--kirby-warning-contrast)}:host(.danger):not(.outlined){--kirby-card-main-background-color: var(--kirby-danger);--kirby-card-main-color: var(--kirby-danger-contrast)}:host(.white-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-white-overlay);--kirby-card-main-color: var(--kirby-white-overlay-contrast)}:host(.light):not(.outlined){--kirby-card-main-background-color: var(--kirby-light);--kirby-card-main-color: var(--kirby-light-contrast)}:host(.medium):not(.outlined){--kirby-card-main-background-color: var(--kirby-medium);--kirby-card-main-color: var(--kirby-medium-contrast)}:host(.dark):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark);--kirby-card-main-color: var(--kirby-dark-contrast)}:host(.dark-overlay):not(.outlined){--kirby-card-main-background-color: var(--kirby-dark-overlay);--kirby-card-main-color: var(--kirby-dark-overlay-contrast)}\n"] }]
167
167
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ResizeObserverService }, { type: i0.Renderer2 }], propDecorators: { title: [{
168
168
  type: Input
169
169
  }], subtitle: [{
@@ -186,11 +186,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
186
186
 
187
187
  const imports = [CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective];
188
188
  class CardModule {
189
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
190
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CardModule, imports: [CommonModule, ThemeColorDirective, CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective], exports: [CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective, ThemeColorDirective] }); }
191
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardModule, imports: [CommonModule] }); }
189
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
190
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: CardModule, imports: [CommonModule, ThemeColorDirective, CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective], exports: [CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective, ThemeColorDirective] }); }
191
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardModule, imports: [CommonModule] }); }
192
192
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CardModule, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CardModule, decorators: [{
194
194
  type: NgModule,
195
195
  args: [{
196
196
  imports: [CommonModule, ThemeColorDirective, ...imports],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-card.mjs","sources":["../../card/src/card-footer/card-footer.component.ts","../../card/src/card-footer/card-footer.component.html","../../card/src/card-header/card-header.component.ts","../../card/src/card-header/card-header.component.html","../../card/src/card-as-button/card-as-button.directive.ts","../../card/src/card.component.ts","../../card/src/card.component.html","../../card/src/card.module.ts","../../card/src/kirbydesign-designsystem-card.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-card-footer',\n templateUrl: './card-footer.component.html',\n styleUrls: ['./card-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardFooterComponent {\n @HostBinding('class.has-padding')\n @Input()\n hasPadding: boolean = true;\n}\n","<footer>\n <ng-content></ng-content>\n</footer>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { CardFlagLevel } from '../card-flag-level';\n\n@Component({\n selector: 'kirby-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardHeaderComponent {\n @Input() title: string;\n @Input() subtitle: string;\n @Input() isTitleBold: boolean;\n @Input()\n flagged: CardFlagLevel = null;\n @HostBinding('class.has-padding')\n @Input()\n hasPadding: boolean = true;\n\n @HostBinding('class')\n get _cssClass() {\n return [this.flagged, this.flagged ? 'flagged' : null];\n }\n}\n","@if (title) {\n <p class=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</p>\n}\n@if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, HostBinding, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'kirby-card[click]',\n})\nexport class CardAsButtonDirective {\n @HostBinding('attr.role') role: string = 'button';\n @HostBinding('attr.tabindex') tabindex: number = 0;\n @HostBinding('class.interaction-state-active') _pressed = false;\n\n constructor(private clickableElement: ElementRef) {}\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n _onKeydownHandler(event: KeyboardEvent) {\n if (event.currentTarget !== event.target) return; // Do not handle keydown events for nested elements - let event bubbling take place as normal\n\n this._pressed = true;\n this.clickableElement.nativeElement.click(event);\n /*\n * Prevent default event from firing so the UA wont\n * catch this event and e.g. scroll the page on space,\n * which is the default behavior in major browsers\n */\n\n event.preventDefault();\n }\n\n @HostListener('keyup.space')\n @HostListener('keyup.enter')\n @HostListener('blur')\n _onInactiveHandler() {\n this._pressed = false;\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\n\n@Component({\n selector: 'kirby-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() subtitle: string;\n\n @HostBinding('style.--kirby-card-background-image')\n _backgroundImage: string;\n\n @Input()\n set backgroundImageUrl(value: string) {\n this._backgroundImage = `url('${value}')`;\n }\n\n @Input()\n hasPadding: boolean;\n\n private sizesSortedByBreakpoint = this.sortSizesByBreakpoint({\n small: 360,\n medium: 720,\n large: 1024,\n });\n\n @Input()\n set sizes(value: { [size: string]: number }) {\n if (typeof value === 'string') {\n console.error(\n 'Sizes property cannot be a string. Please ensure the size property is bound as an expression:\\n[sizes]=\"{...}\"'\n );\n }\n this.sizesSortedByBreakpoint = this.sortSizesByBreakpoint(value);\n }\n\n @HostBinding('class')\n @Input()\n variant: 'elevated' | 'flat' | 'outlined' = 'elevated';\n\n constructor(\n private elementRef: ElementRef,\n private resizeObserverService: ResizeObserverService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.resizeObserverService.observe(this.elementRef, (entry) => this.handleResize(entry));\n }\n\n ngOnDestroy() {\n this.resizeObserverService.unobserve(this.elementRef);\n }\n\n private sortSizesByBreakpoint(sizes: { [size: string]: number }): [string, number][] {\n return Object.entries(sizes).sort(this.compareSizesByBreakpoint);\n }\n\n private compareSizesByBreakpoint(a: [string, number], b: [string, number]): number {\n return a[1] > b[1] ? 1 : b[1] > a[1] ? -1 : 0;\n }\n\n private handleResize(entry: ResizeObserverEntry) {\n const sizeAttributeName = 'size';\n const smallestBreakpointName = this.sizesSortedByBreakpoint[0][0];\n const smallestBreakpointWidth = this.sizesSortedByBreakpoint[0][1];\n if (entry.contentRect.width < smallestBreakpointWidth) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, `<${smallestBreakpointName}`);\n } else {\n this.sizesSortedByBreakpoint.forEach(([size, width]) => {\n if (entry.contentRect.width >= width) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, size);\n }\n });\n }\n }\n}\n","<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { CardComponent } from './card.component';\nimport { CardHeaderComponent } from './card-header/card-header.component';\nimport { CardFooterComponent } from './card-footer/card-footer.component';\nimport { CardAsButtonDirective } from './card-as-button/card-as-button.directive';\n\nconst imports = [CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective];\n@NgModule({\n imports: [CommonModule, ThemeColorDirective, ...imports],\n exports: [...imports, ThemeColorDirective],\n})\nexport class CardModule {}\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-card.mjs","sources":["../../card/src/card-footer/card-footer.component.ts","../../card/src/card-footer/card-footer.component.html","../../card/src/card-header/card-header.component.ts","../../card/src/card-header/card-header.component.html","../../card/src/card-as-button/card-as-button.directive.ts","../../card/src/card.component.ts","../../card/src/card.component.html","../../card/src/card.module.ts","../../card/src/kirbydesign-designsystem-card.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-card-footer',\n templateUrl: './card-footer.component.html',\n styleUrls: ['./card-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardFooterComponent {\n @HostBinding('class.has-padding')\n @Input()\n hasPadding: boolean = true;\n}\n","<footer>\n <ng-content></ng-content>\n</footer>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { CardFlagLevel } from '../card-flag-level';\n\n@Component({\n selector: 'kirby-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardHeaderComponent {\n @Input() title: string;\n @Input() subtitle: string;\n @Input() isTitleBold: boolean;\n @Input()\n flagged: CardFlagLevel = null;\n @HostBinding('class.has-padding')\n @Input()\n hasPadding: boolean = true;\n\n @HostBinding('class')\n get _cssClass() {\n return [this.flagged, this.flagged ? 'flagged' : null];\n }\n}\n","@if (title) {\n <p class=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</p>\n}\n@if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, HostBinding, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'kirby-card[click]',\n})\nexport class CardAsButtonDirective {\n @HostBinding('attr.role') role: string = 'button';\n @HostBinding('attr.tabindex') tabindex: number = 0;\n @HostBinding('class.interaction-state-active') _pressed = false;\n\n constructor(private clickableElement: ElementRef) {}\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n _onKeydownHandler(event: KeyboardEvent) {\n if (event.currentTarget !== event.target) return; // Do not handle keydown events for nested elements - let event bubbling take place as normal\n\n this._pressed = true;\n this.clickableElement.nativeElement.click(event);\n /*\n * Prevent default event from firing so the UA wont\n * catch this event and e.g. scroll the page on space,\n * which is the default behavior in major browsers\n */\n\n event.preventDefault();\n }\n\n @HostListener('keyup.space')\n @HostListener('keyup.enter')\n @HostListener('blur')\n _onInactiveHandler() {\n this._pressed = false;\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\n\n@Component({\n selector: 'kirby-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() subtitle: string;\n\n @HostBinding('style.--kirby-card-background-image')\n _backgroundImage: string;\n\n @Input()\n set backgroundImageUrl(value: string) {\n this._backgroundImage = `url('${value}')`;\n }\n\n @Input()\n hasPadding: boolean;\n\n private sizesSortedByBreakpoint = this.sortSizesByBreakpoint({\n small: 360,\n medium: 720,\n large: 1024,\n });\n\n @Input()\n set sizes(value: { [size: string]: number }) {\n if (typeof value === 'string') {\n console.error(\n 'Sizes property cannot be a string. Please ensure the size property is bound as an expression:\\n[sizes]=\"{...}\"'\n );\n }\n this.sizesSortedByBreakpoint = this.sortSizesByBreakpoint(value);\n }\n\n @HostBinding('class')\n @Input()\n variant: 'elevated' | 'flat' | 'outlined' = 'elevated';\n\n constructor(\n private elementRef: ElementRef,\n private resizeObserverService: ResizeObserverService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.resizeObserverService.observe(this.elementRef, (entry) => this.handleResize(entry));\n }\n\n ngOnDestroy() {\n this.resizeObserverService.unobserve(this.elementRef);\n }\n\n private sortSizesByBreakpoint(sizes: { [size: string]: number }): [string, number][] {\n return Object.entries(sizes).sort(this.compareSizesByBreakpoint);\n }\n\n private compareSizesByBreakpoint(a: [string, number], b: [string, number]): number {\n return a[1] > b[1] ? 1 : b[1] > a[1] ? -1 : 0;\n }\n\n private handleResize(entry: ResizeObserverEntry) {\n const sizeAttributeName = 'size';\n const smallestBreakpointName = this.sizesSortedByBreakpoint[0][0];\n const smallestBreakpointWidth = this.sizesSortedByBreakpoint[0][1];\n if (entry.contentRect.width < smallestBreakpointWidth) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, `<${smallestBreakpointName}`);\n } else {\n this.sizesSortedByBreakpoint.forEach(([size, width]) => {\n if (entry.contentRect.width >= width) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, size);\n }\n });\n }\n }\n}\n","<div class=\"state-layer\" aria-hidden=\"true\"></div>\n<div class=\"content-layer\">\n <ng-content select=\"kirby-card-header\"></ng-content>\n <div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"kirby-card-footer\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { CardComponent } from './card.component';\nimport { CardHeaderComponent } from './card-header/card-header.component';\nimport { CardFooterComponent } from './card-footer/card-footer.component';\nimport { CardAsButtonDirective } from './card-as-button/card-as-button.directive';\n\nconst imports = [CardComponent, CardFooterComponent, CardHeaderComponent, CardAsButtonDirective];\n@NgModule({\n imports: [CommonModule, ThemeColorDirective, ...imports],\n exports: [...imports, ThemeColorDirective],\n})\nexport class CardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}