UNPKG

ngx-deferred-loader

Version:

Defer displaying loading placeholders until given period of time passes ⏱

90 lines (84 loc) 6.49 kB
import { Directive, Input, TemplateRef, ViewContainerRef, NgModule } from '@angular/core'; import 'rxjs'; import { CommonModule } from '@angular/common'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ var NgxDeferredLoaderDirective = /** @class */ (function () { function NgxDeferredLoaderDirective(templateRef, viewContainer) { this.templateRef = templateRef; this.viewContainer = viewContainer; this.DEFAULT_WAIT_LIMIT = 200; } /** * @param {?} changes * @return {?} */ NgxDeferredLoaderDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var _this = this; if (changes.deferredLoader.previousValue) { this.isObservableCompleted = false; } if (changes.deferredLoader.currentValue) { changes.deferredLoader.currentValue.subscribe({ complete: function () { _this.isObservableCompleted = true; _this.viewContainer.clear(); } }); setTimeout(function () { if (!_this.isObservableCompleted) { _this.viewContainer.createEmbeddedView(_this.templateRef); } }, this.deferredLoaderWaitMs || this.DEFAULT_WAIT_LIMIT); } }; NgxDeferredLoaderDirective.decorators = [ { type: Directive, args: [{ selector: '[deferredLoader]', },] } ]; /** @nocollapse */ NgxDeferredLoaderDirective.ctorParameters = function () { return [ { type: TemplateRef }, { type: ViewContainerRef } ]; }; NgxDeferredLoaderDirective.propDecorators = { deferredLoader: [{ type: Input }], deferredLoaderWaitMs: [{ type: Input }] }; return NgxDeferredLoaderDirective; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ var DeferredLoaderModule = /** @class */ (function () { function DeferredLoaderModule() { } DeferredLoaderModule.decorators = [ { type: NgModule, args: [{ declarations: [NgxDeferredLoaderDirective], imports: [ CommonModule ], exports: [NgxDeferredLoaderDirective] },] } ]; return DeferredLoaderModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ export { NgxDeferredLoaderDirective, DeferredLoaderModule }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRlZmVycmVkLWxvYWRlci5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWRlZmVycmVkLWxvYWRlci9saWIvbmd4LWRlZmVycmVkLWxvYWRlci5kaXJlY3RpdmUudHMiLCJuZzovL25neC1kZWZlcnJlZC1sb2FkZXIvbGliL25neC1kZWZlcnJlZC1sb2FkZXIubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZWZlcnJlZExvYWRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hEZWZlcnJlZExvYWRlckRpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBERUZBVUxUX1dBSVRfTElNSVQgPSAyMDA7XG4gIHByaXZhdGUgaXNPYnNlcnZhYmxlQ29tcGxldGVkXG5cbiAgQElucHV0KClcbiAgZGVmZXJyZWRMb2FkZXI6IE9ic2VydmFibGU8YW55PjtcblxuICBASW5wdXQoKVxuICBkZWZlcnJlZExvYWRlcldhaXRNczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmRlZmVycmVkTG9hZGVyLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNPYnNlcnZhYmxlQ29tcGxldGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGVmZXJyZWRMb2FkZXIuY3VycmVudFZhbHVlKSB7XG5cbiAgICAgIGNoYW5nZXMuZGVmZXJyZWRMb2FkZXIuY3VycmVudFZhbHVlLnN1YnNjcmliZSh7XG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc09ic2VydmFibGVDb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT2JzZXJ2YWJsZUNvbXBsZXRlZCkge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMuZGVmZXJyZWRMb2FkZXJXYWl0TXMgfHwgdGhpcy5ERUZBVUxUX1dBSVRfTElNSVQpXG4gICAgfVxuICB9XG5cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hEZWZlcnJlZExvYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LWRlZmVycmVkLWxvYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmd4RGVmZXJyZWRMb2FkZXJEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtOZ3hEZWZlcnJlZExvYWRlckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVmZXJyZWRMb2FkZXJNb2R1bGUgeyB9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtJQWlCRSxvQ0FDVSxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBWGpDLHVCQUFrQixHQUFHLEdBQUcsQ0FBQztLQVk1Qjs7Ozs7SUFFTCxnREFBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFBbEMsaUJBb0JDO1FBbkJDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7WUFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztTQUNwQztRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUU7WUFFdkMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO2dCQUM1QyxRQUFRLEVBQUU7b0JBQ1IsS0FBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztvQkFDbEMsS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDNUI7YUFDRixDQUFDLENBQUE7WUFFRixVQUFVLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLEtBQUksQ0FBQyxxQkFBcUIsRUFBRTtvQkFDL0IsS0FBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ3pEO2FBQ0YsRUFBRSxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7U0FDekQ7S0FDRjs7Z0JBdkNGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7OztnQkFMMEIsV0FBVztnQkFBRSxnQkFBZ0I7OztpQ0FXckQsS0FBSzt1Q0FHTCxLQUFLOztJQThCUixpQ0FBQztDQXpDRDs7Ozs7O0FDSEE7SUFJQTtLQU9xQzs7Z0JBUHBDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDOztJQUNtQywyQkFBQztDQVByQzs7Ozs7Ozs7Ozs7Ozs7In0=