@fundamental-ngx/core 0.33.2-rc.0 → 0.33.2-rc.4
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/base/dialog-ref-base.class.d.ts +1 -1
- package/dialog/esm2020/base/dialog-ref-base.class.mjs +2 -2
- package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
- package/dialog/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
- package/dialog/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/dialog/base/dialog-ref-base.class.mjs +2 -2
- package/esm2020/message-toast/message-toast-utils/message-toast-ref.mjs +1 -1
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +1 -1
- package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +1 -1
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/esm2020/message-toast-utils/message-toast-ref.mjs +1 -1
- package/message-toast/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/message-toast/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/message-toast/message-toast-utils/message-toast-ref.d.ts +1 -2
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/package.json +2 -2
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/esm2020/resizable-card-layout/resizable-card-layout.component.mjs +1 -1
- package/resizable-card-layout/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/resizable-card-layout/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/esm2020/directives/overflow-list/overflow-list.directive.mjs +1 -1
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/package.json +2 -2
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-dialog.mjs","sources":["../../../../libs/core/src/lib/dialog/utils/dialog.animations.ts","../../../../libs/core/src/lib/dialog/base/dialog-header-base.class.ts","../../../../libs/core/src/lib/dialog/base/dialog-config-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-config.class.ts","../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.html","../../../../libs/core/src/lib/dialog/base/dialog-ref-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-ref.class.ts","../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.ts","../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.html","../../../../libs/core/src/lib/dialog/base/dialog-footer-base.class.ts","../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../../libs/core/src/lib/dialog/utils/dialog-width-to-size.ts","../../../../libs/core/src/lib/dialog/base/dialog-base.class.ts","../../../../libs/core/src/lib/dialog/directives/dialog-title.directive.ts","../../../../libs/core/src/lib/dialog/dialog.component.ts","../../../../libs/core/src/lib/dialog/dialog.component.html","../../../../libs/core/src/lib/dialog/dialog-close-button/dialog-close-button.component.ts","../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.ts","../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.html","../../../../libs/core/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../../libs/core/src/lib/dialog/base/dialog-base.service.ts","../../../../libs/core/src/lib/dialog/dialog-service/dialog.service.ts","../../../../libs/core/src/lib/dialog/dialog-footer-button/dialog-footer-button.component.ts","../../../../libs/core/src/lib/dialog/directives/dialog-decisive-button.directive.ts","../../../../libs/core/src/lib/dialog/dialog.module.ts","../../../../libs/core/src/lib/dialog/utils/dialog-position.class.ts","../../../../libs/core/src/lib/dialog/base/dialog-content-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-default-content.class.ts","../../../../libs/core/src/lib/dialog/fundamental-ngx-core-dialog.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const dialogFadeNgIf: AnimationTriggerMetadata = trigger('dialog-fade', [\n transition(':enter', [style({ opacity: 0 }), animate('150ms ease-in-out', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('75ms ease-in-out', style({ opacity: 0 }))])\n]);\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n QueryList,\n TemplateRef\n} from '@angular/core';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Directive()\nexport abstract class DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n headerTemplate: TemplateRef<any>;\n\n /** @hidden */\n subHeaderTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChild(TitleComponent)\n set defaultTitleSize(title: TitleComponent) {\n if (title && !title.headerSize) {\n title.headerSize = 5;\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n this.customTemplates.forEach((template) => {\n switch (template.getName()) {\n case 'header':\n this.headerTemplate = template.templateRef;\n break;\n case 'subheader':\n this.subHeaderTemplate = template.templateRef;\n break;\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\nimport { DialogPosition } from '../utils/dialog-position.class';\n\nexport class DialogConfigBase<T> implements DynamicComponentConfig {\n /** Id for the dialog component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the dialog. */\n width?: string;\n\n /** Height of the dialog. */\n height?: string;\n\n /** Minimum width of the dialog. */\n minWidth?: string;\n\n /** Minimum height of the dialog. */\n minHeight?: string;\n\n /** Maximum width of the dialog. */\n maxWidth?: string;\n\n /** Maximum height of the dialog. */\n maxHeight?: string;\n\n /** Position of the dialog. */\n position?: DialogPosition;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean = false;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: string = null;\n\n /** Id of the element that labels the dialog. */\n ariaLabelledBy?: string = null;\n\n /** Id of the element that describes the dialog. */\n ariaDescribedBy?: string = null;\n\n /** Whether the dialog should have a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether clicking on the backdrop should close the dialog. Only works if hasBackdrop is true. */\n backdropClickCloseable?: boolean = false;\n\n /** Global classes to apply to the backdrop. */\n backdropClass?: string;\n\n /** Classes to apply to the `fd-dialog-container` */\n containerClass?: string;\n\n /** Global classes to apply to the dialog panel. */\n dialogPanelClass?: string;\n\n /** Whether the escape key should close the dialog. */\n escKeyCloseable?: boolean = true;\n\n /** Whether the dialog should be focus trapped. */\n focusTrapped?: boolean = true;\n\n /** The container that the dialog is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the DialogRef. */\n data?: T;\n\n /** Whether the dialog should be displayed in mobile mode. */\n mobile?: boolean;\n\n /** Whether the dialog in mobile mode should have outer space. */\n mobileOuterSpacing?: boolean;\n\n /** Whether the dialog should have vertical padding. */\n verticalPadding?: boolean = true;\n\n /** Workaround for IE11, as `flex-grow: 1` on dialog body won't work when 'min-height' for dialog set\n * There is another way to get dialog of wanted height by setting `min-height` for dialog body.\n */\n bodyMinHeight?: string;\n\n /** Whether the dialog should have responsive horizontal padding changing with Dialogs window width.\n * max-width: 599px - .fd-dialog__content--s\n * min-width: 600px and max-width: 1023px - .fd-dialog__content--m\n * min-width: 1024px and max-width: 1439px - .fd-dialog__content--l\n * min-width: 1440px - .fd-dialog__content--xl\n * */\n responsivePadding?: boolean = false;\n\n /** Whether to close the dialog on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * Configuration for opening a dialog with the DialogService.\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { DialogConfigBase } from '../base/dialog-config-base.class';\n\nexport const DIALOG_DEFAULT_CONFIG = new InjectionToken<DialogConfig>('Default DialogConfig');\n\n@Injectable()\nexport class DialogConfig<T = any> extends DialogConfigBase<T> {\n /** Whether the dialog should be displayed in full screen mode. */\n fullScreen?: boolean;\n\n /** Whether the dialog should be draggable. */\n draggable?: boolean;\n\n /** Whether the dialog should be resizable. */\n resizable?: boolean;\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogHeaderBase } from '../base/dialog-header-base.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog header.\n *\n * ```html\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1>\n * <button fd-dialog-close-button></button>\n * </fd-dialog-header>\n * ```\n */\n@Component({\n selector: 'fd-dialog-header',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent extends DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig, changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n}\n","<div\n fd-bar\n class=\"fd-dialog__header\"\n [cozy]=\"dialogConfig.mobile\"\n [barDesign]=\"subHeaderTemplate ? 'header-with-subheader' : 'header'\"\n>\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-left>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-content select=\"[fd-title]\"></ng-content>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <ng-content select=\"[fd-dialog-close-button]\"></ng-content>\n </fd-bar-element>\n </div>\n </ng-template>\n</div>\n\n<div fd-bar *ngIf=\"subHeaderTemplate\" class=\"fd-dialog__subheader\" barDesign=\"subheader\" [cozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"subHeaderTemplate\"></ng-container>\n</div>\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRefBase<T, P = any> {\n /** @hidden */\n protected readonly _afterClosed = new Subject<P>();\n\n /** @hidden */\n protected readonly _afterLoaded = new Subject<any>();\n\n /**\n * Observable that is triggered when the dialog is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n public afterClosed: Observable<P> = this._afterClosed.asObservable();\n\n /** Observable that is triggered when the modal view is initialised. */\n public afterLoaded: Observable<boolean> = this._afterLoaded.asObservable();\n\n /** Data passed from the calling component to the content.*/\n public data: T;\n\n /**\n * Closes the dialog and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the dialog and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: any): void {\n this._afterClosed.error(reason);\n }\n\n /** Function that is called after the view of modal is initialised. */\n loaded(): void {\n this._afterLoaded.next();\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DialogRefBase } from '../base/dialog-ref-base.class';\n\n/**\n * Reference to a dialog component\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\n\n@Injectable()\nexport class DialogRef<T = any, P = any> extends DialogRefBase<T, P> {\n private readonly _onHide = new BehaviorSubject<boolean>(false);\n private readonly _onLoading = new BehaviorSubject<boolean>(false);\n\n /** Observable that is triggered whenever the dialog should be visually hidden or visible.*/\n public onHide: Observable<boolean> = this._onHide.asObservable();\n\n /** Observable that is triggered whenever the dialog should be displayed in loading state.*/\n public onLoading: Observable<boolean> = this._onLoading.asObservable();\n\n /** @hidden */\n constructor() {\n super();\n }\n\n /**\n * Visually hides the dialog.\n * @param isHidden Value used to determine if dialog window should be hidden or visible.\n */\n hide(isHidden: boolean): void {\n this._onHide.next(isHidden);\n }\n\n /**\n * Displays the dialog in loading state.\n * @param isLoading Value used to determine if dialog window should be displayed in loading state.\n */\n loading(isLoading: boolean): void {\n this._onLoading.next(isLoading);\n }\n}\n","import { Component, ElementRef, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogRef } from '../utils/dialog-ref.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog body.\n *\n * ```html\n * <fd-dialog-body>\n * <!-- Content -->\n * </fd-dialog-body>\n * ```\n */\n@Component({\n selector: 'fd-dialog-body',\n templateUrl: 'dialog-body.component.html',\n host: {\n '[class.fd-dialog__body]': 'true',\n '[class.fd-dialog__body--no-vertical-padding]': '!dialogConfig.verticalPadding',\n '[style.min-height]': 'dialogConfig.bodyMinHeight'\n }\n})\nexport class DialogBodyComponent {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n @Optional() public dialogConfig: DialogConfig,\n @Optional() public dialogRef: DialogRef\n ) {}\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elRef;\n }\n}\n","<ng-content></ng-content>\n<div class=\"fd-dialog__loader\" *ngIf=\"dialogRef.onLoading | async\">\n <fd-busy-indicator [loading]=\"true\" size=\"l\"></fd-busy-indicator>\n</div>\n","import { AfterContentInit, ContentChildren, Directive, QueryList, TemplateRef } from '@angular/core';\nimport { startWith } from 'rxjs/operators';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Directive()\nexport abstract class DialogFooterBase implements AfterContentInit {\n /** @hidden */\n footerTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n @ContentChildren(ButtonBarComponent)\n buttons: QueryList<ButtonBarComponent>;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n const footerTemplate = this.customTemplates.find((template) => template.getName() === 'footer');\n this.footerTemplate = footerTemplate ? footerTemplate.templateRef : undefined;\n }\n\n /** @hidden */\n protected _listenForButtonChanges(className: string): void {\n const addClassToButton = (button: ButtonComponent): void => {\n if (button && !button.class.includes(className)) {\n button.class = button.class + className;\n button.buildComponentCssClass();\n }\n };\n\n this.buttons.changes.pipe(startWith(1)).subscribe(() =>\n this.buttons.forEach((button) => {\n addClassToButton(button._buttonComponent);\n })\n );\n }\n}\n","import { AfterContentInit, AfterViewInit, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogFooterBase } from '../base/dialog-footer-base.class';\n\nexport const DialogButtonClass = 'fd-dialog__decisive-button';\n\n/**\n * Building block of the dialog used to create dialog button.\n *\n * ```html\n * <fd-dialog-footer><!--Content--></fd-dialog-footer>\n *\n * Complex footer:\n * <fd-dialog-footer>\n * <ng-template fdTemplate=\"footer\"><!--Content--></ng-template>\n * </fd-dialog-footer>\n * ```\n * */\n@Component({\n selector: 'fd-dialog-footer',\n templateUrl: './dialog-footer.component.html'\n})\nexport class DialogFooterComponent extends DialogFooterBase implements AfterContentInit, AfterViewInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {\n super();\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForButtonChanges(DialogButtonClass);\n }\n}\n","<footer fd-bar class=\"fd-dialog__footer\" barDesign=\"footer\" [cozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"footerTemplate ? footerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-right>\n <ng-content></ng-content>\n </div>\n </ng-template>\n</footer>\n","/** @hidden Describes available dialog padding sizes */\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/** @hidden Returns dialog size based on width\n * @param width - dialog window width\n **/\nexport function dialogWidthToSize(width: number): DialogSize {\n if (width < 599) {\n return 'sm';\n } else if (width < 1023) {\n return 'md';\n } else if (width < 1439) {\n return 'lg';\n }\n return 'xl';\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nimport { KeyUtil, RtlService, FocusTrapService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\nimport { DialogSize, dialogWidthToSize } from '../utils/dialog-width-to-size';\n\n@Directive()\nexport abstract class DialogBase implements OnInit, AfterViewInit, OnDestroy {\n /**\n * @hidden\n */\n @HostBinding('attr.dir')\n _dir: string;\n\n /** @hidden Reference to dialog window element*/\n abstract dialogWindow: ElementRef;\n\n /** @hidden Dialog padding sizes */\n dialogPaddingSize: DialogSize;\n\n /** @hidden */\n protected _focusTrapId: string;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n abstract get _ref(): DialogRefBase<any>;\n\n /** @hidden */\n abstract get _config(): DialogConfigBase<any>;\n\n /** @hidden Listen and close dialog on Escape key */\n @HostListener('keyup', ['$event'])\n closeDialogEsc(event: KeyboardEvent): void {\n if (this._config.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE)) {\n this._ref.dismiss('escape');\n }\n }\n\n /** @hidden Listen and close dialog on Backdrop click */\n @HostListener('mousedown', ['$event.target'])\n closeDialog(target: ElementRef): void {\n if (this._config.backdropClickCloseable && target === this._elementRef.nativeElement) {\n this._ref.dismiss('backdrop');\n }\n }\n\n /** @hidden */\n constructor(\n protected _router: Router,\n protected _elementRef: ElementRef,\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _rtlService: RtlService,\n protected _focusTrapService: FocusTrapService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._subscriptions.add(\n this._rtlService?.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._trapFocus();\n this._setPosition();\n this._setWidthHeight();\n this._listenOnWindowResize();\n this.adjustResponsivePadding();\n this._ref.loaded();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._deactivateFocusTrap();\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden Determine dialog padding size based on dialogs window width */\n adjustResponsivePadding(): void {\n if (this._config.responsivePadding) {\n const dialogWidth = this.dialogWindow.nativeElement.getBoundingClientRect().width;\n this.dialogPaddingSize = dialogWidthToSize(dialogWidth);\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router) {\n this._subscriptions.add(\n this._router.events\n .pipe(filter((event) => event instanceof NavigationStart && this._config.closeOnNavigation))\n .subscribe(() => this._ref.dismiss())\n );\n }\n }\n\n /** @hidden Trap focus inside dialog window */\n private _trapFocus(): void {\n if (this._config.focusTrapped) {\n try {\n this._focusTrapId = this._focusTrapService.createFocusTrap(this.dialogWindow.nativeElement, {\n clickOutsideDeactivates: this._config.backdropClickCloseable && this._config.hasBackdrop,\n escapeDeactivates: false,\n allowOutsideClick: () => true\n });\n } catch (e) {}\n }\n }\n\n /** @hidden */\n private _deactivateFocusTrap(): void {\n this._focusTrapService.deactivateFocusTrap(this._focusTrapId);\n }\n\n /** @hidden Set dialog window position */\n private _setPosition(): void {\n if (this._config.position) {\n this.dialogWindow.nativeElement.style.top = this._config.position.top;\n this.dialogWindow.nativeElement.style.bottom = this._config.position.bottom;\n this.dialogWindow.nativeElement.style.left = this._config.position.left;\n this.dialogWindow.nativeElement.style.right = this._config.position.right;\n } else {\n this.dialogWindow.nativeElement.style.position = 'relative';\n }\n }\n\n /** @hidden Set dialog window width and height */\n private _setWidthHeight(): void {\n this.dialogWindow.nativeElement.style.width = this._config.width;\n this.dialogWindow.nativeElement.style.height = this._config.height;\n this.dialogWindow.nativeElement.style.minWidth = this._config.minWidth;\n this.dialogWindow.nativeElement.style.minHeight = this._config.minHeight;\n this.dialogWindow.nativeElement.style.maxWidth = this._config.maxWidth;\n this.dialogWindow.nativeElement.style.maxHeight = this._config.maxHeight;\n }\n\n /** @hidden Listen on window resize and adjust padding */\n private _listenOnWindowResize(): void {\n if (this._config.responsivePadding) {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this.adjustResponsivePadding())\n );\n }\n }\n}\n","import { AfterViewInit, Directive, Input, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\n\nlet titleUniqueId = 1;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-title]',\n host: {\n '[attr.id]': 'id'\n }\n})\nexport class DialogTitleDirective implements AfterViewInit {\n /** Title ID attribute, generated automatically if not provided */\n @Input()\n id = `fd-dialog-title-` + titleUniqueId++;\n\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.dialogConfig && !this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.id;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { applyCssClass, CssClassBuilder, FocusTrapService, RtlService } from '@fundamental-ngx/core/utils';\n\nimport { dialogFadeNgIf } from './utils/dialog.animations';\nimport { DialogConfig } from './utils/dialog-config.class';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogRef } from './utils/dialog-ref.class';\nimport { DialogBase } from './base/dialog-base.class';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\n/**\n * Dialog component.\n *\n * ```html\n * <fd-dialog>\n * <fd-dialog-header></fd-dialog-header>\n * <fd-dialog-body></fd-dialog-body>\n * <fd-dialog-footer></fd-dialog-footer>\n * </fd-dialog>\n * ```\n */\n@Component({\n selector: 'fd-dialog',\n styleUrls: ['dialog.component.scss'],\n templateUrl: './dialog.component.html',\n host: {\n tabindex: '-1',\n '[@dialog-fade]': ''\n },\n animations: [dialogFadeNgIf],\n encapsulation: ViewEncapsulation.None\n})\nexport class DialogComponent\n extends DialogBase\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n }\n\n /** DialogRef - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogRef')\n set embeddedDialogRef(value: DialogRef) {\n this._dialogRef = value;\n }\n\n /** DialogConfig - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogConfig')\n set embeddedDialogConfig(value: DialogConfig) {\n this.dialogConfig = value;\n }\n\n /** @hidden */\n @ViewChild('dialogWindow')\n dialogWindow: ElementRef;\n\n /** @hidden If dialog sub-components didn't receive DialogConfig from Injector, DialogConfig is passed from parent.\n * This is necessary when dialog has been passed as TemplateRef and created as EmbeddedView.\n * In such case parent injector of DialogComponent is the component that DECLARED the TemplateRef.\n **/\n @ContentChild(DialogHeaderComponent)\n set dialogHeaderConfig(component: DialogHeaderComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogBodyComponent)\n set dialogBodyConfig(component: DialogBodyComponent) {\n if (component) {\n component.dialogRef = this._dialogRef;\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogFooterComponent)\n set dialogFooterConfig(component: DialogFooterComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogTitleDirective)\n set dialogTitle(component: DialogTitleDirective) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden Whenever dialog should be visible */\n showDialogWindow: boolean;\n\n /** @hidden Whenever dialog is dragged */\n isDragged: boolean;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n private _onHidden: Subscription;\n\n /** @hidden */\n constructor(\n @Optional() public dialogConfig: DialogConfig,\n @Optional() private _dialogRef: DialogRef,\n @Optional() router: Router,\n @Optional() rtlService: RtlService,\n focusTrapService: FocusTrapService,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef\n ) {\n super(router, elementRef, changeDetectorRef, rtlService, focusTrapService);\n }\n\n /** @hidden */\n get _config(): DialogConfig {\n return this.dialogConfig;\n }\n\n /** @hidden */\n get _ref(): DialogRef {\n return this._dialogRef;\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._listenOnHidden();\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._onHidden.unsubscribe();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.dialogConfig.hasBackdrop ? 'fd-dialog' : 'fd-dialog--no-backdrop',\n this.dialogConfig.container !== 'body' ? 'fd-dialog--targeted' : '',\n this.showDialogWindow ? 'fd-dialog--active' : '',\n this._class,\n this.dialogConfig.backdropClass ? this.dialogConfig.backdropClass : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Listen on Dialog visibility */\n private _listenOnHidden(): void {\n this._onHidden = this._dialogRef.onHide.subscribe((isHidden) => {\n this.showDialogWindow = !isHidden;\n this.buildComponentCssClass();\n });\n }\n}\n","<div\n #dialogWindow\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n fdResize\n cdkTrapFocus\n cdkDrag\n cdkDragBoundary=\".fd-dialog\"\n [fdResizeBoundary]=\"elementRef()?.nativeElement\"\n class=\"fd-dialog__content\"\n [class]=\"dialogConfig.dialogPanelClass\"\n [class.cdk-drag]=\"dialogConfig.draggable\"\n [class.fd-dialog__content--s]=\"dialogPaddingSize === 'sm'\"\n [class.fd-dialog__content--m]=\"dialogPaddingSize === 'md'\"\n [class.fd-dialog__content--l]=\"dialogPaddingSize === 'lg'\"\n [class.fd-dialog__content--xl]=\"dialogPaddingSize === 'xl'\"\n [class.fd-dialog__content--mobile]=\"dialogConfig.mobile\"\n [class.fd-dialog__content--full-screen]=\"dialogConfig.fullScreen\"\n [class.fd-dialog__content--no-mobile-stretch]=\"dialogConfig.mobileOuterSpacing\"\n [class.fd-dialog__content--draggable-grab]=\"dialogConfig.draggable && !isDragged\"\n [class.fd-dialog__content--draggable-grabbing]=\"dialogConfig.draggable && isDragged\"\n [class.fd-dialog__content--with-header]=\"headerWrapper.children.length\"\n [cdkDragDisabled]=\"!dialogConfig.draggable\"\n [fdResizeDisabled]=\"!dialogConfig.resizable\"\n [@dialog-fade]\n [attr.id]=\"dialogConfig.id\"\n [attr.aria-label]=\"dialogConfig.ariaLabel\"\n [attr.aria-labelledby]=\"dialogConfig.ariaLabelledBy\"\n [attr.aria-describedby]=\"dialogConfig.ariaDescribedBy\"\n [attr.aria-modal]=\"dialogConfig.ariaModal\"\n (cdkDragStarted)=\"isDragged = true\"\n (cdkDragEnded)=\"isDragged = false\"\n (onResizeEnd)=\"adjustResponsivePadding()\"\n>\n <span fdResizeHandle *ngIf=\"dialogConfig.resizable\" class=\"fd-dialog__resize-handle\"></span>\n\n <div #headerWrapper cdkDragHandle [cdkDragHandleDisabled]=\"!dialogConfig.draggable\">\n <ng-content select=\"fd-dialog-header\"></ng-content>\n </div>\n\n <ng-content select=\"fd-dialog-body\"></ng-content>\n\n <ng-content select=\"fd-dialog-footer\"></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * Directive that applies fundamental dialog styling to a dialog close button.\n *\n * ```html\n * <button fd-dialog-close-button></button>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-dialog-close-button]',\n host: {\n '[attr.aria-label]': '\"close\"',\n '[class.fd-button]': 'true',\n '[class.fd-button--compact]': '!mobile',\n '[class.fd-button--transparent]': 'true',\n '[attr.title]': 'title'\n },\n template: `<fd-icon glyph=\"decline\"></fd-icon><ng-content></ng-content>`\n})\nexport class DialogCloseButtonComponent {\n /** Displays dialog close button in mobile mode */\n @Input()\n mobile = false;\n\n /** add title dynamically to add a tooltip */\n @Input()\n title: string;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\n/** Dialog component used to create the dialog in object based approach */\n@Component({\n selector: 'fd-dialog-default',\n templateUrl: './dialog-default.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogDefaultComponent implements AfterViewInit {\n /** @hidden */\n _defaultDialogContent: DialogDefaultContent;\n\n /** @hidden */\n _defaultDialogConfiguration: DialogConfig;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden\n * TODO: Inspect why DialogDefaultComponents needs change detection re-run to render adjusted content (dialog header title)\n * */\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n\n /** Whether there is a approve button, or cancel button text */\n _showFooter(): boolean {\n return (\n this._defaultDialogContent &&\n !!(this._defaultDialogContent.cancelButton || this._defaultDialogContent.approveButton)\n );\n }\n\n /** @hidden */\n _closeButtonClicked(): void {\n this._defaultDialogContent.closeButtonCallback();\n }\n\n /** @hidden */\n _approveButtonClicked(): void {\n this._defaultDialogContent.approveButtonCallback();\n }\n\n /** @hidden */\n _cancelButtonClicked(): void {\n this._defaultDialogContent.cancelButtonCallback();\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.subHeader\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent?.approveButton\"\n [compact]=\"!_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton\"\n [compact]=\"!_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { applyCssClass, CssClassBuilder, DynamicComponentContainer } from '@fundamental-ngx/core/utils';\n\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultComponent } from '../dialog-default/dialog-default.component';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\nimport { DialogContentType } from '../dialog-service/dialog.service';\n\n/** Dialog container where the dialog content is embedded. */\n@Component({\n selector: 'fd-dialog-container',\n template: '<ng-container #contentContainer></ng-container>',\n styleUrls: ['./dialog-container.component.scss']\n})\nexport class DialogContainerComponent\n extends DynamicComponentContainer<DialogContentType>\n implements AfterViewInit, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @ViewChild('contentContainer', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n constructor(\n public dialogConfig: DialogConfig,\n private _dialogRef: DialogRef,\n elementRef: ElementRef,\n componentFactoryResolver: ComponentFactoryResolver,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, componentFactoryResolver);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._loadContent();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [this.dialogConfig.containerClass ? this.dialogConfig.containerClass : '', this._class];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Load received content */\n protected _loadContent(): void {\n if (this.childContent instanceof Type) {\n this._createFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._createFromTemplate(this.childContent, this._templateContext());\n } else {\n this._createFromDefaultDialog(this.childContent);\n }\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden Returns context for embedded template*/\n private _templateContext(): { $implicit: DialogRef; dialogConfig: DialogConfig } {\n return { $implicit: this._dialogRef, dialogConfig: this.dialogConfig };\n }\n\n /** @hidden Load Dialog component from passed object */\n private _createFromDefaultDialog(config: DialogDefaultContent): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DialogDefaultComponent);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n this._componentRef.instance._defaultDialogContent = config;\n this._componentRef.instance._defaultDialogConfiguration = this.dialogConfig;\n }\n}\n","import { ComponentRef } from '@angular/core';\n\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\n\n/** Service used to dynamically generate a dialog. */\nexport abstract class DialogBaseService<T> {\n /** @hidden Collection of existing dialog references */\n protected _dialogs: ComponentRef<T>[] = [];\n\n /** @hidden */\n constructor(protected _dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Status of the dialog service.\n * Returns true if there are open dialogs, false otherwise.\n */\n hasOpenDialogs(): boolean {\n return this._dialogs && this._dialogs.length > 0;\n }\n\n /** Dismisses all currently open dialogs. */\n dismissAll(): void {\n this._dialogs.forEach((item) => this._destroyDialog(item));\n }\n\n abstract open<D>(content: unknown, config: DialogConfigBase<D>): DialogRefBase<D>;\n\n /** @hidden Extends configuration using default values*/\n protected _applyDefaultConfig(config: DialogConfig, defaultConfig: DialogConfig): DialogConfig {\n return { ...defaultConfig, ...config };\n }\n\n /** @hidden Destroy existing dialog */\n protected _destroyDialog(dialog: ComponentRef<T>): void {\n const index = this._dialogs.indexOf(dialog);\n\n if (index === -1) {\n return;\n }\n\n this._dynamicComponentService.destroyComponent(dialog);\n\n this._dialogs[index] = null;\n this._dialogs = this._dialogs.filter((item) => item);\n }\n}\n","import { Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DialogContainerComponent } from '../dialog-container/dialog-container.component';\nimport { DIALOG_DEFAULT_CONFIG, DialogConfig } from '../utils/dialog-config.class';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/core/utils';\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogBaseService } from '../base/dialog-base.service';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\nexport type DialogContentType = TemplateRef<any> | Type<any> | DialogDefaultContent;\n\n/** Service used to create a dialog. */\n@Injectable()\nexport class DialogService extends DialogBaseService<DialogContainerComponent> {\n /** @hidden */\n constructor(\n @Inject(DynamicComponentService) dynamicComponentService: DynamicComponentService,\n @Optional() @Inject(DIALOG_DEFAULT_CONFIG) private _defaultConfig: DialogConfig,\n @Optional() private _rtlService: RtlService\n ) {\n super(dynamicComponentService);\n }\n\n /**\n * Opens a dialog component with provided content.\n * @param content Content of the dialog component.\n * @param dialogConfig Configuration of the dialog component.\n */\n public open<T = any>(content: DialogContentType, dialogConfig?: DialogConfig<T>): DialogRef<T> {\n const dialogRef = new DialogRef();\n\n dialogConfig = this._applyDefaultConfig(dialogConfig, this._defaultConfig || new DialogConfig());\n dialogRef.data = dialogConfig.data;\n\n const injector = Injector.create({\n providers: [\n { provide: DialogConfig, useValue: dialogConfig },\n { provide: DialogRef, useValue: dialogRef },\n { provide: RtlService, useValue: this._rtlService },\n { provide: DialogService, useValue: this }\n ]\n });\n\n const component = this._dynamicComponentService.createDynamicComponent<DialogContainerComponent>(\n content,\n DialogContainerComponent,\n dialogConfig,\n { injector }\n );\n\n this._dialogs.push(component);\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyDialog(component);\n refSub.unsubscribe();\n };\n\n const refSub = dialogRef.afterClosed.subscribe(defaultBehaviourOnClose, defaultBehaviourOnClose);\n\n return dialogRef;\n }\n}\n","import { Component } from '@angular/core';\nimport { BarElementDirective } from '@fundamental-ngx/core/bar';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Component({\n selector: 'fd-dialog-footer-button',\n template: '<ng-content></ng-content>'\n})\nexport class DialogFooterButtonComponent extends BarElementDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-decisive-button]',\n host: {\n '[class.fd-dialog__decisive-button]': 'true'\n }\n})\nexport class DialogDecisiveButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { DynamicComponentService, InitialFocusModule, ResizeModule, TemplateModule } from '@fundamental-ngx/core/utils';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogService } from './dialog-service/dialog.service';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogFooterButtonComponent } from './dialog-footer-button/dialog-footer-button.component';\nimport { DialogDefaultComponent } from './dialog-default/dialog-default.component';\nimport { DialogCloseButtonComponent } from './dialog-close-button/dialog-close-button.component';\nimport { DialogDecisiveButtonDirective } from './directives/dialog-decisive-button.directive';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\nconst declarations = [\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogDefaultComponent,\n DialogContainerComponent,\n DialogCloseButtonComponent,\n DialogFooterButtonComponent,\n DialogDecisiveButtonDirective,\n DialogTitleDirective\n];\n\n@NgModule({\n declarations: [declarations],\n imports: [\n BarModule,\n IconModule,\n TitleModule,\n CommonModule,\n ButtonModule,\n ResizeModule,\n TemplateModule,\n DragDropModule,\n InitialFocusModule,\n BusyIndicatorModule,\n A11yModule\n ],\n exports: [declarations, BarModule, TitleModule, TemplateModule, InitialFocusModule],\n entryComponents: [DialogContainerComponent, DialogDefaultComponent],\n providers: [DialogService, DynamicComponentService]\n})\nexport class DialogModule {}\n","/**\n * Represents the positioning of the dialog on the screen.\n */\nexport class DialogPosition {\n /** Value of the dialog's top position. */\n top?: string;\n\n /** Value of the dialog's bottom position. */\n bottom?: string;\n\n /** Value of the dialog's left position. */\n left?: string;\n\n /** Value of the dialog's right position. */\n right?: string;\n}\n","export class DialogContentBase {\n /** Dialog Title id */\n titleId?: string;\n\n /** Dialog Title */\n title?: string;\n\n /** Dialog Body */\n content?: unknown;\n\n /** Approve Button Label */\n approveButton?: string;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: string = null;\n\n /** Aria labelby for the dialog component element. */\n ariaLabelledBy?: string = null;\n\n /** Aria DescribedBy for the dialog component element.. */\n ariaDescribedBy?: string = null;\n\n /** Approve Button Click Callback */\n approveButtonCallback?: () => void;\n\n /** Cancel Button Label */\n cancelButton?: string;\n\n /** Cancel Button Click Callback */\n cancelButtonCallback?: () => void;\n\n /** Close Button Callback */\n closeButtonCallback?: () => void;\n\n /** close button title */\n closeButtonTitle?: string;\n\n /** Aria label for the dialog approve button element. */\n approveButtonAriaLabel?: string;\n\n /** Aria labelby for the dialog close button element. */\n closeButtonAriaLabel?: string;\n}\n","import { TemplateRef } from '@angular/core';\nimport { DialogContentBase } from '../base/dialog-content-base.class';\n\nexport class DialogDefaultContent extends DialogContentBase {\n /** Dialog Body */\n content?: TemplateRef<any>;\n\n /** Subheader Body */\n subHeader?: TemplateRef<any>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-dialog.mjs","sources":["../../../../libs/core/src/lib/dialog/utils/dialog.animations.ts","../../../../libs/core/src/lib/dialog/base/dialog-header-base.class.ts","../../../../libs/core/src/lib/dialog/base/dialog-config-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-config.class.ts","../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../../libs/core/src/lib/dialog/dialog-header/dialog-header.component.html","../../../../libs/core/src/lib/dialog/base/dialog-ref-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-ref.class.ts","../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.ts","../../../../libs/core/src/lib/dialog/dialog-body/dialog-body.component.html","../../../../libs/core/src/lib/dialog/base/dialog-footer-base.class.ts","../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../../libs/core/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../../libs/core/src/lib/dialog/utils/dialog-width-to-size.ts","../../../../libs/core/src/lib/dialog/base/dialog-base.class.ts","../../../../libs/core/src/lib/dialog/directives/dialog-title.directive.ts","../../../../libs/core/src/lib/dialog/dialog.component.ts","../../../../libs/core/src/lib/dialog/dialog.component.html","../../../../libs/core/src/lib/dialog/dialog-close-button/dialog-close-button.component.ts","../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.ts","../../../../libs/core/src/lib/dialog/dialog-default/dialog-default.component.html","../../../../libs/core/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../../libs/core/src/lib/dialog/base/dialog-base.service.ts","../../../../libs/core/src/lib/dialog/dialog-service/dialog.service.ts","../../../../libs/core/src/lib/dialog/dialog-footer-button/dialog-footer-button.component.ts","../../../../libs/core/src/lib/dialog/directives/dialog-decisive-button.directive.ts","../../../../libs/core/src/lib/dialog/dialog.module.ts","../../../../libs/core/src/lib/dialog/utils/dialog-position.class.ts","../../../../libs/core/src/lib/dialog/base/dialog-content-base.class.ts","../../../../libs/core/src/lib/dialog/utils/dialog-default-content.class.ts","../../../../libs/core/src/lib/dialog/fundamental-ngx-core-dialog.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const dialogFadeNgIf: AnimationTriggerMetadata = trigger('dialog-fade', [\n transition(':enter', [style({ opacity: 0 }), animate('150ms ease-in-out', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('75ms ease-in-out', style({ opacity: 0 }))])\n]);\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n QueryList,\n TemplateRef\n} from '@angular/core';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Directive()\nexport abstract class DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n headerTemplate: TemplateRef<any>;\n\n /** @hidden */\n subHeaderTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChild(TitleComponent)\n set defaultTitleSize(title: TitleComponent) {\n if (title && !title.headerSize) {\n title.headerSize = 5;\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n this.customTemplates.forEach((template) => {\n switch (template.getName()) {\n case 'header':\n this.headerTemplate = template.templateRef;\n break;\n case 'subheader':\n this.subHeaderTemplate = template.templateRef;\n break;\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\nimport { DialogPosition } from '../utils/dialog-position.class';\n\nexport class DialogConfigBase<T> implements DynamicComponentConfig {\n /** Id for the dialog component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the dialog. */\n width?: string;\n\n /** Height of the dialog. */\n height?: string;\n\n /** Minimum width of the dialog. */\n minWidth?: string;\n\n /** Minimum height of the dialog. */\n minHeight?: string;\n\n /** Maximum width of the dialog. */\n maxWidth?: string;\n\n /** Maximum height of the dialog. */\n maxHeight?: string;\n\n /** Position of the dialog. */\n position?: DialogPosition;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean = false;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: string = null;\n\n /** Id of the element that labels the dialog. */\n ariaLabelledBy?: string = null;\n\n /** Id of the element that describes the dialog. */\n ariaDescribedBy?: string = null;\n\n /** Whether the dialog should have a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether clicking on the backdrop should close the dialog. Only works if hasBackdrop is true. */\n backdropClickCloseable?: boolean = false;\n\n /** Global classes to apply to the backdrop. */\n backdropClass?: string;\n\n /** Classes to apply to the `fd-dialog-container` */\n containerClass?: string;\n\n /** Global classes to apply to the dialog panel. */\n dialogPanelClass?: string;\n\n /** Whether the escape key should close the dialog. */\n escKeyCloseable?: boolean = true;\n\n /** Whether the dialog should be focus trapped. */\n focusTrapped?: boolean = true;\n\n /** The container that the dialog is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the DialogRef. */\n data?: T;\n\n /** Whether the dialog should be displayed in mobile mode. */\n mobile?: boolean;\n\n /** Whether the dialog in mobile mode should have outer space. */\n mobileOuterSpacing?: boolean;\n\n /** Whether the dialog should have vertical padding. */\n verticalPadding?: boolean = true;\n\n /** Workaround for IE11, as `flex-grow: 1` on dialog body won't work when 'min-height' for dialog set\n * There is another way to get dialog of wanted height by setting `min-height` for dialog body.\n */\n bodyMinHeight?: string;\n\n /** Whether the dialog should have responsive horizontal padding changing with Dialogs window width.\n * max-width: 599px - .fd-dialog__content--s\n * min-width: 600px and max-width: 1023px - .fd-dialog__content--m\n * min-width: 1024px and max-width: 1439px - .fd-dialog__content--l\n * min-width: 1440px - .fd-dialog__content--xl\n * */\n responsivePadding?: boolean = false;\n\n /** Whether to close the dialog on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * Configuration for opening a dialog with the DialogService.\n */\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { DialogConfigBase } from '../base/dialog-config-base.class';\n\nexport const DIALOG_DEFAULT_CONFIG = new InjectionToken<DialogConfig>('Default DialogConfig');\n\n@Injectable()\nexport class DialogConfig<T = any> extends DialogConfigBase<T> {\n /** Whether the dialog should be displayed in full screen mode. */\n fullScreen?: boolean;\n\n /** Whether the dialog should be draggable. */\n draggable?: boolean;\n\n /** Whether the dialog should be resizable. */\n resizable?: boolean;\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogHeaderBase } from '../base/dialog-header-base.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog header.\n *\n * ```html\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1>\n * <button fd-dialog-close-button></button>\n * </fd-dialog-header>\n * ```\n */\n@Component({\n selector: 'fd-dialog-header',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent extends DialogHeaderBase implements AfterContentInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig, changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n}\n","<div\n fd-bar\n class=\"fd-dialog__header\"\n [cozy]=\"dialogConfig.mobile\"\n [barDesign]=\"subHeaderTemplate ? 'header-with-subheader' : 'header'\"\n>\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-left>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-content select=\"[fd-title]\"></ng-content>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <ng-content select=\"[fd-dialog-close-button]\"></ng-content>\n </fd-bar-element>\n </div>\n </ng-template>\n</div>\n\n<div fd-bar *ngIf=\"subHeaderTemplate\" class=\"fd-dialog__subheader\" barDesign=\"subheader\" [cozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"subHeaderTemplate\"></ng-container>\n</div>\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRefBase<T, P = any> {\n /** @hidden */\n protected readonly _afterClosed = new Subject<P>();\n\n /** @hidden */\n protected readonly _afterLoaded = new Subject<boolean>();\n\n /**\n * Observable that is triggered when the dialog is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n public afterClosed: Observable<P> = this._afterClosed.asObservable();\n\n /** Observable that is triggered when the modal view is initialised. */\n public afterLoaded: Observable<boolean> = this._afterLoaded.asObservable();\n\n /** Data passed from the calling component to the content.*/\n public data: T;\n\n /**\n * Closes the dialog and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the dialog and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: any): void {\n this._afterClosed.error(reason);\n }\n\n /** Function that is called after the view of modal is initialised. */\n loaded(): void {\n this._afterLoaded.next(true);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DialogRefBase } from '../base/dialog-ref-base.class';\n\n/**\n * Reference to a dialog component\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\n\n@Injectable()\nexport class DialogRef<T = any, P = any> extends DialogRefBase<T, P> {\n private readonly _onHide = new BehaviorSubject<boolean>(false);\n private readonly _onLoading = new BehaviorSubject<boolean>(false);\n\n /** Observable that is triggered whenever the dialog should be visually hidden or visible.*/\n public onHide: Observable<boolean> = this._onHide.asObservable();\n\n /** Observable that is triggered whenever the dialog should be displayed in loading state.*/\n public onLoading: Observable<boolean> = this._onLoading.asObservable();\n\n /** @hidden */\n constructor() {\n super();\n }\n\n /**\n * Visually hides the dialog.\n * @param isHidden Value used to determine if dialog window should be hidden or visible.\n */\n hide(isHidden: boolean): void {\n this._onHide.next(isHidden);\n }\n\n /**\n * Displays the dialog in loading state.\n * @param isLoading Value used to determine if dialog window should be displayed in loading state.\n */\n loading(isLoading: boolean): void {\n this._onLoading.next(isLoading);\n }\n}\n","import { Component, ElementRef, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogRef } from '../utils/dialog-ref.class';\n\n/**\n * Applies fundamental layout and styling to the contents of a dialog body.\n *\n * ```html\n * <fd-dialog-body>\n * <!-- Content -->\n * </fd-dialog-body>\n * ```\n */\n@Component({\n selector: 'fd-dialog-body',\n templateUrl: 'dialog-body.component.html',\n host: {\n '[class.fd-dialog__body]': 'true',\n '[class.fd-dialog__body--no-vertical-padding]': '!dialogConfig.verticalPadding',\n '[style.min-height]': 'dialogConfig.bodyMinHeight'\n }\n})\nexport class DialogBodyComponent {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n @Optional() public dialogConfig: DialogConfig,\n @Optional() public dialogRef: DialogRef\n ) {}\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elRef;\n }\n}\n","<ng-content></ng-content>\n<div class=\"fd-dialog__loader\" *ngIf=\"dialogRef.onLoading | async\">\n <fd-busy-indicator [loading]=\"true\" size=\"l\"></fd-busy-indicator>\n</div>\n","import { AfterContentInit, ContentChildren, Directive, QueryList, TemplateRef } from '@angular/core';\nimport { startWith } from 'rxjs/operators';\n\nimport { TemplateDirective } from '@fundamental-ngx/core/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Directive()\nexport abstract class DialogFooterBase implements AfterContentInit {\n /** @hidden */\n footerTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ContentChildren(TemplateDirective)\n customTemplates: QueryList<TemplateDirective>;\n\n /** @hidden */\n @ContentChildren(ButtonBarComponent)\n buttons: QueryList<ButtonBarComponent>;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._assignCustomTemplates();\n }\n\n /** @hidden Assign custom templates */\n private _assignCustomTemplates(): void {\n const footerTemplate = this.customTemplates.find((template) => template.getName() === 'footer');\n this.footerTemplate = footerTemplate ? footerTemplate.templateRef : undefined;\n }\n\n /** @hidden */\n protected _listenForButtonChanges(className: string): void {\n const addClassToButton = (button: ButtonComponent): void => {\n if (button && !button.class.includes(className)) {\n button.class = button.class + className;\n button.buildComponentCssClass();\n }\n };\n\n this.buttons.changes.pipe(startWith(1)).subscribe(() =>\n this.buttons.forEach((button) => {\n addClassToButton(button._buttonComponent);\n })\n );\n }\n}\n","import { AfterContentInit, AfterViewInit, Component, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogFooterBase } from '../base/dialog-footer-base.class';\n\nexport const DialogButtonClass = 'fd-dialog__decisive-button';\n\n/**\n * Building block of the dialog used to create dialog button.\n *\n * ```html\n * <fd-dialog-footer><!--Content--></fd-dialog-footer>\n *\n * Complex footer:\n * <fd-dialog-footer>\n * <ng-template fdTemplate=\"footer\"><!--Content--></ng-template>\n * </fd-dialog-footer>\n * ```\n * */\n@Component({\n selector: 'fd-dialog-footer',\n templateUrl: './dialog-footer.component.html'\n})\nexport class DialogFooterComponent extends DialogFooterBase implements AfterContentInit, AfterViewInit {\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {\n super();\n this.dialogConfig = this.dialogConfig || {};\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForButtonChanges(DialogButtonClass);\n }\n}\n","<footer fd-bar class=\"fd-dialog__footer\" barDesign=\"footer\" [cozy]=\"dialogConfig.mobile\">\n <ng-container *ngTemplateOutlet=\"footerTemplate ? footerTemplate : defaultTemplate\"></ng-container>\n\n <ng-template #defaultTemplate>\n <div fd-bar-right>\n <ng-content></ng-content>\n </div>\n </ng-template>\n</footer>\n","/** @hidden Describes available dialog padding sizes */\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/** @hidden Returns dialog size based on width\n * @param width - dialog window width\n **/\nexport function dialogWidthToSize(width: number): DialogSize {\n if (width < 599) {\n return 'sm';\n } else if (width < 1023) {\n return 'md';\n } else if (width < 1439) {\n return 'lg';\n }\n return 'xl';\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nimport { KeyUtil, RtlService, FocusTrapService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\nimport { DialogSize, dialogWidthToSize } from '../utils/dialog-width-to-size';\n\n@Directive()\nexport abstract class DialogBase implements OnInit, AfterViewInit, OnDestroy {\n /**\n * @hidden\n */\n @HostBinding('attr.dir')\n _dir: string;\n\n /** @hidden Reference to dialog window element*/\n abstract dialogWindow: ElementRef;\n\n /** @hidden Dialog padding sizes */\n dialogPaddingSize: DialogSize;\n\n /** @hidden */\n protected _focusTrapId: string;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n abstract get _ref(): DialogRefBase<any>;\n\n /** @hidden */\n abstract get _config(): DialogConfigBase<any>;\n\n /** @hidden Listen and close dialog on Escape key */\n @HostListener('keyup', ['$event'])\n closeDialogEsc(event: KeyboardEvent): void {\n if (this._config.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE)) {\n this._ref.dismiss('escape');\n }\n }\n\n /** @hidden Listen and close dialog on Backdrop click */\n @HostListener('mousedown', ['$event.target'])\n closeDialog(target: ElementRef): void {\n if (this._config.backdropClickCloseable && target === this._elementRef.nativeElement) {\n this._ref.dismiss('backdrop');\n }\n }\n\n /** @hidden */\n constructor(\n protected _router: Router,\n protected _elementRef: ElementRef,\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _rtlService: RtlService,\n protected _focusTrapService: FocusTrapService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._subscriptions.add(\n this._rtlService?.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._trapFocus();\n this._setPosition();\n this._setWidthHeight();\n this._listenOnWindowResize();\n this.adjustResponsivePadding();\n this._ref.loaded();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._deactivateFocusTrap();\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden Determine dialog padding size based on dialogs window width */\n adjustResponsivePadding(): void {\n if (this._config.responsivePadding) {\n const dialogWidth = this.dialogWindow.nativeElement.getBoundingClientRect().width;\n this.dialogPaddingSize = dialogWidthToSize(dialogWidth);\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router) {\n this._subscriptions.add(\n this._router.events\n .pipe(filter((event) => event instanceof NavigationStart && this._config.closeOnNavigation))\n .subscribe(() => this._ref.dismiss())\n );\n }\n }\n\n /** @hidden Trap focus inside dialog window */\n private _trapFocus(): void {\n if (this._config.focusTrapped) {\n try {\n this._focusTrapId = this._focusTrapService.createFocusTrap(this.dialogWindow.nativeElement, {\n clickOutsideDeactivates: this._config.backdropClickCloseable && this._config.hasBackdrop,\n escapeDeactivates: false,\n allowOutsideClick: () => true\n });\n } catch (e) {}\n }\n }\n\n /** @hidden */\n private _deactivateFocusTrap(): void {\n this._focusTrapService.deactivateFocusTrap(this._focusTrapId);\n }\n\n /** @hidden Set dialog window position */\n private _setPosition(): void {\n if (this._config.position) {\n this.dialogWindow.nativeElement.style.top = this._config.position.top;\n this.dialogWindow.nativeElement.style.bottom = this._config.position.bottom;\n this.dialogWindow.nativeElement.style.left = this._config.position.left;\n this.dialogWindow.nativeElement.style.right = this._config.position.right;\n } else {\n this.dialogWindow.nativeElement.style.position = 'relative';\n }\n }\n\n /** @hidden Set dialog window width and height */\n private _setWidthHeight(): void {\n this.dialogWindow.nativeElement.style.width = this._config.width;\n this.dialogWindow.nativeElement.style.height = this._config.height;\n this.dialogWindow.nativeElement.style.minWidth = this._config.minWidth;\n this.dialogWindow.nativeElement.style.minHeight = this._config.minHeight;\n this.dialogWindow.nativeElement.style.maxWidth = this._config.maxWidth;\n this.dialogWindow.nativeElement.style.maxHeight = this._config.maxHeight;\n }\n\n /** @hidden Listen on window resize and adjust padding */\n private _listenOnWindowResize(): void {\n if (this._config.responsivePadding) {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this.adjustResponsivePadding())\n );\n }\n }\n}\n","import { AfterViewInit, Directive, Input, Optional } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\n\nlet titleUniqueId = 1;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-title]',\n host: {\n '[attr.id]': 'id'\n }\n})\nexport class DialogTitleDirective implements AfterViewInit {\n /** Title ID attribute, generated automatically if not provided */\n @Input()\n id = `fd-dialog-title-` + titleUniqueId++;\n\n /** @hidden */\n constructor(@Optional() public dialogConfig: DialogConfig) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.dialogConfig && !this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.id;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\nimport { applyCssClass, CssClassBuilder, FocusTrapService, RtlService } from '@fundamental-ngx/core/utils';\n\nimport { dialogFadeNgIf } from './utils/dialog.animations';\nimport { DialogConfig } from './utils/dialog-config.class';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogRef } from './utils/dialog-ref.class';\nimport { DialogBase } from './base/dialog-base.class';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\n/**\n * Dialog component.\n *\n * ```html\n * <fd-dialog>\n * <fd-dialog-header></fd-dialog-header>\n * <fd-dialog-body></fd-dialog-body>\n * <fd-dialog-footer></fd-dialog-footer>\n * </fd-dialog>\n * ```\n */\n@Component({\n selector: 'fd-dialog',\n styleUrls: ['dialog.component.scss'],\n templateUrl: './dialog.component.html',\n host: {\n tabindex: '-1',\n '[@dialog-fade]': ''\n },\n animations: [dialogFadeNgIf],\n encapsulation: ViewEncapsulation.None\n})\nexport class DialogComponent\n extends DialogBase\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n }\n\n /** DialogRef - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogRef')\n set embeddedDialogRef(value: DialogRef) {\n this._dialogRef = value;\n }\n\n /** DialogConfig - should be used for Template based Dialog implementation */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('dialogConfig')\n set embeddedDialogConfig(value: DialogConfig) {\n this.dialogConfig = value;\n }\n\n /** @hidden */\n @ViewChild('dialogWindow')\n dialogWindow: ElementRef;\n\n /** @hidden If dialog sub-components didn't receive DialogConfig from Injector, DialogConfig is passed from parent.\n * This is necessary when dialog has been passed as TemplateRef and created as EmbeddedView.\n * In such case parent injector of DialogComponent is the component that DECLARED the TemplateRef.\n **/\n @ContentChild(DialogHeaderComponent)\n set dialogHeaderConfig(component: DialogHeaderComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogBodyComponent)\n set dialogBodyConfig(component: DialogBodyComponent) {\n if (component) {\n component.dialogRef = this._dialogRef;\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogFooterComponent)\n set dialogFooterConfig(component: DialogFooterComponent) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden */\n @ContentChild(DialogTitleDirective)\n set dialogTitle(component: DialogTitleDirective) {\n if (component) {\n component.dialogConfig = this.dialogConfig;\n }\n }\n\n /** @hidden Whenever dialog should be visible */\n showDialogWindow: boolean;\n\n /** @hidden Whenever dialog is dragged */\n isDragged: boolean;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n private _onHidden: Subscription;\n\n /** @hidden */\n constructor(\n @Optional() public dialogConfig: DialogConfig,\n @Optional() private _dialogRef: DialogRef,\n @Optional() router: Router,\n @Optional() rtlService: RtlService,\n focusTrapService: FocusTrapService,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef\n ) {\n super(router, elementRef, changeDetectorRef, rtlService, focusTrapService);\n }\n\n /** @hidden */\n get _config(): DialogConfig {\n return this.dialogConfig;\n }\n\n /** @hidden */\n get _ref(): DialogRef {\n return this._dialogRef;\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._listenOnHidden();\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._onHidden.unsubscribe();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.dialogConfig.hasBackdrop ? 'fd-dialog' : 'fd-dialog--no-backdrop',\n this.dialogConfig.container !== 'body' ? 'fd-dialog--targeted' : '',\n this.showDialogWindow ? 'fd-dialog--active' : '',\n this._class,\n this.dialogConfig.backdropClass ? this.dialogConfig.backdropClass : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Listen on Dialog visibility */\n private _listenOnHidden(): void {\n this._onHidden = this._dialogRef.onHide.subscribe((isHidden) => {\n this.showDialogWindow = !isHidden;\n this.buildComponentCssClass();\n });\n }\n}\n","<div\n #dialogWindow\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n fdResize\n cdkTrapFocus\n cdkDrag\n cdkDragBoundary=\".fd-dialog\"\n [fdResizeBoundary]=\"elementRef()?.nativeElement\"\n class=\"fd-dialog__content\"\n [class]=\"dialogConfig.dialogPanelClass\"\n [class.cdk-drag]=\"dialogConfig.draggable\"\n [class.fd-dialog__content--s]=\"dialogPaddingSize === 'sm'\"\n [class.fd-dialog__content--m]=\"dialogPaddingSize === 'md'\"\n [class.fd-dialog__content--l]=\"dialogPaddingSize === 'lg'\"\n [class.fd-dialog__content--xl]=\"dialogPaddingSize === 'xl'\"\n [class.fd-dialog__content--mobile]=\"dialogConfig.mobile\"\n [class.fd-dialog__content--full-screen]=\"dialogConfig.fullScreen\"\n [class.fd-dialog__content--no-mobile-stretch]=\"dialogConfig.mobileOuterSpacing\"\n [class.fd-dialog__content--draggable-grab]=\"dialogConfig.draggable && !isDragged\"\n [class.fd-dialog__content--draggable-grabbing]=\"dialogConfig.draggable && isDragged\"\n [class.fd-dialog__content--with-header]=\"headerWrapper.children.length\"\n [cdkDragDisabled]=\"!dialogConfig.draggable\"\n [fdResizeDisabled]=\"!dialogConfig.resizable\"\n [@dialog-fade]\n [attr.id]=\"dialogConfig.id\"\n [attr.aria-label]=\"dialogConfig.ariaLabel\"\n [attr.aria-labelledby]=\"dialogConfig.ariaLabelledBy\"\n [attr.aria-describedby]=\"dialogConfig.ariaDescribedBy\"\n [attr.aria-modal]=\"dialogConfig.ariaModal\"\n (cdkDragStarted)=\"isDragged = true\"\n (cdkDragEnded)=\"isDragged = false\"\n (onResizeEnd)=\"adjustResponsivePadding()\"\n>\n <span fdResizeHandle *ngIf=\"dialogConfig.resizable\" class=\"fd-dialog__resize-handle\"></span>\n\n <div #headerWrapper cdkDragHandle [cdkDragHandleDisabled]=\"!dialogConfig.draggable\">\n <ng-content select=\"fd-dialog-header\"></ng-content>\n </div>\n\n <ng-content select=\"fd-dialog-body\"></ng-content>\n\n <ng-content select=\"fd-dialog-footer\"></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * Directive that applies fundamental dialog styling to a dialog close button.\n *\n * ```html\n * <button fd-dialog-close-button></button>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-dialog-close-button]',\n host: {\n '[attr.aria-label]': '\"close\"',\n '[class.fd-button]': 'true',\n '[class.fd-button--compact]': '!mobile',\n '[class.fd-button--transparent]': 'true',\n '[attr.title]': 'title'\n },\n template: `<fd-icon glyph=\"decline\"></fd-icon><ng-content></ng-content>`\n})\nexport class DialogCloseButtonComponent {\n /** Displays dialog close button in mobile mode */\n @Input()\n mobile = false;\n\n /** add title dynamically to add a tooltip */\n @Input()\n title: string;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\n/** Dialog component used to create the dialog in object based approach */\n@Component({\n selector: 'fd-dialog-default',\n templateUrl: './dialog-default.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DialogDefaultComponent implements AfterViewInit {\n /** @hidden */\n _defaultDialogContent: DialogDefaultContent;\n\n /** @hidden */\n _defaultDialogConfiguration: DialogConfig;\n\n /** @hidden */\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /** @hidden\n * TODO: Inspect why DialogDefaultComponents needs change detection re-run to render adjusted content (dialog header title)\n * */\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n\n /** Whether there is a approve button, or cancel button text */\n _showFooter(): boolean {\n return (\n this._defaultDialogContent &&\n !!(this._defaultDialogContent.cancelButton || this._defaultDialogContent.approveButton)\n );\n }\n\n /** @hidden */\n _closeButtonClicked(): void {\n this._defaultDialogContent.closeButtonCallback();\n }\n\n /** @hidden */\n _approveButtonClicked(): void {\n this._defaultDialogContent.approveButtonCallback();\n }\n\n /** @hidden */\n _cancelButtonClicked(): void {\n this._defaultDialogContent.cancelButtonCallback();\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title [id]=\"_defaultDialogContent?.titleId\">{{ _defaultDialogContent?.title }}</h1>\n <button\n fd-dialog-close-button\n *ngIf=\"_defaultDialogContent?.closeButtonCallback\"\n [title]=\"_defaultDialogContent?.closeButtonTitle\"\n (click)=\"_closeButtonClicked()\"\n ></button>\n <ng-container *ngIf=\"_defaultDialogContent?.subHeader\">\n <ng-template fdTemplate=\"subheader\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent.subHeader\"></ng-container>\n </ng-template>\n </ng-container>\n </fd-dialog-header>\n\n <fd-dialog-body *ngIf=\"_defaultDialogContent?.content\">\n <ng-container *ngTemplateOutlet=\"_defaultDialogContent?.content\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"_showFooter()\">\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.approveButton\"\n fdType=\"emphasized\"\n fd-initial-focus\n [label]=\"_defaultDialogContent?.approveButton\"\n [compact]=\"!_defaultDialogConfiguration.mobile\"\n (click)=\"_approveButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.approveButtonAriaLabel\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"_defaultDialogContent?.cancelButton\"\n [label]=\"_defaultDialogContent?.cancelButton\"\n [compact]=\"!_defaultDialogConfiguration.mobile\"\n (click)=\"_cancelButtonClicked()\"\n [ariaLabel]=\"_defaultDialogContent?.closeButtonAriaLabel\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { applyCssClass, CssClassBuilder, DynamicComponentContainer } from '@fundamental-ngx/core/utils';\n\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogDefaultComponent } from '../dialog-default/dialog-default.component';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\nimport { DialogContentType } from '../dialog-service/dialog.service';\n\n/** Dialog container where the dialog content is embedded. */\n@Component({\n selector: 'fd-dialog-container',\n template: '<ng-container #contentContainer></ng-container>',\n styleUrls: ['./dialog-container.component.scss']\n})\nexport class DialogContainerComponent\n extends DynamicComponentContainer<DialogContentType>\n implements AfterViewInit, CssClassBuilder\n{\n /** Custom classes */\n @Input()\n set class(userClass: string) {\n this._class = userClass;\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @ViewChild('contentContainer', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** @hidden */\n private _class = '';\n\n /** @hidden */\n constructor(\n public dialogConfig: DialogConfig,\n private _dialogRef: DialogRef,\n elementRef: ElementRef,\n componentFactoryResolver: ComponentFactoryResolver,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, componentFactoryResolver);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._loadContent();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [this.dialogConfig.containerClass ? this.dialogConfig.containerClass : '', this._class];\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden Load received content */\n protected _loadContent(): void {\n if (this.childContent instanceof Type) {\n this._createFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._createFromTemplate(this.childContent, this._templateContext());\n } else {\n this._createFromDefaultDialog(this.childContent);\n }\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden Returns context for embedded template*/\n private _templateContext(): { $implicit: DialogRef; dialogConfig: DialogConfig } {\n return { $implicit: this._dialogRef, dialogConfig: this.dialogConfig };\n }\n\n /** @hidden Load Dialog component from passed object */\n private _createFromDefaultDialog(config: DialogDefaultContent): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DialogDefaultComponent);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n this._componentRef.instance._defaultDialogContent = config;\n this._componentRef.instance._defaultDialogConfiguration = this.dialogConfig;\n }\n}\n","import { ComponentRef } from '@angular/core';\n\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\nimport { DialogConfig } from '../utils/dialog-config.class';\nimport { DialogConfigBase } from './dialog-config-base.class';\nimport { DialogRefBase } from './dialog-ref-base.class';\n\n/** Service used to dynamically generate a dialog. */\nexport abstract class DialogBaseService<T> {\n /** @hidden Collection of existing dialog references */\n protected _dialogs: ComponentRef<T>[] = [];\n\n /** @hidden */\n constructor(protected _dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Status of the dialog service.\n * Returns true if there are open dialogs, false otherwise.\n */\n hasOpenDialogs(): boolean {\n return this._dialogs && this._dialogs.length > 0;\n }\n\n /** Dismisses all currently open dialogs. */\n dismissAll(): void {\n this._dialogs.forEach((item) => this._destroyDialog(item));\n }\n\n abstract open<D>(content: unknown, config: DialogConfigBase<D>): DialogRefBase<D>;\n\n /** @hidden Extends configuration using default values*/\n protected _applyDefaultConfig(config: DialogConfig, defaultConfig: DialogConfig): DialogConfig {\n return { ...defaultConfig, ...config };\n }\n\n /** @hidden Destroy existing dialog */\n protected _destroyDialog(dialog: ComponentRef<T>): void {\n const index = this._dialogs.indexOf(dialog);\n\n if (index === -1) {\n return;\n }\n\n this._dynamicComponentService.destroyComponent(dialog);\n\n this._dialogs[index] = null;\n this._dialogs = this._dialogs.filter((item) => item);\n }\n}\n","import { Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DialogContainerComponent } from '../dialog-container/dialog-container.component';\nimport { DIALOG_DEFAULT_CONFIG, DialogConfig } from '../utils/dialog-config.class';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/core/utils';\nimport { DialogRef } from '../utils/dialog-ref.class';\nimport { DialogBaseService } from '../base/dialog-base.service';\nimport { DialogDefaultContent } from '../utils/dialog-default-content.class';\n\nexport type DialogContentType = TemplateRef<any> | Type<any> | DialogDefaultContent;\n\n/** Service used to create a dialog. */\n@Injectable()\nexport class DialogService extends DialogBaseService<DialogContainerComponent> {\n /** @hidden */\n constructor(\n @Inject(DynamicComponentService) dynamicComponentService: DynamicComponentService,\n @Optional() @Inject(DIALOG_DEFAULT_CONFIG) private _defaultConfig: DialogConfig,\n @Optional() private _rtlService: RtlService\n ) {\n super(dynamicComponentService);\n }\n\n /**\n * Opens a dialog component with provided content.\n * @param content Content of the dialog component.\n * @param dialogConfig Configuration of the dialog component.\n */\n public open<T = any>(content: DialogContentType, dialogConfig?: DialogConfig<T>): DialogRef<T> {\n const dialogRef = new DialogRef();\n\n dialogConfig = this._applyDefaultConfig(dialogConfig, this._defaultConfig || new DialogConfig());\n dialogRef.data = dialogConfig.data;\n\n const injector = Injector.create({\n providers: [\n { provide: DialogConfig, useValue: dialogConfig },\n { provide: DialogRef, useValue: dialogRef },\n { provide: RtlService, useValue: this._rtlService },\n { provide: DialogService, useValue: this }\n ]\n });\n\n const component = this._dynamicComponentService.createDynamicComponent<DialogContainerComponent>(\n content,\n DialogContainerComponent,\n dialogConfig,\n { injector }\n );\n\n this._dialogs.push(component);\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyDialog(component);\n refSub.unsubscribe();\n };\n\n const refSub = dialogRef.afterClosed.subscribe(defaultBehaviourOnClose, defaultBehaviourOnClose);\n\n return dialogRef;\n }\n}\n","import { Component } from '@angular/core';\nimport { BarElementDirective } from '@fundamental-ngx/core/bar';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Component({\n selector: 'fd-dialog-footer-button',\n template: '<ng-content></ng-content>'\n})\nexport class DialogFooterButtonComponent extends BarElementDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated\n * Consider using `fd-button-bar`\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dialog-decisive-button]',\n host: {\n '[class.fd-dialog__decisive-button]': 'true'\n }\n})\nexport class DialogDecisiveButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { DynamicComponentService, InitialFocusModule, ResizeModule, TemplateModule } from '@fundamental-ngx/core/utils';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogService } from './dialog-service/dialog.service';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogFooterButtonComponent } from './dialog-footer-button/dialog-footer-button.component';\nimport { DialogDefaultComponent } from './dialog-default/dialog-default.component';\nimport { DialogCloseButtonComponent } from './dialog-close-button/dialog-close-button.component';\nimport { DialogDecisiveButtonDirective } from './directives/dialog-decisive-button.directive';\nimport { DialogTitleDirective } from './directives/dialog-title.directive';\n\nconst declarations = [\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogDefaultComponent,\n DialogContainerComponent,\n DialogCloseButtonComponent,\n DialogFooterButtonComponent,\n DialogDecisiveButtonDirective,\n DialogTitleDirective\n];\n\n@NgModule({\n declarations: [declarations],\n imports: [\n BarModule,\n IconModule,\n TitleModule,\n CommonModule,\n ButtonModule,\n ResizeModule,\n TemplateModule,\n DragDropModule,\n InitialFocusModule,\n BusyIndicatorModule,\n A11yModule\n ],\n exports: [declarations, BarModule, TitleModule, TemplateModule, InitialFocusModule],\n entryComponents: [DialogContainerComponent, DialogDefaultComponent],\n providers: [DialogService, DynamicComponentService]\n})\nexport class DialogModule {}\n","/**\n * Represents the positioning of the dialog on the screen.\n */\nexport class DialogPosition {\n /** Value of the dialog's top position. */\n top?: string;\n\n /** Value of the dialog's bottom position. */\n bottom?: string;\n\n /** Value of the dialog's left position. */\n left?: string;\n\n /** Value of the dialog's right position. */\n right?: string;\n}\n","export class DialogContentBase {\n /** Dialog Title id */\n titleId?: string;\n\n /** Dialog Title */\n title?: string;\n\n /** Dialog Body */\n content?: unknown;\n\n /** Approve Button Label */\n approveButton?: string;\n\n /** Aria Modal for the dialog component element */\n ariaModal?: boolean;\n\n /** Aria label for the dialog component element. */\n ariaLabel?: string = null;\n\n /** Aria labelby for the dialog component element. */\n ariaLabelledBy?: string = null;\n\n /** Aria DescribedBy for the dialog component element.. */\n ariaDescribedBy?: string = null;\n\n /** Approve Button Click Callback */\n approveButtonCallback?: () => void;\n\n /** Cancel Button Label */\n cancelButton?: string;\n\n /** Cancel Button Click Callback */\n cancelButtonCallback?: () => void;\n\n /** Close Button Callback */\n closeButtonCallback?: () => void;\n\n /** close button title */\n closeButtonTitle?: string;\n\n /** Aria label for the dialog approve button element. */\n approveButtonAriaLabel?: string;\n\n /** Aria labelby for the dialog close button element. */\n closeButtonAriaLabel?: string;\n}\n","import { TemplateRef } from '@angular/core';\nimport { DialogContentBase } from '../base/dialog-content-base.class';\n\nexport class DialogDefaultContent extends DialogContentBase {\n /** Dialog Body */\n content?: TemplateRef<any>;\n\n /** Subheader Body */\n subHeader?: TemplateRef<any>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;MAEa,cAAc,GAA6B,OAAO,CAAC,aAAa,EAAE;IAC3E,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClG,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACpG;;MCSqB,gBAAgB;;IAqBlC,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;KAAI;;IAb7D,IACI,gBAAgB,CAAC,KAAqB;QACtC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC5B,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;SAC3C;KACJ;;IAUD,kBAAkB;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ;YAClC,QAAQ,QAAQ,CAAC,OAAO,EAAE;gBACtB,KAAK,QAAQ;oBACT,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;oBAC3C,MAAM;gBACV,KAAK,WAAW;oBACZ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC;oBAC9C,MAAM;aACb;SACJ,CAAC,CAAC;KACN;;6GAxCiB,gBAAgB;iGAAhB,gBAAgB,wEAQpB,cAAc,qEASX,iBAAiB;2FAjBhB,gBAAgB;kBADrC,SAAS;wGAUF,gBAAgB;sBADnB,YAAY;uBAAC,cAAc;gBAU5B,eAAe;sBADd,eAAe;uBAAC,iBAAiB;;;AC/BtC;MAMa,gBAAgB;IAA7B;;QA0BI,cAAS,GAAa,KAAK,CAAC;;QAG5B,cAAS,GAAY,IAAI,CAAC;;QAG1B,mBAAc,GAAY,IAAI,CAAC;;QAG/B,oBAAe,GAAY,IAAI,CAAC;;QAGhC,gBAAW,GAAa,IAAI,CAAC;;QAG7B,2BAAsB,GAAa,KAAK,CAAC;;QAYzC,oBAAe,GAAa,IAAI,CAAC;;QAGjC,iBAAY,GAAa,IAAI,CAAC;;QAG9B,cAAS,GAA0B,MAAM,CAAC;;QAY1C,oBAAe,GAAa,IAAI,CAAC;;;;;;;QAajC,sBAAiB,GAAa,KAAK,CAAC;;QAGpC,sBAAiB,GAAa,IAAI,CAAC;KACtC;;;AC9FD;MAOa,qBAAqB,GAAG,IAAI,cAAc,CAAe,sBAAsB,EAAE;MAGjF,qBAA8B,gBAAmB;;yGAAjD,YAAY;6GAAZ,YAAY;2FAAZ,YAAY;kBADxB,UAAU;;;ACJX;;;;;;;;;;MAca,8BAA8B,gBAAgB;;IAEvD,YAA+B,YAA0B,EAAE,iBAAoC;QAC3F,KAAK,CAAC,iBAAiB,CAAC,CAAC;QADE,iBAAY,GAAZ,YAAY,CAAc;QAErD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;KAC/C;;IAGD,kBAAkB;QACd,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC9B;;kHAVQ,qBAAqB;sGAArB,qBAAqB,+ECnBlC,g6BAyBA;2FDNa,qBAAqB;kBAJjC,SAAS;+BACI,kBAAkB;;;8BAKf,QAAQ;;;;MEnBZ,aAAa;IAA1B;;QAEuB,iBAAY,GAAG,IAAI,OAAO,EAAK,CAAC;;QAGhC,iBAAY,GAAG,IAAI,OAAO,EAAW,CAAC;;;;;QAMlD,gBAAW,GAAkB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;;QAG9D,gBAAW,GAAwB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KA0B9E;;;;;IAjBG,KAAK,CAAC,MAAU;QACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAChC;;;;;IAMD,OAAO,CAAC,MAAY;QAChB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACnC;;IAGD,MAAM;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;;;ACrCL;;;;;MAOa,kBAAoC,aAAmB;;IAWhE;QACI,KAAK,EAAE,CAAC;QAXK,YAAO,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAC9C,eAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;;QAG3D,WAAM,GAAwB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;;QAG1D,cAAS,GAAwB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KAKtE;;;;;IAMD,IAAI,CAAC,QAAiB;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC/B;;;;;IAMD,OAAO,CAAC,SAAkB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;;sGA7BQ,SAAS;0GAAT,SAAS;2FAAT,SAAS;kBADrB,UAAU;;;ACLX;;;;;;;;;MAkBa,mBAAmB;;IAE5B,YACY,MAAkB,EACP,YAA0B,EAC1B,SAAoB;QAF/B,WAAM,GAAN,MAAM,CAAY;QACP,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAW;KACvC;;IAGJ,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;;gHAXQ,mBAAmB;oGAAnB,mBAAmB,kPCvBhC,yLAIA;2FDmBa,mBAAmB;kBAT/B,SAAS;+BACI,gBAAgB,QAEpB;wBACF,yBAAyB,EAAE,MAAM;wBACjC,8CAA8C,EAAE,+BAA+B;wBAC/E,oBAAoB,EAAE,4BAA4B;qBACrD;;;8BAMI,QAAQ;;8BACR,QAAQ;;;;MEpBK,gBAAgB;;IAalC,kBAAkB;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGO,sBAAsB;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC,WAAW,GAAG,SAAS,CAAC;KACjF;;IAGS,uBAAuB,CAAC,SAAiB;QAC/C,MAAM,gBAAgB,GAAG,CAAC,MAAuB;YAC7C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC7C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;gBACxC,MAAM,CAAC,sBAAsB,EAAE,CAAC;aACnC;SACJ,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;YACxB,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SAC7C,CAAC,CACL,CAAC;KACL;;6GArCiB,gBAAgB;iGAAhB,gBAAgB,0DAKjB,iBAAiB,0CAIjB,kBAAkB;2FATjB,gBAAgB;kBADrC,SAAS;8BAON,eAAe;sBADd,eAAe;uBAAC,iBAAiB;gBAKlC,OAAO;sBADN,eAAe;uBAAC,kBAAkB;;;MCZ1B,iBAAiB,GAAG,6BAA6B;AAE9D;;;;;;;;;;;;MAgBa,8BAA8B,gBAAgB;;IAEvD,YAA+B,YAA0B;QACrD,KAAK,EAAE,CAAC;QADmB,iBAAY,GAAZ,YAAY,CAAc;QAErD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;KAC/C;;IAGD,kBAAkB;QACd,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC9B;;IAGD,eAAe;QACX,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;KACnD;;kHAfQ,qBAAqB;sGAArB,qBAAqB,+ECvBlC,sWASA;2FDca,qBAAqB;kBAJjC,SAAS;+BACI,kBAAkB;;;8BAKf,QAAQ;;;;AEtBzB;;;SAGgB,iBAAiB,CAAC,KAAa;IAC3C,IAAI,KAAK,GAAG,GAAG,EAAE;QACb,OAAO,IAAI,CAAC;KACf;SAAM,IAAI,KAAK,GAAG,IAAI,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;SAAM,IAAI,KAAK,GAAG,IAAI,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,IAAI,CAAC;AAChB;;MCOsB,UAAU;;IA0C5B,YACc,OAAe,EACf,WAAuB,EACvB,kBAAqC,EACrC,WAAuB,EACvB,iBAAmC;QAJnC,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAY;QACvB,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,gBAAW,GAAX,WAAW,CAAY;QACvB,sBAAiB,GAAjB,iBAAiB,CAAkB;;QA9BzC,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KA+BxC;;IArBJ,cAAc,CAAC,KAAoB;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC/B;KACJ;;IAID,WAAW,CAAC,MAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YAClF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjC;KACJ;;IAYD,QAAQ;;QACJ,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK;YAClC,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;SAC3C,CAAC,CACL,CAAC;KACL;;IAGD,eAAe;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACtB;;IAGD,WAAW;QACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;IAGD,uBAAuB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;YAClF,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;SAC3C;KACJ;;IAGO,2BAA2B;QAC/B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,OAAO,CAAC,MAAM;iBACd,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;iBAC3F,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAC5C,CAAC;SACL;KACJ;;IAGO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC3B,IAAI;gBACA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;oBACxF,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW;oBACxF,iBAAiB,EAAE,KAAK;oBACxB,iBAAiB,EAAE,MAAM,IAAI;iBAChC,CAAC,CAAC;aACN;YAAC,OAAO,CAAC,EAAE,GAAE;SACjB;KACJ;;IAGO,oBAAoB;QACxB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACjE;;IAGO,YAAY;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC7E;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC/D;KACJ;;IAGO,eAAe;QACnB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;KAC5E;;IAGO,qBAAqB;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;iBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;iBACvB,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CACvD,CAAC;SACL;KACJ;;uGAlJiB,UAAU;2FAAV,UAAU;2FAAV,UAAU;kBAD/B,SAAS;8MAMN,IAAI;sBADH,WAAW;uBAAC,UAAU;gBAuBvB,cAAc;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBASjC,WAAW;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,eAAe,CAAC;;;ACpDhD,IAAI,aAAa,GAAG,CAAC,CAAC;MAST,oBAAoB;;IAM7B,YAA+B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;;QAHzD,OAAE,GAAG,kBAAkB,GAAG,aAAa,EAAE,CAAC;KAGmB;;IAG7D,eAAe;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;YACxD,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;SAC9C;KACJ;;iHAbQ,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAPhC,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,mBAAmB;oBAC7B,IAAI,EAAE;wBACF,WAAW,EAAE,IAAI;qBACpB;iBACJ;;;8BAOgB,QAAQ;;yBAHrB,EAAE;sBADD,KAAK;;;ACaV;;;;;;;;;;;MAsBa,wBACD,UAAU;;IA4ElB,YACuB,YAA0B,EACzB,UAAqB,EAC7B,MAAc,EACd,UAAsB,EAClC,gBAAkC,EAClC,iBAAoC,EACpC,UAAsB;QAEtB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QARxD,iBAAY,GAAZ,YAAY,CAAc;QACzB,eAAU,GAAV,UAAU,CAAW;;QARrC,WAAM,GAAG,EAAE,CAAC;KAgBnB;;IAlFD,IACI,KAAK,CAAC,SAAiB;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;KAC3B;;;IAID,IACI,iBAAiB,CAAC,KAAgB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KAC3B;;;IAID,IACI,oBAAoB,CAAC,KAAmB;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC7B;;;;;IAUD,IACI,kBAAkB,CAAC,SAAgC;QACnD,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9C;KACJ;;IAGD,IACI,gBAAgB,CAAC,SAA8B;QAC/C,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACtC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9C;KACJ;;IAGD,IACI,kBAAkB,CAAC,SAAgC;QACnD,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9C;KACJ;;IAGD,IACI,WAAW,CAAC,SAA+B;QAC3C,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9C;KACJ;;IA4BD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;;IAGD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;IAGD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,eAAe;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;KAC3B;;IAGD,WAAW;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;;IAID,sBAAsB;QAClB,OAAO;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,WAAW,GAAG,wBAAwB;YACtE,IAAI,CAAC,YAAY,CAAC,SAAS,KAAK,MAAM,GAAG,qBAAqB,GAAG,EAAE;YACnE,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,GAAG,EAAE;YAChD,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,EAAE;SACzE,CAAC;KACL;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAGO,eAAe;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ;YACvD,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAC,CAAC;KACN;;4GAjJQ,eAAe;gGAAf,eAAe,oUAgCV,qBAAqB,mFAQrB,mBAAmB,qFASnB,qBAAqB,8EAQrB,oBAAoB,0MC3GtC,0+DA6CA,iyQDEgB,CAAC,cAAc,CAAC;AA+H5B;IADC,aAAa;;;;6DASb;2FApIQ,eAAe;kBAX3B,SAAS;+BACI,WAAW,QAGf;wBACF,QAAQ,EAAE,IAAI;wBACd,gBAAgB,EAAE,EAAE;qBACvB,cACW,CAAC,cAAc,CAAC,iBACb,iBAAiB,CAAC,IAAI;;;8BAgFhC,QAAQ;;8BACR,QAAQ;;8BACR,QAAQ;;8BACR,QAAQ;;yBA3ET,KAAK;sBADR,KAAK;gBAQF,iBAAiB;sBADpB,KAAK;uBAAC,WAAW;gBAQd,oBAAoB;sBADvB,KAAK;uBAAC,cAAc;gBAOrB,YAAY;sBADX,SAAS;uBAAC,cAAc;gBAQrB,kBAAkB;sBADrB,YAAY;uBAAC,qBAAqB;gBAS/B,gBAAgB;sBADnB,YAAY;uBAAC,mBAAmB;gBAU7B,kBAAkB;sBADrB,YAAY;uBAAC,qBAAqB;gBAS/B,WAAW;sBADd,YAAY;uBAAC,oBAAoB;gBAmElC,sBAAsB;;AE5K1B;;;;;;;MAmBa,0BAA0B;IAZvC;;QAeI,WAAM,GAAG,KAAK,CAAC;KAKlB;;uHARY,0BAA0B;2GAA1B,0BAA0B,ySAFzB,8DAA8D;2FAE/D,0BAA0B;kBAZtC,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,0BAA0B;oBACpC,IAAI,EAAE;wBACF,mBAAmB,EAAE,SAAS;wBAC9B,mBAAmB,EAAE,MAAM;wBAC3B,4BAA4B,EAAE,SAAS;wBACvC,gCAAgC,EAAE,MAAM;wBACxC,cAAc,EAAE,OAAO;qBAC1B;oBACD,QAAQ,EAAE,8DAA8D;iBAC3E;8BAIG,MAAM;sBADL,KAAK;gBAKN,KAAK;sBADJ,KAAK;;;ACtBV;MAMa,sBAAsB;;IAQ/B,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;KAAI;;;;IAK7D,eAAe;QACX,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;KAC3C;;IAGD,WAAW;QACP,QACI,IAAI,CAAC,qBAAqB;YAC1B,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EACzF;KACL;;IAGD,mBAAmB;QACf,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAC;KACpD;;IAGD,qBAAqB;QACjB,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,CAAC;KACtD;;IAGD,oBAAoB;QAChB,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;KACrD;;mHAtCQ,sBAAsB;uGAAtB,sBAAsB,yDCXnC,+tDAyCA;2FD9Ba,sBAAsB;kBALlC,SAAS;+BACI,mBAAmB,mBAEZ,uBAAuB,CAAC,MAAM;;;AEYnD;MAMa,iCACD,yBAA4C;;IAkBpD,YACW,YAA0B,EACzB,UAAqB,EAC7B,UAAsB,EACtB,wBAAkD,EAC1C,kBAAqC;QAE7C,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QANrC,iBAAY,GAAZ,YAAY,CAAc;QACzB,eAAU,GAAV,UAAU,CAAW;QAGrB,uBAAkB,GAAlB,kBAAkB,CAAmB;;QARzC,WAAM,GAAG,EAAE,CAAC;KAWnB;;IAtBD,IACI,KAAK,CAAC,SAAiB;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAqBD,eAAe;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;;IAID,sBAAsB;QAClB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAClG;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAGS,YAAY;QAClB,IAAI,IAAI,CAAC,YAAY,YAAY,IAAI,EAAE;YACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAChD;aAAM,IAAI,IAAI,CAAC,YAAY,YAAY,WAAW,EAAE;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACxE;aAAM;YACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;KAC3C;;IAGO,gBAAgB;QACpB,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;KAC1E;;IAGO,wBAAwB,CAAC,MAA4B;QACzD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;QACxG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC,YAAY,CAAC;KAC/E;;qHArEQ,wBAAwB;yGAAxB,wBAAwB,oLAYM,gBAAgB,oDAf7C,iDAAiD;AAuC3D;IADC,aAAa;;;;sEAGb;2FAtCQ,wBAAwB;kBALpC,SAAS;+BACI,qBAAqB,YACrB,iDAAiD;qNASvD,KAAK;sBADR,KAAK;gBAQN,YAAY;sBADX,SAAS;uBAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBAwBzD,sBAAsB;;ACvD1B;MACsB,iBAAiB;;IAKnC,YAAsB,wBAAiD;QAAjD,6BAAwB,GAAxB,wBAAwB,CAAyB;;QAH7D,aAAQ,GAAsB,EAAE,CAAC;KAGgC;;;;;IAM3E,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;KACpD;;IAGD,UAAU;QACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;KAC9D;;IAKS,mBAAmB,CAAC,MAAoB,EAAE,aAA2B;QAC3E,uCAAY,aAAa,GAAK,MAAM,EAAG;KAC1C;;IAGS,cAAc,CAAC,MAAuB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,OAAO;SACV;QAED,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KACxD;;;ACtCL;MAEa,sBAAsB,iBAA2C;;IAE1E,YACqC,uBAAgD,EAC9B,cAA4B,EAC3D,WAAuB;QAE3C,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAHoB,mBAAc,GAAd,cAAc,CAAc;QAC3D,gBAAW,GAAX,WAAW,CAAY;KAG9C;;;;;;IAOM,IAAI,CAAU,OAA0B,EAAE,YAA8B;QAC3E,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAElC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC;QACjG,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAEnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7B,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE;gBACjD,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;gBAC3C,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBACnD,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC7C;SACJ,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAClE,OAAO,EACP,wBAAwB,EACxB,YAAY,EACZ,EAAE,QAAQ,EAAE,CACf,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9B,MAAM,uBAAuB,GAAG;YAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;SACxB,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;QAEjG,OAAO,SAAS,CAAC;KACpB;;0GA/CQ,aAAa,kBAGV,uBAAuB,aACX,qBAAqB;8GAJpC,aAAa;2FAAb,aAAa;kBADzB,UAAU;;;8BAIF,MAAM;+BAAC,uBAAuB;;8BAC9B,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB;;8BACxC,QAAQ;;;;ACdjB;;;;MAQa,oCAAoC,mBAAmB;;wHAAvD,2BAA2B;4GAA3B,2BAA2B,sFAF1B,2BAA2B;2FAE5B,2BAA2B;kBAJvC,SAAS;mBAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,QAAQ,EAAE,2BAA2B;iBACxC;;;ACRD;;;;MAWa,6BAA6B;;0HAA7B,6BAA6B;8GAA7B,6BAA6B;2FAA7B,6BAA6B;kBAPzC,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,6BAA6B;oBACvC,IAAI,EAAE;wBACF,oCAAoC,EAAE,MAAM;qBAC/C;iBACJ;;;ACYD,MAAM,YAAY,GAAG;IACjB,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,6BAA6B;IAC7B,oBAAoB;CACvB,CAAC;MAqBW,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBA/BrB,eAAe;QACf,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,oBAAoB,aAMhB,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,mBAAmB;QACnB,UAAU,aAzBd,eAAe;QACf,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,oBAAoB,EAkBI,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB;0GAIzE,YAAY,aAFV,CAAC,aAAa,EAAE,uBAAuB,CAAC,YAf1C;YACL,SAAS;YACT,UAAU;YACV,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,cAAc;YACd,kBAAkB;YAClB,mBAAmB;YACnB,UAAU;SACb,EACuB,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB;2FAIzE,YAAY;kBAnBxB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,YAAY,CAAC;oBAC5B,OAAO,EAAE;wBACL,SAAS;wBACT,UAAU;wBACV,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,kBAAkB;wBAClB,mBAAmB;wBACnB,UAAU;qBACb;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,CAAC;oBACnF,eAAe,EAAE,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;oBACnE,SAAS,EAAE,CAAC,aAAa,EAAE,uBAAuB,CAAC;iBACtD;;;ACvDD;;;MAGa,cAAc;;;MCHd,iBAAiB;IAA9B;;QAiBI,cAAS,GAAY,IAAI,CAAC;;QAG1B,mBAAc,GAAY,IAAI,CAAC;;QAG/B,oBAAe,GAAY,IAAI,CAAC;KAsBnC;;;MC1CY,6BAA6B,iBAAiB;;;ACH3D;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-message-toast.mjs","sources":["../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Observable, Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout: Subject<any> = new Subject<any>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout: Observable<any> = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this._loadFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._loadFromTemplate(this.childContent);\n } else {\n this._loadFromString(this.childContent);\n }\n this.cdRef.detectChanges();\n }\n }\n\n /**\n * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\n } else {\n this._elRef.nativeElement.classList.add('fd-has-display-none');\n this._elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n this.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\n if (this._elRef.nativeElement.style.display === 'block') {\n return;\n }\n this._elRef.nativeElement.classList.remove('fd-has-display-none');\n this._elRef.nativeElement.classList.add('fd-has-display-block');\n }\n if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\n };\n this.componentRef = this.containerRef.createEmbeddedView(template, context);\n }\n\n /** @hidden */\n private _loadFromComponent(componentType: Type<any>): void {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n this.containerRef.clear();\n this.componentRef = this.containerRef.createComponent(componentFactory);\n }\n\n /** @hidden */\n private _loadFromString(contentString: string): void {\n this.containerRef.clear();\n this.message = contentString;\n }\n\n /** @hidden */\n private _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(private _dynamicComponentService: DynamicComponentService, private _liveAnnouncer: LiveAnnouncer) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(\n content: TemplateRef<any> | Type<any> | string,\n messageToastConfig: MessageToastConfig = new MessageToastConfig()\n ): MessageToastRef {\n // Get default values from message toast model\n messageToastConfig = Object.assign(new MessageToastConfig(), messageToastConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [MessageToastService, DynamicComponentService]\n})\nexport class MessageToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-message-toast.mjs","sources":["../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout = new Subject<void>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this._loadFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this._loadFromTemplate(this.childContent);\n } else {\n this._loadFromString(this.childContent);\n }\n this.cdRef.detectChanges();\n }\n }\n\n /**\n * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\n } else {\n this._elRef.nativeElement.classList.add('fd-has-display-none');\n this._elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n this.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\n if (this._elRef.nativeElement.style.display === 'block') {\n return;\n }\n this._elRef.nativeElement.classList.remove('fd-has-display-none');\n this._elRef.nativeElement.classList.add('fd-has-display-block');\n }\n if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\n };\n this.componentRef = this.containerRef.createEmbeddedView(template, context);\n }\n\n /** @hidden */\n private _loadFromComponent(componentType: Type<any>): void {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n this.containerRef.clear();\n this.componentRef = this.containerRef.createComponent(componentFactory);\n }\n\n /** @hidden */\n private _loadFromString(contentString: string): void {\n this.containerRef.clear();\n this.message = contentString;\n }\n\n /** @hidden */\n private _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(private _dynamicComponentService: DynamicComponentService, private _liveAnnouncer: LiveAnnouncer) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(\n content: TemplateRef<any> | Type<any> | string,\n messageToastConfig: MessageToastConfig = new MessageToastConfig()\n ): MessageToastRef {\n // Get default values from message toast model\n messageToastConfig = Object.assign(new MessageToastConfig(), messageToastConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [MessageToastService, DynamicComponentService]\n})\nexport class MessageToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|