@kirbydesign/extensions-angular 6.0.0-dev-9f721bb → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/kirbydesign-extensions-angular-combobox.mjs +9 -9
- package/fesm2022/kirbydesign-extensions-angular-combobox.mjs.map +1 -1
- package/fesm2022/kirbydesign-extensions-angular-image-banner.mjs +6 -6
- package/fesm2022/kirbydesign-extensions-angular-image-banner.mjs.map +1 -1
- package/fesm2022/kirbydesign-extensions-angular-localization.mjs +30 -30
- package/fesm2022/kirbydesign-extensions-angular-localization.mjs.map +1 -1
- package/fesm2022/kirbydesign-extensions-angular-sidebar-menu.mjs +58 -58
- package/fesm2022/kirbydesign-extensions-angular-sidebar-menu.mjs.map +1 -1
- package/fesm2022/kirbydesign-extensions-angular-skeleton-loader.mjs +10 -7
- package/fesm2022/kirbydesign-extensions-angular-skeleton-loader.mjs.map +1 -1
- package/fesm2022/kirbydesign-extensions-angular-spot-illustration.mjs +5 -5
- package/fesm2022/kirbydesign-extensions-angular-spot-illustration.mjs.map +1 -1
- package/package.json +3 -3
- package/types/kirbydesign-extensions-angular-localization.d.ts +0 -2
- package/types/kirbydesign-extensions-angular-skeleton-loader.d.ts +4 -3
- package/types/kirbydesign-extensions-angular-spot-illustration.d.ts +0 -6
- package/types/kirbydesign-extensions-angular.d.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-extensions-angular-sidebar-menu.mjs","names":[],"sources":["../../sidebar-menu/src/directives/height-observer/height-observer.directive.ts","../../sidebar-menu/src/services/sidebar/sidebar.service.ts","../../sidebar-menu/src/components/sidebar-container/sidebar-container.component.ts","../../sidebar-menu/src/components/sidebar-container/sidebar-container.component.html","../../sidebar-menu/src/public-components/sidebar/sidebar.component.ts","../../sidebar-menu/src/public-components/sidebar-footer/sidebar-footer.component.ts","../../sidebar-menu/src/public-components/sidebar-header/sidebar-header.component.ts","../../sidebar-menu/src/functions/scroll-into-view-if-necessary/scroll-into-view-if-necessary.function.ts","../../sidebar-menu/src/components/menu-item/menu-item.component.ts","../../sidebar-menu/src/components/menu-item/menu-item.component.html","../../sidebar-menu/src/services/menu-state/menu-state.service.ts","../../sidebar-menu/src/components/menu-anchor-item/menu-anchor-item.component.ts","../../sidebar-menu/src/components/menu-anchor-item/menu-anchor-item.component.html","../../sidebar-menu/src/functions/ensure-in-view/ensure-in-view.function.ts","../../sidebar-menu/src/animations/drop-down.animation.ts","../../sidebar-menu/src/components/menu-submenu-item/menu-submenu-item.component.ts","../../sidebar-menu/src/components/menu-submenu-item/menu-submenu-item.component.html","../../sidebar-menu/src/components/menu-item-list/menu-item-list.component.ts","../../sidebar-menu/src/components/menu-item-list/menu-item-list.component.html","../../sidebar-menu/src/components/menu-container/menu-container.component.ts","../../sidebar-menu/src/public-components/sidebar-menu/sidebar-menu.component.ts","../../sidebar-menu/src/public-components/sidebar-menu-loader/sidebar-menu-loader.component.ts","../../sidebar-menu/src/public-components/sidebar-menu-loader/sidebar-menu-loader.component.html","../../sidebar-menu/src/sidebar.module.ts"],"sourcesContent":["import { Directive, ElementRef, inject, OnDestroy, output } from '@angular/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Directive({\n selector: '[kirbyXHeightObserver]',\n})\nexport class HeightObserverDirective implements OnDestroy {\n readonly heightChange = output<number>();\n\n readonly #element = inject(ElementRef).nativeElement;\n readonly #heightChanges = new Subject<number>();\n\n readonly #observer = new ResizeObserver((entries) => {\n this.#heightChanges.next(entries[0].contentRect.height);\n });\n\n constructor() {\n this.#observer.observe(this.#element, { box: 'content-box' });\n this.#heightChanges\n .pipe(debounceTime(50), distinctUntilChanged())\n .subscribe(this.heightChange.emit.bind(this.heightChange));\n }\n\n ngOnDestroy() {\n this.#observer.unobserve(this.#element);\n this.#observer.disconnect();\n }\n}\n","import { computed, Injectable, Signal, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SidebarService {\n readonly #menuHeight = signal<number>(0);\n readonly #containerHeight = signal<number>(0);\n readonly #scrollDistance = signal<number>(0);\n\n readonly #scrollableDistance = computed(() =>\n Math.max(0, this.#menuHeight() - this.#containerHeight())\n );\n readonly #hasScrollbar = computed(() => this.#scrollableDistance() > 0);\n readonly #notAtBottom = computed(() => this.#scrollDistance() < this.#scrollableDistance());\n readonly #showHeaderBottomBorder = computed(() => this.#scrollDistance() > 0);\n readonly #showFooterTopBorder = computed(() => this.#hasScrollbar() && this.#notAtBottom());\n\n get showHeaderBottomBorder(): Signal<boolean> {\n return this.#showHeaderBottomBorder;\n }\n\n get showFooterTopBorder(): Signal<boolean> {\n return this.#showFooterTopBorder;\n }\n\n set menuHeight(height: number) {\n this.#menuHeight.set(height);\n }\n\n set containerHeight(height: number) {\n this.#containerHeight.set(height);\n }\n\n set scrollDistance(distance: number) {\n this.#scrollDistance.set(distance);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, Signal } from '@angular/core';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { HeightObserverDirective } from '../../directives/height-observer';\nimport { SidebarService } from '../../services/sidebar';\n\ntype ViewModel = {\n showHeaderBottomBorder: Signal<boolean>;\n showFooterTopBorder: Signal<boolean>;\n setContainerHeight: (height: number) => void;\n setScroll: (scroll: Event) => void;\n};\n\n@Component({\n selector: 'aside[kirby-x-sidebar-container]',\n templateUrl: './sidebar-container.component.html',\n styleUrls: ['./sidebar-container.component.scss'],\n imports: [HeightObserverDirective, CdkScrollable],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarContainerComponent {\n readonly #sidebarService = inject(SidebarService);\n\n #setContainerHeight(height: number): void {\n this.#sidebarService.containerHeight = height;\n }\n\n #setScrollDistance(event: Event): void {\n const target = event.target as HTMLElement | null;\n if (target) {\n this.#sidebarService.scrollDistance = target.scrollTop;\n }\n }\n\n readonly vm: ViewModel = {\n showHeaderBottomBorder: this.#sidebarService.showHeaderBottomBorder,\n showFooterTopBorder: this.#sidebarService.showFooterTopBorder,\n setContainerHeight: this.#setContainerHeight.bind(this),\n setScroll: this.#setScrollDistance.bind(this),\n };\n}\n","<div class=\"sidebar-header\" [class.bottom-border]=\"vm.showHeaderBottomBorder()\">\n <ng-content select=\"[slot='header']\"></ng-content>\n</div>\n<div\n kirbyXHeightObserver\n class=\"sidebar-content\"\n cdkScrollable\n (scroll)=\"vm.setScroll($event)\"\n (heightChange)=\"vm.setContainerHeight($event)\"\n>\n <ng-content select=\"[slot='content']\"></ng-content>\n</div>\n<div class=\"sidebar-footer\" [class.top-border]=\"vm.showFooterTopBorder()\">\n <ng-content select=\"[slot='footer']\"></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SidebarContainerComponent } from '../../components/sidebar-container';\n\n@Component({\n selector: 'kirby-x-sidebar',\n template: `\n <aside kirby-x-sidebar-container>\n <ng-content select=\"kirby-x-sidebar-header\" slot=\"header\"></ng-content>\n <ng-content slot=\"content\"></ng-content>\n <ng-content select=\"kirby-x-sidebar-footer\" slot=\"footer\"></ng-content>\n </aside>\n `,\n imports: [SidebarContainerComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-x-sidebar-footer',\n template: '<footer><ng-content></ng-content></footer>',\n styles: `\n :host,\n footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n }\n\n :host {\n min-height: 80px;\n }\n `,\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarFooterComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-x-sidebar-header',\n template: `\n <header>\n <span class=\"sidebar-logo\"><ng-content select=\"[slot='logo']\"></ng-content></span>\n <div class=\"action-bar\">\n <ng-content select=\"[slot='action']\"></ng-content>\n </div>\n </header>\n `,\n styles: `\n :host,\n header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n }\n\n :host::ng-deep [slot='logo'] {\n display: inline-flex;\n }\n\n :host::ng-deep [slot='logo'] img,\n :host::ng-deep img[slot='logo'] {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n\n .sidebar-logo {\n display: flex;\n align-items: center;\n height: 50px;\n margin: var(--kirby-spacing-l) var(--kirby-spacing-m);\n }\n\n .action-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n\n &:has([slot='action']) {\n padding: 0 var(--kirby-spacing-xs) var(--kirby-spacing-xs);\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarHeaderComponent {}\n","/**\n * the HTMLElement.scrollIntoViewIfNecessary is non-standard and not supported in all browsers (e.g. firefox),\n * so we implement a version based on standard\n */\nexport function scrollIntoViewIfNecessary(\n scrollContainer: Element,\n child: Element,\n position: ScrollLogicalPosition = 'center'\n) {\n const containerRect = scrollContainer.getBoundingClientRect();\n const elementRect = child.getBoundingClientRect();\n if (containerRect.top > elementRect.top || containerRect.bottom < elementRect.bottom) {\n child.scrollIntoView({\n behavior: 'instant',\n block: position,\n inline: position,\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { MenuItemSize } from '../../types';\n\n@Component({\n selector: 'a[kirby-x-menu-item],button[kirby-x-menu-item]',\n host: {\n '[attr.id]': '\"item\" + id()',\n '[class]': 'size()',\n },\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n imports: [IconModule],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuItemComponent {\n readonly id = input.required<string>();\n readonly size = input.required<MenuItemSize>();\n readonly icon = input<string>();\n\n readonly iconSize = computed(() => (this.size() === 'lg' ? 'sm' : 'xs'));\n}\n","<div class=\"menu-item-start {{ size() }}\">\n @if (icon(); as icon) {\n <kirby-icon [size]=\"iconSize()\" [name]=\"icon\"></kirby-icon>\n }\n</div>\n\n<div class=\"menu-item-content\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"menu-item-end\">\n <ng-content select=\"[slot='end']\"></ng-content>\n</div>\n","import { Injectable, Signal, signal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n CheckEvent,\n ExpandEvent,\n SidebarMenuItem,\n SidebarMenuItemReorderEvent,\n SubmenuItem,\n} from '../../models';\n\n@Injectable({ providedIn: 'root' })\nexport class MenuStateService {\n readonly #menuItems = signal<SidebarMenuItem[]>([]);\n readonly #selectedItem = signal<string | undefined>(undefined);\n readonly #expandedItems = signal<Set<string>>(new Set());\n readonly #checkedItems = signal<Set<string>>(new Set());\n readonly #autoCollapse = signal<boolean>(false);\n readonly #animationsDisabled = signal<boolean>(false);\n readonly #expandEvents = new Subject<ExpandEvent>();\n readonly #checkEvents = new Subject<CheckEvent>();\n readonly #reorderEvents = new Subject<SidebarMenuItemReorderEvent>();\n readonly #selectEvents = new Subject<string>();\n\n get menuItems(): Signal<SidebarMenuItem[]> {\n return this.#menuItems.asReadonly();\n }\n\n set menuItems(items: SidebarMenuItem[]) {\n this.#menuItems.set(items);\n }\n\n get selectedItem(): Signal<string | undefined> {\n return this.#selectedItem.asReadonly();\n }\n\n set selectedItem(id: string) {\n this.#selectedItem.set(id);\n }\n\n get expandedItems(): Signal<Set<string>> {\n return this.#expandedItems.asReadonly();\n }\n\n set expandedItems(ids: Set<string>) {\n this.#expandedItems.set(ids);\n }\n\n get checkedItems(): Signal<Set<string>> {\n return this.#checkedItems.asReadonly();\n }\n\n set checkedItems(ids: Set<string>) {\n this.#checkedItems.set(ids);\n }\n\n set autoCollapse(enabled: boolean) {\n this.#autoCollapse.set(enabled);\n }\n\n get animationsDisabled(): Signal<boolean> {\n return this.#animationsDisabled.asReadonly();\n }\n\n set animationsDisabled(disabled: boolean) {\n this.#animationsDisabled.set(disabled);\n }\n\n get expandEvents(): Observable<ExpandEvent> {\n return this.#expandEvents.asObservable();\n }\n\n get checkEvents(): Observable<CheckEvent> {\n return this.#checkEvents.asObservable();\n }\n\n get reorderEvents(): Observable<SidebarMenuItemReorderEvent> {\n return this.#reorderEvents.asObservable();\n }\n\n get selectEvents(): Observable<string> {\n return this.#selectEvents.asObservable();\n }\n\n expandItem(id: string): void {\n this.#expandEvents.next({ id, isExpanded: true });\n if (this.#autoCollapse()) {\n this.#expandedItems.set(this.#findAncestors(id));\n return;\n }\n this.#expandedItems.update((items) => {\n items.add(id);\n return new Set(items);\n });\n }\n\n collapseItem(id: string): void {\n this.#expandEvents.next({ id, isExpanded: false });\n this.#expandedItems.update((items) => {\n items.delete(id);\n return new Set(items);\n });\n }\n\n checkItem(id: string): void {\n this.#checkEvents.next({ id, isChecked: true });\n this.#checkedItems.update((items) => {\n items.add(id);\n return new Set(items);\n });\n }\n\n uncheckItem(id: string): void {\n this.#checkEvents.next({ id, isChecked: false });\n this.#checkedItems.update((items) => {\n items.delete(id);\n return new Set(items);\n });\n }\n\n selectItem(id: string): void {\n this.#selectEvents.next(id);\n this.#selectedItem.set(id);\n }\n\n #findAncestors(id: string): Set<string> {\n return recursivelyFindAncestors(this.#menuItems(), id) ?? new Set();\n }\n\n reorderItems(\n submenu: SubmenuItem,\n itemId: string,\n previousIndex: number,\n currentIndex: number\n ): void {\n moveItemInArray(submenu.children, previousIndex, currentIndex);\n this.#reorderEvents.next({\n parentId: submenu.id,\n itemId,\n previousIndex,\n currentIndex,\n reorderedItemIds: submenu.children.map((item) => item.id),\n });\n this.#menuItems.update((items) => [...items]);\n }\n}\n\nfunction recursivelyFindAncestors(items: SidebarMenuItem[], id: string): Set<string> | undefined {\n for (const item of items) {\n if (item.id === id) {\n return new Set([item.id]);\n }\n if (item.type === 'submenu') {\n const foundAncestors = recursivelyFindAncestors(item.children, id);\n if (foundAncestors) {\n foundAncestors.add(item.id);\n return foundAncestors;\n }\n }\n }\n return undefined;\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, Signal } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ToggleButtonComponent } from '@kirbydesign/designsystem/toggle-button';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { ActionItem, ExternalLinkItem, RouterLinkItem } from '../../models';\nimport { MenuItemSize } from '../../types';\nimport { MenuItemComponent } from '../menu-item';\nimport { MenuStateService } from '../../services/menu-state';\n\ntype ViewModel = {\n item: Signal<ActionItem | RouterLinkItem | ExternalLinkItem>;\n size: Signal<MenuItemSize>;\n isSelected: Signal<boolean>;\n isChecked: Signal<boolean>;\n selectItem: () => void;\n checkItem: (checked: boolean) => void;\n};\n\n@Component({\n selector: 'li[kirby-x-menu-anchor-item]',\n templateUrl: './menu-anchor-item.component.html',\n styleUrls: ['./menu-anchor-item.component.scss'],\n host: {\n '[class.selected]': 'vm.isSelected()',\n '[class.has-toggle]': '!!vm.item().toggle',\n '[class.has-badge]': '!!vm.item().badge',\n },\n imports: [\n MenuItemComponent,\n RouterLink,\n ToggleButtonComponent,\n ButtonComponent,\n IconComponent,\n BadgeComponent,\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuAnchorItemComponent {\n readonly item = input.required<ActionItem | RouterLinkItem | ExternalLinkItem>();\n readonly size = input.required<MenuItemSize>();\n\n readonly #stateService = inject(MenuStateService);\n\n readonly #isSelected = computed(() => this.item().id === this.#stateService.selectedItem());\n readonly #isChecked = computed(() => {\n const id = this.item().id;\n const checkedItems = this.#stateService.checkedItems();\n return checkedItems.has(id);\n });\n\n #selectItem(): void {\n this.#stateService.selectItem(this.item().id);\n }\n\n #checkItem(checked: boolean): void {\n if (checked) {\n this.#stateService.checkItem(this.item().id);\n } else {\n this.#stateService.uncheckItem(this.item().id);\n }\n }\n\n readonly vm: ViewModel = {\n item: this.item,\n size: this.size,\n isSelected: this.#isSelected,\n isChecked: this.#isChecked,\n selectItem: this.#selectItem.bind(this),\n checkItem: this.#checkItem.bind(this),\n };\n}\n","@let item = vm.item();\n@switch (item.type) {\n @case ('action') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.href]=\"item.href\"\n (click)=\"$event.preventDefault(); vm.selectItem()\"\n (keydown.enter)=\"$event.preventDefault(); vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n @if (item.isLink) {\n <kirby-icon name=\"link\" slot=\"end\" class=\"external-link\"></kirby-icon>\n }\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n @case ('router-link') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [routerLink]=\"item.route\"\n [queryParams]=\"item.queryParams\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n (click)=\"vm.selectItem()\"\n (keydown.enter)=\"vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n @case ('external-link') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.href]=\"item.url\"\n [attr.target]=\"item.target\"\n (click)=\"vm.selectItem()\"\n (keydown.enter)=\"vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n <kirby-icon name=\"link\" slot=\"end\" class=\"external-link\"></kirby-icon>\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n}\n\n@if (item.toggle) {\n <kirby-toggle-button\n class=\"toggle-button-wrapper\"\n [checked]=\"vm.isChecked()\"\n (checkChanged)=\"vm.checkItem($event)\"\n >\n <button\n kirby-button\n unchecked\n size=\"xs\"\n attentionLevel=\"3\"\n tabindex=\"-1\"\n [noDecoration]=\"true\"\n class=\"toggle-button\"\n >\n <kirby-icon size=\"xs\" [name]=\"item.toggle.uncheckedIcon\"></kirby-icon>\n </button>\n <button\n kirby-button\n checked\n size=\"xs\"\n attentionLevel=\"3\"\n tabindex=\"-1\"\n [noDecoration]=\"true\"\n class=\"toggle-button\"\n >\n <kirby-icon size=\"xs\" [name]=\"item.toggle.checkedIcon\"></kirby-icon>\n </button>\n </kirby-toggle-button>\n}\n","import { scrollIntoViewIfNecessary } from '../scroll-into-view-if-necessary';\n\n/**\n * Ensures the element top is not smaller than the scroll container top.\n */\nexport function ensureInView(scrollContainer: Element, element: Element, durationMs: number): void {\n let startTime: number | null = null;\n\n const updatePosition = (timestamp: number) => {\n if (!startTime) {\n startTime = timestamp;\n }\n\n const elapsedTime = timestamp - startTime;\n\n if (elapsedTime < durationMs) {\n scrollIntoViewIfNecessary(scrollContainer, element, 'start');\n requestAnimationFrame(updatePosition);\n }\n };\n\n requestAnimationFrame(updatePosition);\n}\n","import { animate, AUTO_STYLE, style, transition, trigger } from '@angular/animations';\n\nexport const DropDownAnimation = trigger('dropDownMenu', [\n transition(':enter', [\n style({ height: 0, overflow: 'hidden' }),\n animate('300ms ease', style({ height: AUTO_STYLE })),\n ]),\n\n transition(':leave', [\n style({ height: AUTO_STYLE, overflow: 'hidden' }),\n animate('300ms ease', style({ height: 0 })),\n ]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n Signal,\n} from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';\nimport { SubmenuItem } from '../../models';\nimport { MenuItemComponent } from '../menu-item';\nimport { MenuItemSize } from '../../types';\nimport { MenuItemListComponent } from '../menu-item-list';\nimport { MenuStateService } from '../../services/menu-state';\nimport { ensureInView } from '../../functions/ensure-in-view';\nimport { DropDownAnimation } from '../../animations';\n\ntype ViewModel = {\n item: Signal<SubmenuItem>;\n size: Signal<MenuItemSize>;\n isExpanded: Signal<boolean>;\n submenuId: Signal<string>;\n submenuSize: Signal<MenuItemSize>;\n animationsDisabled: Signal<boolean>;\n toggleSubmenu: () => void;\n reorderItem: (event: CdkDragDrop<string[]>) => void;\n};\n\n@Component({\n selector: 'li[kirby-x-menu-submenu-item]',\n templateUrl: './menu-submenu-item.component.html',\n styleUrls: ['./menu-submenu-item.component.scss'],\n animations: [DropDownAnimation],\n imports: [MenuItemComponent, IconComponent, forwardRef(() => MenuItemListComponent), CdkDropList],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuSubmenuItemComponent {\n readonly item = input.required<SubmenuItem>();\n readonly size = input.required<MenuItemSize>();\n\n readonly #element = inject(ElementRef).nativeElement as Element;\n readonly #stateService = inject(MenuStateService);\n\n readonly #isExpanded = computed(() => {\n const id = this.item().id;\n const expandedItems = this.#stateService.expandedItems();\n return expandedItems.has(id);\n });\n readonly #submenuSize = computed(() => {\n switch (this.size()) {\n case 'lg':\n return 'md';\n case 'md':\n return 'sm';\n default:\n return 'xs';\n }\n });\n\n #toggleSubmenu(): void {\n const button = this.#element.querySelector('button[kirby-x-menu-item]');\n const scrollContainer = this.#element.closest('.sidebar-content');\n if (button && scrollContainer) {\n ensureInView(scrollContainer, button, 400);\n }\n if (this.#isExpanded()) {\n this.#stateService.collapseItem(this.item().id);\n } else {\n this.#stateService.expandItem(this.item().id);\n }\n }\n\n #reorderItem(event: CdkDragDrop<string[]>): void {\n this.#stateService.reorderItems(\n this.item(),\n event.item.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n readonly vm: ViewModel = {\n item: this.item,\n size: this.size,\n isExpanded: this.#isExpanded,\n submenuId: computed(() => `item-${this.item().id}-content`),\n submenuSize: this.#submenuSize,\n animationsDisabled: this.#stateService.animationsDisabled,\n toggleSubmenu: this.#toggleSubmenu.bind(this),\n reorderItem: this.#reorderItem.bind(this),\n };\n}\n","@let item = vm.item();\n<button\n kirby-x-menu-item\n type=\"button\"\n class=\"submenu-toggle\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.aria-controls]=\"vm.submenuId()\"\n [attr.aria-expanded]=\"vm.isExpanded()\"\n (click)=\"vm.toggleSubmenu()\"\n>\n {{ item.title }}\n <kirby-icon\n slot=\"end\"\n name=\"arrow-more\"\n class=\"disclosure\"\n [class.rotate]=\"vm.isExpanded()\"\n ></kirby-icon>\n</button>\n@if (vm.isExpanded()) {\n <ul\n kirby-x-menu-item-list\n [items]=\"item.children\"\n [size]=\"vm.submenuSize()\"\n [id]=\"vm.submenuId()\"\n [@dropDownMenu]\n [@.disabled]=\"vm.animationsDisabled()\"\n cdkDropList\n (cdkDropListDropped)=\"vm.reorderItem($event)\"\n [isReorderable]=\"item.isReorderable ?? false\"\n ></ul>\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, input, Signal } from '@angular/core';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\nimport { SidebarMenuItem } from '../../models';\nimport { MenuAnchorItemComponent } from '../menu-anchor-item';\nimport { MenuSubmenuItemComponent } from '../menu-submenu-item';\nimport { MenuItemSize } from '../../types';\n\ntype ViewModel = {\n id: Signal<string | undefined>;\n size: Signal<MenuItemSize>;\n items: Signal<SidebarMenuItem[]>;\n isReorderable: Signal<boolean>;\n};\n\n@Component({\n selector: 'ul[kirby-x-menu-item-list]',\n templateUrl: './menu-item-list.component.html',\n styleUrls: ['./menu-item-list.component.scss'],\n host: {\n '[attr.id]': 'vm.id()',\n '[class]': 'vm.size()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DividerComponent,\n MenuAnchorItemComponent,\n forwardRef(() => MenuSubmenuItemComponent),\n CdkDrag,\n ],\n})\nexport class MenuItemListComponent {\n readonly items = input.required<SidebarMenuItem[]>();\n readonly size = input<MenuItemSize>('lg');\n readonly id = input<string>();\n readonly isReorderable = input<boolean>(false);\n\n readonly vm: ViewModel = {\n id: this.id,\n size: this.size,\n items: this.items,\n isReorderable: this.isReorderable,\n };\n}\n","@for (item of vm.items(); track item.id) {\n @switch (item.type) {\n @case ('divider') {\n <kirby-divider aria-hidden=\"true\"></kirby-divider>\n }\n @case ('submenu') {\n <li\n kirby-x-menu-submenu-item\n [item]=\"item\"\n [size]=\"vm.size()\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n [cdkDragBoundary]=\"'[cdkDropList]'\"\n [cdkDragDisabled]=\"!vm.isReorderable()\"\n [cdkDragData]=\"item.id\"\n ></li>\n }\n @default {\n <li\n kirby-x-menu-anchor-item\n [item]=\"item\"\n [size]=\"vm.size()\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n [cdkDragBoundary]=\"'[cdkDropList]'\"\n [cdkDragDisabled]=\"!vm.isReorderable()\"\n [cdkDragData]=\"item.id\"\n ></li>\n }\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Signal,\n} from '@angular/core';\n\nimport { scrollIntoViewIfNecessary } from '../../functions/scroll-into-view-if-necessary';\nimport { SidebarMenuItem } from '../../models';\nimport { MenuItemListComponent } from '../menu-item-list';\nimport { MenuStateService } from '../../services/menu-state';\n\ntype ViewModel = {\n items: Signal<SidebarMenuItem[]>;\n};\n\n@Component({\n selector: 'kirby-x-menu-container',\n template: `\n <nav aria-label=\"Sidebar Menu\">\n <ul kirby-x-menu-item-list [items]=\"vm.items()\"></ul>\n </nav>\n `,\n styles: 'nav { padding: 0 var(--kirby-spacing-xxs); }',\n imports: [MenuItemListComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuContainerComponent {\n readonly #element = inject(ElementRef).nativeElement;\n readonly #stateService = inject(MenuStateService);\n\n constructor() {\n this.#stateService.animationsDisabled = true;\n afterNextRender({\n read: () => {\n this.#scrollSelectedItemIntoView();\n this.#stateService.animationsDisabled = false;\n },\n });\n }\n\n #scrollSelectedItemIntoView() {\n const selectedItem = this.#element.querySelector('li.selected');\n const scrollContainer = this.#element.closest('.sidebar-content');\n if (selectedItem && scrollContainer) {\n scrollIntoViewIfNecessary(scrollContainer, selectedItem);\n }\n }\n\n readonly vm: ViewModel = {\n items: this.#stateService.menuItems,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport { MenuContainerComponent } from '../../components/menu-container';\nimport { HeightObserverDirective } from '../../directives/height-observer';\nimport { SidebarService } from '../../services/sidebar';\nimport { MenuStateService } from '../../services/menu-state';\nimport { SidebarMenuItem } from '../../models';\n\n@Component({\n selector: 'kirby-x-sidebar-menu',\n template: `\n <kirby-x-menu-container\n kirbyXHeightObserver\n (heightChange)=\"setMenuHeight($event)\"\n ></kirby-x-menu-container>\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n `,\n imports: [MenuContainerComponent, HeightObserverDirective],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarMenuComponent {\n readonly #sidebarService = inject(SidebarService);\n readonly #stateService = inject(MenuStateService);\n\n @Input()\n set menuItems(menuItems: SidebarMenuItem[]) {\n this.#stateService.menuItems = menuItems;\n }\n\n @Input()\n set selectedItem(value: string) {\n this.#stateService.selectedItem = value;\n }\n\n @Input()\n set expandedItems(value: Set<string>) {\n this.#stateService.expandedItems = value;\n }\n\n @Input()\n set checkedItems(value: Set<string>) {\n this.#stateService.checkedItems = value;\n }\n\n @Input()\n set autoCollapse(value: boolean) {\n this.#stateService.autoCollapse = value;\n }\n\n setMenuHeight(height: number): void {\n this.#sidebarService.menuHeight = height;\n }\n\n @Output() menuItemsChange = new EventEmitter<SidebarMenuItem[]>();\n @Output() selectedItemChange = new EventEmitter<string>();\n @Output() expandedItemsChange = new EventEmitter<Set<string>>();\n @Output() checkedItemsChange = new EventEmitter<Set<string>>();\n @Output() expandChange = this.#stateService.expandEvents;\n @Output() checkChange = this.#stateService.checkEvents;\n @Output() itemReorder = this.#stateService.reorderEvents;\n @Output() itemSelect = this.#stateService.selectEvents;\n\n constructor() {\n effect(() => this.menuItemsChange.emit(this.#stateService.menuItems()));\n effect(() => this.selectedItemChange.emit(this.#stateService.selectedItem()));\n effect(() => this.expandedItemsChange.emit(this.#stateService.expandedItems()));\n effect(() => this.checkedItemsChange.emit(this.#stateService.checkedItems()));\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkeletonLoaderComponent } from '@kirbydesign/extensions-angular/skeleton-loader';\n\n@Component({\n selector: 'kirby-x-sidebar-menu-loader',\n templateUrl: './sidebar-menu-loader.component.html',\n styleUrl: './sidebar-menu-loader.component.scss',\n imports: [SkeletonLoaderComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarMenuLoaderComponent {}\n","<kirby-x-skeleton-loader theme=\"dark\" class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader theme=\"dark\" class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader theme=\"dark\" class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader theme=\"dark\" class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader theme=\"dark\" class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n","import { NgModule } from '@angular/core';\nimport { SidebarComponent } from './public-components/sidebar';\nimport { SidebarFooterComponent } from './public-components/sidebar-footer';\nimport { SidebarHeaderComponent } from './public-components/sidebar-header';\n\n@NgModule({\n imports: [SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent],\n exports: [SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent],\n})\nexport class SidebarModule {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kirbydesign-extensions-angular-sidebar-menu.mjs","names":[],"sources":["../../sidebar-menu/src/directives/height-observer/height-observer.directive.ts","../../sidebar-menu/src/services/sidebar/sidebar.service.ts","../../sidebar-menu/src/components/sidebar-container/sidebar-container.component.ts","../../sidebar-menu/src/components/sidebar-container/sidebar-container.component.html","../../sidebar-menu/src/public-components/sidebar/sidebar.component.ts","../../sidebar-menu/src/public-components/sidebar-footer/sidebar-footer.component.ts","../../sidebar-menu/src/public-components/sidebar-header/sidebar-header.component.ts","../../sidebar-menu/src/functions/scroll-into-view-if-necessary/scroll-into-view-if-necessary.function.ts","../../sidebar-menu/src/components/menu-item/menu-item.component.ts","../../sidebar-menu/src/components/menu-item/menu-item.component.html","../../sidebar-menu/src/services/menu-state/menu-state.service.ts","../../sidebar-menu/src/components/menu-anchor-item/menu-anchor-item.component.ts","../../sidebar-menu/src/components/menu-anchor-item/menu-anchor-item.component.html","../../sidebar-menu/src/functions/ensure-in-view/ensure-in-view.function.ts","../../sidebar-menu/src/animations/drop-down.animation.ts","../../sidebar-menu/src/components/menu-submenu-item/menu-submenu-item.component.ts","../../sidebar-menu/src/components/menu-submenu-item/menu-submenu-item.component.html","../../sidebar-menu/src/components/menu-item-list/menu-item-list.component.ts","../../sidebar-menu/src/components/menu-item-list/menu-item-list.component.html","../../sidebar-menu/src/components/menu-container/menu-container.component.ts","../../sidebar-menu/src/public-components/sidebar-menu/sidebar-menu.component.ts","../../sidebar-menu/src/public-components/sidebar-menu-loader/sidebar-menu-loader.component.ts","../../sidebar-menu/src/public-components/sidebar-menu-loader/sidebar-menu-loader.component.html","../../sidebar-menu/src/sidebar.module.ts"],"sourcesContent":["import { Directive, ElementRef, inject, OnDestroy, output } from '@angular/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Directive({\n selector: '[kirbyXHeightObserver]',\n})\nexport class HeightObserverDirective implements OnDestroy {\n readonly heightChange = output<number>();\n\n readonly #element = inject(ElementRef).nativeElement;\n readonly #heightChanges = new Subject<number>();\n\n readonly #observer = new ResizeObserver((entries) => {\n this.#heightChanges.next(entries[0].contentRect.height);\n });\n\n constructor() {\n this.#observer.observe(this.#element, { box: 'content-box' });\n this.#heightChanges\n .pipe(debounceTime(50), distinctUntilChanged())\n .subscribe(this.heightChange.emit.bind(this.heightChange));\n }\n\n ngOnDestroy() {\n this.#observer.unobserve(this.#element);\n this.#observer.disconnect();\n }\n}\n","import { computed, Injectable, Signal, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SidebarService {\n readonly #menuHeight = signal<number>(0);\n readonly #containerHeight = signal<number>(0);\n readonly #scrollDistance = signal<number>(0);\n\n readonly #scrollableDistance = computed(() =>\n Math.max(0, this.#menuHeight() - this.#containerHeight())\n );\n readonly #hasScrollbar = computed(() => this.#scrollableDistance() > 0);\n readonly #notAtBottom = computed(() => this.#scrollDistance() < this.#scrollableDistance());\n readonly #showHeaderBottomBorder = computed(() => this.#scrollDistance() > 0);\n readonly #showFooterTopBorder = computed(() => this.#hasScrollbar() && this.#notAtBottom());\n\n get showHeaderBottomBorder(): Signal<boolean> {\n return this.#showHeaderBottomBorder;\n }\n\n get showFooterTopBorder(): Signal<boolean> {\n return this.#showFooterTopBorder;\n }\n\n set menuHeight(height: number) {\n this.#menuHeight.set(height);\n }\n\n set containerHeight(height: number) {\n this.#containerHeight.set(height);\n }\n\n set scrollDistance(distance: number) {\n this.#scrollDistance.set(distance);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, Signal } from '@angular/core';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { HeightObserverDirective } from '../../directives/height-observer';\nimport { SidebarService } from '../../services/sidebar';\n\ntype ViewModel = {\n showHeaderBottomBorder: Signal<boolean>;\n showFooterTopBorder: Signal<boolean>;\n setContainerHeight: (height: number) => void;\n setScroll: (scroll: Event) => void;\n};\n\n@Component({\n selector: 'aside[kirby-x-sidebar-container]',\n templateUrl: './sidebar-container.component.html',\n styleUrls: ['./sidebar-container.component.scss'],\n imports: [HeightObserverDirective, CdkScrollable],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarContainerComponent {\n readonly #sidebarService = inject(SidebarService);\n\n #setContainerHeight(height: number): void {\n this.#sidebarService.containerHeight = height;\n }\n\n #setScrollDistance(event: Event): void {\n const target = event.target as HTMLElement | null;\n if (target) {\n this.#sidebarService.scrollDistance = target.scrollTop;\n }\n }\n\n readonly vm: ViewModel = {\n showHeaderBottomBorder: this.#sidebarService.showHeaderBottomBorder,\n showFooterTopBorder: this.#sidebarService.showFooterTopBorder,\n setContainerHeight: this.#setContainerHeight.bind(this),\n setScroll: this.#setScrollDistance.bind(this),\n };\n}\n","<div class=\"sidebar-header\" [class.bottom-border]=\"vm.showHeaderBottomBorder()\">\n <ng-content select=\"[slot='header']\"></ng-content>\n</div>\n<div\n kirbyXHeightObserver\n class=\"sidebar-content\"\n cdkScrollable\n (scroll)=\"vm.setScroll($event)\"\n (heightChange)=\"vm.setContainerHeight($event)\"\n>\n <ng-content select=\"[slot='content']\"></ng-content>\n</div>\n<div class=\"sidebar-footer\" [class.top-border]=\"vm.showFooterTopBorder()\">\n <ng-content select=\"[slot='footer']\"></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SidebarContainerComponent } from '../../components/sidebar-container';\n\n@Component({\n selector: 'kirby-x-sidebar',\n template: `\n <aside kirby-x-sidebar-container class=\"kirby-surface-brand\">\n <ng-content select=\"kirby-x-sidebar-header\" slot=\"header\"></ng-content>\n <ng-content slot=\"content\"></ng-content>\n <ng-content select=\"kirby-x-sidebar-footer\" slot=\"footer\"></ng-content>\n </aside>\n `,\n imports: [SidebarContainerComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-x-sidebar-footer',\n template: '<footer><ng-content></ng-content></footer>',\n styles: `\n :host,\n footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n }\n\n :host {\n min-height: 80px;\n }\n `,\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarFooterComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-x-sidebar-header',\n template: `\n <header>\n <span class=\"sidebar-logo\"><ng-content select=\"[slot='logo']\"></ng-content></span>\n <div class=\"action-bar\">\n <ng-content select=\"[slot='action']\"></ng-content>\n </div>\n </header>\n `,\n styles: `\n :host,\n header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n }\n\n :host::ng-deep [slot='logo'] {\n display: inline-flex;\n }\n\n :host::ng-deep [slot='logo'] img,\n :host::ng-deep img[slot='logo'] {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n\n .sidebar-logo {\n display: flex;\n align-items: center;\n height: 50px;\n margin: var(--kirby-spacing-l) var(--kirby-spacing-m);\n }\n\n .action-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n\n &:has([slot='action']) {\n padding: 0 var(--kirby-spacing-xs) var(--kirby-spacing-xs);\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarHeaderComponent {}\n","/**\n * the HTMLElement.scrollIntoViewIfNecessary is non-standard and not supported in all browsers (e.g. firefox),\n * so we implement a version based on standard\n */\nexport function scrollIntoViewIfNecessary(\n scrollContainer: Element,\n child: Element,\n position: ScrollLogicalPosition = 'center'\n) {\n const containerRect = scrollContainer.getBoundingClientRect();\n const elementRect = child.getBoundingClientRect();\n if (containerRect.top > elementRect.top || containerRect.bottom < elementRect.bottom) {\n child.scrollIntoView({\n behavior: 'instant',\n block: position,\n inline: position,\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { MenuItemSize } from '../../types';\n\n@Component({\n selector: 'a[kirby-x-menu-item],button[kirby-x-menu-item]',\n host: {\n '[attr.id]': '\"item\" + id()',\n '[class]': 'size()',\n },\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n imports: [IconModule],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuItemComponent {\n readonly id = input.required<string>();\n readonly size = input.required<MenuItemSize>();\n readonly icon = input<string>();\n\n readonly iconSize = computed(() => (this.size() === 'lg' ? 'sm' : 'xs'));\n}\n","<div class=\"menu-item-start {{ size() }}\">\n @if (icon(); as icon) {\n <kirby-icon [size]=\"iconSize()\" [name]=\"icon\"></kirby-icon>\n }\n</div>\n\n<div class=\"menu-item-content\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"menu-item-end\">\n <ng-content select=\"[slot='end']\"></ng-content>\n</div>\n","import { Injectable, Signal, signal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport {\n CheckEvent,\n ExpandEvent,\n SidebarMenuItem,\n SidebarMenuItemReorderEvent,\n SubmenuItem,\n} from '../../models';\n\n@Injectable({ providedIn: 'root' })\nexport class MenuStateService {\n readonly #menuItems = signal<SidebarMenuItem[]>([]);\n readonly #selectedItem = signal<string | undefined>(undefined);\n readonly #expandedItems = signal<Set<string>>(new Set());\n readonly #checkedItems = signal<Set<string>>(new Set());\n readonly #autoCollapse = signal<boolean>(false);\n readonly #animationsDisabled = signal<boolean>(false);\n readonly #expandEvents = new Subject<ExpandEvent>();\n readonly #checkEvents = new Subject<CheckEvent>();\n readonly #reorderEvents = new Subject<SidebarMenuItemReorderEvent>();\n readonly #selectEvents = new Subject<string>();\n\n get menuItems(): Signal<SidebarMenuItem[]> {\n return this.#menuItems.asReadonly();\n }\n\n set menuItems(items: SidebarMenuItem[]) {\n this.#menuItems.set(items);\n }\n\n get selectedItem(): Signal<string | undefined> {\n return this.#selectedItem.asReadonly();\n }\n\n set selectedItem(id: string) {\n this.#selectedItem.set(id);\n }\n\n get expandedItems(): Signal<Set<string>> {\n return this.#expandedItems.asReadonly();\n }\n\n set expandedItems(ids: Set<string>) {\n this.#expandedItems.set(ids);\n }\n\n get checkedItems(): Signal<Set<string>> {\n return this.#checkedItems.asReadonly();\n }\n\n set checkedItems(ids: Set<string>) {\n this.#checkedItems.set(ids);\n }\n\n set autoCollapse(enabled: boolean) {\n this.#autoCollapse.set(enabled);\n }\n\n get animationsDisabled(): Signal<boolean> {\n return this.#animationsDisabled.asReadonly();\n }\n\n set animationsDisabled(disabled: boolean) {\n this.#animationsDisabled.set(disabled);\n }\n\n get expandEvents(): Observable<ExpandEvent> {\n return this.#expandEvents.asObservable();\n }\n\n get checkEvents(): Observable<CheckEvent> {\n return this.#checkEvents.asObservable();\n }\n\n get reorderEvents(): Observable<SidebarMenuItemReorderEvent> {\n return this.#reorderEvents.asObservable();\n }\n\n get selectEvents(): Observable<string> {\n return this.#selectEvents.asObservable();\n }\n\n expandItem(id: string): void {\n this.#expandEvents.next({ id, isExpanded: true });\n if (this.#autoCollapse()) {\n this.#expandedItems.set(this.#findAncestors(id));\n return;\n }\n this.#expandedItems.update((items) => {\n items.add(id);\n return new Set(items);\n });\n }\n\n collapseItem(id: string): void {\n this.#expandEvents.next({ id, isExpanded: false });\n this.#expandedItems.update((items) => {\n items.delete(id);\n return new Set(items);\n });\n }\n\n checkItem(id: string): void {\n this.#checkEvents.next({ id, isChecked: true });\n this.#checkedItems.update((items) => {\n items.add(id);\n return new Set(items);\n });\n }\n\n uncheckItem(id: string): void {\n this.#checkEvents.next({ id, isChecked: false });\n this.#checkedItems.update((items) => {\n items.delete(id);\n return new Set(items);\n });\n }\n\n selectItem(id: string): void {\n this.#selectEvents.next(id);\n this.#selectedItem.set(id);\n }\n\n #findAncestors(id: string): Set<string> {\n return recursivelyFindAncestors(this.#menuItems(), id) ?? new Set();\n }\n\n reorderItems(\n submenu: SubmenuItem,\n itemId: string,\n previousIndex: number,\n currentIndex: number\n ): void {\n moveItemInArray(submenu.children, previousIndex, currentIndex);\n this.#reorderEvents.next({\n parentId: submenu.id,\n itemId,\n previousIndex,\n currentIndex,\n reorderedItemIds: submenu.children.map((item) => item.id),\n });\n this.#menuItems.update((items) => [...items]);\n }\n}\n\nfunction recursivelyFindAncestors(items: SidebarMenuItem[], id: string): Set<string> | undefined {\n for (const item of items) {\n if (item.id === id) {\n return new Set([item.id]);\n }\n if (item.type === 'submenu') {\n const foundAncestors = recursivelyFindAncestors(item.children, id);\n if (foundAncestors) {\n foundAncestors.add(item.id);\n return foundAncestors;\n }\n }\n }\n return undefined;\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, Signal } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ToggleButtonComponent } from '@kirbydesign/designsystem/toggle-button';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { ActionItem, ExternalLinkItem, RouterLinkItem } from '../../models';\nimport { MenuItemSize } from '../../types';\nimport { MenuItemComponent } from '../menu-item';\nimport { MenuStateService } from '../../services/menu-state';\n\ntype ViewModel = {\n item: Signal<ActionItem | RouterLinkItem | ExternalLinkItem>;\n size: Signal<MenuItemSize>;\n isSelected: Signal<boolean>;\n isChecked: Signal<boolean>;\n selectItem: () => void;\n checkItem: (checked: boolean) => void;\n};\n\n@Component({\n selector: 'li[kirby-x-menu-anchor-item]',\n templateUrl: './menu-anchor-item.component.html',\n styleUrls: ['./menu-anchor-item.component.scss'],\n host: {\n '[class.selected]': 'vm.isSelected()',\n '[class.has-toggle]': '!!vm.item().toggle',\n '[class.has-badge]': '!!vm.item().badge',\n },\n imports: [\n MenuItemComponent,\n RouterLink,\n ToggleButtonComponent,\n ButtonComponent,\n IconComponent,\n BadgeComponent,\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuAnchorItemComponent {\n readonly item = input.required<ActionItem | RouterLinkItem | ExternalLinkItem>();\n readonly size = input.required<MenuItemSize>();\n\n readonly #stateService = inject(MenuStateService);\n\n readonly #isSelected = computed(() => this.item().id === this.#stateService.selectedItem());\n readonly #isChecked = computed(() => {\n const id = this.item().id;\n const checkedItems = this.#stateService.checkedItems();\n return checkedItems.has(id);\n });\n\n #selectItem(): void {\n this.#stateService.selectItem(this.item().id);\n }\n\n #checkItem(checked: boolean): void {\n if (checked) {\n this.#stateService.checkItem(this.item().id);\n } else {\n this.#stateService.uncheckItem(this.item().id);\n }\n }\n\n readonly vm: ViewModel = {\n item: this.item,\n size: this.size,\n isSelected: this.#isSelected,\n isChecked: this.#isChecked,\n selectItem: this.#selectItem.bind(this),\n checkItem: this.#checkItem.bind(this),\n };\n}\n","@let item = vm.item();\n@switch (item.type) {\n @case ('action') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.href]=\"item.href\"\n (click)=\"$event.preventDefault(); vm.selectItem()\"\n (keydown.enter)=\"$event.preventDefault(); vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n @if (item.isLink) {\n <kirby-icon name=\"link\" slot=\"end\" class=\"external-link\"></kirby-icon>\n }\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n @case ('router-link') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [routerLink]=\"item.route\"\n [queryParams]=\"item.queryParams\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n (click)=\"vm.selectItem()\"\n (keydown.enter)=\"vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n @case ('external-link') {\n <a\n kirby-x-menu-item\n [class.selected]=\"vm.isSelected()\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.href]=\"item.url\"\n [attr.target]=\"item.target\"\n (click)=\"vm.selectItem()\"\n (keydown.enter)=\"vm.selectItem()\"\n >\n {{ item.title }}\n @if (item.badge) {\n <kirby-badge\n slot=\"end\"\n class=\"item-badge\"\n [themeColor]=\"item.badge.themeColor ?? 'primary'\"\n >\n {{ item.badge.value }}\n </kirby-badge>\n }\n <kirby-icon name=\"link\" slot=\"end\" class=\"external-link\"></kirby-icon>\n @if (item.toggle) {\n <div slot=\"end\" class=\"toggle-spacer\"></div>\n }\n </a>\n }\n}\n\n@if (item.toggle) {\n <kirby-toggle-button\n class=\"toggle-button-wrapper\"\n [checked]=\"vm.isChecked()\"\n (checkChanged)=\"vm.checkItem($event)\"\n >\n <button\n kirby-button\n unchecked\n size=\"xs\"\n attentionLevel=\"3\"\n tabindex=\"-1\"\n [noDecoration]=\"true\"\n class=\"toggle-button\"\n >\n <kirby-icon size=\"xs\" [name]=\"item.toggle.uncheckedIcon\"></kirby-icon>\n </button>\n <button\n kirby-button\n checked\n size=\"xs\"\n attentionLevel=\"3\"\n tabindex=\"-1\"\n [noDecoration]=\"true\"\n class=\"toggle-button\"\n >\n <kirby-icon size=\"xs\" [name]=\"item.toggle.checkedIcon\"></kirby-icon>\n </button>\n </kirby-toggle-button>\n}\n","import { scrollIntoViewIfNecessary } from '../scroll-into-view-if-necessary';\n\n/**\n * Ensures the element top is not smaller than the scroll container top.\n */\nexport function ensureInView(scrollContainer: Element, element: Element, durationMs: number): void {\n let startTime: number | null = null;\n\n const updatePosition = (timestamp: number) => {\n if (!startTime) {\n startTime = timestamp;\n }\n\n const elapsedTime = timestamp - startTime;\n\n if (elapsedTime < durationMs) {\n scrollIntoViewIfNecessary(scrollContainer, element, 'start');\n requestAnimationFrame(updatePosition);\n }\n };\n\n requestAnimationFrame(updatePosition);\n}\n","import { animate, AUTO_STYLE, style, transition, trigger } from '@angular/animations';\n\nexport const DropDownAnimation = trigger('dropDownMenu', [\n transition(':enter', [\n style({ height: 0, overflow: 'hidden' }),\n animate('300ms ease', style({ height: AUTO_STYLE })),\n ]),\n\n transition(':leave', [\n style({ height: AUTO_STYLE, overflow: 'hidden' }),\n animate('300ms ease', style({ height: 0 })),\n ]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n Signal,\n} from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';\nimport { SubmenuItem } from '../../models';\nimport { MenuItemComponent } from '../menu-item';\nimport { MenuItemSize } from '../../types';\nimport { MenuItemListComponent } from '../menu-item-list';\nimport { MenuStateService } from '../../services/menu-state';\nimport { ensureInView } from '../../functions/ensure-in-view';\nimport { DropDownAnimation } from '../../animations';\n\ntype ViewModel = {\n item: Signal<SubmenuItem>;\n size: Signal<MenuItemSize>;\n isExpanded: Signal<boolean>;\n submenuId: Signal<string>;\n submenuSize: Signal<MenuItemSize>;\n animationsDisabled: Signal<boolean>;\n toggleSubmenu: () => void;\n reorderItem: (event: CdkDragDrop<string[]>) => void;\n};\n\n@Component({\n selector: 'li[kirby-x-menu-submenu-item]',\n templateUrl: './menu-submenu-item.component.html',\n styleUrls: ['./menu-submenu-item.component.scss'],\n animations: [DropDownAnimation],\n imports: [MenuItemComponent, IconComponent, forwardRef(() => MenuItemListComponent), CdkDropList],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuSubmenuItemComponent {\n readonly item = input.required<SubmenuItem>();\n readonly size = input.required<MenuItemSize>();\n\n readonly #element = inject(ElementRef).nativeElement as Element;\n readonly #stateService = inject(MenuStateService);\n\n readonly #isExpanded = computed(() => {\n const id = this.item().id;\n const expandedItems = this.#stateService.expandedItems();\n return expandedItems.has(id);\n });\n readonly #submenuSize = computed(() => {\n switch (this.size()) {\n case 'lg':\n return 'md';\n case 'md':\n return 'sm';\n default:\n return 'xs';\n }\n });\n\n #toggleSubmenu(): void {\n const button = this.#element.querySelector('button[kirby-x-menu-item]');\n const scrollContainer = this.#element.closest('.sidebar-content');\n if (button && scrollContainer) {\n ensureInView(scrollContainer, button, 400);\n }\n if (this.#isExpanded()) {\n this.#stateService.collapseItem(this.item().id);\n } else {\n this.#stateService.expandItem(this.item().id);\n }\n }\n\n #reorderItem(event: CdkDragDrop<string[]>): void {\n this.#stateService.reorderItems(\n this.item(),\n event.item.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n readonly vm: ViewModel = {\n item: this.item,\n size: this.size,\n isExpanded: this.#isExpanded,\n submenuId: computed(() => `item-${this.item().id}-content`),\n submenuSize: this.#submenuSize,\n animationsDisabled: this.#stateService.animationsDisabled,\n toggleSubmenu: this.#toggleSubmenu.bind(this),\n reorderItem: this.#reorderItem.bind(this),\n };\n}\n","@let item = vm.item();\n<button\n kirby-x-menu-item\n type=\"button\"\n class=\"submenu-toggle\"\n [size]=\"vm.size()\"\n [id]=\"item.id\"\n [icon]=\"item.icon\"\n [attr.aria-controls]=\"vm.submenuId()\"\n [attr.aria-expanded]=\"vm.isExpanded()\"\n (click)=\"vm.toggleSubmenu()\"\n>\n {{ item.title }}\n <kirby-icon\n slot=\"end\"\n name=\"arrow-more\"\n class=\"disclosure\"\n [class.rotate]=\"vm.isExpanded()\"\n ></kirby-icon>\n</button>\n@if (vm.isExpanded()) {\n <ul\n kirby-x-menu-item-list\n [items]=\"item.children\"\n [size]=\"vm.submenuSize()\"\n [id]=\"vm.submenuId()\"\n [@dropDownMenu]\n [@.disabled]=\"vm.animationsDisabled()\"\n cdkDropList\n (cdkDropListDropped)=\"vm.reorderItem($event)\"\n [isReorderable]=\"item.isReorderable ?? false\"\n ></ul>\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, input, Signal } from '@angular/core';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\nimport { SidebarMenuItem } from '../../models';\nimport { MenuAnchorItemComponent } from '../menu-anchor-item';\nimport { MenuSubmenuItemComponent } from '../menu-submenu-item';\nimport { MenuItemSize } from '../../types';\n\ntype ViewModel = {\n id: Signal<string | undefined>;\n size: Signal<MenuItemSize>;\n items: Signal<SidebarMenuItem[]>;\n isReorderable: Signal<boolean>;\n};\n\n@Component({\n selector: 'ul[kirby-x-menu-item-list]',\n templateUrl: './menu-item-list.component.html',\n styleUrls: ['./menu-item-list.component.scss'],\n host: {\n '[attr.id]': 'vm.id()',\n '[class]': 'vm.size()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DividerComponent,\n MenuAnchorItemComponent,\n forwardRef(() => MenuSubmenuItemComponent),\n CdkDrag,\n ],\n})\nexport class MenuItemListComponent {\n readonly items = input.required<SidebarMenuItem[]>();\n readonly size = input<MenuItemSize>('lg');\n readonly id = input<string>();\n readonly isReorderable = input<boolean>(false);\n\n readonly vm: ViewModel = {\n id: this.id,\n size: this.size,\n items: this.items,\n isReorderable: this.isReorderable,\n };\n}\n","@for (item of vm.items(); track item.id) {\n @switch (item.type) {\n @case ('divider') {\n <kirby-divider aria-hidden=\"true\"></kirby-divider>\n }\n @case ('submenu') {\n <li\n kirby-x-menu-submenu-item\n [item]=\"item\"\n [size]=\"vm.size()\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n [cdkDragBoundary]=\"'[cdkDropList]'\"\n [cdkDragDisabled]=\"!vm.isReorderable()\"\n [cdkDragData]=\"item.id\"\n ></li>\n }\n @default {\n <li\n kirby-x-menu-anchor-item\n [item]=\"item\"\n [size]=\"vm.size()\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n [cdkDragBoundary]=\"'[cdkDropList]'\"\n [cdkDragDisabled]=\"!vm.isReorderable()\"\n [cdkDragData]=\"item.id\"\n ></li>\n }\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Signal,\n} from '@angular/core';\n\nimport { scrollIntoViewIfNecessary } from '../../functions/scroll-into-view-if-necessary';\nimport { SidebarMenuItem } from '../../models';\nimport { MenuItemListComponent } from '../menu-item-list';\nimport { MenuStateService } from '../../services/menu-state';\n\ntype ViewModel = {\n items: Signal<SidebarMenuItem[]>;\n};\n\n@Component({\n selector: 'kirby-x-menu-container',\n template: `\n <nav aria-label=\"Sidebar Menu\">\n <ul kirby-x-menu-item-list [items]=\"vm.items()\"></ul>\n </nav>\n `,\n styles: 'nav { padding: 0 var(--kirby-spacing-xxs); }',\n imports: [MenuItemListComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class MenuContainerComponent {\n readonly #element = inject(ElementRef).nativeElement;\n readonly #stateService = inject(MenuStateService);\n\n constructor() {\n this.#stateService.animationsDisabled = true;\n afterNextRender({\n read: () => {\n this.#scrollSelectedItemIntoView();\n this.#stateService.animationsDisabled = false;\n },\n });\n }\n\n #scrollSelectedItemIntoView() {\n const selectedItem = this.#element.querySelector('li.selected');\n const scrollContainer = this.#element.closest('.sidebar-content');\n if (selectedItem && scrollContainer) {\n scrollIntoViewIfNecessary(scrollContainer, selectedItem);\n }\n }\n\n readonly vm: ViewModel = {\n items: this.#stateService.menuItems,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport { MenuContainerComponent } from '../../components/menu-container';\nimport { HeightObserverDirective } from '../../directives/height-observer';\nimport { SidebarService } from '../../services/sidebar';\nimport { MenuStateService } from '../../services/menu-state';\nimport { SidebarMenuItem } from '../../models';\n\n@Component({\n selector: 'kirby-x-sidebar-menu',\n template: `\n <kirby-x-menu-container\n kirbyXHeightObserver\n (heightChange)=\"setMenuHeight($event)\"\n ></kirby-x-menu-container>\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n `,\n imports: [MenuContainerComponent, HeightObserverDirective],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarMenuComponent {\n readonly #sidebarService = inject(SidebarService);\n readonly #stateService = inject(MenuStateService);\n\n @Input()\n set menuItems(menuItems: SidebarMenuItem[]) {\n this.#stateService.menuItems = menuItems;\n }\n\n @Input()\n set selectedItem(value: string) {\n this.#stateService.selectedItem = value;\n }\n\n @Input()\n set expandedItems(value: Set<string>) {\n this.#stateService.expandedItems = value;\n }\n\n @Input()\n set checkedItems(value: Set<string>) {\n this.#stateService.checkedItems = value;\n }\n\n @Input()\n set autoCollapse(value: boolean) {\n this.#stateService.autoCollapse = value;\n }\n\n setMenuHeight(height: number): void {\n this.#sidebarService.menuHeight = height;\n }\n\n @Output() menuItemsChange = new EventEmitter<SidebarMenuItem[]>();\n @Output() selectedItemChange = new EventEmitter<string>();\n @Output() expandedItemsChange = new EventEmitter<Set<string>>();\n @Output() checkedItemsChange = new EventEmitter<Set<string>>();\n @Output() expandChange = this.#stateService.expandEvents;\n @Output() checkChange = this.#stateService.checkEvents;\n @Output() itemReorder = this.#stateService.reorderEvents;\n @Output() itemSelect = this.#stateService.selectEvents;\n\n constructor() {\n effect(() => this.menuItemsChange.emit(this.#stateService.menuItems()));\n effect(() => this.selectedItemChange.emit(this.#stateService.selectedItem()));\n effect(() => this.expandedItemsChange.emit(this.#stateService.expandedItems()));\n effect(() => this.checkedItemsChange.emit(this.#stateService.checkedItems()));\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkeletonLoaderComponent } from '@kirbydesign/extensions-angular/skeleton-loader';\n\n@Component({\n selector: 'kirby-x-sidebar-menu-loader',\n templateUrl: './sidebar-menu-loader.component.html',\n styleUrl: './sidebar-menu-loader.component.scss',\n imports: [SkeletonLoaderComponent],\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SidebarMenuLoaderComponent {}\n","<kirby-x-skeleton-loader class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n<kirby-x-skeleton-loader class=\"skeleton-loader\"></kirby-x-skeleton-loader>\n","import { NgModule } from '@angular/core';\nimport { SidebarComponent } from './public-components/sidebar';\nimport { SidebarFooterComponent } from './public-components/sidebar-footer';\nimport { SidebarHeaderComponent } from './public-components/sidebar-header';\n\n@NgModule({\n imports: [SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent],\n exports: [SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent],\n})\nexport class SidebarModule {}\n"],"mappings":"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"}
|
|
@@ -5,16 +5,19 @@ import { IconComponent } from "@kirbydesign/designsystem/icon";
|
|
|
5
5
|
import { IonSkeletonText } from "@ionic/angular";
|
|
6
6
|
var SkeletonLoaderComponent = class SkeletonLoaderComponent {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.theme = "light";
|
|
9
8
|
this.shape = "rectangle";
|
|
10
9
|
}
|
|
10
|
+
set theme(_value) {
|
|
11
|
+
console.warn(`[Kirby Skeleton Loader] The 'theme' input is deprecated and no longer has any effect.
|
|
12
|
+
The skeleton loader now follows the surface it's placed on. This input will be removed in a future major version.`);
|
|
13
|
+
}
|
|
11
14
|
get _cssClass() {
|
|
12
|
-
return [this.
|
|
15
|
+
return [this.shape].filter((cssClass) => !!cssClass);
|
|
13
16
|
}
|
|
14
17
|
static {
|
|
15
18
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
16
19
|
minVersion: "12.0.0",
|
|
17
|
-
version: "22.2.
|
|
20
|
+
version: "22.2.4",
|
|
18
21
|
ngImport: i0,
|
|
19
22
|
type: SkeletonLoaderComponent,
|
|
20
23
|
deps: [],
|
|
@@ -24,7 +27,7 @@ var SkeletonLoaderComponent = class SkeletonLoaderComponent {
|
|
|
24
27
|
static {
|
|
25
28
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
26
29
|
minVersion: "14.0.0",
|
|
27
|
-
version: "22.2.
|
|
30
|
+
version: "22.2.4",
|
|
28
31
|
type: SkeletonLoaderComponent,
|
|
29
32
|
isStandalone: true,
|
|
30
33
|
selector: "kirby-x-skeleton-loader",
|
|
@@ -35,7 +38,7 @@ var SkeletonLoaderComponent = class SkeletonLoaderComponent {
|
|
|
35
38
|
host: { properties: { "class": "this._cssClass" } },
|
|
36
39
|
ngImport: i0,
|
|
37
40
|
template: "<ion-skeleton-text animated=\"true\"></ion-skeleton-text>\n",
|
|
38
|
-
styles: [":host{overflow:hidden;display:flex;justify-content:center;align-items:center;height:var(--kirby-font-size-n)}:host.rectangle{border-radius:var(--kirby-border-radius-xs)}:host.circle{border-radius:var(--kirby-border-radius-circle)}:host.pill{border-radius:var(--kirby-border-radius-pill)}
|
|
41
|
+
styles: [":host{overflow:hidden;display:flex;justify-content:center;align-items:center;height:var(--kirby-font-size-n)}:host.rectangle{border-radius:var(--kirby-border-radius-xs)}:host.circle{border-radius:var(--kirby-border-radius-circle)}:host.pill{border-radius:var(--kirby-border-radius-pill)}ion-skeleton-text{background-image:linear-gradient(to right,var(--kirby-skeleton-color-fill) 0%,var(--kirby-skeleton-color-fill-loud) 25%,var(--kirby-skeleton-color-fill) 50%);position:relative;margin:0;animation-duration:1.5s;background-clip:border-box;border-radius:inherit}\n"],
|
|
39
42
|
dependencies: [{
|
|
40
43
|
kind: "component",
|
|
41
44
|
type: IonSkeletonText,
|
|
@@ -48,7 +51,7 @@ var SkeletonLoaderComponent = class SkeletonLoaderComponent {
|
|
|
48
51
|
};
|
|
49
52
|
i0.ɵɵngDeclareClassMetadata({
|
|
50
53
|
minVersion: "12.0.0",
|
|
51
|
-
version: "22.2.
|
|
54
|
+
version: "22.2.4",
|
|
52
55
|
ngImport: i0,
|
|
53
56
|
type: SkeletonLoaderComponent,
|
|
54
57
|
decorators: [{
|
|
@@ -63,7 +66,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
63
66
|
],
|
|
64
67
|
changeDetection: ChangeDetectionStrategy.Eager,
|
|
65
68
|
template: "<ion-skeleton-text animated=\"true\"></ion-skeleton-text>\n",
|
|
66
|
-
styles: [":host{overflow:hidden;display:flex;justify-content:center;align-items:center;height:var(--kirby-font-size-n)}:host.rectangle{border-radius:var(--kirby-border-radius-xs)}:host.circle{border-radius:var(--kirby-border-radius-circle)}:host.pill{border-radius:var(--kirby-border-radius-pill)}
|
|
69
|
+
styles: [":host{overflow:hidden;display:flex;justify-content:center;align-items:center;height:var(--kirby-font-size-n)}:host.rectangle{border-radius:var(--kirby-border-radius-xs)}:host.circle{border-radius:var(--kirby-border-radius-circle)}:host.pill{border-radius:var(--kirby-border-radius-pill)}ion-skeleton-text{background-image:linear-gradient(to right,var(--kirby-skeleton-color-fill) 0%,var(--kirby-skeleton-color-fill-loud) 25%,var(--kirby-skeleton-color-fill) 50%);position:relative;margin:0;animation-duration:1.5s;background-clip:border-box;border-radius:inherit}\n"]
|
|
67
70
|
}]
|
|
68
71
|
}],
|
|
69
72
|
propDecorators: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-extensions-angular-skeleton-loader.mjs","names":[],"sources":["../../skeleton-loader/src/skeleton-loader.component.ts","../../skeleton-loader/src/skeleton-loader.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { IonSkeletonText } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-x-skeleton-loader',\n standalone: true,\n imports: [CardComponent, IconComponent, IonSkeletonText],\n templateUrl: './skeleton-loader.component.html',\n styleUrl: './skeleton-loader.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SkeletonLoaderComponent {\n /**\n * The
|
|
1
|
+
{"version":3,"file":"kirbydesign-extensions-angular-skeleton-loader.mjs","names":[],"sources":["../../skeleton-loader/src/skeleton-loader.component.ts","../../skeleton-loader/src/skeleton-loader.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { IonSkeletonText } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-x-skeleton-loader',\n standalone: true,\n imports: [CardComponent, IconComponent, IonSkeletonText],\n templateUrl: './skeleton-loader.component.html',\n styleUrl: './skeleton-loader.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SkeletonLoaderComponent {\n /**\n * @deprecated The skeleton loader now follows the surface it's placed on, so this input no longer has any effect.\n * This input will be removed in a future major version.\n */\n @Input() set theme(_value: 'light' | 'dark') {\n console.warn(\n `[Kirby Skeleton Loader] The 'theme' input is deprecated and no longer has any effect.\n The skeleton loader now follows the surface it's placed on. This input will be removed in a future major version.`\n );\n }\n\n /**\n * The shape of the skeleton loader.\n */\n @Input()\n shape: 'rectangle' | 'circle' | 'pill' = 'rectangle';\n\n @HostBinding('class')\n get _cssClass() {\n return [this.shape].filter((cssClass) => !!cssClass);\n }\n}\n","<ion-skeleton-text animated=\"true\"></ion-skeleton-text>\n"],"mappings":";;;;;AAaA,IAAa,0BAAb,MAAa,wBAAuB;CARpC,cAAA;EAwBE,KAAA,QAAyC;CAM1C;CAjBC,IAAa,MAAM,QAAwB;EACzC,QAAQ,KACN;0HACoH;CAExH;CAQA,IACI,YAAS;EACX,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,QAAQ;CACrD;CArBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAuB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAvB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAuB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,OAAA;IAAA,OAAA;GAAA;GAAA,MAAA,EAAA,YAAA,EAAA,SAAA,iBAAA,EAAA;GAAA,UAAA;GAAA,UCbpC;GACA,QAAA,CAAA,ujBAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MDO0C;IAAe,UAAA;IAAA,QAAA,CAAA,UAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAK5C,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EARnC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAyB,YACvB;GAAI,SACP;IAAC;IAAe;IAAe;GAAe;GAAC,iBAGvC,wBAAwB;GAAK,UAAA;GAAA,QAAA,CAAA,ujBAAA;EAAA,CAAA;;;E,UAO7C,MAAA,M;E,UAUA,MAAA,M;;GAGA,MAAA;GAAY,MAAA,CAAA,OAAO"}
|
|
@@ -75,7 +75,7 @@ var SpotIllustrationComponent = class SpotIllustrationComponent {
|
|
|
75
75
|
static {
|
|
76
76
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
77
77
|
minVersion: "12.0.0",
|
|
78
|
-
version: "22.2.
|
|
78
|
+
version: "22.2.4",
|
|
79
79
|
ngImport: i0,
|
|
80
80
|
type: SpotIllustrationComponent,
|
|
81
81
|
deps: [],
|
|
@@ -85,7 +85,7 @@ var SpotIllustrationComponent = class SpotIllustrationComponent {
|
|
|
85
85
|
static {
|
|
86
86
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
87
87
|
minVersion: "17.0.0",
|
|
88
|
-
version: "22.2.
|
|
88
|
+
version: "22.2.4",
|
|
89
89
|
type: SpotIllustrationComponent,
|
|
90
90
|
isStandalone: true,
|
|
91
91
|
selector: "kirby-x-spot-illustration",
|
|
@@ -107,7 +107,7 @@ var SpotIllustrationComponent = class SpotIllustrationComponent {
|
|
|
107
107
|
},
|
|
108
108
|
ngImport: i0,
|
|
109
109
|
template: "@if (svg()) {\n <ion-icon [src]=\"svg()\" [class]=\"size()\"></ion-icon>\n}\n",
|
|
110
|
-
styles: [".sm{font-size:40px;display:block}.md{font-size:56px;display:block}.lg{font-size:96px;display:block}.xl{font-size:136px;display:block}
|
|
110
|
+
styles: [".sm{font-size:40px;display:block}.md{font-size:56px;display:block}.lg{font-size:96px;display:block}.xl{font-size:136px;display:block}ion-icon::part(background){fill:var(--kirby-x-spot-illustration-background-color, var(--kirby-spot-illustration-color-fill-raised))}ion-icon::part(outline){fill:var(--kirby-x-spot-illustration-outline-color, var(--kirby-spot-illustration-color-content-base))}ion-icon::part(highlight){fill:var(--kirby-x-spot-illustration-highlight-color, var(--kirby-spot-illustration-color-fill-brand))}ion-icon::part(danger){fill:var(--kirby-spot-illustration-color-fill-danger)}ion-icon::part(warning){fill:var(--kirby-spot-illustration-color-fill-warning)}ion-icon::part(success){fill:var(--kirby-spot-illustration-color-fill-success)}\n"],
|
|
111
111
|
dependencies: [{
|
|
112
112
|
kind: "component",
|
|
113
113
|
type: IonIcon,
|
|
@@ -132,7 +132,7 @@ var SpotIllustrationComponent = class SpotIllustrationComponent {
|
|
|
132
132
|
};
|
|
133
133
|
i0.ɵɵngDeclareClassMetadata({
|
|
134
134
|
minVersion: "12.0.0",
|
|
135
|
-
version: "22.2.
|
|
135
|
+
version: "22.2.4",
|
|
136
136
|
ngImport: i0,
|
|
137
137
|
type: SpotIllustrationComponent,
|
|
138
138
|
decorators: [{
|
|
@@ -142,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
142
142
|
imports: [IonIcon],
|
|
143
143
|
changeDetection: ChangeDetectionStrategy.Eager,
|
|
144
144
|
template: "@if (svg()) {\n <ion-icon [src]=\"svg()\" [class]=\"size()\"></ion-icon>\n}\n",
|
|
145
|
-
styles: [".sm{font-size:40px;display:block}.md{font-size:56px;display:block}.lg{font-size:96px;display:block}.xl{font-size:136px;display:block}
|
|
145
|
+
styles: [".sm{font-size:40px;display:block}.md{font-size:56px;display:block}.lg{font-size:96px;display:block}.xl{font-size:136px;display:block}ion-icon::part(background){fill:var(--kirby-x-spot-illustration-background-color, var(--kirby-spot-illustration-color-fill-raised))}ion-icon::part(outline){fill:var(--kirby-x-spot-illustration-outline-color, var(--kirby-spot-illustration-color-content-base))}ion-icon::part(highlight){fill:var(--kirby-x-spot-illustration-highlight-color, var(--kirby-spot-illustration-color-fill-brand))}ion-icon::part(danger){fill:var(--kirby-spot-illustration-color-fill-danger)}ion-icon::part(warning){fill:var(--kirby-spot-illustration-color-fill-warning)}ion-icon::part(success){fill:var(--kirby-spot-illustration-color-fill-success)}\n"]
|
|
146
146
|
}]
|
|
147
147
|
}],
|
|
148
148
|
propDecorators: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-extensions-angular-spot-illustration.mjs","names":[],"sources":["../../spot-illustration/src/spot-illustrations.ts","../../spot-illustration/src/spot-illustration.component.ts","../../spot-illustration/src/spot-illustration.component.html"],"sourcesContent":["export interface Illustration {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n}\n\nexport enum SpotIllustrationSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\nexport const illustrations = {\n 'airballoon.wind.ballon-part.cloud': {\n md: 'airballoon.wind.ballon-part.cloud.medium.svg',\n },\n 'banknotes.arrow.dot.circle': {\n md: 'banknotes.arrow.dot.circle.medium.svg',\n },\n 'bell.checkmark.dot.bars': {\n xl: 'bell.checkmark.dot.bars.xlarge.svg',\n },\n 'bell.exclamation-mark.triangle.bars': {\n md: 'bell.exclamation-mark.triangle.bars.medium.svg',\n },\n 'box.curve.box.half-circle': {\n md: 'box.curve.box.half-circle.medium.svg',\n },\n 'box.none.plus-dot.bars': {\n lg: 'box.none.plus-dot.bars.large.svg',\n },\n 'calculator.money.coin.rectangle': {\n md: 'calculator.money.coin.rectangle.medium.svg',\n },\n 'calendar.money.coin.bars': {\n md: 'calendar.money.coin.bars.medium.svg',\n },\n 'calender.loop-arrow.zoom.bars': {\n lg: 'calender.loop-arrow.zoom.bars.large.svg',\n xl: 'calender.loop-arrow.zoom.bars.xlarge.svg',\n },\n 'calender.money-arrows.header.bars': {\n md: 'calender.money-arrows.header.bars.medium.svg',\n lg: 'calender.money-arrows.header.bars.large.svg',\n },\n 'checkmark.circle.circle-part.shadow': {\n lg: 'checkmark.circle.circle-part.shadow.large.svg',\n },\n 'computer.certificate.padlock.circle': {\n lg: 'computer.certificate.padlock.circle.large.svg',\n },\n 'cross.circle.circle-part.shadow': {\n lg: 'cross.circle.circle-part.shadow.large.svg',\n },\n 'device.arrow-download.dot.circle': {\n xl: 'device.arrow-download.dot.circle.xlarge.svg',\n },\n 'document.card.dot.circle': {\n lg: 'document.card.dot.circle.large.svg',\n },\n 'exclamation-mark.circle.circle-part.shadow': {\n lg: 'exclamation-mark.circle.circle-part.shadow.large.svg',\n },\n 'graph.coins.dot.bars': {\n md: 'graph.coins.dot.bars.medium.svg',\n },\n 'hand-money.line.money-dot.bars': {\n md: 'hand-money.line.money-dot.bars.medium.svg',\n },\n 'hand.balloon.balloon.circle': {\n xl: 'hand.balloon.balloon.circle.xlarge.svg',\n },\n 'hand.moneybag.ribbon.circle': {\n lg: 'hand.moneybag.ribbon.circle.large.svg',\n },\n 'house.plant.door.bars': {\n md: 'house.plant.door.bars.medium.svg',\n },\n 'invest-document.graph.bars.square': {\n md: 'invest-document.graph.bars.square.medium.svg',\n lg: 'invest-document.graph.bars.square.large.svg',\n xl: 'invest-document.graph.bars.square.xlarge.svg',\n },\n 'invest-page.money.dot.circle': {\n md: 'invest-page.money.dot.circle.medium.svg',\n },\n 'letters.arrow.triangle.circle': {\n lg: 'letters.arrow.triangle.circle.large.svg',\n },\n 'megaphone.sound.megaphone-part.circle': {\n xl: 'megaphone.sound.megaphone-part.circle.xlarge.svg',\n },\n 'money-coinstack.graphline.topcoin.bars': {\n md: 'money-coinstack.graphline.topcoin.bars.medium.svg',\n },\n 'money-notes.shield.heart.circle': {\n md: 'money-notes.shield.heart.circle.medium.svg',\n },\n 'money.arrow.coin.bars': {\n md: 'money.arrow.coin.bars.medium.svg',\n },\n 'money.none.coin.bars': {\n md: 'money.none.coin.bars.medium.svg',\n },\n 'moneybag.money-notes.dot.bars': {\n md: 'moneybag.money-notes.dot.bars.medium.svg',\n },\n 'piggy-bank.money.money-dot.bars': {\n md: 'piggy-bank.money.money-dot.bars.medium.svg',\n },\n 'plant.bars.leaf.bars': {\n md: 'plant.bars.leaf.bars.medium.svg',\n },\n 'robot.none.antenna-dot.body': {\n md: 'robot.none.antenna-dot.body.medium.svg',\n lg: 'robot.none.antenna-dot.body.large.svg',\n },\n 'template.plus.dot.circle': {\n xl: 'template.plus.dot.circle.xlarge.svg',\n },\n 'wallet.face-coins.star.circle': {\n lg: 'wallet.face-coins.star.circle.large.svg',\n },\n} as const satisfies Record<string, Illustration>;\n\nexport type SpotIllustrationName = keyof typeof illustrations | null;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { IonIcon } from '@ionic/angular';\nimport {\n Illustration,\n illustrations,\n SpotIllustrationName,\n SpotIllustrationSize,\n} from './spot-illustrations';\n\n@Component({\n selector: 'kirby-x-spot-illustration',\n imports: [IonIcon],\n templateUrl: './spot-illustration.component.html',\n styleUrl: './spot-illustration.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SpotIllustrationComponent {\n /**\n * The size of the Spot Illustration\n */\n size = input<SpotIllustrationSize>(SpotIllustrationSize.MD);\n\n /**\n * The name of the Spot Illustration to display\n */\n name = input.required<SpotIllustrationName>();\n\n illustration = computed(() => {\n const name = this.name();\n return name ? illustrations[name] : null;\n });\n\n svg = computed(() => {\n const illustration = this.illustration() as Illustration;\n const size = this.size();\n return illustration && illustration[size]\n ? `assets/spot-illustrations/${illustration[size]}`\n : undefined;\n });\n}\n","@if (svg()) {\n <ion-icon [src]=\"svg()\" [class]=\"size()\"></ion-icon>\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kirbydesign-extensions-angular-spot-illustration.mjs","names":[],"sources":["../../spot-illustration/src/spot-illustrations.ts","../../spot-illustration/src/spot-illustration.component.ts","../../spot-illustration/src/spot-illustration.component.html"],"sourcesContent":["export interface Illustration {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n}\n\nexport enum SpotIllustrationSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\nexport const illustrations = {\n 'airballoon.wind.ballon-part.cloud': {\n md: 'airballoon.wind.ballon-part.cloud.medium.svg',\n },\n 'banknotes.arrow.dot.circle': {\n md: 'banknotes.arrow.dot.circle.medium.svg',\n },\n 'bell.checkmark.dot.bars': {\n xl: 'bell.checkmark.dot.bars.xlarge.svg',\n },\n 'bell.exclamation-mark.triangle.bars': {\n md: 'bell.exclamation-mark.triangle.bars.medium.svg',\n },\n 'box.curve.box.half-circle': {\n md: 'box.curve.box.half-circle.medium.svg',\n },\n 'box.none.plus-dot.bars': {\n lg: 'box.none.plus-dot.bars.large.svg',\n },\n 'calculator.money.coin.rectangle': {\n md: 'calculator.money.coin.rectangle.medium.svg',\n },\n 'calendar.money.coin.bars': {\n md: 'calendar.money.coin.bars.medium.svg',\n },\n 'calender.loop-arrow.zoom.bars': {\n lg: 'calender.loop-arrow.zoom.bars.large.svg',\n xl: 'calender.loop-arrow.zoom.bars.xlarge.svg',\n },\n 'calender.money-arrows.header.bars': {\n md: 'calender.money-arrows.header.bars.medium.svg',\n lg: 'calender.money-arrows.header.bars.large.svg',\n },\n 'checkmark.circle.circle-part.shadow': {\n lg: 'checkmark.circle.circle-part.shadow.large.svg',\n },\n 'computer.certificate.padlock.circle': {\n lg: 'computer.certificate.padlock.circle.large.svg',\n },\n 'cross.circle.circle-part.shadow': {\n lg: 'cross.circle.circle-part.shadow.large.svg',\n },\n 'device.arrow-download.dot.circle': {\n xl: 'device.arrow-download.dot.circle.xlarge.svg',\n },\n 'document.card.dot.circle': {\n lg: 'document.card.dot.circle.large.svg',\n },\n 'exclamation-mark.circle.circle-part.shadow': {\n lg: 'exclamation-mark.circle.circle-part.shadow.large.svg',\n },\n 'graph.coins.dot.bars': {\n md: 'graph.coins.dot.bars.medium.svg',\n },\n 'hand-money.line.money-dot.bars': {\n md: 'hand-money.line.money-dot.bars.medium.svg',\n },\n 'hand.balloon.balloon.circle': {\n xl: 'hand.balloon.balloon.circle.xlarge.svg',\n },\n 'hand.moneybag.ribbon.circle': {\n lg: 'hand.moneybag.ribbon.circle.large.svg',\n },\n 'house.plant.door.bars': {\n md: 'house.plant.door.bars.medium.svg',\n },\n 'invest-document.graph.bars.square': {\n md: 'invest-document.graph.bars.square.medium.svg',\n lg: 'invest-document.graph.bars.square.large.svg',\n xl: 'invest-document.graph.bars.square.xlarge.svg',\n },\n 'invest-page.money.dot.circle': {\n md: 'invest-page.money.dot.circle.medium.svg',\n },\n 'letters.arrow.triangle.circle': {\n lg: 'letters.arrow.triangle.circle.large.svg',\n },\n 'megaphone.sound.megaphone-part.circle': {\n xl: 'megaphone.sound.megaphone-part.circle.xlarge.svg',\n },\n 'money-coinstack.graphline.topcoin.bars': {\n md: 'money-coinstack.graphline.topcoin.bars.medium.svg',\n },\n 'money-notes.shield.heart.circle': {\n md: 'money-notes.shield.heart.circle.medium.svg',\n },\n 'money.arrow.coin.bars': {\n md: 'money.arrow.coin.bars.medium.svg',\n },\n 'money.none.coin.bars': {\n md: 'money.none.coin.bars.medium.svg',\n },\n 'moneybag.money-notes.dot.bars': {\n md: 'moneybag.money-notes.dot.bars.medium.svg',\n },\n 'piggy-bank.money.money-dot.bars': {\n md: 'piggy-bank.money.money-dot.bars.medium.svg',\n },\n 'plant.bars.leaf.bars': {\n md: 'plant.bars.leaf.bars.medium.svg',\n },\n 'robot.none.antenna-dot.body': {\n md: 'robot.none.antenna-dot.body.medium.svg',\n lg: 'robot.none.antenna-dot.body.large.svg',\n },\n 'template.plus.dot.circle': {\n xl: 'template.plus.dot.circle.xlarge.svg',\n },\n 'wallet.face-coins.star.circle': {\n lg: 'wallet.face-coins.star.circle.large.svg',\n },\n} as const satisfies Record<string, Illustration>;\n\nexport type SpotIllustrationName = keyof typeof illustrations | null;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { IonIcon } from '@ionic/angular';\nimport {\n Illustration,\n illustrations,\n SpotIllustrationName,\n SpotIllustrationSize,\n} from './spot-illustrations';\n\n@Component({\n selector: 'kirby-x-spot-illustration',\n imports: [IonIcon],\n templateUrl: './spot-illustration.component.html',\n styleUrl: './spot-illustration.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n})\nexport class SpotIllustrationComponent {\n /**\n * The size of the Spot Illustration\n */\n size = input<SpotIllustrationSize>(SpotIllustrationSize.MD);\n\n /**\n * The name of the Spot Illustration to display\n */\n name = input.required<SpotIllustrationName>();\n\n illustration = computed(() => {\n const name = this.name();\n return name ? illustrations[name] : null;\n });\n\n svg = computed(() => {\n const illustration = this.illustration() as Illustration;\n const size = this.size();\n return illustration && illustration[size]\n ? `assets/spot-illustrations/${illustration[size]}`\n : undefined;\n });\n}\n","@if (svg()) {\n <ion-icon [src]=\"svg()\" [class]=\"size()\"></ion-icon>\n}\n"],"mappings":";;;AAOA,IAAY;CAAZ,SAAY,sBAAoB;CAC9B,qBAAA,QAAA;CACA,qBAAA,QAAA;CACA,qBAAA,QAAA;CACA,qBAAA,QAAA;AACF,EAAA,CALY,yBAAA,uBAAoB,CAAA,EAAA;AAMhC,MAAa,gBAAgB;CAC3B,qCAAqC,EACnC,IAAI,+CACL;CACD,8BAA8B,EAC5B,IAAI,wCACL;CACD,2BAA2B,EACzB,IAAI,qCACL;CACD,uCAAuC,EACrC,IAAI,iDACL;CACD,6BAA6B,EAC3B,IAAI,uCACL;CACD,0BAA0B,EACxB,IAAI,mCACL;CACD,mCAAmC,EACjC,IAAI,6CACL;CACD,4BAA4B,EAC1B,IAAI,sCACL;CACD,iCAAiC;EAC/B,IAAI;EACJ,IAAI;CACL;CACD,qCAAqC;EACnC,IAAI;EACJ,IAAI;CACL;CACD,uCAAuC,EACrC,IAAI,gDACL;CACD,uCAAuC,EACrC,IAAI,gDACL;CACD,mCAAmC,EACjC,IAAI,4CACL;CACD,oCAAoC,EAClC,IAAI,8CACL;CACD,4BAA4B,EAC1B,IAAI,qCACL;CACD,8CAA8C,EAC5C,IAAI,uDACL;CACD,wBAAwB,EACtB,IAAI,kCACL;CACD,kCAAkC,EAChC,IAAI,4CACL;CACD,+BAA+B,EAC7B,IAAI,yCACL;CACD,+BAA+B,EAC7B,IAAI,wCACL;CACD,yBAAyB,EACvB,IAAI,mCACL;CACD,qCAAqC;EACnC,IAAI;EACJ,IAAI;EACJ,IAAI;CACL;CACD,gCAAgC,EAC9B,IAAI,0CACL;CACD,iCAAiC,EAC/B,IAAI,0CACL;CACD,yCAAyC,EACvC,IAAI,mDACL;CACD,0CAA0C,EACxC,IAAI,oDACL;CACD,mCAAmC,EACjC,IAAI,6CACL;CACD,yBAAyB,EACvB,IAAI,mCACL;CACD,wBAAwB,EACtB,IAAI,kCACL;CACD,iCAAiC,EAC/B,IAAI,2CACL;CACD,mCAAmC,EACjC,IAAI,6CACL;CACD,wBAAwB,EACtB,IAAI,kCACL;CACD,+BAA+B;EAC7B,IAAI;EACJ,IAAI;CACL;CACD,4BAA4B,EAC1B,IAAI,sCACL;CACD,iCAAiC,EAC/B,IAAI,0CACL;AAC8C;AC5GjD,IAAa,4BAAb,MAAa,0BAAyB;CAPtC,cAAA;EAWE,KAAA,OAAO,MAA4B,qBAAqB,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;EAK3D,KAAA,OAAO,MAAM,SAAgC,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;EAE7C,KAAA,eAAe,eAAc;GAC3B,MAAM,OAAO,KAAK,KAAI;GACtB,OAAO,OAAO,cAAc,QAAQ;EACtC,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;EAEF,KAAA,MAAM,eAAc;GAClB,MAAM,eAAe,KAAK,aAAY;GACtC,MAAM,OAAO,KAAK,KAAI;GACtB,OAAO,gBAAgB,aAAa,QAChC,6BAA6B,aAAa,UAC1C;EACN,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,+BAAA,CAAA,CAAA;CACH;CAvBY;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAyB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAzB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAyB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,MAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;IAAA,MAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;GAAA;GAAA,UAAA;GAAA,UChBtC;GAGA,QAAA,CAAA,wvBAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MDQY;IAAO,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAKN,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAyB,YAAA,CAAA;EAPrC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAA2B,SAC5B,CAAC,OAAO;GAAC,iBAGD,wBAAwB;GAAK,UAAA;GAAA,QAAA,CAAA,wvBAAA;EAAA,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kirbydesign/extensions-angular",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"author": "kirby@bankdata.dk",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@angular/platform-browser": "^21.0.0 || ^22.0.0",
|
|
17
17
|
"@angular/platform-browser-dynamic": "^21.0.0 || ^22.0.0",
|
|
18
18
|
"@angular/router": "^21.0.0 || ^22.0.0",
|
|
19
|
-
"@kirbydesign/designsystem": "12.0.0
|
|
19
|
+
"@kirbydesign/designsystem": "^12.0.0",
|
|
20
20
|
"rxjs": "^7.0.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
@@ -59,4 +59,4 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"type": "module"
|
|
62
|
-
}
|
|
62
|
+
}
|
|
@@ -117,8 +117,6 @@ interface KirbyExtensionsLocalizationToken {
|
|
|
117
117
|
currencyMappings?: CurrencyMappings;
|
|
118
118
|
}
|
|
119
119
|
export declare function formatAmount(amount: Amount, locale: string, config: KirbyExtensionsLocalizationToken, amountServiceConfiguration?: AmountServiceConfiguration): string;
|
|
120
|
-
declare function deriveCurrencyCode(amountConfig: AmountServiceConfiguration, amount: Amount, config: KirbyExtensionsLocalizationToken): string;
|
|
121
|
-
declare function deriveConfiguration(configuration?: AmountServiceConfiguration): AmountServiceConfiguration;
|
|
122
120
|
type ShowCurrencyCode = '' | 'alwaysShowCurrency' | 'showForeignCurrency' | 'useCurrencyMapping';
|
|
123
121
|
type CurrencyCodePosition = '' | 'prefix' | 'postfix';
|
|
124
122
|
export interface AmountServiceConfiguration {
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class SkeletonLoaderComponent {
|
|
3
3
|
/**
|
|
4
|
-
* The
|
|
4
|
+
* @deprecated The skeleton loader now follows the surface it's placed on, so this input no longer has any effect.
|
|
5
|
+
* This input will be removed in a future major version.
|
|
5
6
|
*/
|
|
6
|
-
theme: 'light' | 'dark';
|
|
7
|
+
set theme(_value: 'light' | 'dark');
|
|
7
8
|
/**
|
|
8
9
|
* The shape of the skeleton loader.
|
|
9
10
|
*/
|
|
10
11
|
shape: 'rectangle' | 'circle' | 'pill';
|
|
11
|
-
get _cssClass(): ("
|
|
12
|
+
get _cssClass(): ("rectangle" | "circle" | "pill")[];
|
|
12
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonLoaderComponent, never>;
|
|
13
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonLoaderComponent, "kirby-x-skeleton-loader", never, {
|
|
14
15
|
"theme": {
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export {};
|
|
1
|
+
export {}
|