UNPKG

ngx-cache-if

Version:

Angular *ngIf directive that cache content. *ngxCacheIf directive render content when needed and cache it for reuse.

108 lines (100 loc) 7.97 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) : typeof define === 'function' && define.amd ? define('ngx-cache-if', ['exports', '@angular/core'], factory) : (factory((global['ngx-cache-if'] = {}),global.ng.core)); }(this, (function (exports,core) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var NgxCacheIfDirective = (function () { function NgxCacheIfDirective(templateRef, viewContainer, el, renderer, cfr) { this.templateRef = templateRef; this.viewContainer = viewContainer; this.el = el; this.renderer = renderer; this.cfr = cfr; this.loaded = {}; } /** * @param {?} changes * @return {?} */ NgxCacheIfDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (!this.loaded[this.templateRef.elementRef.nativeElement.nodeName]) { if (changes["ngxCacheIf"].currentValue) { this.viewContainer.clear(); this.loaded[this.templateRef.elementRef.nativeElement.nodeName] = this.viewContainer.createEmbeddedView(this.templateRef); } } else { try { if (changes["ngxCacheIf"].currentValue) { this.viewContainer.insert(this.loaded[this.templateRef.elementRef.nativeElement.nodeName]); } else { this.viewContainer.detach(); } } catch (e) { console.log(e); } } }; NgxCacheIfDirective.decorators = [ { type: core.Directive, args: [{ selector: '[ngxCacheIf]' },] }, ]; /** @nocollapse */ NgxCacheIfDirective.ctorParameters = function () { return [ { type: core.TemplateRef }, { type: core.ViewContainerRef }, { type: core.ElementRef }, { type: core.Renderer2 }, { type: core.ComponentFactoryResolver } ]; }; NgxCacheIfDirective.propDecorators = { ngxCacheIf: [{ type: core.Input }] }; return NgxCacheIfDirective; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var NgxCacheIfModule = (function () { function NgxCacheIfModule() { } NgxCacheIfModule.decorators = [ { type: core.NgModule, args: [{ imports: [], declarations: [ NgxCacheIfDirective ], exports: [ NgxCacheIfDirective ] },] }, ]; return NgxCacheIfModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ exports.NgxCacheIfDirective = NgxCacheIfDirective; exports.NgxCacheIfModule = NgxCacheIfModule; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNhY2hlLWlmLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWNhY2hlLWlmL2xpYi9uZ3gtY2FjaGUtaWYuZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtY2FjaGUtaWYvbGliL25neC1jYWNoZS1pZi5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgRWxlbWVudFJlZixcbiAgUmVuZGVyZXIyLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neENhY2hlSWZdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hDYWNoZUlmRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuZ3hDYWNoZUlmOiBhbnk7XG4gIGxvYWRlZDoge1trZXk6IHN0cmluZ106IEVtYmVkZGVkVmlld1JlZjxhbnk+fSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRlZFt0aGlzLnRlbXBsYXRlUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZV0pIHtcbiAgICAgIGlmIChjaGFuZ2VzLm5neENhY2hlSWYuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICB0aGlzLmxvYWRlZFt0aGlzLnRlbXBsYXRlUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZV0gPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm5neENhY2hlSWYuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmluc2VydCh0aGlzLmxvYWRlZFt0aGlzLnRlbXBsYXRlUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05neENhY2hlSWZEaXJlY3RpdmV9IGZyb20gJy4vbmd4LWNhY2hlLWlmLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmd4Q2FjaGVJZkRpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4Q2FjaGVJZkRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neENhY2hlSWZNb2R1bGUgeyB9XG4iXSwibmFtZXMiOlsiRGlyZWN0aXZlIiwiVGVtcGxhdGVSZWYiLCJWaWV3Q29udGFpbmVyUmVmIiwiRWxlbWVudFJlZiIsIlJlbmRlcmVyMiIsIkNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciIsIklucHV0IiwiTmdNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtRQW9CRSw2QkFBb0IsV0FBNkIsRUFBVSxhQUErQixFQUN0RSxJQUF3QixRQUFtQixFQUMzQztZQUZBLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtZQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtZQUN0RSxPQUFFLEdBQUYsRUFBRTtZQUFzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1lBQzNDLFFBQUcsR0FBSCxHQUFHOzBCQUp5QixFQUFFO1NBS2pEOzs7OztRQUVELHlDQUFXOzs7O1lBQVgsVUFBWSxPQUFzQjtnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNwRSxJQUFJLE9BQU8sZUFBWSxZQUFZLEVBQUU7d0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUN6SDtpQkFDSjtxQkFBTTtvQkFDTCxJQUFJO3dCQUNGLElBQUksT0FBTyxlQUFZLFlBQVksRUFBRTs0QkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzt5QkFDNUY7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt5QkFDN0I7cUJBQ0Y7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDaEI7aUJBQ0Y7YUFDRjs7b0JBOUJGQSxjQUFTLFNBQUM7d0JBQ1QsUUFBUSxFQUFFLGNBQWM7cUJBQ3pCOzs7Ozt3QkFWQ0MsZ0JBQVc7d0JBQ1hDLHFCQUFnQjt3QkFDaEJDLGVBQVU7d0JBQ1ZDLGNBQVM7d0JBQ1RDLDZCQUF3Qjs7OztpQ0FTdkJDLFVBQUs7O2tDQWpCUjs7Ozs7OztBQ0FBOzs7O29CQUdDQyxhQUFRLFNBQUM7d0JBQ1IsT0FBTyxFQUFFLEVBQ1I7d0JBQ0QsWUFBWSxFQUFFOzRCQUNaLG1CQUFtQjt5QkFDcEI7d0JBQ0QsT0FBTyxFQUFFOzRCQUNQLG1CQUFtQjt5QkFDcEI7cUJBQ0Y7OytCQVpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=