UNPKG

@js-sugar/angular

Version:

JS-Sugar core package (Angular)

40 lines 5.08 kB
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==