UNPKG

@js-sugar/angular

Version:

JS-Sugar core package (Angular)

44 lines 4.68 kB
import { Inject, Optional, Pipe } from '@angular/core'; import { LocaleProvider } from './locale-provider'; import { Locale } from './locale'; import { LOCALE } from './types'; import * as i0 from "@angular/core"; export class TranslatePipe { constructor(l) { this.l = l; const err = () => { throw Error('No Locale found.'); }; if (l instanceof Locale) { this._locale = l; } else if (l instanceof LocaleProvider) { this._locale = l.get(); if (!this._locale) { err(); } l.change.subscribe(x => { this._locale = x.newLocale; }); } else { err(); } } transform(dictionaryKey, ...args) { return this._locale?.lookup(dictionaryKey) ?? ''; } } TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, deps: [{ token: LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, name: "jssTranslate", pure: false }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, decorators: [{ type: Pipe, args: [{ name: 'jssTranslate', pure: false }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LOCALE] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvbG9jYWxpemF0aW9uL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFNakMsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFDc0MsQ0FBMkI7UUFBM0IsTUFBQyxHQUFELENBQUMsQ0FBMEI7UUFDL0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDbEI7YUFBTSxJQUFJLENBQUMsWUFBWSxjQUFjLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLEdBQUcsRUFBRSxDQUFDO2FBQ1A7WUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLEdBQUcsRUFBRSxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLGFBQXFCLEVBQUUsR0FBRyxJQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7OzBHQXhCVSxhQUFhLGtCQUlGLE1BQU07d0dBSmpCLGFBQWE7MkZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7OzBCQUtJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXIgfSBmcm9tICcuL2xvY2FsZS1wcm92aWRlcic7XHJcbmltcG9ydCB7IExvY2FsZSB9IGZyb20gJy4vbG9jYWxlJztcclxuaW1wb3J0IHsgTE9DQUxFIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2pzc1RyYW5zbGF0ZScsXHJcbiAgcHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwcml2YXRlIF9sb2NhbGU/OiBMb2NhbGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEUpIHByaXZhdGUgbD86IExvY2FsZSB8IExvY2FsZVByb3ZpZGVyKSB7XHJcbiAgICBjb25zdCBlcnIgPSAoKSA9PiB7IHRocm93IEVycm9yKCdObyBMb2NhbGUgZm91bmQuJyk7IH07XHJcblxyXG4gICAgaWYgKGwgaW5zdGFuY2VvZiBMb2NhbGUpIHtcclxuICAgICAgdGhpcy5fbG9jYWxlID0gbDtcclxuICAgIH0gZWxzZSBpZiAobCBpbnN0YW5jZW9mIExvY2FsZVByb3ZpZGVyKSB7XHJcbiAgICAgIHRoaXMuX2xvY2FsZSA9IGwuZ2V0KCk7XHJcbiAgICAgIGlmICghdGhpcy5fbG9jYWxlKSB7XHJcbiAgICAgICAgZXJyKCk7XHJcbiAgICAgIH1cclxuICAgICAgbC5jaGFuZ2Uuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IHgubmV3TG9jYWxlO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVycigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKGRpY3Rpb25hcnlLZXk6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2NhbGU/Lmxvb2t1cChkaWN0aW9uYXJ5S2V5KSA/PyAnJztcclxuICB9XHJcbn1cclxuIl19