@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
245 lines • 18.7 kB
JavaScript
/**
* @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=