UNPKG

@jsverse/transloco-locale

Version:

The localization (l10n) library plugin for Transloco

44 lines 6.26 kB
import { inject, Pipe } from '@angular/core'; import { isNil } from '@jsverse/utils'; import { getDefaultOptions } from '../shared'; import { TRANSLOCO_LOCALE_CONFIG } from '../transloco-locale.config'; import { BaseLocalePipe } from './base-locale.pipe'; import * as i0 from "@angular/core"; export class TranslocoCurrencyPipe extends BaseLocalePipe { localeConfig = inject(TRANSLOCO_LOCALE_CONFIG); /** * Transform a given number into the locale's currency format. * * @example * * 1000000 | translocoCurrency: 'symbol' : {} : USD // $1,000,000.00 * 1000000 | translocoCurrency: 'name' : {} : USD // 1,000,000.00 US dollars * 1000000 | translocoCurrency: 'symbol' : {minimumFractionDigits: 0 } : USD // $1,000,000 * 1000000 | translocoCurrency: 'symbol' : {minimumFractionDigits: 0 } : CAD // CA$1,000,000 * 1000000 | translocoCurrency: 'narrowSymbol' : {minimumFractionDigits: 0 } : CAD // $1,000,000 * */ transform(value, display = 'symbol', numberFormatOptions = {}, currencyCode, locale) { if (isNil(value)) return ''; locale = this.getLocale(locale); const options = { ...getDefaultOptions(locale, 'currency', this.localeConfig), ...numberFormatOptions, currencyDisplay: display, currency: currencyCode || this.localeService._resolveCurrencyCode(), }; return this.localeService.localizeNumber(value, 'currency', locale, options); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoCurrencyPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: TranslocoCurrencyPipe, isStandalone: true, name: "translocoCurrency", pure: false }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoCurrencyPipe, decorators: [{ type: Pipe, args: [{ name: 'translocoCurrency', pure: false, standalone: true, }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1sb2NhbGUvc3JjL2xpYi9waXBlcy90cmFuc2xvY28tY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVFyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3BELE1BQU0sT0FBTyxxQkFDWCxTQUFRLGNBQWM7SUFHZCxZQUFZLEdBQWlCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJFOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsU0FBUyxDQUNQLEtBQXNCLEVBQ3RCLFVBQXVELFFBQVEsRUFDL0Qsc0JBQTJDLEVBQUUsRUFDN0MsWUFBdUIsRUFDdkIsTUFBZTtRQUVmLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0QsR0FBRyxtQkFBbUI7WUFDdEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsUUFBUSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFO1NBQ3BFLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUN0QyxLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7dUdBekNVLHFCQUFxQjtxR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUxqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdAanN2ZXJzZS91dGlscyc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IFRSQU5TTE9DT19MT0NBTEVfQ09ORklHIH0gZnJvbSAnLi4vdHJhbnNsb2NvLWxvY2FsZS5jb25maWcnO1xuaW1wb3J0IHtcbiAgQ3VycmVuY3ksXG4gIExvY2FsZSxcbiAgTG9jYWxlQ29uZmlnLFxuICBOdW1iZXJGb3JtYXRPcHRpb25zLFxufSBmcm9tICcuLi90cmFuc2xvY28tbG9jYWxlLnR5cGVzJztcblxuaW1wb3J0IHsgQmFzZUxvY2FsZVBpcGUgfSBmcm9tICcuL2Jhc2UtbG9jYWxlLnBpcGUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xvY29DdXJyZW5jeScsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xvY29DdXJyZW5jeVBpcGVcbiAgZXh0ZW5kcyBCYXNlTG9jYWxlUGlwZVxuICBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm1cbntcbiAgcHJpdmF0ZSBsb2NhbGVDb25maWc6IExvY2FsZUNvbmZpZyA9IGluamVjdChUUkFOU0xPQ09fTE9DQUxFX0NPTkZJRyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIGdpdmVuIG51bWJlciBpbnRvIHRoZSBsb2NhbGUncyBjdXJyZW5jeSBmb3JtYXQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIDEwMDAwMDAgfCB0cmFuc2xvY29DdXJyZW5jeTogJ3N5bWJvbCcgOiB7fSA6IFVTRCAvLyAkMSwwMDAsMDAwLjAwXG4gICAqIDEwMDAwMDAgfCB0cmFuc2xvY29DdXJyZW5jeTogJ25hbWUnIDoge30gOiBVU0QgLy8gMSwwMDAsMDAwLjAwIFVTIGRvbGxhcnNcbiAgICogMTAwMDAwMCB8IHRyYW5zbG9jb0N1cnJlbmN5OiAnc3ltYm9sJyA6IHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAgfSA6IFVTRCAvLyAkMSwwMDAsMDAwXG4gICAqIDEwMDAwMDAgfCB0cmFuc2xvY29DdXJyZW5jeTogJ3N5bWJvbCcgOiB7bWluaW11bUZyYWN0aW9uRGlnaXRzOiAwIH0gOiBDQUQgLy8gQ0EkMSwwMDAsMDAwXG4gICAqIDEwMDAwMDAgfCB0cmFuc2xvY29DdXJyZW5jeTogJ25hcnJvd1N5bWJvbCcgOiB7bWluaW11bUZyYWN0aW9uRGlnaXRzOiAwIH0gOiBDQUQgLy8gJDEsMDAwLDAwMFxuICAgKlxuICAgKi9cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsXG4gICAgZGlzcGxheTogJ2NvZGUnIHwgJ3N5bWJvbCcgfCAnbmFycm93U3ltYm9sJyB8ICduYW1lJyA9ICdzeW1ib2wnLFxuICAgIG51bWJlckZvcm1hdE9wdGlvbnM6IE51bWJlckZvcm1hdE9wdGlvbnMgPSB7fSxcbiAgICBjdXJyZW5jeUNvZGU/OiBDdXJyZW5jeSxcbiAgICBsb2NhbGU/OiBMb2NhbGUsXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGlzTmlsKHZhbHVlKSkgcmV0dXJuICcnO1xuICAgIGxvY2FsZSA9IHRoaXMuZ2V0TG9jYWxlKGxvY2FsZSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4uZ2V0RGVmYXVsdE9wdGlvbnMobG9jYWxlLCAnY3VycmVuY3knLCB0aGlzLmxvY2FsZUNvbmZpZyksXG4gICAgICAuLi5udW1iZXJGb3JtYXRPcHRpb25zLFxuICAgICAgY3VycmVuY3lEaXNwbGF5OiBkaXNwbGF5LFxuICAgICAgY3VycmVuY3k6IGN1cnJlbmN5Q29kZSB8fCB0aGlzLmxvY2FsZVNlcnZpY2UuX3Jlc29sdmVDdXJyZW5jeUNvZGUoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9jYWxlU2VydmljZS5sb2NhbGl6ZU51bWJlcihcbiAgICAgIHZhbHVlLFxuICAgICAgJ2N1cnJlbmN5JyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgfVxufVxuIl19