@taiga-ui/addon-commerce
Version:
Extension package for Taiga UI related to commerce, payment systems, currencies etc.
45 lines • 7.34 kB
JavaScript
import { inject, Pipe } from '@angular/core';
import { tuiFormatCurrency } from '@taiga-ui/addon-commerce/utils';
import { CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
import { TUI_NUMBER_FORMAT } from '@taiga-ui/core/tokens';
import { tuiFormatNumber } from '@taiga-ui/core/utils/format';
import { map } from 'rxjs';
import { TUI_AMOUNT_OPTIONS } from './amount.options';
import { tuiFormatSignSymbol } from './amount.utils';
import * as i0 from "@angular/core";
const DEFAULT_PRECISION = 2;
class TuiAmountPipe {
constructor() {
this.options = inject(TUI_AMOUNT_OPTIONS);
this.format = inject(TUI_NUMBER_FORMAT);
}
transform(value, currency = this.options.currency, currencyAlign = this.options.currencyAlign) {
return this.format.pipe(map((format) => {
const currencySymbol = tuiFormatCurrency(currency);
const formatted = tuiFormatNumber(Math.abs(value), {
...format,
precision: Number.isNaN(format.precision)
? DEFAULT_PRECISION
: format.precision,
});
const sign = formatted === '0'
? ''
: tuiFormatSignSymbol(value, this.options.sign);
const space = currencySymbol &&
(currencySymbol?.length > 1 || currencyAlign === 'right')
? CHAR_NO_BREAK_SPACE
: '';
return currencyAlign === 'right'
? `${sign}${formatted}${space}${currencySymbol}`
: `${sign}${currencySymbol}${space}${formatted}`;
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAmountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiAmountPipe, isStandalone: true, name: "tuiAmount" }); }
}
export { TuiAmountPipe };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAmountPipe, decorators: [{
type: Pipe,
args: [{ standalone: true, name: 'tuiAmount' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9waXBlcy9hbW91bnQvYW1vdW50LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsR0FBRyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFFNUIsTUFDYSxhQUFhO0lBRDFCO1FBRXFCLFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FnQ3ZEO0lBOUJVLFNBQVMsQ0FDWixLQUFhLEVBQ2IsV0FBZ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ3JELGdCQUF3QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7UUFFbEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDWCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDL0MsR0FBRyxNQUFNO2dCQUNULFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxpQkFBaUI7b0JBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUzthQUN6QixDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksR0FDTixTQUFTLEtBQUssR0FBRztnQkFDYixDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsTUFBTSxLQUFLLEdBQ1AsY0FBYztnQkFDZCxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsS0FBSyxPQUFPLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxtQkFBbUI7Z0JBQ3JCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFYixPQUFPLGFBQWEsS0FBSyxPQUFPO2dCQUM1QixDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsU0FBUyxHQUFHLEtBQUssR0FBRyxjQUFjLEVBQUU7Z0JBQ2hELENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxjQUFjLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOytHQWpDUSxhQUFhOzZHQUFiLGFBQWE7O1NBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIFBpcGUsIHR5cGUgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R5cGUgVHVpQ3VycmVuY3lWYXJpYW50c30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3R5cGVzJztcbmltcG9ydCB7dHVpRm9ybWF0Q3VycmVuY3l9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS91dGlscyc7XG5pbXBvcnQge0NIQVJfTk9fQlJFQUtfU1BBQ0V9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX05VTUJFUl9GT1JNQVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpSG9yaXpvbnRhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHt0dWlGb3JtYXROdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge21hcCwgdHlwZSBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfQU1PVU5UX09QVElPTlN9IGZyb20gJy4vYW1vdW50Lm9wdGlvbnMnO1xuaW1wb3J0IHt0dWlGb3JtYXRTaWduU3ltYm9sfSBmcm9tICcuL2Ftb3VudC51dGlscyc7XG5cbmNvbnN0IERFRkFVTFRfUFJFQ0lTSU9OID0gMjtcblxuQFBpcGUoe3N0YW5kYWxvbmU6IHRydWUsIG5hbWU6ICd0dWlBbW91bnQnfSlcbmV4cG9ydCBjbGFzcyBUdWlBbW91bnRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9BTU9VTlRfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXQgPSBpbmplY3QoVFVJX05VTUJFUl9GT1JNQVQpO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybShcbiAgICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgICAgY3VycmVuY3k6IFR1aUN1cnJlbmN5VmFyaWFudHMgPSB0aGlzLm9wdGlvbnMuY3VycmVuY3ksXG4gICAgICAgIGN1cnJlbmN5QWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSB0aGlzLm9wdGlvbnMuY3VycmVuY3lBbGlnbixcbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSB0dWlGb3JtYXRDdXJyZW5jeShjdXJyZW5jeSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdHVpRm9ybWF0TnVtYmVyKE1hdGguYWJzKHZhbHVlKSwge1xuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbjogTnVtYmVyLmlzTmFOKGZvcm1hdC5wcmVjaXNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICA/IERFRkFVTFRfUFJFQ0lTSU9OXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGZvcm1hdC5wcmVjaXNpb24sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lnbiA9XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZCA9PT0gJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHR1aUZvcm1hdFNpZ25TeW1ib2wodmFsdWUsIHRoaXMub3B0aW9ucy5zaWduKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFjZSA9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sICYmXG4gICAgICAgICAgICAgICAgICAgIChjdXJyZW5jeVN5bWJvbD8ubGVuZ3RoID4gMSB8fCBjdXJyZW5jeUFsaWduID09PSAncmlnaHQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBDSEFSX05PX0JSRUFLX1NQQUNFXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmN5QWxpZ24gPT09ICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgPyBgJHtzaWdufSR7Zm9ybWF0dGVkfSR7c3BhY2V9JHtjdXJyZW5jeVN5bWJvbH1gXG4gICAgICAgICAgICAgICAgICAgIDogYCR7c2lnbn0ke2N1cnJlbmN5U3ltYm9sfSR7c3BhY2V9JHtmb3JtYXR0ZWR9YDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==