@taiga-ui/addon-commerce 2.52.0 → 2.53.0

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.
Files changed (68) hide show
  1. package/bundles/taiga-ui-addon-commerce-components-card.umd.js +1 -0
  2. package/bundles/taiga-ui-addon-commerce-components-card.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-commerce-components-card.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js +1 -0
  5. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js.map +1 -1
  6. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js +1 -0
  8. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-addon-commerce-components-money.umd.js +1 -1
  11. package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
  12. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js +1 -1
  13. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-addon-commerce-utils.umd.js +62 -0
  15. package/bundles/taiga-ui-addon-commerce-utils.umd.js.map +1 -1
  16. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js +1 -1
  17. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js.map +1 -1
  18. package/components/card/taiga-ui-addon-commerce-components-card.metadata.json +1 -1
  19. package/components/input-card/taiga-ui-addon-commerce-components-input-card.metadata.json +1 -1
  20. package/components/money/taiga-ui-addon-commerce-components-money.metadata.json +1 -1
  21. package/esm2015/components/card/card.component.js +2 -1
  22. package/esm2015/components/input-card/input-card.component.js +2 -1
  23. package/esm2015/components/input-card-grouped/input-card-grouped.providers.js +2 -1
  24. package/esm2015/components/money/money.component.js +2 -2
  25. package/esm2015/utils/format-currency.js +6 -1
  26. package/esm2015/utils/get-currency-symbol.js +6 -1
  27. package/esm2015/utils/get-payment-system.js +31 -1
  28. package/esm2015/utils/is-card-length-valid.js +4 -1
  29. package/esm2015/utils/is-card-number-valid.js +4 -1
  30. package/esm2015/utils/is-expire-valid.js +6 -1
  31. package/esm5/components/card/card.component.js +2 -1
  32. package/esm5/components/input-card/input-card.component.js +2 -1
  33. package/esm5/components/input-card-grouped/input-card-grouped.providers.js +2 -1
  34. package/esm5/components/money/money.component.js +2 -2
  35. package/esm5/utils/format-currency.js +6 -1
  36. package/esm5/utils/get-currency-symbol.js +6 -1
  37. package/esm5/utils/get-payment-system.js +31 -1
  38. package/esm5/utils/is-card-length-valid.js +4 -1
  39. package/esm5/utils/is-card-number-valid.js +4 -1
  40. package/esm5/utils/is-expire-valid.js +6 -1
  41. package/fesm2015/taiga-ui-addon-commerce-components-card.js +1 -0
  42. package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +1 -0
  44. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  45. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +1 -0
  46. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  47. package/fesm2015/taiga-ui-addon-commerce-components-money.js +1 -1
  48. package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
  49. package/fesm2015/taiga-ui-addon-commerce-utils.js +52 -1
  50. package/fesm2015/taiga-ui-addon-commerce-utils.js.map +1 -1
  51. package/fesm5/taiga-ui-addon-commerce-components-card.js +1 -0
  52. package/fesm5/taiga-ui-addon-commerce-components-card.js.map +1 -1
  53. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js +1 -0
  54. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  55. package/fesm5/taiga-ui-addon-commerce-components-input-card.js +1 -0
  56. package/fesm5/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  57. package/fesm5/taiga-ui-addon-commerce-components-money.js +1 -1
  58. package/fesm5/taiga-ui-addon-commerce-components-money.js.map +1 -1
  59. package/fesm5/taiga-ui-addon-commerce-utils.js +52 -1
  60. package/fesm5/taiga-ui-addon-commerce-utils.js.map +1 -1
  61. package/package.json +4 -4
  62. package/utils/format-currency.d.ts +4 -0
  63. package/utils/get-currency-symbol.d.ts +4 -0
  64. package/utils/get-payment-system.d.ts +24 -0
  65. package/utils/is-card-length-valid.d.ts +2 -0
  66. package/utils/is-card-number-valid.d.ts +2 -0
  67. package/utils/is-expire-valid.d.ts +4 -0
  68. package/utils/taiga-ui-addon-commerce-utils.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-card-grouped.js","sources":["ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.providers.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.component.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.module.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n TUI_CARD_CVC_TEXTS,\n TUI_CARD_EXPIRY_TEXTS,\n TUI_CARD_NUMBER_TEXTS,\n} from '@taiga-ui/addon-commerce/tokens';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map, startWith, switchMap} from 'rxjs/operators';\n\nexport interface TuiCardGroupedTexts {\n readonly cardNumberText: string;\n readonly expiryText: string;\n readonly cvcText: string;\n}\n\nexport const TUI_INPUT_CARD_GROUPED_TEXTS = new InjectionToken<\n Observable<TuiCardGroupedTexts>\n>('InputCardGrouped texts', {\n factory: () =>\n inputGroupedTextsFactory(\n inject(WINDOW),\n inject(TUI_CARD_NUMBER_TEXTS),\n inject(TUI_CARD_EXPIRY_TEXTS),\n inject(TUI_CARD_CVC_TEXTS),\n inject(TUI_MEDIA),\n ),\n});\n\nexport function inputGroupedTextsFactory(\n windowRef: Window,\n cardNumberTexts: Observable<[string, string]>,\n expiryTexts: Observable<[string, string]>,\n cvcTexts: Observable<[string, string]>,\n {desktopSmall}: TuiMedia,\n): Observable<TuiCardGroupedTexts> {\n const media = windowRef.matchMedia(\n `screen and (min-width: ${(desktopSmall - 1) / 16}em)`,\n );\n\n return typedFromEvent(media, 'change').pipe(\n startWith(null),\n switchMap(() =>\n combineLatest([\n of(Number(media.matches)),\n cardNumberTexts,\n expiryTexts,\n cvcTexts,\n ]),\n ),\n map(([index, cardNumber, expiry, cvcTexts]) => ({\n cardNumberText: cardNumber[index],\n expiryText: expiry[index],\n cvcText: cvcTexts[index],\n })),\n );\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TUI_CARD_MASK, tuiDefaultCardValidator} from '@taiga-ui/addon-commerce/constants';\nimport {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCard} from '@taiga-ui/addon-commerce/interfaces';\nimport {TuiCodeCVCLength} from '@taiga-ui/addon-commerce/types';\nimport {\n getPaymentSystem,\n tuiCreateAutoCorrectedExpirePipe,\n} from '@taiga-ui/addon-commerce/utils';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isNativeFocusedIn,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiAssertIsHTMLElement,\n TuiBooleanHandler,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n TUI_DATA_LIST_HOST,\n TUI_DIGIT_REGEXP,\n TUI_MODE,\n TUI_NON_DIGIT_REGEXP,\n TUI_TEXTFIELD_APPEARANCE,\n TuiBrightness,\n TuiDataListComponent,\n TuiDataListDirective,\n TuiDataListHost,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskConfig} from 'angular2-text-mask';\nimport {Observable} from 'rxjs';\n\nimport {\n TUI_INPUT_CARD_GROUPED_TEXTS,\n TuiCardGroupedTexts,\n} from './input-card-grouped.providers';\n\nconst STUB: TuiCard = {\n card: '',\n expire: '',\n cvc: '',\n};\nconst ICONS = {\n [TuiPaymentSystem.Mir]: 'tuiIconMir',\n [TuiPaymentSystem.Visa]: 'tuiIconVisa',\n [TuiPaymentSystem.Electron]: 'tuiIconElectron',\n [TuiPaymentSystem.Mastercard]: 'tuiIconMastercard',\n [TuiPaymentSystem.Maestro]: 'tuiIconMaestro',\n};\n\n// @dynamic\n@Component({\n selector: 'tui-input-card-grouped',\n templateUrl: './input-card-grouped.template.html',\n styleUrls: ['./input-card-grouped.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MODE_PROVIDER,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCardGroupedComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiInputCardGroupedComponent),\n },\n ],\n host: {\n '($.data-mode.attr)': 'mode$',\n 'data-size': 'l',\n },\n})\nexport class TuiInputCardGroupedComponent\n extends AbstractTuiNullableControl<TuiCard>\n implements TuiFocusableElementAccessor, TuiDataListHost<Partial<TuiCard>>\n{\n @ViewChild('inputCard')\n private readonly inputCard?: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputExpire')\n private readonly inputExpire?: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputCVC')\n private readonly inputCVC?: ElementRef<HTMLInputElement>;\n\n private expireInert = false;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Input()\n @tuiDefaultProp()\n cardSrc: PolymorpheusContent | null = null; // TODO: 3.0 will be deleted `null` in v3.0\n\n @Input()\n @tuiDefaultProp()\n exampleText = '0000 0000 0000 0000';\n\n @Input()\n @tuiDefaultProp()\n cardValidator: TuiBooleanHandler<string> = tuiDefaultCardValidator;\n\n @Input()\n @tuiRequiredSetter()\n set codeLength(length: TuiCodeCVCLength) {\n this.exampleTextCVC = '0'.repeat(length);\n this.maskCVC = {\n mask: new Array(length).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n }\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @Output()\n readonly binChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly dropdown: PolymorpheusContent = '';\n\n @ContentChild(TuiDataListComponent)\n readonly datalist?: TuiDataListComponent<TuiCard>;\n\n exampleTextCVC = '000';\n\n maskCVC: TextMaskConfig = {\n mask: new Array(3).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n\n readonly maskCard: TextMaskConfig = {\n mask: TUI_CARD_MASK,\n guide: false,\n pipe: conformedValue => conformedValue.trim(),\n };\n\n readonly maskExpire: TextMaskConfig = {\n mask: [\n TUI_DIGIT_REGEXP,\n TUI_DIGIT_REGEXP,\n '/',\n TUI_DIGIT_REGEXP,\n TUI_DIGIT_REGEXP,\n ],\n pipe: tuiCreateAutoCorrectedExpirePipe(),\n guide: false,\n } as TuiTextMaskOptions as unknown as TextMaskConfig;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_INPUT_CARD_GROUPED_TEXTS)\n readonly cardGroupedTexts$: Observable<TuiCardGroupedTexts>,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n readonly appearance: string,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.inputCard ? this.inputCard.nativeElement : null;\n }\n\n get focused(): boolean {\n return this.open || isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n get card(): string {\n return this.value?.card ?? '';\n }\n\n get expire(): string {\n return this.value?.expire ?? '';\n }\n\n get cvc(): string {\n return this.value?.cvc ?? '';\n }\n\n get hasCleaner(): boolean {\n return !!this.value?.card?.trim() && !this.readOnly && !this.computedDisabled;\n }\n\n get hasDropdown(): boolean {\n return !!this.dropdown;\n }\n\n get defaultIcon(): string | null {\n const {paymentSystem} = this;\n\n return paymentSystem && ICONS[paymentSystem];\n }\n\n get icon(): PolymorpheusContent | null {\n return this.cardSrc ?? this.defaultIcon;\n }\n\n get bin(): string | null {\n return !this.value || this.value.card.length < 6\n ? null\n : this.value.card.slice(0, 6);\n }\n\n get placeholderRaised(): boolean {\n return (this.computedFocused && !this.readOnly) || this.hasCardNumber;\n }\n\n get hasCardNumber(): boolean {\n return !!this.value?.card?.trim();\n }\n\n get idCard(): string {\n return `${this.id}_card`;\n }\n\n get idExpire(): string {\n return `${this.id}_expire`;\n }\n\n get idCVC(): string {\n return `${this.id}_cvc`;\n }\n\n get isCardCollapsed(): boolean {\n return this.isFocusable(this.card) && !this.cardFocused;\n }\n\n get autocompleteCard(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcNumber\n : TuiCreditCardAutofillName.Off;\n }\n\n get autocompleteExpire(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcExp\n : TuiCreditCardAutofillName.Off;\n }\n\n get autocompleteCVC(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcCsc\n : TuiCreditCardAutofillName.Off;\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.autocompleteEnabled ? 'ccexpiryyear' : null;\n }\n\n get cardPrefilled(): boolean {\n return !!this.card.match(TUI_NON_DIGIT_REGEXP);\n }\n\n get cvcPrefilled(): boolean {\n return !!this.cvc.match(TUI_NON_DIGIT_REGEXP);\n }\n\n get cardFocusable(): boolean {\n return this.focusable && !this.cardPrefilled;\n }\n\n get expireFocusable(): boolean {\n return this.isFocusable(this.card) && !this.expireInert;\n }\n\n get cvcFocusable(): boolean {\n return this.isFocusable(this.card);\n }\n\n get masked(): string {\n return this.cardPrefilled ? `*${this.card.slice(-4)}` : '*';\n }\n\n @HostListener('keydown.esc')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('keydown.arrowDown.prevent', ['$event.target', '1'])\n @HostListener('keydown.arrowUp.prevent', ['$event.target', '-1'])\n onArrow(element: HTMLElement, step: number): void {\n this.open = this.hasDropdown;\n this.changeDetectorRef.detectChanges();\n this.datalist?.onKeyDownArrow(element, step);\n }\n\n handleOption(option: Partial<TuiCard>): void {\n const {card = '', expire = '', cvc = ''} = option;\n const {bin} = this;\n const element =\n (!expire && this.inputExpire?.nativeElement) || this.inputCVC?.nativeElement;\n\n this.updateValue({card, expire, cvc});\n this.updateBin(bin);\n this.open = false;\n this.expireInert = !!expire;\n\n element?.focus();\n }\n\n onCardChange(card: string): void {\n const {value, bin} = this;\n const parsed = card.split(' ').join('');\n\n if (value && value.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 }\n }\n\n onExpireChange(expire: string): void {\n // @bad TODO: Workaround until mask pipe can replace chars and keep caret position\n // @bad TODO: Think about a solution without mask at all\n if (!this.inputExpire) {\n return;\n }\n\n if (parseInt(expire.slice(0, 2), 10) > 12) {\n expire = `12${expire.slice(2)}`;\n }\n\n if (expire.slice(0, 2) === '00') {\n expire = `01${expire.slice(2)}`;\n }\n\n this.inputExpire.nativeElement.value = expire;\n this.updateProperty(expire, 'expire');\n\n if (expire.length === 5) {\n this.focusCVC();\n }\n }\n\n onCVCChange(cvc: string): void {\n this.updateProperty(cvc, 'cvc');\n }\n\n onActiveZoneChange(active: boolean): void {\n this.updateFocused(active);\n this.open = active && this.open;\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n onMouseDown(event: MouseEvent): void {\n tuiAssertIsHTMLElement(event.target);\n\n if (event.target.matches('input')) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n onScroll({currentTarget}: Event): void {\n tuiAssertIsHTMLElement(currentTarget);\n\n currentTarget.scrollLeft = 0;\n }\n\n clear(): void {\n this.updateValue(null);\n this.focusCard();\n }\n\n toggle(): void {\n this.open = !this.open;\n }\n\n writeValue(value: TuiCard | null): void {\n const {bin} = this;\n\n super.writeValue(value);\n this.updateBin(bin);\n this.expireInert = !!this.expire && this.cardPrefilled;\n }\n\n /** Public API for manual focus management */\n focusCard(): void {\n this.inputCard?.nativeElement.focus();\n }\n\n focusExpire(): void {\n this.inputExpire?.nativeElement.focus({preventScroll: true});\n }\n\n focusCVC(): void {\n this.inputCVC?.nativeElement.focus();\n }\n\n private get cardFocused(): boolean {\n return !!this.inputCard && isNativeFocused(this.inputCard.nativeElement);\n }\n\n private get paymentSystem(): TuiPaymentSystem | null {\n return this.value && getPaymentSystem(this.value.card);\n }\n\n @tuiPure\n private isFocusable(card: string): boolean {\n return this.focusable && (this.cardValidator(card) || this.cardPrefilled);\n }\n\n private updateBin(oldBin: string | null): void {\n const {bin} = this;\n\n if (bin !== oldBin && !this.cardPrefilled) {\n this.binChange.emit(bin);\n }\n }\n\n private updateProperty(propValue: string, propName: 'card' | 'expire' | 'cvc'): void {\n const {card, expire, cvc} = this.value || STUB;\n const newValue: TuiCard = {\n card,\n expire,\n cvc,\n };\n\n newValue[propName] = propValue;\n\n if (!newValue.expire && !newValue.cvc && !newValue.card) {\n this.updateValue(null);\n } else {\n this.updateValue(newValue);\n }\n }\n\n private focusInput(): void {\n const element =\n (this.cardFocusable && this.inputCard?.nativeElement) ||\n (this.expireFocusable && this.inputExpire?.nativeElement) ||\n this.inputCVC?.nativeElement;\n\n element?.focus();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFormatCardModule} from '@taiga-ui/addon-commerce/pipes';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCardGroupedComponent} from './input-card-grouped.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiSvgModule,\n TuiWrapperModule,\n TuiHoveredModule,\n TuiActiveZoneModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiDropdownModule,\n TuiPreventDefaultModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFormatCardModule,\n ],\n declarations: [TuiInputCardGroupedComponent],\n exports: [TuiInputCardGroupedComponent],\n})\nexport class TuiInputCardGroupedModule {}\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-grouped.js","sources":["ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.providers.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.component.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/input-card-grouped.module.ts","ng://@taiga-ui/addon-commerce/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n TUI_CARD_CVC_TEXTS,\n TUI_CARD_EXPIRY_TEXTS,\n TUI_CARD_NUMBER_TEXTS,\n} from '@taiga-ui/addon-commerce/tokens';\nimport {typedFromEvent} from '@taiga-ui/cdk';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map, startWith, switchMap} from 'rxjs/operators';\n\nexport interface TuiCardGroupedTexts {\n readonly cardNumberText: string;\n readonly expiryText: string;\n readonly cvcText: string;\n}\n\nexport const TUI_INPUT_CARD_GROUPED_TEXTS = new InjectionToken<\n Observable<TuiCardGroupedTexts>\n>('InputCardGrouped texts', {\n factory: () =>\n inputGroupedTextsFactory(\n inject(WINDOW),\n inject(TUI_CARD_NUMBER_TEXTS),\n inject(TUI_CARD_EXPIRY_TEXTS),\n inject(TUI_CARD_CVC_TEXTS),\n inject(TUI_MEDIA),\n ),\n});\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function inputGroupedTextsFactory(\n windowRef: Window,\n cardNumberTexts: Observable<[string, string]>,\n expiryTexts: Observable<[string, string]>,\n cvcTexts: Observable<[string, string]>,\n {desktopSmall}: TuiMedia,\n): Observable<TuiCardGroupedTexts> {\n const media = windowRef.matchMedia(\n `screen and (min-width: ${(desktopSmall - 1) / 16}em)`,\n );\n\n return typedFromEvent(media, 'change').pipe(\n startWith(null),\n switchMap(() =>\n combineLatest([\n of(Number(media.matches)),\n cardNumberTexts,\n expiryTexts,\n cvcTexts,\n ]),\n ),\n map(([index, cardNumber, expiry, cvcTexts]) => ({\n cardNumberText: cardNumber[index],\n expiryText: expiry[index],\n cvcText: cvcTexts[index],\n })),\n );\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TUI_CARD_MASK, tuiDefaultCardValidator} from '@taiga-ui/addon-commerce/constants';\nimport {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCard} from '@taiga-ui/addon-commerce/interfaces';\nimport {TuiCodeCVCLength} from '@taiga-ui/addon-commerce/types';\nimport {\n getPaymentSystem,\n tuiCreateAutoCorrectedExpirePipe,\n} from '@taiga-ui/addon-commerce/utils';\nimport {\n AbstractTuiNullableControl,\n isNativeFocused,\n isNativeFocusedIn,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n tuiAssertIsHTMLElement,\n TuiBooleanHandler,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n TUI_DATA_LIST_HOST,\n TUI_DIGIT_REGEXP,\n TUI_MODE,\n TUI_NON_DIGIT_REGEXP,\n TUI_TEXTFIELD_APPEARANCE,\n TuiBrightness,\n TuiDataListComponent,\n TuiDataListDirective,\n TuiDataListHost,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskConfig} from 'angular2-text-mask';\nimport {Observable} from 'rxjs';\n\nimport {\n TUI_INPUT_CARD_GROUPED_TEXTS,\n TuiCardGroupedTexts,\n} from './input-card-grouped.providers';\n\nconst STUB: TuiCard = {\n card: '',\n expire: '',\n cvc: '',\n};\nconst ICONS = {\n [TuiPaymentSystem.Mir]: 'tuiIconMir',\n [TuiPaymentSystem.Visa]: 'tuiIconVisa',\n [TuiPaymentSystem.Electron]: 'tuiIconElectron',\n [TuiPaymentSystem.Mastercard]: 'tuiIconMastercard',\n [TuiPaymentSystem.Maestro]: 'tuiIconMaestro',\n};\n\n// @dynamic\n@Component({\n selector: 'tui-input-card-grouped',\n templateUrl: './input-card-grouped.template.html',\n styleUrls: ['./input-card-grouped.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MODE_PROVIDER,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCardGroupedComponent),\n },\n {\n provide: TUI_DATA_LIST_HOST,\n useExisting: forwardRef(() => TuiInputCardGroupedComponent),\n },\n ],\n host: {\n '($.data-mode.attr)': 'mode$',\n 'data-size': 'l',\n },\n})\nexport class TuiInputCardGroupedComponent\n extends AbstractTuiNullableControl<TuiCard>\n implements TuiFocusableElementAccessor, TuiDataListHost<Partial<TuiCard>>\n{\n @ViewChild('inputCard')\n private readonly inputCard?: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputExpire')\n private readonly inputExpire?: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputCVC')\n private readonly inputCVC?: ElementRef<HTMLInputElement>;\n\n private expireInert = false;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Input()\n @tuiDefaultProp()\n cardSrc: PolymorpheusContent | null = null; // TODO: 3.0 will be deleted `null` in v3.0\n\n @Input()\n @tuiDefaultProp()\n exampleText = '0000 0000 0000 0000';\n\n @Input()\n @tuiDefaultProp()\n cardValidator: TuiBooleanHandler<string> = tuiDefaultCardValidator;\n\n @Input()\n @tuiRequiredSetter()\n set codeLength(length: TuiCodeCVCLength) {\n this.exampleTextCVC = '0'.repeat(length);\n this.maskCVC = {\n mask: new Array(length).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n }\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @Output()\n readonly binChange = new EventEmitter<string | null>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly dropdown: PolymorpheusContent = '';\n\n @ContentChild(TuiDataListComponent)\n readonly datalist?: TuiDataListComponent<TuiCard>;\n\n exampleTextCVC = '000';\n\n maskCVC: TextMaskConfig = {\n mask: new Array(3).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n\n readonly maskCard: TextMaskConfig = {\n mask: TUI_CARD_MASK,\n guide: false,\n pipe: conformedValue => conformedValue.trim(),\n };\n\n readonly maskExpire: TextMaskConfig = {\n mask: [\n TUI_DIGIT_REGEXP,\n TUI_DIGIT_REGEXP,\n '/',\n TUI_DIGIT_REGEXP,\n TUI_DIGIT_REGEXP,\n ],\n pipe: tuiCreateAutoCorrectedExpirePipe(),\n guide: false,\n } as TuiTextMaskOptions as unknown as TextMaskConfig;\n\n open = false;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_INPUT_CARD_GROUPED_TEXTS)\n readonly cardGroupedTexts$: Observable<TuiCardGroupedTexts>,\n @Inject(TUI_TEXTFIELD_APPEARANCE)\n readonly appearance: string,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.inputCard ? this.inputCard.nativeElement : null;\n }\n\n get focused(): boolean {\n return this.open || isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n get card(): string {\n return this.value?.card ?? '';\n }\n\n get expire(): string {\n return this.value?.expire ?? '';\n }\n\n get cvc(): string {\n return this.value?.cvc ?? '';\n }\n\n get hasCleaner(): boolean {\n return !!this.value?.card?.trim() && !this.readOnly && !this.computedDisabled;\n }\n\n get hasDropdown(): boolean {\n return !!this.dropdown;\n }\n\n get defaultIcon(): string | null {\n const {paymentSystem} = this;\n\n return paymentSystem && ICONS[paymentSystem];\n }\n\n get icon(): PolymorpheusContent | null {\n return this.cardSrc ?? this.defaultIcon;\n }\n\n get bin(): string | null {\n return !this.value || this.value.card.length < 6\n ? null\n : this.value.card.slice(0, 6);\n }\n\n get placeholderRaised(): boolean {\n return (this.computedFocused && !this.readOnly) || this.hasCardNumber;\n }\n\n get hasCardNumber(): boolean {\n return !!this.value?.card?.trim();\n }\n\n get idCard(): string {\n return `${this.id}_card`;\n }\n\n get idExpire(): string {\n return `${this.id}_expire`;\n }\n\n get idCVC(): string {\n return `${this.id}_cvc`;\n }\n\n get isCardCollapsed(): boolean {\n return this.isFocusable(this.card) && !this.cardFocused;\n }\n\n get autocompleteCard(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcNumber\n : TuiCreditCardAutofillName.Off;\n }\n\n get autocompleteExpire(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcExp\n : TuiCreditCardAutofillName.Off;\n }\n\n get autocompleteCVC(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcCsc\n : TuiCreditCardAutofillName.Off;\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.autocompleteEnabled ? 'ccexpiryyear' : null;\n }\n\n get cardPrefilled(): boolean {\n return !!this.card.match(TUI_NON_DIGIT_REGEXP);\n }\n\n get cvcPrefilled(): boolean {\n return !!this.cvc.match(TUI_NON_DIGIT_REGEXP);\n }\n\n get cardFocusable(): boolean {\n return this.focusable && !this.cardPrefilled;\n }\n\n get expireFocusable(): boolean {\n return this.isFocusable(this.card) && !this.expireInert;\n }\n\n get cvcFocusable(): boolean {\n return this.isFocusable(this.card);\n }\n\n get masked(): string {\n return this.cardPrefilled ? `*${this.card.slice(-4)}` : '*';\n }\n\n @HostListener('keydown.esc')\n onEsc(): void {\n this.open = false;\n }\n\n @HostListener('keydown.arrowDown.prevent', ['$event.target', '1'])\n @HostListener('keydown.arrowUp.prevent', ['$event.target', '-1'])\n onArrow(element: HTMLElement, step: number): void {\n this.open = this.hasDropdown;\n this.changeDetectorRef.detectChanges();\n this.datalist?.onKeyDownArrow(element, step);\n }\n\n handleOption(option: Partial<TuiCard>): void {\n const {card = '', expire = '', cvc = ''} = option;\n const {bin} = this;\n const element =\n (!expire && this.inputExpire?.nativeElement) || this.inputCVC?.nativeElement;\n\n this.updateValue({card, expire, cvc});\n this.updateBin(bin);\n this.open = false;\n this.expireInert = !!expire;\n\n element?.focus();\n }\n\n onCardChange(card: string): void {\n const {value, bin} = this;\n const parsed = card.split(' ').join('');\n\n if (value && value.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 }\n }\n\n onExpireChange(expire: string): void {\n // @bad TODO: Workaround until mask pipe can replace chars and keep caret position\n // @bad TODO: Think about a solution without mask at all\n if (!this.inputExpire) {\n return;\n }\n\n if (parseInt(expire.slice(0, 2), 10) > 12) {\n expire = `12${expire.slice(2)}`;\n }\n\n if (expire.slice(0, 2) === '00') {\n expire = `01${expire.slice(2)}`;\n }\n\n this.inputExpire.nativeElement.value = expire;\n this.updateProperty(expire, 'expire');\n\n if (expire.length === 5) {\n this.focusCVC();\n }\n }\n\n onCVCChange(cvc: string): void {\n this.updateProperty(cvc, 'cvc');\n }\n\n onActiveZoneChange(active: boolean): void {\n this.updateFocused(active);\n this.open = active && this.open;\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n onMouseDown(event: MouseEvent): void {\n tuiAssertIsHTMLElement(event.target);\n\n if (event.target.matches('input')) {\n return;\n }\n\n event.preventDefault();\n this.focusInput();\n }\n\n onScroll({currentTarget}: Event): void {\n tuiAssertIsHTMLElement(currentTarget);\n\n currentTarget.scrollLeft = 0;\n }\n\n clear(): void {\n this.updateValue(null);\n this.focusCard();\n }\n\n toggle(): void {\n this.open = !this.open;\n }\n\n writeValue(value: TuiCard | null): void {\n const {bin} = this;\n\n super.writeValue(value);\n this.updateBin(bin);\n this.expireInert = !!this.expire && this.cardPrefilled;\n }\n\n /** Public API for manual focus management */\n focusCard(): void {\n this.inputCard?.nativeElement.focus();\n }\n\n focusExpire(): void {\n this.inputExpire?.nativeElement.focus({preventScroll: true});\n }\n\n focusCVC(): void {\n this.inputCVC?.nativeElement.focus();\n }\n\n private get cardFocused(): boolean {\n return !!this.inputCard && isNativeFocused(this.inputCard.nativeElement);\n }\n\n private get paymentSystem(): TuiPaymentSystem | null {\n return this.value && getPaymentSystem(this.value.card);\n }\n\n @tuiPure\n private isFocusable(card: string): boolean {\n return this.focusable && (this.cardValidator(card) || this.cardPrefilled);\n }\n\n private updateBin(oldBin: string | null): void {\n const {bin} = this;\n\n if (bin !== oldBin && !this.cardPrefilled) {\n this.binChange.emit(bin);\n }\n }\n\n private updateProperty(propValue: string, propName: 'card' | 'expire' | 'cvc'): void {\n const {card, expire, cvc} = this.value || STUB;\n const newValue: TuiCard = {\n card,\n expire,\n cvc,\n };\n\n newValue[propName] = propValue;\n\n if (!newValue.expire && !newValue.cvc && !newValue.card) {\n this.updateValue(null);\n } else {\n this.updateValue(newValue);\n }\n }\n\n private focusInput(): void {\n const element =\n (this.cardFocusable && this.inputCard?.nativeElement) ||\n (this.expireFocusable && this.inputExpire?.nativeElement) ||\n this.inputCVC?.nativeElement;\n\n element?.focus();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFormatCardModule} from '@taiga-ui/addon-commerce/pipes';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownModule, TuiSvgModule, TuiWrapperModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCardGroupedComponent} from './input-card-grouped.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TextMaskModule,\n TuiFocusableModule,\n TuiSvgModule,\n TuiWrapperModule,\n TuiHoveredModule,\n TuiActiveZoneModule,\n TuiInputModeModule,\n TuiMapperPipeModule,\n TuiDropdownModule,\n TuiPreventDefaultModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFormatCardModule,\n ],\n declarations: [TuiInputCardGroupedComponent],\n exports: [TuiInputCardGroupedComponent],\n})\nexport class TuiInputCardGroupedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ var icons = (_a = {},
16
16
  _a["mastercard" /* Mastercard */] = 'tuiIconMastercard',
17
17
  _a["maestro" /* Maestro */] = 'tuiIconMaestro',
18
18
  _a);
19
+ // eslint-disable-next-line @typescript-eslint/naming-convention
19
20
  function cardTextfieldControllerFactory(directive) {
20
21
  directive = directive || new TuiTextfieldExampleTextDirective();
21
22
  directive.exampleText = '0000 0000 0000 0000';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-card.js","sources":["ng://@taiga-ui/addon-commerce/components/input-card/input-card.component.ts","ng://@taiga-ui/addon-commerce/components/input-card/input-card.module.ts","ng://@taiga-ui/addon-commerce/components/input-card/taiga-ui-addon-commerce-components-input-card.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TUI_CARD_MASK} from '@taiga-ui/addon-commerce/constants';\nimport {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\nimport {getPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldExampleTextDirective,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\nconst icons = {\n [TuiPaymentSystem.Mir]: 'tuiIconMir',\n [TuiPaymentSystem.Visa]: 'tuiIconVisa',\n [TuiPaymentSystem.Electron]: 'tuiIconElectron',\n [TuiPaymentSystem.Mastercard]: 'tuiIconMastercard',\n [TuiPaymentSystem.Maestro]: 'tuiIconMaestro',\n};\n\nexport function cardTextfieldControllerFactory(\n directive: TuiTextfieldExampleTextDirective | null,\n): TuiTextfieldExampleTextDirective {\n directive = directive || new TuiTextfieldExampleTextDirective();\n directive.exampleText = '0000 0000 0000 0000';\n\n return directive;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-input-card',\n templateUrl: './input-card.template.html',\n styleUrls: ['./input-card.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCardComponent),\n },\n {\n provide: TUI_TEXTFIELD_EXAMPLE_TEXT,\n deps: [[new Optional(), TuiTextfieldExampleTextDirective]],\n useFactory: cardTextfieldControllerFactory,\n },\n ],\n})\nexport class TuiInputCardComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n cardSrc: string | null = null;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Output()\n readonly binChange = new EventEmitter<string | null>();\n\n readonly textMaskOptions: TextMaskConfig = {\n mask: TUI_CARD_MASK,\n guide: false,\n pipe: conformedValue => conformedValue.trim(),\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.input ? this.input.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.input && this.input.focused;\n }\n\n get icon(): string | null {\n if (this.cardSrc !== null) {\n return this.cardSrc;\n }\n\n const {paymentSystem} = this;\n\n return paymentSystem ? icons[paymentSystem] : null;\n }\n\n get autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcNumber\n : TuiCreditCardAutofillName.Off;\n }\n\n get paymentSystem(): TuiPaymentSystem | null {\n return getPaymentSystem(this.value);\n }\n\n get bin(): string | null {\n return this.value.length < 6 ? null : this.value.slice(0, 6);\n }\n\n get formattedCard(): string {\n return this.value\n .split('')\n .map((char, index) => (index && index % 4 === 0 ? ` ${char}` : char))\n .join('');\n }\n\n onValueChange(value: string): void {\n const parsed = value.split(' ').join('');\n const currentBin = this.bin;\n\n this.updateValue(parsed);\n\n const newBin = this.bin;\n\n if (currentBin !== newBin) {\n this.binChange.emit(newBin);\n }\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n writeValue(value: string | null): void {\n const currentBin = this.bin;\n\n super.writeValue(value);\n\n const newBin = this.bin;\n\n if (currentBin !== newBin) {\n this.binChange.emit(newBin);\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCardComponent} from './input-card.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputCardComponent],\n exports: [TuiInputCardComponent],\n})\nexport class TuiInputCardModule {}\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.js","sources":["ng://@taiga-ui/addon-commerce/components/input-card/input-card.component.ts","ng://@taiga-ui/addon-commerce/components/input-card/input-card.module.ts","ng://@taiga-ui/addon-commerce/components/input-card/taiga-ui-addon-commerce-components-input-card.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TUI_CARD_MASK} from '@taiga-ui/addon-commerce/constants';\nimport {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\nimport {getPaymentSystem} from '@taiga-ui/addon-commerce/utils';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldExampleTextDirective,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\nconst icons = {\n [TuiPaymentSystem.Mir]: 'tuiIconMir',\n [TuiPaymentSystem.Visa]: 'tuiIconVisa',\n [TuiPaymentSystem.Electron]: 'tuiIconElectron',\n [TuiPaymentSystem.Mastercard]: 'tuiIconMastercard',\n [TuiPaymentSystem.Maestro]: 'tuiIconMaestro',\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function cardTextfieldControllerFactory(\n directive: TuiTextfieldExampleTextDirective | null,\n): TuiTextfieldExampleTextDirective {\n directive = directive || new TuiTextfieldExampleTextDirective();\n directive.exampleText = '0000 0000 0000 0000';\n\n return directive;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-input-card',\n templateUrl: './input-card.template.html',\n styleUrls: ['./input-card.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCardComponent),\n },\n {\n provide: TUI_TEXTFIELD_EXAMPLE_TEXT,\n deps: [[new Optional(), TuiTextfieldExampleTextDirective]],\n useFactory: cardTextfieldControllerFactory,\n },\n ],\n})\nexport class TuiInputCardComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n cardSrc: string | null = null;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Output()\n readonly binChange = new EventEmitter<string | null>();\n\n readonly textMaskOptions: TextMaskConfig = {\n mask: TUI_CARD_MASK,\n guide: false,\n pipe: conformedValue => conformedValue.trim(),\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.input ? this.input.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return !!this.input && this.input.focused;\n }\n\n get icon(): string | null {\n if (this.cardSrc !== null) {\n return this.cardSrc;\n }\n\n const {paymentSystem} = this;\n\n return paymentSystem ? icons[paymentSystem] : null;\n }\n\n get autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcNumber\n : TuiCreditCardAutofillName.Off;\n }\n\n get paymentSystem(): TuiPaymentSystem | null {\n return getPaymentSystem(this.value);\n }\n\n get bin(): string | null {\n return this.value.length < 6 ? null : this.value.slice(0, 6);\n }\n\n get formattedCard(): string {\n return this.value\n .split('')\n .map((char, index) => (index && index % 4 === 0 ? ` ${char}` : char))\n .join('');\n }\n\n onValueChange(value: string): void {\n const parsed = value.split(' ').join('');\n const currentBin = this.bin;\n\n this.updateValue(parsed);\n\n const newBin = this.bin;\n\n if (currentBin !== newBin) {\n this.binChange.emit(newBin);\n }\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n writeValue(value: string | null): void {\n const currentBin = this.bin;\n\n super.writeValue(value);\n\n const newBin = this.bin;\n\n if (currentBin !== newBin) {\n this.binChange.emit(newBin);\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCardComponent} from './input-card.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputCardComponent],\n exports: [TuiInputCardComponent],\n})\nexport class TuiInputCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AA+BA,IAAM,KAAK;IACP,sBAAwB,YAAY;IACpC,wBAAyB,aAAa;IACtC,gCAA6B,iBAAiB;IAC9C,oCAA+B,mBAAmB;IAClD,8BAA4B,gBAAgB;OAC/C,CAAC;AAEF;SACgB,8BAA8B,CAC1C,SAAkD;IAElD,SAAS,GAAG,SAAS,IAAI,IAAI,gCAAgC,EAAE,CAAC;IAChE,SAAS,CAAC,WAAW,GAAG,qBAAqB,CAAC;IAE9C,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;IAmBY,yCAA0B;IAuBlC,+BAII,OAAyB,EACE,iBAAoC;QALnE,YAOI,kBAAM,OAAO,EAAE,iBAAiB,CAAC,SACpC;QAvBD,aAAO,GAAkB,IAAI,CAAC;QAI9B,yBAAmB,GAAG,KAAK,CAAC;QAGnB,eAAS,GAAG,IAAI,YAAY,EAAiB,CAAC;QAE9C,qBAAe,GAAmB;YACvC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,UAAA,cAAc,IAAI,OAAA,cAAc,CAAC,IAAI,EAAE,GAAA;SAChD,CAAC;;KAUD;8BAhCQ,qBAAqB;IAkC9B,sBAAI,yDAAsB;aAA1B;YACI,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC;SAChE;;;OAAA;IAED,sBAAI,0CAAO;aAAX;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAC7C;;;OAAA;IAED,sBAAI,uCAAI;aAAR;YACI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACvB,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;YAEM,IAAA,kCAAa,CAAS;YAE7B,OAAO,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;SACtD;;;OAAA;IAED,sBAAI,+CAAY;aAAhB;YACI,OAAO,IAAI,CAAC,mBAAmB;;kCAEK;SACvC;;;OAAA;IAED,sBAAI,gDAAa;aAAjB;YACI,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;;;OAAA;IAED,sBAAI,sCAAG;aAAP;YACI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAChE;;;OAAA;IAED,sBAAI,gDAAa;aAAjB;YACI,OAAO,IAAI,CAAC,KAAK;iBACZ,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,QAAC,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,MAAI,IAAM,GAAG,IAAI,IAAC,CAAC;iBACpE,IAAI,CAAC,EAAE,CAAC,CAAC;SACjB;;;OAAA;IAED,6CAAa,GAAb,UAAc,KAAa;QACvB,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QAExB,IAAI,UAAU,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/B;KACJ;IAED,yCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,yCAAS,GAAT,UAAU,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,0CAAU,GAAV,UAAW,KAAoB;QAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,iBAAM,UAAU,YAAC,KAAK,CAAC,CAAC;QAExB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QAExB,IAAI,UAAU,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/B;KACJ;IAES,gDAAgB,GAA1B;QACI,OAAO,EAAE,CAAC;KACb;;;gBAhFY,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;gBAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;IAxB7B;QADC,SAAS,CAAC,8BAA8B,CAAC;wDACc;IAIxD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACa;IAI9B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;sEACW;IAG5B;QADC,MAAM,EAAE;4DAC8C;IAhB9C,qBAAqB;QAjBjC,SAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,uuBAAyC;YAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,uBAAqB,GAAA,CAAC;iBACvD;gBACD;oBACI,OAAO,EAAE,0BAA0B;oBACnC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,gCAAgC,CAAC,CAAC;oBAC1D,UAAU,EAAE,8BAA8B;iBAC7C;aACJ;;SACJ,CAAC;QA0BO,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,IAAI,EAAE,CAAA;QACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OA7BrB,qBAAqB,CA6GjC;IAAD,4BAAC;CAAA,CA5GW,kBAAkB;;;ICnD9B;KAAkC;IAArB,kBAAkB;QAV9B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,cAAc;gBACd,2BAA2B;gBAC3B,4BAA4B;gBAC5B,sBAAsB;aACzB;YACD,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;SACnC,CAAC;OACW,kBAAkB,CAAG;IAAD,yBAAC;CAAlC;;ACjBA;;;;;;"}
@@ -118,7 +118,7 @@ var TuiMoneyComponent = /** @class */ (function () {
118
118
  TuiMoneyComponent = __decorate([
119
119
  Component({
120
120
  selector: 'tui-money',
121
- template: "<span\n automation-id=\"tui-money__sign\"\n [textContent]=\"value | tuiSignSymbol: sign\"\n></span>\n<span\n automation-id=\"tui-money__integer-part\"\n [textContent]=\"value | tuiIntegerPart: precision\"\n></span>\n<span class=\"t-lighter\">\n <span\n automation-id=\"tui-money__fraction-part\"\n [textContent]=\"value | tuiFractionPart: decimal: precision\"\n ></span>\n <span\n automation-id=\"tui-money__currency\"\n class=\"t-currency\"\n [textContent]=\"currency | tuiCurrency\"\n ></span>\n</span>\n",
121
+ template: "<span\n automation-id=\"tui-money__sign\"\n [textContent]=\"value | tuiSignSymbol: sign\"\n></span>\n<span\n automation-id=\"tui-money__integer-part\"\n [textContent]=\"value | tuiIntegerPart: precision\"\n></span>\n<span class=\"t-lighter\">\n <span\n automation-id=\"tui-money__fraction-part\"\n [textContent]=\"value | tuiFractionPart: decimal:precision\"\n ></span>\n <span\n automation-id=\"tui-money__currency\"\n class=\"t-currency\"\n [textContent]=\"currency | tuiCurrency\"\n ></span>\n</span>\n",
122
122
  changeDetection: ChangeDetectionStrategy.OnPush,
123
123
  styles: [":host{white-space:nowrap}:host._red{color:var(--tui-negative)}:host._green{color:var(--tui-positive)}:host:not(._inherit-color) .t-lighter{opacity:var(--tui-disabled-opacity)}.t-currency:not(:empty){padding-left:.2rem}"]
124
124
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-money.js","sources":["ng://@taiga-ui/addon-commerce/components/money/money-options.ts","ng://@taiga-ui/addon-commerce/components/money/utils/format-sign-symbol.ts","ng://@taiga-ui/addon-commerce/components/money/money.component.ts","ng://@taiga-ui/addon-commerce/components/money/utils/format-fraction-part.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/fraction-part.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/integer-part.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/sign-symbol.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/money.module.ts","ng://@taiga-ui/addon-commerce/components/money/taiga-ui-addon-commerce-components-money.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiCurrency} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\nimport {TuiDecimalT} from '@taiga-ui/core';\n\nexport interface TuiMoneyOptions {\n readonly decimal: TuiDecimalT;\n readonly currency: TuiCurrencyVariants;\n readonly sign: TuiMoneySignT;\n readonly colored: boolean;\n readonly precision: number;\n readonly singleColor: boolean;\n}\n\nexport const TUI_MONEY_DEFAULT_DEFAULT_OPTIONS: TuiMoneyOptions = {\n decimal: 'not-zero',\n currency: TuiCurrency.Ruble,\n sign: 'negative-only',\n colored: false,\n precision: 2,\n singleColor: false,\n};\n\nexport const TUI_MONEY_OPTIONS = new InjectionToken<TuiMoneyOptions>(\n 'Default parameters for money component',\n {\n factory: () => TUI_MONEY_DEFAULT_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiMoneyOptionsProvider: (\n options: Partial<TuiMoneyOptions>,\n) => ValueProvider = (options: Partial<TuiMoneyOptions>) => ({\n provide: TUI_MONEY_OPTIONS,\n useValue: {...TUI_MONEY_DEFAULT_DEFAULT_OPTIONS, ...options},\n});\n","import {TuiMoneySignSymbol, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\nimport {CHAR_EN_DASH, CHAR_PLUS} from '@taiga-ui/cdk';\n\nexport function tuiFormatSignSymbol(\n value: number,\n sign: TuiMoneySignT,\n): TuiMoneySignSymbol {\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 /** TODO(nsbarsukov): investigate if it should be replaced by {@link CHAR_HYPHEN} */\n return CHAR_EN_DASH;\n }\n\n return CHAR_PLUS;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {\n TuiCurrencyVariants,\n TuiMoneySignSymbol,\n TuiMoneySignT,\n} from '@taiga-ui/addon-commerce/types';\nimport {CHAR_EN_DASH, CHAR_PLUS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiDecimalT} from '@taiga-ui/core';\n\nimport {TUI_MONEY_OPTIONS, TuiMoneyOptions} from './money-options';\nimport {tuiFormatSignSymbol} from './utils/format-sign-symbol';\n\n@Component({\n selector: 'tui-money',\n templateUrl: './money.template.html',\n styleUrls: ['./money.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMoneyComponent {\n @Input()\n @tuiDefaultProp()\n value = NaN;\n\n @Input()\n @tuiDefaultProp()\n decimal: TuiDecimalT = this.options.decimal;\n\n @Input()\n @tuiDefaultProp()\n currency: TuiCurrencyVariants = this.options.currency;\n\n @Input()\n @tuiDefaultProp()\n sign: TuiMoneySignT = this.options.sign;\n\n @Input()\n @tuiDefaultProp()\n colored = this.options.colored;\n\n @Input()\n @tuiDefaultProp()\n precision = this.options.precision;\n\n @Input()\n @tuiDefaultProp()\n singleColor = this.options.singleColor;\n\n get signSymbol(): TuiMoneySignSymbol {\n return tuiFormatSignSymbol(this.value, this.sign);\n }\n\n @HostBinding('class._red')\n get red(): boolean {\n return (\n this.colored &&\n (this.signSymbol === CHAR_EN_DASH ||\n (this.value < 0 && this.sign !== 'force-positive'))\n );\n }\n\n @HostBinding('class._green')\n get green(): boolean {\n return (\n this.colored &&\n (this.signSymbol === CHAR_PLUS ||\n (this.value > 0 && this.sign !== 'force-negative'))\n );\n }\n\n @HostBinding('class._inherit-color')\n get inheritColor(): boolean {\n return this.singleColor || (this.value === 0 && this.colored);\n }\n\n constructor(@Inject(TUI_MONEY_OPTIONS) private readonly options: TuiMoneyOptions) {}\n}\n","import {TuiDecimalT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\nexport function tuiFormatFractionPart(options: {\n value: number;\n decimal: TuiDecimalT;\n precision: number;\n numberFormat: TuiNumberFormatSettings;\n}): string {\n const {value, decimal, numberFormat, precision} = options;\n const fraction = value.toFixed(precision).split('.')[1];\n const shouldShow =\n decimal !== 'never' && (decimal === 'always' || !!parseInt(fraction, 10));\n\n return shouldShow ? `${numberFormat.decimalSeparator}${fraction}` : '';\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TUI_NUMBER_FORMAT, TuiDecimalT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\nimport {tuiFormatFractionPart} from '../utils/format-fraction-part';\n\n@Pipe({name: 'tuiFractionPart'})\nexport class TuiFractionPartPipe implements PipeTransform {\n constructor(\n @Inject(TUI_NUMBER_FORMAT) private readonly numberFormat: TuiNumberFormatSettings,\n ) {}\n\n transform(value: number, decimal: TuiDecimalT, precision: number): string {\n return tuiFormatFractionPart({\n value,\n decimal,\n precision,\n numberFormat: this.numberFormat,\n });\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {formatNumber, TUI_NUMBER_FORMAT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\n@Pipe({name: 'tuiIntegerPart'})\nexport class TuiIntegerPartPipe implements PipeTransform {\n constructor(\n @Inject(TUI_NUMBER_FORMAT) private readonly numberFormat: TuiNumberFormatSettings,\n ) {}\n\n transform(value: number, precision: number): string {\n return formatNumber(\n Math.floor(Math.abs(Number(value.toFixed(precision)))),\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {TuiMoneySignSymbol, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\n\nimport {tuiFormatSignSymbol} from '../utils/format-sign-symbol';\n\n@Pipe({name: 'tuiSignSymbol'})\nexport class TuiSignSymbolPipe implements PipeTransform {\n transform(value: number, sign: TuiMoneySignT): TuiMoneySignSymbol {\n return tuiFormatSignSymbol(value, sign);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiCurrencyPipeModule} from '@taiga-ui/addon-commerce/pipes';\n\nimport {TuiMoneyComponent} from './money.component';\nimport {TuiFractionPartPipe} from './pipes/fraction-part.pipe';\nimport {TuiIntegerPartPipe} from './pipes/integer-part.pipe';\nimport {TuiSignSymbolPipe} from './pipes/sign-symbol.pipe';\n\n@NgModule({\n imports: [CommonModule, TuiCurrencyPipeModule],\n declarations: [\n TuiMoneyComponent,\n TuiFractionPartPipe,\n TuiIntegerPartPipe,\n TuiSignSymbolPipe,\n ],\n exports: [TuiMoneyComponent],\n})\nexport class TuiMoneyModule {}\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-money.js","sources":["ng://@taiga-ui/addon-commerce/components/money/money-options.ts","ng://@taiga-ui/addon-commerce/components/money/utils/format-sign-symbol.ts","ng://@taiga-ui/addon-commerce/components/money/money.component.ts","ng://@taiga-ui/addon-commerce/components/money/utils/format-fraction-part.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/fraction-part.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/integer-part.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/pipes/sign-symbol.pipe.ts","ng://@taiga-ui/addon-commerce/components/money/money.module.ts","ng://@taiga-ui/addon-commerce/components/money/taiga-ui-addon-commerce-components-money.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiCurrency} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\nimport {TuiDecimalT} from '@taiga-ui/core';\n\nexport interface TuiMoneyOptions {\n readonly decimal: TuiDecimalT;\n readonly currency: TuiCurrencyVariants;\n readonly sign: TuiMoneySignT;\n readonly colored: boolean;\n readonly precision: number;\n readonly singleColor: boolean;\n}\n\nexport const TUI_MONEY_DEFAULT_DEFAULT_OPTIONS: TuiMoneyOptions = {\n decimal: 'not-zero',\n currency: TuiCurrency.Ruble,\n sign: 'negative-only',\n colored: false,\n precision: 2,\n singleColor: false,\n};\n\nexport const TUI_MONEY_OPTIONS = new InjectionToken<TuiMoneyOptions>(\n 'Default parameters for money component',\n {\n factory: () => TUI_MONEY_DEFAULT_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiMoneyOptionsProvider: (\n options: Partial<TuiMoneyOptions>,\n) => ValueProvider = (options: Partial<TuiMoneyOptions>) => ({\n provide: TUI_MONEY_OPTIONS,\n useValue: {...TUI_MONEY_DEFAULT_DEFAULT_OPTIONS, ...options},\n});\n","import {TuiMoneySignSymbol, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\nimport {CHAR_EN_DASH, CHAR_PLUS} from '@taiga-ui/cdk';\n\nexport function tuiFormatSignSymbol(\n value: number,\n sign: TuiMoneySignT,\n): TuiMoneySignSymbol {\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 /** TODO(nsbarsukov): investigate if it should be replaced by {@link CHAR_HYPHEN} */\n return CHAR_EN_DASH;\n }\n\n return CHAR_PLUS;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {\n TuiCurrencyVariants,\n TuiMoneySignSymbol,\n TuiMoneySignT,\n} from '@taiga-ui/addon-commerce/types';\nimport {CHAR_EN_DASH, CHAR_PLUS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiDecimalT} from '@taiga-ui/core';\n\nimport {TUI_MONEY_OPTIONS, TuiMoneyOptions} from './money-options';\nimport {tuiFormatSignSymbol} from './utils/format-sign-symbol';\n\n@Component({\n selector: 'tui-money',\n templateUrl: './money.template.html',\n styleUrls: ['./money.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMoneyComponent {\n @Input()\n @tuiDefaultProp()\n value = NaN;\n\n @Input()\n @tuiDefaultProp()\n decimal: TuiDecimalT = this.options.decimal;\n\n @Input()\n @tuiDefaultProp()\n currency: TuiCurrencyVariants = this.options.currency;\n\n @Input()\n @tuiDefaultProp()\n sign: TuiMoneySignT = this.options.sign;\n\n @Input()\n @tuiDefaultProp()\n colored = this.options.colored;\n\n @Input()\n @tuiDefaultProp()\n precision = this.options.precision;\n\n @Input()\n @tuiDefaultProp()\n singleColor = this.options.singleColor;\n\n get signSymbol(): TuiMoneySignSymbol {\n return tuiFormatSignSymbol(this.value, this.sign);\n }\n\n @HostBinding('class._red')\n get red(): boolean {\n return (\n this.colored &&\n (this.signSymbol === CHAR_EN_DASH ||\n (this.value < 0 && this.sign !== 'force-positive'))\n );\n }\n\n @HostBinding('class._green')\n get green(): boolean {\n return (\n this.colored &&\n (this.signSymbol === CHAR_PLUS ||\n (this.value > 0 && this.sign !== 'force-negative'))\n );\n }\n\n @HostBinding('class._inherit-color')\n get inheritColor(): boolean {\n return this.singleColor || (this.value === 0 && this.colored);\n }\n\n constructor(@Inject(TUI_MONEY_OPTIONS) private readonly options: TuiMoneyOptions) {}\n}\n","import {TuiDecimalT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\nexport function tuiFormatFractionPart(options: {\n value: number;\n decimal: TuiDecimalT;\n precision: number;\n numberFormat: TuiNumberFormatSettings;\n}): string {\n const {value, decimal, numberFormat, precision} = options;\n const fraction = value.toFixed(precision).split('.')[1];\n const shouldShow =\n decimal !== 'never' && (decimal === 'always' || !!parseInt(fraction, 10));\n\n return shouldShow ? `${numberFormat.decimalSeparator}${fraction}` : '';\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TUI_NUMBER_FORMAT, TuiDecimalT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\nimport {tuiFormatFractionPart} from '../utils/format-fraction-part';\n\n@Pipe({name: 'tuiFractionPart'})\nexport class TuiFractionPartPipe implements PipeTransform {\n constructor(\n @Inject(TUI_NUMBER_FORMAT) private readonly numberFormat: TuiNumberFormatSettings,\n ) {}\n\n transform(value: number, decimal: TuiDecimalT, precision: number): string {\n return tuiFormatFractionPart({\n value,\n decimal,\n precision,\n numberFormat: this.numberFormat,\n });\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {formatNumber, TUI_NUMBER_FORMAT, TuiNumberFormatSettings} from '@taiga-ui/core';\n\n@Pipe({name: 'tuiIntegerPart'})\nexport class TuiIntegerPartPipe implements PipeTransform {\n constructor(\n @Inject(TUI_NUMBER_FORMAT) private readonly numberFormat: TuiNumberFormatSettings,\n ) {}\n\n transform(value: number, precision: number): string {\n return formatNumber(\n Math.floor(Math.abs(Number(value.toFixed(precision)))),\n null,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {TuiMoneySignSymbol, TuiMoneySignT} from '@taiga-ui/addon-commerce/types';\n\nimport {tuiFormatSignSymbol} from '../utils/format-sign-symbol';\n\n@Pipe({name: 'tuiSignSymbol'})\nexport class TuiSignSymbolPipe implements PipeTransform {\n transform(value: number, sign: TuiMoneySignT): TuiMoneySignSymbol {\n return tuiFormatSignSymbol(value, sign);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiCurrencyPipeModule} from '@taiga-ui/addon-commerce/pipes';\n\nimport {TuiMoneyComponent} from './money.component';\nimport {TuiFractionPartPipe} from './pipes/fraction-part.pipe';\nimport {TuiIntegerPartPipe} from './pipes/integer-part.pipe';\nimport {TuiSignSymbolPipe} from './pipes/sign-symbol.pipe';\n\n@NgModule({\n imports: [CommonModule, TuiCurrencyPipeModule],\n declarations: [\n TuiMoneyComponent,\n TuiFractionPartPipe,\n TuiIntegerPartPipe,\n TuiSignSymbolPipe,\n ],\n exports: [TuiMoneyComponent],\n})\nexport class TuiMoneyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,10 @@ function tuiCreateAutoCorrectedExpirePipe() {
43
43
  };
44
44
  }
45
45
 
46
+ /**
47
+ * @deprecated: use {@link tuiGetCurrencySymbol} instead
48
+ */
49
+ // eslint-disable-next-line @typescript-eslint/naming-convention
46
50
  function getCurrencySymbol(currency) {
47
51
  switch (currency) {
48
52
  case "RUB" /* Ruble */:
@@ -108,17 +112,27 @@ function getCurrencySymbol(currency) {
108
112
  return null;
109
113
  }
110
114
  }
115
+ var tuiGetCurrencySymbol = getCurrencySymbol;
111
116
 
117
+ /**
118
+ * @deprecated: use {@link tuiFormatCurrency} instead
119
+ */
120
+ // eslint-disable-next-line @typescript-eslint/naming-convention
112
121
  function formatCurrency(currency) {
113
122
  var stringifiedCurrency = stringifyCurrency(currency);
114
123
  return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;
115
124
  }
125
+ var tuiFormatCurrency = formatCurrency;
116
126
  function stringifyCurrency(currency) {
117
127
  return currency === null || typeof currency === 'string'
118
128
  ? currency || ''
119
129
  : padStart(String(currency), 3, '0');
120
130
  }
121
131
 
132
+ /**
133
+ * @deprecated: use {@link tuiGetPaymentSystem} instead
134
+ */
135
+ // eslint-disable-next-line @typescript-eslint/naming-convention
122
136
  function getPaymentSystem(cardNumber) {
123
137
  if (cardNumber === '') {
124
138
  return null;
@@ -144,6 +158,11 @@ function getPaymentSystem(cardNumber) {
144
158
  }
145
159
  return null;
146
160
  }
161
+ var tuiGetPaymentSystem = getPaymentSystem;
162
+ /**
163
+ * @deprecated: use {@link tuiIsMaestro} instead
164
+ */
165
+ // eslint-disable-next-line @typescript-eslint/naming-convention
147
166
  function isMaestro(three, two, one) {
148
167
  if (one === 6) {
149
168
  return true;
@@ -156,6 +175,11 @@ function isMaestro(three, two, one) {
156
175
  }
157
176
  return three < 510;
158
177
  }
178
+ var tuiIsMaestro = isMaestro;
179
+ /**
180
+ * @deprecated: use {@link tuiIsMastercard} instead
181
+ */
182
+ // eslint-disable-next-line @typescript-eslint/naming-convention
159
183
  function isMastercard(four, two, one) {
160
184
  if (one === 5) {
161
185
  return true;
@@ -171,9 +195,19 @@ function isMastercard(four, two, one) {
171
195
  }
172
196
  return four > 2220 && four < 2721;
173
197
  }
198
+ var tuiIsMastercard = isMastercard;
199
+ /**
200
+ * @deprecated: use {@link tuiIsMir} instead
201
+ */
202
+ // eslint-disable-next-line @typescript-eslint/naming-convention
174
203
  function isMir(four) {
175
204
  return four > 2199 && four < 2205;
176
205
  }
206
+ var tuiIsMir = isMir;
207
+ /**
208
+ * @deprecated: use {@link tuiIsElectron} instead
209
+ */
210
+ // eslint-disable-next-line @typescript-eslint/naming-convention
177
211
  function isElectron(four) {
178
212
  switch (four) {
179
213
  case 4026:
@@ -188,13 +222,21 @@ function isElectron(four) {
188
222
  return false;
189
223
  }
190
224
  }
225
+ var tuiIsElectron = isElectron;
226
+ /**
227
+ * @deprecated: use {@link tuiIsVisa} instead
228
+ */
229
+ // eslint-disable-next-line @typescript-eslint/naming-convention
191
230
  function isVisa(one) {
192
231
  return one === 4;
193
232
  }
233
+ var tuiIsVisa = isVisa;
194
234
 
195
235
  /**
236
+ * @deprecated: use {@link tuiIsCardLengthValid} instead
196
237
  * Validates card number length using payment system dictionary
197
238
  */
239
+ // eslint-disable-next-line @typescript-eslint/naming-convention
198
240
  function isCardLengthValid(cardNumber) {
199
241
  var length = cardNumber.length;
200
242
  var paymentSystem = getPaymentSystem(cardNumber);
@@ -212,10 +254,13 @@ function isCardLengthValid(cardNumber) {
212
254
  return length > 8 && length < 20;
213
255
  }
214
256
  }
257
+ var tuiIsCardLengthValid = isCardLengthValid;
215
258
 
216
259
  /**
260
+ * @deprecated: use {@link tuiIsCardNumberValid} instead
217
261
  * Validates card number using Luhn algorithm
218
262
  */
263
+ // eslint-disable-next-line @typescript-eslint/naming-convention
219
264
  function isCardNumberValid(value) {
220
265
  var cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');
221
266
  var length = cardNumber.length;
@@ -229,7 +274,12 @@ function isCardNumberValid(value) {
229
274
  });
230
275
  return !(arr.reduce(function (a, b) { return a + b; }, 0) % 10);
231
276
  }
277
+ var tuiIsCardNumberValid = isCardNumberValid;
232
278
 
279
+ /**
280
+ * @deprecated: use {@link tuiIsExpireValid} instead
281
+ */
282
+ // eslint-disable-next-line @typescript-eslint/naming-convention
233
283
  function isExpireValid(expire) {
234
284
  var today = new Date();
235
285
  var currentMonth = today.getMonth();
@@ -238,10 +288,11 @@ function isExpireValid(expire) {
238
288
  var year = parseInt(expire.slice(-2), 0);
239
289
  return year > currentYear || (year === currentYear && month >= currentMonth);
240
290
  }
291
+ var tuiIsExpireValid = isExpireValid;
241
292
 
242
293
  /**
243
294
  * Generated bundle index. Do not edit.
244
295
  */
245
296
 
246
- export { formatCurrency, getCurrencySymbol, getPaymentSystem, isCardLengthValid, isCardNumberValid, isElectron, isExpireValid, isMaestro, isMastercard, isMir, isVisa, tuiCreateAutoCorrectedExpirePipe };
297
+ export { formatCurrency, getCurrencySymbol, getPaymentSystem, isCardLengthValid, isCardNumberValid, isElectron, isExpireValid, isMaestro, isMastercard, isMir, isVisa, tuiCreateAutoCorrectedExpirePipe, tuiFormatCurrency, tuiGetCurrencySymbol, tuiGetPaymentSystem, tuiIsCardLengthValid, tuiIsCardNumberValid, tuiIsElectron, tuiIsExpireValid, tuiIsMaestro, tuiIsMastercard, tuiIsMir, tuiIsVisa };
247
298
  //# sourceMappingURL=taiga-ui-addon-commerce-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-utils.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts","ng://@taiga-ui/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${'0'.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ''\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = '/';\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = '0';\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n default:\n return null;\n }\n}\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === 'string'\n ? currency || ''\n : padStart(String(currency), 3, '0');\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === '') {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport function isMaestro(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 isMastercard(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 isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport function isElectron(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 isVisa(one: number): boolean {\n return one === 4;\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * Validates card number length using payment system dictionary\n */\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.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/core';\n\n/**\n * Validates card number using Luhn algorithm\n */\nexport function isCardNumberValid(value: string | number): 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 = 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","export function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\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.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts","ng://@taiga-ui/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${'0'.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ''\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = '/';\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = '0';\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === 'string'\n ? currency || ''\n : padStart(String(currency), 3, '0');\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === '') {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(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 const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(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 const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(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 const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): 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 = 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\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\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": "2.52.0",
3
+ "version": "2.53.0",
4
4
  "description": "Extension package for Taiga UI related to commerce, payment systems, currencies etc.",
5
5
  "keywords": [
6
6
  "angular",
@@ -18,9 +18,9 @@
18
18
  "@angular/core": ">=9.0.0",
19
19
  "@angular/forms": ">=9.0.0",
20
20
  "@ng-web-apis/common": ">=1.12.1 < 2",
21
- "@taiga-ui/cdk": ">=2.52.0",
22
- "@taiga-ui/core": ">=2.52.0",
23
- "@taiga-ui/i18n": ">=2.52.0",
21
+ "@taiga-ui/cdk": ">=2.53.0",
22
+ "@taiga-ui/core": ">=2.53.0",
23
+ "@taiga-ui/i18n": ">=2.53.0",
24
24
  "@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
25
25
  "angular2-text-mask": ">=9.0.0",
26
26
  "rxjs": ">=6.0.0"
@@ -1,2 +1,6 @@
1
1
  import { TuiCurrencyVariants } from '@taiga-ui/addon-commerce/types';
2
+ /**
3
+ * @deprecated: use {@link tuiFormatCurrency} instead
4
+ */
2
5
  export declare function formatCurrency(currency: TuiCurrencyVariants): string;
6
+ export declare const tuiFormatCurrency: typeof formatCurrency;
@@ -1,2 +1,6 @@
1
1
  import { TuiCurrencyVariants } from '@taiga-ui/addon-commerce/types';
2
+ /**
3
+ * @deprecated: use {@link tuiGetCurrencySymbol} instead
4
+ */
2
5
  export declare function getCurrencySymbol(currency: TuiCurrencyVariants): string | null;
6
+ export declare const tuiGetCurrencySymbol: typeof getCurrencySymbol;
@@ -1,7 +1,31 @@
1
1
  import { TuiPaymentSystem } from '@taiga-ui/addon-commerce/enums';
2
+ /**
3
+ * @deprecated: use {@link tuiGetPaymentSystem} instead
4
+ */
2
5
  export declare function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null;
6
+ export declare const tuiGetPaymentSystem: typeof getPaymentSystem;
7
+ /**
8
+ * @deprecated: use {@link tuiIsMaestro} instead
9
+ */
3
10
  export declare function isMaestro(three: number, two: number, one: number): boolean;
11
+ export declare const tuiIsMaestro: typeof isMaestro;
12
+ /**
13
+ * @deprecated: use {@link tuiIsMastercard} instead
14
+ */
4
15
  export declare function isMastercard(four: number, two: number, one: number): boolean;
16
+ export declare const tuiIsMastercard: typeof isMastercard;
17
+ /**
18
+ * @deprecated: use {@link tuiIsMir} instead
19
+ */
5
20
  export declare function isMir(four: number): boolean;
21
+ export declare const tuiIsMir: typeof isMir;
22
+ /**
23
+ * @deprecated: use {@link tuiIsElectron} instead
24
+ */
6
25
  export declare function isElectron(four: number): boolean;
26
+ export declare const tuiIsElectron: typeof isElectron;
27
+ /**
28
+ * @deprecated: use {@link tuiIsVisa} instead
29
+ */
7
30
  export declare function isVisa(one: number): boolean;
31
+ export declare const tuiIsVisa: typeof isVisa;
@@ -1,4 +1,6 @@
1
1
  /**
2
+ * @deprecated: use {@link tuiIsCardLengthValid} instead
2
3
  * Validates card number length using payment system dictionary
3
4
  */
4
5
  export declare function isCardLengthValid(cardNumber: string): boolean;
6
+ export declare const tuiIsCardLengthValid: typeof isCardLengthValid;
@@ -1,4 +1,6 @@
1
1
  /**
2
+ * @deprecated: use {@link tuiIsCardNumberValid} instead
2
3
  * Validates card number using Luhn algorithm
3
4
  */
4
5
  export declare function isCardNumberValid(value: string | number): boolean;
6
+ export declare const tuiIsCardNumberValid: typeof isCardNumberValid;
@@ -1 +1,5 @@
1
+ /**
2
+ * @deprecated: use {@link tuiIsExpireValid} instead
3
+ */
1
4
  export declare function isExpireValid(expire: string): boolean;
5
+ export declare const tuiIsExpireValid: typeof isExpireValid;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"tuiCreateAutoCorrectedExpirePipe":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":11,"module":"./create-auto-corrected-expire-pipe"}},"formatCurrency":{"__symbolic":"function"},"getCurrencySymbol":{"__symbolic":"function"},"getPaymentSystem":{"__symbolic":"function"},"isMaestro":{"__symbolic":"function"},"isMastercard":{"__symbolic":"function"},"isMir":{"__symbolic":"function","parameters":["four"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":">","left":{"__symbolic":"reference","name":"four"},"right":2199},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"reference","name":"four"},"right":2205}}},"isElectron":{"__symbolic":"function"},"isVisa":{"__symbolic":"function","parameters":["one"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"one"},"right":4}},"isCardLengthValid":{"__symbolic":"function"},"isCardNumberValid":{"__symbolic":"function"},"isExpireValid":{"__symbolic":"function"}},"origins":{"tuiCreateAutoCorrectedExpirePipe":"./create-auto-corrected-expire-pipe","formatCurrency":"./format-currency","getCurrencySymbol":"./get-currency-symbol","getPaymentSystem":"./get-payment-system","isMaestro":"./get-payment-system","isMastercard":"./get-payment-system","isMir":"./get-payment-system","isElectron":"./get-payment-system","isVisa":"./get-payment-system","isCardLengthValid":"./is-card-length-valid","isCardNumberValid":"./is-card-number-valid","isExpireValid":"./is-expire-valid"},"importAs":"@taiga-ui/addon-commerce/utils"}
1
+ {"__symbolic":"module","version":4,"metadata":{"tuiCreateAutoCorrectedExpirePipe":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":12,"character":11,"module":"./create-auto-corrected-expire-pipe"}},"formatCurrency":{"__symbolic":"function"},"tuiFormatCurrency":{"__symbolic":"reference","name":"formatCurrency"},"getCurrencySymbol":{"__symbolic":"function"},"tuiGetCurrencySymbol":{"__symbolic":"reference","name":"getCurrencySymbol"},"getPaymentSystem":{"__symbolic":"function"},"tuiGetPaymentSystem":{"__symbolic":"reference","name":"getPaymentSystem"},"isMaestro":{"__symbolic":"function"},"tuiIsMaestro":{"__symbolic":"reference","name":"isMaestro"},"isMastercard":{"__symbolic":"function"},"tuiIsMastercard":{"__symbolic":"reference","name":"isMastercard"},"isMir":{"__symbolic":"function","parameters":["four"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":">","left":{"__symbolic":"reference","name":"four"},"right":2199},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"reference","name":"four"},"right":2205}}},"tuiIsMir":{"__symbolic":"reference","name":"isMir"},"isElectron":{"__symbolic":"function"},"tuiIsElectron":{"__symbolic":"reference","name":"isElectron"},"isVisa":{"__symbolic":"function","parameters":["one"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"one"},"right":4}},"tuiIsVisa":{"__symbolic":"reference","name":"isVisa"},"isCardLengthValid":{"__symbolic":"function"},"tuiIsCardLengthValid":{"__symbolic":"reference","name":"isCardLengthValid"},"isCardNumberValid":{"__symbolic":"function"},"tuiIsCardNumberValid":{"__symbolic":"reference","name":"isCardNumberValid"},"isExpireValid":{"__symbolic":"function"},"tuiIsExpireValid":{"__symbolic":"reference","name":"isExpireValid"}},"origins":{"tuiCreateAutoCorrectedExpirePipe":"./create-auto-corrected-expire-pipe","formatCurrency":"./format-currency","tuiFormatCurrency":"./format-currency","getCurrencySymbol":"./get-currency-symbol","tuiGetCurrencySymbol":"./get-currency-symbol","getPaymentSystem":"./get-payment-system","tuiGetPaymentSystem":"./get-payment-system","isMaestro":"./get-payment-system","tuiIsMaestro":"./get-payment-system","isMastercard":"./get-payment-system","tuiIsMastercard":"./get-payment-system","isMir":"./get-payment-system","tuiIsMir":"./get-payment-system","isElectron":"./get-payment-system","tuiIsElectron":"./get-payment-system","isVisa":"./get-payment-system","tuiIsVisa":"./get-payment-system","isCardLengthValid":"./is-card-length-valid","tuiIsCardLengthValid":"./is-card-length-valid","isCardNumberValid":"./is-card-number-valid","tuiIsCardNumberValid":"./is-card-number-valid","isExpireValid":"./is-expire-valid","tuiIsExpireValid":"./is-expire-valid"},"importAs":"@taiga-ui/addon-commerce/utils"}