@odx/angular 12.7.0 → 12.8.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/CHANGELOG.md +11 -0
- package/cdk/autocomplete-control/index.d.ts +1 -0
- package/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.d.ts +19 -0
- package/cdk/autocomplete-control/lib/directives/index.d.ts +1 -0
- package/components/main-menu/lib/main-menu.component.d.ts +0 -1
- package/components/modal/lib/modal.component.d.ts +1 -1
- package/esm2022/cdk/autocomplete-control/index.mjs +2 -1
- package/esm2022/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.mjs +43 -0
- package/esm2022/cdk/autocomplete-control/lib/directives/index.mjs +2 -0
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.component.mjs +2 -2
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +4 -8
- package/esm2022/components/modal/lib/modal.component.mjs +8 -10
- package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +6 -5
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +43 -2
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +3 -7
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +7 -6
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +5 -4
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-modal.mjs","sources":["../../../../libs/angular/components/modal/src/lib/models/modal-hero-variant.ts","../../../../libs/angular/components/modal/src/lib/models/modal-ref.ts","../../../../libs/angular/components/modal/src/lib/models/modal-size.ts","../../../../libs/angular/components/modal/src/lib/models/modal-variant.ts","../../../../libs/angular/components/modal/src/lib/helpers/inject-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/helpers/provide-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-close.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-content.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-dismiss.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/prevent-form-method-dialog.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/prevent-method-dialog.directive.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.html","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.ts","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.component.ts","../../../../libs/angular/components/modal/src/lib/modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.config.ts","../../../../libs/angular/components/modal/src/lib/modal.service.ts","../../../../libs/angular/components/modal/src/lib/modal.directive.ts","../../../../libs/angular/components/modal/src/lib/modal.module.ts","../../../../libs/angular/components/modal/src/odx-angular-components-modal.ts"],"sourcesContent":["export type ModalHeroVariant = (typeof ModalHeroVariant)[keyof typeof ModalHeroVariant];\n\nexport const ModalHeroVariant = {\n PRIMARY: 'primary',\n SUCCESS: 'success',\n CONFIRMATION: 'confirmation',\n DANGER: 'danger',\n} as const;\n","import { Controller } from '@odx/angular';\nimport { deepmerge } from '@odx/angular/internal';\nimport { share, Subject } from 'rxjs';\nimport { ModalOptions } from './modal-options';\n\n/**\n * A reference to a dynamically created modal, providing methods to manipulate, close, or update the modal's state\n * and options.\n * This class extends the `Controller` base class from `@odx/angular`, adding modal-specific functionalities like\n * handling closures and dismissals.\n *\n * @template Data - The type of data passed to the modal.\n * @template Result - The type of the result emitted when the modal is closed.\n *\n * @see {Controller}\n */\nexport class ModalRef<Data = unknown, Result = unknown> extends Controller {\n private readonly onClose$$ = new Subject<Result>();\n private readonly onDismiss$$ = new Subject<void>();\n\n /** An observable that emits when the modal is closed with a result. */\n public readonly onClose$ = this.onClose$$.pipe(share({ resetOnRefCountZero: true }));\n\n /** An observable that emits when the modal is dismissed without a result. */\n public readonly onDismiss$ = this.onDismiss$$.pipe(share({ resetOnRefCountZero: true }));\n\n /** An observable that merges the onClose$ and onDismiss$ streams for cases when any kind of teardown is needed. */\n public readonly onDestroy$ = deepmerge(this.onClose$, this.onDismiss$);\n\n /** A method that returns whether the modal is currently active. */\n public readonly isActive: () => boolean;\n\n /** Gets the unique identifier for the modal instance.\n *\n * @returns {string} The unique identifier for the modal instance.\n */\n public get id(): string {\n return this.options.id;\n }\n\n /** Gets the ARIA label ID for the modal title, based on the modal's ID.\n *\n * @returns {string} The ARIA label ID for the modal title.\n */\n public get modalTitleId(): string {\n return `${this.options.id}-title`;\n }\n\n /** Gets the data passed to the modal. This is useful for modal initialization.\n *\n * @returns {Data} The data passed to the modal.\n */\n public get data(): Data {\n return this.internalOptions.data;\n }\n\n /** Gets the current options for the modal. These options include configurations.\n *\n * @template Data - The type of data passed to the modal.\n * @returns {ModalOptions<Data>} The current options for the modal.\n */\n public get options(): ModalOptions<Data> {\n return this.internalOptions;\n }\n\n constructor(\n private internalOptions: ModalOptions<Data>,\n isActive: (modalRef: ModalRef<Data, Result>) => boolean,\n ) {\n super();\n this.isActive = () => isActive(this);\n }\n\n /**\n * Updates the modal's options.\n *\n * @param {Partial<ModalOptions<Data>>} options A partial set of options to update.\n */\n public update(options: Partial<ModalOptions<Data>>): void {\n this.internalOptions = deepmerge(this.internalOptions, options) as ModalOptions<Data>;\n this.triggerControllerChange();\n }\n\n /**\n * Dismisses the modal. This does not result in an output value.\n *\n * @param {boolean} [force=false] Whether to force dismissal regardless of the `canDismiss` condition.\n */\n public dismiss(force = false): void {\n if (!force && !this.isActive()) return;\n if (this.options.canDismiss?.(this.data) === false) return;\n this.onDismiss$$.next();\n this.destroy();\n }\n\n /**\n * Closes the modal with a result.\n *\n * @param {Result} result The result to emit when the modal closes.\n */\n public close(result: Result): void {\n if (!this.isActive()) return;\n if (this.options.canClose?.(this.data) === false) return;\n this.onClose$$.next(result);\n this.destroy();\n }\n\n /** Completes the onClose and onDismiss streams and cleans up resources. */\n public destroy(): void {\n this.onClose$$.complete();\n this.onDismiss$$.complete();\n }\n}\n","export type ModalSize = (typeof ModalSize)[keyof typeof ModalSize];\n\nexport const ModalSize = {\n XSMALL: 'xsmall',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","export type ModalVariant = typeof ModalVariant[keyof typeof ModalVariant];\n\nexport const ModalVariant = {\n DEFAULT: 'default',\n SIDESHEET: 'sidesheet',\n} as const;\n","import { inject } from '@angular/core';\nimport { ModalRef } from '../models';\n\n/**\n * Utility function to inject a reference to a modal. This function simplifies the injection process by typing the `ModalRef` to the specific data and result expected by the consumer.\n *\n * This approach abstracts away Angular's inject function, providing direct access to the modal reference with the correct type. It is commonly used in components or services that interact with a modal dialog to manipulate its data, close it, or perform other related actions.\n *\n * @template Data The type of data passed to the modal.\n * @template Result The type of result expected when the modal closes.\n * @returns {ModalRef<Data, Result>} A strongly typed reference to the modal.\n *\n * @example\n * ```ts\n * // Injecting a modal reference in a component or service:\n * const modalRef = injectModalRef<SomeDataType, SomeResultType>();\n *\n * // Using the modal reference to close the modal and return a result:\n * modalRef.close(someResult);\n *\n * // Accessing the data provided to the modal:\n * const modalData = modalRef.data;\n * ```\n */\nexport function injectModalRef<Data, Result = unknown>(): ModalRef<Data, Result> {\n return inject(ModalRef<Data, Result>);\n}\n","import { ValueProvider } from '@angular/core';\nimport { ModalRef } from '../models';\n\n/**\n * Provides a configuration for the Angular dependency injection system to inject a specific instance of `ModalRef`.\n * This function is particularly useful when you want to configure a provider for a `ModalRef` within an Angular module or component.\n *\n * @template D The data type expected by the modal.\n * @template R The result type that the modal will produce.\n * @param {ModalRef<D, R>} modalRef An instance of `ModalRef` to be provided.\n * @returns {ValueProvider} An Angular value provider that can be used in module or component providers arrays.\n */\nexport function provideModalRef<D = unknown, R = unknown>(modalRef: ModalRef<D, R>): ValueProvider {\n return { provide: ModalRef, useValue: modalRef };\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n/**\n * A directive that enables an element to close or dismiss a modal when clicked.\n * It can be used on any element within a modal to trigger the close or dismiss action, optionally passing a result back to the modal opener.\n *\n * The directive accepts an input value that determines the result to be passed back on modal close. If no value is provided, or it's explicitly set to `null`,\n * the modal is dismissed without sending a result. If the input value is `undefined`, the modal is dismissed via the `dismiss` method without passing any result.\n *\n * @template T - The type of the result to be emitted when the modal closes. Defaults to `unknown`.\n *\n * @example\n * Closing a modal and passing a result:\n * ```html\n * <button [odxModalClose]=\"myResult\">Close and send result</button>\n * ```\n *\n * Simply dismissing a modal without passing a result:\n * ```html\n * <button odxModalClose>Dismiss</button>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[odxModalClose]',\n})\nexport class ModalCloseDirective<T = unknown> {\n private readonly modalRef = injectModalRef();\n\n /**\n * Represents the result to be passed back to the modal opener when the modal is closed.\n * @template T - The type of the result returned.\n */\n @Input('odxModalClose')\n public result?: T | null = null;\n\n @HostListener('click')\n protected onClick(): void {\n const result = this.result === '' ? null : this.result;\n\n if (result === undefined) {\n this.modalRef.dismiss();\n } else {\n this.modalRef.close(result ?? null);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents a directive for the content of a modal.\n */\n@CSSComponent('modal__content')\n@Directive({\n standalone: true,\n selector: 'odx-modal-content',\n})\nexport class ModalContentDirective {\n public readonly element = injectElement();\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n/**\n * A directive that enables an element to dismiss a modal when clicked. This can be applied\n * to any clickable element within a modal, such as buttons or links, to provide a declarative\n * approach to dismissing the modal.\n *\n * Utilizes `injectModalRef` to access the modal reference associated with the containing modal,\n * enabling the directive to call the `dismiss` method on the modal reference upon the click event.\n *\n * @example\n * Dismissing a modal using the odxModalDismiss directive on a button:\n * ```html\n * <button odxModalDismiss>Cancel</button>\n * ```\n *\n * This directive simplifies modal dismissal by removing the need for manually wiring click events\n * to dismiss methods in the component class, thereby enhancing template readability and maintainability.\n */\n@Directive({\n standalone: true,\n selector: '[odxModalDismiss]',\n})\nexport class ModalDismissDirective {\n private readonly modalRef = injectModalRef();\n\n @HostListener('click')\n protected onClick(): void {\n this.modalRef.dismiss();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n/**\n * Directive that prevents the default form method behavior on submit buttons inside an HTML Dialog form.\n */\n@Directive({\n standalone: true,\n selector: '[formmethod=dialog]',\n})\nexport class PreventFormMethodDialogDirective {\n @HostListener('click', ['$event'])\n protected onClick(event: Event): void {\n event.preventDefault();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n/**\n * Directive that prevents the default form submission behavior inside an HTML Dialog form.\n */\n@Directive({\n standalone: true,\n selector: 'form[method=dialog]',\n})\nexport class PreventMethodDialogDirective {\n @HostListener('submit', ['$event'])\n protected onFormSubmit(event: Event): void {\n event.preventDefault();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents the footer component of a modal.\n */\n@CSSComponent('modal__footer')\n@Component({\n standalone: true,\n selector: 'odx-modal-footer',\n templateUrl: './modal-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalFooterComponent {\n public readonly element = injectElement();\n}\n","<ng-content />\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AreaHeaderComponent, AreaHeaderSize } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\n\n/**\n * Represents the header component of a modal.\n */\n@CSSComponent('modal__header')\n@Component({\n standalone: true,\n selector: 'odx-modal-header',\n templateUrl: './modal-header.component.html',\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeaderComponent implements AfterContentInit {\n protected readonly modalRef = injectModalRef();\n\n public readonly element = injectElement();\n\n /**\n * The area header component associated with the modal header.\n *\n * @type {AreaHeaderComponent | undefined}\n */\n @ContentChild(AreaHeaderComponent)\n public areaHeaderComponent?: AreaHeaderComponent;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n\n public ngAfterContentInit(): void {\n if (this.areaHeaderComponent) {\n this.areaHeaderComponent.size = AreaHeaderSize.MEDIUM;\n }\n }\n}\n","<ng-content select=\"odx-area-header\" />\n@if (modalRef.options.dismissable) {\n <odx-action-group class=\"odx-modal__dismiss\">\n <button odxButton odxModalDismiss><odx-icon name=\"close\" iconSet=\"core\" /></button>\n </odx-action-group>\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent, IconSet } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { ModalHeroVariant } from '../../models';\n\n/**\n * Represents a modal hero component.\n */\n@CSSComponent('modal-hero')\n@Component({\n selector: 'odx-modal-hero',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n templateUrl: './modal-hero.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeroComponent {\n public readonly element = injectElement();\n\n /**\n * The modal reference of the modal hero component.\n *\n * @type {ModalRef}\n */\n public readonly modalRef = injectModalRef();\n\n /**\n * The icon of the modal hero component.\n *\n * @type {string}\n */\n @Input()\n public icon?: string | null;\n\n /**\n * The icon set of the modal hero component.\n *\n * @type {IconSet}\n * @default IconSet.CORE\n */\n @Input()\n public iconSet: IconSet = IconSet.CORE;\n\n /**\n * The variant of the modal hero component.\n *\n * @type {ModalHeroVariant | null}\n */\n @CSSModifier()\n @Input()\n public variant?: ModalHeroVariant | null;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n}\n","@if (icon) {\n <odx-icon class=\"odx-modal-hero__icon\" [name]=\"icon\" [iconSet]=\"iconSet\" size=\"xlarge\" />\n}\n\n<div class=\"odx-modal-hero__title odx-heading-4\">\n <ng-content />\n</div>\n@if (modalRef.options.dismissable) {\n <odx-action-group class=\"odx-modal-hero__dismiss\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\" iconSet=\"core\" />\n </button>\n </odx-action-group>\n}\n","import { ChangeDetectionStrategy, Component, inject, Injector, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { AreaHeaderComponent } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ModalCloseDirective, ModalContentDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { BasicModalOptions, GetModalActionData, Modal } from '../../models';\nimport { ModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { ModalHeaderComponent } from '../modal-header/modal-header.component';\nimport { ModalHeroComponent } from '../modal-hero/modal-hero.component';\n\n/**\n * Represents a basic modal component that can be used to display dynamic content, handle modal actions, and interact\n * with other components through dependency injection. It includes common modal features such as headers, footers, and dynamic content areas.\n * This component uses the `ModalRef` to manage its state and interactions.\n *\n * The `BasicModalComponent` is designed to be flexible and reusable for various modal dialog needs within an application.\n *\n * @template Result The expected result type that the modal might produce, typically used when the modal closes.\n */\n@Component({\n selector: 'odx-basic-modal',\n standalone: true,\n imports: [\n CoreModule,\n DynamicViewDirective,\n ButtonComponent,\n AreaHeaderComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalContentDirective,\n ModalCloseDirective,\n ],\n templateUrl: './basic-modal.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasicModalComponent<Result = unknown> implements Modal<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>> {\n protected readonly injector = inject(Injector);\n\n /**\n * The reference to the modal.\n *\n * @type {ModalRef<BasicModalOptions<Result>>}\n */\n public readonly modalRef = injectModalRef<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>>();\n\n protected get data(): BasicModalOptions<Result> {\n return this.modalRef.data;\n }\n}\n","@if (data.heroIcon; as icon) {\n <odx-modal-hero [icon]=\"icon\" [variant]=\"data.heroVariant\">\n <ng-template [odxDynamicView]=\"data.title\" />\n </odx-modal-hero>\n} @else {\n <odx-modal-header>\n <odx-area-header>\n <ng-template [odxDynamicView]=\"data.title\" />\n </odx-area-header>\n </odx-modal-header>\n}\n\n<odx-modal-content>\n <ng-template [odxDynamicView]=\"data.content\" [odxDynamicViewInjector]=\"injector\" />\n</odx-modal-content>\n\n<odx-modal-footer>\n @for (action of data.actions; track $index) {\n <button odxButton [variant]=\"action.variant\" [odxModalClose]=\"action.data\">\n {{ action.label }}\n </button>\n }\n</odx-modal-footer>\n","import { ChangeDetectionStrategy, Component, HostListener, Injector, Input, OnChanges, ViewEncapsulation, inject } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { NgChanges, hasChanged, injectElement, isTemplateRef } from '@odx/angular/utils';\nimport { injectModalRef } from './helpers';\n\n/**\n * A component that represents a modal dialog with dynamic content and customizable animations.\n * It supports both modal and sidesheet variants with configurable animations for each type.\n */\n@CSSComponent('modal')\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[odx-dialog-modal]',\n templateUrl: './modal.component.html',\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, IconComponent, CoreModule, DynamicViewDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': 'modalRef.options.id',\n '[attr.aria-labelledby]': 'modalRef.modalTitleId',\n '[attr.role]': '\"dialog\"',\n },\n})\nexport class ModalComponent implements OnChanges {\n protected readonly modalRef = injectModalRef();\n protected readonly injector = inject(Injector);\n protected readonly context = { $implicit: this.modalRef };\n\n public readonly element = injectElement<HTMLDialogElement>();\n\n /**\n * Size of the modal as a CSS modifier based on modal options.\n *\n * @type {ModalSize}\n */\n @CSSModifier()\n public size = this.modalRef.options.size;\n\n /**\n * Variant of the modal as a CSS modifier that influences animation choices.\n *\n * @type {ModalVariant}\n */\n @CSSModifier()\n public variant = this.modalRef.options.variant;\n\n /**\n * Boolean that indicates if the content is a component type rather than a template.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n public withComponent = false;\n\n /**\n * Dynamic content to be loaded into the modal. Excludes simple textual content\n * to enable complex Angular components or templates.\n *\n * @type {Exclude<DynamicContent, DynamicTextContent>}\n */\n @Input()\n public content!: Exclude<DynamicContent, DynamicTextContent>;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe(() => {\n this.size = this.modalRef.options.size;\n });\n }\n\n public ngOnChanges(changes: NgChanges<ModalComponent>): void {\n if (hasChanged(changes, 'content', false)) {\n this.withComponent = !isTemplateRef(this.content);\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected preventNativeDismiss(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.modalRef.options.dismissable && this.modalRef.destroy();\n }\n }\n\n @HostListener('cancel')\n @HostListener('close')\n protected handleDialogClose(): void {\n this.modalRef.dismiss();\n }\n}\n","<div\n [odxClickOutsideActive]=\"modalRef.isActive() && modalRef.options.dismissable && modalRef.options.interactiveBackdrop\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n class=\"odx-modal__container\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { ModalInstanceOptions, ModalSize } from './models';\nimport { ModalVariant } from './models/modal-variant';\n\nexport type ModalConfig = Omit<ModalInstanceOptions, 'id' | 'host' | 'data'>;\n\n/**\n * Utilizes `createConfigTokens` to create configuration tokens and utility functions for managing modal configurations.\n * This setup enables easy injection and provision of default global settings for modals throughout the application,\n * fostering consistency and ease of customization.\n *\n * The generated tokens and functions include:\n * - `ModalDefaultConfig`: The default configuration values for modals.\n * - `ModalConfig`: An Angular `InjectionToken` for injecting modal configuration into components or services.\n * - `injectModalConfig`: A utility function for retrieving the current modal configuration, considering any overrides.\n * - `provideModalConfig`: A function that allows specifying overrides to the default modal configuration.\n *\n * @example\n * ```ts\n * // Example of providing a custom modal configuration in an Angular module\n * @NgModule({\n * providers: [\n * provideModalConfig({\n * size: ModalSize.LARGE,\n * dismissable: false\n * })\n * ]\n * })\n * class AppModule {}\n *\n * // Example of injecting modal configuration in a component\n * @Component({...})\n * export class MyComponent {\n * constructor(@Inject(ModalConfig) private modalConfig: ModalConfig) {\n * console.log(this.modalConfig.size); // Outputs the size from the provided or default configuration\n * }\n * }\n * ```\n */\nexport const { ModalDefaultConfig, ModalConfig, injectModalConfig, provideModalConfig } = createConfigTokens('Modal', '@odx/angular/components/modal', {\n dismissable: true,\n size: ModalSize.MEDIUM,\n dismissOnNavigation: true,\n interactiveBackdrop: true,\n variant: ModalVariant.DEFAULT,\n} as ModalConfig);\n","import { Location } from '@angular/common';\nimport { inject, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from '@odx/angular/internal';\nimport { deferFn, getUniqueId, Queue, waitForAnimations } from '@odx/angular/utils';\nimport { finalize } from 'rxjs';\nimport { BasicModalComponent } from './components';\nimport { provideModalRef } from './helpers';\nimport { ModalComponent } from './modal.component';\nimport { injectModalConfig } from './modal.config';\nimport { BasicModalOptions, GetModalActionData, ModalOptions, ModalRef, ModalSize, ModalType } from './models';\n/**\n * Service for managing modal dialogs within the application. It supports creating, opening,\n * and dismissing modals dynamically, with comprehensive options for customization and lifecycle management.\n * Utilizes Angular's dynamic view management to instantiate and render modals as needed.\n *\n * @example\n * ```ts\n * // Example of using ModalService to open a modal\n * constructor(private modalService: ModalService) {}\n *\n * openModal() {\n * const modalRef = this.modalService.open(MyModalContentComponent, {\n * data: { someData: 'test' },\n * size: ModalSize.SMALL,\n * });\n *\n * modalRef.onClose$.subscribe(result => {\n * console.log('Modal closed with result:', result);\n * });\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly config = injectModalConfig();\n private readonly openModals = new Queue<ModalRef>();\n private readonly injector = inject(Injector);\n private readonly dynamicViewService = inject(DynamicViewService);\n\n /**\n * An observable that emits the current value of the openModals subject.\n *\n * @emits {ModalRef[]} openModals$ - The current array of open modals.\n */\n public readonly openModals$ = this.openModals.value$;\n\n constructor(location: Location) {\n location.onUrlChange(() => {\n for (const modalRef of this.openModals.toArray()) {\n if (modalRef.options.dismissOnNavigation) {\n modalRef.destroy();\n }\n }\n });\n }\n\n /**\n * Dismisses all open modals.\n */\n public dismissAll(): void {\n for (const modalRef of this.openModals.toArray()) {\n modalRef.dismiss();\n }\n }\n\n /**\n * Retrieves the modal reference by its ID.\n *\n * @template Data The type of data passed to the modal.\n * @template Result The type of result returned by the modal.\n * @param {ModalOptions['id']} id The ID of the modal.\n * @returns {ModalRef<Data, Result> | null} - The modal reference if found, otherwise null.\n */\n public getModalById<Data = unknown, Result = unknown>(id: ModalOptions['id']): ModalRef<Data, Result> | null {\n return this.openModals.get(id) as ModalRef<Data, Result>;\n }\n\n /**\n * Creates a modal with the specified options.\n * @template Data - The type of data passed to the modal for use in its content.\n * @template Result - The type of result expected when the modal is closed.\n * @param {Data} modal - The basic modal options.\n * @param {Partial<ModalOptions<Data>> | undefined} options - Additional modal options.\n * @returns {ModalRef<Data, Result>} The reference to the created modal.\n */\n public create<Data extends BasicModalOptions, Result = GetModalActionData<Data>>(modal: Data, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public create(modal: BasicModalOptions, options?: ModalOptions): ModalRef {\n return this.open(BasicModalComponent, {\n data: modal,\n size: ModalSize.SMALL,\n ...options,\n });\n }\n\n /**\n * Creates and opens a new modal with the specified content and options.\n *\n * @template Data - The type of data passed to the modal for use in its content.\n * @template Result - The type of result expected when the modal is closed.\n * @template T - The content type of the modal, either a `TemplateRef` or a component.\n * @param {ModalType<T, Data, Result> | TemplateRef<T>} content - The content of the modal, either as a `TemplateRef` or a component type.\n * @param {Partial<ModalOptions<Data>>} [options] - Optional configuration options for the modal.\n * @returns {ModalRef<Data, Result>} A reference to the newly opened modal, allowing interaction with and control over the modal instance.\n */\n public open<Data, Result, T>(content: TemplateRef<T>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open<Data, Result, T = unknown>(content: ModalType<T, Data, Result>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open(content: ModalType<unknown> | TemplateRef<unknown>, options?: Partial<ModalOptions>): ModalRef {\n const mergedOptions = deepmerge(this.config, { id: getUniqueId('odx-modal') }, options ?? {}) as ModalOptions;\n if (this.getModalById(mergedOptions.id)) {\n throw Error(`Modal with ID ${mergedOptions.id} already open`);\n }\n const modalRef = new ModalRef(mergedOptions, (ref) => this.openModals.isFirst(ref));\n this.attachModal(modalRef, content);\n this.openModals.add(modalRef);\n return modalRef;\n }\n\n private attachModal(modalRef: ModalRef, content: Exclude<DynamicContent, DynamicTextContent>): void {\n const viewRef = this.dynamicViewService.createView(ModalComponent, {\n context: { content },\n injector: Injector.create({\n providers: [provideModalRef(modalRef)],\n parent: this.injector,\n }),\n host: modalRef.options.host,\n });\n const dialog = viewRef.getElement() as HTMLDialogElement;\n const onDestroy = async () => {\n dialog?.classList.add('is-hidden');\n await waitForAnimations(dialog);\n dialog?.close();\n this.openModals.remove(modalRef);\n viewRef.destroy();\n };\n\n modalRef.onDestroy$.pipe(finalize(onDestroy)).subscribe();\n deferFn(() => {\n dialog?.isConnected && dialog?.showModal();\n });\n }\n}\n","import { Directive, EventEmitter, inject, Input, OnChanges, OnDestroy, Output, TemplateRef } from '@angular/core';\nimport { hasChanged, NgChanges } from '@odx/angular/utils';\nimport { ModalService } from './modal.service';\nimport { ModalOptions, ModalRef } from './models';\n\n/**\n * A directive that simplifies the creation and management of modals directly from Angular templates.\n * It allows for declarative modal instantiation with full control over modal options, and supports\n * capturing modal close and dismiss events.\n *\n * Usage:\n * Apply `odxModal` to an `<ng-template>` element and bind it to modal options.\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[odxModal]',\n exportAs: 'odxModal',\n})\nexport class ModalDirective implements OnChanges, OnDestroy {\n private readonly modalService = inject(ModalService);\n private modalRef: ModalRef | null = null;\n\n protected readonly template = inject(TemplateRef);\n\n /**\n * Options for the modal directive.\n *\n * @type {Partial<ModalOptions> | '' | null}\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxModal')\n public modalOptions?: Partial<ModalOptions> | '' | null;\n\n /**\n * Event emitter for closing the modal.\n *\n * @emits {any} The result of the modal close event.\n */\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalClose')\n public modalClose = new EventEmitter();\n\n /**\n * Event emitter for dismissing the modal.\n *\n * @emits {any} The result of the modal dismiss event.\n */\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalDismiss')\n public modalDismiss = new EventEmitter();\n\n public ngOnChanges(changes: NgChanges<ModalDirective>): void {\n if (hasChanged(changes, 'modalOptions') && this.modalOptions) {\n this.modalRef?.update(this.modalOptions);\n }\n }\n\n public ngOnDestroy() {\n this.dismiss();\n }\n\n /**\n * Opens the modal based on the provided template and options. Binds modal result and dismissal outputs to EventEmitter properties.\n */\n public open(): void {\n this.modalRef = this.modalService.open(this.template, this.modalOptions || {});\n this.modalRef.onClose$.subscribe((result) => this.modalClose.next(result));\n this.modalRef.onDismiss$.subscribe((result) => this.modalDismiss.next(result));\n }\n\n /**\n * Dismisses the currently opened modal.\n */\n public dismiss(): void {\n this.modalRef?.dismiss();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AreaHeaderModule } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ButtonGroupComponent } from '@odx/angular/components/button-group';\nimport { ModalFooterComponent, ModalHeaderComponent, ModalHeroComponent } from './components';\nimport {\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n PreventFormMethodDialogDirective,\n PreventMethodDialogDirective,\n} from './directives';\nimport { ModalComponent } from './modal.component';\nimport { ModalDirective } from './modal.directive';\n\nconst modules = [\n ModalComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalDirective,\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n PreventMethodDialogDirective,\n PreventFormMethodDialogDirective,\n];\n\n@NgModule({\n imports: [ButtonComponent, ButtonGroupComponent, ...modules],\n exports: [CoreModule, AreaHeaderModule, ButtonComponent, ButtonGroupComponent, ...modules],\n})\nexport class ModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-modal.mjs","sources":["../../../../libs/angular/components/modal/src/lib/models/modal-hero-variant.ts","../../../../libs/angular/components/modal/src/lib/models/modal-ref.ts","../../../../libs/angular/components/modal/src/lib/models/modal-size.ts","../../../../libs/angular/components/modal/src/lib/models/modal-variant.ts","../../../../libs/angular/components/modal/src/lib/helpers/inject-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/helpers/provide-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-close.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-content.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-dismiss.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/prevent-form-method-dialog.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/prevent-method-dialog.directive.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.html","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.ts","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.component.ts","../../../../libs/angular/components/modal/src/lib/modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.config.ts","../../../../libs/angular/components/modal/src/lib/modal.service.ts","../../../../libs/angular/components/modal/src/lib/modal.directive.ts","../../../../libs/angular/components/modal/src/lib/modal.module.ts","../../../../libs/angular/components/modal/src/odx-angular-components-modal.ts"],"sourcesContent":["export type ModalHeroVariant = (typeof ModalHeroVariant)[keyof typeof ModalHeroVariant];\n\nexport const ModalHeroVariant = {\n PRIMARY: 'primary',\n SUCCESS: 'success',\n CONFIRMATION: 'confirmation',\n DANGER: 'danger',\n} as const;\n","import { Controller } from '@odx/angular';\nimport { deepmerge } from '@odx/angular/internal';\nimport { share, Subject } from 'rxjs';\nimport { ModalOptions } from './modal-options';\n\n/**\n * A reference to a dynamically created modal, providing methods to manipulate, close, or update the modal's state\n * and options.\n * This class extends the `Controller` base class from `@odx/angular`, adding modal-specific functionalities like\n * handling closures and dismissals.\n *\n * @template Data - The type of data passed to the modal.\n * @template Result - The type of the result emitted when the modal is closed.\n *\n * @see {Controller}\n */\nexport class ModalRef<Data = unknown, Result = unknown> extends Controller {\n private readonly onClose$$ = new Subject<Result>();\n private readonly onDismiss$$ = new Subject<void>();\n\n /** An observable that emits when the modal is closed with a result. */\n public readonly onClose$ = this.onClose$$.pipe(share({ resetOnRefCountZero: true }));\n\n /** An observable that emits when the modal is dismissed without a result. */\n public readonly onDismiss$ = this.onDismiss$$.pipe(share({ resetOnRefCountZero: true }));\n\n /** An observable that merges the onClose$ and onDismiss$ streams for cases when any kind of teardown is needed. */\n public readonly onDestroy$ = deepmerge(this.onClose$, this.onDismiss$);\n\n /** A method that returns whether the modal is currently active. */\n public readonly isActive: () => boolean;\n\n /** Gets the unique identifier for the modal instance.\n *\n * @returns {string} The unique identifier for the modal instance.\n */\n public get id(): string {\n return this.options.id;\n }\n\n /** Gets the ARIA label ID for the modal title, based on the modal's ID.\n *\n * @returns {string} The ARIA label ID for the modal title.\n */\n public get modalTitleId(): string {\n return `${this.options.id}-title`;\n }\n\n /** Gets the data passed to the modal. This is useful for modal initialization.\n *\n * @returns {Data} The data passed to the modal.\n */\n public get data(): Data {\n return this.internalOptions.data;\n }\n\n /** Gets the current options for the modal. These options include configurations.\n *\n * @template Data - The type of data passed to the modal.\n * @returns {ModalOptions<Data>} The current options for the modal.\n */\n public get options(): ModalOptions<Data> {\n return this.internalOptions;\n }\n\n constructor(\n private internalOptions: ModalOptions<Data>,\n isActive: (modalRef: ModalRef<Data, Result>) => boolean,\n ) {\n super();\n this.isActive = () => isActive(this);\n }\n\n /**\n * Updates the modal's options.\n *\n * @param {Partial<ModalOptions<Data>>} options A partial set of options to update.\n */\n public update(options: Partial<ModalOptions<Data>>): void {\n this.internalOptions = deepmerge(this.internalOptions, options) as ModalOptions<Data>;\n this.triggerControllerChange();\n }\n\n /**\n * Dismisses the modal. This does not result in an output value.\n *\n * @param {boolean} [force=false] Whether to force dismissal regardless of the `canDismiss` condition.\n */\n public dismiss(force = false): void {\n if (!force && !this.isActive()) return;\n if (this.options.canDismiss?.(this.data) === false) return;\n this.onDismiss$$.next();\n this.destroy();\n }\n\n /**\n * Closes the modal with a result.\n *\n * @param {Result} result The result to emit when the modal closes.\n */\n public close(result: Result): void {\n if (!this.isActive()) return;\n if (this.options.canClose?.(this.data) === false) return;\n this.onClose$$.next(result);\n this.destroy();\n }\n\n /** Completes the onClose and onDismiss streams and cleans up resources. */\n public destroy(): void {\n this.onClose$$.complete();\n this.onDismiss$$.complete();\n }\n}\n","export type ModalSize = (typeof ModalSize)[keyof typeof ModalSize];\n\nexport const ModalSize = {\n XSMALL: 'xsmall',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","export type ModalVariant = typeof ModalVariant[keyof typeof ModalVariant];\n\nexport const ModalVariant = {\n DEFAULT: 'default',\n SIDESHEET: 'sidesheet',\n} as const;\n","import { inject } from '@angular/core';\nimport { ModalRef } from '../models';\n\n/**\n * Utility function to inject a reference to a modal. This function simplifies the injection process by typing the `ModalRef` to the specific data and result expected by the consumer.\n *\n * This approach abstracts away Angular's inject function, providing direct access to the modal reference with the correct type. It is commonly used in components or services that interact with a modal dialog to manipulate its data, close it, or perform other related actions.\n *\n * @template Data The type of data passed to the modal.\n * @template Result The type of result expected when the modal closes.\n * @returns {ModalRef<Data, Result>} A strongly typed reference to the modal.\n *\n * @example\n * ```ts\n * // Injecting a modal reference in a component or service:\n * const modalRef = injectModalRef<SomeDataType, SomeResultType>();\n *\n * // Using the modal reference to close the modal and return a result:\n * modalRef.close(someResult);\n *\n * // Accessing the data provided to the modal:\n * const modalData = modalRef.data;\n * ```\n */\nexport function injectModalRef<Data, Result = unknown>(): ModalRef<Data, Result> {\n return inject(ModalRef<Data, Result>);\n}\n","import { ValueProvider } from '@angular/core';\nimport { ModalRef } from '../models';\n\n/**\n * Provides a configuration for the Angular dependency injection system to inject a specific instance of `ModalRef`.\n * This function is particularly useful when you want to configure a provider for a `ModalRef` within an Angular module or component.\n *\n * @template D The data type expected by the modal.\n * @template R The result type that the modal will produce.\n * @param {ModalRef<D, R>} modalRef An instance of `ModalRef` to be provided.\n * @returns {ValueProvider} An Angular value provider that can be used in module or component providers arrays.\n */\nexport function provideModalRef<D = unknown, R = unknown>(modalRef: ModalRef<D, R>): ValueProvider {\n return { provide: ModalRef, useValue: modalRef };\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n/**\n * A directive that enables an element to close or dismiss a modal when clicked.\n * It can be used on any element within a modal to trigger the close or dismiss action, optionally passing a result back to the modal opener.\n *\n * The directive accepts an input value that determines the result to be passed back on modal close. If no value is provided, or it's explicitly set to `null`,\n * the modal is dismissed without sending a result. If the input value is `undefined`, the modal is dismissed via the `dismiss` method without passing any result.\n *\n * @template T - The type of the result to be emitted when the modal closes. Defaults to `unknown`.\n *\n * @example\n * Closing a modal and passing a result:\n * ```html\n * <button [odxModalClose]=\"myResult\">Close and send result</button>\n * ```\n *\n * Simply dismissing a modal without passing a result:\n * ```html\n * <button odxModalClose>Dismiss</button>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[odxModalClose]',\n})\nexport class ModalCloseDirective<T = unknown> {\n private readonly modalRef = injectModalRef();\n\n /**\n * Represents the result to be passed back to the modal opener when the modal is closed.\n * @template T - The type of the result returned.\n */\n @Input('odxModalClose')\n public result?: T | null = null;\n\n @HostListener('click')\n protected onClick(): void {\n const result = this.result === '' ? null : this.result;\n\n if (result === undefined) {\n this.modalRef.dismiss();\n } else {\n this.modalRef.close(result ?? null);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents a directive for the content of a modal.\n */\n@CSSComponent('modal__content')\n@Directive({\n standalone: true,\n selector: 'odx-modal-content',\n})\nexport class ModalContentDirective {\n public readonly element = injectElement();\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n/**\n * A directive that enables an element to dismiss a modal when clicked. This can be applied\n * to any clickable element within a modal, such as buttons or links, to provide a declarative\n * approach to dismissing the modal.\n *\n * Utilizes `injectModalRef` to access the modal reference associated with the containing modal,\n * enabling the directive to call the `dismiss` method on the modal reference upon the click event.\n *\n * @example\n * Dismissing a modal using the odxModalDismiss directive on a button:\n * ```html\n * <button odxModalDismiss>Cancel</button>\n * ```\n *\n * This directive simplifies modal dismissal by removing the need for manually wiring click events\n * to dismiss methods in the component class, thereby enhancing template readability and maintainability.\n */\n@Directive({\n standalone: true,\n selector: '[odxModalDismiss]',\n})\nexport class ModalDismissDirective {\n private readonly modalRef = injectModalRef();\n\n @HostListener('click')\n protected onClick(): void {\n this.modalRef.dismiss();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n/**\n * Directive that prevents the default form method behavior on submit buttons inside an HTML Dialog form.\n */\n@Directive({\n standalone: true,\n selector: '[formmethod=dialog]',\n})\nexport class PreventFormMethodDialogDirective {\n @HostListener('click', ['$event'])\n protected onClick(event: Event): void {\n event.preventDefault();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n/**\n * Directive that prevents the default form submission behavior inside an HTML Dialog form.\n */\n@Directive({\n standalone: true,\n selector: 'form[method=dialog]',\n})\nexport class PreventMethodDialogDirective {\n @HostListener('submit', ['$event'])\n protected onFormSubmit(event: Event): void {\n event.preventDefault();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Represents the footer component of a modal.\n */\n@CSSComponent('modal__footer')\n@Component({\n standalone: true,\n selector: 'odx-modal-footer',\n templateUrl: './modal-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalFooterComponent {\n public readonly element = injectElement();\n}\n","<ng-content />\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AreaHeaderComponent, AreaHeaderSize } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\n\n/**\n * Represents the header component of a modal.\n */\n@CSSComponent('modal__header')\n@Component({\n standalone: true,\n selector: 'odx-modal-header',\n templateUrl: './modal-header.component.html',\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeaderComponent implements AfterContentInit {\n protected readonly modalRef = injectModalRef();\n\n public readonly element = injectElement();\n\n /**\n * The area header component associated with the modal header.\n *\n * @type {AreaHeaderComponent | undefined}\n */\n @ContentChild(AreaHeaderComponent)\n public areaHeaderComponent?: AreaHeaderComponent;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n\n public ngAfterContentInit(): void {\n if (this.areaHeaderComponent) {\n this.areaHeaderComponent.size = AreaHeaderSize.MEDIUM;\n }\n }\n}\n","<ng-content select=\"odx-area-header\" />\n@if (modalRef.options.dismissable) {\n <odx-action-group class=\"odx-modal__dismiss\">\n <button odxButton odxModalDismiss><odx-icon name=\"close\" iconSet=\"core\" /></button>\n </odx-action-group>\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent, IconSet } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { ModalHeroVariant } from '../../models';\n\n/**\n * Represents a modal hero component.\n */\n@CSSComponent('modal-hero')\n@Component({\n selector: 'odx-modal-hero',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n templateUrl: './modal-hero.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeroComponent {\n public readonly element = injectElement();\n\n /**\n * The modal reference of the modal hero component.\n *\n * @type {ModalRef}\n */\n public readonly modalRef = injectModalRef();\n\n /**\n * The icon of the modal hero component.\n *\n * @type {string}\n */\n @Input()\n public icon?: string | null;\n\n /**\n * The icon set of the modal hero component.\n *\n * @type {IconSet}\n * @default IconSet.CORE\n */\n @Input()\n public iconSet: IconSet = IconSet.CORE;\n\n /**\n * The variant of the modal hero component.\n *\n * @type {ModalHeroVariant | null}\n */\n @CSSModifier()\n @Input()\n public variant?: ModalHeroVariant | null;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n}\n","@if (icon) {\n <odx-icon class=\"odx-modal-hero__icon\" [name]=\"icon\" [iconSet]=\"iconSet\" size=\"xlarge\" />\n}\n\n<div class=\"odx-modal-hero__title odx-heading-4\">\n <ng-content />\n</div>\n@if (modalRef.options.dismissable) {\n <odx-action-group class=\"odx-modal-hero__dismiss\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\" iconSet=\"core\" />\n </button>\n </odx-action-group>\n}\n","import { ChangeDetectionStrategy, Component, inject, Injector, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { AreaHeaderComponent } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ModalCloseDirective, ModalContentDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { BasicModalOptions, GetModalActionData, Modal } from '../../models';\nimport { ModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { ModalHeaderComponent } from '../modal-header/modal-header.component';\nimport { ModalHeroComponent } from '../modal-hero/modal-hero.component';\n\n/**\n * Represents a basic modal component that can be used to display dynamic content, handle modal actions, and interact\n * with other components through dependency injection. It includes common modal features such as headers, footers, and dynamic content areas.\n * This component uses the `ModalRef` to manage its state and interactions.\n *\n * The `BasicModalComponent` is designed to be flexible and reusable for various modal dialog needs within an application.\n *\n * @template Result The expected result type that the modal might produce, typically used when the modal closes.\n */\n@Component({\n selector: 'odx-basic-modal',\n standalone: true,\n imports: [\n CoreModule,\n DynamicViewDirective,\n ButtonComponent,\n AreaHeaderComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalContentDirective,\n ModalCloseDirective,\n ],\n templateUrl: './basic-modal.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasicModalComponent<Result = unknown> implements Modal<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>> {\n protected readonly injector = inject(Injector);\n\n /**\n * The reference to the modal.\n *\n * @type {ModalRef<BasicModalOptions<Result>>}\n */\n public readonly modalRef = injectModalRef<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>>();\n\n protected get data(): BasicModalOptions<Result> {\n return this.modalRef.data;\n }\n}\n","@if (data.heroIcon; as icon) {\n <odx-modal-hero [icon]=\"icon\" [variant]=\"data.heroVariant\">\n <ng-template [odxDynamicView]=\"data.title\" />\n </odx-modal-hero>\n} @else {\n <odx-modal-header>\n <odx-area-header>\n <ng-template [odxDynamicView]=\"data.title\" />\n </odx-area-header>\n </odx-modal-header>\n}\n\n<odx-modal-content>\n <ng-template [odxDynamicView]=\"data.content\" [odxDynamicViewInjector]=\"injector\" />\n</odx-modal-content>\n\n<odx-modal-footer>\n @for (action of data.actions; track $index) {\n <button odxButton [variant]=\"action.variant\" [odxModalClose]=\"action.data\">\n {{ action.label }}\n </button>\n }\n</odx-modal-footer>\n","import { ChangeDetectionStrategy, Component, HostListener, Injector, Input, OnChanges, ViewEncapsulation, inject } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { NgChanges, hasChanged, injectElement, isTemplateRef } from '@odx/angular/utils';\nimport { injectModalRef } from './helpers';\n\n/**\n * A component that represents a modal dialog with dynamic content and customizable animations.\n * It supports both modal and sidesheet variants with configurable animations for each type.\n */\n@CSSComponent('modal')\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[odx-dialog-modal]',\n templateUrl: './modal.component.html',\n imports: [A11yModule, CoreModule, DynamicViewDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': 'modalRef.options.id',\n '[attr.aria-labelledby]': 'modalRef.modalTitleId',\n '[attr.role]': '\"dialog\"',\n },\n})\nexport class ModalComponent implements OnChanges {\n protected readonly modalRef = injectModalRef();\n protected readonly injector = inject(Injector);\n protected readonly context = { $implicit: this.modalRef };\n\n public readonly element = injectElement<HTMLDialogElement>();\n\n /**\n * Size of the modal as a CSS modifier based on modal options.\n *\n * @type {ModalSize}\n */\n @CSSModifier()\n public size = this.modalRef.options.size;\n\n /**\n * Variant of the modal as a CSS modifier that influences animation choices.\n *\n * @type {ModalVariant}\n */\n @CSSModifier()\n public variant = this.modalRef.options.variant;\n\n /**\n * Boolean that indicates if the content is a component type rather than a template.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n public withComponent = false;\n\n /**\n * Dynamic content to be loaded into the modal. Excludes simple textual content\n * to enable complex Angular components or templates.\n *\n * @type {Exclude<DynamicContent, DynamicTextContent>}\n */\n @Input()\n public content!: Exclude<DynamicContent, DynamicTextContent>;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe(() => {\n this.size = this.modalRef.options.size;\n });\n }\n\n public ngOnChanges(changes: NgChanges<ModalComponent>): void {\n if (hasChanged(changes, 'content', false)) {\n this.withComponent = !isTemplateRef(this.content);\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected preventNativeDismiss(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.modalRef.options.dismissable && this.modalRef.destroy();\n }\n }\n\n @HostListener('cancel', ['$event'])\n @HostListener('close', ['$event'])\n protected handleDialogClose({ target }: KeyboardEvent): void {\n if (target === this.element.nativeElement) this.modalRef.dismiss();\n }\n}\n","<div\n [odxClickOutsideActive]=\"modalRef.isActive() && modalRef.options.dismissable && modalRef.options.interactiveBackdrop\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n class=\"odx-modal__container\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { ModalInstanceOptions, ModalSize } from './models';\nimport { ModalVariant } from './models/modal-variant';\n\nexport type ModalConfig = Omit<ModalInstanceOptions, 'id' | 'host' | 'data'>;\n\n/**\n * Utilizes `createConfigTokens` to create configuration tokens and utility functions for managing modal configurations.\n * This setup enables easy injection and provision of default global settings for modals throughout the application,\n * fostering consistency and ease of customization.\n *\n * The generated tokens and functions include:\n * - `ModalDefaultConfig`: The default configuration values for modals.\n * - `ModalConfig`: An Angular `InjectionToken` for injecting modal configuration into components or services.\n * - `injectModalConfig`: A utility function for retrieving the current modal configuration, considering any overrides.\n * - `provideModalConfig`: A function that allows specifying overrides to the default modal configuration.\n *\n * @example\n * ```ts\n * // Example of providing a custom modal configuration in an Angular module\n * @NgModule({\n * providers: [\n * provideModalConfig({\n * size: ModalSize.LARGE,\n * dismissable: false\n * })\n * ]\n * })\n * class AppModule {}\n *\n * // Example of injecting modal configuration in a component\n * @Component({...})\n * export class MyComponent {\n * constructor(@Inject(ModalConfig) private modalConfig: ModalConfig) {\n * console.log(this.modalConfig.size); // Outputs the size from the provided or default configuration\n * }\n * }\n * ```\n */\nexport const { ModalDefaultConfig, ModalConfig, injectModalConfig, provideModalConfig } = createConfigTokens('Modal', '@odx/angular/components/modal', {\n dismissable: true,\n size: ModalSize.MEDIUM,\n dismissOnNavigation: true,\n interactiveBackdrop: true,\n variant: ModalVariant.DEFAULT,\n} as ModalConfig);\n","import { Location } from '@angular/common';\nimport { inject, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from '@odx/angular/internal';\nimport { deferFn, getUniqueId, Queue, waitForAnimations } from '@odx/angular/utils';\nimport { finalize } from 'rxjs';\nimport { BasicModalComponent } from './components';\nimport { provideModalRef } from './helpers';\nimport { ModalComponent } from './modal.component';\nimport { injectModalConfig } from './modal.config';\nimport { BasicModalOptions, GetModalActionData, ModalOptions, ModalRef, ModalSize, ModalType } from './models';\n/**\n * Service for managing modal dialogs within the application. It supports creating, opening,\n * and dismissing modals dynamically, with comprehensive options for customization and lifecycle management.\n * Utilizes Angular's dynamic view management to instantiate and render modals as needed.\n *\n * @example\n * ```ts\n * // Example of using ModalService to open a modal\n * constructor(private modalService: ModalService) {}\n *\n * openModal() {\n * const modalRef = this.modalService.open(MyModalContentComponent, {\n * data: { someData: 'test' },\n * size: ModalSize.SMALL,\n * });\n *\n * modalRef.onClose$.subscribe(result => {\n * console.log('Modal closed with result:', result);\n * });\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly config = injectModalConfig();\n private readonly openModals = new Queue<ModalRef>();\n private readonly injector = inject(Injector);\n private readonly dynamicViewService = inject(DynamicViewService);\n\n /**\n * An observable that emits the current value of the openModals subject.\n *\n * @emits {ModalRef[]} openModals$ - The current array of open modals.\n */\n public readonly openModals$ = this.openModals.value$;\n\n constructor(location: Location) {\n location.onUrlChange(() => {\n for (const modalRef of this.openModals.toArray()) {\n if (modalRef.options.dismissOnNavigation) {\n modalRef.destroy();\n }\n }\n });\n }\n\n /**\n * Dismisses all open modals.\n */\n public dismissAll(): void {\n for (const modalRef of this.openModals.toArray()) {\n modalRef.dismiss();\n }\n }\n\n /**\n * Retrieves the modal reference by its ID.\n *\n * @template Data The type of data passed to the modal.\n * @template Result The type of result returned by the modal.\n * @param {ModalOptions['id']} id The ID of the modal.\n * @returns {ModalRef<Data, Result> | null} - The modal reference if found, otherwise null.\n */\n public getModalById<Data = unknown, Result = unknown>(id: ModalOptions['id']): ModalRef<Data, Result> | null {\n return this.openModals.get(id) as ModalRef<Data, Result>;\n }\n\n /**\n * Creates a modal with the specified options.\n * @template Data - The type of data passed to the modal for use in its content.\n * @template Result - The type of result expected when the modal is closed.\n * @param {Data} modal - The basic modal options.\n * @param {Partial<ModalOptions<Data>> | undefined} options - Additional modal options.\n * @returns {ModalRef<Data, Result>} The reference to the created modal.\n */\n public create<Data extends BasicModalOptions, Result = GetModalActionData<Data>>(modal: Data, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public create(modal: BasicModalOptions, options?: ModalOptions): ModalRef {\n return this.open(BasicModalComponent, {\n data: modal,\n size: ModalSize.SMALL,\n ...options,\n });\n }\n\n /**\n * Creates and opens a new modal with the specified content and options.\n *\n * @template Data - The type of data passed to the modal for use in its content.\n * @template Result - The type of result expected when the modal is closed.\n * @template T - The content type of the modal, either a `TemplateRef` or a component.\n * @param {ModalType<T, Data, Result> | TemplateRef<T>} content - The content of the modal, either as a `TemplateRef` or a component type.\n * @param {Partial<ModalOptions<Data>>} [options] - Optional configuration options for the modal.\n * @returns {ModalRef<Data, Result>} A reference to the newly opened modal, allowing interaction with and control over the modal instance.\n */\n public open<Data, Result, T>(content: TemplateRef<T>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open<Data, Result, T = unknown>(content: ModalType<T, Data, Result>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open(content: ModalType<unknown> | TemplateRef<unknown>, options?: Partial<ModalOptions>): ModalRef {\n const mergedOptions = deepmerge(this.config, { id: getUniqueId('odx-modal') }, options ?? {}) as ModalOptions;\n if (this.getModalById(mergedOptions.id)) {\n throw Error(`Modal with ID ${mergedOptions.id} already open`);\n }\n const modalRef = new ModalRef(mergedOptions, (ref) => this.openModals.isFirst(ref));\n this.attachModal(modalRef, content);\n this.openModals.add(modalRef);\n return modalRef;\n }\n\n private attachModal(modalRef: ModalRef, content: Exclude<DynamicContent, DynamicTextContent>): void {\n const viewRef = this.dynamicViewService.createView(ModalComponent, {\n context: { content },\n injector: Injector.create({\n providers: [provideModalRef(modalRef)],\n parent: this.injector,\n }),\n host: modalRef.options.host,\n });\n const dialog = viewRef.getElement() as HTMLDialogElement;\n const onDestroy = async () => {\n dialog?.classList.add('is-hidden');\n await waitForAnimations(dialog);\n dialog?.close();\n this.openModals.remove(modalRef);\n viewRef.destroy();\n };\n\n modalRef.onDestroy$.pipe(finalize(onDestroy)).subscribe();\n deferFn(() => {\n dialog?.isConnected && dialog?.showModal();\n });\n }\n}\n","import { Directive, EventEmitter, inject, Input, OnChanges, OnDestroy, Output, TemplateRef } from '@angular/core';\nimport { hasChanged, NgChanges } from '@odx/angular/utils';\nimport { ModalService } from './modal.service';\nimport { ModalOptions, ModalRef } from './models';\n\n/**\n * A directive that simplifies the creation and management of modals directly from Angular templates.\n * It allows for declarative modal instantiation with full control over modal options, and supports\n * capturing modal close and dismiss events.\n *\n * Usage:\n * Apply `odxModal` to an `<ng-template>` element and bind it to modal options.\n */\n@Directive({\n standalone: true,\n selector: 'ng-template[odxModal]',\n exportAs: 'odxModal',\n})\nexport class ModalDirective implements OnChanges, OnDestroy {\n private readonly modalService = inject(ModalService);\n private modalRef: ModalRef | null = null;\n\n protected readonly template = inject(TemplateRef);\n\n /**\n * Options for the modal directive.\n *\n * @type {Partial<ModalOptions> | '' | null}\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxModal')\n public modalOptions?: Partial<ModalOptions> | '' | null;\n\n /**\n * Event emitter for closing the modal.\n *\n * @emits {any} The result of the modal close event.\n */\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalClose')\n public modalClose = new EventEmitter();\n\n /**\n * Event emitter for dismissing the modal.\n *\n * @emits {any} The result of the modal dismiss event.\n */\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalDismiss')\n public modalDismiss = new EventEmitter();\n\n public ngOnChanges(changes: NgChanges<ModalDirective>): void {\n if (hasChanged(changes, 'modalOptions') && this.modalOptions) {\n this.modalRef?.update(this.modalOptions);\n }\n }\n\n public ngOnDestroy() {\n this.dismiss();\n }\n\n /**\n * Opens the modal based on the provided template and options. Binds modal result and dismissal outputs to EventEmitter properties.\n */\n public open(): void {\n this.modalRef = this.modalService.open(this.template, this.modalOptions || {});\n this.modalRef.onClose$.subscribe((result) => this.modalClose.next(result));\n this.modalRef.onDismiss$.subscribe((result) => this.modalDismiss.next(result));\n }\n\n /**\n * Dismisses the currently opened modal.\n */\n public dismiss(): void {\n this.modalRef?.dismiss();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AreaHeaderModule } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ButtonGroupComponent } from '@odx/angular/components/button-group';\nimport { ModalFooterComponent, ModalHeaderComponent, ModalHeroComponent } from './components';\nimport {\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n PreventFormMethodDialogDirective,\n PreventMethodDialogDirective,\n} from './directives';\nimport { ModalComponent } from './modal.component';\nimport { ModalDirective } from './modal.directive';\n\nconst modules = [\n ModalComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalDirective,\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n PreventMethodDialogDirective,\n PreventFormMethodDialogDirective,\n];\n\n@NgModule({\n imports: [ButtonComponent, ButtonGroupComponent, ...modules],\n exports: [CoreModule, AreaHeaderModule, ButtonComponent, ButtonGroupComponent, ...modules],\n})\nexport class ModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -305,10 +305,11 @@ let ToastContainerComponent = class ToastContainerComponent {
|
|
|
305
305
|
this.toastService.dismiss(itemRef);
|
|
306
306
|
}
|
|
307
307
|
updatePopverPosition() {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
308
|
+
const el = this.element?.nativeElement;
|
|
309
|
+
if (!el?.isConnected)
|
|
310
|
+
return;
|
|
311
|
+
el.hidePopover?.();
|
|
312
|
+
deferFn(() => el.showPopover?.());
|
|
312
313
|
}
|
|
313
314
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
314
315
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "descriptionContext", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-toast.mjs","sources":["../../../../libs/angular/components/toast/src/lib/toast.config.ts","../../../../libs/angular/components/toast/src/lib/toast.service.ts","../../../../libs/angular/components/toast/src/lib/models/toast-variant.ts","../../../../libs/angular/components/toast/src/lib/components/toast-item/toast-item.component.ts","../../../../libs/angular/components/toast/src/lib/components/toast-item/toast-item.component.html","../../../../libs/angular/components/toast/src/lib/components/toast-container/toast-container.component.ts","../../../../libs/angular/components/toast/src/lib/components/toast-container/toast-container.component.html","../../../../libs/angular/components/toast/src/lib/toast.module.ts","../../../../libs/angular/components/toast/src/odx-angular-components-toast.ts"],"sourcesContent":["import { createConfigTokens } from '@odx/angular/utils';\nimport { ToastOptions } from './models/toast.options';\n\nexport type ToastConfig = ToastOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `ToastConfig`.\n * These include tokens and functions to access and provide the default configuration for toasts.\n *\n * `ToastDefaultConfig` provides the default settings for toasts.\n * `ToastConfig` is a token that can be used to inject toast configuration settings.\n * `injectToastConfig` is a function that retrieves the current toast configuration.\n * `provideToastConfig` is a function used to specify a custom configuration for toasts.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideToastConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(ToastConfig) private readonly config: ToastConfig) {}\n *\n * // Or using the `injectToastConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectToastConfig();\n * }\n * ```\n */\nexport const { ToastDefaultConfig, ToastConfig, injectToastConfig, provideToastConfig } = createConfigTokens('Toast', '@odx/angular/components/toast', {\n dismissable: true,\n duration: 0,\n} as ToastConfig);\n","import { Injectable } from '@angular/core';\nimport { deepmerge } from '@odx/angular/internal';\nimport { getUniqueId, Queue } from '@odx/angular/utils';\nimport { Toast, ToastOptions, ToastRef } from './models';\nimport { injectToastConfig } from './toast.config';\n\n/**\n * ToastService provides a centralized management system for toasts within an application.\n * It handles the creation, updates, and dismissal of toasts based on a FIFO (first-in, first-out) queue.\n * This service integrates custom toast options with default configurations and supports reactive updates through observables.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly queue = new Queue<ToastRef>();\n private readonly defaultOptions = injectToastConfig();\n\n /**\n * Observable stream of active toasts.\n *\n * @emits {ToastRef[]} The current list of active toasts.\n */\n public readonly toasts$ = this.queue.value$;\n\n /**\n * Observable that emits when any update occurs in the toast queue.\n *\n * @emits {ToastRef[]} The updated list of active toasts.\n */\n public readonly onUpdate$ = this.queue.onUpdate$;\n\n /**\n * Observable that emits when a toast is added.\n *\n * @emits {ToastRef} The newly added toast.\n */\n public readonly onToastAdd$ = this.queue.onAdd$;\n\n /**\n * Observable that emits when a toast is updated.\n *\n * @emits {ToastRef} The updated toast.\n */\n public readonly onToastUpdate$ = this.queue.onUpdate$;\n\n /**\n * Observable that emits when a toast is removed.\n *\n * @emits {ToastRef} The removed toast.\n */\n public readonly onToastRemove$ = this.queue.onRemove$;\n\n /**\n * @deprecated Use `toasts$` instead\n */\n public readonly queue$ = this.toasts$;\n /**\n * @deprecated Use `onToastAdd$` instead\n */\n public readonly onAdd$ = this.onToastAdd$;\n /**\n * @deprecated Use `onToastRemove$` instead\n */\n public readonly onRemove$ = this.onToastRemove$;\n\n /**\n * @deprecated Use `create` instead\n */\n public add(item: Toast, options: Partial<ToastOptions> = {}): ToastRef {\n return this.create(item, options);\n }\n\n /**\n * Creates and queues a new toast based on the provided item and options.\n * Merges given options with default configurations.\n *\n * @param {Toast} item The toast item to create.\n * @param {Partial<ToastOptions>} options Optional additional options for the toast.\n * @returns {ToastRef} The reference to the newly created toast.\n */\n public create(item: Toast, options: Partial<ToastOptions> = {}): ToastRef {\n return this.queue.add({\n id: item.id ?? getUniqueId('odx-toast'),\n item,\n options: deepmerge(this.defaultOptions, options) as ToastOptions,\n });\n }\n\n /**\n * @deprecated Use `dismiss` instead\n */\n public remove(refOrId: ToastRef | ToastRef['id']): ToastRef | null {\n return this.dismiss(refOrId);\n }\n\n /**\n * Dismisses a specific toast identified by a reference or ID.\n *\n * @param {ToastRef | ToastRef['id']} refOrId The reference or ID of the toast to dismiss.\n * @returns {ToastRef | null} The reference to the dismissed toast, or null if not found.\n */\n public dismiss(refOrId: ToastRef | ToastRef['id']): ToastRef | null {\n return this.queue.remove(refOrId);\n }\n\n /**\n * @deprecated Use `dismissAll` instead\n */\n public clear(): void {\n return this.dismissAll();\n }\n\n /**\n * Dismisses all toasts currently being displayed.\n */\n public dismissAll(): void {\n this.queue.clear();\n }\n}\n","export type ToastVariant = (typeof ToastVariant)[keyof typeof ToastVariant];\n\nexport const ToastVariant = {\n DEFAULT: 'default',\n WARNING: 'warning',\n DANGER: 'danger',\n SUCCESS: 'success',\n} as const;\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective, GetDynamicViewContext } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { tap, timer } from 'rxjs';\nimport { ToastAction, ToastOptions, ToastVariant } from '../../models';\n\n/**\n * A component that represents a single toast notification. This component is responsible for displaying\n * message content, handling toast actions, and managing the automatic dismissal of the toast based on a duration.\n * It supports dynamic content for descriptions and can show an optional set of actions.\n */\n@CSSComponent('toast-item')\n@Component({\n selector: 'odx-toast',\n templateUrl: './toast-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, IconComponent, ButtonComponent, DynamicViewDirective, ActionGroupComponent],\n host: {\n '[attr.id]': 'id',\n },\n})\nexport class ToastItemComponent implements OnInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement();\n\n /**\n * Determines the icon to display based on the toast's variant.\n * Returns a string representing the icon class.\n *\n * @returns {string} - The icon class name.\n * @default 'info'\n */\n public get icon(): string {\n switch (this.variant) {\n case ToastVariant.WARNING:\n return 'warning';\n case ToastVariant.DANGER:\n return 'error';\n case ToastVariant.SUCCESS:\n return 'check';\n default:\n return 'info';\n }\n }\n\n /**\n * Unique identifier for the toast item, typically provided for accessibility purposes.\n *\n * @required\n * @type {string}\n */\n @Input()\n public id!: string;\n\n /**\n * The main title of the toast, displayed prominently.\n *\n * @required\n * @type {DynamicTextContent}\n */\n @Input()\n public title!: DynamicTextContent;\n\n /**\n * Optional detailed description for the toast. This can be plain text or a dynamic template.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public description?: DynamicContent | null;\n\n /**\n * Context for rendering the dynamic component of the description.\n *\n * @type {GetDynamicViewContext<Type<unknown>> | undefined}\n */\n @Input()\n public descriptionContext?: GetDynamicViewContext<Type<unknown>>;\n\n /**\n * The variant of the toast which influences the icon and styling.\n *\n * @type {ToastVariant | null}\n * @default ToastVariant.DEFAULT\n */\n @CSSModifier()\n @Input()\n public variant?: ToastVariant | null = ToastVariant.DEFAULT;\n\n /**\n * Optional actions related to the toast, such as 'retry' or 'dismiss'.\n *\n * @type {ToastAction[] | undefined}\n */\n @Input()\n public actions?: ToastAction[];\n\n /**\n * Configuration options for the toast, including its duration and dismissal behavior.\n *\n * @required\n * @type {ToastOptions}\n */\n @Input()\n public options!: ToastOptions;\n\n /**\n * Emits an event when the toast is dismissed, either through action or automatically.\n *\n * @emits {void}\n */\n @Output()\n public readonly dismiss = new EventEmitter<void>();\n\n public ngOnInit(): void {\n const { duration } = this.options;\n if (duration > 0) {\n timer(duration)\n .pipe(\n this.takeUntilDestroyed(),\n tap(() => this.onDismiss()),\n )\n .subscribe();\n }\n }\n\n protected onDismiss(): void {\n this.dismiss.next();\n }\n}\n","<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\" />\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\" />\n </p>\n @if (description) {\n <p class=\"odx-toast-item__description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\" />\n </p>\n }\n </div>\n @if (options.dismissable) {\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\"><odx-icon name=\"close\" iconSet=\"core\" /></button>\n }\n</div>\n@if (!!actions?.length) {\n <odx-action-group class=\"odx-toast-item__buttons\">\n @for (action of actions; track $index) {\n <button odxButton (click)=\"action.action()\">\n @if (action.leftIcon) {\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft />\n }\n <ng-template [odxDynamicView]=\"action.label\" />\n @if (action.rightIcon) {\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight />\n }\n </button>\n }\n </odx-action-group>\n}\n","import { group, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewEncapsulation,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { WindowRef } from '@odx/angular';\nimport { collapse, expand, fadeIn, slideInRight } from '@odx/angular/animations';\nimport { ChipComponent } from '@odx/angular/components/chip';\nimport { HeaderComponent } from '@odx/angular/components/header';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, injectElement, px, setAttribute } from '@odx/angular/utils';\nimport { Observable, map } from 'rxjs';\nimport { ToastRef } from '../../models';\nimport { ToastService } from '../../toast.service';\nimport { ToastItemComponent } from '../toast-item/toast-item.component';\n\nconst TOAST_ANIMATION_DELAY = '125ms';\n\n/**\n * Represents a container component for displaying toast notifications. This component manages and arranges toast messages,\n * handling animations for entering and leaving toasts. It ensures that only a limited number of toasts are shown at the same time,\n * based on the `maxItems` input. The container listens for toast events from the `ToastService` to update its list of toasts dynamically.\n *\n * The component uses a group of animations to slide toasts in and out smoothly and also provides an output for when a toast is dismissed.\n * It's designed to integrate with a single instance per application, ensuring no more than one toast container is initialized.\n */\n@CSSComponent('toast-container')\n@Component({\n selector: 'odx-toast-container',\n templateUrl: './toast-container.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, ChipComponent, ToastItemComponent],\n animations: [\n trigger('slide', [\n transition(\n ':enter',\n group([\n useAnimation(expand),\n useAnimation(fadeIn(), { params: { delay: TOAST_ANIMATION_DELAY } }),\n useAnimation(slideInRight, { params: { delay: TOAST_ANIMATION_DELAY } }),\n ]),\n ),\n transition(':leave', group([useAnimation(collapse)])),\n ]),\n ],\n})\nexport class ToastContainerComponent implements AfterViewInit, OnDestroy {\n private static INITIALIZED = false;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly windowRef = inject(WindowRef);\n private readonly renderer = inject(Renderer2);\n private readonly toastService = inject(ToastService);\n\n public readonly element = injectElement();\n public readonly items$: Observable<ToastRef[]> = this.toastService.toasts$.pipe(map((refs) => refs.slice(0, this.maxItems)));\n public readonly hiddenToasts$: Observable<number> = this.toastService.toasts$.pipe(map((refs) => Math.max(0, refs.length - this.maxItems)));\n\n /**\n * Maximum number of toasts that can be displayed at once.\n *\n * @type {number}\n * @default 3\n */\n @Input({ transform: numberAttribute })\n public maxItems = 3;\n\n /**\n * Emits an event when a toast is dismissed.\n *\n * @emits {ToastRef} - The toast reference that was dismissed.\n */\n @Output()\n public readonly dismiss = this.toastService.onToastRemove$;\n\n public ngAfterViewInit(): void {\n setAttribute(this.element.nativeElement, 'popover', 'manual');\n if (ToastContainerComponent.INITIALIZED) {\n throw new Error('Only one toast container per application allowed');\n }\n ToastContainerComponent.INITIALIZED = true;\n const headerElement = this.windowRef.queryByComponent(HeaderComponent);\n if (headerElement) {\n this.renderer.setStyle(this.element.nativeElement, 'top', px(headerElement.offsetHeight));\n }\n this.items$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.updatePopverPosition());\n }\n\n public ngOnDestroy(): void {\n ToastContainerComponent.INITIALIZED = false;\n }\n\n protected onDismiss(itemRef: ToastRef): void {\n this.toastService.dismiss(itemRef);\n }\n\n private updatePopverPosition(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.element.nativeElement as any)?.hidePopover?.();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n deferFn(() => (this.element.nativeElement as any)?.showPopover?.());\n }\n}\n","@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ToastContainerComponent, ToastItemComponent } from './components';\n\nconst modules = [ToastContainerComponent, ToastItemComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class ToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-toast.mjs","sources":["../../../../libs/angular/components/toast/src/lib/toast.config.ts","../../../../libs/angular/components/toast/src/lib/toast.service.ts","../../../../libs/angular/components/toast/src/lib/models/toast-variant.ts","../../../../libs/angular/components/toast/src/lib/components/toast-item/toast-item.component.ts","../../../../libs/angular/components/toast/src/lib/components/toast-item/toast-item.component.html","../../../../libs/angular/components/toast/src/lib/components/toast-container/toast-container.component.ts","../../../../libs/angular/components/toast/src/lib/components/toast-container/toast-container.component.html","../../../../libs/angular/components/toast/src/lib/toast.module.ts","../../../../libs/angular/components/toast/src/odx-angular-components-toast.ts"],"sourcesContent":["import { createConfigTokens } from '@odx/angular/utils';\nimport { ToastOptions } from './models/toast.options';\n\nexport type ToastConfig = ToastOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `ToastConfig`.\n * These include tokens and functions to access and provide the default configuration for toasts.\n *\n * `ToastDefaultConfig` provides the default settings for toasts.\n * `ToastConfig` is a token that can be used to inject toast configuration settings.\n * `injectToastConfig` is a function that retrieves the current toast configuration.\n * `provideToastConfig` is a function used to specify a custom configuration for toasts.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideToastConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(ToastConfig) private readonly config: ToastConfig) {}\n *\n * // Or using the `injectToastConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectToastConfig();\n * }\n * ```\n */\nexport const { ToastDefaultConfig, ToastConfig, injectToastConfig, provideToastConfig } = createConfigTokens('Toast', '@odx/angular/components/toast', {\n dismissable: true,\n duration: 0,\n} as ToastConfig);\n","import { Injectable } from '@angular/core';\nimport { deepmerge } from '@odx/angular/internal';\nimport { getUniqueId, Queue } from '@odx/angular/utils';\nimport { Toast, ToastOptions, ToastRef } from './models';\nimport { injectToastConfig } from './toast.config';\n\n/**\n * ToastService provides a centralized management system for toasts within an application.\n * It handles the creation, updates, and dismissal of toasts based on a FIFO (first-in, first-out) queue.\n * This service integrates custom toast options with default configurations and supports reactive updates through observables.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly queue = new Queue<ToastRef>();\n private readonly defaultOptions = injectToastConfig();\n\n /**\n * Observable stream of active toasts.\n *\n * @emits {ToastRef[]} The current list of active toasts.\n */\n public readonly toasts$ = this.queue.value$;\n\n /**\n * Observable that emits when any update occurs in the toast queue.\n *\n * @emits {ToastRef[]} The updated list of active toasts.\n */\n public readonly onUpdate$ = this.queue.onUpdate$;\n\n /**\n * Observable that emits when a toast is added.\n *\n * @emits {ToastRef} The newly added toast.\n */\n public readonly onToastAdd$ = this.queue.onAdd$;\n\n /**\n * Observable that emits when a toast is updated.\n *\n * @emits {ToastRef} The updated toast.\n */\n public readonly onToastUpdate$ = this.queue.onUpdate$;\n\n /**\n * Observable that emits when a toast is removed.\n *\n * @emits {ToastRef} The removed toast.\n */\n public readonly onToastRemove$ = this.queue.onRemove$;\n\n /**\n * @deprecated Use `toasts$` instead\n */\n public readonly queue$ = this.toasts$;\n /**\n * @deprecated Use `onToastAdd$` instead\n */\n public readonly onAdd$ = this.onToastAdd$;\n /**\n * @deprecated Use `onToastRemove$` instead\n */\n public readonly onRemove$ = this.onToastRemove$;\n\n /**\n * @deprecated Use `create` instead\n */\n public add(item: Toast, options: Partial<ToastOptions> = {}): ToastRef {\n return this.create(item, options);\n }\n\n /**\n * Creates and queues a new toast based on the provided item and options.\n * Merges given options with default configurations.\n *\n * @param {Toast} item The toast item to create.\n * @param {Partial<ToastOptions>} options Optional additional options for the toast.\n * @returns {ToastRef} The reference to the newly created toast.\n */\n public create(item: Toast, options: Partial<ToastOptions> = {}): ToastRef {\n return this.queue.add({\n id: item.id ?? getUniqueId('odx-toast'),\n item,\n options: deepmerge(this.defaultOptions, options) as ToastOptions,\n });\n }\n\n /**\n * @deprecated Use `dismiss` instead\n */\n public remove(refOrId: ToastRef | ToastRef['id']): ToastRef | null {\n return this.dismiss(refOrId);\n }\n\n /**\n * Dismisses a specific toast identified by a reference or ID.\n *\n * @param {ToastRef | ToastRef['id']} refOrId The reference or ID of the toast to dismiss.\n * @returns {ToastRef | null} The reference to the dismissed toast, or null if not found.\n */\n public dismiss(refOrId: ToastRef | ToastRef['id']): ToastRef | null {\n return this.queue.remove(refOrId);\n }\n\n /**\n * @deprecated Use `dismissAll` instead\n */\n public clear(): void {\n return this.dismissAll();\n }\n\n /**\n * Dismisses all toasts currently being displayed.\n */\n public dismissAll(): void {\n this.queue.clear();\n }\n}\n","export type ToastVariant = (typeof ToastVariant)[keyof typeof ToastVariant];\n\nexport const ToastVariant = {\n DEFAULT: 'default',\n WARNING: 'warning',\n DANGER: 'danger',\n SUCCESS: 'success',\n} as const;\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective, GetDynamicViewContext } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { tap, timer } from 'rxjs';\nimport { ToastAction, ToastOptions, ToastVariant } from '../../models';\n\n/**\n * A component that represents a single toast notification. This component is responsible for displaying\n * message content, handling toast actions, and managing the automatic dismissal of the toast based on a duration.\n * It supports dynamic content for descriptions and can show an optional set of actions.\n */\n@CSSComponent('toast-item')\n@Component({\n selector: 'odx-toast',\n templateUrl: './toast-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, IconComponent, ButtonComponent, DynamicViewDirective, ActionGroupComponent],\n host: {\n '[attr.id]': 'id',\n },\n})\nexport class ToastItemComponent implements OnInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement();\n\n /**\n * Determines the icon to display based on the toast's variant.\n * Returns a string representing the icon class.\n *\n * @returns {string} - The icon class name.\n * @default 'info'\n */\n public get icon(): string {\n switch (this.variant) {\n case ToastVariant.WARNING:\n return 'warning';\n case ToastVariant.DANGER:\n return 'error';\n case ToastVariant.SUCCESS:\n return 'check';\n default:\n return 'info';\n }\n }\n\n /**\n * Unique identifier for the toast item, typically provided for accessibility purposes.\n *\n * @required\n * @type {string}\n */\n @Input()\n public id!: string;\n\n /**\n * The main title of the toast, displayed prominently.\n *\n * @required\n * @type {DynamicTextContent}\n */\n @Input()\n public title!: DynamicTextContent;\n\n /**\n * Optional detailed description for the toast. This can be plain text or a dynamic template.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public description?: DynamicContent | null;\n\n /**\n * Context for rendering the dynamic component of the description.\n *\n * @type {GetDynamicViewContext<Type<unknown>> | undefined}\n */\n @Input()\n public descriptionContext?: GetDynamicViewContext<Type<unknown>>;\n\n /**\n * The variant of the toast which influences the icon and styling.\n *\n * @type {ToastVariant | null}\n * @default ToastVariant.DEFAULT\n */\n @CSSModifier()\n @Input()\n public variant?: ToastVariant | null = ToastVariant.DEFAULT;\n\n /**\n * Optional actions related to the toast, such as 'retry' or 'dismiss'.\n *\n * @type {ToastAction[] | undefined}\n */\n @Input()\n public actions?: ToastAction[];\n\n /**\n * Configuration options for the toast, including its duration and dismissal behavior.\n *\n * @required\n * @type {ToastOptions}\n */\n @Input()\n public options!: ToastOptions;\n\n /**\n * Emits an event when the toast is dismissed, either through action or automatically.\n *\n * @emits {void}\n */\n @Output()\n public readonly dismiss = new EventEmitter<void>();\n\n public ngOnInit(): void {\n const { duration } = this.options;\n if (duration > 0) {\n timer(duration)\n .pipe(\n this.takeUntilDestroyed(),\n tap(() => this.onDismiss()),\n )\n .subscribe();\n }\n }\n\n protected onDismiss(): void {\n this.dismiss.next();\n }\n}\n","<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\" />\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\" />\n </p>\n @if (description) {\n <p class=\"odx-toast-item__description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\" />\n </p>\n }\n </div>\n @if (options.dismissable) {\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\"><odx-icon name=\"close\" iconSet=\"core\" /></button>\n }\n</div>\n@if (!!actions?.length) {\n <odx-action-group class=\"odx-toast-item__buttons\">\n @for (action of actions; track $index) {\n <button odxButton (click)=\"action.action()\">\n @if (action.leftIcon) {\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft />\n }\n <ng-template [odxDynamicView]=\"action.label\" />\n @if (action.rightIcon) {\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight />\n }\n </button>\n }\n </odx-action-group>\n}\n","import { group, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewEncapsulation,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { WindowRef } from '@odx/angular';\nimport { collapse, expand, fadeIn, slideInRight } from '@odx/angular/animations';\nimport { ChipComponent } from '@odx/angular/components/chip';\nimport { HeaderComponent } from '@odx/angular/components/header';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, injectElement, px, setAttribute } from '@odx/angular/utils';\nimport { Observable, map } from 'rxjs';\nimport { ToastRef } from '../../models';\nimport { ToastService } from '../../toast.service';\nimport { ToastItemComponent } from '../toast-item/toast-item.component';\n\nconst TOAST_ANIMATION_DELAY = '125ms';\n\n/**\n * Represents a container component for displaying toast notifications. This component manages and arranges toast messages,\n * handling animations for entering and leaving toasts. It ensures that only a limited number of toasts are shown at the same time,\n * based on the `maxItems` input. The container listens for toast events from the `ToastService` to update its list of toasts dynamically.\n *\n * The component uses a group of animations to slide toasts in and out smoothly and also provides an output for when a toast is dismissed.\n * It's designed to integrate with a single instance per application, ensuring no more than one toast container is initialized.\n */\n@CSSComponent('toast-container')\n@Component({\n selector: 'odx-toast-container',\n templateUrl: './toast-container.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, ChipComponent, ToastItemComponent],\n animations: [\n trigger('slide', [\n transition(\n ':enter',\n group([\n useAnimation(expand),\n useAnimation(fadeIn(), { params: { delay: TOAST_ANIMATION_DELAY } }),\n useAnimation(slideInRight, { params: { delay: TOAST_ANIMATION_DELAY } }),\n ]),\n ),\n transition(':leave', group([useAnimation(collapse)])),\n ]),\n ],\n})\nexport class ToastContainerComponent implements AfterViewInit, OnDestroy {\n private static INITIALIZED = false;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly windowRef = inject(WindowRef);\n private readonly renderer = inject(Renderer2);\n private readonly toastService = inject(ToastService);\n\n public readonly element = injectElement();\n public readonly items$: Observable<ToastRef[]> = this.toastService.toasts$.pipe(map((refs) => refs.slice(0, this.maxItems)));\n public readonly hiddenToasts$: Observable<number> = this.toastService.toasts$.pipe(map((refs) => Math.max(0, refs.length - this.maxItems)));\n\n /**\n * Maximum number of toasts that can be displayed at once.\n *\n * @type {number}\n * @default 3\n */\n @Input({ transform: numberAttribute })\n public maxItems = 3;\n\n /**\n * Emits an event when a toast is dismissed.\n *\n * @emits {ToastRef} - The toast reference that was dismissed.\n */\n @Output()\n public readonly dismiss = this.toastService.onToastRemove$;\n\n public ngAfterViewInit(): void {\n setAttribute(this.element.nativeElement, 'popover', 'manual');\n if (ToastContainerComponent.INITIALIZED) {\n throw new Error('Only one toast container per application allowed');\n }\n ToastContainerComponent.INITIALIZED = true;\n const headerElement = this.windowRef.queryByComponent(HeaderComponent);\n if (headerElement) {\n this.renderer.setStyle(this.element.nativeElement, 'top', px(headerElement.offsetHeight));\n }\n this.items$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.updatePopverPosition());\n }\n\n public ngOnDestroy(): void {\n ToastContainerComponent.INITIALIZED = false;\n }\n\n protected onDismiss(itemRef: ToastRef): void {\n this.toastService.dismiss(itemRef);\n }\n\n private updatePopverPosition(): void {\n const el = this.element?.nativeElement;\n if (!el?.isConnected) return;\n\n el.hidePopover?.();\n deferFn(() => el.showPopover?.());\n }\n}\n","@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ToastContainerComponent, ToastItemComponent } from './components';\n\nconst modules = [ToastContainerComponent, ToastItemComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class ToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odx/angular",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.8.0",
|
|
4
4
|
"author": "Drägerwerk AG & Co.KGaA",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -238,18 +238,18 @@
|
|
|
238
238
|
"esm": "./esm2022/components/chip/odx-angular-components-chip.mjs",
|
|
239
239
|
"default": "./fesm2022/odx-angular-components-chip.mjs"
|
|
240
240
|
},
|
|
241
|
-
"./components/circular-progress": {
|
|
242
|
-
"types": "./components/circular-progress/index.d.ts",
|
|
243
|
-
"esm2022": "./esm2022/components/circular-progress/odx-angular-components-circular-progress.mjs",
|
|
244
|
-
"esm": "./esm2022/components/circular-progress/odx-angular-components-circular-progress.mjs",
|
|
245
|
-
"default": "./fesm2022/odx-angular-components-circular-progress.mjs"
|
|
246
|
-
},
|
|
247
241
|
"./components/content-box": {
|
|
248
242
|
"types": "./components/content-box/index.d.ts",
|
|
249
243
|
"esm2022": "./esm2022/components/content-box/odx-angular-components-content-box.mjs",
|
|
250
244
|
"esm": "./esm2022/components/content-box/odx-angular-components-content-box.mjs",
|
|
251
245
|
"default": "./fesm2022/odx-angular-components-content-box.mjs"
|
|
252
246
|
},
|
|
247
|
+
"./components/circular-progress": {
|
|
248
|
+
"types": "./components/circular-progress/index.d.ts",
|
|
249
|
+
"esm2022": "./esm2022/components/circular-progress/odx-angular-components-circular-progress.mjs",
|
|
250
|
+
"esm": "./esm2022/components/circular-progress/odx-angular-components-circular-progress.mjs",
|
|
251
|
+
"default": "./fesm2022/odx-angular-components-circular-progress.mjs"
|
|
252
|
+
},
|
|
253
253
|
"./components/datepicker": {
|
|
254
254
|
"types": "./components/datepicker/index.d.ts",
|
|
255
255
|
"esm2022": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
|