@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
122 lines (121 loc) • 12.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { AsiDialog } from './dialog/asi-dialog.component';
import { AsiDialogContainer } from './container/asi-dialog-container.component';
import { Injectable, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
var AsiDialogService = /** @class */ (function () {
function AsiDialogService(resolver, appRef) {
this.resolver = resolver;
this.appRef = appRef;
}
/**
* @template T
* @param {?} content
* @param {?} config
* @return {?}
*/
AsiDialogService.prototype.fromComponent = /**
* @template T
* @param {?} content
* @param {?} config
* @return {?}
*/
function (content, config) {
var _this = this;
/** @type {?} */
var containerRef = this.getContainer();
if (!this.dialogEmptySubscription || this.dialogEmptySubscription.closed) {
this.dialogEmptySubscription = containerRef.instance.onContainerEmpty().subscribe(function () {
_this.dialogEmptySubscription.unsubscribe();
_this.dialogContainer.destroy();
_this.dialogContainer = null;
});
}
/** @type {?} */
var dialogRef = this.createDialog(content, containerRef, config);
containerRef.instance.addDialog(dialogRef);
return dialogRef.instance;
};
/**
* @return {?}
*/
AsiDialogService.prototype.getContainer = /**
* @return {?}
*/
function () {
if (this.dialogContainer == null) {
/** @type {?} */
var rootComponent = this.appRef.components[0].instance;
if (!rootComponent.viewContainerRef) {
/** @type {?} */
var appName = this.appRef.componentTypes[0].name;
// tslint:disable-next-line:max-line-length
throw new Error('AsiDialog: Please add "viewContainerRef : ViewContainerRef" declaration in your root component constructor : ' + appName);
}
/** @type {?} */
var asiDialogContainerFactory = this.resolver.resolveComponentFactory(AsiDialogContainer);
/** @type {?} */
var containerRef = rootComponent.viewContainerRef.createComponent(asiDialogContainerFactory, 0);
this.dialogContainer = containerRef;
}
return this.dialogContainer;
};
/**
* @template T
* @param {?} content
* @param {?} containerRef
* @param {?} config
* @return {?}
*/
AsiDialogService.prototype.createDialog = /**
* @template T
* @param {?} content
* @param {?} containerRef
* @param {?} config
* @return {?}
*/
function (content, containerRef, config) {
/** @type {?} */
var asiDialogFactory = this.resolver.resolveComponentFactory(AsiDialog);
/** @type {?} */
var asiDialogRef = containerRef.instance.viewContainerRef.createComponent(asiDialogFactory, 0);
asiDialogRef.instance.setConfig(config);
// Moving dialog in div dialog-container
containerRef.location.nativeElement.children[0].appendChild(asiDialogRef.location.nativeElement);
/** @type {?} */
var contentFactory = this.resolver.resolveComponentFactory(content);
/** @type {?} */
var contentRef = asiDialogRef.instance.viewContainerRef.createComponent(contentFactory);
/** @type {?} */
var contentComponent = contentRef.instance;
// Ajout de la reference du composant dans le AsiDialog
asiDialogRef.instance['_component'] = contentComponent;
contentComponent.registerDialog(asiDialogRef.instance);
// Deplacement du contenu dans la div dialog-panel
asiDialogRef.location.nativeElement.children[0].appendChild(contentRef.location.nativeElement);
return asiDialogRef;
};
AsiDialogService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AsiDialogService.ctorParameters = function () { return [
{ type: ComponentFactoryResolver },
{ type: ApplicationRef }
]; };
return AsiDialogService;
}());
export { AsiDialogService };
if (false) {
/** @type {?} */
AsiDialogService.prototype.dialogContainer;
/** @type {?} */
AsiDialogService.prototype.dialogEmptySubscription;
/** @type {?} */
AsiDialogService.prototype.resolver;
/** @type {?} */
AsiDialogService.prototype.appRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1kaWFsb2cvYXNpLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLFVBQVUsRUFBb0Isd0JBQXdCLEVBQWdCLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7SUFTbkgsMEJBQW9CLFFBQWtDLEVBQVUsTUFBc0I7UUFBbEUsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFnQjtLQUNyRjs7Ozs7OztJQUVELHdDQUFhOzs7Ozs7SUFBYixVQUF1QyxPQUF5QixFQUFFLE1BQXVCO1FBQXpGLGlCQWVDOztRQWRDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDaEYsS0FBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxLQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixLQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzthQUM3QixDQUFDLENBQUM7U0FDSjs7UUFFRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7S0FDM0I7Ozs7SUFFTyx1Q0FBWTs7OztRQUNsQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7O1lBRWpDLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN6RCxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7O2dCQUNwQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7O2dCQUVuRCxNQUFNLElBQUksS0FBSyxDQUFDLCtHQUErRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO2FBQzVJOztZQUVELElBQU0seUJBQXlCLEdBQXlDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7WUFDbEksSUFBSSxZQUFZLEdBQXFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEksSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7U0FDckM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzs7Ozs7Ozs7O0lBR3RCLHVDQUFZOzs7Ozs7O2NBQTBCLE9BQXlCLEVBQUUsWUFBOEMsRUFDckgsTUFBdUI7O1FBR3ZCLElBQU0sZ0JBQWdCLEdBQW1DLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQWUsU0FBUyxDQUFDLENBQUM7O1FBQ3hILElBQUksWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9GLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDOztRQUd4QyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7O1FBR2pHLElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7O1FBQ3RFLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDOztRQUV4RixJQUFJLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7O1FBRzNDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFFdkQsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7UUFHdkQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRS9GLE1BQU0sQ0FBQyxZQUFZLENBQUM7OztnQkFyRXZCLFVBQVU7Ozs7Z0JBSDRCLHdCQUF3QjtnQkFBZ0IsY0FBYzs7MkJBTDdGOztTQVNhLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzaURpYWxvZ1ZpZXcgfSBmcm9tICcuL2FzaS1kaWFsb2ctdmlldyc7XHJcbmltcG9ydCB7IEFzaURpYWxvZyB9IGZyb20gJy4vZGlhbG9nL2FzaS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNpRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9hc2ktZGlhbG9nLWNvbmZpZyc7XHJcbmltcG9ydCB7IEFzaURpYWxvZ0NvbnRhaW5lciB9IGZyb20gJy4vY29udGFpbmVyL2FzaS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuLy4uL2NvbW1vbi9jb21wb25lbnQtdHlwZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIENvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBBcHBsaWNhdGlvblJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFzaURpYWxvZ1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ0NvbnRhaW5lcjogQ29tcG9uZW50UmVmPEFzaURpYWxvZ0NvbnRhaW5lcj47XHJcbiAgcHJpdmF0ZSBkaWFsb2dFbXB0eVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZikge1xyXG4gIH1cclxuXHJcbiAgZnJvbUNvbXBvbmVudDxUIGV4dGVuZHMgQXNpRGlhbG9nVmlldz4oY29udGVudDogQ29tcG9uZW50VHlwZTxUPiwgY29uZmlnOiBBc2lEaWFsb2dDb25maWcpOiBBc2lEaWFsb2c8VD4ge1xyXG4gICAgbGV0IGNvbnRhaW5lclJlZiA9IHRoaXMuZ2V0Q29udGFpbmVyKCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0VtcHR5U3Vic2NyaXB0aW9uIHx8IHRoaXMuZGlhbG9nRW1wdHlTdWJzY3JpcHRpb24uY2xvc2VkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRW1wdHlTdWJzY3JpcHRpb24gPSBjb250YWluZXJSZWYuaW5zdGFuY2Uub25Db250YWluZXJFbXB0eSgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dFbXB0eVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nQ29udGFpbmVyLmRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ0NvbnRhaW5lciA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmNyZWF0ZURpYWxvZyhjb250ZW50LCBjb250YWluZXJSZWYsIGNvbmZpZyk7XHJcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2UuYWRkRGlhbG9nKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVyKCk6IENvbXBvbmVudFJlZjxBc2lEaWFsb2dDb250YWluZXI+IHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbnRhaW5lciA9PSBudWxsKSB7XHJcbiAgICAgIC8vIFLDqWN1cGVyYXRpb24gZHUgcm9vdENvbXBvbmVudFxyXG4gICAgICBjb25zdCByb290Q29tcG9uZW50ID0gdGhpcy5hcHBSZWYuY29tcG9uZW50c1swXS5pbnN0YW5jZTtcclxuICAgICAgaWYgKCFyb290Q29tcG9uZW50LnZpZXdDb250YWluZXJSZWYpIHtcclxuICAgICAgICBjb25zdCBhcHBOYW1lID0gdGhpcy5hcHBSZWYuY29tcG9uZW50VHlwZXNbMF0ubmFtZTtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc2lEaWFsb2c6IFBsZWFzZSBhZGQgXCJ2aWV3Q29udGFpbmVyUmVmIDogVmlld0NvbnRhaW5lclJlZlwiIGRlY2xhcmF0aW9uIGluIHlvdXIgcm9vdCBjb21wb25lbnQgY29uc3RydWN0b3IgOiAnICsgYXBwTmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gQ3LDqWF0aW9uIGQndW4gQXNpRGlhbG9nQ29udGFpbmVyXHJcbiAgICAgIGNvbnN0IGFzaURpYWxvZ0NvbnRhaW5lckZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8QXNpRGlhbG9nQ29udGFpbmVyPiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoQXNpRGlhbG9nQ29udGFpbmVyKTtcclxuICAgICAgbGV0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPEFzaURpYWxvZ0NvbnRhaW5lcj4gPSByb290Q29tcG9uZW50LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGFzaURpYWxvZ0NvbnRhaW5lckZhY3RvcnksIDApO1xyXG4gICAgICB0aGlzLmRpYWxvZ0NvbnRhaW5lciA9IGNvbnRhaW5lclJlZjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ0NvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRGlhbG9nPFQgZXh0ZW5kcyBBc2lEaWFsb2dWaWV3Pihjb250ZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxBc2lEaWFsb2dDb250YWluZXI+LFxyXG4gICAgY29uZmlnOiBBc2lEaWFsb2dDb25maWcpOiBDb21wb25lbnRSZWY8QXNpRGlhbG9nPFQ+PiB7XHJcblxyXG4gICAgLy8gQ3JlYXRpb24gZGUgbGEgZGlhbG9nXHJcbiAgICBjb25zdCBhc2lEaWFsb2dGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PEFzaURpYWxvZzxUPj4gPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PEFzaURpYWxvZzxUPj4oQXNpRGlhbG9nKTtcclxuICAgIGxldCBhc2lEaWFsb2dSZWYgPSBjb250YWluZXJSZWYuaW5zdGFuY2Uudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoYXNpRGlhbG9nRmFjdG9yeSwgMCk7XHJcblxyXG4gICAgYXNpRGlhbG9nUmVmLmluc3RhbmNlLnNldENvbmZpZyhjb25maWcpO1xyXG5cclxuICAgIC8vIE1vdmluZyBkaWFsb2cgaW4gZGl2IGRpYWxvZy1jb250YWluZXJcclxuICAgIGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmFwcGVuZENoaWxkKGFzaURpYWxvZ1JlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuXHJcbiAgICAvLyAgQ3JlYXRlIGNvbXBvbmVudFxyXG4gICAgY29uc3QgY29udGVudEZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbnRlbnQpO1xyXG4gICAgbGV0IGNvbnRlbnRSZWYgPSBhc2lEaWFsb2dSZWYuaW5zdGFuY2Uudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29udGVudEZhY3RvcnkpO1xyXG5cclxuICAgIGxldCBjb250ZW50Q29tcG9uZW50ID0gY29udGVudFJlZi5pbnN0YW5jZTtcclxuXHJcbiAgICAvLyBBam91dCBkZSBsYSByZWZlcmVuY2UgZHUgY29tcG9zYW50IGRhbnMgbGUgQXNpRGlhbG9nXHJcbiAgICBhc2lEaWFsb2dSZWYuaW5zdGFuY2VbJ19jb21wb25lbnQnXSA9IGNvbnRlbnRDb21wb25lbnQ7XHJcblxyXG4gICAgY29udGVudENvbXBvbmVudC5yZWdpc3RlckRpYWxvZyhhc2lEaWFsb2dSZWYuaW5zdGFuY2UpO1xyXG5cclxuICAgIC8vIERlcGxhY2VtZW50IGR1IGNvbnRlbnUgZGFucyBsYSBkaXYgZGlhbG9nLXBhbmVsXHJcbiAgICBhc2lEaWFsb2dSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5hcHBlbmRDaGlsZChjb250ZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBhc2lEaWFsb2dSZWY7XHJcbiAgfVxyXG59XHJcbiJdfQ==