@kirbydesign/designsystem 9.0.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/badge/badge.component.d.ts +2 -1
  2. package/card/card-header/card-header.component.d.ts +1 -0
  3. package/checkbox/checkbox.component.d.ts +35 -1
  4. package/esm2022/avatar/avatar.component.mjs +3 -4
  5. package/esm2022/badge/badge.component.mjs +6 -5
  6. package/esm2022/card/card-header/card-header.component.mjs +9 -6
  7. package/esm2022/checkbox/checkbox.component.mjs +66 -4
  8. package/esm2022/dropdown/dropdown.component.mjs +2 -2
  9. package/esm2022/fab-sheet/fab-sheet.component.mjs +3 -3
  10. package/esm2022/flag/flag.component.mjs +3 -3
  11. package/esm2022/form-field/directives/date/date-input.directive.mjs +9 -3
  12. package/esm2022/form-field/form-field.component.mjs +18 -12
  13. package/esm2022/icon/kirby-icon-settings.mjs +5 -1
  14. package/esm2022/item/item.component.mjs +2 -2
  15. package/esm2022/item/label/label.component.mjs +2 -2
  16. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +3 -3
  17. package/esm2022/list/list-item/list-item.component.mjs +2 -2
  18. package/esm2022/list/list.component.mjs +2 -2
  19. package/esm2022/menu/menu.component.mjs +3 -3
  20. package/esm2022/modal/modal/action-sheet/action-sheet.component.mjs +3 -3
  21. package/esm2022/modal/modal/footer/modal-footer.component.mjs +11 -6
  22. package/esm2022/modal/modal/services/modal.helper.mjs +10 -1
  23. package/esm2022/modal/modal-wrapper/modal-wrapper.component.mjs +22 -13
  24. package/esm2022/modal/v2/footer/footer.component.mjs +2 -2
  25. package/esm2022/progress-circle/progress-circle-ring.component.mjs +3 -3
  26. package/esm2022/radio/radio.component.mjs +2 -2
  27. package/esm2022/shared/floating/floating.directive.mjs +1 -1
  28. package/esm2022/slide/slides.component.mjs +2 -2
  29. package/esm2022/tab-navigation/tab-navigation/tab-navigation.component.mjs +2 -2
  30. package/esm2022/tabs/tab-button/tab-button.component.mjs +2 -2
  31. package/esm2022/toggle/toggle.component.mjs +74 -8
  32. package/fesm2022/kirbydesign-designsystem-avatar.mjs +2 -3
  33. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  34. package/fesm2022/kirbydesign-designsystem-badge.mjs +5 -4
  35. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  36. package/fesm2022/kirbydesign-designsystem-card.mjs +8 -5
  37. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  38. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +65 -3
  39. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  40. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +2 -2
  41. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +2 -2
  42. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-flag.mjs +2 -2
  44. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-form-field.mjs +25 -13
  46. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-icon.mjs +4 -0
  48. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-item.mjs +4 -4
  50. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  51. package/fesm2022/kirbydesign-designsystem-list.mjs +4 -4
  52. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  53. package/fesm2022/kirbydesign-designsystem-menu.mjs +2 -2
  54. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  55. package/fesm2022/kirbydesign-designsystem-modal-v2.mjs +2 -2
  56. package/fesm2022/kirbydesign-designsystem-modal-v2.mjs.map +1 -1
  57. package/fesm2022/kirbydesign-designsystem-modal.mjs +42 -18
  58. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +2 -2
  60. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-radio.mjs +2 -2
  62. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  63. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-slide.mjs +2 -2
  65. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +2 -2
  67. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  68. package/fesm2022/kirbydesign-designsystem-tabs.mjs +2 -2
  69. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  70. package/fesm2022/kirbydesign-designsystem-toggle.mjs +73 -7
  71. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  72. package/fesm2022/kirbydesign-designsystem.mjs +2 -2
  73. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  74. package/icons/svg/agreement.svg +2 -0
  75. package/icons/svg/budget.svg +2 -0
  76. package/icons/svg/dot.svg +3 -0
  77. package/icons/svg/history.svg +2 -0
  78. package/modal/modal/footer/modal-footer.component.d.ts +3 -1
  79. package/modal/modal-wrapper/modal-wrapper.component.d.ts +2 -2
  80. package/package.json +4 -4
  81. package/shared/floating/floating.directive.d.ts +1 -2
  82. package/toggle/toggle.component.d.ts +38 -2
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-tab-navigation.mjs","sources":["../../../../libs/designsystem/tab-navigation/src/tab-navigation-item/tab-navigation-item.component.ts","../../../../libs/designsystem/tab-navigation/src/tab-navigation-item/tab-navigation-item.component.html","../../../../libs/designsystem/tab-navigation/src/tab-navigation/tab-navigation.component.ts","../../../../libs/designsystem/tab-navigation/src/tab-navigation/tab-navigation.component.html","../../../../libs/designsystem/tab-navigation/src/tab-navigation.module.ts","../../../../libs/designsystem/tab-navigation/src/kirbydesign-designsystem-tab-navigation.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-tab-navigation-item',\n templateUrl: './tab-navigation-item.component.html',\n styleUrls: ['./tab-navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabNavigationItemComponent {\n @Input()\n label = '';\n\n constructor() {\n /* */\n }\n}\n","<button role=\"tab\" #tabButton>\n <span attr.data-text=\"{{ label }}\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { KeyboardHandlerService } from '@kirbydesign/designsystem/dropdown';\nimport { TabNavigationItemComponent } from '../tab-navigation-item/tab-navigation-item.component';\n\n@Component({\n selector: 'kirby-tab-navigation',\n templateUrl: './tab-navigation.component.html',\n styleUrls: ['./tab-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabNavigationComponent implements AfterViewInit {\n public readonly DEBOUNCE_TIME_MS = 250;\n\n @ViewChild('tabBar')\n private tabBar: ElementRef<HTMLElement>;\n\n @ContentChildren(TabNavigationItemComponent, { read: ElementRef })\n private tabs: QueryList<ElementRef<HTMLElement>>;\n\n private tabBarElement: HTMLElement;\n private tabElements = new Array<HTMLElement>();\n private tabButtonElements = new Array<HTMLElement>();\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(index: number) {\n if (index !== this._selectedIndex && index !== -1) {\n this._selectedIndex = index;\n\n this.focusIndex = index;\n this.selectTab(this.selectedIndex);\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n private _selectedIndex = -1;\n\n get focusIndex(): number {\n return this._focusIndex;\n }\n\n set focusIndex(index: number) {\n if (index !== this._focusIndex) {\n this._focusIndex = index;\n\n this.scrollToTab(this.focusIndex);\n this.focusTab(this.focusIndex);\n }\n }\n private _focusIndex = -1;\n\n @Output()\n selectedIndexChange = new EventEmitter<number>();\n\n constructor(private window: WindowRef, private keyboardHandlerService: KeyboardHandlerService) {\n /**/\n }\n\n ngAfterViewInit(): void {\n this.tabBarElement = this.tabBar.nativeElement;\n this.tabs.forEach((tab) => this.tabElements.push(tab.nativeElement));\n this.tabElements.forEach((tabElement) =>\n this.tabButtonElements.push(tabElement.querySelector('[role=\"tab\"]'))\n );\n\n setTimeout(() => {\n this.selectTab(this.selectedIndex);\n this.scrollToTab(this.focusIndex);\n this.focusTab(this.focusIndex);\n }, this.DEBOUNCE_TIME_MS);\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onItemSelect(event: PointerEvent) {\n if (event.target !== this.tabBarElement) {\n const targetTabNavItem = (event.target as HTMLElement).closest('button');\n this.selectedIndex = this.tabButtonElements.indexOf(targetTabNavItem);\n }\n }\n\n @HostListener('keydown.home', ['$event'])\n @HostListener('keydown.end', ['$event'])\n @HostListener('keydown.arrowright', ['$event'])\n @HostListener('keydown.arrowleft', ['$event'])\n onKeydown(event: KeyboardEvent) {\n event.preventDefault();\n this.focusIndex = this.keyboardHandlerService.handle(\n event,\n this.focusIndex,\n this.tabElements.length - 1,\n true\n );\n }\n\n private selectTab(tabIndex: number): void {\n this.tabButtonElements.forEach((tabButtonElement, index) => {\n tabButtonElement.setAttribute('aria-selected', index === tabIndex ? 'true' : 'false');\n });\n }\n\n private focusTab(focusIndex: number): void {\n this.tabButtonElements.forEach((tabButtonElement, index) => {\n tabButtonElement.setAttribute('tabindex', index === focusIndex ? '0' : '-1');\n });\n\n if (0 <= focusIndex && focusIndex < this.tabButtonElements.length) {\n this.tabButtonElements[focusIndex].focus();\n }\n }\n\n private scrollToTab(tabIndex: number): void {\n if (0 <= tabIndex && tabIndex < this.tabElements.length) {\n const selectedTabElement = this.tabElements[tabIndex];\n const selectedTabElementWidth = selectedTabElement.getBoundingClientRect().width;\n const selectedTabElementOffsetLeft = selectedTabElement.offsetLeft;\n const tabBarElementWidth = this.tabBarElement.getBoundingClientRect().width;\n\n this.window.nativeWindow.requestAnimationFrame(() => {\n this.tabBarElement?.scrollTo({\n behavior: 'smooth',\n left: Math.max(\n 0,\n selectedTabElementOffsetLeft - (tabBarElementWidth - selectedTabElementWidth) / 2\n ),\n });\n });\n }\n }\n}\n","<div role=\"tablist\" #tabBar>\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabNavigationComponent } from './tab-navigation/tab-navigation.component';\nimport { TabNavigationItemComponent } from './tab-navigation-item/tab-navigation-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TabNavigationComponent, TabNavigationItemComponent],\n exports: [TabNavigationComponent, TabNavigationItemComponent],\n})\nexport class TabNavigationModule {}\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-tab-navigation.mjs","sources":["../../../../libs/designsystem/tab-navigation/src/tab-navigation-item/tab-navigation-item.component.ts","../../../../libs/designsystem/tab-navigation/src/tab-navigation-item/tab-navigation-item.component.html","../../../../libs/designsystem/tab-navigation/src/tab-navigation/tab-navigation.component.ts","../../../../libs/designsystem/tab-navigation/src/tab-navigation/tab-navigation.component.html","../../../../libs/designsystem/tab-navigation/src/tab-navigation.module.ts","../../../../libs/designsystem/tab-navigation/src/kirbydesign-designsystem-tab-navigation.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-tab-navigation-item',\n templateUrl: './tab-navigation-item.component.html',\n styleUrls: ['./tab-navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabNavigationItemComponent {\n @Input()\n label = '';\n\n constructor() {\n /* */\n }\n}\n","<button role=\"tab\" #tabButton>\n <span attr.data-text=\"{{ label }}\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { KeyboardHandlerService } from '@kirbydesign/designsystem/dropdown';\nimport { TabNavigationItemComponent } from '../tab-navigation-item/tab-navigation-item.component';\n\n@Component({\n selector: 'kirby-tab-navigation',\n templateUrl: './tab-navigation.component.html',\n styleUrls: ['./tab-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabNavigationComponent implements AfterViewInit {\n public readonly DEBOUNCE_TIME_MS = 250;\n\n @ViewChild('tabBar')\n private tabBar: ElementRef<HTMLElement>;\n\n @ContentChildren(TabNavigationItemComponent, { read: ElementRef })\n private tabs: QueryList<ElementRef<HTMLElement>>;\n\n private tabBarElement: HTMLElement;\n private tabElements = new Array<HTMLElement>();\n private tabButtonElements = new Array<HTMLElement>();\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(index: number) {\n if (index !== this._selectedIndex && index !== -1) {\n this._selectedIndex = index;\n\n this.focusIndex = index;\n this.selectTab(this.selectedIndex);\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n private _selectedIndex = -1;\n\n get focusIndex(): number {\n return this._focusIndex;\n }\n\n set focusIndex(index: number) {\n if (index !== this._focusIndex) {\n this._focusIndex = index;\n\n this.scrollToTab(this.focusIndex);\n this.focusTab(this.focusIndex);\n }\n }\n private _focusIndex = -1;\n\n @Output()\n selectedIndexChange = new EventEmitter<number>();\n\n constructor(private window: WindowRef, private keyboardHandlerService: KeyboardHandlerService) {\n /**/\n }\n\n ngAfterViewInit(): void {\n this.tabBarElement = this.tabBar.nativeElement;\n this.tabs.forEach((tab) => this.tabElements.push(tab.nativeElement));\n this.tabElements.forEach((tabElement) =>\n this.tabButtonElements.push(tabElement.querySelector('[role=\"tab\"]'))\n );\n\n setTimeout(() => {\n this.selectTab(this.selectedIndex);\n this.scrollToTab(this.focusIndex);\n this.focusTab(this.focusIndex);\n }, this.DEBOUNCE_TIME_MS);\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onItemSelect(event: PointerEvent) {\n if (event.target !== this.tabBarElement) {\n const targetTabNavItem = (event.target as HTMLElement).closest('button');\n this.selectedIndex = this.tabButtonElements.indexOf(targetTabNavItem);\n }\n }\n\n @HostListener('keydown.home', ['$event'])\n @HostListener('keydown.end', ['$event'])\n @HostListener('keydown.arrowright', ['$event'])\n @HostListener('keydown.arrowleft', ['$event'])\n onKeydown(event: KeyboardEvent) {\n event.preventDefault();\n this.focusIndex = this.keyboardHandlerService.handle(\n event,\n this.focusIndex,\n this.tabElements.length - 1,\n true\n );\n }\n\n private selectTab(tabIndex: number): void {\n this.tabButtonElements.forEach((tabButtonElement, index) => {\n tabButtonElement.setAttribute('aria-selected', index === tabIndex ? 'true' : 'false');\n });\n }\n\n private focusTab(focusIndex: number): void {\n this.tabButtonElements.forEach((tabButtonElement, index) => {\n tabButtonElement.setAttribute('tabindex', index === focusIndex ? '0' : '-1');\n });\n\n if (0 <= focusIndex && focusIndex < this.tabButtonElements.length) {\n this.tabButtonElements[focusIndex].focus();\n }\n }\n\n private scrollToTab(tabIndex: number): void {\n if (0 <= tabIndex && tabIndex < this.tabElements.length) {\n const selectedTabElement = this.tabElements[tabIndex];\n const selectedTabElementWidth = selectedTabElement.getBoundingClientRect().width;\n const selectedTabElementOffsetLeft = selectedTabElement.offsetLeft;\n const tabBarElementWidth = this.tabBarElement.getBoundingClientRect().width;\n\n this.window.nativeWindow.requestAnimationFrame(() => {\n this.tabBarElement?.scrollTo({\n behavior: 'smooth',\n left: Math.max(\n 0,\n selectedTabElementOffsetLeft - (tabBarElementWidth - selectedTabElementWidth) / 2\n ),\n });\n });\n }\n }\n}\n","<div role=\"tablist\" #tabBar>\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabNavigationComponent } from './tab-navigation/tab-navigation.component';\nimport { TabNavigationItemComponent } from './tab-navigation-item/tab-navigation-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TabNavigationComponent, TabNavigationItemComponent],\n exports: [TabNavigationComponent, TabNavigationItemComponent],\n})\nexport class TabNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -80,11 +80,11 @@ class TabButtonComponent {
80
80
  this.renderer.appendChild(parent, button);
81
81
  }
82
82
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TabButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
83
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TabButtonComponent, selector: "kirby-tab-button", inputs: { routerLink: "routerLink", tab: "tab" }, outputs: { click: "click" }, queries: [{ propertyName: "icons", predicate: IconComponent }], ngImport: i0, template: "<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left:calc(50% + .4em)}@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left:calc(50% + .2em)}@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top:calc(50% - 1.35em);--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 992px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"], dependencies: [{ kind: "component", type: i2.IonTabButton, selector: "ion-tab-button", inputs: ["disabled", "download", "href", "layout", "mode", "rel", "selected", "tab", "target"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
83
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TabButtonComponent, selector: "kirby-tab-button", inputs: { routerLink: "routerLink", tab: "tab" }, outputs: { click: "click" }, queries: [{ propertyName: "icons", predicate: IconComponent }], ngImport: i0, template: "<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left: calc(50% + .4em) }@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left: calc(50% + .2em) }@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top: calc(50% - 1.35em) ;--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 992px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"], dependencies: [{ kind: "component", type: i2.IonTabButton, selector: "ion-tab-button", inputs: ["disabled", "download", "href", "layout", "mode", "rel", "selected", "tab", "target"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TabButtonComponent, decorators: [{
86
86
  type: Component,
87
- args: [{ selector: 'kirby-tab-button', template: "<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left:calc(50% + .4em)}@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left:calc(50% + .2em)}@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top:calc(50% - 1.35em);--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 992px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"] }]
87
+ args: [{ selector: 'kirby-tab-button', template: "<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left: calc(50% + .4em) }@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left: calc(50% + .2em) }@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top: calc(50% - 1.35em) ;--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 992px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"] }]
88
88
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { routerLink: [{
89
89
  type: Input
90
90
  }], tab: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-tabs.mjs","sources":["../../../../libs/designsystem/tabs/src/tabs.service.ts","../../../../libs/designsystem/tabs/src/tabs.component.ts","../../../../libs/designsystem/tabs/src/tabs.component.html","../../../../libs/designsystem/tabs/src/tab-button/tab-button.events.ts","../../../../libs/designsystem/tabs/src/tab-button/tab-button.component.ts","../../../../libs/designsystem/tabs/src/tab-button/tab-button.component.html","../../../../libs/designsystem/tabs/src/tabs.module.ts","../../../../libs/designsystem/tabs/src/kirbydesign-designsystem-tabs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IonRouterOutlet } from '@ionic/angular';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabsService {\n private outletSubject$: ReplaySubject<IonRouterOutlet> = new ReplaySubject(1);\n public outlet$ = this.outletSubject$.asObservable();\n\n public setOutlet(outlet: IonRouterOutlet) {\n this.outletSubject$.next(outlet);\n }\n\n public resetOutlet() {\n this.outletSubject$.next(null);\n }\n}\n\nexport { IonRouterOutlet };\n","import { AfterViewInit, Component, HostBinding, OnDestroy, ViewChild } from '@angular/core';\nimport { IonTabs } from '@ionic/angular';\n\nimport { TabsService } from './tabs.service';\n\n@Component({\n selector: 'kirby-tab-bar',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class.tab-bar-bottom-hidden')\n tabBarBottomHidden = false;\n @ViewChild(IonTabs, { static: true }) tabs: IonTabs;\n\n constructor(private tabsService: TabsService) {}\n\n ngAfterViewInit() {\n this.tabsService.setOutlet(this.tabs.outlet);\n }\n\n ngOnDestroy() {\n this.tabsService.resetOutlet();\n }\n}\n","<ion-tabs>\n <ion-tab-bar [class.bottom-hidden]=\"tabBarBottomHidden\">\n <ng-content></ng-content>\n </ion-tab-bar>\n</ion-tabs>\n","export const selectedTabClickEvent = 'kirbySelectedTabClick';\n","import {\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n} from '@angular/core';\n\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { selectedTabClickEvent } from './tab-button.events';\n\n@Component({\n selector: 'kirby-tab-button',\n templateUrl: './tab-button.component.html',\n styleUrls: ['./tab-button.component.scss'],\n})\nexport class TabButtonComponent implements OnInit {\n /**\n * @deprecated Using routerLink for defining routes for kirby-tab-button is deprecated,\n * as it clashes with Angulars builtin routerLink directive and causes unexpected behavior in Angular 16\n * and above, causing the tab stack to not be preserved. Use the tab input instead, as a direct replacement.\n */\n @Input() routerLink: string;\n @Input() tab: string;\n @Output() click = new EventEmitter<Event>();\n @ContentChildren(IconComponent) icons: QueryList<IconComponent>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n onClick(event: Event, isSelected: boolean) {\n this.click.emit(event);\n\n if (isSelected) {\n const clickEvent = new CustomEvent(selectedTabClickEvent);\n dispatchEvent(clickEvent);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n const button = this.elementRef.nativeElement.childNodes[0];\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, button);\n }\n}\n","<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\n\nimport { TabsComponent } from './tabs.component';\nimport { TabButtonComponent } from './tab-button/tab-button.component';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n imports: [KirbyIonicModule, IconModule, CommonModule],\n providers: [TabsService],\n declarations: [TabsComponent, TabButtonComponent],\n exports: [TabsComponent, TabButtonComponent],\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TabsService","i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-tabs.mjs","sources":["../../../../libs/designsystem/tabs/src/tabs.service.ts","../../../../libs/designsystem/tabs/src/tabs.component.ts","../../../../libs/designsystem/tabs/src/tabs.component.html","../../../../libs/designsystem/tabs/src/tab-button/tab-button.events.ts","../../../../libs/designsystem/tabs/src/tab-button/tab-button.component.ts","../../../../libs/designsystem/tabs/src/tab-button/tab-button.component.html","../../../../libs/designsystem/tabs/src/tabs.module.ts","../../../../libs/designsystem/tabs/src/kirbydesign-designsystem-tabs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IonRouterOutlet } from '@ionic/angular';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabsService {\n private outletSubject$: ReplaySubject<IonRouterOutlet> = new ReplaySubject(1);\n public outlet$ = this.outletSubject$.asObservable();\n\n public setOutlet(outlet: IonRouterOutlet) {\n this.outletSubject$.next(outlet);\n }\n\n public resetOutlet() {\n this.outletSubject$.next(null);\n }\n}\n\nexport { IonRouterOutlet };\n","import { AfterViewInit, Component, HostBinding, OnDestroy, ViewChild } from '@angular/core';\nimport { IonTabs } from '@ionic/angular';\n\nimport { TabsService } from './tabs.service';\n\n@Component({\n selector: 'kirby-tab-bar',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class.tab-bar-bottom-hidden')\n tabBarBottomHidden = false;\n @ViewChild(IonTabs, { static: true }) tabs: IonTabs;\n\n constructor(private tabsService: TabsService) {}\n\n ngAfterViewInit() {\n this.tabsService.setOutlet(this.tabs.outlet);\n }\n\n ngOnDestroy() {\n this.tabsService.resetOutlet();\n }\n}\n","<ion-tabs>\n <ion-tab-bar [class.bottom-hidden]=\"tabBarBottomHidden\">\n <ng-content></ng-content>\n </ion-tab-bar>\n</ion-tabs>\n","export const selectedTabClickEvent = 'kirbySelectedTabClick';\n","import {\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n} from '@angular/core';\n\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { selectedTabClickEvent } from './tab-button.events';\n\n@Component({\n selector: 'kirby-tab-button',\n templateUrl: './tab-button.component.html',\n styleUrls: ['./tab-button.component.scss'],\n})\nexport class TabButtonComponent implements OnInit {\n /**\n * @deprecated Using routerLink for defining routes for kirby-tab-button is deprecated,\n * as it clashes with Angulars builtin routerLink directive and causes unexpected behavior in Angular 16\n * and above, causing the tab stack to not be preserved. Use the tab input instead, as a direct replacement.\n */\n @Input() routerLink: string;\n @Input() tab: string;\n @Output() click = new EventEmitter<Event>();\n @ContentChildren(IconComponent) icons: QueryList<IconComponent>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n onClick(event: Event, isSelected: boolean) {\n this.click.emit(event);\n\n if (isSelected) {\n const clickEvent = new CustomEvent(selectedTabClickEvent);\n dispatchEvent(clickEvent);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n const button = this.elementRef.nativeElement.childNodes[0];\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, button);\n }\n}\n","<ion-tab-button\n #ionTabButton\n [tab]=\"routerLink || tab\"\n (click)=\"onClick($event, ionTabButton.selected)\"\n>\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\n\nimport { TabsComponent } from './tabs.component';\nimport { TabButtonComponent } from './tab-button/tab-button.component';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n imports: [KirbyIonicModule, IconModule, CommonModule],\n providers: [TabsService],\n declarations: [TabsComponent, TabButtonComponent],\n exports: [TabsComponent, TabButtonComponent],\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TabsService","i1","i2"],"mappings":"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"}
@@ -1,18 +1,29 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
4
- import { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';
3
+ import { EventEmitter, forwardRef, Component, ChangeDetectionStrategy, Input, HostBinding, Output } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import * as i1 from '@ionic/angular';
6
+ import { IonicModule } from '@ionic/angular';
6
7
 
7
8
  class ToggleComponent {
8
- constructor() {
9
+ constructor(cdr) {
10
+ this.cdr = cdr;
9
11
  this.checked = false;
10
12
  this.disabled = false;
11
13
  this.checkedChange = new EventEmitter();
12
14
  this._pressed = false;
15
+ // Initialize default ControlValueAccessor callback functions (noop)
16
+ // eslint-disable-next-line no-empty-function
17
+ this._onChange = () => { };
18
+ // eslint-disable-next-line no-empty-function
19
+ this._onTouched = () => { };
20
+ }
21
+ get _isDisabled() {
22
+ return this.disabled ? 'disabled' : null;
13
23
  }
14
24
  onCheckedChange(checked) {
15
25
  this.checked = checked;
26
+ this._onChange(this.checked);
16
27
  this.checkedChange.emit(this.checked);
17
28
  }
18
29
  _onActive() {
@@ -20,17 +31,72 @@ class ToggleComponent {
20
31
  }
21
32
  _onInactive() {
22
33
  this._pressed = false;
34
+ this._onTouched();
35
+ }
36
+ /**
37
+ * Sets the toggle's value. Part of the ControlValueAccessor interface
38
+ * required to integrate with Angular's core forms API.
39
+ *
40
+ * @param value New value to be written to the model.
41
+ */
42
+ writeValue(value) {
43
+ this.checked = value;
44
+ }
45
+ /**
46
+ * Saves a callback function to be invoked when the toggle's value
47
+ * changes from user input. Part of the ControlValueAccessor interface
48
+ * required to integrate with Angular's core forms API.
49
+ *
50
+ * @param fn Callback to be triggered when the value changes.
51
+ */
52
+ registerOnChange(fn) {
53
+ this._onChange = fn;
54
+ }
55
+ /**
56
+ * Saves a callback function to be invoked when the toggle is blurred
57
+ * by the user. Part of the ControlValueAccessor interface required
58
+ * to integrate with Angular's core forms API.
59
+ *
60
+ * @param fn Callback to be triggered when the component has been touched.
61
+ */
62
+ registerOnTouched(fn) {
63
+ this._onTouched = fn;
64
+ }
65
+ /**
66
+ * Disables the toggle. Part of the ControlValueAccessor interface required
67
+ * to integrate with Angular's core forms API.
68
+ *
69
+ * @param isDisabled Sets whether the component is disabled.
70
+ */
71
+ setDisabledState(isDisabled) {
72
+ this.disabled = isDisabled;
73
+ this.cdr.detectChanges();
23
74
  }
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, 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></ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04)}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #0ee270;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #0dcd65;--handle-background-checked: #ebebeb}ion-toggle.in-item.legacy-toggle{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: KirbyIonicModule }, { kind: "component", type: i1.IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled" } }, providers: [
77
+ {
78
+ provide: NG_VALUE_ACCESSOR,
79
+ useExisting: forwardRef((() => ToggleComponent)),
80
+ multi: true,
81
+ },
82
+ ], 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></ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04)}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #2dc172;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #29ae67;--handle-background-checked: #ebebeb}ion-toggle.in-item.legacy-toggle{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
83
  }
27
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggleComponent, decorators: [{
28
85
  type: Component,
29
- args: [{ standalone: true, imports: [KirbyIonicModule, CommonModule], selector: 'kirby-toggle', 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></ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04)}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #0ee270;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #0dcd65;--handle-background-checked: #ebebeb}ion-toggle.in-item.legacy-toggle{padding:0}\n"] }]
30
- }], propDecorators: { checked: [{
86
+ args: [{ standalone: true, imports: [IonicModule, CommonModule], selector: 'kirby-toggle', providers: [
87
+ {
88
+ provide: NG_VALUE_ACCESSOR,
89
+ useExisting: forwardRef((() => ToggleComponent)),
90
+ multi: true,
91
+ },
92
+ ], 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></ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04)}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #2dc172;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #29ae67;--handle-background-checked: #ebebeb}ion-toggle.in-item.legacy-toggle{padding:0}\n"] }]
93
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { checked: [{
31
94
  type: Input
32
95
  }], disabled: [{
33
96
  type: Input
97
+ }], _isDisabled: [{
98
+ type: HostBinding,
99
+ args: ['attr.disabled']
34
100
  }], checkedChange: [{
35
101
  type: Output
36
102
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../../../libs/designsystem/toggle/src/toggle.component.ts","../../../../libs/designsystem/toggle/src/toggle.component.html","../../../../libs/designsystem/toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\n\n@Component({\n standalone: true,\n imports: [KirbyIonicModule, CommonModule],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent {\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _pressed = false;\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\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></ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAYa,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;QASW,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAEzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAEtD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAclB,KAAA;AAZC,IAAA,eAAe,CAAC,OAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;iIAnBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,ECZ5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gSASA,EDHY,MAAA,EAAA,CAAA,ykCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,2TAAE,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAM7B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;iCACI,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAA,QAAA,EAC/B,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,CAAA,ykCAAA,CAAA,EAAA,CAAA;8BAGtC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEhBT;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../../../libs/designsystem/toggle/src/toggle.component.ts","../../../../libs/designsystem/toggle/src/toggle.component.html","../../../../libs/designsystem/toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\n@Component({\n standalone: true,\n imports: [IonicModule, CommonModule],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent implements ControlValueAccessor {\n constructor(private cdr: ChangeDetectorRef) {}\n\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _pressed = false;\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 }\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.detectChanges();\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></ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -186,11 +186,11 @@ class SegmentedControlComponent {
186
186
  }
187
187
  }
188
188
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SegmentedControlComponent, deps: [{ token: i1.IconRegistryService }], target: i0.ɵɵFactoryTarget.Component }); }
189
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SegmentedControlComponent, isStandalone: true, selector: "kirby-segmented-control", inputs: { mode: "mode", items: "items", selectedIndex: "selectedIndex", value: "value", size: "size", disableChangeOnSwipe: "disableChangeOnSwipe" }, outputs: { selectedIndexChange: "selectedIndexChange", segmentSelect: "segmentSelect" }, host: { attributes: { "role": "group" }, properties: { "class": "this._modeCssClass", "class.sm": "this.isSmallSize" } }, ngImport: i0, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-elevation: 0 1px 24px 0 rgba(28, 28, 28, .04);--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:-moz-fit-content;width:fit-content}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:-moz-fit-content;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:999px;contain:none;overflow:visible}ion-segment-button::part(native):after{transition:all 80ms linear 0ms}ion-segment-button::part(indicator){padding-inline:0}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { kind: "directive", type: i3.ThemeColorDirective, selector: "kirby-avatar[themeColor], kirby-badge[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]", inputs: ["themeColor"] }, { kind: "component", type: BadgeComponent, selector: "kirby-badge", inputs: ["text", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
189
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SegmentedControlComponent, isStandalone: true, selector: "kirby-segmented-control", inputs: { mode: "mode", items: "items", selectedIndex: "selectedIndex", value: "value", size: "size", disableChangeOnSwipe: "disableChangeOnSwipe" }, outputs: { selectedIndexChange: "selectedIndexChange", segmentSelect: "segmentSelect" }, host: { attributes: { "role": "group" }, properties: { "class": "this._modeCssClass", "class.sm": "this.isSmallSize" } }, ngImport: i0, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:-moz-fit-content;width:fit-content}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:-moz-fit-content;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:999px;contain:none;overflow:visible}ion-segment-button::part(native):after{transition:all 80ms linear 0ms}ion-segment-button::part(indicator){padding-inline:0}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { kind: "directive", type: i3.ThemeColorDirective, selector: "kirby-avatar[themeColor], kirby-badge[themeColor], kirby-card[themeColor], kirby-icon[themeColor], kirby-progress-circle-ring[themeColor], kirby-modal-footer[themeColor], kirby-empty-state[themeColor]", inputs: ["themeColor"] }, { kind: "component", type: BadgeComponent, selector: "kirby-badge", inputs: ["text", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SegmentedControlComponent, decorators: [{
192
192
  type: Component,
193
- args: [{ standalone: true, imports: [IonicModule, IconModule, BadgeComponent, CommonModule], selector: 'kirby-segmented-control', host: { role: 'group' }, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-elevation: 0 1px 24px 0 rgba(28, 28, 28, .04);--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:-moz-fit-content;width:fit-content}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:-moz-fit-content;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:999px;contain:none;overflow:visible}ion-segment-button::part(native):after{transition:all 80ms linear 0ms}ion-segment-button::part(indicator){padding-inline:0}\n"] }]
193
+ args: [{ standalone: true, imports: [IonicModule, IconModule, BadgeComponent, CommonModule], selector: 'kirby-segmented-control', host: { role: 'group' }, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:-moz-fit-content;width:fit-content}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:-moz-fit-content;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:999px;contain:none;overflow:visible}ion-segment-button::part(native):after{transition:all 80ms linear 0ms}ion-segment-button::part(indicator){padding-inline:0}\n"] }]
194
194
  }], ctorParameters: function () { return [{ type: i1.IconRegistryService }]; }, propDecorators: { mode: [{
195
195
  type: Input
196
196
  }], _modeCssClass: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.ts","../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.html","../../../../libs/designsystem/src/lib/components/page-local-navigation/page-local-navigation.component.ts","../../../../libs/designsystem/src/lib/components/page-local-navigation/page-local-navigation.component.html","../../../../libs/designsystem/src/lib/components/index.ts","../../../../libs/designsystem/src/lib/directives/key-handler/key-handler.directive.ts","../../../../libs/designsystem/src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../../../libs/designsystem/src/lib/kirby.module.ts","../../../../libs/designsystem/src/lib/kirby-experimental.module.ts","../../../../libs/designsystem/src/kirbydesign-designsystem.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\nimport { IconModule, IconRegistryService } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\n\nimport { SegmentItem, SegmentItemInternal } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n@Component({\n standalone: true,\n imports: [IonicModule, IconModule, BadgeComponent, CommonModule],\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent {\n constructor(private iconRegistryService: IconRegistryService) {}\n\n /**\n * Ensure that the click actually did originate from within the segment-button.\n * We do not want to react to clicks on e.g. segment-btn-wrapper or badge.\n */\n preventOutsideClick(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInSegmentBtn = !!event.target.closest('ion-segment-button');\n if (!targetIsInSegmentBtn) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode | `${SegmentedControlMode}` = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: SegmentItemInternal[] = [];\n get items(): SegmentItemInternal[] {\n return this._items;\n }\n\n @Input() set items(value: SegmentItem[]) {\n this._items = value || [];\n this._items.forEach((item) => {\n if (!item.badge) return;\n // We need to verify whether badges icon is custom or default, so we can check for it in the template\n item.badge.isCustomIcon =\n item.badge.icon !== undefined &&\n this.iconRegistryService.getIcon(item.badge.icon) !== undefined;\n });\n this._value = this.items[this.selectedIndex];\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(index: number) {\n if (index !== this._selectedIndex) {\n this._selectedIndex = index;\n this._value = this.items[this.selectedIndex];\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n private _value: SegmentItem;\n get value(): SegmentItem {\n return this._value;\n }\n\n @Input() set value(value: SegmentItem) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n private _disableChangeOnSwipe: boolean = false;\n get disableChangeOnSwipe(): boolean {\n return this._disableChangeOnSwipe;\n }\n\n @Input() set disableChangeOnSwipe(value: boolean) {\n this._disableChangeOnSwipe = value;\n }\n\n @Output() segmentSelect: EventEmitter<SegmentItem> = new EventEmitter();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n setTimeout(() => {\n this.segmentSelect.emit(this.value);\n });\n }\n }\n}\n","<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { LocalNavigationItem } from './page-local-navigation-item';\n\n@Component({\n standalone: true,\n imports: [BadgeComponent, IconModule, CommonModule],\n selector: 'kirby-page-local-navigation',\n templateUrl: './page-local-navigation.component.html',\n styleUrls: ['./page-local-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageLocalNavigationComponent implements AfterViewInit {\n private readonly DEBOUNCE_TIME_MS = 250;\n\n @Input() items: LocalNavigationItem[] = [];\n @Input() selectedIndex = 0;\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n @ViewChild('tabBar') tabBarElementRef?: ElementRef<HTMLElement>;\n private get tabBarNativeElement(): HTMLElement | undefined {\n return this.tabBarElementRef?.nativeElement;\n }\n\n constructor(private window: WindowRef) {\n console.warn(\n 'Kirby Local Navigation is deprecated, and will be removed in Kirby v10. It is replaced by Kirby Tab Navigation with identical functionality, but with more flexibility and an improved API.'\n );\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.scrollToSelectedTab(this.selectedIndex);\n }, this.DEBOUNCE_TIME_MS);\n }\n\n onTabChange(index: number): void {\n if (this.selectedIndex !== index) {\n this.selectedIndex = index;\n this.scrollToSelectedTab(index);\n this.selectedIndexChange.emit(index);\n }\n }\n\n private getSelectedItemElement(index: number): HTMLElement | undefined {\n const tabBarElement = this.tabBarNativeElement;\n\n if (tabBarElement) {\n return tabBarElement.children.item(index) as HTMLElement;\n }\n }\n\n focusNext(index: number): void {\n const tabBarElement = this.tabBarNativeElement;\n if (tabBarElement) {\n const next = tabBarElement.children.item(index) as HTMLElement;\n next?.focus({ preventScroll: false });\n }\n }\n\n private scrollToSelectedTab(index: number): void {\n const tabBarElement = this.tabBarNativeElement;\n const selectedTabElement = this.getSelectedItemElement(index);\n\n if (tabBarElement && selectedTabElement) {\n const selectedTabElementWidth = selectedTabElement.getBoundingClientRect().width;\n const selectedTabElementOffsetLeft = selectedTabElement.offsetLeft;\n const tabBarElementWidth = tabBarElement.getBoundingClientRect().width;\n\n this.window.nativeWindow.requestAnimationFrame(() => {\n tabBarElement?.scrollTo({\n behavior: 'smooth',\n left: Math.max(\n 0,\n selectedTabElementOffsetLeft - (tabBarElementWidth - selectedTabElementWidth) / 2\n ),\n });\n });\n }\n }\n}\n","<div class=\"container\">\n <div class=\"tab-bar\" #tabBar>\n <div\n class=\"tab-item\"\n *ngFor=\"let item of items; let i = index\"\n (click)=\"onTabChange(i)\"\n [ngClass]=\"i === selectedIndex ? 'selected' : ''\"\n [tabIndex]=\"0\"\n (keydown.enter)=\"onTabChange(i)\"\n (keydown.arrowLeft)=\"focusNext(i - 1)\"\n (keydown.arrowRight)=\"focusNext(i + 1)\"\n >\n <div class=\"tab-item-inner\" [class.extended]=\"!!item.badge\">\n <span [attr.text]=\"item.text\">{{ item.text }}</span>\n <ng-container *ngIf=\"item.badge; let badge\">\n <kirby-badge\n role=\"text\"\n [attr.aria-label]=\"badge.description\"\n [themeColor]=\"badge.themeColor\"\n >\n <ng-container *ngIf=\"badge.content.name; else badgeTextContent\">\n <kirby-icon\n *ngIf=\"badge.content.isCustom; else defaultIconName\"\n [customName]=\"badge.content.name\"\n ></kirby-icon>\n <ng-template #defaultIconName>\n <kirby-icon [name]=\"badge.content.name\"></kirby-icon>\n </ng-template>\n </ng-container>\n <ng-template #badgeTextContent>\n {{ badge.content.text }}\n </ng-template>\n </kirby-badge>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","/* prettier-ignore */\nexport { SegmentedControlComponent, SegmentedControlMode} from './segmented-control/segmented-control.component'; // See issue #1555 for prettier-ignore explanation\nexport { SegmentItem } from './segmented-control/segment-item';\n\nexport * from './page-local-navigation';\n","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 { AlertConfig, ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\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 // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyAlertConfig') alertConfig?: AlertConfig;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null,\n this.alertConfig || null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\nimport {\n ComponentLoaderDirective,\n ResizeObserverFactory,\n ResizeObserverService,\n ThemeColorDirective,\n} 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 {\n LoadingOverlayComponent,\n LoadingOverlayService,\n} 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 DateInputDirective,\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 ActionSheetHelper,\n AlertComponent,\n AlertHelper,\n CanDismissHelper,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalHelper,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { KirbyModalModule } from '@kirbydesign/designsystem/modal/v2';\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 { DataTableModule } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ToastController, ToastHelper } from '@kirbydesign/designsystem/toast';\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 './components/segmented-control/segmented-control.component';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst exportedDeclarations = [ModalRouterLinkDirective];\n\nconst declarations = [...exportedDeclarations, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DateInputDirective,\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 SegmentedControlComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\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 DataTableModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n KirbyModalModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n CanDismissHelper,\n];\n\nconst ConfigToken = new InjectionToken<unknown>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, KirbyIonicModule, ...importedModules],\n declarations: [declarations],\n providers: providers,\n exports: [allExports],\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PageLocalNavigationComponent } from './components';\nimport { KirbyModule } from './kirby.module';\n\nconst COMPONENT_DECLARATIONS = [PageLocalNavigationComponent];\nexport { StockChartConfig, BarChartConfig } from '@kirbydesign/designsystem/chart';\n\n/**\n * This module contains experimental components, that should not be used in a production environment.\n * @see KirbyModule\n */\n@NgModule({\n imports: [CommonModule, KirbyModule, PageLocalNavigationComponent],\n exports: COMPONENT_DECLARATIONS,\n})\nexport class KirbyExperimentalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.ts","../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.html","../../../../libs/designsystem/src/lib/components/page-local-navigation/page-local-navigation.component.ts","../../../../libs/designsystem/src/lib/components/page-local-navigation/page-local-navigation.component.html","../../../../libs/designsystem/src/lib/components/index.ts","../../../../libs/designsystem/src/lib/directives/key-handler/key-handler.directive.ts","../../../../libs/designsystem/src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../../../libs/designsystem/src/lib/kirby.module.ts","../../../../libs/designsystem/src/lib/kirby-experimental.module.ts","../../../../libs/designsystem/src/kirbydesign-designsystem.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\nimport { IconModule, IconRegistryService } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\n\nimport { SegmentItem, SegmentItemInternal } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n@Component({\n standalone: true,\n imports: [IonicModule, IconModule, BadgeComponent, CommonModule],\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent {\n constructor(private iconRegistryService: IconRegistryService) {}\n\n /**\n * Ensure that the click actually did originate from within the segment-button.\n * We do not want to react to clicks on e.g. segment-btn-wrapper or badge.\n */\n preventOutsideClick(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInSegmentBtn = !!event.target.closest('ion-segment-button');\n if (!targetIsInSegmentBtn) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode | `${SegmentedControlMode}` = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: SegmentItemInternal[] = [];\n get items(): SegmentItemInternal[] {\n return this._items;\n }\n\n @Input() set items(value: SegmentItem[]) {\n this._items = value || [];\n this._items.forEach((item) => {\n if (!item.badge) return;\n // We need to verify whether badges icon is custom or default, so we can check for it in the template\n item.badge.isCustomIcon =\n item.badge.icon !== undefined &&\n this.iconRegistryService.getIcon(item.badge.icon) !== undefined;\n });\n this._value = this.items[this.selectedIndex];\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(index: number) {\n if (index !== this._selectedIndex) {\n this._selectedIndex = index;\n this._value = this.items[this.selectedIndex];\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n private _value: SegmentItem;\n get value(): SegmentItem {\n return this._value;\n }\n\n @Input() set value(value: SegmentItem) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n private _disableChangeOnSwipe: boolean = false;\n get disableChangeOnSwipe(): boolean {\n return this._disableChangeOnSwipe;\n }\n\n @Input() set disableChangeOnSwipe(value: boolean) {\n this._disableChangeOnSwipe = value;\n }\n\n @Output() segmentSelect: EventEmitter<SegmentItem> = new EventEmitter();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n setTimeout(() => {\n this.segmentSelect.emit(this.value);\n });\n }\n }\n}\n","<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { LocalNavigationItem } from './page-local-navigation-item';\n\n@Component({\n standalone: true,\n imports: [BadgeComponent, IconModule, CommonModule],\n selector: 'kirby-page-local-navigation',\n templateUrl: './page-local-navigation.component.html',\n styleUrls: ['./page-local-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageLocalNavigationComponent implements AfterViewInit {\n private readonly DEBOUNCE_TIME_MS = 250;\n\n @Input() items: LocalNavigationItem[] = [];\n @Input() selectedIndex = 0;\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n @ViewChild('tabBar') tabBarElementRef?: ElementRef<HTMLElement>;\n private get tabBarNativeElement(): HTMLElement | undefined {\n return this.tabBarElementRef?.nativeElement;\n }\n\n constructor(private window: WindowRef) {\n console.warn(\n 'Kirby Local Navigation is deprecated, and will be removed in Kirby v10. It is replaced by Kirby Tab Navigation with identical functionality, but with more flexibility and an improved API.'\n );\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.scrollToSelectedTab(this.selectedIndex);\n }, this.DEBOUNCE_TIME_MS);\n }\n\n onTabChange(index: number): void {\n if (this.selectedIndex !== index) {\n this.selectedIndex = index;\n this.scrollToSelectedTab(index);\n this.selectedIndexChange.emit(index);\n }\n }\n\n private getSelectedItemElement(index: number): HTMLElement | undefined {\n const tabBarElement = this.tabBarNativeElement;\n\n if (tabBarElement) {\n return tabBarElement.children.item(index) as HTMLElement;\n }\n }\n\n focusNext(index: number): void {\n const tabBarElement = this.tabBarNativeElement;\n if (tabBarElement) {\n const next = tabBarElement.children.item(index) as HTMLElement;\n next?.focus({ preventScroll: false });\n }\n }\n\n private scrollToSelectedTab(index: number): void {\n const tabBarElement = this.tabBarNativeElement;\n const selectedTabElement = this.getSelectedItemElement(index);\n\n if (tabBarElement && selectedTabElement) {\n const selectedTabElementWidth = selectedTabElement.getBoundingClientRect().width;\n const selectedTabElementOffsetLeft = selectedTabElement.offsetLeft;\n const tabBarElementWidth = tabBarElement.getBoundingClientRect().width;\n\n this.window.nativeWindow.requestAnimationFrame(() => {\n tabBarElement?.scrollTo({\n behavior: 'smooth',\n left: Math.max(\n 0,\n selectedTabElementOffsetLeft - (tabBarElementWidth - selectedTabElementWidth) / 2\n ),\n });\n });\n }\n }\n}\n","<div class=\"container\">\n <div class=\"tab-bar\" #tabBar>\n <div\n class=\"tab-item\"\n *ngFor=\"let item of items; let i = index\"\n (click)=\"onTabChange(i)\"\n [ngClass]=\"i === selectedIndex ? 'selected' : ''\"\n [tabIndex]=\"0\"\n (keydown.enter)=\"onTabChange(i)\"\n (keydown.arrowLeft)=\"focusNext(i - 1)\"\n (keydown.arrowRight)=\"focusNext(i + 1)\"\n >\n <div class=\"tab-item-inner\" [class.extended]=\"!!item.badge\">\n <span [attr.text]=\"item.text\">{{ item.text }}</span>\n <ng-container *ngIf=\"item.badge; let badge\">\n <kirby-badge\n role=\"text\"\n [attr.aria-label]=\"badge.description\"\n [themeColor]=\"badge.themeColor\"\n >\n <ng-container *ngIf=\"badge.content.name; else badgeTextContent\">\n <kirby-icon\n *ngIf=\"badge.content.isCustom; else defaultIconName\"\n [customName]=\"badge.content.name\"\n ></kirby-icon>\n <ng-template #defaultIconName>\n <kirby-icon [name]=\"badge.content.name\"></kirby-icon>\n </ng-template>\n </ng-container>\n <ng-template #badgeTextContent>\n {{ badge.content.text }}\n </ng-template>\n </kirby-badge>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","/* prettier-ignore */\nexport { SegmentedControlComponent, SegmentedControlMode} from './segmented-control/segmented-control.component'; // See issue #1555 for prettier-ignore explanation\nexport { SegmentItem } from './segmented-control/segment-item';\n\nexport * from './page-local-navigation';\n","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 { AlertConfig, ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\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 // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyAlertConfig') alertConfig?: AlertConfig;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null,\n this.alertConfig || null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\nimport {\n ComponentLoaderDirective,\n ResizeObserverFactory,\n ResizeObserverService,\n ThemeColorDirective,\n} 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 {\n LoadingOverlayComponent,\n LoadingOverlayService,\n} 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 DateInputDirective,\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 ActionSheetHelper,\n AlertComponent,\n AlertHelper,\n CanDismissHelper,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalHelper,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { KirbyModalModule } from '@kirbydesign/designsystem/modal/v2';\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 { DataTableModule } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ToastController, ToastHelper } from '@kirbydesign/designsystem/toast';\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 './components/segmented-control/segmented-control.component';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst exportedDeclarations = [ModalRouterLinkDirective];\n\nconst declarations = [...exportedDeclarations, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DateInputDirective,\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 SegmentedControlComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\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 DataTableModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n KirbyModalModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n CanDismissHelper,\n];\n\nconst ConfigToken = new InjectionToken<unknown>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, KirbyIonicModule, ...importedModules],\n declarations: [declarations],\n providers: providers,\n exports: [allExports],\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PageLocalNavigationComponent } from './components';\nimport { KirbyModule } from './kirby.module';\n\nconst COMPONENT_DECLARATIONS = [PageLocalNavigationComponent];\nexport { StockChartConfig, BarChartConfig } from '@kirbydesign/designsystem/chart';\n\n/**\n * This module contains experimental components, that should not be used in a production environment.\n * @see KirbyModule\n */\n@NgModule({\n imports: [CommonModule, KirbyModule, PageLocalNavigationComponent],\n exports: COMPONENT_DECLARATIONS,\n})\nexport class KirbyExperimentalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
2
+ <path id="agreement" fill="currentColor" d="M20.4517,10.215 L19.9447,10.732 C19.8687,10.81 19.7427,10.81 19.6647,10.732 L16.3557,7.351 L15.9087,6.884 C15.8747,6.84 15.8587,6.793 15.8587,6.76 C15.8587,6.722 15.8687,6.667 15.9147,6.62 L16.4217,6.103 C16.4977,6.023 16.6247,6.025 16.7007,6.103 L20.4507,9.934 C20.4987,9.982 20.5087,10.037 20.5087,10.075 C20.5087,10.112 20.4987,10.168 20.4517,10.215 M17.2597,13.481 C16.7317,13.994 12.5657,18.258 12.3897,18.44 C12.3237,18.503 12.1187,18.493 11.9547,18.324 C11.8617,18.23 11.8057,18.109 11.8057,18 C11.8057,17.964 11.8127,17.915 11.8547,17.872 L13.5077,16.107 L13.5217,16.093 C13.5217,16.092 13.5217,16.091 13.5227,16.091 L13.5307,16.081 C13.5607,16.05 13.5737,16.011 13.5977,15.977 C13.6287,15.929 13.6667,15.884 13.6867,15.831 C13.7037,15.786 13.7047,15.738 13.7127,15.692 C13.7227,15.643 13.7377,15.595 13.7377,15.545 C13.7367,15.495 13.7197,15.448 13.7097,15.4 C13.6997,15.353 13.6987,15.304 13.6807,15.259 C13.6627,15.217 13.6297,15.183 13.6047,15.144 C13.5767,15.1 13.5567,15.052 13.5197,15.014 C13.5167,15.011 13.5147,15.011 13.5127,15.009 L13.5097,15.003 C13.4757,14.971 13.4337,14.955 13.3957,14.931 C13.3527,14.902 13.3127,14.864 13.2647,14.845 C13.2177,14.825 13.1667,14.824 13.1167,14.816 C13.0717,14.808 13.0287,14.792 12.9837,14.792 C12.9377,14.793 12.8937,14.81 12.8487,14.819 C12.8007,14.829 12.7507,14.831 12.7037,14.852 C12.6647,14.868 12.6337,14.901 12.5977,14.924 C12.5527,14.954 12.5037,14.975 12.4647,15.016 L9.4407,18.123 C9.3757,18.189 9.1737,18.18 9.0067,18.008 C8.9137,17.913 8.8587,17.792 8.8587,17.684 C8.8587,17.649 8.8647,17.599 8.8927,17.569 L9.5537,16.9 C9.5747,16.88 9.5977,16.866 9.6177,16.846 L11.8107,14.606 L11.9847,14.428 C12.0577,14.354 12.1127,14.267 12.1497,14.175 C12.1617,14.144 12.1597,14.111 12.1687,14.078 C12.1847,14.015 12.2047,13.952 12.2047,13.888 C12.2047,13.841 12.1877,13.797 12.1797,13.75 C12.1697,13.7 12.1697,13.65 12.1507,13.602 C12.1227,13.53 12.0747,13.468 12.0247,13.406 C12.0107,13.388 12.0047,13.366 11.9887,13.35 C11.9887,13.349 11.9887,13.349 11.9877,13.349 C11.9877,13.349 11.9877,13.348 11.9867,13.348 C11.9357,13.295 11.8737,13.264 11.8137,13.23 C11.7887,13.216 11.7677,13.192 11.7417,13.181 C11.6917,13.16 11.6387,13.158 11.5877,13.15 C11.5447,13.142 11.5037,13.124 11.4607,13.124 C11.4167,13.124 11.3747,13.142 11.3307,13.15 C11.2797,13.158 11.2277,13.159 11.1797,13.18 C11.1537,13.191 11.1327,13.214 11.1077,13.228 C11.0467,13.262 10.9847,13.293 10.9327,13.345 L8.5397,15.777 C8.4597,15.825 8.2797,15.805 8.1297,15.652 C8.0427,15.564 7.9887,15.453 7.9817,15.351 C7.9787,15.315 7.98078755,15.249 8.0257,15.202 C8.0267,15.201 10.4087,12.691 12.3117,10.75 C12.6007,10.9 12.9247,11.052 13.3077,11.052 C13.8067,11.052 14.2867,10.804 14.6227,10.373 C14.9827,9.91 15.1287,9.319 15.0107,8.791 C14.9767,8.641 14.9107,8.504 14.8297,8.373 C14.9107,8.313 14.9917,8.254 15.0727,8.197 L15.3237,8.454 L18.2207,11.48 C18.0727,12.061 17.7537,13.001 17.2597,13.481 M5.9817,10.687 L8.5867,8.026 C8.9627,8.199 9.6427,8.451 10.4317,8.451 C10.7847,8.451 11.1267,8.387 11.4267,8.33 C11.6597,8.287 12.0497,8.212 12.1497,8.259 L12.3567,8.372 C12.6247,8.517 13.4397,8.958 13.5557,9.132 C13.5677,9.185 13.5397,9.315 13.4567,9.422 C13.4067,9.485 13.3487,9.527 13.3077,9.527 C13.2417,9.524 13.0407,9.419 12.9067,9.349 C12.3937,9.081 11.6167,8.674 10.4817,8.995 C10.0847,9.107 9.8507,9.527 9.9597,9.933 C10.0327,10.203 10.2437,10.388 10.4907,10.456 C9.4577,11.519 8.4017,12.621 7.7167,13.339 C7.1287,12.784 6.1577,11.68 5.9817,10.687 M4.0547,10.213 L3.5497,9.697 C3.5017,9.649 3.4917,9.594 3.4917,9.556 C3.4917,9.518 3.5017,9.463 3.5497,9.415 L7.2997,5.585 C7.3767,5.506 7.5017,5.506 7.5787,5.585 L8.0847,6.101 C8.1317,6.149 8.1417,6.204 8.1417,6.242 C8.1417,6.279 8.1317,6.335 8.0847,6.383 L4.3347,10.213 C4.2587,10.291 4.1317,10.292 4.0547,10.213 M21.5057,8.854 L17.7547,5.023 C17.0967,4.351 16.0247,4.352 15.3677,5.023 L14.8607,5.539 C14.5427,5.865 14.3667,6.299 14.3667,6.76 C14.3667,6.787 14.3727,6.812 14.3747,6.838 C14.1567,6.987 13.8907,7.176 13.6527,7.361 C13.4637,7.248 13.2637,7.136 13.0547,7.023 L12.8637,6.919 C12.3127,6.611 11.6987,6.727 11.1567,6.829 C10.8947,6.879 10.6487,6.925 10.4317,6.925 C10.1027,6.925 9.7937,6.851 9.5457,6.768 C9.5987,6.6 9.6337,6.424 9.6337,6.242 C9.6337,5.78 9.4577,5.346 9.1387,5.021 L8.6327,4.505 C7.9757,3.832 6.9037,3.832 6.2457,4.505 L2.4957,8.335 C2.1757,8.661 1.9997,9.094 1.9997,9.556 C1.9997,10.018 2.1757,10.451 2.4947,10.777 L3.0007,11.294 C3.3297,11.629 3.7627,11.797 4.1947,11.797 C4.3757,11.797 4.5557,11.76 4.7297,11.701 C5.2107,12.944 6.2027,13.99 6.7167,14.47 C6.5507,14.764 6.4677,15.109 6.4937,15.465 C6.5287,15.934 6.7347,16.384 7.0757,16.733 C7.2007,16.86 7.3397,16.959 7.4847,17.046 C7.4077,17.245 7.3667,17.461 7.3667,17.685 C7.3667,18.196 7.5797,18.708 7.9517,19.088 C8.3387,19.484 8.8397,19.684 9.3257,19.684 C9.7587,19.684 10.1797,19.526 10.4967,19.201 L10.6337,19.062 C10.7107,19.184 10.7987,19.3 10.9007,19.404 C11.2877,19.799 11.7887,20 12.2747,20 C12.7077,20 13.1287,19.841 13.4437,19.518 C13.4877,19.474 17.7737,15.087 18.2877,14.586 C18.9437,13.949 19.3307,12.998 19.5457,12.29 C19.6327,12.304 19.7187,12.316 19.8057,12.316 C20.2377,12.316 20.6707,12.149 20.9987,11.812 L21.5057,11.296 C21.8237,10.97 21.9997,10.536 21.9997,10.075 C21.9997,9.613 21.8237,9.179 21.5057,8.854"/></svg>
@@ -0,0 +1,2 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
2
+ <path id="budget" fill="currentColor" d="M17,2.25 C18.5187831,2.25 19.75,3.48121694 19.75,5 L19.7516859,13.6164182 C20.6263859,13.8795841 21.1792245,14.2927786 21.2436693,14.8823339 L21.25,15 L21.25,21 C21.25,22.2393112 19.2072446,22.75 16.5,22.75 C14.4239165,22.75 12.7386043,22.4496753 12.0656261,21.7507436 L7,21.75 C5.48121694,21.75 4.25,20.5187831 4.25,19 L4.25,5 C4.25,3.48121694 5.48121694,2.25 7,2.25 L17,2.25 Z M13.2493098,19.3838812 L13.25,20.772 L13.268812,20.7824429 C13.4034521,20.848018 13.6032311,20.916939 13.8534746,20.9794999 C14.5345878,21.1497782 15.4823915,21.25 16.5,21.25 C17.5176085,21.25 18.4654122,21.1497782 19.1465254,20.9794999 C19.4097953,20.9136824 19.6172101,20.8408254 19.7516824,20.7722309 L19.7516859,19.3835818 C18.9141507,19.6355661 17.7815239,19.75 16.5,19.75 C15.2189838,19.75 14.0867469,19.6356567 13.2493098,19.3838812 Z M17,3.75 L7,3.75 C6.30964406,3.75 5.75,4.30964406 5.75,5 L5.75,19 C5.75,19.6903559 6.30964406,20.25 7,20.25 L11.75,20.25 L11.75,15 C11.75,13.7606888 13.7927554,13.25 16.5,13.25 C17.1246283,13.25 17.7138832,13.277186 18.2508363,13.3342346 L18.25,5 C18.25,4.30964406 17.6903559,3.75 17,3.75 Z M13.2493098,16.3838812 L13.25,17.772 L13.268812,17.7824429 C13.4034521,17.848018 13.6032311,17.916939 13.8534746,17.9794999 C14.5345878,18.1497782 15.4823915,18.25 16.5,18.25 C17.5176085,18.25 18.4654122,18.1497782 19.1465254,17.9794999 C19.4097953,17.9136824 19.6172101,17.8408254 19.7516824,17.7722309 L19.7516859,16.3835818 C18.9141507,16.6355661 17.7815239,16.75 16.5,16.75 C15.2189838,16.75 14.0867469,16.6356567 13.2493098,16.3838812 Z M16.5,14.75 C15.4823915,14.75 14.5345878,14.8502218 13.8534746,15.0205001 L13.943,15 L14.0901197,15.0336233 C14.6640785,15.1536638 15.3861349,15.2292968 16.1636526,15.2463295 L16.5,15.25 C17.4045409,15.25 18.2539274,15.1708124 18.9098803,15.0336233 L19.055,15 L18.9098803,14.9663767 C18.3359215,14.8463362 17.6138651,14.7707032 16.8363474,14.7536705 L16.5,14.75 Z M10.6953597,11.75 C11.1095732,11.75 11.4453597,12.0857864 11.4453597,12.5 C11.4453597,12.9142136 11.1095732,13.25 10.6953597,13.25 L8,13.25 C7.58578644,13.25 7.25,12.9142136 7.25,12.5 C7.25,12.0857864 7.58578644,11.75 8,11.75 L10.6953597,11.75 Z M16,8.75 C16.4142136,8.75 16.75,9.08578644 16.75,9.5 C16.75,9.91421356 16.4142136,10.25 16,10.25 L8,10.25 C7.58578644,10.25 7.25,9.91421356 7.25,9.5 C7.25,9.08578644 7.58578644,8.75 8,8.75 L16,8.75 Z M16,5.75 C16.4142136,5.75 16.75,6.08578644 16.75,6.5 C16.75,6.91421356 16.4142136,7.25 16,7.25 L8,7.25 C7.58578644,7.25 7.25,6.91421356 7.25,6.5 C7.25,6.08578644 7.58578644,5.75 8,5.75 L16,5.75 Z"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path id="dot" fill="currentColor" d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z"/>
3
+ </svg>
@@ -0,0 +1,2 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
2
+ <path id="history" fill="currentColor" d="M16.5,3 C18.1568542,3 19.5,4.34314575 19.5,6 L19.5019784,11.9391289 C19.6461161,12.0499669 19.7861433,12.1685028 19.9214906,12.2947162 C22.124007,14.3485961 22.352073,17.7269281 20.5226339,20.0513434 L21.0247823,19.9171022 C21.3915403,19.8188297 21.7676699,20.0101532 21.9103875,20.3509015 L21.943341,20.4474322 C22.0505473,20.8475318 21.8131105,21.2587845 21.4130109,21.3659909 L19.2051006,21.9575987 C18.805001,22.064805 18.3937483,21.8273682 18.286542,21.4272686 L17.6819935,19.171063 C17.5747871,18.7709634 17.812224,18.3597107 18.2123236,18.2525044 C18.6124232,18.145298 19.0236759,18.3827349 19.1308822,18.7828344 L19.2509781,19.2357113 C20.7012993,17.5094809 20.5597584,14.9409018 18.898493,13.3917468 C17.4120821,12.0056461 15.160988,11.872397 13.5294634,13.04063 L13.3980084,13.1472712 C13.2221692,13.296208 12.948237,13.5409286 12.8917468,13.601507 C11.2909533,15.3181478 11.3848661,18.0074597 13.101507,19.6082532 C13.5990015,20.0721744 14.1873253,20.4028427 14.8257802,20.5856784 C15.1858023,20.6887788 15.5582957,20.7437476 15.9330793,20.7495127 C16.3472439,20.7558837 16.6778259,21.0967951 16.6714549,21.5109597 C16.6650839,21.9251243 16.3241725,22.2557063 15.9100079,22.2495995 C15.4036031,22.2415454 14.9000065,22.1672297 14.4128214,22.0277134 C13.6914667,21.8211375 13.0168799,21.4749889 12.4231046,21.0023529 L7.5,21 C5.84314575,21 4.5,19.6568542 4.5,18 L4.5,6 C4.5,4.34314575 5.84314575,3 7.5,3 L16.5,3 Z M16.5,4.5 L7.5,4.5 C6.67157288,4.5 6,5.17157288 6,6 L6,18 C6,18.8284271 6.67157288,19.5 7.5,19.5 L11.0941471,19.5019788 C9.77803527,17.353871 9.99286557,14.5107577 11.7947162,12.5785094 C11.9369709,12.42596 12.4735626,11.9518106 12.6561919,11.8210411 C14.238228,10.6882438 16.2484607,10.4589658 18.0009165,11.1086157 L18,6 C18,5.17157288 17.3284271,4.5 16.5,4.5 Z M16,14.05 C16.4142136,14.05 16.75,14.3857864 16.75,14.8 L16.75,16.096 L18.0002441,16.0963867 C18.3799399,16.0963867 18.6937351,16.3785406 18.7433975,16.7446162 L18.7502441,16.8463867 C18.7502441,17.2606003 18.4144577,17.5963867 18.0002441,17.5963867 L16,17.5963867 C15.5857864,17.5963867 15.25,17.2606003 15.25,16.8463867 L15.25,14.8 C15.25,14.3857864 15.5857864,14.05 16,14.05 Z M9,11.75 C9.41421356,11.75 9.75,12.0857864 9.75,12.5 C9.75,12.9142136 9.41421356,13.25 9,13.25 L8,13.25 C7.58578644,13.25 7.25,12.9142136 7.25,12.5 C7.25,12.0857864 7.58578644,11.75 8,11.75 L9,11.75 Z M12.5,8.75 C12.9142136,8.75 13.25,9.08578644 13.25,9.5 C13.25,9.91421356 12.9142136,10.25 12.5,10.25 L8,10.25 C7.58578644,10.25 7.25,9.91421356 7.25,9.5 C7.25,9.08578644 7.58578644,8.75 8,8.75 L12.5,8.75 Z M16,5.75 C16.4142136,5.75 16.75,6.08578644 16.75,6.5 C16.75,6.91421356 16.4142136,7.25 16,7.25 L8,7.25 C7.58578644,7.25 7.25,6.91421356 7.25,6.5 C7.25,6.08578644 7.58578644,5.75 8,5.75 L16,5.75 Z"/></svg>