@kirbydesign/designsystem 11.11.0 → 11.11.2-dev-85b2964

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 (211) 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 +4 -4
  4. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  5. package/fesm2022/kirbydesign-designsystem-avatar.mjs +4 -4
  6. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  7. package/fesm2022/kirbydesign-designsystem-badge.mjs +5 -5
  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 +4 -4
  12. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  13. package/fesm2022/kirbydesign-designsystem-card.mjs +19 -19
  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 +6 -6
  18. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  19. package/fesm2022/kirbydesign-designsystem-config.mjs +1 -1
  20. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  21. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  22. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  23. package/fesm2022/kirbydesign-designsystem-divider.mjs +4 -4
  24. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  25. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +13 -13
  26. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  27. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +8 -8
  28. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +5 -5
  30. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-flag.mjs +5 -5
  32. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-form-field.mjs +45 -35
  34. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-gesture.mjs +4 -4
  36. package/fesm2022/kirbydesign-designsystem-gesture.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
  38. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-helpers.mjs +13 -11
  40. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-icon.mjs +24 -14
  42. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  44. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +6 -5
  46. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-item.mjs +13 -13
  48. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +8 -8
  50. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  51. package/fesm2022/kirbydesign-designsystem-list.mjs +45 -45
  52. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  53. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +18 -15
  54. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  55. package/fesm2022/kirbydesign-designsystem-menu.mjs +4 -4
  56. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  57. package/fesm2022/kirbydesign-designsystem-modal.mjs +60 -55
  58. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-page.mjs +49 -49
  60. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-popover.mjs +5 -5
  62. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  63. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +27 -64
  64. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  65. package/fesm2022/kirbydesign-designsystem-radio.mjs +12 -12
  66. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  67. package/fesm2022/kirbydesign-designsystem-range.mjs +6 -6
  68. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  69. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +5 -5
  70. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  71. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +10 -10
  72. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  73. package/fesm2022/kirbydesign-designsystem-section-header.mjs +5 -5
  74. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  75. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs +6 -6
  76. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs.map +1 -1
  77. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  78. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  79. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +6 -7
  80. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  81. package/fesm2022/kirbydesign-designsystem-shared.mjs +60 -43
  82. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  83. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
  84. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  85. package/fesm2022/kirbydesign-designsystem-slide.mjs +15 -14
  86. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  87. package/fesm2022/kirbydesign-designsystem-spinner.mjs +8 -8
  88. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  89. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +12 -12
  90. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  91. package/fesm2022/kirbydesign-designsystem-tabs.mjs +18 -18
  92. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  93. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  94. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  95. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  96. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  97. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  98. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  99. package/fesm2022/kirbydesign-designsystem-testing.mjs +16 -14
  100. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  101. package/fesm2022/kirbydesign-designsystem-toast.mjs +7 -7
  102. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  103. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
  104. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  105. package/fesm2022/kirbydesign-designsystem-toggle.mjs +6 -6
  106. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  107. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  108. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  109. package/fesm2022/kirbydesign-designsystem.mjs +10 -10
  110. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  111. package/icons/svg/person-blocked.svg +3 -0
  112. package/icons/svg/person-check.svg +3 -0
  113. package/icons/svg/person-close.svg +3 -0
  114. package/icons/svg/person-cloud.svg +3 -0
  115. package/icons/svg/person-power.svg +3 -0
  116. package/icons/svg/person-warning.svg +3 -0
  117. package/icons/svg/phone-device-pin.svg +3 -0
  118. package/icons/svg/phone-device.svg +3 -2
  119. package/package.json +29 -25
  120. package/types/kirbydesign-designsystem-avatar.d.ts +1 -1
  121. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
  122. package/types/kirbydesign-designsystem-button.d.ts +1 -1
  123. package/types/kirbydesign-designsystem-card.d.ts +1 -1
  124. package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -1
  125. package/types/kirbydesign-designsystem-fab-sheet.d.ts +1 -1
  126. package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -1
  127. package/types/kirbydesign-designsystem-helpers.d.ts +14 -4
  128. package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -1
  129. package/types/kirbydesign-designsystem-icon.d.ts +2 -2
  130. package/types/kirbydesign-designsystem-icon.d.ts.map +1 -1
  131. package/types/kirbydesign-designsystem-item-sliding.d.ts +1 -1
  132. package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -1
  133. package/types/kirbydesign-designsystem-item.d.ts +1 -1
  134. package/types/kirbydesign-designsystem-kirby-app.d.ts +1 -1
  135. package/types/kirbydesign-designsystem-list.d.ts +2 -2
  136. package/types/kirbydesign-designsystem-loading-overlay.d.ts +5 -5
  137. package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -1
  138. package/types/kirbydesign-designsystem-modal.d.ts +3 -2
  139. package/types/kirbydesign-designsystem-modal.d.ts.map +1 -1
  140. package/types/kirbydesign-designsystem-page.d.ts +2 -2
  141. package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
  142. package/types/kirbydesign-designsystem-progress-circle.d.ts +5 -29
  143. package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -1
  144. package/types/kirbydesign-designsystem-radio.d.ts +1 -1
  145. package/types/kirbydesign-designsystem-router-outlet.d.ts +2 -2
  146. package/types/kirbydesign-designsystem-shared-portal.d.ts +2 -3
  147. package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -1
  148. package/types/kirbydesign-designsystem-shared.d.ts +4 -5
  149. package/types/kirbydesign-designsystem-shared.d.ts.map +1 -1
  150. package/types/kirbydesign-designsystem-slide.d.ts +1 -1
  151. package/types/kirbydesign-designsystem-slide.d.ts.map +1 -1
  152. package/types/kirbydesign-designsystem-tabs.d.ts +3 -3
  153. package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -1
  154. package/types/kirbydesign-designsystem-testing.d.ts +1 -2
  155. package/types/kirbydesign-designsystem-testing.d.ts.map +1 -1
  156. package/types/kirbydesign-designsystem-toast.d.ts +1 -1
  157. package/accordion/package.json +0 -4
  158. package/action-group/package.json +0 -4
  159. package/avatar/package.json +0 -4
  160. package/badge/package.json +0 -4
  161. package/button/package.json +0 -4
  162. package/calendar/package.json +0 -4
  163. package/card/package.json +0 -4
  164. package/chart/package.json +0 -4
  165. package/checkbox/package.json +0 -4
  166. package/config/package.json +0 -4
  167. package/data-table/package.json +0 -4
  168. package/divider/package.json +0 -4
  169. package/dropdown/package.json +0 -4
  170. package/empty-state/package.json +0 -4
  171. package/fab-sheet/package.json +0 -4
  172. package/flag/package.json +0 -4
  173. package/form-field/package.json +0 -4
  174. package/gesture/package.json +0 -4
  175. package/header/package.json +0 -4
  176. package/helpers/package.json +0 -4
  177. package/helpers/scss/package.json +0 -4
  178. package/icon/package.json +0 -4
  179. package/item/package.json +0 -4
  180. package/item-group/package.json +0 -4
  181. package/item-sliding/package.json +0 -4
  182. package/kirby-app/package.json +0 -4
  183. package/list/package.json +0 -4
  184. package/loading-overlay/package.json +0 -4
  185. package/menu/package.json +0 -4
  186. package/modal/package.json +0 -4
  187. package/page/package.json +0 -4
  188. package/popover/package.json +0 -4
  189. package/progress-circle/package.json +0 -4
  190. package/radio/package.json +0 -4
  191. package/range/package.json +0 -4
  192. package/reorder-list/package.json +0 -4
  193. package/router-outlet/package.json +0 -4
  194. package/section-header/package.json +0 -4
  195. package/segmented-control/package.json +0 -4
  196. package/shared/floating/package.json +0 -4
  197. package/shared/package.json +0 -4
  198. package/shared/portal/package.json +0 -4
  199. package/slide/package.json +0 -4
  200. package/slide-button/package.json +0 -4
  201. package/spinner/package.json +0 -4
  202. package/tab-navigation/package.json +0 -4
  203. package/tabs/package.json +0 -4
  204. package/testing/package.json +0 -4
  205. package/testing-base/package.json +0 -4
  206. package/testing-jasmine/package.json +0 -4
  207. package/testing-jest/package.json +0 -4
  208. package/toast/package.json +0 -4
  209. package/toggle/package.json +0 -4
  210. package/toggle-button/package.json +0 -4
  211. package/types/package.json +0 -4
@@ -18,6 +18,8 @@ import { componentOnReady } from '@ionic/core';
18
18
  Returns false otherwise.
19
19
  */
20
20
  const elementHasAncestor = (element, ancestorNodeName, stopNodeName) => {
21
+ if (!element)
22
+ return false;
21
23
  switch (element?.nodeName) {
22
24
  case undefined:
23
25
  case stopNodeName?.toUpperCase():
@@ -35,7 +37,7 @@ const elementHasAncestor = (element, ancestorNodeName, stopNodeName) => {
35
37
  function getIonModalDialogAncestor(currentElement) {
36
38
  const ionModalElement = currentElement.closest('ion-modal');
37
39
  const modalElementDialog = ionModalElement?.shadowRoot?.querySelector('[role="dialog"]');
38
- return modalElementDialog;
40
+ return modalElementDialog ?? undefined;
39
41
  }
40
42
 
41
43
  /* Function based on https://github.com/angular/components/blob/main/src/cdk/observers/observe-content.ts
@@ -100,10 +102,10 @@ class PlatformService {
100
102
  const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;
101
103
  return this.windowRef.nativeWindow.matchMedia(query).matches;
102
104
  }
103
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: PlatformService, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
104
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: PlatformService, providedIn: 'root' }); }
105
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PlatformService, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
106
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PlatformService, providedIn: 'root' }); }
105
107
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: PlatformService, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: PlatformService, decorators: [{
107
109
  type: Injectable,
108
110
  args: [{
109
111
  providedIn: 'root',
@@ -271,10 +273,10 @@ class LineClampHelper {
271
273
  this.renderer.removeStyle(element, config.lineClamp);
272
274
  this.renderer.removeStyle(element, config.lineHeight);
273
275
  }
274
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: LineClampHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
275
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: LineClampHelper }); }
276
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LineClampHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
277
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LineClampHelper }); }
276
278
  }
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: LineClampHelper, decorators: [{
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LineClampHelper, decorators: [{
278
280
  type: Injectable
279
281
  }], ctorParameters: () => [{ type: i0.Renderer2 }] });
280
282
 
@@ -302,15 +304,15 @@ class IonicElementPartHelper {
302
304
  const customElement = await new Promise((resolve) => {
303
305
  componentOnReady(ionicElementRef.nativeElement, (element) => resolve(element));
304
306
  });
305
- const partElement = customElement.shadowRoot.querySelector(selector);
307
+ const partElement = customElement.shadowRoot?.querySelector(selector);
306
308
  if (!partElement)
307
309
  return;
308
310
  this.renderer.setAttribute(partElement, 'part', partName);
309
311
  }
310
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicElementPartHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
311
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicElementPartHelper }); }
312
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IonicElementPartHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
313
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IonicElementPartHelper }); }
312
314
  }
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicElementPartHelper, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IonicElementPartHelper, decorators: [{
314
316
  type: Injectable
315
317
  }], ctorParameters: () => [{ type: i0.Renderer2 }] });
316
318
 
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-helpers.mjs","sources":["../../helpers/src/element-ancestor-utils.ts","../../helpers/src/content-mutation-observer.ts","../../helpers/src/platform.service.ts","../../helpers/src/chart-config-has-type.ts","../../helpers/src/deep-copy.ts","../../helpers/src/merge-deep.ts","../../helpers/src/unique-id-generator.helper.ts","../../helpers/src/string-search.helper.ts","../../helpers/src/line-clamp-helper.ts","../../helpers/src/kirby-animation.ts","../../helpers/src/ionic-element-part-helper.ts","../../helpers/src/value-accessor-helper.ts","../../helpers/src/public_api.ts","../../helpers/src/kirbydesign-designsystem-helpers.ts"],"sourcesContent":["/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement,\n ancestorNodeName: string,\n stopNodeName?: string\n) => {\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n\n/*\n * Utility function to find the closest ancestor modal and\n * get the element with a dialog role from within its shadow root.\n */\nexport function getIonModalDialogAncestor(currentElement: HTMLElement): HTMLElement | undefined {\n const ionModalElement = currentElement.closest('ion-modal');\n const modalElementDialog = ionModalElement?.shadowRoot?.querySelector(\n '[role=\"dialog\"]'\n ) as HTMLElement;\n return modalElementDialog;\n}\n","import { UnobserveFn } from '@kirbydesign/designsystem/types';\n\n/* Function based on https://github.com/angular/components/blob/main/src/cdk/observers/observe-content.ts\n * Angular may add, remove, or edit comment nodes during change detection. We don't care about\n * these changes because they don't affect the user-preceived content, and worse it can cause\n * infinite change detection cycles where the change detection updates a comment, triggering the\n * MutationObserver, triggering another change detection and kicking the cycle off again. */\nfunction shouldIgnoreMutationRecord(record: MutationRecord) {\n // Ignore changes to comment text.\n if (record.type === 'characterData' && record.target instanceof Comment) {\n return true;\n }\n // Ignore addition / removal of comments.\n if (record.type === 'childList') {\n for (let i = 0; i < record.addedNodes.length; i++) {\n if (!(record.addedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n for (let i = 0; i < record.removedNodes.length; i++) {\n if (!(record.removedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n return true;\n }\n // Observe everything else.\n return false;\n}\n\n/**\n * Creates a MutationObserver and observes content changes in a given element.\n * The provided callback is called when changes are detected.\n *\n * @returns function - an unobserve function that can be called to disconnect the created observer.\n */\nexport function observeContent(\n observedElement: HTMLElement,\n contentChangedCallback: () => void\n): UnobserveFn {\n const mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => !shouldIgnoreMutationRecord(mutation));\n if (filteredMutations.length > 0) {\n contentChangedCallback();\n }\n });\n\n mutationObserver.observe(observedElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { DesignTokenHelper } from './design-token-helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import { ChartConfiguration, ChartConfigurationCustomTypesPerDataset } from 'chart.js';\n\n/* \n Type guard is needed as of chart.js@3.8.1. The config type has been updated to a union type, \n and the newly added type 'ChartConfigurationCustomTypesPerDataset' does not contain the 'type' property.\n Typescript will throw an error, when trying to access a property that doesn't exist on all union types,\n unless a type guard is used. \n*/\n\nexport const chartConfigHasType = (\n config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset\n): config is ChartConfiguration => {\n return 'type' in config;\n};\n","/*\nCopied from https://github.com/ykdr8/ts-deepcopy.\n\nMIT License\n\nCopyright (c) 2017 ykdr2017\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\nexport function deepCopy<Tp>(tgt: Tp): Tp {\n let cp: Tp;\n if (tgt === null) {\n cp = tgt;\n } else if (tgt instanceof Date) {\n cp = new Date((tgt as any).getTime()) as any;\n } else if (Array.isArray(tgt)) {\n cp = [] as any;\n (tgt as any[]).forEach((v) => {\n (cp as any).push(v);\n });\n cp = (cp as any).map((n: any) => deepCopy<any>(n));\n } else if (typeof tgt === 'object') {\n cp = { ...(tgt as Tp) } as Tp;\n Object.keys(cp).forEach((k) => {\n (cp as any)[k] = deepCopy<any>((cp as any)[k]);\n });\n } else {\n cp = tgt;\n }\n return cp;\n}\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(originalObject, overrideObject, config = { mergeArrays: false }) {\n const isObject = (obj) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: object[]): object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","export class StringSearchHelper {\n static getIndexByFirstMatchingStartString(\n searchString: string,\n words: string[],\n startIndex: number\n ): number {\n searchString = searchString.toLowerCase();\n\n const wordsStartingWithMatchString = words\n .map((word, index) => {\n return { word: word.toLowerCase(), index };\n })\n .filter((match) => match.word.startsWith(searchString));\n\n if (wordsStartingWithMatchString.length === 0) {\n return -1;\n }\n\n const firstWordStartingWithChar = wordsStartingWithMatchString[0];\n const nextWordStartingWithChar = wordsStartingWithMatchString.find(\n (wordAndIndex) => wordAndIndex.index >= startIndex\n );\n\n return nextWordStartingWithChar?.index ?? firstWordStartingWithChar.index;\n }\n\n static isPrintableCharacter(key: string): boolean {\n return key.length === 1 && /\\S/.test(key);\n }\n}\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { DesignTokenHelper } from './design-token-helper';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { ElementRef, Injectable, Renderer2 } from '@angular/core';\nimport { componentOnReady } from '@ionic/core';\n\n@Injectable()\nexport class IonicElementPartHelper {\n constructor(private renderer: Renderer2) {}\n\n public async setPart(partName: string, ionicElementRef: ElementRef, selector: string) {\n // Ensure custom element has been defined and rendered\n await customElements.whenDefined(ionicElementRef.nativeElement.localName);\n const customElement = await new Promise<HTMLElement>((resolve) => {\n componentOnReady(ionicElementRef.nativeElement, (element) => resolve(element));\n });\n\n const partElement: HTMLElement = customElement.shadowRoot.querySelector(selector);\n if (!partElement) return;\n\n this.renderer.setAttribute(partElement, 'part', partName);\n }\n}\n","import { ControlValueAccessor } from '@angular/forms';\n\n/**\n * Configuration for extending a ControlValueAccessor's `writeValue` method.\n * @typeParam T - The type of value being written\n */\nexport interface WriteValueExtension<T = unknown> {\n /**\n * Callback invoked after `writeValue` is called on each accessor.\n * @param value - The value being written\n */\n afterWriteValue: (value: T) => void;\n}\n\n/**\n * Configuration for extending a ControlValueAccessor's `registerOnChange` method.\n * @typeParam TInput - The type of value received from the input\n * @typeParam TOutput - The type of value passed to the form control\n */\nexport interface RegisterOnChangeExtension<TInput = unknown, TOutput = unknown> {\n /**\n * Transform the value before it's passed to the original onChange function.\n * @param value - The original value from the input event\n * @returns The transformed value to pass to the form control\n */\n transformValue: (value: TInput) => TOutput;\n}\n\n/**\n * Configuration options for extending ControlValueAccessor methods.\n * @typeParam TWrite - The type of value for writeValue\n * @typeParam TChangeInput - The type of value received in registerOnChange\n * @typeParam TChangeOutput - The type of value output from registerOnChange\n */\nexport interface ValueAccessorExtensionConfig<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n> {\n /**\n * Configuration for extending `writeValue`.\n * When provided, the `afterWriteValue` callback will be invoked after each accessor's\n * `writeValue` method is called.\n */\n writeValue?: WriteValueExtension<TWrite>;\n\n /**\n * Configuration for extending `registerOnChange`.\n * When provided, the `transformValue` function will be used to transform values\n * before they're passed to the form control's onChange handler.\n */\n registerOnChange?: RegisterOnChangeExtension<TChangeInput, TChangeOutput>;\n}\n\n/**\n * Extends the methods of provided ControlValueAccessors.\n *\n * This utility wraps the control value accessor methods to add custom behavior while preserving\n * the original functionality. Its used to:\n * - Emit kirbyChange when values are written programmatically\n * - Transform or normalize values before they're passed to form controls to work with inputmasking\n *\n * @param accessors - Array of ControlValueAccessors to extend, typically injected via `NG_VALUE_ACCESSOR`\n * @param config - Configuration specifying which methods to extend and how\n *\n * @example\n * // Simple usage - emit changes when writeValue is called\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.kirbyChange.emit(value)\n * }\n * });\n *\n * @example\n * // Advanced usage - transform values in registerOnChange\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.updateDisplay(value)\n * },\n * registerOnChange: {\n * transformValue: (value) => this.normalizeValue(value)\n * }\n * });\n */\nexport function extendValueAccessors<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n>(\n accessors: ControlValueAccessor[] | null | undefined,\n config: ValueAccessorExtensionConfig<TWrite, TChangeInput, TChangeOutput>\n): void {\n if (!accessors) return;\n\n accessors.forEach((accessor) => {\n if (config.writeValue) {\n extendWriteValue(accessor, config.writeValue);\n }\n\n if (config.registerOnChange) {\n extendRegisterOnChange(accessor, config.registerOnChange);\n }\n });\n}\n\nfunction extendWriteValue<T>(\n accessor: ControlValueAccessor,\n extension: WriteValueExtension<T>\n): void {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n\n accessor.writeValue = (value: T) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n extension.afterWriteValue(value);\n };\n}\n\nfunction extendRegisterOnChange<TInput, TOutput>(\n accessor: ControlValueAccessor,\n extension: RegisterOnChangeExtension<TInput, TOutput>\n): void {\n const originalRegisterOnChange = accessor.registerOnChange?.bind(accessor);\n\n if (originalRegisterOnChange) {\n accessor.registerOnChange = (fn: (value: TOutput) => void) => {\n const wrappedFn = (value: TInput) => {\n fn(extension.transformValue(value));\n };\n originalRegisterOnChange(wrappedFn);\n };\n }\n}\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-ancestor-utils';\nexport * from './color-helper';\nexport * from './content-mutation-observer';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\nexport * from './chart-config-has-type';\nexport * from './deep-copy';\nexport * from './merge-deep';\nexport * from './unique-id-generator.helper';\nexport * from './string-search.helper';\nexport * from './line-clamp-helper';\nexport * from './kirby-animation';\nexport * from './ionic-element-part-helper';\nexport * from './value-accessor-helper';\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-helpers.mjs","sources":["../../helpers/src/element-ancestor-utils.ts","../../helpers/src/content-mutation-observer.ts","../../helpers/src/platform.service.ts","../../helpers/src/chart-config-has-type.ts","../../helpers/src/deep-copy.ts","../../helpers/src/merge-deep.ts","../../helpers/src/unique-id-generator.helper.ts","../../helpers/src/string-search.helper.ts","../../helpers/src/line-clamp-helper.ts","../../helpers/src/kirby-animation.ts","../../helpers/src/ionic-element-part-helper.ts","../../helpers/src/value-accessor-helper.ts","../../helpers/src/public_api.ts","../../helpers/src/kirbydesign-designsystem-helpers.ts"],"sourcesContent":["/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement | null,\n ancestorNodeName: string,\n stopNodeName?: string\n): boolean => {\n if (!element) return false;\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n\n/*\n * Utility function to find the closest ancestor modal and\n * get the element with a dialog role from within its shadow root.\n */\nexport function getIonModalDialogAncestor(currentElement: HTMLElement): HTMLElement | undefined {\n const ionModalElement = currentElement.closest('ion-modal');\n const modalElementDialog = ionModalElement?.shadowRoot?.querySelector<HTMLElement>(\n '[role=\"dialog\"]'\n );\n return modalElementDialog ?? undefined;\n}\n","import { UnobserveFn } from '@kirbydesign/designsystem/types';\n\n/* Function based on https://github.com/angular/components/blob/main/src/cdk/observers/observe-content.ts\n * Angular may add, remove, or edit comment nodes during change detection. We don't care about\n * these changes because they don't affect the user-preceived content, and worse it can cause\n * infinite change detection cycles where the change detection updates a comment, triggering the\n * MutationObserver, triggering another change detection and kicking the cycle off again. */\nfunction shouldIgnoreMutationRecord(record: MutationRecord) {\n // Ignore changes to comment text.\n if (record.type === 'characterData' && record.target instanceof Comment) {\n return true;\n }\n // Ignore addition / removal of comments.\n if (record.type === 'childList') {\n for (let i = 0; i < record.addedNodes.length; i++) {\n if (!(record.addedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n for (let i = 0; i < record.removedNodes.length; i++) {\n if (!(record.removedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n return true;\n }\n // Observe everything else.\n return false;\n}\n\n/**\n * Creates a MutationObserver and observes content changes in a given element.\n * The provided callback is called when changes are detected.\n *\n * @returns function - an unobserve function that can be called to disconnect the created observer.\n */\nexport function observeContent(\n observedElement: HTMLElement,\n contentChangedCallback: () => void\n): UnobserveFn {\n const mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => !shouldIgnoreMutationRecord(mutation));\n if (filteredMutations.length > 0) {\n contentChangedCallback();\n }\n });\n\n mutationObserver.observe(observedElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { DesignTokenHelper } from './design-token-helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import { ChartConfiguration, ChartConfigurationCustomTypesPerDataset } from 'chart.js';\n\n/* \n Type guard is needed as of chart.js@3.8.1. The config type has been updated to a union type, \n and the newly added type 'ChartConfigurationCustomTypesPerDataset' does not contain the 'type' property.\n Typescript will throw an error, when trying to access a property that doesn't exist on all union types,\n unless a type guard is used. \n*/\n\nexport const chartConfigHasType = (\n config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset\n): config is ChartConfiguration => {\n return 'type' in config;\n};\n","/*\nCopied from https://github.com/ykdr8/ts-deepcopy.\n\nMIT License\n\nCopyright (c) 2017 ykdr2017\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\nexport function deepCopy<Tp>(tgt: Tp): Tp {\n let cp: Tp;\n if (tgt === null) {\n cp = tgt;\n } else if (tgt instanceof Date) {\n cp = new Date((tgt as any).getTime()) as any;\n } else if (Array.isArray(tgt)) {\n cp = [] as any;\n (tgt as any[]).forEach((v) => {\n (cp as any).push(v);\n });\n cp = (cp as any).map((n: any) => deepCopy<any>(n));\n } else if (typeof tgt === 'object') {\n cp = { ...(tgt as object) } as Tp;\n Object.keys(cp as object).forEach((k) => {\n (cp as any)[k] = deepCopy<any>((cp as any)[k]);\n });\n } else {\n cp = tgt;\n }\n return cp;\n}\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(\n originalObject: Record<string, any>,\n overrideObject: Record<string, any>,\n config: { mergeArrays: boolean } = { mergeArrays: false }\n): Record<string, any> {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: object[]): object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","export class StringSearchHelper {\n static getIndexByFirstMatchingStartString(\n searchString: string,\n words: string[],\n startIndex: number\n ): number {\n searchString = searchString.toLowerCase();\n\n const wordsStartingWithMatchString = words\n .map((word, index) => {\n return { word: word.toLowerCase(), index };\n })\n .filter((match) => match.word.startsWith(searchString));\n\n if (wordsStartingWithMatchString.length === 0) {\n return -1;\n }\n\n const firstWordStartingWithChar = wordsStartingWithMatchString[0];\n const nextWordStartingWithChar = wordsStartingWithMatchString.find(\n (wordAndIndex) => wordAndIndex.index >= startIndex\n );\n\n return nextWordStartingWithChar?.index ?? firstWordStartingWithChar.index;\n }\n\n static isPrintableCharacter(key: string): boolean {\n return key.length === 1 && /\\S/.test(key);\n }\n}\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { DesignTokenHelper } from './design-token-helper';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { ElementRef, Injectable, Renderer2 } from '@angular/core';\nimport { componentOnReady } from '@ionic/core';\n\n@Injectable()\nexport class IonicElementPartHelper {\n constructor(private renderer: Renderer2) {}\n\n public async setPart(partName: string, ionicElementRef: ElementRef, selector: string) {\n // Ensure custom element has been defined and rendered\n await customElements.whenDefined(ionicElementRef.nativeElement.localName);\n const customElement = await new Promise<HTMLElement>((resolve) => {\n componentOnReady(ionicElementRef.nativeElement, (element: HTMLElement) => resolve(element));\n });\n\n const partElement = customElement.shadowRoot?.querySelector<HTMLElement>(selector);\n if (!partElement) return;\n\n this.renderer.setAttribute(partElement, 'part', partName);\n }\n}\n","import { ControlValueAccessor } from '@angular/forms';\n\n/**\n * Configuration for extending a ControlValueAccessor's `writeValue` method.\n * @typeParam T - The type of value being written\n */\nexport interface WriteValueExtension<T = unknown> {\n /**\n * Callback invoked after `writeValue` is called on each accessor.\n * @param value - The value being written\n */\n afterWriteValue: (value: T) => void;\n}\n\n/**\n * Configuration for extending a ControlValueAccessor's `registerOnChange` method.\n * @typeParam TInput - The type of value received from the input\n * @typeParam TOutput - The type of value passed to the form control\n */\nexport interface RegisterOnChangeExtension<TInput = unknown, TOutput = unknown> {\n /**\n * Transform the value before it's passed to the original onChange function.\n * @param value - The original value from the input event\n * @returns The transformed value to pass to the form control\n */\n transformValue: (value: TInput) => TOutput;\n}\n\n/**\n * Configuration options for extending ControlValueAccessor methods.\n * @typeParam TWrite - The type of value for writeValue\n * @typeParam TChangeInput - The type of value received in registerOnChange\n * @typeParam TChangeOutput - The type of value output from registerOnChange\n */\nexport interface ValueAccessorExtensionConfig<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n> {\n /**\n * Configuration for extending `writeValue`.\n * When provided, the `afterWriteValue` callback will be invoked after each accessor's\n * `writeValue` method is called.\n */\n writeValue?: WriteValueExtension<TWrite>;\n\n /**\n * Configuration for extending `registerOnChange`.\n * When provided, the `transformValue` function will be used to transform values\n * before they're passed to the form control's onChange handler.\n */\n registerOnChange?: RegisterOnChangeExtension<TChangeInput, TChangeOutput>;\n}\n\n/**\n * Extends the methods of provided ControlValueAccessors.\n *\n * This utility wraps the control value accessor methods to add custom behavior while preserving\n * the original functionality. Its used to:\n * - Emit kirbyChange when values are written programmatically\n * - Transform or normalize values before they're passed to form controls to work with inputmasking\n *\n * @param accessors - Array of ControlValueAccessors to extend, typically injected via `NG_VALUE_ACCESSOR`\n * @param config - Configuration specifying which methods to extend and how\n *\n * @example\n * // Simple usage - emit changes when writeValue is called\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.kirbyChange.emit(value)\n * }\n * });\n *\n * @example\n * // Advanced usage - transform values in registerOnChange\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.updateDisplay(value)\n * },\n * registerOnChange: {\n * transformValue: (value) => this.normalizeValue(value)\n * }\n * });\n */\nexport function extendValueAccessors<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n>(\n accessors: ControlValueAccessor[] | null | undefined,\n config: ValueAccessorExtensionConfig<TWrite, TChangeInput, TChangeOutput>\n): void {\n if (!accessors) return;\n\n accessors.forEach((accessor) => {\n if (config.writeValue) {\n extendWriteValue(accessor, config.writeValue);\n }\n\n if (config.registerOnChange) {\n extendRegisterOnChange(accessor, config.registerOnChange);\n }\n });\n}\n\nfunction extendWriteValue<T>(\n accessor: ControlValueAccessor,\n extension: WriteValueExtension<T>\n): void {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n\n accessor.writeValue = (value: T) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n extension.afterWriteValue(value);\n };\n}\n\nfunction extendRegisterOnChange<TInput, TOutput>(\n accessor: ControlValueAccessor,\n extension: RegisterOnChangeExtension<TInput, TOutput>\n): void {\n const originalRegisterOnChange = accessor.registerOnChange?.bind(accessor);\n\n if (originalRegisterOnChange) {\n accessor.registerOnChange = (fn: (value: TOutput) => void) => {\n const wrappedFn = (value: TInput) => {\n fn(extension.transformValue(value));\n };\n originalRegisterOnChange(wrappedFn);\n };\n }\n}\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-ancestor-utils';\nexport * from './color-helper';\nexport * from './content-mutation-observer';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\nexport * from './chart-config-has-type';\nexport * from './deep-copy';\nexport * from './merge-deep';\nexport * from './unique-id-generator.helper';\nexport * from './string-search.helper';\nexport * from './line-clamp-helper';\nexport * from './kirby-animation';\nexport * from './ionic-element-part-helper';\nexport * from './value-accessor-helper';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Inject, Injectable, Input, HostBinding, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
- import { IonIcon } from '@ionic/angular/standalone';
3
+ import { IonIcon } from '@ionic/angular';
4
4
  import { ThemeColorDirective } from '@kirbydesign/designsystem/shared';
5
5
 
6
6
  const sortIconsByName = (icons) => {
@@ -63,6 +63,13 @@ const kirbyIconSettings = {
63
63
  { name: 'pension', svg: 'pension.svg' },
64
64
  { name: 'person-outline', svg: 'person-outline.svg' },
65
65
  { name: 'person', svg: 'person.svg' },
66
+ { name: 'person-blocked', svg: 'person-blocked.svg' },
67
+ { name: 'person-check', svg: 'person-check.svg' },
68
+ { name: 'person-close', svg: 'person-close.svg' },
69
+ { name: 'person-power', svg: 'person-power.svg' },
70
+ { name: 'person-cloud', svg: 'person-cloud.svg' },
71
+ { name: 'person-warning', svg: 'person-warning.svg' },
72
+ { name: 'phone-device-pin', svg: 'phone-device-pin.svg' },
66
73
  { name: 'qr', svg: 'QR.svg' },
67
74
  { name: 'recurring', svg: 'recurring.svg' },
68
75
  { name: 'salary', svg: 'salary.svg' },
@@ -187,7 +194,8 @@ class IconRegistryService {
187
194
  return;
188
195
  }
189
196
  icons.forEach((icon) => {
190
- this.addIcon(icon.name, icon.svg);
197
+ if (icon.name && icon.svg)
198
+ this.addIcon(icon.name, icon.svg);
191
199
  });
192
200
  }
193
201
  addDefaultIcons() {
@@ -196,16 +204,18 @@ class IconRegistryService {
196
204
  this.addIcons(kirbyIconSettings.icons.map((icon) => ({ name: icon.name, svg: baseUrlWithSlash + icon.svg })));
197
205
  }
198
206
  getIcons() {
199
- return Array.from(this.iconRegistry.keys()).map((key) => this.getIcon(key));
207
+ return Array.from(this.iconRegistry.keys())
208
+ .map((key) => this.getIcon(key))
209
+ .filter((icon) => !!icon);
200
210
  }
201
211
  getIcon(name) {
202
212
  const svg = this.iconRegistry.get(name);
203
213
  return svg ? { name, svg } : undefined;
204
214
  }
205
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconRegistryService, deps: [{ token: BUILT_IN_ICONS_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
206
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconRegistryService, providedIn: 'root' }); }
215
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconRegistryService, deps: [{ token: BUILT_IN_ICONS_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
216
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconRegistryService, providedIn: 'root' }); }
207
217
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconRegistryService, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconRegistryService, decorators: [{
209
219
  type: Injectable,
210
220
  args: [{
211
221
  providedIn: 'root',
@@ -269,12 +279,12 @@ forgot to configure the custom icon through the 'IconRegistryService'?`);
269
279
  this.renderer.setAttribute(this.element, 'aria-hidden', 'true');
270
280
  }
271
281
  }
272
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconComponent, deps: [{ token: IconRegistryService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
273
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: IconComponent, isStandalone: true, selector: "kirby-icon", inputs: { size: "size", name: "name" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
282
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconComponent, deps: [{ token: IconRegistryService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
283
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: IconComponent, isStandalone: true, selector: "kirby-icon", inputs: { size: "size", name: "name" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, var(--kirby-icon-font-size-sm));margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: var(--kirby-icon-font-size-xs)}:host(.sm){--kirby-icon-font-size: var(--kirby-icon-font-size-sm)}:host(.md){--kirby-icon-font-size: var(--kirby-icon-font-size-md)}:host(.lg){--kirby-icon-font-size: var(--kirby-icon-font-size-lg)}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:var(--kirby-spacing-xxs)}:host-context(kirby-item)[slot=end]{margin-inline-start:var(--kirby-spacing-xxs)}:host-context(ion-tab-button){pointer-events:none}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
274
284
  }
275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconComponent, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconComponent, decorators: [{
276
286
  type: Component,
277
- args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonIcon], template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"] }]
287
+ args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonIcon], template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, var(--kirby-icon-font-size-sm));margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: var(--kirby-icon-font-size-xs)}:host(.sm){--kirby-icon-font-size: var(--kirby-icon-font-size-sm)}:host(.md){--kirby-icon-font-size: var(--kirby-icon-font-size-md)}:host(.lg){--kirby-icon-font-size: var(--kirby-icon-font-size-lg)}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:var(--kirby-spacing-xxs)}:host-context(kirby-item)[slot=end]{margin-inline-start:var(--kirby-spacing-xxs)}:host-context(ion-tab-button){pointer-events:none}\n"] }]
278
288
  }], ctorParameters: () => [{ type: IconRegistryService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { size: [{
279
289
  type: HostBinding,
280
290
  args: ['class']
@@ -285,11 +295,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
285
295
  }] } });
286
296
 
287
297
  class IconModule {
288
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
289
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: IconModule, imports: [ThemeColorDirective, IonIcon, IconComponent], exports: [IconComponent, ThemeColorDirective] }); }
290
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconModule, imports: [IonIcon, IconComponent] }); }
298
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
299
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.5", ngImport: i0, type: IconModule, imports: [ThemeColorDirective, IonIcon, IconComponent], exports: [IconComponent, ThemeColorDirective] }); }
300
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconModule, imports: [IonIcon, IconComponent] }); }
291
301
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IconModule, decorators: [{
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: IconModule, decorators: [{
293
303
  type: NgModule,
294
304
  args: [{
295
305
  imports: [ThemeColorDirective, IonIcon, IconComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-icon.mjs","sources":["../../icon/src/kirby-icon-settings.ts","../../icon/src/icon-registry.service.ts","../../icon/src/icon.component.ts","../../icon/src/icon.component.html","../../icon/src/icon.module.ts","../../icon/src/kirbydesign-designsystem-icon.ts"],"sourcesContent":["import { Icon, IconSettings } from './icon-settings';\n\nconst sortIconsByName = (icons: Icon[]) => {\n const collator = new Intl.Collator('en');\n return icons.sort((a, b) => collator.compare(a.name, b.name));\n};\n\nexport const kirbyIconSettings: IconSettings = {\n icons: sortIconsByName([\n { name: 'accounts-outline', svg: 'accounts-outline.svg' },\n { name: 'accounts', svg: 'accounts.svg' },\n { name: 'add', svg: 'add.svg' },\n { name: 'remove', svg: 'remove.svg' },\n { name: 'unsubscribe', svg: 'unsubscribe.svg' },\n { name: 'arrow-back', svg: 'arrow-back.svg' },\n { name: 'arrow-down', svg: 'arrow-down.svg' },\n { name: 'arrow-more', svg: 'arrow-more.svg' },\n { name: 'arrow-up', svg: 'arrow-up.svg' },\n { name: 'attach', svg: 'attach.svg' },\n { name: 'backspace', svg: 'backspace.svg' },\n { name: 'calendar', svg: 'calendar.svg' },\n { name: 'camera', svg: 'camera.svg' },\n { name: 'car', svg: 'car.svg' },\n { name: 'chainlink', svg: 'chainlink.svg' },\n { name: 'checkbox-outline', svg: 'checkbox-outline.svg' },\n { name: 'checkbox', svg: 'checkbox.svg' },\n { name: 'checkmark-selected', svg: 'checkmark-selected.svg' },\n { name: 'close', svg: 'close.svg' },\n { name: 'cog', svg: 'cog.svg' },\n { name: 'coinstack', svg: 'coinstack.svg' },\n { name: 'contact', svg: 'contact.svg' },\n { name: 'copy', svg: 'copy.svg' },\n { name: 'flag', svg: 'flag.svg' },\n { name: 'edit', svg: 'edit.svg' },\n { name: 'filter', svg: 'filter.svg' },\n { name: 'flash-off', svg: 'flash-off.svg' },\n { name: 'flash', svg: 'flash.svg' },\n { name: 'moneybag', svg: 'moneybag.svg' },\n { name: 'help', svg: 'help.svg' },\n { name: 'home', svg: 'home.svg' },\n { name: 'id-card', svg: 'id-card.svg' },\n { name: 'inbox', svg: 'inbox.svg' },\n { name: 'inbox-outline', svg: 'inbox-outline.svg' },\n { name: 'information', svg: 'information.svg' },\n { name: 'insurance', svg: 'insurance.svg' },\n { name: 'investment', svg: 'investment.svg' },\n { name: 'key', svg: 'key.svg' },\n { name: 'kirby', svg: 'kirby.svg' },\n { name: 'link', svg: 'link.svg' },\n { name: 'log-out', svg: 'log-out.svg' },\n { name: 'menu-outline', svg: 'menu-outline.svg' },\n { name: 'menu', svg: 'menu.svg' },\n { name: 'menu-no-decoration', svg: 'menu-no-decoration.svg' },\n { name: 'message-read', svg: 'message-read.svg' },\n { name: 'misc', svg: 'misc.svg' },\n { name: 'more', svg: 'more.svg' },\n { name: 'move', svg: 'move.svg' },\n { name: 'note', svg: 'note.svg' },\n { name: 'note-create', svg: 'note-create.svg' },\n { name: 'payment-card', svg: 'payment-card.svg' },\n { name: 'pension', svg: 'pension.svg' },\n { name: 'person-outline', svg: 'person-outline.svg' },\n { name: 'person', svg: 'person.svg' },\n { name: 'qr', svg: 'QR.svg' },\n { name: 'recurring', svg: 'recurring.svg' },\n { name: 'salary', svg: 'salary.svg' },\n { name: 'search', svg: 'search.svg' },\n { name: 'share', svg: 'share.svg' },\n { name: 'sort', svg: 'sort.svg' },\n { name: 'support', svg: 'support.svg' },\n { name: 'swap', svg: 'swap.svg' },\n { name: 'trash', svg: 'trash.svg' },\n { name: 'foreign-payment', svg: 'foreign-payment.svg' },\n { name: 'clock', svg: 'clock.svg' },\n { name: 'verify', svg: 'verify.svg' },\n { name: 'warning', svg: 'warning.svg' },\n { name: 'write-message', svg: 'write-message.svg' },\n { name: 'reorder', svg: 'reorder.svg' },\n { name: 'accident', svg: 'accident.svg' },\n { name: 'health', svg: 'health.svg' },\n { name: 'illness', svg: 'illness.svg' },\n { name: 'incapacity', svg: 'incapacity.svg' },\n { name: 'life', svg: 'life.svg' },\n { name: 'help-decoration', svg: 'help-decoration.svg' },\n { name: 'information-decoration', svg: 'information-decoration.svg' },\n { name: 'warning-decoration', svg: 'warning-decoration.svg' },\n { name: 'notification', svg: 'notification.svg' },\n { name: 'transfer-ownership', svg: 'transfer-ownership.svg' },\n { name: 'update', svg: 'update.svg' },\n { name: 'user-blocked', svg: 'user-blocked.svg' },\n { name: 'add-bank', svg: 'add-bank.svg' },\n { name: 'participants', svg: 'participants.svg' },\n { name: 'download', svg: 'download.svg' },\n { name: 'globe-transfer', svg: 'globe-transfer.svg' },\n { name: 'banknotes', svg: 'banknotes.svg' },\n { name: 'air-balloon', svg: 'air-balloon.svg' },\n { name: 'piggybank', svg: 'piggybank.svg' },\n { name: 'business', svg: 'business.svg' },\n { name: 'navigation', svg: 'navigation.svg' },\n { name: 'phone-device', svg: 'phone-device.svg' },\n { name: 'upload', svg: 'upload.svg' },\n { name: 'document', svg: 'document.svg' },\n { name: 'chat', svg: 'chat.svg' },\n { name: 'feedback', svg: 'feedback.svg' },\n { name: 'keyboard', svg: 'keyboard.svg' },\n { name: 'lock', svg: 'lock.svg' },\n { name: 'see', svg: 'see.svg' },\n { name: 'overview', svg: 'overview.svg' },\n { name: 'overview-outline', svg: 'overview-outline.svg' },\n { name: 'arrow-down-fill', svg: 'arrow-down-fill.svg' },\n { name: 'arrow-up-fill', svg: 'arrow-up-fill.svg' },\n { name: 'calculator', svg: 'calculator.svg' },\n { name: 'grid', svg: 'grid.svg' },\n { name: 'list', svg: 'list.svg' },\n { name: 'adjust', svg: 'adjust.svg' },\n { name: 'bs-logo', svg: 'bs-logo.svg' },\n { name: 'company', svg: 'company.svg' },\n { name: 'budget', svg: 'budget.svg' },\n { name: 'history', svg: 'history.svg' },\n { name: 'dot', svg: 'dot.svg' },\n { name: 'agreement', svg: 'agreement.svg' },\n { name: 'sunshine', svg: 'sunshine.svg' },\n { name: 'star', svg: 'star.svg' },\n { name: 'star-fill', svg: 'star-fill.svg' },\n { name: 'payment', svg: 'payment.svg' },\n { name: 'revert', svg: 'revert.svg' },\n { name: 'fees', svg: 'fees.svg' },\n { name: 'crossedeye', svg: 'crossedeye.svg' },\n { name: 'common', svg: 'common.svg' },\n { name: 'calendar-start', svg: 'calendar-start.svg' },\n { name: 'calendar-end', svg: 'calendar-end.svg' },\n { name: 'expand', svg: 'expand.svg' },\n { name: 'contract', svg: 'contract.svg' },\n { name: 'house', svg: 'house.svg' },\n { name: 'tractor', svg: 'tractor.svg' },\n { name: 'flower', svg: 'flower.svg' },\n { name: 'basket', svg: 'basket.svg' },\n { name: 'drag-drop', svg: 'drag-drop.svg' },\n { name: 'notification-fill', svg: 'notification-fill.svg' },\n { name: 'expense', svg: 'expense.svg' },\n { name: 'income', svg: 'income.svg' },\n { name: 'top-up', svg: 'top-up.svg' },\n { name: 'signed-document', svg: 'signed-document.svg' },\n { name: 'bank', svg: 'bank.svg' },\n { name: 'balloon', svg: 'balloon.svg' },\n { name: 'scale', svg: 'scale.svg' },\n { name: 'ownership', svg: 'ownership.svg' },\n { name: 'maintenance', svg: 'maintenance.svg' },\n { name: 'blocked', svg: 'blocked.svg' },\n { name: 'checklist', svg: 'checklist.svg' },\n { name: 'collection', svg: 'collection.svg' },\n { name: 'pause', svg: 'pause.svg' },\n { name: 'payment-change', svg: 'payment-change.svg' },\n { name: 'pregnancy', svg: 'pregnancy.svg' },\n { name: 'send', svg: 'send.svg' },\n { name: 'subscription', svg: 'subscription.svg' },\n ]),\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport const DEFAULT_BUILT_IN_ICONS_URL = 'assets/kirby/icons/svg/';\n\n/**\n * Token used to configure base URL for path to built-in icons. Default is 'assets/kirby/icons/svg'.\n */\nexport const BUILT_IN_ICONS_URL = new InjectionToken<string>('BUILT_IN_ICONS_URL', {\n factory: () => DEFAULT_BUILT_IN_ICONS_URL,\n});\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n constructor(@Inject(BUILT_IN_ICONS_URL) private builtInIconsUrl: string) {\n this.addDefaultIcons();\n }\n\n addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n this.addIcon(icon.name, icon.svg);\n });\n }\n\n private addDefaultIcons(): void {\n const baseUrl = this.builtInIconsUrl ?? DEFAULT_BUILT_IN_ICONS_URL;\n const baseUrlWithSlash = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';\n this.addIcons(\n kirbyIconSettings.icons.map((icon) => ({ name: icon.name, svg: baseUrlWithSlash + icon.svg }))\n );\n }\n\n getIcons(): Icon[] {\n return Array.from(this.iconRegistry.keys()).map((key) => this.getIcon(key));\n }\n\n getIcon(name: string): Icon {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n host: { '[class.kirby-icon]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonIcon],\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.iconRegistryService.getIcon('cog');\n private _icon = (this.icon = this.defaultIcon);\n private element: HTMLElement;\n\n @HostBinding('class')\n @Input()\n size: IconSize | `${IconSize}`;\n\n @Input() name: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && this.name) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n console.warn(`Icon with name \"${this.name}\" was not found.\nDo you have a typo in 'name' for a built-in icon or\nforgot to configure the custom icon through the 'IconRegistryService'?`);\n }\n\n constructor(\n private iconRegistryService: IconRegistryService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.element = this.elementRef.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.name.currentValue);\n\n // This will always run on first init - and again later if name is changed\n // If name changes a new aria-label might have been added, so we need to check again.\n this.setAriaHiddenIfNoLabel();\n }\n }\n\n private setAriaHiddenIfNoLabel() {\n const existingAriaLabel = this.element.hasAttribute('aria-label');\n if (!existingAriaLabel) {\n this.renderer.setAttribute(this.element, 'aria-hidden', 'true');\n }\n }\n}\n","<ion-icon [src]=\"icon?.svg\"></ion-icon>\n","import { NgModule } from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [ThemeColorDirective, IonIcon, IconComponent],\n exports: [IconComponent, ThemeColorDirective],\n})\nexport class IconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconRegistryService"],"mappings":";;;;;AAEA,MAAM,eAAe,GAAG,CAAC,KAAa,KAAI;IACxC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAEM,MAAM,iBAAiB,GAAiB;IAC7C,KAAK,EAAE,eAAe,CAAC;AACrB,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,sBAAsB,EAAE;AACzD,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC/C,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,sBAAsB,EAAE;AACzD,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE;AACnD,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC/C,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC/C,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,oBAAoB,EAAE;AACrD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC7B,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE;AACvD,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE;AACnD,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE;AACvD,QAAA,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,4BAA4B,EAAE;AACrE,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,oBAAoB,EAAE;AACrD,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC/C,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,sBAAsB,EAAE;AACzD,QAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE;AACvD,QAAA,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE;AACnD,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,oBAAoB,EAAE;AACrD,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACjD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE;AACzC,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,uBAAuB,EAAE;AAC3D,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;AACrC,QAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE;AACvD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC/C,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;AACvC,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE;AAC7C,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,oBAAoB,EAAE;AACrD,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3C,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,EAAE;KAClD,CAAC;;AAGG,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;;AC1JpE,MAAM,0BAA0B,GAAG;AAE1C;;AAEG;MACU,kBAAkB,GAAG,IAAI,cAAc,CAAS,oBAAoB,EAAE;AACjF,IAAA,OAAO,EAAE,MAAM,0BAA0B;AAC1C,CAAA;MAKY,mBAAmB,CAAA;AAG9B,IAAA,WAAA,CAAgD,eAAuB,EAAA;QAAvB,IAAA,CAAA,eAAe,GAAf,eAAe;AAFvD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAkB;QAG9C,IAAI,CAAC,eAAe,EAAE;IACxB;IAEA,OAAO,CAAC,QAAgB,EAAE,OAAe,EAAA;QACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC1C;aAAO;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAA,gBAAA,CAAkB,CAAC;QAC9D;IACF;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAClC;QACF;AACA,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACnC,QAAA,CAAC,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,0BAA0B;AAClE,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG;AACxE,QAAA,IAAI,CAAC,QAAQ,CACX,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAC/F;IACH;IAEA,QAAQ,GAAA;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7E;AAEA,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,QAAA,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS;IACxC;AAxCW,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAGV,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAH3B,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,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAIc,MAAM;2BAAC,kBAAkB;;;ICL5B;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;MAeP,aAAa,CAAA;AAWxB,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,IAAI,IAAI,CAAC,IAAU,EAAA;;AAEjB,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACtB,IAAI,CAAC,oBAAoB,EAAE;AAE3B,YAAA,IAAI,GAAG,IAAI,CAAC,WAAW;;YAGvB,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC;gBAC3C;YACF;QACF;;QAGA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC,IAAI,CAAA;;AAE0B,sEAAA,CAAA,CAAC;IACtE;AAEA,IAAA,WAAA,CACU,mBAAwC,EACxC,UAAmC,EACnC,QAAmB,EAAA;QAFnB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,QAAQ,GAAR,QAAQ;QA3ClB,IAAA,CAAA,WAAW,GAAS,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC;QACnD,IAAA,CAAA,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QA4C5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;IAC9C;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;AAC7C,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;;;YAIvE,IAAI,CAAC,sBAAsB,EAAE;QAC/B;IACF;IAEQ,sBAAsB,GAAA;QAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACjE,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC;QACjE;IACF;kIAhEW,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B1B,6CACA,EAAA,MAAA,EAAA,CAAA,2rCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED2BY,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAEN,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,IAAA,EAGhB,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAA,eAAA,EACrB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,2rCAAA,CAAA,EAAA;;sBAOjB,WAAW;uBAAC,OAAO;;sBACnB;;sBAGA;;;ME9BU,UAAU,CAAA;kIAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAAV,UAAU,EAAA,OAAA,EAAA,CAHX,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC3C,aAAa,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;mIAEjC,UAAU,EAAA,OAAA,EAAA,CAHU,OAAO,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAG1C,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC;AACtD,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC;AAC9C,iBAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-icon.mjs","sources":["../../icon/src/kirby-icon-settings.ts","../../icon/src/icon-registry.service.ts","../../icon/src/icon.component.ts","../../icon/src/icon.component.html","../../icon/src/icon.module.ts","../../icon/src/kirbydesign-designsystem-icon.ts"],"sourcesContent":["import { Icon, IconSettings } from './icon-settings';\n\nconst sortIconsByName = (icons: Icon[]) => {\n const collator = new Intl.Collator('en');\n return icons.sort((a, b) => collator.compare(a.name, b.name));\n};\n\nexport const kirbyIconSettings: IconSettings = {\n icons: sortIconsByName([\n { name: 'accounts-outline', svg: 'accounts-outline.svg' },\n { name: 'accounts', svg: 'accounts.svg' },\n { name: 'add', svg: 'add.svg' },\n { name: 'remove', svg: 'remove.svg' },\n { name: 'unsubscribe', svg: 'unsubscribe.svg' },\n { name: 'arrow-back', svg: 'arrow-back.svg' },\n { name: 'arrow-down', svg: 'arrow-down.svg' },\n { name: 'arrow-more', svg: 'arrow-more.svg' },\n { name: 'arrow-up', svg: 'arrow-up.svg' },\n { name: 'attach', svg: 'attach.svg' },\n { name: 'backspace', svg: 'backspace.svg' },\n { name: 'calendar', svg: 'calendar.svg' },\n { name: 'camera', svg: 'camera.svg' },\n { name: 'car', svg: 'car.svg' },\n { name: 'chainlink', svg: 'chainlink.svg' },\n { name: 'checkbox-outline', svg: 'checkbox-outline.svg' },\n { name: 'checkbox', svg: 'checkbox.svg' },\n { name: 'checkmark-selected', svg: 'checkmark-selected.svg' },\n { name: 'close', svg: 'close.svg' },\n { name: 'cog', svg: 'cog.svg' },\n { name: 'coinstack', svg: 'coinstack.svg' },\n { name: 'contact', svg: 'contact.svg' },\n { name: 'copy', svg: 'copy.svg' },\n { name: 'flag', svg: 'flag.svg' },\n { name: 'edit', svg: 'edit.svg' },\n { name: 'filter', svg: 'filter.svg' },\n { name: 'flash-off', svg: 'flash-off.svg' },\n { name: 'flash', svg: 'flash.svg' },\n { name: 'moneybag', svg: 'moneybag.svg' },\n { name: 'help', svg: 'help.svg' },\n { name: 'home', svg: 'home.svg' },\n { name: 'id-card', svg: 'id-card.svg' },\n { name: 'inbox', svg: 'inbox.svg' },\n { name: 'inbox-outline', svg: 'inbox-outline.svg' },\n { name: 'information', svg: 'information.svg' },\n { name: 'insurance', svg: 'insurance.svg' },\n { name: 'investment', svg: 'investment.svg' },\n { name: 'key', svg: 'key.svg' },\n { name: 'kirby', svg: 'kirby.svg' },\n { name: 'link', svg: 'link.svg' },\n { name: 'log-out', svg: 'log-out.svg' },\n { name: 'menu-outline', svg: 'menu-outline.svg' },\n { name: 'menu', svg: 'menu.svg' },\n { name: 'menu-no-decoration', svg: 'menu-no-decoration.svg' },\n { name: 'message-read', svg: 'message-read.svg' },\n { name: 'misc', svg: 'misc.svg' },\n { name: 'more', svg: 'more.svg' },\n { name: 'move', svg: 'move.svg' },\n { name: 'note', svg: 'note.svg' },\n { name: 'note-create', svg: 'note-create.svg' },\n { name: 'payment-card', svg: 'payment-card.svg' },\n { name: 'pension', svg: 'pension.svg' },\n { name: 'person-outline', svg: 'person-outline.svg' },\n { name: 'person', svg: 'person.svg' },\n { name: 'person-blocked', svg: 'person-blocked.svg' },\n { name: 'person-check', svg: 'person-check.svg' },\n { name: 'person-close', svg: 'person-close.svg' },\n { name: 'person-power', svg: 'person-power.svg' },\n { name: 'person-cloud', svg: 'person-cloud.svg' },\n { name: 'person-warning', svg: 'person-warning.svg' },\n { name: 'phone-device-pin', svg: 'phone-device-pin.svg' },\n { name: 'qr', svg: 'QR.svg' },\n { name: 'recurring', svg: 'recurring.svg' },\n { name: 'salary', svg: 'salary.svg' },\n { name: 'search', svg: 'search.svg' },\n { name: 'share', svg: 'share.svg' },\n { name: 'sort', svg: 'sort.svg' },\n { name: 'support', svg: 'support.svg' },\n { name: 'swap', svg: 'swap.svg' },\n { name: 'trash', svg: 'trash.svg' },\n { name: 'foreign-payment', svg: 'foreign-payment.svg' },\n { name: 'clock', svg: 'clock.svg' },\n { name: 'verify', svg: 'verify.svg' },\n { name: 'warning', svg: 'warning.svg' },\n { name: 'write-message', svg: 'write-message.svg' },\n { name: 'reorder', svg: 'reorder.svg' },\n { name: 'accident', svg: 'accident.svg' },\n { name: 'health', svg: 'health.svg' },\n { name: 'illness', svg: 'illness.svg' },\n { name: 'incapacity', svg: 'incapacity.svg' },\n { name: 'life', svg: 'life.svg' },\n { name: 'help-decoration', svg: 'help-decoration.svg' },\n { name: 'information-decoration', svg: 'information-decoration.svg' },\n { name: 'warning-decoration', svg: 'warning-decoration.svg' },\n { name: 'notification', svg: 'notification.svg' },\n { name: 'transfer-ownership', svg: 'transfer-ownership.svg' },\n { name: 'update', svg: 'update.svg' },\n { name: 'user-blocked', svg: 'user-blocked.svg' },\n { name: 'add-bank', svg: 'add-bank.svg' },\n { name: 'participants', svg: 'participants.svg' },\n { name: 'download', svg: 'download.svg' },\n { name: 'globe-transfer', svg: 'globe-transfer.svg' },\n { name: 'banknotes', svg: 'banknotes.svg' },\n { name: 'air-balloon', svg: 'air-balloon.svg' },\n { name: 'piggybank', svg: 'piggybank.svg' },\n { name: 'business', svg: 'business.svg' },\n { name: 'navigation', svg: 'navigation.svg' },\n { name: 'phone-device', svg: 'phone-device.svg' },\n { name: 'upload', svg: 'upload.svg' },\n { name: 'document', svg: 'document.svg' },\n { name: 'chat', svg: 'chat.svg' },\n { name: 'feedback', svg: 'feedback.svg' },\n { name: 'keyboard', svg: 'keyboard.svg' },\n { name: 'lock', svg: 'lock.svg' },\n { name: 'see', svg: 'see.svg' },\n { name: 'overview', svg: 'overview.svg' },\n { name: 'overview-outline', svg: 'overview-outline.svg' },\n { name: 'arrow-down-fill', svg: 'arrow-down-fill.svg' },\n { name: 'arrow-up-fill', svg: 'arrow-up-fill.svg' },\n { name: 'calculator', svg: 'calculator.svg' },\n { name: 'grid', svg: 'grid.svg' },\n { name: 'list', svg: 'list.svg' },\n { name: 'adjust', svg: 'adjust.svg' },\n { name: 'bs-logo', svg: 'bs-logo.svg' },\n { name: 'company', svg: 'company.svg' },\n { name: 'budget', svg: 'budget.svg' },\n { name: 'history', svg: 'history.svg' },\n { name: 'dot', svg: 'dot.svg' },\n { name: 'agreement', svg: 'agreement.svg' },\n { name: 'sunshine', svg: 'sunshine.svg' },\n { name: 'star', svg: 'star.svg' },\n { name: 'star-fill', svg: 'star-fill.svg' },\n { name: 'payment', svg: 'payment.svg' },\n { name: 'revert', svg: 'revert.svg' },\n { name: 'fees', svg: 'fees.svg' },\n { name: 'crossedeye', svg: 'crossedeye.svg' },\n { name: 'common', svg: 'common.svg' },\n { name: 'calendar-start', svg: 'calendar-start.svg' },\n { name: 'calendar-end', svg: 'calendar-end.svg' },\n { name: 'expand', svg: 'expand.svg' },\n { name: 'contract', svg: 'contract.svg' },\n { name: 'house', svg: 'house.svg' },\n { name: 'tractor', svg: 'tractor.svg' },\n { name: 'flower', svg: 'flower.svg' },\n { name: 'basket', svg: 'basket.svg' },\n { name: 'drag-drop', svg: 'drag-drop.svg' },\n { name: 'notification-fill', svg: 'notification-fill.svg' },\n { name: 'expense', svg: 'expense.svg' },\n { name: 'income', svg: 'income.svg' },\n { name: 'top-up', svg: 'top-up.svg' },\n { name: 'signed-document', svg: 'signed-document.svg' },\n { name: 'bank', svg: 'bank.svg' },\n { name: 'balloon', svg: 'balloon.svg' },\n { name: 'scale', svg: 'scale.svg' },\n { name: 'ownership', svg: 'ownership.svg' },\n { name: 'maintenance', svg: 'maintenance.svg' },\n { name: 'blocked', svg: 'blocked.svg' },\n { name: 'checklist', svg: 'checklist.svg' },\n { name: 'collection', svg: 'collection.svg' },\n { name: 'pause', svg: 'pause.svg' },\n { name: 'payment-change', svg: 'payment-change.svg' },\n { name: 'pregnancy', svg: 'pregnancy.svg' },\n { name: 'send', svg: 'send.svg' },\n { name: 'subscription', svg: 'subscription.svg' },\n ]),\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport const DEFAULT_BUILT_IN_ICONS_URL = 'assets/kirby/icons/svg/';\n\n/**\n * Token used to configure base URL for path to built-in icons. Default is 'assets/kirby/icons/svg'.\n */\nexport const BUILT_IN_ICONS_URL = new InjectionToken<string>('BUILT_IN_ICONS_URL', {\n factory: () => DEFAULT_BUILT_IN_ICONS_URL,\n});\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n constructor(@Inject(BUILT_IN_ICONS_URL) private builtInIconsUrl: string) {\n this.addDefaultIcons();\n }\n\n addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n if (icon.name && icon.svg) this.addIcon(icon.name, icon.svg);\n });\n }\n\n private addDefaultIcons(): void {\n const baseUrl = this.builtInIconsUrl ?? DEFAULT_BUILT_IN_ICONS_URL;\n const baseUrlWithSlash = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';\n this.addIcons(\n kirbyIconSettings.icons.map((icon) => ({ name: icon.name, svg: baseUrlWithSlash + icon.svg }))\n );\n }\n\n getIcons(): Icon[] {\n return Array.from(this.iconRegistry.keys())\n .map((key) => this.getIcon(key))\n .filter((icon): icon is Icon => !!icon);\n }\n\n getIcon(name: string): Icon | undefined {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IonIcon } from '@ionic/angular';\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n host: { '[class.kirby-icon]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonIcon],\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.iconRegistryService.getIcon('cog');\n private _icon = (this.icon = this.defaultIcon);\n private element: HTMLElement;\n\n @HostBinding('class')\n @Input()\n size!: IconSize | `${IconSize}`;\n\n @Input() name!: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && this.name) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n console.warn(`Icon with name \"${this.name}\" was not found.\nDo you have a typo in 'name' for a built-in icon or\nforgot to configure the custom icon through the 'IconRegistryService'?`);\n }\n\n constructor(\n private iconRegistryService: IconRegistryService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.element = this.elementRef.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.name.currentValue);\n\n // This will always run on first init - and again later if name is changed\n // If name changes a new aria-label might have been added, so we need to check again.\n this.setAriaHiddenIfNoLabel();\n }\n }\n\n private setAriaHiddenIfNoLabel() {\n const existingAriaLabel = this.element.hasAttribute('aria-label');\n if (!existingAriaLabel) {\n this.renderer.setAttribute(this.element, 'aria-hidden', 'true');\n }\n }\n}\n","<ion-icon [src]=\"icon?.svg\"></ion-icon>\n","import { NgModule } from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { IonIcon } from '@ionic/angular';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [ThemeColorDirective, IonIcon, IconComponent],\n exports: [IconComponent, ThemeColorDirective],\n})\nexport class IconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconRegistryService"],"mappings":"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"}
@@ -5,10 +5,10 @@ class ItemGroupComponent {
5
5
  constructor() {
6
6
  this.role = 'group';
7
7
  }
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ItemGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: ItemGroupComponent, isStandalone: true, selector: "kirby-item-group", host: { properties: { "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ItemGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: ItemGroupComponent, isStandalone: true, selector: "kirby-item-group", host: { properties: { "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ItemGroupComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ItemGroupComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'kirby-item-group', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
14
14
  }], propDecorators: { role: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-item-group.mjs","sources":["../../item-group/src/item-group.component.ts","../../item-group/src/item-group.component.html","../../item-group/src/kirbydesign-designsystem-item-group.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAOa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAM4B,IAAA,CAAA,IAAI,GAAW,OAAO;AACjD,IAAA;kIAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,gICP/B,6BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;4FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAK3B,WAAW;uBAAC,WAAW;;;AER1B;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-item-group.mjs","sources":["../../item-group/src/item-group.component.ts","../../item-group/src/item-group.component.html","../../item-group/src/kirbydesign-designsystem-item-group.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAOa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAM4B,IAAA,CAAA,IAAI,GAAW,OAAO;AACjD,IAAA;iIAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,gICP/B,6BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAK3B,WAAW;uBAAC,WAAW;;;AER1B;;AAEG;;;;"}
@@ -3,10 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Input, ViewChild, Component } from '@angular/core';
5
5
  import { IconComponent } from '@kirbydesign/designsystem/icon';
6
- import { IonItemSliding, IonItemOptions, IonItemOption, IonLabel } from '@ionic/angular/standalone';
6
+ import { IonItemSliding, IonItemOptions, IonItemOption, IonLabel } from '@ionic/angular';
7
7
 
8
8
  class ItemSlidingComponent {
9
9
  constructor() {
10
+ this.swipeActions = [];
10
11
  this._side = 'start';
11
12
  }
12
13
  set side(value) {
@@ -21,12 +22,12 @@ class ItemSlidingComponent {
21
22
  swipeAction.onSelected();
22
23
  this.itemSliding.close();
23
24
  }
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ItemSlidingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: ItemSlidingComponent, isStandalone: true, selector: "kirby-item-sliding", inputs: { swipeActions: "swipeActions", side: "side" }, viewQueries: [{ propertyName: "itemSliding", first: true, predicate: IonItemSliding, descendants: true, static: true }], ngImport: i0, template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"] }, { kind: "component", type: IonItemOptions, selector: "ion-item-options", inputs: ["side"] }, { kind: "component", type: IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ItemSlidingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: ItemSlidingComponent, isStandalone: true, selector: "kirby-item-sliding", inputs: { swipeActions: "swipeActions", side: "side" }, viewQueries: [{ propertyName: "itemSliding", first: true, predicate: IonItemSliding, descendants: true, static: true }], ngImport: i0, template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"], outputs: ["ionDrag"] }, { kind: "component", type: IonItemOptions, selector: "ion-item-options", inputs: ["side"], outputs: ["ionSwipe"] }, { kind: "component", type: IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
26
27
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ItemSlidingComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: ItemSlidingComponent, decorators: [{
28
29
  type: Component,
29
- args: [{ imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel], selector: 'kirby-item-sliding', template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"] }]
30
+ args: [{ imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel], selector: 'kirby-item-sliding', template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"] }]
30
31
  }], propDecorators: { itemSliding: [{
31
32
  type: ViewChild,
32
33
  args: [IonItemSliding, { static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-item-sliding.mjs","sources":["../../item-sliding/src/item-sliding.component.ts","../../item-sliding/src/item-sliding.component.html","../../item-sliding/src/kirbydesign-designsystem-item-sliding.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild } from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { IonItemOption, IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular/standalone';\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel],\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @ViewChild(IonItemSliding, { static: true }) itemSliding: IonItemSliding;\n @Input() swipeActions: ItemSwipeAction[];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n\n onSwipeActionClick(swipeAction: ItemSwipeAction): void {\n swipeAction.onSelected();\n this.itemSliding.close();\n }\n}\n","<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAaa,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAUE,IAAA,CAAA,KAAK,GAAoB,OAAO;AAejC,IAAA;IAdC,IAAa,IAAI,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK;IACjD;AAEA,IAAA,IAAI,gBAAgB,GAAA;;;AAGlB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC;IACtC;AAEA,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC7C,WAAW,CAAC,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;kIAlBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd3B,soBAkBA,uzCDVY,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,8JAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKnF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,YACrF,oBAAoB,EAAA,QAAA,EAAA,soBAAA,EAAA,MAAA,EAAA,CAAA,+vCAAA,CAAA,EAAA;;sBAK7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAC1C;;sBAGA;;;AElBH;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-item-sliding.mjs","sources":["../../item-sliding/src/item-sliding.component.ts","../../item-sliding/src/item-sliding.component.html","../../item-sliding/src/kirbydesign-designsystem-item-sliding.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild } from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { IonItemOption, IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular';\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel],\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @ViewChild(IonItemSliding, { static: true }) itemSliding!: IonItemSliding;\n @Input() swipeActions: ItemSwipeAction[] = [];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n\n onSwipeActionClick(swipeAction: ItemSwipeAction): void {\n swipeAction.onSelected();\n this.itemSliding.close();\n }\n}\n","<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAaa,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,YAAY,GAAsB,EAAE;QAE7C,IAAA,CAAA,KAAK,GAAoB,OAAO;AAejC,IAAA;IAdC,IAAa,IAAI,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK;IACjD;AAEA,IAAA,IAAI,gBAAgB,GAAA;;;AAGlB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC;IACtC;AAEA,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC7C,WAAW,CAAC,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;iIAlBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd3B,soBAkBA,0rCDVY,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,8JAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKnF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,YACrF,oBAAoB,EAAA,QAAA,EAAA,soBAAA,EAAA,MAAA,EAAA,CAAA,koCAAA,CAAA,EAAA;;sBAK7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAC1C;;sBAGA;;;AElBH;;AAEG;;;;"}