UNPKG

@jsverse/transloco-locale

Version:

The localization (l10n) library plugin for Transloco

44 lines 6.27 kB
import { inject, Pipe } from '@angular/core'; import { isNil } from '@jsverse/transloco'; 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: "17.0.9", ngImport: i0, type: TranslocoCurrencyPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: TranslocoCurrencyPipe, isStandalone: true, name: "translocoCurrency", pure: false }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: TranslocoCurrencyPipe, decorators: [{ type: Pipe, args: [{ name: 'translocoCurrency', pure: false, standalone: true, }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1sb2NhbGUvc3JjL2xpYi9waXBlcy90cmFuc2xvY28tY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVFyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3BELE1BQU0sT0FBTyxxQkFDWCxTQUFRLGNBQWM7SUFHZCxZQUFZLEdBQWlCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJFOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsU0FBUyxDQUNQLEtBQXNCLEVBQ3RCLFVBQXVELFFBQVEsRUFDL0Qsc0JBQTJDLEVBQUUsRUFDN0MsWUFBdUIsRUFDdkIsTUFBZTtRQUVmLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0QsR0FBRyxtQkFBbUI7WUFDdEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsUUFBUSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFO1NBQ3BFLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUN0QyxLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7dUdBekNVLHFCQUFxQjtxR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUxqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBUUkFOU0xPQ09fTE9DQUxFX0NPTkZJRyB9IGZyb20gJy4uL3RyYW5zbG9jby1sb2NhbGUuY29uZmlnJztcbmltcG9ydCB7XG4gIEN1cnJlbmN5LFxuICBMb2NhbGUsXG4gIExvY2FsZUNvbmZpZyxcbiAgTnVtYmVyRm9ybWF0T3B0aW9ucyxcbn0gZnJvbSAnLi4vdHJhbnNsb2NvLWxvY2FsZS50eXBlcyc7XG5cbmltcG9ydCB7IEJhc2VMb2NhbGVQaXBlIH0gZnJvbSAnLi9iYXNlLWxvY2FsZS5waXBlJztcblxuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsb2NvQ3VycmVuY3knLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsb2NvQ3VycmVuY3lQaXBlXG4gIGV4dGVuZHMgQmFzZUxvY2FsZVBpcGVcbiAgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtXG57XG4gIHByaXZhdGUgbG9jYWxlQ29uZmlnOiBMb2NhbGVDb25maWcgPSBpbmplY3QoVFJBTlNMT0NPX0xPQ0FMRV9DT05GSUcpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSBnaXZlbiBudW1iZXIgaW50byB0aGUgbG9jYWxlJ3MgY3VycmVuY3kgZm9ybWF0LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiAxMDAwMDAwIHwgdHJhbnNsb2NvQ3VycmVuY3k6ICdzeW1ib2wnIDoge30gOiBVU0QgLy8gJDEsMDAwLDAwMC4wMFxuICAgKiAxMDAwMDAwIHwgdHJhbnNsb2NvQ3VycmVuY3k6ICduYW1lJyA6IHt9IDogVVNEIC8vIDEsMDAwLDAwMC4wMCBVUyBkb2xsYXJzXG4gICAqIDEwMDAwMDAgfCB0cmFuc2xvY29DdXJyZW5jeTogJ3N5bWJvbCcgOiB7bWluaW11bUZyYWN0aW9uRGlnaXRzOiAwIH0gOiBVU0QgLy8gJDEsMDAwLDAwMFxuICAgKiAxMDAwMDAwIHwgdHJhbnNsb2NvQ3VycmVuY3k6ICdzeW1ib2wnIDoge21pbmltdW1GcmFjdGlvbkRpZ2l0czogMCB9IDogQ0FEIC8vIENBJDEsMDAwLDAwMFxuICAgKiAxMDAwMDAwIHwgdHJhbnNsb2NvQ3VycmVuY3k6ICduYXJyb3dTeW1ib2wnIDoge21pbmltdW1GcmFjdGlvbkRpZ2l0czogMCB9IDogQ0FEIC8vICQxLDAwMCwwMDBcbiAgICpcbiAgICovXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICAgIGRpc3BsYXk6ICdjb2RlJyB8ICdzeW1ib2wnIHwgJ25hcnJvd1N5bWJvbCcgfCAnbmFtZScgPSAnc3ltYm9sJyxcbiAgICBudW1iZXJGb3JtYXRPcHRpb25zOiBOdW1iZXJGb3JtYXRPcHRpb25zID0ge30sXG4gICAgY3VycmVuY3lDb2RlPzogQ3VycmVuY3ksXG4gICAgbG9jYWxlPzogTG9jYWxlXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGlzTmlsKHZhbHVlKSkgcmV0dXJuICcnO1xuICAgIGxvY2FsZSA9IHRoaXMuZ2V0TG9jYWxlKGxvY2FsZSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4uZ2V0RGVmYXVsdE9wdGlvbnMobG9jYWxlLCAnY3VycmVuY3knLCB0aGlzLmxvY2FsZUNvbmZpZyksXG4gICAgICAuLi5udW1iZXJGb3JtYXRPcHRpb25zLFxuICAgICAgY3VycmVuY3lEaXNwbGF5OiBkaXNwbGF5LFxuICAgICAgY3VycmVuY3k6IGN1cnJlbmN5Q29kZSB8fCB0aGlzLmxvY2FsZVNlcnZpY2UuX3Jlc29sdmVDdXJyZW5jeUNvZGUoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubG9jYWxlU2VydmljZS5sb2NhbGl6ZU51bWJlcihcbiAgICAgIHZhbHVlLFxuICAgICAgJ2N1cnJlbmN5JyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG59XG4iXX0=