@kirbydesign/designsystem 11.11.2-dev-5e0acd6 → 11.11.2-dev-f528d7a

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 (152) hide show
  1. package/data-grid/package.json +4 -0
  2. package/data-grid-composable/package.json +4 -0
  3. package/fesm2022/kirbydesign-designsystem-accordion.mjs +11 -11
  4. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  5. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  6. package/fesm2022/kirbydesign-designsystem-avatar.mjs +4 -12
  7. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  8. package/fesm2022/kirbydesign-designsystem-badge.mjs +5 -5
  9. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  10. package/fesm2022/kirbydesign-designsystem-button.mjs +6 -5
  11. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  12. package/fesm2022/kirbydesign-designsystem-calendar.mjs +4 -4
  13. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  14. package/fesm2022/kirbydesign-designsystem-card.mjs +21 -53
  15. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  16. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  17. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +7 -19
  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-grid-composable.mjs +162 -0
  22. package/fesm2022/kirbydesign-designsystem-data-grid-composable.mjs.map +1 -0
  23. package/fesm2022/kirbydesign-designsystem-data-grid.mjs +42 -0
  24. package/fesm2022/kirbydesign-designsystem-data-grid.mjs.map +1 -0
  25. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  26. package/fesm2022/kirbydesign-designsystem-divider.mjs +4 -4
  27. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  28. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  29. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  30. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +8 -21
  31. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  32. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
  33. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  34. package/fesm2022/kirbydesign-designsystem-flag.mjs +5 -5
  35. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  36. package/fesm2022/kirbydesign-designsystem-form-field.mjs +44 -34
  37. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  38. package/fesm2022/kirbydesign-designsystem-gesture.mjs +4 -4
  39. package/fesm2022/kirbydesign-designsystem-gesture.mjs.map +1 -1
  40. package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
  41. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  42. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  43. package/fesm2022/kirbydesign-designsystem-icon.mjs +19 -12
  44. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  46. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +5 -5
  47. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  48. package/fesm2022/kirbydesign-designsystem-item.mjs +13 -13
  49. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  50. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +8 -8
  51. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  52. package/fesm2022/kirbydesign-designsystem-list.mjs +43 -53
  53. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  54. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +8 -8
  55. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  56. package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
  57. package/fesm2022/kirbydesign-designsystem-modal.mjs +51 -56
  58. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-page.mjs +46 -46
  60. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  62. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +27 -64
  63. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-radio.mjs +12 -12
  65. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-range.mjs +6 -6
  67. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  68. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +5 -5
  69. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  70. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +10 -10
  71. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  72. package/fesm2022/kirbydesign-designsystem-section-header.mjs +5 -5
  73. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  74. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs +6 -6
  75. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs.map +1 -1
  76. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  77. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  78. package/fesm2022/kirbydesign-designsystem-shared.mjs +27 -29
  79. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  80. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
  81. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  82. package/fesm2022/kirbydesign-designsystem-slide.mjs +15 -14
  83. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  84. package/fesm2022/kirbydesign-designsystem-spinner.mjs +8 -8
  85. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  86. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +12 -12
  87. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  88. package/fesm2022/kirbydesign-designsystem-tabs.mjs +17 -17
  89. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  90. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +287 -289
  91. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  92. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  93. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  94. package/fesm2022/kirbydesign-designsystem-testing.mjs +5 -5
  95. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  96. package/fesm2022/kirbydesign-designsystem-toast.mjs +7 -7
  97. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  98. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
  99. package/fesm2022/kirbydesign-designsystem-toggle.mjs +6 -6
  100. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  101. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  102. package/fesm2022/kirbydesign-designsystem.mjs +11 -10
  103. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  104. package/icons/svg/person-blocked.svg +3 -0
  105. package/icons/svg/person-check.svg +3 -0
  106. package/icons/svg/person-close.svg +3 -0
  107. package/icons/svg/person-cloud.svg +3 -0
  108. package/icons/svg/person-power.svg +3 -0
  109. package/icons/svg/person-warning.svg +3 -0
  110. package/icons/svg/phone-device-pin.svg +3 -0
  111. package/icons/svg/phone-device.svg +3 -2
  112. package/package.json +14 -4
  113. package/types/kirbydesign-designsystem-avatar.d.ts +1 -5
  114. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
  115. package/types/kirbydesign-designsystem-button.d.ts.map +1 -1
  116. package/types/kirbydesign-designsystem-card.d.ts +2 -12
  117. package/types/kirbydesign-designsystem-card.d.ts.map +1 -1
  118. package/types/kirbydesign-designsystem-checkbox.d.ts +1 -7
  119. package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -1
  120. package/types/kirbydesign-designsystem-data-grid-composable.d.ts +48 -0
  121. package/types/kirbydesign-designsystem-data-grid-composable.d.ts.map +1 -0
  122. package/types/kirbydesign-designsystem-data-grid.d.ts +16 -0
  123. package/types/kirbydesign-designsystem-data-grid.d.ts.map +1 -0
  124. package/types/kirbydesign-designsystem-empty-state.d.ts +1 -8
  125. package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -1
  126. package/types/kirbydesign-designsystem-fab-sheet.d.ts +1 -1
  127. package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -1
  128. package/types/kirbydesign-designsystem-icon.d.ts +1 -1
  129. package/types/kirbydesign-designsystem-icon.d.ts.map +1 -1
  130. package/types/kirbydesign-designsystem-item-sliding.d.ts +1 -1
  131. package/types/kirbydesign-designsystem-item.d.ts +1 -1
  132. package/types/kirbydesign-designsystem-kirby-app.d.ts +1 -1
  133. package/types/kirbydesign-designsystem-list.d.ts +2 -12
  134. package/types/kirbydesign-designsystem-list.d.ts.map +1 -1
  135. package/types/kirbydesign-designsystem-loading-overlay.d.ts +1 -1
  136. package/types/kirbydesign-designsystem-modal.d.ts +2 -3
  137. package/types/kirbydesign-designsystem-modal.d.ts.map +1 -1
  138. package/types/kirbydesign-designsystem-page.d.ts +2 -2
  139. package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
  140. package/types/kirbydesign-designsystem-progress-circle.d.ts +5 -29
  141. package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -1
  142. package/types/kirbydesign-designsystem-radio.d.ts +1 -1
  143. package/types/kirbydesign-designsystem-router-outlet.d.ts +2 -2
  144. package/types/kirbydesign-designsystem-shared.d.ts.map +1 -1
  145. package/types/kirbydesign-designsystem-slide.d.ts +1 -1
  146. package/types/kirbydesign-designsystem-slide.d.ts.map +1 -1
  147. package/types/kirbydesign-designsystem-tabs.d.ts +3 -3
  148. package/types/kirbydesign-designsystem-testing-base.d.ts +9 -10
  149. package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -1
  150. package/types/kirbydesign-designsystem-toast.d.ts +1 -1
  151. package/types/kirbydesign-designsystem.d.ts +1 -0
  152. package/types/kirbydesign-designsystem.d.ts.map +1 -1
@@ -91,11 +91,11 @@ const MOCK_PROVIDERS = [
91
91
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
92
92
  /// <reference path='../../../../../node_modules/@types/jasmine/index.d.ts' />
93
93
  class KirbyTestingModule {
94
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
94
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, decorators: [{
99
99
  type: NgModule,
100
100
  args: [{
101
101
  imports: [KirbyTestingBaseModule],
@@ -97,11 +97,11 @@ const MOCK_PROVIDERS = [
97
97
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
98
98
  /// <reference path='../../../../../node_modules/@types/jest/index.d.ts' />
99
99
  class KirbyTestingModule {
100
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
100
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyTestingModule, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyTestingModule, decorators: [{
105
105
  type: NgModule,
106
106
  args: [{
107
107
  imports: [KirbyTestingBaseModule],
@@ -1,15 +1,15 @@
1
1
  import { ColorHelper } from '@kirbydesign/core';
2
2
  import * as i0 from '@angular/core';
3
3
  import { NgModule } from '@angular/core';
4
- import { provideIonicAngular } from '@ionic/angular/standalone';
4
+ import { provideIonicAngular } from '@ionic/angular';
5
5
  import { componentOnReady } from '@ionic/core';
6
6
 
7
7
  class IonicTestingModule {
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: IonicTestingModule }); }
10
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: IonicTestingModule }); }
10
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: IonicTestingModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: IonicTestingModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  providers: [provideIonicAngular({ mode: 'ios', _testing: true })],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable } from '@angular/core';
3
- import * as i1 from '@ionic/angular/standalone';
3
+ import * as i1 from '@ionic/angular';
4
4
 
5
5
  class ToastHelper {
6
6
  static { this.CSS_CLASS = 'kirby-toast'; }
@@ -30,10 +30,10 @@ class ToastHelper {
30
30
  }
31
31
  return cssClass;
32
32
  }
33
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastHelper }); }
33
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastHelper }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastHelper, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastHelper, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: () => [{ type: i1.ToastController }] });
39
39
 
@@ -48,10 +48,10 @@ class ToastController {
48
48
  }
49
49
  return overlay;
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastController }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastController }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToastController, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToastController, decorators: [{
55
55
  type: Injectable
56
56
  }], ctorParameters: () => [{ type: ToastHelper }] });
57
57
 
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular/standalone';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ?? ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public async showToast(config: ToastConfig, onCloseToast?: () => void): Promise<Overlay> {\n const overlay = await this.toastHelper.showToast(config);\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n return overlay;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,cAAc;YAC3D,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;kIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCEY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;AAExC,IAAA,MAAM,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;QACjD;AACA,QAAA,OAAO,OAAO;IAChB;kIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ?? ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public async showToast(config: ToastConfig, onCloseToast?: () => void): Promise<Overlay> {\n const overlay = await this.toastHelper.showToast(config);\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n return overlay;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,cAAc;YAC3D,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;kIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCEY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;AAExC,IAAA,MAAM,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;QACjD;AACA,QAAA,OAAO,OAAO;IAChB;kIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACPD;;AAEG;;;;"}
@@ -77,8 +77,8 @@ class ToggleButtonComponent {
77
77
  ?.toggleAttribute('disabled', isDisabled);
78
78
  this.cdr.markForCheck();
79
79
  }
80
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: ToggleButtonComponent, isStandalone: true, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick($event)", "focusout": "onFocusOut()" } }, providers: [
80
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", type: ToggleButtonComponent, isStandalone: true, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick($event)", "focusout": "onFocusOut()" } }, providers: [
82
82
  {
83
83
  provide: NG_VALUE_ACCESSOR,
84
84
  useExisting: forwardRef((() => ToggleButtonComponent)),
@@ -86,7 +86,7 @@ class ToggleButtonComponent {
86
86
  },
87
87
  ], ngImport: i0, template: "@if (!checked) {\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n}\n@if (checked) {\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'kirby-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
92
92
  {
@@ -108,11 +108,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
108
108
  }] } });
109
109
 
110
110
  class ToggleButtonModule {
111
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule, ToggleButtonComponent], exports: [ToggleButtonComponent] }); }
113
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
111
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule, ToggleButtonComponent], exports: [ToggleButtonComponent] }); }
113
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleButtonModule, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleButtonModule, decorators: [{
116
116
  type: NgModule,
117
117
  args: [{
118
118
  imports: [CommonModule, ToggleButtonComponent],
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ElementRef, forwardRef, Output, HostBinding, Input, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { IonToggle } from '@ionic/angular/standalone';
4
+ import { IonToggle } from '@ionic/angular';
5
5
  import { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';
6
6
  import * as i1 from '@kirbydesign/designsystem/helpers';
7
7
  import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
@@ -106,17 +106,17 @@ class ToggleComponent {
106
106
  this.disabled = isDisabled;
107
107
  this.cdr.markForCheck();
108
108
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
110
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [
109
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [
111
111
  IonicElementPartHelper,
112
112
  {
113
113
  provide: NG_VALUE_ACCESSOR,
114
114
  useExisting: forwardRef((() => ToggleComponent)),
115
115
  multi: true,
116
116
  },
117
- ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled] ion-toggle{opacity:var(--kirby-opacity-40)}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--track-background: var(--kirby-toggle-color-fill-hover);--handle-background: var(--kirby-toggle-color-content-hover);--track-background-checked: var(--kirby-toggle-color-fill-engaged-hover);--handle-background-checked: var(--kirby-toggle-color-content-hover)}}ion-toggle:active,ion-toggle.interaction-state-active{--track-background: var(--kirby-toggle-color-fill-active);--handle-background: var(--kirby-toggle-color-content-active);--track-background-checked: var(--kirby-toggle-color-fill-engaged-active);--handle-background-checked: var(--kirby-toggle-color-content-active)}ion-toggle{--track-background: var(--kirby-toggle-color-fill);--handle-background: var(--kirby-toggle-color-content);--track-background-checked: var(--kirby-toggle-color-fill-engaged);--handle-background-checked: var(--kirby-toggle-color-content);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
+ ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleComponent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToggleComponent, decorators: [{
120
120
  type: Component,
121
121
  args: [{ imports: [IonToggle], selector: 'kirby-toggle', providers: [
122
122
  IonicElementPartHelper,
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
125
125
  useExisting: forwardRef((() => ToggleComponent)),
126
126
  multi: true,
127
127
  },
128
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled] ion-toggle{opacity:var(--kirby-opacity-40)}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--track-background: var(--kirby-toggle-color-fill-hover);--handle-background: var(--kirby-toggle-color-content-hover);--track-background-checked: var(--kirby-toggle-color-fill-engaged-hover);--handle-background-checked: var(--kirby-toggle-color-content-hover)}}ion-toggle:active,ion-toggle.interaction-state-active{--track-background: var(--kirby-toggle-color-fill-active);--handle-background: var(--kirby-toggle-color-content-active);--track-background-checked: var(--kirby-toggle-color-fill-engaged-active);--handle-background-checked: var(--kirby-toggle-color-content-active)}ion-toggle{--track-background: var(--kirby-toggle-color-fill);--handle-background: var(--kirby-toggle-color-content);--track-background-checked: var(--kirby-toggle-color-fill-engaged);--handle-background-checked: var(--kirby-toggle-color-content);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
128
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
129
129
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.IonicElementPartHelper }], propDecorators: { ionToggleElement: [{
130
130
  type: ViewChild,
131
131
  args: [IonToggle, { read: ElementRef, static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ class WindowRef {
5
5
  get nativeWindow() {
6
6
  return window;
7
7
  }
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: WindowRef, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: WindowRef, decorators: [{
12
12
  type: Injectable,
13
13
  args: [{
14
14
  providedIn: 'root',
@@ -17,6 +17,7 @@ import { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';
17
17
  export * from '@kirbydesign/designsystem/checkbox';
18
18
  import { KIRBY_CONFIG, provideKirby } from '@kirbydesign/designsystem/config';
19
19
  export * from '@kirbydesign/designsystem/config';
20
+ export * from '@kirbydesign/designsystem/data-grid';
20
21
  import { TableSortableComponent } from '@kirbydesign/designsystem/data-table';
21
22
  export * from '@kirbydesign/designsystem/data-table';
22
23
  import { DividerComponent } from '@kirbydesign/designsystem/divider';
@@ -106,10 +107,10 @@ class KeyHandlerDirective {
106
107
  hostElement.click();
107
108
  }
108
109
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KeyHandlerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
110
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.18", type: KeyHandlerDirective, isStandalone: true, selector: "[keyHandler]", host: { listeners: { "keyup": "keyEvent($event)" } }, ngImport: i0 }); }
110
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KeyHandlerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
111
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: KeyHandlerDirective, isStandalone: true, selector: "[keyHandler]", host: { listeners: { "keyup": "keyEvent($event)" } }, ngImport: i0 }); }
111
112
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KeyHandlerDirective, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KeyHandlerDirective, decorators: [{
113
114
  type: Directive,
114
115
  args: [{
115
116
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -132,10 +133,10 @@ class ModalRouterLinkDirective {
132
133
  this.modalNavigationService.navigateToModal(this.path, typeof this.queryParams !== 'string' ? this.queryParams : null);
133
134
  return false;
134
135
  }
135
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ModalRouterLinkDirective, deps: [{ token: i1.ModalNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
136
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.18", type: ModalRouterLinkDirective, isStandalone: true, selector: "[kirbyModalRouterLink]", inputs: { path: ["kirbyModalRouterLink", "path"], queryParams: ["kirbyModalQueryParams", "queryParams"] }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
136
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ModalRouterLinkDirective, deps: [{ token: i1.ModalNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
137
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: ModalRouterLinkDirective, isStandalone: true, selector: "[kirbyModalRouterLink]", inputs: { path: ["kirbyModalRouterLink", "path"], queryParams: ["kirbyModalQueryParams", "queryParams"] }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
137
138
  }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ModalRouterLinkDirective, decorators: [{
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ModalRouterLinkDirective, decorators: [{
139
140
  type: Directive,
140
141
  args: [{ selector: `[kirbyModalRouterLink]` }]
141
142
  }], ctorParameters: () => [{ type: i1.ModalNavigationService }, { type: i0.ElementRef }], propDecorators: { path: [{
@@ -216,8 +217,8 @@ class KirbyModule {
216
217
  constructor(modalController, config) {
217
218
  modalController.initialize(config && config.moduleRootRoutePath);
218
219
  }
219
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyModule, deps: [{ token: i1.ModalController }, { token: KIRBY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
220
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.18", ngImport: i0, type: KirbyModule, imports: [CommonModule, RouterModule, KirbyAppModule,
220
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyModule, deps: [{ token: i1.ModalController }, { token: KIRBY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
221
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: KirbyModule, imports: [CommonModule, RouterModule, KirbyAppModule,
221
222
  RouterOutletModule,
222
223
  PageModule,
223
224
  HeaderModule,
@@ -322,7 +323,7 @@ class KirbyModule {
322
323
  BadgeComponent,
323
324
  ModalComponent,
324
325
  TableSortableComponent, ModalRouterLinkDirective] }); }
325
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyModule, providers: [provideKirby()], imports: [CommonModule, RouterModule, KirbyAppModule,
326
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyModule, providers: [provideKirby()], imports: [CommonModule, RouterModule, KirbyAppModule,
326
327
  RouterOutletModule,
327
328
  PageModule,
328
329
  HeaderModule,
@@ -392,7 +393,7 @@ class KirbyModule {
392
393
  AccordionModule,
393
394
  HeaderModule] }); }
394
395
  }
395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: KirbyModule, decorators: [{
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: KirbyModule, decorators: [{
396
397
  type: NgModule,
397
398
  args: [{
398
399
  imports: [CommonModule, RouterModule, ...importedModules, imports],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../src/lib/directives/key-handler/key-handler.directive.ts","../../src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../src/lib/kirby.module.ts","../../src/kirbydesign-designsystem.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({ selector: `[kirbyModalRouterLink]` })\nexport class ModalRouterLinkDirective implements OnInit {\n constructor(\n private modalNavigationService: ModalNavigationService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef.nativeElement.setAttribute('modal-router-link', '');\n }\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KIRBY_CONFIG, KirbyConfig } from '@kirbydesign/designsystem/config';\nimport { ComponentLoaderDirective, ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { FlagComponent } from '@kirbydesign/designsystem/flag';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { ToggleComponent } from '@kirbydesign/designsystem/toggle';\nimport { SectionHeaderComponent } from '@kirbydesign/designsystem/section-header';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { SlideModule } from '@kirbydesign/designsystem/slide';\nimport { ToggleButtonModule } from '@kirbydesign/designsystem/toggle-button';\nimport { TabsModule } from '@kirbydesign/designsystem/tabs';\nimport { SlideButtonComponent } from '@kirbydesign/designsystem/slide-button';\nimport { RangeComponent } from '@kirbydesign/designsystem/range';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { LoadingOverlayComponent } from '@kirbydesign/designsystem/loading-overlay';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';\nimport { AccordionModule } from '@kirbydesign/designsystem/accordion';\nimport { ItemSlidingComponent } from '@kirbydesign/designsystem/item-sliding';\nimport { ListModule } from '@kirbydesign/designsystem/list';\nimport { RadioModule } from '@kirbydesign/designsystem/radio';\nimport {\n AffixDirective,\n FormFieldModule,\n InputComponent,\n TextareaComponent,\n} from '@kirbydesign/designsystem/form-field';\nimport { AvatarComponent } from '@kirbydesign/designsystem/avatar';\nimport {\n ProgressCircleComponent,\n ProgressCircleRingComponent,\n} from '@kirbydesign/designsystem/progress-circle';\nimport { RouterOutletModule } from '@kirbydesign/designsystem/router-outlet';\n\nimport { ItemGroupComponent } from '@kirbydesign/designsystem/item-group';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CalendarComponent } from '@kirbydesign/designsystem/calendar';\nimport {\n ActionSheetComponent,\n AlertComponent,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { ModalComponent } from '@kirbydesign/designsystem/modal';\nimport { PageModule } from '@kirbydesign/designsystem/page';\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport { EmptyStateModule } from '@kirbydesign/designsystem/empty-state';\nimport { DropdownModule } from '@kirbydesign/designsystem/dropdown';\nimport { KirbyAppModule } from '@kirbydesign/designsystem/kirby-app';\nimport { ChartsModule } from '@kirbydesign/designsystem/chart';\nimport { FabSheetComponent } from '@kirbydesign/designsystem/fab-sheet';\nimport { TableSortableComponent } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ActionGroupComponent } from '@kirbydesign/designsystem/action-group';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\nimport { TabNavigationModule } from '@kirbydesign/designsystem/tab-navigation';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { SegmentedControlComponent } from '@kirbydesign/designsystem/segmented-control';\n\nimport { provideKirby } from '@kirbydesign/designsystem/config';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst reexportedImports = [ModalRouterLinkDirective];\n\nconst imports = [...reexportedImports, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DividerComponent,\n ThemeColorDirective,\n SegmentedControlComponent,\n AlertComponent,\n PopoverComponent,\n ProgressCircleRingComponent,\n ModalWrapperComponent,\n SectionHeaderComponent,\n RangeComponent,\n ItemSlidingComponent,\n ProgressCircleComponent,\n ReorderListComponent,\n LoadingOverlayComponent,\n FabSheetComponent,\n ToggleComponent,\n SlideButtonComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\n ModalComponent,\n TableSortableComponent,\n];\nconst exportedModules = [\n KirbyAppModule,\n RouterOutletModule,\n PageModule,\n HeaderModule,\n TabNavigationModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartsModule,\n SpinnerModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...reexportedImports];\n\nconst importedModules = [...exportedModules];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...importedModules, imports],\n providers: [provideKirby()],\n exports: [allExports],\n})\nexport class KirbyModule {\n constructor(\n modalController: ModalController,\n @Optional() @Inject(KIRBY_CONFIG) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../src/lib/directives/key-handler/key-handler.directive.ts","../../src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../src/lib/kirby.module.ts","../../src/kirbydesign-designsystem.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({ selector: `[kirbyModalRouterLink]` })\nexport class ModalRouterLinkDirective implements OnInit {\n constructor(\n private modalNavigationService: ModalNavigationService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef.nativeElement.setAttribute('modal-router-link', '');\n }\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KIRBY_CONFIG, KirbyConfig } from '@kirbydesign/designsystem/config';\nimport { ComponentLoaderDirective, ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { FlagComponent } from '@kirbydesign/designsystem/flag';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { ToggleComponent } from '@kirbydesign/designsystem/toggle';\nimport { SectionHeaderComponent } from '@kirbydesign/designsystem/section-header';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { SlideModule } from '@kirbydesign/designsystem/slide';\nimport { ToggleButtonModule } from '@kirbydesign/designsystem/toggle-button';\nimport { TabsModule } from '@kirbydesign/designsystem/tabs';\nimport { SlideButtonComponent } from '@kirbydesign/designsystem/slide-button';\nimport { RangeComponent } from '@kirbydesign/designsystem/range';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { LoadingOverlayComponent } from '@kirbydesign/designsystem/loading-overlay';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';\nimport { AccordionModule } from '@kirbydesign/designsystem/accordion';\nimport { ItemSlidingComponent } from '@kirbydesign/designsystem/item-sliding';\nimport { ListModule } from '@kirbydesign/designsystem/list';\nimport { RadioModule } from '@kirbydesign/designsystem/radio';\nimport {\n AffixDirective,\n FormFieldModule,\n InputComponent,\n TextareaComponent,\n} from '@kirbydesign/designsystem/form-field';\nimport { AvatarComponent } from '@kirbydesign/designsystem/avatar';\nimport {\n ProgressCircleComponent,\n ProgressCircleRingComponent,\n} from '@kirbydesign/designsystem/progress-circle';\nimport { RouterOutletModule } from '@kirbydesign/designsystem/router-outlet';\n\nimport { ItemGroupComponent } from '@kirbydesign/designsystem/item-group';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CalendarComponent } from '@kirbydesign/designsystem/calendar';\nimport {\n ActionSheetComponent,\n AlertComponent,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { ModalComponent } from '@kirbydesign/designsystem/modal';\nimport { PageModule } from '@kirbydesign/designsystem/page';\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport { EmptyStateModule } from '@kirbydesign/designsystem/empty-state';\nimport { DropdownModule } from '@kirbydesign/designsystem/dropdown';\nimport { KirbyAppModule } from '@kirbydesign/designsystem/kirby-app';\nimport { ChartsModule } from '@kirbydesign/designsystem/chart';\nimport { FabSheetComponent } from '@kirbydesign/designsystem/fab-sheet';\nimport { TableSortableComponent } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ActionGroupComponent } from '@kirbydesign/designsystem/action-group';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\nimport { TabNavigationModule } from '@kirbydesign/designsystem/tab-navigation';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { SegmentedControlComponent } from '@kirbydesign/designsystem/segmented-control';\n\nimport { provideKirby } from '@kirbydesign/designsystem/config';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst reexportedImports = [ModalRouterLinkDirective];\n\nconst imports = [...reexportedImports, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DividerComponent,\n ThemeColorDirective,\n SegmentedControlComponent,\n AlertComponent,\n PopoverComponent,\n ProgressCircleRingComponent,\n ModalWrapperComponent,\n SectionHeaderComponent,\n RangeComponent,\n ItemSlidingComponent,\n ProgressCircleComponent,\n ReorderListComponent,\n LoadingOverlayComponent,\n FabSheetComponent,\n ToggleComponent,\n SlideButtonComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\n ModalComponent,\n TableSortableComponent,\n];\nconst exportedModules = [\n KirbyAppModule,\n RouterOutletModule,\n PageModule,\n HeaderModule,\n TabNavigationModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartsModule,\n SpinnerModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...reexportedImports];\n\nconst importedModules = [...exportedModules];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...importedModules, imports],\n providers: [provideKirby()],\n exports: [allExports],\n})\nexport class KirbyModule {\n constructor(\n modalController: ModalController,\n @Optional() @Inject(KIRBY_CONFIG) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.21 14.2998C19.535 14.2998 21.4198 16.1847 21.4199 18.5098C21.4199 20.8349 19.5351 22.7197 17.21 22.7197C14.8848 22.7197 13 20.8349 13 18.5098C13.0001 16.1847 14.8849 14.2998 17.21 14.2998ZM15.8057 20.917C16.2185 21.1584 16.6972 21.2998 17.21 21.2998C18.7508 21.2998 20 20.0506 20 18.5098C20 17.9971 19.8585 17.5183 19.6172 17.1055L15.8057 20.917ZM11.8877 4C12.5921 4.00006 13.2571 4.16524 13.8447 4.45605C13.9377 4.50208 14.0292 4.55033 14.1182 4.60254C14.5327 4.84591 14.9015 5.155 15.209 5.51465C15.2967 5.61717 15.3797 5.72358 15.457 5.83398C15.5733 6.00002 15.6777 6.17456 15.7686 6.35645C16.041 6.90147 16.1934 7.5125 16.1934 8.15723C16.1933 9.44009 15.5749 10.574 14.626 11.3379C15.1316 11.5212 15.4496 11.676 15.9004 11.9502C16.3364 12.2024 16.1704 12.807 16 13C15.8369 13.1848 15.5179 13.4073 15.0635 13.1514C14.1286 12.6248 13.0437 12.3207 11.8867 12.3145C8.37385 12.3339 5.52344 15.1001 5.52344 18.4951C5.52356 18.746 5.73422 18.9502 5.99414 18.9502H11C11.2026 18.9502 11.75 19 11.75 19.6855C11.75 20.3711 11.1404 20.4209 11 20.4209H5.99414C4.89422 20.4209 4.00012 19.557 4 18.4951C4 15.2201 6.14544 12.4269 9.14844 11.3379C8.19952 10.574 7.58116 9.44009 7.58105 8.15723C7.58105 6.6524 8.4132 5.3323 9.65625 4.60254C9.71558 4.56771 9.77576 4.53405 9.83691 4.50195C10.4468 4.18189 11.1462 4.00006 11.8877 4ZM17.21 15.7197C15.6691 15.7197 14.42 16.969 14.4199 18.5098C14.4199 19.022 14.5608 19.5005 14.8018 19.9131L18.6133 16.1016C18.2007 15.8606 17.7222 15.7197 17.21 15.7197ZM11.6035 5.4834C11.3232 5.51096 11.0553 5.57956 10.8057 5.68164C9.80718 6.09009 9.10449 7.04562 9.10449 8.15723C9.10463 9.26795 9.80727 10.2234 10.8057 10.6318C11.1382 10.7678 11.5034 10.8426 11.8867 10.8428C13.4216 10.8428 14.6697 9.63808 14.6699 8.15723C14.6699 7.50911 14.4312 6.91387 14.0342 6.44922C13.8639 6.24996 13.6645 6.07479 13.4424 5.92969C12.998 5.63943 12.4626 5.46973 11.8867 5.46973C11.7911 5.46974 11.6966 5.47425 11.6035 5.4834Z" fill="currentColor"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.3438 14.6367C19.5445 14.2746 20.0011 14.1433 20.3633 14.3438C20.7254 14.5445 20.8567 15.0011 20.6562 15.3633L17.6533 20.7773C17.2478 21.5085 16.2532 21.643 15.668 21.0459L13.4639 18.7979C13.1742 18.5021 13.1792 18.0272 13.4746 17.7373C13.7704 17.4474 14.2462 17.4522 14.5361 17.748L16.5039 19.7559L19.3438 14.6367ZM11.8877 4C12.5921 4.00006 13.2571 4.16524 13.8447 4.45605C13.9377 4.50208 14.0292 4.55033 14.1182 4.60254C14.5327 4.84591 14.9015 5.155 15.209 5.51465C15.2967 5.61717 15.3797 5.72358 15.457 5.83398C15.5733 6.00002 15.6777 6.17456 15.7686 6.35645C16.041 6.90147 16.1934 7.5125 16.1934 8.15723C16.1933 9.44009 15.5749 10.574 14.626 11.3379C15.1316 11.5212 15.4496 11.676 15.9004 11.9502C16.3364 12.2024 16.1704 12.807 16 13C15.8369 13.1848 15.5179 13.4073 15.0635 13.1514C14.1286 12.6248 13.0437 12.3207 11.8867 12.3145C8.37385 12.3339 5.52344 15.1001 5.52344 18.4951C5.52356 18.746 5.73422 18.9502 5.99414 18.9502H11C11.2026 18.9502 11.75 19 11.75 19.6855C11.75 20.3711 11.1404 20.4209 11 20.4209H5.99414C4.89422 20.4209 4.00012 19.557 4 18.4951C4 15.2201 6.14544 12.4269 9.14844 11.3379C8.19952 10.574 7.58116 9.44009 7.58105 8.15723C7.58105 6.6524 8.4132 5.3323 9.65625 4.60254C9.71558 4.56771 9.77576 4.53405 9.83691 4.50195C10.4468 4.18189 11.1462 4.00006 11.8877 4ZM11.6035 5.4834C11.3232 5.51096 11.0553 5.57956 10.8057 5.68164C9.80718 6.09009 9.10449 7.04562 9.10449 8.15723C9.10463 9.26795 9.80727 10.2234 10.8057 10.6318C11.1382 10.7678 11.5034 10.8426 11.8867 10.8428C13.4216 10.8428 14.6697 9.63808 14.6699 8.15723C14.6699 7.50911 14.4312 6.91387 14.0342 6.44922C13.8639 6.24996 13.6645 6.07479 13.4424 5.92969C12.998 5.63943 12.4626 5.46973 11.8867 5.46973C11.7911 5.46974 11.6966 5.47425 11.6035 5.4834Z" fill="currentColor"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M18.4697 15.4697C18.7626 15.1768 19.2374 15.1768 19.5303 15.4697C19.8232 15.7626 19.8232 16.2374 19.5303 16.5303L17.5605 18.5L19.5303 20.4697C19.8232 20.7626 19.8232 21.2374 19.5303 21.5303C19.2374 21.8232 18.7626 21.8232 18.4697 21.5303L16.5 19.5605L14.5303 21.5303C14.2374 21.8232 13.7626 21.8232 13.4697 21.5303C13.1768 21.2374 13.1768 20.7626 13.4697 20.4697L15.4395 18.5L13.4697 16.5303C13.1768 16.2374 13.1768 15.7626 13.4697 15.4697C13.7626 15.1768 14.2374 15.1768 14.5303 15.4697L16.5 17.4395L18.4697 15.4697ZM11.8877 4C12.5921 4.00006 13.2571 4.16524 13.8447 4.45605C13.9377 4.50208 14.0292 4.55033 14.1182 4.60254C14.5327 4.84591 14.9015 5.155 15.209 5.51465C15.2967 5.61717 15.3797 5.72358 15.457 5.83398C15.5733 6.00002 15.6777 6.17456 15.7686 6.35645C16.041 6.90147 16.1934 7.5125 16.1934 8.15723C16.1933 9.44009 15.5749 10.574 14.626 11.3379C15.1316 11.5212 15.4496 11.676 15.9004 11.9502C16.3364 12.2024 16.1704 12.807 16 13C15.8369 13.1848 15.5179 13.4073 15.0635 13.1514C14.1286 12.6248 13.0437 12.3207 11.8867 12.3145C8.37385 12.3339 5.52344 15.1001 5.52344 18.4951C5.52356 18.746 5.73422 18.9502 5.99414 18.9502H11C11.2026 18.9502 11.75 19 11.75 19.6855C11.75 20.3711 11.1404 20.4209 11 20.4209H5.99414C4.89422 20.4209 4.00012 19.557 4 18.4951C4 15.2201 6.14544 12.4269 9.14844 11.3379C8.19952 10.574 7.58116 9.44009 7.58105 8.15723C7.58105 6.6524 8.4132 5.3323 9.65625 4.60254C9.71558 4.56771 9.77576 4.53405 9.83691 4.50195C10.4468 4.18189 11.1462 4.00006 11.8877 4ZM11.6035 5.4834C11.3232 5.51096 11.0553 5.57956 10.8057 5.68164C9.80718 6.09009 9.10449 7.04562 9.10449 8.15723C9.10463 9.26795 9.80727 10.2234 10.8057 10.6318C11.1382 10.7678 11.5034 10.8426 11.8867 10.8428C13.4216 10.8428 14.6697 9.63808 14.6699 8.15723C14.6699 7.50911 14.4312 6.91387 14.0342 6.44922C13.8639 6.24996 13.6645 6.07479 13.4424 5.92969C12.998 5.63943 12.4626 5.46973 11.8867 5.46973C11.7911 5.46974 11.6966 5.47425 11.6035 5.4834Z" fill="currentColor"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.2783 14.084C18.4069 14.1416 19.3642 14.81 19.8496 15.7578C21.4375 15.8868 22.6696 17.2239 22.6699 18.833L22.6562 19.1279C22.5187 20.5826 21.3738 21.7546 19.9111 21.9043L19.876 21.9072L19.8408 21.9092L19.6348 21.9199H12.9512L12.9131 21.918L12.7861 21.9111L12.752 21.9092L12.7178 21.9053C11.3667 21.7667 10.3301 20.6233 10.3301 19.25C10.3301 18.0873 11.0754 17.0886 12.124 16.7266C12.4784 15.6777 13.4638 14.9131 14.6416 14.9131C14.7619 14.9131 14.8802 14.9248 14.9961 14.9404C15.5453 14.4104 16.2904 14.0803 17.1191 14.0801L17.2783 14.084ZM17.1191 15.5C16.3626 15.5002 15.7259 16.0137 15.5303 16.7139C15.3051 16.4797 14.9905 16.3331 14.6416 16.333C13.9574 16.333 13.4025 16.8928 13.4023 17.583C13.4023 17.7769 13.4473 17.9602 13.5254 18.124C13.363 18.0452 13.1815 18 12.9893 18C12.3049 18 11.75 18.5596 11.75 19.25C11.75 19.8972 12.2375 20.4291 12.8623 20.4932L12.9893 20.5H19.5977L19.7666 20.4912C20.5998 20.4059 21.25 19.696 21.25 18.833C21.2498 17.9127 20.51 17.167 19.5977 17.167C19.2887 17.167 19.0002 17.2534 18.7529 17.4023C18.7637 17.3254 18.7715 17.247 18.7715 17.167C18.7715 16.2465 18.0316 15.5 17.1191 15.5ZM11.8877 4C12.5921 4.00006 13.2571 4.16524 13.8447 4.45605C13.9377 4.50208 14.0292 4.55033 14.1182 4.60254C14.5327 4.84591 14.9015 5.155 15.209 5.51465C15.2967 5.61717 15.3797 5.72358 15.457 5.83398C15.5733 6.00002 15.6777 6.17456 15.7686 6.35645C16.041 6.90147 16.1934 7.5125 16.1934 8.15723C16.1933 9.44009 15.5749 10.574 14.626 11.3379C15.1316 11.5212 15.4496 11.676 15.9004 11.9502C16.3364 12.2024 16.1704 12.807 16 13C15.8369 13.1848 15.5179 13.4073 15.0635 13.1514C14.1286 12.6248 13.0437 12.3207 11.8867 12.3145C8.37385 12.3339 5.52344 15.1001 5.52344 18.4951C5.52356 18.746 5.73422 18.9502 5.99414 18.9502H8.5C8.70257 18.9502 9.25 19 9.25 19.6855C9.25 20.3711 8.64036 20.4209 8.5 20.4209H5.99414C4.89422 20.4209 4.00012 19.557 4 18.4951C4 15.2201 6.14544 12.4269 9.14844 11.3379C8.19952 10.574 7.58116 9.44009 7.58105 8.15723C7.58105 6.6524 8.4132 5.3323 9.65625 4.60254C9.71558 4.56771 9.77576 4.53405 9.83691 4.50195C10.4468 4.18189 11.1462 4.00006 11.8877 4ZM11.6035 5.4834C11.3232 5.51096 11.0553 5.57956 10.8057 5.68164C9.80718 6.09009 9.10449 7.04562 9.10449 8.15723C9.10463 9.26795 9.80727 10.2234 10.8057 10.6318C11.1382 10.7678 11.5034 10.8426 11.8867 10.8428C13.4216 10.8428 14.6697 9.63808 14.6699 8.15723C14.6699 7.50911 14.4312 6.91387 14.0342 6.44922C13.8639 6.24996 13.6645 6.07479 13.4424 5.92969C12.998 5.63943 12.4626 5.46973 11.8867 5.46973C11.7911 5.46974 11.6966 5.47425 11.6035 5.4834Z" fill="currentColor"/>
3
+ </svg>