@taiga-ui/addon-commerce 5.3.0 → 5.4.0-canary.15a8161

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-card-group.mjs","sources":["../../../projects/addon-commerce/components/input-card-group/input-card-group.directive.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.options.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.providers.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.component.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.template.html","../../../projects/addon-commerce/components/input-card-group/taiga-ui-addon-commerce-components-input-card-group.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {TUI_BREAKPOINT} from '@taiga-ui/core/tokens';\n\n@Directive({host: {'[class._compact]': \"compact() || breakpoint() === 'mobile'\"}})\nexport class TuiInputCardGroupDirective {\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n public readonly compact = input(false);\n}\n","import {tuiDefaultCardValidator} from '@taiga-ui/addon-commerce/constants';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCardInputs {\n cvc: boolean;\n expire: boolean;\n}\n\nexport interface TuiInputCardGroupOptions {\n readonly cardValidator: TuiBooleanHandler<string>;\n readonly placeholder: string;\n readonly cvcPlaceholder: string;\n readonly cvcHidden: boolean;\n readonly inputs: TuiCardInputs;\n}\n\nexport const TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS: TuiInputCardGroupOptions = {\n cardValidator: tuiDefaultCardValidator,\n placeholder: '0000 0000 0000 0000',\n cvcPlaceholder: '000',\n cvcHidden: true,\n inputs: {cvc: true, expire: true},\n};\n\nexport const [TUI_INPUT_CARD_GROUP_OPTIONS, tuiInputCardGroupOptionsProvider] =\n tuiCreateOptions(TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS);\n","import {computed, inject, InjectionToken, type Signal} from '@angular/core';\nimport {\n TUI_CARD_CVC_TEXTS,\n TUI_CARD_EXPIRY_TEXTS,\n TUI_CARD_NUMBER_TEXTS,\n} from '@taiga-ui/addon-commerce/tokens';\nimport {TUI_BREAKPOINT} from '@taiga-ui/core/tokens';\n\nimport {TuiInputCardGroupDirective} from './input-card-group.directive';\n\nexport interface TuiCardGroupedTexts {\n readonly cardNumberText: string;\n readonly cvcText: string;\n readonly expiryText: string;\n}\n\nexport const TUI_INPUT_CARD_GROUP_TEXTS = new InjectionToken<Signal<TuiCardGroupedTexts>>(\n ngDevMode ? 'TUI_INPUT_CARD_GROUP_TEXTS' : '',\n);\n\nexport const TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER = {\n provide: TUI_INPUT_CARD_GROUP_TEXTS,\n useFactory: () => {\n const cardGroupTexts = inject(TUI_INPUT_CARD_GROUP_TEXTS, {\n skipSelf: true,\n optional: true,\n });\n const breakpoint = inject(TUI_BREAKPOINT);\n const directive = inject(TuiInputCardGroupDirective);\n const compact = computed(() => directive.compact() || breakpoint() === 'mobile');\n const cardNumber = inject(TUI_CARD_NUMBER_TEXTS);\n const expiry = inject(TUI_CARD_EXPIRY_TEXTS);\n const cvcTexts = inject(TUI_CARD_CVC_TEXTS);\n\n return computed(\n () =>\n cardGroupTexts?.() ?? {\n cardNumberText: cardNumber()[Number(!compact())] ?? '',\n expiryText: expiry()[Number(!compact())] ?? '',\n cvcText: cvcTexts()[Number(!compact())] ?? '',\n },\n );\n },\n};\n","import {DOCUMENT, isPlatformServer} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n inject,\n input,\n output,\n PLATFORM_ID,\n type Signal,\n signal,\n viewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {WA_IS_MOBILE, WA_IS_WEBKIT} from '@ng-web-apis/platform';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {\n TUI_MASK_CARD,\n TUI_MASK_CVC,\n TUI_MASK_EXPIRE,\n} from '@taiga-ui/addon-commerce/constants';\nimport {TuiFormatCardPipe} from '@taiga-ui/addon-commerce/pipes/format-card';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {tuiGetPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {CHAR_NO_BREAK_SPACE, TUI_NON_DIGIT_REGEXP} from '@taiga-ui/cdk/constants';\nimport {tuiHovered, TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {tuiInjectElement, tuiIsElement, tuiIsInput} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn, tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon, TuiIconPipe} from '@taiga-ui/core/components/icon';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TuiDropdownDirective,\n TuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, Subject, switchMap, timer} from 'rxjs';\n\nimport {TuiInputCardGroupDirective} from './input-card-group.directive';\nimport {TUI_INPUT_CARD_GROUP_OPTIONS} from './input-card-group.options';\nimport {\n TUI_INPUT_CARD_GROUP_TEXTS,\n TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,\n} from './input-card-group.providers';\n\nexport interface TuiCard {\n card: string;\n cvc: string;\n expire: string;\n}\n\n@Component({\n selector: 'tui-input-card-group',\n imports: [\n FormsModule,\n MaskitoDirective,\n PolymorpheusOutlet,\n TuiAppearance,\n TuiChevron,\n TuiFormatCardPipe,\n TuiIcon,\n TuiIconPipe,\n TuiMapperPipe,\n TuiTransitioned,\n WaResizeObserver,\n ],\n templateUrl: './input-card-group.template.html',\n styleUrl: './input-card-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsDataListHost(TuiInputCardGroup),\n tuiAsControl(TuiInputCardGroup),\n tuiDropdownOptionsProvider({limitWidth: 'fixed'}),\n TuiHoveredService,\n TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,\n ],\n hostDirectives: [\n TuiAppearance,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n {directive: TuiInputCardGroupDirective, inputs: ['compact']},\n ],\n host: {\n '[attr.data-size]': 'textfield.size()',\n '(pointerdown)': 'onPointerDown($event)',\n '(scroll.zoneless)': '$event.target.scrollLeft = 0',\n '(tuiActiveZoneChange)': 'onTouched()',\n },\n})\nexport class TuiInputCardGroup\n extends TuiControl<TuiCard | null>\n implements TuiDataListHost<Partial<TuiCard>>\n{\n private readonly inputCard = viewChild<ElementRef<HTMLInputElement>>('inputCard');\n private readonly inputExpire = viewChild<ElementRef<HTMLInputElement>>('inputExpire');\n private readonly inputCVC = viewChild<ElementRef<HTMLInputElement>>('inputCVC');\n private readonly doc = inject(DOCUMENT);\n private readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n private readonly focus$ = new Subject<void>();\n private readonly expirePrefilled = signal(false);\n private readonly paymentSystems = inject(TUI_PAYMENT_SYSTEM_ICONS);\n private readonly options = inject(TUI_INPUT_CARD_GROUP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly hover = tuiHovered();\n private readonly focusedIn = tuiFocusedIn(this.el);\n\n protected readonly cvcMask = computed(() => TUI_MASK_CVC(this.codeLength() ?? 3));\n protected readonly cvcHidden = this.options.cvcHidden;\n protected readonly cvcPlaceholder = computed((length = this.codeLength()) =>\n length ? '0'.repeat(length) : this.options.cvcPlaceholder,\n );\n\n protected readonly cvcPrefilled = computed(\n () => !this.inputs().cvc || !!this.cvc().match(TUI_NON_DIGIT_REGEXP),\n );\n\n protected readonly cardPrefilled = computed(\n () => !!this.card().match(TUI_NON_DIGIT_REGEXP),\n );\n\n protected readonly focusable = computed(\n () => this.cardValidator()(this.card()) || this.cardPrefilled(),\n );\n\n protected readonly expireFocusable = computed(\n () => this.focusable() && !this.expirePrefilled(),\n );\n\n protected readonly isMobile = inject(WA_IS_MOBILE);\n protected readonly isWebkit = inject(WA_IS_WEBKIT);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly maskCard = TUI_MASK_CARD;\n protected readonly maskExpire = TUI_MASK_EXPIRE;\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly textfield = inject(TUI_TEXTFIELD_OPTIONS);\n protected readonly texts = inject(TUI_INPUT_CARD_GROUP_TEXTS);\n protected readonly open = inject(TuiDropdownOpen).open;\n protected readonly $ = this.isWebkit\n ? this.focus$\n .pipe(\n switchMap(() => timer(100)),\n takeUntilDestroyed(),\n )\n .subscribe(() => (this.expire() ? this.focusCVC() : this.focusExpire()))\n : EMPTY;\n\n protected readonly card = computed(() => this.value()?.card || '');\n protected readonly expire = computed(() => this.value()?.expire || '');\n protected readonly cvc = computed(() => this.value()?.cvc || '');\n protected readonly m = tuiAppearanceMode(this.mode);\n protected readonly appearance = tuiAppearance(\n inject(TUI_TEXTFIELD_OPTIONS).appearance,\n );\n\n protected readonly state: Signal<unknown> = tuiAppearanceState(\n // eslint-disable-next-line no-nested-ternary\n computed(() => (this.disabled() ? 'disabled' : this.hover() ? 'hover' : null)),\n );\n\n protected readonly focus = tuiAppearanceFocus(\n computed(() => this.open() || this.focusedIn()),\n );\n\n protected readonly labelRaised = computed(\n () => (this.focus() && !this.readOnly()) || !!this.card(),\n );\n\n protected readonly hasCleaner = computed(\n () => this.textfield.cleaner() && this.card() && this.interactive(),\n );\n\n protected readonly bin = computed(() =>\n this.card().length < 6 ? null : this.card().slice(0, 6),\n );\n\n protected readonly content = computed<PolymorpheusContent>(\n (system = tuiGetPaymentSystem(this.card())) =>\n this.icon() || (system && this.paymentSystems[system]),\n );\n\n public readonly placeholder = input(this.options.placeholder);\n public readonly inputs = input(this.options.inputs);\n public readonly cardValidator = input(this.options.cardValidator);\n public readonly icon = input<PolymorpheusContent>('');\n public readonly id = input(tuiGenerateId());\n public readonly codeLength = input<3 | 4>();\n public readonly binChange = output<string | null>();\n\n public override writeValue(value: TuiCard | null): void {\n const bin = this.bin();\n const {activeElement} = this.doc;\n\n super.writeValue(value);\n this.updateBin(bin);\n this.expirePrefilled.set(!!this.expire() && this.cardPrefilled());\n\n // Programmatic setting of expire input value breaks autofill in Chrome\n const inputExpire = this.inputExpire();\n\n if (\n !inputExpire ||\n this.isMobile ||\n this.isWebkit ||\n this.isServer ||\n inputExpire.nativeElement.value === this.expire()\n ) {\n return;\n }\n\n inputExpire.nativeElement.focus({preventScroll: true});\n inputExpire.nativeElement.select();\n this.doc.execCommand('insertText', false, this.expire());\n inputExpire.nativeElement.blur();\n (activeElement as HTMLElement | null)?.focus({preventScroll: true});\n }\n\n public focusCard(): void {\n this.inputCard()?.nativeElement.focus({preventScroll: true});\n }\n\n public focusExpire(): void {\n if (this.inputs().expire) {\n this.inputExpire()?.nativeElement.focus({preventScroll: true});\n } else {\n this.inputCVC()?.nativeElement.focus({preventScroll: true});\n }\n }\n\n public focusCVC(): void {\n this.inputCVC()?.nativeElement.focus({preventScroll: true});\n }\n\n public handleOption(option: Partial<TuiCard> | null): void {\n const {card = '', expire = '', cvc = ''} = option || {};\n const bin = this.bin();\n const element =\n (!card && this.inputCard()?.nativeElement) ||\n (!expire && this.inputExpire()?.nativeElement) ||\n this.inputCVC()?.nativeElement;\n\n this.onChange({card, expire, cvc});\n this.updateBin(bin);\n this.open.set(false);\n this.expirePrefilled.set(!!expire);\n\n element?.focus();\n }\n\n public clear(): void {\n this.expirePrefilled.set(false);\n [this.inputCVC(), this.inputExpire(), this.inputCard()].forEach((e) => {\n e?.nativeElement.focus();\n e?.nativeElement.select();\n e?.nativeElement.ownerDocument.execCommand('delete');\n });\n\n this.onChange(null);\n }\n\n protected get cardCollapsed(): boolean {\n return this.focusable() && !tuiIsFocused(this.inputCard()?.nativeElement);\n }\n\n protected onResize(): void {\n this.cdr.detectChanges();\n }\n\n protected onCardChange(card: string): void {\n const bin = this.bin();\n const parsed = card.split(CHAR_NO_BREAK_SPACE).join('');\n\n if (this.card() === parsed) {\n return;\n }\n\n this.updateProperty(parsed, 'card');\n this.updateBin(bin);\n\n if (this.cardValidator()(this.card()) && !this.expire() && this.inputExpire()) {\n this.focusExpire();\n // Safari autofill focus jerk workaround\n this.focus$.next();\n }\n }\n\n protected onExpireChange(expire: string): void {\n this.updateProperty(expire, 'expire');\n\n // MM/YY\n if (Number(this.inputExpire()?.nativeElement.selectionStart) === 5) {\n this.focusCVC();\n }\n }\n\n protected onCVCChange(cvc: string): void {\n this.updateProperty(cvc, 'cvc');\n }\n\n protected getStyle({offsetWidth}: HTMLSpanElement): string {\n return this.cardCollapsed\n ? `transform: translate3d(calc(${offsetWidth}px * var(--tui-inline)), 0, 0); clip-path: inset(0 0 0 calc(100% - ${offsetWidth}px));`\n : '';\n }\n\n protected onPointerDown(event: MouseEvent): void {\n if (tuiIsElement(event.target) && tuiIsInput(event.target)) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n protected toggle(): void {\n this.open.update((open) => !open);\n }\n\n private updateBin(oldBin: string | null): void {\n if (this.bin() !== oldBin && !this.cardPrefilled()) {\n this.binChange.emit(this.bin());\n }\n }\n\n private updateProperty(value: string, propName: 'card' | 'cvc' | 'expire'): void {\n const {card = '', expire = '', cvc = ''} = this.value() || {};\n const newValue: TuiCard = {card, expire, cvc};\n\n newValue[propName] = value;\n\n this.onChange(newValue.expire || newValue.cvc || newValue.card ? newValue : null);\n }\n\n private focusInput(): void {\n const element =\n (!this.cardPrefilled() && this.inputCard()?.nativeElement) ||\n (this.expireFocusable() && this.inputExpire()?.nativeElement) ||\n this.inputCVC()?.nativeElement;\n\n element?.focus();\n }\n}\n","@let formattedCard = card() | tuiFormatCard: cardPrefilled();\n\n<div class=\"t-wrapper\">\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCard\n autocomplete=\"cc-number\"\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled() && !(this.card() | tuiMapper: cardValidator())\"\n [attr.id]=\"`${id()}_card`\"\n [attr.role]=\"dropdown.content() ? 'combobox' : null\"\n [class.t-input_filled]=\"card().length\"\n [class.t-input_inert]=\"cardPrefilled()\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled() ? '' : placeholder()\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardPrefilled() ? -1 : 0\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"cardPrefilled() ? card().slice(-4) : ''\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"onResize()\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(card().length % 4 > 0 ? -5 : -4)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style]=\"getStyle(ghost)\"\n [textContent]=\"formattedCard\"\n ></span>\n </span>\n </span>\n <div\n tuiTransitioned\n class=\"t-label\"\n [attr.data-label]=\"texts().cardNumberText\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n <ng-content />\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputExpire\n autocomplete=\"cc-exp\"\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n name=\"ccexpiryyear\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"`${id()}_expire`\"\n [class.t-input_inert]=\"!expireFocusable()\"\n [class.t-input_prefilled]=\"!inputs().expire\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"inputs().expire ? '00/00' : '••/••'\"\n [readOnly]=\"readOnly() || !inputs().expire\"\n [tabIndex]=\"expireFocusable() || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n tuiTransitioned\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts().expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCVC\n autocomplete=\"cc-csc\"\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"`${id()}_cvc`\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled()\"\n [disabled]=\"disabled()\"\n [maskito]=\"cvcMask()\"\n [ngModel]=\"cvc()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled() ? '•••' : cvcPlaceholder()\"\n [readOnly]=\"readOnly() || cvcPrefilled()\"\n [tabIndex]=\"focusable() || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n tuiTransitioned\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts().cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n @if (content()) {\n <div class=\"t-icon-outlet\">\n <img\n *polymorpheusOutlet=\"content() as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n }\n @if (hasCleaner()) {\n <tui-icon\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n }\n @if (dropdown.content()) {\n <tui-icon\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n class=\"t-icon\"\n (click)=\"toggle()\"\n />\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.TuiInputCardGroupDirective"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-components-input-card-group.mjs","sources":["../../../projects/addon-commerce/components/input-card-group/input-card-group.directive.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.options.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.providers.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.component.ts","../../../projects/addon-commerce/components/input-card-group/input-card-group.template.html","../../../projects/addon-commerce/components/input-card-group/taiga-ui-addon-commerce-components-input-card-group.ts"],"sourcesContent":["import {Directive, inject, input} from '@angular/core';\nimport {TUI_BREAKPOINT} from '@taiga-ui/core/tokens';\n\n@Directive({host: {'[class._compact]': \"compact() || breakpoint() === 'mobile'\"}})\nexport class TuiInputCardGroupDirective {\n protected readonly breakpoint = inject(TUI_BREAKPOINT);\n public readonly compact = input(false);\n}\n","import {tuiDefaultCardValidator} from '@taiga-ui/addon-commerce/constants';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCardInputs {\n cvc: boolean;\n expire: boolean;\n}\n\nexport interface TuiInputCardGroupOptions {\n readonly cardValidator: TuiBooleanHandler<string>;\n readonly placeholder: string;\n readonly cvcPlaceholder: string;\n readonly cvcHidden: boolean;\n readonly inputs: TuiCardInputs;\n}\n\nexport const TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS: TuiInputCardGroupOptions = {\n cardValidator: tuiDefaultCardValidator,\n placeholder: '0000 0000 0000 0000',\n cvcPlaceholder: '000',\n cvcHidden: true,\n inputs: {cvc: true, expire: true},\n};\n\nexport const [TUI_INPUT_CARD_GROUP_OPTIONS, tuiInputCardGroupOptionsProvider] =\n tuiCreateOptions(TUI_INPUT_CARD_GROUP_DEFAULT_OPTIONS);\n","import {computed, inject, InjectionToken, type Signal} from '@angular/core';\nimport {\n TUI_CARD_CVC_TEXTS,\n TUI_CARD_EXPIRY_TEXTS,\n TUI_CARD_NUMBER_TEXTS,\n} from '@taiga-ui/addon-commerce/tokens';\nimport {TUI_BREAKPOINT} from '@taiga-ui/core/tokens';\n\nimport {TuiInputCardGroupDirective} from './input-card-group.directive';\n\nexport interface TuiCardGroupedTexts {\n readonly cardNumberText: string;\n readonly cvcText: string;\n readonly expiryText: string;\n}\n\nexport const TUI_INPUT_CARD_GROUP_TEXTS = new InjectionToken<Signal<TuiCardGroupedTexts>>(\n ngDevMode ? 'TUI_INPUT_CARD_GROUP_TEXTS' : '',\n);\n\nexport const TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER = {\n provide: TUI_INPUT_CARD_GROUP_TEXTS,\n useFactory: () => {\n const cardGroupTexts = inject(TUI_INPUT_CARD_GROUP_TEXTS, {\n skipSelf: true,\n optional: true,\n });\n const breakpoint = inject(TUI_BREAKPOINT);\n const directive = inject(TuiInputCardGroupDirective);\n const compact = computed(() => directive.compact() || breakpoint() === 'mobile');\n const cardNumber = inject(TUI_CARD_NUMBER_TEXTS);\n const expiry = inject(TUI_CARD_EXPIRY_TEXTS);\n const cvcTexts = inject(TUI_CARD_CVC_TEXTS);\n\n return computed(\n () =>\n cardGroupTexts?.() ?? {\n cardNumberText: cardNumber()[Number(!compact())] ?? '',\n expiryText: expiry()[Number(!compact())] ?? '',\n cvcText: cvcTexts()[Number(!compact())] ?? '',\n },\n );\n },\n};\n","import {DOCUMENT, isPlatformServer} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n inject,\n input,\n output,\n PLATFORM_ID,\n type Signal,\n signal,\n viewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {WA_IS_MOBILE, WA_IS_WEBKIT} from '@ng-web-apis/platform';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {\n TUI_MASK_CARD,\n TUI_MASK_CVC,\n TUI_MASK_EXPIRE,\n} from '@taiga-ui/addon-commerce/constants';\nimport {TuiFormatCardPipe} from '@taiga-ui/addon-commerce/pipes/format-card';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {tuiGetPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {CHAR_NO_BREAK_SPACE, TUI_NON_DIGIT_REGEXP} from '@taiga-ui/cdk/constants';\nimport {tuiHovered, TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiTransitioned} from '@taiga-ui/cdk/directives/transitioned';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {tuiInjectElement, tuiIsElement, tuiIsInput} from '@taiga-ui/cdk/utils/dom';\nimport {tuiFocusedIn, tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon, TuiIconPipe} from '@taiga-ui/core/components/icon';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TuiAppearance,\n tuiAppearance,\n tuiAppearanceFocus,\n tuiAppearanceMode,\n tuiAppearanceState,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TuiDropdownDirective,\n TuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, Subject, switchMap, timer} from 'rxjs';\n\nimport {TuiInputCardGroupDirective} from './input-card-group.directive';\nimport {TUI_INPUT_CARD_GROUP_OPTIONS} from './input-card-group.options';\nimport {\n TUI_INPUT_CARD_GROUP_TEXTS,\n TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,\n} from './input-card-group.providers';\n\nexport interface TuiCard {\n card: string;\n cvc: string;\n expire: string;\n}\n\n@Component({\n selector: 'tui-input-card-group',\n imports: [\n FormsModule,\n MaskitoDirective,\n PolymorpheusOutlet,\n TuiAppearance,\n TuiChevron,\n TuiFormatCardPipe,\n TuiIcon,\n TuiIconPipe,\n TuiMapperPipe,\n TuiTransitioned,\n WaResizeObserver,\n ],\n templateUrl: './input-card-group.template.html',\n styleUrl: './input-card-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsDataListHost(TuiInputCardGroup),\n tuiAsControl(TuiInputCardGroup),\n tuiDropdownOptionsProvider({limitWidth: 'fixed'}),\n TuiHoveredService,\n TUI_INPUT_CARD_GROUP_TEXTS_PROVIDER,\n ],\n hostDirectives: [\n TuiAppearance,\n TuiDropdownDirective,\n TuiWithDropdownOpen,\n {directive: TuiInputCardGroupDirective, inputs: ['compact']},\n ],\n host: {\n '[attr.data-size]': 'textfield.size()',\n '(pointerdown)': 'onPointerDown($event)',\n '(scroll.zoneless)': '$event.target.scrollLeft = 0',\n '(tuiActiveZoneChange)': 'onTouched()',\n },\n})\nexport class TuiInputCardGroup\n extends TuiControl<TuiCard | null>\n implements TuiDataListHost<Partial<TuiCard>>\n{\n private readonly inputCard = viewChild<ElementRef<HTMLInputElement>>('inputCard');\n private readonly inputExpire = viewChild<ElementRef<HTMLInputElement>>('inputExpire');\n private readonly inputCVC = viewChild<ElementRef<HTMLInputElement>>('inputCVC');\n private readonly doc = inject(DOCUMENT);\n private readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n private readonly focus$ = new Subject<void>();\n private readonly expirePrefilled = signal(false);\n private readonly paymentSystems = inject(TUI_PAYMENT_SYSTEM_ICONS);\n private readonly options = inject(TUI_INPUT_CARD_GROUP_OPTIONS);\n private readonly el = tuiInjectElement();\n private readonly hover = tuiHovered();\n private readonly focusedIn = tuiFocusedIn(this.el);\n protected readonly cvcMask = computed(() => TUI_MASK_CVC(this.codeLength() ?? 3));\n protected readonly cvcHidden = this.options.cvcHidden;\n\n protected readonly cvcPlaceholder = computed((length = this.codeLength()) =>\n length ? '0'.repeat(length) : this.options.cvcPlaceholder,\n );\n\n protected readonly cvcPrefilled = computed(\n () => !this.inputs().cvc || !!this.cvc().match(TUI_NON_DIGIT_REGEXP),\n );\n\n protected readonly cardPrefilled = computed(\n () => !!this.card().match(TUI_NON_DIGIT_REGEXP),\n );\n\n protected readonly focusable = computed(\n () => this.cardValidator()(this.card()) || this.cardPrefilled(),\n );\n\n protected readonly expireFocusable = computed(\n () => this.focusable() && !this.expirePrefilled(),\n );\n\n protected readonly isMobile = inject(WA_IS_MOBILE);\n protected readonly isWebkit = inject(WA_IS_WEBKIT);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly maskCard = TUI_MASK_CARD;\n protected readonly maskExpire = TUI_MASK_EXPIRE;\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly textfield = inject(TUI_TEXTFIELD_OPTIONS);\n protected readonly texts = inject(TUI_INPUT_CARD_GROUP_TEXTS);\n protected readonly open = inject(TuiDropdownOpen).open;\n\n protected readonly $ = this.isWebkit\n ? this.focus$\n .pipe(\n switchMap(() => timer(100)),\n takeUntilDestroyed(),\n )\n .subscribe(() => (this.expire() ? this.focusCVC() : this.focusExpire()))\n : EMPTY;\n\n protected readonly card = computed(() => this.value()?.card || '');\n protected readonly expire = computed(() => this.value()?.expire || '');\n protected readonly cvc = computed(() => this.value()?.cvc || '');\n protected readonly m = tuiAppearanceMode(this.mode);\n\n protected readonly appearance = tuiAppearance(\n inject(TUI_TEXTFIELD_OPTIONS).appearance,\n );\n\n protected readonly state: Signal<unknown> = tuiAppearanceState(\n // eslint-disable-next-line no-nested-ternary\n computed(() => (this.disabled() ? 'disabled' : this.hover() ? 'hover' : null)),\n );\n\n protected readonly focus = tuiAppearanceFocus(\n computed(() => this.open() || this.focusedIn()),\n );\n\n protected readonly labelRaised = computed(\n () => (this.focus() && !this.readOnly()) || !!this.card(),\n );\n\n protected readonly hasCleaner = computed(\n () => this.textfield.cleaner() && this.card() && this.interactive(),\n );\n\n protected readonly bin = computed(() =>\n this.card().length < 6 ? null : this.card().slice(0, 6),\n );\n\n protected readonly content = computed<PolymorpheusContent>(\n (system = tuiGetPaymentSystem(this.card())) =>\n this.icon() || (system && this.paymentSystems[system]),\n );\n\n public readonly placeholder = input(this.options.placeholder);\n public readonly inputs = input(this.options.inputs);\n public readonly cardValidator = input(this.options.cardValidator);\n public readonly icon = input<PolymorpheusContent>('');\n public readonly id = input(tuiGenerateId());\n public readonly codeLength = input<3 | 4>();\n public readonly binChange = output<string | null>();\n\n public override writeValue(value: TuiCard | null): void {\n const bin = this.bin();\n const {activeElement} = this.doc;\n\n super.writeValue(value);\n this.updateBin(bin);\n this.expirePrefilled.set(!!this.expire() && this.cardPrefilled());\n\n // Programmatic setting of expire input value breaks autofill in Chrome\n const inputExpire = this.inputExpire();\n\n if (\n !inputExpire ||\n this.isMobile ||\n this.isWebkit ||\n this.isServer ||\n inputExpire.nativeElement.value === this.expire()\n ) {\n return;\n }\n\n inputExpire.nativeElement.focus({preventScroll: true});\n inputExpire.nativeElement.select();\n this.doc.execCommand('insertText', false, this.expire());\n inputExpire.nativeElement.blur();\n (activeElement as HTMLElement | null)?.focus({preventScroll: true});\n }\n\n public focusCard(): void {\n this.inputCard()?.nativeElement.focus({preventScroll: true});\n }\n\n public focusExpire(): void {\n if (this.inputs().expire) {\n this.inputExpire()?.nativeElement.focus({preventScroll: true});\n } else {\n this.inputCVC()?.nativeElement.focus({preventScroll: true});\n }\n }\n\n public focusCVC(): void {\n this.inputCVC()?.nativeElement.focus({preventScroll: true});\n }\n\n public handleOption(option: Partial<TuiCard> | null): void {\n const {card = '', expire = '', cvc = ''} = option || {};\n const bin = this.bin();\n const element =\n (!card && this.inputCard()?.nativeElement) ||\n (!expire && this.inputExpire()?.nativeElement) ||\n this.inputCVC()?.nativeElement;\n\n this.onChange({card, expire, cvc});\n this.updateBin(bin);\n this.open.set(false);\n this.expirePrefilled.set(!!expire);\n\n element?.focus();\n }\n\n public clear(): void {\n this.expirePrefilled.set(false);\n [this.inputCVC(), this.inputExpire(), this.inputCard()].forEach((e) => {\n e?.nativeElement.focus();\n e?.nativeElement.select();\n e?.nativeElement.ownerDocument.execCommand('delete');\n });\n\n this.onChange(null);\n }\n\n protected get cardCollapsed(): boolean {\n return this.focusable() && !tuiIsFocused(this.inputCard()?.nativeElement);\n }\n\n protected onResize(): void {\n this.cdr.detectChanges();\n }\n\n protected onCardChange(card: string): void {\n const bin = this.bin();\n const parsed = card.split(CHAR_NO_BREAK_SPACE).join('');\n\n if (this.card() === parsed) {\n return;\n }\n\n this.updateProperty(parsed, 'card');\n this.updateBin(bin);\n\n if (this.cardValidator()(this.card()) && !this.expire() && this.inputExpire()) {\n this.focusExpire();\n // Safari autofill focus jerk workaround\n this.focus$.next();\n }\n }\n\n protected onExpireChange(expire: string): void {\n this.updateProperty(expire, 'expire');\n\n // MM/YY\n if (Number(this.inputExpire()?.nativeElement.selectionStart) === 5) {\n this.focusCVC();\n }\n }\n\n protected onCVCChange(cvc: string): void {\n this.updateProperty(cvc, 'cvc');\n }\n\n protected getStyle({offsetWidth}: HTMLSpanElement): string {\n return this.cardCollapsed\n ? `transform: translate3d(calc(${offsetWidth}px * var(--tui-inline)), 0, 0); clip-path: inset(0 0 0 calc(100% - ${offsetWidth}px));`\n : '';\n }\n\n protected onPointerDown(event: MouseEvent): void {\n if (tuiIsElement(event.target) && tuiIsInput(event.target)) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n protected toggle(): void {\n this.open.update((open) => !open);\n }\n\n private updateBin(oldBin: string | null): void {\n if (this.bin() !== oldBin && !this.cardPrefilled()) {\n this.binChange.emit(this.bin());\n }\n }\n\n private updateProperty(value: string, propName: 'card' | 'cvc' | 'expire'): void {\n const {card = '', expire = '', cvc = ''} = this.value() || {};\n const newValue: TuiCard = {card, expire, cvc};\n\n newValue[propName] = value;\n\n this.onChange(newValue.expire || newValue.cvc || newValue.card ? newValue : null);\n }\n\n private focusInput(): void {\n const element =\n (!this.cardPrefilled() && this.inputCard()?.nativeElement) ||\n (this.expireFocusable() && this.inputExpire()?.nativeElement) ||\n this.inputCVC()?.nativeElement;\n\n element?.focus();\n }\n}\n","@let formattedCard = card() | tuiFormatCard: cardPrefilled();\n\n<div class=\"t-wrapper\">\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCard\n autocomplete=\"cc-number\"\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled() && !(this.card() | tuiMapper: cardValidator())\"\n [attr.id]=\"`${id()}_card`\"\n [attr.role]=\"dropdown.content() ? 'combobox' : null\"\n [class.t-input_filled]=\"card().length\"\n [class.t-input_inert]=\"cardPrefilled()\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled() ? '' : placeholder()\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardPrefilled() ? -1 : 0\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"cardPrefilled() ? card().slice(-4) : ''\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"onResize()\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(card().length % 4 > 0 ? -5 : -4)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style]=\"getStyle(ghost)\"\n [textContent]=\"formattedCard\"\n ></span>\n </span>\n </span>\n <div\n tuiTransitioned\n class=\"t-label\"\n [attr.data-label]=\"texts().cardNumberText\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n <ng-content />\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputExpire\n autocomplete=\"cc-exp\"\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n name=\"ccexpiryyear\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"`${id()}_expire`\"\n [class.t-input_inert]=\"!expireFocusable()\"\n [class.t-input_prefilled]=\"!inputs().expire\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"inputs().expire ? '00/00' : '••/••'\"\n [readOnly]=\"readOnly() || !inputs().expire\"\n [tabIndex]=\"expireFocusable() || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n tuiTransitioned\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts().expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.zoneless.prevent)=\"(0)\">\n <input\n #inputCVC\n autocomplete=\"cc-csc\"\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"`${id()}_cvc`\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled()\"\n [disabled]=\"disabled()\"\n [maskito]=\"cvcMask()\"\n [ngModel]=\"cvc()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled() ? '•••' : cvcPlaceholder()\"\n [readOnly]=\"readOnly() || cvcPrefilled()\"\n [tabIndex]=\"focusable() || (isMobile && isWebkit) ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n tuiTransitioned\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts().cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n @if (content()) {\n <div class=\"t-icon-outlet\">\n <img\n *polymorpheusOutlet=\"content() as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n }\n @if (hasCleaner()) {\n <tui-icon\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n }\n @if (dropdown.content()) {\n <tui-icon\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n class=\"t-icon\"\n (click)=\"toggle()\"\n />\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.TuiInputCardGroupDirective"],"mappings":"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"}
@@ -39,7 +39,7 @@ class TuiInputCardComponent {
39
39
  this.accessor.onChange = (value) => onChanges(value.replaceAll(CHAR_NO_BREAK_SPACE, ''));
40
40
  }
41
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TuiInputCardComponent, isStandalone: true, selector: "input[tuiInputCard]", outputs: { binChange: "binChange" }, host: { attributes: { "inputmode": "numeric", "placeholder": "0000 0000 0000 0000", "ngSkipHydration": "true", "autocomplete": "cc-number" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0, template: `
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TuiInputCardComponent, isStandalone: true, selector: "input[tuiInputCard]", outputs: { binChange: "binChange" }, host: { attributes: { "autocomplete": "cc-number", "inputmode": "numeric", "ngSkipHydration": "true", "placeholder": "0000 0000 0000 0000" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0, template: `
43
43
  @if (image()) {
44
44
  <img
45
45
  *tuiTextfieldContent
@@ -48,7 +48,7 @@ class TuiInputCardComponent {
48
48
  [src]="image() | tuiIcon"
49
49
  />
50
50
  }
51
- `, isInline: true, styles: ["tui-textfield:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system:not(:first-child){display:none}tui-textfield:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system{inline-size:1.5rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system{inline-size:2rem}\n"], dependencies: [{ kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
+ `, isInline: true, styles: ["tui-textfield:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system:not(:first-child){display:none}tui-textfield:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system{inline-size:1.5rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system{inline-size:2rem}\n"], dependencies: [{ kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputCardComponent, decorators: [{
54
54
  type: Component,
@@ -62,11 +62,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
62
62
  />
63
63
  }
64
64
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [MaskitoDirective, TuiWithInput], host: {
65
+ autocomplete: 'cc-number',
65
66
  inputmode: 'numeric',
66
- placeholder: '0000 0000 0000 0000',
67
67
  ngSkipHydration: 'true',
68
- autocomplete: 'cc-number',
69
- }, styles: ["tui-textfield:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system:not(:first-child){display:none}tui-textfield:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system{inline-size:1.5rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.3.0\"]) .t-payment-system{inline-size:2rem}\n"] }]
68
+ placeholder: '0000 0000 0000 0000',
69
+ }, styles: ["tui-textfield:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system:not(:first-child){display:none}tui-textfield:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system{inline-size:1.5rem}tui-textfield[data-size=l]:where(*[data-tui-version=\"5.4.0-canary.15a8161\"]) .t-payment-system{inline-size:2rem}\n"] }]
70
70
  }] });
71
71
 
72
72
  class TuiInputCVCDirective {
@@ -76,7 +76,7 @@ class TuiInputCVCDirective {
76
76
  this.length = input(3);
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputCVCDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.20", type: TuiInputCVCDirective, isStandalone: true, selector: "input[tuiInputCVC]", inputs: { hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "inputmode": "numeric", "autocomplete": "cc-csc" }, listeners: { "copy.prevent": "(0)" }, properties: { "placeholder": "\"0\".repeat(length())", "style.-webkit-text-security": "hidden() ? \"disc\" : null" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0 }); }
79
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.20", type: TuiInputCVCDirective, isStandalone: true, selector: "input[tuiInputCVC]", inputs: { hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "autocomplete": "cc-csc", "inputmode": "numeric" }, listeners: { "copy.prevent": "(0)" }, properties: { "placeholder": "\"0\".repeat(length())", "style.-webkit-text-security": "hidden() ? \"disc\" : null" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0 }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputCVCDirective, decorators: [{
82
82
  type: Directive,
@@ -84,8 +84,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
84
84
  selector: 'input[tuiInputCVC]',
85
85
  hostDirectives: [MaskitoDirective, TuiWithInput],
86
86
  host: {
87
- inputmode: 'numeric',
88
87
  autocomplete: 'cc-csc',
88
+ inputmode: 'numeric',
89
89
  '[placeholder]': '"0".repeat(length())',
90
90
  '[style.-webkit-text-security]': 'hidden() ? "disc" : null',
91
91
  '(copy.prevent)': '(0)',
@@ -98,7 +98,7 @@ class TuiInputExpireDirective {
98
98
  this.mask = tuiMaskito(TUI_MASK_EXPIRE);
99
99
  }
100
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputExpireDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: TuiInputExpireDirective, isStandalone: true, selector: "input[tuiInputExpire]", host: { attributes: { "inputmode": "numeric", "placeholder": "00/00", "translate": "no", "maxlength": "5", "name": "ccexpiryyear", "autocomplete": "cc-exp" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0 }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: TuiInputExpireDirective, isStandalone: true, selector: "input[tuiInputExpire]", host: { attributes: { "autocomplete": "cc-exp", "inputmode": "numeric", "maxlength": "5", "name": "ccexpiryyear", "placeholder": "00/00", "translate": "no" } }, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithInput }], ngImport: i0 }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TuiInputExpireDirective, decorators: [{
104
104
  type: Directive,
@@ -106,12 +106,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
106
106
  selector: 'input[tuiInputExpire]',
107
107
  hostDirectives: [MaskitoDirective, TuiWithInput],
108
108
  host: {
109
+ autocomplete: 'cc-exp',
109
110
  inputmode: 'numeric',
110
- placeholder: '00/00',
111
- translate: 'no',
112
111
  maxlength: '5',
113
112
  name: 'ccexpiryyear',
114
- autocomplete: 'cc-exp',
113
+ placeholder: '00/00',
114
+ translate: 'no',
115
115
  },
116
116
  }]
117
117
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-card.mjs","sources":["../../../projects/addon-commerce/components/input-card/input-card.component.ts","../../../projects/addon-commerce/components/input-card/input-cvc.directive.ts","../../../projects/addon-commerce/components/input-card/input-expire.directive.ts","../../../projects/addon-commerce/components/input-card/input-card.ts","../../../projects/addon-commerce/components/input-card/taiga-ui-addon-commerce-components-input-card.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {outputFromObservable, toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {DefaultValueAccessor, NgControl} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_CARD} from '@taiga-ui/addon-commerce/constants';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {tuiGetPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {CHAR_NO_BREAK_SPACE, TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {TuiIconPipe} from '@taiga-ui/core/components/icon';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiTextfieldContent} from '@taiga-ui/core/components/textfield';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {distinctUntilChanged, map, skip, startWith, switchMap, timer} from 'rxjs';\n\n@Component({\n selector: 'input[tuiInputCard]',\n imports: [TuiIconPipe, TuiTextfieldContent],\n template: `\n @if (image()) {\n <img\n *tuiTextfieldContent\n alt=\"\"\n class=\"t-payment-system\"\n [src]=\"image() | tuiIcon\"\n />\n }\n `,\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './input-card.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n inputmode: 'numeric',\n placeholder: '0000 0000 0000 0000',\n ngSkipHydration: 'true',\n autocomplete: 'cc-number',\n },\n})\nexport class TuiInputCardComponent implements OnInit {\n private readonly icons = inject(TUI_PAYMENT_SYSTEM_ICONS);\n private readonly control = inject(NgControl);\n private readonly value = toSignal(\n timer(0).pipe(switchMap(() => tuiControlValue<string>(this.control))),\n {initialValue: ''},\n );\n\n private readonly accessor = inject(DefaultValueAccessor, {\n self: true,\n optional: true,\n });\n\n protected readonly mask = tuiMaskito(TUI_MASK_CARD);\n protected readonly image = computed(\n (s = tuiGetPaymentSystem(this.value())) => (s && this.icons[s]) || '',\n );\n\n public readonly binChange = outputFromObservable(\n toObservable(this.value).pipe(\n map((v) => (v.length < 6 ? null : v.replace(' ', '').slice(0, 6))),\n startWith(null),\n distinctUntilChanged(),\n skip(1),\n ),\n );\n\n public ngOnInit(): void {\n if (!this.accessor) {\n return;\n }\n\n const onChanges = this.accessor.onChange.bind(this.accessor);\n\n this.accessor.onChange = (value: string) =>\n onChanges(value.replaceAll(CHAR_NO_BREAK_SPACE, ''));\n }\n}\n","import {computed, Directive, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_CVC} from '@taiga-ui/addon-commerce/constants';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Directive({\n selector: 'input[tuiInputCVC]',\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n inputmode: 'numeric',\n autocomplete: 'cc-csc',\n '[placeholder]': '\"0\".repeat(length())',\n '[style.-webkit-text-security]': 'hidden() ? \"disc\" : null',\n '(copy.prevent)': '(0)',\n },\n})\nexport class TuiInputCVCDirective {\n protected readonly mask = tuiMaskito(computed(() => TUI_MASK_CVC(this.length())));\n\n public readonly hidden = input(true);\n public readonly length = input<3 | 4>(3);\n}\n","import {Directive} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_EXPIRE} from '@taiga-ui/addon-commerce/constants';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Directive({\n selector: 'input[tuiInputExpire]',\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n inputmode: 'numeric',\n placeholder: '00/00',\n translate: 'no',\n maxlength: '5',\n name: 'ccexpiryyear',\n autocomplete: 'cc-exp',\n },\n})\nexport class TuiInputExpireDirective {\n protected readonly mask = tuiMaskito(TUI_MASK_EXPIRE);\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputCardComponent} from './input-card.component';\nimport {TuiInputCVCDirective} from './input-cvc.directive';\nimport {TuiInputExpireDirective} from './input-expire.directive';\n\nexport const TuiInputCard = [\n TuiInputCardComponent,\n TuiInputCVCDirective,\n TuiInputExpireDirective,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-components-input-card.mjs","sources":["../../../projects/addon-commerce/components/input-card/input-card.component.ts","../../../projects/addon-commerce/components/input-card/input-cvc.directive.ts","../../../projects/addon-commerce/components/input-card/input-expire.directive.ts","../../../projects/addon-commerce/components/input-card/input-card.ts","../../../projects/addon-commerce/components/input-card/taiga-ui-addon-commerce-components-input-card.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {outputFromObservable, toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {DefaultValueAccessor, NgControl} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_CARD} from '@taiga-ui/addon-commerce/constants';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {tuiGetPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {CHAR_NO_BREAK_SPACE, TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {TuiIconPipe} from '@taiga-ui/core/components/icon';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiTextfieldContent} from '@taiga-ui/core/components/textfield';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\nimport {distinctUntilChanged, map, skip, startWith, switchMap, timer} from 'rxjs';\n\n@Component({\n selector: 'input[tuiInputCard]',\n imports: [TuiIconPipe, TuiTextfieldContent],\n template: `\n @if (image()) {\n <img\n *tuiTextfieldContent\n alt=\"\"\n class=\"t-payment-system\"\n [src]=\"image() | tuiIcon\"\n />\n }\n `,\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './input-card.style.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n autocomplete: 'cc-number',\n inputmode: 'numeric',\n ngSkipHydration: 'true',\n placeholder: '0000 0000 0000 0000',\n },\n})\nexport class TuiInputCardComponent implements OnInit {\n private readonly icons = inject(TUI_PAYMENT_SYSTEM_ICONS);\n private readonly control = inject(NgControl);\n\n private readonly value = toSignal(\n timer(0).pipe(switchMap(() => tuiControlValue<string>(this.control))),\n {initialValue: ''},\n );\n\n private readonly accessor = inject(DefaultValueAccessor, {\n self: true,\n optional: true,\n });\n\n protected readonly mask = tuiMaskito(TUI_MASK_CARD);\n\n protected readonly image = computed(\n (s = tuiGetPaymentSystem(this.value())) => (s && this.icons[s]) || '',\n );\n\n public readonly binChange = outputFromObservable(\n toObservable(this.value).pipe(\n map((v) => (v.length < 6 ? null : v.replace(' ', '').slice(0, 6))),\n startWith(null),\n distinctUntilChanged(),\n skip(1),\n ),\n );\n\n public ngOnInit(): void {\n if (!this.accessor) {\n return;\n }\n\n const onChanges = this.accessor.onChange.bind(this.accessor);\n\n this.accessor.onChange = (value: string) =>\n onChanges(value.replaceAll(CHAR_NO_BREAK_SPACE, ''));\n }\n}\n","import {computed, Directive, input} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_CVC} from '@taiga-ui/addon-commerce/constants';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Directive({\n selector: 'input[tuiInputCVC]',\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n autocomplete: 'cc-csc',\n inputmode: 'numeric',\n '[placeholder]': '\"0\".repeat(length())',\n '[style.-webkit-text-security]': 'hidden() ? \"disc\" : null',\n '(copy.prevent)': '(0)',\n },\n})\nexport class TuiInputCVCDirective {\n protected readonly mask = tuiMaskito(computed(() => TUI_MASK_CVC(this.length())));\n public readonly hidden = input(true);\n public readonly length = input<3 | 4>(3);\n}\n","import {Directive} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TUI_MASK_EXPIRE} from '@taiga-ui/addon-commerce/constants';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Directive({\n selector: 'input[tuiInputExpire]',\n hostDirectives: [MaskitoDirective, TuiWithInput],\n host: {\n autocomplete: 'cc-exp',\n inputmode: 'numeric',\n maxlength: '5',\n name: 'ccexpiryyear',\n placeholder: '00/00',\n translate: 'no',\n },\n})\nexport class TuiInputExpireDirective {\n protected readonly mask = tuiMaskito(TUI_MASK_EXPIRE);\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputCardComponent} from './input-card.component';\nimport {TuiInputCVCDirective} from './input-cvc.directive';\nimport {TuiInputExpireDirective} from './input-expire.directive';\n\nexport const TuiInputCard = [\n TuiInputCardComponent,\n TuiInputCVCDirective,\n TuiInputExpireDirective,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;MAkDa,qBAAqB,CAAA;AA5BlC,IAAA,WAAA,GAAA;AA6BqB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACxC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAE3B,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,eAAe,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACrE,EAAC,YAAY,EAAE,EAAE,EAAC,CACrB;AAEgB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,oBAAoB,EAAE;AACrD,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACjB,SAAA,CAAC;AAEiB,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC;AAEhC,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAC/B,CAAC,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CACxE;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,oBAAoB,CAC5C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAClE,SAAS,CAAC,IAAI,CAAC,EACf,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CACV,CACJ;AAYJ,IAAA;IAVU,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB;QACJ;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,KAAa,KACnC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC5D;+GAtCS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBpB;;;;;;;;;KAST,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAVS,WAAW,gDAAE,mBAAmB,EAAA,QAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FA0BjC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA5BjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EACjC;;;;;;;;;AAST,IAAA,CAAA,EAAA,aAAA,EAMc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,cAAA,EAC/B,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAA,IAAA,EAC1C;AACF,wBAAA,YAAY,EAAE,WAAW;AACzB,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,WAAW,EAAE,qBAAqB;AACrC,qBAAA,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA;;;MC/BQ,oBAAoB,CAAA;AAXjC,IAAA,WAAA,GAAA;AAYuB,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;AACpB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAQ,CAAC,CAAC;AAC3C,IAAA;+GAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAChD,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,eAAe,EAAE,sBAAsB;AACvC,wBAAA,+BAA+B,EAAE,0BAA0B;AAC3D,wBAAA,gBAAgB,EAAE,KAAK;AAC1B,qBAAA;AACJ,iBAAA;;;MCEY,uBAAuB,CAAA;AAZpC,IAAA,WAAA,GAAA;AAauB,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC;AACxD,IAAA;+GAFY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAChD,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,SAAS,EAAE,GAAG;AACd,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,SAAS,EAAE,IAAI;AAClB,qBAAA;AACJ,iBAAA;;;ACNM,MAAM,YAAY,GAAG;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,QAAQ;IACR,qBAAqB;IACrB,4BAA4B;IAC5B,kBAAkB;;;AClBtB;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-thumbnail-card.mjs","sources":["../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.options.ts","../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.component.ts","../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.template.html","../../../projects/addon-commerce/components/thumbnail-card/taiga-ui-addon-commerce-components-thumbnail-card.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\nimport {type TuiSizeL, type TuiSizeXS} from '@taiga-ui/core/types';\n\nexport interface TuiThumbnailCardOptions {\n readonly size: TuiSizeL | TuiSizeXS;\n readonly icons: Record<TuiPaymentSystem, string>;\n}\n\nexport const TUI_THUMBNAIL_CARD_OPTIONS = new InjectionToken<TuiThumbnailCardOptions>(\n ngDevMode ? 'TUI_THUMBNAIL_CARD_OPTIONS' : '',\n {\n factory: () => ({\n icons: inject(TUI_PAYMENT_SYSTEM_ICONS),\n size: 'm',\n }),\n },\n);\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {type TuiSizeL, type TuiSizeXS} from '@taiga-ui/core/types';\n\nimport {TUI_THUMBNAIL_CARD_OPTIONS} from './thumbnail-card.options';\n\n@Component({\n selector: 'tui-thumbnail-card',\n imports: [TuiIcon],\n templateUrl: './thumbnail-card.template.html',\n styleUrl: './thumbnail-card.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiThumbnailCard {\n protected readonly options = inject(TUI_THUMBNAIL_CARD_OPTIONS);\n\n public readonly size = input<TuiSizeL | TuiSizeXS>(this.options.size);\n public readonly paymentSystem = input<TuiPaymentSystem | null>(null);\n public readonly iconStart = input('');\n public readonly iconEnd = input('');\n}\n","<div class=\"t-start t-icon\">\n <ng-content select=\"img\">\n @if (iconStart()) {\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconStart()\"\n />\n }\n </ng-content>\n</div>\n\n@if (iconEnd()) {\n <tui-icon\n class=\"t-end t-icon\"\n [icon]=\"iconEnd()\"\n />\n}\n\n<div class=\"t-content\">\n <ng-content />\n</div>\n\n@let system = paymentSystem();\n\n@if (system) {\n <tui-icon\n class=\"t-logo\"\n [icon]=\"options.icons[system]\"\n />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUO,MAAM,0BAA0B,GAAG,IAAI,cAAc,CACxD,SAAS,GAAG,4BAA4B,GAAG,EAAE,EAC7C;AACI,IAAA,OAAO,EAAE,OAAO;AACZ,QAAA,KAAK,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACvC,QAAA,IAAI,EAAE,GAAG;KACZ,CAAC;AACL,CAAA;;MCFQ,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAE/C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAA0B,IAAI,CAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;AACtC,IAAA;+GAPY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7B,+iBA8BA,EAAA,MAAA,EAAA,CAAA,42FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBc,OAAO,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAMR,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAC,kBAAkB,EAAE,QAAQ,EAAC,EAAA,QAAA,EAAA,+iBAAA,EAAA,MAAA,EAAA,CAAA,42FAAA,CAAA,EAAA;;;AEbxC;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-components-thumbnail-card.mjs","sources":["../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.options.ts","../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.component.ts","../../../projects/addon-commerce/components/thumbnail-card/thumbnail-card.template.html","../../../projects/addon-commerce/components/thumbnail-card/taiga-ui-addon-commerce-components-thumbnail-card.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {TUI_PAYMENT_SYSTEM_ICONS} from '@taiga-ui/addon-commerce/tokens';\nimport {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\nimport {type TuiSizeL, type TuiSizeXS} from '@taiga-ui/core/types';\n\nexport interface TuiThumbnailCardOptions {\n readonly size: TuiSizeL | TuiSizeXS;\n readonly icons: Record<TuiPaymentSystem, string>;\n}\n\nexport const TUI_THUMBNAIL_CARD_OPTIONS = new InjectionToken<TuiThumbnailCardOptions>(\n ngDevMode ? 'TUI_THUMBNAIL_CARD_OPTIONS' : '',\n {\n factory: () => ({\n icons: inject(TUI_PAYMENT_SYSTEM_ICONS),\n size: 'm',\n }),\n },\n);\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {type TuiSizeL, type TuiSizeXS} from '@taiga-ui/core/types';\n\nimport {TUI_THUMBNAIL_CARD_OPTIONS} from './thumbnail-card.options';\n\n@Component({\n selector: 'tui-thumbnail-card',\n imports: [TuiIcon],\n templateUrl: './thumbnail-card.template.html',\n styleUrl: './thumbnail-card.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiThumbnailCard {\n protected readonly options = inject(TUI_THUMBNAIL_CARD_OPTIONS);\n public readonly size = input<TuiSizeL | TuiSizeXS>(this.options.size);\n public readonly paymentSystem = input<TuiPaymentSystem | null>(null);\n public readonly iconStart = input('');\n public readonly iconEnd = input('');\n}\n","<div class=\"t-start t-icon\">\n <ng-content select=\"img\">\n @if (iconStart()) {\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconStart()\"\n />\n }\n </ng-content>\n</div>\n\n@if (iconEnd()) {\n <tui-icon\n class=\"t-end t-icon\"\n [icon]=\"iconEnd()\"\n />\n}\n\n<div class=\"t-content\">\n <ng-content />\n</div>\n\n@let system = paymentSystem();\n\n@if (system) {\n <tui-icon\n class=\"t-logo\"\n [icon]=\"options.icons[system]\"\n />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAUO,MAAM,0BAA0B,GAAG,IAAI,cAAc,CACxD,SAAS,GAAG,4BAA4B,GAAG,EAAE,EAC7C;AACI,IAAA,OAAO,EAAE,OAAO;AACZ,QAAA,KAAK,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACvC,QAAA,IAAI,EAAE,GAAG;KACZ,CAAC;AACL,CAAA;;MCFQ,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAC/C,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAA0B,IAAI,CAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;AACtC,IAAA;+GANY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7B,+iBA8BA,EAAA,MAAA,EAAA,CAAA,42FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBc,OAAO,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAMR,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAC,kBAAkB,EAAE,QAAQ,EAAC,EAAA,QAAA,EAAA,+iBAAA,EAAA,MAAA,EAAA,CAAA,42FAAA,CAAA,EAAA;;;AEbxC;;AAEG;;;;"}
@@ -31,6 +31,7 @@ class TuiAmountPipe {
31
31
  this.value = signal(Number.NaN);
32
32
  this.currency = signal(this.options.currency);
33
33
  this.currencyAlign = signal(this.options.currencyAlign);
34
+ this.sign = signal(this.options.sign);
34
35
  this.formatted = computed(() => {
35
36
  const format = this.format();
36
37
  const currencySymbol = tuiFormatCurrency(this.currency());
@@ -40,7 +41,7 @@ class TuiAmountPipe {
40
41
  ? DEFAULT_PRECISION
41
42
  : format.precision,
42
43
  });
43
- const sign = formatted === '0' ? '' : tuiFormatSignSymbol(this.value(), this.options.sign);
44
+ const sign = formatted === '0' ? '' : tuiFormatSignSymbol(this.value(), this.sign());
44
45
  const space = currencySymbol &&
45
46
  (currencySymbol?.length > 1 || this.currencyAlign() === 'end')
46
47
  ? CHAR_NO_BREAK_SPACE
@@ -50,11 +51,12 @@ class TuiAmountPipe {
50
51
  : `${sign}${currencySymbol}${space}${formatted}`;
51
52
  });
52
53
  }
53
- transform(value, currency = this.options.currency, currencyAlign = this.options.currencyAlign) {
54
+ transform(value, currency = this.options.currency, currencyAlign = this.options.currencyAlign, sign = this.options.sign) {
54
55
  untracked(() => {
55
56
  this.value.set(value);
56
57
  this.currency.set(currency);
57
58
  this.currencyAlign.set(currencyAlign);
59
+ this.sign.set(sign);
58
60
  });
59
61
  return this.formatted();
60
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-pipes-amount.mjs","sources":["../../../projects/addon-commerce/pipes/amount/amount.options.ts","../../../projects/addon-commerce/pipes/amount/amount.utils.ts","../../../projects/addon-commerce/pipes/amount/amount.pipe.ts","../../../projects/addon-commerce/pipes/amount/taiga-ui-addon-commerce-pipes-amount.ts"],"sourcesContent":["import {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nimport {type TuiAmountSign} from './amount.types';\n\nexport interface TuiAmountOptions {\n readonly currency: TuiCurrencyVariants;\n readonly currencyAlign: TuiHorizontalDirection;\n readonly sign: TuiAmountSign;\n}\n\nexport const TUI_AMOUNT_DEFAULT_OPTIONS: TuiAmountOptions = {\n currency: null,\n currencyAlign: 'start',\n sign: 'negative-only',\n};\n\nexport const [TUI_AMOUNT_OPTIONS, tuiAmountOptionsProvider] = tuiCreateOptions(\n TUI_AMOUNT_DEFAULT_OPTIONS,\n);\n","import {CHAR_MINUS, CHAR_PLUS} from '@taiga-ui/cdk/constants';\n\nimport {type TuiAmountSign, type TuiAmountSignSymbol} from './amount.types';\n\nexport function tuiFormatSignSymbol(\n value: number,\n sign: TuiAmountSign,\n): TuiAmountSignSymbol {\n if (sign === 'never' || !value || (sign === 'negative-only' && value > 0)) {\n return '';\n }\n\n if (sign === 'force-negative' || (value < 0 && sign !== 'force-positive')) {\n return CHAR_MINUS;\n }\n\n return CHAR_PLUS;\n}\n","import {\n computed,\n inject,\n Pipe,\n type PipeTransform,\n signal,\n untracked,\n} from '@angular/core';\nimport {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiFormatCurrency} from '@taiga-ui/addon-commerce/utils';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {tuiFormatNumber} from '@taiga-ui/core/utils/format';\n\nimport {TUI_AMOUNT_OPTIONS} from './amount.options';\nimport {tuiFormatSignSymbol} from './amount.utils';\n\nconst DEFAULT_PRECISION = 2;\n\n@Pipe({name: 'tuiAmount', pure: false})\nexport class TuiAmountPipe implements PipeTransform {\n private readonly options = inject(TUI_AMOUNT_OPTIONS);\n private readonly format = inject(TUI_NUMBER_FORMAT);\n private readonly value = signal(Number.NaN);\n private readonly currency = signal(this.options.currency);\n private readonly currencyAlign = signal(this.options.currencyAlign);\n private readonly formatted = computed(() => {\n const format = this.format();\n const currencySymbol = tuiFormatCurrency(this.currency());\n const formatted = tuiFormatNumber(Math.abs(this.value()), {\n ...format,\n precision: Number.isNaN(format.precision)\n ? DEFAULT_PRECISION\n : format.precision,\n });\n const sign =\n formatted === '0' ? '' : tuiFormatSignSymbol(this.value(), this.options.sign);\n const space =\n currencySymbol &&\n (currencySymbol?.length > 1 || this.currencyAlign() === 'end')\n ? CHAR_NO_BREAK_SPACE\n : '';\n\n return this.currencyAlign() === 'end'\n ? `${sign}${formatted}${space}${currencySymbol}`\n : `${sign}${currencySymbol}${space}${formatted}`;\n });\n\n public transform(\n value: number,\n currency: TuiCurrencyVariants = this.options.currency,\n currencyAlign: TuiHorizontalDirection = this.options.currencyAlign,\n ): string {\n untracked(() => {\n this.value.set(value);\n this.currency.set(currency);\n this.currencyAlign.set(currencyAlign);\n });\n\n return this.formatted();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-pipes-amount.mjs","sources":["../../../projects/addon-commerce/pipes/amount/amount.options.ts","../../../projects/addon-commerce/pipes/amount/amount.utils.ts","../../../projects/addon-commerce/pipes/amount/amount.pipe.ts","../../../projects/addon-commerce/pipes/amount/taiga-ui-addon-commerce-pipes-amount.ts"],"sourcesContent":["import {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nimport {type TuiAmountSign} from './amount.types';\n\nexport interface TuiAmountOptions {\n readonly currency: TuiCurrencyVariants;\n readonly currencyAlign: TuiHorizontalDirection;\n readonly sign: TuiAmountSign;\n}\n\nexport const TUI_AMOUNT_DEFAULT_OPTIONS: TuiAmountOptions = {\n currency: null,\n currencyAlign: 'start',\n sign: 'negative-only',\n};\n\nexport const [TUI_AMOUNT_OPTIONS, tuiAmountOptionsProvider] = tuiCreateOptions(\n TUI_AMOUNT_DEFAULT_OPTIONS,\n);\n","import {CHAR_MINUS, CHAR_PLUS} from '@taiga-ui/cdk/constants';\n\nimport {type TuiAmountSign, type TuiAmountSignSymbol} from './amount.types';\n\nexport function tuiFormatSignSymbol(\n value: number,\n sign: TuiAmountSign,\n): TuiAmountSignSymbol {\n if (sign === 'never' || !value || (sign === 'negative-only' && value > 0)) {\n return '';\n }\n\n if (sign === 'force-negative' || (value < 0 && sign !== 'force-positive')) {\n return CHAR_MINUS;\n }\n\n return CHAR_PLUS;\n}\n","import {\n computed,\n inject,\n Pipe,\n type PipeTransform,\n signal,\n untracked,\n} from '@angular/core';\nimport {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiFormatCurrency} from '@taiga-ui/addon-commerce/utils';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {tuiFormatNumber} from '@taiga-ui/core/utils/format';\n\nimport {TUI_AMOUNT_OPTIONS} from './amount.options';\nimport {type TuiAmountSign} from './amount.types';\nimport {tuiFormatSignSymbol} from './amount.utils';\n\nconst DEFAULT_PRECISION = 2;\n\n@Pipe({name: 'tuiAmount', pure: false})\nexport class TuiAmountPipe implements PipeTransform {\n private readonly options = inject(TUI_AMOUNT_OPTIONS);\n private readonly format = inject(TUI_NUMBER_FORMAT);\n private readonly value = signal(Number.NaN);\n private readonly currency = signal(this.options.currency);\n private readonly currencyAlign = signal(this.options.currencyAlign);\n private readonly sign = signal(this.options.sign);\n\n private readonly formatted = computed(() => {\n const format = this.format();\n const currencySymbol = tuiFormatCurrency(this.currency());\n const formatted = tuiFormatNumber(Math.abs(this.value()), {\n ...format,\n precision: Number.isNaN(format.precision)\n ? DEFAULT_PRECISION\n : format.precision,\n });\n const sign =\n formatted === '0' ? '' : tuiFormatSignSymbol(this.value(), this.sign());\n const space =\n currencySymbol &&\n (currencySymbol?.length > 1 || this.currencyAlign() === 'end')\n ? CHAR_NO_BREAK_SPACE\n : '';\n\n return this.currencyAlign() === 'end'\n ? `${sign}${formatted}${space}${currencySymbol}`\n : `${sign}${currencySymbol}${space}${formatted}`;\n });\n\n public transform(\n value: number,\n currency: TuiCurrencyVariants = this.options.currency,\n currencyAlign: TuiHorizontalDirection = this.options.currencyAlign,\n sign: TuiAmountSign = this.options.sign,\n ): string {\n untracked(() => {\n this.value.set(value);\n this.currency.set(currency);\n this.currencyAlign.set(currencyAlign);\n this.sign.set(sign);\n });\n\n return this.formatted();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-pipes-decimal.mjs","sources":["../../../projects/addon-commerce/pipes/decimal/decimal.pipe.ts","../../../projects/addon-commerce/pipes/decimal/taiga-ui-addon-commerce-pipes-decimal.ts"],"sourcesContent":["import {\n computed,\n inject,\n INJECTOR,\n Injector,\n Pipe,\n type PipeTransform,\n signal,\n untracked,\n} from '@angular/core';\nimport {TuiAmountPipe} from '@taiga-ui/addon-commerce/pipes/amount';\nimport {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\n\n@Pipe({name: 'tuiDecimal', pure: false})\nexport class TuiDecimalPipe implements PipeTransform {\n private readonly format = inject(TUI_NUMBER_FORMAT);\n private readonly amountPipe = Injector.create({\n providers: [{provide: TuiAmountPipe}],\n parent: inject(INJECTOR),\n }).get(TuiAmountPipe);\n\n private readonly value = signal(Number.NaN);\n private readonly currency = signal<TuiCurrencyVariants>('');\n private readonly formatted = computed(() => {\n const format = this.format();\n const amount = this.amountPipe.transform(this.value(), this.currency());\n const [, decimal] = amount.split(format.decimalSeparator);\n\n return decimal ? `${format.decimalSeparator}${decimal}` : '';\n });\n\n public transform(value: number, currency: TuiCurrencyVariants = ''): string {\n untracked(() => {\n this.value.set(value);\n this.currency.set(currency);\n });\n\n return this.formatted();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAea,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,YAAA,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,aAAa,EAAC,CAAC;AACrC,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,SAAA,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AAEJ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAsB,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvE,YAAA,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAEzD,YAAA,OAAO,OAAO,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAA,EAAG,OAAO,CAAA,CAAE,GAAG,EAAE;AAChE,QAAA,CAAC,CAAC;AAUL,IAAA;AARU,IAAA,SAAS,CAAC,KAAa,EAAE,QAAA,GAAgC,EAAE,EAAA;QAC9D,SAAS,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IAC3B;+GAxBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAC;;;ACdvC;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-pipes-decimal.mjs","sources":["../../../projects/addon-commerce/pipes/decimal/decimal.pipe.ts","../../../projects/addon-commerce/pipes/decimal/taiga-ui-addon-commerce-pipes-decimal.ts"],"sourcesContent":["import {\n computed,\n inject,\n INJECTOR,\n Injector,\n Pipe,\n type PipeTransform,\n signal,\n untracked,\n} from '@angular/core';\nimport {TuiAmountPipe} from '@taiga-ui/addon-commerce/pipes/amount';\nimport {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\n\n@Pipe({name: 'tuiDecimal', pure: false})\nexport class TuiDecimalPipe implements PipeTransform {\n private readonly format = inject(TUI_NUMBER_FORMAT);\n\n private readonly amountPipe = Injector.create({\n providers: [{provide: TuiAmountPipe}],\n parent: inject(INJECTOR),\n }).get(TuiAmountPipe);\n\n private readonly value = signal(Number.NaN);\n private readonly currency = signal<TuiCurrencyVariants>('');\n\n private readonly formatted = computed(() => {\n const format = this.format();\n const amount = this.amountPipe.transform(this.value(), this.currency());\n const [, decimal] = amount.split(format.decimalSeparator);\n\n return decimal ? `${format.decimalSeparator}${decimal}` : '';\n });\n\n public transform(value: number, currency: TuiCurrencyVariants = ''): string {\n untracked(() => {\n this.value.set(value);\n this.currency.set(currency);\n });\n\n return this.formatted();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAea,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAElC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,YAAA,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,aAAa,EAAC,CAAC;AACrC,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,SAAA,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AAEJ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAsB,EAAE,CAAC;AAE1C,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvE,YAAA,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAEzD,YAAA,OAAO,OAAO,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAA,EAAG,OAAO,CAAA,CAAE,GAAG,EAAE;AAChE,QAAA,CAAC,CAAC;AAUL,IAAA;AARU,IAAA,SAAS,CAAC,KAAa,EAAE,QAAA,GAAgC,EAAE,EAAA;QAC9D,SAAS,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IAC3B;+GA1BS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAC;;;ACdvC;;AAEG;;;;"}
@@ -311,10 +311,7 @@ function tuiGetPaymentSystem(cardNumber, supported) {
311
311
  return row?.[0] ?? null;
312
312
  }
313
313
  function tuiIsMaestro(three, two, one) {
314
- if (one === 6) {
315
- return true;
316
- }
317
- if (two === 50 || (two > 55 && two < 59)) {
314
+ if (one === 6 || two === 50 || (two > 55 && two < 59)) {
318
315
  return true;
319
316
  }
320
317
  if (three < 500) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-utils.mjs","sources":["../../../projects/addon-commerce/utils/get-currency-symbol.ts","../../../projects/addon-commerce/utils/format-currency.ts","../../../projects/addon-commerce/utils/get-code-by-currency.ts","../../../projects/addon-commerce/utils/get-currency-by-code.ts","../../../projects/addon-commerce/utils/get-payment-system.ts","../../../projects/addon-commerce/utils/is-card-length-valid.ts","../../../projects/addon-commerce/utils/is-card-number-valid.ts","../../../projects/addon-commerce/utils/is-expire-valid.ts","../../../projects/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {\n TuiCurrency,\n TuiCurrencyCode,\n type TuiCurrencyVariants,\n} from '@taiga-ui/addon-commerce/types';\n\nexport function tuiGetCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.AzerbaijaniManat:\n case TuiCurrencyCode.AzerbaijaniManat:\n return '₼';\n case TuiCurrency.BahrainiDinar:\n case TuiCurrencyCode.BahrainiDinar:\n return 'BD';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.BelarusianRuble:\n case TuiCurrencyCode.BelarusianRuble:\n return 'Br';\n case TuiCurrency.BrazilianReal:\n case TuiCurrencyCode.BrazilianReal:\n return 'R$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.CzechKoruna:\n case TuiCurrencyCode.CzechKoruna:\n return 'Kč';\n case TuiCurrency.Dirham:\n case TuiCurrencyCode.Dirham:\n return 'Dh';\n case TuiCurrency.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.Dollar:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.EastCaribbeanDollar:\n case TuiCurrencyCode.EastCaribbeanDollar:\n return 'EC$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Forint:\n case TuiCurrencyCode.Forint:\n return 'Ft';\n case TuiCurrency.GeorgianLari:\n case TuiCurrencyCode.GeorgianLari:\n return '₾';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.IndonesianRupiah:\n case TuiCurrencyCode.IndonesianRupiah:\n return 'Rp';\n case TuiCurrency.IranianRial:\n case TuiCurrencyCode.IranianRial:\n return 'IR';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.KyrgyzstanSom:\n case TuiCurrencyCode.KyrgyzstanSom:\n return 'c';\n case TuiCurrency.MalaysianRinggit:\n case TuiCurrencyCode.MalaysianRinggit:\n return 'RM';\n case TuiCurrency.MoldovanLeu:\n case TuiCurrencyCode.MoldovanLeu:\n return 'L';\n case TuiCurrency.MongolianTugrik:\n case TuiCurrencyCode.MongolianTugrik:\n return '₮';\n case TuiCurrency.NewTurkmenManat:\n case TuiCurrencyCode.NewTurkmenManat:\n return 'TMT';\n case TuiCurrency.PolandZloty:\n case TuiCurrencyCode.PolandZloty:\n return 'zł';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.SaudiRiyal:\n case TuiCurrencyCode.SaudiRiyal:\n return 'SR';\n case TuiCurrency.SerbianDinar:\n case TuiCurrencyCode.SerbianDinar:\n return 'DIN';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.SouthAfricanRand:\n case TuiCurrencyCode.SouthAfricanRand:\n return 'R';\n case TuiCurrency.SriLankanRupee:\n case TuiCurrencyCode.SriLankanRupee:\n return 'Rs.';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.TajikistaniSomoni:\n case TuiCurrencyCode.TajikistaniSomoni:\n return 'SM';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.UzbekSum:\n case TuiCurrencyCode.UzbekSum:\n return \"So'm\";\n case TuiCurrency.VietnameseDong:\n case TuiCurrencyCode.VietnameseDong:\n return 'đ';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n default:\n return null;\n }\n}\n","import {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetCurrencySymbol} from './get-currency-symbol';\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || tuiIsString(currency)\n ? currency || ''\n : String(currency).padStart(3, '0');\n}\n\nexport function tuiFormatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return tuiGetCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n","// cspell:disable\nimport {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/types';\n\nexport const TUI_CODE_DICTIONARY: Record<TuiCurrency, TuiCurrencyCode> = {\n [TuiCurrency.Ruble]: TuiCurrencyCode.Ruble,\n [TuiCurrency.Dollar]: TuiCurrencyCode.Dollar,\n [TuiCurrency.MexicanPeso]: TuiCurrencyCode.MexicanPeso,\n [TuiCurrency.MoldovanLeu]: TuiCurrencyCode.MoldovanLeu,\n [TuiCurrency.PolandZloty]: TuiCurrencyCode.PolandZloty,\n [TuiCurrency.SingaporeDollar]: TuiCurrencyCode.SingaporeDollar,\n [TuiCurrency.AustralianDollar]: TuiCurrencyCode.AustralianDollar,\n [TuiCurrency.HongKongDollar]: TuiCurrencyCode.HongKongDollar,\n [TuiCurrency.CanadianDollar]: TuiCurrencyCode.CanadianDollar,\n [TuiCurrency.CzechKoruna]: TuiCurrencyCode.CzechKoruna,\n [TuiCurrency.EastCaribbeanDollar]: TuiCurrencyCode.EastCaribbeanDollar,\n [TuiCurrency.Euro]: TuiCurrencyCode.Euro,\n [TuiCurrency.Forint]: TuiCurrencyCode.Forint,\n [TuiCurrency.Pound]: TuiCurrencyCode.Pound,\n [TuiCurrency.Baht]: TuiCurrencyCode.Baht,\n [TuiCurrency.BahrainiDinar]: TuiCurrencyCode.BahrainiDinar,\n [TuiCurrency.TurkishLira]: TuiCurrencyCode.TurkishLira,\n [TuiCurrency.YuanRenminbi]: TuiCurrencyCode.YuanRenminbi,\n [TuiCurrency.Yen]: TuiCurrencyCode.Yen,\n [TuiCurrency.IsraeliShekel]: TuiCurrencyCode.IsraeliShekel,\n [TuiCurrency.IndianRupee]: TuiCurrencyCode.IndianRupee,\n [TuiCurrency.SwissFranc]: TuiCurrencyCode.SwissFranc,\n [TuiCurrency.ArmenianDram]: TuiCurrencyCode.ArmenianDram,\n [TuiCurrency.Won]: TuiCurrencyCode.Won,\n [TuiCurrency.Tenge]: TuiCurrencyCode.Tenge,\n [TuiCurrency.Hryvnia]: TuiCurrencyCode.Hryvnia,\n [TuiCurrency.UzbekSum]: TuiCurrencyCode.UzbekSum,\n [TuiCurrency.KyrgyzstanSom]: TuiCurrencyCode.KyrgyzstanSom,\n [TuiCurrency.Dirham]: TuiCurrencyCode.Dirham,\n [TuiCurrency.TajikistaniSomoni]: TuiCurrencyCode.TajikistaniSomoni,\n [TuiCurrency.MalaysianRinggit]: TuiCurrencyCode.MalaysianRinggit,\n [TuiCurrency.BelarusianRuble]: TuiCurrencyCode.BelarusianRuble,\n [TuiCurrency.GeorgianLari]: TuiCurrencyCode.GeorgianLari,\n [TuiCurrency.AzerbaijaniManat]: TuiCurrencyCode.AzerbaijaniManat,\n [TuiCurrency.SriLankanRupee]: TuiCurrencyCode.SriLankanRupee,\n [TuiCurrency.SerbianDinar]: TuiCurrencyCode.SerbianDinar,\n [TuiCurrency.SaudiRiyal]: TuiCurrencyCode.SaudiRiyal,\n [TuiCurrency.MongolianTugrik]: TuiCurrencyCode.MongolianTugrik,\n [TuiCurrency.SouthAfricanRand]: TuiCurrencyCode.SouthAfricanRand,\n [TuiCurrency.IranianRial]: TuiCurrencyCode.IranianRial,\n [TuiCurrency.IndonesianRupiah]: TuiCurrencyCode.IndonesianRupiah,\n [TuiCurrency.VietnameseDong]: TuiCurrencyCode.VietnameseDong,\n [TuiCurrency.NewTurkmenManat]: TuiCurrencyCode.NewTurkmenManat,\n [TuiCurrency.BrazilianReal]: TuiCurrencyCode.BrazilianReal,\n};\n\nexport function tuiGetCodeByCurrency(code: TuiCurrency): TuiCurrencyCode | null {\n return TUI_CODE_DICTIONARY[code] ?? null;\n}\n","// cspell:disable\nimport {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/types';\n\nexport const TUI_CURRENCY_DICTIONARY: Record<TuiCurrencyCode, TuiCurrency> = {\n [TuiCurrencyCode.Ruble]: TuiCurrency.Ruble,\n [TuiCurrencyCode.Dollar]: TuiCurrency.Dollar,\n [TuiCurrencyCode.MexicanPeso]: TuiCurrency.MexicanPeso,\n [TuiCurrencyCode.MoldovanLeu]: TuiCurrency.MoldovanLeu,\n [TuiCurrencyCode.PolandZloty]: TuiCurrency.PolandZloty,\n [TuiCurrencyCode.SingaporeDollar]: TuiCurrency.SingaporeDollar,\n [TuiCurrencyCode.AustralianDollar]: TuiCurrency.AustralianDollar,\n [TuiCurrencyCode.HongKongDollar]: TuiCurrency.HongKongDollar,\n [TuiCurrencyCode.CanadianDollar]: TuiCurrency.CanadianDollar,\n [TuiCurrencyCode.CzechKoruna]: TuiCurrency.CzechKoruna,\n [TuiCurrencyCode.EastCaribbeanDollar]: TuiCurrency.EastCaribbeanDollar,\n [TuiCurrencyCode.Euro]: TuiCurrency.Euro,\n [TuiCurrencyCode.Forint]: TuiCurrency.Forint,\n [TuiCurrencyCode.Pound]: TuiCurrency.Pound,\n [TuiCurrencyCode.Baht]: TuiCurrency.Baht,\n [TuiCurrencyCode.BahrainiDinar]: TuiCurrency.BahrainiDinar,\n [TuiCurrencyCode.TurkishLira]: TuiCurrency.TurkishLira,\n [TuiCurrencyCode.YuanRenminbi]: TuiCurrency.YuanRenminbi,\n [TuiCurrencyCode.Yen]: TuiCurrency.Yen,\n [TuiCurrencyCode.IsraeliShekel]: TuiCurrency.IsraeliShekel,\n [TuiCurrencyCode.IndianRupee]: TuiCurrency.IndianRupee,\n [TuiCurrencyCode.SwissFranc]: TuiCurrency.SwissFranc,\n [TuiCurrencyCode.ArmenianDram]: TuiCurrency.ArmenianDram,\n [TuiCurrencyCode.Won]: TuiCurrency.Won,\n [TuiCurrencyCode.Tenge]: TuiCurrency.Tenge,\n [TuiCurrencyCode.Hryvnia]: TuiCurrency.Hryvnia,\n [TuiCurrencyCode.UzbekSum]: TuiCurrency.UzbekSum,\n [TuiCurrencyCode.KyrgyzstanSom]: TuiCurrency.KyrgyzstanSom,\n [TuiCurrencyCode.Dirham]: TuiCurrency.Dirham,\n [TuiCurrencyCode.TajikistaniSomoni]: TuiCurrency.TajikistaniSomoni,\n [TuiCurrencyCode.MalaysianRinggit]: TuiCurrency.MalaysianRinggit,\n [TuiCurrencyCode.BelarusianRuble]: TuiCurrency.BelarusianRuble,\n [TuiCurrencyCode.GeorgianLari]: TuiCurrency.GeorgianLari,\n [TuiCurrencyCode.AzerbaijaniManat]: TuiCurrency.AzerbaijaniManat,\n [TuiCurrencyCode.SriLankanRupee]: TuiCurrency.SriLankanRupee,\n [TuiCurrencyCode.SerbianDinar]: TuiCurrency.SerbianDinar,\n [TuiCurrencyCode.SaudiRiyal]: TuiCurrency.SaudiRiyal,\n [TuiCurrencyCode.MongolianTugrik]: TuiCurrency.MongolianTugrik,\n [TuiCurrencyCode.SouthAfricanRand]: TuiCurrency.SouthAfricanRand,\n [TuiCurrencyCode.IranianRial]: TuiCurrency.IranianRial,\n [TuiCurrencyCode.IndonesianRupiah]: TuiCurrency.IndonesianRupiah,\n [TuiCurrencyCode.VietnameseDong]: TuiCurrency.VietnameseDong,\n [TuiCurrencyCode.NewTurkmenManat]: TuiCurrency.NewTurkmenManat,\n [TuiCurrencyCode.BrazilianReal]: TuiCurrency.BrazilianReal,\n};\n\nexport function tuiGetCurrencyByCode(currency: TuiCurrencyCode): TuiCurrency | null {\n return TUI_CURRENCY_DICTIONARY[currency] ?? null;\n}\n","import {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\n\n// https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN)\nexport const TUI_BIN_TABLE: ReadonlyArray<\n [paymentSystem: TuiPaymentSystem, start: number, end?: number]\n> = [\n ['mir', 2200, 2204],\n ['mastercard', 2221, 2720],\n ['jcb', 3528, 3589],\n ['amex', 34],\n ['amex', 37],\n ['dinersclub', 36],\n ['electron', 4026],\n ['electron', 4175],\n ['electron', 4405],\n ['electron', 4508],\n ['electron', 4844],\n ['electron', 4913],\n ['electron', 4917],\n ['visa', 4],\n ['verve', 506099, 506198],\n ['verve', 507865, 507964],\n ['maestro', 5018],\n ['maestro', 5020],\n ['maestro', 5038],\n ['maestro', 5090],\n ['maestro', 5890],\n ['maestro', 5893],\n ['rupay', 508],\n ['maestro', 50],\n ['mastercard', 51, 55],\n ['maestro', 56],\n ['maestro', 58],\n ['mastercard', 5],\n ['maestro', 6000],\n ['maestro', 6304],\n ['maestro', 6759, 6763],\n ['verve', 650002, 650027],\n ['maestro', 676770],\n ['maestro', 676774],\n ['discover', 644, 649],\n ['discover', 6011],\n ['rupay', 60],\n ['unionpay', 62],\n ['discover', 65],\n ['maestro', 6],\n ['rupay', 81, 82],\n ['uzcard', 8600],\n ['humo', 9860],\n];\n\nexport function tuiGetPaymentSystem(\n cardNumber?: string | null,\n supported?: TuiPaymentSystem[],\n): TuiPaymentSystem | null {\n if (!cardNumber) {\n return null;\n }\n\n const row = TUI_BIN_TABLE.find(([paymentSystem, start, end = start]) => {\n const cardNumberNumeric = Number.parseInt(\n cardNumber.slice(0, String(start).length),\n 10,\n );\n\n const match = cardNumberNumeric >= start && cardNumberNumeric <= end;\n\n return match && (!supported?.length || supported.includes(paymentSystem));\n });\n\n return row?.[0] ?? null;\n}\n\nexport function tuiIsMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport function tuiIsMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport function tuiIsMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport function tuiIsElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport function tuiIsVisa(one: number): boolean {\n return one === 4;\n}\n","import {tuiGetPaymentSystem} from './get-payment-system';\n\n/**\n * Validates card number length using payment system dictionary\n */\nexport function tuiIsCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = tuiGetPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case 'electron':\n return length === 16;\n case 'maestro':\n return length > 11 && length < 20;\n case 'mastercard':\n case 'mir':\n return length > 15 && length < 20;\n case 'visa':\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/cdk/constants';\n\n/**\n * Validates card number using Luhn algorithm\n */\nexport function tuiIsCardNumberValid(value: number | string): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');\n\n const {length} = cardNumber;\n const arr = cardNumber.split('').map((char, index) => {\n const digit = Number.parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiIsExpireValid(expire: string, today = new Date()): boolean {\n const currentMonth = today.getMonth() + 1;\n const currentYear = today.getFullYear() - 2000;\n const expireMonth = tuiClamp(Number.parseInt(expire.slice(0, 2), 10), 1, 12);\n const expireYear = tuiClamp(Number.parseInt(expire.slice(-2), 10), 0, 99);\n\n return (\n expireYear > currentYear ||\n (currentYear === expireYear && expireMonth >= currentMonth)\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-utils.mjs","sources":["../../../projects/addon-commerce/utils/get-currency-symbol.ts","../../../projects/addon-commerce/utils/format-currency.ts","../../../projects/addon-commerce/utils/get-code-by-currency.ts","../../../projects/addon-commerce/utils/get-currency-by-code.ts","../../../projects/addon-commerce/utils/get-payment-system.ts","../../../projects/addon-commerce/utils/is-card-length-valid.ts","../../../projects/addon-commerce/utils/is-card-number-valid.ts","../../../projects/addon-commerce/utils/is-expire-valid.ts","../../../projects/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {\n TuiCurrency,\n TuiCurrencyCode,\n type TuiCurrencyVariants,\n} from '@taiga-ui/addon-commerce/types';\n\nexport function tuiGetCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.AzerbaijaniManat:\n case TuiCurrencyCode.AzerbaijaniManat:\n return '₼';\n case TuiCurrency.BahrainiDinar:\n case TuiCurrencyCode.BahrainiDinar:\n return 'BD';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.BelarusianRuble:\n case TuiCurrencyCode.BelarusianRuble:\n return 'Br';\n case TuiCurrency.BrazilianReal:\n case TuiCurrencyCode.BrazilianReal:\n return 'R$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.CzechKoruna:\n case TuiCurrencyCode.CzechKoruna:\n return 'Kč';\n case TuiCurrency.Dirham:\n case TuiCurrencyCode.Dirham:\n return 'Dh';\n case TuiCurrency.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.Dollar:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.EastCaribbeanDollar:\n case TuiCurrencyCode.EastCaribbeanDollar:\n return 'EC$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Forint:\n case TuiCurrencyCode.Forint:\n return 'Ft';\n case TuiCurrency.GeorgianLari:\n case TuiCurrencyCode.GeorgianLari:\n return '₾';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.IndonesianRupiah:\n case TuiCurrencyCode.IndonesianRupiah:\n return 'Rp';\n case TuiCurrency.IranianRial:\n case TuiCurrencyCode.IranianRial:\n return 'IR';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.KyrgyzstanSom:\n case TuiCurrencyCode.KyrgyzstanSom:\n return 'c';\n case TuiCurrency.MalaysianRinggit:\n case TuiCurrencyCode.MalaysianRinggit:\n return 'RM';\n case TuiCurrency.MoldovanLeu:\n case TuiCurrencyCode.MoldovanLeu:\n return 'L';\n case TuiCurrency.MongolianTugrik:\n case TuiCurrencyCode.MongolianTugrik:\n return '₮';\n case TuiCurrency.NewTurkmenManat:\n case TuiCurrencyCode.NewTurkmenManat:\n return 'TMT';\n case TuiCurrency.PolandZloty:\n case TuiCurrencyCode.PolandZloty:\n return 'zł';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.SaudiRiyal:\n case TuiCurrencyCode.SaudiRiyal:\n return 'SR';\n case TuiCurrency.SerbianDinar:\n case TuiCurrencyCode.SerbianDinar:\n return 'DIN';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.SouthAfricanRand:\n case TuiCurrencyCode.SouthAfricanRand:\n return 'R';\n case TuiCurrency.SriLankanRupee:\n case TuiCurrencyCode.SriLankanRupee:\n return 'Rs.';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.TajikistaniSomoni:\n case TuiCurrencyCode.TajikistaniSomoni:\n return 'SM';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.UzbekSum:\n case TuiCurrencyCode.UzbekSum:\n return \"So'm\";\n case TuiCurrency.VietnameseDong:\n case TuiCurrencyCode.VietnameseDong:\n return 'đ';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n default:\n return null;\n }\n}\n","import {type TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetCurrencySymbol} from './get-currency-symbol';\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || tuiIsString(currency)\n ? currency || ''\n : String(currency).padStart(3, '0');\n}\n\nexport function tuiFormatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return tuiGetCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n","// cspell:disable\nimport {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/types';\n\nexport const TUI_CODE_DICTIONARY: Record<TuiCurrency, TuiCurrencyCode> = {\n [TuiCurrency.Ruble]: TuiCurrencyCode.Ruble,\n [TuiCurrency.Dollar]: TuiCurrencyCode.Dollar,\n [TuiCurrency.MexicanPeso]: TuiCurrencyCode.MexicanPeso,\n [TuiCurrency.MoldovanLeu]: TuiCurrencyCode.MoldovanLeu,\n [TuiCurrency.PolandZloty]: TuiCurrencyCode.PolandZloty,\n [TuiCurrency.SingaporeDollar]: TuiCurrencyCode.SingaporeDollar,\n [TuiCurrency.AustralianDollar]: TuiCurrencyCode.AustralianDollar,\n [TuiCurrency.HongKongDollar]: TuiCurrencyCode.HongKongDollar,\n [TuiCurrency.CanadianDollar]: TuiCurrencyCode.CanadianDollar,\n [TuiCurrency.CzechKoruna]: TuiCurrencyCode.CzechKoruna,\n [TuiCurrency.EastCaribbeanDollar]: TuiCurrencyCode.EastCaribbeanDollar,\n [TuiCurrency.Euro]: TuiCurrencyCode.Euro,\n [TuiCurrency.Forint]: TuiCurrencyCode.Forint,\n [TuiCurrency.Pound]: TuiCurrencyCode.Pound,\n [TuiCurrency.Baht]: TuiCurrencyCode.Baht,\n [TuiCurrency.BahrainiDinar]: TuiCurrencyCode.BahrainiDinar,\n [TuiCurrency.TurkishLira]: TuiCurrencyCode.TurkishLira,\n [TuiCurrency.YuanRenminbi]: TuiCurrencyCode.YuanRenminbi,\n [TuiCurrency.Yen]: TuiCurrencyCode.Yen,\n [TuiCurrency.IsraeliShekel]: TuiCurrencyCode.IsraeliShekel,\n [TuiCurrency.IndianRupee]: TuiCurrencyCode.IndianRupee,\n [TuiCurrency.SwissFranc]: TuiCurrencyCode.SwissFranc,\n [TuiCurrency.ArmenianDram]: TuiCurrencyCode.ArmenianDram,\n [TuiCurrency.Won]: TuiCurrencyCode.Won,\n [TuiCurrency.Tenge]: TuiCurrencyCode.Tenge,\n [TuiCurrency.Hryvnia]: TuiCurrencyCode.Hryvnia,\n [TuiCurrency.UzbekSum]: TuiCurrencyCode.UzbekSum,\n [TuiCurrency.KyrgyzstanSom]: TuiCurrencyCode.KyrgyzstanSom,\n [TuiCurrency.Dirham]: TuiCurrencyCode.Dirham,\n [TuiCurrency.TajikistaniSomoni]: TuiCurrencyCode.TajikistaniSomoni,\n [TuiCurrency.MalaysianRinggit]: TuiCurrencyCode.MalaysianRinggit,\n [TuiCurrency.BelarusianRuble]: TuiCurrencyCode.BelarusianRuble,\n [TuiCurrency.GeorgianLari]: TuiCurrencyCode.GeorgianLari,\n [TuiCurrency.AzerbaijaniManat]: TuiCurrencyCode.AzerbaijaniManat,\n [TuiCurrency.SriLankanRupee]: TuiCurrencyCode.SriLankanRupee,\n [TuiCurrency.SerbianDinar]: TuiCurrencyCode.SerbianDinar,\n [TuiCurrency.SaudiRiyal]: TuiCurrencyCode.SaudiRiyal,\n [TuiCurrency.MongolianTugrik]: TuiCurrencyCode.MongolianTugrik,\n [TuiCurrency.SouthAfricanRand]: TuiCurrencyCode.SouthAfricanRand,\n [TuiCurrency.IranianRial]: TuiCurrencyCode.IranianRial,\n [TuiCurrency.IndonesianRupiah]: TuiCurrencyCode.IndonesianRupiah,\n [TuiCurrency.VietnameseDong]: TuiCurrencyCode.VietnameseDong,\n [TuiCurrency.NewTurkmenManat]: TuiCurrencyCode.NewTurkmenManat,\n [TuiCurrency.BrazilianReal]: TuiCurrencyCode.BrazilianReal,\n};\n\nexport function tuiGetCodeByCurrency(code: TuiCurrency): TuiCurrencyCode | null {\n return TUI_CODE_DICTIONARY[code] ?? null;\n}\n","// cspell:disable\nimport {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/types';\n\nexport const TUI_CURRENCY_DICTIONARY: Record<TuiCurrencyCode, TuiCurrency> = {\n [TuiCurrencyCode.Ruble]: TuiCurrency.Ruble,\n [TuiCurrencyCode.Dollar]: TuiCurrency.Dollar,\n [TuiCurrencyCode.MexicanPeso]: TuiCurrency.MexicanPeso,\n [TuiCurrencyCode.MoldovanLeu]: TuiCurrency.MoldovanLeu,\n [TuiCurrencyCode.PolandZloty]: TuiCurrency.PolandZloty,\n [TuiCurrencyCode.SingaporeDollar]: TuiCurrency.SingaporeDollar,\n [TuiCurrencyCode.AustralianDollar]: TuiCurrency.AustralianDollar,\n [TuiCurrencyCode.HongKongDollar]: TuiCurrency.HongKongDollar,\n [TuiCurrencyCode.CanadianDollar]: TuiCurrency.CanadianDollar,\n [TuiCurrencyCode.CzechKoruna]: TuiCurrency.CzechKoruna,\n [TuiCurrencyCode.EastCaribbeanDollar]: TuiCurrency.EastCaribbeanDollar,\n [TuiCurrencyCode.Euro]: TuiCurrency.Euro,\n [TuiCurrencyCode.Forint]: TuiCurrency.Forint,\n [TuiCurrencyCode.Pound]: TuiCurrency.Pound,\n [TuiCurrencyCode.Baht]: TuiCurrency.Baht,\n [TuiCurrencyCode.BahrainiDinar]: TuiCurrency.BahrainiDinar,\n [TuiCurrencyCode.TurkishLira]: TuiCurrency.TurkishLira,\n [TuiCurrencyCode.YuanRenminbi]: TuiCurrency.YuanRenminbi,\n [TuiCurrencyCode.Yen]: TuiCurrency.Yen,\n [TuiCurrencyCode.IsraeliShekel]: TuiCurrency.IsraeliShekel,\n [TuiCurrencyCode.IndianRupee]: TuiCurrency.IndianRupee,\n [TuiCurrencyCode.SwissFranc]: TuiCurrency.SwissFranc,\n [TuiCurrencyCode.ArmenianDram]: TuiCurrency.ArmenianDram,\n [TuiCurrencyCode.Won]: TuiCurrency.Won,\n [TuiCurrencyCode.Tenge]: TuiCurrency.Tenge,\n [TuiCurrencyCode.Hryvnia]: TuiCurrency.Hryvnia,\n [TuiCurrencyCode.UzbekSum]: TuiCurrency.UzbekSum,\n [TuiCurrencyCode.KyrgyzstanSom]: TuiCurrency.KyrgyzstanSom,\n [TuiCurrencyCode.Dirham]: TuiCurrency.Dirham,\n [TuiCurrencyCode.TajikistaniSomoni]: TuiCurrency.TajikistaniSomoni,\n [TuiCurrencyCode.MalaysianRinggit]: TuiCurrency.MalaysianRinggit,\n [TuiCurrencyCode.BelarusianRuble]: TuiCurrency.BelarusianRuble,\n [TuiCurrencyCode.GeorgianLari]: TuiCurrency.GeorgianLari,\n [TuiCurrencyCode.AzerbaijaniManat]: TuiCurrency.AzerbaijaniManat,\n [TuiCurrencyCode.SriLankanRupee]: TuiCurrency.SriLankanRupee,\n [TuiCurrencyCode.SerbianDinar]: TuiCurrency.SerbianDinar,\n [TuiCurrencyCode.SaudiRiyal]: TuiCurrency.SaudiRiyal,\n [TuiCurrencyCode.MongolianTugrik]: TuiCurrency.MongolianTugrik,\n [TuiCurrencyCode.SouthAfricanRand]: TuiCurrency.SouthAfricanRand,\n [TuiCurrencyCode.IranianRial]: TuiCurrency.IranianRial,\n [TuiCurrencyCode.IndonesianRupiah]: TuiCurrency.IndonesianRupiah,\n [TuiCurrencyCode.VietnameseDong]: TuiCurrency.VietnameseDong,\n [TuiCurrencyCode.NewTurkmenManat]: TuiCurrency.NewTurkmenManat,\n [TuiCurrencyCode.BrazilianReal]: TuiCurrency.BrazilianReal,\n};\n\nexport function tuiGetCurrencyByCode(currency: TuiCurrencyCode): TuiCurrency | null {\n return TUI_CURRENCY_DICTIONARY[currency] ?? null;\n}\n","import {type TuiPaymentSystem} from '@taiga-ui/addon-commerce/types';\n\n// https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN)\nexport const TUI_BIN_TABLE: ReadonlyArray<\n [paymentSystem: TuiPaymentSystem, start: number, end?: number]\n> = [\n ['mir', 2200, 2204],\n ['mastercard', 2221, 2720],\n ['jcb', 3528, 3589],\n ['amex', 34],\n ['amex', 37],\n ['dinersclub', 36],\n ['electron', 4026],\n ['electron', 4175],\n ['electron', 4405],\n ['electron', 4508],\n ['electron', 4844],\n ['electron', 4913],\n ['electron', 4917],\n ['visa', 4],\n ['verve', 506099, 506198],\n ['verve', 507865, 507964],\n ['maestro', 5018],\n ['maestro', 5020],\n ['maestro', 5038],\n ['maestro', 5090],\n ['maestro', 5890],\n ['maestro', 5893],\n ['rupay', 508],\n ['maestro', 50],\n ['mastercard', 51, 55],\n ['maestro', 56],\n ['maestro', 58],\n ['mastercard', 5],\n ['maestro', 6000],\n ['maestro', 6304],\n ['maestro', 6759, 6763],\n ['verve', 650002, 650027],\n ['maestro', 676770],\n ['maestro', 676774],\n ['discover', 644, 649],\n ['discover', 6011],\n ['rupay', 60],\n ['unionpay', 62],\n ['discover', 65],\n ['maestro', 6],\n ['rupay', 81, 82],\n ['uzcard', 8600],\n ['humo', 9860],\n];\n\nexport function tuiGetPaymentSystem(\n cardNumber?: string | null,\n supported?: TuiPaymentSystem[],\n): TuiPaymentSystem | null {\n if (!cardNumber) {\n return null;\n }\n\n const row = TUI_BIN_TABLE.find(([paymentSystem, start, end = start]) => {\n const cardNumberNumeric = Number.parseInt(\n cardNumber.slice(0, String(start).length),\n 10,\n );\n\n const match = cardNumberNumeric >= start && cardNumberNumeric <= end;\n\n return match && (!supported?.length || supported.includes(paymentSystem));\n });\n\n return row?.[0] ?? null;\n}\n\nexport function tuiIsMaestro(three: number, two: number, one: number): boolean {\n if (one === 6 || two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport function tuiIsMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport function tuiIsMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport function tuiIsElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport function tuiIsVisa(one: number): boolean {\n return one === 4;\n}\n","import {tuiGetPaymentSystem} from './get-payment-system';\n\n/**\n * Validates card number length using payment system dictionary\n */\nexport function tuiIsCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = tuiGetPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case 'electron':\n return length === 16;\n case 'maestro':\n return length > 11 && length < 20;\n case 'mastercard':\n case 'mir':\n return length > 15 && length < 20;\n case 'visa':\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/cdk/constants';\n\n/**\n * Validates card number using Luhn algorithm\n */\nexport function tuiIsCardNumberValid(value: number | string): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');\n\n const {length} = cardNumber;\n const arr = cardNumber.split('').map((char, index) => {\n const digit = Number.parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiIsExpireValid(expire: string, today = new Date()): boolean {\n const currentMonth = today.getMonth() + 1;\n const currentYear = today.getFullYear() - 2000;\n const expireMonth = tuiClamp(Number.parseInt(expire.slice(0, 2), 10), 1, 12);\n const expireYear = tuiClamp(Number.parseInt(expire.slice(-2), 10), 0, 99);\n\n return (\n expireYear > currentYear ||\n (currentYear === expireYear && expireMonth >= currentMonth)\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-commerce",
3
- "version": "5.3.0",
3
+ "version": "5.4.0-canary.15a8161",
4
4
  "description": "Extension package for Taiga UI related to commerce, payment systems, currencies etc.",
5
5
  "keywords": [
6
6
  "angular",
@@ -38,10 +38,10 @@
38
38
  "@maskito/core": "^5.2.2",
39
39
  "@maskito/kit": "^5.2.2",
40
40
  "@ng-web-apis/common": "^5.2.0",
41
- "@taiga-ui/cdk": "5.3.0",
42
- "@taiga-ui/core": "5.3.0",
43
- "@taiga-ui/i18n": "5.3.0",
44
- "@taiga-ui/kit": "5.3.0",
41
+ "@taiga-ui/cdk": "5.4.0",
42
+ "@taiga-ui/core": "5.4.0",
43
+ "@taiga-ui/i18n": "5.4.0",
44
+ "@taiga-ui/kit": "5.4.0",
45
45
  "@taiga-ui/polymorpheus": "^5.0.0",
46
46
  "rxjs": ">=7.0.0"
47
47
  },
@@ -1,6 +1,7 @@
1
1
  import { type PipeTransform } from '@angular/core';
2
2
  import { type TuiCurrencyVariants } from '@taiga-ui/addon-commerce/types';
3
3
  import { type TuiHorizontalDirection } from '@taiga-ui/core/types';
4
+ import { type TuiAmountSign } from './amount.types';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class TuiAmountPipe implements PipeTransform {
6
7
  private readonly options;
@@ -8,8 +9,9 @@ export declare class TuiAmountPipe implements PipeTransform {
8
9
  private readonly value;
9
10
  private readonly currency;
10
11
  private readonly currencyAlign;
12
+ private readonly sign;
11
13
  private readonly formatted;
12
- transform(value: number, currency?: TuiCurrencyVariants, currencyAlign?: TuiHorizontalDirection): string;
14
+ transform(value: number, currency?: TuiCurrencyVariants, currencyAlign?: TuiHorizontalDirection, sign?: TuiAmountSign): string;
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiAmountPipe, never>;
14
16
  static ɵpipe: i0.ɵɵPipeDeclaration<TuiAmountPipe, "tuiAmount", true>;
15
17
  }