@kirbydesign/designsystem 8.0.0 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/esm2020/button/button.component.mjs +4 -3
  2. package/esm2020/card/card.component.mjs +2 -2
  3. package/esm2020/divider/divider.component.mjs +4 -3
  4. package/esm2020/flag/flag.component.mjs +4 -3
  5. package/esm2020/form-field/form-field.module.mjs +5 -4
  6. package/esm2020/form-field/input/input.component.mjs +4 -3
  7. package/esm2020/form-field/textarea/textarea.component.mjs +3 -3
  8. package/esm2020/grid/breakpoint-helper.service.mjs +28 -0
  9. package/esm2020/grid/grid-card-configuration.mjs +8 -0
  10. package/esm2020/grid/grid.component.mjs +97 -0
  11. package/esm2020/grid/kirbydesign-designsystem-grid.mjs +5 -0
  12. package/esm2020/grid/public_api.mjs +4 -0
  13. package/esm2020/icon/kirby-icon-settings.mjs +5 -1
  14. package/esm2020/item-group/item-group.component.mjs +4 -3
  15. package/esm2020/lib/components/index.mjs +1 -4
  16. package/esm2020/lib/components/segmented-control/segmented-control.component.mjs +3 -3
  17. package/esm2020/lib/index.mjs +3 -1
  18. package/esm2020/lib/kirby.module.mjs +13 -11
  19. package/esm2020/list/list-item/list-item.component.mjs +2 -2
  20. package/esm2020/list/list.component.mjs +2 -2
  21. package/esm2020/modal/experimental/footer/footer.component.mjs +2 -2
  22. package/esm2020/modal/experimental/kirby-modal.module.mjs +5 -5
  23. package/esm2020/modal/experimental/modal/modal.component.mjs +72 -0
  24. package/esm2020/modal/experimental/public_api.mjs +2 -2
  25. package/esm2020/modal/modal/footer/modal-footer.component.mjs +4 -3
  26. package/esm2020/page/page-footer/page-footer.component.mjs +2 -2
  27. package/esm2020/popover/popover.component.mjs +4 -3
  28. package/esm2020/progress-circle/progress-circle-ring.component.mjs +4 -3
  29. package/esm2020/progress-circle/progress-circle.component.mjs +4 -3
  30. package/esm2020/section-header/section-header.component.mjs +4 -3
  31. package/esm2020/testing-jasmine/lib/mock-providers.mjs +3 -2
  32. package/esm2020/testing-jest/lib/mock-providers.mjs +3 -2
  33. package/esm2020/toast/config/toast-config.mjs +2 -0
  34. package/esm2020/toast/kirbydesign-designsystem-toast.mjs +5 -0
  35. package/esm2020/toast/public_api.mjs +4 -0
  36. package/esm2020/toast/services/indexs.mjs +3 -0
  37. package/esm2020/toast/services/toast.controller.mjs +22 -0
  38. package/esm2020/toast/services/toast.helper.mjs +39 -0
  39. package/esm2020/toggle/toggle.component.mjs +4 -3
  40. package/fesm2015/kirbydesign-designsystem-button.mjs +3 -2
  41. package/fesm2015/kirbydesign-designsystem-button.mjs.map +1 -1
  42. package/fesm2015/kirbydesign-designsystem-card.mjs +2 -2
  43. package/fesm2015/kirbydesign-designsystem-card.mjs.map +1 -1
  44. package/fesm2015/kirbydesign-designsystem-divider.mjs +3 -2
  45. package/fesm2015/kirbydesign-designsystem-divider.mjs.map +1 -1
  46. package/fesm2015/kirbydesign-designsystem-flag.mjs +3 -2
  47. package/fesm2015/kirbydesign-designsystem-flag.mjs.map +1 -1
  48. package/fesm2015/kirbydesign-designsystem-form-field.mjs +7 -7
  49. package/fesm2015/kirbydesign-designsystem-form-field.mjs.map +1 -1
  50. package/fesm2015/kirbydesign-designsystem-grid.mjs +136 -0
  51. package/fesm2015/kirbydesign-designsystem-grid.mjs.map +1 -0
  52. package/fesm2015/kirbydesign-designsystem-icon.mjs +4 -0
  53. package/fesm2015/kirbydesign-designsystem-icon.mjs.map +1 -1
  54. package/fesm2015/kirbydesign-designsystem-item-group.mjs +3 -2
  55. package/fesm2015/kirbydesign-designsystem-item-group.mjs.map +1 -1
  56. package/fesm2015/kirbydesign-designsystem-list.mjs +4 -4
  57. package/fesm2015/kirbydesign-designsystem-list.mjs.map +1 -1
  58. package/fesm2015/kirbydesign-designsystem-modal-experimental.mjs +11 -11
  59. package/fesm2015/kirbydesign-designsystem-modal-experimental.mjs.map +1 -1
  60. package/fesm2015/kirbydesign-designsystem-modal.mjs +2 -2
  61. package/fesm2015/kirbydesign-designsystem-modal.mjs.map +1 -1
  62. package/fesm2015/kirbydesign-designsystem-page.mjs +2 -2
  63. package/fesm2015/kirbydesign-designsystem-page.mjs.map +1 -1
  64. package/fesm2015/kirbydesign-designsystem-popover.mjs +3 -2
  65. package/fesm2015/kirbydesign-designsystem-popover.mjs.map +1 -1
  66. package/fesm2015/kirbydesign-designsystem-progress-circle.mjs +5 -4
  67. package/fesm2015/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  68. package/fesm2015/kirbydesign-designsystem-section-header.mjs +3 -2
  69. package/fesm2015/kirbydesign-designsystem-section-header.mjs.map +1 -1
  70. package/fesm2015/kirbydesign-designsystem-testing-jasmine.mjs +2 -1
  71. package/fesm2015/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  72. package/fesm2015/kirbydesign-designsystem-testing-jest.mjs +2 -1
  73. package/fesm2015/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  74. package/fesm2015/kirbydesign-designsystem-toast.mjs +66 -0
  75. package/fesm2015/kirbydesign-designsystem-toast.mjs.map +1 -0
  76. package/fesm2015/kirbydesign-designsystem-toggle.mjs +3 -2
  77. package/fesm2015/kirbydesign-designsystem-toggle.mjs.map +1 -1
  78. package/fesm2015/kirbydesign-designsystem.mjs +24 -197
  79. package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
  80. package/fesm2020/kirbydesign-designsystem-button.mjs +3 -2
  81. package/fesm2020/kirbydesign-designsystem-button.mjs.map +1 -1
  82. package/fesm2020/kirbydesign-designsystem-card.mjs +2 -2
  83. package/fesm2020/kirbydesign-designsystem-card.mjs.map +1 -1
  84. package/fesm2020/kirbydesign-designsystem-divider.mjs +3 -2
  85. package/fesm2020/kirbydesign-designsystem-divider.mjs.map +1 -1
  86. package/fesm2020/kirbydesign-designsystem-flag.mjs +3 -2
  87. package/fesm2020/kirbydesign-designsystem-flag.mjs.map +1 -1
  88. package/fesm2020/kirbydesign-designsystem-form-field.mjs +7 -7
  89. package/fesm2020/kirbydesign-designsystem-form-field.mjs.map +1 -1
  90. package/fesm2020/kirbydesign-designsystem-grid.mjs +136 -0
  91. package/fesm2020/kirbydesign-designsystem-grid.mjs.map +1 -0
  92. package/fesm2020/kirbydesign-designsystem-icon.mjs +4 -0
  93. package/fesm2020/kirbydesign-designsystem-icon.mjs.map +1 -1
  94. package/fesm2020/kirbydesign-designsystem-item-group.mjs +3 -2
  95. package/fesm2020/kirbydesign-designsystem-item-group.mjs.map +1 -1
  96. package/fesm2020/kirbydesign-designsystem-list.mjs +4 -4
  97. package/fesm2020/kirbydesign-designsystem-list.mjs.map +1 -1
  98. package/fesm2020/kirbydesign-designsystem-modal-experimental.mjs +11 -11
  99. package/fesm2020/kirbydesign-designsystem-modal-experimental.mjs.map +1 -1
  100. package/fesm2020/kirbydesign-designsystem-modal.mjs +2 -2
  101. package/fesm2020/kirbydesign-designsystem-modal.mjs.map +1 -1
  102. package/fesm2020/kirbydesign-designsystem-page.mjs +2 -2
  103. package/fesm2020/kirbydesign-designsystem-page.mjs.map +1 -1
  104. package/fesm2020/kirbydesign-designsystem-popover.mjs +3 -2
  105. package/fesm2020/kirbydesign-designsystem-popover.mjs.map +1 -1
  106. package/fesm2020/kirbydesign-designsystem-progress-circle.mjs +5 -4
  107. package/fesm2020/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  108. package/fesm2020/kirbydesign-designsystem-section-header.mjs +3 -2
  109. package/fesm2020/kirbydesign-designsystem-section-header.mjs.map +1 -1
  110. package/fesm2020/kirbydesign-designsystem-testing-jasmine.mjs +2 -1
  111. package/fesm2020/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  112. package/fesm2020/kirbydesign-designsystem-testing-jest.mjs +2 -1
  113. package/fesm2020/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  114. package/fesm2020/kirbydesign-designsystem-toast.mjs +63 -0
  115. package/fesm2020/kirbydesign-designsystem-toast.mjs.map +1 -0
  116. package/fesm2020/kirbydesign-designsystem-toggle.mjs +3 -2
  117. package/fesm2020/kirbydesign-designsystem-toggle.mjs.map +1 -1
  118. package/fesm2020/kirbydesign-designsystem.mjs +24 -194
  119. package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
  120. package/form-field/form-field.module.d.ts +2 -1
  121. package/{lib/components/grid → grid}/breakpoint-helper.service.d.ts +0 -0
  122. package/{lib/components/grid → grid}/grid-card-configuration.d.ts +0 -0
  123. package/{lib/components/grid → grid}/grid.component.d.ts +1 -1
  124. package/grid/index.d.ts +5 -0
  125. package/grid/public_api.d.ts +3 -0
  126. package/icons/svg/air-balloon.svg +3 -0
  127. package/icons/svg/banknotes.svg +4 -0
  128. package/icons/svg/business.svg +3 -0
  129. package/icons/svg/piggybank.svg +3 -0
  130. package/lib/components/index.d.ts +0 -3
  131. package/lib/index.d.ts +2 -0
  132. package/lib/kirby.module.d.ts +26 -26
  133. package/modal/experimental/kirby-modal.module.d.ts +2 -2
  134. package/modal/experimental/{fullscreen/fullscreen.component.d.ts → modal/modal.component.d.ts} +3 -3
  135. package/modal/experimental/public_api.d.ts +1 -1
  136. package/package.json +18 -2
  137. package/testing-jasmine/lib/mock-providers.d.ts +2 -1
  138. package/testing-jest/lib/mock-providers.d.ts +2 -1
  139. package/{lib/components/toast → toast}/config/toast-config.d.ts +0 -0
  140. package/toast/index.d.ts +5 -0
  141. package/{lib/components/toast/index.d.ts → toast/public_api.d.ts} +1 -0
  142. package/toast/services/indexs.d.ts +2 -0
  143. package/{lib/components/toast → toast}/services/toast.controller.d.ts +0 -0
  144. package/{lib/components/toast → toast}/services/toast.helper.d.ts +0 -0
  145. package/esm2020/lib/components/grid/breakpoint-helper.service.mjs +0 -28
  146. package/esm2020/lib/components/grid/grid-card-configuration.mjs +0 -8
  147. package/esm2020/lib/components/grid/grid.component.mjs +0 -97
  148. package/esm2020/lib/components/toast/config/toast-config.mjs +0 -2
  149. package/esm2020/lib/components/toast/index.mjs +0 -3
  150. package/esm2020/lib/components/toast/services/toast.controller.mjs +0 -22
  151. package/esm2020/lib/components/toast/services/toast.helper.mjs +0 -39
  152. package/esm2020/modal/experimental/fullscreen/fullscreen.component.mjs +0 -72
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-list.mjs","sources":["../../../../libs/designsystem/list/src/directives/infinite-scroll.directive.ts","../../../../libs/designsystem/list/src/directives/list-item-color.directive.ts","../../../../libs/designsystem/list/src/helpers/list-helper.ts","../../../../libs/designsystem/list/src/list-experimental/list-experimental.component.ts","../../../../libs/designsystem/list/src/list-experimental/list-experimental.component.html","../../../../libs/designsystem/list/src/list-header/list-header.component.ts","../../../../libs/designsystem/list/src/list-header/list-header.component.html","../../../../libs/designsystem/list/src/list-item/list-item.component.ts","../../../../libs/designsystem/list/src/list-item/list-item.component.html","../../../../libs/designsystem/list/src/list-section-header/list-section-header.component.ts","../../../../libs/designsystem/list/src/list-section-header/list-section-header.component.html","../../../../libs/designsystem/list/src/list.directive.ts","../../../../libs/designsystem/list/src/list.component.ts","../../../../libs/designsystem/list/src/list.component.html","../../../../libs/designsystem/list/src/list.module.ts","../../../../libs/designsystem/list/src/kirbydesign-designsystem-list.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { Scroll } from './scroll.model';\n\n/**\n * Specify debounce duration in ms\n */\nexport const INFINITE_SCROLL_DEBOUNCE = 100;\n\n@Directive({\n selector: '[kirbyInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements AfterViewInit, OnDestroy {\n /**\n * Event that will be triggered when the user has scrolled to\n * bottom of the element\n */\n @Output() scrollEnd = new EventEmitter<void>();\n\n /**\n * If true then {@link scrollEnd} event should NOT be emitted\n */\n @Input() disabled = false;\n\n /**\n * Emits a new value on element scroll event\n */\n scroll$: Subject<Scroll> = new Subject<Scroll>();\n\n /**\n * Completes on component destroy lifecycle event\n * used to unsubscribe from infinite observables\n */\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * An offset from the bottom of the element to trigger {@link scrollEnd} event\n */\n private offset = 0.8;\n\n constructor(private elementRef: ElementRef, private windowRef: WindowRef, private zone: NgZone) {}\n\n ngAfterViewInit(): void {\n /**\n * Subscribe to {@link scroll$} observable and emit {@link scrollEnd} event\n * when element scroll position has surpassed the offset.\n */\n this.scroll$\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n this.scrollEnd.emit();\n });\n\n /**\n * Subscribe to the ionScroll event on the ion-content around the list (if any)\n * and emit {@link scrollEnd} event when element scroll position has surpassed the offset.\n */\n setTimeout(() => {\n const ionContent: HTMLElement = this.elementRef.nativeElement.closest('ion-content');\n if (ionContent) {\n // we run the 'ionScroll' event outside angular, as it would trigger change detection on each scroll\n this.zone.runOutsideAngular(() => {\n fromEvent<any>(ionContent, 'ionScroll')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n map(() => this.getScroll()),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n // we make sure to emit the event inside angular again. As we want to show the spinner and need change detection for that.\n this.zone.run(() => this.scrollEnd.emit());\n });\n });\n }\n });\n }\n\n /**\n * On element scroll event emit next {@link scroll$} observable value\n */\n @HostListener('window:scroll')\n onScroll(): void {\n if (this.disabled) return;\n const scroll = this.getScroll();\n this.scroll$.next(scroll);\n }\n\n /**\n * trigger {@link ngUnsubscribe} complete on component destroy lifecycle hook\n */\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n private getScroll(): Scroll {\n const element = this.elementRef.nativeElement as HTMLElement;\n const boundindClientRect = element.getBoundingClientRect();\n\n const distanceToViewBottom = boundindClientRect.bottom;\n const elementHeight = boundindClientRect.height;\n const viewHeight = this.windowRef.nativeWindow.innerHeight;\n\n return { distanceToViewBottom, elementHeight, viewHeight };\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n selector: '[kirbyListItemColor]',\n})\nexport class ListItemColorDirective implements OnChanges {\n @Input()\n kirbyListItemColor: (item: any) => ThemeColor;\n @Input() item: any;\n @HostBinding('class')\n color: ThemeColor;\n\n ngOnChanges(): void {\n this.color = this.getColor();\n }\n\n private getColor(): ThemeColor {\n if (!this.kirbyListItemColor || !this.item) {\n return;\n }\n\n const themeColor = this.kirbyListItemColor(this.item);\n return themeColor;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ListComponent } from '../list.component';\nimport { LoadOnDemandEventData } from '../list.event';\n\ntype Section<T> = {\n name: string;\n items: T[];\n};\n\ntype SectionWithStandAloneItems<T> = {\n name: string;\n lists: T[][];\n};\n\n@Injectable()\nexport class ListHelper {\n public onLoadOnDemand(component: ListComponent, _event: LoadOnDemandEventData) {\n if (component.isLoadOnDemandEnabled && !component._isLoading) {\n component._isLoading = true;\n component.loadOnDemand.emit({\n complete: (disableLoadOnDemand: boolean) => {\n component.isLoadOnDemandEnabled = !disableLoadOnDemand;\n component._isLoading = false;\n },\n });\n }\n }\n\n public groupSections<T>(items: T[], getGroupName: (item: T) => string): Section<T>[] {\n const groupsMap = new Map<string, T[]>();\n\n items.forEach((item) => {\n const itemGroup = getGroupName(item);\n const groupItems = groupsMap.get(itemGroup);\n\n if (groupItems) {\n groupItems.push(item);\n } else {\n groupsMap.set(itemGroup, [item]);\n }\n });\n\n return Array.from(groupsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, items]) => {\n return { name, items };\n });\n }\n\n public groupStandAloneItems<T>(items: T[], standAloneProperty: string): { items: T[] }[] {\n const list = items.reduce(\n (accumulator, item) => {\n const lastList = accumulator[accumulator.length - 1];\n const lastItemInList = lastList[lastList.length - 1];\n\n if (!lastItemInList) {\n lastList.push(item);\n } else if (!item[standAloneProperty] && !lastItemInList[standAloneProperty]) {\n lastList.push(item);\n } else {\n accumulator.push([item]);\n }\n\n return accumulator;\n },\n [[]] as [T[]]\n );\n\n return list.map((items) => {\n return { items };\n });\n }\n\n public groupSectionsWithStandAloneItems<T>(\n items: T[],\n getGroupName: (item: T) => string,\n standAloneProperty: string\n ): SectionWithStandAloneItems<T>[] {\n const sectionsMap = new Map<string, T[][]>();\n\n items.forEach((item) => {\n const sectionName = getGroupName(item);\n\n if (sectionsMap.has(sectionName)) {\n const section = sectionsMap.get(sectionName);\n const lastListInSection = section[section.length - 1];\n const lastItemInList = lastListInSection[lastListInSection.length - 1];\n\n if (!item[standAloneProperty] && !lastItemInList[standAloneProperty]) {\n lastListInSection.push(item);\n } else {\n section.push([item]);\n }\n } else {\n sectionsMap.set(sectionName, [[item]]);\n }\n });\n\n return Array.from(sectionsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, lists]) => {\n return { name, lists };\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, HostListener, ViewChild } from '@angular/core';\nimport { IonList } from '@ionic/angular';\nimport { elementHasAncestor } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-list-experimental',\n templateUrl: './list-experimental.component.html',\n styleUrls: ['./list-experimental.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListExperimentalComponent {\n @ViewChild(IonList, { static: true }) list: IonList;\n\n @HostListener('click', ['$event'])\n closeAllSlidingItems(e: MouseEvent) {\n if (elementHasAncestor(e.target as HTMLElement, 'ion-item-option', 'ion-list')) {\n this.list.closeSlidingItems();\n }\n }\n}\n","<ng-content select=\"[outside]\"></ng-content>\n<div class=\"rounded shadow first-item-padding last-item-padding\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-header',\n templateUrl: './list-header.component.html',\n styleUrls: ['./list-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListHeaderComponent {\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonItemSliding } from '@ionic/angular';\n\nimport { ThemeColor } from '@kirbydesign/core';\nimport { PlatformService } from '@kirbydesign/designsystem/helpers';\n\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\n\nexport type BoundaryClass = 'first' | 'last';\n\n@Component({\n selector: 'kirby-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['../list.component.scss', './list-item.component.scss'],\n})\nexport class ListItemComponent implements OnInit, AfterViewInit {\n _isSwipingEnabled = false;\n\n constructor(private platform: PlatformService) {\n this.initializeSwipeActions();\n }\n\n @ViewChild(IonItemSliding) ionItemSliding: IonItemSliding;\n\n @Input() item: any;\n\n @Input() boundaryClass: BoundaryClass;\n\n @Input() swipeActions: ListSwipeAction[] = [];\n\n @Input() itemTemplate: TemplateRef<any>;\n\n @Input() isSelected: boolean;\n\n @Input() isSelectable: boolean;\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n @Output() itemSelect = new EventEmitter<any>();\n\n _onItemSelect(item: any) {\n if (!this.isSelectable) return;\n this.itemSelect.emit(item);\n }\n\n @Output() swipeActionSelect = new EventEmitter<any>();\n\n _onSwipeActionSelect(swipeAction, item, event) {\n this.swipeActionSelect.emit({\n swipeAction,\n item,\n event,\n });\n }\n\n ngOnInit() {\n this.initializeSwipeActions();\n }\n\n ngAfterViewInit(): void {\n if (!this.itemTemplate) {\n console.warn('No item template was provided.');\n }\n }\n\n _hasSwipeActions(item: any): boolean {\n if (!Array.isArray(this.swipeActions)) {\n return false;\n }\n return this.swipeActions.some((swipeAction) => {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return false;\n }\n if (swipeAction.isDisabled === true) {\n return false;\n }\n return swipeAction.position === 'left' || swipeAction.position === 'right';\n });\n }\n\n _getSwipeActions(item: any, direction?: ListSwipeDirection): ListSwipeAction[] {\n if (!Array.isArray(this.swipeActions)) {\n return [];\n }\n return this.swipeActions.filter((swipeAction) => {\n if (this.isSwipeActionDisabled(swipeAction, item)) {\n return false;\n }\n return direction ? swipeAction.position === direction : true;\n });\n }\n\n private isSwipeActionDisabled(swipeAction: ListSwipeAction, item: any): boolean {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return true;\n }\n return swipeAction.isDisabled === true;\n }\n\n _getSwipeActionEnd(item: any): ListSwipeEnd {\n if (this._getSwipeActions(item, 'left').length) {\n return 'start';\n }\n return 'end';\n }\n\n _getSwipeActionIcon(swipeAction: ListSwipeAction, item: any): string {\n if (!swipeAction.icon) return;\n\n if (swipeAction.icon instanceof Function) {\n return swipeAction.icon(item);\n }\n return swipeAction.icon;\n }\n\n _getSwipeActionTitle(swipeAction: ListSwipeAction, item: any): string {\n if (swipeAction.title instanceof Function) {\n return swipeAction.title(item);\n }\n return swipeAction.title;\n }\n\n _getSwipeActionType(swipeAction: ListSwipeAction, item: any): ThemeColor {\n if (swipeAction.type instanceof Function) {\n return swipeAction.type(item);\n }\n return swipeAction.type;\n }\n\n private initializeSwipeActions(): void {\n if (this.swipeActions && this.swipeActions.length) {\n this._isSwipingEnabled = this.platform.isTouch();\n }\n }\n}\n","<ion-item-sliding\n [class.selected]=\"isSelected\"\n [kirbyListItemColor]=\"getItemColor\"\n [item]=\"item\"\n [disabled]=\"_isSwipingEnabled ? null : true\"\n keyHandler\n [ngClass]=\"boundaryClass\"\n (click)=\"_onItemSelect(item)\"\n>\n <ng-container\n *ngTemplateOutlet=\"swipeActionsTemplate; context: { $implicit: item }\"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n</ion-item-sliding>\n\n<ng-template #swipeActionsTemplate let-item>\n <ion-item-options *ngIf=\"_hasSwipeActions(item)\" [side]=\"_getSwipeActionEnd(item)\">\n <div class=\"swipe-action\">\n <ng-container *ngFor=\"let swipeAction of _getSwipeActions(item)\">\n <ion-item-option\n [ngClass]=\"_getSwipeActionType(swipeAction, item)\"\n (click)=\"_onSwipeActionSelect(swipeAction, item, $event)\"\n >\n <div class=\"item-content\">\n <kirby-icon\n *ngIf=\"_getSwipeActionIcon(swipeAction, item)\"\n size=\"sm\"\n [name]=\"_getSwipeActionIcon(swipeAction, item)\"\n ></kirby-icon>\n <ion-label>\n {{ _getSwipeActionTitle(swipeAction, item) }}\n </ion-label>\n </div>\n </ion-item-option>\n </ng-container>\n </div>\n </ion-item-options>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-section-header',\n templateUrl: './list-section-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListSectionHeaderComponent {\n @Input() title: string;\n}\n","<div class=\"header\">\n <span class=\"kirby-text-small\">{{ title }}</span>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyListItemTemplate]',\n})\nexport class ListItemTemplateDirective {}\n\n@Directive({\n selector: '[kirbyListHeader], [kirbyListHeaderTemplate]',\n})\nexport class ListHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]',\n})\nexport class ListSectionHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListFooter], [kirbyListFooterTemplate]',\n})\nexport class ListFooterDirective {}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass } from './list-item/list-item.component';\nimport { ListSwipeAction } from './list-swipe-action.type';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\nimport { LoadOnDemandEvent, LoadOnDemandEventData } from './list.event';\n\nexport type ListShape = 'square' | 'rounded' | 'none';\n\nexport type StandAloneSpacing =\n | 'xxxxs'\n | 'xxxs'\n | 'xxs'\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | 'xxl'\n | 'xxxl';\n@Component({\n selector: 'kirby-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n providers: [ListHelper],\n})\nexport class ListComponent implements OnInit, OnChanges {\n @ViewChild('list', { static: true }) list: any;\n @ViewChild(InfiniteScrollDirective) scrollDirective: InfiniteScrollDirective;\n\n /**\n * Provide items for the list to render. Items must be provided in the order you expect them to be rendered.\n */\n @Input()\n items: any[] = [];\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n /**\n * Callback to determine name of section. Sections will be ordered alphabetically.\n */\n @Input() getSectionName: (item: any) => string;\n\n /**\n * Callback that defines how to track changes for items in the iterable.\n */\n @Input() trackBy: TrackByFunction<any>;\n\n /**\n * Property name to decide which items should be stand alone\n */\n @Input() getStandAloneByProperty: string;\n\n /**\n * Bottom margin for stand alone items\n */\n @Input() standAloneSpacing: StandAloneSpacing = 'xxs';\n\n /**\n * Text to display when no more items can be loaded (used for \"on demand\"-loading).\n */\n @Input() noMoreItemsText: string;\n\n /**\n * Determines if dividers (bottom-border on list items) should be shown or not.\n */\n @Input() showDivider = true;\n\n /**\n * Determines if list row text should turn bold on selection\n */\n @Input() markSelectedRow = false;\n\n /**\n * Determine outline shape of:\n * - list, if {@link #isSectionsEnabled} is `false`\n * - section, if {@link #isSectionsEnabled} is `true`\n *\n * `square` means **without** rounded corners, `rounded` means **with** rounded corners., `none` means **without** padding, border, box-shadow and background.\n */\n @Input() shape: ListShape = 'rounded';\n\n @HostBinding('class.shape-rounded')\n public get isShapeRounded(): boolean {\n return this.shape === 'rounded';\n }\n\n @HostBinding('class.shape-none')\n public get isShapeNone(): boolean {\n return this.shape === 'none';\n }\n\n @HostBinding('class.item-spacing')\n @Input()\n hasItemSpacing: boolean;\n\n /**\n * Determines if the loadOnDemand event should be emitted.\n * Will default to true if there is at least one subscriber to the loadOnDemand event\n */\n @Input() isLoadOnDemandEnabled: boolean;\n\n /**\n * Emitting event when more items are to be loaded.\n */\n @Output() loadOnDemand = new EventEmitter<LoadOnDemandEvent>();\n\n /**\n * Determines if list items should have swipe actions or not\n * - the order of swipe actions is used to determine edge actions,\n * as well as their order of appearance on the screen.\n */\n @Input() swipeActions: ListSwipeAction[] = [];\n\n /**\n * Emitting event when an item is selected (tapped on mobile, clicked on web)\n */\n @Output() itemSelect = new EventEmitter<any>();\n\n @Input() disableSelectionHighlight: boolean = false;\n\n @ContentChild(ListHeaderDirective, { static: false, read: TemplateRef })\n headerTemplate: TemplateRef<any>;\n\n @ContentChild(ListSectionHeaderDirective, { static: false, read: TemplateRef })\n sectionHeaderTemplate: TemplateRef<any>;\n\n @ContentChild(ListFooterDirective, { static: false, read: TemplateRef })\n footerTemplate: TemplateRef<any>;\n\n /**\n * The first element that matches ListItemDirective.\n * As a structural directive it unfolds into a template. This is a reference to that.\n */\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n\n @HostBinding('class.has-sections') _isSectionsEnabled: boolean;\n @HostBinding('class.has-stand-alone') _isStandAloneEnabled: boolean;\n\n _isSelectable: boolean;\n _isLoading: boolean;\n _groupedItems: any[];\n _selectedItem: any;\n\n constructor(private listHelper: ListHelper) {}\n\n ngOnInit() {\n this._isSelectable = this.itemSelect.observers.length > 0;\n\n if (this.isLoadOnDemandEnabled === undefined) {\n this.isLoadOnDemandEnabled = this.loadOnDemand.observers.length > 0;\n }\n }\n\n ngOnChanges(): void {\n this._isSectionsEnabled = !!this.getSectionName;\n this._isStandAloneEnabled = !!this.getStandAloneByProperty;\n\n if (this._isSectionsEnabled && this._isStandAloneEnabled) {\n this._groupedItems = this.listHelper.groupSectionsWithStandAloneItems(\n this.items,\n this.getSectionName,\n this.getStandAloneByProperty\n );\n } else if (this._isSectionsEnabled) {\n this._groupedItems = this.listHelper.groupSections(this.items, this.getSectionName);\n } else if (this._isStandAloneEnabled) {\n this._groupedItems = this.listHelper.groupStandAloneItems(\n this.items,\n this.getStandAloneByProperty\n );\n }\n }\n\n _onLoadOnDemand(event?: LoadOnDemandEventData) {\n this.listHelper.onLoadOnDemand(this, event);\n }\n\n defaultTrackBy(index: number): any {\n return index;\n }\n\n sectionTrackBy(_: number, section: { name: string }): string {\n return section.name;\n }\n\n onItemSelect(item: any) {\n if (!this.disableSelectionHighlight) {\n this._selectedItem = item;\n }\n this.itemSelect.emit(item);\n }\n\n onSwipeActionSelect(args: any): void {\n args.swipeAction.onSelected(args.item);\n this.list.closeSlidingItems();\n args.event.stopPropagation();\n }\n\n _getBoundaryClass(index: number, section?: any[]): BoundaryClass[] | BoundaryClass {\n if (index === 0) {\n if (this.headerTemplate) return null;\n else return section.length === 1 ? ['first', 'last'] : 'first';\n }\n\n if (index === section.length - 1) {\n return this.footerTemplate ? null : 'last';\n }\n\n return null;\n }\n\n standAloneClass() {\n return this._isStandAloneEnabled ? `stand-alone-bottom-margin-${this.standAloneSpacing}` : '';\n }\n}\n","<ion-list\n #list\n kirbyInfiniteScroll\n (scrollEnd)=\"_onLoadOnDemand()\"\n [disabled]=\"!isLoadOnDemandEnabled\"\n class=\"list\"\n [class.has-header]=\"headerTemplate\"\n [class.has-footer]=\"footerTemplate\"\n [class.has-divider]=\"showDivider\"\n>\n <ion-list-header *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ion-list-header>\n\n <ng-container\n *ngTemplateOutlet=\"\n _isSectionsEnabled || _isStandAloneEnabled ? groupedListTemplate : itemsTemplate;\n context: { $implicit: items }\n \"\n ></ng-container>\n\n <div *ngIf=\"footerTemplate\" class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</ion-list>\n\n<p *ngIf=\"!isLoadOnDemandEnabled && noMoreItemsText\" class=\"no-more-items\">\n {{ noMoreItemsText }}\n</p>\n<div *ngIf=\"_isLoading\" class=\"loading\">\n <kirby-spinner></kirby-spinner>\n</div>\n\n<ng-template #groupedListTemplate>\n <ion-item-group\n *ngFor=\"let section of _groupedItems; trackBy: sectionTrackBy\"\n [ngClass]=\"standAloneClass()\"\n >\n <ion-item-divider *ngIf=\"_isSectionsEnabled\">\n <ng-container\n *ngTemplateOutlet=\"sectionHeaderTemplate; context: { $implicit: section.name }\"\n ></ng-container>\n </ion-item-divider>\n\n <ng-container *ngIf=\"_isSectionsEnabled && _isStandAloneEnabled; else groupedFlatList\">\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\" *ngFor=\"let list of section.lists\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: list }\"\n ></ng-container>\n </div>\n </ng-container>\n\n <ng-template #groupedFlatList>\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: section.items }\"\n ></ng-container>\n </div>\n </ng-template>\n </ion-item-group>\n</ng-template>\n\n<ng-template #itemsTemplate let-items>\n <kirby-list-item\n *ngFor=\"let item of items; let i = index; trackBy: trackBy || defaultTrackBy\"\n [item]=\"item\"\n [itemTemplate]=\"itemTemplate\"\n [swipeActions]=\"swipeActions\"\n [boundaryClass]=\"_getBoundaryClass(i, items)\"\n [isSelectable]=\"_isSelectable\"\n [getItemColor]=\"getItemColor\"\n [isSelected]=\"_isSelectable && item === _selectedItem\"\n (itemSelect)=\"onItemSelect($event)\"\n (swipeActionSelect)=\"onSwipeActionSelect($event)\"\n [class.is-single]=\"items.length === 1\"\n ></kirby-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListItemColorDirective } from './directives/list-item-color.directive';\nimport { ListExperimentalComponent } from './list-experimental/list-experimental.component';\nimport { ListHeaderComponent } from './list-header/list-header.component';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListSectionHeaderComponent } from './list-section-header/list-section-header.component';\nimport { ListComponent } from './list.component';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\n\nconst exportedDeclarations = [\n ListComponent,\n ListItemComponent,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n declarations: declarations,\n imports: [CommonModule, IconModule, IonicModule, SpinnerModule],\n exports: exportedDeclarations,\n providers: [],\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i5.ListItemColorDirective","i1.ListHelper","i3","i4","i5.ListItemComponent","i6.InfiniteScrollDirective"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-list.mjs","sources":["../../../../libs/designsystem/list/src/directives/infinite-scroll.directive.ts","../../../../libs/designsystem/list/src/directives/list-item-color.directive.ts","../../../../libs/designsystem/list/src/helpers/list-helper.ts","../../../../libs/designsystem/list/src/list-experimental/list-experimental.component.ts","../../../../libs/designsystem/list/src/list-experimental/list-experimental.component.html","../../../../libs/designsystem/list/src/list-header/list-header.component.ts","../../../../libs/designsystem/list/src/list-header/list-header.component.html","../../../../libs/designsystem/list/src/list-item/list-item.component.ts","../../../../libs/designsystem/list/src/list-item/list-item.component.html","../../../../libs/designsystem/list/src/list-section-header/list-section-header.component.ts","../../../../libs/designsystem/list/src/list-section-header/list-section-header.component.html","../../../../libs/designsystem/list/src/list.directive.ts","../../../../libs/designsystem/list/src/list.component.ts","../../../../libs/designsystem/list/src/list.component.html","../../../../libs/designsystem/list/src/list.module.ts","../../../../libs/designsystem/list/src/kirbydesign-designsystem-list.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { Scroll } from './scroll.model';\n\n/**\n * Specify debounce duration in ms\n */\nexport const INFINITE_SCROLL_DEBOUNCE = 100;\n\n@Directive({\n selector: '[kirbyInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements AfterViewInit, OnDestroy {\n /**\n * Event that will be triggered when the user has scrolled to\n * bottom of the element\n */\n @Output() scrollEnd = new EventEmitter<void>();\n\n /**\n * If true then {@link scrollEnd} event should NOT be emitted\n */\n @Input() disabled = false;\n\n /**\n * Emits a new value on element scroll event\n */\n scroll$: Subject<Scroll> = new Subject<Scroll>();\n\n /**\n * Completes on component destroy lifecycle event\n * used to unsubscribe from infinite observables\n */\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * An offset from the bottom of the element to trigger {@link scrollEnd} event\n */\n private offset = 0.8;\n\n constructor(private elementRef: ElementRef, private windowRef: WindowRef, private zone: NgZone) {}\n\n ngAfterViewInit(): void {\n /**\n * Subscribe to {@link scroll$} observable and emit {@link scrollEnd} event\n * when element scroll position has surpassed the offset.\n */\n this.scroll$\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n this.scrollEnd.emit();\n });\n\n /**\n * Subscribe to the ionScroll event on the ion-content around the list (if any)\n * and emit {@link scrollEnd} event when element scroll position has surpassed the offset.\n */\n setTimeout(() => {\n const ionContent: HTMLElement = this.elementRef.nativeElement.closest('ion-content');\n if (ionContent) {\n // we run the 'ionScroll' event outside angular, as it would trigger change detection on each scroll\n this.zone.runOutsideAngular(() => {\n fromEvent<any>(ionContent, 'ionScroll')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n map(() => this.getScroll()),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n // we make sure to emit the event inside angular again. As we want to show the spinner and need change detection for that.\n this.zone.run(() => this.scrollEnd.emit());\n });\n });\n }\n });\n }\n\n /**\n * On element scroll event emit next {@link scroll$} observable value\n */\n @HostListener('window:scroll')\n onScroll(): void {\n if (this.disabled) return;\n const scroll = this.getScroll();\n this.scroll$.next(scroll);\n }\n\n /**\n * trigger {@link ngUnsubscribe} complete on component destroy lifecycle hook\n */\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n private getScroll(): Scroll {\n const element = this.elementRef.nativeElement as HTMLElement;\n const boundindClientRect = element.getBoundingClientRect();\n\n const distanceToViewBottom = boundindClientRect.bottom;\n const elementHeight = boundindClientRect.height;\n const viewHeight = this.windowRef.nativeWindow.innerHeight;\n\n return { distanceToViewBottom, elementHeight, viewHeight };\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n selector: '[kirbyListItemColor]',\n})\nexport class ListItemColorDirective implements OnChanges {\n @Input()\n kirbyListItemColor: (item: any) => ThemeColor;\n @Input() item: any;\n @HostBinding('class')\n color: ThemeColor;\n\n ngOnChanges(): void {\n this.color = this.getColor();\n }\n\n private getColor(): ThemeColor {\n if (!this.kirbyListItemColor || !this.item) {\n return;\n }\n\n const themeColor = this.kirbyListItemColor(this.item);\n return themeColor;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ListComponent } from '../list.component';\nimport { LoadOnDemandEventData } from '../list.event';\n\ntype Section<T> = {\n name: string;\n items: T[];\n};\n\ntype SectionWithStandAloneItems<T> = {\n name: string;\n lists: T[][];\n};\n\n@Injectable()\nexport class ListHelper {\n public onLoadOnDemand(component: ListComponent, _event: LoadOnDemandEventData) {\n if (component.isLoadOnDemandEnabled && !component._isLoading) {\n component._isLoading = true;\n component.loadOnDemand.emit({\n complete: (disableLoadOnDemand: boolean) => {\n component.isLoadOnDemandEnabled = !disableLoadOnDemand;\n component._isLoading = false;\n },\n });\n }\n }\n\n public groupSections<T>(items: T[], getGroupName: (item: T) => string): Section<T>[] {\n const groupsMap = new Map<string, T[]>();\n\n items.forEach((item) => {\n const itemGroup = getGroupName(item);\n const groupItems = groupsMap.get(itemGroup);\n\n if (groupItems) {\n groupItems.push(item);\n } else {\n groupsMap.set(itemGroup, [item]);\n }\n });\n\n return Array.from(groupsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, items]) => {\n return { name, items };\n });\n }\n\n public groupStandAloneItems<T>(items: T[], standAloneProperty: string): { items: T[] }[] {\n const list = items.reduce(\n (accumulator, item) => {\n const lastList = accumulator[accumulator.length - 1];\n const lastItemInList = lastList[lastList.length - 1];\n\n if (!lastItemInList) {\n lastList.push(item);\n } else if (!item[standAloneProperty] && !lastItemInList[standAloneProperty]) {\n lastList.push(item);\n } else {\n accumulator.push([item]);\n }\n\n return accumulator;\n },\n [[]] as [T[]]\n );\n\n return list.map((items) => {\n return { items };\n });\n }\n\n public groupSectionsWithStandAloneItems<T>(\n items: T[],\n getGroupName: (item: T) => string,\n standAloneProperty: string\n ): SectionWithStandAloneItems<T>[] {\n const sectionsMap = new Map<string, T[][]>();\n\n items.forEach((item) => {\n const sectionName = getGroupName(item);\n\n if (sectionsMap.has(sectionName)) {\n const section = sectionsMap.get(sectionName);\n const lastListInSection = section[section.length - 1];\n const lastItemInList = lastListInSection[lastListInSection.length - 1];\n\n if (!item[standAloneProperty] && !lastItemInList[standAloneProperty]) {\n lastListInSection.push(item);\n } else {\n section.push([item]);\n }\n } else {\n sectionsMap.set(sectionName, [[item]]);\n }\n });\n\n return Array.from(sectionsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, lists]) => {\n return { name, lists };\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, HostListener, ViewChild } from '@angular/core';\nimport { IonList } from '@ionic/angular';\nimport { elementHasAncestor } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-list-experimental',\n templateUrl: './list-experimental.component.html',\n styleUrls: ['./list-experimental.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListExperimentalComponent {\n @ViewChild(IonList, { static: true }) list: IonList;\n\n @HostListener('click', ['$event'])\n closeAllSlidingItems(e: MouseEvent) {\n if (elementHasAncestor(e.target as HTMLElement, 'ion-item-option', 'ion-list')) {\n this.list.closeSlidingItems();\n }\n }\n}\n","<ng-content select=\"[outside]\"></ng-content>\n<div class=\"rounded shadow first-item-padding last-item-padding\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-header',\n templateUrl: './list-header.component.html',\n styleUrls: ['./list-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListHeaderComponent {\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonItemSliding } from '@ionic/angular';\n\nimport { ThemeColor } from '@kirbydesign/core';\nimport { PlatformService } from '@kirbydesign/designsystem/helpers';\n\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\n\nexport type BoundaryClass = 'first' | 'last';\n\n@Component({\n selector: 'kirby-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['../list.component.scss', './list-item.component.scss'],\n})\nexport class ListItemComponent implements OnInit, AfterViewInit {\n _isSwipingEnabled = false;\n\n constructor(private platform: PlatformService) {\n this.initializeSwipeActions();\n }\n\n @ViewChild(IonItemSliding) ionItemSliding: IonItemSliding;\n\n @Input() item: any;\n\n @Input() boundaryClass: BoundaryClass;\n\n @Input() swipeActions: ListSwipeAction[] = [];\n\n @Input() itemTemplate: TemplateRef<any>;\n\n @Input() isSelected: boolean;\n\n @Input() isSelectable: boolean;\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n @Output() itemSelect = new EventEmitter<any>();\n\n _onItemSelect(item: any) {\n if (!this.isSelectable) return;\n this.itemSelect.emit(item);\n }\n\n @Output() swipeActionSelect = new EventEmitter<any>();\n\n _onSwipeActionSelect(swipeAction, item, event) {\n this.swipeActionSelect.emit({\n swipeAction,\n item,\n event,\n });\n }\n\n ngOnInit() {\n this.initializeSwipeActions();\n }\n\n ngAfterViewInit(): void {\n if (!this.itemTemplate) {\n console.warn('No item template was provided.');\n }\n }\n\n _hasSwipeActions(item: any): boolean {\n if (!Array.isArray(this.swipeActions)) {\n return false;\n }\n return this.swipeActions.some((swipeAction) => {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return false;\n }\n if (swipeAction.isDisabled === true) {\n return false;\n }\n return swipeAction.position === 'left' || swipeAction.position === 'right';\n });\n }\n\n _getSwipeActions(item: any, direction?: ListSwipeDirection): ListSwipeAction[] {\n if (!Array.isArray(this.swipeActions)) {\n return [];\n }\n return this.swipeActions.filter((swipeAction) => {\n if (this.isSwipeActionDisabled(swipeAction, item)) {\n return false;\n }\n return direction ? swipeAction.position === direction : true;\n });\n }\n\n private isSwipeActionDisabled(swipeAction: ListSwipeAction, item: any): boolean {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return true;\n }\n return swipeAction.isDisabled === true;\n }\n\n _getSwipeActionEnd(item: any): ListSwipeEnd {\n if (this._getSwipeActions(item, 'left').length) {\n return 'start';\n }\n return 'end';\n }\n\n _getSwipeActionIcon(swipeAction: ListSwipeAction, item: any): string {\n if (!swipeAction.icon) return;\n\n if (swipeAction.icon instanceof Function) {\n return swipeAction.icon(item);\n }\n return swipeAction.icon;\n }\n\n _getSwipeActionTitle(swipeAction: ListSwipeAction, item: any): string {\n if (swipeAction.title instanceof Function) {\n return swipeAction.title(item);\n }\n return swipeAction.title;\n }\n\n _getSwipeActionType(swipeAction: ListSwipeAction, item: any): ThemeColor {\n if (swipeAction.type instanceof Function) {\n return swipeAction.type(item);\n }\n return swipeAction.type;\n }\n\n private initializeSwipeActions(): void {\n if (this.swipeActions && this.swipeActions.length) {\n this._isSwipingEnabled = this.platform.isTouch();\n }\n }\n}\n","<ion-item-sliding\n [class.selected]=\"isSelected\"\n [kirbyListItemColor]=\"getItemColor\"\n [item]=\"item\"\n [disabled]=\"_isSwipingEnabled ? null : true\"\n keyHandler\n [ngClass]=\"boundaryClass\"\n (click)=\"_onItemSelect(item)\"\n>\n <ng-container\n *ngTemplateOutlet=\"swipeActionsTemplate; context: { $implicit: item }\"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n</ion-item-sliding>\n\n<ng-template #swipeActionsTemplate let-item>\n <ion-item-options *ngIf=\"_hasSwipeActions(item)\" [side]=\"_getSwipeActionEnd(item)\">\n <div class=\"swipe-action\">\n <ng-container *ngFor=\"let swipeAction of _getSwipeActions(item)\">\n <ion-item-option\n [ngClass]=\"_getSwipeActionType(swipeAction, item)\"\n (click)=\"_onSwipeActionSelect(swipeAction, item, $event)\"\n >\n <div class=\"item-content\">\n <kirby-icon\n *ngIf=\"_getSwipeActionIcon(swipeAction, item)\"\n size=\"sm\"\n [name]=\"_getSwipeActionIcon(swipeAction, item)\"\n ></kirby-icon>\n <ion-label>\n {{ _getSwipeActionTitle(swipeAction, item) }}\n </ion-label>\n </div>\n </ion-item-option>\n </ng-container>\n </div>\n </ion-item-options>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-section-header',\n templateUrl: './list-section-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListSectionHeaderComponent {\n @Input() title: string;\n}\n","<div class=\"header\">\n <span class=\"kirby-text-small\">{{ title }}</span>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyListItemTemplate]',\n})\nexport class ListItemTemplateDirective {}\n\n@Directive({\n selector: '[kirbyListHeader], [kirbyListHeaderTemplate]',\n})\nexport class ListHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]',\n})\nexport class ListSectionHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListFooter], [kirbyListFooterTemplate]',\n})\nexport class ListFooterDirective {}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass } from './list-item/list-item.component';\nimport { ListSwipeAction } from './list-swipe-action.type';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\nimport { LoadOnDemandEvent, LoadOnDemandEventData } from './list.event';\n\nexport type ListShape = 'square' | 'rounded' | 'none';\n\nexport type StandAloneSpacing =\n | 'xxxxs'\n | 'xxxs'\n | 'xxs'\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | 'xxl'\n | 'xxxl';\n@Component({\n selector: 'kirby-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n providers: [ListHelper],\n})\nexport class ListComponent implements OnInit, OnChanges {\n @ViewChild('list', { static: true }) list: any;\n @ViewChild(InfiniteScrollDirective) scrollDirective: InfiniteScrollDirective;\n\n /**\n * Provide items for the list to render. Items must be provided in the order you expect them to be rendered.\n */\n @Input()\n items: any[] = [];\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n /**\n * Callback to determine name of section. Sections will be ordered alphabetically.\n */\n @Input() getSectionName: (item: any) => string;\n\n /**\n * Callback that defines how to track changes for items in the iterable.\n */\n @Input() trackBy: TrackByFunction<any>;\n\n /**\n * Property name to decide which items should be stand alone\n */\n @Input() getStandAloneByProperty: string;\n\n /**\n * Bottom margin for stand alone items\n */\n @Input() standAloneSpacing: StandAloneSpacing = 'xxs';\n\n /**\n * Text to display when no more items can be loaded (used for \"on demand\"-loading).\n */\n @Input() noMoreItemsText: string;\n\n /**\n * Determines if dividers (bottom-border on list items) should be shown or not.\n */\n @Input() showDivider = true;\n\n /**\n * Determines if list row text should turn bold on selection\n */\n @Input() markSelectedRow = false;\n\n /**\n * Determine outline shape of:\n * - list, if {@link #isSectionsEnabled} is `false`\n * - section, if {@link #isSectionsEnabled} is `true`\n *\n * `square` means **without** rounded corners, `rounded` means **with** rounded corners., `none` means **without** padding, border, box-shadow and background.\n */\n @Input() shape: ListShape = 'rounded';\n\n @HostBinding('class.shape-rounded')\n public get isShapeRounded(): boolean {\n return this.shape === 'rounded';\n }\n\n @HostBinding('class.shape-none')\n public get isShapeNone(): boolean {\n return this.shape === 'none';\n }\n\n @HostBinding('class.item-spacing')\n @Input()\n hasItemSpacing: boolean;\n\n /**\n * Determines if the loadOnDemand event should be emitted.\n * Will default to true if there is at least one subscriber to the loadOnDemand event\n */\n @Input() isLoadOnDemandEnabled: boolean;\n\n /**\n * Emitting event when more items are to be loaded.\n */\n @Output() loadOnDemand = new EventEmitter<LoadOnDemandEvent>();\n\n /**\n * Determines if list items should have swipe actions or not\n * - the order of swipe actions is used to determine edge actions,\n * as well as their order of appearance on the screen.\n */\n @Input() swipeActions: ListSwipeAction[] = [];\n\n /**\n * Emitting event when an item is selected (tapped on mobile, clicked on web)\n */\n @Output() itemSelect = new EventEmitter<any>();\n\n @Input() disableSelectionHighlight: boolean = false;\n\n @ContentChild(ListHeaderDirective, { static: false, read: TemplateRef })\n headerTemplate: TemplateRef<any>;\n\n @ContentChild(ListSectionHeaderDirective, { static: false, read: TemplateRef })\n sectionHeaderTemplate: TemplateRef<any>;\n\n @ContentChild(ListFooterDirective, { static: false, read: TemplateRef })\n footerTemplate: TemplateRef<any>;\n\n /**\n * The first element that matches ListItemDirective.\n * As a structural directive it unfolds into a template. This is a reference to that.\n */\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n\n @HostBinding('class.has-sections') _isSectionsEnabled: boolean;\n @HostBinding('class.has-stand-alone') _isStandAloneEnabled: boolean;\n\n _isSelectable: boolean;\n _isLoading: boolean;\n _groupedItems: any[];\n _selectedItem: any;\n\n constructor(private listHelper: ListHelper) {}\n\n ngOnInit() {\n this._isSelectable = this.itemSelect.observers.length > 0;\n\n if (this.isLoadOnDemandEnabled === undefined) {\n this.isLoadOnDemandEnabled = this.loadOnDemand.observers.length > 0;\n }\n }\n\n ngOnChanges(): void {\n this._isSectionsEnabled = !!this.getSectionName;\n this._isStandAloneEnabled = !!this.getStandAloneByProperty;\n\n if (this._isSectionsEnabled && this._isStandAloneEnabled) {\n this._groupedItems = this.listHelper.groupSectionsWithStandAloneItems(\n this.items,\n this.getSectionName,\n this.getStandAloneByProperty\n );\n } else if (this._isSectionsEnabled) {\n this._groupedItems = this.listHelper.groupSections(this.items, this.getSectionName);\n } else if (this._isStandAloneEnabled) {\n this._groupedItems = this.listHelper.groupStandAloneItems(\n this.items,\n this.getStandAloneByProperty\n );\n }\n }\n\n _onLoadOnDemand(event?: LoadOnDemandEventData) {\n this.listHelper.onLoadOnDemand(this, event);\n }\n\n defaultTrackBy(index: number): any {\n return index;\n }\n\n sectionTrackBy(_: number, section: { name: string }): string {\n return section.name;\n }\n\n onItemSelect(item: any) {\n if (!this.disableSelectionHighlight) {\n this._selectedItem = item;\n }\n this.itemSelect.emit(item);\n }\n\n onSwipeActionSelect(args: any): void {\n args.swipeAction.onSelected(args.item);\n this.list.closeSlidingItems();\n args.event.stopPropagation();\n }\n\n _getBoundaryClass(index: number, section?: any[]): BoundaryClass[] | BoundaryClass {\n if (index === 0) {\n if (this.headerTemplate) return null;\n else return section.length === 1 ? ['first', 'last'] : 'first';\n }\n\n if (index === section.length - 1) {\n return this.footerTemplate ? null : 'last';\n }\n\n return null;\n }\n\n standAloneClass() {\n return this._isStandAloneEnabled ? `stand-alone-bottom-margin-${this.standAloneSpacing}` : '';\n }\n}\n","<ion-list\n #list\n kirbyInfiniteScroll\n (scrollEnd)=\"_onLoadOnDemand()\"\n [disabled]=\"!isLoadOnDemandEnabled\"\n class=\"list\"\n [class.has-header]=\"headerTemplate\"\n [class.has-footer]=\"footerTemplate\"\n [class.has-divider]=\"showDivider\"\n>\n <ion-list-header *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ion-list-header>\n\n <ng-container\n *ngTemplateOutlet=\"\n _isSectionsEnabled || _isStandAloneEnabled ? groupedListTemplate : itemsTemplate;\n context: { $implicit: items }\n \"\n ></ng-container>\n\n <div *ngIf=\"footerTemplate\" class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</ion-list>\n\n<p *ngIf=\"!isLoadOnDemandEnabled && noMoreItemsText\" class=\"no-more-items\">\n {{ noMoreItemsText }}\n</p>\n<div *ngIf=\"_isLoading\" class=\"loading\">\n <kirby-spinner></kirby-spinner>\n</div>\n\n<ng-template #groupedListTemplate>\n <ion-item-group\n *ngFor=\"let section of _groupedItems; trackBy: sectionTrackBy\"\n [ngClass]=\"standAloneClass()\"\n >\n <ion-item-divider *ngIf=\"_isSectionsEnabled\">\n <ng-container\n *ngTemplateOutlet=\"sectionHeaderTemplate; context: { $implicit: section.name }\"\n ></ng-container>\n </ion-item-divider>\n\n <ng-container *ngIf=\"_isSectionsEnabled && _isStandAloneEnabled; else groupedFlatList\">\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\" *ngFor=\"let list of section.lists\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: list }\"\n ></ng-container>\n </div>\n </ng-container>\n\n <ng-template #groupedFlatList>\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: section.items }\"\n ></ng-container>\n </div>\n </ng-template>\n </ion-item-group>\n</ng-template>\n\n<ng-template #itemsTemplate let-items>\n <kirby-list-item\n *ngFor=\"let item of items; let i = index; trackBy: trackBy || defaultTrackBy\"\n [item]=\"item\"\n [itemTemplate]=\"itemTemplate\"\n [swipeActions]=\"swipeActions\"\n [boundaryClass]=\"_getBoundaryClass(i, items)\"\n [isSelectable]=\"_isSelectable\"\n [getItemColor]=\"getItemColor\"\n [isSelected]=\"_isSelectable && item === _selectedItem\"\n (itemSelect)=\"onItemSelect($event)\"\n (swipeActionSelect)=\"onSwipeActionSelect($event)\"\n [class.is-single]=\"items.length === 1\"\n ></kirby-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListItemColorDirective } from './directives/list-item-color.directive';\nimport { ListExperimentalComponent } from './list-experimental/list-experimental.component';\nimport { ListHeaderComponent } from './list-header/list-header.component';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListSectionHeaderComponent } from './list-section-header/list-section-header.component';\nimport { ListComponent } from './list.component';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\n\nconst exportedDeclarations = [\n ListComponent,\n ListItemComponent,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n declarations: declarations,\n imports: [CommonModule, IconModule, IonicModule, SpinnerModule],\n exports: exportedDeclarations,\n providers: [],\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i5.ListItemColorDirective","i1.ListHelper","i3","i4","i5.ListItemComponent","i6.InfiniteScrollDirective"],"mappings":";;;;;;;;;;;;;;;;AAiBA;;AAEG;AACI,MAAM,wBAAwB,GAAG,IAAI;MAK/B,uBAAuB,CAAA;AA4BlC,IAAA,WAAA,CAAoB,UAAsB,EAAU,SAAoB,EAAU,IAAY,EAAA;QAA1E,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AA3B9F;;;AAGG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;AAE/C;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAoB,IAAI,OAAO,EAAU,CAAC;AAEjD;;;AAGG;AACK,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE7C;;AAEG;QACK,IAAM,CAAA,MAAA,GAAG,GAAG,CAAC;KAE6E;IAElG,eAAe,GAAA;AACb;;;AAGG;AACH,QAAA,IAAI,CAAC,OAAO;AACT,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAC9B,YAAY,CAAC,wBAAwB,CAAC,EACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,MAAM,CAAC,CAAC,MAAM,KAAI;YAChB,QACE,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,gBAAA,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAC/C;AACJ,SAAC,CAAC,CACH;aACA,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;AAEL;;;AAGG;QACH,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,UAAU,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACrF,YAAA,IAAI,UAAU,EAAE;;AAEd,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,oBAAA,SAAS,CAAM,UAAU,EAAE,WAAW,CAAC;AACpC,yBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAC9B,YAAY,CAAC,wBAAwB,CAAC,EACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,EAC3B,MAAM,CAAC,CAAC,MAAM,KAAI;wBAChB,QACE,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,4BAAA,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAC/C;AACJ,qBAAC,CAAC,CACH;yBACA,SAAS,CAAC,MAAK;;AAEd,wBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,qBAAC,CAAC,CAAC;AACP,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IAEH,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEO,SAAS,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B,CAAC;AAC7D,QAAA,MAAM,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAE3D,QAAA,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACvD,QAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC;AAE3D,QAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;KAC5D;;uIA7GU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2HAAvB,uBAAuB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA,CAAA;8IAMW,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBA4EN,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,CAAA;;;MCvGlB,sBAAsB,CAAA;IAOjC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAEO,QAAQ,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1C,OAAO;AACR,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,QAAA,OAAO,UAAU,CAAC;KACnB;;sIAlBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0HAAtB,sBAAsB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;8BAGC,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEN,KAAK,EAAA,CAAA;sBADJ,WAAW;uBAAC,OAAO,CAAA;;;MCKT,UAAU,CAAA;IACd,cAAc,CAAC,SAAwB,EAAE,MAA6B,EAAA;QAC3E,IAAI,SAAS,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AAC5D,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AAC5B,YAAA,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC;AAC1B,gBAAA,QAAQ,EAAE,CAAC,mBAA4B,KAAI;AACzC,oBAAA,SAAS,CAAC,qBAAqB,GAAG,CAAC,mBAAmB,CAAC;AACvD,oBAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;iBAC9B;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAEM,aAAa,CAAI,KAAU,EAAE,YAAiC,EAAA;AACnE,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAC;AAEzC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE5C,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,aAAA;AAAM,iBAAA;gBACL,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACzB,aAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAI;AACrB,YAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACN;IAEM,oBAAoB,CAAI,KAAU,EAAE,kBAA0B,EAAA;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,WAAW,EAAE,IAAI,KAAI;YACpB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAErD,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;iBAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAC3E,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,aAAA;AAED,YAAA,OAAO,WAAW,CAAC;AACrB,SAAC,EACD,CAAC,EAAE,CAAU,CACd,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;YACxB,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,gCAAgC,CACrC,KAAU,EACV,YAAiC,EACjC,kBAA0B,EAAA;AAE1B,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE7C,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAEvC,YAAA,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtD,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AACpE,oBAAA,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3B,aAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAI;AACrB,YAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACN;;0HAxFU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAAV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;;MCLE,yBAAyB,CAAA;AAIpC,IAAA,oBAAoB,CAAC,CAAa,EAAA;QAChC,IAAI,kBAAkB,CAAC,CAAC,CAAC,MAAqB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE;AAC9E,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/B,SAAA;KACF;;yIARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6HAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpB,4JAIA,EAAA,MAAA,EAAA,CAAA,yhBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDMa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4JAAA,EAAA,MAAA,EAAA,CAAA,yhBAAA,CAAA,EAAA,CAAA;8BAGT,IAAI,EAAA,CAAA;sBAAzC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGpC,oBAAoB,EAAA,CAAA;sBADnB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MELtB,mBAAmB,CAAA;AAC9B,IAAA,WAAA,GAAA,GAAgB;;mIADL,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,yDCRhC,6BACA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDOa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,CAAA;;;MEkBpC,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAF7C,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAYjB,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;AAUpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AAOrC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;QA1BpD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAoBD,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;AAID,IAAA,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,WAAW;YACX,IAAI;YACJ,KAAK;AACN,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AAChD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,IAAS,EAAA;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,KAAI;AAC5C,YAAA,IAAI,WAAW,CAAC,UAAU,YAAY,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC9E,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE;AACnC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,OAAO,WAAW,CAAC,QAAQ,KAAK,MAAM,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC7E,SAAC,CAAC,CAAC;KACJ;IAED,gBAAgB,CAAC,IAAS,EAAE,SAA8B,EAAA;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrC,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,KAAI;YAC9C,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;AACjD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,SAAS,GAAG,WAAW,CAAC,QAAQ,KAAK,SAAS,GAAG,IAAI,CAAC;AAC/D,SAAC,CAAC,CAAC;KACJ;IAEO,qBAAqB,CAAC,WAA4B,EAAE,IAAS,EAAA;AACnE,QAAA,IAAI,WAAW,CAAC,UAAU,YAAY,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC9E,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,UAAU,KAAK,IAAI,CAAC;KACxC;AAED,IAAA,kBAAkB,CAAC,IAAS,EAAA;QAC1B,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;AAC9C,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,mBAAmB,CAAC,WAA4B,EAAE,IAAS,EAAA;QACzD,IAAI,CAAC,WAAW,CAAC,IAAI;YAAE,OAAO;AAE9B,QAAA,IAAI,WAAW,CAAC,IAAI,YAAY,QAAQ,EAAE;AACxC,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;QACD,OAAO,WAAW,CAAC,IAAI,CAAC;KACzB;IAED,oBAAoB,CAAC,WAA4B,EAAE,IAAS,EAAA;AAC1D,QAAA,IAAI,WAAW,CAAC,KAAK,YAAY,QAAQ,EAAE;AACzC,YAAA,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,SAAA;QACD,OAAO,WAAW,CAAC,KAAK,CAAC;KAC1B;IAED,mBAAmB,CAAC,WAA4B,EAAE,IAAS,EAAA;AACzD,QAAA,IAAI,WAAW,CAAC,IAAI,YAAY,QAAQ,EAAE;AACxC,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;QACD,OAAO,WAAW,CAAC,IAAI,CAAC;KACzB;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAClD,SAAA;KACF;;iIAtHU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAAjB,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOjB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/B3B,w2CAsCA,EAAA,MAAA,EAAA,CAAA,izOAAA,EAAA,wIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDda,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,w2CAAA,EAAA,MAAA,EAAA,CAAA,izOAAA,EAAA,wIAAA,CAAA,EAAA,CAAA;wGAWA,cAAc,EAAA,CAAA;sBAAxC,SAAS;uBAAC,cAAc,CAAA;gBAEhB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAOG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;ME/CI,0BAA0B,CAAA;;0IAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,mBAAA,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,6FCPvC,yFAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDIa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yFAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEHK,yBAAyB,CAAA;;yIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6HAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACpC,iBAAA,CAAA;;MAMY,mBAAmB,CAAA;;mIAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uHAAnB,mBAAmB,EAAA,QAAA,EAAA,8CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8CAA8C;AACzD,iBAAA,CAAA;;MAMY,0BAA0B,CAAA;;0IAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8HAA1B,0BAA0B,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4DAA4D;AACvE,iBAAA,CAAA;;MAMY,mBAAmB,CAAA;;mIAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uHAAnB,mBAAmB,EAAA,QAAA,EAAA,8CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8CAA8C;AACzD,iBAAA,CAAA;;;MC4BY,aAAa,CAAA;AAuHxB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAnH1C;;AAEG;QAEH,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;AAmBlB;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAAsB,KAAK,CAAC;AAOtD;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAE5B;;AAEG;QACM,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEjC;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAc,SAAS,CAAC;AAsBtC;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAqB,CAAC;AAE/D;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;AAE9C;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;QAEtC,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;KA0BN;AA/D9C,IAAA,IACW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;KACjC;AAED,IAAA,IACW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;KAC9B;IAyDD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAE1D,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,EAAE;AAC5C,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAE3D,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gCAAgC,CACnE,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,uBAAuB,CAC7B,CAAC;AACH,SAAA;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACrF,SAAA;aAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACvD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,uBAAuB,CAC7B,CAAC;AACH,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAA6B,EAAA;QAC3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC7C;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,OAAO,KAAK,CAAC;KACd;IAED,cAAc,CAAC,CAAS,EAAE,OAAyB,EAAA;QACjD,OAAO,OAAO,CAAC,IAAI,CAAC;KACrB;AAED,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;AAED,IAAA,mBAAmB,CAAC,IAAS,EAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;KAC9B;IAED,iBAAiB,CAAC,KAAa,EAAE,OAAe,EAAA;QAC9C,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,IAAI,CAAC,cAAc;AAAE,gBAAA,OAAO,IAAI,CAAC;;AAChC,gBAAA,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;AAChE,SAAA;AAED,QAAA,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,MAAM,CAAC;AAC5C,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,oBAAoB,GAAG,CAAA,0BAAA,EAA6B,IAAI,CAAC,iBAAiB,CAAE,CAAA,GAAG,EAAE,CAAC;KAC/F;;6HA7LU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAAb,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,UAAU,CAAC,sEAiGT,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyB,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGvD,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyB,WAAW,EAG9D,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EAAyB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAOvD,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,2BAAwB,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA1G/D,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjDpC,kkFA6EA,EAAA,MAAA,EAAA,CAAA,izOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD9Ba,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,YAAY,EAAA,SAAA,EAGX,CAAC,UAAU,CAAC,EAAA,QAAA,EAAA,kkFAAA,EAAA,MAAA,EAAA,CAAA,izOAAA,CAAA,EAAA,CAAA;8FAGc,IAAI,EAAA,CAAA;sBAAxC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACC,eAAe,EAAA,CAAA;sBAAlD,SAAS;uBAAC,uBAAuB,CAAA;gBAMlC,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAKG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBASG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGK,cAAc,EAAA,CAAA;sBADxB,WAAW;uBAAC,qBAAqB,CAAA;gBAMvB,WAAW,EAAA,CAAA;sBADrB,WAAW;uBAAC,kBAAkB,CAAA;gBAO/B,cAAc,EAAA,CAAA;sBAFb,WAAW;uBAAC,oBAAoB,CAAA;;sBAChC,KAAK;gBAOG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAKI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAOE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEE,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBAGN,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAIvE,qBAAqB,EAAA,CAAA;sBADpB,YAAY;uBAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAI9E,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAQvE,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAGzC,kBAAkB,EAAA,CAAA;sBAApD,WAAW;uBAAC,oBAAoB,CAAA;gBACK,oBAAoB,EAAA,CAAA;sBAAzD,WAAW;uBAAC,uBAAuB,CAAA;;;AE1ItC,MAAM,oBAAoB,GAAG;IAC3B,aAAa;IACb,iBAAiB;IACjB,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,yBAAyB;CAC1B,CAAC;AAEF,MAAM,YAAY,GAAG;AACnB,IAAA,GAAG,oBAAoB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,iBAAiB;CAClB,CAAC;MAQW,UAAU,CAAA;;0HAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,mBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBAxBrB,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,0BAA0B;QAC1B,0BAA0B;QAC1B,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;AACnB,QAAA,yBAAyB,EAKzB,sBAAsB;QACtB,uBAAuB;QACvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAKP,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CApB9D,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,0BAA0B;QAC1B,0BAA0B;QAC1B,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAgBd,mBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAJX,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;2FAInD,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC;AAC/D,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;AC7CD;;AAEG;;;;"}
@@ -38,7 +38,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
38
38
  args: [IonModal]
39
39
  }] } });
40
40
 
41
- class FullscreenModalExperimentalComponent {
41
+ class ModalExperimentalComponent {
42
42
  constructor() {
43
43
  this.open = false;
44
44
  this.canDismiss = true;
@@ -72,11 +72,11 @@ class FullscreenModalExperimentalComponent {
72
72
  this.ionContent.scrollToBottom(scrollDuration || 0);
73
73
  }
74
74
  }
75
- /** @nocollapse */ FullscreenModalExperimentalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FullscreenModalExperimentalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- /** @nocollapse */ FullscreenModalExperimentalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FullscreenModalExperimentalComponent, selector: "kirby-fullscreen-modal-experimental", inputs: { open: "open", canDismiss: "canDismiss", title: "title", hasCollapsibleTitle: "hasCollapsibleTitle", scrollDisabled: "scrollDisabled" }, outputs: { willPresent: "willPresent", didPresent: "didPresent", didDismiss: "didDismiss", willDismiss: "willDismiss" }, viewQueries: [{ propertyName: "modal", first: true, predicate: IonModal, descendants: true }, { propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }], ngImport: i0, template: "<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n", styles: ["ion-header{box-sizing:border-box}ion-header ion-toolbar{--padding-start: 16px;--padding-end: 16px;--padding-bottom: 12px;--padding-top: 12px;--border-width: 0;--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black))}ion-header ion-toolbar button{color:var(--color)}@media (min-width: 721px){ion-header ion-toolbar{padding-top:8px}}:host{--vh100: var(--vh, 1vh) * 100;--header-height: 0px;--footer-height: 0px}@media (min-width: 721px){:host-context(ion-modal){padding-top:0;position:relative;contain:inherit;min-height:min(var(--min-height),var(--vh100) - var(--kirby-modal-padding-top, 0px))}:host-context(ion-modal) ion-content{contain:content;max-height:calc(var(--vh100) - var(--kirby-modal-padding-top, 0px) - var(--header-height) - var(--footer-height))}:host-context(ion-modal) ion-content::part(scroll){height:\"100%\";position:relative}}ion-modal{--background: var(--kirby-modal-background, var(--kirby-background-color))}ion-title{box-sizing:border-box;padding-inline-start:calc(48px + var(--padding-start));padding-inline-end:calc(48px + var(--padding-end));font-size:22px;font-weight:700}ion-content{--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black));display:flex;flex-direction:column;--padding-top: 24px;--padding-bottom: 24px;--padding-start: 16px;--padding-end: 16px}ion-content ::ng-deep>*{box-sizing:border-box;display:block}@media (min-width: 721px){ion-content{--padding-start: 56px;--padding-end: 56px}}:host(.collapsible-title) ion-content{--padding-top: 0px}:host(.collapsible-title) ion-content ion-header ion-toolbar:first-of-type{padding-top:0;--padding-top: 0px;--padding-bottom: 0px;--padding-start: 0px;--padding-end: 0px}:host(.collapsible-title) ion-title{font-size:16px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size"] }] });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FullscreenModalExperimentalComponent, decorators: [{
75
+ /** @nocollapse */ ModalExperimentalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalExperimentalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
+ /** @nocollapse */ ModalExperimentalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalExperimentalComponent, selector: "kirby-modal-experimental", inputs: { open: "open", canDismiss: "canDismiss", title: "title", hasCollapsibleTitle: "hasCollapsibleTitle", scrollDisabled: "scrollDisabled" }, outputs: { willPresent: "willPresent", didPresent: "didPresent", didDismiss: "didDismiss", willDismiss: "willDismiss" }, viewQueries: [{ propertyName: "modal", first: true, predicate: IonModal, descendants: true }, { propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }], ngImport: i0, template: "<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n", styles: ["ion-header{box-sizing:border-box}ion-header ion-toolbar{--padding-start: 16px;--padding-end: 16px;--padding-bottom: 12px;--padding-top: 12px;--border-width: 0;--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black))}ion-header ion-toolbar button{color:var(--color)}@media (min-width: 721px){ion-header ion-toolbar{padding-top:8px}}:host{--vh100: var(--vh, 1vh) * 100;--header-height: 0px;--footer-height: 0px}@media (min-width: 721px){:host-context(ion-modal){padding-top:0;position:relative;contain:inherit;min-height:min(var(--min-height),var(--vh100) - var(--kirby-modal-padding-top, 0px))}:host-context(ion-modal) ion-content{contain:content;max-height:calc(var(--vh100) - var(--kirby-modal-padding-top, 0px) - var(--header-height) - var(--footer-height))}:host-context(ion-modal) ion-content::part(scroll){height:\"100%\";position:relative}}ion-modal{--background: var(--kirby-modal-background, var(--kirby-background-color))}ion-title{box-sizing:border-box;padding-inline-start:calc(48px + var(--padding-start));padding-inline-end:calc(48px + var(--padding-end));font-size:22px;font-weight:700}ion-content{--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black));display:flex;flex-direction:column;--padding-top: 24px;--padding-bottom: 24px;--padding-start: 16px;--padding-end: 16px}ion-content ::ng-deep>*{box-sizing:border-box;display:block}@media (min-width: 721px){ion-content{--padding-start: 56px;--padding-end: 56px}}:host(.collapsible-title) ion-content{--padding-top: 0px}:host(.collapsible-title) ion-content ion-header ion-toolbar:first-of-type{padding-top:0;--padding-top: 0px;--padding-bottom: 0px;--padding-start: 0px;--padding-end: 0px}:host(.collapsible-title) ion-title{font-size:16px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size"] }] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalExperimentalComponent, decorators: [{
78
78
  type: Component,
79
- args: [{ selector: 'kirby-fullscreen-modal-experimental', template: "<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n", styles: ["ion-header{box-sizing:border-box}ion-header ion-toolbar{--padding-start: 16px;--padding-end: 16px;--padding-bottom: 12px;--padding-top: 12px;--border-width: 0;--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black))}ion-header ion-toolbar button{color:var(--color)}@media (min-width: 721px){ion-header ion-toolbar{padding-top:8px}}:host{--vh100: var(--vh, 1vh) * 100;--header-height: 0px;--footer-height: 0px}@media (min-width: 721px){:host-context(ion-modal){padding-top:0;position:relative;contain:inherit;min-height:min(var(--min-height),var(--vh100) - var(--kirby-modal-padding-top, 0px))}:host-context(ion-modal) ion-content{contain:content;max-height:calc(var(--vh100) - var(--kirby-modal-padding-top, 0px) - var(--header-height) - var(--footer-height))}:host-context(ion-modal) ion-content::part(scroll){height:\"100%\";position:relative}}ion-modal{--background: var(--kirby-modal-background, var(--kirby-background-color))}ion-title{box-sizing:border-box;padding-inline-start:calc(48px + var(--padding-start));padding-inline-end:calc(48px + var(--padding-end));font-size:22px;font-weight:700}ion-content{--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black));display:flex;flex-direction:column;--padding-top: 24px;--padding-bottom: 24px;--padding-start: 16px;--padding-end: 16px}ion-content ::ng-deep>*{box-sizing:border-box;display:block}@media (min-width: 721px){ion-content{--padding-start: 56px;--padding-end: 56px}}:host(.collapsible-title) ion-content{--padding-top: 0px}:host(.collapsible-title) ion-content ion-header ion-toolbar:first-of-type{padding-top:0;--padding-top: 0px;--padding-bottom: 0px;--padding-start: 0px;--padding-end: 0px}:host(.collapsible-title) ion-title{font-size:16px;font-weight:700}\n"] }]
79
+ args: [{ selector: 'kirby-modal-experimental', template: "<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n", styles: ["ion-header{box-sizing:border-box}ion-header ion-toolbar{--padding-start: 16px;--padding-end: 16px;--padding-bottom: 12px;--padding-top: 12px;--border-width: 0;--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black))}ion-header ion-toolbar button{color:var(--color)}@media (min-width: 721px){ion-header ion-toolbar{padding-top:8px}}:host{--vh100: var(--vh, 1vh) * 100;--header-height: 0px;--footer-height: 0px}@media (min-width: 721px){:host-context(ion-modal){padding-top:0;position:relative;contain:inherit;min-height:min(var(--min-height),var(--vh100) - var(--kirby-modal-padding-top, 0px))}:host-context(ion-modal) ion-content{contain:content;max-height:calc(var(--vh100) - var(--kirby-modal-padding-top, 0px) - var(--header-height) - var(--footer-height))}:host-context(ion-modal) ion-content::part(scroll){height:\"100%\";position:relative}}ion-modal{--background: var(--kirby-modal-background, var(--kirby-background-color))}ion-title{box-sizing:border-box;padding-inline-start:calc(48px + var(--padding-start));padding-inline-end:calc(48px + var(--padding-end));font-size:22px;font-weight:700}ion-content{--background: transparent;--color: var(--kirby-modal-color, var(--kirby-black));display:flex;flex-direction:column;--padding-top: 24px;--padding-bottom: 24px;--padding-start: 16px;--padding-end: 16px}ion-content ::ng-deep>*{box-sizing:border-box;display:block}@media (min-width: 721px){ion-content{--padding-start: 56px;--padding-end: 56px}}:host(.collapsible-title) ion-content{--padding-top: 0px}:host(.collapsible-title) ion-content ion-header ion-toolbar:first-of-type{padding-top:0;--padding-top: 0px;--padding-bottom: 0px;--padding-start: 0px;--padding-end: 0px}:host(.collapsible-title) ion-title{font-size:16px;font-weight:700}\n"] }]
80
80
  }], propDecorators: { modal: [{
81
81
  type: ViewChild,
82
82
  args: [IonModal]
@@ -110,10 +110,10 @@ class ModalFooterExperimentalComponent {
110
110
  }
111
111
  }
112
112
  /** @nocollapse */ ModalFooterExperimentalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalFooterExperimentalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- /** @nocollapse */ ModalFooterExperimentalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalFooterExperimentalComponent, selector: "kirby-modal-footer-experimental", inputs: { snapToKeyboard: "snapToKeyboard", type: "type" }, host: { properties: { "class.snap-to-keyboard": "this.snapToKeyboard", "class": "this.type" } }, ngImport: i0, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: ["ion-footer{display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"], dependencies: [{ kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }] });
113
+ /** @nocollapse */ ModalFooterExperimentalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalFooterExperimentalComponent, selector: "kirby-modal-footer-experimental", inputs: { snapToKeyboard: "snapToKeyboard", type: "type" }, host: { properties: { "class.snap-to-keyboard": "this.snapToKeyboard", "class": "this.type" } }, ngImport: i0, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: [":host,:root{--kirby-white-overlay: hsl(0deg 0% 100% / 15%);--kirby-white-overlay-10: hsl(0deg 0% 100% / 10%);--kirby-white-overlay-20: hsl(0deg 0% 100% / 20%);--kirby-white-overlay-30: hsl(0deg 0% 100% / 30%);--kirby-white-overlay-40: hsl(0deg 0% 100% / 40%);--kirby-white-overlay-50: hsl(0deg 0% 100% / 50%);--kirby-dark-overlay: hsl(0deg 0% 11% / 6%);--kirby-dark-overlay-10: hsl(0deg 0% 11% / 10%);--kirby-dark-overlay-20: hsl(0deg 0% 11% / 20%);--kirby-dark-overlay-30: hsl(0deg 0% 11% / 30%);--kirby-dark-overlay-40: hsl(0deg 0% 11% / 40%);--kirby-dark-overlay-50: hsl(0deg 0% 11% / 50%);--kirby-white: hsl(0deg 0% 100%);--kirby-black: hsl(0deg 0% 11%);--kirby-semi-dark: hsl(0deg 0% 56%);--kirby-elevation-2: 0 1px 24px 0 rgb(28 28 28 / 4%);--kirby-elevation-4: 0 20px 30px -15px hsla(0deg 0% 11% 30%), 0 0 5px 0 hsla(0deg 0% 11% 8%)}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}ion-footer{--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"], dependencies: [{ kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }] });
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalFooterExperimentalComponent, decorators: [{
115
115
  type: Component,
116
- args: [{ selector: 'kirby-modal-footer-experimental', template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: ["ion-footer{display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"] }]
116
+ args: [{ selector: 'kirby-modal-footer-experimental', template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: [":host,:root{--kirby-white-overlay: hsl(0deg 0% 100% / 15%);--kirby-white-overlay-10: hsl(0deg 0% 100% / 10%);--kirby-white-overlay-20: hsl(0deg 0% 100% / 20%);--kirby-white-overlay-30: hsl(0deg 0% 100% / 30%);--kirby-white-overlay-40: hsl(0deg 0% 100% / 40%);--kirby-white-overlay-50: hsl(0deg 0% 100% / 50%);--kirby-dark-overlay: hsl(0deg 0% 11% / 6%);--kirby-dark-overlay-10: hsl(0deg 0% 11% / 10%);--kirby-dark-overlay-20: hsl(0deg 0% 11% / 20%);--kirby-dark-overlay-30: hsl(0deg 0% 11% / 30%);--kirby-dark-overlay-40: hsl(0deg 0% 11% / 40%);--kirby-dark-overlay-50: hsl(0deg 0% 11% / 50%);--kirby-white: hsl(0deg 0% 100%);--kirby-black: hsl(0deg 0% 11%);--kirby-semi-dark: hsl(0deg 0% 56%);--kirby-elevation-2: 0 1px 24px 0 rgb(28 28 28 / 4%);--kirby-elevation-4: 0 20px 30px -15px hsla(0deg 0% 11% 30%), 0 0 5px 0 hsla(0deg 0% 11% 8%)}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}ion-footer{--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"] }]
117
117
  }], propDecorators: { snapToKeyboard: [{
118
118
  type: HostBinding,
119
119
  args: ['class.snap-to-keyboard']
@@ -199,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
199
199
  }], ctorParameters: function () { return [{ type: i2.ModalController }]; } });
200
200
 
201
201
  const COMPONENT_DECLARATIONS = [
202
- FullscreenModalExperimentalComponent,
202
+ ModalExperimentalComponent,
203
203
  ModalFooterExperimentalComponent,
204
204
  ModalWrapperExperimentalComponent,
205
205
  ModalRoutingExperimentalComponent,
@@ -207,10 +207,10 @@ const COMPONENT_DECLARATIONS = [
207
207
  class KirbyModalModule {
208
208
  }
209
209
  /** @nocollapse */ KirbyModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: KirbyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
210
- /** @nocollapse */ KirbyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: KirbyModalModule, declarations: [FullscreenModalExperimentalComponent,
210
+ /** @nocollapse */ KirbyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: KirbyModalModule, declarations: [ModalExperimentalComponent,
211
211
  ModalFooterExperimentalComponent,
212
212
  ModalWrapperExperimentalComponent,
213
- ModalRoutingExperimentalComponent], imports: [CommonModule, IonicModule, IconModule, ButtonComponent, RouterModule], exports: [FullscreenModalExperimentalComponent,
213
+ ModalRoutingExperimentalComponent], imports: [CommonModule, IonicModule, IconModule, ButtonComponent, RouterModule], exports: [ModalExperimentalComponent,
214
214
  ModalFooterExperimentalComponent,
215
215
  ModalWrapperExperimentalComponent,
216
216
  ModalRoutingExperimentalComponent] });
@@ -229,5 +229,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
229
229
  * Generated bundle index. Do not edit.
230
230
  */
231
231
 
232
- export { FullscreenModalExperimentalComponent, KirbyModalModule, ModalExperimentalController, ModalFooterExperimentalComponent, ModalRoutingExperimentalComponent, ModalWrapperExperimentalComponent };
232
+ export { KirbyModalModule, ModalExperimentalComponent, ModalExperimentalController, ModalFooterExperimentalComponent, ModalRoutingExperimentalComponent, ModalWrapperExperimentalComponent };
233
233
  //# sourceMappingURL=kirbydesign-designsystem-modal-experimental.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-modal-experimental.mjs","sources":["../../../../libs/designsystem/modal/experimental/src/modal-routing/modal-routing.component.ts","../../../../libs/designsystem/modal/experimental/src/modal-routing/modal-routing.component.html","../../../../libs/designsystem/modal/experimental/src/fullscreen/fullscreen.component.ts","../../../../libs/designsystem/modal/experimental/src/fullscreen/fullscreen.component.html","../../../../libs/designsystem/modal/experimental/src/footer/footer.component.ts","../../../../libs/designsystem/modal/experimental/src/footer/footer.component.html","../../../../libs/designsystem/modal/experimental/src/wrapper/wrapper.component.ts","../../../../libs/designsystem/modal/experimental/src/wrapper/wrapper.component.html","../../../../libs/designsystem/modal/experimental/src/services/modal.controller.ts","../../../../libs/designsystem/modal/experimental/src/kirby-modal.module.ts","../../../../libs/designsystem/modal/experimental/src/kirbydesign-designsystem-modal-experimental.ts"],"sourcesContent":["import { Component, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IonModal } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-modal-routing-wrapper',\n templateUrl: './modal-routing.component.html',\n styleUrls: ['./modal-routing.component.scss'],\n})\nexport class ModalRoutingExperimentalComponent implements OnDestroy {\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n @ViewChild(IonModal) modal: IonModal;\n\n isOpen = true;\n\n closeModal() {\n this.isOpen = false;\n this.router.navigate([{ outlets: { 'modal-experimental': null } }], {\n relativeTo: this.route.parent,\n });\n }\n\n ngOnDestroy() {\n this.modal.dismiss(null, 'cancel');\n }\n}\n","<ion-modal [isOpen]=\"isOpen\" (willDismiss)=\"closeModal()\">\n <ng-template>\n <div fxFlex class=\"outlet-container\">\n <router-outlet></router-outlet>\n </div>\n </ng-template>\n</ion-modal>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IonContent, IonModal } from '@ionic/angular';\nimport { OverlayEventDetail } from '@ionic/core/components';\nimport { KirbyAnimation } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-fullscreen-modal-experimental',\n templateUrl: './fullscreen.component.html',\n styleUrls: ['./fullscreen.component.scss'],\n})\nexport class FullscreenModalExperimentalComponent {\n @ViewChild(IonModal) modal: IonModal;\n @ViewChild(IonContent) ionContent: IonContent;\n\n @Input() open = false;\n @Input() canDismiss: boolean | (() => Promise<boolean>) = true;\n @Input() title = '';\n @Input() hasCollapsibleTitle = false;\n @Input() scrollDisabled = false;\n\n @Output() willPresent = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() didPresent = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() didDismiss = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() willDismiss = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n\n _closeModal() {\n this.modal.dismiss(null, 'cancel');\n }\n\n _onWillPresent(event: CustomEvent<OverlayEventDetail>) {\n this.willPresent.emit(event);\n }\n\n _onDidPresent(event: CustomEvent<OverlayEventDetail>) {\n this.didPresent.emit(event);\n }\n\n _onWillDismiss(event: CustomEvent<OverlayEventDetail>) {\n this.willDismiss.emit(event);\n }\n\n _onDidDismiss(event: CustomEvent<OverlayEventDetail>) {\n this.didDismiss.emit(event);\n }\n\n public scrollToTop(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToTop(scrollDuration || 0);\n }\n\n public scrollToBottom(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToBottom(scrollDuration || 0);\n }\n}\n","<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-modal-footer-experimental',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class ModalFooterExperimentalComponent {\n @HostBinding('class.snap-to-keyboard')\n @Input()\n snapToKeyboard = false;\n\n @HostBinding('class')\n @Input()\n type: 'inline' | 'fixed' = 'fixed';\n}\n","<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { IonModal } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-modal-wrapper-experimental',\n templateUrl: './wrapper.component.html',\n styleUrls: ['./wrapper.component.scss'],\n})\nexport class ModalWrapperExperimentalComponent implements OnInit {\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n private ionModalElement?: HTMLIonModalElement;\n\n @Input() title = '';\n @Input() hasCollapsibleTitle = true;\n @Input() scrollDisabled = false;\n\n ngOnInit() {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n }\n\n close() {\n this.ionModalElement.dismiss();\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"close()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n</ion-content>\n<ng-content select=\"[footer]\"></ng-content>\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { from, Observable, Subject, switchMap, tap } from 'rxjs';\nimport { OverlayEventDetail } from '@ionic/core/components';\n\nexport type ModalFlavor = 'modal';\n\nexport type ModalExperimentalConfig = {\n flavor?: ModalFlavor;\n component: any;\n componentProps?: { [key: string]: any };\n cssClass?: string | string[];\n canDismiss?: boolean | (() => Promise<boolean>);\n backdropDismiss?: boolean;\n showBackdrop?: boolean;\n};\n\ntype ModalDismissObservables = {\n onWillDismiss: Observable<OverlayEventDetail>;\n onDidDismiss: Observable<OverlayEventDetail>;\n};\n@Injectable()\nexport class ModalExperimentalController {\n private isModalOpening = false;\n\n constructor(private ionicModalController: ModalController) {}\n\n public showModal(config: ModalExperimentalConfig): ModalDismissObservables {\n if (this.isModalOpening) return;\n\n const $onWillDismiss = new Subject<OverlayEventDetail>();\n const onWillDismiss$ = $onWillDismiss.asObservable();\n\n const $onDidDismiss = new Subject<OverlayEventDetail>();\n const onDidDismiss$ = $onDidDismiss.asObservable();\n\n const modal$ = from(\n this.ionicModalController.create({\n component: config.component,\n componentProps: config.componentProps,\n cssClass: config.cssClass,\n canDismiss: config.canDismiss,\n backdropDismiss: config.backdropDismiss,\n showBackdrop: config.showBackdrop,\n })\n );\n\n this.isModalOpening = true;\n\n modal$\n .pipe(\n tap((modal) => from(modal.present())),\n switchMap((modal) => modal.onWillDismiss())\n )\n .subscribe((res) => {\n this.isModalOpening = false;\n\n $onWillDismiss.next(res);\n $onWillDismiss.complete();\n\n $onDidDismiss.next(res);\n $onDidDismiss.complete();\n });\n\n return {\n onWillDismiss: onWillDismiss$,\n onDidDismiss: onDidDismiss$,\n };\n }\n\n public closeModal(data?: unknown, role?: string): void {\n this.ionicModalController.dismiss(data, role);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { RouterModule } from '@angular/router';\nimport { FullscreenModalExperimentalComponent } from './fullscreen/fullscreen.component';\nimport { ModalFooterExperimentalComponent } from './footer/footer.component';\nimport { ModalWrapperExperimentalComponent } from './wrapper/wrapper.component';\nimport { ModalExperimentalController } from './services/modal.controller';\nimport { ModalRoutingExperimentalComponent } from './modal-routing/modal-routing.component';\n\nconst COMPONENT_DECLARATIONS = [\n FullscreenModalExperimentalComponent,\n ModalFooterExperimentalComponent,\n ModalWrapperExperimentalComponent,\n ModalRoutingExperimentalComponent,\n];\n@NgModule({\n declarations: COMPONENT_DECLARATIONS,\n imports: [CommonModule, IonicModule, IconModule, ButtonComponent, RouterModule],\n exports: COMPONENT_DECLARATIONS,\n providers: [ModalExperimentalController],\n})\nexport class KirbyModalModule {}\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-modal-experimental.mjs","sources":["../../../../libs/designsystem/modal/experimental/src/modal-routing/modal-routing.component.ts","../../../../libs/designsystem/modal/experimental/src/modal-routing/modal-routing.component.html","../../../../libs/designsystem/modal/experimental/src/modal/modal.component.ts","../../../../libs/designsystem/modal/experimental/src/modal/modal.component.html","../../../../libs/designsystem/modal/experimental/src/footer/footer.component.ts","../../../../libs/designsystem/modal/experimental/src/footer/footer.component.html","../../../../libs/designsystem/modal/experimental/src/wrapper/wrapper.component.ts","../../../../libs/designsystem/modal/experimental/src/wrapper/wrapper.component.html","../../../../libs/designsystem/modal/experimental/src/services/modal.controller.ts","../../../../libs/designsystem/modal/experimental/src/kirby-modal.module.ts","../../../../libs/designsystem/modal/experimental/src/kirbydesign-designsystem-modal-experimental.ts"],"sourcesContent":["import { Component, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IonModal } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-modal-routing-wrapper',\n templateUrl: './modal-routing.component.html',\n styleUrls: ['./modal-routing.component.scss'],\n})\nexport class ModalRoutingExperimentalComponent implements OnDestroy {\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n @ViewChild(IonModal) modal: IonModal;\n\n isOpen = true;\n\n closeModal() {\n this.isOpen = false;\n this.router.navigate([{ outlets: { 'modal-experimental': null } }], {\n relativeTo: this.route.parent,\n });\n }\n\n ngOnDestroy() {\n this.modal.dismiss(null, 'cancel');\n }\n}\n","<ion-modal [isOpen]=\"isOpen\" (willDismiss)=\"closeModal()\">\n <ng-template>\n <div fxFlex class=\"outlet-container\">\n <router-outlet></router-outlet>\n </div>\n </ng-template>\n</ion-modal>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IonContent, IonModal } from '@ionic/angular';\nimport { OverlayEventDetail } from '@ionic/core/components';\nimport { KirbyAnimation } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-modal-experimental',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalExperimentalComponent {\n @ViewChild(IonModal) modal: IonModal;\n @ViewChild(IonContent) ionContent: IonContent;\n\n @Input() open = false;\n @Input() canDismiss: boolean | (() => Promise<boolean>) = true;\n @Input() title = '';\n @Input() hasCollapsibleTitle = false;\n @Input() scrollDisabled = false;\n\n @Output() willPresent = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() didPresent = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() didDismiss = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n @Output() willDismiss = new EventEmitter<CustomEvent<OverlayEventDetail>>();\n\n _closeModal() {\n this.modal.dismiss(null, 'cancel');\n }\n\n _onWillPresent(event: CustomEvent<OverlayEventDetail>) {\n this.willPresent.emit(event);\n }\n\n _onDidPresent(event: CustomEvent<OverlayEventDetail>) {\n this.didPresent.emit(event);\n }\n\n _onWillDismiss(event: CustomEvent<OverlayEventDetail>) {\n this.willDismiss.emit(event);\n }\n\n _onDidDismiss(event: CustomEvent<OverlayEventDetail>) {\n this.didDismiss.emit(event);\n }\n\n public scrollToTop(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToTop(scrollDuration || 0);\n }\n\n public scrollToBottom(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToBottom(scrollDuration || 0);\n }\n}\n","<ion-modal\n [isOpen]=\"open\"\n [canDismiss]=\"canDismiss\"\n (willPresent)=\"_onWillPresent($event)\"\n (didPresent)=\"_onDidPresent($event)\"\n (willDismiss)=\"_onWillDismiss($event)\"\n (didDismiss)=\"_onDidDismiss($event)\"\n>\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"_closeModal()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n </ion-content>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n</ion-modal>\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-modal-footer-experimental',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class ModalFooterExperimentalComponent {\n @HostBinding('class.snap-to-keyboard')\n @Input()\n snapToKeyboard = false;\n\n @HostBinding('class')\n @Input()\n type: 'inline' | 'fixed' = 'fixed';\n}\n","<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { IonModal } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-modal-wrapper-experimental',\n templateUrl: './wrapper.component.html',\n styleUrls: ['./wrapper.component.scss'],\n})\nexport class ModalWrapperExperimentalComponent implements OnInit {\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n private ionModalElement?: HTMLIonModalElement;\n\n @Input() title = '';\n @Input() hasCollapsibleTitle = true;\n @Input() scrollDisabled = false;\n\n ngOnInit() {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n }\n\n close() {\n this.ionModalElement.dismiss();\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ng-content select=\"[header-start]\"></ng-content>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <button kirby-button [noDecoration]=\"true\" size=\"md\" (click)=\"close()\">\n <kirby-icon [name]=\"'close'\"></kirby-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [scrollEvents]=\"true\" [scrollY]=\"!scrollDisabled\">\n <ion-header *ngIf=\"hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\">{{ title }}</span>\n </ion-toolbar>\n </ion-header>\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n</ion-content>\n<ng-content select=\"[footer]\"></ng-content>\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { from, Observable, Subject, switchMap, tap } from 'rxjs';\nimport { OverlayEventDetail } from '@ionic/core/components';\n\nexport type ModalFlavor = 'modal';\n\nexport type ModalExperimentalConfig = {\n flavor?: ModalFlavor;\n component: any;\n componentProps?: { [key: string]: any };\n cssClass?: string | string[];\n canDismiss?: boolean | (() => Promise<boolean>);\n backdropDismiss?: boolean;\n showBackdrop?: boolean;\n};\n\ntype ModalDismissObservables = {\n onWillDismiss: Observable<OverlayEventDetail>;\n onDidDismiss: Observable<OverlayEventDetail>;\n};\n@Injectable()\nexport class ModalExperimentalController {\n private isModalOpening = false;\n\n constructor(private ionicModalController: ModalController) {}\n\n public showModal(config: ModalExperimentalConfig): ModalDismissObservables {\n if (this.isModalOpening) return;\n\n const $onWillDismiss = new Subject<OverlayEventDetail>();\n const onWillDismiss$ = $onWillDismiss.asObservable();\n\n const $onDidDismiss = new Subject<OverlayEventDetail>();\n const onDidDismiss$ = $onDidDismiss.asObservable();\n\n const modal$ = from(\n this.ionicModalController.create({\n component: config.component,\n componentProps: config.componentProps,\n cssClass: config.cssClass,\n canDismiss: config.canDismiss,\n backdropDismiss: config.backdropDismiss,\n showBackdrop: config.showBackdrop,\n })\n );\n\n this.isModalOpening = true;\n\n modal$\n .pipe(\n tap((modal) => from(modal.present())),\n switchMap((modal) => modal.onWillDismiss())\n )\n .subscribe((res) => {\n this.isModalOpening = false;\n\n $onWillDismiss.next(res);\n $onWillDismiss.complete();\n\n $onDidDismiss.next(res);\n $onDidDismiss.complete();\n });\n\n return {\n onWillDismiss: onWillDismiss$,\n onDidDismiss: onDidDismiss$,\n };\n }\n\n public closeModal(data?: unknown, role?: string): void {\n this.ionicModalController.dismiss(data, role);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { RouterModule } from '@angular/router';\nimport { ModalExperimentalComponent } from './modal/modal.component';\nimport { ModalFooterExperimentalComponent } from './footer/footer.component';\nimport { ModalWrapperExperimentalComponent } from './wrapper/wrapper.component';\nimport { ModalExperimentalController } from './services/modal.controller';\nimport { ModalRoutingExperimentalComponent } from './modal-routing/modal-routing.component';\n\nconst COMPONENT_DECLARATIONS = [\n ModalExperimentalComponent,\n ModalFooterExperimentalComponent,\n ModalWrapperExperimentalComponent,\n ModalRoutingExperimentalComponent,\n];\n@NgModule({\n declarations: COMPONENT_DECLARATIONS,\n imports: [CommonModule, IonicModule, IconModule, ButtonComponent, RouterModule],\n exports: COMPONENT_DECLARATIONS,\n providers: [ModalExperimentalController],\n})\nexport class KirbyModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
@@ -1583,10 +1583,10 @@ class ModalFooterComponent extends ModalElementComponent {
1583
1583
  }
1584
1584
  }
1585
1585
  /** @nocollapse */ ModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalFooterComponent, deps: [{ token: i0.ElementRef }, { token: ModalElementsAdvertiser, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1586
- /** @nocollapse */ ModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalFooterComponent, isStandalone: true, selector: "kirby-modal-footer", inputs: { snapToKeyboard: "snapToKeyboard", type: "type" }, host: { properties: { "class.snap-to-keyboard": "this.snapToKeyboard", "class": "this.type" } }, usesInheritance: true, ngImport: i0, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: ["ion-footer{box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14;display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1586
+ /** @nocollapse */ ModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalFooterComponent, isStandalone: true, selector: "kirby-modal-footer", inputs: { snapToKeyboard: "snapToKeyboard", type: "type" }, host: { properties: { "class.snap-to-keyboard": "this.snapToKeyboard", "class": "this.type" } }, usesInheritance: true, ngImport: i0, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: [":host,:root{--kirby-white-overlay: hsl(0deg 0% 100% / 15%);--kirby-white-overlay-10: hsl(0deg 0% 100% / 10%);--kirby-white-overlay-20: hsl(0deg 0% 100% / 20%);--kirby-white-overlay-30: hsl(0deg 0% 100% / 30%);--kirby-white-overlay-40: hsl(0deg 0% 100% / 40%);--kirby-white-overlay-50: hsl(0deg 0% 100% / 50%);--kirby-dark-overlay: hsl(0deg 0% 11% / 6%);--kirby-dark-overlay-10: hsl(0deg 0% 11% / 10%);--kirby-dark-overlay-20: hsl(0deg 0% 11% / 20%);--kirby-dark-overlay-30: hsl(0deg 0% 11% / 30%);--kirby-dark-overlay-40: hsl(0deg 0% 11% / 40%);--kirby-dark-overlay-50: hsl(0deg 0% 11% / 50%);--kirby-white: hsl(0deg 0% 100%);--kirby-black: hsl(0deg 0% 11%);--kirby-semi-dark: hsl(0deg 0% 56%);--kirby-elevation-2: 0 1px 24px 0 rgb(28 28 28 / 4%);--kirby-elevation-4: 0 20px 30px -15px hsla(0deg 0% 11% 30%), 0 0 5px 0 hsla(0deg 0% 11% 8%)}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}ion-footer{--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14;display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1587
1587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalFooterComponent, decorators: [{
1588
1588
  type: Component,
1589
- args: [{ standalone: true, imports: [IonicModule, ThemeColorDirective], selector: 'kirby-modal-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: ["ion-footer{box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14;display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"] }]
1589
+ args: [{ standalone: true, imports: [IonicModule, ThemeColorDirective, CommonModule], selector: 'kirby-modal-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n", styles: [":host,:root{--kirby-white-overlay: hsl(0deg 0% 100% / 15%);--kirby-white-overlay-10: hsl(0deg 0% 100% / 10%);--kirby-white-overlay-20: hsl(0deg 0% 100% / 20%);--kirby-white-overlay-30: hsl(0deg 0% 100% / 30%);--kirby-white-overlay-40: hsl(0deg 0% 100% / 40%);--kirby-white-overlay-50: hsl(0deg 0% 100% / 50%);--kirby-dark-overlay: hsl(0deg 0% 11% / 6%);--kirby-dark-overlay-10: hsl(0deg 0% 11% / 10%);--kirby-dark-overlay-20: hsl(0deg 0% 11% / 20%);--kirby-dark-overlay-30: hsl(0deg 0% 11% / 30%);--kirby-dark-overlay-40: hsl(0deg 0% 11% / 40%);--kirby-dark-overlay-50: hsl(0deg 0% 11% / 50%);--kirby-white: hsl(0deg 0% 100%);--kirby-black: hsl(0deg 0% 11%);--kirby-semi-dark: hsl(0deg 0% 56%);--kirby-elevation-2: 0 1px 24px 0 rgb(28 28 28 / 4%);--kirby-elevation-4: 0 20px 30px -15px hsla(0deg 0% 11% 30%), 0 0 5px 0 hsla(0deg 0% 11% 8%)}ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}ion-footer{--kirby-inputs-background-color: var(--kirby-dark-overlay);--kirby-inputs-background-color-hover: var(--kirby-dark-overlay-10);--kirby-inputs-background-color-active: var(--kirby-dark-overlay-20);--kirby-inputs-color: var(--kirby-black);--kirby-inputs-indicator-background-color: var(--kirby-black);--kirby-inputs-indicator-color: var(--kirby-white);--kirby-inputs-placeholder-color: var(--kirby-semi-dark);box-shadow:0 20px 30px -15px #1c1c1c4d,0 0 5px #1c1c1c14;display:flex;justify-content:var(--kirby-modal-footer-justify-content, center);align-items:center;background-color:var(--kirby-modal-footer-background, var(--kirby-white));color:var(--kirby-modal-footer-color, var(--kirby-white-contrast));padding:8px 16px;padding-bottom:calc(8px + var(--kirby-modal-footer-safe-area-bottom, 0px))}@media (max-width: 720px){:host{--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}}:host{box-sizing:border-box}:host(.snap-to-keyboard) ion-footer{transition:transform .15s ease-out}:host(.light) ion-footer{background-color:var(--kirby-background-color)}:host(.inline) ion-footer{background:transparent;box-shadow:none}:host-context(.keyboard-visible).snap-to-keyboard ion-footer{transition:transform .25s ease-out 1ms;transform:translateY(calc((var(--keyboard-offset, 0px) - var(--kirby-modal-footer-safe-area-bottom, 0px)) * -1))}:host-context(.modal-wrapper.full-height){--kirby-modal-footer-safe-area-bottom: var(--kirby-safe-area-bottom)}\n"] }]
1590
1590
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ModalElementsAdvertiser, decorators: [{
1591
1591
  type: Optional
1592
1592
  }] }]; }, propDecorators: { snapToKeyboard: [{