@js-sugar/angular
Version:
JS-Sugar core package (Angular)
40 lines • 5.08 kB
JavaScript
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import { Locale } from './locale';
import * as i0 from "@angular/core";
export class LocaleProvider {
constructor() {
this._locales = [];
this._changeSubject = new Subject();
this.change = this._changeSubject.asObservable();
}
add(l) {
if (l instanceof Locale) {
this._locales.push(l);
}
else if (Array.isArray(l)) {
l.forEach(x => this.add(x));
}
else {
throw Error('Invalid locale');
}
}
set(localeName) {
const locale = this._locales.find(x => x.name === localeName);
if (locale) {
this._changeSubject.next({ oldLocale: this._locale, newLocale: locale });
this._locale = locale;
return;
}
throw Error('Locale not found.');
}
get() {
return this._locale;
}
}
LocaleProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocaleProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
LocaleProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocaleProvider });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocaleProvider, decorators: [{
type: Injectable
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2xvY2FsaXphdGlvbi9sb2NhbGUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQVNsQyxNQUFNLE9BQU8sY0FBYztJQU16QjtRQUpRLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUNqRCxXQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUdyRCxDQUFDO0lBTUQsR0FBRyxDQUFDLENBQU07UUFDUixJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkI7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFHRCxHQUFHLENBQUMsVUFBa0I7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQzlELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUN0QixPQUFPO1NBQ1I7UUFFRCxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OzJHQXRDVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvY2FsZSB9IGZyb20gJy4vbG9jYWxlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxlQ2hhbmdlRXZlbnQge1xyXG4gIG9sZExvY2FsZT86IExvY2FsZTtcclxuICBuZXdMb2NhbGU6IExvY2FsZTtcclxufVxyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExvY2FsZVByb3ZpZGVyIHtcclxuICBwcml2YXRlIF9sb2NhbGU/OiBMb2NhbGU7XHJcbiAgcHJpdmF0ZSBfbG9jYWxlczogTG9jYWxlW10gPSBbXTtcclxuICBwcml2YXRlIF9jaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TG9jYWxlQ2hhbmdlRXZlbnQ+KCk7XHJcbiAgcmVhZG9ubHkgY2hhbmdlID0gdGhpcy5fY2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICAvKiogQWRkcyBhIExvY2FsZSB0byB0aGlzIExvY2FsZVByb3ZpZGVyICovXHJcbiAgYWRkKGxvY2FsZTogTG9jYWxlKTogdm9pZDtcclxuICAvKiogQWRkcyBhbiBhcnJheSBvZiBMb2NhbGVzIHRvIHRoaXMgTG9jYWxlUHJvdmlkZXIgKi9cclxuICBhZGQobG9jYWxlczogTG9jYWxlW10pOiB2b2lkO1xyXG4gIGFkZChsOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChsIGluc3RhbmNlb2YgTG9jYWxlKSB7XHJcbiAgICAgIHRoaXMuX2xvY2FsZXMucHVzaChsKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShsKSkge1xyXG4gICAgICBsLmZvckVhY2goeCA9PiB0aGlzLmFkZCh4KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBFcnJvcignSW52YWxpZCBsb2NhbGUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHRoZSBjdXJyZW50IExvY2FsZSAqL1xyXG4gIHNldChsb2NhbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuX2xvY2FsZXMuZmluZCh4ID0+IHgubmFtZSA9PT0gbG9jYWxlTmFtZSk7XHJcbiAgICBpZiAobG9jYWxlKSB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QubmV4dCh7IG9sZExvY2FsZTogdGhpcy5fbG9jYWxlLCBuZXdMb2NhbGU6IGxvY2FsZSB9KTtcclxuICAgICAgdGhpcy5fbG9jYWxlID0gbG9jYWxlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgRXJyb3IoJ0xvY2FsZSBub3QgZm91bmQuJyk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0aGUgY3VycmVudCBMb2NhbGUgKi9cclxuICBnZXQoKTogTG9jYWxlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==