@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
JavaScript
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==