@theseam/ui-common 1.0.0-beta.3 → 1.0.0-beta.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.
|
@@ -850,6 +850,7 @@ class Modal {
|
|
|
850
850
|
_createInjector(config, dialogRef, dialogContainer) {
|
|
851
851
|
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
852
852
|
const providers = [
|
|
853
|
+
{ provide: ModalRef, useValue: dialogRef },
|
|
853
854
|
{ provide: MODAL_CONTAINER, useValue: dialogContainer },
|
|
854
855
|
{ provide: MODAL_DATA, useValue: config.data },
|
|
855
856
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-modal.mjs","sources":["../../../projects/ui-common/modal/modal-utils.ts","../../../projects/ui-common/modal/modal-config.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.html","../../../projects/ui-common/modal/modal-injectors.ts","../../../projects/ui-common/modal/modal-ref.ts","../../../projects/ui-common/modal/modal.service.ts","../../../projects/ui-common/modal/directives/modal-close.directive.ts","../../../projects/ui-common/modal/directives/modal-footer-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-icon-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-title-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-title.directive.ts","../../../projects/ui-common/modal/directives/modal.directive.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.html","../../../projects/ui-common/modal/modal-footer/modal-footer.component.ts","../../../projects/ui-common/modal/modal-footer/modal-footer.component.html","../../../projects/ui-common/modal/modal-header/modal-header.component.ts","../../../projects/ui-common/modal/modal-header/modal-header.component.html","../../../projects/ui-common/modal/modal.models.ts","../../../projects/ui-common/modal/modal/modal.component.ts","../../../projects/ui-common/modal/modal/modal.component.html","../../../projects/ui-common/modal/route-modal/route-modal.component.ts","../../../projects/ui-common/modal/route-modal/route-modal.component.html","../../../projects/ui-common/modal/modal.module.ts","../../../projects/ui-common/modal/theseam-ui-common-modal.ts"],"sourcesContent":["import { ElementRef } from '@angular/core'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nexport function getClosestModal(element: ElementRef<HTMLElement>, openDialogs: ModalRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement\n\n while (parent && !parent.classList.contains('seam-modal-container')) {\n parent = parent.parentElement\n }\n\n const parentId = parent ? parent.id : null\n return parentId ? openDialogs.find(dialog => dialog.id === parentId) : null\n}\n","import { Direction } from '@angular/cdk/bidi'\nimport { ComponentType } from '@angular/cdk/overlay'\nimport { InjectionToken, ViewContainerRef } from '@angular/core'\n\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog'\n\n/** Possible overrides for a dialog's position. */\nexport interface IModalPosition {\n top?: string\n bottom?: string\n left?: string\n right?: string\n}\n\n// tslint:disable:no-inferrable-types\nexport class ModalConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<ModalContainerComponent>\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef\n\n /** The id of the dialog. */\n id?: string\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog'\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = ''\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = ''\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false\n\n /** The width of the dialog. */\n width?: string = '100%'\n\n /** The height of the dialog. */\n height?: string = ''\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = ''\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = ''\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = ''\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = ''\n\n /** The position of the dialog. */\n position?: IModalPosition\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null\n\n /** The layout direction for the dialog content. */\n direction?: Direction\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null\n\n /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** Bootstrap modal sizes */\n modalSize?: 'sm' | 'lg' | 'xl'\n}\n// tslint:enable:no-inferrable-types\n\nexport function mergeModalConfigs(a: ModalConfig, b: ModalConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify modal options. */\nexport const LIB_MODAL_CONFIG = new InjectionToken<ModalConfig>('seamModalConfig')\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapConfig, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y'\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\n\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n Optional,\n ViewChild,\n DOCUMENT\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { distinctUntilChanged } from 'rxjs/operators'\n\nimport { ModalConfig } from '../modal-config'\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached')\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'seam-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n animations: [\n trigger('dialog', [\n state('enter', style({ opacity: 1 })),\n state('exit, void', style({ opacity: 0 })),\n transition('* => enter', animate('{{enterAnimationDuration}}')),\n transition('* => exit, * => void', animate('{{exitAnimationDuration}}')),\n ])\n ],\n // tslint:disable:use-host-property-decorator\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n },\n standalone: false\n})\nexport class ModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n\n @HostBinding('attr.id') get _idAttr() { return this._id }\n\n // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator\n // metadata is not inherited by child classes, instead the host binding data is defined in a way\n // that can be inherited.\n // tslint:disable:no-host-decorator-in-concrete\n @HostBinding('attr.aria-label') get _ariaLabel() { return this._config.ariaLabel || null }\n\n @HostBinding('attr.aria-describedby')\n get _ariaDescribedBy() { return this._config.ariaDescribedBy }\n\n @HostBinding('attr.role') get _role() { return this._config.role }\n\n // @HostBinding('attr.tabindex') get _tabindex() { return -1 }\n\n @HostBinding('class.seam-modal-container') _seamModalContainer = true\n\n _id: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any,\n /** The dialog configuration. */\n public _config: ModalConfig) {\n super()\n\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, {\n defer: true,\n } as ConfigurableFocusTrapConfig)\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n })).subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocusFirstTabbableElement()\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog()\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap: ConfigurableFocusTrap\n\n @HostBinding('class.modal-dialog') _modalDialog = true\n @HostBinding('class.modal-dialog-centered') _modalDialogCentered = true\n\n @HostBinding('class.modal-sm') get _modalDialogSm() { return this._config.modalSize === 'sm' }\n @HostBinding('class.modal-lg') get _modalDialogLg() { return this._config.modalSize === 'lg' }\n @HostBinding('class.modal-xl') get _modalDialogXl() { return this._config.modalSize === 'xl' }\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet /*, { static: true }*/, { static: true }) _portalHost?: CdkPortalOutlet\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter: Subject<void> = new Subject()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit: Subject<void> = new Subject()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // NOTE: For current bootstrap style modal\n @HostListener('click', [ '$event' ])\n _onClick(event: UIEvent) {\n event.stopPropagation()\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy()\n this._animationDone.complete()\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachComponentPortal(portal)\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachTemplatePortal(portal)\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._document.activeElement as HTMLElement\n\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus())\n }\n }\n\n /**\n * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,\n * focus the dialog instead.\n */\n private _autoFocusFirstTabbableElement() {\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n // If we didn't find any focusable elements inside the dialog, focus the\n // container so the user can't tab into other elements behind it.\n if (!hasMovedFocus) {\n this._elementRef.nativeElement.focus()\n }\n })\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus()\n }\n }\n\n public getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n}\n","<div class=\"modal-content\" [tabindex]=\"-1\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n","import {\n ComponentType,\n Overlay,\n ScrollStrategy,\n BlockScrollStrategy,\n ViewportRuler,\n} from '@angular/cdk/overlay'\nimport { inject, InjectionToken, Injector, DOCUMENT } from '@angular/core'\n\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport const MODAL_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'ModalScrollStrategy',\n {\n providedIn: 'root',\n factory: () => {\n const injector = inject(Injector)\n return () => new BlockScrollStrategy(injector.get(ViewportRuler), injector.get(DOCUMENT))\n },\n },\n)\n\n/** Injection token for the Dialog's Data. */\nexport const MODAL_DATA = new InjectionToken<any>('ModalData')\n\n/** Injection token for the DialogConfig. */\nexport const MODAL_CONFIG = new InjectionToken<ModalConfig>('ModalConfig')\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const MODAL_CONTAINER =\n new InjectionToken<ComponentType<ModalContainerComponent>>('ModalContainer')\n\n/** @docs-private */\nexport function THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block()\n}\n\n/** @docs-private */\nexport const THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER = {\n provide: MODAL_SCROLL_STRATEGY,\n deps: [ Overlay ],\n useFactory: THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY,\n}\n","import { ESCAPE } from '@angular/cdk/keycodes'\nimport { GlobalPositionStrategy, OverlayRef, OverlaySizeConfig } from '@angular/cdk/overlay'\nimport { Observable } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\nimport { IModalPosition } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\nconst DRAG_CLOSE_THRESHOLD = 5\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class ModalRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T | null = null\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined\n\n private _clickOutsideCleanup: (() => void) | null = null\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: ModalContainerComponent,\n readonly id: string = `seam-modal-${uniqueId++}`) {\n // Pass the id along to the container.\n _containerInstance._id = id\n\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close()\n }\n })\n\n this._clickOutsideCleanup = this._initCloseOnClickOutside()\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop()\n })\n\n this.afterClosed().subscribe(() => {\n this._overlayRef.detach()\n this._overlayRef.dispose()\n this.componentInstance = null\n })\n\n // Close when escape keydown event occurs\n _overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close())\n }\n\n private _initCloseOnClickOutside(): () => void {\n const close = () => {\n if (!this.disableClose) {\n this.close()\n }\n }\n\n const isInContainer = (target: HTMLElement | null) => {\n return this._containerInstance.getNativeElement().contains(target)\n }\n\n const getPosition = (event: MouseEvent | PointerEvent): { x: number, y: number } => {\n return { x: event.clientX, y: event.clientY }\n }\n\n const dist = (x1: number, y1: number, x2: number, y2: number): number => {\n return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2))\n }\n\n let pressed = false\n let pressedPosition: { x: number, y: number } | null = null\n const _handlePressDown = (event: MouseEvent | PointerEvent) => {\n pressed = true\n pressedPosition = getPosition(event)\n }\n\n const _handlePressUp = (event: MouseEvent | PointerEvent) => {\n if (pressedPosition) {\n const target = event.target as HTMLElement | null\n if (target && !isInContainer(target)) {\n const currentPosition = getPosition(event)\n const d = dist(currentPosition.x, currentPosition.y, pressedPosition.x, pressedPosition.y)\n if (d < DRAG_CLOSE_THRESHOLD) {\n close()\n }\n }\n\n pressedPosition = null\n } else if (pressed) {\n close()\n }\n pressed = false\n }\n\n this._overlayRef.overlayElement.addEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.addEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.addEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.addEventListener('pointerup', _handlePressUp)\n\n return () => {\n this._overlayRef.overlayElement.removeEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.removeEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.removeEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.removeEventListener('pointerup', _handlePressUp)\n }\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick()\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult\n this._containerInstance._startExiting()\n if (this._clickOutsideCleanup) { this._clickOutsideCleanup() }\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: IModalPosition): this {\n const strategy = this._getPositionStrategy()\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right)\n } else {\n strategy.centerHorizontally()\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom)\n } else {\n strategy.centerVertically()\n }\n\n this._overlayRef.updatePosition()\n\n return this\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents()\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n if (size.width) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().width(size.width.toString())\n }\n if (size.height) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().height(size.height.toString())\n }\n this._overlayRef.updateSize(size)\n this._overlayRef.updatePosition()\n return this\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result))\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result))\n }\n}\n","import { Directionality } from '@angular/cdk/bidi'\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport { Location } from '@angular/common'\nimport {\n ComponentRef,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n Provider,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core'\nimport { defer, Observable, of, of as observableOf, Subject } from 'rxjs'\nimport { startWith, switchMap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { TheSeamOverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_DATA,\n MODAL_SCROLL_STRATEGY,\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable({ providedIn: 'root' })\nexport class Modal implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy\n\n private readonly _dialogRefConstructor = ModalRef\n\n /** Stream that emits when all dialogs are closed. */\n get _afterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase\n }\n _afterAllClosedBase = new Subject<void>()\n\n afterAllClosed: Observable<void> = defer(() => this.openDialogs.length\n ? this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)))\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<ModalRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened\n }\n _afterOpened: Subject<ModalRef<any>> = new Subject()\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): ModalRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs\n }\n _openDialogs: ModalRef<any>[] = []\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Inject(MODAL_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Modal,\n @Optional() location: Location,\n private _scrollbars: TheSeamOverlayScrollbarsService,\n private _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader\n ) {\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll())\n }\n\n this._scrollStrategy = scrollStrategy\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): ModalRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id)\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close())\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: ModalConfig<D>\n ): ModalRef<T, D> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(_config)\n const dialogContainer = this._attachDialogContainer(overlayRef, _config)\n const dialogRef = this._attachDialogContentForComponent(component, dialogContainer,\n overlayRef, _config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: ModalConfig): ModalRef<any> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(_config)\n const dialogContainer = this._attachDialogContainer(overlayRef, _config)\n const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer,\n overlayRef, _config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a lazy-loaded component. */\n openFromLazyComponent<T, D = any>(\n componentId: string,\n config?: ModalConfig<D>\n ): Observable<ModalRef<T, D>> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n return this._dynamicComponentLoaderModule\n .getComponentFactory<unknown>(componentId)\n .pipe(\n switchMap(componentFactory => {\n const modalRef = this.openFromComponent(\n componentFactory.componentType,\n _config,\n )\n return of(modalRef)\n })\n )\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close())\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private registerDialogRef(dialogRef: ModalRef<any>): void {\n this.openDialogs.push(dialogRef)\n\n let cleanupScroll: (() => void) | undefined\n const dialogBeforeOpenSub = dialogRef.beforeOpened().subscribe(() => {\n cleanupScroll = this._registerDialogRefScrollEvents(dialogRef)\n dialogBeforeOpenSub.unsubscribe()\n })\n\n const dialogBeforeCloseSub = dialogRef.beforeClosed().subscribe(() => {\n // TODO: Do I need to destroy the instance? I feel like I should, but the\n // way I have this implemented currently causes the native scrollbar to\n // appear before the element is removed from the DOM.\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n if (cleanupScroll) {\n cleanupScroll()\n }\n\n dialogBeforeCloseSub.unsubscribe()\n })\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef)\n dialogOpenSub.unsubscribe()\n })\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n const dialogIndex = this._openDialogs.indexOf(dialogRef)\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1)\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next()\n dialogCloseSub.unsubscribe()\n }\n })\n }\n\n // TODO: Cleanup. This was rushed together fast and became an unefficient mess.\n private _registerDialogRefScrollEvents(dialogRef: ModalRef<any>): () => void {\n const _scrollbarMouseDownListener = () => {\n if (dialogRef) { dialogRef.disableClose = true }\n }\n const _scrollbarMouseUpListener = () => {\n setTimeout(() => { if (dialogRef) { dialogRef.disableClose = false } })\n }\n\n let verticalHandleElement: HTMLElement | undefined\n let horizontalHandleElement: HTMLElement | undefined\n this._scrollbars.initializeInstance(dialogRef._overlayRef.overlayElement, {\n callbacks: {\n onInitialized: () => {\n // console.log('onInitialized')\n setTimeout(() => {\n const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n if (instance) {\n verticalHandleElement = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n horizontalHandleElement = instance.getElements().scrollbarHorizontal.handle\n if (horizontalHandleElement) {\n horizontalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.addEventListener('mouseup', _scrollbarMouseUpListener)\n document.addEventListener('touchend', _scrollbarMouseUpListener)\n document.addEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n })\n },\n onDestroyed: () => {\n // console.log('onDestroyed')\n // // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // // const scrollElem = instance.getElements().scrollbarVertical.handle\n // if (verticalHandleElement) {\n // verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (horizontalHandleElement) {\n // horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (verticalHandleElement || horizontalHandleElement) {\n // document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n // document.removeEventListener('touchend', _scrollbarMouseUpListener)\n // document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n // }\n }\n }\n })\n\n // Cleans up the registered events.\n return () => {\n // console.log('scrollevents cleanup')\n // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // const scrollElem = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (horizontalHandleElement) {\n horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n document.removeEventListener('touchend', _scrollbarMouseUpListener)\n document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: ModalConfig): OverlayRef {\n let panelClass = (config.panelClass || [])\n if (typeof panelClass === 'string') {\n panelClass = [ panelClass ]\n }\n panelClass = [ ...panelClass, 'modal', 'd-block', 'overflow-auto' ]\n\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight\n })\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass\n }\n return this.overlay.create(overlayConfig)\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: ModalConfig): ModalContainerComponent {\n const container = config.containerComponent || this.injector.get(MODAL_CONTAINER, ModalContainerComponent)\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [\n { provide: ModalConfig, useValue: config },\n ],\n })\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector)\n const containerRef = overlay.attach(containerPortal) as ComponentRef<ModalContainerComponent>\n containerRef.instance._config = config\n\n return containerRef.instance\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n // eslint-disable-next-line new-cap\n const dialogRef = new this._dialogRefConstructor<T>(overlayRef, dialogContainer, config.id)\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer)\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector))\n\n dialogRef.componentInstance = contentRef.instance\n dialogRef.disableClose = config.disableClose\n\n dialogRef.updateSize({ width: config.width, height: config.height })\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n // eslint-disable-next-line new-cap\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id)\n\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null as any,\n { $implicit: config.data, dialogRef } as any))\n dialogRef.updateSize({ width: config.width, height: config.height })\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: ModalConfig,\n dialogRef: ModalRef<T>,\n dialogContainer: ModalContainerComponent): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const providers: Provider[] = [\n { provide: MODAL_CONTAINER, useValue: dialogContainer },\n { provide: MODAL_DATA, useValue: config.data },\n ]\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n providers.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: observableOf(),\n },\n })\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers })\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: ModalConfig): ModalConfig {\n const dialogConfig = (this.injector.get(MODAL_CONFIG, ModalConfig) as unknown) as typeof ModalConfig\n // eslint-disable-next-line new-cap\n return { ...new dialogConfig(), ...config }\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnInit, Optional } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { getClosestModal } from '../modal-utils'\nimport { Modal } from '../modal.service'\n\n@Directive({\n selector: 'button[seamModalClose]',\n exportAs: 'seamModalClose',\n standalone: false\n})\nexport class ModalCloseDirective implements OnInit {\n\n public modalRef: ModalRef<any> | undefined | null\n\n // @HostBinding('class.close') _closeCss = true\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null\n\n @Input() seamModalClose: any\n\n // NOTE: This will most likely be temporary.\n @Input() seamModalNext: any\n @Input() seamModalNextConfig: any\n\n @HostListener('click')\n _onClick() {\n if (this.modalRef) {\n if (this.seamModalNext) {\n this.modalRef.afterClosed().subscribe(() => {\n if (typeof this.seamModalNext === 'string') {\n this._modal.openFromLazyComponent(this.seamModalNext, this.seamModalNextConfig).subscribe()\n } else {\n this._modal.openFromComponent(this.seamModalNext, this.seamModalNextConfig)\n }\n })\n }\n this.modalRef.close(this.seamModalClose)\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _modal: Modal,\n @Optional() private _modalRef?: ModalRef<any>\n ) {\n this.modalRef = _modalRef\n }\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef = getClosestModal(this._elementRef, this._modal.openDialogs)\n }\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalFooterTpl]',\n standalone: false\n})\nexport class ModalFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderIconTpl]',\n standalone: false\n})\nexport class ModalHeaderIconTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderTitleTpl]',\n standalone: false\n})\nexport class ModalHeaderTitleTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, ElementRef, HostBinding, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalTitle]',\n standalone: false\n})\nexport class ModalTitleDirective {\n\n @HostBinding('class.modal-title') _modalTitleCss = true\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { Modal } from '../modal.service'\n\n// TODO: Make this work for current modal usage.\n\n@Directive({\n selector: '[seamModal]',\n exportAs: 'seamModal',\n standalone: false\n})\nexport class ModalDirective {\n\n constructor(\n public template: TemplateRef<HTMLElement>,\n public modal: Modal\n ) { }\n\n open(): void {\n // console.log('[ModalDirective] open')\n const ref = this.modal.openFromTemplate(this.template)\n // ref.backdropClick().subscribe(e => console.log('backdropClick', e))\n }\n\n}\n","import { Component, HostBinding } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss'],\n standalone: false\n})\nexport class ModalBodyComponent {\n\n @HostBinding('class.modal-body') _modalBodyCss = true\n @HostBinding('class.p-3') _paddingCss = true\n\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n standalone: false\n})\nexport class ModalFooterComponent {\n\n @HostBinding('class.modal-footer') _modalFooterCss = true\n\n}\n","<ng-content></ng-content>\n","import { Component, ContentChild, HostBinding, Input } from '@angular/core'\n\nimport { ModalCloseDirective } from '../directives/modal-close.directive'\nimport { ModalTitleDirective } from '../directives/modal-title.directive'\n\n@Component({\n selector: 'seam-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n standalone: false\n})\nexport class ModalHeaderComponent {\n\n @HostBinding('class.modal-header') _modalHeaderCss = true\n\n @Input() hasCloseBtn = true\n\n @ContentChild(ModalTitleDirective, { static: true }) _titleDirective?: ModalTitleDirective\n @ContentChild(ModalCloseDirective, { static: true }) _closeDirective?: ModalCloseDirective\n\n}\n","<ng-content></ng-content>\n\n<!-- <button seamModalClose>\n <span aria-hidden=\"true\">×</span>\n</button> -->\n\n<!-- seam-modal-header-close -->\n","import { OverlayRef } from '@angular/cdk/overlay'\nimport { EventEmitter, InjectionToken } from '@angular/core'\nimport { UntypedFormGroup } from '@angular/forms'\n\nexport interface IModalContainer {\n\n /**\n * Modal will close if a key is pressed with any of these key codes.\n *\n * default: [ 27 ] // 27 = ESCAPE\n */\n closeOnKeyPressed: number[]\n\n /** Emits when the modal has closed. */\n modalClosed: EventEmitter<void>\n\n /** Reference to the cdk OverlayRef. */\n _overlayRef?: OverlayRef\n\n /** Makes the modal container a form with this formGroup. */\n form: UntypedFormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n formSubmit: EventEmitter<void>\n\n /** Opens the modal. */\n open(): void\n\n /** Closes the modal. */\n close(): void\n\n}\n\nexport const THESEAM_MODAL_CONTAINER = new InjectionToken<IModalContainer>('seamModalContainer')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n AfterViewInit, Component, ContentChild, EventEmitter, forwardRef, Input,\n isDevMode, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef\n} from '@angular/core'\nimport { UntypedFormGroup } from '@angular/forms'\nimport { ActivatedRoute } from '@angular/router'\nimport { filter } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport { ModalFooterTplDirective } from '../directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from '../directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from '../directives/modal-header-title-tpl.directive'\nimport { IModalContainer, THESEAM_MODAL_CONTAINER } from '../modal.models'\n\nexport interface TheSeamModalIconTemplateContext {\n $implicit: SeamIcon | undefined\n icon: SeamIcon | undefined\n}\n\nexport interface TheSeamModalTitleTemplateContext {\n $implicit: string | undefined | null\n title: string | undefined | null\n}\n\nexport const LIB_MODAL: any = {\n provide: THESEAM_MODAL_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => ModalComponent),\n multi: true,\n}\n\n@Component({\n selector: 'seam-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [LIB_MODAL],\n standalone: false\n})\nexport class ModalComponent implements OnDestroy, AfterViewInit, IModalContainer {\n static ngAcceptInputType_showCloseBtn: BooleanInput\n\n @Input()\n set closeOnKeyPressed(value: number[]) { this._closeOnKeyPressed = Array.isArray(value) ? value : [] }\n get closeOnKeyPressed(): number[] { return this._closeOnKeyPressed }\n private _closeOnKeyPressed: number[] = [ ESCAPE ]\n\n @Input() @InputBoolean() showCloseBtn = true\n\n @Input() titleText: string | undefined | null\n\n @Input()\n get icon(): SeamIcon | undefined { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n }\n\n public _iconUrl: string | undefined\n public _iconObj: IconProp | undefined\n\n @Input()\n get iconTpl(): TemplateRef<TheSeamModalIconTemplateContext> | undefined {\n return this._iconTpl || (this._queryIconTpl && this._queryIconTpl.template)\n }\n set iconTpl(value: TemplateRef<TheSeamModalIconTemplateContext> | undefined) {\n this._iconTpl = value\n }\n private _iconTpl?: TemplateRef<TheSeamModalIconTemplateContext>\n\n @Input()\n get titleTpl(): TemplateRef<TheSeamModalTitleTemplateContext> | undefined {\n return this._titleTpl || (this._queryTitleTpl && this._queryTitleTpl.template)\n }\n set titleTpl(value: TemplateRef<TheSeamModalTitleTemplateContext> | undefined) {\n this._titleTpl = value\n }\n private _titleTpl?: TemplateRef<TheSeamModalTitleTemplateContext>\n\n @Input()\n get footerTpl(): TemplateRef<HTMLElement> | undefined {\n return this._footerTpl || (this._queryFooterTpl && this._queryFooterTpl.template)\n }\n set footerTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._footerTpl = value\n }\n private _footerTpl?: TemplateRef<HTMLElement>\n\n @Output() modalClosed = new EventEmitter<void>()\n\n _overlayRef?: OverlayRef\n\n @Output() overlayDetached = new EventEmitter<void>()\n\n @ContentChild(ModalHeaderIconTplDirective, { static: true }) _queryIconTpl?: ModalHeaderIconTplDirective\n @ContentChild(ModalHeaderTitleTplDirective, { static: true }) _queryTitleTpl?: ModalHeaderTitleTplDirective\n @ContentChild(ModalFooterTplDirective, { static: true }) _queryFooterTpl?: ModalFooterTplDirective\n\n @ViewChild('modalTpl', { static: true }) _modalTpl?: TemplateRef<HTMLElement>\n\n /** Makes the modal container a form with this formGroup. */\n @Input() form: UntypedFormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n @Output() formSubmit = new EventEmitter<void>()\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _route: ActivatedRoute\n ) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('seamModal has some issues with its design. Use the Modal service for now, because seamModal will have breaking changes or be removed soon.')\n }\n }\n\n ngOnDestroy() {\n this.close()\n }\n\n ngAfterViewInit() {\n if (this.isRouteModal()) {\n this.open()\n }\n }\n\n public open(portal?: TemplatePortal | ComponentPortal<object>) {\n if (this._overlayRef && this._overlayRef.hasAttached()) { return }\n\n const positionStrategy = this._overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically()\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n positionStrategy\n })\n\n this._overlayRef.detachments().subscribe(_ => this.overlayDetached.emit())\n\n this._overlayRef.backdropClick().subscribe(_ => this.close())\n\n this._overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(e => e.keyCode === ESCAPE))\n .subscribe(_ => this.close())\n\n let portalToAttach = portal\n if (!portalToAttach) {\n if (!this._modalTpl) {\n throw new Error(`_modalTpl not found.`)\n }\n portalToAttach = new TemplatePortal(this._modalTpl, this._viewContainerRef)\n }\n\n this._overlayRef.attach(portalToAttach)\n }\n\n public close() {\n if (!this._overlayRef || !this._overlayRef.hasAttached()) { return }\n\n this._overlayRef.detach()\n\n this.modalClosed.emit()\n }\n\n _onSubmit() {\n this.formSubmit.emit()\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","<ng-template #modalTpl>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"_onSubmit()\" class=\"p-4\" style=\"max-width: 800px\">\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n </form>\n\n <div *ngIf=\"!form\" class=\"p-4\" style=\"max-width: 800px\">\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n </div>\n\n <ng-template #modalContent>\n <div class=\"modal-content\">\n <div class=\"modal-header py-2\">\n <h4 class=\"modal-title\">\n <span class=\"pr-2 modal-header-icon\">\n <ng-container *ngIf=\"iconTpl; else noIconTpl\">\n <ng-template\n [ngTemplateOutlet]=\"iconTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: icon, icon: icon }\">\n </ng-template>\n </ng-container>\n <ng-template #noIconTpl>\n <fa-icon *ngIf=\"_iconObj\"\n class=\"modal-header-icon--fa\"\n [icon]=\"_iconObj\"\n size=\"sm\"></fa-icon>\n <img *ngIf=\"_iconUrl\"\n class=\"modal-header-icon--img\"\n [src]=\"_iconUrl\" [alt]=\"titleText\">\n </ng-template>\n </span>\n\n <span class=\"modal-header-title\">\n <ng-container *ngIf=\"titleTpl; else noTitleTpl\">\n <ng-template\n [ngTemplateOutlet]=\"titleTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: titleText, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noTitleTpl>{{ titleText }}</ng-template>\n </span>\n </h4>\n <button *ngIf=\"showCloseBtn\"\n type=\"button\"\n class=\"close\"\n (click)=\"close()\"\n aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"_queryFooterTpl\" class=\"modal-footer p-2\">\n <ng-container *ngComponentOutlet=\"$any(_queryFooterTpl.template)\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ng-template>\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'\n\n// import { ModalComponent } from '../modal/modal.component'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { Modal } from '../modal.service'\n\n@Component({\n selector: 'seam-route-modal',\n templateUrl: './route-modal.component.html',\n styleUrls: ['./route-modal.component.scss'],\n standalone: false\n})\nexport class RouteModalComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // @ViewChild(ModalComponent, { static: true }) _modal: ModalComponent\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _modal: Modal\n ) { }\n\n ngOnInit() {\n this._route.data\n .pipe(\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe(data => {\n // console.log('data', data)\n if (data.routeComponent) {\n // console.log(this._route.snapshot)\n const modalRef = this._modal.openFromComponent(data.routeComponent, {\n modalSize: 'lg',\n data\n })\n modalRef.afterClosed().subscribe(() => {\n const parent = this.getOutletParent()\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n // { relativeTo: this._route.parent }\n { relativeTo: parent }\n )\n })\n }\n })\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n getOutletParent() {\n let route: ActivatedRoute | null = this._route\n while (route && route.outlet !== 'modal') { route = route.parent }\n return route ? route.parent : route\n }\n\n public _onDetached() {\n if (this.isRouteModal()) {\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n { relativeTo: this._route.parent }\n )\n }\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","<!-- <seam-modal (overlayDetached)=\"_onDetached()\">\n <router-outlet></router-outlet>\n</seam-modal> -->\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { ModalCloseDirective } from './directives/modal-close.directive'\nimport { ModalFooterTplDirective } from './directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from './directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from './directives/modal-header-title-tpl.directive'\nimport { ModalTitleDirective } from './directives/modal-title.directive'\nimport { ModalDirective } from './directives/modal.directive'\nimport { ModalBodyComponent } from './modal-body/modal-body.component'\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalFooterComponent } from './modal-footer/modal-footer.component'\nimport { ModalHeaderComponent } from './modal-header/modal-header.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER\n} from './modal-injectors'\nimport { ModalComponent } from './modal/modal.component'\nimport { RouteModalComponent } from './route-modal/route-modal.component'\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n ModalContainerComponent,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FontAwesomeModule,\n RouterModule,\n ReactiveFormsModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n providers: [\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER,\n { provide: MODAL_CONTAINER, useValue: ModalContainerComponent },\n { provide: MODAL_CONFIG, useValue: ModalConfig },\n ]\n})\nexport class TheSeamModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ModalConfig","observableOf","i2","i3","i1.Modal","i2.ModalRef","i1","i4","i2.Modal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-modal.mjs","sources":["../../../projects/ui-common/modal/modal-utils.ts","../../../projects/ui-common/modal/modal-config.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.html","../../../projects/ui-common/modal/modal-injectors.ts","../../../projects/ui-common/modal/modal-ref.ts","../../../projects/ui-common/modal/modal.service.ts","../../../projects/ui-common/modal/directives/modal-close.directive.ts","../../../projects/ui-common/modal/directives/modal-footer-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-icon-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-title-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-title.directive.ts","../../../projects/ui-common/modal/directives/modal.directive.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.html","../../../projects/ui-common/modal/modal-footer/modal-footer.component.ts","../../../projects/ui-common/modal/modal-footer/modal-footer.component.html","../../../projects/ui-common/modal/modal-header/modal-header.component.ts","../../../projects/ui-common/modal/modal-header/modal-header.component.html","../../../projects/ui-common/modal/modal.models.ts","../../../projects/ui-common/modal/modal/modal.component.ts","../../../projects/ui-common/modal/modal/modal.component.html","../../../projects/ui-common/modal/route-modal/route-modal.component.ts","../../../projects/ui-common/modal/route-modal/route-modal.component.html","../../../projects/ui-common/modal/modal.module.ts","../../../projects/ui-common/modal/theseam-ui-common-modal.ts"],"sourcesContent":["import { ElementRef } from '@angular/core'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nexport function getClosestModal(element: ElementRef<HTMLElement>, openDialogs: ModalRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement\n\n while (parent && !parent.classList.contains('seam-modal-container')) {\n parent = parent.parentElement\n }\n\n const parentId = parent ? parent.id : null\n return parentId ? openDialogs.find(dialog => dialog.id === parentId) : null\n}\n","import { Direction } from '@angular/cdk/bidi'\nimport { ComponentType } from '@angular/cdk/overlay'\nimport { InjectionToken, ViewContainerRef } from '@angular/core'\n\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog'\n\n/** Possible overrides for a dialog's position. */\nexport interface IModalPosition {\n top?: string\n bottom?: string\n left?: string\n right?: string\n}\n\n// tslint:disable:no-inferrable-types\nexport class ModalConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<ModalContainerComponent>\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef\n\n /** The id of the dialog. */\n id?: string\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog'\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = ''\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = ''\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false\n\n /** The width of the dialog. */\n width?: string = '100%'\n\n /** The height of the dialog. */\n height?: string = ''\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = ''\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = ''\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = ''\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = ''\n\n /** The position of the dialog. */\n position?: IModalPosition\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null\n\n /** The layout direction for the dialog content. */\n direction?: Direction\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null\n\n /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** Bootstrap modal sizes */\n modalSize?: 'sm' | 'lg' | 'xl'\n}\n// tslint:enable:no-inferrable-types\n\nexport function mergeModalConfigs(a: ModalConfig, b: ModalConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify modal options. */\nexport const LIB_MODAL_CONFIG = new InjectionToken<ModalConfig>('seamModalConfig')\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapConfig, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y'\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\n\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n Optional,\n ViewChild,\n DOCUMENT\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { distinctUntilChanged } from 'rxjs/operators'\n\nimport { ModalConfig } from '../modal-config'\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached')\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'seam-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n animations: [\n trigger('dialog', [\n state('enter', style({ opacity: 1 })),\n state('exit, void', style({ opacity: 0 })),\n transition('* => enter', animate('{{enterAnimationDuration}}')),\n transition('* => exit, * => void', animate('{{exitAnimationDuration}}')),\n ])\n ],\n // tslint:disable:use-host-property-decorator\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n },\n standalone: false\n})\nexport class ModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n\n @HostBinding('attr.id') get _idAttr() { return this._id }\n\n // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator\n // metadata is not inherited by child classes, instead the host binding data is defined in a way\n // that can be inherited.\n // tslint:disable:no-host-decorator-in-concrete\n @HostBinding('attr.aria-label') get _ariaLabel() { return this._config.ariaLabel || null }\n\n @HostBinding('attr.aria-describedby')\n get _ariaDescribedBy() { return this._config.ariaDescribedBy }\n\n @HostBinding('attr.role') get _role() { return this._config.role }\n\n // @HostBinding('attr.tabindex') get _tabindex() { return -1 }\n\n @HostBinding('class.seam-modal-container') _seamModalContainer = true\n\n _id: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any,\n /** The dialog configuration. */\n public _config: ModalConfig) {\n super()\n\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, {\n defer: true,\n } as ConfigurableFocusTrapConfig)\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n })).subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocusFirstTabbableElement()\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog()\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap: ConfigurableFocusTrap\n\n @HostBinding('class.modal-dialog') _modalDialog = true\n @HostBinding('class.modal-dialog-centered') _modalDialogCentered = true\n\n @HostBinding('class.modal-sm') get _modalDialogSm() { return this._config.modalSize === 'sm' }\n @HostBinding('class.modal-lg') get _modalDialogLg() { return this._config.modalSize === 'lg' }\n @HostBinding('class.modal-xl') get _modalDialogXl() { return this._config.modalSize === 'xl' }\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet /*, { static: true }*/, { static: true }) _portalHost?: CdkPortalOutlet\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter: Subject<void> = new Subject()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit: Subject<void> = new Subject()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // NOTE: For current bootstrap style modal\n @HostListener('click', [ '$event' ])\n _onClick(event: UIEvent) {\n event.stopPropagation()\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy()\n this._animationDone.complete()\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachComponentPortal(portal)\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachTemplatePortal(portal)\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._document.activeElement as HTMLElement\n\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus())\n }\n }\n\n /**\n * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,\n * focus the dialog instead.\n */\n private _autoFocusFirstTabbableElement() {\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n // If we didn't find any focusable elements inside the dialog, focus the\n // container so the user can't tab into other elements behind it.\n if (!hasMovedFocus) {\n this._elementRef.nativeElement.focus()\n }\n })\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus()\n }\n }\n\n public getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n}\n","<div class=\"modal-content\" [tabindex]=\"-1\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n","import {\n ComponentType,\n Overlay,\n ScrollStrategy,\n BlockScrollStrategy,\n ViewportRuler,\n} from '@angular/cdk/overlay'\nimport { inject, InjectionToken, Injector, DOCUMENT } from '@angular/core'\n\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport const MODAL_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'ModalScrollStrategy',\n {\n providedIn: 'root',\n factory: () => {\n const injector = inject(Injector)\n return () => new BlockScrollStrategy(injector.get(ViewportRuler), injector.get(DOCUMENT))\n },\n },\n)\n\n/** Injection token for the Dialog's Data. */\nexport const MODAL_DATA = new InjectionToken<any>('ModalData')\n\n/** Injection token for the DialogConfig. */\nexport const MODAL_CONFIG = new InjectionToken<ModalConfig>('ModalConfig')\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const MODAL_CONTAINER =\n new InjectionToken<ComponentType<ModalContainerComponent>>('ModalContainer')\n\n/** @docs-private */\nexport function THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block()\n}\n\n/** @docs-private */\nexport const THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER = {\n provide: MODAL_SCROLL_STRATEGY,\n deps: [ Overlay ],\n useFactory: THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY,\n}\n","import { ESCAPE } from '@angular/cdk/keycodes'\nimport { GlobalPositionStrategy, OverlayRef, OverlaySizeConfig } from '@angular/cdk/overlay'\nimport { Observable } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\nimport { IModalPosition } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\nconst DRAG_CLOSE_THRESHOLD = 5\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class ModalRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T | null = null\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined\n\n private _clickOutsideCleanup: (() => void) | null = null\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: ModalContainerComponent,\n readonly id: string = `seam-modal-${uniqueId++}`) {\n // Pass the id along to the container.\n _containerInstance._id = id\n\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close()\n }\n })\n\n this._clickOutsideCleanup = this._initCloseOnClickOutside()\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop()\n })\n\n this.afterClosed().subscribe(() => {\n this._overlayRef.detach()\n this._overlayRef.dispose()\n this.componentInstance = null\n })\n\n // Close when escape keydown event occurs\n _overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close())\n }\n\n private _initCloseOnClickOutside(): () => void {\n const close = () => {\n if (!this.disableClose) {\n this.close()\n }\n }\n\n const isInContainer = (target: HTMLElement | null) => {\n return this._containerInstance.getNativeElement().contains(target)\n }\n\n const getPosition = (event: MouseEvent | PointerEvent): { x: number, y: number } => {\n return { x: event.clientX, y: event.clientY }\n }\n\n const dist = (x1: number, y1: number, x2: number, y2: number): number => {\n return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2))\n }\n\n let pressed = false\n let pressedPosition: { x: number, y: number } | null = null\n const _handlePressDown = (event: MouseEvent | PointerEvent) => {\n pressed = true\n pressedPosition = getPosition(event)\n }\n\n const _handlePressUp = (event: MouseEvent | PointerEvent) => {\n if (pressedPosition) {\n const target = event.target as HTMLElement | null\n if (target && !isInContainer(target)) {\n const currentPosition = getPosition(event)\n const d = dist(currentPosition.x, currentPosition.y, pressedPosition.x, pressedPosition.y)\n if (d < DRAG_CLOSE_THRESHOLD) {\n close()\n }\n }\n\n pressedPosition = null\n } else if (pressed) {\n close()\n }\n pressed = false\n }\n\n this._overlayRef.overlayElement.addEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.addEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.addEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.addEventListener('pointerup', _handlePressUp)\n\n return () => {\n this._overlayRef.overlayElement.removeEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.removeEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.removeEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.removeEventListener('pointerup', _handlePressUp)\n }\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick()\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult\n this._containerInstance._startExiting()\n if (this._clickOutsideCleanup) { this._clickOutsideCleanup() }\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: IModalPosition): this {\n const strategy = this._getPositionStrategy()\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right)\n } else {\n strategy.centerHorizontally()\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom)\n } else {\n strategy.centerVertically()\n }\n\n this._overlayRef.updatePosition()\n\n return this\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents()\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n if (size.width) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().width(size.width.toString())\n }\n if (size.height) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().height(size.height.toString())\n }\n this._overlayRef.updateSize(size)\n this._overlayRef.updatePosition()\n return this\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result))\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result))\n }\n}\n","import { Directionality } from '@angular/cdk/bidi'\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport { Location } from '@angular/common'\nimport {\n ComponentRef,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n Provider,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core'\nimport { defer, Observable, of, of as observableOf, Subject } from 'rxjs'\nimport { startWith, switchMap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { TheSeamOverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_DATA,\n MODAL_SCROLL_STRATEGY,\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable({ providedIn: 'root' })\nexport class Modal implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy\n\n private readonly _dialogRefConstructor = ModalRef\n\n /** Stream that emits when all dialogs are closed. */\n get _afterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase\n }\n _afterAllClosedBase = new Subject<void>()\n\n afterAllClosed: Observable<void> = defer(() => this.openDialogs.length\n ? this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)))\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<ModalRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened\n }\n _afterOpened: Subject<ModalRef<any>> = new Subject()\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): ModalRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs\n }\n _openDialogs: ModalRef<any>[] = []\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Inject(MODAL_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Modal,\n @Optional() location: Location,\n private _scrollbars: TheSeamOverlayScrollbarsService,\n private _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader\n ) {\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll())\n }\n\n this._scrollStrategy = scrollStrategy\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): ModalRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id)\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close())\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: ModalConfig<D>\n ): ModalRef<T, D> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(_config)\n const dialogContainer = this._attachDialogContainer(overlayRef, _config)\n const dialogRef = this._attachDialogContentForComponent(component, dialogContainer,\n overlayRef, _config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: ModalConfig): ModalRef<any> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(_config)\n const dialogContainer = this._attachDialogContainer(overlayRef, _config)\n const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer,\n overlayRef, _config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a lazy-loaded component. */\n openFromLazyComponent<T, D = any>(\n componentId: string,\n config?: ModalConfig<D>\n ): Observable<ModalRef<T, D>> {\n const _config = this._applyConfigDefaults(config)\n\n if (_config.id && this.getById(_config.id)) {\n throw Error(`Modal with id \"${_config.id}\" exists already. The modal id must be unique.`)\n }\n\n return this._dynamicComponentLoaderModule\n .getComponentFactory<unknown>(componentId)\n .pipe(\n switchMap(componentFactory => {\n const modalRef = this.openFromComponent(\n componentFactory.componentType,\n _config,\n )\n return of(modalRef)\n })\n )\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close())\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private registerDialogRef(dialogRef: ModalRef<any>): void {\n this.openDialogs.push(dialogRef)\n\n let cleanupScroll: (() => void) | undefined\n const dialogBeforeOpenSub = dialogRef.beforeOpened().subscribe(() => {\n cleanupScroll = this._registerDialogRefScrollEvents(dialogRef)\n dialogBeforeOpenSub.unsubscribe()\n })\n\n const dialogBeforeCloseSub = dialogRef.beforeClosed().subscribe(() => {\n // TODO: Do I need to destroy the instance? I feel like I should, but the\n // way I have this implemented currently causes the native scrollbar to\n // appear before the element is removed from the DOM.\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n if (cleanupScroll) {\n cleanupScroll()\n }\n\n dialogBeforeCloseSub.unsubscribe()\n })\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef)\n dialogOpenSub.unsubscribe()\n })\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n const dialogIndex = this._openDialogs.indexOf(dialogRef)\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1)\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next()\n dialogCloseSub.unsubscribe()\n }\n })\n }\n\n // TODO: Cleanup. This was rushed together fast and became an unefficient mess.\n private _registerDialogRefScrollEvents(dialogRef: ModalRef<any>): () => void {\n const _scrollbarMouseDownListener = () => {\n if (dialogRef) { dialogRef.disableClose = true }\n }\n const _scrollbarMouseUpListener = () => {\n setTimeout(() => { if (dialogRef) { dialogRef.disableClose = false } })\n }\n\n let verticalHandleElement: HTMLElement | undefined\n let horizontalHandleElement: HTMLElement | undefined\n this._scrollbars.initializeInstance(dialogRef._overlayRef.overlayElement, {\n callbacks: {\n onInitialized: () => {\n // console.log('onInitialized')\n setTimeout(() => {\n const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n if (instance) {\n verticalHandleElement = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n horizontalHandleElement = instance.getElements().scrollbarHorizontal.handle\n if (horizontalHandleElement) {\n horizontalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.addEventListener('mouseup', _scrollbarMouseUpListener)\n document.addEventListener('touchend', _scrollbarMouseUpListener)\n document.addEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n })\n },\n onDestroyed: () => {\n // console.log('onDestroyed')\n // // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // // const scrollElem = instance.getElements().scrollbarVertical.handle\n // if (verticalHandleElement) {\n // verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (horizontalHandleElement) {\n // horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (verticalHandleElement || horizontalHandleElement) {\n // document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n // document.removeEventListener('touchend', _scrollbarMouseUpListener)\n // document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n // }\n }\n }\n })\n\n // Cleans up the registered events.\n return () => {\n // console.log('scrollevents cleanup')\n // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // const scrollElem = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (horizontalHandleElement) {\n horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n document.removeEventListener('touchend', _scrollbarMouseUpListener)\n document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: ModalConfig): OverlayRef {\n let panelClass = (config.panelClass || [])\n if (typeof panelClass === 'string') {\n panelClass = [ panelClass ]\n }\n panelClass = [ ...panelClass, 'modal', 'd-block', 'overflow-auto' ]\n\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight\n })\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass\n }\n return this.overlay.create(overlayConfig)\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: ModalConfig): ModalContainerComponent {\n const container = config.containerComponent || this.injector.get(MODAL_CONTAINER, ModalContainerComponent)\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [\n { provide: ModalConfig, useValue: config },\n ],\n })\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector)\n const containerRef = overlay.attach(containerPortal) as ComponentRef<ModalContainerComponent>\n containerRef.instance._config = config\n\n return containerRef.instance\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n // eslint-disable-next-line new-cap\n const dialogRef = new this._dialogRefConstructor<T>(overlayRef, dialogContainer, config.id)\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer)\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector))\n\n dialogRef.componentInstance = contentRef.instance\n dialogRef.disableClose = config.disableClose\n\n dialogRef.updateSize({ width: config.width, height: config.height })\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n // eslint-disable-next-line new-cap\n const dialogRef = new this._dialogRefConstructor(overlayRef, dialogContainer, config.id)\n\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null as any,\n { $implicit: config.data, dialogRef } as any))\n dialogRef.updateSize({ width: config.width, height: config.height })\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: ModalConfig,\n dialogRef: ModalRef<T>,\n dialogContainer: ModalContainerComponent): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const providers: Provider[] = [\n { provide: ModalRef, useValue: dialogRef },\n { provide: MODAL_CONTAINER, useValue: dialogContainer },\n { provide: MODAL_DATA, useValue: config.data },\n ]\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n providers.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: observableOf(),\n },\n })\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers })\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: ModalConfig): ModalConfig {\n const dialogConfig = (this.injector.get(MODAL_CONFIG, ModalConfig) as unknown) as typeof ModalConfig\n // eslint-disable-next-line new-cap\n return { ...new dialogConfig(), ...config }\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnInit, Optional } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { getClosestModal } from '../modal-utils'\nimport { Modal } from '../modal.service'\n\n@Directive({\n selector: 'button[seamModalClose]',\n exportAs: 'seamModalClose',\n standalone: false\n})\nexport class ModalCloseDirective implements OnInit {\n\n public modalRef: ModalRef<any> | undefined | null\n\n // @HostBinding('class.close') _closeCss = true\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null\n\n @Input() seamModalClose: any\n\n // NOTE: This will most likely be temporary.\n @Input() seamModalNext: any\n @Input() seamModalNextConfig: any\n\n @HostListener('click')\n _onClick() {\n if (this.modalRef) {\n if (this.seamModalNext) {\n this.modalRef.afterClosed().subscribe(() => {\n if (typeof this.seamModalNext === 'string') {\n this._modal.openFromLazyComponent(this.seamModalNext, this.seamModalNextConfig).subscribe()\n } else {\n this._modal.openFromComponent(this.seamModalNext, this.seamModalNextConfig)\n }\n })\n }\n this.modalRef.close(this.seamModalClose)\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _modal: Modal,\n @Optional() private _modalRef?: ModalRef<any>\n ) {\n this.modalRef = _modalRef\n }\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef = getClosestModal(this._elementRef, this._modal.openDialogs)\n }\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalFooterTpl]',\n standalone: false\n})\nexport class ModalFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderIconTpl]',\n standalone: false\n})\nexport class ModalHeaderIconTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderTitleTpl]',\n standalone: false\n})\nexport class ModalHeaderTitleTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, ElementRef, HostBinding, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalTitle]',\n standalone: false\n})\nexport class ModalTitleDirective {\n\n @HostBinding('class.modal-title') _modalTitleCss = true\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { Modal } from '../modal.service'\n\n// TODO: Make this work for current modal usage.\n\n@Directive({\n selector: '[seamModal]',\n exportAs: 'seamModal',\n standalone: false\n})\nexport class ModalDirective {\n\n constructor(\n public template: TemplateRef<HTMLElement>,\n public modal: Modal\n ) { }\n\n open(): void {\n // console.log('[ModalDirective] open')\n const ref = this.modal.openFromTemplate(this.template)\n // ref.backdropClick().subscribe(e => console.log('backdropClick', e))\n }\n\n}\n","import { Component, HostBinding } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss'],\n standalone: false\n})\nexport class ModalBodyComponent {\n\n @HostBinding('class.modal-body') _modalBodyCss = true\n @HostBinding('class.p-3') _paddingCss = true\n\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n standalone: false\n})\nexport class ModalFooterComponent {\n\n @HostBinding('class.modal-footer') _modalFooterCss = true\n\n}\n","<ng-content></ng-content>\n","import { Component, ContentChild, HostBinding, Input } from '@angular/core'\n\nimport { ModalCloseDirective } from '../directives/modal-close.directive'\nimport { ModalTitleDirective } from '../directives/modal-title.directive'\n\n@Component({\n selector: 'seam-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n standalone: false\n})\nexport class ModalHeaderComponent {\n\n @HostBinding('class.modal-header') _modalHeaderCss = true\n\n @Input() hasCloseBtn = true\n\n @ContentChild(ModalTitleDirective, { static: true }) _titleDirective?: ModalTitleDirective\n @ContentChild(ModalCloseDirective, { static: true }) _closeDirective?: ModalCloseDirective\n\n}\n","<ng-content></ng-content>\n\n<!-- <button seamModalClose>\n <span aria-hidden=\"true\">×</span>\n</button> -->\n\n<!-- seam-modal-header-close -->\n","import { OverlayRef } from '@angular/cdk/overlay'\nimport { EventEmitter, InjectionToken } from '@angular/core'\nimport { UntypedFormGroup } from '@angular/forms'\n\nexport interface IModalContainer {\n\n /**\n * Modal will close if a key is pressed with any of these key codes.\n *\n * default: [ 27 ] // 27 = ESCAPE\n */\n closeOnKeyPressed: number[]\n\n /** Emits when the modal has closed. */\n modalClosed: EventEmitter<void>\n\n /** Reference to the cdk OverlayRef. */\n _overlayRef?: OverlayRef\n\n /** Makes the modal container a form with this formGroup. */\n form: UntypedFormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n formSubmit: EventEmitter<void>\n\n /** Opens the modal. */\n open(): void\n\n /** Closes the modal. */\n close(): void\n\n}\n\nexport const THESEAM_MODAL_CONTAINER = new InjectionToken<IModalContainer>('seamModalContainer')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n AfterViewInit, Component, ContentChild, EventEmitter, forwardRef, Input,\n isDevMode, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef\n} from '@angular/core'\nimport { UntypedFormGroup } from '@angular/forms'\nimport { ActivatedRoute } from '@angular/router'\nimport { filter } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport { ModalFooterTplDirective } from '../directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from '../directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from '../directives/modal-header-title-tpl.directive'\nimport { IModalContainer, THESEAM_MODAL_CONTAINER } from '../modal.models'\n\nexport interface TheSeamModalIconTemplateContext {\n $implicit: SeamIcon | undefined\n icon: SeamIcon | undefined\n}\n\nexport interface TheSeamModalTitleTemplateContext {\n $implicit: string | undefined | null\n title: string | undefined | null\n}\n\nexport const LIB_MODAL: any = {\n provide: THESEAM_MODAL_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => ModalComponent),\n multi: true,\n}\n\n@Component({\n selector: 'seam-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [LIB_MODAL],\n standalone: false\n})\nexport class ModalComponent implements OnDestroy, AfterViewInit, IModalContainer {\n static ngAcceptInputType_showCloseBtn: BooleanInput\n\n @Input()\n set closeOnKeyPressed(value: number[]) { this._closeOnKeyPressed = Array.isArray(value) ? value : [] }\n get closeOnKeyPressed(): number[] { return this._closeOnKeyPressed }\n private _closeOnKeyPressed: number[] = [ ESCAPE ]\n\n @Input() @InputBoolean() showCloseBtn = true\n\n @Input() titleText: string | undefined | null\n\n @Input()\n get icon(): SeamIcon | undefined { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n }\n\n public _iconUrl: string | undefined\n public _iconObj: IconProp | undefined\n\n @Input()\n get iconTpl(): TemplateRef<TheSeamModalIconTemplateContext> | undefined {\n return this._iconTpl || (this._queryIconTpl && this._queryIconTpl.template)\n }\n set iconTpl(value: TemplateRef<TheSeamModalIconTemplateContext> | undefined) {\n this._iconTpl = value\n }\n private _iconTpl?: TemplateRef<TheSeamModalIconTemplateContext>\n\n @Input()\n get titleTpl(): TemplateRef<TheSeamModalTitleTemplateContext> | undefined {\n return this._titleTpl || (this._queryTitleTpl && this._queryTitleTpl.template)\n }\n set titleTpl(value: TemplateRef<TheSeamModalTitleTemplateContext> | undefined) {\n this._titleTpl = value\n }\n private _titleTpl?: TemplateRef<TheSeamModalTitleTemplateContext>\n\n @Input()\n get footerTpl(): TemplateRef<HTMLElement> | undefined {\n return this._footerTpl || (this._queryFooterTpl && this._queryFooterTpl.template)\n }\n set footerTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._footerTpl = value\n }\n private _footerTpl?: TemplateRef<HTMLElement>\n\n @Output() modalClosed = new EventEmitter<void>()\n\n _overlayRef?: OverlayRef\n\n @Output() overlayDetached = new EventEmitter<void>()\n\n @ContentChild(ModalHeaderIconTplDirective, { static: true }) _queryIconTpl?: ModalHeaderIconTplDirective\n @ContentChild(ModalHeaderTitleTplDirective, { static: true }) _queryTitleTpl?: ModalHeaderTitleTplDirective\n @ContentChild(ModalFooterTplDirective, { static: true }) _queryFooterTpl?: ModalFooterTplDirective\n\n @ViewChild('modalTpl', { static: true }) _modalTpl?: TemplateRef<HTMLElement>\n\n /** Makes the modal container a form with this formGroup. */\n @Input() form: UntypedFormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n @Output() formSubmit = new EventEmitter<void>()\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _route: ActivatedRoute\n ) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('seamModal has some issues with its design. Use the Modal service for now, because seamModal will have breaking changes or be removed soon.')\n }\n }\n\n ngOnDestroy() {\n this.close()\n }\n\n ngAfterViewInit() {\n if (this.isRouteModal()) {\n this.open()\n }\n }\n\n public open(portal?: TemplatePortal | ComponentPortal<object>) {\n if (this._overlayRef && this._overlayRef.hasAttached()) { return }\n\n const positionStrategy = this._overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically()\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n positionStrategy\n })\n\n this._overlayRef.detachments().subscribe(_ => this.overlayDetached.emit())\n\n this._overlayRef.backdropClick().subscribe(_ => this.close())\n\n this._overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(e => e.keyCode === ESCAPE))\n .subscribe(_ => this.close())\n\n let portalToAttach = portal\n if (!portalToAttach) {\n if (!this._modalTpl) {\n throw new Error(`_modalTpl not found.`)\n }\n portalToAttach = new TemplatePortal(this._modalTpl, this._viewContainerRef)\n }\n\n this._overlayRef.attach(portalToAttach)\n }\n\n public close() {\n if (!this._overlayRef || !this._overlayRef.hasAttached()) { return }\n\n this._overlayRef.detach()\n\n this.modalClosed.emit()\n }\n\n _onSubmit() {\n this.formSubmit.emit()\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","<ng-template #modalTpl>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"_onSubmit()\" class=\"p-4\" style=\"max-width: 800px\">\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n </form>\n\n <div *ngIf=\"!form\" class=\"p-4\" style=\"max-width: 800px\">\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n </div>\n\n <ng-template #modalContent>\n <div class=\"modal-content\">\n <div class=\"modal-header py-2\">\n <h4 class=\"modal-title\">\n <span class=\"pr-2 modal-header-icon\">\n <ng-container *ngIf=\"iconTpl; else noIconTpl\">\n <ng-template\n [ngTemplateOutlet]=\"iconTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: icon, icon: icon }\">\n </ng-template>\n </ng-container>\n <ng-template #noIconTpl>\n <fa-icon *ngIf=\"_iconObj\"\n class=\"modal-header-icon--fa\"\n [icon]=\"_iconObj\"\n size=\"sm\"></fa-icon>\n <img *ngIf=\"_iconUrl\"\n class=\"modal-header-icon--img\"\n [src]=\"_iconUrl\" [alt]=\"titleText\">\n </ng-template>\n </span>\n\n <span class=\"modal-header-title\">\n <ng-container *ngIf=\"titleTpl; else noTitleTpl\">\n <ng-template\n [ngTemplateOutlet]=\"titleTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: titleText, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noTitleTpl>{{ titleText }}</ng-template>\n </span>\n </h4>\n <button *ngIf=\"showCloseBtn\"\n type=\"button\"\n class=\"close\"\n (click)=\"close()\"\n aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"_queryFooterTpl\" class=\"modal-footer p-2\">\n <ng-container *ngComponentOutlet=\"$any(_queryFooterTpl.template)\"></ng-container>\n </div>\n </div>\n </ng-template>\n</ng-template>\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'\n\n// import { ModalComponent } from '../modal/modal.component'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { Modal } from '../modal.service'\n\n@Component({\n selector: 'seam-route-modal',\n templateUrl: './route-modal.component.html',\n styleUrls: ['./route-modal.component.scss'],\n standalone: false\n})\nexport class RouteModalComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // @ViewChild(ModalComponent, { static: true }) _modal: ModalComponent\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _modal: Modal\n ) { }\n\n ngOnInit() {\n this._route.data\n .pipe(\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe(data => {\n // console.log('data', data)\n if (data.routeComponent) {\n // console.log(this._route.snapshot)\n const modalRef = this._modal.openFromComponent(data.routeComponent, {\n modalSize: 'lg',\n data\n })\n modalRef.afterClosed().subscribe(() => {\n const parent = this.getOutletParent()\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n // { relativeTo: this._route.parent }\n { relativeTo: parent }\n )\n })\n }\n })\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n getOutletParent() {\n let route: ActivatedRoute | null = this._route\n while (route && route.outlet !== 'modal') { route = route.parent }\n return route ? route.parent : route\n }\n\n public _onDetached() {\n if (this.isRouteModal()) {\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n { relativeTo: this._route.parent }\n )\n }\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","<!-- <seam-modal (overlayDetached)=\"_onDetached()\">\n <router-outlet></router-outlet>\n</seam-modal> -->\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { ModalCloseDirective } from './directives/modal-close.directive'\nimport { ModalFooterTplDirective } from './directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from './directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from './directives/modal-header-title-tpl.directive'\nimport { ModalTitleDirective } from './directives/modal-title.directive'\nimport { ModalDirective } from './directives/modal.directive'\nimport { ModalBodyComponent } from './modal-body/modal-body.component'\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalFooterComponent } from './modal-footer/modal-footer.component'\nimport { ModalHeaderComponent } from './modal-header/modal-header.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER\n} from './modal-injectors'\nimport { ModalComponent } from './modal/modal.component'\nimport { RouteModalComponent } from './route-modal/route-modal.component'\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n ModalContainerComponent,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FontAwesomeModule,\n RouterModule,\n ReactiveFormsModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n providers: [\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER,\n { provide: MODAL_CONTAINER, useValue: ModalContainerComponent },\n { provide: MODAL_CONFIG, useValue: ModalConfig },\n ]\n})\nexport class TheSeamModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ModalConfig","observableOf","i2","i3","i1.Modal","i2.ModalRef","i1","i4","i2.Modal"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theseam/ui-common",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^20.2.3",
|
|
6
6
|
"@angular/common": "^20.3.0",
|
|
@@ -129,6 +129,10 @@
|
|
|
129
129
|
"types": "./index.d.ts",
|
|
130
130
|
"default": "./fesm2022/theseam-ui-common.mjs"
|
|
131
131
|
},
|
|
132
|
+
"./breadcrumbs": {
|
|
133
|
+
"types": "./breadcrumbs/index.d.ts",
|
|
134
|
+
"default": "./fesm2022/theseam-ui-common-breadcrumbs.mjs"
|
|
135
|
+
},
|
|
132
136
|
"./asset-reader": {
|
|
133
137
|
"types": "./asset-reader/index.d.ts",
|
|
134
138
|
"default": "./fesm2022/theseam-ui-common-asset-reader.mjs"
|
|
@@ -137,14 +141,6 @@
|
|
|
137
141
|
"types": "./ai/index.d.ts",
|
|
138
142
|
"default": "./fesm2022/theseam-ui-common-ai.mjs"
|
|
139
143
|
},
|
|
140
|
-
"./breadcrumbs": {
|
|
141
|
-
"types": "./breadcrumbs/index.d.ts",
|
|
142
|
-
"default": "./fesm2022/theseam-ui-common-breadcrumbs.mjs"
|
|
143
|
-
},
|
|
144
|
-
"./card": {
|
|
145
|
-
"types": "./card/index.d.ts",
|
|
146
|
-
"default": "./fesm2022/theseam-ui-common-card.mjs"
|
|
147
|
-
},
|
|
148
144
|
"./buttons": {
|
|
149
145
|
"types": "./buttons/index.d.ts",
|
|
150
146
|
"default": "./fesm2022/theseam-ui-common-buttons.mjs"
|
|
@@ -153,34 +149,38 @@
|
|
|
153
149
|
"types": "./carousel/index.d.ts",
|
|
154
150
|
"default": "./fesm2022/theseam-ui-common-carousel.mjs"
|
|
155
151
|
},
|
|
152
|
+
"./card": {
|
|
153
|
+
"types": "./card/index.d.ts",
|
|
154
|
+
"default": "./fesm2022/theseam-ui-common-card.mjs"
|
|
155
|
+
},
|
|
156
|
+
"./checkbox": {
|
|
157
|
+
"types": "./checkbox/index.d.ts",
|
|
158
|
+
"default": "./fesm2022/theseam-ui-common-checkbox.mjs"
|
|
159
|
+
},
|
|
156
160
|
"./confirm-dialog": {
|
|
157
161
|
"types": "./confirm-dialog/index.d.ts",
|
|
158
162
|
"default": "./fesm2022/theseam-ui-common-confirm-dialog.mjs"
|
|
159
163
|
},
|
|
160
|
-
"./core": {
|
|
161
|
-
"types": "./core/index.d.ts",
|
|
162
|
-
"default": "./fesm2022/theseam-ui-common-core.mjs"
|
|
163
|
-
},
|
|
164
164
|
"./data-exporter": {
|
|
165
165
|
"types": "./data-exporter/index.d.ts",
|
|
166
166
|
"default": "./fesm2022/theseam-ui-common-data-exporter.mjs"
|
|
167
167
|
},
|
|
168
|
-
"./
|
|
169
|
-
"types": "./
|
|
170
|
-
"default": "./fesm2022/theseam-ui-common-
|
|
168
|
+
"./core": {
|
|
169
|
+
"types": "./core/index.d.ts",
|
|
170
|
+
"default": "./fesm2022/theseam-ui-common-core.mjs"
|
|
171
171
|
},
|
|
172
172
|
"./data-filters": {
|
|
173
173
|
"types": "./data-filters/index.d.ts",
|
|
174
174
|
"default": "./fesm2022/theseam-ui-common-data-filters.mjs"
|
|
175
175
|
},
|
|
176
|
-
"./datatable": {
|
|
177
|
-
"types": "./datatable/index.d.ts",
|
|
178
|
-
"default": "./fesm2022/theseam-ui-common-datatable.mjs"
|
|
179
|
-
},
|
|
180
176
|
"./datatable-alterations-display": {
|
|
181
177
|
"types": "./datatable-alterations-display/index.d.ts",
|
|
182
178
|
"default": "./fesm2022/theseam-ui-common-datatable-alterations-display.mjs"
|
|
183
179
|
},
|
|
180
|
+
"./datatable": {
|
|
181
|
+
"types": "./datatable/index.d.ts",
|
|
182
|
+
"default": "./fesm2022/theseam-ui-common-datatable.mjs"
|
|
183
|
+
},
|
|
184
184
|
"./dynamic": {
|
|
185
185
|
"types": "./dynamic/index.d.ts",
|
|
186
186
|
"default": "./fesm2022/theseam-ui-common-dynamic.mjs"
|
|
@@ -205,22 +205,22 @@
|
|
|
205
205
|
"types": "./form-field-error/index.d.ts",
|
|
206
206
|
"default": "./fesm2022/theseam-ui-common-form-field-error.mjs"
|
|
207
207
|
},
|
|
208
|
-
"./google-maps": {
|
|
209
|
-
"types": "./google-maps/index.d.ts",
|
|
210
|
-
"default": "./fesm2022/theseam-ui-common-google-maps.mjs"
|
|
211
|
-
},
|
|
212
|
-
"./graphql": {
|
|
213
|
-
"types": "./graphql/index.d.ts",
|
|
214
|
-
"default": "./fesm2022/theseam-ui-common-graphql.mjs"
|
|
215
|
-
},
|
|
216
208
|
"./framework": {
|
|
217
209
|
"types": "./framework/index.d.ts",
|
|
218
210
|
"default": "./fesm2022/theseam-ui-common-framework.mjs"
|
|
219
211
|
},
|
|
212
|
+
"./google-maps": {
|
|
213
|
+
"types": "./google-maps/index.d.ts",
|
|
214
|
+
"default": "./fesm2022/theseam-ui-common-google-maps.mjs"
|
|
215
|
+
},
|
|
220
216
|
"./icon": {
|
|
221
217
|
"types": "./icon/index.d.ts",
|
|
222
218
|
"default": "./fesm2022/theseam-ui-common-icon.mjs"
|
|
223
219
|
},
|
|
220
|
+
"./graphql": {
|
|
221
|
+
"types": "./graphql/index.d.ts",
|
|
222
|
+
"default": "./fesm2022/theseam-ui-common-graphql.mjs"
|
|
223
|
+
},
|
|
224
224
|
"./layout": {
|
|
225
225
|
"types": "./layout/index.d.ts",
|
|
226
226
|
"default": "./fesm2022/theseam-ui-common-layout.mjs"
|
|
@@ -229,26 +229,26 @@
|
|
|
229
229
|
"types": "./loading/index.d.ts",
|
|
230
230
|
"default": "./fesm2022/theseam-ui-common-loading.mjs"
|
|
231
231
|
},
|
|
232
|
+
"./menu": {
|
|
233
|
+
"types": "./menu/index.d.ts",
|
|
234
|
+
"default": "./fesm2022/theseam-ui-common-menu.mjs"
|
|
235
|
+
},
|
|
232
236
|
"./modal": {
|
|
233
237
|
"types": "./modal/index.d.ts",
|
|
234
238
|
"default": "./fesm2022/theseam-ui-common-modal.mjs"
|
|
235
239
|
},
|
|
236
|
-
"./
|
|
237
|
-
"types": "./
|
|
238
|
-
"default": "./fesm2022/theseam-ui-common-
|
|
240
|
+
"./popover": {
|
|
241
|
+
"types": "./popover/index.d.ts",
|
|
242
|
+
"default": "./fesm2022/theseam-ui-common-popover.mjs"
|
|
239
243
|
},
|
|
240
|
-
"./
|
|
241
|
-
"types": "./
|
|
242
|
-
"default": "./fesm2022/theseam-ui-common-
|
|
244
|
+
"./progress": {
|
|
245
|
+
"types": "./progress/index.d.ts",
|
|
246
|
+
"default": "./fesm2022/theseam-ui-common-progress.mjs"
|
|
243
247
|
},
|
|
244
248
|
"./navigation-reload": {
|
|
245
249
|
"types": "./navigation-reload/index.d.ts",
|
|
246
250
|
"default": "./fesm2022/theseam-ui-common-navigation-reload.mjs"
|
|
247
251
|
},
|
|
248
|
-
"./popover": {
|
|
249
|
-
"types": "./popover/index.d.ts",
|
|
250
|
-
"default": "./fesm2022/theseam-ui-common-popover.mjs"
|
|
251
|
-
},
|
|
252
252
|
"./scrollbar": {
|
|
253
253
|
"types": "./scrollbar/index.d.ts",
|
|
254
254
|
"default": "./fesm2022/theseam-ui-common-scrollbar.mjs"
|
|
@@ -261,9 +261,9 @@
|
|
|
261
261
|
"types": "./shared/index.d.ts",
|
|
262
262
|
"default": "./fesm2022/theseam-ui-common-shared.mjs"
|
|
263
263
|
},
|
|
264
|
-
"./
|
|
265
|
-
"types": "./
|
|
266
|
-
"default": "./fesm2022/theseam-ui-common-
|
|
264
|
+
"./models": {
|
|
265
|
+
"types": "./models/index.d.ts",
|
|
266
|
+
"default": "./fesm2022/theseam-ui-common-models.mjs"
|
|
267
267
|
},
|
|
268
268
|
"./storage": {
|
|
269
269
|
"types": "./storage/index.d.ts",
|
|
@@ -273,6 +273,10 @@
|
|
|
273
273
|
"types": "./story-helpers/index.d.ts",
|
|
274
274
|
"default": "./fesm2022/theseam-ui-common-story-helpers.mjs"
|
|
275
275
|
},
|
|
276
|
+
"./tabbed": {
|
|
277
|
+
"types": "./tabbed/index.d.ts",
|
|
278
|
+
"default": "./fesm2022/theseam-ui-common-tabbed.mjs"
|
|
279
|
+
},
|
|
276
280
|
"./table": {
|
|
277
281
|
"types": "./table/index.d.ts",
|
|
278
282
|
"default": "./fesm2022/theseam-ui-common-table.mjs"
|
|
@@ -281,10 +285,6 @@
|
|
|
281
285
|
"types": "./table-cell-type/index.d.ts",
|
|
282
286
|
"default": "./fesm2022/theseam-ui-common-table-cell-type.mjs"
|
|
283
287
|
},
|
|
284
|
-
"./tabbed": {
|
|
285
|
-
"types": "./tabbed/index.d.ts",
|
|
286
|
-
"default": "./fesm2022/theseam-ui-common-tabbed.mjs"
|
|
287
|
-
},
|
|
288
288
|
"./table-cell-types": {
|
|
289
289
|
"types": "./table-cell-types/index.d.ts",
|
|
290
290
|
"default": "./fesm2022/theseam-ui-common-table-cell-types.mjs"
|
|
@@ -293,14 +293,14 @@
|
|
|
293
293
|
"types": "./tel-input/index.d.ts",
|
|
294
294
|
"default": "./fesm2022/theseam-ui-common-tel-input.mjs"
|
|
295
295
|
},
|
|
296
|
-
"./tiled-select": {
|
|
297
|
-
"types": "./tiled-select/index.d.ts",
|
|
298
|
-
"default": "./fesm2022/theseam-ui-common-tiled-select.mjs"
|
|
299
|
-
},
|
|
300
296
|
"./testing": {
|
|
301
297
|
"types": "./testing/index.d.ts",
|
|
302
298
|
"default": "./fesm2022/theseam-ui-common-testing.mjs"
|
|
303
299
|
},
|
|
300
|
+
"./tiled-select": {
|
|
301
|
+
"types": "./tiled-select/index.d.ts",
|
|
302
|
+
"default": "./fesm2022/theseam-ui-common-tiled-select.mjs"
|
|
303
|
+
},
|
|
304
304
|
"./toggle-edit": {
|
|
305
305
|
"types": "./toggle-edit/index.d.ts",
|
|
306
306
|
"default": "./fesm2022/theseam-ui-common-toggle-edit.mjs"
|