@kirbydesign/designsystem 11.11.4 → 12.0.0-dev-286cdc0

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 (291) hide show
  1. package/README.md +7 -0
  2. package/fesm2022/kirbydesign-designsystem-accordion.mjs +246 -135
  3. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  4. package/fesm2022/kirbydesign-designsystem-action-group.mjs +229 -134
  5. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  6. package/fesm2022/kirbydesign-designsystem-avatar.mjs +102 -55
  7. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  8. package/fesm2022/kirbydesign-designsystem-badge.mjs +85 -42
  9. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  10. package/fesm2022/kirbydesign-designsystem-button.mjs +203 -170
  11. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  12. package/fesm2022/kirbydesign-designsystem-calendar.mjs +524 -516
  13. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  14. package/fesm2022/kirbydesign-designsystem-card.mjs +439 -205
  15. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  16. package/fesm2022/kirbydesign-designsystem-chart.mjs +1388 -1469
  17. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  18. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +223 -176
  19. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  20. package/fesm2022/kirbydesign-designsystem-config.mjs +50 -96
  21. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  22. package/fesm2022/kirbydesign-designsystem-data-table.mjs +180 -83
  23. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  24. package/fesm2022/kirbydesign-designsystem-divider.mjs +46 -19
  25. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  26. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +878 -752
  27. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  28. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +175 -91
  29. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  30. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +213 -85
  31. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  32. package/fesm2022/kirbydesign-designsystem-flag.mjs +67 -33
  33. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  34. package/fesm2022/kirbydesign-designsystem-form-field.mjs +1260 -891
  35. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  36. package/fesm2022/kirbydesign-designsystem-gesture.mjs +38 -23
  37. package/fesm2022/kirbydesign-designsystem-gesture.mjs.map +1 -1
  38. package/fesm2022/kirbydesign-designsystem-header.mjs +422 -182
  39. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  40. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs +16 -14
  41. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
  42. package/fesm2022/kirbydesign-designsystem-helpers.mjs +251 -361
  43. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  44. package/fesm2022/kirbydesign-designsystem-icon.mjs +881 -296
  45. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  46. package/fesm2022/kirbydesign-designsystem-item-group.mjs +52 -23
  47. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  48. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +147 -43
  49. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  50. package/fesm2022/kirbydesign-designsystem-item.mjs +395 -151
  51. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  52. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +136 -54
  53. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  54. package/fesm2022/kirbydesign-designsystem-list.mjs +1188 -697
  55. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  56. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +166 -76
  57. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  58. package/fesm2022/kirbydesign-designsystem-menu.mjs +420 -311
  59. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  60. package/fesm2022/kirbydesign-designsystem-modal.mjs +2476 -1912
  61. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  62. package/fesm2022/kirbydesign-designsystem-page.mjs +1526 -905
  63. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-popover.mjs +204 -169
  65. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +209 -158
  67. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  68. package/fesm2022/kirbydesign-designsystem-radio.mjs +537 -365
  69. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  70. package/fesm2022/kirbydesign-designsystem-range.mjs +207 -150
  71. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  72. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +217 -104
  73. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  74. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +113 -38
  75. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  76. package/fesm2022/kirbydesign-designsystem-section-header.mjs +56 -18
  77. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  78. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs +276 -232
  79. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs.map +1 -1
  80. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +328 -382
  81. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  82. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +73 -84
  83. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  84. package/fesm2022/kirbydesign-designsystem-shared.mjs +665 -531
  85. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  86. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +140 -91
  87. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  88. package/fesm2022/kirbydesign-designsystem-slide.mjs +360 -158
  89. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  90. package/fesm2022/kirbydesign-designsystem-spinner.mjs +90 -32
  91. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  92. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +348 -181
  93. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  94. package/fesm2022/kirbydesign-designsystem-tabs.mjs +286 -121
  95. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  96. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +6234 -3164
  97. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  98. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +118 -95
  99. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  100. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +128 -101
  101. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  102. package/fesm2022/kirbydesign-designsystem-testing.mjs +236 -243
  103. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  104. package/fesm2022/kirbydesign-designsystem-toast.mjs +98 -62
  105. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  106. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +155 -127
  107. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  108. package/fesm2022/kirbydesign-designsystem-toggle.mjs +180 -150
  109. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  110. package/fesm2022/kirbydesign-designsystem-types.mjs +39 -24
  111. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  112. package/fesm2022/kirbydesign-designsystem.mjs +516 -407
  113. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  114. package/icons/svg/megaphone.svg +3 -0
  115. package/icons/svg/person-blocked.svg +3 -0
  116. package/icons/svg/person-check.svg +3 -0
  117. package/icons/svg/person-close.svg +3 -0
  118. package/icons/svg/person-cloud.svg +3 -0
  119. package/icons/svg/person-power.svg +3 -0
  120. package/icons/svg/person-warning.svg +3 -0
  121. package/icons/svg/phone-device-pin.svg +3 -0
  122. package/icons/svg/phone-device.svg +3 -2
  123. package/package.json +10 -10
  124. package/readme.md +37 -0
  125. package/types/kirbydesign-designsystem-accordion.d.ts +72 -39
  126. package/types/kirbydesign-designsystem-accordion.d.ts.map +1 -1
  127. package/types/kirbydesign-designsystem-action-group.d.ts +46 -39
  128. package/types/kirbydesign-designsystem-action-group.d.ts.map +1 -1
  129. package/types/kirbydesign-designsystem-avatar.d.ts +62 -26
  130. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
  131. package/types/kirbydesign-designsystem-badge.d.ts +30 -19
  132. package/types/kirbydesign-designsystem-badge.d.ts.map +1 -1
  133. package/types/kirbydesign-designsystem-button.d.ts +70 -45
  134. package/types/kirbydesign-designsystem-button.d.ts.map +1 -1
  135. package/types/kirbydesign-designsystem-calendar.d.ts +193 -132
  136. package/types/kirbydesign-designsystem-calendar.d.ts.map +1 -1
  137. package/types/kirbydesign-designsystem-card.d.ts +130 -66
  138. package/types/kirbydesign-designsystem-card.d.ts.map +1 -1
  139. package/types/kirbydesign-designsystem-chart.d.ts +198 -172
  140. package/types/kirbydesign-designsystem-chart.d.ts.map +1 -1
  141. package/types/kirbydesign-designsystem-checkbox.d.ts +102 -68
  142. package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -1
  143. package/types/kirbydesign-designsystem-config.d.ts +17 -21
  144. package/types/kirbydesign-designsystem-config.d.ts.map +1 -1
  145. package/types/kirbydesign-designsystem-data-table.d.ts +46 -26
  146. package/types/kirbydesign-designsystem-data-table.d.ts.map +1 -1
  147. package/types/kirbydesign-designsystem-divider.d.ts +11 -9
  148. package/types/kirbydesign-designsystem-divider.d.ts.map +1 -1
  149. package/types/kirbydesign-designsystem-dropdown.d.ts +219 -166
  150. package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -1
  151. package/types/kirbydesign-designsystem-empty-state.d.ts +58 -35
  152. package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -1
  153. package/types/kirbydesign-designsystem-fab-sheet.d.ts +34 -28
  154. package/types/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -1
  155. package/types/kirbydesign-designsystem-flag.d.ts +18 -13
  156. package/types/kirbydesign-designsystem-flag.d.ts.map +1 -1
  157. package/types/kirbydesign-designsystem-form-field.d.ts +409 -242
  158. package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -1
  159. package/types/kirbydesign-designsystem-gesture.d.ts +41 -46
  160. package/types/kirbydesign-designsystem-gesture.d.ts.map +1 -1
  161. package/types/kirbydesign-designsystem-header.d.ts +102 -64
  162. package/types/kirbydesign-designsystem-header.d.ts.map +1 -1
  163. package/types/kirbydesign-designsystem-helpers-scss.d.ts +6 -8
  164. package/types/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -1
  165. package/types/kirbydesign-designsystem-helpers.d.ts +83 -97
  166. package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -1
  167. package/types/kirbydesign-designsystem-icon.d.ts +63 -59
  168. package/types/kirbydesign-designsystem-icon.d.ts.map +1 -1
  169. package/types/kirbydesign-designsystem-item-group.d.ts +6 -9
  170. package/types/kirbydesign-designsystem-item-group.d.ts.map +1 -1
  171. package/types/kirbydesign-designsystem-item-sliding.d.ts +30 -26
  172. package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -1
  173. package/types/kirbydesign-designsystem-item.d.ts +93 -54
  174. package/types/kirbydesign-designsystem-item.d.ts.map +1 -1
  175. package/types/kirbydesign-designsystem-kirby-app.d.ts +18 -19
  176. package/types/kirbydesign-designsystem-kirby-app.d.ts.map +1 -1
  177. package/types/kirbydesign-designsystem-list.d.ts +392 -263
  178. package/types/kirbydesign-designsystem-list.d.ts.map +1 -1
  179. package/types/kirbydesign-designsystem-loading-overlay.d.ts +35 -24
  180. package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -1
  181. package/types/kirbydesign-designsystem-menu.d.ts +119 -69
  182. package/types/kirbydesign-designsystem-menu.d.ts.map +1 -1
  183. package/types/kirbydesign-designsystem-modal.d.ts +578 -455
  184. package/types/kirbydesign-designsystem-modal.d.ts.map +1 -1
  185. package/types/kirbydesign-designsystem-page.d.ts +308 -226
  186. package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
  187. package/types/kirbydesign-designsystem-popover.d.ts +48 -40
  188. package/types/kirbydesign-designsystem-popover.d.ts.map +1 -1
  189. package/types/kirbydesign-designsystem-progress-circle.d.ts +59 -61
  190. package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -1
  191. package/types/kirbydesign-designsystem-radio.d.ts +147 -98
  192. package/types/kirbydesign-designsystem-radio.d.ts.map +1 -1
  193. package/types/kirbydesign-designsystem-range.d.ts +90 -45
  194. package/types/kirbydesign-designsystem-range.d.ts.map +1 -1
  195. package/types/kirbydesign-designsystem-reorder-list.d.ts +44 -32
  196. package/types/kirbydesign-designsystem-reorder-list.d.ts.map +1 -1
  197. package/types/kirbydesign-designsystem-router-outlet.d.ts +23 -18
  198. package/types/kirbydesign-designsystem-router-outlet.d.ts.map +1 -1
  199. package/types/kirbydesign-designsystem-section-header.d.ts +5 -8
  200. package/types/kirbydesign-designsystem-section-header.d.ts.map +1 -1
  201. package/types/kirbydesign-designsystem-segmented-control.d.ts +123 -100
  202. package/types/kirbydesign-designsystem-segmented-control.d.ts.map +1 -1
  203. package/types/kirbydesign-designsystem-shared-floating.d.ts +183 -128
  204. package/types/kirbydesign-designsystem-shared-floating.d.ts.map +1 -1
  205. package/types/kirbydesign-designsystem-shared-portal.d.ts +29 -28
  206. package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -1
  207. package/types/kirbydesign-designsystem-shared.d.ts +143 -139
  208. package/types/kirbydesign-designsystem-shared.d.ts.map +1 -1
  209. package/types/kirbydesign-designsystem-slide-button.d.ts +43 -34
  210. package/types/kirbydesign-designsystem-slide-button.d.ts.map +1 -1
  211. package/types/kirbydesign-designsystem-slide.d.ts +80 -59
  212. package/types/kirbydesign-designsystem-slide.d.ts.map +1 -1
  213. package/types/kirbydesign-designsystem-spinner.d.ts +13 -14
  214. package/types/kirbydesign-designsystem-spinner.d.ts.map +1 -1
  215. package/types/kirbydesign-designsystem-tab-navigation.d.ts +78 -55
  216. package/types/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -1
  217. package/types/kirbydesign-designsystem-tabs.d.ts +50 -45
  218. package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -1
  219. package/types/kirbydesign-designsystem-testing-base.d.ts +2435 -815
  220. package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -1
  221. package/types/kirbydesign-designsystem-testing-jasmine.d.ts +9 -10
  222. package/types/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -1
  223. package/types/kirbydesign-designsystem-testing-jest.d.ts +9 -10
  224. package/types/kirbydesign-designsystem-testing-jest.d.ts.map +1 -1
  225. package/types/kirbydesign-designsystem-testing.d.ts +52 -58
  226. package/types/kirbydesign-designsystem-testing.d.ts.map +1 -1
  227. package/types/kirbydesign-designsystem-toast.d.ts +25 -31
  228. package/types/kirbydesign-designsystem-toast.d.ts.map +1 -1
  229. package/types/kirbydesign-designsystem-toggle-button.d.ts +62 -56
  230. package/types/kirbydesign-designsystem-toggle-button.d.ts.map +1 -1
  231. package/types/kirbydesign-designsystem-toggle.d.ts +71 -63
  232. package/types/kirbydesign-designsystem-toggle.d.ts.map +1 -1
  233. package/types/kirbydesign-designsystem-types.d.ts +15 -22
  234. package/types/kirbydesign-designsystem-types.d.ts.map +1 -1
  235. package/types/kirbydesign-designsystem.d.ts +135 -123
  236. package/types/kirbydesign-designsystem.d.ts.map +1 -1
  237. package/accordion/package.json +0 -4
  238. package/action-group/package.json +0 -4
  239. package/avatar/package.json +0 -4
  240. package/badge/package.json +0 -4
  241. package/button/package.json +0 -4
  242. package/calendar/package.json +0 -4
  243. package/card/package.json +0 -4
  244. package/chart/package.json +0 -4
  245. package/checkbox/package.json +0 -4
  246. package/config/package.json +0 -4
  247. package/data-table/package.json +0 -4
  248. package/divider/package.json +0 -4
  249. package/dropdown/package.json +0 -4
  250. package/empty-state/package.json +0 -4
  251. package/fab-sheet/package.json +0 -4
  252. package/flag/package.json +0 -4
  253. package/form-field/package.json +0 -4
  254. package/gesture/package.json +0 -4
  255. package/header/package.json +0 -4
  256. package/helpers/package.json +0 -4
  257. package/helpers/scss/package.json +0 -4
  258. package/icon/package.json +0 -4
  259. package/item/package.json +0 -4
  260. package/item-group/package.json +0 -4
  261. package/item-sliding/package.json +0 -4
  262. package/kirby-app/package.json +0 -4
  263. package/list/package.json +0 -4
  264. package/loading-overlay/package.json +0 -4
  265. package/menu/package.json +0 -4
  266. package/modal/package.json +0 -4
  267. package/page/package.json +0 -4
  268. package/popover/package.json +0 -4
  269. package/progress-circle/package.json +0 -4
  270. package/radio/package.json +0 -4
  271. package/range/package.json +0 -4
  272. package/reorder-list/package.json +0 -4
  273. package/router-outlet/package.json +0 -4
  274. package/section-header/package.json +0 -4
  275. package/segmented-control/package.json +0 -4
  276. package/shared/floating/package.json +0 -4
  277. package/shared/package.json +0 -4
  278. package/shared/portal/package.json +0 -4
  279. package/slide/package.json +0 -4
  280. package/slide-button/package.json +0 -4
  281. package/spinner/package.json +0 -4
  282. package/tab-navigation/package.json +0 -4
  283. package/tabs/package.json +0 -4
  284. package/testing/package.json +0 -4
  285. package/testing-base/package.json +0 -4
  286. package/testing-jasmine/package.json +0 -4
  287. package/testing-jest/package.json +0 -4
  288. package/toast/package.json +0 -4
  289. package/toggle/package.json +0 -4
  290. package/toggle-button/package.json +0 -4
  291. package/types/package.json +0 -4
@@ -1,159 +1,210 @@
1
- import * as i0 from '@angular/core';
2
- import { HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { ThemeColorDirective } from '@kirbydesign/designsystem/shared';
4
-
5
- class ProgressCircleRingComponent {
6
- constructor() {
7
- this.value = 0;
8
- this.themeColor = 'success';
9
- }
10
- ngAfterViewInit() {
11
- this.viewInitialized = true;
12
- }
13
- get _diameter() {
14
- return this.radius * 2;
15
- }
16
- get _centerRadius() {
17
- return this.radius - this.strokeWidth / 2;
18
- }
19
- get _centerCircumference() {
20
- return this._centerRadius * 2 * Math.PI;
21
- }
22
- get _progress() {
23
- const valueWithinBounds = this.value < this.upperBound || this.value > 99;
24
- const _value = valueWithinBounds ? this.value : this.upperBound;
25
- const progressPercentage = _value / 100;
26
- return this._centerCircumference * progressPercentage;
27
- }
28
- get _remainder() {
29
- return this._centerCircumference - this._progress;
30
- }
31
- get _progressStrokeWidth() {
32
- // Do not render stroke if progress is 0, otherwise it will show as a dot
33
- if (this._progress === 0)
34
- return 0;
35
- return this.strokeWidth;
36
- }
37
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: ProgressCircleRingComponent, isStandalone: true, selector: "kirby-progress-circle-ring", inputs: { radius: "radius", value: "value", themeColor: "themeColor", strokeWidth: "strokeWidth", upperBound: "upperBound" }, host: { properties: { "class.view-initialized": "this.viewInitialized", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success-shade)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning-shade)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleRingComponent, decorators: [{
41
- type: Component,
42
- args: [{ selector: 'kirby-progress-circle-ring', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}svg{rotate:-90deg}.circle{stroke:var(--kirby-semi-light)}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success-shade)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-warning-shade)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-danger)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:1s;transition-timing-function:ease;transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-success))}\n"] }]
43
- }], propDecorators: { radius: [{
44
- type: Input
45
- }], value: [{
46
- type: Input
47
- }], themeColor: [{
48
- type: Input
49
- }], strokeWidth: [{
50
- type: Input
51
- }], upperBound: [{
52
- type: Input
53
- }], viewInitialized: [{
54
- type: HostBinding,
55
- args: ['class.view-initialized']
56
- }], _diameter: [{
57
- type: HostBinding,
58
- args: ['style.width.px']
59
- }, {
60
- type: HostBinding,
61
- args: ['style.height.px']
62
- }] } });
63
-
64
- class ProgressCircleComponent {
65
- get _cssSize() {
66
- return this.size;
67
- }
68
- constructor(elementRef, changeDetectorRef) {
69
- this.elementRef = elementRef;
70
- this.changeDetectorRef = changeDetectorRef;
71
- this.SIZE_CONFIG = {
72
- sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },
73
- md: { diameter: 56, strokeWidth: 4, upperBound: 96 },
74
- lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },
75
- };
76
- this.role = 'progressbar';
77
- this.value = 0;
78
- this.size = 'md';
79
- this.themeColor = 'success';
80
- this.onIntersectionChange = (entries) => {
81
- this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);
82
- if (this.hasElementBeenVisible) {
83
- this.unobserve();
84
- this.changeDetectorRef.markForCheck();
85
- }
86
- };
87
- }
88
- ngAfterViewInit() {
89
- if (!this.observer) {
90
- this.observer = new IntersectionObserver(this.onIntersectionChange, {
91
- threshold: 0.5,
92
- });
93
- this.observer.observe(this.elementRef.nativeElement);
94
- }
95
- }
96
- ngOnDestroy() {
97
- this.unobserve();
98
- }
99
- unobserve() {
100
- if (this.observer) {
101
- this.observer.unobserve(this.elementRef.nativeElement);
102
- // Safari does not support "disconnect", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility
103
- if (typeof this.observer.disconnect === 'function') {
104
- this.observer.disconnect();
105
- }
106
- }
107
- }
108
- get _diameter() {
109
- return this.SIZE_CONFIG[this.size].diameter;
110
- }
111
- get _shownValue() {
112
- // This is needed to make an animation [0 -> value] when element is shown to the user
113
- return this.hasElementBeenVisible ? this.value : 0;
114
- }
115
- get _radius() {
116
- return this._diameter / 2;
117
- }
118
- get _strokeWidth() {
119
- return this.SIZE_CONFIG[this.size].strokeWidth;
120
- }
121
- get _upperBound() {
122
- // This is needed to make sure that an input value close to 100 is not shown as 100
123
- return this.SIZE_CONFIG[this.size].upperBound;
124
- }
125
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: ProgressCircleComponent, isStandalone: true, selector: "kirby-progress-circle", inputs: { value: "value", size: "size", themeColor: "themeColor" }, host: { properties: { "attr.role": "this.role", "attr.aria-valuenow": "this.value", "class": "this._cssSize", "style.width.px": "this._diameter", "style.height.px": "this._diameter" } }, ngImport: i0, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: ProgressCircleRingComponent, selector: "kirby-progress-circle-ring", inputs: ["radius", "value", "themeColor", "strokeWidth", "upperBound"] }, { kind: "directive", type: ThemeColorDirective, selector: "kirby-avatar[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]", inputs: ["themeColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
127
- }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleComponent, decorators: [{
129
- type: Component,
130
- args: [{ imports: [ProgressCircleRingComponent, ThemeColorDirective], selector: 'kirby-progress-circle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-block;position:relative}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:2}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;border-radius:50%;overflow:hidden}\n"] }]
131
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { role: [{
132
- type: HostBinding,
133
- args: ['attr.role']
134
- }], value: [{
135
- type: HostBinding,
136
- args: ['attr.aria-valuenow']
137
- }, {
138
- type: Input
139
- }], size: [{
140
- type: Input
141
- }], themeColor: [{
142
- type: Input
143
- }], _cssSize: [{
144
- type: HostBinding,
145
- args: ['class']
146
- }], _diameter: [{
147
- type: HostBinding,
148
- args: ['style.width.px']
149
- }, {
150
- type: HostBinding,
151
- args: ['style.height.px']
152
- }] } });
153
-
154
- /**
155
- * Generated bundle index. Do not edit.
156
- */
157
-
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from "@angular/core";
3
+ import { ThemeColorDirective } from "@kirbydesign/designsystem/shared";
4
+ var ProgressCircleRingComponent = class ProgressCircleRingComponent {
5
+ constructor() {
6
+ this.UPPER_AND_LOWER_BOUND_GAP = 2.5;
7
+ this.value = 0;
8
+ this.themeColor = "success";
9
+ this.size = "md";
10
+ }
11
+ get _sizeClass() {
12
+ return this.size;
13
+ }
14
+ ngAfterViewInit() {
15
+ this.viewInitialized = true;
16
+ }
17
+ get _progress() {
18
+ if (this.value <= 0) return 0;
19
+ if (this.value >= 100) return 100;
20
+ return Math.min(this.value, 100 - this.UPPER_AND_LOWER_BOUND_GAP);
21
+ }
22
+ get _linecap() {
23
+ return this._progress <= 0 || this._progress >= 100 ? "butt" : "round";
24
+ }
25
+ get _remainder() {
26
+ return 100 - this._progress;
27
+ }
28
+ static {
29
+ this.ɵfac = i0.ɵɵngDeclareFactory({
30
+ minVersion: "12.0.0",
31
+ version: "22.2.3",
32
+ ngImport: i0,
33
+ type: ProgressCircleRingComponent,
34
+ deps: [],
35
+ target: i0.ɵɵFactoryTarget.Component
36
+ });
37
+ }
38
+ static {
39
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
40
+ minVersion: "14.0.0",
41
+ version: "22.2.3",
42
+ type: ProgressCircleRingComponent,
43
+ isStandalone: true,
44
+ selector: "kirby-progress-circle-ring",
45
+ inputs: {
46
+ value: "value",
47
+ themeColor: "themeColor",
48
+ size: "size"
49
+ },
50
+ host: { properties: {
51
+ "class": "this._sizeClass",
52
+ "class.view-initialized": "this.viewInitialized"
53
+ } },
54
+ ngImport: i0,
55
+ template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n",
56
+ styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-color-border-success-loud)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-color-border-warning-loud)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-color-border-danger-loud)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:var(--kirby-transition-duration-extra-long);transition-timing-function:var(--kirby-transition-easing-enter-exit);transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-color-border-success-loud))}svg{rotate:-90deg}.circle,.progress{r:calc(50% - var(--kirby-progress-circle-stroke-width, 4px) / 2);stroke-width:var(--kirby-progress-circle-stroke-width, 4px)}.circle{stroke:var(--kirby-color-border-base-quiet)}\n"],
57
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
58
+ });
59
+ }
60
+ };
61
+ i0.ɵɵngDeclareClassMetadata({
62
+ minVersion: "12.0.0",
63
+ version: "22.2.3",
64
+ ngImport: i0,
65
+ type: ProgressCircleRingComponent,
66
+ decorators: [{
67
+ type: Component,
68
+ args: [{
69
+ selector: "kirby-progress-circle-ring",
70
+ changeDetection: ChangeDetectionStrategy.OnPush,
71
+ template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n",
72
+ styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-color-border-success-loud)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-color-border-warning-loud)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-color-border-danger-loud)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:var(--kirby-transition-duration-extra-long);transition-timing-function:var(--kirby-transition-easing-enter-exit);transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-color-border-success-loud))}svg{rotate:-90deg}.circle,.progress{r:calc(50% - var(--kirby-progress-circle-stroke-width, 4px) / 2);stroke-width:var(--kirby-progress-circle-stroke-width, 4px)}.circle{stroke:var(--kirby-color-border-base-quiet)}\n"]
73
+ }]
74
+ }],
75
+ propDecorators: {
76
+ value: [{ type: Input }],
77
+ themeColor: [{ type: Input }],
78
+ size: [{ type: Input }],
79
+ _sizeClass: [{
80
+ type: HostBinding,
81
+ args: ["class"]
82
+ }],
83
+ viewInitialized: [{
84
+ type: HostBinding,
85
+ args: ["class.view-initialized"]
86
+ }]
87
+ }
88
+ });
89
+ var ProgressCircleComponent = class ProgressCircleComponent {
90
+ get _cssSize() {
91
+ return this.size;
92
+ }
93
+ constructor(elementRef, changeDetectorRef) {
94
+ this.elementRef = elementRef;
95
+ this.changeDetectorRef = changeDetectorRef;
96
+ this.role = "progressbar";
97
+ this.value = 0;
98
+ this.size = "md";
99
+ this.themeColor = "success";
100
+ this.onIntersectionChange = (entries) => {
101
+ this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);
102
+ if (this.hasElementBeenVisible) {
103
+ this.unobserve();
104
+ this.changeDetectorRef.markForCheck();
105
+ }
106
+ };
107
+ }
108
+ ngAfterViewInit() {
109
+ if (!this.observer) {
110
+ this.observer = new IntersectionObserver(this.onIntersectionChange, { threshold: .5 });
111
+ this.observer.observe(this.elementRef.nativeElement);
112
+ }
113
+ }
114
+ ngOnDestroy() {
115
+ this.unobserve();
116
+ }
117
+ unobserve() {
118
+ if (this.observer) {
119
+ this.observer.unobserve(this.elementRef.nativeElement);
120
+ if (typeof this.observer.disconnect === "function") this.observer.disconnect();
121
+ }
122
+ }
123
+ get _shownValue() {
124
+ return this.hasElementBeenVisible ? this.value : 0;
125
+ }
126
+ static {
127
+ this.ɵfac = i0.ɵɵngDeclareFactory({
128
+ minVersion: "12.0.0",
129
+ version: "22.2.3",
130
+ ngImport: i0,
131
+ type: ProgressCircleComponent,
132
+ deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }],
133
+ target: i0.ɵɵFactoryTarget.Component
134
+ });
135
+ }
136
+ static {
137
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
138
+ minVersion: "14.0.0",
139
+ version: "22.2.3",
140
+ type: ProgressCircleComponent,
141
+ isStandalone: true,
142
+ selector: "kirby-progress-circle",
143
+ inputs: {
144
+ value: "value",
145
+ size: "size",
146
+ themeColor: "themeColor"
147
+ },
148
+ host: { properties: {
149
+ "attr.role": "this.role",
150
+ "attr.aria-valuenow": "this.value",
151
+ "class": "this._cssSize"
152
+ } },
153
+ ngImport: i0,
154
+ template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [size]=\"size\"\n></kirby-progress-circle-ring>\n",
155
+ styles: [":host{display:inline-block;position:relative;overflow:hidden;width:var(--kirby-progress-circle-size);height:var(--kirby-progress-circle-size)}:host(.sm){--kirby-progress-circle-stroke-width: 3px;--kirby-progress-circle-size: clamp(var(--kirby-spacing-xl), 2.5em, var(--kirby-spacing-xxxl))}:host(.md){--kirby-progress-circle-stroke-width: 4px;--kirby-progress-circle-size: var(--kirby-spacing-xxxl)}:host(.lg){--kirby-progress-circle-stroke-width: 6px;--kirby-progress-circle-size: calc(var(--kirby-spacing-xxxl) + var(--kirby-spacing-xl))}:host(.sm) .transcluded-content{font-size:var(--kirby-font-size-xs)}:host(.md) .transcluded-content,:host(.lg) .transcluded-content{font-size:var(--kirby-font-size-s)}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:calc(var(--kirby-z-index-default) + 1)}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:var(--kirby-z-index-default);border-radius:var(--kirby-border-radius-circle);overflow:hidden}\n"],
156
+ dependencies: [{
157
+ kind: "component",
158
+ type: ProgressCircleRingComponent,
159
+ selector: "kirby-progress-circle-ring",
160
+ inputs: [
161
+ "value",
162
+ "themeColor",
163
+ "size"
164
+ ]
165
+ }, {
166
+ kind: "directive",
167
+ type: ThemeColorDirective,
168
+ selector: "kirby-avatar[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]",
169
+ inputs: ["themeColor"]
170
+ }],
171
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
172
+ });
173
+ }
174
+ };
175
+ i0.ɵɵngDeclareClassMetadata({
176
+ minVersion: "12.0.0",
177
+ version: "22.2.3",
178
+ ngImport: i0,
179
+ type: ProgressCircleComponent,
180
+ decorators: [{
181
+ type: Component,
182
+ args: [{
183
+ imports: [ProgressCircleRingComponent, ThemeColorDirective],
184
+ selector: "kirby-progress-circle",
185
+ changeDetection: ChangeDetectionStrategy.OnPush,
186
+ template: "<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [size]=\"size\"\n></kirby-progress-circle-ring>\n",
187
+ styles: [":host{display:inline-block;position:relative;overflow:hidden;width:var(--kirby-progress-circle-size);height:var(--kirby-progress-circle-size)}:host(.sm){--kirby-progress-circle-stroke-width: 3px;--kirby-progress-circle-size: clamp(var(--kirby-spacing-xl), 2.5em, var(--kirby-spacing-xxxl))}:host(.md){--kirby-progress-circle-stroke-width: 4px;--kirby-progress-circle-size: var(--kirby-spacing-xxxl)}:host(.lg){--kirby-progress-circle-stroke-width: 6px;--kirby-progress-circle-size: calc(var(--kirby-spacing-xxxl) + var(--kirby-spacing-xl))}:host(.sm) .transcluded-content{font-size:var(--kirby-font-size-xs)}:host(.md) .transcluded-content,:host(.lg) .transcluded-content{font-size:var(--kirby-font-size-s)}.transcluded-content,kirby-progress-circle-ring{position:absolute;top:0;left:0}kirby-progress-circle-ring{z-index:calc(var(--kirby-z-index-default) + 1)}.transcluded-content{width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:var(--kirby-z-index-default);border-radius:var(--kirby-border-radius-circle);overflow:hidden}\n"]
188
+ }]
189
+ }],
190
+ ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }],
191
+ propDecorators: {
192
+ role: [{
193
+ type: HostBinding,
194
+ args: ["attr.role"]
195
+ }],
196
+ value: [{
197
+ type: HostBinding,
198
+ args: ["attr.aria-valuenow"]
199
+ }, { type: Input }],
200
+ size: [{ type: Input }],
201
+ themeColor: [{ type: Input }],
202
+ _cssSize: [{
203
+ type: HostBinding,
204
+ args: ["class"]
205
+ }]
206
+ }
207
+ });
158
208
  export { ProgressCircleComponent, ProgressCircleRingComponent };
159
- //# sourceMappingURL=kirbydesign-designsystem-progress-circle.mjs.map
209
+
210
+ //# sourceMappingURL=kirbydesign-designsystem-progress-circle.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-progress-circle.mjs","sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html","../../progress-circle/src/kirbydesign-designsystem-progress-circle.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n @Input() radius: number; // The desired outer radius of the SVG circle\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() strokeWidth: number;\n @Input() upperBound: number;\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.radius * 2;\n }\n\n get _centerRadius(): number {\n return this.radius - this.strokeWidth / 2;\n }\n\n get _centerCircumference(): number {\n return this._centerRadius * 2 * Math.PI;\n }\n\n get _progress(): number {\n const valueWithinBounds = this.value < this.upperBound || this.value > 99;\n const _value = valueWithinBounds ? this.value : this.upperBound;\n const progressPercentage = _value / 100;\n return this._centerCircumference * progressPercentage;\n }\n\n get _remainder(): number {\n return this._centerCircumference - this._progress;\n }\n\n get _progressStrokeWidth(): number {\n // Do not render stroke if progress is 0, otherwise it will show as a dot\n if (this._progress === 0) return 0;\n\n return this.strokeWidth;\n }\n}\n","<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"_progressStrokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dasharray]=\"[_progress, _remainder]\"\n />\n</svg>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n imports: [ProgressCircleRingComponent, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n readonly SIZE_CONFIG = {\n sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },\n md: { diameter: 56, strokeWidth: 4, upperBound: 96 },\n lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },\n };\n\n @HostBinding('attr.role') readonly role = 'progressbar';\n @HostBinding('attr.aria-valuenow')\n @Input()\n value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.SIZE_CONFIG[this.size].diameter;\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n\n get _radius() {\n return this._diameter / 2;\n }\n\n get _strokeWidth() {\n return this.SIZE_CONFIG[this.size].strokeWidth;\n }\n\n get _upperBound() {\n // This is needed to make sure that an input value close to 100 is not shown as 100\n return this.SIZE_CONFIG[this.size].upperBound;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n></kirby-progress-circle-ring>\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-progress-circle.mjs","names":[],"sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n private readonly UPPER_AND_LOWER_BOUND_GAP = 2.5;\n\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @HostBinding('class')\n get _sizeClass() {\n return this.size;\n }\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n get _progress(): number {\n if (this.value <= 0) return 0;\n if (this.value >= 100) return 100;\n return Math.min(this.value, 100 - this.UPPER_AND_LOWER_BOUND_GAP);\n }\n\n get _linecap(): 'butt' | 'round' {\n return this._progress <= 0 || this._progress >= 100 ? 'butt' : 'round';\n }\n\n get _remainder(): number {\n return 100 - this._progress;\n }\n}\n","<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n imports: [ProgressCircleRingComponent, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n @HostBinding('attr.role') readonly role = 'progressbar';\n @HostBinding('attr.aria-valuenow')\n @Input()\n value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [size]=\"size\"\n></kirby-progress-circle-ring>\n"],"mappings":"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"}