@kirbydesign/designsystem 5.2.2 → 6.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (716) hide show
  1. package/bundles/kirbydesign-designsystem-testing-base.umd.js +1988 -1259
  2. package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
  3. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js +34 -16
  4. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js.map +1 -1
  5. package/bundles/kirbydesign-designsystem-testing-jest.umd.js +34 -16
  6. package/bundles/kirbydesign-designsystem-testing-jest.umd.js.map +1 -1
  7. package/bundles/kirbydesign-designsystem.umd.js +10025 -9233
  8. package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
  9. package/esm2015/kirbydesign-designsystem.js +1 -115
  10. package/esm2015/lib/components/accordion/accordion-item.component.js +31 -20
  11. package/esm2015/lib/components/accordion/accordion.directive.js +11 -7
  12. package/esm2015/lib/components/app/app.component.js +23 -18
  13. package/esm2015/lib/components/app/app.module.js +13 -8
  14. package/esm2015/lib/components/avatar/avatar.component.js +31 -19
  15. package/esm2015/lib/components/button/button.component.js +63 -34
  16. package/esm2015/lib/components/calendar/calendar.component.js +59 -35
  17. package/esm2015/lib/components/calendar/helpers/calendar.helper.js +8 -8
  18. package/esm2015/lib/components/card/card-footer/card-footer.component.js +14 -11
  19. package/esm2015/lib/components/card/card-header/card-header.component.js +26 -15
  20. package/esm2015/lib/components/card/card.component.js +34 -25
  21. package/esm2015/lib/components/chart/chart-js/chart-js.service.js +48 -34
  22. package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +1 -3
  23. package/esm2015/lib/components/chart/chart.component.js +36 -39
  24. package/esm2015/lib/components/chart/chart.module.js +13 -8
  25. package/esm2015/lib/components/chart/chart.types.js +1 -1
  26. package/esm2015/lib/components/chart/configs/chart-config.service.js +7 -4
  27. package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.js +8 -10
  28. package/esm2015/lib/components/chart/configs/shared.utils.js +1 -1
  29. package/esm2015/lib/components/chart/configs/type.config.js +1 -3
  30. package/esm2015/lib/components/chart/index.js +2 -1
  31. package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.js +7 -4
  32. package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.js +56 -38
  33. package/esm2015/lib/components/chart-deprecated/options/areaspline.js +7 -9
  34. package/esm2015/lib/components/chart-deprecated/options/donut.js +5 -7
  35. package/esm2015/lib/components/chart-deprecated/options/timeseries.js +8 -10
  36. package/esm2015/lib/components/checkbox/checkbox.component.js +47 -21
  37. package/esm2015/lib/components/chip/chip.component.js +24 -13
  38. package/esm2015/lib/components/divider/divider.component.js +16 -12
  39. package/esm2015/lib/components/dropdown/dropdown.component.js +154 -61
  40. package/esm2015/lib/components/dropdown/keyboard-handler.service.js +9 -7
  41. package/esm2015/lib/components/empty-state/empty-state.component.js +27 -16
  42. package/esm2015/lib/components/fab-sheet/fab-sheet.component.js +37 -23
  43. package/esm2015/lib/components/flag/flag.component.js +21 -17
  44. package/esm2015/lib/components/form-field/directives/date/date-input.directive.js +16 -15
  45. package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.js +41 -28
  46. package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.js +17 -13
  47. package/esm2015/lib/components/form-field/form-field.component.js +39 -26
  48. package/esm2015/lib/components/form-field/input/input.component.js +65 -23
  49. package/esm2015/lib/components/form-field/input-counter/input-counter.component.js +14 -11
  50. package/esm2015/lib/components/form-field/textarea/textarea.component.js +51 -20
  51. package/esm2015/lib/components/grid/breakpoint-helper.service.js +9 -9
  52. package/esm2015/lib/components/grid/grid.component.js +21 -18
  53. package/esm2015/lib/components/icon/icon-registry.service.js +11 -19
  54. package/esm2015/lib/components/icon/icon-settings.js +2 -3
  55. package/esm2015/lib/components/icon/icon.component.js +27 -20
  56. package/esm2015/lib/components/icon/icon.module.js +13 -8
  57. package/esm2015/lib/components/icon/index.js +1 -2
  58. package/esm2015/lib/components/icon/kirby-icon-settings.js +2 -4
  59. package/esm2015/lib/components/index.js +11 -10
  60. package/esm2015/lib/components/item/item.component.js +33 -16
  61. package/esm2015/lib/components/item/item.module.js +13 -8
  62. package/esm2015/lib/components/item/label/label.component.js +18 -12
  63. package/esm2015/lib/components/item-group/item-group.component.js +15 -11
  64. package/esm2015/lib/components/item-sliding/item-sliding.component.js +19 -12
  65. package/esm2015/lib/components/list/directives/infinite-scroll.directive.js +18 -17
  66. package/esm2015/lib/components/list/directives/list-item-color.directive.js +17 -11
  67. package/esm2015/lib/components/list/helpers/list-helper.js +7 -4
  68. package/esm2015/lib/components/list/index.js +2 -3
  69. package/esm2015/lib/components/list/list-experimental/list-experimental.component.js +20 -13
  70. package/esm2015/lib/components/list/list-header/list-header.component.js +14 -11
  71. package/esm2015/lib/components/list/list-item/list-item.component.js +38 -24
  72. package/esm2015/lib/components/list/list-section-header/list-section-header.component.js +15 -14
  73. package/esm2015/lib/components/list/list.component.js +81 -40
  74. package/esm2015/lib/components/list/list.directive.js +34 -45
  75. package/esm2015/lib/components/list/list.module.js +33 -12
  76. package/esm2015/lib/components/list/pipes/group-by.pipe.js +10 -6
  77. package/esm2015/lib/components/loading-overlay/loading-overlay.component.js +20 -13
  78. package/esm2015/lib/components/loading-overlay/loading-overlay.service.js +9 -13
  79. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.js +32 -18
  80. package/esm2015/lib/components/modal/alert/alert.component.js +38 -26
  81. package/esm2015/lib/components/modal/alert/config/alert-config.js +1 -1
  82. package/esm2015/lib/components/modal/footer/modal-footer.component.js +25 -13
  83. package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.js +25 -21
  84. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.js +1 -1
  85. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +124 -56
  86. package/esm2015/lib/components/modal/services/action-sheet.helper.js +8 -8
  87. package/esm2015/lib/components/modal/services/alert.helper.js +10 -20
  88. package/esm2015/lib/components/modal/services/modal-animation-builder.service.js +7 -10
  89. package/esm2015/lib/components/modal/services/modal-navigation.service.js +8 -13
  90. package/esm2015/lib/components/modal/services/modal.controller.js +17 -16
  91. package/esm2015/lib/components/modal/services/modal.helper.js +10 -10
  92. package/esm2015/lib/components/page/index.js +2 -1
  93. package/esm2015/lib/components/page/page-footer/page-footer.component.js +21 -18
  94. package/esm2015/lib/components/page/page.component.js +187 -118
  95. package/esm2015/lib/components/page/page.module.js +60 -32
  96. package/esm2015/lib/components/popover/popover.component.js +27 -23
  97. package/esm2015/lib/components/progress-circle/progress-circle-ring.component.js +29 -17
  98. package/esm2015/lib/components/progress-circle/progress-circle.component.js +30 -21
  99. package/esm2015/lib/components/radio/radio-group/radio-group.component.js +60 -34
  100. package/esm2015/lib/components/radio/radio.component.js +36 -17
  101. package/esm2015/lib/components/range/range.component.js +51 -29
  102. package/esm2015/lib/components/reorder-list/reorder-list.component.js +32 -21
  103. package/esm2015/lib/components/router-outlet/router-outlet.component.js +18 -12
  104. package/esm2015/lib/components/router-outlet/router-outlet.module.js +13 -8
  105. package/esm2015/lib/components/section-header/section-header.component.js +15 -9
  106. package/esm2015/lib/components/segmented-control/segment-item.js +1 -1
  107. package/esm2015/lib/components/segmented-control/segmented-control.component.js +38 -29
  108. package/esm2015/lib/components/shared/component-loader.directive.js +15 -16
  109. package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.js +7 -5
  110. package/esm2015/lib/components/shared/resize-observer/resize-observer.service.js +7 -10
  111. package/esm2015/lib/components/slide-button/slide-button.component.js +22 -19
  112. package/esm2015/lib/components/slides/slides.component.js +42 -20
  113. package/esm2015/lib/components/spinner/index.js +3 -0
  114. package/esm2015/lib/components/spinner/spinner.component.js +14 -11
  115. package/esm2015/lib/components/spinner/spinner.module.js +14 -9
  116. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +9 -3
  117. package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.js +25 -20
  118. package/esm2015/lib/components/tabs/tab-button/tab-button.component.js +21 -18
  119. package/esm2015/lib/components/tabs/tabs.component.js +20 -16
  120. package/esm2015/lib/components/tabs/tabs.module.js +14 -9
  121. package/esm2015/lib/components/tabs/tabs.service.js +9 -7
  122. package/esm2015/lib/components/toast/config/toast-config.js +1 -1
  123. package/esm2015/lib/components/toast/services/toast.controller.js +8 -8
  124. package/esm2015/lib/components/toast/services/toast.helper.js +8 -12
  125. package/esm2015/lib/components/toggle/toggle.component.js +21 -14
  126. package/esm2015/lib/components/toggle-button/index.js +3 -0
  127. package/esm2015/lib/components/toggle-button/toggle-button.component.js +20 -13
  128. package/esm2015/lib/components/toggle-button/toggle-button.module.js +13 -8
  129. package/esm2015/lib/components/web-component-proxies.component.js +13 -15
  130. package/esm2015/lib/directives/element-as-button/element-as-button.directive.js +26 -17
  131. package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +16 -17
  132. package/esm2015/lib/directives/fit-heading/fit-heading.module.js +12 -7
  133. package/esm2015/lib/directives/index.js +3 -1
  134. package/esm2015/lib/directives/key-handler/key-handler.directive.js +14 -14
  135. package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.js +20 -15
  136. package/esm2015/lib/directives/theme-color/theme-color.directive.js +55 -24
  137. package/esm2015/lib/helpers/element-has-ancestor.js +1 -1
  138. package/esm2015/lib/helpers/line-clamp-helper.js +7 -8
  139. package/esm2015/lib/helpers/platform.service.js +9 -11
  140. package/esm2015/lib/index.js +1 -5
  141. package/esm2015/lib/kirby.module.js +166 -25
  142. package/esm2015/lib/types/window-ref.js +9 -7
  143. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.js +1 -59
  144. package/esm2015/testing-base/lib/components/index.js +56 -0
  145. package/esm2015/testing-base/lib/components/mock.accordion-item.component.js +26 -18
  146. package/esm2015/testing-base/lib/components/mock.action-sheet.component.js +38 -24
  147. package/esm2015/testing-base/lib/components/mock.app.component.js +22 -14
  148. package/esm2015/testing-base/lib/components/mock.avatar.component.js +37 -24
  149. package/esm2015/testing-base/lib/components/mock.button.component.js +36 -24
  150. package/esm2015/testing-base/lib/components/mock.calendar.component.js +54 -31
  151. package/esm2015/testing-base/lib/components/mock.card-footer.component.js +22 -14
  152. package/esm2015/testing-base/lib/components/mock.card-header.component.js +30 -20
  153. package/esm2015/testing-base/lib/components/mock.card.component.js +34 -22
  154. package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.js +38 -24
  155. package/esm2015/testing-base/lib/components/mock.chart.component.js +38 -25
  156. package/esm2015/testing-base/lib/components/mock.checkbox.component.js +36 -23
  157. package/esm2015/testing-base/lib/components/mock.chip.component.js +26 -18
  158. package/esm2015/testing-base/lib/components/mock.divider.component.js +24 -17
  159. package/esm2015/testing-base/lib/components/mock.dropdown.component.js +49 -30
  160. package/esm2015/testing-base/lib/components/mock.empty-state.component.js +30 -20
  161. package/esm2015/testing-base/lib/components/mock.fab-sheet.component.js +26 -18
  162. package/esm2015/testing-base/lib/components/mock.flag.component.js +26 -18
  163. package/esm2015/testing-base/lib/components/mock.form-field-message.component.js +26 -18
  164. package/esm2015/testing-base/lib/components/mock.form-field.component.js +26 -18
  165. package/esm2015/testing-base/lib/components/mock.grid.component.js +26 -18
  166. package/esm2015/testing-base/lib/components/mock.icon.component.js +29 -20
  167. package/esm2015/testing-base/lib/components/mock.input-counter.component.js +24 -17
  168. package/esm2015/testing-base/lib/components/mock.input.component.js +42 -27
  169. package/esm2015/testing-base/lib/components/mock.item-group.component.js +22 -14
  170. package/esm2015/testing-base/lib/components/mock.item-sliding.component.js +26 -18
  171. package/esm2015/testing-base/lib/components/mock.item.component.js +33 -22
  172. package/esm2015/testing-base/lib/components/mock.label.component.js +24 -17
  173. package/esm2015/testing-base/lib/components/mock.list-experimental.component.js +22 -14
  174. package/esm2015/testing-base/lib/components/mock.list-header.component.js +22 -14
  175. package/esm2015/testing-base/lib/components/mock.list-item.component.js +40 -25
  176. package/esm2015/testing-base/lib/components/mock.list-section-header.component.js +24 -17
  177. package/esm2015/testing-base/lib/components/mock.list.component.js +50 -30
  178. package/esm2015/testing-base/lib/components/mock.loading-overlay.component.js +26 -18
  179. package/esm2015/testing-base/lib/components/mock.modal-footer.component.js +26 -18
  180. package/esm2015/testing-base/lib/components/mock.page-footer.component.js +24 -17
  181. package/esm2015/testing-base/lib/components/mock.page.component.js +228 -125
  182. package/esm2015/testing-base/lib/components/mock.popover.component.js +29 -20
  183. package/esm2015/testing-base/lib/components/mock.progress-circle.component.js +28 -19
  184. package/esm2015/testing-base/lib/components/mock.radio-group.component.js +38 -24
  185. package/esm2015/testing-base/lib/components/mock.radio.component.js +30 -20
  186. package/esm2015/testing-base/lib/components/mock.range.component.js +44 -27
  187. package/esm2015/testing-base/lib/components/mock.reorder-list.component.js +32 -21
  188. package/esm2015/testing-base/lib/components/mock.router-outlet.component.js +24 -17
  189. package/esm2015/testing-base/lib/components/mock.section-header.component.js +22 -14
  190. package/esm2015/testing-base/lib/components/mock.segmented-control.component.js +35 -23
  191. package/esm2015/testing-base/lib/components/mock.slide-button.component.js +30 -20
  192. package/esm2015/testing-base/lib/components/mock.slides.component.js +51 -0
  193. package/esm2015/testing-base/lib/components/mock.spinner.component.js +22 -14
  194. package/esm2015/testing-base/lib/components/mock.tab-button.component.js +26 -18
  195. package/esm2015/testing-base/lib/components/mock.tabs.component.js +22 -14
  196. package/esm2015/testing-base/lib/components/mock.textarea.component.js +35 -23
  197. package/esm2015/testing-base/lib/components/mock.toggle-button.component.js +26 -18
  198. package/esm2015/testing-base/lib/components/mock.toggle.component.js +28 -19
  199. package/esm2015/testing-base/lib/components/mock.web-component-proxies.component.js +33 -0
  200. package/esm2015/testing-base/lib/directives/index.js +4 -0
  201. package/esm2015/testing-base/lib/directives/mock.accordion.directive.js +22 -13
  202. package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.js +24 -15
  203. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.js +24 -16
  204. package/esm2015/testing-base/lib/index.js +4 -0
  205. package/esm2015/testing-base/lib/kirby-testing-base.module.js +69 -7
  206. package/esm2015/testing-base/lib/mock-components.js +5 -2
  207. package/esm2015/testing-base/public_api.js +2 -2
  208. package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.js +1 -2
  209. package/esm2015/testing-jasmine/lib/kirby-testing.module.js +14 -8
  210. package/esm2015/testing-jasmine/lib/mock-providers.js +1 -1
  211. package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.js +1 -2
  212. package/esm2015/testing-jest/lib/kirby-testing.module.js +14 -8
  213. package/esm2015/testing-jest/lib/mock-providers.js +1 -1
  214. package/fesm2015/kirbydesign-designsystem-testing-base.js +1859 -1163
  215. package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
  216. package/fesm2015/kirbydesign-designsystem-testing-jasmine.js +13 -8
  217. package/fesm2015/kirbydesign-designsystem-testing-jasmine.js.map +1 -1
  218. package/fesm2015/kirbydesign-designsystem-testing-jest.js +13 -8
  219. package/fesm2015/kirbydesign-designsystem-testing-jest.js.map +1 -1
  220. package/fesm2015/kirbydesign-designsystem.js +5261 -4353
  221. package/fesm2015/kirbydesign-designsystem.js.map +1 -1
  222. package/icons/svg/more.svg +5 -7
  223. package/kirbydesign-designsystem.d.ts +1 -114
  224. package/lib/components/accordion/accordion-item.component.d.ts +3 -0
  225. package/lib/components/accordion/accordion.directive.d.ts +3 -0
  226. package/lib/components/app/app.component.d.ts +3 -0
  227. package/lib/components/app/app.module.d.ts +7 -0
  228. package/lib/components/avatar/avatar.component.d.ts +5 -2
  229. package/lib/components/button/button.component.d.ts +5 -2
  230. package/lib/components/calendar/calendar.component.d.ts +3 -0
  231. package/lib/components/calendar/helpers/calendar.helper.d.ts +3 -0
  232. package/lib/components/card/card-footer/card-footer.component.d.ts +3 -0
  233. package/lib/components/card/card-header/card-header.component.d.ts +3 -0
  234. package/lib/components/card/card.component.d.ts +3 -0
  235. package/lib/components/chart/chart-js/chart-js.service.d.ts +7 -3
  236. package/lib/components/chart/chart.component.d.ts +5 -5
  237. package/lib/components/chart/chart.module.d.ts +5 -0
  238. package/lib/components/chart/chart.types.d.ts +1 -0
  239. package/lib/components/chart/configs/chart-config.service.d.ts +4 -1
  240. package/lib/components/chart/index.d.ts +1 -0
  241. package/lib/components/chart-deprecated/chart-deprecated-helper.d.ts +3 -0
  242. package/lib/components/chart-deprecated/chart-deprecated.component.d.ts +3 -0
  243. package/lib/components/checkbox/checkbox.component.d.ts +3 -0
  244. package/lib/components/chip/chip.component.d.ts +3 -0
  245. package/lib/components/divider/divider.component.d.ts +3 -0
  246. package/lib/components/dropdown/dropdown.component.d.ts +5 -2
  247. package/lib/components/dropdown/keyboard-handler.service.d.ts +3 -0
  248. package/lib/components/empty-state/empty-state.component.d.ts +3 -0
  249. package/lib/components/fab-sheet/fab-sheet.component.d.ts +3 -0
  250. package/lib/components/flag/flag.component.d.ts +3 -0
  251. package/lib/components/form-field/directives/date/date-input.directive.d.ts +3 -0
  252. package/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.d.ts +3 -0
  253. package/lib/components/form-field/form-field-message/form-field-message.component.d.ts +3 -0
  254. package/lib/components/form-field/form-field.component.d.ts +3 -0
  255. package/lib/components/form-field/input/input.component.d.ts +4 -1
  256. package/lib/components/form-field/input-counter/input-counter.component.d.ts +5 -2
  257. package/lib/components/form-field/textarea/textarea.component.d.ts +3 -0
  258. package/lib/components/grid/breakpoint-helper.service.d.ts +3 -0
  259. package/lib/components/grid/grid.component.d.ts +3 -0
  260. package/lib/components/icon/icon-registry.service.d.ts +4 -2
  261. package/lib/components/icon/icon-settings.d.ts +0 -2
  262. package/lib/components/icon/icon.component.d.ts +4 -1
  263. package/lib/components/icon/icon.module.d.ts +6 -0
  264. package/lib/components/icon/index.d.ts +1 -1
  265. package/lib/components/index.d.ts +10 -9
  266. package/lib/components/item/item.component.d.ts +4 -1
  267. package/lib/components/item/item.module.d.ts +9 -0
  268. package/lib/components/item/label/label.component.d.ts +3 -0
  269. package/lib/components/item-group/item-group.component.d.ts +3 -0
  270. package/lib/components/item-sliding/item-sliding.component.d.ts +3 -0
  271. package/lib/components/list/directives/infinite-scroll.directive.d.ts +3 -0
  272. package/lib/components/list/directives/list-item-color.directive.d.ts +3 -0
  273. package/lib/components/list/helpers/list-helper.d.ts +3 -0
  274. package/lib/components/list/index.d.ts +1 -2
  275. package/lib/components/list/list-experimental/list-experimental.component.d.ts +3 -0
  276. package/lib/components/list/list-header/list-header.component.d.ts +3 -0
  277. package/lib/components/list/list-item/list-item.component.d.ts +3 -0
  278. package/lib/components/list/list-section-header/list-section-header.component.d.ts +3 -0
  279. package/lib/components/list/list.component.d.ts +3 -0
  280. package/lib/components/list/list.directive.d.ts +9 -6
  281. package/lib/components/list/list.module.d.ts +16 -0
  282. package/lib/components/list/pipes/group-by.pipe.d.ts +3 -0
  283. package/lib/components/loading-overlay/loading-overlay.component.d.ts +3 -0
  284. package/lib/components/loading-overlay/loading-overlay.service.d.ts +3 -0
  285. package/lib/components/modal/action-sheet/action-sheet.component.d.ts +3 -0
  286. package/lib/components/modal/alert/alert.component.d.ts +5 -2
  287. package/lib/components/modal/alert/config/alert-config.d.ts +0 -8
  288. package/lib/components/modal/footer/modal-footer.component.d.ts +3 -0
  289. package/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +3 -0
  290. package/lib/components/modal/modal-wrapper/config/modal-config.d.ts +1 -8
  291. package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +5 -0
  292. package/lib/components/modal/services/action-sheet.helper.d.ts +3 -0
  293. package/lib/components/modal/services/alert.helper.d.ts +4 -2
  294. package/lib/components/modal/services/modal-animation-builder.service.d.ts +3 -0
  295. package/lib/components/modal/services/modal-navigation.service.d.ts +3 -0
  296. package/lib/components/modal/services/modal.controller.d.ts +3 -0
  297. package/lib/components/modal/services/modal.helper.d.ts +3 -0
  298. package/lib/components/page/index.d.ts +1 -0
  299. package/lib/components/page/page-footer/page-footer.component.d.ts +3 -0
  300. package/lib/components/page/page.component.d.ts +26 -0
  301. package/lib/components/page/page.module.d.ts +10 -0
  302. package/lib/components/popover/popover.component.d.ts +4 -1
  303. package/lib/components/progress-circle/progress-circle-ring.component.d.ts +3 -0
  304. package/lib/components/progress-circle/progress-circle.component.d.ts +3 -0
  305. package/lib/components/radio/radio-group/radio-group.component.d.ts +3 -0
  306. package/lib/components/radio/radio.component.d.ts +3 -0
  307. package/lib/components/range/range.component.d.ts +3 -0
  308. package/lib/components/reorder-list/reorder-list.component.d.ts +3 -0
  309. package/lib/components/router-outlet/router-outlet.component.d.ts +3 -0
  310. package/lib/components/router-outlet/router-outlet.module.d.ts +7 -0
  311. package/lib/components/section-header/section-header.component.d.ts +3 -0
  312. package/lib/components/segmented-control/segment-item.d.ts +0 -4
  313. package/lib/components/segmented-control/segmented-control.component.d.ts +4 -1
  314. package/lib/components/shared/component-loader.directive.d.ts +3 -0
  315. package/lib/components/shared/resize-observer/resize-observer.factory.d.ts +3 -0
  316. package/lib/components/shared/resize-observer/resize-observer.service.d.ts +3 -0
  317. package/lib/components/slide-button/slide-button.component.d.ts +3 -0
  318. package/lib/components/slides/slides.component.d.ts +5 -0
  319. package/lib/components/spinner/index.d.ts +2 -0
  320. package/lib/components/spinner/spinner.component.d.ts +3 -0
  321. package/lib/components/spinner/spinner.module.d.ts +6 -0
  322. package/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.d.ts +3 -0
  323. package/lib/components/tabs/tab-button/tab-button.component.d.ts +3 -0
  324. package/lib/components/tabs/tabs.component.d.ts +3 -0
  325. package/lib/components/tabs/tabs.module.d.ts +9 -0
  326. package/lib/components/tabs/tabs.service.d.ts +3 -0
  327. package/lib/components/toast/config/toast-config.d.ts +1 -4
  328. package/lib/components/toast/services/toast.controller.d.ts +3 -0
  329. package/lib/components/toast/services/toast.helper.d.ts +3 -0
  330. package/lib/components/toggle/toggle.component.d.ts +3 -0
  331. package/lib/components/toggle-button/index.d.ts +2 -0
  332. package/lib/components/toggle-button/toggle-button.component.d.ts +3 -0
  333. package/lib/components/toggle-button/toggle-button.module.d.ts +6 -0
  334. package/lib/components/web-component-proxies.component.d.ts +3 -0
  335. package/lib/custom-elements-initializer.d.ts +1 -1
  336. package/lib/directives/element-as-button/element-as-button.directive.d.ts +3 -0
  337. package/lib/directives/fit-heading/fit-heading.directive.d.ts +3 -0
  338. package/lib/directives/fit-heading/fit-heading.module.d.ts +5 -0
  339. package/lib/directives/index.d.ts +2 -0
  340. package/lib/directives/key-handler/key-handler.directive.d.ts +3 -0
  341. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts +3 -0
  342. package/lib/directives/theme-color/theme-color.directive.d.ts +3 -0
  343. package/lib/helpers/line-clamp-helper.d.ts +3 -0
  344. package/lib/helpers/platform.service.d.ts +3 -0
  345. package/lib/index.d.ts +0 -1
  346. package/lib/kirby.module.d.ts +69 -0
  347. package/lib/types/window-ref.d.ts +3 -0
  348. package/package.json +3 -4
  349. package/polyfills/intersection-observer-polyfill-loader.js +12 -12
  350. package/polyfills/resize-observer-polyfill-loader.js +1 -1
  351. package/readme.md +0 -16
  352. package/scss/_trigger-publish.scss +1 -0
  353. package/scss/_trigger.scss +1 -0
  354. package/scss/awesome-stylesheet.scss +1 -0
  355. package/scss/base/_awesome-partial.scss +1 -0
  356. package/scss/base/_index.scss +1 -0
  357. package/scss/base/_interaction-states.scss +1 -0
  358. package/scss/base/_link.scss +1 -0
  359. package/scss/base/index.scss +1 -0
  360. package/scss/interaction-state/_active.scss +1 -0
  361. package/scss/interaction-state/_focus.scss +1 -0
  362. package/scss/interaction-state/_hover.scss +1 -0
  363. package/scss/interaction-state/_index.scss +1 -0
  364. package/scss/interaction-state/_interaction-state.utilities.scss +1 -0
  365. package/scss/interaction-state/_layer.scss +1 -0
  366. package/scss/interaction-state/_state-layer.scss +1 -0
  367. package/scss/interaction-state/_utilities.scss +1 -0
  368. package/scss/interaction-state/ionic/_active.scss +1 -0
  369. package/scss/interaction-state/ionic/_hover.scss +1 -0
  370. package/scss/interaction-state/ionic/_index.scss +1 -0
  371. package/scss/interaction-states/_hover.scss +1 -0
  372. package/scss/interaction-states/_index.scss +1 -0
  373. package/scss/opt-out/_index.scss +1 -0
  374. package/scss/opt-out/_link.scss +1 -0
  375. package/testing-base/kirbydesign-designsystem-testing-base.d.ts +1 -58
  376. package/testing-base/lib/components/index.d.ts +55 -0
  377. package/testing-base/lib/components/mock.accordion-item.component.d.ts +3 -0
  378. package/testing-base/lib/components/mock.action-sheet.component.d.ts +3 -0
  379. package/testing-base/lib/components/mock.app.component.d.ts +3 -0
  380. package/testing-base/lib/components/mock.avatar.component.d.ts +4 -1
  381. package/testing-base/lib/components/mock.button.component.d.ts +4 -1
  382. package/testing-base/lib/components/mock.calendar.component.d.ts +4 -0
  383. package/testing-base/lib/components/mock.card-footer.component.d.ts +3 -0
  384. package/testing-base/lib/components/mock.card-header.component.d.ts +3 -0
  385. package/testing-base/lib/components/mock.card.component.d.ts +3 -0
  386. package/testing-base/lib/components/mock.chart-deprecated.component.d.ts +3 -0
  387. package/testing-base/lib/components/mock.chart.component.d.ts +5 -3
  388. package/testing-base/lib/components/mock.checkbox.component.d.ts +3 -0
  389. package/testing-base/lib/components/mock.chip.component.d.ts +3 -0
  390. package/testing-base/lib/components/mock.divider.component.d.ts +3 -0
  391. package/testing-base/lib/components/mock.dropdown.component.d.ts +4 -1
  392. package/testing-base/lib/components/mock.empty-state.component.d.ts +3 -0
  393. package/testing-base/lib/components/mock.fab-sheet.component.d.ts +3 -0
  394. package/testing-base/lib/components/mock.flag.component.d.ts +3 -0
  395. package/testing-base/lib/components/mock.form-field-message.component.d.ts +3 -0
  396. package/testing-base/lib/components/mock.form-field.component.d.ts +3 -0
  397. package/testing-base/lib/components/mock.grid.component.d.ts +3 -0
  398. package/testing-base/lib/components/mock.icon.component.d.ts +4 -1
  399. package/testing-base/lib/components/mock.input-counter.component.d.ts +3 -0
  400. package/testing-base/lib/components/mock.input.component.d.ts +4 -1
  401. package/testing-base/lib/components/mock.item-group.component.d.ts +3 -0
  402. package/testing-base/lib/components/mock.item-sliding.component.d.ts +3 -0
  403. package/testing-base/lib/components/mock.item.component.d.ts +4 -1
  404. package/testing-base/lib/components/mock.label.component.d.ts +3 -0
  405. package/testing-base/lib/components/mock.list-experimental.component.d.ts +3 -0
  406. package/testing-base/lib/components/mock.list-header.component.d.ts +3 -0
  407. package/testing-base/lib/components/mock.list-item.component.d.ts +3 -0
  408. package/testing-base/lib/components/mock.list-section-header.component.d.ts +3 -0
  409. package/testing-base/lib/components/mock.list.component.d.ts +3 -0
  410. package/testing-base/lib/components/mock.loading-overlay.component.d.ts +3 -0
  411. package/testing-base/lib/components/mock.modal-footer.component.d.ts +3 -0
  412. package/testing-base/lib/components/mock.page-footer.component.d.ts +3 -0
  413. package/testing-base/lib/components/mock.page.component.d.ts +24 -0
  414. package/testing-base/lib/components/mock.popover.component.d.ts +4 -1
  415. package/testing-base/lib/components/mock.progress-circle.component.d.ts +3 -0
  416. package/testing-base/lib/components/mock.radio-group.component.d.ts +3 -0
  417. package/testing-base/lib/components/mock.radio.component.d.ts +3 -0
  418. package/testing-base/lib/components/mock.range.component.d.ts +3 -0
  419. package/testing-base/lib/components/mock.reorder-list.component.d.ts +3 -0
  420. package/testing-base/lib/components/mock.router-outlet.component.d.ts +3 -0
  421. package/testing-base/lib/components/mock.section-header.component.d.ts +3 -0
  422. package/testing-base/lib/components/mock.segmented-control.component.d.ts +4 -1
  423. package/testing-base/lib/components/mock.slide-button.component.d.ts +3 -0
  424. package/testing-base/lib/components/mock.slides.component.d.ts +11 -0
  425. package/testing-base/lib/components/mock.spinner.component.d.ts +3 -0
  426. package/testing-base/lib/components/mock.tab-button.component.d.ts +3 -0
  427. package/testing-base/lib/components/mock.tabs.component.d.ts +3 -0
  428. package/testing-base/lib/components/mock.textarea.component.d.ts +3 -0
  429. package/testing-base/lib/components/mock.toggle-button.component.d.ts +3 -0
  430. package/testing-base/lib/components/mock.toggle.component.d.ts +3 -0
  431. package/testing-base/lib/components/mock.web-component-proxies.component.d.ts +8 -0
  432. package/testing-base/lib/directives/index.d.ts +3 -0
  433. package/testing-base/lib/directives/mock.accordion.directive.d.ts +3 -0
  434. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts +3 -0
  435. package/testing-base/lib/directives/mock.theme-color.directive.d.ts +3 -0
  436. package/testing-base/lib/index.d.ts +3 -0
  437. package/testing-base/lib/kirby-testing-base.module.d.ts +61 -0
  438. package/testing-base/package.json +0 -1
  439. package/testing-base/public_api.d.ts +1 -1
  440. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.d.ts +1 -1
  441. package/testing-jasmine/lib/kirby-testing.module.d.ts +5 -0
  442. package/testing-jasmine/package.json +0 -1
  443. package/testing-jest/kirbydesign-designsystem-testing-jest.d.ts +1 -1
  444. package/testing-jest/lib/kirby-testing.module.d.ts +5 -0
  445. package/testing-jest/package.json +0 -1
  446. package/README.md +0 -7
  447. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +0 -2
  448. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +0 -1
  449. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js +0 -16
  450. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js.map +0 -1
  451. package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js +0 -16
  452. package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js.map +0 -1
  453. package/bundles/kirbydesign-designsystem.umd.min.js +0 -2
  454. package/bundles/kirbydesign-designsystem.umd.min.js.map +0 -1
  455. package/esm2015/index.metadata.json +0 -1
  456. package/esm2015/kirbydesign-designsystem.metadata.json +0 -1
  457. package/esm2015/lib/components/accordion/accordion-item.component.metadata.json +0 -1
  458. package/esm2015/lib/components/accordion/accordion.directive.metadata.json +0 -1
  459. package/esm2015/lib/components/accordion/index.metadata.json +0 -1
  460. package/esm2015/lib/components/angular-component-lib/utils.metadata.json +0 -1
  461. package/esm2015/lib/components/app/app.component.metadata.json +0 -1
  462. package/esm2015/lib/components/app/app.module.metadata.json +0 -1
  463. package/esm2015/lib/components/app/index.metadata.json +0 -1
  464. package/esm2015/lib/components/avatar/avatar.component.metadata.json +0 -1
  465. package/esm2015/lib/components/button/button.component.metadata.json +0 -1
  466. package/esm2015/lib/components/calendar/calendar.component.metadata.json +0 -1
  467. package/esm2015/lib/components/calendar/helpers/calendar-cell.model.metadata.json +0 -1
  468. package/esm2015/lib/components/calendar/helpers/calendar-options.model.metadata.json +0 -1
  469. package/esm2015/lib/components/calendar/helpers/calendar.helper.metadata.json +0 -1
  470. package/esm2015/lib/components/calendar/index.metadata.json +0 -1
  471. package/esm2015/lib/components/calendar/options/calendar-year-navigator-config.metadata.json +0 -1
  472. package/esm2015/lib/components/card/card-footer/card-footer.component.metadata.json +0 -1
  473. package/esm2015/lib/components/card/card-header/card-header.component.metadata.json +0 -1
  474. package/esm2015/lib/components/card/card.component.metadata.json +0 -1
  475. package/esm2015/lib/components/card/index.metadata.json +0 -1
  476. package/esm2015/lib/components/chart/chart-js/chart-js.service.metadata.json +0 -1
  477. package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.metadata.json +0 -1
  478. package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +0 -1
  479. package/esm2015/lib/components/chart/chart.component.metadata.json +0 -1
  480. package/esm2015/lib/components/chart/chart.module.metadata.json +0 -1
  481. package/esm2015/lib/components/chart/chart.types.metadata.json +0 -1
  482. package/esm2015/lib/components/chart/configs/annotations.config.metadata.json +0 -1
  483. package/esm2015/lib/components/chart/configs/chart-config.service.metadata.json +0 -1
  484. package/esm2015/lib/components/chart/configs/global-defaults.config.metadata.json +0 -1
  485. package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.metadata.json +0 -1
  486. package/esm2015/lib/components/chart/configs/shared.utils.metadata.json +0 -1
  487. package/esm2015/lib/components/chart/configs/type.config.metadata.json +0 -1
  488. package/esm2015/lib/components/chart/index.metadata.json +0 -1
  489. package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.metadata.json +0 -1
  490. package/esm2015/lib/components/chart-deprecated/chart-deprecated-type.metadata.json +0 -1
  491. package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.metadata.json +0 -1
  492. package/esm2015/lib/components/chart-deprecated/index.metadata.json +0 -1
  493. package/esm2015/lib/components/chart-deprecated/options/activitygauge.metadata.json +0 -1
  494. package/esm2015/lib/components/chart-deprecated/options/areaspline.metadata.json +0 -1
  495. package/esm2015/lib/components/chart-deprecated/options/bar.metadata.json +0 -1
  496. package/esm2015/lib/components/chart-deprecated/options/column.metadata.json +0 -1
  497. package/esm2015/lib/components/chart-deprecated/options/donut.metadata.json +0 -1
  498. package/esm2015/lib/components/chart-deprecated/options/timeseries.metadata.json +0 -1
  499. package/esm2015/lib/components/checkbox/checkbox.component.metadata.json +0 -1
  500. package/esm2015/lib/components/chip/chip.component.metadata.json +0 -1
  501. package/esm2015/lib/components/divider/divider.component.metadata.json +0 -1
  502. package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +0 -1
  503. package/esm2015/lib/components/dropdown/dropdown.types.metadata.json +0 -1
  504. package/esm2015/lib/components/dropdown/keyboard-handler.service.metadata.json +0 -1
  505. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +0 -1
  506. package/esm2015/lib/components/fab-sheet/fab-sheet.component.metadata.json +0 -1
  507. package/esm2015/lib/components/flag/flag.component.metadata.json +0 -1
  508. package/esm2015/lib/components/form-field/directives/date/date-input.directive.metadata.json +0 -1
  509. package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.metadata.json +0 -1
  510. package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.metadata.json +0 -1
  511. package/esm2015/lib/components/form-field/form-field.component.metadata.json +0 -1
  512. package/esm2015/lib/components/form-field/index.metadata.json +0 -1
  513. package/esm2015/lib/components/form-field/input/input.component.metadata.json +0 -1
  514. package/esm2015/lib/components/form-field/input-counter/input-counter.component.metadata.json +0 -1
  515. package/esm2015/lib/components/form-field/textarea/textarea.component.metadata.json +0 -1
  516. package/esm2015/lib/components/grid/breakpoint-helper.service.metadata.json +0 -1
  517. package/esm2015/lib/components/grid/grid-card-configuration.metadata.json +0 -1
  518. package/esm2015/lib/components/grid/grid.component.metadata.json +0 -1
  519. package/esm2015/lib/components/icon/icon-registry.service.metadata.json +0 -1
  520. package/esm2015/lib/components/icon/icon-settings.metadata.json +0 -1
  521. package/esm2015/lib/components/icon/icon.component.metadata.json +0 -1
  522. package/esm2015/lib/components/icon/icon.module.metadata.json +0 -1
  523. package/esm2015/lib/components/icon/index.metadata.json +0 -1
  524. package/esm2015/lib/components/icon/kirby-icon-settings.metadata.json +0 -1
  525. package/esm2015/lib/components/index.metadata.json +0 -1
  526. package/esm2015/lib/components/item/index.metadata.json +0 -1
  527. package/esm2015/lib/components/item/item.component.metadata.json +0 -1
  528. package/esm2015/lib/components/item/item.module.metadata.json +0 -1
  529. package/esm2015/lib/components/item/label/label.component.metadata.json +0 -1
  530. package/esm2015/lib/components/item-group/item-group.component.metadata.json +0 -1
  531. package/esm2015/lib/components/item-sliding/index.metadata.json +0 -1
  532. package/esm2015/lib/components/item-sliding/item-sliding.component.metadata.json +0 -1
  533. package/esm2015/lib/components/item-sliding/item-sliding.types.metadata.json +0 -1
  534. package/esm2015/lib/components/list/directives/infinite-scroll.directive.metadata.json +0 -1
  535. package/esm2015/lib/components/list/directives/list-item-color.directive.metadata.json +0 -1
  536. package/esm2015/lib/components/list/directives/scroll.model.metadata.json +0 -1
  537. package/esm2015/lib/components/list/helpers/list-helper.metadata.json +0 -1
  538. package/esm2015/lib/components/list/index.metadata.json +0 -1
  539. package/esm2015/lib/components/list/list-experimental/list-experimental.component.metadata.json +0 -1
  540. package/esm2015/lib/components/list/list-header/list-header.component.metadata.json +0 -1
  541. package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +0 -1
  542. package/esm2015/lib/components/list/list-section-header/list-section-header.component.metadata.json +0 -1
  543. package/esm2015/lib/components/list/list-swipe-action.type.metadata.json +0 -1
  544. package/esm2015/lib/components/list/list.component.metadata.json +0 -1
  545. package/esm2015/lib/components/list/list.directive.metadata.json +0 -1
  546. package/esm2015/lib/components/list/list.event.metadata.json +0 -1
  547. package/esm2015/lib/components/list/list.module.metadata.json +0 -1
  548. package/esm2015/lib/components/list/pipes/group-by.pipe.metadata.json +0 -1
  549. package/esm2015/lib/components/loading-overlay/index.metadata.json +0 -1
  550. package/esm2015/lib/components/loading-overlay/loading-overlay.component.metadata.json +0 -1
  551. package/esm2015/lib/components/loading-overlay/loading-overlay.service.metadata.json +0 -1
  552. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.metadata.json +0 -1
  553. package/esm2015/lib/components/modal/action-sheet/config/action-sheet-config.metadata.json +0 -1
  554. package/esm2015/lib/components/modal/action-sheet/config/action-sheet-item.metadata.json +0 -1
  555. package/esm2015/lib/components/modal/alert/alert.component.metadata.json +0 -1
  556. package/esm2015/lib/components/modal/alert/config/alert-config.metadata.json +0 -1
  557. package/esm2015/lib/components/modal/footer/modal-footer.component.metadata.json +0 -1
  558. package/esm2015/lib/components/modal/index.metadata.json +0 -1
  559. package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.metadata.json +0 -1
  560. package/esm2015/lib/components/modal/modal-wrapper/config/drawer-supplementary-action.metadata.json +0 -1
  561. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.helper.metadata.json +0 -1
  562. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.metadata.json +0 -1
  563. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +0 -1
  564. package/esm2015/lib/components/modal/services/action-sheet.helper.metadata.json +0 -1
  565. package/esm2015/lib/components/modal/services/alert.helper.metadata.json +0 -1
  566. package/esm2015/lib/components/modal/services/modal-animation-builder.service.metadata.json +0 -1
  567. package/esm2015/lib/components/modal/services/modal-navigation.service.metadata.json +0 -1
  568. package/esm2015/lib/components/modal/services/modal.controller.metadata.json +0 -1
  569. package/esm2015/lib/components/modal/services/modal.helper.metadata.json +0 -1
  570. package/esm2015/lib/components/modal/services/modal.interfaces.metadata.json +0 -1
  571. package/esm2015/lib/components/page/index.metadata.json +0 -1
  572. package/esm2015/lib/components/page/page-footer/page-footer.component.metadata.json +0 -1
  573. package/esm2015/lib/components/page/page.component.metadata.json +0 -1
  574. package/esm2015/lib/components/page/page.module.metadata.json +0 -1
  575. package/esm2015/lib/components/popover/popover.component.metadata.json +0 -1
  576. package/esm2015/lib/components/progress-circle/progress-circle-ring.component.metadata.json +0 -1
  577. package/esm2015/lib/components/progress-circle/progress-circle.component.metadata.json +0 -1
  578. package/esm2015/lib/components/radio/index.metadata.json +0 -1
  579. package/esm2015/lib/components/radio/radio-group/radio-group.component.metadata.json +0 -1
  580. package/esm2015/lib/components/radio/radio.component.metadata.json +0 -1
  581. package/esm2015/lib/components/range/range.component.metadata.json +0 -1
  582. package/esm2015/lib/components/reorder-list/index.metadata.json +0 -1
  583. package/esm2015/lib/components/reorder-list/reorder-event.metadata.json +0 -1
  584. package/esm2015/lib/components/reorder-list/reorder-list.component.metadata.json +0 -1
  585. package/esm2015/lib/components/router-outlet/index.metadata.json +0 -1
  586. package/esm2015/lib/components/router-outlet/router-outlet.component.metadata.json +0 -1
  587. package/esm2015/lib/components/router-outlet/router-outlet.module.metadata.json +0 -1
  588. package/esm2015/lib/components/section-header/section-header.component.metadata.json +0 -1
  589. package/esm2015/lib/components/segmented-control/segment-item.metadata.json +0 -1
  590. package/esm2015/lib/components/segmented-control/segmented-control.component.metadata.json +0 -1
  591. package/esm2015/lib/components/shared/component-configuration.metadata.json +0 -1
  592. package/esm2015/lib/components/shared/component-loader.directive.metadata.json +0 -1
  593. package/esm2015/lib/components/shared/dynamic-component.metadata.json +0 -1
  594. package/esm2015/lib/components/shared/index.metadata.json +0 -1
  595. package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.metadata.json +0 -1
  596. package/esm2015/lib/components/shared/resize-observer/resize-observer.service.metadata.json +0 -1
  597. package/esm2015/lib/components/shared/resize-observer/types/resize-observer-callback.metadata.json +0 -1
  598. package/esm2015/lib/components/shared/resize-observer/types/resize-observer-entry.metadata.json +0 -1
  599. package/esm2015/lib/components/shared/resize-observer/types/resize-observer.metadata.json +0 -1
  600. package/esm2015/lib/components/slide-button/slide-button.component.metadata.json +0 -1
  601. package/esm2015/lib/components/slides/slides.component.metadata.json +0 -1
  602. package/esm2015/lib/components/spinner/spinner.component.metadata.json +0 -1
  603. package/esm2015/lib/components/spinner/spinner.module.metadata.json +0 -1
  604. package/esm2015/lib/components/stock-chart-deprecated/index.metadata.json +0 -1
  605. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.metadata.json +0 -1
  606. package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.metadata.json +0 -1
  607. package/esm2015/lib/components/tabs/index.metadata.json +0 -1
  608. package/esm2015/lib/components/tabs/tab-button/tab-button.component.metadata.json +0 -1
  609. package/esm2015/lib/components/tabs/tab-button/tab-button.events.metadata.json +0 -1
  610. package/esm2015/lib/components/tabs/tabs.component.metadata.json +0 -1
  611. package/esm2015/lib/components/tabs/tabs.module.metadata.json +0 -1
  612. package/esm2015/lib/components/tabs/tabs.service.metadata.json +0 -1
  613. package/esm2015/lib/components/toast/config/toast-config.metadata.json +0 -1
  614. package/esm2015/lib/components/toast/index.metadata.json +0 -1
  615. package/esm2015/lib/components/toast/services/toast.controller.metadata.json +0 -1
  616. package/esm2015/lib/components/toast/services/toast.helper.metadata.json +0 -1
  617. package/esm2015/lib/components/toggle/toggle.component.metadata.json +0 -1
  618. package/esm2015/lib/components/toggle-button/toggle-button.component.metadata.json +0 -1
  619. package/esm2015/lib/components/toggle-button/toggle-button.module.metadata.json +0 -1
  620. package/esm2015/lib/components/web-component-proxies.component.metadata.json +0 -1
  621. package/esm2015/lib/custom-elements-initializer.metadata.json +0 -1
  622. package/esm2015/lib/directives/element-as-button/element-as-button.directive.metadata.json +0 -1
  623. package/esm2015/lib/directives/fit-heading/fit-heading.directive.metadata.json +0 -1
  624. package/esm2015/lib/directives/fit-heading/fit-heading.module.metadata.json +0 -1
  625. package/esm2015/lib/directives/index.metadata.json +0 -1
  626. package/esm2015/lib/directives/key-handler/key-handler.directive.metadata.json +0 -1
  627. package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.metadata.json +0 -1
  628. package/esm2015/lib/directives/theme-color/theme-color.directive.metadata.json +0 -1
  629. package/esm2015/lib/helpers/color-helper.metadata.json +0 -1
  630. package/esm2015/lib/helpers/deep-copy.metadata.json +0 -1
  631. package/esm2015/lib/helpers/design-token-helper.metadata.json +0 -1
  632. package/esm2015/lib/helpers/element-has-ancestor.metadata.json +0 -1
  633. package/esm2015/lib/helpers/index.metadata.json +0 -1
  634. package/esm2015/lib/helpers/line-clamp-helper.metadata.json +0 -1
  635. package/esm2015/lib/helpers/merge-deep.metadata.json +0 -1
  636. package/esm2015/lib/helpers/platform.service.metadata.json +0 -1
  637. package/esm2015/lib/helpers/string-helper.metadata.json +0 -1
  638. package/esm2015/lib/helpers/theme-color.type.metadata.json +0 -1
  639. package/esm2015/lib/helpers/unique-id-generator.helper.metadata.json +0 -1
  640. package/esm2015/lib/index.metadata.json +0 -1
  641. package/esm2015/lib/kirby.module.metadata.json +0 -1
  642. package/esm2015/lib/scss/scss-helper.metadata.json +0 -1
  643. package/esm2015/lib/types/window-ref.metadata.json +0 -1
  644. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
  645. package/esm2015/testing-base/lib/components/mock.accordion-item.component.metadata.json +0 -1
  646. package/esm2015/testing-base/lib/components/mock.action-sheet.component.metadata.json +0 -1
  647. package/esm2015/testing-base/lib/components/mock.app.component.metadata.json +0 -1
  648. package/esm2015/testing-base/lib/components/mock.avatar.component.metadata.json +0 -1
  649. package/esm2015/testing-base/lib/components/mock.button.component.metadata.json +0 -1
  650. package/esm2015/testing-base/lib/components/mock.calendar.component.metadata.json +0 -1
  651. package/esm2015/testing-base/lib/components/mock.card-footer.component.metadata.json +0 -1
  652. package/esm2015/testing-base/lib/components/mock.card-header.component.metadata.json +0 -1
  653. package/esm2015/testing-base/lib/components/mock.card.component.metadata.json +0 -1
  654. package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.metadata.json +0 -1
  655. package/esm2015/testing-base/lib/components/mock.chart.component.metadata.json +0 -1
  656. package/esm2015/testing-base/lib/components/mock.checkbox.component.metadata.json +0 -1
  657. package/esm2015/testing-base/lib/components/mock.chip.component.metadata.json +0 -1
  658. package/esm2015/testing-base/lib/components/mock.divider.component.metadata.json +0 -1
  659. package/esm2015/testing-base/lib/components/mock.dropdown.component.metadata.json +0 -1
  660. package/esm2015/testing-base/lib/components/mock.empty-state.component.metadata.json +0 -1
  661. package/esm2015/testing-base/lib/components/mock.fab-sheet.component.metadata.json +0 -1
  662. package/esm2015/testing-base/lib/components/mock.flag.component.metadata.json +0 -1
  663. package/esm2015/testing-base/lib/components/mock.form-field-message.component.metadata.json +0 -1
  664. package/esm2015/testing-base/lib/components/mock.form-field.component.metadata.json +0 -1
  665. package/esm2015/testing-base/lib/components/mock.grid.component.metadata.json +0 -1
  666. package/esm2015/testing-base/lib/components/mock.icon.component.metadata.json +0 -1
  667. package/esm2015/testing-base/lib/components/mock.input-counter.component.metadata.json +0 -1
  668. package/esm2015/testing-base/lib/components/mock.input.component.metadata.json +0 -1
  669. package/esm2015/testing-base/lib/components/mock.item-group.component.metadata.json +0 -1
  670. package/esm2015/testing-base/lib/components/mock.item-sliding.component.metadata.json +0 -1
  671. package/esm2015/testing-base/lib/components/mock.item.component.metadata.json +0 -1
  672. package/esm2015/testing-base/lib/components/mock.label.component.metadata.json +0 -1
  673. package/esm2015/testing-base/lib/components/mock.list-experimental.component.metadata.json +0 -1
  674. package/esm2015/testing-base/lib/components/mock.list-header.component.metadata.json +0 -1
  675. package/esm2015/testing-base/lib/components/mock.list-item.component.metadata.json +0 -1
  676. package/esm2015/testing-base/lib/components/mock.list-section-header.component.metadata.json +0 -1
  677. package/esm2015/testing-base/lib/components/mock.list.component.metadata.json +0 -1
  678. package/esm2015/testing-base/lib/components/mock.loading-overlay.component.metadata.json +0 -1
  679. package/esm2015/testing-base/lib/components/mock.modal-footer.component.metadata.json +0 -1
  680. package/esm2015/testing-base/lib/components/mock.page-footer.component.metadata.json +0 -1
  681. package/esm2015/testing-base/lib/components/mock.page.component.metadata.json +0 -1
  682. package/esm2015/testing-base/lib/components/mock.popover.component.metadata.json +0 -1
  683. package/esm2015/testing-base/lib/components/mock.progress-circle.component.metadata.json +0 -1
  684. package/esm2015/testing-base/lib/components/mock.radio-group.component.metadata.json +0 -1
  685. package/esm2015/testing-base/lib/components/mock.radio.component.metadata.json +0 -1
  686. package/esm2015/testing-base/lib/components/mock.range.component.metadata.json +0 -1
  687. package/esm2015/testing-base/lib/components/mock.reorder-list.component.metadata.json +0 -1
  688. package/esm2015/testing-base/lib/components/mock.router-outlet.component.metadata.json +0 -1
  689. package/esm2015/testing-base/lib/components/mock.section-header.component.metadata.json +0 -1
  690. package/esm2015/testing-base/lib/components/mock.segmented-control.component.metadata.json +0 -1
  691. package/esm2015/testing-base/lib/components/mock.slide-button.component.metadata.json +0 -1
  692. package/esm2015/testing-base/lib/components/mock.spinner.component.metadata.json +0 -1
  693. package/esm2015/testing-base/lib/components/mock.tab-button.component.metadata.json +0 -1
  694. package/esm2015/testing-base/lib/components/mock.tabs.component.metadata.json +0 -1
  695. package/esm2015/testing-base/lib/components/mock.textarea.component.metadata.json +0 -1
  696. package/esm2015/testing-base/lib/components/mock.toggle-button.component.metadata.json +0 -1
  697. package/esm2015/testing-base/lib/components/mock.toggle.component.metadata.json +0 -1
  698. package/esm2015/testing-base/lib/directives/mock.accordion.directive.metadata.json +0 -1
  699. package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.metadata.json +0 -1
  700. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.metadata.json +0 -1
  701. package/esm2015/testing-base/lib/kirby-testing-base.module.metadata.json +0 -1
  702. package/esm2015/testing-base/lib/mock-components.metadata.json +0 -1
  703. package/esm2015/testing-base/lib/mock-directives.metadata.json +0 -1
  704. package/esm2015/testing-base/public_api.metadata.json +0 -1
  705. package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
  706. package/esm2015/testing-jasmine/lib/kirby-testing.module.metadata.json +0 -1
  707. package/esm2015/testing-jasmine/lib/mock-providers.metadata.json +0 -1
  708. package/esm2015/testing-jasmine/public_api.metadata.json +0 -1
  709. package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
  710. package/esm2015/testing-jest/lib/kirby-testing.module.metadata.json +0 -1
  711. package/esm2015/testing-jest/lib/mock-providers.metadata.json +0 -1
  712. package/esm2015/testing-jest/public_api.metadata.json +0 -1
  713. package/kirbydesign-designsystem.metadata.json +0 -1
  714. package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
  715. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
  716. package/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
@@ -1,5 +1,6 @@
1
- import { Component, ContentChild, ElementRef, HostBinding, Input, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostBinding, Input, } from '@angular/core';
2
2
  import { IconComponent } from '../icon/icon.component';
3
+ import * as i0 from "@angular/core";
3
4
  export var ButtonSize;
4
5
  (function (ButtonSize) {
5
6
  ButtonSize["SM"] = "sm";
@@ -50,36 +51,64 @@ export class ButtonComponent {
50
51
  }
51
52
  }
52
53
  }
53
- ButtonComponent.decorators = [
54
- { type: Component, args: [{
55
- // tslint:disable-next-line:component-selector
56
- selector: 'button[kirby-button],Button[kirby-button]',
57
- template: "<ng-content></ng-content>\n",
58
- styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color,initial);color:var(--kirby-button-color,inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color,transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right:8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left:8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size:16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color:var(--kirby-primary);--kirby-button-color:var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color:var(--kirby-danger);--kirby-button-color:var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color:var(--kirby-white);--kirby-button-color:var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color:var(--kirby-light);--kirby-button-color:var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color:transparent;--kirby-button-color:var(--kirby-black);--kirby-button-border-color:var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color:var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color:transparent;--kirby-button-color:var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color:var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover:hover){:host:focus{--kirby-button-border-color:#4d90fe}}@media (hover:hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color:var(--kirby-black);--kirby-button-color:var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color:var(--kirby-white);--kirby-button-color:var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color:var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px rgba(28,28,28,.3),0 0 5px 0 rgba(28,28,28,.08)}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color:var(--kirby-success);--kirby-button-color:var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color:transparent;--kirby-button-color:var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color:var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color:var(--kirby-white);--kirby-button-color:var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color:var(--kirby-light);--kirby-button-color:var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color:var(--kirby-success);--kirby-button-color:var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color:var(--kirby-warning);--kirby-button-color:var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color:var(--kirby-danger);--kirby-button-color:var(--kirby-danger-contrast)}"]
59
- },] }
60
- ];
61
- /** @nocollapse */
62
- ButtonComponent.ctorParameters = () => [
63
- { type: ElementRef }
64
- ];
65
- ButtonComponent.propDecorators = {
66
- isAttentionLevel1: [{ type: HostBinding, args: ['class.attention-level1',] }],
67
- isAttentionLevel2: [{ type: HostBinding, args: ['class.attention-level2',] }],
68
- isAttentionLevel3: [{ type: HostBinding, args: ['class.attention-level3',] }],
69
- isAttentionLevel4: [{ type: HostBinding, args: ['class.attention-level4',] }],
70
- destructive: [{ type: HostBinding, args: ['class.destructive',] }],
71
- isButtonFloating: [{ type: HostBinding, args: ['class.floating',] }],
72
- isIconOnly: [{ type: HostBinding, args: ['class.icon-only',] }],
73
- isIconLeft: [{ type: HostBinding, args: ['class.icon-left',] }],
74
- isIconRight: [{ type: HostBinding, args: ['class.icon-right',] }],
75
- _cssClass: [{ type: HostBinding, args: ['class',] }],
76
- attentionLevel: [{ type: Input }],
77
- isDestructive: [{ type: Input }],
78
- themeColor: [{ type: Input }],
79
- expand: [{ type: Input }],
80
- isFloating: [{ type: Input }],
81
- size: [{ type: Input }],
82
- icon: [{ type: ContentChild, args: [IconComponent,] }],
83
- iconElementRef: [{ type: ContentChild, args: [IconComponent, { read: ElementRef },] }]
84
- };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQix1QkFBUyxDQUFBO0lBQ1QsdUJBQVMsQ0FBQTtJQUNULHVCQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFRRCxNQUFNLE9BQU8sZUFBZTtJQTBEMUIsWUFBb0IsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUF4RHZELHNCQUFpQixHQUFZLElBQUksQ0FBQyxDQUFDLFVBQVU7UUFRN0MsZ0JBQVcsR0FBWSxLQUFLLENBQUMsQ0FBQyxVQUFVO1FBV2hDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBS3BCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBdUJwQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXJDLFNBQUksR0FBZSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBS3pCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFFa0MsQ0FBQztJQTlDM0QsSUFDVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ1csV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBYSxjQUFjLENBQUMsS0FBNEI7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7SUFDekMsQ0FBQztJQUNELElBQWEsYUFBYSxDQUFDLEtBQWM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JELElBQUksQ0FBQyxXQUFXO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztZQUNqRixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN2QztJQUNILENBQUM7OztZQXpFRixTQUFTLFNBQUM7Z0JBQ1QsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUsMkNBQTJDO2dCQUNyRCx1Q0FBc0M7O2FBRXZDOzs7O1lBcEJDLFVBQVU7OztnQ0FzQlQsV0FBVyxTQUFDLHdCQUF3QjtnQ0FFcEMsV0FBVyxTQUFDLHdCQUF3QjtnQ0FFcEMsV0FBVyxTQUFDLHdCQUF3QjtnQ0FFcEMsV0FBVyxTQUFDLHdCQUF3QjswQkFFcEMsV0FBVyxTQUFDLG1CQUFtQjsrQkFHL0IsV0FBVyxTQUFDLGdCQUFnQjt5QkFLNUIsV0FBVyxTQUFDLGlCQUFpQjt5QkFLN0IsV0FBVyxTQUFDLGlCQUFpQjswQkFLN0IsV0FBVyxTQUFDLGtCQUFrQjt3QkFLOUIsV0FBVyxTQUFDLE9BQU87NkJBS25CLEtBQUs7NEJBTUwsS0FBSzt5QkFHTCxLQUFLO3FCQUVMLEtBQUs7eUJBQ0wsS0FBSzttQkFDTCxLQUFLO21CQUdMLFlBQVksU0FBQyxhQUFhOzZCQUMxQixZQUFZLFNBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db2xvciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBCdXR0b25TaXplIHtcbiAgU00gPSAnc20nLFxuICBNRCA9ICdtZCcsXG4gIExHID0gJ2xnJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdidXR0b25ba2lyYnktYnV0dG9uXSxCdXR0b25ba2lyYnktYnV0dG9uXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXR0ZW50aW9uLWxldmVsMScpXG4gIGlzQXR0ZW50aW9uTGV2ZWwxOiBib29sZWFuID0gdHJ1ZTsgLy8gRGVmYXVsdFxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmF0dGVudGlvbi1sZXZlbDInKVxuICBpc0F0dGVudGlvbkxldmVsMjogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdHRlbnRpb24tbGV2ZWwzJylcbiAgaXNBdHRlbnRpb25MZXZlbDM6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXR0ZW50aW9uLWxldmVsNCcpXG4gIGlzQXR0ZW50aW9uTGV2ZWw0OiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRlc3RydWN0aXZlJylcbiAgZGVzdHJ1Y3RpdmU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gRGVmYXVsdFxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxuICBwdWJsaWMgZ2V0IGlzQnV0dG9uRmxvYXRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNGbG9hdGluZztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbi1vbmx5JylcbiAgcHVibGljIGdldCBpc0ljb25Pbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaWNvbiAmJiAhdGhpcy5oYXNUZXh0O1xuICB9XG4gIHByaXZhdGUgX2lzSWNvbkxlZnQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pY29uLWxlZnQnKVxuICBwdWJsaWMgZ2V0IGlzSWNvbkxlZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSWNvbkxlZnQ7XG4gIH1cbiAgcHJpdmF0ZSBfaXNJY29uUmlnaHQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pY29uLXJpZ2h0JylcbiAgcHVibGljIGdldCBpc0ljb25SaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNJY29uUmlnaHQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9jc3NDbGFzcygpIHtcbiAgICByZXR1cm4gW3RoaXMudGhlbWVDb2xvciwgdGhpcy5zaXplXS5maWx0ZXIoKGNzc0NsYXNzKSA9PiAhIWNzc0NsYXNzKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhdHRlbnRpb25MZXZlbChsZXZlbDogJzEnIHwgJzInIHwgJzMnIHwgJzQnKSB7XG4gICAgdGhpcy5pc0F0dGVudGlvbkxldmVsMSA9IGxldmVsID09PSAnMSc7XG4gICAgdGhpcy5pc0F0dGVudGlvbkxldmVsMiA9IGxldmVsID09PSAnMic7XG4gICAgdGhpcy5pc0F0dGVudGlvbkxldmVsMyA9IGxldmVsID09PSAnMyc7XG4gICAgdGhpcy5pc0F0dGVudGlvbkxldmVsNCA9IGxldmVsID09PSAnNCc7XG4gIH1cbiAgQElucHV0KCkgc2V0IGlzRGVzdHJ1Y3RpdmUoc3RhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRlc3RydWN0aXZlID0gc3RhdGU7XG4gIH1cbiAgQElucHV0KClcbiAgdGhlbWVDb2xvcjogTm90aWZpY2F0aW9uQ29sb3I7XG4gIEBJbnB1dCgpIGV4cGFuZDogJ2Z1bGwnIHwgJ2Jsb2NrJztcbiAgQElucHV0KCkgaXNGbG9hdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBzaXplOiBCdXR0b25TaXplID0gQnV0dG9uU2l6ZS5NRDtcblxuICBAQ29udGVudENoaWxkKEljb25Db21wb25lbnQpIGljb246IEljb25Db21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoSWNvbkNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGljb25FbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSBoYXNUZXh0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNUZXh0ID0gISF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtcbiAgICBpZiAodGhpcy5pY29uRWxlbWVudFJlZiAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaGFzVGV4dCkge1xuICAgICAgdGhpcy5faXNJY29uTGVmdCA9XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQgPT09IHRoaXMuaWNvbkVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMuX2lzSWNvblJpZ2h0ID0gIXRoaXMuX2lzSWNvbkxlZnQ7XG4gICAgfVxuICB9XG59XG4iXX0=
54
+ /** @nocollapse */ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
55
+ /** @nocollapse */ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: { attentionLevel: "attentionLevel", isDestructive: "isDestructive", themeColor: "themeColor", expand: "expand", isFloating: "isFloating", size: "size" }, host: { properties: { "class.attention-level1": "this.isAttentionLevel1", "class.attention-level2": "this.isAttentionLevel2", "class.attention-level3": "this.isAttentionLevel3", "class.attention-level4": "this.isAttentionLevel4", "class.destructive": "this.destructive", "class.floating": "this.isButtonFloating", "class.icon-only": "this.isIconOnly", "class.icon-left": "this.isIconLeft", "class.icon-right": "this.isIconRight", "class": "this._cssClass" } }, queries: [{ propertyName: "icon", first: true, predicate: IconComponent, descendants: true }, { propertyName: "iconElementRef", first: true, predicate: IconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{position:relative;font-family:var(--kirby-font-family);background-color:var(--kirby-button-background-color, initial);color:var(--kirby-button-color, inherit);border-radius:999px;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;font-size:14px;height:40px;min-width:88px;padding:0 24px;margin:4px;line-height:20px;outline:none;border:1px solid var(--kirby-button-border-color, transparent)}:host:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}:host.icon-left{padding-left:12px;padding-right:16px;--kirby-icon-margin-right: 8px}:host.icon-right{padding-left:16px;padding-right:12px;--kirby-icon-margin-left: 8px}:host.icon-only{width:40px;padding:0;min-width:unset}:host.sm{font-size:12px;height:32px;min-width:44px}:host.sm:not(.icon-only){padding-left:16px;padding-right:16px}:host.sm.icon-only{width:32px;min-width:unset}:host.sm.icon-left,:host.sm.icon-right{--kirby-icon-font-size: 16px;min-width:88px}:host.lg{font-size:16px;height:48px;min-width:220px}:host.lg.icon-only{width:48px;min-width:unset}:host.attention-level1{--kirby-button-background-color: var(--kirby-primary);--kirby-button-color: var(--kirby-primary-contrast)}:host.attention-level1.destructive{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}:host.attention-level2{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host.attention-level2.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host.attention-level3{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black);--kirby-button-border-color: var(--kirby-medium)}:host.attention-level3.destructive{--kirby-button-color: var(--kirby-danger)}:host.attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host.attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host[expand=block]{width:100%}@media (hover: hover){:host:focus{--kirby-button-border-color: #4d90fe}}@media (hover: hover){:host:hover{opacity:.8}}:host:active{opacity:.8}:host:disabled{background-color:var(--kirby-semi-light);color:var(--kirby-semi-dark-shade);border-color:transparent;pointer-events:none}:host :host-context(.default).attention-level2,:host :host-context(.kirby-color-brightness-white).attention-level2{--kirby-button-background-color: var(--kirby-black);--kirby-button-color: var(--kirby-black-contrast)}:host :host-context(.kirby-color-brightness-dark).attention-level3{--kirby-button-border-color: var(--kirby-white);--kirby-button-color: var(--kirby-white)}:host :host-context(.kirby-color-brightness-dark).attention-level4{--kirby-button-color: var(--kirby-white)}:host.floating{width:64px!important;height:64px!important;min-width:unset}:host.floating:not(:disabled){box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14}:host-context(kirby-item)[slot=end]{margin-inline-start:16px}:host-context(kirby-alert).ok-btn{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(ion-toolbar kirby-page-actions){font-size:14px;margin:0;height:44px}:host-context(ion-toolbar kirby-page-actions).icon-only{width:44px}:host-context(ion-toolbar kirby-page-actions).attention-level1,:host-context(ion-toolbar kirby-page-actions).attention-level2,:host-context(ion-toolbar kirby-page-actions).attention-level3,:host-context(ion-toolbar kirby-page-actions).attention-level4{--kirby-button-background-color: transparent;--kirby-button-color: var(--kirby-black)}:host-context(ion-toolbar kirby-page-actions).attention-level1.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level2.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level3.destructive,:host-context(ion-toolbar kirby-page-actions).attention-level4.destructive{--kirby-button-color: var(--kirby-danger)}:host-context(.page-title kirby-page-actions).attention-level1,:host-context(.page-title kirby-page-actions).attention-level2,:host-context(.page-title kirby-page-actions).attention-level3,:host-context(.page-title kirby-page-actions).attention-level4{--kirby-button-background-color: var(--kirby-white);--kirby-button-color: var(--kirby-white-contrast)}:host-context(.page-title kirby-page-actions).attention-level1.destructive,:host-context(.page-title kirby-page-actions).attention-level2.destructive,:host-context(.page-title kirby-page-actions).attention-level3.destructive,:host-context(.page-title kirby-page-actions).attention-level4.destructive{--kirby-button-background-color: var(--kirby-light);--kirby-button-color: var(--kirby-danger)}:host-context(kirby-empty-state .content){font-size:16px;height:48px;min-width:220px}:host-context(kirby-empty-state .content).icon-only{width:48px;min-width:unset}:host-context(kirby-dropdown){justify-content:space-between}:host-context(kirby-toggle-button).success{--kirby-button-background-color: var(--kirby-success);--kirby-button-color: var(--kirby-success-contrast)}:host-context(kirby-toggle-button).warning{--kirby-button-background-color: var(--kirby-warning);--kirby-button-color: var(--kirby-warning-contrast)}:host-context(kirby-toggle-button).danger{--kirby-button-background-color: var(--kirby-danger);--kirby-button-color: var(--kirby-danger-contrast)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonComponent, decorators: [{
57
+ type: Component,
58
+ args: [{
59
+ // tslint:disable-next-line:component-selector
60
+ selector: 'button[kirby-button],Button[kirby-button]',
61
+ templateUrl: './button.component.html',
62
+ styleUrls: ['./button.component.scss'],
63
+ changeDetection: ChangeDetectionStrategy.OnPush,
64
+ }]
65
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isAttentionLevel1: [{
66
+ type: HostBinding,
67
+ args: ['class.attention-level1']
68
+ }], isAttentionLevel2: [{
69
+ type: HostBinding,
70
+ args: ['class.attention-level2']
71
+ }], isAttentionLevel3: [{
72
+ type: HostBinding,
73
+ args: ['class.attention-level3']
74
+ }], isAttentionLevel4: [{
75
+ type: HostBinding,
76
+ args: ['class.attention-level4']
77
+ }], destructive: [{
78
+ type: HostBinding,
79
+ args: ['class.destructive']
80
+ }], isButtonFloating: [{
81
+ type: HostBinding,
82
+ args: ['class.floating']
83
+ }], isIconOnly: [{
84
+ type: HostBinding,
85
+ args: ['class.icon-only']
86
+ }], isIconLeft: [{
87
+ type: HostBinding,
88
+ args: ['class.icon-left']
89
+ }], isIconRight: [{
90
+ type: HostBinding,
91
+ args: ['class.icon-right']
92
+ }], _cssClass: [{
93
+ type: HostBinding,
94
+ args: ['class']
95
+ }], attentionLevel: [{
96
+ type: Input
97
+ }], isDestructive: [{
98
+ type: Input
99
+ }], themeColor: [{
100
+ type: Input
101
+ }], expand: [{
102
+ type: Input
103
+ }], isFloating: [{
104
+ type: Input
105
+ }], size: [{
106
+ type: Input
107
+ }], icon: [{
108
+ type: ContentChild,
109
+ args: [IconComponent]
110
+ }], iconElementRef: [{
111
+ type: ContentChild,
112
+ args: [IconComponent, { read: ElementRef }]
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXZELE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsdUJBQVMsQ0FBQTtJQUNULHVCQUFTLENBQUE7SUFDVCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCO0FBU0QsTUFBTSxPQUFPLGVBQWU7SUEwRDFCLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBeER2RCxzQkFBaUIsR0FBWSxJQUFJLENBQUMsQ0FBQyxVQUFVO1FBUTdDLGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsVUFBVTtRQVdoQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXVCcEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVyQyxTQUFJLEdBQWlDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFLM0MsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUVrQyxDQUFDO0lBOUMzRCxJQUNXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ1cs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QUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db2xvciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBCdXR0b25TaXplIHtcbiAgU00gPSAnc20nLFxuICBNRCA9ICdtZCcsXG4gIExHID0gJ2xnJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdidXR0b25ba2lyYnktYnV0dG9uXSxCdXR0b25ba2lyYnktYnV0dG9uXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmF0dGVudGlvbi1sZXZlbDEnKVxuICBpc0F0dGVudGlvbkxldmVsMTogYm9vbGVhbiA9IHRydWU7IC8vIERlZmF1bHRcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdHRlbnRpb24tbGV2ZWwyJylcbiAgaXNBdHRlbnRpb25MZXZlbDI6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXR0ZW50aW9uLWxldmVsMycpXG4gIGlzQXR0ZW50aW9uTGV2ZWwzOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmF0dGVudGlvbi1sZXZlbDQnKVxuICBpc0F0dGVudGlvbkxldmVsNDogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZXN0cnVjdGl2ZScpXG4gIGRlc3RydWN0aXZlOiBib29sZWFuID0gZmFsc2U7IC8vIERlZmF1bHRcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcbiAgcHVibGljIGdldCBpc0J1dHRvbkZsb2F0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRmxvYXRpbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmljb24tb25seScpXG4gIHB1YmxpYyBnZXQgaXNJY29uT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb24gJiYgIXRoaXMuaGFzVGV4dDtcbiAgfVxuICBwcml2YXRlIF9pc0ljb25MZWZ0ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbi1sZWZ0JylcbiAgcHVibGljIGdldCBpc0ljb25MZWZ0KCkge1xuICAgIHJldHVybiB0aGlzLl9pc0ljb25MZWZ0O1xuICB9XG4gIHByaXZhdGUgX2lzSWNvblJpZ2h0ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbi1yaWdodCcpXG4gIHB1YmxpYyBnZXQgaXNJY29uUmlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSWNvblJpZ2h0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIFt0aGlzLnRoZW1lQ29sb3IsIHRoaXMuc2l6ZV0uZmlsdGVyKChjc3NDbGFzcykgPT4gISFjc3NDbGFzcyk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgYXR0ZW50aW9uTGV2ZWwobGV2ZWw6ICcxJyB8ICcyJyB8ICczJyB8ICc0Jykge1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDEgPSBsZXZlbCA9PT0gJzEnO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDIgPSBsZXZlbCA9PT0gJzInO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDMgPSBsZXZlbCA9PT0gJzMnO1xuICAgIHRoaXMuaXNBdHRlbnRpb25MZXZlbDQgPSBsZXZlbCA9PT0gJzQnO1xuICB9XG4gIEBJbnB1dCgpIHNldCBpc0Rlc3RydWN0aXZlKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kZXN0cnVjdGl2ZSA9IHN0YXRlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHRoZW1lQ29sb3I6IE5vdGlmaWNhdGlvbkNvbG9yO1xuICBASW5wdXQoKSBleHBhbmQ6ICdmdWxsJyB8ICdibG9jayc7XG4gIEBJbnB1dCgpIGlzRmxvYXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2l6ZTogQnV0dG9uU2l6ZSB8IGAke0J1dHRvblNpemV9YCA9IEJ1dHRvblNpemUuTUQ7XG5cbiAgQENvbnRlbnRDaGlsZChJY29uQ29tcG9uZW50KSBpY29uOiBJY29uQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKEljb25Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBpY29uRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIHByaXZhdGUgaGFzVGV4dCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzVGV4dCA9ICEhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgaWYgKHRoaXMuaWNvbkVsZW1lbnRSZWYgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmhhc1RleHQpIHtcbiAgICAgIHRoaXMuX2lzSWNvbkxlZnQgPVxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkID09PSB0aGlzLmljb25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLl9pc0ljb25SaWdodCA9ICF0aGlzLl9pc0ljb25MZWZ0O1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -4,6 +4,11 @@ import { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';
4
4
  import { da, enGB, enUS } from 'date-fns/locale';
5
5
  import { capitalizeFirstLetter } from '@kirbydesign/core';
6
6
  import { CalendarHelper } from './helpers/calendar.helper';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./helpers/calendar.helper";
9
+ import * as i2 from "../icon/icon.component";
10
+ import * as i3 from "../dropdown/dropdown.component";
11
+ import * as i4 from "@angular/common";
7
12
  var TimeUnit;
8
13
  (function (TimeUnit) {
9
14
  TimeUnit["years"] = "years";
@@ -274,10 +279,10 @@ export class CalendarComponent {
274
279
  _onDateSelected(newDay) {
275
280
  if (newDay.isSelectable && newDay.date) {
276
281
  let newDate = new Date(this.activeMonth);
282
+ newDate.setDate(newDay.date);
277
283
  if (this.timezone === 'UTC') {
278
284
  newDate = zonedTimeToUtc(this.subtractTimezoneOffset(newDate), this.timeZoneName);
279
285
  }
280
- newDate.setDate(newDay.date);
281
286
  const dateToEmit = newDate;
282
287
  if (this.hasDateChanged(newDate, this._selectedDate)) {
283
288
  this.onSelectedDateChange(newDate);
@@ -358,37 +363,56 @@ export class CalendarComponent {
358
363
  return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());
359
364
  }
360
365
  }
361
- CalendarComponent.decorators = [
362
- { type: Component, args: [{
363
- selector: 'kirby-calendar',
364
- template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n",
365
- providers: [CalendarHelper],
366
- styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}td,th{text-align:center;padding:0}td:first-child,th:first-child{padding-left:8px}td:last-child,th:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,td,th{background-color:transparent}.header{margin:8px 8px 0}.header,.month-navigator{display:flex;justify-content:space-between}.month-navigator{flex-grow:1;align-items:center}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}"]
367
- },] }
368
- ];
369
- /** @nocollapse */
370
- CalendarComponent.ctorParameters = () => [
371
- { type: CalendarHelper },
372
- { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
373
- ];
374
- CalendarComponent.propDecorators = {
375
- calendarContainer: [{ type: ViewChild, args: ['calendarContainer', { static: false },] }],
376
- dateChange: [{ type: Output }],
377
- dateSelect: [{ type: Output }],
378
- yearSelect: [{ type: Output }],
379
- timezone: [{ type: Input }],
380
- disableWeekends: [{ type: Input }],
381
- disablePastDates: [{ type: Input }],
382
- disableFutureDates: [{ type: Input }],
383
- alwaysEnableToday: [{ type: Input }],
384
- customLocales: [{ type: Input }],
385
- usePopover: [{ type: Input }],
386
- yearNavigatorOptions: [{ type: Input }],
387
- selectedDate: [{ type: Input }],
388
- disabledDates: [{ type: Input }],
389
- todayDate: [{ type: Input }],
390
- minDate: [{ type: Input }],
391
- maxDate: [{ type: Input }],
392
- _hasYearNavigator: [{ type: HostBinding, args: ['class.has-year-navigator',] }]
393
- };
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWEzRCxJQUFLLFFBU0o7QUFURCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtJQUNmLHlCQUFhLENBQUE7SUFDYiwyQkFBZSxDQUFBO0lBQ2YsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIseUNBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVRJLFFBQVEsS0FBUixRQUFRLFFBU1o7QUFR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QUksRUFBRSxDQUFDO1FBQ3JGLE1BQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQzs7O1lBL2JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQix1NENBQXdDO2dCQUV4QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O2FBQzVCOzs7O1lBN0JRLGNBQWM7eUNBeUpnQyxNQUFNLFNBQUMsU0FBUzs7O2dDQTFIcEUsU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFDaEQsTUFBTTt5QkFDTixNQUFNO3lCQUNOLE1BQU07dUJBQ04sS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7aUNBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLEtBQUs7eUJBS0wsS0FBSzttQ0FRTCxLQUFLOzJCQXNCTCxLQUFLOzRCQWNMLEtBQUs7d0JBUUwsS0FBSztzQkFRTCxLQUFLO3NCQVdMLEtBQUs7Z0NBZ0NMLFdBQVcsU0FBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIExPQ0FMRV9JRCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFkZCxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZWFjaERheU9mSW50ZXJ2YWwsXG4gIGVuZE9mTW9udGgsXG4gIGVuZE9mV2VlayxcbiAgZm9ybWF0LFxuICBnZXRZZWFyLFxuICBpc0FmdGVyLFxuICBpc0JlZm9yZSxcbiAgaXNTYW1lRGF5LFxuICBpc1NhbWVNb250aCxcbiAgaXNXZWVrZW5kLFxuICBMb2NhbGUgYXMgTG9jYWxlRGF0ZUZucyxcbiAgc3RhcnRPZkRheSxcbiAgc3RhcnRPZk1vbnRoLFxuICBzdGFydE9mV2Vlayxcbn0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUsIHpvbmVkVGltZVRvVXRjIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuaW1wb3J0IHsgZGEsIGVuR0IsIGVuVVMgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vY29yZSc7XG5cbmltcG9ydCB7IENhbGVuZGFyQ2VsbCB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1jZWxsLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLmhlbHBlcic7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJOYXZpZ2F0b3JDb25maWcgfSBmcm9tICcuL29wdGlvbnMvY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gTG9jYWxlRGF0ZUZucztcbmludGVyZmFjZSBDYWxlbmRhckRheSB7XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICBpc1RvZGF5OiBib29sZWFuO1xuICBpc1dlZWtlbmQ6IGJvb2xlYW47XG4gIGlzUGFzdDogYm9vbGVhbjtcbiAgaXNGdXR1cmU6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmVudW0gVGltZVVuaXQge1xuICB5ZWFycyA9ICd5ZWFycycsXG4gIG1vbnRocyA9ICdtb250aHMnLFxuICB3ZWVrcyA9ICd3ZWVrcycsXG4gIGRheXMgPSAnZGF5cycsXG4gIGhvdXJzID0gJ2hvdXJzJyxcbiAgbWludXRlcyA9ICdtaW51dGVzJyxcbiAgc2Vjb25kcyA9ICdzZWNvbmRzJyxcbiAgbWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJIZWxwZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIHllYXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgdGltZXpvbmU6ICdsb2NhbCcgfCAnVVRDJyA9ICdsb2NhbCc7XG4gIEBJbnB1dCgpIGRpc2FibGVXZWVrZW5kcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUGFzdERhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVGdXR1cmVEYXRlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNFbmFibGVUb2RheSA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXN0b21Mb2NhbGVzOiB7IFtrZXk6IHN0cmluZ106IExvY2FsZSB9ID0ge307XG4gIC8qIFxuICAgIEV4cGVyaW1lbnRhbDogSW5wdXQgcHJvcGVydHkgbm90IGRvY3VtZW50ZWQgb24gcHVycG9zZS4gXG4gICAgRm9yIGNvbnRleHQgc2VlOiBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yMDg3XG4gICovXG4gIEBJbnB1dCgpIHVzZVBvcG92ZXIgPSBmYWxzZTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB5ZWFyIG5hdmlnYXRvci5cbiAgICpcbiAgICogSW50ZXJuYWxseSwgY2FsZW5kYXIgY29tcG9uZW50OlxuICAgKiAtIGJhc2VzIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvIG9uIHRvZGF5RGF0ZSBpZiBhIG51bWJlciBpcyBwcm92aWRlZFxuICAgKiAtIHByaW9yaXRpemVzIG1pbkRhdGUgYW5kIG1heERhdGUgb3ZlciB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5mcm9tIGFuZCB5ZWFyTmF2aWdhdG9yT3B0aW9ucy50b1xuICAgKi9cbiAgQElucHV0KCkgeWVhck5hdmlnYXRvck9wdGlvbnM6IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZztcblxuICBfbW9udGg6IENhbGVuZGFyQ2VsbFtdW107XG4gIF93ZWVrRGF5czogc3RyaW5nW107XG4gIHByaXZhdGUgc2VsZWN0ZWREYXk6IENhbGVuZGFyQ2VsbDtcbiAgLy8gTk9URTogSW50ZXJuYWxseSwgYWxsIERhdGVzXG4gIC8vIGFyZSBub3JtYWxpemVkIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LCByZWdhcmRsZXNzIG9mIHRoZSB0aW1lem9uZVxuICAvLyBzZXR0aW5nLlxuICBwcml2YXRlIGFjdGl2ZU1vbnRoOiBEYXRlO1xuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IERhdGVbXSA9IFtdO1xuICBwcml2YXRlIF90b2RheURhdGU6IERhdGU7XG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGU7XG4gIHByaXZhdGUgX21heERhdGU6IERhdGU7XG4gIHByaXZhdGUgbG9jYWxlOiBMb2NhbGU7XG4gIHByaXZhdGUgdGltZVpvbmVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5jbHVkZWRMb2NhbGVzID0geyBkYSwgZW5HQiwgZW5VUyB9O1xuXG4gIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZERhdGUodmFsdWVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWVMb2NhbE9yVVRDKTtcbiAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKHZhbHVlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5taW5EYXRlIHx8XG4gICAgICBjaGFuZ2VzLm1heERhdGUgfHxcbiAgICAgIGNoYW5nZXMudG9kYXlEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRpbWV6b25lXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICAgICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTW9udGgoZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlTW9udGggfHwgIWlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIGRhdGUpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGUpO1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgbGVuaWVuY3ksIHRoZSBjb21wb25lbnQgd2lsbCBhY2NlcHQgYW55IERhdGUgdGhhdCBwb2ludHMgdG8gZWl0aGVyIFVUQyBtaWRuaWdodFxuICAvLyBvciB0byBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBhbHRob3VnaCB3ZSB3aWxsIGludGVybmFsbHkgbm9ybWFsaXplIHRoZSByZXByZXNlbnRhdGlvblxuICAvLyBvZiBhbGwgcmVjZWl2ZWQgZGF0ZXMgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQuXG4gIC8vIFdlIGN1cnJlbnRseSBsb2cgbm8gd2FybmluZ3MgaWYgdGhlIGRhdGUgZG9lc24ndCBtYXRjaCB0aGUgdGltZXpvbmUgc2V0dGluZyBvclxuICAvLyBpZiBpdCBkb2Vzbid0IHBvaW50IHRvIG1pZG5pZ2h0LlxuICBwcml2YXRlIG5vcm1hbGl6ZURhdGUoZGF0ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBpZiAoIWRhdGVMb2NhbE9yVVRDKSByZXR1cm47XG5cbiAgICBpZiAoc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQykuZ2V0VGltZSgpID09PSBkYXRlTG9jYWxPclVUQy5nZXRUaW1lKCkpIHtcbiAgICAgIC8vIGRhdGUgaXMgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHRcbiAgICAgIHJldHVybiBkYXRlTG9jYWxPclVUQztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhcnRPZkRheSh1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpKS5nZXRUaW1lKCkgPT09XG4gICAgICB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpLmdldFRpbWUoKVxuICAgICkge1xuICAgICAgLy8gdGhlIGRhdGUgaXMgYSBVVEMgbWlkbmlnaHQ7IGNyZWF0ZSB0aGUgZXF1aXZhbGVudCBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBkYXRlXG4gICAgICBjb25zdCBub3JtYWxpemVkVVRDZGF0ZSA9IHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICByZXR1cm4gbm9ybWFsaXplZFVUQ2RhdGU7XG4gICAgfVxuICAgIC8vIGRvZXMgbm90IHBvaW50IHRvIG1pZG5pZ2h0IHNvIHdlIG1ha2UgaXRcbiAgICByZXR1cm4gc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQyk7XG4gIH1cblxuICBwcml2YXRlIGdldFdlZWtEYXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3Qgd2VlayA9IGVhY2hEYXlPZkludGVydmFsKHtcbiAgICAgIHN0YXJ0OiBzdGFydE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICAgIGVuZDogZW5kT2ZXZWVrKG5vdywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdlZWsubWFwKChkYXRlKSA9PiB0aGlzLmdldEZpcnN0TGV0dGVyT2ZXZWVrRGF5Q2FwaXRhbGl6ZWQoZGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoTG9jYWxlKGRhdGUsICdFRUVFRScpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNEYXRlQ2hhbmdlZChuZXdEYXRlOiBEYXRlLCBwcmV2aW91c0RhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhaXNTYW1lRGF5KG5ld0RhdGUsIHByZXZpb3VzRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZWREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGRpc2FibGVkRGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEFjdGl2ZU1vbnRoKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVNb250aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBtb250aEVuZCA9IGVuZE9mTW9udGgodGhpcy5hY3RpdmVNb250aCk7XG4gICAgY29uc3Qgc3RhcnRPZkZpcnN0V2VlayA9IHN0YXJ0T2ZXZWVrKG1vbnRoU3RhcnQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCBlbmRPZkxhc3RXZWVrID0gZW5kT2ZXZWVrKG1vbnRoRW5kLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG4gICAgY29uc3QgdG90YWxEYXlDb3VudCA9IGRpZmZlcmVuY2VJbkRheXMoZW5kT2ZMYXN0V2Vlaywgc3RhcnRPZkZpcnN0V2VlaykgKyAxO1xuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheURhdGUgPyBzdGFydE9mRGF5KHRoaXMudG9kYXlEYXRlKSA6IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG5cbiAgICBjb25zdCBkYXlzQXJyYXkgPSBBcnJheS5mcm9tKEFycmF5KHRvdGFsRGF5Q291bnQpLmtleXMoKSk7XG5cbiAgICBjb25zdCBkYXlzOiBDYWxlbmRhckNlbGxbXSA9IGRheXNBcnJheS5tYXAoKG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2VsbERhdGUgPSBhZGQoc3RhcnRPZkZpcnN0V2VlaywgeyBbVGltZVVuaXQuZGF5c106IG51bWJlciB9KTtcbiAgICAgIGNvbnN0IGRheSA9IHRoaXMuZ2V0Q2FsZW5kYXJEYXkoY2VsbERhdGUsIHRvZGF5LCBtb250aFN0YXJ0KTtcblxuICAgICAgY29uc3QgaXNTZWxlY3RhYmxlID0gdGhpcy5pc1NlbGVjdGFibGUoZGF5LCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWREYXRlLCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBjZWxsID0ge1xuICAgICAgICBkYXRlOiBjZWxsRGF0ZS5nZXREYXRlKCksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICAgIGlzU2VsZWN0YWJsZSxcbiAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgY3NzQ2xhc3NlczogdGhpcy5nZXRDc3NDbGFzc2VzKGRheSwgaXNTZWxlY3RhYmxlLCBpc1NlbGVjdGVkKSxcbiAgICAgIH07XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gY2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjZWxsO1xuICAgIH0pO1xuICAgIHRoaXMuX21vbnRoID0gdGhpcy5jaHVuayhkYXlzLCA3KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FsZW5kYXJEYXkoZGF0ZTogRGF0ZSwgdG9kYXk6IERhdGUsIG1vbnRoU3RhcnQ6IERhdGUpOiBDYWxlbmRhckRheSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVG9kYXk6IGlzU2FtZURheSh0b2RheSwgZGF0ZSksXG4gICAgICBpc1Bhc3Q6IGlzQmVmb3JlKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzRnV0dXJlOiBpc0FmdGVyKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzV2Vla2VuZDogaXNXZWVrZW5kKGRhdGUpLFxuICAgICAgaXNDdXJyZW50TW9udGg6IGlzU2FtZU1vbnRoKGRhdGUsIG1vbnRoU3RhcnQpLFxuICAgICAgaXNEaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkRGF0ZShkYXRlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGFibGUoZGF5OiBDYWxlbmRhckRheSwgZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hbHdheXNFbmFibGVUb2RheSAmJiBkYXkuaXNUb2RheSkgfHxcbiAgICAgICghZGF5LmlzRGlzYWJsZWQgJiZcbiAgICAgICAgZGF5LmlzQ3VycmVudE1vbnRoICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlV2Vla2VuZHMgJiYgZGF5LmlzV2Vla2VuZCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgZGF5LmlzUGFzdCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVGdXR1cmVEYXRlcyAmJiBkYXkuaXNGdXR1cmUpICYmXG4gICAgICAgICEodGhpcy5taW5EYXRlICYmIGlzQmVmb3JlKGRhdGUsIHRoaXMubWluRGF0ZSkpICYmXG4gICAgICAgICEodGhpcy5tYXhEYXRlICYmIGlzQWZ0ZXIoZGF0ZSwgdGhpcy5tYXhEYXRlKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcyhkYXk6IENhbGVuZGFyRGF5LCBpc1NlbGVjdGFibGU6IGJvb2xlYW4sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0ge1xuICAgICAgJ2N1cnJlbnQtbW9udGgnOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICB3ZWVrZW5kOiBkYXkuaXNXZWVrZW5kLFxuICAgICAgdG9kYXk6IGRheS5pc1RvZGF5LFxuICAgICAgc2VsZWN0YWJsZTogaXNTZWxlY3RhYmxlLFxuICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICBwYXN0OiBkYXkuaXNQYXN0LFxuICAgICAgZGlzYWJsZWQ6IGRheS5pc0Rpc2FibGVkLFxuICAgIH07XG4gICAgbGV0IGNzc0NsYXNzU3RyaW5nID0gJ2RheSc7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY3NzQ2xhc3Nlcykge1xuICAgICAgaWYgKGNzc0NsYXNzZXNba2V5XSkge1xuICAgICAgICBjc3NDbGFzc1N0cmluZyArPSAnICcgKyBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjc3NDbGFzc1N0cmluZztcbiAgfVxuXG4gIHByaXZhdGUgY2h1bmsoYXJyYXk6IGFueVtdLCBzaXplOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGFycmF5LnNwbGljZSgwLCBzaXplKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RheSA9IHRoaXMuZ2V0Q2VsbChuZXdEYXRlKTtcbiAgICBpZiAobmV3RGF5KSB7XG4gICAgICBuZXdEYXkuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gbmV3RGF5O1xuICAgIH1cbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnNldFNlbGVjdGVkRGF5KG5ld0RhdGUuZ2V0RGF0ZSgpKTtcbiAgfVxuXG4gIF9vbkRhdGVTZWxlY3RlZChuZXdEYXk6IENhbGVuZGFyQ2VsbCkge1xuICAgIGlmIChuZXdEYXkuaXNTZWxlY3RhYmxlICYmIG5ld0RheS5kYXRlKSB7XG4gICAgICBsZXQgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlTW9udGgpO1xuXG4gICAgICBpZiAodGhpcy50aW1lem9uZSA9PT0gJ1VUQycpIHtcbiAgICAgICAgbmV3RGF0ZSA9IHpvbmVkVGltZVRvVXRjKHRoaXMuc3VidHJhY3RUaW1lem9uZU9mZnNldChuZXdEYXRlKSwgdGhpcy50aW1lWm9uZU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBuZXdEYXRlLnNldERhdGUobmV3RGF5LmRhdGUpO1xuICAgICAgY29uc3QgZGF0ZVRvRW1pdCA9IG5ld0RhdGU7XG5cbiAgICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKG5ld0RhdGUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGVTZWxlY3QuZW1pdChkYXRlVG9FbWl0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlTW9udGgoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jaGFuZ2VNb250aChkaXJlY3Rpb24pO1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgfVxuXG4gIF9jaGFuZ2VNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KGluZGV4LCBUaW1lVW5pdC5tb250aHMpO1xuICB9XG5cbiAgX2NoYW5nZVllYXIoeWVhcjogc3RyaW5nKSB7XG4gICAgY29uc3QgeWVhck51bWVyaWMgPSBOdW1iZXIoeWVhcik7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KHllYXJOdW1lcmljIC0gZ2V0WWVhcih0aGlzLmFjdGl2ZU1vbnRoKSwgVGltZVVuaXQueWVhcnMpO1xuICAgIHRoaXMueWVhclNlbGVjdC5lbWl0KHllYXJOdW1lcmljKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWN0aXZlVmlldyhpbmRleDogbnVtYmVyLCB1bml0OiBUaW1lVW5pdCkge1xuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTW9udGggPSBhZGQodGhpcy5hY3RpdmVNb250aCwgeyBbdW5pdF06IGluZGV4IH0pO1xuXG4gICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRQYXN0RGF0ZXNMaW1pdCA9XG4gICAgICB0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlID1cbiAgICAgIHRoaXMubWluRGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkgfHwgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdGhpcy5taW5EYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRQYXN0RGF0ZXNMaW1pdCAmJiAhcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlO1xuICB9XG5cbiAgZ2V0IF9jYW5OYXZpZ2F0ZUZvcndhcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNYXhEYXRlID1cbiAgICAgIHRoaXMubWF4RGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWF4RGF0ZSkgfHwgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpKTtcblxuICAgIHJldHVybiAhcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2VsbChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGZvdW5kRGF5ID0gbnVsbDtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgZm9yIChsZXQgd2VlayBvZiB0aGlzLl9tb250aCkge1xuICAgICAgICBmb3VuZERheSA9IHdlZWsuZmluZCgoZGF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRheS5pc0N1cnJlbnRNb250aCAmJiBkYXkuZGF0ZSA9PT0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZm91bmREYXkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm91bmREYXk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlbHBlck9wdGlvbnMoKTogQ2FsZW5kYXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FuTmF2aWdhdGVCYWNrOiB0aGlzLl9jYW5OYXZpZ2F0ZUJhY2ssXG4gICAgICBjYW5OYXZpZ2F0ZUZvcndhcmQ6IHRoaXMuX2Nhbk5hdmlnYXRlRm9yd2FyZCxcbiAgICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgIG1vbnRoTmFtZTogdGhpcy5hY3RpdmVNb250aE5hbWUsXG4gICAgICB3ZWVrRGF5czogdGhpcy5fd2Vla0RheXMsXG4gICAgICBtb250aDogdGhpcy5fbW9udGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3VidHJhY3RUaW1lem9uZU9mZnNldChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbk1zID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAgKiAxMDAwO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0SW5Ncyk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVGcm9tTmF2aWdhYmxlWWVhcihuYXZpZ2FibGVZZWFyOiBudW1iZXIgfCBEYXRlKTogRGF0ZSB7XG4gICAgaWYgKG5hdmlnYWJsZVllYXIgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gbmF2aWdhYmxlWWVhcjtcbiAgICBjb25zdCB0b2RheSA9IHRoaXMudG9kYXlEYXRlIHx8IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCkgKyBuYXZpZ2FibGVZZWFyLCAwLCAxKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogc3RyaW5nW10ge1xuICAgIC8vIEVuc3VyZSB5ZWFycyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkgaWYgcGFyYW1ldGVycyBhcmUgc3dpdGNoZWQ6XG4gICAgY29uc3QgW3N0YXJ0WWVhciwgZW5kWWVhcl0gPSBbc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIGVuZERhdGUuZ2V0RnVsbFllYXIoKV0uc29ydCgpO1xuICAgIGNvbnN0IG51bWJlck9mWWVhcnMgPSBlbmRZZWFyIC0gc3RhcnRZZWFyO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1iZXJPZlllYXJzICsgMSB9LCAoXywgaSkgPT4gKHN0YXJ0WWVhciArIGkpLnRvU3RyaW5nKCkpO1xuICB9XG59XG4iXX0=
366
+ /** @nocollapse */ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarHelper }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
367
+ /** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CalendarComponent, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button{background-color:transparent;outline:none;border:none;color:inherit;cursor:pointer;height:40px;width:40px;padding:0}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0}.day.selectable,.day.selected{cursor:pointer}.day.disabled,.day:not(.selectable){color:var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}.day:not(.current-month){visibility:hidden;pointer-events:none}.day.selectable:not(.selected):hover{color:var(--kirby-light-contrast);background-color:var(--kirby-light)}\n"], components: [{ type: i2.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { type: i3.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["change"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, decorators: [{
369
+ type: Component,
370
+ args: [{
371
+ selector: 'kirby-calendar',
372
+ templateUrl: './calendar.component.html',
373
+ styleUrls: ['./calendar.component.scss'],
374
+ providers: [CalendarHelper],
375
+ }]
376
+ }], ctorParameters: function () { return [{ type: i1.CalendarHelper }, { type: undefined, decorators: [{
377
+ type: Inject,
378
+ args: [LOCALE_ID]
379
+ }] }]; }, propDecorators: { calendarContainer: [{
380
+ type: ViewChild,
381
+ args: ['calendarContainer', { static: false }]
382
+ }], dateChange: [{
383
+ type: Output
384
+ }], dateSelect: [{
385
+ type: Output
386
+ }], yearSelect: [{
387
+ type: Output
388
+ }], timezone: [{
389
+ type: Input
390
+ }], disableWeekends: [{
391
+ type: Input
392
+ }], disablePastDates: [{
393
+ type: Input
394
+ }], disableFutureDates: [{
395
+ type: Input
396
+ }], alwaysEnableToday: [{
397
+ type: Input
398
+ }], customLocales: [{
399
+ type: Input
400
+ }], usePopover: [{
401
+ type: Input
402
+ }], yearNavigatorOptions: [{
403
+ type: Input
404
+ }], selectedDate: [{
405
+ type: Input
406
+ }], disabledDates: [{
407
+ type: Input
408
+ }], todayDate: [{
409
+ type: Input
410
+ }], minDate: [{
411
+ type: Input
412
+ }], maxDate: [{
413
+ type: Input
414
+ }], _hasYearNavigator: [{
415
+ type: HostBinding,
416
+ args: ['class.has-year-navigator']
417
+ }] } });
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBYTNELElBQUssUUFTSjtBQVRELFdBQUssUUFBUTtJQUNYLDJCQUFlLENBQUE7SUFDZiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDJCQUFl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QUE1QixLQUFLO2dCQXNCTyxZQUFZO3NCQUF4QixLQUFLO2dCQWNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBUU8sU0FBUztzQkFBckIsS0FBSztnQkFRTyxPQUFPO3NCQUFuQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBaUNGLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIExPQ0FMRV9JRCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFkZCxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZWFjaERheU9mSW50ZXJ2YWwsXG4gIGVuZE9mTW9udGgsXG4gIGVuZE9mV2VlayxcbiAgZm9ybWF0LFxuICBnZXRZZWFyLFxuICBpc0FmdGVyLFxuICBpc0JlZm9yZSxcbiAgaXNTYW1lRGF5LFxuICBpc1NhbWVNb250aCxcbiAgaXNXZWVrZW5kLFxuICBMb2NhbGUgYXMgTG9jYWxlRGF0ZUZucyxcbiAgc3RhcnRPZkRheSxcbiAgc3RhcnRPZk1vbnRoLFxuICBzdGFydE9mV2Vlayxcbn0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUsIHpvbmVkVGltZVRvVXRjIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuaW1wb3J0IHsgZGEsIGVuR0IsIGVuVVMgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfSBmcm9tICdAa2lyYnlkZXNpZ24vY29yZSc7XG5cbmltcG9ydCB7IENhbGVuZGFyQ2VsbCB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1jZWxsLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IENhbGVuZGFySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2NhbGVuZGFyLmhlbHBlcic7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJOYXZpZ2F0b3JDb25maWcgfSBmcm9tICcuL29wdGlvbnMvY2FsZW5kYXIteWVhci1uYXZpZ2F0b3ItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gTG9jYWxlRGF0ZUZucztcbmludGVyZmFjZSBDYWxlbmRhckRheSB7XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICBpc1RvZGF5OiBib29sZWFuO1xuICBpc1dlZWtlbmQ6IGJvb2xlYW47XG4gIGlzUGFzdDogYm9vbGVhbjtcbiAgaXNGdXR1cmU6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmVudW0gVGltZVVuaXQge1xuICB5ZWFycyA9ICd5ZWFycycsXG4gIG1vbnRocyA9ICdtb250aHMnLFxuICB3ZWVrcyA9ICd3ZWVrcycsXG4gIGRheXMgPSAnZGF5cycsXG4gIGhvdXJzID0gJ2hvdXJzJyxcbiAgbWludXRlcyA9ICdtaW51dGVzJyxcbiAgc2Vjb25kcyA9ICdzZWNvbmRzJyxcbiAgbWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJIZWxwZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIHllYXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgdGltZXpvbmU6ICdsb2NhbCcgfCAnVVRDJyA9ICdsb2NhbCc7XG4gIEBJbnB1dCgpIGRpc2FibGVXZWVrZW5kcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUGFzdERhdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVGdXR1cmVEYXRlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNFbmFibGVUb2RheSA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXN0b21Mb2NhbGVzOiB7IFtrZXk6IHN0cmluZ106IExvY2FsZSB9ID0ge307XG4gIC8qIFxuICAgIEV4cGVyaW1lbnRhbDogSW5wdXQgcHJvcGVydHkgbm90IGRvY3VtZW50ZWQgb24gcHVycG9zZS4gXG4gICAgRm9yIGNvbnRleHQgc2VlOiBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yMDg3XG4gICovXG4gIEBJbnB1dCgpIHVzZVBvcG92ZXIgPSBmYWxzZTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB5ZWFyIG5hdmlnYXRvci5cbiAgICpcbiAgICogSW50ZXJuYWxseSwgY2FsZW5kYXIgY29tcG9uZW50OlxuICAgKiAtIGJhc2VzIHllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20gYW5kIHllYXJOYXZpZ2F0b3JPcHRpb25zLnRvIG9uIHRvZGF5RGF0ZSBpZiBhIG51bWJlciBpcyBwcm92aWRlZFxuICAgKiAtIHByaW9yaXRpemVzIG1pbkRhdGUgYW5kIG1heERhdGUgb3ZlciB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5mcm9tIGFuZCB5ZWFyTmF2aWdhdG9yT3B0aW9ucy50b1xuICAgKi9cbiAgQElucHV0KCkgeWVhck5hdmlnYXRvck9wdGlvbnM6IENhbGVuZGFyWWVhck5hdmlnYXRvckNvbmZpZztcblxuICBfbW9udGg6IENhbGVuZGFyQ2VsbFtdW107XG4gIF93ZWVrRGF5czogc3RyaW5nW107XG4gIHByaXZhdGUgc2VsZWN0ZWREYXk6IENhbGVuZGFyQ2VsbDtcbiAgLy8gTk9URTogSW50ZXJuYWxseSwgYWxsIERhdGVzXG4gIC8vIGFyZSBub3JtYWxpemVkIHRvIHBvaW50IHRvIGxvY2FsIHRpbWV6b25lIG1pZG5pZ2h0LCByZWdhcmRsZXNzIG9mIHRoZSB0aW1lem9uZVxuICAvLyBzZXR0aW5nLlxuICBwcml2YXRlIGFjdGl2ZU1vbnRoOiBEYXRlO1xuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IERhdGVbXSA9IFtdO1xuICBwcml2YXRlIF90b2RheURhdGU6IERhdGU7XG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGU7XG4gIHByaXZhdGUgX21heERhdGU6IERhdGU7XG4gIHByaXZhdGUgbG9jYWxlOiBMb2NhbGU7XG4gIHByaXZhdGUgdGltZVpvbmVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5jbHVkZWRMb2NhbGVzID0geyBkYSwgZW5HQiwgZW5VUyB9O1xuXG4gIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZERhdGUodmFsdWVMb2NhbE9yVVRDOiBEYXRlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWVMb2NhbE9yVVRDKTtcbiAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKHZhbHVlLCB0aGlzLl9zZWxlY3RlZERhdGUpKSB7XG4gICAgICB0aGlzLm9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZERhdGVzKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9ICh2YWx1ZSB8fCBbXSkubWFwKChkYXRlKSA9PiB0aGlzLm5vcm1hbGl6ZURhdGUoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0IHRvZGF5RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9kYXlEYXRlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRvZGF5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX3RvZGF5RGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZU1vbnRoKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbWF4RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYWN0aXZlTW9udGggJiYgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tYXhEYXRlID0gdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVNb250aE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAnTU1NTScpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0V2l0aExvY2FsZSh0aGlzLmFjdGl2ZU1vbnRoLCAneXl5eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgbmF2aWdhYmxlIHllYXJzIGZvciB5ZWFyIG5hdmlnYXRvciBiYXNlZCBvbiB5ZWFyTmF2aWdhdG9yT3B0aW9ucy5cbiAgICovXG4gIGdldCBuYXZpZ2FibGVZZWFycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyID1cbiAgICAgIHRoaXMubWluRGF0ZSB8fCB0aGlzLmdldERhdGVGcm9tTmF2aWdhYmxlWWVhcih0aGlzLnllYXJOYXZpZ2F0b3JPcHRpb25zLmZyb20pO1xuXG4gICAgY29uc3QgZGF0ZU9mTGFzdE5hdmlnYWJsZVllYXIgPVxuICAgICAgdGhpcy5tYXhEYXRlIHx8IHRoaXMuZ2V0RGF0ZUZyb21OYXZpZ2FibGVZZWFyKHRoaXMueWVhck5hdmlnYXRvck9wdGlvbnMudG8pO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoZGF0ZU9mRmlyc3ROYXZpZ2FibGVZZWFyLCBkYXRlT2ZMYXN0TmF2aWdhYmxlWWVhcik7XG4gIH1cblxuICBnZXQgbmF2aWdhdGVkWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYWJsZVllYXJzLmluZGV4T2YodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLXllYXItbmF2aWdhdG9yJylcbiAgZ2V0IF9oYXNZZWFyTmF2aWdhdG9yKCkge1xuICAgIHJldHVybiAhIXRoaXMueWVhck5hdmlnYXRvck9wdGlvbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFySGVscGVyOiBDYWxlbmRhckhlbHBlciwgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLm1hcExvY2FsZShsb2NhbGUpO1xuICAgIHRoaXMudGltZVpvbmVOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRXaXRoTG9jYWxlKGRhdGU6IERhdGUsIGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGZvcm1hdFN0cmluZywge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBpZiAobG9jYWxlID09PSAnZW4nKSB7XG4gICAgICBsb2NhbGUgPSAnZW5HQic7IC8vIGlmIGVuZ2xpc2ggbG9jYWxlIGlzIHByb3ZpZGVkIHdpdGhvdXQgcmVnaW9uLCB3ZSBkZWZhdWx0IHRvIEdCXG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZS5yZXBsYWNlKCctJywgJycpO1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSB7IC4uLnRoaXMuaW5jbHVkZWRMb2NhbGVzLCAuLi50aGlzLmN1c3RvbUxvY2FsZXMgfTtcblxuICAgIHJldHVybiBhdmFpbGFibGVMb2NhbGVzW2xvY2FsZV0gfHwgdGhpcy5pbmNsdWRlZExvY2FsZXMuZW5HQjsgLy8gRGVmYXVsdCB0byBlbkdCIGlmIGluamVjdGVkIGxvY2FsZSBkb2VzbnQgZXhpc3RcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3dlZWtEYXlzID0gdGhpcy5nZXRXZWVrRGF5cygpO1xuICAgIHRoaXMuc2V0QWN0aXZlTW9udGgodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIuaW5pdChcbiAgICAgIHRoaXMuY2FsZW5kYXJDb250YWluZXIsXG4gICAgICB0aGlzLmdldEhlbHBlck9wdGlvbnMoKSxcbiAgICAgIHRoaXMuX29uRGF0ZVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICB0aGlzLm9uQ2hhbmdlTW9udGguYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU1vbnRoKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5kaXNhYmxlV2Vla2VuZHMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZVBhc3REYXRlcyB8fFxuICAgICAgY2hhbmdlcy5kaXNhYmxlRnV0dXJlRGF0ZXMgfHxcbiAgICAgIGNoYW5nZXMuZGlzYWJsZWREYXRlcyB8fFxuICAgICAgY2hhbmdlcy5taW5EYXRlIHx8XG4gICAgICBjaGFuZ2VzLm1heERhdGUgfHxcbiAgICAgIGNoYW5nZXMudG9kYXlEYXRlIHx8XG4gICAgICBjaGFuZ2VzLnRpbWV6b25lXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZnJlc2hBY3RpdmVNb250aCgpO1xuICAgICAgdGhpcy5jYWxlbmRhckhlbHBlci51cGRhdGUodGhpcy5nZXRIZWxwZXJPcHRpb25zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTW9udGgoZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlTW9udGggfHwgIWlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIGRhdGUpKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGUpO1xuICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgbGVuaWVuY3ksIHRoZSBjb21wb25lbnQgd2lsbCBhY2NlcHQgYW55IERhdGUgdGhhdCBwb2ludHMgdG8gZWl0aGVyIFVUQyBtaWRuaWdodFxuICAvLyBvciB0byBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBhbHRob3VnaCB3ZSB3aWxsIGludGVybmFsbHkgbm9ybWFsaXplIHRoZSByZXByZXNlbnRhdGlvblxuICAvLyBvZiBhbGwgcmVjZWl2ZWQgZGF0ZXMgdG8gcG9pbnQgdG8gbG9jYWwgdGltZXpvbmUgbWlkbmlnaHQuXG4gIC8vIFdlIGN1cnJlbnRseSBsb2cgbm8gd2FybmluZ3MgaWYgdGhlIGRhdGUgZG9lc24ndCBtYXRjaCB0aGUgdGltZXpvbmUgc2V0dGluZyBvclxuICAvLyBpZiBpdCBkb2Vzbid0IHBvaW50IHRvIG1pZG5pZ2h0LlxuICBwcml2YXRlIG5vcm1hbGl6ZURhdGUoZGF0ZUxvY2FsT3JVVEM6IERhdGUpIHtcbiAgICBpZiAoIWRhdGVMb2NhbE9yVVRDKSByZXR1cm47XG5cbiAgICBpZiAoc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQykuZ2V0VGltZSgpID09PSBkYXRlTG9jYWxPclVUQy5nZXRUaW1lKCkpIHtcbiAgICAgIC8vIGRhdGUgaXMgbG9jYWwgdGltZXpvbmUgbWlkbmlnaHRcbiAgICAgIHJldHVybiBkYXRlTG9jYWxPclVUQztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc3RhcnRPZkRheSh1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpKS5nZXRUaW1lKCkgPT09XG4gICAgICB1dGNUb1pvbmVkVGltZShkYXRlTG9jYWxPclVUQywgdGhpcy50aW1lWm9uZU5hbWUpLmdldFRpbWUoKVxuICAgICkge1xuICAgICAgLy8gdGhlIGRhdGUgaXMgYSBVVEMgbWlkbmlnaHQ7IGNyZWF0ZSB0aGUgZXF1aXZhbGVudCBsb2NhbCB0aW1lem9uZSBtaWRuaWdodCBkYXRlXG4gICAgICBjb25zdCBub3JtYWxpemVkVVRDZGF0ZSA9IHV0Y1RvWm9uZWRUaW1lKGRhdGVMb2NhbE9yVVRDLCB0aGlzLnRpbWVab25lTmFtZSk7XG4gICAgICByZXR1cm4gbm9ybWFsaXplZFVUQ2RhdGU7XG4gICAgfVxuICAgIC8vIGRvZXMgbm90IHBvaW50IHRvIG1pZG5pZ2h0IHNvIHdlIG1ha2UgaXRcbiAgICByZXR1cm4gc3RhcnRPZkRheShkYXRlTG9jYWxPclVUQyk7XG4gIH1cblxuICBwcml2YXRlIGdldFdlZWtEYXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3Qgd2VlayA9IGVhY2hEYXlPZkludGVydmFsKHtcbiAgICAgIHN0YXJ0OiBzdGFydE9mV2Vlayhub3csIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KSxcbiAgICAgIGVuZDogZW5kT2ZXZWVrKG5vdywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdlZWsubWFwKChkYXRlKSA9PiB0aGlzLmdldEZpcnN0TGV0dGVyT2ZXZWVrRGF5Q2FwaXRhbGl6ZWQoZGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdExldHRlck9mV2Vla0RheUNhcGl0YWxpemVkKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoTG9jYWxlKGRhdGUsICdFRUVFRScpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNEYXRlQ2hhbmdlZChuZXdEYXRlOiBEYXRlLCBwcmV2aW91c0RhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIXByZXZpb3VzRGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhaXNTYW1lRGF5KG5ld0RhdGUsIHByZXZpb3VzRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZWREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGRpc2FibGVkRGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIGlzU2FtZURheShkaXNhYmxlZERhdGUsIGRhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEFjdGl2ZU1vbnRoKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVNb250aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aCh0aGlzLmFjdGl2ZU1vbnRoKTtcbiAgICBjb25zdCBtb250aEVuZCA9IGVuZE9mTW9udGgodGhpcy5hY3RpdmVNb250aCk7XG4gICAgY29uc3Qgc3RhcnRPZkZpcnN0V2VlayA9IHN0YXJ0T2ZXZWVrKG1vbnRoU3RhcnQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICBjb25zdCBlbmRPZkxhc3RXZWVrID0gZW5kT2ZXZWVrKG1vbnRoRW5kLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG4gICAgY29uc3QgdG90YWxEYXlDb3VudCA9IGRpZmZlcmVuY2VJbkRheXMoZW5kT2ZMYXN0V2Vlaywgc3RhcnRPZkZpcnN0V2VlaykgKyAxO1xuICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheURhdGUgPyBzdGFydE9mRGF5KHRoaXMudG9kYXlEYXRlKSA6IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG5cbiAgICBjb25zdCBkYXlzQXJyYXkgPSBBcnJheS5mcm9tKEFycmF5KHRvdGFsRGF5Q291bnQpLmtleXMoKSk7XG5cbiAgICBjb25zdCBkYXlzOiBDYWxlbmRhckNlbGxbXSA9IGRheXNBcnJheS5tYXAoKG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2VsbERhdGUgPSBhZGQoc3RhcnRPZkZpcnN0V2VlaywgeyBbVGltZVVuaXQuZGF5c106IG51bWJlciB9KTtcbiAgICAgIGNvbnN0IGRheSA9IHRoaXMuZ2V0Q2FsZW5kYXJEYXkoY2VsbERhdGUsIHRvZGF5LCBtb250aFN0YXJ0KTtcblxuICAgICAgY29uc3QgaXNTZWxlY3RhYmxlID0gdGhpcy5pc1NlbGVjdGFibGUoZGF5LCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWREYXRlLCBjZWxsRGF0ZSk7XG4gICAgICBjb25zdCBjZWxsID0ge1xuICAgICAgICBkYXRlOiBjZWxsRGF0ZS5nZXREYXRlKCksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICAgIGlzU2VsZWN0YWJsZSxcbiAgICAgICAgaXNTZWxlY3RlZCxcbiAgICAgICAgY3NzQ2xhc3NlczogdGhpcy5nZXRDc3NDbGFzc2VzKGRheSwgaXNTZWxlY3RhYmxlLCBpc1NlbGVjdGVkKSxcbiAgICAgIH07XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gY2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjZWxsO1xuICAgIH0pO1xuICAgIHRoaXMuX21vbnRoID0gdGhpcy5jaHVuayhkYXlzLCA3KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FsZW5kYXJEYXkoZGF0ZTogRGF0ZSwgdG9kYXk6IERhdGUsIG1vbnRoU3RhcnQ6IERhdGUpOiBDYWxlbmRhckRheSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVG9kYXk6IGlzU2FtZURheSh0b2RheSwgZGF0ZSksXG4gICAgICBpc1Bhc3Q6IGlzQmVmb3JlKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzRnV0dXJlOiBpc0FmdGVyKGRhdGUsIHRvZGF5KSxcbiAgICAgIGlzV2Vla2VuZDogaXNXZWVrZW5kKGRhdGUpLFxuICAgICAgaXNDdXJyZW50TW9udGg6IGlzU2FtZU1vbnRoKGRhdGUsIG1vbnRoU3RhcnQpLFxuICAgICAgaXNEaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkRGF0ZShkYXRlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGFibGUoZGF5OiBDYWxlbmRhckRheSwgZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hbHdheXNFbmFibGVUb2RheSAmJiBkYXkuaXNUb2RheSkgfHxcbiAgICAgICghZGF5LmlzRGlzYWJsZWQgJiZcbiAgICAgICAgZGF5LmlzQ3VycmVudE1vbnRoICYmXG4gICAgICAgICEodGhpcy5kaXNhYmxlV2Vla2VuZHMgJiYgZGF5LmlzV2Vla2VuZCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgZGF5LmlzUGFzdCkgJiZcbiAgICAgICAgISh0aGlzLmRpc2FibGVGdXR1cmVEYXRlcyAmJiBkYXkuaXNGdXR1cmUpICYmXG4gICAgICAgICEodGhpcy5taW5EYXRlICYmIGlzQmVmb3JlKGRhdGUsIHRoaXMubWluRGF0ZSkpICYmXG4gICAgICAgICEodGhpcy5tYXhEYXRlICYmIGlzQWZ0ZXIoZGF0ZSwgdGhpcy5tYXhEYXRlKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcyhkYXk6IENhbGVuZGFyRGF5LCBpc1NlbGVjdGFibGU6IGJvb2xlYW4sIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0ge1xuICAgICAgJ2N1cnJlbnQtbW9udGgnOiBkYXkuaXNDdXJyZW50TW9udGgsXG4gICAgICB3ZWVrZW5kOiBkYXkuaXNXZWVrZW5kLFxuICAgICAgdG9kYXk6IGRheS5pc1RvZGF5LFxuICAgICAgc2VsZWN0YWJsZTogaXNTZWxlY3RhYmxlLFxuICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICBwYXN0OiBkYXkuaXNQYXN0LFxuICAgICAgZGlzYWJsZWQ6IGRheS5pc0Rpc2FibGVkLFxuICAgIH07XG4gICAgbGV0IGNzc0NsYXNzU3RyaW5nID0gJ2RheSc7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY3NzQ2xhc3Nlcykge1xuICAgICAgaWYgKGNzc0NsYXNzZXNba2V5XSkge1xuICAgICAgICBjc3NDbGFzc1N0cmluZyArPSAnICcgKyBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjc3NDbGFzc1N0cmluZztcbiAgfVxuXG4gIHByaXZhdGUgY2h1bmsoYXJyYXk6IGFueVtdLCBzaXplOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0cy5wdXNoKGFycmF5LnNwbGljZSgwLCBzaXplKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RheSA9IHRoaXMuZ2V0Q2VsbChuZXdEYXRlKTtcbiAgICBpZiAobmV3RGF5KSB7XG4gICAgICBuZXdEYXkuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF5ID0gbmV3RGF5O1xuICAgIH1cbiAgICB0aGlzLmNhbGVuZGFySGVscGVyLnNldFNlbGVjdGVkRGF5KG5ld0RhdGUuZ2V0RGF0ZSgpKTtcbiAgfVxuXG4gIF9vbkRhdGVTZWxlY3RlZChuZXdEYXk6IENhbGVuZGFyQ2VsbCkge1xuICAgIGlmIChuZXdEYXkuaXNTZWxlY3RhYmxlICYmIG5ld0RheS5kYXRlKSB7XG4gICAgICBsZXQgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlTW9udGgpO1xuICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RheS5kYXRlKTtcblxuICAgICAgaWYgKHRoaXMudGltZXpvbmUgPT09ICdVVEMnKSB7XG4gICAgICAgIG5ld0RhdGUgPSB6b25lZFRpbWVUb1V0Yyh0aGlzLnN1YnRyYWN0VGltZXpvbmVPZmZzZXQobmV3RGF0ZSksIHRoaXMudGltZVpvbmVOYW1lKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0ZVRvRW1pdCA9IG5ld0RhdGU7XG5cbiAgICAgIGlmICh0aGlzLmhhc0RhdGVDaGFuZ2VkKG5ld0RhdGUsIHRoaXMuX3NlbGVjdGVkRGF0ZSkpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkRGF0ZUNoYW5nZShuZXdEYXRlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZVRvRW1pdCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGVTZWxlY3QuZW1pdChkYXRlVG9FbWl0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlTW9udGgoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jaGFuZ2VNb250aChkaXJlY3Rpb24pO1xuICAgIHRoaXMuY2FsZW5kYXJIZWxwZXIudXBkYXRlKHRoaXMuZ2V0SGVscGVyT3B0aW9ucygpKTtcbiAgfVxuXG4gIF9jaGFuZ2VNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KGluZGV4LCBUaW1lVW5pdC5tb250aHMpO1xuICB9XG5cbiAgX2NoYW5nZVllYXIoeWVhcjogc3RyaW5nKSB7XG4gICAgY29uc3QgeWVhck51bWVyaWMgPSBOdW1iZXIoeWVhcik7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVWaWV3KHllYXJOdW1lcmljIC0gZ2V0WWVhcih0aGlzLmFjdGl2ZU1vbnRoKSwgVGltZVVuaXQueWVhcnMpO1xuICAgIHRoaXMueWVhclNlbGVjdC5lbWl0KHllYXJOdW1lcmljKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWN0aXZlVmlldyhpbmRleDogbnVtYmVyLCB1bml0OiBUaW1lVW5pdCkge1xuICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTW9udGggPSBhZGQodGhpcy5hY3RpdmVNb250aCwgeyBbdW5pdF06IGluZGV4IH0pO1xuXG4gICAgdGhpcy5yZWZyZXNoQWN0aXZlTW9udGgoKTtcbiAgfVxuXG4gIGdldCBfY2FuTmF2aWdhdGVCYWNrKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlYWNoZWRQYXN0RGF0ZXNMaW1pdCA9XG4gICAgICB0aGlzLmRpc2FibGVQYXN0RGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlID1cbiAgICAgIHRoaXMubWluRGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWluRGF0ZSkgfHwgaXNCZWZvcmUodGhpcy5hY3RpdmVNb250aCwgdGhpcy5taW5EYXRlKSk7XG5cbiAgICByZXR1cm4gIXJlYWNoZWRQYXN0RGF0ZXNMaW1pdCAmJiAhcmVhY2hlZE9yRXhjZWVkZWRNaW5EYXRlO1xuICB9XG5cbiAgZ2V0IF9jYW5OYXZpZ2F0ZUZvcndhcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgPVxuICAgICAgdGhpcy5kaXNhYmxlRnV0dXJlRGF0ZXMgJiYgaXNTYW1lTW9udGgodGhpcy5hY3RpdmVNb250aCwgdGhpcy50b2RheURhdGUpO1xuXG4gICAgY29uc3QgcmVhY2hlZE9yRXhjZWVkZWRNYXhEYXRlID1cbiAgICAgIHRoaXMubWF4RGF0ZSAmJlxuICAgICAgKGlzU2FtZU1vbnRoKHRoaXMuYWN0aXZlTW9udGgsIHRoaXMubWF4RGF0ZSkgfHwgaXNBZnRlcih0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLm1heERhdGUpKTtcblxuICAgIHJldHVybiAhcmVhY2hlZEZ1dHVyZURhdGVzTGltaXQgJiYgIXJlYWNoZWRPckV4Y2VlZGVkTWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2VsbChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGZvdW5kRGF5ID0gbnVsbDtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgZm9yIChsZXQgd2VlayBvZiB0aGlzLl9tb250aCkge1xuICAgICAgICBmb3VuZERheSA9IHdlZWsuZmluZCgoZGF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRheS5pc0N1cnJlbnRNb250aCAmJiBkYXkuZGF0ZSA9PT0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZm91bmREYXkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm91bmREYXk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlbHBlck9wdGlvbnMoKTogQ2FsZW5kYXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FuTmF2aWdhdGVCYWNrOiB0aGlzLl9jYW5OYXZpZ2F0ZUJhY2ssXG4gICAgICBjYW5OYXZpZ2F0ZUZvcndhcmQ6IHRoaXMuX2Nhbk5hdmlnYXRlRm9yd2FyZCxcbiAgICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgIG1vbnRoTmFtZTogdGhpcy5hY3RpdmVNb250aE5hbWUsXG4gICAgICB3ZWVrRGF5czogdGhpcy5fd2Vla0RheXMsXG4gICAgICBtb250aDogdGhpcy5fbW9udGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3VidHJhY3RUaW1lem9uZU9mZnNldChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbk1zID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAgKiAxMDAwO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0SW5Ncyk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVGcm9tTmF2aWdhYmxlWWVhcihuYXZpZ2FibGVZZWFyOiBudW1iZXIgfCBEYXRlKTogRGF0ZSB7XG4gICAgaWYgKG5hdmlnYWJsZVllYXIgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gbmF2aWdhYmxlWWVhcjtcbiAgICBjb25zdCB0b2RheSA9IHRoaXMudG9kYXlEYXRlIHx8IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCkgKyBuYXZpZ2FibGVZZWFyLCAwLCAxKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WWVhcnNCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogc3RyaW5nW10ge1xuICAgIC8vIEVuc3VyZSB5ZWFycyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkgaWYgcGFyYW1ldGVycyBhcmUgc3dpdGNoZWQ6XG4gICAgY29uc3QgW3N0YXJ0WWVhciwgZW5kWWVhcl0gPSBbc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIGVuZERhdGUuZ2V0RnVsbFllYXIoKV0uc29ydCgpO1xuICAgIGNvbnN0IG51bWJlck9mWWVhcnMgPSBlbmRZZWFyIC0gc3RhcnRZZWFyO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1iZXJPZlllYXJzICsgMSB9LCAoXywgaSkgPT4gKHN0YXJ0WWVhciArIGkpLnRvU3RyaW5nKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJtb250aC1uYXZpZ2F0b3JcIj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhX2Nhbk5hdmlnYXRlQmFja1wiIChjbGljayk9XCJfY2hhbmdlTW9udGgoLTEpXCI+XG4gICAgICA8a2lyYnktaWNvbiBuYW1lPVwiYXJyb3ctYmFja1wiPjwva2lyYnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb250aC1hbmQteWVhclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtb250aFwiPnt7IGFjdGl2ZU1vbnRoTmFtZSB9fTwvc3BhblxuICAgICAgPjxzcGFuICpuZ0lmPVwiIV9oYXNZZWFyTmF2aWdhdG9yXCIgY2xhc3M9XCJ5ZWFyXCI+e3sgYWN0aXZlWWVhciB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFfY2FuTmF2aWdhdGVGb3J3YXJkXCIgKGNsaWNrKT1cIl9jaGFuZ2VNb250aCgxKVwiPlxuICAgICAgPGtpcmJ5LWljb24gbmFtZT1cImFycm93LW1vcmVcIj48L2tpcmJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8a2lyYnktZHJvcGRvd25cbiAgICAqbmdJZj1cIl9oYXNZZWFyTmF2aWdhdG9yXCJcbiAgICBbdXNlUG9wb3Zlcl09XCJ1c2VQb3BvdmVyXCJcbiAgICBbc2VsZWN0ZWRJbmRleF09XCJuYXZpZ2F0ZWRZZWFyXCJcbiAgICBbaXRlbXNdPVwibmF2aWdhYmxlWWVhcnNcIlxuICAgIHBvcG91dD1cImxlZnRcIlxuICAgIChjaGFuZ2UpPVwiX2NoYW5nZVllYXIoJGV2ZW50KVwiXG4gID5cbiAgPC9raXJieS1kcm9wZG93bj5cbjwvZGl2PlxuXG48dGFibGU+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IHdlZWtEYXkgb2YgX3dlZWtEYXlzXCI+e3sgd2Vla0RheSB9fTwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8dGJvZHk+XG4gICAgPHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIF9tb250aFwiPlxuICAgICAgPHRkICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKGNsaWNrKT1cIl9vbkRhdGVTZWxlY3RlZChkYXkpXCJcbiAgICAgICAgICBjbGFzcz1cInt7IGRheS5jc3NDbGFzc2VzIH19XCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZGF5LmlzU2VsZWN0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48IS0tIDxpZnJhbWUgc3JjPVwia2lyYnkvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci53ZWJ2aWV3Lmh0bWxcIiAjY2FsZW5kYXJDb250YWluZXIgc3R5bGU9XCJ3aWR0aDogMzIwcHg7IGhlaWdodDogMzA0cHg7IGJvcmRlcjogMFwiPiAtLT5cbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { WindowRef } from '../../../types/window-ref';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../types/window-ref";
3
5
  export class CalendarHelper {
4
6
  constructor(windowRef) {
5
7
  this.windowRef = windowRef;
@@ -67,11 +69,9 @@ export class CalendarHelper {
67
69
  return event.data.type === 'kirbyCalendarChangeMonth' && typeof event.data.index === 'number';
68
70
  }
69
71
  }
70
- CalendarHelper.decorators = [
71
- { type: Injectable }
72
- ];
73
- /** @nocollapse */
74
- CalendarHelper.ctorParameters = () => [
75
- { type: WindowRef }
76
- ];
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFGaEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRVMsQ0FBQztJQUVyQyxJQUFJLENBQ1QsaUJBQTZCLEVBQzdCLE9BQXdCLEVBQ3hCLGFBQXNFLEVBQ3RFLGFBQXNDO1FBRXRDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFzQixpQkFBaUIsQ0FBQyxhQUFhLENBQUM7WUFDbEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFFekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQzlFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUM3RCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsR0FBVztRQUMvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDM0I7Z0JBQ0UsSUFBSSxFQUFFLDZCQUE2QjtnQkFDbkMsV0FBVyxFQUFFLEdBQUc7YUFDakIsRUFDRCxHQUFHLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxpQkFBNkI7UUFDbkQsT0FBTyxDQUNMLGlCQUFpQjtZQUNqQixpQkFBaUIsQ0FBQyxhQUFhO1lBQy9CLGlCQUFpQixDQUFDLGFBQWEsWUFBWSxpQkFBaUI7WUFDNUQsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxPQUF3QjtRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsaUJBRXpCLElBQUksRUFBRSxtQkFBbUIsSUFDdEIsT0FBTyxHQUVaLEdBQUcsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUN4QixLQUFtQixFQUNuQixhQUFzRSxFQUN0RSxhQUFzQztRQUV0QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDdkIsS0FBSywwQkFBMEI7b0JBQzdCLElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUMzQyxhQUFhLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzdEO29CQUNELE1BQU07Z0JBQ1IsS0FBSywwQkFBMEI7b0JBQzdCLElBQUksSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDakM7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQW1CO1FBQ3pDLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxNQUFNO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN4QixLQUFLLENBQUMsSUFBSTtZQUNWLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLDJCQUEyQixDQUFDLEtBQW1CO1FBQ3JELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQTBCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUUsQ0FBQztJQUVPLDRCQUE0QixDQUFDLEtBQW1CO1FBQ3RELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssMEJBQTBCLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDaEcsQ0FBQzs7O1lBcEdGLFVBQVU7Ozs7WUFKRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICcuLi8uLi8uLi90eXBlcy93aW5kb3ctcmVmJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJPcHRpb25zIH0gZnJvbSAnLi9jYWxlbmRhci1vcHRpb25zLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFySGVscGVyIHtcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXc6IFdpbmRvdztcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2luZG93UmVmOiBXaW5kb3dSZWYpIHt9XG5cbiAgcHVibGljIGluaXQoXG4gICAgY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWYsXG4gICAgb3B0aW9uczogQ2FsZW5kYXJPcHRpb25zLFxuICAgIG9uRGF5U2VsZWN0ZWQ6IChjZWxsOiB7IGlzU2VsZWN0YWJsZTogYm9vbGVhbjsgZGF0ZTogbnVtYmVyIH0pID0+IHZvaWQsXG4gICAgb25DaGFuZ2VNb250aDogKGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgKSB7XG4gICAgaWYgKHRoaXMuaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyKSkge1xuICAgICAgY29uc3QgaWZyYW1lID0gPEhUTUxJRnJhbWVFbGVtZW50PmNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZnJhbWUub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmVtYmVkZGVkVmlld1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0T3B0aW9uc1RvRW1iZWRkZWRWaWV3KG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG5cbiAgICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+XG4gICAgICAgIHRoaXMuaGFuZGxlTWVzc2FnZUV2ZW50KGV2ZW50LCBvbkRheVNlbGVjdGVkLCBvbkNoYW5nZU1vbnRoKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IENhbGVuZGFyT3B0aW9ucykge1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlYWR5KSB7XG4gICAgICB0aGlzLmVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkRGF5KGRheTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3LnBvc3RNZXNzYWdlKFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2tpcmJ5Q2FsZW5kYXJTZXRTZWxlY3RlZERheScsXG4gICAgICAgICAgc2VsZWN0ZWREYXk6IGRheSxcbiAgICAgICAgfSxcbiAgICAgICAgJyonXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzRW1iZWRkZWRWaWV3KGNhbGVuZGFyQ29udGFpbmVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICBjYWxlbmRhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTElGcmFtZUVsZW1lbnQgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGVudFdpbmRvd1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9uczogQ2FsZW5kYXJPcHRpb25zKSB7XG4gICAgdGhpcy5lbWJlZGRlZFZpZXcucG9zdE1lc3NhZ2UoXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdraXJieUNhbGVuZGFySW5pdCcsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgJyonXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTWVzc2FnZUV2ZW50KFxuICAgIGV2ZW50OiBNZXNzYWdlRXZlbnQsXG4gICAgb25EYXlTZWxlY3RlZDogKGNlbGw6IHsgaXNTZWxlY3RhYmxlOiBib29sZWFuOyBkYXRlOiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgICBvbkNoYW5nZU1vbnRoOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZU1lc3NhZ2UoZXZlbnQpKSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEudHlwZSkge1xuICAgICAgICBjYXNlICdraXJieUNhbGVuZGFyRGF5U2VsZWN0ZWQnOlxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudCkpIHtcbiAgICAgICAgICAgIG9uRGF5U2VsZWN0ZWQoeyBpc1NlbGVjdGFibGU6IHRydWUsIGRhdGU6IGV2ZW50LmRhdGEuZGF5IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAna2lyYnlDYWxlbmRhckNoYW5nZU1vbnRoJzpcbiAgICAgICAgICBpZiAodGhpcy52YWxpZGF0ZU5hdmlnYXRlTW9udGhNZXNzYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgb25DaGFuZ2VNb250aChldmVudC5kYXRhLmluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVtYmVkZGVkVmlldyA9PT0gZXZlbnQuc291cmNlICYmXG4gICAgICBldmVudC50eXBlID09PSAnbWVzc2FnZScgJiZcbiAgICAgIGV2ZW50LmRhdGEgJiZcbiAgICAgIGV2ZW50LmRhdGEudHlwZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGF0ZVNlbGVjdGVkTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGEudHlwZSA9PT0gJ2tpcmJ5Q2FsZW5kYXJEYXlTZWxlY3RlZCcgJiYgZXZlbnQuZGF0YS5kYXk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTmF2aWdhdGVNb250aE1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgIHJldHVybiBldmVudC5kYXRhLnR5cGUgPT09ICdraXJieUNhbGVuZGFyQ2hhbmdlTW9udGgnICYmIHR5cGVvZiBldmVudC5kYXRhLmluZGV4ID09PSAnbnVtYmVyJztcbiAgfVxufVxuIl19
72
+ /** @nocollapse */ CalendarHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
73
+ /** @nocollapse */ CalendarHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarHelper, decorators: [{
75
+ type: Injectable
76
+ }], ctorParameters: function () { return [{ type: i1.WindowRef }]; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2hlbHBlcnMvY2FsZW5kYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFLdEQsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZoQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFFUyxDQUFDO0lBRXJDLElBQUksQ0FDVCxpQkFBNkIsRUFDN0IsT0FBd0IsRUFDeEIsYUFBc0UsRUFDdEUsYUFBc0M7UUFFdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQXNCLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUNsRSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUV6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQzdELENBQUM7U0FDSDtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUMzQjtnQkFDRSxJQUFJLEVBQUUsNkJBQTZCO2dCQUNuQyxXQUFXLEVBQUUsR0FBRzthQUNqQixFQUNELEdBQUcsQ0FDSixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLGlCQUE2QjtRQUNuRCxPQUFPLENBQ0wsaUJBQWlCO1lBQ2pCLGlCQUFpQixDQUFDLGFBQWE7WUFDL0IsaUJBQWlCLENBQUMsYUFBYSxZQUFZLGlCQUFpQjtZQUM1RCxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQXdCO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxpQkFFekIsSUFBSSxFQUFFLG1CQUFtQixJQUN0QixPQUFPLEdBRVosR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLEtBQW1CLEVBQ25CLGFBQXNFLEVBQ3RFLGFBQXNDO1FBRXRDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQixRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUN2QixLQUFLLDBCQUEwQjtvQkFDN0IsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzNDLGFBQWEsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztxQkFDN0Q7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLDBCQUEwQjtvQkFDN0IsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzVDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsS0FBbUI7UUFDekMsT0FBTyxDQUNMLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLE1BQU07WUFDbEMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLEtBQUssQ0FBQyxJQUFJO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBbUI7UUFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxRSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBbUI7UUFDdEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSywwQkFBMEIsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNoRyxDQUFDOzsrSEFuR1UsY0FBYzttSUFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3dpbmRvdy1yZWYnO1xuXG5pbXBvcnQgeyBDYWxlbmRhck9wdGlvbnMgfSBmcm9tICcuL2NhbGVuZGFyLW9wdGlvbnMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJIZWxwZXIge1xuICBwcml2YXRlIGVtYmVkZGVkVmlldzogV2luZG93O1xuICBwcml2YXRlIGVtYmVkZGVkVmlld1JlYWR5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3aW5kb3dSZWY6IFdpbmRvd1JlZikge31cblxuICBwdWJsaWMgaW5pdChcbiAgICBjYWxlbmRhckNvbnRhaW5lcjogRWxlbWVudFJlZixcbiAgICBvcHRpb25zOiBDYWxlbmRhck9wdGlvbnMsXG4gICAgb25EYXlTZWxlY3RlZDogKGNlbGw6IHsgaXNTZWxlY3RhYmxlOiBib29sZWFuOyBkYXRlOiBudW1iZXIgfSkgPT4gdm9pZCxcbiAgICBvbkNoYW5nZU1vbnRoOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICApIHtcbiAgICBpZiAodGhpcy5oYXNFbWJlZGRlZFZpZXcoY2FsZW5kYXJDb250YWluZXIpKSB7XG4gICAgICBjb25zdCBpZnJhbWUgPSA8SFRNTElGcmFtZUVsZW1lbnQ+Y2FsZW5kYXJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXRPcHRpb25zVG9FbWJlZGRlZFZpZXcob3B0aW9ucyk7XG4gICAgICB9O1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgPSBpZnJhbWUuY29udGVudFdpbmRvdztcblxuICAgICAgdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT5cbiAgICAgICAgdGhpcy5oYW5kbGVNZXNzYWdlRXZlbnQoZXZlbnQsIG9uRGF5U2VsZWN0ZWQsIG9uQ2hhbmdlTW9udGgpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUob3B0aW9uczogQ2FsZW5kYXJPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVhZHkpIHtcbiAgICAgIHRoaXMuZW1pdE9wdGlvbnNUb0VtYmVkZGVkVmlldyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0U2VsZWN0ZWREYXkoZGF5OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWFkeSkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXcucG9zdE1lc3NhZ2UoXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAna2lyYnlDYWxlbmRhclNldFNlbGVjdGVkRGF5JyxcbiAgICAgICAgICBzZWxlY3RlZERheTogZGF5LFxuICAgICAgICB9LFxuICAgICAgICAnKidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNFbWJlZGRlZFZpZXcoY2FsZW5kYXJDb250YWluZXI6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY2FsZW5kYXJDb250YWluZXIgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgIGNhbGVuZGFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSUZyYW1lRWxlbWVudCAmJlxuICAgICAgY2FsZW5kYXJDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE9wdGlvbnNUb0VtYmVkZGVkVmlldyhvcHRpb25zOiBDYWxlbmRhck9wdGlvbnMpIHtcbiAgICB0aGlzLmVtYmVkZGVkVmlldy5wb3N0TWVzc2FnZShcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2tpcmJ5Q2FsZW5kYXJJbml0JyxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICAnKidcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlRXZlbnQoXG4gICAgZXZlbnQ6IE1lc3NhZ2VFdmVudCxcbiAgICBvbkRheVNlbGVjdGVkOiAoY2VsbDogeyBpc1NlbGVjdGFibGU6IGJvb2xlYW47IGRhdGU6IG51bWJlciB9KSA9PiB2b2lkLFxuICAgIG9uQ2hhbmdlTW9udGg6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlTWVzc2FnZShldmVudCkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuZGF0YS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2tpcmJ5Q2FsZW5kYXJEYXlTZWxlY3RlZCc6XG4gICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVEYXRlU2VsZWN0ZWRNZXNzYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgb25EYXlTZWxlY3RlZCh7IGlzU2VsZWN0YWJsZTogdHJ1ZSwgZGF0ZTogZXZlbnQuZGF0YS5kYXkgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdraXJieUNhbGVuZGFyQ2hhbmdlTW9udGgnOlxuICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlTmF2aWdhdGVNb250aE1lc3NhZ2UoZXZlbnQpKSB7XG4gICAgICAgICAgICBvbkNoYW5nZU1vbnRoKGV2ZW50LmRhdGEuaW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID09PSBldmVudC5zb3VyY2UgJiZcbiAgICAgIGV2ZW50LnR5cGUgPT09ICdtZXNzYWdlJyAmJlxuICAgICAgZXZlbnQuZGF0YSAmJlxuICAgICAgZXZlbnQuZGF0YS50eXBlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRlU2VsZWN0ZWRNZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQuZGF0YS50eXBlID09PSAna2lyYnlDYWxlbmRhckRheVNlbGVjdGVkJyAmJiBldmVudC5kYXRhLmRheTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVOYXZpZ2F0ZU1vbnRoTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGEudHlwZSA9PT0gJ2tpcmJ5Q2FsZW5kYXJDaGFuZ2VNb250aCcgJiYgdHlwZW9mIGV2ZW50LmRhdGEuaW5kZXggPT09ICdudW1iZXInO1xuICB9XG59XG4iXX0=
@@ -1,15 +1,18 @@
1
- import { Component } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  export class CardFooterComponent {
3
4
  constructor() { }
4
5
  ngOnInit() { }
5
6
  }
6
- CardFooterComponent.decorators = [
7
- { type: Component, args: [{
8
- selector: 'kirby-card-footer',
9
- template: "<footer>\n <ng-content></ng-content>\n</footer>\n",
10
- styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}footer{display:inherit;flex:inherit}"]
11
- },] }
12
- ];
13
- /** @nocollapse */
14
- CardFooterComponent.ctorParameters = () => [];
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOzs7WUFSZCxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsOERBQTJDOzthQUU1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWNhcmQtZm9vdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
7
+ /** @nocollapse */ CardFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ /** @nocollapse */ CardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CardFooterComponent, selector: "kirby-card-footer", ngImport: i0, template: "<footer>\n <ng-content></ng-content>\n</footer>\n", styles: [":host{display:block;padding:16px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0)}footer{display:inherit;flex:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CardFooterComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'kirby-card-footer',
13
+ templateUrl: './card-footer.component.html',
14
+ styleUrls: ['./card-footer.component.scss'],
15
+ changeDetection: ChangeDetectionStrategy.OnPush,
16
+ }]
17
+ }], ctorParameters: function () { return []; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOztvSUFIRixtQkFBbUI7d0hBQW5CLG1CQUFtQix5RENSaEMsb0RBR0E7NEZES2EsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO29CQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2FyZC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWZvb3Rlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iLCI8Zm9vdGVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Zvb3Rlcj5cbiJdfQ==