@kirbydesign/designsystem 11.6.2 → 11.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/kirbydesign-designsystem-accordion.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-button.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-calendar.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-card.mjs +16 -16
- package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-form-field.mjs +44 -36
- package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
- package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
- package/fesm2022/kirbydesign-designsystem-icon.mjs +11 -10
- package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-list.mjs +41 -41
- package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-modal.mjs +42 -42
- package/fesm2022/kirbydesign-designsystem-page.mjs +41 -41
- package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-radio.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-range.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-slide.mjs +13 -13
- package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-tabs.mjs +13 -13
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-toggle.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem.mjs +13 -13
- package/icons/svg/chainlink.svg +3 -0
- package/package.json +2 -2
- package/types/kirbydesign-designsystem-accordion.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-action-group.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-badge.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-button.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-calendar.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-card.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-chart.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-config.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-data-table.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-divider.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-flag.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-form-field.d.ts +2 -0
- package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-header.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-icon.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-item-group.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-item.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-kirby-app.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-list.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-menu.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-modal.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-popover.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-radio.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-range.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-reorder-list.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-router-outlet.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-section-header.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-shared-floating.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-shared.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-slide-button.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-slide.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-spinner.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-testing-jest.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-testing.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-toast.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-toggle-button.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-toggle.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-types.d.ts.map +1 -1
- package/types/kirbydesign-designsystem.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-list.mjs","sources":["../../list/src/directives/infinite-scroll.directive.ts","../../list/src/directives/list-item-color.directive.ts","../../list/src/helpers/list-helper.ts","../../list/src/list-experimental/list-experimental.component.ts","../../list/src/list-experimental/list-experimental.component.html","../../list/src/list-header/list-header.component.ts","../../list/src/list-header/list-header.component.html","../../list/src/list-item/list-item.component.ts","../../list/src/list-item/list-item.component.html","../../list/src/list-section-header/list-section-header.component.ts","../../list/src/list-section-header/list-section-header.component.html","../../list/src/list.directive.ts","../../list/src/list.component.ts","../../list/src/list.component.html","../../list/src/list.module.ts","../../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({ selector: '[kirbyInfiniteScroll]' })\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(\n private elementRef: ElementRef,\n private windowRef: WindowRef,\n private zone: NgZone\n ) {}\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({ selector: '[kirbyListItemColor]' })\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';\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) {\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/standalone';\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 { IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular/standalone';\n\nimport { ThemeColor } from '@kirbydesign/core';\nimport { PlatformService } from '@kirbydesign/designsystem/helpers';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\nimport { ListItemColorDirective } from '../directives/list-item-color.directive';\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 imports: [\n IonItemSliding,\n ListItemColorDirective,\n NgClass,\n NgTemplateOutlet,\n IonItemOptions,\n IconComponent,\n IonLabel,\n ],\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 | 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 @if (_hasSwipeActions(item)) {\n <ion-item-options [side]=\"_getSwipeActionEnd(item)\">\n <div class=\"swipe-action\">\n @for (swipeAction of _getSwipeActions(item); track swipeAction.title) {\n <ion-item-option\n [ngClass]=\"_getSwipeActionType(swipeAction, item)\"\n (click)=\"_onSwipeActionSelect(swipeAction, item, $event)\"\n >\n <div class=\"item-content\">\n @if (_getSwipeActionIcon(swipeAction, item)) {\n <kirby-icon size=\"sm\" [name]=\"_getSwipeActionIcon(swipeAction, item)\"></kirby-icon>\n }\n <ion-label>\n {{ _getSwipeActionTitle(swipeAction, item) }}\n </ion-label>\n </div>\n </ion-item-option>\n }\n </div>\n </ion-item-options>\n }\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({ selector: '[kirbyListItemTemplate]' })\nexport class ListItemTemplateDirective {}\n\n@Directive({ selector: '[kirbyListHeader], [kirbyListHeaderTemplate]' })\nexport class ListHeaderDirective {}\n\n@Directive({ selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]' })\nexport class ListSectionHeaderDirective {}\n\n@Directive({ selector: '[kirbyListFooter], [kirbyListFooterTemplate]' })\nexport class ListFooterDirective {}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { IonItemDivider, IonItemGroup, IonList, IonListHeader } from '@ionic/angular/standalone';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SpinnerComponent } from '@kirbydesign/designsystem/spinner';\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass, ListItemComponent } 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 } 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 imports: [\n IonList,\n InfiniteScrollDirective,\n IonListHeader,\n NgTemplateOutlet,\n SpinnerComponent,\n IonItemGroup,\n NgClass,\n IonItemDivider,\n ListItemComponent,\n ],\n})\nexport class ListComponent implements OnInit, OnChanges, AfterViewInit {\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 private _attributesToForward = ['aria-label', 'aria-labelledby'];\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(\n private listHelper: ListHelper,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\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 ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-list')\n );\n }\n\n _onLoadOnDemand() {\n this.listHelper.onLoadOnDemand(this);\n }\n\n sectionTrackBy(index: number, section: { name: string }): string | number {\n return section?.name ?? index;\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 @if (headerTemplate) {\n <ion-list-header>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ion-list-header>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n _isSectionsEnabled || _isStandAloneEnabled ? groupedListTemplate : itemsTemplate;\n context: { $implicit: items }\n \"\n ></ng-container>\n\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n</ion-list>\n\n@if (!isLoadOnDemandEnabled && noMoreItemsText) {\n <p class=\"no-more-items\">\n {{ noMoreItemsText }}\n </p>\n}\n@if (_isLoading) {\n <div class=\"loading\">\n <kirby-spinner></kirby-spinner>\n </div>\n}\n\n<ng-template #groupedListTemplate>\n @for (section of _groupedItems; track sectionTrackBy($index, section)) {\n <ion-item-group [ngClass]=\"standAloneClass()\">\n @if (_isSectionsEnabled) {\n <ion-item-divider>\n <ng-container\n *ngTemplateOutlet=\"sectionHeaderTemplate; context: { $implicit: section.name }\"\n ></ng-container>\n </ion-item-divider>\n }\n @if (_isSectionsEnabled && _isStandAloneEnabled) {\n @for (list of section.lists; track list) {\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: list }\"\n ></ng-container>\n </div>\n }\n } @else {\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: section.items }\"\n ></ng-container>\n </div>\n }\n </ion-item-group>\n }\n</ng-template>\n\n<ng-template #itemsTemplate let-items>\n @for (item of items; track trackBy || $index; let i = $index) {\n <kirby-list-item\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 }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\nimport {\n IonItemDivider,\n IonItemGroup,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n} from '@ionic/angular/standalone';\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 reexportedImports = [\n ListComponent,\n ListItemComponent,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst imports = [\n ...reexportedImports,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n SpinnerModule,\n IonItemDivider,\n IonItemGroup,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n ...imports,\n ],\n exports: reexportedImports,\n providers: [],\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.ListHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-list.mjs","sources":["../../list/src/directives/infinite-scroll.directive.ts","../../list/src/directives/list-item-color.directive.ts","../../list/src/helpers/list-helper.ts","../../list/src/list-experimental/list-experimental.component.ts","../../list/src/list-experimental/list-experimental.component.html","../../list/src/list-header/list-header.component.ts","../../list/src/list-header/list-header.component.html","../../list/src/list-item/list-item.component.ts","../../list/src/list-item/list-item.component.html","../../list/src/list-section-header/list-section-header.component.ts","../../list/src/list-section-header/list-section-header.component.html","../../list/src/list.directive.ts","../../list/src/list.component.ts","../../list/src/list.component.html","../../list/src/list.module.ts","../../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({ selector: '[kirbyInfiniteScroll]' })\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(\n private elementRef: ElementRef,\n private windowRef: WindowRef,\n private zone: NgZone\n ) {}\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({ selector: '[kirbyListItemColor]' })\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';\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) {\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/standalone';\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 { IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular/standalone';\n\nimport { ThemeColor } from '@kirbydesign/core';\nimport { PlatformService } from '@kirbydesign/designsystem/helpers';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\nimport { ListItemColorDirective } from '../directives/list-item-color.directive';\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 imports: [\n IonItemSliding,\n ListItemColorDirective,\n NgClass,\n NgTemplateOutlet,\n IonItemOptions,\n IconComponent,\n IonLabel,\n ],\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 | 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 @if (_hasSwipeActions(item)) {\n <ion-item-options [side]=\"_getSwipeActionEnd(item)\">\n <div class=\"swipe-action\">\n @for (swipeAction of _getSwipeActions(item); track swipeAction.title) {\n <ion-item-option\n [ngClass]=\"_getSwipeActionType(swipeAction, item)\"\n (click)=\"_onSwipeActionSelect(swipeAction, item, $event)\"\n >\n <div class=\"item-content\">\n @if (_getSwipeActionIcon(swipeAction, item)) {\n <kirby-icon size=\"sm\" [name]=\"_getSwipeActionIcon(swipeAction, item)\"></kirby-icon>\n }\n <ion-label>\n {{ _getSwipeActionTitle(swipeAction, item) }}\n </ion-label>\n </div>\n </ion-item-option>\n }\n </div>\n </ion-item-options>\n }\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({ selector: '[kirbyListItemTemplate]' })\nexport class ListItemTemplateDirective {}\n\n@Directive({ selector: '[kirbyListHeader], [kirbyListHeaderTemplate]' })\nexport class ListHeaderDirective {}\n\n@Directive({ selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]' })\nexport class ListSectionHeaderDirective {}\n\n@Directive({ selector: '[kirbyListFooter], [kirbyListFooterTemplate]' })\nexport class ListFooterDirective {}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { IonItemDivider, IonItemGroup, IonList, IonListHeader } from '@ionic/angular/standalone';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SpinnerComponent } from '@kirbydesign/designsystem/spinner';\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass, ListItemComponent } 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 } 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 imports: [\n IonList,\n InfiniteScrollDirective,\n IonListHeader,\n NgTemplateOutlet,\n SpinnerComponent,\n IonItemGroup,\n NgClass,\n IonItemDivider,\n ListItemComponent,\n ],\n})\nexport class ListComponent implements OnInit, OnChanges, AfterViewInit {\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 private _attributesToForward = ['aria-label', 'aria-labelledby'];\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(\n private listHelper: ListHelper,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\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 ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-list')\n );\n }\n\n _onLoadOnDemand() {\n this.listHelper.onLoadOnDemand(this);\n }\n\n sectionTrackBy(index: number, section: { name: string }): string | number {\n return section?.name ?? index;\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 @if (headerTemplate) {\n <ion-list-header>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ion-list-header>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n _isSectionsEnabled || _isStandAloneEnabled ? groupedListTemplate : itemsTemplate;\n context: { $implicit: items }\n \"\n ></ng-container>\n\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n</ion-list>\n\n@if (!isLoadOnDemandEnabled && noMoreItemsText) {\n <p class=\"no-more-items\">\n {{ noMoreItemsText }}\n </p>\n}\n@if (_isLoading) {\n <div class=\"loading\">\n <kirby-spinner></kirby-spinner>\n </div>\n}\n\n<ng-template #groupedListTemplate>\n @for (section of _groupedItems; track sectionTrackBy($index, section)) {\n <ion-item-group [ngClass]=\"standAloneClass()\">\n @if (_isSectionsEnabled) {\n <ion-item-divider>\n <ng-container\n *ngTemplateOutlet=\"sectionHeaderTemplate; context: { $implicit: section.name }\"\n ></ng-container>\n </ion-item-divider>\n }\n @if (_isSectionsEnabled && _isStandAloneEnabled) {\n @for (list of section.lists; track list) {\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: list }\"\n ></ng-container>\n </div>\n }\n } @else {\n <div class=\"list-items\" [ngClass]=\"standAloneClass()\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: section.items }\"\n ></ng-container>\n </div>\n }\n </ion-item-group>\n }\n</ng-template>\n\n<ng-template #itemsTemplate let-items>\n @for (item of items; track trackBy ? trackBy($index, item) : $index; let i = $index) {\n <kirby-list-item\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 }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\n\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\nimport {\n IonItemDivider,\n IonItemGroup,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n} from '@ionic/angular/standalone';\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 reexportedImports = [\n ListComponent,\n ListItemComponent,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst imports = [\n ...reexportedImports,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n SpinnerModule,\n IonItemDivider,\n IonItemGroup,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n ...imports,\n ],\n exports: reexportedImports,\n providers: [],\n})\nexport class ListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.ListHelper"],"mappings":"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"}
|
|
@@ -39,10 +39,10 @@ class LoadingOverlayService {
|
|
|
39
39
|
this.ionLoading = null;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
43
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
42
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LoadingOverlayService, deps: [{ token: i1.LoadingController }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LoadingOverlayService, providedIn: 'root' }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LoadingOverlayService, decorators: [{
|
|
46
46
|
type: Injectable,
|
|
47
47
|
args: [{
|
|
48
48
|
providedIn: 'root',
|
|
@@ -55,10 +55,10 @@ class LoadingOverlayComponent {
|
|
|
55
55
|
this.showBackdrop = true;
|
|
56
56
|
this.hideContent = false;
|
|
57
57
|
}
|
|
58
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
59
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
58
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LoadingOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: LoadingOverlayComponent, isStandalone: true, selector: "kirby-loading-overlay", inputs: { isLoading: "isLoading", showBackdrop: "showBackdrop", hideContent: "hideContent" }, ngImport: i0, template: "<div class=\"overlay-wrapper\">\n @if (isLoading) {\n <div\n [ngClass]=\"{\n backdrop: showBackdrop && !hideContent,\n 'hide-content': hideContent,\n }\"\n class=\"spinner-wrapper\"\n >\n <kirby-spinner class=\"spinner\"></kirby-spinner>\n </div>\n }\n <div class=\"content-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block;min-height:32px}.overlay-wrapper{min-height:inherit;height:100%;width:100%;position:relative}.overlay-wrapper .spinner-wrapper{height:100%;width:100%;position:absolute;z-index:1001;display:flex;background:transparent;justify-content:center;place-items:center}.overlay-wrapper .spinner-wrapper.backdrop{background-color:#f6f6f6cc}.overlay-wrapper .spinner-wrapper.hide-content{background-color:#f6f6f6}.overlay-wrapper .spinner-wrapper .spinner{width:32px;height:32px}\n"], dependencies: [{ kind: "component", type: SpinnerComponent, selector: "kirby-spinner" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LoadingOverlayComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
63
|
args: [{ imports: [SpinnerComponent, CommonModule], selector: 'kirby-loading-overlay', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"overlay-wrapper\">\n @if (isLoading) {\n <div\n [ngClass]=\"{\n backdrop: showBackdrop && !hideContent,\n 'hide-content': hideContent,\n }\"\n class=\"spinner-wrapper\"\n >\n <kirby-spinner class=\"spinner\"></kirby-spinner>\n </div>\n }\n <div class=\"content-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block;min-height:32px}.overlay-wrapper{min-height:inherit;height:100%;width:100%;position:relative}.overlay-wrapper .spinner-wrapper{height:100%;width:100%;position:absolute;z-index:1001;display:flex;background:transparent;justify-content:center;place-items:center}.overlay-wrapper .spinner-wrapper.backdrop{background-color:#f6f6f6cc}.overlay-wrapper .spinner-wrapper.hide-content{background-color:#f6f6f6}.overlay-wrapper .spinner-wrapper .spinner{width:32px;height:32px}\n"] }]
|
|
64
64
|
}], propDecorators: { isLoading: [{
|
|
@@ -241,10 +241,10 @@ class MenuComponent {
|
|
|
241
241
|
ngOnDestroy() {
|
|
242
242
|
this.disposeIonScrollListener?.();
|
|
243
243
|
}
|
|
244
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
245
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
244
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.TranslationService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
245
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: MenuComponent, isStandalone: true, selector: "kirby-menu", inputs: { isDisabled: "isDisabled", buttonSize: "buttonSize", placement: "placement", attentionLevel: "attentionLevel", triggers: "triggers", DOMPortalOutlet: "DOMPortalOutlet", portalOutletConfig: "portalOutletConfig", autoPlacement: "autoPlacement", closeOnSelect: "closeOnSelect", closeOnEscapeKey: "closeOnEscapeKey", closeOnBackdrop: "closeOnBackdrop", shift: "shift", minWidth: "minWidth" }, host: { listeners: { "keydown": "_onKeydown($event)", "click": "_onClick()" } }, queries: [{ propertyName: "userProvidedButton", first: true, predicate: ButtonComponent, descendants: true, read: ElementRef }, { propertyName: "kirbyItems", predicate: ItemComponent, read: ElementRef }, { propertyName: "kirbyItemComponents", predicate: ItemComponent }], viewQueries: [{ propertyName: "buttonContainerElement", first: true, predicate: ["buttonContainer"], descendants: true, read: ElementRef }, { propertyName: "defaultButtonElement", first: true, predicate: ["defaultButton"], descendants: true, read: ElementRef }, { propertyName: "floatingMenu", first: true, predicate: FloatingDirective, descendants: true }], ngImport: i0, template: "<div class=\"button-container\" #buttonContainer>\n <ng-content select=\"button[kirby-button]\"></ng-content>\n @if (!userProvidedButton) {\n <button\n #defaultButton\n [id]=\"triggerButtonId\"\n kirby-button\n [size]=\"buttonSize\"\n [disabled]=\"isDisabled\"\n type=\"button\"\n [attentionLevel]=\"attentionLevel\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"menuId\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"translations.get('more')\"\n >\n <kirby-icon [name]=\"'more'\"></kirby-icon>\n </button>\n }\n</div>\n<kirby-card\n [id]=\"menuId\"\n kirbyFloating\n [strategy]=\"'fixed'\"\n [reference]=\"buttonContainerElement\"\n [isDisabled]=\"isDisabled\"\n [triggers]=\"triggers\"\n [placement]=\"placement\"\n [DOMPortalOutlet]=\"DOMPortalOutlet\"\n [portalOutletConfig]=\"portalOutletConfig\"\n [closeOnBackdrop]=\"closeOnBackdrop\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnSelect]=\"closeOnSelect\"\n [autoPlacement]=\"autoPlacement\"\n [shift]=\"shift\"\n [style.minWidth]=\"minWidth ? minWidth + 'px' : null\"\n class=\"menu-popover\"\n (keydown)=\"_onKeydown($event)\"\n (displayChanged)=\"menuVisibilityChanged($event)\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n>\n <ng-content select=\"kirby-item\"></ng-content>\n</kirby-card>\n", styles: [":host{position:relative}.button-container{display:inline-block}kirby-card{max-height:352px;overflow-y:auto;box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26;min-width:240px;max-width:460px}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button],a[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size", "showIconOnly"] }, { kind: "directive", type: FloatingDirective, selector: "[kirbyFloating]", inputs: ["reference", "placement", "strategy", "triggers", "DOMPortalOutlet", "portalOutletConfig", "isDisabled", "offset", "shift", "autoPlacement", "closeOnSelect", "closeOnEscapeKey", "closeOnBackdrop"], outputs: ["displayChanged"] }, { kind: "component", type: CardComponent, selector: "kirby-card", inputs: ["title", "subtitle", "backgroundImageUrl", "hasPadding", "sizes", "variant"] }, { kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
246
246
|
}
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MenuComponent, decorators: [{
|
|
248
248
|
type: Component,
|
|
249
249
|
args: [{ selector: 'kirby-menu', imports: [ButtonComponent, FloatingDirective, CardComponent, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"button-container\" #buttonContainer>\n <ng-content select=\"button[kirby-button]\"></ng-content>\n @if (!userProvidedButton) {\n <button\n #defaultButton\n [id]=\"triggerButtonId\"\n kirby-button\n [size]=\"buttonSize\"\n [disabled]=\"isDisabled\"\n type=\"button\"\n [attentionLevel]=\"attentionLevel\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"menuId\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"translations.get('more')\"\n >\n <kirby-icon [name]=\"'more'\"></kirby-icon>\n </button>\n }\n</div>\n<kirby-card\n [id]=\"menuId\"\n kirbyFloating\n [strategy]=\"'fixed'\"\n [reference]=\"buttonContainerElement\"\n [isDisabled]=\"isDisabled\"\n [triggers]=\"triggers\"\n [placement]=\"placement\"\n [DOMPortalOutlet]=\"DOMPortalOutlet\"\n [portalOutletConfig]=\"portalOutletConfig\"\n [closeOnBackdrop]=\"closeOnBackdrop\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnSelect]=\"closeOnSelect\"\n [autoPlacement]=\"autoPlacement\"\n [shift]=\"shift\"\n [style.minWidth]=\"minWidth ? minWidth + 'px' : null\"\n class=\"menu-popover\"\n (keydown)=\"_onKeydown($event)\"\n (displayChanged)=\"menuVisibilityChanged($event)\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n>\n <ng-content select=\"kirby-item\"></ng-content>\n</kirby-card>\n", styles: [":host{position:relative}.button-container{display:inline-block}kirby-card{max-height:352px;overflow-y:auto;box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26;min-width:240px;max-width:460px}\n"] }]
|
|
250
250
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.TranslationService }, { type: i0.DestroyRef }], propDecorators: { isDisabled: [{
|