@schoolbelle/common
Version:
Demo library to showcase Angular packaging format
83 lines (77 loc) • 6.34 kB
JavaScript
import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class TranslationService {
/**
* @param {?} injector
*/
constructor(injector) {
this.injector = injector;
this.translationMap = new Map();
}
/**
* @param {?} Component
* @return {?}
*/
injectComponent(Component) {
if (!Component)
return;
const /** @type {?} */ componentFactory = this.injector
.get(ComponentFactoryResolver)
.resolveComponentFactory(Component);
const /** @type {?} */ containerEl = document.querySelector('body');
const /** @type {?} */ TranslationCmptRef = componentFactory.create(this.injector);
this.injector.get(ApplicationRef).attachView(TranslationCmptRef.hostView);
if (TranslationCmptRef.location.nativeElement) {
containerEl.appendChild(TranslationCmptRef.location.nativeElement);
Array.from(TranslationCmptRef.location.nativeElement.querySelectorAll('div[translation-text]')).forEach((el) => this.translationMap.set(el.id, el.attributes['translation-text'].value));
}
}
/**
* @param {?} key
* @return {?}
*/
get(key) {
return (this.translationMap.get(key) || 'Translation cannot be found for :' + key);
}
}
TranslationService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
TranslationService.ctorParameters = () => [
{ type: Injector, },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class TranslationModule {
/**
* @return {?}
*/
static forRoot() {
return {
ngModule: TranslationModule,
providers: [TranslationService]
};
}
}
TranslationModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule]
},] },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
export { TranslationModule, TranslationService };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29sYmVsbGUtY29tbW9uLXNlcnZpY2VzLXRyYW5zbGF0aW9uLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Ac2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UudHMiLCJuZzovL0BzY2hvb2xiZWxsZS9jb21tb24vc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgSW5qZWN0b3IsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHRyYW5zbGF0aW9uTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xuICBpbmplY3RDb21wb25lbnQoQ29tcG9uZW50OiBhbnkpIHtcbiAgICBpZiAoIUNvbXBvbmVudCkgcmV0dXJuO1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmluamVjdG9yXG4gICAgICAuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcilcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShDb21wb25lbnQpO1xuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuXG4gICAgY29uc3QgVHJhbnNsYXRpb25DbXB0UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKFxuICAgICAgdGhpcy5pbmplY3RvclxuICAgICk7XG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpLmF0dGFjaFZpZXcoVHJhbnNsYXRpb25DbXB0UmVmLmhvc3RWaWV3KTtcbiAgICBpZiAoVHJhbnNsYXRpb25DbXB0UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnRhaW5lckVsLmFwcGVuZENoaWxkKFRyYW5zbGF0aW9uQ21wdFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIFRyYW5zbGF0aW9uQ21wdFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2Rpdlt0cmFuc2xhdGlvbi10ZXh0XSdcbiAgICAgICAgKVxuICAgICAgKS5mb3JFYWNoKChlbDogSFRNTEVsZW1lbnQpID0+XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25NYXAuc2V0KGVsLmlkLCBlbC5hdHRyaWJ1dGVzWyd0cmFuc2xhdGlvbi10ZXh0J10udmFsdWUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uTWFwLmdldChrZXkpIHx8ICdUcmFuc2xhdGlvbiBjYW5ub3QgYmUgZm91bmQgZm9yIDonICsga2V5XG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbVHJhbnNsYXRpb25TZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7SUFVRSxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVOzhCQUVDLElBQUksR0FBRyxFQUFFO0tBRk47Ozs7O0lBR3pDLGVBQWUsQ0FBQyxTQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2Qix1QkFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUTthQUNuQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7YUFDN0IsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsdUJBQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsdUJBQU0sa0JBQWtCLEdBQXNCLGdCQUFnQixDQUFDLE1BQU0sQ0FDbkUsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxXQUFXLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRSxLQUFLLENBQUMsSUFBSSxDQUNSLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3hELHVCQUF1QixDQUN4QixDQUNGLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBZSxLQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDeEUsQ0FBQztTQUNIO0tBQ0Y7Ozs7O0lBQ0QsR0FBRyxDQUFDLEdBQVc7UUFDYixRQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1DQUFtQyxHQUFHLEdBQUcsRUFDekU7S0FDSDs7O1lBL0JGLFVBQVU7Ozs7WUFMVCxRQUFROzs7Ozs7O0FDSFY7Ozs7SUFPRSxPQUFPLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNoQyxDQUFDO0tBQ0g7OztZQVRGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEI7Ozs7Ozs7Ozs7Ozs7OzsifQ==