@taiga-ui/addon-commerce 2.55.0 → 2.56.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 (140) hide show
  1. package/bundles/taiga-ui-addon-commerce-components-card.umd.js +14 -14
  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 +36 -36
  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 +11 -11
  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-input-cvc.umd.js +5 -5
  11. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js.map +1 -1
  12. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js +4 -4
  14. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-addon-commerce-components-money.umd.js +18 -18
  17. package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
  18. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-addon-commerce-constants.umd.js +30 -30
  20. package/bundles/taiga-ui-addon-commerce-constants.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-commerce-constants.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-addon-commerce-enums.umd.js.map +1 -1
  23. package/bundles/taiga-ui-addon-commerce-enums.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-addon-commerce-pipes.umd.js +6 -6
  25. package/bundles/taiga-ui-addon-commerce-pipes.umd.js.map +1 -1
  26. package/bundles/taiga-ui-addon-commerce-pipes.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-addon-commerce-tokens.umd.js +4 -4
  28. package/bundles/taiga-ui-addon-commerce-tokens.umd.js.map +1 -1
  29. package/bundles/taiga-ui-addon-commerce-tokens.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-addon-commerce-utils.umd.js +30 -30
  31. package/bundles/taiga-ui-addon-commerce-utils.umd.js.map +1 -1
  32. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-addon-commerce-validators.umd.js +2 -2
  34. package/bundles/taiga-ui-addon-commerce-validators.umd.js.map +1 -1
  35. package/bundles/taiga-ui-addon-commerce-validators.umd.min.js.map +1 -1
  36. package/esm2015/components/card/card.component.js +15 -15
  37. package/esm2015/components/input-card/input-card.component.js +12 -12
  38. package/esm2015/components/input-card-grouped/input-card-grouped.component.js +35 -35
  39. package/esm2015/components/input-card-grouped/input-card-grouped.providers.js +3 -3
  40. package/esm2015/components/input-cvc/input-cvc.component.js +6 -6
  41. package/esm2015/components/input-expire/input-expire.component.js +5 -5
  42. package/esm2015/components/money/money-options.js +4 -4
  43. package/esm2015/components/money/money.component.js +7 -7
  44. package/esm2015/components/money/pipes/fraction-part.pipe.js +2 -2
  45. package/esm2015/components/money/pipes/integer-part.pipe.js +2 -2
  46. package/esm2015/components/money/pipes/sign-symbol.pipe.js +2 -2
  47. package/esm2015/components/money/utils/format-fraction-part.js +4 -4
  48. package/esm2015/components/money/utils/format-sign-symbol.js +4 -4
  49. package/esm2015/constants/card-holder-mask.js +27 -27
  50. package/esm2015/constants/card-mask.js +5 -5
  51. package/esm2015/enums/currency-code.js +1 -1
  52. package/esm2015/enums/currency.js +1 -1
  53. package/esm2015/enums/money-sign.js +1 -1
  54. package/esm2015/enums/payment-system.js +1 -1
  55. package/esm2015/pipes/currency/currency.pipe.js +2 -2
  56. package/esm2015/pipes/format-card/format-card.pipe.js +6 -6
  57. package/esm2015/tokens/i18n.js +5 -5
  58. package/esm2015/utils/create-auto-corrected-expire-pipe.js +6 -6
  59. package/esm2015/utils/format-currency.js +4 -4
  60. package/esm2015/utils/get-currency-symbol.js +20 -20
  61. package/esm2015/utils/get-payment-system.js +2 -2
  62. package/esm2015/utils/is-card-number-valid.js +3 -3
  63. package/esm2015/validators/card-expire.validator.js +2 -2
  64. package/esm2015/validators/card-number.validator.js +2 -2
  65. package/esm5/components/card/card.component.js +15 -15
  66. package/esm5/components/input-card/input-card.component.js +12 -12
  67. package/esm5/components/input-card-grouped/input-card-grouped.component.js +35 -35
  68. package/esm5/components/input-card-grouped/input-card-grouped.providers.js +3 -3
  69. package/esm5/components/input-cvc/input-cvc.component.js +6 -6
  70. package/esm5/components/input-expire/input-expire.component.js +5 -5
  71. package/esm5/components/money/money-options.js +4 -4
  72. package/esm5/components/money/money.component.js +7 -7
  73. package/esm5/components/money/pipes/fraction-part.pipe.js +2 -2
  74. package/esm5/components/money/pipes/integer-part.pipe.js +2 -2
  75. package/esm5/components/money/pipes/sign-symbol.pipe.js +2 -2
  76. package/esm5/components/money/utils/format-fraction-part.js +4 -4
  77. package/esm5/components/money/utils/format-sign-symbol.js +4 -4
  78. package/esm5/constants/card-holder-mask.js +27 -27
  79. package/esm5/constants/card-mask.js +5 -5
  80. package/esm5/enums/currency-code.js +1 -1
  81. package/esm5/enums/currency.js +1 -1
  82. package/esm5/enums/money-sign.js +1 -1
  83. package/esm5/enums/payment-system.js +1 -1
  84. package/esm5/pipes/currency/currency.pipe.js +2 -2
  85. package/esm5/pipes/format-card/format-card.pipe.js +6 -6
  86. package/esm5/tokens/i18n.js +5 -5
  87. package/esm5/utils/create-auto-corrected-expire-pipe.js +6 -6
  88. package/esm5/utils/format-currency.js +4 -4
  89. package/esm5/utils/get-currency-symbol.js +20 -20
  90. package/esm5/utils/get-payment-system.js +2 -2
  91. package/esm5/utils/is-card-number-valid.js +3 -3
  92. package/esm5/validators/card-expire.validator.js +2 -2
  93. package/esm5/validators/card-number.validator.js +2 -2
  94. package/fesm2015/taiga-ui-addon-commerce-components-card.js +14 -14
  95. package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
  96. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +36 -36
  97. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  98. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +11 -11
  99. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  100. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
  101. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  102. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js +4 -4
  103. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  104. package/fesm2015/taiga-ui-addon-commerce-components-money.js +18 -18
  105. package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
  106. package/fesm2015/taiga-ui-addon-commerce-constants.js +30 -30
  107. package/fesm2015/taiga-ui-addon-commerce-constants.js.map +1 -1
  108. package/fesm2015/taiga-ui-addon-commerce-enums.js.map +1 -1
  109. package/fesm2015/taiga-ui-addon-commerce-pipes.js +6 -6
  110. package/fesm2015/taiga-ui-addon-commerce-pipes.js.map +1 -1
  111. package/fesm2015/taiga-ui-addon-commerce-tokens.js +4 -4
  112. package/fesm2015/taiga-ui-addon-commerce-tokens.js.map +1 -1
  113. package/fesm2015/taiga-ui-addon-commerce-utils.js +30 -30
  114. package/fesm2015/taiga-ui-addon-commerce-utils.js.map +1 -1
  115. package/fesm2015/taiga-ui-addon-commerce-validators.js +2 -2
  116. package/fesm2015/taiga-ui-addon-commerce-validators.js.map +1 -1
  117. package/fesm5/taiga-ui-addon-commerce-components-card.js +14 -14
  118. package/fesm5/taiga-ui-addon-commerce-components-card.js.map +1 -1
  119. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js +36 -36
  120. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  121. package/fesm5/taiga-ui-addon-commerce-components-input-card.js +11 -11
  122. package/fesm5/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  123. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
  124. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  125. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js +4 -4
  126. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  127. package/fesm5/taiga-ui-addon-commerce-components-money.js +18 -18
  128. package/fesm5/taiga-ui-addon-commerce-components-money.js.map +1 -1
  129. package/fesm5/taiga-ui-addon-commerce-constants.js +30 -30
  130. package/fesm5/taiga-ui-addon-commerce-constants.js.map +1 -1
  131. package/fesm5/taiga-ui-addon-commerce-enums.js.map +1 -1
  132. package/fesm5/taiga-ui-addon-commerce-pipes.js +6 -6
  133. package/fesm5/taiga-ui-addon-commerce-pipes.js.map +1 -1
  134. package/fesm5/taiga-ui-addon-commerce-tokens.js +4 -4
  135. package/fesm5/taiga-ui-addon-commerce-tokens.js.map +1 -1
  136. package/fesm5/taiga-ui-addon-commerce-utils.js +30 -30
  137. package/fesm5/taiga-ui-addon-commerce-utils.js.map +1 -1
  138. package/fesm5/taiga-ui-addon-commerce-validators.js +2 -2
  139. package/fesm5/taiga-ui-addon-commerce-validators.js.map +1 -1
  140. package/package.json +4 -4
@@ -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\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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"}
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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"}
@@ -10,16 +10,16 @@ import { TextMaskModule } from 'angular2-text-mask';
10
10
 
11
11
  var TuiInputCardComponent_1;
12
12
  const icons = {
13
- ["mir" /* Mir */]: 'tuiIconMir',
14
- ["visa" /* Visa */]: 'tuiIconVisa',
15
- ["electron" /* Electron */]: 'tuiIconElectron',
16
- ["mastercard" /* Mastercard */]: 'tuiIconMastercard',
17
- ["maestro" /* Maestro */]: 'tuiIconMaestro',
13
+ ["mir" /* Mir */]: `tuiIconMir`,
14
+ ["visa" /* Visa */]: `tuiIconVisa`,
15
+ ["electron" /* Electron */]: `tuiIconElectron`,
16
+ ["mastercard" /* Mastercard */]: `tuiIconMastercard`,
17
+ ["maestro" /* Maestro */]: `tuiIconMaestro`,
18
18
  };
19
19
  // eslint-disable-next-line @typescript-eslint/naming-convention
20
20
  function cardTextfieldControllerFactory(directive) {
21
21
  directive = directive || new TuiTextfieldExampleTextDirective();
22
- directive.exampleText = '0000 0000 0000 0000';
22
+ directive.exampleText = `0000 0000 0000 0000`;
23
23
  return directive;
24
24
  }
25
25
  // @dynamic
@@ -61,12 +61,12 @@ let TuiInputCardComponent = TuiInputCardComponent_1 = class TuiInputCardComponen
61
61
  }
62
62
  get formattedCard() {
63
63
  return this.value
64
- .split('')
64
+ .split(``)
65
65
  .map((char, index) => (index && index % 4 === 0 ? ` ${char}` : char))
66
- .join('');
66
+ .join(``);
67
67
  }
68
68
  onValueChange(value) {
69
- const parsed = value.split(' ').join('');
69
+ const parsed = value.split(` `).join(``);
70
70
  const currentBin = this.bin;
71
71
  this.updateValue(parsed);
72
72
  const newBin = this.bin;
@@ -89,7 +89,7 @@ let TuiInputCardComponent = TuiInputCardComponent_1 = class TuiInputCardComponen
89
89
  }
90
90
  }
91
91
  getFallbackValue() {
92
- return '';
92
+ return ``;
93
93
  }
94
94
  };
95
95
  TuiInputCardComponent.ctorParameters = () => [
@@ -112,7 +112,7 @@ __decorate([
112
112
  ], TuiInputCardComponent.prototype, "binChange", void 0);
113
113
  TuiInputCardComponent = TuiInputCardComponent_1 = __decorate([
114
114
  Component({
115
- selector: 'tui-input-card',
115
+ selector: `tui-input-card`,
116
116
  template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"t-input\"\n [tuiTextfieldAutocomplete]=\"autocomplete\"\n [tuiTextfieldCustomContent]=\"icon\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [invalid]=\"computedInvalid\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [pseudoFocused]=\"pseudoFocused\"\n [textMask]=\"textMaskOptions\"\n [value]=\"formattedCard\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
117
117
  changeDetection: ChangeDetectionStrategy.OnPush,
118
118
  providers: [
@@ -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\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":"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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":"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"}
@@ -12,14 +12,14 @@ let TuiInputCVCComponent = TuiInputCVCComponent_1 = class TuiInputCVCComponent e
12
12
  super(control, changeDetectorRef);
13
13
  this.textfieldLabelOutside = textfieldLabelOutside;
14
14
  this.autocompleteEnabled = false;
15
- this.exampleText = '000';
15
+ this.exampleText = `000`;
16
16
  this.textMaskOptions = {
17
17
  mask: new Array(3).fill(TUI_DIGIT_REGEXP),
18
18
  guide: false,
19
19
  };
20
20
  }
21
21
  set length(length) {
22
- this.exampleText = '0'.repeat(length);
22
+ this.exampleText = `0`.repeat(length);
23
23
  this.textMaskOptions = {
24
24
  mask: new Array(length).fill(TUI_DIGIT_REGEXP),
25
25
  guide: false,
@@ -37,7 +37,7 @@ let TuiInputCVCComponent = TuiInputCVCComponent_1 = class TuiInputCVCComponent e
37
37
  : "off" /* Off */;
38
38
  }
39
39
  get computedExampleText() {
40
- return this.textfieldLabelOutside.labelOutside ? '' : this.exampleText;
40
+ return this.textfieldLabelOutside.labelOutside ? `` : this.exampleText;
41
41
  }
42
42
  onFocused(focused) {
43
43
  this.updateFocused(focused);
@@ -50,7 +50,7 @@ let TuiInputCVCComponent = TuiInputCVCComponent_1 = class TuiInputCVCComponent e
50
50
  this.updateValue(value);
51
51
  }
52
52
  getFallbackValue() {
53
- return '';
53
+ return ``;
54
54
  }
55
55
  };
56
56
  TuiInputCVCComponent.ctorParameters = () => [
@@ -71,7 +71,7 @@ __decorate([
71
71
  ], TuiInputCVCComponent.prototype, "length", null);
72
72
  TuiInputCVCComponent = TuiInputCVCComponent_1 = __decorate([
73
73
  Component({
74
- selector: 'tui-input-cvc',
74
+ selector: `tui-input-cvc`,
75
75
  template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"t-input\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [nativeId]=\"nativeId\"\n [textMask]=\"textMaskOptions\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [pseudoFocused]=\"pseudoFocused\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (copy.prevent)=\"onCopy()\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
76
76
  changeDetection: ChangeDetectionStrategy.OnPush,
77
77
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-cvc.js","sources":["ng://@taiga-ui/addon-commerce/components/input-cvc/input-cvc.component.ts","ng://@taiga-ui/addon-commerce/components/input-cvc/input-cvc.module.ts","ng://@taiga-ui/addon-commerce/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiCodeCVCLength} from '@taiga-ui/addon-commerce/types';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DIGIT_REGEXP,\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldLabelOutsideDirective,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\n@Component({\n selector: 'tui-input-cvc',\n templateUrl: './input-cvc.template.html',\n styleUrls: ['./input-cvc.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCVCComponent),\n },\n ],\n})\nexport class TuiInputCVCComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Input()\n @tuiRequiredSetter()\n set length(length: TuiCodeCVCLength) {\n this.exampleText = '0'.repeat(length);\n this.textMaskOptions = {\n mask: new Array(length).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n }\n\n exampleText = '000';\n\n textMaskOptions: TextMaskConfig = {\n mask: new Array(3).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_LABEL_OUTSIDE)\n private readonly textfieldLabelOutside: TuiTextfieldLabelOutsideDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | 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 autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcCsc\n : TuiCreditCardAutofillName.Off;\n }\n\n get computedExampleText(): string {\n return this.textfieldLabelOutside.labelOutside ? '' : this.exampleText;\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 onCopy(): void {}\n\n onValueChange(value: string): void {\n this.updateValue(value);\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHintControllerModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCVCComponent} from './input-cvc.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputCVCComponent],\n exports: [TuiInputCVCComponent],\n})\nexport class TuiInputCVCModule {}\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-cvc.js","sources":["ng://@taiga-ui/addon-commerce/components/input-cvc/input-cvc.component.ts","ng://@taiga-ui/addon-commerce/components/input-cvc/input-cvc.module.ts","ng://@taiga-ui/addon-commerce/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiCodeCVCLength} from '@taiga-ui/addon-commerce/types';\nimport {\n AbstractTuiControl,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiRequiredSetter,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DIGIT_REGEXP,\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TuiPrimitiveTextfieldComponent,\n TuiTextfieldLabelOutsideDirective,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\n@Component({\n selector: `tui-input-cvc`,\n templateUrl: `./input-cvc.template.html`,\n styleUrls: [`./input-cvc.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputCVCComponent),\n },\n ],\n})\nexport class TuiInputCVCComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n @Input()\n @tuiRequiredSetter()\n set length(length: TuiCodeCVCLength) {\n this.exampleText = `0`.repeat(length);\n this.textMaskOptions = {\n mask: new Array(length).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n }\n\n exampleText = `000`;\n\n textMaskOptions: TextMaskConfig = {\n mask: new Array(3).fill(TUI_DIGIT_REGEXP),\n guide: false,\n };\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_LABEL_OUTSIDE)\n private readonly textfieldLabelOutside: TuiTextfieldLabelOutsideDirective,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | 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 autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcCsc\n : TuiCreditCardAutofillName.Off;\n }\n\n get computedExampleText(): string {\n return this.textfieldLabelOutside.labelOutside ? `` : this.exampleText;\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 onCopy(): void {}\n\n onValueChange(value: string): void {\n this.updateValue(value);\n }\n\n protected getFallbackValue(): string {\n return ``;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHintControllerModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit';\nimport {TextMaskModule} from 'angular2-text-mask';\n\nimport {TuiInputCVCComponent} from './input-cvc.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputCVCComponent],\n exports: [TuiInputCVCComponent],\n})\nexport class TuiInputCVCModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ let TuiInputExpireComponent = TuiInputExpireComponent_1 = class TuiInputExpireCo
16
16
  mask: [
17
17
  TUI_DIGIT_REGEXP,
18
18
  TUI_DIGIT_REGEXP,
19
- '/',
19
+ `/`,
20
20
  TUI_DIGIT_REGEXP,
21
21
  TUI_DIGIT_REGEXP,
22
22
  ],
@@ -44,7 +44,7 @@ let TuiInputExpireComponent = TuiInputExpireComponent_1 = class TuiInputExpireCo
44
44
  if (parseInt(value.slice(0, 2), 10) > 12) {
45
45
  value = `12${value.slice(2)}`;
46
46
  }
47
- if (value.slice(0, 2) === '00') {
47
+ if (value.slice(0, 2) === `00`) {
48
48
  value = `01${value.slice(2)}`;
49
49
  }
50
50
  this.input.nativeFocusableElement.value = value;
@@ -59,7 +59,7 @@ let TuiInputExpireComponent = TuiInputExpireComponent_1 = class TuiInputExpireCo
59
59
  this.updateHovered(hovered);
60
60
  }
61
61
  getFallbackValue() {
62
- return '';
62
+ return ``;
63
63
  }
64
64
  };
65
65
  TuiInputExpireComponent.ctorParameters = () => [
@@ -75,7 +75,7 @@ __decorate([
75
75
  ], TuiInputExpireComponent.prototype, "autocompleteEnabled", void 0);
76
76
  TuiInputExpireComponent = TuiInputExpireComponent_1 = __decorate([
77
77
  Component({
78
- selector: 'tui-input-expire',
78
+ selector: `tui-input-expire`,
79
79
  template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n tuiTextfieldExampleText=\"00/00\"\n class=\"t-input\"\n [tuiTextfieldAutocomplete]=\"autocomplete\"\n [nativeId]=\"nativeId\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [invalid]=\"computedInvalid\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [pseudoFocused]=\"pseudoFocused\"\n [textMask]=\"textMaskOptions\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
80
80
  changeDetection: ChangeDetectionStrategy.OnPush,
81
81
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-input-expire.js","sources":["ng://@taiga-ui/addon-commerce/components/input-expire/input-expire.component.ts","ng://@taiga-ui/addon-commerce/components/input-expire/input-expire.module.ts","ng://@taiga-ui/addon-commerce/components/input-expire/taiga-ui-addon-commerce-components-input-expire.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiCreateAutoCorrectedExpirePipe} 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_DIGIT_REGEXP,\n TuiPrimitiveTextfieldComponent,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\n@Component({\n selector: 'tui-input-expire',\n templateUrl: './input-expire.template.html',\n styleUrls: ['./input-expire.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputExpireComponent),\n },\n ],\n})\nexport class TuiInputExpireComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n readonly textMaskOptions: 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 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 autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcExp\n : TuiCreditCardAutofillName.Off;\n }\n\n onValueChange(value: 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.input || !this.input.nativeFocusableElement) {\n return;\n }\n\n if (parseInt(value.slice(0, 2), 10) > 12) {\n value = `12${value.slice(2)}`;\n }\n\n if (value.slice(0, 2) === '00') {\n value = `01${value.slice(2)}`;\n }\n\n this.input.nativeFocusableElement.value = value;\n\n if (this.value !== value) {\n this.updateValue(value);\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 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 {TuiInputExpireComponent} from './input-expire.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputExpireComponent],\n exports: [TuiInputExpireComponent],\n})\nexport class TuiInputExpireModule {}\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-expire.js","sources":["ng://@taiga-ui/addon-commerce/components/input-expire/input-expire.component.ts","ng://@taiga-ui/addon-commerce/components/input-expire/input-expire.module.ts","ng://@taiga-ui/addon-commerce/components/input-expire/taiga-ui-addon-commerce-components-input-expire.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiCreateAutoCorrectedExpirePipe} 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_DIGIT_REGEXP,\n TuiPrimitiveTextfieldComponent,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {TextMaskConfig} from 'angular2-text-mask';\n\n@Component({\n selector: `tui-input-expire`,\n templateUrl: `./input-expire.template.html`,\n styleUrls: [`./input-expire.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputExpireComponent),\n },\n ],\n})\nexport class TuiInputExpireComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly input?: TuiPrimitiveTextfieldComponent;\n\n @Input()\n @tuiDefaultProp()\n autocompleteEnabled = false;\n\n readonly textMaskOptions: 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 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 autocomplete(): TuiCreditCardAutofillName {\n return this.autocompleteEnabled\n ? TuiCreditCardAutofillName.CcExp\n : TuiCreditCardAutofillName.Off;\n }\n\n onValueChange(value: 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.input || !this.input.nativeFocusableElement) {\n return;\n }\n\n if (parseInt(value.slice(0, 2), 10) > 12) {\n value = `12${value.slice(2)}`;\n }\n\n if (value.slice(0, 2) === `00`) {\n value = `01${value.slice(2)}`;\n }\n\n this.input.nativeFocusableElement.value = value;\n\n if (this.value !== value) {\n this.updateValue(value);\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 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 {TuiInputExpireComponent} from './input-expire.component';\n\n@NgModule({\n imports: [\n TextMaskModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputExpireComponent],\n exports: [TuiInputExpireComponent],\n})\nexport class TuiInputExpireModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;IAuCa,uBAAuB,+BAApC,MAAa,uBACT,SAAQ,kBAA0B;IAsBlC,YAII,OAAyB,EACE,iBAAoC;QAE/D,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QArBtC,wBAAmB,GAAG,KAAK,CAAC;QAEnB,oBAAe,GAAmB;YACvC,IAAI,EAAE;gBACF,gBAAgB;gBAChB,gBAAgB;gBAChB,GAAG;gBACH,gBAAgB;gBAChB,gBAAgB;aACnB;YACD,IAAI,EAAE,gCAAgC,EAAE;YACxC,KAAK,EAAE,KAAK;SACoC,CAAC;KAUpD;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC;KAChE;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7C;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,mBAAmB;;8BAEK;KACvC;IAED,aAAa,CAAC,KAAa;;;QAGvB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACnD,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YAC5B,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;QAEhD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;KACJ;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAES,gBAAgB;QACtB,OAAO,EAAE,CAAC;KACb;EACJ;;YArDgB,SAAS,uBAHjB,QAAQ,YACR,IAAI,YACJ,MAAM,SAAC,SAAS;YAE6B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;AAvB7B;IADC,SAAS,CAAC,8BAA8B,CAAC;sDACc;AAIxD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oEACW;AATnB,uBAAuB;IAZnC,SAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,6rBAA2C;QAE3C,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAuB,CAAC;aACzD;SACJ;;KACJ,CAAC;IAyBO,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GA5BrB,uBAAuB,CAgFnC;;ICtGY,oBAAoB,GAAjC,MAAa,oBAAoB;EAAG;AAAvB,oBAAoB;IAVhC,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,cAAc;YACd,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB;SACzB;QACD,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACrC,CAAC;GACW,oBAAoB,CAAG;;ACjBpC;;;;;;"}
@@ -6,14 +6,14 @@ import { TuiCurrencyPipeModule } from '@taiga-ui/addon-commerce/pipes';
6
6
  import { TUI_NUMBER_FORMAT, formatNumber } from '@taiga-ui/core';
7
7
 
8
8
  const TUI_MONEY_DEFAULT_DEFAULT_OPTIONS = {
9
- decimal: 'not-zero',
9
+ decimal: `not-zero`,
10
10
  currency: "RUB" /* Ruble */,
11
- sign: 'negative-only',
11
+ sign: `negative-only`,
12
12
  colored: false,
13
13
  precision: 2,
14
14
  singleColor: false,
15
15
  };
16
- const TUI_MONEY_OPTIONS = new InjectionToken('Default parameters for money component', {
16
+ const TUI_MONEY_OPTIONS = new InjectionToken(`Default parameters for money component`, {
17
17
  factory: () => TUI_MONEY_DEFAULT_DEFAULT_OPTIONS,
18
18
  });
19
19
  const tuiMoneyOptionsProvider = (options) => ({
@@ -22,10 +22,10 @@ const tuiMoneyOptionsProvider = (options) => ({
22
22
  });
23
23
 
24
24
  function tuiFormatSignSymbol(value, sign) {
25
- if (sign === 'never' || !value || (sign === 'negative-only' && value > 0)) {
26
- return '';
25
+ if (sign === `never` || !value || (sign === `negative-only` && value > 0)) {
26
+ return ``;
27
27
  }
28
- if (sign === 'force-negative' || (value < 0 && sign !== 'force-positive')) {
28
+ if (sign === `force-negative` || (value < 0 && sign !== `force-positive`)) {
29
29
  return CHAR_MINUS;
30
30
  }
31
31
  return CHAR_PLUS;
@@ -48,12 +48,12 @@ let TuiMoneyComponent = class TuiMoneyComponent {
48
48
  get red() {
49
49
  return (this.colored &&
50
50
  (this.signSymbol === CHAR_MINUS ||
51
- (this.value < 0 && this.sign !== 'force-positive')));
51
+ (this.value < 0 && this.sign !== `force-positive`)));
52
52
  }
53
53
  get green() {
54
54
  return (this.colored &&
55
55
  (this.signSymbol === CHAR_PLUS ||
56
- (this.value > 0 && this.sign !== 'force-negative')));
56
+ (this.value > 0 && this.sign !== `force-negative`)));
57
57
  }
58
58
  get inheritColor() {
59
59
  return this.singleColor || (this.value === 0 && this.colored);
@@ -91,17 +91,17 @@ __decorate([
91
91
  tuiDefaultProp()
92
92
  ], TuiMoneyComponent.prototype, "singleColor", void 0);
93
93
  __decorate([
94
- HostBinding('class._red')
94
+ HostBinding(`class._red`)
95
95
  ], TuiMoneyComponent.prototype, "red", null);
96
96
  __decorate([
97
- HostBinding('class._green')
97
+ HostBinding(`class._green`)
98
98
  ], TuiMoneyComponent.prototype, "green", null);
99
99
  __decorate([
100
- HostBinding('class._inherit-color')
100
+ HostBinding(`class._inherit-color`)
101
101
  ], TuiMoneyComponent.prototype, "inheritColor", null);
102
102
  TuiMoneyComponent = __decorate([
103
103
  Component({
104
- selector: 'tui-money',
104
+ selector: `tui-money`,
105
105
  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",
106
106
  changeDetection: ChangeDetectionStrategy.OnPush,
107
107
  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}"]
@@ -111,9 +111,9 @@ TuiMoneyComponent = __decorate([
111
111
 
112
112
  function tuiFormatFractionPart(options) {
113
113
  const { value, decimal, numberFormat, precision } = options;
114
- const fraction = value.toFixed(precision).split('.')[1];
115
- const shouldShow = decimal !== 'never' && (decimal === 'always' || !!parseInt(fraction, 10));
116
- return shouldShow ? `${numberFormat.decimalSeparator}${fraction}` : '';
114
+ const fraction = value.toFixed(precision).split(`.`)[1];
115
+ const shouldShow = decimal !== `never` && (decimal === `always` || !!parseInt(fraction, 10));
116
+ return shouldShow ? `${numberFormat.decimalSeparator}${fraction}` : ``;
117
117
  }
118
118
 
119
119
  let TuiFractionPartPipe = class TuiFractionPartPipe {
@@ -133,7 +133,7 @@ TuiFractionPartPipe.ctorParameters = () => [
133
133
  { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] }
134
134
  ];
135
135
  TuiFractionPartPipe = __decorate([
136
- Pipe({ name: 'tuiFractionPart' }),
136
+ Pipe({ name: `tuiFractionPart` }),
137
137
  __param(0, Inject(TUI_NUMBER_FORMAT))
138
138
  ], TuiFractionPartPipe);
139
139
 
@@ -149,7 +149,7 @@ TuiIntegerPartPipe.ctorParameters = () => [
149
149
  { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] }
150
150
  ];
151
151
  TuiIntegerPartPipe = __decorate([
152
- Pipe({ name: 'tuiIntegerPart' }),
152
+ Pipe({ name: `tuiIntegerPart` }),
153
153
  __param(0, Inject(TUI_NUMBER_FORMAT))
154
154
  ], TuiIntegerPartPipe);
155
155
 
@@ -159,7 +159,7 @@ let TuiSignSymbolPipe = class TuiSignSymbolPipe {
159
159
  }
160
160
  };
161
161
  TuiSignSymbolPipe = __decorate([
162
- Pipe({ name: 'tuiSignSymbol' })
162
+ Pipe({ name: `tuiSignSymbol` })
163
163
  ], TuiSignSymbolPipe);
164
164
 
165
165
  let TuiMoneyModule = class TuiMoneyModule {
@@ -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_MINUS, 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 return CHAR_MINUS;\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_MINUS, 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_MINUS ||\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_MINUS, 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 return CHAR_MINUS;\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_MINUS, 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_MINUS ||\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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"}