UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

245 lines 18.7 kB
/** * @fileoverview added by tsickle * Generated from: loading.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ComponentFactoryResolver, ElementRef, Input, ViewContainerRef, Injector, TemplateRef, HostBinding } from '@angular/core'; import { LoadingBackdropComponent } from './loading-backdrop.component'; import { LoadingComponent } from './loading.component'; import { Observable, from, forkJoin, Subscription } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { throwError } from 'rxjs'; var LoadingDirective = /** @class */ (function () { function LoadingDirective(componentFactoryResolver, triggerElementRef, viewContainerRef, injector, elementRef) { this.componentFactoryResolver = componentFactoryResolver; this.triggerElementRef = triggerElementRef; this.viewContainerRef = viewContainerRef; this.injector = injector; this.elementRef = elementRef; this.active = true; } Object.defineProperty(LoadingDirective.prototype, "showLoading", { set: /** * @param {?} _showLoading * @return {?} */ function (_showLoading) { if (_showLoading === true) { this.startLoading(); } else { this.endLoading(); } }, enumerable: true, configurable: true }); Object.defineProperty(LoadingDirective.prototype, "loading", { set: /** * @param {?} loading * @return {?} */ function (loading) { var _this = this; if (loading === undefined) { return; } if (loading instanceof Subscription) { this.startLoading(); loading.add((/** * @return {?} */ function () { return _this.endLoading(); })); return; } /** @type {?} */ var loadingArr = [].concat(loading).map((/** * @param {?} item * @return {?} */ function (item) { if (item instanceof Observable) { return item; } return from(item); })); if (loadingArr.length > 0) { this.startLoading(); forkJoin(loadingArr) .pipe(catchError((/** * @param {?} error * @return {?} */ function (error) { return throwError(error); }))) .subscribe(null, (/** * @return {?} */ function () { _this.endLoading(); }), (/** * @return {?} */ function () { _this.endLoading(); })); } }, enumerable: true, configurable: true }); /** * @private * @return {?} */ LoadingDirective.prototype.startLoading = /** * @private * @return {?} */ function () { if (!this.loadingRef) { this.position = this.positionType || 'relative'; if (this.backdrop) { this.createLoadingBackdrop(); } this.loadingRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(LoadingComponent), null, this.injector); this.insert(this.loadingRef.hostView); Object.assign(this.loadingRef.instance, { message: this.message, loadingTemplateRef: this.loadingTemplateRef, top: this.view ? this.view.top : '50%', left: this.view ? this.view.left : '50%', isCustomPosition: !!this.view }); } }; /** * @private * @return {?} */ LoadingDirective.prototype.endLoading = /** * @private * @return {?} */ function () { if (this.loadingRef) { this.loadingRef.destroy(); this.loadingRef = null; } if (this.backdropRef) { this.backdropRef.destroy(); this.backdropRef = null; } this.position = ''; }; /** * @private * @return {?} */ LoadingDirective.prototype.createLoadingBackdrop = /** * @private * @return {?} */ function () { this.backdropRef = !this.backdropRef && this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(LoadingBackdropComponent), null, this.injector); this.insert(this.backdropRef.hostView); Object.assign(this.backdropRef.instance, { triggerElementRef: this.triggerElementRef, backdrop: this.backdrop }); }; /** * @private * @param {?} viewRef * @return {?} */ LoadingDirective.prototype.insert = /** * @private * @param {?} viewRef * @return {?} */ function (viewRef) { var _this = this; ((/** @type {?} */ (viewRef))).rootNodes.forEach((/** * @param {?} node * @return {?} */ function (node) { return _this.elementRef.nativeElement.appendChild(node); })); return viewRef; }; LoadingDirective.decorators = [ { type: Directive, args: [{ selector: '[dLoading]', exportAs: 'dLoading' },] } ]; /** @nocollapse */ LoadingDirective.ctorParameters = function () { return [ { type: ComponentFactoryResolver }, { type: ElementRef }, { type: ViewContainerRef }, { type: Injector }, { type: ElementRef } ]; }; LoadingDirective.propDecorators = { message: [{ type: Input }], backdrop: [{ type: Input }], loadingTemplateRef: [{ type: Input }], positionType: [{ type: Input }], view: [{ type: Input }], position: [{ type: HostBinding, args: ['style.position',] }], showLoading: [{ type: Input }], loading: [{ type: Input }] }; return LoadingDirective; }()); export { LoadingDirective }; if (false) { /** @type {?} */ LoadingDirective.prototype.message; /** @type {?} */ LoadingDirective.prototype.backdrop; /** @type {?} */ LoadingDirective.prototype.loadingTemplateRef; /** @type {?} */ LoadingDirective.prototype.positionType; /** @type {?} */ LoadingDirective.prototype.view; /** @type {?} */ LoadingDirective.prototype.position; /** @type {?} */ LoadingDirective.prototype.backdropRef; /** @type {?} */ LoadingDirective.prototype.loadingRef; /** @type {?} */ LoadingDirective.prototype.active; /** * @type {?} * @private */ LoadingDirective.prototype.componentFactoryResolver; /** * @type {?} * @private */ LoadingDirective.prototype.triggerElementRef; /** * @type {?} * @private */ LoadingDirective.prototype.viewContainerRef; /** * @type {?} * @private */ LoadingDirective.prototype.injector; /** * @type {?} * @private */ LoadingDirective.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9sb2FkaW5nLyIsInNvdXJjZXMiOlsibG9hZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUV4QixVQUFVLEVBQ1YsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixRQUFRLEVBR1IsV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDO0lBZ0VFLDBCQUNVLHdCQUFrRCxFQUNsRCxpQkFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFVBQXNCO1FBSnRCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUGhDLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFRWCxDQUFDO0lBdERKLHNCQUFhLHlDQUFXOzs7OztRQUF4QixVQUF5QixZQUFxQjtZQUM1QyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxF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QUNMLEtBQUs7K0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUlMLFdBQVcsU0FBQyxnQkFBZ0I7OEJBRzVCLEtBQUs7MEJBUUwsS0FBSzs7SUE0R1IsdUJBQUM7Q0FBQSxBQXBJRCxJQW9JQztTQWhJWSxnQkFBZ0I7OztJQUMzQixtQ0FBeUI7O0lBQ3pCLG9DQUEyQjs7SUFDM0IsOENBQThDOztJQUM5Qyx3Q0FBOEI7O0lBQzlCLGdDQUdFOztJQUNGLG9DQUNpQjs7SUE4Q2pCLHVDQUErQjs7SUFDL0Isc0NBQThCOztJQUM5QixrQ0FBYzs7Ozs7SUFHWixvREFBMEQ7Ozs7O0lBQzFELDZDQUFxQzs7Ozs7SUFDckMsNENBQTBDOzs7OztJQUMxQyxvQ0FBMEI7Ozs7O0lBQzFCLHNDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIFZpZXdSZWYsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvYWRpbmdCYWNrZHJvcENvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy1iYWNrZHJvcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIGZvcmtKb2luLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9hZGluZ1R5cGUgfSBmcm9tICcuL2xvYWRpbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RMb2FkaW5nXScsXHJcbiAgZXhwb3J0QXM6ICdkTG9hZGluZydcclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRpbmdEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBsb2FkaW5nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcG9zaXRpb25UeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmlldzoge1xyXG4gICAgdG9wPzogc3RyaW5nO1xyXG4gICAgbGVmdD86IHN0cmluZztcclxuICB9O1xyXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKVxyXG4gIHBvc2l0aW9uOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzaG93TG9hZGluZyhfc2hvd0xvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIGlmIChfc2hvd0xvYWRpbmcgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5zdGFydExvYWRpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW5kTG9hZGluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcobG9hZGluZzogTG9hZGluZ1R5cGUpIHtcclxuICAgIGlmIChsb2FkaW5nID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGxvYWRpbmcgaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdGFydExvYWRpbmcoKTtcclxuICAgICAgbG9hZGluZy5hZGQoKCkgPT4gdGhpcy5lbmRMb2FkaW5nKCkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBsb2FkaW5nQXJyID0gW10uY29uY2F0KGxvYWRpbmcpLm1hcChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZyb20oaXRlbSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobG9hZGluZ0Fyci5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRMb2FkaW5nKCk7XHJcbiAgICAgIGZvcmtKb2luKGxvYWRpbmdBcnIpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kTG9hZGluZygpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbmRMb2FkaW5nKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJhY2tkcm9wUmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBsb2FkaW5nUmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBhY3RpdmUgPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIHRyaWdnZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgc3RhcnRMb2FkaW5nKCkge1xyXG4gICAgaWYgKCF0aGlzLmxvYWRpbmdSZWYpIHtcclxuXHJcbiAgICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uVHlwZSB8fCAncmVsYXRpdmUnO1xyXG5cclxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3ApIHtcclxuICAgICAgICB0aGlzLmNyZWF0ZUxvYWRpbmdCYWNrZHJvcCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmxvYWRpbmdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KExvYWRpbmdDb21wb25lbnQpLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgdGhpcy5pbmplY3RvclxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5pbnNlcnQodGhpcy5sb2FkaW5nUmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLCB7XHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxyXG4gICAgICAgIGxvYWRpbmdUZW1wbGF0ZVJlZjogdGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYsXHJcbiAgICAgICAgdG9wOiB0aGlzLnZpZXcgPyB0aGlzLnZpZXcudG9wIDogJzUwJScsXHJcbiAgICAgICAgbGVmdDogdGhpcy52aWV3ID8gdGhpcy52aWV3LmxlZnQgOiAnNTAlJyxcclxuICAgICAgICBpc0N1c3RvbVBvc2l0aW9uOiAhIXRoaXMudmlld1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW5kTG9hZGluZygpIHtcclxuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nUmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5sb2FkaW5nUmVmID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5iYWNrZHJvcFJlZikge1xyXG4gICAgICB0aGlzLmJhY2tkcm9wUmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5iYWNrZHJvcFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxvYWRpbmdCYWNrZHJvcCgpIHtcclxuICAgIHRoaXMuYmFja2Ryb3BSZWYgPVxyXG4gICAgICAhdGhpcy5iYWNrZHJvcFJlZiAmJlxyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KExvYWRpbmdCYWNrZHJvcENvbXBvbmVudCksXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICB0aGlzLmluamVjdG9yXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmluc2VydCh0aGlzLmJhY2tkcm9wUmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuYmFja2Ryb3BSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHJpZ2dlckVsZW1lbnRSZWY6IHRoaXMudHJpZ2dlckVsZW1lbnRSZWYsXHJcbiAgICAgIGJhY2tkcm9wOiB0aGlzLmJhY2tkcm9wXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5zZXJ0KHZpZXdSZWY6IFZpZXdSZWYpOiBWaWV3UmVmIHtcclxuICAgICh2aWV3UmVmIGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKG5vZGUpKTtcclxuICAgIHJldHVybiB2aWV3UmVmO1xyXG4gIH1cclxufVxyXG4iXX0=