@taiga-ui/addon-commerce 2.59.1 → 3.0.0-rc.1

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 (365) hide show
  1. package/bundles/taiga-ui-addon-commerce-components-card.umd.js +420 -306
  2. package/bundles/taiga-ui-addon-commerce-components-card.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js +610 -463
  4. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js +458 -332
  6. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js +436 -310
  8. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js +427 -304
  10. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-commerce-components-money.umd.js +509 -377
  12. package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-commerce-components.umd.js +15 -27
  14. package/bundles/taiga-ui-addon-commerce-components.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-commerce-constants.umd.js +8 -6
  16. package/bundles/taiga-ui-addon-commerce-constants.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-commerce-enums.umd.js +100 -41
  18. package/bundles/taiga-ui-addon-commerce-enums.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-commerce-interfaces.umd.js +2 -2
  20. package/bundles/taiga-ui-addon-commerce-interfaces.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-commerce-pipes.umd.js +60 -271
  22. package/bundles/taiga-ui-addon-commerce-pipes.umd.js.map +1 -1
  23. package/bundles/taiga-ui-addon-commerce-tokens.umd.js +9 -5
  24. package/bundles/taiga-ui-addon-commerce-tokens.umd.js.map +1 -1
  25. package/bundles/taiga-ui-addon-commerce-types.umd.js +2 -2
  26. package/bundles/taiga-ui-addon-commerce-types.umd.js.map +1 -1
  27. package/bundles/taiga-ui-addon-commerce-utils.umd.js +46 -95
  28. package/bundles/taiga-ui-addon-commerce-utils.umd.js.map +1 -1
  29. package/bundles/taiga-ui-addon-commerce-validators.umd.js +15 -9
  30. package/bundles/taiga-ui-addon-commerce-validators.umd.js.map +1 -1
  31. package/bundles/taiga-ui-addon-commerce.umd.js +31 -33
  32. package/bundles/taiga-ui-addon-commerce.umd.js.map +1 -1
  33. package/components/card/card.component.d.ts +5 -4
  34. package/components/card/card.module.d.ts +7 -0
  35. package/components/card/package.json +2 -5
  36. package/components/card/taiga-ui-addon-commerce-components-card.d.ts +1 -0
  37. package/components/input-card/input-card.component.d.ts +4 -4
  38. package/components/input-card/input-card.module.d.ts +8 -0
  39. package/components/input-card/package.json +2 -5
  40. package/components/input-card/taiga-ui-addon-commerce-components-input-card.d.ts +1 -0
  41. package/components/input-card-grouped/input-card-grouped.component.d.ts +5 -3
  42. package/components/input-card-grouped/input-card-grouped.module.d.ts +12 -0
  43. package/components/input-card-grouped/input-card-grouped.providers.d.ts +0 -2
  44. package/components/input-card-grouped/package.json +2 -5
  45. package/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.d.ts +1 -0
  46. package/components/input-cvc/input-cvc.component.d.ts +3 -1
  47. package/components/input-cvc/input-cvc.module.d.ts +8 -0
  48. package/components/input-cvc/package.json +2 -5
  49. package/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.d.ts +1 -0
  50. package/components/input-expire/input-expire.component.d.ts +3 -1
  51. package/components/input-expire/input-expire.module.d.ts +8 -0
  52. package/components/input-expire/package.json +2 -5
  53. package/components/input-expire/taiga-ui-addon-commerce-components-input-expire.d.ts +1 -0
  54. package/components/money/money-options.d.ts +4 -4
  55. package/components/money/money.component.d.ts +7 -4
  56. package/components/money/money.module.d.ts +10 -0
  57. package/components/money/package.json +2 -5
  58. package/components/money/pipes/fraction-part.pipe.d.ts +5 -2
  59. package/components/money/pipes/integer-part.pipe.d.ts +3 -0
  60. package/components/money/pipes/sign-symbol.pipe.d.ts +5 -2
  61. package/components/money/taiga-ui-addon-commerce-components-money.d.ts +1 -0
  62. package/components/money/utils/format-fraction-part.d.ts +2 -2
  63. package/components/money/utils/format-sign-symbol.d.ts +2 -2
  64. package/components/package.json +2 -5
  65. package/components/taiga-ui-addon-commerce-components.d.ts +1 -0
  66. package/constants/package.json +2 -5
  67. package/constants/taiga-ui-addon-commerce-constants.d.ts +1 -0
  68. package/enums/currency-code.d.ts +48 -6
  69. package/enums/currency.d.ts +48 -6
  70. package/enums/index.d.ts +0 -2
  71. package/enums/package.json +2 -5
  72. package/enums/taiga-ui-addon-commerce-enums.d.ts +1 -0
  73. package/esm2015/components/card/card.component.js +39 -30
  74. package/esm2015/components/card/card.module.js +15 -12
  75. package/esm2015/components/card/index.js +1 -1
  76. package/esm2015/components/card/taiga-ui-addon-commerce-components-card.js +1 -1
  77. package/esm2015/components/index.js +1 -1
  78. package/esm2015/components/input-card/index.js +1 -1
  79. package/esm2015/components/input-card/input-card.component.js +73 -60
  80. package/esm2015/components/input-card/input-card.module.js +24 -13
  81. package/esm2015/components/input-card/taiga-ui-addon-commerce-components-input-card.js +1 -1
  82. package/esm2015/components/input-card-grouped/index.js +1 -1
  83. package/esm2015/components/input-card-grouped/input-card-grouped.component.js +125 -109
  84. package/esm2015/components/input-card-grouped/input-card-grouped.module.js +45 -15
  85. package/esm2015/components/input-card-grouped/input-card-grouped.providers.js +20 -17
  86. package/esm2015/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.js +1 -1
  87. package/esm2015/components/input-cvc/index.js +1 -1
  88. package/esm2015/components/input-cvc/input-cvc.component.js +50 -41
  89. package/esm2015/components/input-cvc/input-cvc.module.js +26 -13
  90. package/esm2015/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.js +1 -1
  91. package/esm2015/components/input-expire/index.js +1 -1
  92. package/esm2015/components/input-expire/input-expire.component.js +46 -38
  93. package/esm2015/components/input-expire/input-expire.module.js +24 -13
  94. package/esm2015/components/input-expire/taiga-ui-addon-commerce-components-input-expire.js +1 -1
  95. package/esm2015/components/money/index.js +1 -1
  96. package/esm2015/components/money/money-options.js +1 -1
  97. package/esm2015/components/money/money.component.js +46 -33
  98. package/esm2015/components/money/money.module.js +23 -17
  99. package/esm2015/components/money/pipes/fraction-part.pipe.js +13 -12
  100. package/esm2015/components/money/pipes/integer-part.pipe.js +15 -14
  101. package/esm2015/components/money/pipes/sign-symbol.pipe.js +10 -8
  102. package/esm2015/components/money/taiga-ui-addon-commerce-components-money.js +1 -1
  103. package/esm2015/components/money/utils/format-fraction-part.js +1 -1
  104. package/esm2015/components/money/utils/format-sign-symbol.js +1 -1
  105. package/esm2015/components/taiga-ui-addon-commerce-components.js +1 -1
  106. package/esm2015/constants/card-holder-mask.js +1 -1
  107. package/esm2015/constants/card-mask.js +1 -1
  108. package/esm2015/constants/default-card-validator.js +3 -3
  109. package/esm2015/constants/index.js +1 -1
  110. package/esm2015/constants/taiga-ui-addon-commerce-constants.js +1 -1
  111. package/esm2015/enums/currency-code.js +48 -7
  112. package/esm2015/enums/currency.js +48 -7
  113. package/esm2015/enums/index.js +1 -3
  114. package/esm2015/enums/taiga-ui-addon-commerce-enums.js +1 -1
  115. package/esm2015/index.js +3 -1
  116. package/esm2015/interfaces/card.js +2 -1
  117. package/esm2015/interfaces/index.js +2 -1
  118. package/esm2015/interfaces/taiga-ui-addon-commerce-interfaces.js +2 -1
  119. package/esm2015/pipes/currency/currency.module.js +14 -11
  120. package/esm2015/pipes/currency/currency.pipe.js +14 -12
  121. package/esm2015/pipes/format-card/format-card.module.js +14 -11
  122. package/esm2015/pipes/format-card/format-card.pipe.js +10 -8
  123. package/esm2015/pipes/index.js +1 -1
  124. package/esm2015/pipes/taiga-ui-addon-commerce-pipes.js +1 -1
  125. package/esm2015/taiga-ui-addon-commerce.js +1 -1
  126. package/esm2015/tokens/i18n.js +4 -4
  127. package/esm2015/tokens/index.js +1 -1
  128. package/esm2015/tokens/taiga-ui-addon-commerce-tokens.js +1 -1
  129. package/esm2015/types/code-length.js +2 -1
  130. package/esm2015/types/currency-variants.js +2 -1
  131. package/esm2015/types/index.js +5 -1
  132. package/esm2015/types/money-sign.js +2 -1
  133. package/esm2015/types/payment-system.js +2 -0
  134. package/esm2015/types/taiga-ui-addon-commerce-types.js +2 -1
  135. package/esm2015/utils/create-auto-corrected-expire-pipe.js +1 -1
  136. package/esm2015/utils/format-currency.js +7 -12
  137. package/esm2015/utils/get-currency-symbol.js +11 -7
  138. package/esm2015/utils/get-payment-system.js +17 -47
  139. package/esm2015/utils/index.js +1 -1
  140. package/esm2015/utils/is-card-length-valid.js +9 -12
  141. package/esm2015/utils/is-card-number-valid.js +2 -5
  142. package/esm2015/utils/is-expire-valid.js +2 -7
  143. package/esm2015/utils/taiga-ui-addon-commerce-utils.js +1 -1
  144. package/esm2015/validators/card-expire.validator.js +3 -3
  145. package/esm2015/validators/card-number.validator.js +3 -3
  146. package/esm2015/validators/index.js +1 -1
  147. package/esm2015/validators/luhn.validator.js +5 -3
  148. package/esm2015/validators/taiga-ui-addon-commerce-validators.js +1 -1
  149. package/fesm2015/taiga-ui-addon-commerce-components-card.js +54 -40
  150. package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
  151. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +188 -136
  152. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  153. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +96 -70
  154. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  155. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js +73 -49
  156. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  157. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js +67 -46
  158. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  159. package/fesm2015/taiga-ui-addon-commerce-components-money.js +125 -100
  160. package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
  161. package/fesm2015/taiga-ui-addon-commerce-components.js.map +1 -1
  162. package/fesm2015/taiga-ui-addon-commerce-constants.js +2 -2
  163. package/fesm2015/taiga-ui-addon-commerce-constants.js.map +1 -1
  164. package/fesm2015/taiga-ui-addon-commerce-enums.js +95 -40
  165. package/fesm2015/taiga-ui-addon-commerce-enums.js.map +1 -1
  166. package/fesm2015/taiga-ui-addon-commerce-interfaces.js.map +1 -1
  167. package/fesm2015/taiga-ui-addon-commerce-pipes.js +45 -31
  168. package/fesm2015/taiga-ui-addon-commerce-pipes.js.map +1 -1
  169. package/fesm2015/taiga-ui-addon-commerce-tokens.js +3 -3
  170. package/fesm2015/taiga-ui-addon-commerce-tokens.js.map +1 -1
  171. package/fesm2015/taiga-ui-addon-commerce-types.js.map +1 -1
  172. package/fesm2015/taiga-ui-addon-commerce-utils.js +41 -83
  173. package/fesm2015/taiga-ui-addon-commerce-utils.js.map +1 -1
  174. package/fesm2015/taiga-ui-addon-commerce-validators.js +6 -4
  175. package/fesm2015/taiga-ui-addon-commerce-validators.js.map +1 -1
  176. package/fesm2015/taiga-ui-addon-commerce.js +2 -0
  177. package/fesm2015/taiga-ui-addon-commerce.js.map +1 -1
  178. package/interfaces/package.json +2 -5
  179. package/interfaces/taiga-ui-addon-commerce-interfaces.d.ts +1 -0
  180. package/package.json +12 -15
  181. package/pipes/currency/currency.module.d.ts +5 -0
  182. package/pipes/currency/currency.pipe.d.ts +3 -0
  183. package/pipes/format-card/format-card.module.d.ts +5 -0
  184. package/pipes/format-card/format-card.pipe.d.ts +3 -0
  185. package/pipes/package.json +2 -5
  186. package/pipes/taiga-ui-addon-commerce-pipes.d.ts +1 -0
  187. package/taiga-ui-addon-commerce.d.ts +1 -0
  188. package/tokens/package.json +2 -5
  189. package/tokens/taiga-ui-addon-commerce-tokens.d.ts +1 -0
  190. package/types/index.d.ts +1 -0
  191. package/types/money-sign.d.ts +1 -1
  192. package/types/package.json +2 -5
  193. package/types/payment-system.d.ts +1 -0
  194. package/types/taiga-ui-addon-commerce-types.d.ts +1 -0
  195. package/utils/format-currency.d.ts +1 -5
  196. package/utils/get-currency-symbol.d.ts +1 -5
  197. package/utils/get-payment-system.d.ts +7 -31
  198. package/utils/is-card-length-valid.d.ts +1 -3
  199. package/utils/is-card-number-valid.d.ts +1 -3
  200. package/utils/is-expire-valid.d.ts +1 -5
  201. package/utils/package.json +2 -5
  202. package/utils/taiga-ui-addon-commerce-utils.d.ts +1 -0
  203. package/validators/package.json +2 -5
  204. package/validators/taiga-ui-addon-commerce-validators.d.ts +1 -0
  205. package/bundles/taiga-ui-addon-commerce-components-card.umd.min.js +0 -2
  206. package/bundles/taiga-ui-addon-commerce-components-card.umd.min.js.map +0 -1
  207. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.min.js +0 -2
  208. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.min.js.map +0 -1
  209. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.min.js +0 -2
  210. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.min.js.map +0 -1
  211. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.min.js +0 -2
  212. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.min.js.map +0 -1
  213. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.min.js +0 -2
  214. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.min.js.map +0 -1
  215. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js +0 -2
  216. package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js.map +0 -1
  217. package/bundles/taiga-ui-addon-commerce-components.umd.min.js +0 -2
  218. package/bundles/taiga-ui-addon-commerce-components.umd.min.js.map +0 -1
  219. package/bundles/taiga-ui-addon-commerce-constants.umd.min.js +0 -2
  220. package/bundles/taiga-ui-addon-commerce-constants.umd.min.js.map +0 -1
  221. package/bundles/taiga-ui-addon-commerce-enums.umd.min.js +0 -2
  222. package/bundles/taiga-ui-addon-commerce-enums.umd.min.js.map +0 -1
  223. package/bundles/taiga-ui-addon-commerce-interfaces.umd.min.js +0 -2
  224. package/bundles/taiga-ui-addon-commerce-interfaces.umd.min.js.map +0 -1
  225. package/bundles/taiga-ui-addon-commerce-pipes.umd.min.js +0 -2
  226. package/bundles/taiga-ui-addon-commerce-pipes.umd.min.js.map +0 -1
  227. package/bundles/taiga-ui-addon-commerce-tokens.umd.min.js +0 -2
  228. package/bundles/taiga-ui-addon-commerce-tokens.umd.min.js.map +0 -1
  229. package/bundles/taiga-ui-addon-commerce-types.umd.min.js +0 -2
  230. package/bundles/taiga-ui-addon-commerce-types.umd.min.js.map +0 -1
  231. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js +0 -2
  232. package/bundles/taiga-ui-addon-commerce-utils.umd.min.js.map +0 -1
  233. package/bundles/taiga-ui-addon-commerce-validators.umd.min.js +0 -2
  234. package/bundles/taiga-ui-addon-commerce-validators.umd.min.js.map +0 -1
  235. package/bundles/taiga-ui-addon-commerce.umd.min.js +0 -2
  236. package/bundles/taiga-ui-addon-commerce.umd.min.js.map +0 -1
  237. package/components/card/taiga-ui-addon-commerce-components-card.metadata.json +0 -1
  238. package/components/input-card/taiga-ui-addon-commerce-components-input-card.metadata.json +0 -1
  239. package/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.metadata.json +0 -1
  240. package/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.metadata.json +0 -1
  241. package/components/input-expire/taiga-ui-addon-commerce-components-input-expire.metadata.json +0 -1
  242. package/components/money/taiga-ui-addon-commerce-components-money.metadata.json +0 -1
  243. package/components/taiga-ui-addon-commerce-components.metadata.json +0 -1
  244. package/constants/taiga-ui-addon-commerce-constants.metadata.json +0 -1
  245. package/enums/money-sign.d.ts +0 -16
  246. package/enums/payment-system.d.ts +0 -8
  247. package/enums/taiga-ui-addon-commerce-enums.metadata.json +0 -1
  248. package/esm2015/enums/money-sign.js +0 -18
  249. package/esm2015/enums/payment-system.js +0 -9
  250. package/esm5/components/card/card.component.js +0 -73
  251. package/esm5/components/card/card.module.js +0 -19
  252. package/esm5/components/card/index.js +0 -3
  253. package/esm5/components/card/taiga-ui-addon-commerce-components-card.js +0 -5
  254. package/esm5/components/index.js +0 -7
  255. package/esm5/components/input-card/index.js +0 -3
  256. package/esm5/components/input-card/input-card.component.js +0 -167
  257. package/esm5/components/input-card/input-card.module.js +0 -25
  258. package/esm5/components/input-card/taiga-ui-addon-commerce-components-input-card.js +0 -5
  259. package/esm5/components/input-card-grouped/index.js +0 -4
  260. package/esm5/components/input-card-grouped/input-card-grouped.component.js +0 -511
  261. package/esm5/components/input-card-grouped/input-card-grouped.module.js +0 -40
  262. package/esm5/components/input-card-grouped/input-card-grouped.providers.js +0 -34
  263. package/esm5/components/input-card-grouped/taiga-ui-addon-commerce-components-input-card-grouped.js +0 -5
  264. package/esm5/components/input-cvc/index.js +0 -3
  265. package/esm5/components/input-cvc/input-cvc.component.js +0 -113
  266. package/esm5/components/input-cvc/input-cvc.module.js +0 -26
  267. package/esm5/components/input-cvc/taiga-ui-addon-commerce-components-input-cvc.js +0 -5
  268. package/esm5/components/input-expire/index.js +0 -3
  269. package/esm5/components/input-expire/input-expire.component.js +0 -108
  270. package/esm5/components/input-expire/input-expire.module.js +0 -25
  271. package/esm5/components/input-expire/taiga-ui-addon-commerce-components-input-expire.js +0 -5
  272. package/esm5/components/money/index.js +0 -9
  273. package/esm5/components/money/money-options.js +0 -18
  274. package/esm5/components/money/money.component.js +0 -101
  275. package/esm5/components/money/money.module.js +0 -27
  276. package/esm5/components/money/pipes/fraction-part.pipe.js +0 -27
  277. package/esm5/components/money/pipes/integer-part.pipe.js +0 -21
  278. package/esm5/components/money/pipes/sign-symbol.pipe.js +0 -16
  279. package/esm5/components/money/taiga-ui-addon-commerce-components-money.js +0 -5
  280. package/esm5/components/money/utils/format-fraction-part.js +0 -7
  281. package/esm5/components/money/utils/format-sign-symbol.js +0 -11
  282. package/esm5/components/taiga-ui-addon-commerce-components.js +0 -5
  283. package/esm5/constants/card-holder-mask.js +0 -37
  284. package/esm5/constants/card-mask.js +0 -30
  285. package/esm5/constants/default-card-validator.js +0 -5
  286. package/esm5/constants/index.js +0 -4
  287. package/esm5/constants/taiga-ui-addon-commerce-constants.js +0 -5
  288. package/esm5/enums/currency-code.js +0 -178
  289. package/esm5/enums/currency.js +0 -178
  290. package/esm5/enums/index.js +0 -5
  291. package/esm5/enums/money-sign.js +0 -18
  292. package/esm5/enums/payment-system.js +0 -9
  293. package/esm5/enums/taiga-ui-addon-commerce-enums.js +0 -5
  294. package/esm5/index.js +0 -8
  295. package/esm5/interfaces/card.js +0 -1
  296. package/esm5/interfaces/index.js +0 -1
  297. package/esm5/interfaces/taiga-ui-addon-commerce-interfaces.js +0 -4
  298. package/esm5/pipes/currency/currency.module.js +0 -16
  299. package/esm5/pipes/currency/currency.pipe.js +0 -18
  300. package/esm5/pipes/format-card/format-card.module.js +0 -16
  301. package/esm5/pipes/format-card/format-card.pipe.js +0 -22
  302. package/esm5/pipes/index.js +0 -5
  303. package/esm5/pipes/taiga-ui-addon-commerce-pipes.js +0 -5
  304. package/esm5/taiga-ui-addon-commerce.js +0 -5
  305. package/esm5/tokens/i18n.js +0 -13
  306. package/esm5/tokens/index.js +0 -2
  307. package/esm5/tokens/taiga-ui-addon-commerce-tokens.js +0 -5
  308. package/esm5/types/code-length.js +0 -1
  309. package/esm5/types/currency-variants.js +0 -1
  310. package/esm5/types/index.js +0 -1
  311. package/esm5/types/money-sign.js +0 -1
  312. package/esm5/types/taiga-ui-addon-commerce-types.js +0 -4
  313. package/esm5/utils/create-auto-corrected-expire-pipe.js +0 -43
  314. package/esm5/utils/format-currency.js +0 -17
  315. package/esm5/utils/get-currency-symbol.js +0 -71
  316. package/esm5/utils/get-payment-system.js +0 -103
  317. package/esm5/utils/index.js +0 -8
  318. package/esm5/utils/is-card-length-valid.js +0 -25
  319. package/esm5/utils/is-card-number-valid.js +0 -21
  320. package/esm5/utils/is-expire-valid.js +0 -14
  321. package/esm5/utils/taiga-ui-addon-commerce-utils.js +0 -5
  322. package/esm5/validators/card-expire.validator.js +0 -10
  323. package/esm5/validators/card-number.validator.js +0 -9
  324. package/esm5/validators/index.js +0 -4
  325. package/esm5/validators/luhn.validator.js +0 -9
  326. package/esm5/validators/taiga-ui-addon-commerce-validators.js +0 -5
  327. package/fesm5/taiga-ui-addon-commerce-components-card.js +0 -94
  328. package/fesm5/taiga-ui-addon-commerce-components-card.js.map +0 -1
  329. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js +0 -579
  330. package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js.map +0 -1
  331. package/fesm5/taiga-ui-addon-commerce-components-input-card.js +0 -193
  332. package/fesm5/taiga-ui-addon-commerce-components-input-card.js.map +0 -1
  333. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js +0 -140
  334. package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js.map +0 -1
  335. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js +0 -134
  336. package/fesm5/taiga-ui-addon-commerce-components-input-expire.js.map +0 -1
  337. package/fesm5/taiga-ui-addon-commerce-components-money.js +0 -210
  338. package/fesm5/taiga-ui-addon-commerce-components-money.js.map +0 -1
  339. package/fesm5/taiga-ui-addon-commerce-components.js +0 -11
  340. package/fesm5/taiga-ui-addon-commerce-components.js.map +0 -1
  341. package/fesm5/taiga-ui-addon-commerce-constants.js +0 -78
  342. package/fesm5/taiga-ui-addon-commerce-constants.js.map +0 -1
  343. package/fesm5/taiga-ui-addon-commerce-enums.js +0 -389
  344. package/fesm5/taiga-ui-addon-commerce-enums.js.map +0 -1
  345. package/fesm5/taiga-ui-addon-commerce-interfaces.js +0 -4
  346. package/fesm5/taiga-ui-addon-commerce-interfaces.js.map +0 -1
  347. package/fesm5/taiga-ui-addon-commerce-pipes.js +0 -67
  348. package/fesm5/taiga-ui-addon-commerce-pipes.js.map +0 -1
  349. package/fesm5/taiga-ui-addon-commerce-tokens.js +0 -20
  350. package/fesm5/taiga-ui-addon-commerce-tokens.js.map +0 -1
  351. package/fesm5/taiga-ui-addon-commerce-types.js +0 -4
  352. package/fesm5/taiga-ui-addon-commerce-types.js.map +0 -1
  353. package/fesm5/taiga-ui-addon-commerce-utils.js +0 -298
  354. package/fesm5/taiga-ui-addon-commerce-utils.js.map +0 -1
  355. package/fesm5/taiga-ui-addon-commerce-validators.js +0 -31
  356. package/fesm5/taiga-ui-addon-commerce-validators.js.map +0 -1
  357. package/fesm5/taiga-ui-addon-commerce.js +0 -12
  358. package/fesm5/taiga-ui-addon-commerce.js.map +0 -1
  359. package/interfaces/taiga-ui-addon-commerce-interfaces.metadata.json +0 -1
  360. package/pipes/taiga-ui-addon-commerce-pipes.metadata.json +0 -1
  361. package/taiga-ui-addon-commerce.metadata.json +0 -1
  362. package/tokens/taiga-ui-addon-commerce-tokens.metadata.json +0 -1
  363. package/types/taiga-ui-addon-commerce-types.metadata.json +0 -1
  364. package/utils/taiga-ui-addon-commerce-utils.metadata.json +0 -1
  365. package/validators/taiga-ui-addon-commerce-validators.metadata.json +0 -1
@@ -1,53 +1,63 @@
1
- import { __decorate, __param } from 'tslib';
2
- import { InjectionToken, inject, EventEmitter, Optional, Self, Inject, ChangeDetectorRef, ElementRef, ViewChild, Input, Output, ContentChild, TemplateRef, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, EventEmitter, ChangeDetectorRef, ElementRef, TemplateRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, Input, Output, ContentChild, HostListener, NgModule } from '@angular/core';
4
+ import * as i4 from '@angular/forms';
3
5
  import { NgControl, FormsModule } from '@angular/forms';
4
6
  import { tuiDefaultCardValidator, TUI_CARD_MASK } from '@taiga-ui/addon-commerce/constants';
5
- import { tuiCreateAutoCorrectedExpirePipe, getPaymentSystem } from '@taiga-ui/addon-commerce/utils';
6
- import { typedFromEvent, AbstractTuiNullableControl, isNativeFocusedIn, tuiAssertIsHTMLElement, isNativeFocused, tuiDefaultProp, tuiRequiredSetter, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableModule, TuiHoveredModule, TuiActiveZoneModule, TuiInputModeModule, TuiMapperPipeModule, TuiPreventDefaultModule, TuiLetModule } from '@taiga-ui/cdk';
7
- import { TUI_DIGIT_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_MODE, TUI_TEXTFIELD_APPEARANCE, TuiDataListDirective, TuiDataListComponent, MODE_PROVIDER, TUI_DATA_LIST_HOST, TuiSvgModule, TuiWrapperModule, TuiDropdownModule } from '@taiga-ui/core';
8
- import { combineLatest, of, Observable } from 'rxjs';
7
+ import { tuiCreateAutoCorrectedExpirePipe, tuiGetPaymentSystem } from '@taiga-ui/addon-commerce/utils';
8
+ import * as i3 from '@taiga-ui/cdk';
9
+ import { tuiTypedFromEvent, AbstractTuiNullableControl, tuiIsNativeFocusedIn, tuiIsElement, tuiIsInput, tuiIsNativeFocused, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, tuiRequiredSetter, tuiPure, TuiFocusableModule, TuiActiveZoneModule, TuiInputModeModule, TuiMapperPipeModule, TuiPreventDefaultModule, TuiLetModule } from '@taiga-ui/cdk';
10
+ import * as i1 from '@taiga-ui/core';
11
+ import { TUI_DIGIT_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_MODE, TUI_TEXTFIELD_APPEARANCE, tuiAsDataListHost, MODE_PROVIDER, TuiDataListDirective, TuiDataListComponent, TuiSvgModule, TuiWrapperModule, TuiDropdownModule } from '@taiga-ui/core';
9
12
  import { WINDOW } from '@ng-web-apis/common';
10
13
  import { TUI_CARD_NUMBER_TEXTS, TUI_CARD_EXPIRY_TEXTS, TUI_CARD_CVC_TEXTS } from '@taiga-ui/addon-commerce/tokens';
11
14
  import { TUI_MEDIA } from '@taiga-ui/core/tokens';
15
+ import * as i8 from 'rxjs';
16
+ import { combineLatest, of } from 'rxjs';
12
17
  import { startWith, switchMap, map } from 'rxjs/operators';
18
+ import * as i2 from '@angular/common';
13
19
  import { CommonModule } from '@angular/common';
14
- import { TuiFormatCardModule } from '@taiga-ui/addon-commerce/pipes';
15
- import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
20
+ import * as i5 from 'angular2-text-mask';
16
21
  import { TextMaskModule } from 'angular2-text-mask';
22
+ import * as i6 from '@tinkoff/ng-polymorpheus';
23
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
24
+ import * as i7 from '@taiga-ui/addon-commerce/pipes';
25
+ import { TuiFormatCardModule } from '@taiga-ui/addon-commerce/pipes';
17
26
 
18
27
  const TUI_INPUT_CARD_GROUPED_TEXTS = new InjectionToken(`InputCardGrouped texts`, {
19
- factory: () => inputGroupedTextsFactory(inject(WINDOW), inject(TUI_CARD_NUMBER_TEXTS), inject(TUI_CARD_EXPIRY_TEXTS), inject(TUI_CARD_CVC_TEXTS), inject(TUI_MEDIA)),
28
+ factory: () => {
29
+ const windowRef = inject(WINDOW);
30
+ const cardNumberTexts = inject(TUI_CARD_NUMBER_TEXTS);
31
+ const expiryTexts = inject(TUI_CARD_EXPIRY_TEXTS);
32
+ const cvcTexts = inject(TUI_CARD_CVC_TEXTS);
33
+ const { desktopSmall } = inject(TUI_MEDIA);
34
+ const media = windowRef.matchMedia(`screen and (min-width: ${(desktopSmall - 1) / 16}em)`);
35
+ return tuiTypedFromEvent(media, `change`).pipe(startWith(null), switchMap(() => combineLatest([
36
+ of(Number(media.matches)),
37
+ cardNumberTexts,
38
+ expiryTexts,
39
+ cvcTexts,
40
+ ])), map(([index, cardNumber, expiry, cvcTexts]) => ({
41
+ cardNumberText: cardNumber[index],
42
+ expiryText: expiry[index],
43
+ cvcText: cvcTexts[index],
44
+ })));
45
+ },
20
46
  });
21
- // eslint-disable-next-line @typescript-eslint/naming-convention
22
- function inputGroupedTextsFactory(windowRef, cardNumberTexts, expiryTexts, cvcTexts, { desktopSmall }) {
23
- const media = windowRef.matchMedia(`screen and (min-width: ${(desktopSmall - 1) / 16}em)`);
24
- return typedFromEvent(media, `change`).pipe(startWith(null), switchMap(() => combineLatest([
25
- of(Number(media.matches)),
26
- cardNumberTexts,
27
- expiryTexts,
28
- cvcTexts,
29
- ])), map(([index, cardNumber, expiry, cvcTexts]) => ({
30
- cardNumberText: cardNumber[index],
31
- expiryText: expiry[index],
32
- cvcText: cvcTexts[index],
33
- })));
34
- }
35
47
 
36
- var TuiInputCardGroupedComponent_1;
37
48
  const STUB = {
38
49
  card: ``,
39
50
  expire: ``,
40
51
  cvc: ``,
41
52
  };
42
53
  const ICONS = {
43
- ["mir" /* Mir */]: `tuiIconMir`,
44
- ["visa" /* Visa */]: `tuiIconVisa`,
45
- ["electron" /* Electron */]: `tuiIconElectron`,
46
- ["mastercard" /* Mastercard */]: `tuiIconMastercard`,
47
- ["maestro" /* Maestro */]: `tuiIconMaestro`,
54
+ mir: `tuiIconMir`,
55
+ visa: `tuiIconVisa`,
56
+ electron: `tuiIconElectron`,
57
+ mastercard: `tuiIconMastercard`,
58
+ maestro: `tuiIconMaestro`,
48
59
  };
49
- // @dynamic
50
- let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
60
+ class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
51
61
  constructor(control, changeDetectorRef, elementRef, mode$, cardGroupedTexts$, appearance) {
52
62
  super(control, changeDetectorRef);
53
63
  this.elementRef = elementRef;
@@ -56,7 +66,7 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
56
66
  this.appearance = appearance;
57
67
  this.expireInert = false;
58
68
  this.autocompleteEnabled = false;
59
- this.cardSrc = null; // TODO: 3.0 will be deleted `null` in v3.0
69
+ this.cardSrc = ``;
60
70
  this.exampleText = `0000 0000 0000 0000`;
61
71
  this.cardValidator = tuiDefaultCardValidator;
62
72
  this.autofilledChange = new EventEmitter();
@@ -96,19 +106,19 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
96
106
  return this.inputCard ? this.inputCard.nativeElement : null;
97
107
  }
98
108
  get focused() {
99
- return this.open || isNativeFocusedIn(this.elementRef.nativeElement);
109
+ return this.open || tuiIsNativeFocusedIn(this.elementRef.nativeElement);
100
110
  }
101
111
  get card() {
102
- var _a, _b;
103
- return (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.card) !== null && _b !== void 0 ? _b : ``;
112
+ var _a;
113
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.card) || ``;
104
114
  }
105
115
  get expire() {
106
- var _a, _b;
107
- return (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.expire) !== null && _b !== void 0 ? _b : ``;
116
+ var _a;
117
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.expire) || ``;
108
118
  }
109
119
  get cvc() {
110
- var _a, _b;
111
- return (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.cvc) !== null && _b !== void 0 ? _b : ``;
120
+ var _a;
121
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.cvc) || ``;
112
122
  }
113
123
  get hasCleaner() {
114
124
  var _a, _b;
@@ -122,8 +132,7 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
122
132
  return paymentSystem && ICONS[paymentSystem];
123
133
  }
124
134
  get icon() {
125
- var _a;
126
- return (_a = this.cardSrc) !== null && _a !== void 0 ? _a : this.defaultIcon;
135
+ return this.cardSrc || this.defaultIcon;
127
136
  }
128
137
  get bin() {
129
138
  return !this.value || this.value.card.length < 6
@@ -243,20 +252,17 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
243
252
  this.updateFocused(active);
244
253
  this.open = active && this.open;
245
254
  }
246
- onHovered(hovered) {
247
- this.updateHovered(hovered);
248
- }
249
255
  onMouseDown(event) {
250
- tuiAssertIsHTMLElement(event.target);
251
- if (event.target.matches(`input`)) {
256
+ if (tuiIsElement(event.target) && tuiIsInput(event.target)) {
252
257
  return;
253
258
  }
254
259
  event.preventDefault();
255
260
  this.focusInput();
256
261
  }
257
262
  onScroll({ currentTarget }) {
258
- tuiAssertIsHTMLElement(currentTarget);
259
- currentTarget.scrollLeft = 0;
263
+ if (tuiIsElement(currentTarget)) {
264
+ currentTarget.scrollLeft = 0;
265
+ }
260
266
  }
261
267
  clear() {
262
268
  this.updateValue(null);
@@ -285,10 +291,10 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
285
291
  (_a = this.inputCVC) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
286
292
  }
287
293
  get cardFocused() {
288
- return !!this.inputCard && isNativeFocused(this.inputCard.nativeElement);
294
+ return !!this.inputCard && tuiIsNativeFocused(this.inputCard.nativeElement);
289
295
  }
290
296
  get paymentSystem() {
291
- return this.value && getPaymentSystem(this.value.card);
297
+ return this.value && tuiGetPaymentSystem(this.value.card);
292
298
  }
293
299
  isFocusable(card) {
294
300
  return this.focusable && (this.cardValidator(card) || this.cardPrefilled);
@@ -317,113 +323,140 @@ let TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = class TuiInp
317
323
  focusInput() {
318
324
  var _a, _b, _c;
319
325
  const element = (this.cardFocusable && ((_a = this.inputCard) === null || _a === void 0 ? void 0 : _a.nativeElement)) ||
320
- (this.expireFocusable && ((_b = this.inputExpire) === null || _b === void 0 ? void 0 : _b.nativeElement)) || ((_c = this.inputCVC) === null || _c === void 0 ? void 0 : _c.nativeElement);
326
+ (this.expireFocusable && ((_b = this.inputExpire) === null || _b === void 0 ? void 0 : _b.nativeElement)) ||
327
+ ((_c = this.inputCVC) === null || _c === void 0 ? void 0 : _c.nativeElement);
321
328
  element === null || element === void 0 ? void 0 : element.focus();
322
329
  }
323
- };
324
- TuiInputCardGroupedComponent.ctorParameters = () => [
325
- { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
326
- { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
327
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
328
- { type: Observable, decorators: [{ type: Inject, args: [TUI_MODE,] }] },
329
- { type: Observable, decorators: [{ type: Inject, args: [TUI_INPUT_CARD_GROUPED_TEXTS,] }] },
330
- { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] }
331
- ];
332
- __decorate([
333
- ViewChild(`inputCard`)
334
- ], TuiInputCardGroupedComponent.prototype, "inputCard", void 0);
335
- __decorate([
336
- ViewChild(`inputExpire`)
337
- ], TuiInputCardGroupedComponent.prototype, "inputExpire", void 0);
338
- __decorate([
339
- ViewChild(`inputCVC`)
340
- ], TuiInputCardGroupedComponent.prototype, "inputCVC", void 0);
330
+ }
331
+ TuiInputCardGroupedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: ElementRef }, { token: TUI_MODE }, { token: TUI_INPUT_CARD_GROUPED_TEXTS }, { token: TUI_TEXTFIELD_APPEARANCE }], target: i0.ɵɵFactoryTarget.Component });
332
+ TuiInputCardGroupedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputCardGroupedComponent, selector: "tui-input-card-grouped", inputs: { autocompleteEnabled: "autocompleteEnabled", cardSrc: "cardSrc", exampleText: "exampleText", cardValidator: "cardValidator", codeLength: "codeLength" }, outputs: { autofilledChange: "autofilledChange", binChange: "binChange" }, host: { attributes: { "data-size": "l" }, listeners: { "$.data-mode.attr": "mode$", "keydown.esc": "onEsc()", "keydown.arrowDown.prevent": "onArrow($event.target,1)", "keydown.arrowUp.prevent": "onArrow($event.target,-1)" } }, providers: [
333
+ tuiAsFocusableItemAccessor(TuiInputCardGroupedComponent),
334
+ tuiAsControl(TuiInputCardGroupedComponent),
335
+ tuiAsDataListHost(TuiInputCardGroupedComponent),
336
+ MODE_PROVIDER,
337
+ ], queries: [{ propertyName: "dropdown", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }, { propertyName: "datalist", first: true, predicate: TuiDataListComponent, descendants: true }], viewQueries: [{ propertyName: "inputCard", first: true, predicate: ["inputCard"], descendants: true }, { propertyName: "inputExpire", first: true, predicate: ["inputExpire"], descendants: true }, { propertyName: "inputCVC", first: true, predicate: ["inputCVC"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"cardGroupedTexts$ | async as texts\"\n tuiWrapper\n class=\"t-common-wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [tuiDropdownManual]=\"open\"\n [tuiDropdown]=\"dropdown || ''\"\n (tuiActiveZoneChange)=\"onActiveZoneChange($event)\"\n (scroll)=\"onScroll($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"t-wrapper\">\n <label\n *tuiLet=\"value?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n tuiPreventDefault=\"click\"\n >\n <input\n #inputCard\n type=\"text\"\n automation-id=\"tui-input-card-grouped__card\"\n tuiInputMode=\"numeric\"\n class=\"t-input t-input_card\"\n [class.t-input_inert]=\"cardPrefilled\"\n [class.t-input_hidden]=\"!card.length && focused\"\n [attr.id]=\"idCard\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [autocomplete]=\"autocompleteCard\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"maskCard\"\n [tuiFocusable]=\"cardFocusable\"\n [ngModel]=\"formattedCard\"\n (ngModelChange)=\"onCardChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n aria-hidden=\"true\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"isCardCollapsed\"\n >\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [class.t-value_collapsed]=\"isCardCollapsed\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.cardNumberText }}\n </span>\n </label>\n </div>\n <div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"isCardCollapsed\"\n >\n <label tuiPreventDefault=\"click\">\n <input\n #inputExpire\n type=\"text\"\n placeholder=\"00/00\"\n automation-id=\"tui-input-card-grouped__expire\"\n tuiInputMode=\"numeric\"\n class=\"t-input\"\n [class.t-input_inert]=\"!expireFocusable\"\n [attr.id]=\"idExpire\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocompleteExpire\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiFocusable]=\"expireFocusable\"\n [textMask]=\"maskExpire\"\n [ngModel]=\"expire\"\n (ngModelChange)=\"onExpireChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.expiryText }}\n </span>\n </label>\n </div>\n <div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"isCardCollapsed\"\n >\n <label tuiPreventDefault=\"click\">\n <input\n #inputCVC\n type=\"text\"\n automation-id=\"tui-input-card-grouped__cvc\"\n tuiInputMode=\"numeric\"\n class=\"t-input\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [attr.id]=\"idCVC\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || cvcPrefilled\"\n [autocomplete]=\"autocompleteCVC\"\n [textMask]=\"maskCVC\"\n [tuiFocusable]=\"cvcFocusable\"\n [ngModel]=\"cvc\"\n (ngModelChange)=\"onCVCChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.cvcText }}\n </span>\n </label>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"icon\"\n class=\"t-icon-outlet\"\n >\n <tui-svg\n *polymorpheusOutlet=\"icon as text\"\n automation-id=\"tui-input-card-grouped__icon\"\n class=\"t-card\"\n [src]=\"text\"\n ></tui-svg>\n </div>\n <tui-svg\n *ngIf=\"hasCleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"t-icon\"\n (click)=\"clear()\"\n ></tui-svg>\n <tui-svg\n *ngIf=\"hasDropdown\"\n src=\"tuiIconChevronDownLarge\"\n class=\"t-icon\"\n [class.t-icon_rotated]=\"open\"\n (click)=\"toggle()\"\n ></tui-svg>\n </div>\n</div>\n", styles: [":host{display:block;height:var(--tui-height-l);width:29.5rem;border-radius:var(--tui-radius-m)}:host[data-mode=onDark]{--tui-autofill: var(--tui-autofill-night)}:host :host-context(tui-root._mobile){width:18rem}.t-outline{height:100%;width:100%}.t-common-wrapper{position:relative;height:100%;width:100%;overflow:hidden}.t-wrapper{transition-property:transform;transition-duration:.3s;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;width:100%;height:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate(100%)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate(100%)}.t-wrapper_active{transform:translate(6.5625rem)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate(4.125rem)}.t-card{width:2rem;height:2rem;margin-right:.625rem}.t-collapsed{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;margin:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border:solid transparent;border-width:0 0 0 0;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:0;border-inline-start-width:var(--border-start, 0);border-inline-end-width:0;border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none;border:0;padding-left:1rem;line-height:2.25rem;pointer-events:none}.t-collapsed:-webkit-autofill,.t-collapsed:-webkit-autofill:hover,.t-collapsed:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}:host[data-mode=onDark] .t-collapsed:-webkit-autofill,.t-collapsed :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill,.t-collapsed :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill,:host[data-mode=onDark] .t-collapsed:-webkit-autofill:hover,.t-collapsed :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill:hover,.t-collapsed :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill:hover,:host[data-mode=onDark] .t-collapsed:-webkit-autofill:focus,.t-collapsed :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill:focus,.t-collapsed :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill-night) inset!important}:host[data-size=s] .t-collapsed,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-collapsed :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=l] .t-collapsed,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-collapsed :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-collapsed,.t-collapsed :host-context(tui-primitive-textfield._disabled),.t-collapsed :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-collapsed,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-collapsed:-webkit-autofill+.t-content .t-placeholder,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-collapsed,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.125rem}:host[data-size=m]:not(._label-outside) .t-collapsed:-webkit-autofill+.t-content .t-placeholder,.t-collapsed :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-collapsed,.t-collapsed :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em;-webkit-user-select:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;width:100%;height:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:.3s;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate(100%)}.t-value_collapsed{transform:translate(4ch)}.t-input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;margin:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border:solid transparent;border-width:0 0 0 0;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:0;border-inline-start-width:var(--border-start, 0);border-inline-end-width:0;border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none;transition-property:background;transition-duration:.3s;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border:0;padding:0 1rem}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}:host[data-mode=onDark] .t-input:-webkit-autofill,.t-input :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill,.t-input :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill,:host[data-mode=onDark] .t-input:-webkit-autofill:hover,.t-input :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill:hover,.t-input :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill:hover,:host[data-mode=onDark] .t-input:-webkit-autofill:focus,.t-input :host-context(tui-primitive-textfield[data-mode=\"onDark\"]):-webkit-autofill:focus,.t-input :host-context(tui-text-area[data-mode=\"onDark\"]):-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill-night) inset!important}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.125rem}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em;-webkit-user-select:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03)}.t-input::placeholder{color:var(--tui-text-03)}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}.t-input_card:not(.t-input_hidden),:host[data-mode=onDark] .t-input_card:not(.t-input_hidden),.t-input_card:not(.t-input_hidden)::placeholder,:host[data-mode=onDark] .t-input_card:not(.t-input_hidden)::placeholder,.t-input_card:not(.t-input_hidden):-webkit-autofill,:host[data-mode=onDark] .t-input_card:not(.t-input_hidden):-webkit-autofill{color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input_card::-webkit-credit-card-auto-fill-button,:host[data-mode=onDark] .t-input_card::-webkit-credit-card-auto-fill-button{pointer-events:none;background-color:transparent!important;-webkit-mask-image:none!important}.t-input_inert{pointer-events:none}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;height:100%}.t-icon-outlet{display:flex}.t-icon{transition-property:transform;transition-property:all;transition-duration:.3s;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-icon:hover{color:var(--tui-text-02)}:host._readonly .t-icon,:host._disabled .t-icon{pointer-events:none}:host[data-mode=onDark] .t-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-icon:hover{color:var(--tui-text-01-night)}.t-icon_rotated{transform:rotate(180deg)}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:.3s;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);margin:1.125rem 1rem;line-height:1.25rem}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size=l] .t-placeholder{font-size:.9375rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size=m][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size=l][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size=m][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size=l][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i1.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i1.TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])" }, { type: i1.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i3.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i3.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]" }, { type: i3.TuiInputModeDirective, selector: "input[tuiInputMode]", inputs: ["tuiInputMode"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe, "tuiFormatCard": i7.TuiFormatCardPipe, "tuiMapper": i3.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
341
338
  __decorate([
342
- Input(),
343
339
  tuiDefaultProp()
344
340
  ], TuiInputCardGroupedComponent.prototype, "autocompleteEnabled", void 0);
345
341
  __decorate([
346
- Input(),
347
342
  tuiDefaultProp()
348
343
  ], TuiInputCardGroupedComponent.prototype, "cardSrc", void 0);
349
344
  __decorate([
350
- Input(),
351
345
  tuiDefaultProp()
352
346
  ], TuiInputCardGroupedComponent.prototype, "exampleText", void 0);
353
347
  __decorate([
354
- Input(),
355
348
  tuiDefaultProp()
356
349
  ], TuiInputCardGroupedComponent.prototype, "cardValidator", void 0);
357
350
  __decorate([
358
- Input(),
359
351
  tuiRequiredSetter()
360
352
  ], TuiInputCardGroupedComponent.prototype, "codeLength", null);
361
- __decorate([
362
- Output()
363
- ], TuiInputCardGroupedComponent.prototype, "autofilledChange", void 0);
364
- __decorate([
365
- Output()
366
- ], TuiInputCardGroupedComponent.prototype, "binChange", void 0);
367
- __decorate([
368
- ContentChild(TuiDataListDirective, { read: TemplateRef })
369
- ], TuiInputCardGroupedComponent.prototype, "dropdown", void 0);
370
- __decorate([
371
- ContentChild(TuiDataListComponent)
372
- ], TuiInputCardGroupedComponent.prototype, "datalist", void 0);
373
- __decorate([
374
- HostListener(`keydown.esc`)
375
- ], TuiInputCardGroupedComponent.prototype, "onEsc", null);
376
- __decorate([
377
- HostListener(`keydown.arrowDown.prevent`, [`$event.target`, `1`]),
378
- HostListener(`keydown.arrowUp.prevent`, [`$event.target`, `-1`])
379
- ], TuiInputCardGroupedComponent.prototype, "onArrow", null);
380
353
  __decorate([
381
354
  tuiPure
382
355
  ], TuiInputCardGroupedComponent.prototype, "isFocusable", null);
383
- TuiInputCardGroupedComponent = TuiInputCardGroupedComponent_1 = __decorate([
384
- Component({
385
- selector: `tui-input-card-grouped`,
386
- template: "<tui-wrapper\n *ngIf=\"cardGroupedTexts$ | async as texts\"\n class=\"t-common-wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n [tuiDropdown]=\"open\"\n [tuiDropdownContent]=\"dropdown || ''\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiActiveZoneChange)=\"onActiveZoneChange($event)\"\n (scroll)=\"onScroll($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"t-wrapper\">\n <label\n *tuiLet=\"value?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n tuiPreventDefault=\"click\"\n >\n <input\n #inputCard\n type=\"text\"\n automation-id=\"tui-input-card-grouped__card\"\n tuiInputMode=\"numeric\"\n class=\"t-input t-input_card\"\n [class.t-input_inert]=\"cardPrefilled\"\n [class.t-input_hidden]=\"!card.length && focused\"\n [attr.id]=\"idCard\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [autocomplete]=\"autocompleteCard\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"maskCard\"\n [tuiFocusable]=\"cardFocusable\"\n [ngModel]=\"formattedCard\"\n (ngModelChange)=\"onCardChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n aria-hidden=\"true\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"isCardCollapsed\"\n >\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [class.t-value_collapsed]=\"isCardCollapsed\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.cardNumberText }}\n </span>\n </label>\n </div>\n <div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"isCardCollapsed\"\n >\n <label tuiPreventDefault=\"click\">\n <input\n #inputExpire\n type=\"text\"\n placeholder=\"00/00\"\n automation-id=\"tui-input-card-grouped__expire\"\n tuiInputMode=\"numeric\"\n class=\"t-input\"\n [class.t-input_inert]=\"!expireFocusable\"\n [attr.id]=\"idExpire\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocompleteExpire\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [tuiFocusable]=\"expireFocusable\"\n [textMask]=\"maskExpire\"\n [ngModel]=\"expire\"\n (ngModelChange)=\"onExpireChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.expiryText }}\n </span>\n </label>\n </div>\n <div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"isCardCollapsed\"\n >\n <label tuiPreventDefault=\"click\">\n <input\n #inputCVC\n type=\"text\"\n automation-id=\"tui-input-card-grouped__cvc\"\n tuiInputMode=\"numeric\"\n class=\"t-input\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [attr.id]=\"idCVC\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || cvcPrefilled\"\n [autocomplete]=\"autocompleteCVC\"\n [textMask]=\"maskCVC\"\n [tuiFocusable]=\"cvcFocusable\"\n [ngModel]=\"cvc\"\n (ngModelChange)=\"onCVCChange($event)\"\n (focus)=\"(0)\"\n />\n <span\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n {{ texts.cvcText }}\n </span>\n </label>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"icon\"\n polymorpheus-outlet\n class=\"t-icon-outlet\"\n [content]=\"icon\"\n >\n <ng-template let-icon>\n <tui-svg\n automation-id=\"tui-input-card-grouped__icon\"\n class=\"t-card\"\n [src]=\"icon\"\n ></tui-svg>\n </ng-template>\n </div>\n <tui-svg\n *ngIf=\"hasCleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"t-icon\"\n (click)=\"clear()\"\n ></tui-svg>\n <tui-svg\n *ngIf=\"hasDropdown\"\n src=\"tuiIconChevronDownLarge\"\n class=\"t-icon\"\n [class.t-icon_rotated]=\"open\"\n (click)=\"toggle()\"\n ></tui-svg>\n </div>\n</tui-wrapper>\n",
387
- changeDetection: ChangeDetectionStrategy.OnPush,
388
- providers: [
389
- MODE_PROVIDER,
390
- {
391
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
392
- useExisting: forwardRef(() => TuiInputCardGroupedComponent_1),
393
- },
394
- {
395
- provide: TUI_DATA_LIST_HOST,
396
- useExisting: forwardRef(() => TuiInputCardGroupedComponent_1),
397
- },
398
- ],
399
- host: {
400
- '($.data-mode.attr)': `mode$`,
401
- 'data-size': `l`,
402
- },
403
- styles: [":host{display:block;height:var(--tui-height-l);width:29.5rem;border-radius:var(--tui-radius-m)}:host[data-mode=onDark]{--tui-autofill:var(--tui-autofill-night)}:host :host-context(tui-root._mobile){width:18rem}.t-outline{height:100%;width:100%}.t-common-wrapper{position:relative;height:100%;width:100%;overflow:hidden}.t-wrapper{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;width:100%;height:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate3d(100%,0,0)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate3d(100%,0,0)}.t-wrapper_active{transform:translate3d(6.5625rem,0,0)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate3d(4.125rem,0,0)}.t-card{width:2rem;height:2rem;margin-right:.625rem}.t-collapsed{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0 0 0 1rem;margin:0;border-radius:inherit;background:0 0;font-size:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border:0;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none;line-height:2.25rem;pointer-events:none}.t-collapsed:-webkit-autofill,.t-collapsed:-webkit-autofill:focus,.t-collapsed:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-collapsed :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,.t-collapsed :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,.t-collapsed :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,.t-collapsed :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill,.t-collapsed :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill:focus,.t-collapsed :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] .t-collapsed:-webkit-autofill,:host[data-mode=onDark] .t-collapsed:-webkit-autofill:focus,:host[data-mode=onDark] .t-collapsed:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill-night) inset!important}.t-collapsed :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),.t-collapsed :host-context(tui-text-area[data-size='s']):not(tui-text-area),:host[data-size='s'] .t-collapsed{padding:0 var(--tui-padding-s)}.t-collapsed :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),.t-collapsed :host-context(tui-text-area[data-size='l']):not(tui-text-area),:host[data-size='l'] .t-collapsed{padding:0 var(--tui-padding-l)}.t-collapsed :host-context(tui-primitive-textfield._disabled),.t-collapsed :host-context(tui-text-area._disabled),:host._disabled .t-collapsed{pointer-events:none}.t-collapsed :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) .t-collapsed{padding-top:1.25rem}.t-collapsed :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder,:host[data-size='l']:not(._label-outside) .t-collapsed:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}.t-collapsed :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) .t-collapsed{padding-top:1.125rem}.t-collapsed :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder,:host[data-size='m']:not(._label-outside) .t-collapsed:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}.t-collapsed :host-context(tui-primitive-textfield._hidden),:host._hidden input.t-collapsed{opacity:0;text-indent:-10em;-webkit-user-select:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;width:100%;height:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate3d(100%,0,0)}.t-value_collapsed{transform:translate3d(4ch,0,0)}.t-input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0 1rem;margin:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border:0;border-width:0 var(--border-end,0) 0 var(--border-start,0);border-inline-start-width:var(--border-start,0);border-inline-end-width:var(--border-end,0);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none;transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out}.t-input:-webkit-autofill,.t-input:-webkit-autofill:focus,.t-input:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,.t-input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,.t-input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,.t-input :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill,.t-input :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill:focus,.t-input :host-context(tui-text-area[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] .t-input:-webkit-autofill,:host[data-mode=onDark] .t-input:-webkit-autofill:focus,:host[data-mode=onDark] .t-input:-webkit-autofill:hover{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill-night) inset!important}.t-input :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),.t-input :host-context(tui-text-area[data-size='s']):not(tui-text-area),:host[data-size='s'] .t-input{padding:0 var(--tui-padding-s)}.t-input :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),.t-input :host-context(tui-text-area[data-size='l']):not(tui-text-area),:host[data-size='l'] .t-input{padding:0 var(--tui-padding-l)}.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-text-area._disabled),:host._disabled .t-input{pointer-events:none}.t-input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) .t-input{padding-top:1.25rem}.t-input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder,:host[data-size='l']:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}.t-input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) .t-input{padding-top:1.125rem}.t-input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.t-content .t-placeholder,:host[data-size='m']:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}.t-input :host-context(tui-primitive-textfield._hidden),:host._hidden input.t-input{opacity:0;text-indent:-10em;-webkit-user-select:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03)}.t-input::placeholder{color:var(--tui-text-03)}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}.t-input_card:not(.t-input_hidden),.t-input_card:not(.t-input_hidden):-webkit-autofill,.t-input_card:not(.t-input_hidden)::placeholder,:host[data-mode=onDark] .t-input_card:not(.t-input_hidden),:host[data-mode=onDark] .t-input_card:not(.t-input_hidden):-webkit-autofill,:host[data-mode=onDark] .t-input_card:not(.t-input_hidden)::placeholder{color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input_card::-webkit-credit-card-auto-fill-button,:host[data-mode=onDark] .t-input_card::-webkit-credit-card-auto-fill-button{pointer-events:none;background-color:transparent!important;-webkit-mask-image:none!important}.t-input_inert{pointer-events:none}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;height:100%}.t-icon-outlet{display:inherit}.t-icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-icon:hover{color:var(--tui-text-02)}:host._disabled .t-icon,:host._readonly .t-icon{pointer-events:none}:host[data-mode=onDark] .t-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-icon:hover{color:var(--tui-text-01-night)}.t-icon_rotated{transform:rotate(180deg)}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);margin:1.125rem 1rem;line-height:1.25rem}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}"]
404
- }),
405
- __param(0, Optional()),
406
- __param(0, Self()),
407
- __param(0, Inject(NgControl)),
408
- __param(1, Inject(ChangeDetectorRef)),
409
- __param(2, Inject(ElementRef)),
410
- __param(3, Inject(TUI_MODE)),
411
- __param(4, Inject(TUI_INPUT_CARD_GROUPED_TEXTS)),
412
- __param(5, Inject(TUI_TEXTFIELD_APPEARANCE))
413
- ], TuiInputCardGroupedComponent);
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedComponent, decorators: [{
357
+ type: Component,
358
+ args: [{
359
+ selector: `tui-input-card-grouped`,
360
+ templateUrl: `./input-card-grouped.template.html`,
361
+ styleUrls: [`./input-card-grouped.style.less`],
362
+ changeDetection: ChangeDetectionStrategy.OnPush,
363
+ providers: [
364
+ tuiAsFocusableItemAccessor(TuiInputCardGroupedComponent),
365
+ tuiAsControl(TuiInputCardGroupedComponent),
366
+ tuiAsDataListHost(TuiInputCardGroupedComponent),
367
+ MODE_PROVIDER,
368
+ ],
369
+ host: {
370
+ '($.data-mode.attr)': `mode$`,
371
+ 'data-size': `l`,
372
+ },
373
+ }]
374
+ }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
375
+ type: Optional
376
+ }, {
377
+ type: Self
378
+ }, {
379
+ type: Inject,
380
+ args: [NgControl]
381
+ }] }, { type: i0.ChangeDetectorRef, decorators: [{
382
+ type: Inject,
383
+ args: [ChangeDetectorRef]
384
+ }] }, { type: i0.ElementRef, decorators: [{
385
+ type: Inject,
386
+ args: [ElementRef]
387
+ }] }, { type: i8.Observable, decorators: [{
388
+ type: Inject,
389
+ args: [TUI_MODE]
390
+ }] }, { type: i8.Observable, decorators: [{
391
+ type: Inject,
392
+ args: [TUI_INPUT_CARD_GROUPED_TEXTS]
393
+ }] }, { type: undefined, decorators: [{
394
+ type: Inject,
395
+ args: [TUI_TEXTFIELD_APPEARANCE]
396
+ }] }]; }, propDecorators: { inputCard: [{
397
+ type: ViewChild,
398
+ args: [`inputCard`]
399
+ }], inputExpire: [{
400
+ type: ViewChild,
401
+ args: [`inputExpire`]
402
+ }], inputCVC: [{
403
+ type: ViewChild,
404
+ args: [`inputCVC`]
405
+ }], autocompleteEnabled: [{
406
+ type: Input
407
+ }], cardSrc: [{
408
+ type: Input
409
+ }], exampleText: [{
410
+ type: Input
411
+ }], cardValidator: [{
412
+ type: Input
413
+ }], codeLength: [{
414
+ type: Input
415
+ }], autofilledChange: [{
416
+ type: Output
417
+ }], binChange: [{
418
+ type: Output
419
+ }], dropdown: [{
420
+ type: ContentChild,
421
+ args: [TuiDataListDirective, { read: TemplateRef }]
422
+ }], datalist: [{
423
+ type: ContentChild,
424
+ args: [TuiDataListComponent]
425
+ }], onEsc: [{
426
+ type: HostListener,
427
+ args: [`keydown.esc`]
428
+ }], onArrow: [{
429
+ type: HostListener,
430
+ args: [`keydown.arrowDown.prevent`, [`$event.target`, `1`]]
431
+ }, {
432
+ type: HostListener,
433
+ args: [`keydown.arrowUp.prevent`, [`$event.target`, `-1`]]
434
+ }], isFocusable: [] } });
414
435
 
415
- let TuiInputCardGroupedModule = class TuiInputCardGroupedModule {
416
- };
417
- TuiInputCardGroupedModule = __decorate([
418
- NgModule({
419
- imports: [
436
+ class TuiInputCardGroupedModule {
437
+ }
438
+ TuiInputCardGroupedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
439
+ TuiInputCardGroupedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedModule, declarations: [TuiInputCardGroupedComponent], imports: [CommonModule,
440
+ FormsModule,
441
+ TextMaskModule,
442
+ TuiFocusableModule,
443
+ TuiSvgModule,
444
+ TuiWrapperModule,
445
+ TuiActiveZoneModule,
446
+ TuiInputModeModule,
447
+ TuiMapperPipeModule,
448
+ TuiDropdownModule,
449
+ TuiPreventDefaultModule,
450
+ PolymorpheusModule,
451
+ TuiLetModule,
452
+ TuiFormatCardModule], exports: [TuiInputCardGroupedComponent] });
453
+ TuiInputCardGroupedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedModule, imports: [[
420
454
  CommonModule,
421
455
  FormsModule,
422
456
  TextMaskModule,
423
457
  TuiFocusableModule,
424
458
  TuiSvgModule,
425
459
  TuiWrapperModule,
426
- TuiHoveredModule,
427
460
  TuiActiveZoneModule,
428
461
  TuiInputModeModule,
429
462
  TuiMapperPipeModule,
@@ -432,15 +465,34 @@ TuiInputCardGroupedModule = __decorate([
432
465
  PolymorpheusModule,
433
466
  TuiLetModule,
434
467
  TuiFormatCardModule,
435
- ],
436
- declarations: [TuiInputCardGroupedComponent],
437
- exports: [TuiInputCardGroupedComponent],
438
- })
439
- ], TuiInputCardGroupedModule);
468
+ ]] });
469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedModule, decorators: [{
470
+ type: NgModule,
471
+ args: [{
472
+ imports: [
473
+ CommonModule,
474
+ FormsModule,
475
+ TextMaskModule,
476
+ TuiFocusableModule,
477
+ TuiSvgModule,
478
+ TuiWrapperModule,
479
+ TuiActiveZoneModule,
480
+ TuiInputModeModule,
481
+ TuiMapperPipeModule,
482
+ TuiDropdownModule,
483
+ TuiPreventDefaultModule,
484
+ PolymorpheusModule,
485
+ TuiLetModule,
486
+ TuiFormatCardModule,
487
+ ],
488
+ declarations: [TuiInputCardGroupedComponent],
489
+ exports: [TuiInputCardGroupedComponent],
490
+ }]
491
+ }] });
440
492
 
441
493
  /**
442
494
  * Generated bundle index. Do not edit.
443
495
  */
444
496
 
445
- export { TUI_INPUT_CARD_GROUPED_TEXTS, TuiInputCardGroupedComponent, TuiInputCardGroupedModule, inputGroupedTextsFactory };
497
+ export { TUI_INPUT_CARD_GROUPED_TEXTS, TuiInputCardGroupedComponent, TuiInputCardGroupedModule };
446
498
  //# sourceMappingURL=taiga-ui-addon-commerce-components-input-card-grouped.js.map