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
JavaScript
(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=