@jsverse/transloco-locale
Version:
The localization (l10n) library plugin for Transloco
24 lines • 3.89 kB
JavaScript
import { ChangeDetectorRef, inject, Injectable, } from '@angular/core';
import { TranslocoLocaleService } from '../transloco-locale.service';
import * as i0 from "@angular/core";
export class BaseLocalePipe {
localeService = inject(TranslocoLocaleService);
cdr = inject(ChangeDetectorRef);
localeChangeSub = this.localeService.localeChanges$.subscribe(() => this.cdr.markForCheck());
getLocale(locale) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return locale || this.localeService.getLocale();
}
ngOnDestroy() {
this.localeChangeSub?.unsubscribe();
// Caretaker note: it's important to clean up references to subscriptions since they save the `next`
// callback within its `destination` property, preventing classes from being GC'd.
this.localeChangeSub = null;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseLocalePipe, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseLocalePipe });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseLocalePipe, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sb2NhbGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLWxvY2FsZS9zcmMvbGliL3BpcGVzL2Jhc2UtbG9jYWxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sVUFBVSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUdyRSxNQUFNLE9BQWdCLGNBQWM7SUFDeEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQy9DLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVsQyxlQUFlLEdBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFFbkUsU0FBUyxDQUFDLE1BQWU7UUFDakMsb0VBQW9FO1FBQ3BFLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFHLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLG9HQUFvRztRQUNwRyxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzt1R0FqQm1CLGNBQWM7MkdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBpbmplY3QsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTG9jYWxlIH0gZnJvbSAnLi4vLi4vbGliL3RyYW5zbG9jby1sb2NhbGUudHlwZXMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvTG9jYWxlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbG9jby1sb2NhbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTG9jYWxlUGlwZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBsb2NhbGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb0xvY2FsZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwcml2YXRlIGxvY2FsZUNoYW5nZVN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmxvY2FsZUNoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XG5cbiAgcHJvdGVjdGVkIGdldExvY2FsZShsb2NhbGU/OiBMb2NhbGUpOiBMb2NhbGUge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIGxvY2FsZSB8fCB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCkhO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGVDaGFuZ2VTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLmxvY2FsZUNoYW5nZVN1YiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==