UNPKG

@ngneat/transloco

Version:

The internationalization (i18n) library for Angular

73 lines 5.14 kB
/** * @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