@kirbydesign/designsystem 11.0.0 → 11.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (986) hide show
  1. package/accordion/index.d.ts +42 -6
  2. package/accordion/index.d.ts.map +1 -0
  3. package/action-group/index.d.ts +43 -6
  4. package/action-group/index.d.ts.map +1 -0
  5. package/avatar/index.d.ts +28 -6
  6. package/avatar/index.d.ts.map +1 -0
  7. package/badge/index.d.ts +20 -6
  8. package/badge/index.d.ts.map +1 -0
  9. package/button/index.d.ts +43 -6
  10. package/button/index.d.ts.map +1 -0
  11. package/calendar/index.d.ts +137 -6
  12. package/calendar/index.d.ts.map +1 -0
  13. package/card/index.d.ts +72 -6
  14. package/card/index.d.ts.map +1 -0
  15. package/chart/index.d.ts +198 -4
  16. package/chart/index.d.ts.map +1 -0
  17. package/checkbox/index.d.ts +69 -6
  18. package/checkbox/index.d.ts.map +1 -0
  19. package/config/index.d.ts +40 -4
  20. package/config/index.d.ts.map +1 -0
  21. package/data-table/index.d.ts +30 -4
  22. package/data-table/index.d.ts.map +1 -0
  23. package/divider/index.d.ts +10 -6
  24. package/divider/index.d.ts.map +1 -0
  25. package/dropdown/index.d.ts +166 -6
  26. package/dropdown/index.d.ts.map +1 -0
  27. package/empty-state/index.d.ts +37 -6
  28. package/empty-state/index.d.ts.map +1 -0
  29. package/fab-sheet/index.d.ts +29 -6
  30. package/fab-sheet/index.d.ts.map +1 -0
  31. package/fesm2022/kirbydesign-designsystem-accordion.mjs +42 -22
  32. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-action-group.mjs +5 -7
  34. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-avatar.mjs +4 -4
  36. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-badge.mjs +4 -6
  38. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-button.mjs +4 -5
  40. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-calendar.mjs +4 -6
  42. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-card.mjs +20 -21
  44. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-chart.mjs +478 -478
  46. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +6 -8
  48. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  50. package/fesm2022/kirbydesign-designsystem-data-table.mjs +8 -8
  51. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  52. package/fesm2022/kirbydesign-designsystem-divider.mjs +4 -5
  53. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  54. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +27 -22
  55. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  56. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +10 -9
  57. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  58. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +5 -6
  59. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  60. package/fesm2022/kirbydesign-designsystem-flag.mjs +5 -6
  61. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  62. package/fesm2022/kirbydesign-designsystem-form-field.mjs +48 -41
  63. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
  65. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
  67. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  68. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  69. package/fesm2022/kirbydesign-designsystem-icon.mjs +11 -10
  70. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  71. package/fesm2022/kirbydesign-designsystem-item-group.mjs +4 -5
  72. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  73. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +4 -4
  74. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  75. package/fesm2022/kirbydesign-designsystem-item.mjs +12 -13
  76. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  77. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  78. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  79. package/fesm2022/kirbydesign-designsystem-list.mjs +43 -46
  80. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  81. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +8 -8
  82. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  83. package/fesm2022/kirbydesign-designsystem-menu.mjs +8 -10
  84. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  85. package/fesm2022/kirbydesign-designsystem-modal.mjs +643 -634
  86. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  87. package/fesm2022/kirbydesign-designsystem-page.mjs +67 -54
  88. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  89. package/fesm2022/kirbydesign-designsystem-popover.mjs +5 -6
  90. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  91. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +8 -9
  92. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  93. package/fesm2022/kirbydesign-designsystem-radio.mjs +16 -16
  94. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  95. package/fesm2022/kirbydesign-designsystem-range.mjs +6 -8
  96. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  97. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +4 -4
  98. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  99. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +9 -10
  100. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  101. package/fesm2022/kirbydesign-designsystem-section-header.mjs +4 -5
  102. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  103. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  104. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  105. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  106. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  107. package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
  108. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  109. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +17 -70
  110. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  111. package/fesm2022/kirbydesign-designsystem-slide.mjs +14 -14
  112. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  113. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  114. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  115. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
  116. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  117. package/fesm2022/kirbydesign-designsystem-tabs.mjs +14 -15
  118. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  119. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  120. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  121. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  122. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  123. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  124. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  125. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  126. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  127. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  128. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  129. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +9 -10
  130. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  131. package/fesm2022/kirbydesign-designsystem-toggle.mjs +6 -8
  132. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  133. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  134. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  135. package/fesm2022/kirbydesign-designsystem.mjs +17 -18
  136. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  137. package/flag/index.d.ts +14 -6
  138. package/flag/index.d.ts.map +1 -0
  139. package/form-field/index.d.ts +230 -6
  140. package/form-field/index.d.ts.map +1 -0
  141. package/header/index.d.ts +70 -6
  142. package/header/index.d.ts.map +1 -0
  143. package/helpers/index.d.ts +94 -4
  144. package/helpers/index.d.ts.map +1 -0
  145. package/helpers/scss/index.d.ts +9 -6
  146. package/helpers/scss/index.d.ts.map +1 -0
  147. package/icon/index.d.ts +66 -4
  148. package/icon/index.d.ts.map +1 -0
  149. package/icons/svg/top-up.svg +1 -0
  150. package/index.d.ts +222 -6
  151. package/index.d.ts.map +1 -0
  152. package/item/index.d.ts +53 -6
  153. package/item/index.d.ts.map +1 -0
  154. package/item-group/index.d.ts +10 -6
  155. package/item-group/index.d.ts.map +1 -0
  156. package/item-sliding/index.d.ts +28 -6
  157. package/item-sliding/index.d.ts.map +1 -0
  158. package/kirby-app/index.d.ts +21 -6
  159. package/kirby-app/index.d.ts.map +1 -0
  160. package/list/index.d.ts +282 -4
  161. package/list/index.d.ts.map +1 -0
  162. package/loading-overlay/index.d.ts +26 -6
  163. package/loading-overlay/index.d.ts.map +1 -0
  164. package/menu/index.d.ts +71 -6
  165. package/menu/index.d.ts.map +1 -0
  166. package/modal/index.d.ts +492 -4
  167. package/modal/index.d.ts.map +1 -0
  168. package/package.json +17 -17
  169. package/page/index.d.ts +233 -4
  170. package/page/index.d.ts.map +1 -0
  171. package/popover/index.d.ts +40 -6
  172. package/popover/index.d.ts.map +1 -0
  173. package/progress-circle/index.d.ts +64 -6
  174. package/progress-circle/index.d.ts.map +1 -0
  175. package/radio/index.d.ts +100 -6
  176. package/radio/index.d.ts.map +1 -0
  177. package/range/index.d.ts +45 -6
  178. package/range/index.d.ts.map +1 -0
  179. package/reorder-list/index.d.ts +34 -6
  180. package/reorder-list/index.d.ts.map +1 -0
  181. package/router-outlet/index.d.ts +20 -6
  182. package/router-outlet/index.d.ts.map +1 -0
  183. package/section-header/index.d.ts +9 -6
  184. package/section-header/index.d.ts.map +1 -0
  185. package/shared/floating/index.d.ts +138 -4
  186. package/shared/floating/index.d.ts.map +1 -0
  187. package/shared/index.d.ts +150 -4
  188. package/shared/index.d.ts.map +1 -0
  189. package/shared/portal/index.d.ts +36 -4
  190. package/shared/portal/index.d.ts.map +1 -0
  191. package/slide/index.d.ts +66 -6
  192. package/slide/index.d.ts.map +1 -0
  193. package/slide-button/index.d.ts +35 -6
  194. package/slide-button/index.d.ts.map +1 -0
  195. package/spinner/index.d.ts +16 -6
  196. package/spinner/index.d.ts.map +1 -0
  197. package/tab-navigation/index.d.ts +58 -6
  198. package/tab-navigation/index.d.ts.map +1 -0
  199. package/tabs/index.d.ts +49 -6
  200. package/tabs/index.d.ts.map +1 -0
  201. package/testing/index.d.ts +62 -6
  202. package/testing/index.d.ts.map +1 -0
  203. package/testing-base/index.d.ts +816 -6
  204. package/testing-base/index.d.ts.map +1 -0
  205. package/testing-jasmine/index.d.ts +11 -6
  206. package/testing-jasmine/index.d.ts.map +1 -0
  207. package/testing-jest/index.d.ts +11 -6
  208. package/testing-jest/index.d.ts.map +1 -0
  209. package/toast/index.d.ts +34 -6
  210. package/toast/index.d.ts.map +1 -0
  211. package/toggle/index.d.ts +64 -6
  212. package/toggle/index.d.ts.map +1 -0
  213. package/toggle-button/index.d.ts +58 -6
  214. package/toggle-button/index.d.ts.map +1 -0
  215. package/types/index.d.ts +21 -6
  216. package/types/index.d.ts.map +1 -0
  217. package/accordion/accordion-item.component.d.ts +0 -22
  218. package/accordion/accordion-item.component.d.ts.map +0 -1
  219. package/accordion/accordion.directive.d.ts +0 -6
  220. package/accordion/accordion.directive.d.ts.map +0 -1
  221. package/accordion/accordion.module.d.ts +0 -10
  222. package/accordion/accordion.module.d.ts.map +0 -1
  223. package/accordion/kirbydesign-designsystem-accordion.d.ts.map +0 -1
  224. package/accordion/public_api.d.ts +0 -4
  225. package/accordion/public_api.d.ts.map +0 -1
  226. package/action-group/action-group.component.d.ts +0 -40
  227. package/action-group/action-group.component.d.ts.map +0 -1
  228. package/action-group/kirbydesign-designsystem-action-group.d.ts.map +0 -1
  229. package/action-group/public_api.d.ts +0 -2
  230. package/action-group/public_api.d.ts.map +0 -1
  231. package/avatar/avatar.component.d.ts +0 -25
  232. package/avatar/avatar.component.d.ts.map +0 -1
  233. package/avatar/kirbydesign-designsystem-avatar.d.ts.map +0 -1
  234. package/avatar/public_api.d.ts +0 -2
  235. package/avatar/public_api.d.ts.map +0 -1
  236. package/badge/badge.component.d.ts +0 -16
  237. package/badge/badge.component.d.ts.map +0 -1
  238. package/badge/kirbydesign-designsystem-badge.d.ts.map +0 -1
  239. package/badge/public_api.d.ts +0 -2
  240. package/badge/public_api.d.ts.map +0 -1
  241. package/button/button.component.d.ts +0 -39
  242. package/button/button.component.d.ts.map +0 -1
  243. package/button/kirbydesign-designsystem-button.d.ts.map +0 -1
  244. package/button/public_api.d.ts +0 -2
  245. package/button/public_api.d.ts.map +0 -1
  246. package/calendar/calendar.component.d.ts +0 -113
  247. package/calendar/calendar.component.d.ts.map +0 -1
  248. package/calendar/interfaces/calendar-day.d.ts +0 -18
  249. package/calendar/interfaces/calendar-day.d.ts.map +0 -1
  250. package/calendar/interfaces/calendar-year-navigator-config.d.ts +0 -5
  251. package/calendar/interfaces/calendar-year-navigator-config.d.ts.map +0 -1
  252. package/calendar/kirbydesign-designsystem-calendar.d.ts.map +0 -1
  253. package/calendar/public_api.d.ts +0 -3
  254. package/calendar/public_api.d.ts.map +0 -1
  255. package/card/card-as-button/card-as-button.directive.d.ts +0 -16
  256. package/card/card-as-button/card-as-button.directive.d.ts.map +0 -1
  257. package/card/card-flag-level.d.ts +0 -3
  258. package/card/card-flag-level.d.ts.map +0 -1
  259. package/card/card-footer/card-footer.component.d.ts +0 -7
  260. package/card/card-footer/card-footer.component.d.ts.map +0 -1
  261. package/card/card-header/card-header.component.d.ts +0 -13
  262. package/card/card-header/card-header.component.d.ts.map +0 -1
  263. package/card/card.component.d.ts +0 -27
  264. package/card/card.component.d.ts.map +0 -1
  265. package/card/card.module.d.ts +0 -13
  266. package/card/card.module.d.ts.map +0 -1
  267. package/card/kirbydesign-designsystem-card.d.ts.map +0 -1
  268. package/card/public_api.d.ts +0 -7
  269. package/card/public_api.d.ts.map +0 -1
  270. package/chart/chart/chart.component.d.ts +0 -8
  271. package/chart/chart/chart.component.d.ts.map +0 -1
  272. package/chart/chart/index.d.ts +0 -2
  273. package/chart/chart/index.d.ts.map +0 -1
  274. package/chart/chart-config/chart-bar-config/chart-bar-config.d.ts +0 -10
  275. package/chart/chart-config/chart-bar-config/chart-bar-config.d.ts.map +0 -1
  276. package/chart/chart-config/chart-base-config.d.ts +0 -7
  277. package/chart/chart-config/chart-base-config.d.ts.map +0 -1
  278. package/chart/chart-config/chart-stock-config/chart-stock-config.d.ts +0 -21
  279. package/chart/chart-config/chart-stock-config/chart-stock-config.d.ts.map +0 -1
  280. package/chart/chart-config/chart-stock-config/data-label-position/data-label-position.d.ts +0 -5
  281. package/chart/chart-config/chart-stock-config/data-label-position/data-label-position.d.ts.map +0 -1
  282. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.d.ts +0 -3
  283. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.d.ts.map +0 -1
  284. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.d.ts +0 -13
  285. package/chart/chart-config/chart-stock-config/vertical-line-plugin/vertical-line-plugin.model.d.ts.map +0 -1
  286. package/chart/charts.module.d.ts +0 -9
  287. package/chart/charts.module.d.ts.map +0 -1
  288. package/chart/kirbydesign-designsystem-chart.d.ts.map +0 -1
  289. package/chart/public_api.d.ts +0 -7
  290. package/chart/public_api.d.ts.map +0 -1
  291. package/chart/shared/base-chart/base-chart.component.d.ts +0 -35
  292. package/chart/shared/base-chart/base-chart.component.d.ts.map +0 -1
  293. package/chart/shared/base-chart/index.d.ts +0 -2
  294. package/chart/shared/base-chart/index.d.ts.map +0 -1
  295. package/chart/shared/chart-config-service/chart-config.service.d.ts +0 -31
  296. package/chart/shared/chart-config-service/chart-config.service.d.ts.map +0 -1
  297. package/chart/shared/chart-config-service/configs/annotations.config.d.ts +0 -3
  298. package/chart/shared/chart-config-service/configs/annotations.config.d.ts.map +0 -1
  299. package/chart/shared/chart-config-service/configs/global-defaults.config.d.ts +0 -49
  300. package/chart/shared/chart-config-service/configs/global-defaults.config.d.ts.map +0 -1
  301. package/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.d.ts +0 -5
  302. package/chart/shared/chart-config-service/configs/interaction-functions-extensions.config.d.ts.map +0 -1
  303. package/chart/shared/chart-config-service/configs/type.config.d.ts +0 -3
  304. package/chart/shared/chart-config-service/configs/type.config.d.ts.map +0 -1
  305. package/chart/shared/chart-config-service/index.d.ts +0 -2
  306. package/chart/shared/chart-config-service/index.d.ts.map +0 -1
  307. package/chart/shared/chart-js-service/annotations.delegate.d.ts +0 -17
  308. package/chart/shared/chart-js-service/annotations.delegate.d.ts.map +0 -1
  309. package/chart/shared/chart-js-service/chart-js.service.d.ts +0 -46
  310. package/chart/shared/chart-js-service/chart-js.service.d.ts.map +0 -1
  311. package/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.d.ts +0 -15
  312. package/chart/shared/chart-js-service/chartjs-plugin-marker/chartjs-plugin-marker.d.ts.map +0 -1
  313. package/chart/shared/chart-js-service/configured-chart-js.d.ts +0 -4
  314. package/chart/shared/chart-js-service/configured-chart-js.d.ts.map +0 -1
  315. package/chart/shared/chart-js-service/index.d.ts +0 -3
  316. package/chart/shared/chart-js-service/index.d.ts.map +0 -1
  317. package/chart/shared/chart-js-service/test-utils.d.ts +0 -5
  318. package/chart/shared/chart-js-service/test-utils.d.ts.map +0 -1
  319. package/chart/shared/charts.types.d.ts +0 -27
  320. package/chart/shared/charts.types.d.ts.map +0 -1
  321. package/chart/shared/index.d.ts +0 -5
  322. package/chart/shared/index.d.ts.map +0 -1
  323. package/chart/stock-chart/index.d.ts +0 -2
  324. package/chart/stock-chart/index.d.ts.map +0 -1
  325. package/chart/stock-chart/stock-chart-js.service.d.ts +0 -38
  326. package/chart/stock-chart/stock-chart-js.service.d.ts.map +0 -1
  327. package/chart/stock-chart/stock-chart.component.d.ts +0 -10
  328. package/chart/stock-chart/stock-chart.component.d.ts.map +0 -1
  329. package/checkbox/checkbox.component.d.ts +0 -66
  330. package/checkbox/checkbox.component.d.ts.map +0 -1
  331. package/checkbox/kirbydesign-designsystem-checkbox.d.ts.map +0 -1
  332. package/checkbox/public_api.d.ts +0 -2
  333. package/checkbox/public_api.d.ts.map +0 -1
  334. package/config/kirbydesign-designsystem-config.d.ts.map +0 -1
  335. package/config/provide-kirby.d.ts +0 -38
  336. package/config/provide-kirby.d.ts.map +0 -1
  337. package/config/public_api.d.ts +0 -2
  338. package/config/public_api.d.ts.map +0 -1
  339. package/data-table/data-table.module.d.ts +0 -13
  340. package/data-table/data-table.module.d.ts.map +0 -1
  341. package/data-table/kirbydesign-designsystem-data-table.d.ts.map +0 -1
  342. package/data-table/public_api.d.ts +0 -3
  343. package/data-table/public_api.d.ts.map +0 -1
  344. package/data-table/sortable/sortable.component.d.ts +0 -18
  345. package/data-table/sortable/sortable.component.d.ts.map +0 -1
  346. package/divider/divider.component.d.ts +0 -7
  347. package/divider/divider.component.d.ts.map +0 -1
  348. package/divider/kirbydesign-designsystem-divider.d.ts.map +0 -1
  349. package/divider/public_api.d.ts +0 -2
  350. package/divider/public_api.d.ts.map +0 -1
  351. package/dropdown/dropdown.component.d.ts +0 -131
  352. package/dropdown/dropdown.component.d.ts.map +0 -1
  353. package/dropdown/dropdown.module.d.ts +0 -16
  354. package/dropdown/dropdown.module.d.ts.map +0 -1
  355. package/dropdown/dropdown.types.d.ts +0 -10
  356. package/dropdown/dropdown.types.d.ts.map +0 -1
  357. package/dropdown/keyboard-handler.service.d.ts +0 -7
  358. package/dropdown/keyboard-handler.service.d.ts.map +0 -1
  359. package/dropdown/kirbydesign-designsystem-dropdown.d.ts.map +0 -1
  360. package/dropdown/public_api.d.ts +0 -6
  361. package/dropdown/public_api.d.ts.map +0 -1
  362. package/empty-state/empty-state.component.d.ts +0 -24
  363. package/empty-state/empty-state.component.d.ts.map +0 -1
  364. package/empty-state/empty-state.module.d.ts +0 -11
  365. package/empty-state/empty-state.module.d.ts.map +0 -1
  366. package/empty-state/kirbydesign-designsystem-empty-state.d.ts.map +0 -1
  367. package/empty-state/public_api.d.ts +0 -3
  368. package/empty-state/public_api.d.ts.map +0 -1
  369. package/fab-sheet/fab-sheet.component.d.ts +0 -26
  370. package/fab-sheet/fab-sheet.component.d.ts.map +0 -1
  371. package/fab-sheet/kirbydesign-designsystem-fab-sheet.d.ts.map +0 -1
  372. package/fab-sheet/public_api.d.ts +0 -2
  373. package/fab-sheet/public_api.d.ts.map +0 -1
  374. package/flag/flag.component.d.ts +0 -10
  375. package/flag/flag.component.d.ts.map +0 -1
  376. package/flag/kirbydesign-designsystem-flag.d.ts.map +0 -1
  377. package/flag/public_api.d.ts +0 -2
  378. package/flag/public_api.d.ts.map +0 -1
  379. package/form-field/directives/affix/affix.directive.d.ts +0 -10
  380. package/form-field/directives/affix/affix.directive.d.ts.map +0 -1
  381. package/form-field/directives/date/date-input.directive.d.ts +0 -45
  382. package/form-field/directives/date/date-input.directive.d.ts.map +0 -1
  383. package/form-field/directives/decimal-mask/decimal-mask.directive.d.ts +0 -41
  384. package/form-field/directives/decimal-mask/decimal-mask.directive.d.ts.map +0 -1
  385. package/form-field/form-field-message/form-field-message.component.d.ts +0 -8
  386. package/form-field/form-field-message/form-field-message.component.d.ts.map +0 -1
  387. package/form-field/form-field.component.d.ts +0 -58
  388. package/form-field/form-field.component.d.ts.map +0 -1
  389. package/form-field/form-field.module.d.ts +0 -14
  390. package/form-field/form-field.module.d.ts.map +0 -1
  391. package/form-field/input/input.component.d.ts +0 -39
  392. package/form-field/input/input.component.d.ts.map +0 -1
  393. package/form-field/input-counter/input-counter.component.d.ts +0 -16
  394. package/form-field/input-counter/input-counter.component.d.ts.map +0 -1
  395. package/form-field/kirbydesign-designsystem-form-field.d.ts.map +0 -1
  396. package/form-field/public_api.d.ts +0 -10
  397. package/form-field/public_api.d.ts.map +0 -1
  398. package/form-field/textarea/textarea.component.d.ts +0 -28
  399. package/form-field/textarea/textarea.component.d.ts.map +0 -1
  400. package/header/header.component.d.ts +0 -59
  401. package/header/header.component.d.ts.map +0 -1
  402. package/header/header.module.d.ts +0 -10
  403. package/header/header.module.d.ts.map +0 -1
  404. package/header/kirbydesign-designsystem-header.d.ts.map +0 -1
  405. package/header/public_api.d.ts +0 -3
  406. package/header/public_api.d.ts.map +0 -1
  407. package/helpers/chart-config-has-type.d.ts +0 -3
  408. package/helpers/chart-config-has-type.d.ts.map +0 -1
  409. package/helpers/color-helper.d.ts +0 -2
  410. package/helpers/color-helper.d.ts.map +0 -1
  411. package/helpers/content-mutation-observer.d.ts +0 -9
  412. package/helpers/content-mutation-observer.d.ts.map +0 -1
  413. package/helpers/deep-copy.d.ts +0 -2
  414. package/helpers/deep-copy.d.ts.map +0 -1
  415. package/helpers/design-token-helper.d.ts +0 -2
  416. package/helpers/design-token-helper.d.ts.map +0 -1
  417. package/helpers/element-ancestor-utils.d.ts +0 -3
  418. package/helpers/element-ancestor-utils.d.ts.map +0 -1
  419. package/helpers/ionic-element-part-helper.d.ts +0 -10
  420. package/helpers/ionic-element-part-helper.d.ts.map +0 -1
  421. package/helpers/kirby-animation.d.ts +0 -20
  422. package/helpers/kirby-animation.d.ts.map +0 -1
  423. package/helpers/kirbydesign-designsystem-helpers.d.ts.map +0 -1
  424. package/helpers/line-clamp-helper.d.ts +0 -12
  425. package/helpers/line-clamp-helper.d.ts.map +0 -1
  426. package/helpers/merge-deep.d.ts +0 -17
  427. package/helpers/merge-deep.d.ts.map +0 -1
  428. package/helpers/platform.service.d.ts +0 -11
  429. package/helpers/platform.service.d.ts.map +0 -1
  430. package/helpers/public_api.d.ts +0 -15
  431. package/helpers/public_api.d.ts.map +0 -1
  432. package/helpers/scss/kirbydesign-designsystem-helpers-scss.d.ts.map +0 -1
  433. package/helpers/scss/public_api.d.ts +0 -2
  434. package/helpers/scss/public_api.d.ts.map +0 -1
  435. package/helpers/scss/scss-helper.d.ts +0 -7
  436. package/helpers/scss/scss-helper.d.ts.map +0 -1
  437. package/helpers/string-helper.d.ts +0 -2
  438. package/helpers/string-helper.d.ts.map +0 -1
  439. package/helpers/theme-color.type.d.ts +0 -2
  440. package/helpers/theme-color.type.d.ts.map +0 -1
  441. package/helpers/unique-id-generator.helper.d.ts +0 -9
  442. package/helpers/unique-id-generator.helper.d.ts.map +0 -1
  443. package/icon/icon-registry.service.d.ts +0 -21
  444. package/icon/icon-registry.service.d.ts.map +0 -1
  445. package/icon/icon-settings.d.ts +0 -8
  446. package/icon/icon-settings.d.ts.map +0 -1
  447. package/icon/icon.component.d.ts +0 -29
  448. package/icon/icon.component.d.ts.map +0 -1
  449. package/icon/icon.module.d.ts +0 -10
  450. package/icon/icon.module.d.ts.map +0 -1
  451. package/icon/kirby-icon-settings.d.ts +0 -4
  452. package/icon/kirby-icon-settings.d.ts.map +0 -1
  453. package/icon/kirbydesign-designsystem-icon.d.ts.map +0 -1
  454. package/icon/public_api.d.ts +0 -6
  455. package/icon/public_api.d.ts.map +0 -1
  456. package/item/item.component.d.ts +0 -34
  457. package/item/item.component.d.ts.map +0 -1
  458. package/item/item.module.d.ts +0 -12
  459. package/item/item.module.d.ts.map +0 -1
  460. package/item/kirbydesign-designsystem-item.d.ts.map +0 -1
  461. package/item/label/label.component.d.ts +0 -8
  462. package/item/label/label.component.d.ts.map +0 -1
  463. package/item/public_api.d.ts +0 -4
  464. package/item/public_api.d.ts.map +0 -1
  465. package/item-group/item-group.component.d.ts +0 -7
  466. package/item-group/item-group.component.d.ts.map +0 -1
  467. package/item-group/kirbydesign-designsystem-item-group.d.ts.map +0 -1
  468. package/item-group/public_api.d.ts +0 -2
  469. package/item-group/public_api.d.ts.map +0 -1
  470. package/item-sliding/item-sliding.component.d.ts +0 -14
  471. package/item-sliding/item-sliding.component.d.ts.map +0 -1
  472. package/item-sliding/item-sliding.types.d.ts +0 -11
  473. package/item-sliding/item-sliding.types.d.ts.map +0 -1
  474. package/item-sliding/kirbydesign-designsystem-item-sliding.d.ts.map +0 -1
  475. package/item-sliding/public_api.d.ts +0 -3
  476. package/item-sliding/public_api.d.ts.map +0 -1
  477. package/kirby-app/kirby-app.component.d.ts +0 -10
  478. package/kirby-app/kirby-app.component.d.ts.map +0 -1
  479. package/kirby-app/kirby-app.module.d.ts +0 -10
  480. package/kirby-app/kirby-app.module.d.ts.map +0 -1
  481. package/kirby-app/kirbydesign-designsystem-kirby-app.d.ts.map +0 -1
  482. package/kirby-app/public_api.d.ts +0 -3
  483. package/kirby-app/public_api.d.ts.map +0 -1
  484. package/kirbydesign-designsystem.d.ts.map +0 -1
  485. package/lib/components/index.d.ts +0 -3
  486. package/lib/components/index.d.ts.map +0 -1
  487. package/lib/components/segmented-control/segment-item.d.ts +0 -14
  488. package/lib/components/segmented-control/segment-item.d.ts.map +0 -1
  489. package/lib/components/segmented-control/segmented-control.component.d.ts +0 -86
  490. package/lib/components/segmented-control/segmented-control.component.d.ts.map +0 -1
  491. package/lib/directives/index.d.ts +0 -3
  492. package/lib/directives/index.d.ts.map +0 -1
  493. package/lib/directives/key-handler/key-handler.directive.d.ts +0 -10
  494. package/lib/directives/key-handler/key-handler.directive.d.ts.map +0 -1
  495. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts +0 -16
  496. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts.map +0 -1
  497. package/lib/index.d.ts +0 -49
  498. package/lib/index.d.ts.map +0 -1
  499. package/lib/kirby.module.d.ts +0 -57
  500. package/lib/kirby.module.d.ts.map +0 -1
  501. package/list/directives/index.d.ts +0 -4
  502. package/list/directives/index.d.ts.map +0 -1
  503. package/list/directives/infinite-scroll.directive.d.ts +0 -50
  504. package/list/directives/infinite-scroll.directive.d.ts.map +0 -1
  505. package/list/directives/list-item-color.directive.d.ts +0 -13
  506. package/list/directives/list-item-color.directive.d.ts.map +0 -1
  507. package/list/directives/scroll.model.d.ts +0 -6
  508. package/list/directives/scroll.model.d.ts.map +0 -1
  509. package/list/helpers/index.d.ts +0 -2
  510. package/list/helpers/index.d.ts.map +0 -1
  511. package/list/helpers/list-helper.d.ts +0 -22
  512. package/list/helpers/list-helper.d.ts.map +0 -1
  513. package/list/kirbydesign-designsystem-list.d.ts.map +0 -1
  514. package/list/list-experimental/index.d.ts +0 -2
  515. package/list/list-experimental/index.d.ts.map +0 -1
  516. package/list/list-experimental/list-experimental.component.d.ts +0 -9
  517. package/list/list-experimental/list-experimental.component.d.ts.map +0 -1
  518. package/list/list-header/index.d.ts +0 -2
  519. package/list/list-header/index.d.ts.map +0 -1
  520. package/list/list-header/list-header.component.d.ts +0 -7
  521. package/list/list-header/list-header.component.d.ts.map +0 -1
  522. package/list/list-item/index.d.ts +0 -2
  523. package/list/list-item/index.d.ts.map +0 -1
  524. package/list/list-item/list-item.component.d.ts +0 -37
  525. package/list/list-item/list-item.component.d.ts.map +0 -1
  526. package/list/list-section-header/index.d.ts +0 -2
  527. package/list/list-section-header/index.d.ts.map +0 -1
  528. package/list/list-section-header/list-section-header.component.d.ts +0 -7
  529. package/list/list-section-header/list-section-header.component.d.ts.map +0 -1
  530. package/list/list-swipe-action.d.ts +0 -2
  531. package/list/list-swipe-action.d.ts.map +0 -1
  532. package/list/list-swipe-action.type.d.ts +0 -12
  533. package/list/list-swipe-action.type.d.ts.map +0 -1
  534. package/list/list.component.d.ts +0 -108
  535. package/list/list.component.d.ts.map +0 -1
  536. package/list/list.directive.d.ts +0 -18
  537. package/list/list.directive.d.ts.map +0 -1
  538. package/list/list.event.d.ts +0 -8
  539. package/list/list.event.d.ts.map +0 -1
  540. package/list/list.module.d.ts +0 -19
  541. package/list/list.module.d.ts.map +0 -1
  542. package/list/public_api.d.ts +0 -12
  543. package/list/public_api.d.ts.map +0 -1
  544. package/loading-overlay/kirbydesign-designsystem-loading-overlay.d.ts.map +0 -1
  545. package/loading-overlay/loading-overlay.component.d.ts +0 -9
  546. package/loading-overlay/loading-overlay.component.d.ts.map +0 -1
  547. package/loading-overlay/loading-overlay.service.d.ts +0 -15
  548. package/loading-overlay/loading-overlay.service.d.ts.map +0 -1
  549. package/loading-overlay/public_api.d.ts +0 -3
  550. package/loading-overlay/public_api.d.ts.map +0 -1
  551. package/menu/kirbydesign-designsystem-menu.d.ts.map +0 -1
  552. package/menu/menu.component.d.ts +0 -68
  553. package/menu/menu.component.d.ts.map +0 -1
  554. package/menu/public_api.d.ts +0 -2
  555. package/menu/public_api.d.ts.map +0 -1
  556. package/modal/kirbydesign-designsystem-modal.d.ts.map +0 -1
  557. package/modal/modal/action-sheet/action-sheet.component.d.ts +0 -18
  558. package/modal/modal/action-sheet/action-sheet.component.d.ts.map +0 -1
  559. package/modal/modal/action-sheet/config/action-sheet-config.d.ts +0 -8
  560. package/modal/modal/action-sheet/config/action-sheet-config.d.ts.map +0 -1
  561. package/modal/modal/action-sheet/config/action-sheet-item.d.ts +0 -5
  562. package/modal/modal/action-sheet/config/action-sheet-item.d.ts.map +0 -1
  563. package/modal/modal/action-sheet/index.d.ts +0 -4
  564. package/modal/modal/action-sheet/index.d.ts.map +0 -1
  565. package/modal/modal/alert/alert.component.d.ts +0 -29
  566. package/modal/modal/alert/alert.component.d.ts.map +0 -1
  567. package/modal/modal/alert/config/alert-config.d.ts +0 -15
  568. package/modal/modal/alert/config/alert-config.d.ts.map +0 -1
  569. package/modal/modal/alert/index.d.ts +0 -3
  570. package/modal/modal/alert/index.d.ts.map +0 -1
  571. package/modal/modal/footer/modal-footer.component.d.ts +0 -13
  572. package/modal/modal/footer/modal-footer.component.d.ts.map +0 -1
  573. package/modal/modal/index.d.ts +0 -7
  574. package/modal/modal/index.d.ts.map +0 -1
  575. package/modal/modal/modal-component/modal.component.d.ts +0 -53
  576. package/modal/modal/modal-component/modal.component.d.ts.map +0 -1
  577. package/modal/modal/services/action-sheet.helper.d.ts +0 -12
  578. package/modal/modal/services/action-sheet.helper.d.ts.map +0 -1
  579. package/modal/modal/services/alert.helper.d.ts +0 -15
  580. package/modal/modal/services/alert.helper.d.ts.map +0 -1
  581. package/modal/modal/services/can-dismiss-modal-guard.d.ts +0 -3
  582. package/modal/modal/services/can-dismiss-modal-guard.d.ts.map +0 -1
  583. package/modal/modal/services/can-dismiss.helper.d.ts +0 -13
  584. package/modal/modal/services/can-dismiss.helper.d.ts.map +0 -1
  585. package/modal/modal/services/index.d.ts +0 -7
  586. package/modal/modal/services/index.d.ts.map +0 -1
  587. package/modal/modal/services/modal-animation-builder.service.d.ts +0 -28
  588. package/modal/modal/services/modal-animation-builder.service.d.ts.map +0 -1
  589. package/modal/modal/services/modal.controller.d.ts +0 -39
  590. package/modal/modal/services/modal.controller.d.ts.map +0 -1
  591. package/modal/modal/services/modal.helper.d.ts +0 -21
  592. package/modal/modal/services/modal.helper.d.ts.map +0 -1
  593. package/modal/modal-navigation.service.d.ts +0 -39
  594. package/modal/modal-navigation.service.d.ts.map +0 -1
  595. package/modal/modal-wrapper/compact/index.d.ts +0 -2
  596. package/modal/modal-wrapper/compact/index.d.ts.map +0 -1
  597. package/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +0 -36
  598. package/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts.map +0 -1
  599. package/modal/modal-wrapper/config/drawer-supplementary-action.d.ts +0 -5
  600. package/modal/modal-wrapper/config/drawer-supplementary-action.d.ts.map +0 -1
  601. package/modal/modal-wrapper/config/index.d.ts +0 -4
  602. package/modal/modal-wrapper/config/index.d.ts.map +0 -1
  603. package/modal/modal-wrapper/config/modal-config.d.ts +0 -42
  604. package/modal/modal-wrapper/config/modal-config.d.ts.map +0 -1
  605. package/modal/modal-wrapper/config/modal-config.helper.d.ts +0 -3
  606. package/modal/modal-wrapper/config/modal-config.helper.d.ts.map +0 -1
  607. package/modal/modal-wrapper/index.d.ts +0 -4
  608. package/modal/modal-wrapper/index.d.ts.map +0 -1
  609. package/modal/modal-wrapper/modal-elements-mover.delegate.d.ts +0 -15
  610. package/modal/modal-wrapper/modal-elements-mover.delegate.d.ts.map +0 -1
  611. package/modal/modal-wrapper/modal-wrapper.component.d.ts +0 -112
  612. package/modal/modal-wrapper/modal-wrapper.component.d.ts.map +0 -1
  613. package/modal/modal.interfaces.d.ts +0 -58
  614. package/modal/modal.interfaces.d.ts.map +0 -1
  615. package/modal/public_api.d.ts +0 -5
  616. package/modal/public_api.d.ts.map +0 -1
  617. package/page/kirbydesign-designsystem-page.d.ts.map +0 -1
  618. package/page/page-footer/page-footer.component.d.ts +0 -15
  619. package/page/page-footer/page-footer.component.d.ts.map +0 -1
  620. package/page/page.component.d.ts +0 -207
  621. package/page/page.component.d.ts.map +0 -1
  622. package/page/page.module.d.ts +0 -14
  623. package/page/page.module.d.ts.map +0 -1
  624. package/page/public_api.d.ts +0 -4
  625. package/page/public_api.d.ts.map +0 -1
  626. package/popover/kirbydesign-designsystem-popover.d.ts.map +0 -1
  627. package/popover/popover.component.d.ts +0 -37
  628. package/popover/popover.component.d.ts.map +0 -1
  629. package/popover/public_api.d.ts +0 -2
  630. package/popover/public_api.d.ts.map +0 -1
  631. package/progress-circle/kirbydesign-designsystem-progress-circle.d.ts.map +0 -1
  632. package/progress-circle/progress-circle-ring.component.d.ts +0 -20
  633. package/progress-circle/progress-circle-ring.component.d.ts.map +0 -1
  634. package/progress-circle/progress-circle.component.d.ts +0 -43
  635. package/progress-circle/progress-circle.component.d.ts.map +0 -1
  636. package/progress-circle/public_api.d.ts +0 -3
  637. package/progress-circle/public_api.d.ts.map +0 -1
  638. package/public-api.d.ts +0 -2
  639. package/public-api.d.ts.map +0 -1
  640. package/radio/kirbydesign-designsystem-radio.d.ts.map +0 -1
  641. package/radio/public_api.d.ts +0 -4
  642. package/radio/public_api.d.ts.map +0 -1
  643. package/radio/radio-group/radio-group.component.d.ts +0 -65
  644. package/radio/radio-group/radio-group.component.d.ts.map +0 -1
  645. package/radio/radio-module.d.ts +0 -11
  646. package/radio/radio-module.d.ts.map +0 -1
  647. package/radio/radio.component.d.ts +0 -26
  648. package/radio/radio.component.d.ts.map +0 -1
  649. package/range/kirbydesign-designsystem-range.d.ts.map +0 -1
  650. package/range/public_api.d.ts +0 -2
  651. package/range/public_api.d.ts.map +0 -1
  652. package/range/range.component.d.ts +0 -42
  653. package/range/range.component.d.ts.map +0 -1
  654. package/reorder-list/kirbydesign-designsystem-reorder-list.d.ts.map +0 -1
  655. package/reorder-list/public_api.d.ts +0 -3
  656. package/reorder-list/public_api.d.ts.map +0 -1
  657. package/reorder-list/reorder-event.d.ts +0 -8
  658. package/reorder-list/reorder-event.d.ts.map +0 -1
  659. package/reorder-list/reorder-list.component.d.ts +0 -24
  660. package/reorder-list/reorder-list.component.d.ts.map +0 -1
  661. package/router-outlet/kirbydesign-designsystem-router-outlet.d.ts.map +0 -1
  662. package/router-outlet/public_api.d.ts +0 -4
  663. package/router-outlet/public_api.d.ts.map +0 -1
  664. package/router-outlet/router-outlet.component.d.ts +0 -8
  665. package/router-outlet/router-outlet.component.d.ts.map +0 -1
  666. package/router-outlet/router-outlet.module.d.ts +0 -10
  667. package/router-outlet/router-outlet.module.d.ts.map +0 -1
  668. package/section-header/kirbydesign-designsystem-section-header.d.ts.map +0 -1
  669. package/section-header/public_api.d.ts +0 -2
  670. package/section-header/public_api.d.ts.map +0 -1
  671. package/section-header/section-header.component.d.ts +0 -6
  672. package/section-header/section-header.component.d.ts.map +0 -1
  673. package/shared/component-configuration.d.ts +0 -6
  674. package/shared/component-configuration.d.ts.map +0 -1
  675. package/shared/component-loader.directive.d.ts +0 -16
  676. package/shared/component-loader.directive.d.ts.map +0 -1
  677. package/shared/controls/label-helpers.d.ts +0 -17
  678. package/shared/controls/label-helpers.d.ts.map +0 -1
  679. package/shared/dynamic-component.d.ts +0 -4
  680. package/shared/dynamic-component.d.ts.map +0 -1
  681. package/shared/fit-heading/fit-heading.directive.d.ts +0 -29
  682. package/shared/fit-heading/fit-heading.directive.d.ts.map +0 -1
  683. package/shared/fit-heading/index.d.ts +0 -2
  684. package/shared/fit-heading/index.d.ts.map +0 -1
  685. package/shared/floating/floating.directive.d.ts +0 -136
  686. package/shared/floating/floating.directive.d.ts.map +0 -1
  687. package/shared/floating/kirbydesign-designsystem-shared-floating.d.ts.map +0 -1
  688. package/shared/floating/public_api.d.ts +0 -2
  689. package/shared/floating/public_api.d.ts.map +0 -1
  690. package/shared/kirbydesign-designsystem-shared.d.ts.map +0 -1
  691. package/shared/portal/kirbydesign-designsystem-shared-portal.d.ts.map +0 -1
  692. package/shared/portal/portal.directive.d.ts +0 -35
  693. package/shared/portal/portal.directive.d.ts.map +0 -1
  694. package/shared/portal/public_api.d.ts +0 -2
  695. package/shared/portal/public_api.d.ts.map +0 -1
  696. package/shared/public_api.d.ts +0 -10
  697. package/shared/public_api.d.ts.map +0 -1
  698. package/shared/resize-observer/resize-observer.factory.d.ts +0 -11
  699. package/shared/resize-observer/resize-observer.factory.d.ts.map +0 -1
  700. package/shared/resize-observer/resize-observer.service.d.ts +0 -16
  701. package/shared/resize-observer/resize-observer.service.d.ts.map +0 -1
  702. package/shared/theme-color/theme-color.directive.d.ts +0 -36
  703. package/shared/theme-color/theme-color.directive.d.ts.map +0 -1
  704. package/shared/translation/translation.interface.d.ts +0 -13
  705. package/shared/translation/translation.interface.d.ts.map +0 -1
  706. package/shared/translation/translation.service.d.ts +0 -13
  707. package/shared/translation/translation.service.d.ts.map +0 -1
  708. package/shared/translation/translations/da.d.ts +0 -3
  709. package/shared/translation/translations/da.d.ts.map +0 -1
  710. package/shared/translation/translations/de.d.ts +0 -3
  711. package/shared/translation/translations/de.d.ts.map +0 -1
  712. package/shared/translation/translations/en.d.ts +0 -3
  713. package/shared/translation/translations/en.d.ts.map +0 -1
  714. package/slide/kirbydesign-designsystem-slide.d.ts.map +0 -1
  715. package/slide/public_api.d.ts +0 -5
  716. package/slide/public_api.d.ts.map +0 -1
  717. package/slide/slide-stretch-height.directive.d.ts +0 -10
  718. package/slide/slide-stretch-height.directive.d.ts.map +0 -1
  719. package/slide/slide.directive.d.ts +0 -6
  720. package/slide/slide.directive.d.ts.map +0 -1
  721. package/slide/slide.module.d.ts +0 -13
  722. package/slide/slide.module.d.ts.map +0 -1
  723. package/slide/slides.component.d.ts +0 -42
  724. package/slide/slides.component.d.ts.map +0 -1
  725. package/slide-button/kirbydesign-designsystem-slide-button.d.ts.map +0 -1
  726. package/slide-button/public_api.d.ts +0 -2
  727. package/slide-button/public_api.d.ts.map +0 -1
  728. package/slide-button/slide-button.component.d.ts +0 -32
  729. package/slide-button/slide-button.component.d.ts.map +0 -1
  730. package/spinner/kirbydesign-designsystem-spinner.d.ts.map +0 -1
  731. package/spinner/public_api.d.ts +0 -3
  732. package/spinner/public_api.d.ts.map +0 -1
  733. package/spinner/spinner.component.d.ts +0 -6
  734. package/spinner/spinner.component.d.ts.map +0 -1
  735. package/spinner/spinner.module.d.ts +0 -9
  736. package/spinner/spinner.module.d.ts.map +0 -1
  737. package/tab-navigation/kirbydesign-designsystem-tab-navigation.d.ts.map +0 -1
  738. package/tab-navigation/public_api.d.ts +0 -4
  739. package/tab-navigation/public_api.d.ts.map +0 -1
  740. package/tab-navigation/tab-navigation/tab-navigation.component.d.ts +0 -36
  741. package/tab-navigation/tab-navigation/tab-navigation.component.d.ts.map +0 -1
  742. package/tab-navigation/tab-navigation-item/tab-navigation-item.component.d.ts +0 -14
  743. package/tab-navigation/tab-navigation-item/tab-navigation-item.component.d.ts.map +0 -1
  744. package/tab-navigation/tab-navigation.module.d.ts +0 -10
  745. package/tab-navigation/tab-navigation.module.d.ts.map +0 -1
  746. package/tabs/kirbydesign-designsystem-tabs.d.ts.map +0 -1
  747. package/tabs/public_api.d.ts +0 -6
  748. package/tabs/public_api.d.ts.map +0 -1
  749. package/tabs/tab-button/tab-button.component.d.ts +0 -12
  750. package/tabs/tab-button/tab-button.component.d.ts.map +0 -1
  751. package/tabs/tab-button/tab-button.events.d.ts +0 -2
  752. package/tabs/tab-button/tab-button.events.d.ts.map +0 -1
  753. package/tabs/tabs.component.d.ts +0 -15
  754. package/tabs/tabs.component.d.ts.map +0 -1
  755. package/tabs/tabs.module.d.ts +0 -12
  756. package/tabs/tabs.module.d.ts.map +0 -1
  757. package/tabs/tabs.service.d.ts +0 -12
  758. package/tabs/tabs.service.d.ts.map +0 -1
  759. package/testing/element-css-custom-matchers.d.ts +0 -4
  760. package/testing/element-css-custom-matchers.d.ts.map +0 -1
  761. package/testing/kirbydesign-designsystem-testing.d.ts.map +0 -1
  762. package/testing/public_api.d.ts +0 -3
  763. package/testing/public_api.d.ts.map +0 -1
  764. package/testing/test-helper.d.ts +0 -55
  765. package/testing/test-helper.d.ts.map +0 -1
  766. package/testing-base/kirbydesign-designsystem-testing-base.d.ts.map +0 -1
  767. package/testing-base/lib/components/index.d.ts +0 -64
  768. package/testing-base/lib/components/index.d.ts.map +0 -1
  769. package/testing-base/lib/components/mock.accordion-item.component.d.ts +0 -10
  770. package/testing-base/lib/components/mock.accordion-item.component.d.ts.map +0 -1
  771. package/testing-base/lib/components/mock.action-group.component.d.ts +0 -9
  772. package/testing-base/lib/components/mock.action-group.component.d.ts.map +0 -1
  773. package/testing-base/lib/components/mock.action-sheet.component.d.ts +0 -16
  774. package/testing-base/lib/components/mock.action-sheet.component.d.ts.map +0 -1
  775. package/testing-base/lib/components/mock.alert.component.d.ts +0 -15
  776. package/testing-base/lib/components/mock.alert.component.d.ts.map +0 -1
  777. package/testing-base/lib/components/mock.avatar.component.d.ts +0 -16
  778. package/testing-base/lib/components/mock.avatar.component.d.ts.map +0 -1
  779. package/testing-base/lib/components/mock.badge.component.d.ts +0 -8
  780. package/testing-base/lib/components/mock.badge.component.d.ts.map +0 -1
  781. package/testing-base/lib/components/mock.base-chart.component.d.ts +0 -16
  782. package/testing-base/lib/components/mock.base-chart.component.d.ts.map +0 -1
  783. package/testing-base/lib/components/mock.button.component.d.ts +0 -15
  784. package/testing-base/lib/components/mock.button.component.d.ts.map +0 -1
  785. package/testing-base/lib/components/mock.calendar.component.d.ts +0 -33
  786. package/testing-base/lib/components/mock.calendar.component.d.ts.map +0 -1
  787. package/testing-base/lib/components/mock.card-footer.component.d.ts +0 -7
  788. package/testing-base/lib/components/mock.card-footer.component.d.ts.map +0 -1
  789. package/testing-base/lib/components/mock.card-header.component.d.ts +0 -12
  790. package/testing-base/lib/components/mock.card-header.component.d.ts.map +0 -1
  791. package/testing-base/lib/components/mock.card.component.d.ts +0 -14
  792. package/testing-base/lib/components/mock.card.component.d.ts.map +0 -1
  793. package/testing-base/lib/components/mock.chart.component.d.ts +0 -9
  794. package/testing-base/lib/components/mock.chart.component.d.ts.map +0 -1
  795. package/testing-base/lib/components/mock.checkbox.component.d.ts +0 -14
  796. package/testing-base/lib/components/mock.checkbox.component.d.ts.map +0 -1
  797. package/testing-base/lib/components/mock.divider.component.d.ts +0 -7
  798. package/testing-base/lib/components/mock.divider.component.d.ts.map +0 -1
  799. package/testing-base/lib/components/mock.dropdown.component.d.ts +0 -22
  800. package/testing-base/lib/components/mock.dropdown.component.d.ts.map +0 -1
  801. package/testing-base/lib/components/mock.empty-state.component.d.ts +0 -9
  802. package/testing-base/lib/components/mock.empty-state.component.d.ts.map +0 -1
  803. package/testing-base/lib/components/mock.fab-sheet.component.d.ts +0 -8
  804. package/testing-base/lib/components/mock.fab-sheet.component.d.ts.map +0 -1
  805. package/testing-base/lib/components/mock.flag.component.d.ts +0 -8
  806. package/testing-base/lib/components/mock.flag.component.d.ts.map +0 -1
  807. package/testing-base/lib/components/mock.form-field-message.component.d.ts +0 -8
  808. package/testing-base/lib/components/mock.form-field-message.component.d.ts.map +0 -1
  809. package/testing-base/lib/components/mock.form-field.component.d.ts +0 -9
  810. package/testing-base/lib/components/mock.form-field.component.d.ts.map +0 -1
  811. package/testing-base/lib/components/mock.header.component.d.ts +0 -22
  812. package/testing-base/lib/components/mock.header.component.d.ts.map +0 -1
  813. package/testing-base/lib/components/mock.icon.component.d.ts +0 -9
  814. package/testing-base/lib/components/mock.icon.component.d.ts.map +0 -1
  815. package/testing-base/lib/components/mock.input-counter.component.d.ts +0 -8
  816. package/testing-base/lib/components/mock.input-counter.component.d.ts.map +0 -1
  817. package/testing-base/lib/components/mock.input.component.d.ts +0 -16
  818. package/testing-base/lib/components/mock.input.component.d.ts.map +0 -1
  819. package/testing-base/lib/components/mock.item-group.component.d.ts +0 -6
  820. package/testing-base/lib/components/mock.item-group.component.d.ts.map +0 -1
  821. package/testing-base/lib/components/mock.item-sliding.component.d.ts +0 -9
  822. package/testing-base/lib/components/mock.item-sliding.component.d.ts.map +0 -1
  823. package/testing-base/lib/components/mock.item.component.d.ts +0 -13
  824. package/testing-base/lib/components/mock.item.component.d.ts.map +0 -1
  825. package/testing-base/lib/components/mock.kirby-app.component.d.ts +0 -6
  826. package/testing-base/lib/components/mock.kirby-app.component.d.ts.map +0 -1
  827. package/testing-base/lib/components/mock.label.component.d.ts +0 -7
  828. package/testing-base/lib/components/mock.label.component.d.ts.map +0 -1
  829. package/testing-base/lib/components/mock.list-experimental.component.d.ts +0 -6
  830. package/testing-base/lib/components/mock.list-experimental.component.d.ts.map +0 -1
  831. package/testing-base/lib/components/mock.list-header.component.d.ts +0 -6
  832. package/testing-base/lib/components/mock.list-header.component.d.ts.map +0 -1
  833. package/testing-base/lib/components/mock.list-item.component.d.ts +0 -17
  834. package/testing-base/lib/components/mock.list-item.component.d.ts.map +0 -1
  835. package/testing-base/lib/components/mock.list-section-header.component.d.ts +0 -7
  836. package/testing-base/lib/components/mock.list-section-header.component.d.ts.map +0 -1
  837. package/testing-base/lib/components/mock.list.component.d.ts +0 -24
  838. package/testing-base/lib/components/mock.list.component.d.ts.map +0 -1
  839. package/testing-base/lib/components/mock.loading-overlay.component.d.ts +0 -9
  840. package/testing-base/lib/components/mock.loading-overlay.component.d.ts.map +0 -1
  841. package/testing-base/lib/components/mock.menu.component.d.ts +0 -21
  842. package/testing-base/lib/components/mock.menu.component.d.ts.map +0 -1
  843. package/testing-base/lib/components/mock.modal-compact-wrapper.component.d.ts +0 -8
  844. package/testing-base/lib/components/mock.modal-compact-wrapper.component.d.ts.map +0 -1
  845. package/testing-base/lib/components/mock.modal-footer.component.d.ts +0 -8
  846. package/testing-base/lib/components/mock.modal-footer.component.d.ts.map +0 -1
  847. package/testing-base/lib/components/mock.modal-wrapper.component.d.ts +0 -10
  848. package/testing-base/lib/components/mock.modal-wrapper.component.d.ts.map +0 -1
  849. package/testing-base/lib/components/mock.page-footer.component.d.ts +0 -7
  850. package/testing-base/lib/components/mock.page-footer.component.d.ts.map +0 -1
  851. package/testing-base/lib/components/mock.page.component.d.ts +0 -70
  852. package/testing-base/lib/components/mock.page.component.d.ts.map +0 -1
  853. package/testing-base/lib/components/mock.popover.component.d.ts +0 -11
  854. package/testing-base/lib/components/mock.popover.component.d.ts.map +0 -1
  855. package/testing-base/lib/components/mock.progress-circle-ring.component.d.ts +0 -11
  856. package/testing-base/lib/components/mock.progress-circle-ring.component.d.ts.map +0 -1
  857. package/testing-base/lib/components/mock.progress-circle.component.d.ts +0 -9
  858. package/testing-base/lib/components/mock.progress-circle.component.d.ts.map +0 -1
  859. package/testing-base/lib/components/mock.radio-group.component.d.ts +0 -15
  860. package/testing-base/lib/components/mock.radio-group.component.d.ts.map +0 -1
  861. package/testing-base/lib/components/mock.radio.component.d.ts +0 -10
  862. package/testing-base/lib/components/mock.radio.component.d.ts.map +0 -1
  863. package/testing-base/lib/components/mock.range.component.d.ts +0 -22
  864. package/testing-base/lib/components/mock.range.component.d.ts.map +0 -1
  865. package/testing-base/lib/components/mock.reorder-list.component.d.ts +0 -13
  866. package/testing-base/lib/components/mock.reorder-list.component.d.ts.map +0 -1
  867. package/testing-base/lib/components/mock.router-outlet.component.d.ts +0 -7
  868. package/testing-base/lib/components/mock.router-outlet.component.d.ts.map +0 -1
  869. package/testing-base/lib/components/mock.section-header.component.d.ts +0 -6
  870. package/testing-base/lib/components/mock.section-header.component.d.ts.map +0 -1
  871. package/testing-base/lib/components/mock.segmented-control.component.d.ts +0 -16
  872. package/testing-base/lib/components/mock.segmented-control.component.d.ts.map +0 -1
  873. package/testing-base/lib/components/mock.slide-button.component.d.ts +0 -11
  874. package/testing-base/lib/components/mock.slide-button.component.d.ts.map +0 -1
  875. package/testing-base/lib/components/mock.slides.component.d.ts +0 -11
  876. package/testing-base/lib/components/mock.slides.component.d.ts.map +0 -1
  877. package/testing-base/lib/components/mock.spinner.component.d.ts +0 -6
  878. package/testing-base/lib/components/mock.spinner.component.d.ts.map +0 -1
  879. package/testing-base/lib/components/mock.stock-chart.component.d.ts +0 -9
  880. package/testing-base/lib/components/mock.stock-chart.component.d.ts.map +0 -1
  881. package/testing-base/lib/components/mock.tab-button.component.d.ts +0 -9
  882. package/testing-base/lib/components/mock.tab-button.component.d.ts.map +0 -1
  883. package/testing-base/lib/components/mock.tab-navigation-item.component.d.ts +0 -7
  884. package/testing-base/lib/components/mock.tab-navigation-item.component.d.ts.map +0 -1
  885. package/testing-base/lib/components/mock.tab-navigation.component.d.ts +0 -8
  886. package/testing-base/lib/components/mock.tab-navigation.component.d.ts.map +0 -1
  887. package/testing-base/lib/components/mock.tabs.component.d.ts +0 -6
  888. package/testing-base/lib/components/mock.tabs.component.d.ts.map +0 -1
  889. package/testing-base/lib/components/mock.textarea.component.d.ts +0 -12
  890. package/testing-base/lib/components/mock.textarea.component.d.ts.map +0 -1
  891. package/testing-base/lib/components/mock.toggle-button.component.d.ts +0 -9
  892. package/testing-base/lib/components/mock.toggle-button.component.d.ts.map +0 -1
  893. package/testing-base/lib/components/mock.toggle.component.d.ts +0 -10
  894. package/testing-base/lib/components/mock.toggle.component.d.ts.map +0 -1
  895. package/testing-base/lib/directives/index.d.ts +0 -17
  896. package/testing-base/lib/directives/index.d.ts.map +0 -1
  897. package/testing-base/lib/directives/mock.accordion.directive.d.ts +0 -6
  898. package/testing-base/lib/directives/mock.accordion.directive.d.ts.map +0 -1
  899. package/testing-base/lib/directives/mock.affix.directive.d.ts +0 -7
  900. package/testing-base/lib/directives/mock.affix.directive.d.ts.map +0 -1
  901. package/testing-base/lib/directives/mock.card-as-button.directive.d.ts +0 -6
  902. package/testing-base/lib/directives/mock.card-as-button.directive.d.ts.map +0 -1
  903. package/testing-base/lib/directives/mock.component-loader.directive.d.ts +0 -9
  904. package/testing-base/lib/directives/mock.component-loader.directive.d.ts.map +0 -1
  905. package/testing-base/lib/directives/mock.date-input.directive.d.ts +0 -6
  906. package/testing-base/lib/directives/mock.date-input.directive.d.ts.map +0 -1
  907. package/testing-base/lib/directives/mock.decimal-mask.directive.d.ts +0 -13
  908. package/testing-base/lib/directives/mock.decimal-mask.directive.d.ts.map +0 -1
  909. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts +0 -8
  910. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts.map +0 -1
  911. package/testing-base/lib/directives/mock.floating.directive.d.ts +0 -27
  912. package/testing-base/lib/directives/mock.floating.directive.d.ts.map +0 -1
  913. package/testing-base/lib/directives/mock.infinite-scroll.directive.d.ts +0 -9
  914. package/testing-base/lib/directives/mock.infinite-scroll.directive.d.ts.map +0 -1
  915. package/testing-base/lib/directives/mock.key-handler.directive.d.ts +0 -6
  916. package/testing-base/lib/directives/mock.key-handler.directive.d.ts.map +0 -1
  917. package/testing-base/lib/directives/mock.list-item-color.directive.d.ts +0 -9
  918. package/testing-base/lib/directives/mock.list-item-color.directive.d.ts.map +0 -1
  919. package/testing-base/lib/directives/mock.list.directive.d.ts +0 -18
  920. package/testing-base/lib/directives/mock.list.directive.d.ts.map +0 -1
  921. package/testing-base/lib/directives/mock.modal-router-link.directive.d.ts +0 -9
  922. package/testing-base/lib/directives/mock.modal-router-link.directive.d.ts.map +0 -1
  923. package/testing-base/lib/directives/mock.portal.directive.d.ts +0 -7
  924. package/testing-base/lib/directives/mock.portal.directive.d.ts.map +0 -1
  925. package/testing-base/lib/directives/mock.slide.directive.d.ts +0 -6
  926. package/testing-base/lib/directives/mock.slide.directive.d.ts.map +0 -1
  927. package/testing-base/lib/directives/mock.theme-color.directive.d.ts +0 -8
  928. package/testing-base/lib/directives/mock.theme-color.directive.d.ts.map +0 -1
  929. package/testing-base/lib/index.d.ts +0 -4
  930. package/testing-base/lib/index.d.ts.map +0 -1
  931. package/testing-base/lib/kirby-testing-base.module.d.ts +0 -86
  932. package/testing-base/lib/kirby-testing-base.module.d.ts.map +0 -1
  933. package/testing-base/lib/mock-components.d.ts +0 -3
  934. package/testing-base/lib/mock-components.d.ts.map +0 -1
  935. package/testing-base/lib/mock-directives.d.ts +0 -3
  936. package/testing-base/lib/mock-directives.d.ts.map +0 -1
  937. package/testing-base/public_api.d.ts +0 -2
  938. package/testing-base/public_api.d.ts.map +0 -1
  939. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.d.ts.map +0 -1
  940. package/testing-jasmine/lib/kirby-testing.module.d.ts +0 -8
  941. package/testing-jasmine/lib/kirby-testing.module.d.ts.map +0 -1
  942. package/testing-jasmine/lib/mock-providers.d.ts +0 -33
  943. package/testing-jasmine/lib/mock-providers.d.ts.map +0 -1
  944. package/testing-jasmine/public_api.d.ts +0 -2
  945. package/testing-jasmine/public_api.d.ts.map +0 -1
  946. package/testing-jest/kirbydesign-designsystem-testing-jest.d.ts.map +0 -1
  947. package/testing-jest/lib/kirby-testing.module.d.ts +0 -8
  948. package/testing-jest/lib/kirby-testing.module.d.ts.map +0 -1
  949. package/testing-jest/lib/mock-providers.d.ts +0 -68
  950. package/testing-jest/lib/mock-providers.d.ts.map +0 -1
  951. package/testing-jest/public_api.d.ts +0 -2
  952. package/testing-jest/public_api.d.ts.map +0 -1
  953. package/toast/config/toast-config.d.ts +0 -8
  954. package/toast/config/toast-config.d.ts.map +0 -1
  955. package/toast/kirbydesign-designsystem-toast.d.ts.map +0 -1
  956. package/toast/public_api.d.ts +0 -4
  957. package/toast/public_api.d.ts.map +0 -1
  958. package/toast/services/indexs.d.ts +0 -3
  959. package/toast/services/indexs.d.ts.map +0 -1
  960. package/toast/services/toast.controller.d.ts +0 -11
  961. package/toast/services/toast.controller.d.ts.map +0 -1
  962. package/toast/services/toast.helper.d.ts +0 -15
  963. package/toast/services/toast.helper.d.ts.map +0 -1
  964. package/toggle/kirbydesign-designsystem-toggle.d.ts.map +0 -1
  965. package/toggle/public_api.d.ts +0 -2
  966. package/toggle/public_api.d.ts.map +0 -1
  967. package/toggle/toggle.component.d.ts +0 -61
  968. package/toggle/toggle.component.d.ts.map +0 -1
  969. package/toggle-button/kirbydesign-designsystem-toggle-button.d.ts.map +0 -1
  970. package/toggle-button/public_api.d.ts +0 -3
  971. package/toggle-button/public_api.d.ts.map +0 -1
  972. package/toggle-button/toggle-button.component.d.ts +0 -48
  973. package/toggle-button/toggle-button.component.d.ts.map +0 -1
  974. package/toggle-button/toggle-button.module.d.ts +0 -9
  975. package/toggle-button/toggle-button.module.d.ts.map +0 -1
  976. package/types/event-listener-dispose-fn.d.ts +0 -2
  977. package/types/event-listener-dispose-fn.d.ts.map +0 -1
  978. package/types/form-field-control.d.ts +0 -6
  979. package/types/form-field-control.d.ts.map +0 -1
  980. package/types/kirbydesign-designsystem-types.d.ts.map +0 -1
  981. package/types/public_api.d.ts +0 -5
  982. package/types/public_api.d.ts.map +0 -1
  983. package/types/unobserve-fn.d.ts +0 -2
  984. package/types/unobserve-fn.d.ts.map +0 -1
  985. package/types/window-ref.d.ts +0 -7
  986. package/types/window-ref.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-dropdown.mjs","sources":["../../dropdown/src/dropdown.types.ts","../../dropdown/src/keyboard-handler.service.ts","../../dropdown/src/dropdown.component.ts","../../dropdown/src/dropdown.component.html","../../dropdown/src/dropdown.module.ts","../../dropdown/src/kirbydesign-designsystem-dropdown.ts"],"sourcesContent":["export enum OpenState {\n closed,\n opening,\n open,\n}\n\nexport enum VerticalDirection {\n up,\n down,\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeyboardHandlerService {\n handle(event: KeyboardEvent, selectedIndex: number, maxIndex: number, cyclicIndex = false) {\n let newIndex = -1;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n if (selectedIndex === 0 && cyclicIndex) {\n newIndex = maxIndex;\n } else {\n // Select previous item:\n newIndex = selectedIndex - 1;\n }\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (selectedIndex === undefined || (selectedIndex === maxIndex && cyclicIndex)) {\n // None selected, select first item:\n newIndex = 0;\n } else if (selectedIndex < maxIndex) {\n // Select next item:\n newIndex = selectedIndex + 1;\n }\n break;\n case 'Home':\n // Select first item:\n newIndex = 0;\n break;\n case 'End':\n // Select last item:\n newIndex = maxIndex;\n break;\n default:\n break;\n }\n return newIndex;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { ItemComponent } from '@kirbydesign/designsystem/item';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { HorizontalDirection, PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { EventListenerDisposeFn } from '@kirbydesign/designsystem/types';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\n\nimport { OpenState, VerticalDirection } from './dropdown.types';\nimport { KeyboardHandlerService } from './keyboard-handler.service';\n\n@Component({\n selector: 'kirby-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class DropdownComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n static readonly OPEN_DELAY_IN_MS = 100;\n private state = OpenState.closed;\n private horizontalDirection: HorizontalDirection | `${HorizontalDirection}` =\n HorizontalDirection.right;\n private verticalDirection: VerticalDirection | `${VerticalDirection}` = VerticalDirection.down;\n\n private _items: string[] | any[] = [];\n get items(): string[] | any[] {\n return this._items;\n }\n\n @Input() set items(value: string[] | any[]) {\n this._items = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (value !== undefined && this._selectedIndex != value) {\n this._selectedIndex = value;\n this.focusedIndex = this._selectedIndex;\n this._value = this.items[this.selectedIndex] || null;\n }\n }\n\n // _focusedIndex keeps track of which element has focus and will be selected\n // if it is activated (by pressing ENTER or SPACE key)\n private _focusedIndex: number = -1;\n get focusedIndex(): number {\n return this._focusedIndex;\n }\n\n @Input() set focusedIndex(value: number) {\n if (this._focusedIndex !== value) {\n this._focusedIndex = value;\n this.scrollItemIntoView(this._focusedIndex);\n }\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n placeholder = 'Please select:';\n\n @Input() set popout(direction: HorizontalDirection | `${HorizontalDirection}`) {\n this.horizontalDirection = direction || HorizontalDirection.right;\n }\n\n get popout() {\n return this.horizontalDirection;\n }\n\n @Input()\n attentionLevel: '1' | '2' | '3' = '3';\n\n @Input()\n expand?: 'block';\n\n @Input()\n disabled = false;\n\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @Input()\n size: 'sm' | 'md' = 'md';\n\n @Input()\n tabindex = 0;\n\n @HostBinding('class.with-popover')\n @Input()\n usePopover = false;\n\n @HostBinding('attr.tabindex')\n get _tabindex() {\n return this.disabled ? -1 : this.tabindex;\n }\n\n // Prevent Ionic blur on scroll\n @HostBinding('attr.no-blur')\n get _noBlurOnScroll() {\n return true;\n }\n\n /**\n * Emitted when an item is selected (tap on mobile, click/keypress on web)\n */\n @Output() change: EventEmitter<string | any> = new EventEmitter<string | any>();\n\n private _value: string | any = null;\n get value(): string | any {\n return this._value;\n }\n\n get selectedText(): string {\n return this.getTextFromItem(this.value);\n }\n\n @HostBinding('class.expand')\n get _isBlockLevel() {\n return this.expand === 'block';\n }\n\n @HostBinding('attr.role')\n _role = 'listbox';\n\n @HostBinding('class.is-opening')\n get _isOpening(): boolean {\n return this.state === OpenState.opening;\n }\n\n @HostBinding('class.is-open')\n get isOpen(): boolean {\n return this.state === OpenState.open;\n }\n\n @HostBinding('class.popout-left')\n get _popoutLeft() {\n return this.horizontalDirection === HorizontalDirection.left;\n }\n\n @HostBinding('class.popout-up')\n get _popoutUp() {\n return this.verticalDirection === VerticalDirection.up;\n }\n\n /* The 'clicked' class is applied through Hostbinding to prevent the dropdown from getting a focus ring on click.\n There is a bug that causes the dropdown to get a focus ring on click, if it is the first element that is interacted with\n after the page is loaded. If the user interacts with any other element before, then the dropdown won't get a focus ring.\n See issue: https://github.com/kirbydesign/designsystem/issues/2477.\n\n This solution can potentially be refactored, when popover is not experimental anymore. Then it could be possible \n to close the dropdown when the popover backdrop is clicked, instead of relying on the blur event, which is utilized\n by this line below: this.elementRef.nativeElement.focus(). Right now this forces the blur event to be triggered, when\n clicking outside of the dropdown.\n */\n @HostBinding('class.clicked')\n clicked = false;\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ContentChildren(ListItemTemplateDirective, { read: ElementRef })\n slottedItems: QueryList<ElementRef<HTMLElement>>;\n @ViewChild(CardComponent, { read: ElementRef })\n cardElement: ElementRef<HTMLElement>;\n @ViewChild(PopoverComponent)\n popover?: PopoverComponent;\n @ViewChild(ButtonComponent, { static: true, read: ElementRef })\n buttonElement: ElementRef<HTMLElement>;\n @ViewChildren(ItemComponent, { read: ElementRef })\n kirbyItemsDefault: QueryList<ElementRef<HTMLElement>>;\n\n _kirbyItemsSlotted: QueryList<ElementRef<HTMLElement>>;\n @ContentChildren(ItemComponent, { read: ElementRef })\n set kirbyItemsSlotted(kirbyItems: QueryList<ElementRef<HTMLElement>>) {\n const hasSlottedItems = this.itemClickUnlisten?.length > 0;\n if (hasSlottedItems) {\n this.unlistenAllSlottedItems();\n }\n\n // Setup a click listener for each new slotted items\n kirbyItems.forEach((kirbyItem, index) => {\n this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');\n const unlisten: EventListenerDisposeFn = this.renderer.listen(\n kirbyItem.nativeElement,\n 'click',\n () => {\n this.onItemSelect(index);\n }\n );\n\n this.itemClickUnlisten.push(unlisten);\n });\n\n this._kirbyItemsSlotted = kirbyItems;\n }\n\n get kirbyItemsSlotted(): QueryList<ElementRef<HTMLElement>> {\n return this._kirbyItemsSlotted;\n }\n\n private itemClickUnlisten: EventListenerDisposeFn[] = [];\n private intersectionObserverRef: IntersectionObserver;\n private showDropdownTimeoutId: ReturnType<typeof setTimeout>;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n private keyboardHandlerService: KeyboardHandlerService,\n private resizeObserverService: ResizeObserverService\n ) {}\n\n onToggle(event: MouseEvent) {\n event.stopPropagation();\n\n this.clicked = true;\n\n if (!this.isOpen) {\n this.elementRef.nativeElement.focus();\n }\n this.toggle();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n this.isOpen ? this.close() : this.open();\n }\n\n onButtonMouseEvent(event: Event) {\n // Prevent button focus;\n event.preventDefault();\n }\n\n /* Utility that makes it easier to set styles on card element\n when using popover*/\n private setPopoverCardStyle(style: string, value: string) {\n if (!this.usePopover) return;\n\n this.renderer.setStyle(\n this.cardElement.nativeElement,\n style,\n value,\n RendererStyleFlags2.DashCase\n );\n }\n\n ngAfterViewInit() {\n if (this.usePopover && this.expand === 'block') {\n const { width: initialWidth } = this.elementRef.nativeElement.getBoundingClientRect();\n this.setPopoverCardStyle('max-width', 'initial');\n this.setPopoverCardStyle('min-width', 'initial');\n // Ensure initial width is set even if the resize observer callback also fires initially:\n this.setPopoverCardStyle('--kirby-card-width', `${initialWidth}px`);\n\n this.resizeObserverService.observe(this.elementRef, (entry) => {\n const newWidth = entry.contentRect.width;\n if (newWidth > 0) {\n this.setPopoverCardStyle('--kirby-card-width', `${newWidth}px`);\n }\n });\n }\n this.initializeAlignment();\n }\n\n private initializeAlignment() {\n if (this.usePopover) return;\n if (!this.intersectionObserverRef) {\n // Get the design token size of the button. In the button stylesheet a medium button height is utils.size(xl)\n // and a small button height is utils.size(\"l\")\n const designTokenSizeHeight = this.size === 'md' ? 'xl' : 'l';\n\n // Setting the rootMargin equal to the height of the button\n // allows the Intersection Observer Callback to be called\n // even if the dropdown button is intersecting with the viewport\n const options = {\n rootMargin: DesignTokenHelper.size(designTokenSizeHeight),\n };\n const callback: IntersectionObserverCallback = (entries) => {\n // Only apply alignment when opening:\n if (this.state !== OpenState.opening) {\n return;\n }\n\n // Cancel any pending timer to show dropdown:\n clearTimeout(this.showDropdownTimeoutId);\n const entry = entries[0];\n const isVisible = entry.boundingClientRect.width > 0;\n if (isVisible && entry.intersectionRatio < 1) {\n this.setHorizontalDirection(entry);\n this.setVerticalDirection(entry);\n }\n this.showDropdown();\n this.changeDetectorRef.detectChanges();\n };\n this.intersectionObserverRef = new IntersectionObserver(callback, options);\n this.intersectionObserverRef.observe(this.cardElement.nativeElement);\n }\n }\n\n private setHorizontalDirection(entry: IntersectionObserverEntry) {\n // If popout direction is set to right, and the entry is cut off to the right by ${entry.boundingClientRect.right - entry.intersectionRect.right}px\n // it is set to popout left instead, and vice versa for popout direction left\n if (this.horizontalDirection === HorizontalDirection.right) {\n if (entry.boundingClientRect.right > entry.rootBounds.right) {\n this.horizontalDirection = HorizontalDirection.left;\n }\n } else {\n if (entry.boundingClientRect.left < entry.rootBounds.left) {\n this.horizontalDirection = HorizontalDirection.right;\n }\n }\n }\n\n private setVerticalDirection(entry: IntersectionObserverEntry) {\n if (entry.boundingClientRect.top < 0) {\n // entry is cut off at the top by ${entry.boundingClientRect.top}px\n // open downwards:\n this.verticalDirection = VerticalDirection.down;\n }\n if (entry.boundingClientRect.bottom > entry.rootBounds.bottom) {\n // entry is cut off at the bottom by ${entry.boundingClientRect.bottom - entry.intersectionRect.bottom}px\n const containerOffsetTop = this.elementRef.nativeElement.getBoundingClientRect().top;\n const SPACING = 5; //TODO: Get from SCSS\n // Check if the card can fit on top of button:\n if (containerOffsetTop > entry.target.clientHeight + SPACING) {\n // open upwards:\n this.verticalDirection = VerticalDirection.up;\n }\n }\n }\n\n open() {\n if (this.disabled) {\n return;\n }\n if (!this.isOpen) {\n this.state = OpenState.opening;\n // ensures that the dropdown is opened in case the IntersectionObserverCallback isn't invoked\n this.showDropdownTimeoutId = setTimeout(\n () => this.showDropdown(),\n DropdownComponent.OPEN_DELAY_IN_MS\n );\n\n // Move focus to selected item (if any)\n this.focusedIndex = this.selectedIndex;\n }\n }\n\n private showDropdown() {\n if (this.state === OpenState.opening) {\n this.state = OpenState.open;\n this.popover?.show();\n this.scrollItemIntoView(this.selectedIndex);\n this.changeDetectorRef.markForCheck();\n }\n }\n\n close() {\n if (this.disabled) {\n return;\n }\n if (this.isOpen) {\n this.state = OpenState.closed;\n // Reset vertical direction to default\n this.verticalDirection = VerticalDirection.down;\n this.popover?.hide();\n }\n }\n\n onItemSelect(index: number) {\n this.selectItem(index);\n this.close();\n }\n\n private _onChange: (value: any) => void = () => {};\n private _onTouched = () => {};\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this._selectItemByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private selectItem(index: number) {\n if (index != this.selectedIndex) {\n this.selectedIndex = index;\n this.focusedIndex = index;\n this.change.emit(this.value);\n this._onChange(this.value);\n }\n }\n\n private _selectItemByValue(value: string | any) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n getTextFromItem(item: string | any) {\n if (!item) {\n return null;\n }\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n scrollItemIntoView(index: number) {\n const kirbyItems =\n this.kirbyItemsSlotted && this.kirbyItemsSlotted.length\n ? this.kirbyItemsSlotted\n : this.kirbyItemsDefault;\n if (kirbyItems && kirbyItems.length) {\n const selectedKirbyItem = kirbyItems.toArray()[index];\n if (selectedKirbyItem && selectedKirbyItem.nativeElement) {\n const itemElement = selectedKirbyItem.nativeElement;\n itemElement.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n _onTab(event: KeyboardEvent) {\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n\n if (this.clicked) {\n // Remove the 'clicked' class (Hostbinding) if the user has previously opened the dropdown by clicking,\n // since the class prevents the focus ring from showing,\n // which is expected to happen, when using the tab key\n this.clicked = false;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n @HostListener('touchstart', ['$event'])\n _onTouchStart(event: TouchEvent) {\n if (this.isOpen) {\n event.stopPropagation();\n }\n }\n\n @HostListener('focus')\n _onFocus() {\n if (this.disabled) {\n this.elementRef.nativeElement.blur();\n }\n }\n\n _onPopoverWillHide() {\n this.state = OpenState.closed;\n this.elementRef.nativeElement.focus();\n }\n\n @HostListener('keydown.enter')\n @HostListener('keydown.escape')\n _onEnterOrEscape() {\n this.close();\n this._onTouched();\n }\n\n _onPopoverClick() {\n this.close();\n }\n\n @HostListener('blur', ['$event'])\n _onBlur() {\n if (this.usePopover) return;\n this.close();\n this._onTouched();\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n _onEnterOrSpace(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isOpen) {\n this.selectItem(this.focusedIndex);\n }\n\n this.toggle();\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n @HostListener('keydown.arrowdown', ['$event'])\n @HostListener('keydown.arrowleft', ['$event'])\n @HostListener('keydown.arrowright', ['$event'])\n _onArrowKeys(event: KeyboardEvent) {\n if (this.disabled) return false;\n\n // Mirror default HTML5 select behaviour - prevent left/right arrows when open:\n if (this.isOpen && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n return false;\n }\n\n if (!this.isOpen) {\n // Avoid page scroll\n event.preventDefault();\n this.open();\n\n // If no selected item then focus first or last item\n if (this.selectedIndex < 0) {\n switch (event.key) {\n case 'ArrowUp':\n this.focusedIndex = this.items.length - 1;\n break;\n case 'ArrowDown':\n this.focusedIndex = 0;\n break;\n default:\n break;\n }\n }\n\n return false;\n }\n\n const newFocusedIndex = this.keyboardHandlerService.handle(\n event,\n this.focusedIndex,\n this.items.length - 1\n );\n\n if (newFocusedIndex > -1) {\n this.focusedIndex = newFocusedIndex;\n }\n\n return false;\n }\n\n @HostListener('keydown.home', ['$event'])\n @HostListener('keydown.end', ['$event'])\n _onHomeEndKeys(event: KeyboardEvent) {\n if (this.disabled) return;\n if (!this.isOpen) return;\n\n const newFocusedIndex = this.keyboardHandlerService.handle(\n event,\n this.focusedIndex,\n this.items.length - 1\n );\n if (newFocusedIndex > -1) {\n this.focusedIndex = newFocusedIndex;\n }\n return false;\n }\n\n private unlistenAllSlottedItems() {\n let unlistenItem: () => void;\n while ((unlistenItem = this.itemClickUnlisten.pop()) !== undefined) {\n unlistenItem();\n }\n }\n\n ngOnDestroy(): void {\n this.unlistenAllSlottedItems();\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.intersectionObserverRef) {\n this.intersectionObserverRef.disconnect();\n }\n }\n}\n","<button\n kirby-button\n [size]=\"size\"\n [attentionLevel]=\"attentionLevel\"\n tabindex=\"-1\"\n (click)=\"onToggle($event)\"\n (mousedown)=\"onButtonMouseEvent($event)\"\n [disabled]=\"disabled\"\n type=\"button\"\n>\n <span class=\"text\">{{ selectedText || placeholder }}</span>\n <kirby-icon [name]=\"isOpen ? 'arrow-up' : 'arrow-down'\"></kirby-icon>\n</button>\n\n<ng-container *ngTemplateOutlet=\"usePopover ? popoverTemplate : itemWrapperTemplate\"></ng-container>\n\n<ng-template #popoverTemplate>\n <kirby-popover\n [target]=\"buttonElement\"\n [popout]=\"popout\"\n (click)=\"_onPopoverClick()\"\n (willHide)=\"_onPopoverWillHide()\"\n >\n <ng-container *ngTemplateOutlet=\"itemWrapperTemplate\"></ng-container>\n </kirby-popover>\n</ng-template>\n\n<ng-template #itemWrapperTemplate>\n <kirby-card>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: {\n $implicit: item,\n selected: i === selectedIndex,\n focused: i === focusedIndex,\n index: i,\n }\n \"\n ></ng-container>\n </ng-container>\n </kirby-card>\n</ng-template>\n\n<ng-template\n #defaultItemTemplate\n let-item\n let-selected=\"selected\"\n let-index=\"index\"\n let-focused=\"focused\"\n>\n <kirby-item\n [selectable]=\"true\"\n [selected]=\"selected\"\n (click)=\"onItemSelect(index)\"\n [class.focused]=\"focused\"\n role=\"option\"\n >\n <!-- Tabindex fixes issue with popover dropdown not working in safari -->\n <p class=\"kirby-item-title\" tabindex=\"0\">{{ getTextFromItem(item) }}</p>\n <kirby-icon *ngIf=\"selected\" name=\"checkmark-selected\" slot=\"end\"></kirby-icon>\n </kirby-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { FormFieldModule } from '@kirbydesign/designsystem/form-field';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\n\nimport { ListItemTemplateDirective, ListModule } from '@kirbydesign/designsystem/list';\nimport { DropdownComponent } from './dropdown.component';\nimport { KeyboardHandlerService } from './keyboard-handler.service';\n\nconst declarations = [DropdownComponent];\n\n@NgModule({\n imports: [\n CardModule,\n IconModule,\n ItemModule,\n FormFieldModule,\n PopoverComponent,\n ButtonComponent,\n CommonModule,\n ListModule,\n ],\n declarations: [...declarations],\n exports: [...declarations, ListItemTemplateDirective],\n providers: [KeyboardHandlerService],\n})\nexport class DropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.KeyboardHandlerService"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-dropdown.mjs","sources":["../tmp-esm2022/dropdown/dropdown.types.js","../tmp-esm2022/dropdown/keyboard-handler.service.js","../tmp-esm2022/dropdown/dropdown.component.js","../tmp-esm2022/dropdown/dropdown.module.js","../tmp-esm2022/dropdown/kirbydesign-designsystem-dropdown.js"],"sourcesContent":["export var OpenState;\n(function (OpenState) {\n OpenState[OpenState[\"closed\"] = 0] = \"closed\";\n OpenState[OpenState[\"opening\"] = 1] = \"opening\";\n OpenState[OpenState[\"open\"] = 2] = \"open\";\n})(OpenState || (OpenState = {}));\nexport var VerticalDirection;\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"up\"] = 0] = \"up\";\n VerticalDirection[VerticalDirection[\"down\"] = 1] = \"down\";\n})(VerticalDirection || (VerticalDirection = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kcm9wZG93bi9zcmMvZHJvcGRvd24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQiw2Q0FBTSxDQUFBO0lBQ04sK0NBQU8sQ0FBQTtJQUNQLHlDQUFJLENBQUE7QUFDTixDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLHFEQUFFLENBQUE7SUFDRix5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBPcGVuU3RhdGUge1xuICBjbG9zZWQsXG4gIG9wZW5pbmcsXG4gIG9wZW4sXG59XG5cbmV4cG9ydCBlbnVtIFZlcnRpY2FsRGlyZWN0aW9uIHtcbiAgdXAsXG4gIGRvd24sXG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class KeyboardHandlerService {\n handle(event, selectedIndex, maxIndex, cyclicIndex = false) {\n let newIndex = -1;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n if (selectedIndex === 0 && cyclicIndex) {\n newIndex = maxIndex;\n }\n else {\n // Select previous item:\n newIndex = selectedIndex - 1;\n }\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (selectedIndex === undefined || (selectedIndex === maxIndex && cyclicIndex)) {\n // None selected, select first item:\n newIndex = 0;\n }\n else if (selectedIndex < maxIndex) {\n // Select next item:\n newIndex = selectedIndex + 1;\n }\n break;\n case 'Home':\n // Select first item:\n newIndex = 0;\n break;\n case 'End':\n // Select last item:\n newIndex = maxIndex;\n break;\n default:\n break;\n }\n return newIndex;\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: KeyboardHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: KeyboardHandlerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: KeyboardHandlerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZHJvcGRvd24vc3JjL2tleWJvYXJkLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxLQUFvQixFQUFFLGFBQXFCLEVBQUUsUUFBZ0IsRUFBRSxXQUFXLEdBQUcsS0FBSztRQUN2RixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQixRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssV0FBVztnQkFDZCxJQUFJLGFBQWEsS0FBSyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsR0FBRyxRQUFRLENBQUM7Z0JBQ3RCLENBQUM7cUJBQU0sQ0FBQztvQkFDTix3QkFBd0I7b0JBQ3hCLFFBQVEsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUNELE1BQU07WUFDUixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUMvRSxvQ0FBb0M7b0JBQ3BDLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztxQkFBTSxJQUFJLGFBQWEsR0FBRyxRQUFRLEVBQUUsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixRQUFRLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULHFCQUFxQjtnQkFDckIsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLG9CQUFvQjtnQkFDcEIsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDcEIsTUFBTTtZQUNSO2dCQUNFLE1BQU07UUFDVixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztpSUFuQ1Usc0JBQXNCO3FJQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEtleWJvYXJkSGFuZGxlclNlcnZpY2Uge1xuICBoYW5kbGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHNlbGVjdGVkSW5kZXg6IG51bWJlciwgbWF4SW5kZXg6IG51bWJlciwgY3ljbGljSW5kZXggPSBmYWxzZSkge1xuICAgIGxldCBuZXdJbmRleCA9IC0xO1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID09PSAwICYmIGN5Y2xpY0luZGV4KSB7XG4gICAgICAgICAgbmV3SW5kZXggPSBtYXhJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTZWxlY3QgcHJldmlvdXMgaXRlbTpcbiAgICAgICAgICBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggLSAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8IChzZWxlY3RlZEluZGV4ID09PSBtYXhJbmRleCAmJiBjeWNsaWNJbmRleCkpIHtcbiAgICAgICAgICAvLyBOb25lIHNlbGVjdGVkLCBzZWxlY3QgZmlyc3QgaXRlbTpcbiAgICAgICAgICBuZXdJbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRJbmRleCA8IG1heEluZGV4KSB7XG4gICAgICAgICAgLy8gU2VsZWN0IG5leHQgaXRlbTpcbiAgICAgICAgICBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgIC8vIFNlbGVjdCBmaXJzdCBpdGVtOlxuICAgICAgICBuZXdJbmRleCA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgLy8gU2VsZWN0IGxhc3QgaXRlbTpcbiAgICAgICAgbmV3SW5kZXggPSBtYXhJbmRleDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIG5ld0luZGV4O1xuICB9XG59XG4iXX0=","import { Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, RendererStyleFlags2, TemplateRef, ViewChild, ViewChildren, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { DesignTokenHelper, UniqueIdGenerator } from '@kirbydesign/designsystem/helpers';\nimport { ItemComponent } from '@kirbydesign/designsystem/item';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { HorizontalDirection, PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { OpenState, VerticalDirection } from './dropdown.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./keyboard-handler.service\";\nimport * as i2 from \"@kirbydesign/designsystem/shared\";\nimport * as i3 from \"@kirbydesign/designsystem/card\";\nimport * as i4 from \"@kirbydesign/designsystem/icon\";\nimport * as i5 from \"@kirbydesign/designsystem/item\";\nimport * as i6 from \"@kirbydesign/designsystem/popover\";\nimport * as i7 from \"@kirbydesign/designsystem/button\";\nimport * as i8 from \"@angular/common\";\nexport class DropdownComponent {\n static { this.OPEN_DELAY_IN_MS = 100; }\n get items() {\n return this._items;\n }\n set items(value) {\n this._items = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n if (value !== undefined && this._selectedIndex != value) {\n this._selectedIndex = value;\n this.focusedIndex = this._selectedIndex;\n this._value = this.items[this.selectedIndex] || null;\n }\n }\n get focusedIndex() {\n return this._focusedIndex;\n }\n set focusedIndex(value) {\n if (this._focusedIndex !== value) {\n this._focusedIndex = value;\n this.scrollItemIntoView(this._focusedIndex);\n }\n }\n set popout(direction) {\n this.horizontalDirection = direction || HorizontalDirection.right;\n }\n get popout() {\n return this.horizontalDirection;\n }\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n get _tabindex() {\n return this.disabled ? -1 : this.tabindex;\n }\n // Prevent Ionic blur on scroll\n get _noBlurOnScroll() {\n return true;\n }\n get value() {\n return this._value;\n }\n get selectedText() {\n return this.getTextFromItem(this.value);\n }\n get _isBlockLevel() {\n return this.expand === 'block';\n }\n get _isOpening() {\n return this.state === OpenState.opening;\n }\n get isOpen() {\n return this.state === OpenState.open;\n }\n get _popoutLeft() {\n return this.horizontalDirection === HorizontalDirection.left;\n }\n get _popoutUp() {\n return this.verticalDirection === VerticalDirection.up;\n }\n forwardAriaLabelToDropdownButton() {\n forwardAttributes(this.elementRef.nativeElement, this._attributesToForward, this.renderer, this.buttonElement.nativeElement);\n }\n set kirbyItemsSlotted(kirbyItems) {\n const hasSlottedItems = this.itemClickUnlisten?.length > 0;\n if (hasSlottedItems) {\n this.unlistenAllSlottedItems();\n }\n // Setup a click listener for each new slotted items\n kirbyItems.forEach((kirbyItem, index) => {\n this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');\n const unlisten = this.renderer.listen(kirbyItem.nativeElement, 'click', () => {\n this.onItemSelect(index);\n });\n this.itemClickUnlisten.push(unlisten);\n });\n this._kirbyItemsSlotted = kirbyItems;\n }\n get kirbyItemsSlotted() {\n return this._kirbyItemsSlotted;\n }\n constructor(renderer, elementRef, changeDetectorRef, keyboardHandlerService, resizeObserverService) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.changeDetectorRef = changeDetectorRef;\n this.keyboardHandlerService = keyboardHandlerService;\n this.resizeObserverService = resizeObserverService;\n this.state = OpenState.closed;\n this.horizontalDirection = HorizontalDirection.right;\n this.verticalDirection = VerticalDirection.down;\n this._attributesToForward = ['aria-label', 'aria-labelledby'];\n this._listboxId = UniqueIdGenerator.scopedTo('kirby-dropdown').next();\n this._comboboxId = UniqueIdGenerator.scopedTo('kirby-button').next();\n this._items = [];\n this._selectedIndex = -1;\n // _focusedIndex keeps track of which element has focus and will be selected\n // if it is activated (by pressing ENTER or SPACE key)\n this._focusedIndex = -1;\n this.itemTextProperty = 'text';\n this.placeholder = 'Please select:';\n this.attentionLevel = '3';\n this.disabled = false;\n this.size = 'md';\n this.tabindex = 0;\n this.usePopover = false;\n /**\n * Emitted when an item is selected (tap on mobile, click/keypress on web)\n */\n this.change = new EventEmitter();\n this._value = null;\n /* The 'clicked' class is applied through Hostbinding to prevent the dropdown from getting a focus ring on click.\n There is a bug that causes the dropdown to get a focus ring on click, if it is the first element that is interacted with\n after the page is loaded. If the user interacts with any other element before, then the dropdown won't get a focus ring.\n See issue: https://github.com/kirbydesign/designsystem/issues/2477.\n \n This solution can potentially be refactored, when popover is not experimental anymore. Then it could be possible\n to close the dropdown when the popover backdrop is clicked, instead of relying on the blur event, which is utilized\n by this line below: this.elementRef.nativeElement.focus(). Right now this forces the blur event to be triggered, when\n clicking outside of the dropdown.\n */\n this.clicked = false;\n this.itemClickUnlisten = [];\n this._onChange = () => { };\n this._onTouched = () => { };\n }\n onToggle(event) {\n event.stopPropagation();\n this.clicked = true;\n if (!this.isOpen) {\n this.elementRef.nativeElement.focus();\n }\n this.toggle();\n }\n toggle() {\n if (this.disabled) {\n return;\n }\n this.isOpen ? this.close() : this.open();\n }\n onButtonMouseEvent(event) {\n // Prevent button focus;\n event.preventDefault();\n }\n /* Utility that makes it easier to set styles on card element\n when using popover*/\n setPopoverCardStyle(style, value) {\n if (!this.usePopover)\n return;\n this.renderer.setStyle(this.cardElement.nativeElement, style, value, RendererStyleFlags2.DashCase);\n }\n ngAfterViewInit() {\n if (this.usePopover && this.expand === 'block') {\n const { width: initialWidth } = this.elementRef.nativeElement.getBoundingClientRect();\n this.setPopoverCardStyle('max-width', 'initial');\n this.setPopoverCardStyle('min-width', 'initial');\n // Ensure initial width is set even if the resize observer callback also fires initially:\n this.setPopoverCardStyle('--kirby-card-width', `${initialWidth}px`);\n this.resizeObserverService.observe(this.elementRef, (entry) => {\n const newWidth = entry.contentRect.width;\n if (newWidth > 0) {\n this.setPopoverCardStyle('--kirby-card-width', `${newWidth}px`);\n }\n });\n }\n // Only call initializeAlignment if cardElement is defined\n if (this.cardElement && this.cardElement.nativeElement) {\n this.initializeAlignment();\n }\n this.forwardAriaLabelToDropdownButton();\n }\n initializeAlignment() {\n if (this.usePopover)\n return;\n if (!this.intersectionObserverRef) {\n // Get the design token size of the button. In the button stylesheet a medium button height is utils.size(xl)\n // and a small button height is utils.size(\"l\")\n const designTokenSizeHeight = this.size === 'md' ? 'xl' : 'l';\n // Setting the rootMargin equal to the height of the button\n // allows the Intersection Observer Callback to be called\n // even if the dropdown button is intersecting with the viewport\n const options = {\n rootMargin: DesignTokenHelper.size(designTokenSizeHeight),\n };\n const callback = (entries) => {\n // Only apply alignment when opening:\n if (this.state !== OpenState.opening) {\n return;\n }\n // Cancel any pending timer to show dropdown:\n clearTimeout(this.showDropdownTimeoutId);\n const entry = entries[0];\n const isVisible = entry.boundingClientRect.width > 0;\n if (isVisible && entry.intersectionRatio < 1) {\n this.setHorizontalDirection(entry);\n this.setVerticalDirection(entry);\n }\n this.showDropdown();\n this.changeDetectorRef.detectChanges();\n };\n this.intersectionObserverRef = new IntersectionObserver(callback, options);\n this.intersectionObserverRef.observe(this.cardElement.nativeElement);\n }\n }\n setHorizontalDirection(entry) {\n // If popout direction is set to right, and the entry is cut off to the right by ${entry.boundingClientRect.right - entry.intersectionRect.right}px\n // it is set to popout left instead, and vice versa for popout direction left\n if (this.horizontalDirection === HorizontalDirection.right) {\n if (entry.boundingClientRect.right > entry.rootBounds.right) {\n this.horizontalDirection = HorizontalDirection.left;\n }\n }\n else {\n if (entry.boundingClientRect.left < entry.rootBounds.left) {\n this.horizontalDirection = HorizontalDirection.right;\n }\n }\n }\n setVerticalDirection(entry) {\n if (entry.boundingClientRect.top < 0) {\n // entry is cut off at the top by ${entry.boundingClientRect.top}px\n // open downwards:\n this.verticalDirection = VerticalDirection.down;\n }\n if (entry.boundingClientRect.bottom > entry.rootBounds.bottom) {\n // entry is cut off at the bottom by ${entry.boundingClientRect.bottom - entry.intersectionRect.bottom}px\n const containerOffsetTop = this.elementRef.nativeElement.getBoundingClientRect().top;\n const SPACING = 5; //TODO: Get from SCSS\n // Check if the card can fit on top of button:\n if (containerOffsetTop > entry.target.clientHeight + SPACING) {\n // open upwards:\n this.verticalDirection = VerticalDirection.up;\n }\n }\n }\n open() {\n if (this.disabled) {\n return;\n }\n if (!this.isOpen) {\n this.state = OpenState.opening;\n // ensures that the dropdown is opened in case the IntersectionObserverCallback isn't invoked\n this.showDropdownTimeoutId = setTimeout(() => this.showDropdown(), DropdownComponent.OPEN_DELAY_IN_MS);\n // Move focus to selected item (if any)\n // If no item is selected, focus the first item\n this.focusedIndex = this.selectedIndex > -1 ? this.selectedIndex : 0;\n }\n }\n showDropdown() {\n if (this.state === OpenState.opening) {\n this.state = OpenState.open;\n this.popover?.show();\n this.scrollItemIntoView(this.selectedIndex);\n this.changeDetectorRef.markForCheck();\n }\n }\n close() {\n if (this.disabled) {\n return;\n }\n if (this.isOpen) {\n this.state = OpenState.closed;\n // Reset vertical direction to default\n this.verticalDirection = VerticalDirection.down;\n this.popover?.hide();\n }\n }\n onItemSelect(index) {\n this.selectItem(index);\n this.close();\n }\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value) {\n this._selectItemByValue(value);\n }\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n selectItem(index) {\n if (index != this.selectedIndex) {\n this.selectedIndex = index;\n this.focusedIndex = index;\n this.change.emit(this.value);\n this._onChange(this.value);\n }\n }\n _selectItemByValue(value) {\n this.selectedIndex = this.items.indexOf(value);\n }\n getTextFromItem(item) {\n if (!item) {\n return null;\n }\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n scrollItemIntoView(index) {\n const kirbyItems = this.kirbyItemsSlotted && this.kirbyItemsSlotted.length\n ? this.kirbyItemsSlotted\n : this.kirbyItemsDefault;\n if (kirbyItems && kirbyItems.length) {\n const selectedKirbyItem = kirbyItems.toArray()[index];\n if (selectedKirbyItem && selectedKirbyItem.nativeElement) {\n const itemElement = selectedKirbyItem.nativeElement;\n itemElement.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n _onTab(event) {\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n if (this.clicked) {\n // Remove the 'clicked' class (Hostbinding) if the user has previously opened the dropdown by clicking,\n // since the class prevents the focus ring from showing,\n // which is expected to happen, when using the tab key\n this.clicked = false;\n }\n }\n _onMouseDown(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n _onTouchStart(event) {\n if (this.isOpen) {\n event.stopPropagation();\n }\n }\n _onFocus() {\n if (this.disabled) {\n this.elementRef.nativeElement.blur();\n }\n }\n _onPopoverWillHide() {\n this.state = OpenState.closed;\n this.elementRef.nativeElement.focus();\n }\n _onEnterOrEscape() {\n this.close();\n this._onTouched();\n }\n _onPopoverClick() {\n this.close();\n }\n _onBlur() {\n if (this.usePopover)\n return;\n this.close();\n this._onTouched();\n }\n _onEnterOrSpace(event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.isOpen) {\n this.selectItem(this.focusedIndex);\n }\n this.toggle();\n }\n _onArrowKeys(event) {\n if (this.disabled)\n return false;\n // Mirror default HTML5 select behaviour - prevent left/right arrows when open:\n if (this.isOpen && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n return false;\n }\n if (!this.isOpen) {\n // Avoid page scroll\n event.preventDefault();\n this.open();\n // If no selected item then focus first or last item\n if (this.selectedIndex < 0) {\n switch (event.key) {\n case 'ArrowUp':\n this.focusedIndex = this.items.length - 1;\n break;\n case 'ArrowDown':\n this.focusedIndex = 0;\n break;\n default:\n break;\n }\n }\n return false;\n }\n const newFocusedIndex = this.keyboardHandlerService.handle(event, this.focusedIndex, this.items.length - 1);\n if (newFocusedIndex > -1) {\n this.focusedIndex = newFocusedIndex;\n }\n return false;\n }\n _onHomeEndKeys(event) {\n if (this.disabled)\n return;\n if (!this.isOpen)\n return;\n const newFocusedIndex = this.keyboardHandlerService.handle(event, this.focusedIndex, this.items.length - 1);\n if (newFocusedIndex > -1) {\n this.focusedIndex = newFocusedIndex;\n }\n return false;\n }\n unlistenAllSlottedItems() {\n let unlistenItem;\n while ((unlistenItem = this.itemClickUnlisten.pop()) !== undefined) {\n unlistenItem();\n }\n }\n ngOnDestroy() {\n this.unlistenAllSlottedItems();\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.intersectionObserverRef) {\n this.intersectionObserverRef.disconnect();\n }\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.KeyboardHandlerService }, { token: i2.ResizeObserverService }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: DropdownComponent, isStandalone: false, selector: \"kirby-dropdown\", inputs: { items: \"items\", selectedIndex: \"selectedIndex\", focusedIndex: \"focusedIndex\", itemTextProperty: \"itemTextProperty\", placeholder: \"placeholder\", popout: \"popout\", attentionLevel: \"attentionLevel\", expand: \"expand\", disabled: \"disabled\", hasError: \"hasError\", size: \"size\", tabindex: \"tabindex\", usePopover: \"usePopover\" }, outputs: { change: \"change\" }, host: { listeners: { \"keydown.tab\": \"_onTab($event)\", \"mousedown\": \"_onMouseDown($event)\", \"touchstart\": \"_onTouchStart($event)\", \"focus\": \"_onFocus()\", \"keydown.enter\": \"_onEnterOrSpace($event)\", \"keydown.escape\": \"_onEnterOrEscape()\", \"blur\": \"_onBlur($event)\", \"keydown.space\": \"_onEnterOrSpace($event)\", \"keydown.arrowup\": \"_onArrowKeys($event)\", \"keydown.arrowdown\": \"_onArrowKeys($event)\", \"keydown.arrowleft\": \"_onArrowKeys($event)\", \"keydown.arrowright\": \"_onArrowKeys($event)\", \"keydown.home\": \"_onHomeEndKeys($event)\", \"keydown.end\": \"_onHomeEndKeys($event)\" }, properties: { \"attr.disabled\": \"this._isDisabled\", \"class.error\": \"this.hasError\", \"class.with-popover\": \"this.usePopover\", \"attr.no-blur\": \"this._noBlurOnScroll\", \"class.expand\": \"this._isBlockLevel\", \"class.is-opening\": \"this._isOpening\", \"class.is-open\": \"this.isOpen\", \"class.popout-left\": \"this._popoutLeft\", \"class.popout-up\": \"this._popoutUp\", \"class.clicked\": \"this.clicked\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((() => DropdownComponent)),\n multi: true,\n },\n ], queries: [{ propertyName: \"itemTemplate\", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: \"slottedItems\", predicate: ListItemTemplateDirective, read: ElementRef }, { propertyName: \"kirbyItemsSlotted\", predicate: ItemComponent, read: ElementRef }], viewQueries: [{ propertyName: \"cardElement\", first: true, predicate: CardComponent, descendants: true, read: ElementRef }, { propertyName: \"popover\", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: \"buttonElement\", first: true, predicate: ButtonComponent, descendants: true, read: ElementRef, static: true }, { propertyName: \"kirbyItemsDefault\", predicate: ItemComponent, descendants: true, read: ElementRef }], ngImport: i0, template: \"<button\\n kirby-button\\n type=\\\"button\\\"\\n [attr.id]=\\\"_comboboxId\\\"\\n role=\\\"combobox\\\"\\n aria-haspopup=\\\"listbox\\\"\\n [attr.aria-controls]=\\\"_listboxId\\\"\\n [attr.aria-expanded]=\\\"isOpen\\\"\\n [attr.aria-activedescendant]=\\\"_listboxId + '-item-' + focusedIndex\\\"\\n [size]=\\\"size\\\"\\n [attentionLevel]=\\\"attentionLevel\\\"\\n (click)=\\\"onToggle($event)\\\"\\n (mousedown)=\\\"onButtonMouseEvent($event)\\\"\\n [disabled]=\\\"disabled\\\"\\n>\\n <span class=\\\"text\\\">{{ selectedText || placeholder }}</span>\\n <kirby-icon [name]=\\\"isOpen ? 'arrow-up' : 'arrow-down'\\\"></kirby-icon>\\n</button>\\n\\n<ng-container *ngTemplateOutlet=\\\"usePopover ? popoverTemplate : itemWrapperTemplate\\\"></ng-container>\\n\\n<ng-template #popoverTemplate>\\n <kirby-popover\\n [target]=\\\"buttonElement\\\"\\n [popout]=\\\"popout\\\"\\n (click)=\\\"_onPopoverClick()\\\"\\n (willHide)=\\\"_onPopoverWillHide()\\\"\\n >\\n <ng-container *ngTemplateOutlet=\\\"itemWrapperTemplate\\\"></ng-container>\\n </kirby-popover>\\n</ng-template>\\n\\n<ng-template #itemWrapperTemplate>\\n <kirby-card role=\\\"listbox\\\" [attr.id]=\\\"_listboxId\\\" [attr.aria-labelledby]=\\\"_comboboxId\\\">\\n @for (item of items; track item; let i = $index) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: {\\n $implicit: item,\\n selected: i === selectedIndex,\\n focused: i === focusedIndex,\\n index: i,\\n }\\n \\\"\\n ></ng-container>\\n }\\n </kirby-card>\\n</ng-template>\\n\\n<ng-template\\n #defaultItemTemplate\\n let-item\\n let-selected=\\\"selected\\\"\\n let-index=\\\"index\\\"\\n let-focused=\\\"focused\\\"\\n>\\n <kirby-item\\n [selectable]=\\\"true\\\"\\n [selected]=\\\"selected\\\"\\n (click)=\\\"onItemSelect(index)\\\"\\n [class.focused]=\\\"focused\\\"\\n role=\\\"option\\\"\\n [attr.id]=\\\"_listboxId + '-item-' + index\\\"\\n [attr.aria-selected]=\\\"selected\\\"\\n >\\n <!-- Tabindex fixes issue with popover dropdown not working in safari -->\\n <p class=\\\"kirby-item-title\\\">{{ getTextFromItem(item) }}</p>\\n @if (selected) {\\n <kirby-icon name=\\\"checkmark-selected\\\" slot=\\\"end\\\"></kirby-icon>\\n }\\n </kirby-item>\\n</ng-template>\\n\", styles: [\"@media (hover: hover) and (pointer: fine){:host{outline:none;border-radius:999px}:host:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{display:inline-block;position:relative;max-width:calc(100vw - 32px)}:host.clicked{box-shadow:none}:host.expand{display:block}:host.expand kirby-card{width:100%;min-width:initial;max-width:initial}:host.error>button,:host.ng-touched.ng-invalid>button{border-color:var(--kirby-danger)}:host>button{position:relative;margin:0;outline:none;width:100%;min-width:0}:host>button.attention-level2{border:1px solid transparent}:host>button .text{overflow:hidden;text-overflow:ellipsis}:host kirby-card{display:none;opacity:0;position:absolute;z-index:800}:host.is-opening kirby-card{display:block}:host.is-open kirby-card{display:block;opacity:1}:host.is-open>button{box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26}:host.popout-left kirby-card{right:0}:host.popout-up kirby-card{top:0;margin-top:-4px;transform:translateY(-100%)}:host.popout-up.is-open>button{z-index:801}kirby-popover{--max-height: 352px}kirby-card{max-height:352px;margin-block:4px;overflow-y:auto;box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26;max-width:calc(100vw - 32px);min-width:288px}@media (min-width: 321px){kirby-card{min-width:343px}}@media (hover: hover){:host-context(kirby-calendar)>button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host-context(kirby-calendar)>button:active,:host-context(kirby-calendar)>button.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}:host-context(kirby-calendar)>button{border-color:transparent;font-weight:700;font-size:initial}:host-context(kirby-calendar).is-open>button{box-shadow:none}\\n\"], dependencies: [{ kind: \"component\", type: i3.CardComponent, selector: \"kirby-card\", inputs: [\"title\", \"subtitle\", \"backgroundImageUrl\", \"hasPadding\", \"sizes\", \"variant\"] }, { kind: \"component\", type: i4.IconComponent, selector: \"kirby-icon\", inputs: [\"size\", \"name\"] }, { kind: \"component\", type: i5.ItemComponent, selector: \"kirby-item\", inputs: [\"disabled\", \"selected\", \"disclosure\", \"selectable\", \"reorderable\", \"size\", \"href\", \"rotateIcon\"] }, { kind: \"component\", type: i6.PopoverComponent, selector: \"kirby-popover\", inputs: [\"popout\", \"target\"], outputs: [\"willHide\"] }, { kind: \"component\", type: i7.ButtonComponent, selector: \"button[kirby-button],Button[kirby-button],a[kirby-button]\", inputs: [\"attentionLevel\", \"noDecoration\", \"themeColor\", \"expand\", \"isFloating\", \"size\", \"showIconOnly\"] }, { kind: \"directive\", type: i8.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-dropdown', providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((() => DropdownComponent)),\n multi: true,\n },\n ], standalone: false, template: \"<button\\n kirby-button\\n type=\\\"button\\\"\\n [attr.id]=\\\"_comboboxId\\\"\\n role=\\\"combobox\\\"\\n aria-haspopup=\\\"listbox\\\"\\n [attr.aria-controls]=\\\"_listboxId\\\"\\n [attr.aria-expanded]=\\\"isOpen\\\"\\n [attr.aria-activedescendant]=\\\"_listboxId + '-item-' + focusedIndex\\\"\\n [size]=\\\"size\\\"\\n [attentionLevel]=\\\"attentionLevel\\\"\\n (click)=\\\"onToggle($event)\\\"\\n (mousedown)=\\\"onButtonMouseEvent($event)\\\"\\n [disabled]=\\\"disabled\\\"\\n>\\n <span class=\\\"text\\\">{{ selectedText || placeholder }}</span>\\n <kirby-icon [name]=\\\"isOpen ? 'arrow-up' : 'arrow-down'\\\"></kirby-icon>\\n</button>\\n\\n<ng-container *ngTemplateOutlet=\\\"usePopover ? popoverTemplate : itemWrapperTemplate\\\"></ng-container>\\n\\n<ng-template #popoverTemplate>\\n <kirby-popover\\n [target]=\\\"buttonElement\\\"\\n [popout]=\\\"popout\\\"\\n (click)=\\\"_onPopoverClick()\\\"\\n (willHide)=\\\"_onPopoverWillHide()\\\"\\n >\\n <ng-container *ngTemplateOutlet=\\\"itemWrapperTemplate\\\"></ng-container>\\n </kirby-popover>\\n</ng-template>\\n\\n<ng-template #itemWrapperTemplate>\\n <kirby-card role=\\\"listbox\\\" [attr.id]=\\\"_listboxId\\\" [attr.aria-labelledby]=\\\"_comboboxId\\\">\\n @for (item of items; track item; let i = $index) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: {\\n $implicit: item,\\n selected: i === selectedIndex,\\n focused: i === focusedIndex,\\n index: i,\\n }\\n \\\"\\n ></ng-container>\\n }\\n </kirby-card>\\n</ng-template>\\n\\n<ng-template\\n #defaultItemTemplate\\n let-item\\n let-selected=\\\"selected\\\"\\n let-index=\\\"index\\\"\\n let-focused=\\\"focused\\\"\\n>\\n <kirby-item\\n [selectable]=\\\"true\\\"\\n [selected]=\\\"selected\\\"\\n (click)=\\\"onItemSelect(index)\\\"\\n [class.focused]=\\\"focused\\\"\\n role=\\\"option\\\"\\n [attr.id]=\\\"_listboxId + '-item-' + index\\\"\\n [attr.aria-selected]=\\\"selected\\\"\\n >\\n <!-- Tabindex fixes issue with popover dropdown not working in safari -->\\n <p class=\\\"kirby-item-title\\\">{{ getTextFromItem(item) }}</p>\\n @if (selected) {\\n <kirby-icon name=\\\"checkmark-selected\\\" slot=\\\"end\\\"></kirby-icon>\\n }\\n </kirby-item>\\n</ng-template>\\n\", styles: [\"@media (hover: hover) and (pointer: fine){:host{outline:none;border-radius:999px}:host:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{display:inline-block;position:relative;max-width:calc(100vw - 32px)}:host.clicked{box-shadow:none}:host.expand{display:block}:host.expand kirby-card{width:100%;min-width:initial;max-width:initial}:host.error>button,:host.ng-touched.ng-invalid>button{border-color:var(--kirby-danger)}:host>button{position:relative;margin:0;outline:none;width:100%;min-width:0}:host>button.attention-level2{border:1px solid transparent}:host>button .text{overflow:hidden;text-overflow:ellipsis}:host kirby-card{display:none;opacity:0;position:absolute;z-index:800}:host.is-opening kirby-card{display:block}:host.is-open kirby-card{display:block;opacity:1}:host.is-open>button{box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26}:host.popout-left kirby-card{right:0}:host.popout-up kirby-card{top:0;margin-top:-4px;transform:translateY(-100%)}:host.popout-up.is-open>button{z-index:801}kirby-popover{--max-height: 352px}kirby-card{max-height:352px;margin-block:4px;overflow-y:auto;box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26;max-width:calc(100vw - 32px);min-width:288px}@media (min-width: 321px){kirby-card{min-width:343px}}@media (hover: hover){:host-context(kirby-calendar)>button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}:host-context(kirby-calendar)>button:active,:host-context(kirby-calendar)>button.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}:host-context(kirby-calendar)>button{border-color:transparent;font-weight:700;font-size:initial}:host-context(kirby-calendar).is-open>button{box-shadow:none}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.KeyboardHandlerService }, { type: i2.ResizeObserverService }], propDecorators: { items: [{\n type: Input\n }], selectedIndex: [{\n type: Input\n }], focusedIndex: [{\n type: Input\n }], itemTextProperty: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], popout: [{\n type: Input\n }], attentionLevel: [{\n type: Input\n }], expand: [{\n type: Input\n }], disabled: [{\n type: Input\n }], _isDisabled: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], hasError: [{\n type: HostBinding,\n args: ['class.error']\n }, {\n type: Input\n }], size: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], usePopover: [{\n type: HostBinding,\n args: ['class.with-popover']\n }, {\n type: Input\n }], _noBlurOnScroll: [{\n type: HostBinding,\n args: ['attr.no-blur']\n }], change: [{\n type: Output\n }], _isBlockLevel: [{\n type: HostBinding,\n args: ['class.expand']\n }], _isOpening: [{\n type: HostBinding,\n args: ['class.is-opening']\n }], isOpen: [{\n type: HostBinding,\n args: ['class.is-open']\n }], _popoutLeft: [{\n type: HostBinding,\n args: ['class.popout-left']\n }], _popoutUp: [{\n type: HostBinding,\n args: ['class.popout-up']\n }], clicked: [{\n type: HostBinding,\n args: ['class.clicked']\n }], itemTemplate: [{\n type: ContentChild,\n args: [ListItemTemplateDirective, { static: true, read: TemplateRef }]\n }], slottedItems: [{\n type: ContentChildren,\n args: [ListItemTemplateDirective, { read: ElementRef }]\n }], cardElement: [{\n type: ViewChild,\n args: [CardComponent, { read: ElementRef }]\n }], popover: [{\n type: ViewChild,\n args: [PopoverComponent]\n }], buttonElement: [{\n type: ViewChild,\n args: [ButtonComponent, { static: true, read: ElementRef }]\n }], kirbyItemsDefault: [{\n type: ViewChildren,\n args: [ItemComponent, { read: ElementRef }]\n }], kirbyItemsSlotted: [{\n type: ContentChildren,\n args: [ItemComponent, { read: ElementRef }]\n }], _onTab: [{\n type: HostListener,\n args: ['keydown.tab', ['$event']]\n }], _onMouseDown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], _onTouchStart: [{\n type: HostListener,\n args: ['touchstart', ['$event']]\n }], _onFocus: [{\n type: HostListener,\n args: ['focus']\n }], _onEnterOrEscape: [{\n type: HostListener,\n args: ['keydown.enter']\n }, {\n type: HostListener,\n args: ['keydown.escape']\n }], _onBlur: [{\n type: HostListener,\n args: ['blur', ['$event']]\n }], _onEnterOrSpace: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.space', ['$event']]\n }], _onArrowKeys: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.arrowleft', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.arrowright', ['$event']]\n }], _onHomeEndKeys: [{\n type: HostListener,\n args: ['keydown.home', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.end', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUF5QixNQUFNLGtDQUFrQyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztBQWdCaEUsTUFBTSxPQUFPLGlCQUFpQjthQUNaLHFCQUFnQixHQUFHLEdBQUcsQUFBTixDQUFPO0lBWXZDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1B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RUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzFDLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM1QyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDNUMsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE4QzlDLGNBQWM7c0JBRmIsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN2QyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyU3R5bGVGbGFnczIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9jYXJkJztcbmltcG9ydCB7IERlc2lnblRva2VuSGVscGVyLCBVbmlxdWVJZEdlbmVyYXRvciB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaGVscGVycyc7XG5pbXBvcnQgeyBJdGVtQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2xpc3QnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbERpcmVjdGlvbiwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcG9wb3Zlcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2J1dHRvbic7XG5pbXBvcnQgeyBFdmVudExpc3RlbmVyRGlzcG9zZUZuIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS90eXBlcyc7XG5pbXBvcnQgeyBmb3J3YXJkQXR0cmlidXRlcywgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBPcGVuU3RhdGUsIFZlcnRpY2FsRGlyZWN0aW9uIH0gZnJvbSAnLi9kcm9wZG93bi50eXBlcyc7XG5pbXBvcnQgeyBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9rZXlib2FyZC1oYW5kbGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyByZWFkb25seSBPUEVOX0RFTEFZX0lOX01TID0gMTAwO1xuICBwcml2YXRlIHN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgcHJpdmF0ZSBob3Jpem9udGFsRGlyZWN0aW9uOiBIb3Jpem9udGFsRGlyZWN0aW9uIHwgYCR7SG9yaXpvbnRhbERpcmVjdGlvbn1gID1cbiAgICBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICBwcml2YXRlIHZlcnRpY2FsRGlyZWN0aW9uOiBWZXJ0aWNhbERpcmVjdGlvbiB8IGAke1ZlcnRpY2FsRGlyZWN0aW9ufWAgPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuICBwcml2YXRlIF9hdHRyaWJ1dGVzVG9Gb3J3YXJkID0gWydhcmlhLWxhYmVsJywgJ2FyaWEtbGFiZWxsZWRieSddO1xuXG4gIF9saXN0Ym94SWQgPSBVbmlxdWVJZEdlbmVyYXRvci5zY29wZWRUbygna2lyYnktZHJvcGRvd24nKS5uZXh0KCk7XG4gIF9jb21ib2JveElkID0gVW5pcXVlSWRHZW5lcmF0b3Iuc2NvcGVkVG8oJ2tpcmJ5LWJ1dHRvbicpLm5leHQoKTtcblxuICBwcml2YXRlIF9pdGVtczogc3RyaW5nW10gfCBhbnlbXSA9IFtdO1xuXG4gIGdldCBpdGVtcygpOiBzdHJpbmdbXSB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgPSAtMTtcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9zZWxlY3RlZEluZGV4ICE9IHZhbHVlKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gdmFsdWU7XG4gICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XSB8fCBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIF9mb2N1c2VkSW5kZXgga2VlcHMgdHJhY2sgb2Ygd2hpY2ggZWxlbWVudCBoYXMgZm9jdXMgYW5kIHdpbGwgYmUgc2VsZWN0ZWRcbiAgLy8gaWYgaXQgaXMgYWN0aXZhdGVkIChieSBwcmVzc2luZyBFTlRFUiBvciBTUEFDRSBrZXkpXG4gIHByaXZhdGUgX2ZvY3VzZWRJbmRleDogbnVtYmVyID0gLTE7XG4gIGdldCBmb2N1c2VkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZEluZGV4O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZvY3VzZWRJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzZWRJbmRleCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5zY3JvbGxJdGVtSW50b1ZpZXcodGhpcy5fZm9jdXNlZEluZGV4KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBpdGVtVGV4dFByb3BlcnR5ID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3Q6JztcblxuICBASW5wdXQoKSBzZXQgcG9wb3V0KGRpcmVjdGlvbjogSG9yaXpvbnRhbERpcmVjdGlvbiB8IGAke0hvcml6b250YWxEaXJlY3Rpb259YCkge1xuICAgIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICB9XG5cbiAgZ2V0IHBvcG91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uO1xuICB9XG5cbiAgQElucHV0KClcbiAgYXR0ZW50aW9uTGV2ZWw6ICcxJyB8ICcyJyB8ICczJyA9ICczJztcblxuICBASW5wdXQoKVxuICBleHBhbmQ/OiAnYmxvY2snO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgZ2V0IF9pc0Rpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGw7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVycm9yJylcbiAgQElucHV0KClcbiAgaGFzRXJyb3I6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHRhYmluZGV4ID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtcG9wb3ZlcicpXG4gIEBJbnB1dCgpXG4gIHVzZVBvcG92ZXIgPSBmYWxzZTtcblxuICBnZXQgX3RhYmluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gLTEgOiB0aGlzLnRhYmluZGV4O1xuICB9XG5cbiAgLy8gUHJldmVudCBJb25pYyBibHVyIG9uIHNjcm9sbFxuICBASG9zdEJpbmRpbmcoJ2F0dHIubm8tYmx1cicpXG4gIGdldCBfbm9CbHVyT25TY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGl0ZW0gaXMgc2VsZWN0ZWQgKHRhcCBvbiBtb2JpbGUsIGNsaWNrL2tleXByZXNzIG9uIHdlYilcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IGFueSA9IG51bGw7XG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0RnJvbUl0ZW0odGhpcy52YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV4cGFuZCcpXG4gIGdldCBfaXNCbG9ja0xldmVsKCkge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZCA9PT0gJ2Jsb2NrJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3BlbmluZycpXG4gIGdldCBfaXNPcGVuaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBPcGVuU3RhdGUub3BlbmluZztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3BlbicpXG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IE9wZW5TdGF0ZS5vcGVuO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3BvdXQtbGVmdCcpXG4gIGdldCBfcG9wb3V0TGVmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID09PSBIb3Jpem9udGFsRGlyZWN0aW9uLmxlZnQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvcG91dC11cCcpXG4gIGdldCBfcG9wb3V0VXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPT09IFZlcnRpY2FsRGlyZWN0aW9uLnVwO1xuICB9XG5cbiAgLyogVGhlICdjbGlja2VkJyBjbGFzcyBpcyBhcHBsaWVkIHRocm91Z2ggSG9zdGJpbmRpbmcgdG8gcHJldmVudCB0aGUgZHJvcGRvd24gZnJvbSBnZXR0aW5nIGEgZm9jdXMgcmluZyBvbiBjbGljay5cbiAgICBUaGVyZSBpcyBhIGJ1ZyB0aGF0IGNhdXNlcyB0aGUgZHJvcGRvd24gdG8gZ2V0IGEgZm9jdXMgcmluZyBvbiBjbGljaywgaWYgaXQgaXMgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBpcyBpbnRlcmFjdGVkIHdpdGhcbiAgICBhZnRlciB0aGUgcGFnZSBpcyBsb2FkZWQuIElmIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIGFueSBvdGhlciBlbGVtZW50IGJlZm9yZSwgdGhlbiB0aGUgZHJvcGRvd24gd29uJ3QgZ2V0IGEgZm9jdXMgcmluZy5cbiAgICBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzI0NzcuXG5cbiAgICBUaGlzIHNvbHV0aW9uIGNhbiBwb3RlbnRpYWxseSBiZSByZWZhY3RvcmVkLCB3aGVuIHBvcG92ZXIgaXMgbm90IGV4cGVyaW1lbnRhbCBhbnltb3JlLiBUaGVuIGl0IGNvdWxkIGJlIHBvc3NpYmxlIFxuICAgIHRvIGNsb3NlIHRoZSBkcm9wZG93biB3aGVuIHRoZSBwb3BvdmVyIGJhY2tkcm9wIGlzIGNsaWNrZWQsIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgYmx1ciBldmVudCwgd2hpY2ggaXMgdXRpbGl6ZWRcbiAgICBieSB0aGlzIGxpbmUgYmVsb3c6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCkuIFJpZ2h0IG5vdyB0aGlzIGZvcmNlcyB0aGUgYmx1ciBldmVudCB0byBiZSB0cmlnZ2VyZWQsIHdoZW5cbiAgICBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBkcm9wZG93bi5cbiAgICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNsaWNrZWQnKVxuICBjbGlja2VkID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZChMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBzbG90dGVkSXRlbXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG4gIEBWaWV3Q2hpbGQoQ2FyZENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGNhcmRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KVxuICBwb3BvdmVyPzogUG9wb3ZlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChCdXR0b25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgZm9yd2FyZEFyaWFMYWJlbFRvRHJvcGRvd25CdXR0b24oKSB7XG4gICAgZm9yd2FyZEF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZXNUb0ZvcndhcmQsXG4gICAgICB0aGlzLnJlbmRlcmVyLFxuICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgQFZpZXdDaGlsZHJlbihJdGVtQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAga2lyYnlJdGVtc0RlZmF1bHQ6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgX2tpcmJ5SXRlbXNTbG90dGVkOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAQ29udGVudENoaWxkcmVuKEl0ZW1Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBzZXQga2lyYnlJdGVtc1Nsb3R0ZWQoa2lyYnlJdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pikge1xuICAgIGNvbnN0IGhhc1Nsb3R0ZWRJdGVtcyA9IHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4/Lmxlbmd0aCA+IDA7XG4gICAgaWYgKGhhc1Nsb3R0ZWRJdGVtcykge1xuICAgICAgdGhpcy51bmxpc3RlbkFsbFNsb3R0ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIC8vIFNldHVwIGEgY2xpY2sgbGlzdGVuZXIgZm9yIGVhY2ggbmV3IHNsb3R0ZWQgaXRlbXNcbiAgICBraXJieUl0ZW1zLmZvckVhY2goKGtpcmJ5SXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LCAncm9sZScsICdvcHRpb24nKTtcbiAgICAgIGNvbnN0IHVubGlzdGVuOiBFdmVudExpc3RlbmVyRGlzcG9zZUZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoaW5kZXgpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLml0ZW1DbGlja1VubGlzdGVuLnB1c2godW5saXN0ZW4pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fa2lyYnlJdGVtc1Nsb3R0ZWQgPSBraXJieUl0ZW1zO1xuICB9XG5cbiAgZ2V0IGtpcmJ5SXRlbXNTbG90dGVkKCk6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4ge1xuICAgIHJldHVybiB0aGlzLl9raXJieUl0ZW1zU2xvdHRlZDtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUNsaWNrVW5saXN0ZW46IEV2ZW50TGlzdGVuZXJEaXNwb3NlRm5bXSA9IFtdO1xuICBwcml2YXRlIGludGVyc2VjdGlvbk9ic2VydmVyUmVmOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzaG93RHJvcGRvd25UaW1lb3V0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyU2VydmljZTogS2V5Ym9hcmRIYW5kbGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTogUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlXG4gICkge31cblxuICBvblRvZ2dsZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5jbGlja2VkID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9uQnV0dG9uTW91c2VFdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IGJ1dHRvbiBmb2N1cztcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyogVXRpbGl0eSB0aGF0IG1ha2VzIGl0IGVhc2llciB0byBzZXQgc3R5bGVzIG9uIGNhcmQgZWxlbWVudFxuICB3aGVuIHVzaW5nIHBvcG92ZXIqL1xuICBwcml2YXRlIHNldFBvcG92ZXJDYXJkU3R5bGUoc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgc3R5bGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIFJlbmRlcmVyU3R5bGVGbGFnczIuRGFzaENhc2VcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnVzZVBvcG92ZXIgJiYgdGhpcy5leHBhbmQgPT09ICdibG9jaycpIHtcbiAgICAgIGNvbnN0IHsgd2lkdGg6IGluaXRpYWxXaWR0aCB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLnNldFBvcG92ZXJDYXJkU3R5bGUoJ21heC13aWR0aCcsICdpbml0aWFsJyk7XG4gICAgICB0aGlzLnNldFBvcG92ZXJDYXJkU3R5bGUoJ21pbi13aWR0aCcsICdpbml0aWFsJyk7XG4gICAgICAvLyBFbnN1cmUgaW5pdGlhbCB3aWR0aCBpcyBzZXQgZXZlbiBpZiB0aGUgcmVzaXplIG9ic2VydmVyIGNhbGxiYWNrIGFsc28gZmlyZXMgaW5pdGlhbGx5OlxuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCctLWtpcmJ5LWNhcmQtd2lkdGgnLCBgJHtpbml0aWFsV2lkdGh9cHhgKTtcblxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdXaWR0aCA9IGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoO1xuICAgICAgICBpZiAobmV3V2lkdGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCctLWtpcmJ5LWNhcmQtd2lkdGgnLCBgJHtuZXdXaWR0aH1weGApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gT25seSBjYWxsIGluaXRpYWxpemVBbGlnbm1lbnQgaWYgY2FyZEVsZW1lbnQgaXMgZGVmaW5lZFxuICAgIGlmICh0aGlzLmNhcmRFbGVtZW50ICYmIHRoaXMuY2FyZEVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplQWxpZ25tZW50KCk7XG4gICAgfVxuICAgIHRoaXMuZm9yd2FyZEFyaWFMYWJlbFRvRHJvcGRvd25CdXR0b24oKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUFsaWdubWVudCgpIHtcbiAgICBpZiAodGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmKSB7XG4gICAgICAvLyBHZXQgdGhlIGRlc2lnbiB0b2tlbiBzaXplIG9mIHRoZSBidXR0b24uIEluIHRoZSBidXR0b24gc3R5bGVzaGVldCBhIG1lZGl1bSBidXR0b24gaGVpZ2h0IGlzIHV0aWxzLnNpemUoeGwpXG4gICAgICAvLyBhbmQgYSBzbWFsbCBidXR0b24gaGVpZ2h0IGlzIHV0aWxzLnNpemUoXCJsXCIpXG4gICAgICBjb25zdCBkZXNpZ25Ub2tlblNpemVIZWlnaHQgPSB0aGlzLnNpemUgPT09ICdtZCcgPyAneGwnIDogJ2wnO1xuXG4gICAgICAvLyBTZXR0aW5nIHRoZSByb290TWFyZ2luIGVxdWFsIHRvIHRoZSBoZWlnaHQgb2YgdGhlIGJ1dHRvblxuICAgICAgLy8gYWxsb3dzIHRoZSBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgQ2FsbGJhY2sgdG8gYmUgY2FsbGVkXG4gICAgICAvLyBldmVuIGlmIHRoZSBkcm9wZG93biBidXR0b24gaXMgaW50ZXJzZWN0aW5nIHdpdGggdGhlIHZpZXdwb3J0XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICByb290TWFyZ2luOiBEZXNpZ25Ub2tlbkhlbHBlci5zaXplKGRlc2lnblRva2VuU2l6ZUhlaWdodCksXG4gICAgICB9O1xuICAgICAgY29uc3QgY2FsbGJhY2s6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSAoZW50cmllcykgPT4ge1xuICAgICAgICAvLyBPbmx5IGFwcGx5IGFsaWdubWVudCB3aGVuIG9wZW5pbmc6XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBPcGVuU3RhdGUub3BlbmluZykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbmNlbCBhbnkgcGVuZGluZyB0aW1lciB0byBzaG93IGRyb3Bkb3duOlxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93RHJvcGRvd25UaW1lb3V0SWQpO1xuICAgICAgICBjb25zdCBlbnRyeSA9IGVudHJpZXNbMF07XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCA+IDA7XG4gICAgICAgIGlmIChpc1Zpc2libGUgJiYgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPCAxKSB7XG4gICAgICAgICAgdGhpcy5zZXRIb3Jpem9udGFsRGlyZWN0aW9uKGVudHJ5KTtcbiAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsRGlyZWN0aW9uKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dEcm9wZG93bigpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGNhbGxiYWNrLCBvcHRpb25zKTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYub2JzZXJ2ZSh0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SG9yaXpvbnRhbERpcmVjdGlvbihlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkge1xuICAgIC8vIElmIHBvcG91dCBkaXJlY3Rpb24gaXMgc2V0IHRvIHJpZ2h0LCBhbmQgdGhlIGVudHJ5IGlzIGN1dCBvZmYgdG8gdGhlIHJpZ2h0IGJ5ICR7ZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0IC0gZW50cnkuaW50ZXJzZWN0aW9uUmVjdC5yaWdodH1weFxuICAgIC8vIGl0IGlzIHNldCB0byBwb3BvdXQgbGVmdCBpbnN0ZWFkLCBhbmQgdmljZSB2ZXJzYSBmb3IgcG9wb3V0IGRpcmVjdGlvbiBsZWZ0XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodCkge1xuICAgICAgaWYgKGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5yaWdodCA+IGVudHJ5LnJvb3RCb3VuZHMucmlnaHQpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID0gSG9yaXpvbnRhbERpcmVjdGlvbi5sZWZ0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgPCBlbnRyeS5yb290Qm91bmRzLmxlZnQpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID0gSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZlcnRpY2FsRGlyZWN0aW9uKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSB7XG4gICAgaWYgKGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPCAwKSB7XG4gICAgICAvLyBlbnRyeSBpcyBjdXQgb2ZmIGF0IHRoZSB0b3AgYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QudG9wfXB4XG4gICAgICAvLyBvcGVuIGRvd253YXJkczpcbiAgICAgIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuICAgIH1cbiAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmJvdHRvbSA+IGVudHJ5LnJvb3RCb3VuZHMuYm90dG9tKSB7XG4gICAgICAvLyBlbnRyeSBpcyBjdXQgb2ZmIGF0IHRoZSBib3R0b20gYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tIC0gZW50cnkuaW50ZXJzZWN0aW9uUmVjdC5ib3R0b219cHhcbiAgICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldFRvcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgIGNvbnN0IFNQQUNJTkcgPSA1OyAvL1RPRE86IEdldCBmcm9tIFNDU1NcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjYXJkIGNhbiBmaXQgb24gdG9wIG9mIGJ1dHRvbjpcbiAgICAgIGlmIChjb250YWluZXJPZmZzZXRUb3AgPiBlbnRyeS50YXJnZXQuY2xpZW50SGVpZ2h0ICsgU1BBQ0lORykge1xuICAgICAgICAvLyBvcGVuIHVwd2FyZHM6XG4gICAgICAgIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi51cDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUub3BlbmluZztcbiAgICAgIC8vIGVuc3VyZXMgdGhhdCB0aGUgZHJvcGRvd24gaXMgb3BlbmVkIGluIGNhc2UgdGhlIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgaXNuJ3QgaW52b2tlZFxuICAgICAgdGhpcy5zaG93RHJvcGRvd25UaW1lb3V0SWQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB0aGlzLnNob3dEcm9wZG93bigpLFxuICAgICAgICBEcm9wZG93bkNvbXBvbmVudC5PUEVOX0RFTEFZX0lOX01TXG4gICAgICApO1xuXG4gICAgICAvLyBNb3ZlIGZvY3VzIHRvIHNlbGVjdGVkIGl0ZW0gKGlmIGFueSlcbiAgICAgIC8vIElmIG5vIGl0ZW0gaXMgc2VsZWN0ZWQsIGZvY3VzIHRoZSBmaXJzdCBpdGVtXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleCA+IC0xID8gdGhpcy5zZWxlY3RlZEluZGV4IDogMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dEcm9wZG93bigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gT3BlblN0YXRlLm9wZW5pbmcpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUub3BlbjtcbiAgICAgIHRoaXMucG9wb3Zlcj8uc2hvdygpO1xuICAgICAgdGhpcy5zY3JvbGxJdGVtSW50b1ZpZXcodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgICAgIC8vIFJlc2V0IHZlcnRpY2FsIGRpcmVjdGlvbiB0byBkZWZhdWx0XG4gICAgICB0aGlzLnZlcnRpY2FsRGlyZWN0aW9uID0gVmVydGljYWxEaXJlY3Rpb24uZG93bjtcbiAgICAgIHRoaXMucG9wb3Zlcj8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSXRlbVNlbGVjdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RJdGVtKGluZGV4KTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbGVjdCdzIHZhbHVlLiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICogcmVxdWlyZWQgdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgTmV3IHZhbHVlIHRvIGJlIHdyaXR0ZW4gdG8gdGhlIG1vZGVsLlxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0SXRlbUJ5VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBzZWxlY3QncyB2YWx1ZVxuICAgKiBjaGFuZ2VzIGZyb20gdXNlciBpbnB1dC4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGZuIENhbGxiYWNrIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VsZWN0IGlzIGJsdXJyZWRcbiAgICogYnkgdGhlIHVzZXIuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSByZXF1aXJlZFxuICAgKiB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBmbiBDYWxsYmFjayB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgY29tcG9uZW50IGhhcyBiZWVuIHRvdWNoZWQuXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgdGhlIHNlbGVjdC4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHJlcXVpcmVkXG4gICAqIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgU2V0cyB3aGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCAhPSB0aGlzLnNlbGVjdGVkSW5kZXgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RJdGVtQnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKHZhbHVlKTtcbiAgfVxuXG4gIGdldFRleHRGcm9tSXRlbShpdGVtOiBzdHJpbmcgfCBhbnkpIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbSA6IGl0ZW1bdGhpcy5pdGVtVGV4dFByb3BlcnR5XTtcbiAgfVxuXG4gIHNjcm9sbEl0ZW1JbnRvVmlldyhpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qga2lyYnlJdGVtcyA9XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoXG4gICAgICAgID8gdGhpcy5raXJieUl0ZW1zU2xvdHRlZFxuICAgICAgICA6IHRoaXMua2lyYnlJdGVtc0RlZmF1bHQ7XG4gICAgaWYgKGtpcmJ5SXRlbXMgJiYga2lyYnlJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkS2lyYnlJdGVtID0ga2lyYnlJdGVtcy50b0FycmF5KClbaW5kZXhdO1xuICAgICAgaWYgKHNlbGVjdGVkS2lyYnlJdGVtICYmIHNlbGVjdGVkS2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBzZWxlY3RlZEtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpdGVtRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCddKVxuICBfb25UYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xpY2tlZCkge1xuICAgICAgLy8gUmVtb3ZlIHRoZSAnY2xpY2tlZCcgY2xhc3MgKEhvc3RiaW5kaW5nKSBpZiB0aGUgdXNlciBoYXMgcHJldmlvdXNseSBvcGVuZWQgdGhlIGRyb3Bkb3duIGJ5IGNsaWNraW5nLFxuICAgICAgLy8gc2luY2UgdGhlIGNsYXNzIHByZXZlbnRzIHRoZSBmb2N1cyByaW5nIGZyb20gc2hvd2luZyxcbiAgICAgIC8vIHdoaWNoIGlzIGV4cGVjdGVkIHRvIGhhcHBlbiwgd2hlbiB1c2luZyB0aGUgdGFiIGtleVxuICAgICAgdGhpcy5jbGlja2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgX29uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgX29uVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCkge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBfb25Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIF9vblBvcG92ZXJXaWxsSGlkZSgpIHtcbiAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicpXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJylcbiAgX29uRW50ZXJPckVzY2FwZSgpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICBfb25Qb3BvdmVyQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIF9vbkJsdXIoKSB7XG4gICAgaWYgKHRoaXMudXNlUG9wb3ZlcikgcmV0dXJuO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgX29uRW50ZXJPclNwYWNlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtKHRoaXMuZm9jdXNlZEluZGV4KTtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3VwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gIF9vbkFycm93S2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBNaXJyb3IgZGVmYXVsdCBIVE1MNSBzZWxlY3QgYmVoYXZpb3VyIC0gcHJldmVudCBsZWZ0L3JpZ2h0IGFycm93cyB3aGVuIG9wZW46XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIC8vIEF2b2lkIHBhZ2Ugc2Nyb2xsXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vcGVuKCk7XG5cbiAgICAgIC8vIElmIG5vIHNlbGVjdGVkIGl0ZW0gdGhlbiBmb2N1cyBmaXJzdCBvciBsYXN0IGl0ZW1cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPCAwKSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IDA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0ZvY3VzZWRJbmRleCA9IHRoaXMua2V5Ym9hcmRIYW5kbGVyU2VydmljZS5oYW5kbGUoXG4gICAgICBldmVudCxcbiAgICAgIHRoaXMuZm9jdXNlZEluZGV4LFxuICAgICAgdGhpcy5pdGVtcy5sZW5ndGggLSAxXG4gICAgKTtcblxuICAgIGlmIChuZXdGb2N1c2VkSW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXggPSBuZXdGb2N1c2VkSW5kZXg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5ob21lJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbmQnLCBbJyRldmVudCddKVxuICBfb25Ib21lRW5kS2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmlzT3BlbikgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3Rm9jdXNlZEluZGV4ID0gdGhpcy5rZXlib2FyZEhhbmRsZXJTZXJ2aWNlLmhhbmRsZShcbiAgICAgIGV2ZW50LFxuICAgICAgdGhpcy5mb2N1c2VkSW5kZXgsXG4gICAgICB0aGlzLml0ZW1zLmxlbmd0aCAtIDFcbiAgICApO1xuICAgIGlmIChuZXdGb2N1c2VkSW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXggPSBuZXdGb2N1c2VkSW5kZXg7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdW5saXN0ZW5BbGxTbG90dGVkSXRlbXMoKSB7XG4gICAgbGV0IHVubGlzdGVuSXRlbTogKCkgPT4gdm9pZDtcbiAgICB3aGlsZSAoKHVubGlzdGVuSXRlbSA9IHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4ucG9wKCkpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVubGlzdGVuSXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5saXN0ZW5BbGxTbG90dGVkSXRlbXMoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS51bm9ic2VydmUodGhpcy5lbGVtZW50UmVmKTtcbiAgICBpZiAodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZikge1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIGtpcmJ5LWJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2F0dHIuaWRdPVwiX2NvbWJvYm94SWRcIlxuICByb2xlPVwiY29tYm9ib3hcIlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2xpc3Rib3hJZFwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNPcGVuXCJcbiAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIl9saXN0Ym94SWQgKyAnLWl0ZW0tJyArIGZvY3VzZWRJbmRleFwiXG4gIFtzaXplXT1cInNpemVcIlxuICBbYXR0ZW50aW9uTGV2ZWxdPVwiYXR0ZW50aW9uTGV2ZWxcIlxuICAoY2xpY2spPVwib25Ub2dnbGUoJGV2ZW50KVwiXG4gIChtb3VzZWRvd24pPVwib25CdXR0b25Nb3VzZUV2ZW50KCRldmVudClcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuPlxuICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBzZWxlY3RlZFRleHQgfHwgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gIDxraXJieS1pY29uIFtuYW1lXT1cImlzT3BlbiA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bidcIj48L2tpcmJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZVBvcG92ZXIgPyBwb3BvdmVyVGVtcGxhdGUgOiBpdGVtV3JhcHBlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wb3ZlclRlbXBsYXRlPlxuICA8a2lyYnktcG9wb3ZlclxuICAgIFt0YXJnZXRdPVwiYnV0dG9uRWxlbWVudFwiXG4gICAgW3BvcG91dF09XCJwb3BvdXRcIlxuICAgIChjbGljayk9XCJfb25Qb3BvdmVyQ2xpY2soKVwiXG4gICAgKHdpbGxIaWRlKT1cIl9vblBvcG92ZXJXaWxsSGlkZSgpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtV3JhcHBlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwva2lyYnktcG9wb3Zlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaXRlbVdyYXBwZXJUZW1wbGF0ZT5cbiAgPGtpcmJ5LWNhcmQgcm9sZT1cImxpc3Rib3hcIiBbYXR0ci5pZF09XCJfbGlzdGJveElkXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9jb21ib2JveElkXCI+XG4gICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBpdGVtVGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICBzZWxlY3RlZDogaSA9PT0gc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgICAgIGZvY3VzZWQ6IGkgPT09IGZvY3VzZWRJbmRleCxcbiAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwva2lyYnktY2FyZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdEl0ZW1UZW1wbGF0ZVxuICBsZXQtaXRlbVxuICBsZXQtc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiXG4gIGxldC1pbmRleD1cImluZGV4XCJcbiAgbGV0LWZvY3VzZWQ9XCJmb2N1c2VkXCJcbj5cbiAgPGtpcmJ5LWl0ZW1cbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaW5kZXgpXCJcbiAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCJcbiAgICByb2xlPVwib3B0aW9uXCJcbiAgICBbYXR0ci5pZF09XCJfbGlzdGJveElkICsgJy1pdGVtLScgKyBpbmRleFwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gID5cbiAgICA8IS0tIFRhYmluZGV4IGZpeGVzIGlzc3VlIHdpdGggcG9wb3ZlciBkcm9wZG93biBub3Qgd29ya2luZyBpbiBzYWZhcmkgLS0+XG4gICAgPHAgY2xhc3M9XCJraXJieS1pdGVtLXRpdGxlXCI+e3sgZ2V0VGV4dEZyb21JdGVtKGl0ZW0pIH19PC9wPlxuICAgIEBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgIDxraXJieS1pY29uIG5hbWU9XCJjaGVja21hcmstc2VsZWN0ZWRcIiBzbG90PVwiZW5kXCI+PC9raXJieS1pY29uPlxuICAgIH1cbiAgPC9raXJieS1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { FormFieldModule } from '@kirbydesign/designsystem/form-field';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { ListItemTemplateDirective, ListModule } from '@kirbydesign/designsystem/list';\nimport { DropdownComponent } from './dropdown.component';\nimport { KeyboardHandlerService } from './keyboard-handler.service';\nimport * as i0 from \"@angular/core\";\nconst declarations = [DropdownComponent];\nexport class DropdownModule {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownModule, declarations: [DropdownComponent], imports: [CardModule,\n IconModule,\n ItemModule,\n FormFieldModule,\n PopoverComponent,\n ButtonComponent,\n CommonModule,\n ListModule], exports: [DropdownComponent, ListItemTemplateDirective] }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownModule, providers: [KeyboardHandlerService], imports: [CardModule,\n IconModule,\n ItemModule,\n FormFieldModule,\n PopoverComponent,\n ButtonComponent,\n CommonModule,\n ListModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DropdownModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CardModule,\n IconModule,\n ItemModule,\n FormFieldModule,\n PopoverComponent,\n ButtonComponent,\n CommonModule,\n ListModule,\n ],\n declarations: [...declarations],\n exports: [...declarations, ListItemTemplateDirective],\n providers: [KeyboardHandlerService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZHJvcGRvd24vc3JjL2Ryb3Bkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBaUJ6QyxNQUFNLE9BQU8sY0FBYztpSUFBZCxjQUFjO2tJQUFkLGNBQWMsaUJBakJMLGlCQUFpQixhQUluQyxVQUFVO1lBQ1YsVUFBVTtZQUNWLFVBQVU7WUFDVixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixZQUFZO1lBQ1osVUFBVSxhQVhRLGlCQUFpQixFQWNWLHlCQUF5QjtrSUFHekMsY0FBYyxhQUZkLENBQUMsc0JBQXNCLENBQUMsWUFYakMsVUFBVTtZQUNWLFVBQVU7WUFDVixVQUFVO1lBQ1YsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsWUFBWTtZQUNaLFVBQVU7OzJGQU1ELGNBQWM7a0JBZjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osVUFBVTtxQkFDWDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUseUJBQXlCLENBQUM7b0JBQ3JELFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2J1dHRvbic7XG5pbXBvcnQgeyBDYXJkTW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9jYXJkJztcbmltcG9ydCB7IEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pY29uJztcbmltcG9ydCB7IEl0ZW1Nb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2l0ZW0nO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcG9wb3Zlcic7XG5cbmltcG9ydCB7IExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIExpc3RNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2xpc3QnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9rZXlib2FyZC1oYW5kbGVyLnNlcnZpY2UnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbRHJvcGRvd25Db21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ2FyZE1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIEl0ZW1Nb2R1bGUsXG4gICAgRm9ybUZpZWxkTW9kdWxlLFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBMaXN0TW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5kZWNsYXJhdGlvbnNdLFxuICBleHBvcnRzOiBbLi4uZGVjbGFyYXRpb25zLCBMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbS2V5Ym9hcmRIYW5kbGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLWRyb3Bkb3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZHJvcGRvd24vc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS1kcm9wZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i1.KeyboardHandlerService"],"mappings":"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"}
@@ -4,7 +4,6 @@ import { ButtonComponent } from '@kirbydesign/designsystem/button';
4
4
  import { getIonModalDialogAncestor } from '@kirbydesign/designsystem/helpers';
5
5
  import * as i1 from '@kirbydesign/designsystem/icon';
6
6
  import { IconModule } from '@kirbydesign/designsystem/icon';
7
- import * as i2 from '@angular/common';
8
7
  import { CommonModule } from '@angular/common';
9
8
  import { ThemeColorDirective } from '@kirbydesign/designsystem/shared';
10
9
 
@@ -21,6 +20,7 @@ class EmptyStateComponent {
21
20
  constructor(elementRef, renderer) {
22
21
  this.elementRef = elementRef;
23
22
  this.renderer = renderer;
23
+ this._insideModal = false;
24
24
  }
25
25
  ngOnInit() {
26
26
  /* If initialized inside a modal we want to set
@@ -29,6 +29,7 @@ class EmptyStateComponent {
29
29
  */
30
30
  this.ionModalDialog = getIonModalDialogAncestor(this.elementRef.nativeElement);
31
31
  if (this.ionModalDialog) {
32
+ this._insideModal = true;
32
33
  this.renderer.setAttribute(this.ionModalDialog, 'aria-label', this.title);
33
34
  }
34
35
  }
@@ -54,12 +55,12 @@ class EmptyStateComponent {
54
55
  }
55
56
  });
56
57
  }
57
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
58
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: EmptyStateComponent, isStandalone: false, selector: "kirby-empty-state", inputs: { iconName: "iconName", title: "title", subtitle: "subtitle" }, queries: [{ propertyName: "slottedButtons", predicate: ButtonComponent }], ngImport: i0, template: "<div class=\"message-container\">\n <div *ngIf=\"iconName\" class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" size=\"lg\"></kirby-icon>\n </div>\n <span *ngIf=\"title\" class=\"title kirby-text-medium\">{{ title }}</span>\n <p *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</p>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0", type: EmptyStateComponent, isStandalone: false, selector: "kirby-empty-state", inputs: { iconName: "iconName", title: "title", subtitle: "subtitle" }, queries: [{ propertyName: "slottedButtons", predicate: ButtonComponent }], ngImport: i0, template: "<div class=\"message-container\">\n @if (iconName) {\n <div class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" size=\"lg\"></kirby-icon>\n </div>\n }\n @if (title) {\n @if (_insideModal) {\n <h2 class=\"title kirby-text-medium\">{{ title }}</h2>\n } @else {\n <span class=\"title kirby-text-medium\">{{ title }}</span>\n }\n }\n @if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n }\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
60
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateComponent, decorators: [{
61
62
  type: Component,
62
- args: [{ selector: 'kirby-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"message-container\">\n <div *ngIf=\"iconName\" class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" size=\"lg\"></kirby-icon>\n </div>\n <span *ngIf=\"title\" class=\"title kirby-text-medium\">{{ title }}</span>\n <p *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</p>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\n"] }]
63
+ args: [{ selector: 'kirby-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"message-container\">\n @if (iconName) {\n <div class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" size=\"lg\"></kirby-icon>\n </div>\n }\n @if (title) {\n @if (_insideModal) {\n <h2 class=\"title kirby-text-medium\">{{ title }}</h2>\n } @else {\n <span class=\"title kirby-text-medium\">{{ title }}</span>\n }\n }\n @if (subtitle) {\n <p class=\"subtitle\">{{ subtitle }}</p>\n }\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\n"] }]
63
64
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { iconName: [{
64
65
  type: Input
65
66
  }], title: [{
@@ -73,11 +74,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
73
74
 
74
75
  const declarations = [EmptyStateComponent];
75
76
  class EmptyStateModule {
76
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
77
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateModule, declarations: [EmptyStateComponent], imports: [IconModule, CommonModule, ThemeColorDirective], exports: [EmptyStateComponent, ThemeColorDirective] }); }
78
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateModule, imports: [IconModule, CommonModule] }); }
77
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
78
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateModule, declarations: [EmptyStateComponent], imports: [IconModule, CommonModule, ThemeColorDirective], exports: [EmptyStateComponent, ThemeColorDirective] }); }
79
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateModule, imports: [IconModule, CommonModule] }); }
79
80
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EmptyStateModule, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: EmptyStateModule, decorators: [{
81
82
  type: NgModule,
82
83
  args: [{
83
84
  imports: [IconModule, CommonModule, ThemeColorDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-empty-state.mjs","sources":["../../empty-state/src/empty-state.component.ts","../../empty-state/src/empty-state.component.html","../../empty-state/src/empty-state.module.ts","../../empty-state/src/kirbydesign-designsystem-empty-state.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnInit,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { getIonModalDialogAncestor } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EmptyStateComponent implements AfterContentInit, OnInit {\n private _title: string;\n private ionModalDialog: HTMLElement;\n\n @Input() iconName: string;\n\n @Input() set title(value: string) {\n this._title = value;\n\n if (this.ionModalDialog) {\n this.renderer.setAttribute(this.ionModalDialog, 'aria-label', value);\n }\n }\n\n get title(): string {\n return this._title;\n }\n\n @Input() subtitle: string;\n\n @ContentChildren(ButtonComponent)\n private slottedButtons: QueryList<ButtonComponent>;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n /* If initialized inside a modal we want to set\n * the aria-label attribute on ion-modal to the title of empty state.\n * Further updates are handled by title setter.\n */\n this.ionModalDialog = getIonModalDialogAncestor(this.elementRef.nativeElement);\n if (this.ionModalDialog) {\n this.renderer.setAttribute(this.ionModalDialog, 'aria-label', this.title);\n }\n }\n\n ngAfterContentInit() {\n this.enforceAttentionLevelRules();\n\n /* setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when changing attention \n levels of slotted buttons in this.enforceAttentionLevelRules */\n this.slottedButtons.changes.subscribe(() => {\n setTimeout(() => this.enforceAttentionLevelRules());\n });\n }\n\n /** Enforces that all slotted buttons will have their attention\n * level set to 3, except the first button if it has\n * level 1.\n */\n private enforceAttentionLevelRules() {\n this.slottedButtons.forEach((button, index) => {\n if (index === 0 && (button.attentionLevel === undefined || button.attentionLevel === '1')) {\n return;\n }\n\n if (button.attentionLevel !== '3') {\n button.attentionLevel = '3';\n }\n });\n }\n}\n","<div class=\"message-container\">\n <div *ngIf=\"iconName\" class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" size=\"lg\"></kirby-icon>\n </div>\n <span *ngIf=\"title\" class=\"title kirby-text-medium\">{{ title }}</span>\n <p *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</p>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { EmptyStateComponent } from './empty-state.component';\n\nconst declarations = [EmptyStateComponent];\n\n@NgModule({\n imports: [IconModule, CommonModule, ThemeColorDirective],\n declarations: [...declarations],\n exports: [...declarations, ThemeColorDirective],\n})\nexport class EmptyStateModule {}\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-empty-state.mjs","sources":["../tmp-esm2022/empty-state/empty-state.component.js","../tmp-esm2022/empty-state/empty-state.module.js","../tmp-esm2022/empty-state/kirbydesign-designsystem-empty-state.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ContentChildren, Input, } from '@angular/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { getIonModalDialogAncestor } from '@kirbydesign/designsystem/helpers';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/icon\";\nexport class EmptyStateComponent {\n set title(value) {\n this._title = value;\n if (this.ionModalDialog) {\n this.renderer.setAttribute(this.ionModalDialog, 'aria-label', value);\n }\n }\n get title() {\n return this._title;\n }\n constructor(elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this._insideModal = false;\n }\n ngOnInit() {\n /* If initialized inside a modal we want to set\n * the aria-label attribute on ion-modal to the title of empty state.\n * Further updates are handled by title setter.\n */\n this.ionModalDialog = getIonModalDialogAncestor(this.elementRef.nativeElement);\n if (this.ionModalDialog) {\n this._insideModal = true;\n this.renderer.setAttribute(this.ionModalDialog, 'aria-label', this.title);\n }\n }\n ngAfterContentInit() {\n this.enforceAttentionLevelRules();\n /* setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when changing attention\n levels of slotted buttons in this.enforceAttentionLevelRules */\n this.slottedButtons.changes.subscribe(() => {\n setTimeout(() => this.enforceAttentionLevelRules());\n });\n }\n /** Enforces that all slotted buttons will have their attention\n * level set to 3, except the first button if it has\n * level 1.\n */\n enforceAttentionLevelRules() {\n this.slottedButtons.forEach((button, index) => {\n if (index === 0 && (button.attentionLevel === undefined || button.attentionLevel === '1')) {\n return;\n }\n if (button.attentionLevel !== '3') {\n button.attentionLevel = '3';\n }\n });\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: EmptyStateComponent, isStandalone: false, selector: \"kirby-empty-state\", inputs: { iconName: \"iconName\", title: \"title\", subtitle: \"subtitle\" }, queries: [{ propertyName: \"slottedButtons\", predicate: ButtonComponent }], ngImport: i0, template: \"<div class=\\\"message-container\\\">\\n @if (iconName) {\\n <div class=\\\"icon-outline\\\">\\n <kirby-icon [name]=\\\"iconName\\\" size=\\\"lg\\\"></kirby-icon>\\n </div>\\n }\\n @if (title) {\\n @if (_insideModal) {\\n <h2 class=\\\"title kirby-text-medium\\\">{{ title }}</h2>\\n } @else {\\n <span class=\\\"title kirby-text-medium\\\">{{ title }}</span>\\n }\\n }\\n @if (subtitle) {\\n <p class=\\\"subtitle\\\">{{ subtitle }}</p>\\n }\\n <div class=\\\"content\\\">\\n <ng-content></ng-content>\\n </div>\\n</div>\\n\", styles: [\".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\\n\"], dependencies: [{ kind: \"component\", type: i1.IconComponent, selector: \"kirby-icon\", inputs: [\"size\", \"name\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<div class=\\\"message-container\\\">\\n @if (iconName) {\\n <div class=\\\"icon-outline\\\">\\n <kirby-icon [name]=\\\"iconName\\\" size=\\\"lg\\\"></kirby-icon>\\n </div>\\n }\\n @if (title) {\\n @if (_insideModal) {\\n <h2 class=\\\"title kirby-text-medium\\\">{{ title }}</h2>\\n } @else {\\n <span class=\\\"title kirby-text-medium\\\">{{ title }}</span>\\n }\\n }\\n @if (subtitle) {\\n <p class=\\\"subtitle\\\">{{ subtitle }}</p>\\n }\\n <div class=\\\"content\\\">\\n <ng-content></ng-content>\\n </div>\\n</div>\\n\", styles: [\".message-container{max-width:330px;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center}.icon-outline{width:96px;height:96px;margin-left:auto;margin-right:auto;margin-bottom:24px;display:flex;flex-direction:column;justify-content:center;border:4px solid var(--kirby-medium);border-radius:50%}kirby-icon{color:var(--kirby-medium)}.title{margin-bottom:8px}p.subtitle{margin-bottom:24px;white-space:pre-wrap}:host(.primary) .icon-outline{border-color:var(--kirby-primary)}:host(.primary) kirby-icon{color:var(--kirby-primary)}:host(.secondary) .icon-outline{border-color:var(--kirby-secondary)}:host(.secondary) kirby-icon{color:var(--kirby-secondary)}:host(.tertiary) .icon-outline{border-color:var(--kirby-tertiary)}:host(.tertiary) kirby-icon{color:var(--kirby-tertiary)}:host(.success) .icon-outline{border-color:var(--kirby-success)}:host(.success) kirby-icon{color:var(--kirby-success)}:host(.warning) .icon-outline{border-color:var(--kirby-warning)}:host(.warning) kirby-icon{color:var(--kirby-warning)}:host(.danger) .icon-outline{border-color:var(--kirby-danger)}:host(.danger) kirby-icon{color:var(--kirby-danger)}:host(.white-overlay) .icon-outline{border-color:var(--kirby-white-overlay)}:host(.white-overlay) kirby-icon{color:var(--kirby-white-overlay)}:host(.light) .icon-outline{border-color:var(--kirby-light)}:host(.light) kirby-icon{color:var(--kirby-light)}:host(.medium) .icon-outline{border-color:var(--kirby-medium)}:host(.medium) kirby-icon{color:var(--kirby-medium)}:host(.dark) .icon-outline{border-color:var(--kirby-dark)}:host(.dark) kirby-icon{color:var(--kirby-dark)}:host(.dark-overlay) .icon-outline{border-color:var(--kirby-dark-overlay)}:host(.dark-overlay) kirby-icon{color:var(--kirby-dark-overlay)}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { iconName: [{\n type: Input\n }], title: [{\n type: Input\n }], subtitle: [{\n type: Input\n }], slottedButtons: [{\n type: ContentChildren,\n args: [ButtonComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZW1wdHktc3RhdGUvc3JjL2VtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2VtcHR5LXN0YXRlL3NyYy9lbXB0eS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBUzlFLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBUUQsWUFDVSxVQUFtQyxFQUNuQyxRQUFtQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVDdCLGlCQUFZLEdBQVksS0FBSyxDQUFDO0lBVTNCLENBQUM7SUFFSixRQUFRO1FBQ047OztXQUdHO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9FLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUVsQzt1RUFDK0Q7UUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLGNBQWMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxRixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLGNBQWMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUFqRVUsbUJBQW1CO3FIQUFuQixtQkFBbUIscUxBcUJiLGVBQWUsNkJDMUNsQyxzZ0JBb0JBOzsyRkRDYSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzt1R0FNUixRQUFRO3NCQUFoQixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBYUcsUUFBUTtzQkFBaEIsS0FBSztnQkFHRSxjQUFjO3NCQURyQixlQUFlO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYnV0dG9uJztcbmltcG9ydCB7IGdldElvbk1vZGFsRGlhbG9nQW5jZXN0b3IgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1lbXB0eS1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbXB0eS1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wdHlTdGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCB7XG4gIHByaXZhdGUgX3RpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgaW9uTW9kYWxEaWFsb2c6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpIGljb25OYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90aXRsZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaW9uTW9kYWxEaWFsb2cpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuaW9uTW9kYWxEaWFsb2csICdhcmlhLWxhYmVsJywgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuICBfaW5zaWRlTW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQnV0dG9uQ29tcG9uZW50KVxuICBwcml2YXRlIHNsb3R0ZWRCdXR0b25zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogSWYgaW5pdGlhbGl6ZWQgaW5zaWRlIGEgbW9kYWwgd2Ugd2FudCB0byBzZXRcbiAgICAgKiB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgb24gaW9uLW1vZGFsIHRvIHRoZSB0aXRsZSBvZiBlbXB0eSBzdGF0ZS5cbiAgICAgKiBGdXJ0aGVyIHVwZGF0ZXMgYXJlIGhhbmRsZWQgYnkgdGl0bGUgc2V0dGVyLlxuICAgICAqL1xuICAgIHRoaXMuaW9uTW9kYWxEaWFsb2cgPSBnZXRJb25Nb2RhbERpYWxvZ0FuY2VzdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICBpZiAodGhpcy5pb25Nb2RhbERpYWxvZykge1xuICAgICAgdGhpcy5faW5zaWRlTW9kYWwgPSB0cnVlO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pb25Nb2RhbERpYWxvZywgJ2FyaWEtbGFiZWwnLCB0aGlzLnRpdGxlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5lbmZvcmNlQXR0ZW50aW9uTGV2ZWxSdWxlcygpO1xuXG4gICAgLyogc2V0VGltZW91dCBwcmV2ZW50cyBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yIHdoZW4gY2hhbmdpbmcgYXR0ZW50aW9uIFxuICAgIGxldmVscyBvZiBzbG90dGVkIGJ1dHRvbnMgaW4gdGhpcy5lbmZvcmNlQXR0ZW50aW9uTGV2ZWxSdWxlcyAqL1xuICAgIHRoaXMuc2xvdHRlZEJ1dHRvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmVuZm9yY2VBdHRlbnRpb25MZXZlbFJ1bGVzKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEVuZm9yY2VzIHRoYXQgYWxsIHNsb3R0ZWQgYnV0dG9ucyB3aWxsIGhhdmUgdGhlaXIgYXR0ZW50aW9uXG4gICAqIGxldmVsIHNldCB0byAzLCBleGNlcHQgdGhlIGZpcnN0IGJ1dHRvbiBpZiBpdCBoYXNcbiAgICogbGV2ZWwgMS5cbiAgICovXG4gIHByaXZhdGUgZW5mb3JjZUF0dGVudGlvbkxldmVsUnVsZXMoKSB7XG4gICAgdGhpcy5zbG90dGVkQnV0dG9ucy5mb3JFYWNoKChidXR0b24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5kZXggPT09IDAgJiYgKGJ1dHRvbi5hdHRlbnRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8IGJ1dHRvbi5hdHRlbnRpb25MZXZlbCA9PT0gJzEnKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChidXR0b24uYXR0ZW50aW9uTGV2ZWwgIT09ICczJykge1xuICAgICAgICBidXR0b24uYXR0ZW50aW9uTGV2ZWwgPSAnMyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRhaW5lclwiPlxuICBAaWYgKGljb25OYW1lKSB7XG4gICAgPGRpdiBjbGFzcz1cImljb24tb3V0bGluZVwiPlxuICAgICAgPGtpcmJ5LWljb24gW25hbWVdPVwiaWNvbk5hbWVcIiBzaXplPVwibGdcIj48L2tpcmJ5LWljb24+XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmICh0aXRsZSkge1xuICAgIEBpZiAoX2luc2lkZU1vZGFsKSB7XG4gICAgICA8aDIgY2xhc3M9XCJ0aXRsZSBraXJieS10ZXh0LW1lZGl1bVwiPnt7IHRpdGxlIH19PC9oMj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUga2lyYnktdGV4dC1tZWRpdW1cIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICB9XG4gIH1cbiAgQGlmIChzdWJ0aXRsZSkge1xuICAgIDxwIGNsYXNzPVwic3VidGl0bGVcIj57eyBzdWJ0aXRsZSB9fTwvcD5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { EmptyStateComponent } from './empty-state.component';\nimport * as i0 from \"@angular/core\";\nconst declarations = [EmptyStateComponent];\nexport class EmptyStateModule {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateModule, declarations: [EmptyStateComponent], imports: [IconModule, CommonModule, ThemeColorDirective], exports: [EmptyStateComponent, ThemeColorDirective] }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateModule, imports: [IconModule, CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EmptyStateModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [IconModule, CommonModule, ThemeColorDirective],\n declarations: [...declarations],\n exports: [...declarations, ThemeColorDirective],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZW1wdHktc3RhdGUvc3JjL2VtcHR5LXN0YXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELE1BQU0sWUFBWSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQU8zQyxNQUFNLE9BQU8sZ0JBQWdCO2lJQUFoQixnQkFBZ0I7a0lBQWhCLGdCQUFnQixpQkFQUCxtQkFBbUIsYUFHN0IsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsYUFIbkMsbUJBQW1CLEVBS1osbUJBQW1CO2tJQUVuQyxnQkFBZ0IsWUFKakIsVUFBVSxFQUFFLFlBQVk7OzJGQUl2QixnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztvQkFDeEQsWUFBWSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLG1CQUFtQixDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaWNvbic7XG5pbXBvcnQgeyBUaGVtZUNvbG9yRGlyZWN0aXZlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktc3RhdGUuY29tcG9uZW50JztcblxuY29uc3QgZGVjbGFyYXRpb25zID0gW0VtcHR5U3RhdGVDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbSWNvbk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBUaGVtZUNvbG9yRGlyZWN0aXZlXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zXSxcbiAgZXhwb3J0czogWy4uLmRlY2xhcmF0aW9ucywgVGhlbWVDb2xvckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5U3RhdGVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLWVtcHR5LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZW1wdHktc3RhdGUvc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS1lbXB0eS1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":[],"mappings":"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"}