@daffodil/design 0.93.0 → 0.94.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/README.md +0 -1
- package/accordion/src/accordion-theme.scss +2 -2
- package/article/src/article/_stops-article-cascade.scss +5 -1
- package/article/src/article-theme.scss +2 -2
- package/badge/README.md +85 -0
- package/badge/src/badge-theme.scss +197 -0
- package/beacon/README.md +61 -0
- package/beacon/src/beacon-theme.scss +61 -0
- package/breadcrumb/src/breadcrumb-theme.scss +2 -2
- package/button/src/button/basic/button-theme.scss +2 -2
- package/button/src/button/flat/flat-theme.scss +2 -2
- package/button/src/button/icon/icon-theme.scss +2 -2
- package/button/src/button/raised/raised-theme.scss +13 -13
- package/button/src/button/stroked/stroked-theme.scss +2 -2
- package/button/src/button/underline/underline-theme.scss +2 -2
- package/callout/src/callout-theme.scss +12 -2
- package/card/src/card/stroked/stroked-theme.scss +14 -22
- package/card/src/card-base-theme.scss +4 -4
- package/card/src/card-base.scss +13 -16
- package/fesm2022/daffodil-design-accordion.mjs +9 -15
- package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
- package/fesm2022/daffodil-design-article.mjs +2 -2
- package/fesm2022/daffodil-design-article.mjs.map +1 -1
- package/fesm2022/daffodil-design-badge.mjs +87 -0
- package/fesm2022/daffodil-design-badge.mjs.map +1 -0
- package/fesm2022/daffodil-design-beacon.mjs +48 -0
- package/fesm2022/daffodil-design-beacon.mjs.map +1 -0
- package/fesm2022/daffodil-design-breadcrumb.mjs +1 -1
- package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
- package/fesm2022/daffodil-design-button.mjs +1 -1
- package/fesm2022/daffodil-design-button.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout.mjs +2 -2
- package/fesm2022/daffodil-design-card.mjs +9 -11
- package/fesm2022/daffodil-design-card.mjs.map +1 -1
- package/fesm2022/daffodil-design-form-field.mjs +95 -115
- package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-form.mjs +5 -7
- package/fesm2022/daffodil-design-form.mjs.map +1 -1
- package/fesm2022/daffodil-design-image.mjs +41 -98
- package/fesm2022/daffodil-design-image.mjs.map +1 -1
- package/fesm2022/daffodil-design-input.mjs +3 -3
- package/fesm2022/daffodil-design-input.mjs.map +1 -1
- package/fesm2022/daffodil-design-list.mjs +16 -21
- package/fesm2022/daffodil-design-list.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery.mjs +56 -61
- package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
- package/fesm2022/daffodil-design-menu.mjs +61 -38
- package/fesm2022/daffodil-design-menu.mjs.map +1 -1
- package/fesm2022/daffodil-design-modal.mjs +2 -2
- package/fesm2022/daffodil-design-modal.mjs.map +1 -1
- package/fesm2022/daffodil-design-native-select.mjs +3 -3
- package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification.mjs +17 -20
- package/fesm2022/daffodil-design-notification.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator.mjs +71 -76
- package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar.mjs +33 -53
- package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
- package/fesm2022/daffodil-design-select.mjs +1 -1
- package/fesm2022/daffodil-design-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-sidebar.mjs +2 -2
- package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
- package/fesm2022/daffodil-design-spinner.mjs +17 -16
- package/fesm2022/daffodil-design-spinner.mjs.map +1 -1
- package/fesm2022/daffodil-design-switch.mjs +20 -29
- package/fesm2022/daffodil-design-switch.mjs.map +1 -1
- package/fesm2022/daffodil-design-tabs.mjs +86 -88
- package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
- package/fesm2022/daffodil-design-tag.mjs +33 -28
- package/fesm2022/daffodil-design-tag.mjs.map +1 -1
- package/fesm2022/daffodil-design-text-snippet.mjs +18 -23
- package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
- package/fesm2022/daffodil-design-textarea.mjs +3 -3
- package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast.mjs +19 -20
- package/fesm2022/daffodil-design-toast.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +111 -80
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/form/src/hint/hint-theme.scss +2 -2
- package/form-field/src/form-field-theme.scss +2 -2
- package/hero/src/hero-theme.scss +12 -2
- package/list/README.md +10 -0
- package/list/src/list-theme.scss +2 -2
- package/media-gallery/README.md +0 -5
- package/media-gallery/src/media-gallery-theme.scss +2 -2
- package/menu/README.md +5 -0
- package/menu/src/menu-theme.scss +4 -4
- package/notification/src/notification-theme.scss +2 -2
- package/package.json +1 -1
- package/paginator/src/paginator-theme.scss +2 -2
- package/progress-bar/README.md +1 -1
- package/progress-bar/src/progress-bar-theme.scss +2 -2
- package/scss/global.scss +4 -0
- package/scss/state/skeleton/_mixins.scss +2 -2
- package/scss/theme/default.scss +15 -0
- package/scss/theme.scss +4 -8
- package/scss/theming/_configure-palette.scss +5 -1
- package/scss/theming/_get-theme-mode.scss +1 -1
- package/scss/theming/_index.scss +2 -3
- package/scss/theming/_light-dark.scss +37 -12
- package/scss/theming/color-shift/_color-shift.scss +56 -0
- package/scss/theming/color-shift/_color-shift.spec.scss +107 -0
- package/scss/theming/color-shift/_index.scss +1 -0
- package/scss/theming/{_daff-theme.scss → default/_daff-theme.scss} +4 -4
- package/scss/theming/default/_index.scss +1 -0
- package/select/src/select-theme.scss +5 -3
- package/switch/src/switch-theme.scss +2 -2
- package/tabs/src/tabs-theme.scss +2 -2
- package/tag/README.md +10 -6
- package/tag/src/tag-theme.scss +102 -5
- package/toast/src/toast-theme.scss +2 -2
- package/tree/src/tree-theme.scss +2 -2
- package/types/daffodil-design-accordion.d.ts +4 -4
- package/types/daffodil-design-badge.d.ts +63 -0
- package/types/daffodil-design-beacon.d.ts +26 -0
- package/types/daffodil-design-card.d.ts +2 -2
- package/types/daffodil-design-form-field.d.ts +34 -31
- package/types/daffodil-design-form.d.ts +2 -2
- package/types/daffodil-design-image.d.ts +15 -28
- package/types/daffodil-design-list.d.ts +3 -3
- package/types/daffodil-design-media-gallery.d.ts +31 -20
- package/types/daffodil-design-menu.d.ts +51 -20
- package/types/daffodil-design-notification.d.ts +5 -6
- package/types/daffodil-design-paginator.d.ts +20 -25
- package/types/daffodil-design-progress-bar.d.ts +16 -21
- package/types/daffodil-design-spinner.d.ts +2 -2
- package/types/daffodil-design-switch.d.ts +7 -8
- package/types/daffodil-design-tabs.d.ts +29 -29
- package/types/daffodil-design-tag.d.ts +22 -16
- package/types/daffodil-design-text-snippet.d.ts +9 -9
- package/types/daffodil-design.d.ts +61 -41
- package/fesm2022/daffodil-design-loading-icon.mjs +0 -67
- package/fesm2022/daffodil-design-loading-icon.mjs.map +0 -1
- package/loading-icon/README.md +0 -59
- package/loading-icon/src/loading-icon-theme.scss +0 -103
- package/scss/theming/illuminate/illuminate.scss +0 -149
- package/scss/theming/illuminate/illuminate.spec.scss +0 -15
- package/types/daffodil-design-loading-icon.d.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-menu.mjs","sources":["../../../libs/design/menu/src/config/menu-config.ts","../../../libs/design/menu/src/helpers/create-overlay.ts","../../../libs/design/menu/src/services/menu.service.ts","../../../libs/design/menu/src/config/menu-id.ts","../../../libs/design/menu/src/menu-activator/menu-activator.component.ts","../../../libs/design/menu/src/menu-item/menu-item.token.ts","../../../libs/design/menu/src/menu-item/menu-item.component.ts","../../../libs/design/menu/src/menu-item/menu-item.component.html","../../../libs/design/menu/src/menu/menu.component.ts","../../../libs/design/menu/src/menu/menu.component.html","../../../libs/design/menu/src/menu.module.ts","../../../libs/design/menu/src/menu.ts","../../../libs/design/menu/src/daffodil-design-menu.ts"],"sourcesContent":["import { createConfigInjectionToken } from '@daffodil/core';\n\n/**\n * Configuration for a menu instance.\n */\nexport interface DaffMenuConfig {\n /**\n * A unique identifier for the menu instance.\n */\n menuId?: string;\n}\n\nconst daffMenuConfigDefault: DaffMenuConfig = {\n menuId: '',\n};\n\nexport const {\n /**\n * An injection token for the menu configuration.\n */\n token: DAFF_MENU_CONFIG,\n /**\n * Provider function for {@link DAFF_MENU_CONFIG}.\n */\n provider: provideDaffMenuConfig,\n} = createConfigInjectionToken<DaffMenuConfig>(daffMenuConfigDefault, 'DAFF_MENU_CONFIG');\n","import {\n Overlay,\n OverlayConfig,\n} from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\n\nexport function daffMenuCreateOverlay(overlay: Overlay, element: ElementRef, config: OverlayConfig = {}) {\n return overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n positionStrategy: overlay\n .position()\n .flexibleConnectedTo(element)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 0,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]),\n ...config,\n });\n};\n","import {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n map,\n Observable,\n} from 'rxjs';\n\nimport { DaffLazyComponent } from '@daffodil/design';\n\nimport {\n DAFF_MENU_CONFIG,\n DaffMenuConfig,\n} from '../config/menu-config';\nimport { daffMenuCreateOverlay } from '../helpers/create-overlay';\n\nexport type DaffMenuSlot = TemplateRef<unknown> | DaffLazyComponent | Type<unknown>;\n\n@Injectable()\nexport class DaffMenuService {\n protected _overlay: OverlayRef | null;\n private _activator: ViewContainerRef;\n\n private $_open: BehaviorSubject<boolean> = new BehaviorSubject(false);\n public open$: Observable<boolean> = this.$_open.asObservable();\n\n constructor(\n protected overlay: Overlay,\n private injector: Injector,\n ) {}\n\n /**\n * @docs-private\n */\n protected async _createOverlay(activatorElement: ViewContainerRef, component: DaffMenuSlot, config?: DaffMenuConfig) {\n if (!this._overlay) {\n this._overlay = daffMenuCreateOverlay(this.overlay, activatorElement.element);\n if(typeof component === 'object' && (<DaffLazyComponent>component)?.import) {\n component = await (<DaffLazyComponent>component).import();\n }\n\n const injector = Injector.create({\n providers: [{ provide: DAFF_MENU_CONFIG, useValue: config }],\n parent: this.injector,\n });\n\n if(component instanceof Type) {\n this._overlay.attach(new ComponentPortal(<Type<unknown>>component, null, injector));\n } else if (component instanceof TemplateRef) {\n this._overlay.attach(new TemplatePortal(component, activatorElement, null, injector));\n }\n\n this._overlay.backdropClick().pipe(\n map(() => this.close()),\n ).subscribe();\n }\n }\n\n /**\n * @docs-private\n */\n protected _destroyOverlay() {\n if (this._overlay) {\n this._overlay.detach();\n this._overlay.dispose();\n this._overlay = null;\n }\n }\n\n close() {\n this._destroyOverlay();\n this.$_open.next(false);\n this._activator.element.nativeElement.focus();\n }\n\n open(activator: ViewContainerRef, component: DaffMenuSlot, config?: DaffMenuConfig) {\n if (this._overlay) {\n this._destroyOverlay();\n }\n this._createOverlay(activator, component, config);\n this._activator = activator;\n this.$_open.next(true);\n }\n}\n","let daffMenuUniqueId = 0;\n\n/**\n * Generates a unique menu ID for each menu instance.\n */\nexport const daffNextMenuId = (): string =>\n `daff-menu-${daffMenuUniqueId++}`;\n","import {\n ChangeDetectorRef,\n computed,\n Directive,\n input,\n Input,\n OnDestroy,\n signal,\n TemplateRef,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n Subject,\n takeUntil,\n} from 'rxjs';\n\nimport { daffNextMenuId } from '../config/menu-id';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * Directive that triggers the menu to open/close. Applied to the button that activates the menu. The selector doubles as an input for the menu content to display.\n *\n * @example\n * ```html\n * <button [daffMenuActivator]=\"menu\">\n * Open Menu\n * </button>\n * ```\n */\n@Directive({\n selector: '[daffMenuActivator]',\n host: {\n '(click)': 'onClick($event)',\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'ariaExpanded',\n '[attr.aria-controls]': '_open ? menuId() : null',\n },\n exportAs: 'daffMenuActivator',\n})\nexport class DaffMenuActivatorDirective implements OnDestroy {\n\n private _destroyed$ = new Subject<boolean>();\n private _defaultMenuId = daffNextMenuId();\n protected _open: boolean;\n readonly isOpen = signal(false);\n\n /**\n * The menu content to display when activated.\n */\n @Input() daffMenuActivator: Type<unknown> | TemplateRef<unknown>;\n\n /**\n * An optional ID for the activator.\n * When set, the menu's ID is derived as `${id}-menu`.\n */\n id = input<string>();\n\n /**\n * The resolved menu ID.\n */\n protected menuId = computed(() => {\n const id = this.id();\n return id ? `${id}-menu` : this._defaultMenuId;\n });\n\n /**\n * @docs-private\n */\n get ariaExpanded() {\n return this._open ? 'true' : 'false';\n }\n\n constructor(\n private service: DaffMenuService,\n private viewContainerRef: ViewContainerRef,\n private cdRef: ChangeDetectorRef,\n ) {\n this.service.open$.pipe(\n takeUntil(this._destroyed$),\n ).subscribe((val: boolean) => {\n this._open = val;\n this.isOpen.set(this._open);\n this.cdRef.markForCheck();\n });\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed$.next(true);\n this._destroyed$.complete();\n }\n\n /**\n * @docs-private\n */\n focus() {\n this.viewContainerRef.element.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n onClick(event: MouseEvent) {\n event.preventDefault();\n this.service.open(this.viewContainerRef, this.daffMenuActivator, { menuId: this.menuId() });\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\n\nimport { createSingletonInjectionToken } from '@daffodil/core';\n\n/**\n * Injection token/provider pair used to identify menu items.\n *\n * `DaffMenuComponent` uses `@ContentChildren(DAFF_MENU_ITEM_TOKEN)` to discover\n * its menu items. Use `provideDaffMenuItemToken` in component providers to register\n * custom directives and components as menu items alongside native `daff-menu-item` elements.\n */\nexport const {\n token: DAFF_MENU_ITEM_TOKEN,\n provider: provideDaffMenuItemToken,\n} = createSingletonInjectionToken<FocusableOption>('DAFF_MENU_ITEM_TOKEN');\n","/* eslint-disable quote-props */\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport {\n Component,\n ChangeDetectionStrategy,\n ContentChild,\n ElementRef,\n} from '@angular/core';\n\nimport { DaffPrefixDirective } from '@daffodil/design';\n\nimport { provideDaffMenuItemToken } from './menu-item.token';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * Individual clickable items within the menu. Applied to `<button>` or `<a>` elements.\n *\n * @example\n * ```\n * <a daff-menu-item href=\"/\">Settings</a>\n * <button daff-menu-item href=\"/\">Settings</button>\n * ```\n */\n@Component({\n selector:\n 'a[daff-menu-item]' + ',' +\n 'button[daff-menu-item]',\n templateUrl: './menu-item.component.html',\n host: {\n 'class': 'daff-menu-item',\n 'role': 'menuitem',\n '(click)': 'onClick()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideDaffMenuItemToken(DaffMenuItemComponent)],\n})\n\nexport class DaffMenuItemComponent implements FocusableOption {\n /**\n * @docs-private\n */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _menuService: DaffMenuService,\n ) {}\n\n /**\n * @docs-private\n */\n onClick() {\n this._menuService.close();\n }\n\n /**\n * Focus the menu item.\n */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<ng-content></ng-content>","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrapFactory,\n ConfigurableFocusTrap,\n FocusKeyManager,\n FocusableOption,\n} from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n QueryList,\n ContentChildren,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n DAFF_MENU_CONFIG,\n DaffMenuConfig,\n} from '../config/menu-config';\nimport { DaffMenuItemComponent } from '../menu-item/menu-item.component';\nimport { DAFF_MENU_ITEM_TOKEN } from '../menu-item/menu-item.token';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * The floating panel that contains menu items.\n *\n * @example\n * ```html\n * <daff-menu>\n * <button daff-menu-item>\n * <fa-icon [icon]=\"faEdit\" daffPrefix></fa-icon>\n * Edit\n * </button>\n * <button daff-menu-item>\n * <fa-icon [icon]=\"faTrash\" daffPrefix></fa-icon>\n * Delete\n * </button>\n * <a href=\"/settings\" daff-menu-item>\n * <fa-icon [icon]=\"faCog\" daffPrefix></fa-icon>\n * Settings\n * </a>\n * </daff-menu>\n * ```\n */\n@Component({\n selector: 'daff-menu',\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.scss',\n encapsulation: ViewEncapsulation.None, // Required to allow breadcrumb items to take on `.daff-menu-item` styles\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'daff-menu',\n 'tabindex': '0',\n 'role': 'menu',\n '[id]': 'config.menuId',\n '(keydown)': 'handleKeydown($event)',\n },\n imports: [\n DaffMenuItemComponent,\n ],\n})\nexport class DaffMenuComponent implements AfterContentInit, AfterViewInit {\n private _focusTrap: ConfigurableFocusTrap;\n private _keyManager: FocusKeyManager<unknown>;\n /**\n * @docs-private\n *\n * Content children that provide `DAFF_MENU_ITEM_TOKEN` are treated as menu items.\n * This includes both `daff-menu-item` components and any custom directives that also provide the token.\n */\n @ContentChildren(DAFF_MENU_ITEM_TOKEN) private _items: QueryList<FocusableOption>;\n\n constructor(\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _elementRef: ElementRef<HTMLElement>,\n private menuService: DaffMenuService,\n\n /**\n * @docs-private\n */\n @Inject(DAFF_MENU_CONFIG) public readonly config: DaffMenuConfig,\n ) {}\n\n /**\n * @docs-private\n *\n * Handles keyboard navigation.\n */\n handleKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.menuService.close();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Home':\n case 'End':\n event.preventDefault();\n this._keyManager.onKeydown(event);\n break;\n }\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n\n this._keyManager = new FocusKeyManager(this._items)\n .withWrap()\n .withHomeAndEnd();\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n // Set focus to the first menu item when menu opens\n if (this._items.length > 0) {\n this._keyManager.setFirstItemActive();\n this._keyManager.setActiveItem(0);\n }\n }\n}\n","<ng-content></ng-content>","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffMenuComponent } from './menu/menu.component';\nimport { DaffMenuActivatorDirective } from './menu-activator/menu-activator.component';\nimport { DaffMenuItemComponent } from './menu-item/menu-item.component';\nimport { DaffMenuService } from './services/menu.service';\n\n/**\n * @deprecated in favor of {@link DAFF_MENU_COMPONENTS} Deprecated in version 0.92.0. Will be removed in version 0.95.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n DaffMenuActivatorDirective,\n DaffMenuComponent,\n DaffMenuItemComponent,\n DaffPrefixDirective,\n ],\n exports: [\n DaffMenuActivatorDirective,\n DaffMenuComponent,\n DaffMenuItemComponent,\n DaffPrefixDirective,\n ],\n providers: [\n DaffMenuService,\n ],\n})\n\nexport class DaffMenuModule {}\n","import { DaffMenuComponent } from './menu/menu.component';\nimport { DaffMenuActivatorDirective } from './menu-activator/menu-activator.component';\nimport { DaffMenuItemComponent } from './menu-item/menu-item.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_MENU_COMPONENTS = <const> [\n DaffMenuComponent,\n DaffMenuActivatorDirective,\n DaffMenuItemComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffMenuService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-menu.mjs","sources":["../../../libs/design/menu/src/config/menu-config.ts","../../../libs/design/menu/src/helpers/create-overlay.ts","../../../libs/design/menu/src/services/menu.service.ts","../../../libs/design/menu/src/config/menu-id.ts","../../../libs/design/menu/src/menu-activator/menu-activator.component.ts","../../../libs/design/menu/src/menu-item/menu-item.token.ts","../../../libs/design/menu/src/menu-item/menu-item.component.ts","../../../libs/design/menu/src/menu-item/menu-item.component.html","../../../libs/design/menu/src/menu/menu.component.ts","../../../libs/design/menu/src/menu/menu.component.html","../../../libs/design/menu/src/menu.module.ts","../../../libs/design/menu/src/menu.ts","../../../libs/design/menu/src/daffodil-design-menu.ts"],"sourcesContent":["import { createConfigInjectionToken } from '@daffodil/core';\n\nimport {\n DaffMenuXPosition,\n DaffMenuYPosition,\n} from '../helpers/menu-position';\n\n/**\n * Configuration for a menu instance.\n */\nexport interface DaffMenuConfig {\n /**\n * A unique identifier for the menu instance.\n */\n menuId?: string;\n\n /**\n * The horizontal alignment of the menu relative to its activator. Defaults to `after`.\n */\n xPosition?: DaffMenuXPosition;\n\n /**\n * The vertical position of the menu relative to its activator. Defaults to `below`.\n */\n yPosition?: DaffMenuYPosition;\n}\n\nconst daffMenuConfigDefault: DaffMenuConfig = {\n menuId: '',\n xPosition: 'after',\n yPosition: 'below',\n};\n\nexport const {\n /**\n * An injection token for the menu configuration.\n */\n token: DAFF_MENU_CONFIG,\n /**\n * Provider function for {@link DAFF_MENU_CONFIG}.\n */\n provider: provideDaffMenuConfig,\n} = createConfigInjectionToken<DaffMenuConfig>(daffMenuConfigDefault, 'DAFF_MENU_CONFIG');\n","import {\n ConnectedPosition,\n Overlay,\n OverlayConfig,\n STANDARD_DROPDOWN_BELOW_POSITIONS,\n} from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\n\nimport {\n DaffMenuXPosition,\n DaffMenuYPosition,\n} from './menu-position';\n\n/**\n * The CDK connected position for a menu. `yPosition` controls whether the menu drops\n * below or rises above the activator; `xPosition` controls which edges line up. The menu\n * stays anchored to the activator, so this is a single placement rather than a set of\n * fallbacks.\n */\nconst daffMenuConnectedPosition = (xPosition: DaffMenuXPosition, yPosition: DaffMenuYPosition): ConnectedPosition => {\n const x = xPosition === 'before' ? 'end' : 'start';\n\n return {\n originX: x,\n overlayX: x,\n originY: yPosition === 'above' ? 'top' : 'bottom',\n overlayY: yPosition === 'above' ? 'bottom' : 'top',\n };\n};\n\nexport const daffMenuCreateOverlay = (\n overlay: Overlay,\n element: ElementRef,\n xPosition: DaffMenuXPosition = 'after',\n yPosition: DaffMenuYPosition = 'below',\n config: OverlayConfig = {},\n) => overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n panelClass: 'daff-menu-overlay',\n scrollStrategy: overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n positionStrategy: overlay\n .position()\n .flexibleConnectedTo(element)\n .withFlexibleDimensions(true)\n .withPush(false)\n .withViewportMargin(24)\n .withPositions(\n [\n daffMenuConnectedPosition(xPosition, yPosition),\n ...STANDARD_DROPDOWN_BELOW_POSITIONS,\n ],\n ),\n ...config,\n});\n","import {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n map,\n Observable,\n} from 'rxjs';\n\nimport { DaffLazyComponent } from '@daffodil/design';\n\nimport {\n DAFF_MENU_CONFIG,\n DaffMenuConfig,\n} from '../config/menu-config';\nimport { daffMenuCreateOverlay } from '../helpers/create-overlay';\n\nexport type DaffMenuSlot = TemplateRef<unknown> | DaffLazyComponent | Type<unknown>;\n\n@Injectable()\nexport class DaffMenuService {\n protected _overlay: OverlayRef | null;\n private _activator: ViewContainerRef;\n\n private $_open: BehaviorSubject<boolean> = new BehaviorSubject(false);\n public open$: Observable<boolean> = this.$_open.asObservable();\n\n constructor(\n protected overlay: Overlay,\n private injector: Injector,\n ) {}\n\n /**\n * @docs-private\n */\n protected async _createOverlay(activatorElement: ViewContainerRef, component: DaffMenuSlot, config?: DaffMenuConfig) {\n if (!this._overlay) {\n this._overlay = daffMenuCreateOverlay(this.overlay, activatorElement.element, config?.xPosition, config?.yPosition);\n if(typeof component === 'object' && (<DaffLazyComponent>component)?.import) {\n component = await (<DaffLazyComponent>component).import();\n }\n\n const injector = Injector.create({\n providers: [{ provide: DAFF_MENU_CONFIG, useValue: config }],\n parent: this.injector,\n });\n\n if(component instanceof Type) {\n this._overlay.attach(new ComponentPortal(<Type<unknown>>component, null, injector));\n } else if (component instanceof TemplateRef) {\n this._overlay.attach(new TemplatePortal(component, activatorElement, null, injector));\n }\n\n this._overlay.backdropClick().pipe(\n map(() => this.close()),\n ).subscribe();\n }\n }\n\n /**\n * @docs-private\n */\n protected _destroyOverlay() {\n if (this._overlay) {\n this._overlay.detach();\n this._overlay.dispose();\n this._overlay = null;\n }\n }\n\n close() {\n this._destroyOverlay();\n this.$_open.next(false);\n this._activator.element.nativeElement.focus();\n }\n\n open(activator: ViewContainerRef, component: DaffMenuSlot, config?: DaffMenuConfig) {\n if (this._overlay) {\n this._destroyOverlay();\n }\n this._createOverlay(activator, component, config);\n this._activator = activator;\n this.$_open.next(true);\n }\n}\n","let daffMenuUniqueId = 0;\n\n/**\n * Generates a unique menu ID for each menu instance.\n */\nexport const daffNextMenuId = (): string =>\n `daff-menu-${daffMenuUniqueId++}`;\n","import {\n ChangeDetectorRef,\n computed,\n Directive,\n input,\n OnDestroy,\n signal,\n TemplateRef,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n Subject,\n takeUntil,\n} from 'rxjs';\n\nimport { daffNextMenuId } from '../config/menu-id';\nimport {\n DaffMenuXPosition,\n DaffMenuYPosition,\n} from '../helpers/menu-position';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * Directive that triggers the menu to open/close. Applied to the button that activates the menu. The selector doubles as an input for the menu content to display.\n *\n * @example\n * ```html\n * <button [daffMenuActivator]=\"menu\">\n * Open Menu\n * </button>\n * ```\n */\n@Directive({\n selector: '[daffMenuActivator]',\n host: {\n '(click)': 'onClick($event)',\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'ariaExpanded',\n '[attr.aria-controls]': '_open ? menuId() : null',\n },\n exportAs: 'daffMenuActivator',\n providers: [\n DaffMenuService,\n ],\n})\nexport class DaffMenuActivatorDirective implements OnDestroy {\n\n private _destroyed$ = new Subject<boolean>();\n private _defaultMenuId = daffNextMenuId();\n protected _open: boolean;\n readonly isOpen = signal(false);\n\n /**\n * The menu content to display when activated.\n */\n daffMenuActivator = input<Type<unknown> | TemplateRef<unknown>>();\n\n /**\n * An optional ID for the activator.\n * When set, the menu's ID is derived as `${id}-menu`.\n */\n id = input<string>();\n\n /**\n * The horizontal alignment of the menu relative to the activator. Defaults to `after`.\n */\n xPosition = input<DaffMenuXPosition>('after');\n\n /**\n * The vertical position of the menu relative to the activator. Defaults to `below`.\n */\n yPosition = input<DaffMenuYPosition>('below');\n\n /**\n * The resolved menu ID.\n */\n protected menuId = computed(() => {\n const id = this.id();\n return id ? `${id}-menu` : this._defaultMenuId;\n });\n\n /**\n * @docs-private\n */\n get ariaExpanded() {\n return this._open ? 'true' : 'false';\n }\n\n constructor(\n private service: DaffMenuService,\n private viewContainerRef: ViewContainerRef,\n private cdRef: ChangeDetectorRef,\n ) {\n this.service.open$.pipe(\n takeUntil(this._destroyed$),\n ).subscribe((val: boolean) => {\n this._open = val;\n this.isOpen.set(this._open);\n this.cdRef.markForCheck();\n });\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed$.next(true);\n this._destroyed$.complete();\n }\n\n /**\n * @docs-private\n */\n focus() {\n this.viewContainerRef.element.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n onClick(event: MouseEvent) {\n event.preventDefault();\n this.service.open(this.viewContainerRef, this.daffMenuActivator(), { menuId: this.menuId(), xPosition: this.xPosition(), yPosition: this.yPosition() });\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\n\nimport { createSingletonInjectionToken } from '@daffodil/core';\n\n/**\n * Injection token/provider pair used to identify menu items.\n *\n * `DaffMenuComponent` uses `@ContentChildren(DAFF_MENU_ITEM_TOKEN)` to discover\n * its menu items. Use `provideDaffMenuItemToken` in component providers to register\n * custom directives and components as menu items alongside native `daff-menu-item` elements.\n */\nexport const {\n token: DAFF_MENU_ITEM_TOKEN,\n provider: provideDaffMenuItemToken,\n} = createSingletonInjectionToken<FocusableOption>('DAFF_MENU_ITEM_TOKEN');\n","/* eslint-disable quote-props */\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport {\n Component,\n ChangeDetectionStrategy,\n ContentChild,\n ElementRef,\n} from '@angular/core';\n\nimport { DaffPrefixDirective } from '@daffodil/design';\n\nimport { provideDaffMenuItemToken } from './menu-item.token';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * Individual clickable items within the menu. Applied to `<button>` or `<a>` elements.\n *\n * @example\n * ```\n * <a daff-menu-item href=\"/\">Settings</a>\n * <button daff-menu-item href=\"/\">Settings</button>\n * ```\n */\n@Component({\n selector:\n 'a[daff-menu-item]' + ',' +\n 'button[daff-menu-item]',\n templateUrl: './menu-item.component.html',\n host: {\n 'class': 'daff-menu-item',\n 'role': 'menuitem',\n '(click)': 'onClick()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideDaffMenuItemToken(DaffMenuItemComponent)],\n})\n\nexport class DaffMenuItemComponent implements FocusableOption {\n /**\n * @docs-private\n */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _menuService: DaffMenuService,\n ) {}\n\n /**\n * @docs-private\n */\n onClick() {\n this._menuService.close();\n }\n\n /**\n * Focus the menu item.\n */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<ng-content></ng-content>","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrapFactory,\n ConfigurableFocusTrap,\n FocusKeyManager,\n FocusableOption,\n} from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n QueryList,\n ContentChildren,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n DAFF_MENU_CONFIG,\n DaffMenuConfig,\n} from '../config/menu-config';\nimport { DaffMenuItemComponent } from '../menu-item/menu-item.component';\nimport { DAFF_MENU_ITEM_TOKEN } from '../menu-item/menu-item.token';\nimport { DaffMenuService } from '../services/menu.service';\n\n/**\n * The floating panel that contains menu items.\n *\n * @example\n * ```html\n * <daff-menu>\n * <button daff-menu-item>\n * <fa-icon [icon]=\"faEdit\" daffPrefix></fa-icon>\n * Edit\n * </button>\n * <button daff-menu-item>\n * <fa-icon [icon]=\"faTrash\" daffPrefix></fa-icon>\n * Delete\n * </button>\n * <a href=\"/settings\" daff-menu-item>\n * <fa-icon [icon]=\"faCog\" daffPrefix></fa-icon>\n * Settings\n * </a>\n * </daff-menu>\n * ```\n */\n@Component({\n selector: 'daff-menu',\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.scss',\n encapsulation: ViewEncapsulation.None, // Required to allow breadcrumb items to take on `.daff-menu-item` styles\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'daff-menu',\n 'tabindex': '0',\n 'role': 'menu',\n '[id]': 'config.menuId',\n '(keydown)': 'handleKeydown($event)',\n },\n imports: [\n DaffMenuItemComponent,\n ],\n})\nexport class DaffMenuComponent implements AfterContentInit, AfterViewInit {\n private _focusTrap: ConfigurableFocusTrap;\n private _keyManager: FocusKeyManager<unknown>;\n /**\n * @docs-private\n *\n * Content children that provide `DAFF_MENU_ITEM_TOKEN` are treated as menu items.\n * This includes both `daff-menu-item` components and any custom directives that also provide the token.\n */\n @ContentChildren(DAFF_MENU_ITEM_TOKEN) private _items: QueryList<FocusableOption>;\n\n constructor(\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _elementRef: ElementRef<HTMLElement>,\n private menuService: DaffMenuService,\n\n /**\n * @docs-private\n */\n @Inject(DAFF_MENU_CONFIG) public readonly config: DaffMenuConfig,\n ) {}\n\n /**\n * @docs-private\n *\n * Handles keyboard navigation.\n */\n handleKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.menuService.close();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Home':\n case 'End':\n event.preventDefault();\n this._keyManager.onKeydown(event);\n break;\n }\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n\n this._keyManager = new FocusKeyManager(this._items)\n .withWrap()\n .withHomeAndEnd();\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n // Set focus to the first menu item when menu opens\n if (this._items.length > 0) {\n this._keyManager.setFirstItemActive();\n this._keyManager.setActiveItem(0);\n }\n }\n}\n","<ng-content></ng-content>","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffMenuComponent } from './menu/menu.component';\nimport { DaffMenuActivatorDirective } from './menu-activator/menu-activator.component';\nimport { DaffMenuItemComponent } from './menu-item/menu-item.component';\nimport { DaffMenuService } from './services/menu.service';\n\n/**\n * @deprecated in favor of {@link DAFF_MENU_COMPONENTS} Deprecated in version 0.92.0. Will be removed in version 0.95.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n DaffMenuActivatorDirective,\n DaffMenuComponent,\n DaffMenuItemComponent,\n DaffPrefixDirective,\n ],\n exports: [\n DaffMenuActivatorDirective,\n DaffMenuComponent,\n DaffMenuItemComponent,\n DaffPrefixDirective,\n ],\n providers: [\n DaffMenuService,\n ],\n})\n\nexport class DaffMenuModule {}\n","import { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffMenuComponent } from './menu/menu.component';\nimport { DaffMenuActivatorDirective } from './menu-activator/menu-activator.component';\nimport { DaffMenuItemComponent } from './menu-item/menu-item.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_MENU_COMPONENTS = <const> [\n DaffMenuComponent,\n DaffMenuActivatorDirective,\n DaffMenuItemComponent,\n DaffPrefixDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffMenuService"],"mappings":"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"}
|
|
@@ -219,7 +219,7 @@ class DaffModalComponent {
|
|
|
219
219
|
this._closedAnimationCompleted.complete();
|
|
220
220
|
}
|
|
221
221
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffModalComponent, deps: [{ token: DaffModalService }, { token: i2.ConfigurableFocusTrapFactory }, { token: i0.ElementRef }, { token: i3.DaffOpenableDirective }, { token: i3.DaffFocusStackService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffModalComponent, isStandalone: true, selector: "daff-modal", host: { attributes: { "role": "dialog", "aria-modal": "true" }, listeners: { "keydown.escape": "onEscape()" }, properties: { "attr.aria-labelledby": "ariaLabelledBy", "animate.enter": "\"opening\"", "class.closing": "closing()" }, classAttribute: "daff-modal" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], hostDirectives: [{ directive: i3.DaffOpenableDirective, outputs: ["toggled", "toggled"] }], ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".daff-modal{display:flex;flex-direction:column;justify-content:space-between;border-radius:.25rem;max-height:90vh;max-width:90vw;overflow:hidden;z-index:3}.daff-modal.opening{animation:opening .3s}@keyframes opening{0%{opacity:0}to{opacity:1}}.daff-modal.closing{opacity:0;animation:closing .3s}@keyframes closing{0%{opacity:1}to{opacity:0}}@media(min-width:480px){.daff-modal{max-height:80vh;max-width:80vw}}.daff-modal>*{display:inherit;flex-direction:inherit;justify-content:inherit;border-radius:inherit;max-height:inherit;max-width:inherit;overflow:inherit;z-index:inherit}@media(min-width:480px){.daff-modal>*{max-height:inherit;max-width:inherit}}.daff-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;position:relative}.daff-modal-header .daff-modal-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;font-weight:500;line-height:1.5rem;margin:0;padding:0 2rem 0 0}.daff-modal-header__dismiss-button{position:absolute;right:7px;top:12px}.daff-modal-content{display:block;flex-grow:1;max-height:60vh;overflow-y:auto;padding:1.5rem}.daff-modal-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:1.5rem}.daff-modal-content+.daff-modal-actions{padding:0 1.5rem 1.5rem}.daff-modal-header+.daff-modal-content{padding-top:0}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
222
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffModalComponent, isStandalone: true, selector: "daff-modal", host: { attributes: { "role": "dialog", "aria-modal": "true" }, listeners: { "keydown.escape": "onEscape()" }, properties: { "attr.aria-labelledby": "ariaLabelledBy", "animate.enter": "\"opening\"", "class.closing": "closing()" }, classAttribute: "daff-modal" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], hostDirectives: [{ directive: i3.DaffOpenableDirective, outputs: ["toggled", "toggled"] }], ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".daff-modal{display:flex;flex-direction:column;justify-content:space-between;border-radius:.25rem;max-height:90vh;max-width:90vw;overflow:hidden;z-index:3}.daff-modal.opening{animation:opening .3s}@keyframes opening{0%{opacity:0}to{opacity:1}}.daff-modal.closing{opacity:0;animation:closing .3s}@keyframes closing{0%{opacity:1}to{opacity:0}}@media screen and (prefers-reduced-motion:reduce){.daff-modal.opening,.daff-modal.closing{animation:none}}@media(min-width:480px){.daff-modal{max-height:80vh;max-width:80vw}}.daff-modal>*{display:inherit;flex-direction:inherit;justify-content:inherit;border-radius:inherit;max-height:inherit;max-width:inherit;overflow:inherit;z-index:inherit}@media(min-width:480px){.daff-modal>*{max-height:inherit;max-width:inherit}}.daff-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;position:relative}.daff-modal-header .daff-modal-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;font-weight:500;line-height:1.5rem;margin:0;padding:0 2rem 0 0}.daff-modal-header__dismiss-button{position:absolute;right:7px;top:12px}.daff-modal-content{display:block;flex-grow:1;max-height:60vh;overflow-y:auto;padding:1.5rem}.daff-modal-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:1.5rem}.daff-modal-content+.daff-modal-actions{padding:0 1.5rem 1.5rem}.daff-modal-header+.daff-modal-content{padding-top:0}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
223
223
|
}
|
|
224
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffModalComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
@@ -237,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
237
237
|
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
|
|
238
238
|
PortalModule,
|
|
239
239
|
OverlayModule,
|
|
240
|
-
], template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".daff-modal{display:flex;flex-direction:column;justify-content:space-between;border-radius:.25rem;max-height:90vh;max-width:90vw;overflow:hidden;z-index:3}.daff-modal.opening{animation:opening .3s}@keyframes opening{0%{opacity:0}to{opacity:1}}.daff-modal.closing{opacity:0;animation:closing .3s}@keyframes closing{0%{opacity:1}to{opacity:0}}@media(min-width:480px){.daff-modal{max-height:80vh;max-width:80vw}}.daff-modal>*{display:inherit;flex-direction:inherit;justify-content:inherit;border-radius:inherit;max-height:inherit;max-width:inherit;overflow:inherit;z-index:inherit}@media(min-width:480px){.daff-modal>*{max-height:inherit;max-width:inherit}}.daff-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;position:relative}.daff-modal-header .daff-modal-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;font-weight:500;line-height:1.5rem;margin:0;padding:0 2rem 0 0}.daff-modal-header__dismiss-button{position:absolute;right:7px;top:12px}.daff-modal-content{display:block;flex-grow:1;max-height:60vh;overflow-y:auto;padding:1.5rem}.daff-modal-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:1.5rem}.daff-modal-content+.daff-modal-actions{padding:0 1.5rem 1.5rem}.daff-modal-header+.daff-modal-content{padding-top:0}\n"] }]
|
|
240
|
+
], template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".daff-modal{display:flex;flex-direction:column;justify-content:space-between;border-radius:.25rem;max-height:90vh;max-width:90vw;overflow:hidden;z-index:3}.daff-modal.opening{animation:opening .3s}@keyframes opening{0%{opacity:0}to{opacity:1}}.daff-modal.closing{opacity:0;animation:closing .3s}@keyframes closing{0%{opacity:1}to{opacity:0}}@media screen and (prefers-reduced-motion:reduce){.daff-modal.opening,.daff-modal.closing{animation:none}}@media(min-width:480px){.daff-modal{max-height:80vh;max-width:80vw}}.daff-modal>*{display:inherit;flex-direction:inherit;justify-content:inherit;border-radius:inherit;max-height:inherit;max-width:inherit;overflow:inherit;z-index:inherit}@media(min-width:480px){.daff-modal>*{max-height:inherit;max-width:inherit}}.daff-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;position:relative}.daff-modal-header .daff-modal-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;font-weight:500;line-height:1.5rem;margin:0;padding:0 2rem 0 0}.daff-modal-header__dismiss-button{position:absolute;right:7px;top:12px}.daff-modal-content{display:block;flex-grow:1;max-height:60vh;overflow-y:auto;padding:1.5rem}.daff-modal-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:1.5rem}.daff-modal-content+.daff-modal-actions{padding:0 1.5rem 1.5rem}.daff-modal-header+.daff-modal-content{padding-top:0}\n"] }]
|
|
241
241
|
}], ctorParameters: () => [{ type: DaffModalService }, { type: i2.ConfigurableFocusTrapFactory }, { type: i0.ElementRef }, { type: i3.DaffOpenableDirective }, { type: i3.DaffFocusStackService }, { type: i0.ChangeDetectorRef }], propDecorators: { _portalOutlet: [{
|
|
242
242
|
type: ViewChild,
|
|
243
243
|
args: [CdkPortalOutlet, { static: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-modal.mjs","sources":["../../../libs/design/modal/src/service/modal.service.ts","../../../libs/design/modal/src/modal/modal.component.ts","../../../libs/design/modal/src/modal/modal.component.html","../../../libs/design/modal/src/modal-actions/modal-actions.component.ts","../../../libs/design/modal/src/modal-close/modal-close.directive.ts","../../../libs/design/modal/src/modal-content/modal-content.component.ts","../../../libs/design/modal/src/modal-header/modal-header.component.ts","../../../libs/design/modal/src/modal-header/modal-header.component.html","../../../libs/design/modal/src/modal-title/modal-title.directive.ts","../../../libs/design/modal/src/modal.module.ts","../../../libs/design/modal/src/modal.ts","../../../libs/design/modal/src/daffodil-design-modal.ts"],"sourcesContent":["import {\n OverlayRef,\n Overlay,\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Type,\n ComponentRef,\n Injector,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nimport { DaffModal } from '../modal/interfaces/modal';\nimport { DaffModalRef } from '../modal/interfaces/modal-ref';\nimport {\n DaffModalConfiguration,\n DaffModalPosition,\n} from '../modal/modal-config';\nimport { DaffModalComponent } from '../modal/modal.component';\n\n@Injectable()\nexport class DaffModalService {\n private _modals: Map<DaffModalComponent, DaffModal> = new Map();\n\n constructor(private overlay: Overlay) { }\n\n private defaultConfiguration: DaffModalConfiguration = {};\n\n private _attachModal(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffModalComponent> {\n const modal = overlayRef.attach(\n new ComponentPortal(\n DaffModalComponent,\n undefined,\n Injector.create({\n providers: [{\n provide: DaffModalService,\n useValue: this,\n }],\n }),\n ),\n );\n modal.instance.reveal();\n return modal;\n }\n\n private _attachModalContent<T>(\n component: Type<T>,\n modal: ComponentRef<DaffModalComponent>,\n ): ComponentRef<T> {\n return modal.instance.attachContent(new ComponentPortal(component));\n }\n\n private _createPositionStrategy(position?: DaffModalPosition): PositionStrategy {\n // Horizontal position is always center\n const strategy = new GlobalPositionStrategy().centerHorizontally();\n\n // Handle vertical positioning\n if (position?.vertical === 'top') {\n strategy.top(position.offsetTop ?? '15vh');\n } else {\n // Default to center\n strategy.centerVertically();\n }\n\n return strategy;\n }\n\n private _createOverlayRef(config?: Partial<DaffModalConfiguration>): OverlayRef {\n const positionStrategy = this._createPositionStrategy(config?.position);\n\n return this.overlay.create({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n private _removeModal(modal: DaffModal) {\n if (!this._modals.has(modal.modal.instance)) {\n throw new Error(\n 'The Modal that you are trying to remove does not exist.',\n );\n }\n\n this._modals.delete(modal.modal.instance);\n\n modal.overlay.dispose();\n }\n\n private _closeAllModals(): void {\n const modals = Array.from(this._modals.values());\n modals.forEach((modal) => this.close(modal.modal.instance));\n }\n\n open<T>(\n component: Type<T>,\n configuration?: Partial<DaffModalConfiguration>,\n ): DaffModalRef<T> {\n this._closeAllModals();\n const config = { ...this.defaultConfiguration, ...configuration };\n const _ref = this._createOverlayRef(config);\n const _modal = this._attachModal(_ref);\n const _contentRef = this._attachModalContent(component, _modal);\n\n if (configuration?.ariaLabelledBy) {\n _modal.instance.ariaLabelledBy = configuration.ariaLabelledBy;\n }\n\n const modal: DaffModal = {\n modal: _modal,\n overlay: _ref,\n };\n\n this._modals.set(modal.modal.instance, modal);\n\n _ref\n .backdropClick()\n .subscribe(() =>\n config.onBackdropClicked\n ? config.onBackdropClicked()\n : this.close(modal.modal.instance),\n );\n\n return {\n instance: _contentRef.instance,\n close: () => this.close(modal.modal.instance),\n afterClosed: modal.modal.instance.closedAnimationCompleted$,\n };\n }\n\n close(component: DaffModalComponent): void {\n const modal = this._modals.get(component);\n\n modal.overlay.detachBackdrop();\n component.closedAnimationCompleted$.pipe(\n take(1),\n ).subscribe(\n () => this._removeModal(modal),\n );\n\n component.hide();\n\n }\n}\n","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n PortalModule,\n} from '@angular/cdk/portal';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n AfterContentInit,\n AfterViewInit,\n ViewEncapsulation,\n ChangeDetectorRef,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport {\n DaffOpenable,\n DaffOpenableDirective,\n DaffFocusStackService,\n daffFocusableElementsSelector,\n} from '@daffodil/design';\n\nimport { DaffModalService } from '../service/modal.service';\n\n@Component({\n selector: 'daff-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n hostDirectives: [{\n directive: DaffOpenableDirective,\n outputs: ['toggled'],\n }],\n host: {\n 'class': 'daff-modal',\n 'role': 'dialog',\n 'aria-modal': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '(keydown.escape)': 'onEscape()',\n '[animate.enter]': '\"opening\"',\n '[class.closing]': 'closing()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n PortalModule,\n OverlayModule,\n ],\n})\nexport class DaffModalComponent implements AfterContentInit, AfterViewInit, OnDestroy, DaffOpenable {\n /**\n * @docs-private\n */\n readonly closing = signal(false);\n\n private _ariaLabelledBy = null;\n\n /**\n * @docs-private\n *\n * By default, the `aria-labelledby` of the modal is set to the `id` of the modal title.\n */\n get ariaLabelledBy() {\n return this._ariaLabelledBy;\n } set ariaLabelledBy(value: string) {\n this._ariaLabelledBy = value;\n }\n\n /**\n * @docs-private\n *\n * The CDK Portal outlet used to portal content into the modal.\n */\n @ViewChild(CdkPortalOutlet, { static: true }) private _portalOutlet: CdkPortalOutlet;\n\n /**\n * Private subject for closed animation completion events.\n */\n private _closedAnimationCompleted = new Subject<boolean>();\n\n /**\n * Observable that emits when the close animation is completed.\n */\n readonly closedAnimationCompleted$ = this._closedAnimationCompleted.asObservable().pipe(delay(300));\n\n /**\n * @docs-private\n */\n onEscape() {\n this.modalService.close(this);\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private modalService: DaffModalService,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private elementRef: ElementRef<HTMLElement>,\n private openDirective: DaffOpenableDirective,\n private _focusStack: DaffFocusStackService,\n private changeDetector: ChangeDetectorRef,\n ) {\n this.openDirective.stateless = false;\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n this._focusTrap = this._focusTrapFactory.create(\n this.elementRef.nativeElement,\n );\n this._focusStack.push();\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n const focusableChild = (<HTMLElement>this.elementRef.nativeElement.querySelector(\n daffFocusableElementsSelector)\n );\n\n if (focusableChild) {\n focusableChild.focus();\n } else {\n // There's a timing condition when computing HostBindings afterContentInit\n // so to allow the modal to be focused, we manually set the tabindex.\n this.elementRef.nativeElement.tabIndex = 0;\n (<HTMLElement>this.elementRef.nativeElement).focus();\n }\n }\n\n /**\n * @docs-private\n *\n * Helper method to attach portable content to modal.\n */\n attachContent(portal: ComponentPortal<any>): any {\n const attachContent = this._portalOutlet.attachComponentPortal(portal);\n\n return attachContent;\n }\n\n /**\n * Tracks the open state of the modal.\n */\n get open() {\n return this.openDirective.open;\n }\n\n /**\n * @docs-private\n *\n * Reveals the modal.\n */\n reveal() {\n this.openDirective.reveal();\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n *\n * Hides the modal.\n */\n hide() {\n this.openDirective.hide();\n this.closing.set(true);\n this._closedAnimationCompleted.next(true);\n this._focusTrap?.destroy();\n this._focusStack.pop();\n\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n *\n * Toggles the visibility of the modal.\n */\n toggle() {\n this.openDirective.toggle();\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy() {\n this._closedAnimationCompleted.complete();\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","/* eslint-disable quote-props */\nimport {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-modal-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-actions',\n },\n})\nexport class DaffModalActionsComponent {}\n","/* eslint-disable quote-props */\nimport {\n Directive,\n Optional,\n} from '@angular/core';\n\nimport { DaffModalComponent } from '../modal/modal.component';\nimport { DaffModalService } from '../service/modal.service';\n\n/**\n * The DaffModalCloseDirective is a helper directive that passes a click\n * event to the button it's used with to close a modal. It needs to be\n * implemented with the `<button>` HTML element to work. This helps to\n * reduce code duplication.\n */\n@Directive({\n selector: 'button[daffModalClose]',\n host: {\n 'type': 'button',\n '(click)': 'onClick($event)',\n },\n})\n\nexport class DaffModalCloseDirective {\n constructor(\n private modalService: DaffModalService,\n @Optional() private modal: DaffModalComponent,\n ) {}\n\n /**\n * @docs-private\n */\n onClick(event: MouseEvent) {\n if(this.modal) {\n this.modalService.close(this.modal);\n }\n }\n}\n","/* eslint-disable quote-props */\nimport {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-modal-content',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-content',\n },\n})\nexport class DaffModalContentComponent {}\n","/* eslint-disable quote-props */\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\n\nimport { DaffIconButtonComponent } from '@daffodil/design/button';\n\nimport { DaffModalCloseDirective } from '../modal-close/modal-close.directive';\n\n@Component({\n selector: 'daff-modal-header',\n templateUrl: './modal-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-header',\n },\n imports: [\n DaffIconButtonComponent,\n FaIconComponent,\n DaffModalCloseDirective,\n ],\n})\nexport class DaffModalHeaderComponent {\n faXmark = faXmark;\n\n /**\n * Whether or not a modal is dismissible.\n */\n @Input() dismissible = true;\n}\n","<ng-content select=\"[daffModalTitle]\"></ng-content>\n@if (dismissible) {\n\t<button daff-icon-button color=\"theme-contrast\"\n\t\tdaffModalClose\n\t\tclass=\"daff-modal-header__dismiss-button\"\n\t\taria-label=\"Close modal\">\n\t\t\t<fa-icon [icon]=\"faXmark\" size=\"lg\"></fa-icon>\n\t</button>\n}","import {\n Directive,\n Optional,\n} from '@angular/core';\n\nimport { DaffModalComponent } from '../modal/modal.component';\n\nlet modalTitleId = 0;\n\n/**\n * Title of a modal.\n */\n@Directive({\n selector: '[daffModalTitle]',\n host: {\n class: 'daff-modal-title',\n '[attr.id]': '_id',\n },\n})\n\nexport class DaffModalTitleDirective {\n /**\n * @docs-private\n */\n _id = '';\n\n constructor(@Optional() private modal: DaffModalComponent) {\n modalTitleId++;\n\n this._id = 'daff-modal-title-' + modalTitleId;\n\n /**\n * Sets the ariaLabelledBy of the modal to the id of the modal title.\n */\n if(this.modal) {\n this.modal.ariaLabelledBy = this._id;\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffButtonModule } from '@daffodil/design/button';\n\nimport { DaffModalComponent } from './modal/modal.component';\nimport { DaffModalActionsComponent } from './modal-actions/modal-actions.component';\nimport { DaffModalCloseDirective } from './modal-close/modal-close.directive';\nimport { DaffModalContentComponent } from './modal-content/modal-content.component';\nimport { DaffModalHeaderComponent } from './modal-header/modal-header.component';\nimport { DaffModalTitleDirective } from './modal-title/modal-title.directive';\nimport { DaffModalService } from './service/modal.service';\n\n/**\n * @deprecated in favor of {@link DAFF_MODAL_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n OverlayModule,\n DaffButtonModule,\n FontAwesomeModule,\n\n DaffModalComponent,\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n ],\n exports: [\n DaffModalComponent,\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n ],\n providers: [\n DaffModalService,\n ],\n})\nexport class DaffModalModule { }\n","import { DaffModalActionsComponent } from './modal-actions/modal-actions.component';\nimport { DaffModalCloseDirective } from './modal-close/modal-close.directive';\nimport { DaffModalContentComponent } from './modal-content/modal-content.component';\nimport { DaffModalHeaderComponent } from './modal-header/modal-header.component';\nimport { DaffModalTitleDirective } from './modal-title/modal-title.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_MODAL_COMPONENTS = <const> [\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffModalService","i2.DaffModalComponent","i1.DaffModalComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-modal.mjs","sources":["../../../libs/design/modal/src/service/modal.service.ts","../../../libs/design/modal/src/modal/modal.component.ts","../../../libs/design/modal/src/modal/modal.component.html","../../../libs/design/modal/src/modal-actions/modal-actions.component.ts","../../../libs/design/modal/src/modal-close/modal-close.directive.ts","../../../libs/design/modal/src/modal-content/modal-content.component.ts","../../../libs/design/modal/src/modal-header/modal-header.component.ts","../../../libs/design/modal/src/modal-header/modal-header.component.html","../../../libs/design/modal/src/modal-title/modal-title.directive.ts","../../../libs/design/modal/src/modal.module.ts","../../../libs/design/modal/src/modal.ts","../../../libs/design/modal/src/daffodil-design-modal.ts"],"sourcesContent":["import {\n OverlayRef,\n Overlay,\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Type,\n ComponentRef,\n Injector,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nimport { DaffModal } from '../modal/interfaces/modal';\nimport { DaffModalRef } from '../modal/interfaces/modal-ref';\nimport {\n DaffModalConfiguration,\n DaffModalPosition,\n} from '../modal/modal-config';\nimport { DaffModalComponent } from '../modal/modal.component';\n\n@Injectable()\nexport class DaffModalService {\n private _modals: Map<DaffModalComponent, DaffModal> = new Map();\n\n constructor(private overlay: Overlay) { }\n\n private defaultConfiguration: DaffModalConfiguration = {};\n\n private _attachModal(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffModalComponent> {\n const modal = overlayRef.attach(\n new ComponentPortal(\n DaffModalComponent,\n undefined,\n Injector.create({\n providers: [{\n provide: DaffModalService,\n useValue: this,\n }],\n }),\n ),\n );\n modal.instance.reveal();\n return modal;\n }\n\n private _attachModalContent<T>(\n component: Type<T>,\n modal: ComponentRef<DaffModalComponent>,\n ): ComponentRef<T> {\n return modal.instance.attachContent(new ComponentPortal(component));\n }\n\n private _createPositionStrategy(position?: DaffModalPosition): PositionStrategy {\n // Horizontal position is always center\n const strategy = new GlobalPositionStrategy().centerHorizontally();\n\n // Handle vertical positioning\n if (position?.vertical === 'top') {\n strategy.top(position.offsetTop ?? '15vh');\n } else {\n // Default to center\n strategy.centerVertically();\n }\n\n return strategy;\n }\n\n private _createOverlayRef(config?: Partial<DaffModalConfiguration>): OverlayRef {\n const positionStrategy = this._createPositionStrategy(config?.position);\n\n return this.overlay.create({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n private _removeModal(modal: DaffModal) {\n if (!this._modals.has(modal.modal.instance)) {\n throw new Error(\n 'The Modal that you are trying to remove does not exist.',\n );\n }\n\n this._modals.delete(modal.modal.instance);\n\n modal.overlay.dispose();\n }\n\n private _closeAllModals(): void {\n const modals = Array.from(this._modals.values());\n modals.forEach((modal) => this.close(modal.modal.instance));\n }\n\n open<T>(\n component: Type<T>,\n configuration?: Partial<DaffModalConfiguration>,\n ): DaffModalRef<T> {\n this._closeAllModals();\n const config = { ...this.defaultConfiguration, ...configuration };\n const _ref = this._createOverlayRef(config);\n const _modal = this._attachModal(_ref);\n const _contentRef = this._attachModalContent(component, _modal);\n\n if (configuration?.ariaLabelledBy) {\n _modal.instance.ariaLabelledBy = configuration.ariaLabelledBy;\n }\n\n const modal: DaffModal = {\n modal: _modal,\n overlay: _ref,\n };\n\n this._modals.set(modal.modal.instance, modal);\n\n _ref\n .backdropClick()\n .subscribe(() =>\n config.onBackdropClicked\n ? config.onBackdropClicked()\n : this.close(modal.modal.instance),\n );\n\n return {\n instance: _contentRef.instance,\n close: () => this.close(modal.modal.instance),\n afterClosed: modal.modal.instance.closedAnimationCompleted$,\n };\n }\n\n close(component: DaffModalComponent): void {\n const modal = this._modals.get(component);\n\n modal.overlay.detachBackdrop();\n component.closedAnimationCompleted$.pipe(\n take(1),\n ).subscribe(\n () => this._removeModal(modal),\n );\n\n component.hide();\n\n }\n}\n","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n PortalModule,\n} from '@angular/cdk/portal';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n AfterContentInit,\n AfterViewInit,\n ViewEncapsulation,\n ChangeDetectorRef,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport {\n DaffOpenable,\n DaffOpenableDirective,\n DaffFocusStackService,\n daffFocusableElementsSelector,\n} from '@daffodil/design';\n\nimport { DaffModalService } from '../service/modal.service';\n\n@Component({\n selector: 'daff-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n hostDirectives: [{\n directive: DaffOpenableDirective,\n outputs: ['toggled'],\n }],\n host: {\n 'class': 'daff-modal',\n 'role': 'dialog',\n 'aria-modal': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '(keydown.escape)': 'onEscape()',\n '[animate.enter]': '\"opening\"',\n '[class.closing]': 'closing()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n PortalModule,\n OverlayModule,\n ],\n})\nexport class DaffModalComponent implements AfterContentInit, AfterViewInit, OnDestroy, DaffOpenable {\n /**\n * @docs-private\n */\n readonly closing = signal(false);\n\n private _ariaLabelledBy = null;\n\n /**\n * @docs-private\n *\n * By default, the `aria-labelledby` of the modal is set to the `id` of the modal title.\n */\n get ariaLabelledBy() {\n return this._ariaLabelledBy;\n } set ariaLabelledBy(value: string) {\n this._ariaLabelledBy = value;\n }\n\n /**\n * @docs-private\n *\n * The CDK Portal outlet used to portal content into the modal.\n */\n @ViewChild(CdkPortalOutlet, { static: true }) private _portalOutlet: CdkPortalOutlet;\n\n /**\n * Private subject for closed animation completion events.\n */\n private _closedAnimationCompleted = new Subject<boolean>();\n\n /**\n * Observable that emits when the close animation is completed.\n */\n readonly closedAnimationCompleted$ = this._closedAnimationCompleted.asObservable().pipe(delay(300));\n\n /**\n * @docs-private\n */\n onEscape() {\n this.modalService.close(this);\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private modalService: DaffModalService,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private elementRef: ElementRef<HTMLElement>,\n private openDirective: DaffOpenableDirective,\n private _focusStack: DaffFocusStackService,\n private changeDetector: ChangeDetectorRef,\n ) {\n this.openDirective.stateless = false;\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n this._focusTrap = this._focusTrapFactory.create(\n this.elementRef.nativeElement,\n );\n this._focusStack.push();\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n const focusableChild = (<HTMLElement>this.elementRef.nativeElement.querySelector(\n daffFocusableElementsSelector)\n );\n\n if (focusableChild) {\n focusableChild.focus();\n } else {\n // There's a timing condition when computing HostBindings afterContentInit\n // so to allow the modal to be focused, we manually set the tabindex.\n this.elementRef.nativeElement.tabIndex = 0;\n (<HTMLElement>this.elementRef.nativeElement).focus();\n }\n }\n\n /**\n * @docs-private\n *\n * Helper method to attach portable content to modal.\n */\n attachContent(portal: ComponentPortal<any>): any {\n const attachContent = this._portalOutlet.attachComponentPortal(portal);\n\n return attachContent;\n }\n\n /**\n * Tracks the open state of the modal.\n */\n get open() {\n return this.openDirective.open;\n }\n\n /**\n * @docs-private\n *\n * Reveals the modal.\n */\n reveal() {\n this.openDirective.reveal();\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n *\n * Hides the modal.\n */\n hide() {\n this.openDirective.hide();\n this.closing.set(true);\n this._closedAnimationCompleted.next(true);\n this._focusTrap?.destroy();\n this._focusStack.pop();\n\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n *\n * Toggles the visibility of the modal.\n */\n toggle() {\n this.openDirective.toggle();\n this.changeDetector.markForCheck();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy() {\n this._closedAnimationCompleted.complete();\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","/* eslint-disable quote-props */\nimport {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-modal-actions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-actions',\n },\n})\nexport class DaffModalActionsComponent {}\n","/* eslint-disable quote-props */\nimport {\n Directive,\n Optional,\n} from '@angular/core';\n\nimport { DaffModalComponent } from '../modal/modal.component';\nimport { DaffModalService } from '../service/modal.service';\n\n/**\n * The DaffModalCloseDirective is a helper directive that passes a click\n * event to the button it's used with to close a modal. It needs to be\n * implemented with the `<button>` HTML element to work. This helps to\n * reduce code duplication.\n */\n@Directive({\n selector: 'button[daffModalClose]',\n host: {\n 'type': 'button',\n '(click)': 'onClick($event)',\n },\n})\n\nexport class DaffModalCloseDirective {\n constructor(\n private modalService: DaffModalService,\n @Optional() private modal: DaffModalComponent,\n ) {}\n\n /**\n * @docs-private\n */\n onClick(event: MouseEvent) {\n if(this.modal) {\n this.modalService.close(this.modal);\n }\n }\n}\n","/* eslint-disable quote-props */\nimport {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-modal-content',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-content',\n },\n})\nexport class DaffModalContentComponent {}\n","/* eslint-disable quote-props */\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\n\nimport { DaffIconButtonComponent } from '@daffodil/design/button';\n\nimport { DaffModalCloseDirective } from '../modal-close/modal-close.directive';\n\n@Component({\n selector: 'daff-modal-header',\n templateUrl: './modal-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'daff-modal-header',\n },\n imports: [\n DaffIconButtonComponent,\n FaIconComponent,\n DaffModalCloseDirective,\n ],\n})\nexport class DaffModalHeaderComponent {\n faXmark = faXmark;\n\n /**\n * Whether or not a modal is dismissible.\n */\n @Input() dismissible = true;\n}\n","<ng-content select=\"[daffModalTitle]\"></ng-content>\n@if (dismissible) {\n\t<button daff-icon-button color=\"theme-contrast\"\n\t\tdaffModalClose\n\t\tclass=\"daff-modal-header__dismiss-button\"\n\t\taria-label=\"Close modal\">\n\t\t\t<fa-icon [icon]=\"faXmark\" size=\"lg\"></fa-icon>\n\t</button>\n}","import {\n Directive,\n Optional,\n} from '@angular/core';\n\nimport { DaffModalComponent } from '../modal/modal.component';\n\nlet modalTitleId = 0;\n\n/**\n * Title of a modal.\n */\n@Directive({\n selector: '[daffModalTitle]',\n host: {\n class: 'daff-modal-title',\n '[attr.id]': '_id',\n },\n})\n\nexport class DaffModalTitleDirective {\n /**\n * @docs-private\n */\n _id = '';\n\n constructor(@Optional() private modal: DaffModalComponent) {\n modalTitleId++;\n\n this._id = 'daff-modal-title-' + modalTitleId;\n\n /**\n * Sets the ariaLabelledBy of the modal to the id of the modal title.\n */\n if(this.modal) {\n this.modal.ariaLabelledBy = this._id;\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffButtonModule } from '@daffodil/design/button';\n\nimport { DaffModalComponent } from './modal/modal.component';\nimport { DaffModalActionsComponent } from './modal-actions/modal-actions.component';\nimport { DaffModalCloseDirective } from './modal-close/modal-close.directive';\nimport { DaffModalContentComponent } from './modal-content/modal-content.component';\nimport { DaffModalHeaderComponent } from './modal-header/modal-header.component';\nimport { DaffModalTitleDirective } from './modal-title/modal-title.directive';\nimport { DaffModalService } from './service/modal.service';\n\n/**\n * @deprecated in favor of {@link DAFF_MODAL_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n OverlayModule,\n DaffButtonModule,\n FontAwesomeModule,\n\n DaffModalComponent,\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n ],\n exports: [\n DaffModalComponent,\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n ],\n providers: [\n DaffModalService,\n ],\n})\nexport class DaffModalModule { }\n","import { DaffModalActionsComponent } from './modal-actions/modal-actions.component';\nimport { DaffModalCloseDirective } from './modal-close/modal-close.directive';\nimport { DaffModalContentComponent } from './modal-content/modal-content.component';\nimport { DaffModalHeaderComponent } from './modal-header/modal-header.component';\nimport { DaffModalTitleDirective } from './modal-title/modal-title.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_MODAL_COMPONENTS = <const> [\n DaffModalHeaderComponent,\n DaffModalTitleDirective,\n DaffModalContentComponent,\n DaffModalActionsComponent,\n DaffModalCloseDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffModalService","i2.DaffModalComponent","i1.DaffModalComponent"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ class DaffNativeSelectComponent extends DaffFormFieldControl {
|
|
|
16
16
|
* Implemented as part of DaffFormFieldControl.
|
|
17
17
|
*/
|
|
18
18
|
get _id() {
|
|
19
|
-
return this.formField?.id;
|
|
19
|
+
return this.formField?.id();
|
|
20
20
|
}
|
|
21
21
|
;
|
|
22
22
|
constructor(
|
|
@@ -58,10 +58,10 @@ class DaffNativeSelectComponent extends DaffFormFieldControl {
|
|
|
58
58
|
*/
|
|
59
59
|
get ariaDescribedBy() {
|
|
60
60
|
if (this.formField.hasErrorMessage()) {
|
|
61
|
-
return this.formField.errorMessageId;
|
|
61
|
+
return this.formField.errorMessageId();
|
|
62
62
|
}
|
|
63
63
|
else if (this.formField.hasHint()) {
|
|
64
|
-
return this.formField.hintId;
|
|
64
|
+
return this.formField.hintId();
|
|
65
65
|
}
|
|
66
66
|
else {
|
|
67
67
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-native-select.mjs","sources":["../../../libs/design/native-select/src/native-select/native-select.component.ts","../../../libs/design/native-select/src/native-select.ts","../../../libs/design/native-select/src/daffodil-design-native-select.ts"],"sourcesContent":["import {\n Component,\n Optional,\n Self,\n ElementRef,\n ChangeDetectionStrategy,\n OnInit,\n Input,\n booleanAttribute,\n} from '@angular/core';\nimport {\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n map,\n merge,\n of,\n tap,\n} from 'rxjs';\n\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\n/**\n * DaffNativeSelectComponent provides the same functionality as a native `<select>` and contains custom styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[daff-native-select]',\n template: '<ng-content></ng-content>',\n styleUrl: './native-select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffNativeSelectComponent },\n ],\n host: {\n class: 'daff-native-select',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()',\n '[attr.id]': '_id',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n '[disabled]': 'disabledAttribute',\n '[required]': 'requiredAttribute',\n },\n})\n\nexport class DaffNativeSelectComponent extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit {\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n controlType = 'native-select';\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n focused = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n get _id() {\n return this.formField?.id;\n };\n\n constructor(\n /**\n * @docs-private\n */\n @Optional() @Self() public ngControl: NgControl,\n private _elementRef: ElementRef<HTMLInputElement>,\n // @Optional is intentional so that we can control the error message thrown when the DaffFormFieldComponent is not used.\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffNativeSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n }\n\n /**\n * @docs-private\n */\n get ariaDescribedBy() {\n if(this.formField.hasErrorMessage()) {\n return this.formField.errorMessageId;\n } else if(this.formField.hasHint()) {\n return this.formField.hintId;\n } else {\n return null;\n }\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * @docs-private\n */\n get disabledAttribute() {\n if (this.ngControl) {\n return this.ngControl.disabled;\n }\n\n return this.disabled || null;\n }\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n /**\n * @docs-private\n */\n get requiredAttribute() {\n return this.required || null;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n _handleFocus() {\n this.focused = true;\n this.emitState();\n }\n\n /**\n * @docs-private\n */\n _handleBlur() {\n this.focused = false;\n this.emitState(true);\n }\n\n /** @docs-private */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * @docs-private\n */\n get value() {\n return this._elementRef.nativeElement.value;\n }\n}\n","import { DaffNativeSelectComponent } from './native-select/native-select.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_NATIVE_SELECT_COMPONENTS = <const> [\n DaffNativeSelectComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AA0BA;;AAEG;AAsBG,MAAO,yBAA0B,SAAQ,oBAA4B,CAAA;AAezE;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"daffodil-design-native-select.mjs","sources":["../../../libs/design/native-select/src/native-select/native-select.component.ts","../../../libs/design/native-select/src/native-select.ts","../../../libs/design/native-select/src/daffodil-design-native-select.ts"],"sourcesContent":["import {\n Component,\n Optional,\n Self,\n ElementRef,\n ChangeDetectionStrategy,\n OnInit,\n Input,\n booleanAttribute,\n} from '@angular/core';\nimport {\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n map,\n merge,\n of,\n tap,\n} from 'rxjs';\n\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\n/**\n * DaffNativeSelectComponent provides the same functionality as a native `<select>` and contains custom styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'select[daff-native-select]',\n template: '<ng-content></ng-content>',\n styleUrl: './native-select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffNativeSelectComponent },\n ],\n host: {\n class: 'daff-native-select',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()',\n '[attr.id]': '_id',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n '[disabled]': 'disabledAttribute',\n '[required]': 'requiredAttribute',\n },\n})\n\nexport class DaffNativeSelectComponent extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit {\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n controlType = 'native-select';\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n focused = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n get _id() {\n return this.formField?.id();\n };\n\n constructor(\n /**\n * @docs-private\n */\n @Optional() @Self() public ngControl: NgControl,\n private _elementRef: ElementRef<HTMLInputElement>,\n // @Optional is intentional so that we can control the error message thrown when the DaffFormFieldComponent is not used.\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffNativeSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n }\n\n /**\n * @docs-private\n */\n get ariaDescribedBy() {\n if(this.formField.hasErrorMessage()) {\n return this.formField.errorMessageId();\n } else if(this.formField.hasHint()) {\n return this.formField.hintId();\n } else {\n return null;\n }\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * @docs-private\n */\n get disabledAttribute() {\n if (this.ngControl) {\n return this.ngControl.disabled;\n }\n\n return this.disabled || null;\n }\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n /**\n * @docs-private\n */\n get requiredAttribute() {\n return this.required || null;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n _handleFocus() {\n this.focused = true;\n this.emitState();\n }\n\n /**\n * @docs-private\n */\n _handleBlur() {\n this.focused = false;\n this.emitState(true);\n }\n\n /** @docs-private */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * @docs-private\n */\n get value() {\n return this._elementRef.nativeElement.value;\n }\n}\n","import { DaffNativeSelectComponent } from './native-select/native-select.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_NATIVE_SELECT_COMPONENTS = <const> [\n DaffNativeSelectComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive,
|
|
3
|
+
import { Directive, contentChild, input, output, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
4
4
|
import { FaIconComponent, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
5
5
|
import * as i1 from '@daffodil/design';
|
|
6
6
|
import { DaffStatusEnum, DaffPrefixDirective, DaffArticleEncapsulatedDirective, DaffStatusableDirective, DaffOrientableDirective, DaffPrefixSuffixModule } from '@daffodil/design';
|
|
@@ -32,7 +32,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
32
32
|
}]
|
|
33
33
|
}] });
|
|
34
34
|
|
|
35
|
-
/* eslint-disable quote-props */
|
|
36
35
|
/**
|
|
37
36
|
* Notifications provide contextual feedback or information related to user actions within a page's content.
|
|
38
37
|
*
|
|
@@ -69,14 +68,22 @@ class DaffNotificationComponent {
|
|
|
69
68
|
* @docs-private
|
|
70
69
|
*/
|
|
71
70
|
this.faTimes = faTimes;
|
|
71
|
+
/**
|
|
72
|
+
* @docs-private
|
|
73
|
+
*/
|
|
74
|
+
this._prefix = contentChild(DaffPrefixDirective, ...(ngDevMode ? [{ debugName: "_prefix" }] : /* istanbul ignore next */ []));
|
|
75
|
+
/**
|
|
76
|
+
* @docs-private
|
|
77
|
+
*/
|
|
78
|
+
this._actions = contentChild(DaffNotificationActionsDirective, ...(ngDevMode ? [{ debugName: "_actions" }] : /* istanbul ignore next */ []));
|
|
72
79
|
/** Whether the notification can be dismissed by the user.
|
|
73
80
|
* Displays a close icon if `true`.
|
|
74
81
|
*/
|
|
75
|
-
this.dismissible = false;
|
|
82
|
+
this.dismissible = input(false, ...(ngDevMode ? [{ debugName: "dismissible" }] : /* istanbul ignore next */ []));
|
|
76
83
|
/**
|
|
77
84
|
* Emits when the notification is closed.
|
|
78
85
|
*/
|
|
79
|
-
this.closeNotification =
|
|
86
|
+
this.closeNotification = output();
|
|
80
87
|
this.orientation.defaultOrientation = 'vertical';
|
|
81
88
|
}
|
|
82
89
|
/**
|
|
@@ -88,7 +95,7 @@ class DaffNotificationComponent {
|
|
|
88
95
|
this.closeNotification.emit();
|
|
89
96
|
}
|
|
90
97
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffNotificationComponent, deps: [{ token: i1.DaffStatusableDirective }, { token: i1.DaffOrientableDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffNotificationComponent, isStandalone: true, selector: "daff-notification", inputs: { dismissible: "dismissible" }, outputs: { closeNotification: "closeNotification" }, host: { attributes: { "tabindex": "0" }, properties: { "class.dismissible": "dismissible", "attr.role": "role" }, classAttribute: "daff-notification" }, queries: [{ propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true }, { propertyName: "_actions", first: true, predicate: DaffNotificationActionsDirective, descendants: true }], hostDirectives: [{ directive: i1.DaffArticleEncapsulatedDirective }, { directive: i1.DaffStatusableDirective, inputs: ["status", "status"] }, { directive: i1.DaffOrientableDirective, inputs: ["orientation", "orientation"] }], ngImport: i0, template: "@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}", styles: [".daff-notification{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative}.daff-notification .daff-prefix{padding:1rem 0 1rem 1rem}.daff-notification__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-notification__body{display:flex;font-size:1rem;line-height:1.5rem;padding:1rem;width:100%}.daff-notification__content{display:flex;flex-direction:column;gap:.25rem}.daff-notification__title{font-size:1rem;font-weight:600;line-height:1.5rem}.daff-notification__message{font-size:1rem;font-weight:400;line-height:1.25rem}.daff-notification__actions{display:flex;gap:.5rem}.daff-notification.dismissible.daff-horizontal .daff-notification__actions{padding:.5rem 0}.daff-notification.daff-vertical .daff-notification__body{flex-direction:column;gap:1rem}.daff-notification.daff-horizontal .daff-prefix{padding:.75rem 0 .75rem 1rem}.daff-notification.daff-horizontal .daff-notification__message{align-self:center}.daff-notification.daff-horizontal .daff-notification__body{flex-direction:row;gap:0;padding:0}.daff-notification.daff-horizontal .daff-notification__content{flex-direction:row;flex-wrap:wrap;flex-grow:1;padding:.75rem 1rem .75rem .75rem}.daff-notification.daff-horizontal .daff-notification__actions{min-height:3rem;padding:.5rem 1rem .5rem 0;margin:0}\n"], dependencies: [{ kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
98
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffNotificationComponent, isStandalone: true, selector: "daff-notification", inputs: { dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeNotification: "closeNotification" }, host: { attributes: { "tabindex": "0" }, properties: { "class.dismissible": "dismissible()", "attr.role": "role" }, classAttribute: "daff-notification" }, queries: [{ propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true, isSignal: true }, { propertyName: "_actions", first: true, predicate: DaffNotificationActionsDirective, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DaffArticleEncapsulatedDirective }, { directive: i1.DaffStatusableDirective, inputs: ["status", "status"] }, { directive: i1.DaffOrientableDirective, inputs: ["orientation", "orientation"] }], ngImport: i0, template: "@if (_prefix()) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions()) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible()) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}", styles: [".daff-notification{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative}.daff-notification .daff-prefix{padding:1rem 0 1rem 1rem}.daff-notification__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-notification__body{display:flex;font-size:1rem;line-height:1.5rem;padding:1rem;width:100%}.daff-notification__content{display:flex;flex-direction:column;gap:.25rem}.daff-notification__title{font-size:1rem;font-weight:600;line-height:1.5rem}.daff-notification__message{font-size:1rem;font-weight:400;line-height:1.25rem}.daff-notification__actions{display:flex;gap:.5rem}.daff-notification.dismissible.daff-horizontal .daff-notification__actions{padding:.5rem 0}.daff-notification.daff-vertical .daff-notification__body{flex-direction:column;gap:1rem}.daff-notification.daff-horizontal .daff-prefix{padding:.75rem 0 .75rem 1rem}.daff-notification.daff-horizontal .daff-notification__message{align-self:center}.daff-notification.daff-horizontal .daff-notification__body{flex-direction:row;gap:0;padding:0}.daff-notification.daff-horizontal .daff-notification__content{flex-direction:row;flex-wrap:wrap;flex-grow:1;padding:.75rem 1rem .75rem .75rem}.daff-notification.daff-horizontal .daff-notification__actions{min-height:3rem;padding:.5rem 1rem .5rem 0;margin:0}\n"], dependencies: [{ kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
92
99
|
}
|
|
93
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffNotificationComponent, decorators: [{
|
|
94
101
|
type: Component,
|
|
@@ -103,25 +110,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
103
110
|
inputs: ['orientation'],
|
|
104
111
|
},
|
|
105
112
|
], host: {
|
|
106
|
-
|
|
107
|
-
'[class.dismissible]': 'dismissible',
|
|
108
|
-
|
|
113
|
+
class: 'daff-notification',
|
|
114
|
+
'[class.dismissible]': 'dismissible()',
|
|
115
|
+
tabindex: '0',
|
|
109
116
|
'[attr.role]': 'role',
|
|
110
117
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
111
118
|
FaIconComponent,
|
|
112
119
|
DaffPrefixDirective,
|
|
113
|
-
], template: "@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}", styles: [".daff-notification{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative}.daff-notification .daff-prefix{padding:1rem 0 1rem 1rem}.daff-notification__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-notification__body{display:flex;font-size:1rem;line-height:1.5rem;padding:1rem;width:100%}.daff-notification__content{display:flex;flex-direction:column;gap:.25rem}.daff-notification__title{font-size:1rem;font-weight:600;line-height:1.5rem}.daff-notification__message{font-size:1rem;font-weight:400;line-height:1.25rem}.daff-notification__actions{display:flex;gap:.5rem}.daff-notification.dismissible.daff-horizontal .daff-notification__actions{padding:.5rem 0}.daff-notification.daff-vertical .daff-notification__body{flex-direction:column;gap:1rem}.daff-notification.daff-horizontal .daff-prefix{padding:.75rem 0 .75rem 1rem}.daff-notification.daff-horizontal .daff-notification__message{align-self:center}.daff-notification.daff-horizontal .daff-notification__body{flex-direction:row;gap:0;padding:0}.daff-notification.daff-horizontal .daff-notification__content{flex-direction:row;flex-wrap:wrap;flex-grow:1;padding:.75rem 1rem .75rem .75rem}.daff-notification.daff-horizontal .daff-notification__actions{min-height:3rem;padding:.5rem 1rem .5rem 0;margin:0}\n"] }]
|
|
114
|
-
}], ctorParameters: () => [{ type: i1.DaffStatusableDirective }, { type: i1.DaffOrientableDirective }], propDecorators: { _prefix: [{
|
|
115
|
-
type: ContentChild,
|
|
116
|
-
args: [DaffPrefixDirective]
|
|
117
|
-
}], _actions: [{
|
|
118
|
-
type: ContentChild,
|
|
119
|
-
args: [DaffNotificationActionsDirective]
|
|
120
|
-
}], dismissible: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], closeNotification: [{
|
|
123
|
-
type: Output
|
|
124
|
-
}] } });
|
|
120
|
+
], template: "@if (_prefix()) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions()) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible()) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}", styles: [".daff-notification{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative}.daff-notification .daff-prefix{padding:1rem 0 1rem 1rem}.daff-notification__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-notification__body{display:flex;font-size:1rem;line-height:1.5rem;padding:1rem;width:100%}.daff-notification__content{display:flex;flex-direction:column;gap:.25rem}.daff-notification__title{font-size:1rem;font-weight:600;line-height:1.5rem}.daff-notification__message{font-size:1rem;font-weight:400;line-height:1.25rem}.daff-notification__actions{display:flex;gap:.5rem}.daff-notification.dismissible.daff-horizontal .daff-notification__actions{padding:.5rem 0}.daff-notification.daff-vertical .daff-notification__body{flex-direction:column;gap:1rem}.daff-notification.daff-horizontal .daff-prefix{padding:.75rem 0 .75rem 1rem}.daff-notification.daff-horizontal .daff-notification__message{align-self:center}.daff-notification.daff-horizontal .daff-notification__body{flex-direction:row;gap:0;padding:0}.daff-notification.daff-horizontal .daff-notification__content{flex-direction:row;flex-wrap:wrap;flex-grow:1;padding:.75rem 1rem .75rem .75rem}.daff-notification.daff-horizontal .daff-notification__actions{min-height:3rem;padding:.5rem 1rem .5rem 0;margin:0}\n"] }]
|
|
121
|
+
}], ctorParameters: () => [{ type: i1.DaffStatusableDirective }, { type: i1.DaffOrientableDirective }], propDecorators: { _prefix: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffPrefixDirective), { isSignal: true }] }], _actions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffNotificationActionsDirective), { isSignal: true }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], closeNotification: [{ type: i0.Output, args: ["closeNotification"] }] } });
|
|
125
122
|
|
|
126
123
|
/* eslint-disable quote-props */
|
|
127
124
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-notification.mjs","sources":["../../../libs/design/notification/src/notification-actions/notification-actions.directive.ts","../../../libs/design/notification/src/notification/notification.component.ts","../../../libs/design/notification/src/notification/notification.component.html","../../../libs/design/notification/src/notification-message/notification-message.directive.ts","../../../libs/design/notification/src/notification-title/notification-title.directive.ts","../../../libs/design/notification/src/notification.module.ts","../../../libs/design/notification/src/notification.ts","../../../libs/design/notification/src/daffodil-design-notification.ts"],"sourcesContent":["/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Actions is used to include actionable buttons related to the notification (e.g., dismiss, navigate).\n *\n * @example\n * ```html\n * <div daffNotificationActions>\n * <button daff-button>Update payment</button>\n * <button daff-button>Contact support</button>\n * </div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationActions]',\n host: {\n 'class': 'daff-notification__actions',\n },\n})\n\nexport class DaffNotificationActionsDirective {}\n","/* eslint-disable quote-props */\nimport {\n Component,\n Input,\n ContentChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffOrientableDirective,\n DaffPrefixDirective,\n DaffStatusableDirective,\n DaffStatusEnum,\n} from '@daffodil/design';\n\nimport { DaffNotificationActionsDirective } from '../notification-actions/notification-actions.directive';\n\n/**\n * Notifications provide contextual feedback or information related to user actions within a page's content.\n *\n * Use [Toast](/libs/design/toast/README.md) for app-level alerts.\n *\n * @example\n * ```html\n * <daff-notification>\n * <fa-icon daffPrefix [icon]=\"faExclamation\"></fa-icon>\n * <div daffNotificationTitle>Payment Failed</div>\n * <div daffNotificationMessage>We were unable to process your payment for order #12345. Please update your payment details and try again.</div>\n * <div daffNotificationActions>\n * <button daff-button>Update payment</button>\n * <button daff-button>Contact support</button>\n * </div>\n * </daff-notification>\n * ```\n */\n@Component({\n selector: 'daff-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n {\n directive: DaffOrientableDirective,\n inputs: ['orientation'],\n },\n ],\n host: {\n 'class': 'daff-notification',\n '[class.dismissible]': 'dismissible',\n 'tabindex': '0',\n '[attr.role]': 'role',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FaIconComponent,\n DaffPrefixDirective,\n ],\n})\nexport class DaffNotificationComponent {\n /**\n * @docs-private\n */\n faTimes = faTimes;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffNotificationActionsDirective) _actions: DaffNotificationActionsDirective;\n\n /**\n * @docs-private\n *\n * Sets role to alert when `status=\"warn\"` or `status=\"critical\"`.\n * Sets role to status on all other instances.\n */\n get role() {\n return this.statusDirective.status === DaffStatusEnum.Warn || this.statusDirective.status === DaffStatusEnum.Critical ? 'alert' : 'status';\n };\n\n /** Whether the notification can be dismissed by the user.\n * Displays a close icon if `true`.\n */\n @Input() dismissible = false;\n\n constructor(\n private statusDirective: DaffStatusableDirective,\n private orientation: DaffOrientableDirective,\n ) {\n this.orientation.defaultOrientation = 'vertical';\n }\n\n /**\n * Emits when the notification is closed.\n */\n @Output() closeNotification: EventEmitter<void> = new EventEmitter();\n\n /**\n * @docs-private\n *\n * Internal handler for the close icon click.\n */\n onCloseNotification(event: Event) {\n this.closeNotification.emit();\n }\n}\n","@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Message provides additional details or supporting context that supplements\n * the notification title. Keep this brief—ideally one to two short sentences.\n *\n * @example\n * ```html\n * <div daffNotificationMessage>We were unable to process your payment for order #12345. Please update your payment details and try again.</div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationMessage]',\n host: {\n 'class': 'daff-notification__message',\n },\n})\n\nexport class DaffNotificationMessageDirective {}\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Title is the primary text summarizing the notification.\n *\n * @example\n * ```html\n * <div daffNotificationTitle>Payment Failed</div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationTitle]',\n host: {\n 'class': 'daff-notification__title',\n },\n})\n\nexport class DaffNotificationTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffPrefixSuffixModule } from '@daffodil/design';\n\nimport { DaffNotificationComponent } from './notification/notification.component';\nimport { DaffNotificationActionsDirective } from './notification-actions/notification-actions.directive';\nimport { DaffNotificationMessageDirective } from './notification-message/notification-message.directive';\nimport { DaffNotificationTitleDirective } from './notification-title/notification-title.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_NOTIFICATION_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffPrefixSuffixModule,\n FontAwesomeModule,\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n ],\n exports: [\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n DaffPrefixSuffixModule,\n ],\n})\nexport class DaffNotificationModule { }\n","import { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffNotificationComponent } from './notification/notification.component';\nimport { DaffNotificationActionsDirective } from './notification-actions/notification-actions.directive';\nimport { DaffNotificationMessageDirective } from './notification-message/notification-message.directive';\nimport { DaffNotificationTitleDirective } from './notification-title/notification-title.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_NOTIFICATION_COMPONENTS = <const> [\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n DaffPrefixDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-notification.mjs","sources":["../../../libs/design/notification/src/notification-actions/notification-actions.directive.ts","../../../libs/design/notification/src/notification/notification.component.ts","../../../libs/design/notification/src/notification/notification.component.html","../../../libs/design/notification/src/notification-message/notification-message.directive.ts","../../../libs/design/notification/src/notification-title/notification-title.directive.ts","../../../libs/design/notification/src/notification.module.ts","../../../libs/design/notification/src/notification.ts","../../../libs/design/notification/src/daffodil-design-notification.ts"],"sourcesContent":["/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Actions is used to include actionable buttons related to the notification (e.g., dismiss, navigate).\n *\n * @example\n * ```html\n * <div daffNotificationActions>\n * <button daff-button>Update payment</button>\n * <button daff-button>Contact support</button>\n * </div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationActions]',\n host: {\n 'class': 'daff-notification__actions',\n },\n})\n\nexport class DaffNotificationActionsDirective {}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n input,\n output,\n contentChild,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffOrientableDirective,\n DaffPrefixDirective,\n DaffStatusableDirective,\n DaffStatusEnum,\n} from '@daffodil/design';\n\nimport { DaffNotificationActionsDirective } from '../notification-actions/notification-actions.directive';\n\n/**\n * Notifications provide contextual feedback or information related to user actions within a page's content.\n *\n * Use [Toast](/libs/design/toast/README.md) for app-level alerts.\n *\n * @example\n * ```html\n * <daff-notification>\n * <fa-icon daffPrefix [icon]=\"faExclamation\"></fa-icon>\n * <div daffNotificationTitle>Payment Failed</div>\n * <div daffNotificationMessage>We were unable to process your payment for order #12345. Please update your payment details and try again.</div>\n * <div daffNotificationActions>\n * <button daff-button>Update payment</button>\n * <button daff-button>Contact support</button>\n * </div>\n * </daff-notification>\n * ```\n */\n@Component({\n selector: 'daff-notification',\n templateUrl: './notification.component.html',\n styleUrl: './notification.component.scss',\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n {\n directive: DaffOrientableDirective,\n inputs: ['orientation'],\n },\n ],\n host: {\n class: 'daff-notification',\n '[class.dismissible]': 'dismissible()',\n tabindex: '0',\n '[attr.role]': 'role',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FaIconComponent,\n DaffPrefixDirective,\n ],\n})\nexport class DaffNotificationComponent {\n /**\n * @docs-private\n */\n faTimes = faTimes;\n\n /**\n * @docs-private\n */\n _prefix = contentChild(DaffPrefixDirective);\n\n /**\n * @docs-private\n */\n _actions = contentChild(DaffNotificationActionsDirective);\n\n /**\n * @docs-private\n *\n * Sets role to alert when `status=\"warn\"` or `status=\"critical\"`.\n * Sets role to status on all other instances.\n */\n get role() {\n return this.statusDirective.status === DaffStatusEnum.Warn || this.statusDirective.status === DaffStatusEnum.Critical ? 'alert' : 'status';\n };\n\n /** Whether the notification can be dismissed by the user.\n * Displays a close icon if `true`.\n */\n dismissible = input(false);\n\n constructor(\n private statusDirective: DaffStatusableDirective,\n private orientation: DaffOrientableDirective,\n ) {\n this.orientation.defaultOrientation = 'vertical';\n }\n\n /**\n * Emits when the notification is closed.\n */\n closeNotification = output<void>();\n\n /**\n * @docs-private\n *\n * Internal handler for the close icon click.\n */\n onCloseNotification(event: Event) {\n this.closeNotification.emit();\n }\n}\n","@if (_prefix()) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-notification__body\">\n <div class=\"daff-notification__content\">\n <ng-content select=\"[daffNotificationTitle]\"></ng-content>\n <ng-content select=\"[daffNotificationMessage]\"></ng-content>\n </div>\n @if (_actions()) {\n <ng-content select=\"[daffNotificationActions]\"></ng-content>\n }\n</div>\n@if (dismissible()) {\n <button class=\"daff-notification__close-icon\" (click)=\"onCloseNotification($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n}","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Message provides additional details or supporting context that supplements\n * the notification title. Keep this brief—ideally one to two short sentences.\n *\n * @example\n * ```html\n * <div daffNotificationMessage>We were unable to process your payment for order #12345. Please update your payment details and try again.</div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationMessage]',\n host: {\n 'class': 'daff-notification__message',\n },\n})\n\nexport class DaffNotificationMessageDirective {}\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Title is the primary text summarizing the notification.\n *\n * @example\n * ```html\n * <div daffNotificationTitle>Payment Failed</div>\n * ```\n */\n@Directive({\n selector: '[daffNotificationTitle]',\n host: {\n 'class': 'daff-notification__title',\n },\n})\n\nexport class DaffNotificationTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffPrefixSuffixModule } from '@daffodil/design';\n\nimport { DaffNotificationComponent } from './notification/notification.component';\nimport { DaffNotificationActionsDirective } from './notification-actions/notification-actions.directive';\nimport { DaffNotificationMessageDirective } from './notification-message/notification-message.directive';\nimport { DaffNotificationTitleDirective } from './notification-title/notification-title.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_NOTIFICATION_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffPrefixSuffixModule,\n FontAwesomeModule,\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n ],\n exports: [\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n DaffPrefixSuffixModule,\n ],\n})\nexport class DaffNotificationModule { }\n","import { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffNotificationComponent } from './notification/notification.component';\nimport { DaffNotificationActionsDirective } from './notification-actions/notification-actions.directive';\nimport { DaffNotificationMessageDirective } from './notification-message/notification-message.directive';\nimport { DaffNotificationTitleDirective } from './notification-title/notification-title.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_NOTIFICATION_COMPONENTS = <const> [\n DaffNotificationComponent,\n DaffNotificationActionsDirective,\n DaffNotificationMessageDirective,\n DaffNotificationTitleDirective,\n DaffPrefixDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|