@kirbydesign/designsystem 11.4.2 → 11.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/fesm2022/kirbydesign-designsystem-accordion.mjs +11 -11
  2. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  3. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  4. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  5. package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
  6. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  7. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  8. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  9. package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
  10. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  11. package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
  12. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  13. package/fesm2022/kirbydesign-designsystem-card.mjs +17 -17
  14. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  15. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  16. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  17. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +5 -5
  18. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  19. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  20. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  21. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  22. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  23. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  24. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  25. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
  26. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  27. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
  28. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  30. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-form-field.mjs +132 -113
  32. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
  34. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-helpers.mjs +73 -10
  36. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
  38. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  40. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  42. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-item.mjs +11 -11
  44. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  46. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-list.mjs +40 -40
  48. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  50. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  51. package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
  52. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  53. package/fesm2022/kirbydesign-designsystem-modal.mjs +51 -51
  54. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  55. package/fesm2022/kirbydesign-designsystem-page.mjs +41 -41
  56. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  57. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  58. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  60. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-radio.mjs +11 -11
  62. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  63. package/fesm2022/kirbydesign-designsystem-range.mjs +5 -5
  64. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  65. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
  66. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  67. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  68. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  69. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  70. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  71. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +4 -4
  72. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  73. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  74. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  75. package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
  76. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  77. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
  78. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  79. package/fesm2022/kirbydesign-designsystem-slide.mjs +14 -14
  80. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  81. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  82. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  83. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
  84. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  85. package/fesm2022/kirbydesign-designsystem-tabs.mjs +15 -15
  86. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  87. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +294 -287
  88. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  89. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  90. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  91. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  92. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  93. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  94. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  95. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  96. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  97. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
  98. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  99. package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -5
  100. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  101. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  102. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  103. package/fesm2022/kirbydesign-designsystem.mjs +15 -15
  104. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  105. package/package.json +63 -63
  106. package/{accordion/index.d.ts → types/kirbydesign-designsystem-accordion.d.ts} +1 -1
  107. package/types/kirbydesign-designsystem-accordion.d.ts.map +1 -0
  108. package/{action-group/index.d.ts → types/kirbydesign-designsystem-action-group.d.ts} +1 -1
  109. package/types/kirbydesign-designsystem-action-group.d.ts.map +1 -0
  110. package/{avatar/index.d.ts → types/kirbydesign-designsystem-avatar.d.ts} +2 -2
  111. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -0
  112. package/{badge/index.d.ts → types/kirbydesign-designsystem-badge.d.ts} +1 -1
  113. package/types/kirbydesign-designsystem-badge.d.ts.map +1 -0
  114. package/{button/index.d.ts → types/kirbydesign-designsystem-button.d.ts} +2 -2
  115. package/types/kirbydesign-designsystem-button.d.ts.map +1 -0
  116. package/{calendar/index.d.ts → types/kirbydesign-designsystem-calendar.d.ts} +1 -1
  117. package/types/kirbydesign-designsystem-calendar.d.ts.map +1 -0
  118. package/{card/index.d.ts → types/kirbydesign-designsystem-card.d.ts} +2 -2
  119. package/types/kirbydesign-designsystem-card.d.ts.map +1 -0
  120. package/{chart/index.d.ts → types/kirbydesign-designsystem-chart.d.ts} +1 -1
  121. package/types/kirbydesign-designsystem-chart.d.ts.map +1 -0
  122. package/{checkbox/index.d.ts → types/kirbydesign-designsystem-checkbox.d.ts} +1 -1
  123. package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -0
  124. package/{config/index.d.ts → types/kirbydesign-designsystem-config.d.ts} +1 -1
  125. package/types/kirbydesign-designsystem-config.d.ts.map +1 -0
  126. package/{data-table/index.d.ts → types/kirbydesign-designsystem-data-table.d.ts} +1 -1
  127. package/types/kirbydesign-designsystem-data-table.d.ts.map +1 -0
  128. package/{divider/index.d.ts → types/kirbydesign-designsystem-divider.d.ts} +1 -1
  129. package/types/kirbydesign-designsystem-divider.d.ts.map +1 -0
  130. package/{dropdown/index.d.ts → types/kirbydesign-designsystem-dropdown.d.ts} +1 -1
  131. package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -0
  132. package/{empty-state/index.d.ts → types/kirbydesign-designsystem-empty-state.d.ts} +1 -1
  133. package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -0
  134. package/{fab-sheet/index.d.ts → types/kirbydesign-designsystem-fab-sheet.d.ts} +1 -1
  135. package/types/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -0
  136. package/{flag/index.d.ts → types/kirbydesign-designsystem-flag.d.ts} +1 -1
  137. package/types/kirbydesign-designsystem-flag.d.ts.map +1 -0
  138. package/{form-field/index.d.ts → types/kirbydesign-designsystem-form-field.d.ts} +21 -24
  139. package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -0
  140. package/{header/index.d.ts → types/kirbydesign-designsystem-header.d.ts} +1 -1
  141. package/types/kirbydesign-designsystem-header.d.ts.map +1 -0
  142. package/{helpers/scss/index.d.ts → types/kirbydesign-designsystem-helpers-scss.d.ts} +1 -1
  143. package/types/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -0
  144. package/{helpers/index.d.ts → types/kirbydesign-designsystem-helpers.d.ts} +81 -13
  145. package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -0
  146. package/{icon/index.d.ts → types/kirbydesign-designsystem-icon.d.ts} +1 -1
  147. package/types/kirbydesign-designsystem-icon.d.ts.map +1 -0
  148. package/{item-group/index.d.ts → types/kirbydesign-designsystem-item-group.d.ts} +1 -1
  149. package/types/kirbydesign-designsystem-item-group.d.ts.map +1 -0
  150. package/{item-sliding/index.d.ts → types/kirbydesign-designsystem-item-sliding.d.ts} +1 -1
  151. package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -0
  152. package/{item/index.d.ts → types/kirbydesign-designsystem-item.d.ts} +1 -1
  153. package/types/kirbydesign-designsystem-item.d.ts.map +1 -0
  154. package/{kirby-app/index.d.ts → types/kirbydesign-designsystem-kirby-app.d.ts} +1 -1
  155. package/types/kirbydesign-designsystem-kirby-app.d.ts.map +1 -0
  156. package/{list/index.d.ts → types/kirbydesign-designsystem-list.d.ts} +1 -1
  157. package/types/kirbydesign-designsystem-list.d.ts.map +1 -0
  158. package/{loading-overlay/index.d.ts → types/kirbydesign-designsystem-loading-overlay.d.ts} +1 -1
  159. package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -0
  160. package/{menu/index.d.ts → types/kirbydesign-designsystem-menu.d.ts} +1 -1
  161. package/types/kirbydesign-designsystem-menu.d.ts.map +1 -0
  162. package/{modal/index.d.ts → types/kirbydesign-designsystem-modal.d.ts} +2 -2
  163. package/types/kirbydesign-designsystem-modal.d.ts.map +1 -0
  164. package/{page/index.d.ts → types/kirbydesign-designsystem-page.d.ts} +1 -1
  165. package/types/kirbydesign-designsystem-page.d.ts.map +1 -0
  166. package/{popover/index.d.ts → types/kirbydesign-designsystem-popover.d.ts} +1 -1
  167. package/types/kirbydesign-designsystem-popover.d.ts.map +1 -0
  168. package/{progress-circle/index.d.ts → types/kirbydesign-designsystem-progress-circle.d.ts} +1 -1
  169. package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -0
  170. package/{radio/index.d.ts → types/kirbydesign-designsystem-radio.d.ts} +1 -1
  171. package/types/kirbydesign-designsystem-radio.d.ts.map +1 -0
  172. package/{range/index.d.ts → types/kirbydesign-designsystem-range.d.ts} +1 -1
  173. package/types/kirbydesign-designsystem-range.d.ts.map +1 -0
  174. package/{reorder-list/index.d.ts → types/kirbydesign-designsystem-reorder-list.d.ts} +1 -1
  175. package/types/kirbydesign-designsystem-reorder-list.d.ts.map +1 -0
  176. package/{router-outlet/index.d.ts → types/kirbydesign-designsystem-router-outlet.d.ts} +1 -1
  177. package/types/kirbydesign-designsystem-router-outlet.d.ts.map +1 -0
  178. package/{section-header/index.d.ts → types/kirbydesign-designsystem-section-header.d.ts} +1 -1
  179. package/types/kirbydesign-designsystem-section-header.d.ts.map +1 -0
  180. package/{shared/floating/index.d.ts → types/kirbydesign-designsystem-shared-floating.d.ts} +1 -1
  181. package/types/kirbydesign-designsystem-shared-floating.d.ts.map +1 -0
  182. package/{shared/portal/index.d.ts → types/kirbydesign-designsystem-shared-portal.d.ts} +1 -1
  183. package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -0
  184. package/{shared/index.d.ts → types/kirbydesign-designsystem-shared.d.ts} +1 -1
  185. package/types/kirbydesign-designsystem-shared.d.ts.map +1 -0
  186. package/{slide-button/index.d.ts → types/kirbydesign-designsystem-slide-button.d.ts} +1 -1
  187. package/types/kirbydesign-designsystem-slide-button.d.ts.map +1 -0
  188. package/{slide/index.d.ts → types/kirbydesign-designsystem-slide.d.ts} +1 -1
  189. package/types/kirbydesign-designsystem-slide.d.ts.map +1 -0
  190. package/{spinner/index.d.ts → types/kirbydesign-designsystem-spinner.d.ts} +1 -1
  191. package/types/kirbydesign-designsystem-spinner.d.ts.map +1 -0
  192. package/{tab-navigation/index.d.ts → types/kirbydesign-designsystem-tab-navigation.d.ts} +1 -1
  193. package/types/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -0
  194. package/{tabs/index.d.ts → types/kirbydesign-designsystem-tabs.d.ts} +1 -1
  195. package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -0
  196. package/{testing-base/index.d.ts → types/kirbydesign-designsystem-testing-base.d.ts} +5 -3
  197. package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -0
  198. package/{testing-jasmine/index.d.ts → types/kirbydesign-designsystem-testing-jasmine.d.ts} +1 -1
  199. package/types/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -0
  200. package/{testing-jest/index.d.ts → types/kirbydesign-designsystem-testing-jest.d.ts} +1 -1
  201. package/types/kirbydesign-designsystem-testing-jest.d.ts.map +1 -0
  202. package/{testing/index.d.ts → types/kirbydesign-designsystem-testing.d.ts} +1 -1
  203. package/types/kirbydesign-designsystem-testing.d.ts.map +1 -0
  204. package/{toast/index.d.ts → types/kirbydesign-designsystem-toast.d.ts} +1 -1
  205. package/types/kirbydesign-designsystem-toast.d.ts.map +1 -0
  206. package/{toggle-button/index.d.ts → types/kirbydesign-designsystem-toggle-button.d.ts} +1 -1
  207. package/types/kirbydesign-designsystem-toggle-button.d.ts.map +1 -0
  208. package/{toggle/index.d.ts → types/kirbydesign-designsystem-toggle.d.ts} +1 -1
  209. package/types/kirbydesign-designsystem-toggle.d.ts.map +1 -0
  210. package/types/{index.d.ts → kirbydesign-designsystem-types.d.ts} +1 -1
  211. package/types/kirbydesign-designsystem-types.d.ts.map +1 -0
  212. package/{index.d.ts → types/kirbydesign-designsystem.d.ts} +1 -1
  213. package/types/kirbydesign-designsystem.d.ts.map +1 -0
  214. package/accordion/index.d.ts.map +0 -1
  215. package/action-group/index.d.ts.map +0 -1
  216. package/avatar/index.d.ts.map +0 -1
  217. package/badge/index.d.ts.map +0 -1
  218. package/button/index.d.ts.map +0 -1
  219. package/calendar/index.d.ts.map +0 -1
  220. package/card/index.d.ts.map +0 -1
  221. package/chart/index.d.ts.map +0 -1
  222. package/checkbox/index.d.ts.map +0 -1
  223. package/config/index.d.ts.map +0 -1
  224. package/data-table/index.d.ts.map +0 -1
  225. package/divider/index.d.ts.map +0 -1
  226. package/dropdown/index.d.ts.map +0 -1
  227. package/empty-state/index.d.ts.map +0 -1
  228. package/fab-sheet/index.d.ts.map +0 -1
  229. package/flag/index.d.ts.map +0 -1
  230. package/form-field/index.d.ts.map +0 -1
  231. package/header/index.d.ts.map +0 -1
  232. package/helpers/index.d.ts.map +0 -1
  233. package/helpers/scss/index.d.ts.map +0 -1
  234. package/icon/index.d.ts.map +0 -1
  235. package/index.d.ts.map +0 -1
  236. package/item/index.d.ts.map +0 -1
  237. package/item-group/index.d.ts.map +0 -1
  238. package/item-sliding/index.d.ts.map +0 -1
  239. package/kirby-app/index.d.ts.map +0 -1
  240. package/list/index.d.ts.map +0 -1
  241. package/loading-overlay/index.d.ts.map +0 -1
  242. package/menu/index.d.ts.map +0 -1
  243. package/modal/index.d.ts.map +0 -1
  244. package/page/index.d.ts.map +0 -1
  245. package/popover/index.d.ts.map +0 -1
  246. package/progress-circle/index.d.ts.map +0 -1
  247. package/radio/index.d.ts.map +0 -1
  248. package/range/index.d.ts.map +0 -1
  249. package/reorder-list/index.d.ts.map +0 -1
  250. package/router-outlet/index.d.ts.map +0 -1
  251. package/section-header/index.d.ts.map +0 -1
  252. package/shared/floating/index.d.ts.map +0 -1
  253. package/shared/index.d.ts.map +0 -1
  254. package/shared/portal/index.d.ts.map +0 -1
  255. package/slide/index.d.ts.map +0 -1
  256. package/slide-button/index.d.ts.map +0 -1
  257. package/spinner/index.d.ts.map +0 -1
  258. package/tab-navigation/index.d.ts.map +0 -1
  259. package/tabs/index.d.ts.map +0 -1
  260. package/testing/index.d.ts.map +0 -1
  261. package/testing-base/index.d.ts.map +0 -1
  262. package/testing-jasmine/index.d.ts.map +0 -1
  263. package/testing-jest/index.d.ts.map +0 -1
  264. package/toast/index.d.ts.map +0 -1
  265. package/toggle/index.d.ts.map +0 -1
  266. package/toggle-button/index.d.ts.map +0 -1
  267. package/types/index.d.ts.map +0 -1
@@ -91,11 +91,11 @@ const MOCK_PROVIDERS = [
91
91
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
92
92
  /// <reference path='../../../../../node_modules/@types/jasmine/index.d.ts' />
93
93
  class KirbyTestingModule {
94
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
94
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, decorators: [{
99
99
  type: NgModule,
100
100
  args: [{
101
101
  imports: [KirbyTestingBaseModule],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-testing-jasmine.mjs","sources":["../../testing-jasmine/src/lib/mock-providers.ts","../../testing-jasmine/src/lib/kirby-testing.module.ts","../../testing-jasmine/src/kirbydesign-designsystem-testing-jasmine.ts"],"sourcesContent":["// AUTO-GENERATED - PLEASE DON'T EDIT THIS FILE MANUALLY\n\nimport {\n ChartConfigService,\n ChartJSService,\n IconRegistryService,\n LoadingOverlayService,\n TabsService,\n} from '@kirbydesign/designsystem';\n\nimport { ToastController } from '@kirbydesign/designsystem/toast';\nimport { ModalController } from '@kirbydesign/designsystem/modal';\n\nimport { EMPTY } from 'rxjs';\n\nexport function chartConfigServiceFactory() {\n return jasmine.createSpyObj<ChartConfigService>('ChartConfigService', [\n 'getTypeConfig',\n 'getAnnotationDefaults',\n 'chartTypeToChartJSType',\n 'applyInteractionFunctionsExtensions',\n 'getStockChartOptions',\n ]);\n}\n\nexport function chartJSServiceFactory() {\n return jasmine.createSpyObj<ChartJSService>('ChartJSService', [\n 'renderChart',\n 'redrawChart',\n 'destroyChart',\n 'updateData',\n 'updateLabels',\n 'updateType',\n 'updateOptions',\n 'updateAnnotations',\n 'updateHighlightedElements',\n ]);\n}\n\nexport function iconRegistryServiceFactory() {\n return jasmine.createSpyObj<IconRegistryService>('IconRegistryService', ['addIcon', 'addIcons']);\n}\n\nexport function loadingOverlayServiceFactory() {\n return jasmine.createSpyObj<LoadingOverlayService>('LoadingOverlayService', [\n 'showLoadingOverlay',\n 'hideLoadingOverlay',\n ]);\n}\n\nexport function modalControllerFactory() {\n return jasmine.createSpyObj<ModalController>('ModalController', [\n 'showModal',\n 'navigateToModal',\n 'navigateWithinModal',\n 'showActionSheet',\n 'showAlert',\n 'hideTopmost',\n 'hideAll',\n ]);\n}\n\nexport function tabsServiceFactory() {\n return jasmine.createSpyObj<TabsService>('TabsService', ['setOutlet', 'resetOutlet'], {\n outlet$: EMPTY,\n });\n}\n\nexport function toastControllerFactory() {\n return jasmine.createSpyObj<ToastController>('ToastController', ['showToast']);\n}\n\nexport const MOCK_PROVIDERS = [\n {\n provide: ChartConfigService,\n useFactory: chartConfigServiceFactory,\n },\n {\n provide: ChartJSService,\n useFactory: chartJSServiceFactory,\n },\n {\n provide: IconRegistryService,\n useFactory: iconRegistryServiceFactory,\n },\n {\n provide: LoadingOverlayService,\n useFactory: loadingOverlayServiceFactory,\n },\n {\n provide: ModalController,\n useFactory: modalControllerFactory,\n },\n {\n provide: TabsService,\n useFactory: tabsServiceFactory,\n },\n {\n provide: ToastController,\n useFactory: toastControllerFactory,\n },\n];\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../../../../../node_modules/@types/jasmine/index.d.ts' />\n\nimport { NgModule } from '@angular/core';\n\nimport { KirbyTestingBaseModule } from '@kirbydesign/designsystem/testing-base';\n\nimport { MOCK_PROVIDERS } from './mock-providers';\n\n@NgModule({\n imports: [KirbyTestingBaseModule],\n exports: [KirbyTestingBaseModule],\n providers: [...MOCK_PROVIDERS],\n})\nexport class KirbyTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-testing-jasmine.mjs","sources":["../../testing-jasmine/src/lib/mock-providers.ts","../../testing-jasmine/src/lib/kirby-testing.module.ts","../../testing-jasmine/src/kirbydesign-designsystem-testing-jasmine.ts"],"sourcesContent":["// AUTO-GENERATED - PLEASE DON'T EDIT THIS FILE MANUALLY\n\nimport {\n ChartConfigService,\n ChartJSService,\n IconRegistryService,\n LoadingOverlayService,\n TabsService,\n} from '@kirbydesign/designsystem';\n\nimport { ToastController } from '@kirbydesign/designsystem/toast';\nimport { ModalController } from '@kirbydesign/designsystem/modal';\n\nimport { EMPTY } from 'rxjs';\n\nexport function chartConfigServiceFactory() {\n return jasmine.createSpyObj<ChartConfigService>('ChartConfigService', [\n 'getTypeConfig',\n 'getAnnotationDefaults',\n 'chartTypeToChartJSType',\n 'applyInteractionFunctionsExtensions',\n 'getStockChartOptions',\n ]);\n}\n\nexport function chartJSServiceFactory() {\n return jasmine.createSpyObj<ChartJSService>('ChartJSService', [\n 'renderChart',\n 'redrawChart',\n 'destroyChart',\n 'updateData',\n 'updateLabels',\n 'updateType',\n 'updateOptions',\n 'updateAnnotations',\n 'updateHighlightedElements',\n ]);\n}\n\nexport function iconRegistryServiceFactory() {\n return jasmine.createSpyObj<IconRegistryService>('IconRegistryService', ['addIcon', 'addIcons']);\n}\n\nexport function loadingOverlayServiceFactory() {\n return jasmine.createSpyObj<LoadingOverlayService>('LoadingOverlayService', [\n 'showLoadingOverlay',\n 'hideLoadingOverlay',\n ]);\n}\n\nexport function modalControllerFactory() {\n return jasmine.createSpyObj<ModalController>('ModalController', [\n 'showModal',\n 'navigateToModal',\n 'navigateWithinModal',\n 'showActionSheet',\n 'showAlert',\n 'hideTopmost',\n 'hideAll',\n ]);\n}\n\nexport function tabsServiceFactory() {\n return jasmine.createSpyObj<TabsService>('TabsService', ['setOutlet', 'resetOutlet'], {\n outlet$: EMPTY,\n });\n}\n\nexport function toastControllerFactory() {\n return jasmine.createSpyObj<ToastController>('ToastController', ['showToast']);\n}\n\nexport const MOCK_PROVIDERS = [\n {\n provide: ChartConfigService,\n useFactory: chartConfigServiceFactory,\n },\n {\n provide: ChartJSService,\n useFactory: chartJSServiceFactory,\n },\n {\n provide: IconRegistryService,\n useFactory: iconRegistryServiceFactory,\n },\n {\n provide: LoadingOverlayService,\n useFactory: loadingOverlayServiceFactory,\n },\n {\n provide: ModalController,\n useFactory: modalControllerFactory,\n },\n {\n provide: TabsService,\n useFactory: tabsServiceFactory,\n },\n {\n provide: ToastController,\n useFactory: toastControllerFactory,\n },\n];\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../../../../../node_modules/@types/jasmine/index.d.ts' />\n\nimport { NgModule } from '@angular/core';\n\nimport { KirbyTestingBaseModule } from '@kirbydesign/designsystem/testing-base';\n\nimport { MOCK_PROVIDERS } from './mock-providers';\n\n@NgModule({\n imports: [KirbyTestingBaseModule],\n exports: [KirbyTestingBaseModule],\n providers: [...MOCK_PROVIDERS],\n})\nexport class KirbyTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -97,11 +97,11 @@ const MOCK_PROVIDERS = [
97
97
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
98
98
  /// <reference path='../../../../../node_modules/@types/jest/index.d.ts' />
99
99
  class KirbyTestingModule {
100
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
100
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KirbyTestingModule, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KirbyTestingModule, decorators: [{
105
105
  type: NgModule,
106
106
  args: [{
107
107
  imports: [KirbyTestingBaseModule],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-testing-jest.mjs","sources":["../../testing-jest/src/lib/mock-providers.ts","../../testing-jest/src/lib/kirby-testing.module.ts","../../testing-jest/src/kirbydesign-designsystem-testing-jest.ts"],"sourcesContent":["// AUTO-GENERATED - PLEASE DON'T EDIT THIS FILE MANUALLY\n\nimport {\n ChartConfigService,\n ChartJSService,\n IconRegistryService,\n LoadingOverlayService,\n ModalController,\n TabsService,\n} from '@kirbydesign/designsystem';\n\nimport { ToastController } from '@kirbydesign/designsystem/toast';\nimport { EMPTY } from 'rxjs';\n\nexport function chartConfigServiceFactory() {\n return {\n getTypeConfig: jest.fn(),\n getAnnotationDefaults: jest.fn(),\n chartTypeToChartJSType: jest.fn(),\n applyInteractionFunctionsExtensions: jest.fn(),\n getStockChartOptions: jest.fn(),\n };\n}\n\nexport function chartJSServiceFactory() {\n return {\n renderChart: jest.fn(),\n redrawChart: jest.fn(),\n destroyChart: jest.fn(),\n updateData: jest.fn(),\n updateLabels: jest.fn(),\n updateType: jest.fn(),\n updateOptions: jest.fn(),\n updateAnnotations: jest.fn(),\n updateHighlightedElements: jest.fn(),\n };\n}\n\nexport function iconRegistryServiceFactory() {\n return {\n addIcon: jest.fn(),\n addIcons: jest.fn(),\n };\n}\n\nexport function loadingOverlayServiceFactory() {\n return {\n showLoadingOverlay: jest.fn(),\n hideLoadingOverlay: jest.fn(),\n };\n}\n\nexport function modalControllerFactory() {\n return {\n showModal: jest.fn(),\n navigateToModal: jest.fn(),\n navigateWithinModal: jest.fn(),\n showActionSheet: jest.fn(),\n showAlert: jest.fn(),\n hideTopmost: jest.fn(),\n hideAll: jest.fn(),\n };\n}\n\nexport function tabsServiceFactory() {\n return {\n setOutlet: jest.fn(),\n resetOutlet: jest.fn(),\n outlet$: EMPTY,\n };\n}\n\nexport function toastControllerFactory() {\n return {\n showToast: jest.fn(),\n };\n}\n\nexport const MOCK_PROVIDERS = [\n {\n provide: ChartConfigService,\n useFactory: chartConfigServiceFactory,\n },\n {\n provide: ChartJSService,\n useFactory: chartJSServiceFactory,\n },\n {\n provide: IconRegistryService,\n useFactory: iconRegistryServiceFactory,\n },\n {\n provide: LoadingOverlayService,\n useFactory: loadingOverlayServiceFactory,\n },\n {\n provide: ModalController,\n useFactory: modalControllerFactory,\n },\n {\n provide: TabsService,\n useFactory: tabsServiceFactory,\n },\n {\n provide: ToastController,\n useFactory: toastControllerFactory,\n },\n];\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../../../../../node_modules/@types/jest/index.d.ts' />\n\nimport { NgModule } from '@angular/core';\n\nimport { KirbyTestingBaseModule } from '@kirbydesign/designsystem/testing-base';\n\nimport { MOCK_PROVIDERS } from './mock-providers';\n\n@NgModule({\n imports: [KirbyTestingBaseModule],\n exports: [KirbyTestingBaseModule],\n providers: [...MOCK_PROVIDERS],\n})\nexport class KirbyTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-testing-jest.mjs","sources":["../../testing-jest/src/lib/mock-providers.ts","../../testing-jest/src/lib/kirby-testing.module.ts","../../testing-jest/src/kirbydesign-designsystem-testing-jest.ts"],"sourcesContent":["// AUTO-GENERATED - PLEASE DON'T EDIT THIS FILE MANUALLY\n\nimport {\n ChartConfigService,\n ChartJSService,\n IconRegistryService,\n LoadingOverlayService,\n ModalController,\n TabsService,\n} from '@kirbydesign/designsystem';\n\nimport { ToastController } from '@kirbydesign/designsystem/toast';\nimport { EMPTY } from 'rxjs';\n\nexport function chartConfigServiceFactory() {\n return {\n getTypeConfig: jest.fn(),\n getAnnotationDefaults: jest.fn(),\n chartTypeToChartJSType: jest.fn(),\n applyInteractionFunctionsExtensions: jest.fn(),\n getStockChartOptions: jest.fn(),\n };\n}\n\nexport function chartJSServiceFactory() {\n return {\n renderChart: jest.fn(),\n redrawChart: jest.fn(),\n destroyChart: jest.fn(),\n updateData: jest.fn(),\n updateLabels: jest.fn(),\n updateType: jest.fn(),\n updateOptions: jest.fn(),\n updateAnnotations: jest.fn(),\n updateHighlightedElements: jest.fn(),\n };\n}\n\nexport function iconRegistryServiceFactory() {\n return {\n addIcon: jest.fn(),\n addIcons: jest.fn(),\n };\n}\n\nexport function loadingOverlayServiceFactory() {\n return {\n showLoadingOverlay: jest.fn(),\n hideLoadingOverlay: jest.fn(),\n };\n}\n\nexport function modalControllerFactory() {\n return {\n showModal: jest.fn(),\n navigateToModal: jest.fn(),\n navigateWithinModal: jest.fn(),\n showActionSheet: jest.fn(),\n showAlert: jest.fn(),\n hideTopmost: jest.fn(),\n hideAll: jest.fn(),\n };\n}\n\nexport function tabsServiceFactory() {\n return {\n setOutlet: jest.fn(),\n resetOutlet: jest.fn(),\n outlet$: EMPTY,\n };\n}\n\nexport function toastControllerFactory() {\n return {\n showToast: jest.fn(),\n };\n}\n\nexport const MOCK_PROVIDERS = [\n {\n provide: ChartConfigService,\n useFactory: chartConfigServiceFactory,\n },\n {\n provide: ChartJSService,\n useFactory: chartJSServiceFactory,\n },\n {\n provide: IconRegistryService,\n useFactory: iconRegistryServiceFactory,\n },\n {\n provide: LoadingOverlayService,\n useFactory: loadingOverlayServiceFactory,\n },\n {\n provide: ModalController,\n useFactory: modalControllerFactory,\n },\n {\n provide: TabsService,\n useFactory: tabsServiceFactory,\n },\n {\n provide: ToastController,\n useFactory: toastControllerFactory,\n },\n];\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../../../../../node_modules/@types/jest/index.d.ts' />\n\nimport { NgModule } from '@angular/core';\n\nimport { KirbyTestingBaseModule } from '@kirbydesign/designsystem/testing-base';\n\nimport { MOCK_PROVIDERS } from './mock-providers';\n\n@NgModule({\n imports: [KirbyTestingBaseModule],\n exports: [KirbyTestingBaseModule],\n providers: [...MOCK_PROVIDERS],\n})\nexport class KirbyTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ import { provideIonicAngular } from '@ionic/angular/standalone';
5
5
  import { componentOnReady } from '@ionic/core';
6
6
 
7
7
  class IonicTestingModule {
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: IonicTestingModule }); }
10
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: IonicTestingModule }); }
10
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IonicTestingModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicTestingModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  providers: [provideIonicAngular({ mode: 'ios', _testing: true })],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -30,10 +30,10 @@ class ToastHelper {
30
30
  }
31
31
  return cssClass;
32
32
  }
33
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastHelper }); }
33
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastHelper }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastHelper, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastHelper, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: () => [{ type: i1.ToastController }] });
39
39
 
@@ -48,10 +48,10 @@ class ToastController {
48
48
  }
49
49
  });
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastController }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastController }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToastController, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastController, decorators: [{
55
55
  type: Injectable
56
56
  }], ctorParameters: () => [{ type: ToastHelper }] });
57
57
 
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular/standalone';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ? config.durationInMs : ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public showToast(config: ToastConfig, onCloseToast?: () => void) {\n this.toastHelper.showToast(config).then((overlay) => {\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,cAAc;YAChF,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;kIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCCY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;IAExC,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;AAC7D,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;YAClD,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;YACjD;AACF,QAAA,CAAC,CAAC;IACJ;kIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular/standalone';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ? config.durationInMs : ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public showToast(config: ToastConfig, onCloseToast?: () => void) {\n this.toastHelper.showToast(config).then((overlay) => {\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,cAAc;YAChF,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;iIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAAX,WAAW,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCCY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;IAExC,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;AAC7D,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;YAClD,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;YACjD;AACF,QAAA,CAAC,CAAC;IACJ;iIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACND;;AAEG;;;;"}
@@ -77,8 +77,8 @@ class ToggleButtonComponent {
77
77
  ?.toggleAttribute('disabled', isDisabled);
78
78
  this.cdr.markForCheck();
79
79
  }
80
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ToggleButtonComponent, isStandalone: true, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick($event)", "focusout": "onFocusOut()" } }, providers: [
80
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ToggleButtonComponent, isStandalone: true, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick($event)", "focusout": "onFocusOut()" } }, providers: [
82
82
  {
83
83
  provide: NG_VALUE_ACCESSOR,
84
84
  useExisting: forwardRef((() => ToggleButtonComponent)),
@@ -86,7 +86,7 @@ class ToggleButtonComponent {
86
86
  },
87
87
  ], ngImport: i0, template: "@if (!checked) {\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n}\n@if (checked) {\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'kirby-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
92
92
  {
@@ -108,11 +108,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
108
108
  }] } });
109
109
 
110
110
  class ToggleButtonModule {
111
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule, ToggleButtonComponent], exports: [ToggleButtonComponent] }); }
113
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
111
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule, ToggleButtonComponent], exports: [ToggleButtonComponent] }); }
113
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleButtonModule, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleButtonModule, decorators: [{
116
116
  type: NgModule,
117
117
  args: [{
118
118
  imports: [CommonModule, ToggleButtonComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle-button.mjs","sources":["../../toggle-button/src/toggle-button.component.ts","../../toggle-button/src/toggle-button.component.html","../../toggle-button/src/toggle-button.module.ts","../../toggle-button/src/kirbydesign-designsystem-toggle-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleButtonComponent implements ControlValueAccessor {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent) {\n const targetElement = event.target as HTMLElement;\n const buttonEnabled = targetElement.closest('button[kirby-button]:not(:disabled)');\n\n if (!buttonEnabled) return;\n\n this.checked = !this.checked;\n this.onChange(this.checked);\n this.onTouched();\n this.checkChanged.emit(this.checked);\n this.focusToggledButton();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.onTouched();\n }\n\n focusToggledButton() {\n // force re-render to ensure that the new button is in the dom\n this.cdr.detectChanges();\n\n const buttonToFocus = this.elementRef.nativeElement.querySelector(\n 'button[kirby-button]'\n ) as HTMLButtonElement;\n\n buttonToFocus?.focus();\n }\n\n /**\n * Sets the toggle button's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param checked New value to be written to the model.\n */\n writeValue(checked: boolean): void {\n if (this.checked !== checked) {\n this.checked = checked;\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-empty-function\n private onChange = (_checked: boolean) => {};\n // eslint-disable-next-line no-empty-function, @typescript-eslint/no-empty-function\n private onTouched = () => {};\n\n /**\n * Saves a callback function to be invoked when the toggle button's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (checked: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the toggle button is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the toggle button. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.elementRef.nativeElement\n .querySelector('button[kirby-button]')\n ?.toggleAttribute('disabled', isDisabled);\n this.cdr.markForCheck();\n }\n}\n","@if (!checked) {\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n}\n@if (checked) {\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\n@NgModule({\n imports: [CommonModule, ToggleButtonComponent],\n exports: [ToggleButtonComponent],\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle-button.mjs","sources":["../../toggle-button/src/toggle-button.component.ts","../../toggle-button/src/toggle-button.component.html","../../toggle-button/src/toggle-button.module.ts","../../toggle-button/src/kirbydesign-designsystem-toggle-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleButtonComponent implements ControlValueAccessor {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent) {\n const targetElement = event.target as HTMLElement;\n const buttonEnabled = targetElement.closest('button[kirby-button]:not(:disabled)');\n\n if (!buttonEnabled) return;\n\n this.checked = !this.checked;\n this.onChange(this.checked);\n this.onTouched();\n this.checkChanged.emit(this.checked);\n this.focusToggledButton();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.onTouched();\n }\n\n focusToggledButton() {\n // force re-render to ensure that the new button is in the dom\n this.cdr.detectChanges();\n\n const buttonToFocus = this.elementRef.nativeElement.querySelector(\n 'button[kirby-button]'\n ) as HTMLButtonElement;\n\n buttonToFocus?.focus();\n }\n\n /**\n * Sets the toggle button's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param checked New value to be written to the model.\n */\n writeValue(checked: boolean): void {\n if (this.checked !== checked) {\n this.checked = checked;\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-empty-function\n private onChange = (_checked: boolean) => {};\n // eslint-disable-next-line no-empty-function, @typescript-eslint/no-empty-function\n private onTouched = () => {};\n\n /**\n * Saves a callback function to be invoked when the toggle button's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (checked: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the toggle button is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * Disables the toggle button. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.elementRef.nativeElement\n .querySelector('button[kirby-button]')\n ?.toggleAttribute('disabled', isDisabled);\n this.cdr.markForCheck();\n }\n}\n","@if (!checked) {\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n}\n@if (checked) {\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\n@NgModule({\n imports: [CommonModule, ToggleButtonComponent],\n exports: [ToggleButtonComponent],\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -106,17 +106,17 @@ class ToggleComponent {
106
106
  this.disabled = isDisabled;
107
107
  this.cdr.markForCheck();
108
108
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
110
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [
109
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [
111
111
  IonicElementPartHelper,
112
112
  {
113
113
  provide: NG_VALUE_ACCESSOR,
114
114
  useExisting: forwardRef((() => ToggleComponent)),
115
115
  multi: true,
116
116
  },
117
- ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [":host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-toggle:focus-visible{outline:none}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle ::part(label-text-wrapper){line-height:24px;white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:1}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
+ ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [":host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}@media(hover:hover)and (pointer:fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle ::part(label-text-wrapper){line-height:24px;white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:1}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ToggleComponent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToggleComponent, decorators: [{
120
120
  type: Component,
121
121
  args: [{ imports: [IonToggle], selector: 'kirby-toggle', providers: [
122
122
  IonicElementPartHelper,
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
125
125
  useExisting: forwardRef((() => ToggleComponent)),
126
126
  multi: true,
127
127
  },
128
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [":host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-toggle:focus-visible{outline:none}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle ::part(label-text-wrapper){line-height:24px;white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:1}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
128
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [":host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}@media(hover:hover)and (pointer:fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle ::part(label-text-wrapper){line-height:24px;white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:1}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
129
129
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.IonicElementPartHelper }], propDecorators: { ionToggleElement: [{
130
130
  type: ViewChild,
131
131
  args: [IonToggle, { read: ElementRef, static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MAmCa,eAAe,CAAA;AAS1B,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI;IAC1C;AAWA,IAAA,WAAA,CACU,GAAsB,EACtB,UAAmC,EACnC,sBAA8C,EAAA;QAF9C,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QApBvB,IAAA,CAAA,OAAO,GAAY,KAAK;QAExB,IAAA,CAAA,QAAQ,GAAY,KAAK;AAQxB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;QAErD,IAAA,CAAA,QAAQ,GAAsC,OAAO;QACrD,IAAA,CAAA,eAAe,GAA0C,OAAO;QAEhE,IAAA,CAAA,QAAQ,GAAG,KAAK;;;AA+DR,QAAA,IAAA,CAAA,SAAS,GAA6B,MAAK,EAAE,CAAC;;AAE9C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,EAAE,CAAC;IA3D1B;IAEH,QAAQ,GAAA;AACN;;;;AAIG;AACH,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;aACvC,aAAa,CAAC,kBAAkB;AAChC,aAAA,aAAa,EAAE;AAElB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC;QAC/D,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,eAAe;QACjC;QAEA,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC/C,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC9B;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AACtF,QAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CACjC,oBAAoB,EACpB,IAAI,CAAC,gBAAgB,EACrB,qBAAqB,CACtB;IACH;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;;YAEhD,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACrE;IACF;AAEA,IAAA,eAAe,CAAC,OAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,UAAU,EAAE;IACnB;AAQA;;;;;AAKG;AACH,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AACA;;;;;;AAMG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AACA;;;;;;AAMG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AACA;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;kIA/HW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAVf;YACT,sBAAsB;AACtB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,eAAe,EAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMU,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtC1C,4jBAkBA,0uFDGY,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAcR,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,SAAS,CAAC,EAAA,QAAA,EACV,cAAc,EAAA,SAAA,EAGb;wBACT,sBAAsB;AACtB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,EAAC,qBAAqB,EAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4jBAAA,EAAA,MAAA,EAAA,CAAA,krFAAA,CAAA,EAAA;;sBAK9C,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAGvD;;sBAEA;;sBACA,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,wBAAwB;;sBAEpC;;;AEnDH;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ class WindowRef {
5
5
  get nativeWindow() {
6
6
  return window;
7
7
  }
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WindowRef, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: WindowRef, decorators: [{
12
12
  type: Injectable,
13
13
  args: [{
14
14
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-types.mjs","sources":["../../types/src/window-ref.ts","../../types/src/kirbydesign-designsystem-types.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n get nativeWindow(): any {\n return window;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAKa,SAAS,CAAA;AACpB,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,MAAM;IACf;kIAHW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAT,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACJD;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-types.mjs","sources":["../../types/src/window-ref.ts","../../types/src/kirbydesign-designsystem-types.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n get nativeWindow(): any {\n return window;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAKa,SAAS,CAAA;AACpB,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,MAAM;IACf;iIAHW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAT,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA;;2FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACJD;;AAEG;;;;"}