@ngneat/transloco
Version:
The internationalization (i18n) library for Angular
73 lines • 5.14 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/template-handler.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { TemplateRef, ComponentFactoryResolver } from '@angular/core';
import { isString } from './helpers';
import { TranslocoLoaderComponent } from './loader-component.component';
export class TemplateHandler {
/**
* @param {?} view
* @param {?} vcr
*/
constructor(view, vcr) {
this.view = view;
this.vcr = vcr;
this.injector = this.vcr.injector;
}
/**
* @return {?}
*/
attachView() {
if (this.view instanceof TemplateRef) {
this.vcr.createEmbeddedView(this.view);
}
else if (isString(this.view)) {
/** @type {?} */
const componentRef = this.createComponent(TranslocoLoaderComponent);
componentRef.instance.html = this.view;
componentRef.hostView.detectChanges();
}
else {
this.createComponent(this.view);
}
}
/**
* @return {?}
*/
detachView() {
this.vcr.clear();
}
/**
* @private
* @template T
* @param {?} cmp
* @return {?}
*/
createComponent(cmp) {
/** @type {?} */
const cfr = this.injector.get(ComponentFactoryResolver);
/** @type {?} */
const factory = cfr.resolveComponentFactory(cmp);
return this.vcr.createComponent(factory);
}
}
if (false) {
/**
* @type {?}
* @private
*/
TemplateHandler.prototype.injector;
/**
* @type {?}
* @private
*/
TemplateHandler.prototype.view;
/**
* @type {?}
* @private
*/
TemplateHandler.prototype.vcr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdHJhbnNsb2NvLyIsInNvdXJjZXMiOlsibGliL3RlbXBsYXRlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQWdCLFdBQVcsRUFBb0Isd0JBQXdCLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJeEUsTUFBTSxPQUFPLGVBQWU7Ozs7O0lBRzFCLFlBQW9CLElBQVUsRUFBVSxHQUFxQjtRQUF6QyxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7O2tCQUN4QixZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBMkIsd0JBQXdCLENBQUM7WUFDN0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7Ozs7O0lBRU8sZUFBZSxDQUFJLEdBQWM7O2NBQ2pDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzs7Y0FDakQsT0FBTyxHQUFHLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7Ozs7OztJQTVCQyxtQ0FBMkI7Ozs7O0lBRWYsK0JBQWtCOzs7OztJQUFFLDhCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1jb21wb25lbnQuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB0eXBlIFZpZXcgPSBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+O1xyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlSGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlldzogVmlldywgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHRoaXMuaW5qZWN0b3IgPSB0aGlzLnZjci5pbmplY3RvcjtcclxuICB9XHJcblxyXG4gIGF0dGFjaFZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy52aWV3IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcclxuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudmlldyk7XHJcbiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKHRoaXMudmlldykpIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jcmVhdGVDb21wb25lbnQ8VHJhbnNsb2NvTG9hZGVyQ29tcG9uZW50PihUcmFuc2xvY29Mb2FkZXJDb21wb25lbnQpO1xyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuaHRtbCA9IHRoaXMudmlldztcclxuICAgICAgY29tcG9uZW50UmVmLmhvc3RWaWV3LmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KHRoaXMudmlldyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZXRhY2hWaWV3KCkge1xyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50PFQ+KGNtcDogVHlwZTxhbnk+KTogQ29tcG9uZW50UmVmPFQ+IHtcclxuICAgIGNvbnN0IGNmciA9IHRoaXMuaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNtcCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICB9XHJcbn1cclxuIl19