theme-lib
Version:
This is a simple example Angular Library published to npm.
103 lines • 7.18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Component, ElementRef, ViewChild } from '@angular/core';
import { NbFocusTrapFactoryService, NbPortalOutletDirective, } from '../cdk';
import { NbDialogConfig } from './dialog-config';
/*
* Container component for each dialog.
* All the dialogs will be attached to it.
* // TODO add animations
* */
export class NbDialogContainerComponent {
/**
* @param {?} config
* @param {?} elementRef
* @param {?} focusTrapFactory
*/
constructor(config, elementRef, focusTrapFactory) {
this.config = config;
this.elementRef = elementRef;
this.focusTrapFactory = focusTrapFactory;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.config.autoFocus) {
this.focusTrap = this.focusTrapFactory.create(this.elementRef.nativeElement);
this.focusTrap.blurPreviouslyFocusedElement();
this.focusTrap.focusInitialElement();
}
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.config.autoFocus && this.focusTrap) {
this.focusTrap.restoreFocus();
}
}
/**
* @template T
* @param {?} portal
* @return {?}
*/
attachComponentPortal(portal) {
return this.portalOutlet.attachComponentPortal(portal);
}
/**
* @template C
* @param {?} portal
* @return {?}
*/
attachTemplatePortal(portal) {
return this.portalOutlet.attachTemplatePortal(portal);
}
}
NbDialogContainerComponent.decorators = [
{ type: Component, args: [{
selector: 'nb-dialog-container',
template: '<ng-template nbPortalOutlet></ng-template>'
}] }
];
/** @nocollapse */
NbDialogContainerComponent.ctorParameters = () => [
{ type: NbDialogConfig },
{ type: ElementRef },
{ type: NbFocusTrapFactoryService }
];
NbDialogContainerComponent.propDecorators = {
portalOutlet: [{ type: ViewChild, args: [NbPortalOutletDirective,] }]
};
if (false) {
/** @type {?} */
NbDialogContainerComponent.prototype.portalOutlet;
/**
* @type {?}
* @protected
*/
NbDialogContainerComponent.prototype.focusTrap;
/**
* @type {?}
* @protected
*/
NbDialogContainerComponent.prototype.config;
/**
* @type {?}
* @protected
*/
NbDialogContainerComponent.prototype.elementRef;
/**
* @type {?}
* @protected
*/
NbDialogContainerComponent.prototype.focusTrapFactory;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2ctY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFVBQVUsRUFBc0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsdUJBQXVCLEdBRXhCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBWWpELE1BQU0sT0FBTywwQkFBMEI7Ozs7OztJQUtyQyxZQUFzQixNQUFzQixFQUN0QixVQUFzQixFQUN0QixnQkFBMkM7UUFGM0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO0lBQ2pFLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7Ozs7OztJQUVELHFCQUFxQixDQUFJLE1BQTRCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7Ozs7SUFFRCxvQkFBb0IsQ0FBSSxNQUEyQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7O1lBbENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixRQUFRLEVBQUUsNENBQTRDO2FBQ3ZEOzs7O1lBWFEsY0FBYztZQVRXLFVBQVU7WUFLMUMseUJBQXlCOzs7MkJBaUJ4QixTQUFTLFNBQUMsdUJBQXVCOzs7O0lBQWxDLGtEQUEwRTs7Ozs7SUFFMUUsK0NBQWlDOzs7OztJQUVyQiw0Q0FBZ0M7Ozs7O0lBQ2hDLGdEQUFnQzs7Ozs7SUFDaEMsc0RBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTmJDb21wb25lbnRQb3J0YWwsXHJcbiAgTmJGb2N1c1RyYXAsXHJcbiAgTmJGb2N1c1RyYXBGYWN0b3J5U2VydmljZSxcclxuICBOYlBvcnRhbE91dGxldERpcmVjdGl2ZSxcclxuICBOYlRlbXBsYXRlUG9ydGFsLFxyXG59IGZyb20gJy4uL2Nkayc7XHJcbmltcG9ydCB7IE5iRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2ctY29uZmlnJztcclxuXHJcblxyXG4vKlxyXG4gKiBDb250YWluZXIgY29tcG9uZW50IGZvciBlYWNoIGRpYWxvZy5cclxuICogQWxsIHRoZSBkaWFsb2dzIHdpbGwgYmUgYXR0YWNoZWQgdG8gaXQuXHJcbiAqIC8vIFRPRE8gYWRkIGFuaW1hdGlvbnNcclxuICogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1kaWFsb2ctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSBuYlBvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYkRpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKE5iUG9ydGFsT3V0bGV0RGlyZWN0aXZlKSBwb3J0YWxPdXRsZXQ6IE5iUG9ydGFsT3V0bGV0RGlyZWN0aXZlO1xyXG5cclxuICBwcm90ZWN0ZWQgZm9jdXNUcmFwOiBOYkZvY3VzVHJhcDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbmZpZzogTmJEaWFsb2dDb25maWcsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGZvY3VzVHJhcEZhY3Rvcnk6IE5iRm9jdXNUcmFwRmFjdG9yeVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmF1dG9Gb2N1cykge1xyXG4gICAgICB0aGlzLmZvY3VzVHJhcCA9IHRoaXMuZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB0aGlzLmZvY3VzVHJhcC5ibHVyUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCk7XHJcbiAgICAgIHRoaXMuZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmF1dG9Gb2N1cyAmJiB0aGlzLmZvY3VzVHJhcCkge1xyXG4gICAgICB0aGlzLmZvY3VzVHJhcC5yZXN0b3JlRm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihwb3J0YWw6IE5iQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKTtcclxuICB9XHJcblxyXG4gIGF0dGFjaFRlbXBsYXRlUG9ydGFsPEM+KHBvcnRhbDogTmJUZW1wbGF0ZVBvcnRhbDxDPik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcclxuICB9XHJcbn1cclxuIl19