@jsverse/transloco-locale
Version:
The localization (l10n) library plugin for Transloco
44 lines • 6.26 kB
JavaScript
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