@js-sugar/angular
Version:
JS-Sugar core package (Angular)
44 lines • 4.68 kB
JavaScript
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