UNPKG

@universal-material/angular

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.

106 lines 12.2 kB
import { ContentChild, Directive, EventEmitter, HostBinding, Inject, Input, Optional, Output, ViewChild } from '@angular/core'; import { DialogBodyDirective } from "./dialog-body.directive"; import { AnimationEvents } from '../util/animations/animation-events'; import { DIALOG_DEFAULT_OPTIONS } from './dialog-config.model'; import * as i0 from "@angular/core"; export const DefaultDialogConfig = { closeOnBackdropClick: true, closeOnEsc: true }; export class DialogBaseComponent { set _contentChildBody(dialogBody) { this.setDialogBody(dialogBody); } set _viewChildBody(dialogBody) { this.setDialogBody(dialogBody); } constructor(_elementRef, defaultOptions) { this._elementRef = _elementRef; this._contentInitialized = false; this._hiding = false; this.show = false; this.showChange = new EventEmitter(); this.afterClose = new EventEmitter(); this.closedFromBackdrop = new EventEmitter(); this.dialogBody = null; this._tabIndex = -1; this.scrollTopDivider = false; this.scrollBottomDivider = false; this.onAnimationEnd = (event) => { this._elementRef.nativeElement.removeEventListener(event.type, this.onAnimationEnd); this._hiding = false; this.afterClose.emit(); }; this._dialogConfig = { ...DefaultDialogConfig, ...defaultOptions }; _elementRef.nativeElement.classList.add('u-dialog'); } addAnimationEndEvents() { AnimationEvents.attachAnimationEndEvents(this._elementRef.nativeElement, this.onAnimationEnd.bind(this)); } setDialogBody(dialogBody) { this.dialogBody = dialogBody; if (!this.dialogBody) { return; } this.dialogBody.dialog = this; this.dialogBody._processBehavior(); } backdropClick() { if (this._dialogConfig.closeOnBackdropClick) { this.close(); this.closedFromBackdrop.emit(); } } close() { if (!this.show) { return; } this.show = false; this.showChange.emit(false); this._hiding = true; this.addAnimationEndEvents(); } ngAfterContentInit() { setTimeout(() => this._contentInitialized = true, 100); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogBaseComponent, deps: [{ token: i0.ElementRef }, { token: DIALOG_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DialogBaseComponent, inputs: { show: "show" }, outputs: { showChange: "showChange", afterClose: "afterClose", closedFromBackdrop: "closedFromBackdrop" }, host: { properties: { "class.hide": "this._hiding", "class.show": "this.show", "tabindex": "this._tabIndex", "class.u-dialog-scroll-top-divider": "this.scrollTopDivider", "class.u-dialog-scroll-bottom-divider": "this.scrollBottomDivider" } }, queries: [{ propertyName: "_contentChildBody", first: true, predicate: DialogBodyDirective, descendants: true }], viewQueries: [{ propertyName: "_viewChildBody", first: true, predicate: DialogBodyDirective, descendants: true }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogBaseComponent, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIALOG_DEFAULT_OPTIONS] }] }]; }, propDecorators: { _hiding: [{ type: HostBinding, args: ['class.hide'] }], show: [{ type: HostBinding, args: ['class.show'] }, { type: Input }], showChange: [{ type: Output }], afterClose: [{ type: Output }], closedFromBackdrop: [{ type: Output }], _contentChildBody: [{ type: ContentChild, args: [DialogBodyDirective] }], _viewChildBody: [{ type: ViewChild, args: [DialogBodyDirective] }], _tabIndex: [{ type: HostBinding, args: ['tabindex'] }], scrollTopDivider: [{ type: HostBinding, args: ['class.u-dialog-scroll-top-divider'] }], scrollBottomDivider: [{ type: HostBinding, args: ['class.u-dialog-scroll-bottom-divider'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpYWxvZy9kaWFsb2ctYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQjtJQUMvQyxvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCLENBQUM7QUFHRixNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLElBQ0ksaUJBQWlCLENBQUMsVUFBK0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxjQUFjLENBQUMsVUFBK0I7UUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBU0QsWUFBK0IsV0FBdUIsRUFDRSxjQUF5QztRQURsRSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTNCOUMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBSVQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNQLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsdUJBQWtCLEdBQUcs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bXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEaWFsb2dCb2R5RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlhbG9nLWJvZHkuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudHMgfSBmcm9tICcuLi91dGlsL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWV2ZW50cyc7XG5pbXBvcnQgeyBESUFMT0dfREVGQVVMVF9PUFRJT05TLCBEaWFsb2dDb25maWcgfSBmcm9tICcuL2RpYWxvZy1jb25maWcubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnID0ge1xuICBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgY2xvc2VPbkVzYzogdHJ1ZVxufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGlhbG9nQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIF9jb250ZW50SW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBfZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlJykgX2hpZGluZyA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3cnKSBASW5wdXQoKSBzaG93ID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzaG93Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgYWZ0ZXJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlZEZyb21CYWNrZHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAQ29udGVudENoaWxkKERpYWxvZ0JvZHlEaXJlY3RpdmUpXG4gIHNldCBfY29udGVudENoaWxkQm9keShkaWFsb2dCb2R5OiBEaWFsb2dCb2R5RGlyZWN0aXZlKSB7XG4gICAgdGhpcy5zZXREaWFsb2dCb2R5KGRpYWxvZ0JvZHkpO1xuICB9XG5cbiAgQFZpZXdDaGlsZChEaWFsb2dCb2R5RGlyZWN0aXZlKVxuICBzZXQgX3ZpZXdDaGlsZEJvZHkoZGlhbG9nQm9keTogRGlhbG9nQm9keURpcmVjdGl2ZSkge1xuICAgIHRoaXMuc2V0RGlhbG9nQm9keShkaWFsb2dCb2R5KTtcbiAgfVxuXG4gIGRpYWxvZ0JvZHk6IERpYWxvZ0JvZHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBASG9zdEJpbmRpbmcoJ3RhYmluZGV4JykgX3RhYkluZGV4ID0gLTE7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy51LWRpYWxvZy1zY3JvbGwtdG9wLWRpdmlkZXInKSBzY3JvbGxUb3BEaXZpZGVyID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudS1kaWFsb2ctc2Nyb2xsLWJvdHRvbS1kaXZpZGVyJykgc2Nyb2xsQm90dG9tRGl2aWRlciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChESUFMT0dfREVGQVVMVF9PUFRJT05TKSBkZWZhdWx0T3B0aW9ucz86IERpYWxvZ0NvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RpYWxvZ0NvbmZpZyA9IHsuLi5EZWZhdWx0RGlhbG9nQ29uZmlnLCAuLi5kZWZhdWx0T3B0aW9uc307XG4gICAgX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd1LWRpYWxvZycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRBbmltYXRpb25FbmRFdmVudHMoKSB7XG4gICAgQW5pbWF0aW9uRXZlbnRzLmF0dGFjaEFuaW1hdGlvbkVuZEV2ZW50cyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMub25BbmltYXRpb25FbmQuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcml2YXRlIG9uQW5pbWF0aW9uRW5kID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LnR5cGUsIHRoaXMub25BbmltYXRpb25FbmQpO1xuICAgIHRoaXMuX2hpZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuYWZ0ZXJDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldERpYWxvZ0JvZHkoZGlhbG9nQm9keTogRGlhbG9nQm9keURpcmVjdGl2ZSk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nQm9keSA9IGRpYWxvZ0JvZHk7XG5cbiAgICBpZiAoIXRoaXMuZGlhbG9nQm9keSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nQm9keS5kaWFsb2cgPSB0aGlzO1xuICAgIHRoaXMuZGlhbG9nQm9keS5fcHJvY2Vzc0JlaGF2aW9yKCk7XG4gIH1cblxuICBiYWNrZHJvcENsaWNrKCkge1xuICAgIGlmICh0aGlzLl9kaWFsb2dDb25maWcuY2xvc2VPbkJhY2tkcm9wQ2xpY2spIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHRoaXMuY2xvc2VkRnJvbUJhY2tkcm9wLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcblxuICAgIGlmICghdGhpcy5zaG93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Q2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuX2hpZGluZyA9IHRydWU7XG4gICAgdGhpcy5hZGRBbmltYXRpb25FbmRFdmVudHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2NvbnRlbnRJbml0aWFsaXplZCA9IHRydWUsIDEwMCk7XG4gIH1cbn1cbiJdfQ==