@taiga-ui/addon-commerce 2.55.0 → 2.58.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 (147) 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 +37 -37
  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 +1 -1
  7. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js +11 -11
  9. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js.map +1 -1
  10. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js +5 -5
  12. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js +4 -4
  15. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js.map +1 -1
  16. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-addon-commerce-components-money.umd.js +18 -18
  18. package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-addon-commerce-constants.umd.js +30 -30
  21. package/bundles/taiga-ui-addon-commerce-constants.umd.js.map +1 -1
  22. package/bundles/taiga-ui-addon-commerce-constants.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-addon-commerce-enums.umd.js +14 -0
  24. package/bundles/taiga-ui-addon-commerce-enums.umd.js.map +1 -1
  25. package/bundles/taiga-ui-addon-commerce-enums.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-addon-commerce-pipes.umd.js +6 -6
  27. package/bundles/taiga-ui-addon-commerce-pipes.umd.js.map +1 -1
  28. package/bundles/taiga-ui-addon-commerce-pipes.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-addon-commerce-tokens.umd.js +4 -4
  30. package/bundles/taiga-ui-addon-commerce-tokens.umd.js.map +1 -1
  31. package/bundles/taiga-ui-addon-commerce-tokens.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-addon-commerce-utils.umd.js +30 -30
  33. package/bundles/taiga-ui-addon-commerce-utils.umd.js.map +1 -1
  34. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-addon-commerce-validators.umd.js +2 -2
  36. package/bundles/taiga-ui-addon-commerce-validators.umd.js.map +1 -1
  37. package/bundles/taiga-ui-addon-commerce-validators.umd.min.js.map +1 -1
  38. package/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.metadata.json +1 -1
  39. package/enums/currency-code.d.ts +7 -0
  40. package/enums/currency.d.ts +7 -0
  41. package/esm2015/components/card/card.component.js +15 -15
  42. package/esm2015/components/input-card/input-card.component.js +12 -12
  43. package/esm2015/components/input-card-grouped/input-card-grouped.component.js +36 -36
  44. package/esm2015/components/input-card-grouped/input-card-grouped.providers.js +3 -3
  45. package/esm2015/components/input-cvc/input-cvc.component.js +6 -6
  46. package/esm2015/components/input-expire/input-expire.component.js +5 -5
  47. package/esm2015/components/money/money-options.js +4 -4
  48. package/esm2015/components/money/money.component.js +7 -7
  49. package/esm2015/components/money/pipes/fraction-part.pipe.js +2 -2
  50. package/esm2015/components/money/pipes/integer-part.pipe.js +2 -2
  51. package/esm2015/components/money/pipes/sign-symbol.pipe.js +2 -2
  52. package/esm2015/components/money/utils/format-fraction-part.js +4 -4
  53. package/esm2015/components/money/utils/format-sign-symbol.js +4 -4
  54. package/esm2015/constants/card-holder-mask.js +27 -27
  55. package/esm2015/constants/card-mask.js +5 -5
  56. package/esm2015/enums/currency-code.js +8 -1
  57. package/esm2015/enums/currency.js +8 -1
  58. package/esm2015/enums/money-sign.js +1 -1
  59. package/esm2015/enums/payment-system.js +1 -1
  60. package/esm2015/pipes/currency/currency.pipe.js +2 -2
  61. package/esm2015/pipes/format-card/format-card.pipe.js +6 -6
  62. package/esm2015/tokens/i18n.js +5 -5
  63. package/esm2015/utils/create-auto-corrected-expire-pipe.js +6 -6
  64. package/esm2015/utils/format-currency.js +4 -4
  65. package/esm2015/utils/get-currency-symbol.js +20 -20
  66. package/esm2015/utils/get-payment-system.js +2 -2
  67. package/esm2015/utils/is-card-number-valid.js +3 -3
  68. package/esm2015/validators/card-expire.validator.js +2 -2
  69. package/esm2015/validators/card-number.validator.js +2 -2
  70. package/esm5/components/card/card.component.js +15 -15
  71. package/esm5/components/input-card/input-card.component.js +12 -12
  72. package/esm5/components/input-card-grouped/input-card-grouped.component.js +36 -36
  73. package/esm5/components/input-card-grouped/input-card-grouped.providers.js +3 -3
  74. package/esm5/components/input-cvc/input-cvc.component.js +6 -6
  75. package/esm5/components/input-expire/input-expire.component.js +5 -5
  76. package/esm5/components/money/money-options.js +4 -4
  77. package/esm5/components/money/money.component.js +7 -7
  78. package/esm5/components/money/pipes/fraction-part.pipe.js +2 -2
  79. package/esm5/components/money/pipes/integer-part.pipe.js +2 -2
  80. package/esm5/components/money/pipes/sign-symbol.pipe.js +2 -2
  81. package/esm5/components/money/utils/format-fraction-part.js +4 -4
  82. package/esm5/components/money/utils/format-sign-symbol.js +4 -4
  83. package/esm5/constants/card-holder-mask.js +27 -27
  84. package/esm5/constants/card-mask.js +5 -5
  85. package/esm5/enums/currency-code.js +8 -1
  86. package/esm5/enums/currency.js +8 -1
  87. package/esm5/enums/money-sign.js +1 -1
  88. package/esm5/enums/payment-system.js +1 -1
  89. package/esm5/pipes/currency/currency.pipe.js +2 -2
  90. package/esm5/pipes/format-card/format-card.pipe.js +6 -6
  91. package/esm5/tokens/i18n.js +5 -5
  92. package/esm5/utils/create-auto-corrected-expire-pipe.js +6 -6
  93. package/esm5/utils/format-currency.js +4 -4
  94. package/esm5/utils/get-currency-symbol.js +20 -20
  95. package/esm5/utils/get-payment-system.js +2 -2
  96. package/esm5/utils/is-card-number-valid.js +3 -3
  97. package/esm5/validators/card-expire.validator.js +2 -2
  98. package/esm5/validators/card-number.validator.js +2 -2
  99. package/fesm2015/taiga-ui-addon-commerce-components-card.js +14 -14
  100. package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
  101. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +37 -37
  102. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  103. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +11 -11
  104. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  105. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
  106. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  107. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js +4 -4
  108. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  109. package/fesm2015/taiga-ui-addon-commerce-components-money.js +18 -18
  110. package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
  111. package/fesm2015/taiga-ui-addon-commerce-constants.js +30 -30
  112. package/fesm2015/taiga-ui-addon-commerce-constants.js.map +1 -1
  113. package/fesm2015/taiga-ui-addon-commerce-enums.js +14 -0
  114. package/fesm2015/taiga-ui-addon-commerce-enums.js.map +1 -1
  115. package/fesm2015/taiga-ui-addon-commerce-pipes.js +6 -6
  116. package/fesm2015/taiga-ui-addon-commerce-pipes.js.map +1 -1
  117. package/fesm2015/taiga-ui-addon-commerce-tokens.js +4 -4
  118. package/fesm2015/taiga-ui-addon-commerce-tokens.js.map +1 -1
  119. package/fesm2015/taiga-ui-addon-commerce-utils.js +30 -30
  120. package/fesm2015/taiga-ui-addon-commerce-utils.js.map +1 -1
  121. package/fesm2015/taiga-ui-addon-commerce-validators.js +2 -2
  122. package/fesm2015/taiga-ui-addon-commerce-validators.js.map +1 -1
  123. package/fesm5/taiga-ui-addon-commerce-components-card.js +14 -14
  124. package/fesm5/taiga-ui-addon-commerce-components-card.js.map +1 -1
  125. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js +37 -37
  126. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  127. package/fesm5/taiga-ui-addon-commerce-components-input-card.js +11 -11
  128. package/fesm5/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  129. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
  130. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  131. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js +4 -4
  132. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  133. package/fesm5/taiga-ui-addon-commerce-components-money.js +18 -18
  134. package/fesm5/taiga-ui-addon-commerce-components-money.js.map +1 -1
  135. package/fesm5/taiga-ui-addon-commerce-constants.js +30 -30
  136. package/fesm5/taiga-ui-addon-commerce-constants.js.map +1 -1
  137. package/fesm5/taiga-ui-addon-commerce-enums.js +14 -0
  138. package/fesm5/taiga-ui-addon-commerce-enums.js.map +1 -1
  139. package/fesm5/taiga-ui-addon-commerce-pipes.js +6 -6
  140. package/fesm5/taiga-ui-addon-commerce-pipes.js.map +1 -1
  141. package/fesm5/taiga-ui-addon-commerce-tokens.js +4 -4
  142. package/fesm5/taiga-ui-addon-commerce-tokens.js.map +1 -1
  143. package/fesm5/taiga-ui-addon-commerce-utils.js +30 -30
  144. package/fesm5/taiga-ui-addon-commerce-utils.js.map +1 -1
  145. package/fesm5/taiga-ui-addon-commerce-validators.js +2 -2
  146. package/fesm5/taiga-ui-addon-commerce-validators.js.map +1 -1
  147. package/package.json +4 -4
@@ -22,18 +22,18 @@ function tuiCreateAutoCorrectedExpirePipe() {
22
22
  const array = rawValue.split(TUI_NON_DIGIT_REGEXP);
23
23
  const month = array[1];
24
24
  const year = array.find(({ length }) => length === 4);
25
- conformedValue = `${'0'.repeat(2 - month.length)}${month}/${year ? year.slice(2) : ''}`;
25
+ conformedValue = `${`0`.repeat(2 - month.length)}${month}/${year ? year.slice(2) : ``}`;
26
26
  }
27
27
  const indexesOfPipedChars = [];
28
- const conformedValueArr = conformedValue.split('');
28
+ const conformedValueArr = conformedValue.split(``);
29
29
  if (parseInt(conformedValueArr[0], 10) > 1) {
30
- conformedValueArr[2] = '/';
30
+ conformedValueArr[2] = `/`;
31
31
  conformedValueArr[1] = conformedValueArr[0];
32
- conformedValueArr[0] = '0';
32
+ conformedValueArr[0] = `0`;
33
33
  indexesOfPipedChars.push(0);
34
34
  }
35
35
  return {
36
- value: conformedValueArr.join(''),
36
+ value: conformedValueArr.join(``),
37
37
  indexesOfPipedChars,
38
38
  };
39
39
  };
@@ -47,63 +47,63 @@ function getCurrencySymbol(currency) {
47
47
  switch (currency) {
48
48
  case "RUB" /* Ruble */:
49
49
  case "643" /* Ruble */:
50
- return '₽';
50
+ return `₽`;
51
51
  case "USD" /* Dollar */:
52
52
  case "840" /* Dollar */:
53
53
  case "MXN" /* MexicanPeso */:
54
54
  case "484" /* MexicanPeso */:
55
- return '$';
55
+ return `$`;
56
56
  case "SGD" /* SingaporeDollar */:
57
57
  case "702" /* SingaporeDollar */:
58
- return 'S$';
58
+ return `S$`;
59
59
  case "AUD" /* AustralianDollar */:
60
60
  case "036" /* AustralianDollar */:
61
- return 'A$';
61
+ return `A$`;
62
62
  case "HKD" /* HongKongDollar */:
63
63
  case "344" /* HongKongDollar */:
64
- return 'HK$';
64
+ return `HK$`;
65
65
  case "CAD" /* CanadianDollar */:
66
66
  case "124" /* CanadianDollar */:
67
- return 'C$';
67
+ return `C$`;
68
68
  case "EUR" /* Euro */:
69
69
  case "978" /* Euro */:
70
- return '€';
70
+ return `€`;
71
71
  case "GBP" /* Pound */:
72
72
  case "826" /* Pound */:
73
- return '£';
73
+ return `£`;
74
74
  case "THB" /* Baht */:
75
75
  case "764" /* Baht */:
76
- return '฿';
76
+ return `฿`;
77
77
  case "TRY" /* TurkishLira */:
78
78
  case "949" /* TurkishLira */:
79
- return '₺';
79
+ return `₺`;
80
80
  case "CNY" /* YuanRenminbi */:
81
81
  case "156" /* YuanRenminbi */:
82
- return 'CN¥';
82
+ return `CN¥`;
83
83
  case "JPY" /* Yen */:
84
84
  case "392" /* Yen */:
85
- return '¥';
85
+ return `¥`;
86
86
  case "ILS" /* IsraeliShekel */:
87
87
  case "376" /* IsraeliShekel */:
88
- return '₪';
88
+ return `₪`;
89
89
  case "INR" /* IndianRupee */:
90
90
  case "356" /* IndianRupee */:
91
- return '₹';
91
+ return `₹`;
92
92
  case "CHF" /* SwissFranc */:
93
93
  case "756" /* SwissFranc */:
94
- return '₣';
94
+ return `₣`;
95
95
  case "AMD" /* ArmenianDram */:
96
96
  case "051" /* ArmenianDram */:
97
- return '֏';
97
+ return `֏`;
98
98
  case "KRW" /* Won */:
99
99
  case "410" /* Won */:
100
- return '₩';
100
+ return `₩`;
101
101
  case "KZT" /* Tenge */:
102
102
  case "398" /* Tenge */:
103
- return '₸';
103
+ return `₸`;
104
104
  case "UAH" /* Hryvnia */:
105
105
  case "980" /* Hryvnia */:
106
- return '₴';
106
+ return `₴`;
107
107
  default:
108
108
  return null;
109
109
  }
@@ -120,9 +120,9 @@ function formatCurrency(currency) {
120
120
  }
121
121
  const tuiFormatCurrency = formatCurrency;
122
122
  function stringifyCurrency(currency) {
123
- return currency === null || typeof currency === 'string'
124
- ? currency || ''
125
- : padStart(String(currency), 3, '0');
123
+ return currency === null || typeof currency === `string`
124
+ ? currency || ``
125
+ : padStart(String(currency), 3, `0`);
126
126
  }
127
127
 
128
128
  /**
@@ -130,7 +130,7 @@ function stringifyCurrency(currency) {
130
130
  */
131
131
  // eslint-disable-next-line @typescript-eslint/naming-convention
132
132
  function getPaymentSystem(cardNumber) {
133
- if (cardNumber === '') {
133
+ if (cardNumber === ``) {
134
134
  return null;
135
135
  }
136
136
  const one = Number.parseInt(cardNumber[0], 10);
@@ -258,9 +258,9 @@ const tuiIsCardLengthValid = isCardLengthValid;
258
258
  */
259
259
  // eslint-disable-next-line @typescript-eslint/naming-convention
260
260
  function isCardNumberValid(value) {
261
- const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');
261
+ const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, ``);
262
262
  const { length } = cardNumber;
263
- const arr = cardNumber.split('').map((char, index) => {
263
+ const arr = cardNumber.split(``).map((char, index) => {
264
264
  const digit = parseInt(char, 10);
265
265
  if ((index + length) % 2 === 0) {
266
266
  const digitX2 = digit * 2;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-utils.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts","ng://@taiga-ui/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${'0'.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ''\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = '/';\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = '0';\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === 'string'\n ? currency || ''\n : padStart(String(currency), 3, '0');\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === '') {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');\n\n const {length} = cardNumber;\n const arr = cardNumber.split('').map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-utils.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts","ng://@taiga-ui/addon-commerce/utils/taiga-ui-addon-commerce-utils.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${`0`.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ``\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split(``);\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = `/`;\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = `0`;\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(``),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return `₽`;\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return `$`;\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return `S$`;\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return `A$`;\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return `HK$`;\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return `C$`;\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return `€`;\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return `£`;\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return `฿`;\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return `₺`;\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return `CN¥`;\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return `¥`;\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return `₪`;\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return `₹`;\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return `₣`;\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return `֏`;\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return `₩`;\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return `₸`;\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return `₴`;\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === `string`\n ? currency || ``\n : padStart(String(currency), 3, `0`);\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === ``) {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, ``);\n\n const {length} = cardNumber;\n const arr = cardNumber.split(``).map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { TuiValidationError } from '@taiga-ui/cdk';
4
4
  function tuiCardExpireValidator({ value, }) {
5
5
  var _a;
6
6
  return ((_a = value === null || value === void 0 ? void 0 : value.expire) === null || _a === void 0 ? void 0 : _a.length) === 5 && !isExpireValid(value === null || value === void 0 ? void 0 : value.expire)
7
- ? { expire: new TuiValidationError('Expire date') }
7
+ ? { expire: new TuiValidationError(`Expire date`) }
8
8
  : null;
9
9
  }
10
10
 
11
11
  function tuiCardNumberValidator({ value, }) {
12
12
  return (value === null || value === void 0 ? void 0 : value.card) && !isCardNumberValid(value.card)
13
- ? { card: new TuiValidationError('Invalid card number') }
13
+ ? { card: new TuiValidationError(`Invalid card number`) }
14
14
  : null;
15
15
  }
16
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-validators.js","sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts","ng://@taiga-ui/addon-commerce/validators/taiga-ui-addon-commerce-validators.ts"],"sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError('Expire date')}\n : null;\n}\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardNumberValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.card && !isCardNumberValid(value.card)\n ? {card: new TuiValidationError('Invalid card number')}\n : null;\n}\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function tuiCreateLuhnValidator(message: PolymorpheusContent): ValidatorFn {\n return ({value}: AbstractControl) => {\n return isCardNumberValid(value) ? null : {luhn: new TuiValidationError(message)};\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAIgB,sBAAsB,CAAC,EACnC,KAAK,GACS;;IACd,OAAO,OAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,MAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;UAC7D,EAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAC;UAC/C,IAAI,CAAC;AACf;;SCNgB,sBAAsB,CAAC,EACnC,KAAK,GACS;IACd,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;UAC9C,EAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,EAAC;UACrD,IAAI,CAAC;AACf;;SCLgB,sBAAsB,CAAC,OAA4B;IAC/D,OAAO,CAAC,EAAC,KAAK,EAAkB;QAC5B,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC;KACpF,CAAC;AACN;;ACTA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-validators.js","sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts","ng://@taiga-ui/addon-commerce/validators/taiga-ui-addon-commerce-validators.ts"],"sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError(`Expire date`)}\n : null;\n}\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardNumberValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.card && !isCardNumberValid(value.card)\n ? {card: new TuiValidationError(`Invalid card number`)}\n : null;\n}\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function tuiCreateLuhnValidator(message: PolymorpheusContent): ValidatorFn {\n return ({value}: AbstractControl) => {\n return isCardNumberValid(value) ? null : {luhn: new TuiValidationError(message)};\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAIgB,sBAAsB,CAAC,EACnC,KAAK,GACS;;IACd,OAAO,OAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,MAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;UAC7D,EAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAC;UAC/C,IAAI,CAAC;AACf;;SCNgB,sBAAsB,CAAC,EACnC,KAAK,GACS;IACd,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;UAC9C,EAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,EAAC;UACrD,IAAI,CAAC;AACf;;SCLgB,sBAAsB,CAAC,OAA4B;IAC/D,OAAO,CAAC,EAAC,KAAK,EAAkB;QAC5B,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAC,IAAI,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC;KACpF,CAAC;AACN;;ACTA;;;;;;"}
@@ -10,39 +10,39 @@ function cardNumberAssertion(_a) {
10
10
  var length = _a.length;
11
11
  return !length || length === 4;
12
12
  }
13
- var cardNumberAssertionMessage = 'cardNumber should contain 4 symbols';
13
+ var cardNumberAssertionMessage = "cardNumber should contain 4 symbols";
14
14
  var icons = (_a = {},
15
- _a["mir" /* Mir */] = 'tuiIconMirMono',
16
- _a["visa" /* Visa */] = 'tuiIconVisaMono',
17
- _a["electron" /* Electron */] = 'tuiIconElectronMono',
18
- _a["mastercard" /* Mastercard */] = 'tuiIconMastercard',
19
- _a["maestro" /* Maestro */] = 'tuiIconMaestro',
15
+ _a["mir" /* Mir */] = "tuiIconMirMono",
16
+ _a["visa" /* Visa */] = "tuiIconVisaMono",
17
+ _a["electron" /* Electron */] = "tuiIconElectronMono",
18
+ _a["mastercard" /* Mastercard */] = "tuiIconMastercard",
19
+ _a["maestro" /* Maestro */] = "tuiIconMaestro",
20
20
  _a);
21
21
  var TuiCardComponent = /** @class */ (function () {
22
22
  function TuiCardComponent() {
23
23
  this.active = false;
24
- this.brandLogo = '';
25
- this.cardNumber = '';
24
+ this.brandLogo = "";
25
+ this.cardNumber = "";
26
26
  this.paymentSystem = null;
27
- this.size = 'm';
27
+ this.size = "m";
28
28
  }
29
29
  Object.defineProperty(TuiCardComponent.prototype, "hasBrandLogo", {
30
30
  get: function () {
31
- return !!this.brandLogo && this.size === 'm';
31
+ return !!this.brandLogo && this.size === "m";
32
32
  },
33
33
  enumerable: true,
34
34
  configurable: true
35
35
  });
36
36
  Object.defineProperty(TuiCardComponent.prototype, "paymentSystemLogo", {
37
37
  get: function () {
38
- return this.paymentSystem ? icons[this.paymentSystem] : '';
38
+ return this.paymentSystem ? icons[this.paymentSystem] : "";
39
39
  },
40
40
  enumerable: true,
41
41
  configurable: true
42
42
  });
43
43
  __decorate([
44
44
  Input(),
45
- HostBinding('class._active'),
45
+ HostBinding("class._active"),
46
46
  tuiDefaultProp()
47
47
  ], TuiCardComponent.prototype, "active", void 0);
48
48
  __decorate([
@@ -59,12 +59,12 @@ var TuiCardComponent = /** @class */ (function () {
59
59
  ], TuiCardComponent.prototype, "paymentSystem", void 0);
60
60
  __decorate([
61
61
  Input(),
62
- HostBinding('attr.data-size'),
62
+ HostBinding("attr.data-size"),
63
63
  tuiDefaultProp()
64
64
  ], TuiCardComponent.prototype, "size", void 0);
65
65
  TuiCardComponent = __decorate([
66
66
  Component({
67
- selector: 'tui-card',
67
+ selector: "tui-card",
68
68
  template: "<div class=\"t-front\">\n <tui-svg\n *ngIf=\"hasBrandLogo\"\n class=\"t-brand-logo\"\n [src]=\"brandLogo\"\n ></tui-svg>\n <span class=\"t-number\">{{ cardNumber }}</span>\n <tui-svg\n *ngIf=\"!!paymentSystem\"\n class=\"t-payment-system-logo\"\n [src]=\"paymentSystemLogo\"\n ></tui-svg>\n</div>\n<div class=\"t-back\"></div>\n",
69
69
  changeDetection: ChangeDetectionStrategy.OnPush,
70
70
  styles: [":host{position:relative;display:block;color:var(--tui-base-01);transform-style:preserve-3d;cursor:default;border-radius:var(--tui-radius-xs);background-size:100%}:host[data-size='s']{width:2rem;height:1.5rem}:host[data-size='m']{width:3rem;height:2rem}:host._active{box-shadow:0 0 0 1px var(--tui-base-01)}.t-front{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.t-brand-logo{position:absolute;top:.1875rem;left:.125rem;height:.875rem;width:.875rem}.t-number{position:absolute;right:.25rem;display:flex;justify-content:center;align-items:center}:host[data-size='s'] .t-number{top:.125rem;height:.625rem;width:1.1875rem;font-size:.5rem}:host[data-size='m'] .t-number{top:.1875rem;height:.875rem;width:1.5rem;font-size:.625rem}.t-payment-system-logo{position:absolute;right:.25rem;bottom:-.5rem;width:2rem;height:2rem;transform:scale(.5);transform-origin:right}.t-back{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translate3d(0,0,1px);background-color:var(--tui-base-05);border-radius:var(--tui-radius-xs)}.t-back:after{content:'';position:absolute;top:20%;left:0;right:0;height:20%;background-color:var(--tui-base-06)}"]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-commerce-components-card.js","sources":["ng://@taiga-ui/addon-commerce/components/card/card.component.ts","ng://@taiga-ui/addon-commerce/components/card/card.module.ts","ng://@taiga-ui/addon-commerce/components/card/taiga-ui-addon-commerce-components-card.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {TuiPaymentSystem, TuiPaymentSystemT} from '@taiga-ui/addon-commerce/enums';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function cardNumberAssertion({length}: string): boolean {\n return !length || length === 4;\n}\n\nexport const cardNumberAssertionMessage = 'cardNumber should contain 4 symbols';\n\nconst icons = {\n [TuiPaymentSystem.Mir]: 'tuiIconMirMono',\n [TuiPaymentSystem.Visa]: 'tuiIconVisaMono',\n [TuiPaymentSystem.Electron]: 'tuiIconElectronMono',\n [TuiPaymentSystem.Mastercard]: 'tuiIconMastercard',\n [TuiPaymentSystem.Maestro]: 'tuiIconMaestro',\n};\n\n@Component({\n selector: 'tui-card',\n templateUrl: 'card.template.html',\n styleUrls: ['./card.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCardComponent {\n @Input()\n @HostBinding('class._active')\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n brandLogo = '';\n\n @Input()\n @tuiDefaultProp(cardNumberAssertion, cardNumberAssertionMessage)\n cardNumber = '';\n\n @Input()\n @tuiDefaultProp()\n paymentSystem: TuiPaymentSystemT | TuiPaymentSystem | null = null;\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = 'm';\n\n get hasBrandLogo(): boolean {\n return !!this.brandLogo && this.size === 'm';\n }\n\n get paymentSystemLogo(): string {\n return this.paymentSystem ? icons[this.paymentSystem] : '';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiCardComponent} from './card.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiCardComponent],\n exports: [TuiCardComponent],\n})\nexport class TuiCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAKA;SACgB,mBAAmB,CAAC,EAAgB;QAAf,kBAAM;IACvC,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC;AACnC,CAAC;IAEY,0BAA0B,GAAG,sCAAsC;AAEhF,IAAM,KAAK;IACP,sBAAwB,gBAAgB;IACxC,wBAAyB,iBAAiB;IAC1C,gCAA6B,qBAAqB;IAClD,oCAA+B,mBAAmB;IAClD,8BAA4B,gBAAgB;OAC/C,CAAC;;IAQF;QAII,WAAM,GAAG,KAAK,CAAC;QAIf,cAAS,GAAG,EAAE,CAAC;QAIf,eAAU,GAAG,EAAE,CAAC;QAIhB,kBAAa,GAAgD,IAAI,CAAC;QAKlE,SAAI,GAAa,GAAG,CAAC;KASxB;IAPG,sBAAI,0CAAY;aAAhB;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;SAChD;;;OAAA;IAED,sBAAI,+CAAiB;aAArB;YACI,OAAO,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SAC9D;;;OAAA;IAzBD;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,eAAe,CAAC;QAC5B,cAAc,EAAE;oDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;wDAChD;IAIhB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACiD;IAKlE;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,gBAAgB,CAAC;QAC7B,cAAc,EAAE;kDACI;IArBZ,gBAAgB;QAN5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6YAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;OACW,gBAAgB,CA8B5B;IAAD,uBAAC;CA9BD;;;ICfA;KAA6B;IAAhB,aAAa;QALzB,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;YACrC,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACXA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-commerce-components-card.js","sources":["ng://@taiga-ui/addon-commerce/components/card/card.component.ts","ng://@taiga-ui/addon-commerce/components/card/card.module.ts","ng://@taiga-ui/addon-commerce/components/card/taiga-ui-addon-commerce-components-card.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\nimport {TuiPaymentSystem, TuiPaymentSystemT} from '@taiga-ui/addon-commerce/enums';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function cardNumberAssertion({length}: string): boolean {\n return !length || length === 4;\n}\n\nexport const cardNumberAssertionMessage = `cardNumber should contain 4 symbols`;\n\nconst icons = {\n [TuiPaymentSystem.Mir]: `tuiIconMirMono`,\n [TuiPaymentSystem.Visa]: `tuiIconVisaMono`,\n [TuiPaymentSystem.Electron]: `tuiIconElectronMono`,\n [TuiPaymentSystem.Mastercard]: `tuiIconMastercard`,\n [TuiPaymentSystem.Maestro]: `tuiIconMaestro`,\n};\n\n@Component({\n selector: `tui-card`,\n templateUrl: `card.template.html`,\n styleUrls: [`./card.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCardComponent {\n @Input()\n @HostBinding(`class._active`)\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n brandLogo = ``;\n\n @Input()\n @tuiDefaultProp(cardNumberAssertion, cardNumberAssertionMessage)\n cardNumber = ``;\n\n @Input()\n @tuiDefaultProp()\n paymentSystem: TuiPaymentSystemT | TuiPaymentSystem | null = null;\n\n @Input()\n @HostBinding(`attr.data-size`)\n @tuiDefaultProp()\n size: TuiSizeS = `m`;\n\n get hasBrandLogo(): boolean {\n return !!this.brandLogo && this.size === `m`;\n }\n\n get paymentSystemLogo(): string {\n return this.paymentSystem ? icons[this.paymentSystem] : ``;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiCardComponent} from './card.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiCardComponent],\n exports: [TuiCardComponent],\n})\nexport class TuiCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAKA;SACgB,mBAAmB,CAAC,EAAgB;QAAf,kBAAM;IACvC,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC;AACnC,CAAC;IAEY,0BAA0B,GAAG,sCAAsC;AAEhF,IAAM,KAAK;IACP,sBAAwB,gBAAgB;IACxC,wBAAyB,iBAAiB;IAC1C,gCAA6B,qBAAqB;IAClD,oCAA+B,mBAAmB;IAClD,8BAA4B,gBAAgB;OAC/C,CAAC;;IAQF;QAII,WAAM,GAAG,KAAK,CAAC;QAIf,cAAS,GAAG,EAAE,CAAC;QAIf,eAAU,GAAG,EAAE,CAAC;QAIhB,kBAAa,GAAgD,IAAI,CAAC;QAKlE,SAAI,GAAa,GAAG,CAAC;KASxB;IAPG,sBAAI,0CAAY;aAAhB;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;SAChD;;;OAAA;IAED,sBAAI,+CAAiB;aAArB;YACI,OAAO,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SAC9D;;;OAAA;IAzBD;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,eAAe,CAAC;QAC5B,cAAc,EAAE;oDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;wDAChD;IAIhB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACiD;IAKlE;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,gBAAgB,CAAC;QAC7B,cAAc,EAAE;kDACI;IArBZ,gBAAgB;QAN5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6YAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;OACW,gBAAgB,CA8B5B;IAAD,uBAAC;CA9BD;;;ICfA;KAA6B;IAAhB,aAAa;QALzB,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;YACrC,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACXA;;;;;;"}