@kirbydesign/designsystem 10.1.3 → 10.2.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 (386) hide show
  1. package/avatar/avatar.component.d.ts +2 -1
  2. package/button/button.component.d.ts +1 -0
  3. package/calendar/calendar.component.d.ts +28 -18
  4. package/calendar/interfaces/calendar-day.d.ts +17 -0
  5. package/calendar/public_api.d.ts +1 -1
  6. package/chart/shared/chart-config-service/chart-config.service.d.ts +1 -1
  7. package/empty-state/empty-state.component.d.ts +10 -3
  8. package/esm2022/accordion/accordion-item.component.mjs +4 -4
  9. package/esm2022/accordion/accordion.directive.mjs +4 -4
  10. package/esm2022/accordion/accordion.module.mjs +5 -5
  11. package/esm2022/action-group/action-group.component.mjs +4 -4
  12. package/esm2022/avatar/avatar.component.mjs +7 -5
  13. package/esm2022/badge/badge.component.mjs +4 -4
  14. package/esm2022/button/button.component.mjs +18 -6
  15. package/esm2022/calendar/calendar.component.mjs +168 -101
  16. package/esm2022/calendar/interfaces/calendar-day.mjs +2 -0
  17. package/esm2022/calendar/interfaces/calendar-year-navigator-config.mjs +2 -0
  18. package/esm2022/calendar/public_api.mjs +1 -1
  19. package/esm2022/card/card-as-button/card-as-button.directive.mjs +4 -4
  20. package/esm2022/card/card-footer/card-footer.component.mjs +4 -4
  21. package/esm2022/card/card-header/card-header.component.mjs +4 -4
  22. package/esm2022/card/card.component.mjs +4 -4
  23. package/esm2022/card/card.module.mjs +5 -5
  24. package/esm2022/chart/chart/chart.component.mjs +4 -4
  25. package/esm2022/chart/charts.module.mjs +5 -5
  26. package/esm2022/chart/shared/base-chart/base-chart.component.mjs +4 -4
  27. package/esm2022/chart/shared/chart-config-service/chart-config.service.mjs +4 -4
  28. package/esm2022/chart/shared/chart-js-service/chart-js.service.mjs +4 -4
  29. package/esm2022/chart/stock-chart/stock-chart-js.service.mjs +4 -4
  30. package/esm2022/chart/stock-chart/stock-chart.component.mjs +4 -4
  31. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  32. package/esm2022/data-table/data-table.module.mjs +5 -5
  33. package/esm2022/data-table/sortable/sortable.component.mjs +4 -4
  34. package/esm2022/divider/divider.component.mjs +4 -4
  35. package/esm2022/dropdown/dropdown.component.mjs +6 -6
  36. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  37. package/esm2022/dropdown/keyboard-handler.service.mjs +4 -4
  38. package/esm2022/empty-state/empty-state.component.mjs +31 -7
  39. package/esm2022/empty-state/empty-state.module.mjs +5 -5
  40. package/esm2022/fab-sheet/fab-sheet.component.mjs +4 -4
  41. package/esm2022/flag/flag.component.mjs +4 -4
  42. package/esm2022/form-field/directives/affix/affix.directive.mjs +4 -4
  43. package/esm2022/form-field/directives/date/date-input.directive.mjs +4 -4
  44. package/esm2022/form-field/directives/decimal-mask/decimal-mask.directive.mjs +4 -4
  45. package/esm2022/form-field/form-field-message/form-field-message.component.mjs +4 -4
  46. package/esm2022/form-field/form-field.component.mjs +4 -4
  47. package/esm2022/form-field/form-field.module.mjs +8 -7
  48. package/esm2022/form-field/input/input.component.mjs +4 -4
  49. package/esm2022/form-field/input-counter/input-counter.component.mjs +4 -4
  50. package/esm2022/form-field/textarea/textarea.component.mjs +4 -4
  51. package/esm2022/header/header.component.mjs +16 -16
  52. package/esm2022/header/header.module.mjs +5 -5
  53. package/esm2022/helpers/content-mutation-observer.mjs +50 -0
  54. package/esm2022/helpers/element-ancestor-utils.mjs +33 -0
  55. package/esm2022/helpers/ionic-element-part-helper.mjs +4 -4
  56. package/esm2022/helpers/line-clamp-helper.mjs +4 -4
  57. package/esm2022/helpers/platform.service.mjs +4 -4
  58. package/esm2022/helpers/public_api.mjs +3 -2
  59. package/esm2022/icon/icon-registry.service.mjs +4 -4
  60. package/esm2022/icon/icon.component.mjs +4 -4
  61. package/esm2022/icon/icon.module.mjs +5 -5
  62. package/esm2022/item/item.component.mjs +13 -9
  63. package/esm2022/item/item.module.mjs +5 -5
  64. package/esm2022/item/label/label.component.mjs +5 -5
  65. package/esm2022/item-group/item-group.component.mjs +4 -4
  66. package/esm2022/item-sliding/item-sliding.component.mjs +4 -4
  67. package/esm2022/kirby-app/kirby-app.component.mjs +4 -4
  68. package/esm2022/kirby-app/kirby-app.module.mjs +5 -5
  69. package/esm2022/kirby-ionic-module/kirby-ionic.module.mjs +5 -5
  70. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +34 -7
  71. package/esm2022/lib/directives/key-handler/key-handler.directive.mjs +4 -4
  72. package/esm2022/lib/directives/modal-router-link/modal-router-link.directive.mjs +4 -4
  73. package/esm2022/lib/kirby.module.mjs +5 -5
  74. package/esm2022/list/directives/infinite-scroll.directive.mjs +4 -4
  75. package/esm2022/list/directives/list-item-color.directive.mjs +4 -4
  76. package/esm2022/list/helpers/list-helper.mjs +4 -4
  77. package/esm2022/list/list-experimental/list-experimental.component.mjs +4 -4
  78. package/esm2022/list/list-header/list-header.component.mjs +4 -4
  79. package/esm2022/list/list-item/list-item.component.mjs +5 -5
  80. package/esm2022/list/list-section-header/list-section-header.component.mjs +4 -4
  81. package/esm2022/list/list.component.mjs +5 -5
  82. package/esm2022/list/list.directive.mjs +13 -13
  83. package/esm2022/list/list.module.mjs +5 -5
  84. package/esm2022/loading-overlay/loading-overlay.component.mjs +4 -4
  85. package/esm2022/loading-overlay/loading-overlay.service.mjs +4 -4
  86. package/esm2022/menu/menu.component.mjs +215 -12
  87. package/esm2022/modal/modal/action-sheet/action-sheet.component.mjs +4 -4
  88. package/esm2022/modal/modal/alert/alert.component.mjs +4 -4
  89. package/esm2022/modal/modal/footer/modal-footer.component.mjs +4 -4
  90. package/esm2022/modal/modal/modal-component/modal.component.mjs +18 -8
  91. package/esm2022/modal/modal/services/action-sheet.helper.mjs +4 -4
  92. package/esm2022/modal/modal/services/alert.helper.mjs +4 -4
  93. package/esm2022/modal/modal/services/can-dismiss.helper.mjs +4 -4
  94. package/esm2022/modal/modal/services/modal-animation-builder.service.mjs +4 -4
  95. package/esm2022/modal/modal/services/modal.controller.mjs +4 -4
  96. package/esm2022/modal/modal/services/modal.helper.mjs +5 -4
  97. package/esm2022/modal/modal-navigation.service.mjs +4 -4
  98. package/esm2022/modal/modal-wrapper/compact/modal-compact-wrapper.component.mjs +19 -10
  99. package/esm2022/modal/modal-wrapper/config/modal-config.mjs +1 -1
  100. package/esm2022/modal/modal-wrapper/modal-elements-mover.delegate.mjs +1 -1
  101. package/esm2022/modal/modal-wrapper/modal-wrapper.component.mjs +35 -12
  102. package/esm2022/modal/modal.interfaces.mjs +4 -4
  103. package/esm2022/page/page-footer/page-footer.component.mjs +4 -4
  104. package/esm2022/page/page.component.mjs +39 -38
  105. package/esm2022/page/page.module.mjs +5 -5
  106. package/esm2022/popover/popover.component.mjs +4 -4
  107. package/esm2022/progress-circle/progress-circle-ring.component.mjs +4 -4
  108. package/esm2022/progress-circle/progress-circle.component.mjs +4 -4
  109. package/esm2022/radio/radio-group/radio-group.component.mjs +4 -4
  110. package/esm2022/radio/radio-module.mjs +5 -5
  111. package/esm2022/radio/radio.component.mjs +4 -4
  112. package/esm2022/range/range.component.mjs +4 -4
  113. package/esm2022/reorder-list/reorder-list.component.mjs +5 -5
  114. package/esm2022/router-outlet/router-outlet.component.mjs +4 -4
  115. package/esm2022/router-outlet/router-outlet.module.mjs +5 -5
  116. package/esm2022/section-header/section-header.component.mjs +4 -4
  117. package/esm2022/shared/component-loader.directive.mjs +4 -4
  118. package/esm2022/shared/fit-heading/fit-heading.directive.mjs +4 -4
  119. package/esm2022/shared/floating/floating.directive.mjs +4 -4
  120. package/esm2022/shared/portal/portal.directive.mjs +4 -4
  121. package/esm2022/shared/public_api.mjs +2 -1
  122. package/esm2022/shared/resize-observer/resize-observer.factory.mjs +4 -4
  123. package/esm2022/shared/resize-observer/resize-observer.service.mjs +4 -4
  124. package/esm2022/shared/theme-color/theme-color.directive.mjs +4 -4
  125. package/esm2022/shared/translation/translation.interface.mjs +2 -0
  126. package/esm2022/shared/translation/translation.service.mjs +37 -0
  127. package/esm2022/shared/translation/translations/da.mjs +11 -0
  128. package/esm2022/shared/translation/translations/en.mjs +11 -0
  129. package/esm2022/slide/slide-stretch-height.directive.mjs +4 -4
  130. package/esm2022/slide/slide.directive.mjs +4 -4
  131. package/esm2022/slide/slide.module.mjs +5 -5
  132. package/esm2022/slide/slides.component.mjs +16 -9
  133. package/esm2022/slide-button/slide-button.component.mjs +4 -4
  134. package/esm2022/spinner/spinner.component.mjs +4 -4
  135. package/esm2022/spinner/spinner.module.mjs +5 -5
  136. package/esm2022/tab-navigation/tab-navigation/tab-navigation.component.mjs +4 -4
  137. package/esm2022/tab-navigation/tab-navigation-item/tab-navigation-item.component.mjs +4 -4
  138. package/esm2022/tab-navigation/tab-navigation.module.mjs +5 -5
  139. package/esm2022/tabs/tab-button/tab-button.component.mjs +4 -4
  140. package/esm2022/tabs/tabs.component.mjs +4 -4
  141. package/esm2022/tabs/tabs.module.mjs +5 -5
  142. package/esm2022/tabs/tabs.service.mjs +4 -4
  143. package/esm2022/testing/test-helper.mjs +8 -5
  144. package/esm2022/testing-base/lib/components/mock.accordion-item.component.mjs +4 -4
  145. package/esm2022/testing-base/lib/components/mock.action-group.component.mjs +4 -4
  146. package/esm2022/testing-base/lib/components/mock.action-sheet.component.mjs +4 -4
  147. package/esm2022/testing-base/lib/components/mock.alert.component.mjs +4 -4
  148. package/esm2022/testing-base/lib/components/mock.avatar.component.mjs +4 -4
  149. package/esm2022/testing-base/lib/components/mock.badge.component.mjs +4 -4
  150. package/esm2022/testing-base/lib/components/mock.base-chart.component.mjs +4 -4
  151. package/esm2022/testing-base/lib/components/mock.button.component.mjs +4 -4
  152. package/esm2022/testing-base/lib/components/mock.calendar.component.mjs +4 -4
  153. package/esm2022/testing-base/lib/components/mock.card-footer.component.mjs +4 -4
  154. package/esm2022/testing-base/lib/components/mock.card-header.component.mjs +4 -4
  155. package/esm2022/testing-base/lib/components/mock.card.component.mjs +4 -4
  156. package/esm2022/testing-base/lib/components/mock.chart.component.mjs +4 -4
  157. package/esm2022/testing-base/lib/components/mock.checkbox.component.mjs +4 -4
  158. package/esm2022/testing-base/lib/components/mock.divider.component.mjs +4 -4
  159. package/esm2022/testing-base/lib/components/mock.dropdown.component.mjs +4 -4
  160. package/esm2022/testing-base/lib/components/mock.empty-state.component.mjs +4 -4
  161. package/esm2022/testing-base/lib/components/mock.fab-sheet.component.mjs +4 -4
  162. package/esm2022/testing-base/lib/components/mock.flag.component.mjs +4 -4
  163. package/esm2022/testing-base/lib/components/mock.form-field-message.component.mjs +4 -4
  164. package/esm2022/testing-base/lib/components/mock.form-field.component.mjs +4 -4
  165. package/esm2022/testing-base/lib/components/mock.header.component.mjs +10 -10
  166. package/esm2022/testing-base/lib/components/mock.icon.component.mjs +4 -4
  167. package/esm2022/testing-base/lib/components/mock.input-counter.component.mjs +4 -4
  168. package/esm2022/testing-base/lib/components/mock.input.component.mjs +4 -4
  169. package/esm2022/testing-base/lib/components/mock.item-group.component.mjs +4 -4
  170. package/esm2022/testing-base/lib/components/mock.item-sliding.component.mjs +4 -4
  171. package/esm2022/testing-base/lib/components/mock.item.component.mjs +4 -4
  172. package/esm2022/testing-base/lib/components/mock.kirby-app.component.mjs +4 -4
  173. package/esm2022/testing-base/lib/components/mock.label.component.mjs +4 -4
  174. package/esm2022/testing-base/lib/components/mock.list-experimental.component.mjs +4 -4
  175. package/esm2022/testing-base/lib/components/mock.list-header.component.mjs +4 -4
  176. package/esm2022/testing-base/lib/components/mock.list-item.component.mjs +4 -4
  177. package/esm2022/testing-base/lib/components/mock.list-section-header.component.mjs +4 -4
  178. package/esm2022/testing-base/lib/components/mock.list.component.mjs +4 -4
  179. package/esm2022/testing-base/lib/components/mock.loading-overlay.component.mjs +4 -4
  180. package/esm2022/testing-base/lib/components/mock.menu.component.mjs +4 -4
  181. package/esm2022/testing-base/lib/components/mock.modal-compact-wrapper.component.mjs +4 -4
  182. package/esm2022/testing-base/lib/components/mock.modal-footer.component.mjs +4 -4
  183. package/esm2022/testing-base/lib/components/mock.modal-wrapper.component.mjs +4 -4
  184. package/esm2022/testing-base/lib/components/mock.page-footer.component.mjs +4 -4
  185. package/esm2022/testing-base/lib/components/mock.page.component.mjs +34 -34
  186. package/esm2022/testing-base/lib/components/mock.popover.component.mjs +4 -4
  187. package/esm2022/testing-base/lib/components/mock.progress-circle-ring.component.mjs +4 -4
  188. package/esm2022/testing-base/lib/components/mock.progress-circle.component.mjs +4 -4
  189. package/esm2022/testing-base/lib/components/mock.radio-group.component.mjs +4 -4
  190. package/esm2022/testing-base/lib/components/mock.radio.component.mjs +4 -4
  191. package/esm2022/testing-base/lib/components/mock.range.component.mjs +4 -4
  192. package/esm2022/testing-base/lib/components/mock.reorder-list.component.mjs +4 -4
  193. package/esm2022/testing-base/lib/components/mock.router-outlet.component.mjs +4 -4
  194. package/esm2022/testing-base/lib/components/mock.section-header.component.mjs +4 -4
  195. package/esm2022/testing-base/lib/components/mock.segmented-control.component.mjs +4 -4
  196. package/esm2022/testing-base/lib/components/mock.slide-button.component.mjs +4 -4
  197. package/esm2022/testing-base/lib/components/mock.slides.component.mjs +4 -4
  198. package/esm2022/testing-base/lib/components/mock.spinner.component.mjs +4 -4
  199. package/esm2022/testing-base/lib/components/mock.stock-chart.component.mjs +4 -4
  200. package/esm2022/testing-base/lib/components/mock.tab-button.component.mjs +4 -4
  201. package/esm2022/testing-base/lib/components/mock.tab-navigation-item.component.mjs +4 -4
  202. package/esm2022/testing-base/lib/components/mock.tab-navigation.component.mjs +4 -4
  203. package/esm2022/testing-base/lib/components/mock.tabs.component.mjs +4 -4
  204. package/esm2022/testing-base/lib/components/mock.textarea.component.mjs +4 -4
  205. package/esm2022/testing-base/lib/components/mock.toggle-button.component.mjs +4 -4
  206. package/esm2022/testing-base/lib/components/mock.toggle.component.mjs +4 -4
  207. package/esm2022/testing-base/lib/directives/mock.accordion.directive.mjs +4 -4
  208. package/esm2022/testing-base/lib/directives/mock.affix.directive.mjs +4 -4
  209. package/esm2022/testing-base/lib/directives/mock.card-as-button.directive.mjs +4 -4
  210. package/esm2022/testing-base/lib/directives/mock.component-loader.directive.mjs +4 -4
  211. package/esm2022/testing-base/lib/directives/mock.date-input.directive.mjs +4 -4
  212. package/esm2022/testing-base/lib/directives/mock.decimal-mask.directive.mjs +4 -4
  213. package/esm2022/testing-base/lib/directives/mock.fit-heading.directive.mjs +4 -4
  214. package/esm2022/testing-base/lib/directives/mock.floating.directive.mjs +4 -4
  215. package/esm2022/testing-base/lib/directives/mock.infinite-scroll.directive.mjs +4 -4
  216. package/esm2022/testing-base/lib/directives/mock.key-handler.directive.mjs +4 -4
  217. package/esm2022/testing-base/lib/directives/mock.list-item-color.directive.mjs +4 -4
  218. package/esm2022/testing-base/lib/directives/mock.list.directive.mjs +13 -13
  219. package/esm2022/testing-base/lib/directives/mock.modal-router-link.directive.mjs +4 -4
  220. package/esm2022/testing-base/lib/directives/mock.portal.directive.mjs +4 -4
  221. package/esm2022/testing-base/lib/directives/mock.slide.directive.mjs +4 -4
  222. package/esm2022/testing-base/lib/directives/mock.theme-color.directive.mjs +4 -4
  223. package/esm2022/testing-base/lib/kirby-testing-base.module.mjs +5 -5
  224. package/esm2022/testing-jasmine/lib/kirby-testing.module.mjs +5 -5
  225. package/esm2022/testing-jest/lib/kirby-testing.module.mjs +5 -5
  226. package/esm2022/toast/services/toast.controller.mjs +4 -4
  227. package/esm2022/toast/services/toast.helper.mjs +4 -4
  228. package/esm2022/toggle/toggle.component.mjs +4 -4
  229. package/esm2022/toggle-button/toggle-button.component.mjs +4 -4
  230. package/esm2022/toggle-button/toggle-button.module.mjs +5 -5
  231. package/esm2022/types/public_api.mjs +2 -1
  232. package/esm2022/types/unobserve-fn.mjs +2 -0
  233. package/esm2022/types/window-ref.mjs +4 -4
  234. package/fesm2022/kirbydesign-designsystem-accordion.mjs +10 -10
  235. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  236. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  237. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  238. package/fesm2022/kirbydesign-designsystem-avatar.mjs +6 -4
  239. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  240. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  241. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  242. package/fesm2022/kirbydesign-designsystem-button.mjs +17 -5
  243. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  244. package/fesm2022/kirbydesign-designsystem-calendar.mjs +168 -177
  245. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  246. package/fesm2022/kirbydesign-designsystem-card.mjs +16 -16
  247. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  248. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  249. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  250. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
  251. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  252. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  253. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  254. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  255. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  256. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  257. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  258. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +33 -9
  259. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  260. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +3 -3
  261. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  262. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  263. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  264. package/fesm2022/kirbydesign-designsystem-form-field.mjs +30 -30
  265. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  266. package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
  267. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  268. package/fesm2022/kirbydesign-designsystem-helpers.mjs +69 -10
  269. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  270. package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
  271. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  272. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  273. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  274. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  275. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  276. package/fesm2022/kirbydesign-designsystem-item.mjs +20 -16
  277. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  278. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  279. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  280. package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs +4 -4
  281. package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs.map +1 -1
  282. package/fesm2022/kirbydesign-designsystem-list.mjs +42 -42
  283. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  284. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  285. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  286. package/fesm2022/kirbydesign-designsystem-menu.mjs +214 -11
  287. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  288. package/fesm2022/kirbydesign-designsystem-modal.mjs +99 -57
  289. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  290. package/fesm2022/kirbydesign-designsystem-page.mjs +44 -43
  291. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  292. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  293. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  294. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  295. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  296. package/fesm2022/kirbydesign-designsystem-radio.mjs +10 -10
  297. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  298. package/fesm2022/kirbydesign-designsystem-range.mjs +3 -3
  299. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  300. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +4 -4
  301. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  302. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  303. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  304. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  305. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  306. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  307. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  308. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  309. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  310. package/fesm2022/kirbydesign-designsystem-shared.mjs +71 -17
  311. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  312. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +3 -3
  313. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  314. package/fesm2022/kirbydesign-designsystem-slide.mjs +24 -18
  315. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  316. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  317. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  318. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +10 -10
  319. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  320. package/fesm2022/kirbydesign-designsystem-tabs.mjs +13 -13
  321. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  322. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  323. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  324. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  325. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  326. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  327. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  328. package/fesm2022/kirbydesign-designsystem-testing.mjs +7 -4
  329. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  330. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  331. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  332. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
  333. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  334. package/fesm2022/kirbydesign-designsystem-toggle.mjs +3 -3
  335. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  336. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  337. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  338. package/fesm2022/kirbydesign-designsystem.mjs +43 -16
  339. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  340. package/form-field/form-field.module.d.ts +2 -1
  341. package/helpers/content-mutation-observer.d.ts +8 -0
  342. package/helpers/{element-has-ancestor.d.ts → element-ancestor-utils.d.ts} +1 -0
  343. package/helpers/public_api.d.ts +2 -1
  344. package/icons/svg/accounts-outline.svg +0 -2
  345. package/icons/svg/accounts.svg +0 -2
  346. package/icons/svg/backspace.svg +0 -2
  347. package/icons/svg/camera.svg +0 -2
  348. package/icons/svg/copy.svg +0 -2
  349. package/icons/svg/flag.svg +0 -2
  350. package/icons/svg/inbox-outline.svg +0 -2
  351. package/icons/svg/inbox.svg +0 -2
  352. package/icons/svg/information.svg +0 -2
  353. package/icons/svg/menu-outline.svg +0 -2
  354. package/icons/svg/menu.svg +0 -2
  355. package/icons/svg/person-outline.svg +0 -2
  356. package/icons/svg/person.svg +0 -2
  357. package/icons/svg/reorder.svg +0 -2
  358. package/icons/svg/support.svg +0 -2
  359. package/item/item.component.d.ts +3 -2
  360. package/lib/components/segmented-control/segmented-control.component.d.ts +4 -0
  361. package/menu/menu.component.d.ts +32 -8
  362. package/modal/modal/modal-component/modal.component.d.ts +6 -3
  363. package/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +4 -2
  364. package/modal/modal-wrapper/config/modal-config.d.ts +3 -0
  365. package/modal/modal-wrapper/modal-wrapper.component.d.ts +8 -3
  366. package/package.json +4 -4
  367. package/page/page.component.d.ts +4 -3
  368. package/scss/base/_item-typography.scss +1 -0
  369. package/shared/public_api.d.ts +1 -0
  370. package/shared/translation/translation.interface.d.ts +10 -0
  371. package/shared/translation/translation.service.d.ts +12 -0
  372. package/shared/translation/translations/da.d.ts +2 -0
  373. package/shared/translation/translations/en.d.ts +2 -0
  374. package/slide/slides.component.d.ts +3 -1
  375. package/testing/test-helper.d.ts +1 -0
  376. package/types/public_api.d.ts +1 -0
  377. package/types/unobserve-fn.d.ts +1 -0
  378. package/calendar/helpers/calendar-cell.model.d.ts +0 -9
  379. package/calendar/helpers/calendar-options.model.d.ts +0 -9
  380. package/calendar/helpers/calendar.helper.d.ts +0 -24
  381. package/esm2022/calendar/helpers/calendar-cell.model.mjs +0 -2
  382. package/esm2022/calendar/helpers/calendar-options.model.mjs +0 -2
  383. package/esm2022/calendar/helpers/calendar.helper.mjs +0 -80
  384. package/esm2022/calendar/options/calendar-year-navigator-config.mjs +0 -2
  385. package/esm2022/helpers/element-has-ancestor.mjs +0 -24
  386. /package/calendar/{options → interfaces}/calendar-year-navigator-config.d.ts +0 -0
@@ -1,14 +1,17 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, QueryList, Renderer2 } from '@angular/core';
2
2
  import { Placement } from '@floating-ui/dom';
3
+ import { ItemComponent } from '@kirbydesign/designsystem/item';
3
4
  import { AttentionLevel, ButtonSize } from '@kirbydesign/designsystem/button';
4
5
  import { FloatingOffset, PortalOutletConfig, TriggerEvent } from '@kirbydesign/designsystem/shared/floating';
5
6
  import * as i0 from "@angular/core";
6
- export declare class MenuComponent implements AfterViewInit, OnDestroy {
7
- private cdf;
7
+ export declare class MenuComponent implements AfterViewInit, AfterContentInit, OnDestroy {
8
+ private cdr;
8
9
  private elementRef;
9
10
  private zone;
10
11
  private renderer;
11
- constructor(cdf: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, zone: NgZone, renderer: Renderer2);
12
+ readonly menuId: string;
13
+ triggerButtonId: string;
14
+ constructor(cdr: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, zone: NgZone, renderer: Renderer2);
12
15
  isDisabled: boolean;
13
16
  buttonSize: ButtonSize;
14
17
  placement: Placement;
@@ -26,13 +29,34 @@ export declare class MenuComponent implements AfterViewInit, OnDestroy {
26
29
  */
27
30
  minWidth: number;
28
31
  buttonContainerElement: ElementRef<HTMLElement> | undefined;
29
- defaultButtonElement: ElementRef<HTMLElement> | undefined;
30
- userProvidedButton: ElementRef<HTMLElement> | undefined;
31
- private floatingDirective;
32
+ defaultButtonElement: ElementRef<HTMLButtonElement> | undefined;
33
+ userProvidedButton: ElementRef<HTMLButtonElement> | undefined;
34
+ private floatingMenu;
35
+ kirbyItems: QueryList<ElementRef<HTMLElement>>;
36
+ kirbyItemComponents: QueryList<ItemComponent>;
37
+ floatingMenuIsShown: boolean;
32
38
  FloatingOffset: typeof FloatingOffset;
33
39
  private scrollListenerDisposeFn;
40
+ private focusedIndex;
41
+ _onKeydown(event: KeyboardEvent): void;
42
+ private preventDefaultAndStopImmediatePropagation;
43
+ private getFirstInteractiveElement;
44
+ private handleKeyDownForClosedMenu;
45
+ private isPrintableCharacter;
46
+ private handleKeyDownForOpenedMenu;
47
+ private getIndexOfItemByFirstCharacter;
48
+ private getIndexByFirstMatchingStartString;
49
+ focusItem(): void;
50
+ private focusSelectableItem;
51
+ getTriggerButton(): HTMLButtonElement;
34
52
  ngAfterViewInit(): void;
53
+ ngAfterContentInit(): void;
54
+ ensureSelectableOnItems(): void;
55
+ private setRoleAttributeForAllItems;
56
+ private setRoleAttributeForItem;
57
+ menuVisibilityChanged(menuIsShown: boolean): void;
58
+ private setUserProvidedButtonAriaAttributes;
35
59
  ngOnDestroy(): void;
36
60
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "kirby-menu", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "attentionLevel": { "alias": "attentionLevel"; "required": false; }; "triggers": { "alias": "triggers"; "required": false; }; "DOMPortalOutlet": { "alias": "DOMPortalOutlet"; "required": false; }; "portalOutletConfig": { "alias": "portalOutletConfig"; "required": false; }; "autoPlacement": { "alias": "autoPlacement"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; }; "shift": { "alias": "shift"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; }, {}, ["userProvidedButton"], ["button[kirby-button]", "kirby-item"], true, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "kirby-menu", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "attentionLevel": { "alias": "attentionLevel"; "required": false; }; "triggers": { "alias": "triggers"; "required": false; }; "DOMPortalOutlet": { "alias": "DOMPortalOutlet"; "required": false; }; "portalOutletConfig": { "alias": "portalOutletConfig"; "required": false; }; "autoPlacement": { "alias": "autoPlacement"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; }; "shift": { "alias": "shift"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; }, {}, ["userProvidedButton", "kirbyItems", "kirbyItemComponents"], ["button[kirby-button]", "kirby-item"], true, never>;
38
62
  }
@@ -1,4 +1,4 @@
1
- import { ElementRef, EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';
1
+ import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
2
2
  import { IonContent } from '@ionic/angular/standalone';
3
3
  import { OverlayEventDetail } from '@ionic/core/components';
4
4
  import { KirbyAnimation } from '@kirbydesign/designsystem/helpers';
@@ -7,10 +7,11 @@ import { ModalNavigationService } from '../../modal-navigation.service';
7
7
  import { DrawerSupplementaryAction, ModalConfig, ModalFlavor, ModalSize, ShowAlertCallback } from '../../modal-wrapper';
8
8
  import { CanDismissHelper } from '../services';
9
9
  import * as i0 from "@angular/core";
10
- export declare class ModalComponent implements OnChanges {
10
+ export declare class ModalComponent implements OnChanges, OnInit {
11
11
  private canDismissHelper;
12
12
  private modalNavigationService;
13
13
  private windowRef;
14
+ private elementRef;
14
15
  modalElement: ElementRef<HTMLIonModalElement>;
15
16
  ionContent: IonContent;
16
17
  template: TemplateRef<unknown>;
@@ -35,7 +36,8 @@ export declare class ModalComponent implements OnChanges {
35
36
  */
36
37
  _config: ModalConfig;
37
38
  _canDismiss: ShowAlertCallback | boolean;
38
- constructor(canDismissHelper: CanDismissHelper, modalNavigationService: ModalNavigationService, windowRef: WindowRef);
39
+ constructor(canDismissHelper: CanDismissHelper, modalNavigationService: ModalNavigationService, windowRef: WindowRef, elementRef: ElementRef);
40
+ ngOnInit(): void;
39
41
  ngOnChanges(changes: SimpleChanges): void;
40
42
  scrollToTop(scrollDuration?: KirbyAnimation.Duration): void;
41
43
  scrollToBottom(scrollDuration?: KirbyAnimation.Duration): void;
@@ -44,6 +46,7 @@ export declare class ModalComponent implements OnChanges {
44
46
  _onWillDismiss(event: CustomEvent<OverlayEventDetail>): void;
45
47
  _onDidDismiss(event: CustomEvent<OverlayEventDetail>): void;
46
48
  private updateModalConfigOnChange;
49
+ private forwardAriaLabel;
47
50
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
48
51
  static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "kirby-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "size": { "alias": "size"; "required": false; }; "scrollDisabled": { "alias": "scrollDisabled"; "required": false; }; "canDismiss": { "alias": "canDismiss"; "required": false; }; "collapseTitle": { "alias": "collapseTitle"; "required": false; }; "customHeight": { "alias": "customHeight"; "required": false; }; "flavor": { "alias": "flavor"; "required": false; }; "drawerSupplementaryAction": { "alias": "drawerSupplementaryAction"; "required": false; }; "interactWithBackground": { "alias": "interactWithBackground"; "required": false; }; }, { "willPresent": "willPresent"; "didPresent": "didPresent"; "didDismiss": "didDismiss"; "willDismiss": "willDismiss"; }, ["template"], never, true, never>;
49
52
  }
@@ -1,4 +1,4 @@
1
- import { ElementRef, Injector, OnInit, TemplateRef } from '@angular/core';
1
+ import { ElementRef, Injector, OnInit, Renderer2, TemplateRef } from '@angular/core';
2
2
  import { WindowRef } from '@kirbydesign/designsystem/types';
3
3
  import { ModalConfig, ShowAlertCallback } from '../config/modal-config';
4
4
  import { Modal } from '../../modal.interfaces';
@@ -9,6 +9,7 @@ export declare class ModalCompactWrapperComponent implements Modal, OnInit {
9
9
  private elementRef;
10
10
  private windowRef;
11
11
  private canDismissHelper;
12
+ private renderer;
12
13
  config: ModalConfig;
13
14
  content: TemplateRef<any>;
14
15
  scrollY: number;
@@ -19,10 +20,11 @@ export declare class ModalCompactWrapperComponent implements Modal, OnInit {
19
20
  private readonly ionModalWillDismiss;
20
21
  readonly didPresent: Promise<void>;
21
22
  readonly willClose: Promise<void>;
22
- constructor(injector: Injector, elementRef: ElementRef<HTMLElement>, windowRef: WindowRef, canDismissHelper: CanDismissHelper);
23
+ constructor(injector: Injector, elementRef: ElementRef<HTMLElement>, windowRef: WindowRef, canDismissHelper: CanDismissHelper, renderer: Renderer2);
23
24
  ngOnInit(): void;
24
25
  private listenForIonModalDidPresent;
25
26
  private listenForIonModalWillDismiss;
27
+ private setAriaLabel;
26
28
  close(data?: any): Promise<void>;
27
29
  set canDismiss(callback: ShowAlertCallback);
28
30
  scrollToTop: (_?: any) => void;
@@ -20,6 +20,9 @@ export interface ModalConfig {
20
20
  drawerSupplementaryAction?: DrawerSupplementaryAction;
21
21
  interactWithBackground?: boolean;
22
22
  cssClass?: string | string[];
23
+ htmlAttributes?: {
24
+ [key: string]: any;
25
+ };
23
26
  }
24
27
  /**
25
28
  * Here we extend Data and Route from Angular to create a covariant type ModalEnabledRoutes.
@@ -1,6 +1,6 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EnvironmentInjector, Injector, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { ResizeObserverService } from '@kirbydesign/designsystem/shared';
3
+ import { ResizeObserverService, TranslationService } from '@kirbydesign/designsystem/shared';
4
4
  import { WindowRef } from '@kirbydesign/designsystem/types';
5
5
  import { PlatformService } from '@kirbydesign/designsystem/helpers';
6
6
  import { KirbyAnimation } from '@kirbydesign/designsystem/helpers';
@@ -19,6 +19,7 @@ export declare class ModalWrapperComponent implements Modal, AfterViewInit, OnIn
19
19
  private platform;
20
20
  private canDismissHelper;
21
21
  private environmentInjector;
22
+ translations: TranslationService;
22
23
  get _hasCollapsibleTitle(): boolean;
23
24
  static readonly KEYBOARD_HIDE_DELAY_IN_MS = 100;
24
25
  scrollY: number;
@@ -46,13 +47,14 @@ export declare class ModalWrapperComponent implements Modal, AfterViewInit, OnIn
46
47
  private initialViewportHeight;
47
48
  private viewportResized;
48
49
  private ionModalElement?;
50
+ private ionModalDialog?;
49
51
  private readonly ionModalDidPresent;
50
52
  readonly didPresent: Promise<void>;
51
53
  private readonly ionModalWillDismiss;
52
54
  readonly willClose: Promise<void>;
53
55
  private viewportResize;
54
56
  private viewportResize$;
55
- private _mutationObserver;
57
+ private mutationObserverUnobserveFn;
56
58
  private _intersectionObserver;
57
59
  private get intersectionObserver();
58
60
  scrollEventsEnabled: boolean;
@@ -61,7 +63,7 @@ export declare class ModalWrapperComponent implements Modal, AfterViewInit, OnIn
61
63
  get _isDrawer(): boolean;
62
64
  willClose$: Observable<void>;
63
65
  private modalElementsMoverDelegate;
64
- constructor(changeDetector: ChangeDetectorRef, injector: Injector, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, zone: NgZone, resizeObserverService: ResizeObserverService, windowRef: WindowRef, platform: PlatformService, canDismissHelper: CanDismissHelper, environmentInjector: EnvironmentInjector);
66
+ constructor(changeDetector: ChangeDetectorRef, injector: Injector, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, zone: NgZone, resizeObserverService: ResizeObserverService, windowRef: WindowRef, platform: PlatformService, canDismissHelper: CanDismissHelper, environmentInjector: EnvironmentInjector, translations: TranslationService);
65
67
  ngOnInit(): void;
66
68
  ngAfterViewInit(): void;
67
69
  private _currentFooter;
@@ -80,6 +82,9 @@ export declare class ModalWrapperComponent implements Modal, AfterViewInit, OnIn
80
82
  private listenForIonModalDidPresent;
81
83
  private listenForIonModalWillDismiss;
82
84
  private listenForScroll;
85
+ private observeTitleContentChanges;
86
+ private setAriaLabelFromTitleContent;
87
+ private setAriaLabel;
83
88
  scrollToTop(scrollDuration?: KirbyAnimation.Duration): void;
84
89
  scrollToBottom(scrollDuration?: KirbyAnimation.Duration): void;
85
90
  close(data?: any): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kirbydesign/designsystem",
3
- "version": "10.1.3",
3
+ "version": "10.2.0",
4
4
  "description": "The Kirby Design Angular Components.",
5
5
  "author": "kirby@bankdata.dk",
6
6
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@floating-ui/dom": "^1.1.0",
23
23
  "@fontsource/roboto": "4.2.1",
24
- "@kirbydesign/core": "0.0.67",
24
+ "@kirbydesign/core": "0.0.68",
25
25
  "inputmask": "5.0.8",
26
26
  "tslib": "^2.3.0"
27
27
  },
@@ -36,8 +36,8 @@
36
36
  "chartjs-adapter-date-fns": "^2.0.0",
37
37
  "chartjs-plugin-annotation": "^1.0.2",
38
38
  "chartjs-plugin-datalabels": "^2.0.0",
39
- "date-fns": "^2.30.0",
40
- "date-fns-tz": "^1.3.8",
39
+ "date-fns": "^4.1.0",
40
+ "date-fns-tz": "^3.2.0",
41
41
  "rxjs": "^7.0.0",
42
42
  "swiper": "^9.2.0",
43
43
  "zone.js": "^0.14.3"
@@ -5,7 +5,7 @@ import { TabsComponent } from '@kirbydesign/designsystem/tabs';
5
5
  import { HeaderActionsDirective, HeaderComponent, HeaderTitleActionIconDirective } from '@kirbydesign/designsystem/header';
6
6
  import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
7
7
  import { ModalElementComponent, ModalElementsAdvertiser, ModalNavigationService } from '@kirbydesign/designsystem/modal';
8
- import { FitHeadingConfig, ResizeObserverService } from '@kirbydesign/designsystem/shared';
8
+ import { FitHeadingConfig, ResizeObserverService, TranslationService } from '@kirbydesign/designsystem/shared';
9
9
  import * as i0 from "@angular/core";
10
10
  type stickyConfig = {
11
11
  sticky: boolean;
@@ -95,6 +95,7 @@ export declare class PageComponent implements OnInit, OnDestroy, AfterViewInit,
95
95
  private routerOutlet;
96
96
  private navCtrl;
97
97
  private ionicElementPartHelper;
98
+ translations: TranslationService;
98
99
  title: string;
99
100
  subtitle: string;
100
101
  toolbarTitle: string;
@@ -161,7 +162,7 @@ export declare class PageComponent implements OnInit, OnDestroy, AfterViewInit,
161
162
  private navigationStart$;
162
163
  private navigationEnd$;
163
164
  toolbarActionGroupInjector: Injector;
164
- constructor(elementRef: ElementRef, injector: Injector, renderer: Renderer2, router: Router, changeDetectorRef: ChangeDetectorRef, zone: NgZone, modalNavigationService: ModalNavigationService, resizeObserverService: ResizeObserverService, tabsComponent: TabsComponent, backButtonOverride: PageBackButtonOverride, routerOutlet: IonRouterOutlet, navCtrl: NavController, ionicElementPartHelper: IonicElementPartHelper);
165
+ constructor(elementRef: ElementRef, injector: Injector, renderer: Renderer2, router: Router, changeDetectorRef: ChangeDetectorRef, zone: NgZone, modalNavigationService: ModalNavigationService, resizeObserverService: ResizeObserverService, tabsComponent: TabsComponent, backButtonOverride: PageBackButtonOverride, routerOutlet: IonRouterOutlet, navCtrl: NavController, ionicElementPartHelper: IonicElementPartHelper, translations: TranslationService);
165
166
  private contentReadyPromise;
166
167
  private whenContentReady;
167
168
  ngOnInit(): void;
@@ -194,7 +195,7 @@ export declare class PageComponent implements OnInit, OnDestroy, AfterViewInit,
194
195
  }): void;
195
196
  _onKeyboardWillHide(): void;
196
197
  _onSelectedTabClick(): void;
197
- static ɵfac: i0.ɵɵFactoryDeclaration<PageComponent, [null, null, null, null, null, null, null, null, { optional: true; skipSelf: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null]>;
198
+ static ɵfac: i0.ɵɵFactoryDeclaration<PageComponent, [null, null, null, null, null, null, null, null, { optional: true; skipSelf: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, null]>;
198
199
  static ɵcmp: i0.ɵɵComponentDeclaration<PageComponent, "kirby-page", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "toolbarTitle": { "alias": "toolbarTitle"; "required": false; }; "titleAlignment": { "alias": "titleAlignment"; "required": false; }; "defaultBackHref": { "alias": "defaultBackHref"; "required": false; }; "hideBackButton": { "alias": "hideBackButton"; "required": false; }; "titleMaxLines": { "alias": "titleMaxLines"; "required": false; }; "hasInteractiveTitle": { "alias": "hasInteractiveTitle"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "tabBarBottomHidden": { "alias": "tabBarBottomHidden"; "required": false; }; }, { "enter": "enter"; "leave": "leave"; "refresh": "refresh"; "backButtonClick": "backButtonClick"; "toolbarTitleClick": "toolbarTitleClick"; }, ["customToolbarTitleTemplate", "customTitleTemplate", "customSubtitleTemplate", "stickyContentRef", "header", "customActions", "customContent"], ["kirby-header", "kirby-page-footer", "kirby-page-actions", "kirby-page-content"], false, never>;
199
200
  }
200
201
  export {};
@@ -0,0 +1 @@
1
+ @forward "@kirbydesign/core/scss/base/item-typography";
@@ -6,3 +6,4 @@ export * from './component-loader.directive';
6
6
  export * from './dynamic-component';
7
7
  export * from './fit-heading/index';
8
8
  export * from './controls/label-helpers';
9
+ export * from './translation/translation.service';
@@ -0,0 +1,10 @@
1
+ export interface Translation {
2
+ $code: string;
3
+ back: string;
4
+ close: string;
5
+ nextMonth: string;
6
+ nextSlide: string;
7
+ previousMonth: string;
8
+ previousSlide: string;
9
+ selectYear: string;
10
+ }
@@ -0,0 +1,12 @@
1
+ import { Translation } from './translation.interface';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TranslationService {
4
+ private localeId;
5
+ private activeTranslation;
6
+ private translations;
7
+ constructor(localeId: string);
8
+ private setActiveTranslation;
9
+ get(key: keyof Translation): string;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<TranslationService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<TranslationService>;
12
+ }
@@ -0,0 +1,2 @@
1
+ import { Translation } from '../translation.interface';
2
+ export declare const da: Translation;
@@ -0,0 +1,2 @@
1
+ import { Translation } from '../translation.interface';
2
+ export declare const en: Translation;
@@ -1,6 +1,7 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
2
2
  import { Swiper, SwiperOptions } from 'swiper';
3
3
  import { PlatformService } from '@kirbydesign/designsystem/helpers';
4
+ import { TranslationService } from '@kirbydesign/designsystem/shared';
4
5
  import { SlideDirective } from './slide.directive';
5
6
  import * as i0 from "@angular/core";
6
7
  export type SelectedSlide = {
@@ -15,7 +16,8 @@ type SwiperContainer = HTMLElement & {
15
16
  export declare class SlidesComponent implements OnInit, AfterViewInit, OnChanges {
16
17
  private platform;
17
18
  private cdr;
18
- constructor(platform: PlatformService, cdr: ChangeDetectorRef);
19
+ private translations;
20
+ constructor(platform: PlatformService, cdr: ChangeDetectorRef, translations: TranslationService);
19
21
  swiperContainer: ElementRef<SwiperContainer>;
20
22
  slideTemplate: TemplateRef<SlideDirective>;
21
23
  slidesOptions?: KirbySwiperOptions;
@@ -47,6 +47,7 @@ export declare class TestHelper {
47
47
  static resetTestWindow(): void;
48
48
  static scrollMainWindowToTop(): void;
49
49
  static waitForResizeObserver(): Promise<void>;
50
+ static waitForMutationObserver(): Promise<void>;
50
51
  static waitForTimeout(timeoutInMs?: number): Promise<void>;
51
52
  }
52
53
  export type ScreenSize = keyof typeof TestHelper.screensize;
@@ -1,2 +1,3 @@
1
1
  export * from './window-ref';
2
2
  export * from './event-listener-dispose-fn';
3
+ export * from './unobserve-fn';
@@ -0,0 +1 @@
1
+ export type UnobserveFn = () => void;
@@ -1,9 +0,0 @@
1
- export interface CalendarCell {
2
- date: number;
3
- monthIndex: number;
4
- year: number;
5
- isCurrentMonth: boolean;
6
- isSelectable: boolean;
7
- isSelected: boolean;
8
- cssClasses: string;
9
- }
@@ -1,9 +0,0 @@
1
- import { CalendarCell } from './calendar-cell.model';
2
- export interface CalendarOptions {
3
- canNavigateBack: boolean;
4
- canNavigateForward: boolean;
5
- year: string;
6
- monthName: string;
7
- weekDays: string[];
8
- month: CalendarCell[][];
9
- }
@@ -1,24 +0,0 @@
1
- import { ElementRef } from '@angular/core';
2
- import { WindowRef } from '@kirbydesign/designsystem/types';
3
- import { CalendarOptions } from './calendar-options.model';
4
- import * as i0 from "@angular/core";
5
- export declare class CalendarHelper {
6
- private windowRef;
7
- private embeddedView;
8
- private embeddedViewReady;
9
- constructor(windowRef: WindowRef);
10
- init(calendarContainer: ElementRef, options: CalendarOptions, onDaySelected: (cell: {
11
- isSelectable: boolean;
12
- date: number;
13
- }) => void, onChangeMonth: (index: number) => void): void;
14
- update(options: CalendarOptions): void;
15
- setSelectedDay(day: number): void;
16
- private hasEmbeddedView;
17
- private emitOptionsToEmbeddedView;
18
- private handleMessageEvent;
19
- private validateMessage;
20
- private validateDateSelectedMessage;
21
- private validateNavigateMonthMessage;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<CalendarHelper, never>;
23
- static ɵprov: i0.ɵɵInjectableDeclaration<CalendarHelper>;
24
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY2VsbC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NhbGVuZGFyL3NyYy9oZWxwZXJzL2NhbGVuZGFyLWNlbGwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJDZWxsIHtcbiAgZGF0ZTogbnVtYmVyO1xuICBtb250aEluZGV4OiBudW1iZXI7XG4gIHllYXI6IG51bWJlcjtcbiAgaXNDdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGlzU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgY3NzQ2xhc3Nlczogc3RyaW5nO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NhbGVuZGFyL3NyYy9oZWxwZXJzL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGVuZGFyQ2VsbCB9IGZyb20gJy4vY2FsZW5kYXItY2VsbC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJPcHRpb25zIHtcbiAgY2FuTmF2aWdhdGVCYWNrOiBib29sZWFuO1xuICBjYW5OYXZpZ2F0ZUZvcndhcmQ6IGJvb2xlYW47XG4gIHllYXI6IHN0cmluZztcbiAgbW9udGhOYW1lOiBzdHJpbmc7XG4gIHdlZWtEYXlzOiBzdHJpbmdbXTtcbiAgbW9udGg6IENhbGVuZGFyQ2VsbFtdW107XG59XG4iXX0=
@@ -1,80 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { WindowRef } from '@kirbydesign/designsystem/types';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@kirbydesign/designsystem/types";
5
- export class CalendarHelper {
6
- constructor(windowRef) {
7
- this.windowRef = windowRef;
8
- this.embeddedViewReady = false;
9
- }
10
- init(calendarContainer, options, onDaySelected, onChangeMonth) {
11
- if (this.hasEmbeddedView(calendarContainer)) {
12
- const iframe = calendarContainer.nativeElement;
13
- iframe.onload = () => {
14
- this.embeddedViewReady = true;
15
- this.emitOptionsToEmbeddedView(options);
16
- };
17
- this.embeddedView = iframe.contentWindow;
18
- this.windowRef.nativeWindow.addEventListener('message', (event) => this.handleMessageEvent(event, onDaySelected, onChangeMonth));
19
- }
20
- }
21
- update(options) {
22
- if (this.embeddedViewReady) {
23
- this.emitOptionsToEmbeddedView(options);
24
- }
25
- }
26
- setSelectedDay(day) {
27
- if (this.embeddedViewReady) {
28
- this.embeddedView.postMessage({
29
- type: 'kirbyCalendarSetSelectedDay',
30
- selectedDay: day,
31
- }, '*');
32
- }
33
- }
34
- hasEmbeddedView(calendarContainer) {
35
- return (calendarContainer &&
36
- calendarContainer.nativeElement &&
37
- calendarContainer.nativeElement instanceof HTMLIFrameElement &&
38
- calendarContainer.nativeElement.contentWindow);
39
- }
40
- emitOptionsToEmbeddedView(options) {
41
- this.embeddedView.postMessage({
42
- type: 'kirbyCalendarInit',
43
- ...options,
44
- }, '*');
45
- }
46
- handleMessageEvent(event, onDaySelected, onChangeMonth) {
47
- if (this.validateMessage(event)) {
48
- switch (event.data.type) {
49
- case 'kirbyCalendarDaySelected':
50
- if (this.validateDateSelectedMessage(event)) {
51
- onDaySelected({ isSelectable: true, date: event.data.day });
52
- }
53
- break;
54
- case 'kirbyCalendarChangeMonth':
55
- if (this.validateNavigateMonthMessage(event)) {
56
- onChangeMonth(event.data.index);
57
- }
58
- break;
59
- }
60
- }
61
- }
62
- validateMessage(event) {
63
- return (this.embeddedView === event.source &&
64
- event.type === 'message' &&
65
- event.data &&
66
- event.data.type);
67
- }
68
- validateDateSelectedMessage(event) {
69
- return event.data.type === 'kirbyCalendarDaySelected' && event.data.day;
70
- }
71
- validateNavigateMonthMessage(event) {
72
- return event.data.type === 'kirbyCalendarChangeMonth' && typeof event.data.index === 'number';
73
- }
74
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarHelper, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
75
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarHelper }); }
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarHelper, decorators: [{
78
- type: Injectable
79
- }], ctorParameters: () => [{ type: i1.WindowRef }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2FsZW5kYXIvc3JjL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFLNUQsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZoQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFFUyxDQUFDO0lBRXJDLElBQUksQ0FDVCxpQkFBNkIsRUFDN0IsT0FBd0IsRUFDeEIsYUFBc0UsRUFDdEUsYUFBc0M7UUFFdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLE1BQU0sR0FBc0IsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1lBQ2xFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBRXpDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUM5RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FDN0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRU0sY0FBYyxDQUFDLEdBQVc7UUFDL0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDM0I7Z0JBQ0UsSUFBSSxFQUFFLDZCQUE2QjtnQkFDbkMsV0FBVyxFQUFFLEdBQUc7YUFDakIsRUFDRCxHQUFHLENBQ0osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLGlCQUE2QjtRQUNuRCxPQUFPLENBQ0wsaUJBQWlCO1lBQ2pCLGlCQUFpQixDQUFDLGFBQWE7WUFDL0IsaUJBQWlCLENBQUMsYUFBYSxZQUFZLGlCQUFpQjtZQUM1RCxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQXdCO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUMzQjtZQUNFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsR0FBRyxPQUFPO1NBQ1gsRUFDRCxHQUFHLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsS0FBbUIsRUFDbkIsYUFBc0UsRUFDdEUsYUFBc0M7UUFFdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixLQUFLLDBCQUEwQjtvQkFDN0IsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUMsYUFBYSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUM5RCxDQUFDO29CQUNELE1BQU07Z0JBQ1IsS0FBSywwQkFBMEI7b0JBQzdCLElBQUksSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQzdDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNsQyxDQUFDO29CQUNELE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsS0FBbUI7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLE1BQU07WUFDbEMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLEtBQUssQ0FBQyxJQUFJO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBbUI7UUFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxRSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBbUI7UUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNoRyxDQUFDO2lJQW5HVSxjQUFjO3FJQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3R5cGVzJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFySGVscGVyIHtcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXc6IFdpbmRvdztcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2luZG93UmVmOiBXaW5kb3dSZWYpIHt9XG5cbiAgcHVibGljIGluaXQoXG4gICAgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWYsXG4gICAgb3B0aW9uczogQ2FsZW5kYXJPcHRpb25zLFxuICAgIG9uRGF5U2VsZWN0ZWQ6IChjZWxsOiB7IGlzU2VsZWN0YWJsZTogYm9vbGVhbjsgZGF0ZTogbnVtYmVyIH0pID0+IHZvaWQsXG4gICAgb25DaGFuZ2VNb250aDogKGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgKSB7XG4gICAgaWYgKHRoaXMuaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyKSkge1xuICAgICAgY29uc3QgaWZyYW1lID0gPEhUTUxJRnJhbWVFbGVtZW50PmNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZnJhbWUub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmVtYmVkZGVkVmlld1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0T3B0aW9uc1RvRW1iZWRkZWRWaWV3KG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG5cbiAgICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+XG4gICAgICAgIHRoaXMuaGFuZGxlTWVzc2FnZUV2ZW50KGV2ZW50LCBvbkRheVNlbGVjdGVkLCBvbkNoYW5nZU1vbnRoKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IENhbGVuZGFyT3B0aW9ucykge1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlYWR5KSB7XG4gICAgICB0aGlzLmVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkRGF5KGRheTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3LnBvc3RNZXNzYWdlKFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2tpcmJ5Q2FsZW5kYXJTZXRTZWxlY3RlZERheScsXG4gICAgICAgICAgc2VsZWN0ZWREYXk6IGRheSxcbiAgICAgICAgfSxcbiAgICAgICAgJyonXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTElGcmFtZUVsZW1lbnQgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGVudFdpbmRvd1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9uczogQ2FsZW5kYXJPcHRpb25zKSB7XG4gICAgdGhpcy5lbWJlZGRlZFZpZXcucG9zdE1lc3NhZ2UoXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdraXJieUNhbGVuZGFySW5pdCcsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgJyonXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTWVzc2FnZUV2ZW50KFxuICAgIGV2ZW50OiBNZXNzYWdlRXZlbnQsXG4gICAgb25EYXlTZWxlY3RlZDogKGNlbGw6IHsgaXNTZWxlY3RhYmxlOiBib29sZWFuOyBkYXRlOiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgICBvbkNoYW5nZU1vbnRoOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZU1lc3NhZ2UoZXZlbnQpKSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEudHlwZSkge1xuICAgICAgICBjYXNlICdraXJieUNhbGVuZGFyRGF5U2VsZWN0ZWQnOlxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudCkpIHtcbiAgICAgICAgICAgIG9uRGF5U2VsZWN0ZWQoeyBpc1NlbGVjdGFibGU6IHRydWUsIGRhdGU6IGV2ZW50LmRhdGEuZGF5IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAna2lyYnlDYWxlbmRhckNoYW5nZU1vbnRoJzpcbiAgICAgICAgICBpZiAodGhpcy52YWxpZGF0ZU5hdmlnYXRlTW9udGhNZXNzYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgb25DaGFuZ2VNb250aChldmVudC5kYXRhLmluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVtYmVkZGVkVmlldyA9PT0gZXZlbnQuc291cmNlICYmXG4gICAgICBldmVudC50eXBlID09PSAnbWVzc2FnZScgJiZcbiAgICAgIGV2ZW50LmRhdGEgJiZcbiAgICAgIGV2ZW50LmRhdGEudHlwZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGEudHlwZSA9PT0gJ2tpcmJ5Q2FsZW5kYXJEYXlTZWxlY3RlZCcgJiYgZXZlbnQuZGF0YS5kYXk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTmF2aWdhdGVNb250aE1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiBldmVudC5kYXRhLnR5cGUgPT09ICdraXJieUNhbGVuZGFyQ2hhbmdlTW9udGgnICYmIHR5cGVvZiBldmVudC5kYXRhLmluZGV4ID09PSAnbnVtYmVyJztcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2FsZW5kYXIvc3JjL29wdGlvbnMvY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDYWxlbmRhclllYXJOYXZpZ2F0b3JDb25maWcgPSB7XG4gIGZyb206IG51bWJlciB8IERhdGU7XG4gIHRvOiBudW1iZXIgfCBEYXRlO1xufTtcbiJdfQ==
@@ -1,24 +0,0 @@
1
- /*
2
- Utility function to check if a given element
3
- has an ancestor with a specific node name.
4
-
5
- Can be given a 'stopNodeName' to limit the search
6
- as to not climb all the way up through the DOM tree.
7
-
8
- Returns true when element has the ancestorNodeName
9
- or an ancestor has the ancestorNodeName.
10
-
11
- Returns false otherwise.
12
- */
13
- export const elementHasAncestor = (element, ancestorNodeName, stopNodeName) => {
14
- switch (element?.nodeName) {
15
- case undefined:
16
- case stopNodeName?.toUpperCase():
17
- return false;
18
- case ancestorNodeName.toUpperCase():
19
- return true;
20
- default:
21
- return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);
22
- }
23
- };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1oYXMtYW5jZXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9oZWxwZXJzL3NyYy9lbGVtZW50LWhhcy1hbmNlc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7RUFXRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQ2hDLE9BQW9CLEVBQ3BCLGdCQUF3QixFQUN4QixZQUFxQixFQUNyQixFQUFFO0lBQ0YsUUFBUSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDMUIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFlBQVksRUFBRSxXQUFXLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNkO1lBQ0UsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBcbiAgVXRpbGl0eSBmdW5jdGlvbiB0byBjaGVjayBpZiBhIGdpdmVuIGVsZW1lbnQgXG4gIGhhcyBhbiBhbmNlc3RvciB3aXRoIGEgc3BlY2lmaWMgbm9kZSBuYW1lLiBcblxuICBDYW4gYmUgZ2l2ZW4gYSAnc3RvcE5vZGVOYW1lJyB0byBsaW1pdCB0aGUgc2VhcmNoXG4gIGFzIHRvIG5vdCBjbGltYiBhbGwgdGhlIHdheSB1cCB0aHJvdWdoIHRoZSBET00gdHJlZS4gXG5cbiAgUmV0dXJucyB0cnVlIHdoZW4gZWxlbWVudCBoYXMgdGhlIGFuY2VzdG9yTm9kZU5hbWUgXG4gIG9yIGFuIGFuY2VzdG9yIGhhcyB0aGUgYW5jZXN0b3JOb2RlTmFtZS4gXG5cbiAgUmV0dXJucyBmYWxzZSBvdGhlcndpc2UuXG4qL1xuXG5leHBvcnQgY29uc3QgZWxlbWVudEhhc0FuY2VzdG9yID0gKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgYW5jZXN0b3JOb2RlTmFtZTogc3RyaW5nLFxuICBzdG9wTm9kZU5hbWU/OiBzdHJpbmdcbikgPT4ge1xuICBzd2l0Y2ggKGVsZW1lbnQ/Lm5vZGVOYW1lKSB7XG4gICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgY2FzZSBzdG9wTm9kZU5hbWU/LnRvVXBwZXJDYXNlKCk6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgY2FzZSBhbmNlc3Rvck5vZGVOYW1lLnRvVXBwZXJDYXNlKCk6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGVsZW1lbnRIYXNBbmNlc3RvcihlbGVtZW50LnBhcmVudEVsZW1lbnQsIGFuY2VzdG9yTm9kZU5hbWUsIHN0b3BOb2RlTmFtZSk7XG4gIH1cbn07XG4iXX0=