@taiga-ui/legacy 4.52.0-canary.9fae831 → 4.52.0-canary.a1004d6

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 (325) hide show
  1. package/README.md +1 -1
  2. package/components/dialog/dialog.component.d.ts +20 -0
  3. package/components/dialog/dialog.directive.d.ts +8 -0
  4. package/components/dialog/dialog.factory.d.ts +16 -0
  5. package/components/dialog/dialog.interfaces.d.ts +30 -0
  6. package/components/dialog/dialog.service.d.ts +10 -0
  7. package/components/dialog/dialog.tokens.d.ts +6 -0
  8. package/components/dialog/index.d.ts +6 -0
  9. package/components/index.d.ts +3 -25
  10. package/components/mobile-dialog/index.d.ts +3 -0
  11. package/components/mobile-dialog/mobile-dialog.component.d.ts +10 -0
  12. package/components/mobile-dialog/mobile-dialog.options.d.ts +10 -0
  13. package/components/mobile-dialog/mobile-dialog.service.d.ts +14 -0
  14. package/components/pdf-viewer/index.d.ts +4 -0
  15. package/components/pdf-viewer/pdf-viewer.component.d.ts +12 -0
  16. package/components/pdf-viewer/pdf-viewer.directive.d.ts +8 -0
  17. package/components/pdf-viewer/pdf-viewer.options.d.ts +11 -0
  18. package/components/pdf-viewer/pdf-viewer.service.d.ts +17 -0
  19. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +136 -0
  20. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -0
  21. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +62 -0
  22. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -0
  23. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +88 -0
  24. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -0
  25. package/fesm2022/taiga-ui-legacy-components.mjs +3 -25
  26. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-legacy.mjs +0 -6
  28. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  29. package/index.d.ts +0 -6
  30. package/package.json +22 -161
  31. package/classes/abstract-native-select.d.ts +0 -22
  32. package/classes/abstract-textfield-host.d.ts +0 -19
  33. package/classes/control.d.ts +0 -60
  34. package/classes/controller.d.ts +0 -9
  35. package/classes/index.d.ts +0 -9
  36. package/classes/interactive.d.ts +0 -34
  37. package/classes/multiple-control.d.ts +0 -11
  38. package/classes/named-day.d.ts +0 -11
  39. package/classes/nullable-control.d.ts +0 -10
  40. package/classes/stringifiable-item.d.ts +0 -11
  41. package/components/arrow/arrow.component.d.ts +0 -17
  42. package/components/arrow/arrow.options.d.ts +0 -19
  43. package/components/arrow/arrow.providers.d.ts +0 -23
  44. package/components/arrow/index.d.ts +0 -3
  45. package/components/color-selector/color-edit/color-edit.component.d.ts +0 -18
  46. package/components/color-selector/color-edit/color-edit.module.d.ts +0 -21
  47. package/components/color-selector/color-picker/color-picker.component.d.ts +0 -22
  48. package/components/color-selector/color-picker/color-picker.module.d.ts +0 -14
  49. package/components/color-selector/color-selector.component.d.ts +0 -47
  50. package/components/color-selector/color-selector.module.d.ts +0 -23
  51. package/components/color-selector/color-selector.options.d.ts +0 -25
  52. package/components/color-selector/flat-picker/flat-picker.component.d.ts +0 -12
  53. package/components/color-selector/flat-picker/flat-picker.module.d.ts +0 -12
  54. package/components/color-selector/index.d.ts +0 -16
  55. package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +0 -17
  56. package/components/color-selector/linear-multi-picker/linear-multi-picker.module.d.ts +0 -12
  57. package/components/color-selector/linear-picker/linear-picker.component.d.ts +0 -10
  58. package/components/color-selector/linear-picker/linear-picker.module.d.ts +0 -12
  59. package/components/color-selector/palette/palette.component.d.ts +0 -10
  60. package/components/color-selector/palette/palette.module.d.ts +0 -13
  61. package/components/color-selector/services/picker.service.d.ts +0 -15
  62. package/components/combo-box/combo-box-strict.directive.d.ts +0 -12
  63. package/components/combo-box/combo-box.component.d.ts +0 -52
  64. package/components/combo-box/combo-box.directive.d.ts +0 -13
  65. package/components/combo-box/combo-box.module.d.ts +0 -20
  66. package/components/combo-box/index.d.ts +0 -4
  67. package/components/input/index.d.ts +0 -3
  68. package/components/input/input.component.d.ts +0 -32
  69. package/components/input/input.directive.d.ts +0 -12
  70. package/components/input/input.module.d.ts +0 -16
  71. package/components/input-color/index.d.ts +0 -2
  72. package/components/input-color/input-color.component.d.ts +0 -30
  73. package/components/input-color/input-color.module.d.ts +0 -17
  74. package/components/input-date/index.d.ts +0 -3
  75. package/components/input-date/input-date.component.d.ts +0 -62
  76. package/components/input-date/input-date.directive.d.ts +0 -19
  77. package/components/input-date/input-date.module.d.ts +0 -24
  78. package/components/input-date/native-date/native-date.component.d.ts +0 -15
  79. package/components/input-date-range/index.d.ts +0 -3
  80. package/components/input-date-range/input-date-range.component.d.ts +0 -67
  81. package/components/input-date-range/input-date-range.directive.d.ts +0 -16
  82. package/components/input-date-range/input-date-range.module.d.ts +0 -22
  83. package/components/input-date-time/index.d.ts +0 -3
  84. package/components/input-date-time/input-date-time.component.d.ts +0 -87
  85. package/components/input-date-time/input-date-time.directive.d.ts +0 -17
  86. package/components/input-date-time/input-date-time.module.d.ts +0 -23
  87. package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +0 -13
  88. package/components/input-month-range/index.d.ts +0 -3
  89. package/components/input-month-range/input-month-range.component.d.ts +0 -38
  90. package/components/input-month-range/input-month-range.directive.d.ts +0 -23
  91. package/components/input-month-range/input-month-range.module.d.ts +0 -18
  92. package/components/input-number/index.d.ts +0 -4
  93. package/components/input-number/input-number.component.d.ts +0 -63
  94. package/components/input-number/input-number.directive.d.ts +0 -16
  95. package/components/input-number/input-number.module.d.ts +0 -18
  96. package/components/input-number/input-number.options.d.ts +0 -29
  97. package/components/input-phone/index.d.ts +0 -4
  98. package/components/input-phone/input-phone.component.d.ts +0 -52
  99. package/components/input-phone/input-phone.directive.d.ts +0 -16
  100. package/components/input-phone/input-phone.module.d.ts +0 -15
  101. package/components/input-phone/input-phone.options.d.ts +0 -22
  102. package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +0 -9
  103. package/components/input-phone/utils/create-phone-mask-expression.d.ts +0 -7
  104. package/components/input-phone/utils/index.d.ts +0 -2
  105. package/components/input-phone-international/index.d.ts +0 -3
  106. package/components/input-phone-international/input-phone-international.component.d.ts +0 -43
  107. package/components/input-phone-international/input-phone-international.options.d.ts +0 -25
  108. package/components/input-phone-international/utils/extract-value-from-event.d.ts +0 -4
  109. package/components/input-range/index.d.ts +0 -2
  110. package/components/input-range/input-range.component.d.ts +0 -56
  111. package/components/input-range/input-range.module.d.ts +0 -19
  112. package/components/input-slider/index.d.ts +0 -2
  113. package/components/input-slider/input-slider.component.d.ts +0 -42
  114. package/components/input-slider/input-slider.module.d.ts +0 -18
  115. package/components/input-tag/index.d.ts +0 -3
  116. package/components/input-tag/input-tag.component.d.ts +0 -103
  117. package/components/input-tag/input-tag.module.d.ts +0 -22
  118. package/components/input-tag/input-tag.options.d.ts +0 -27
  119. package/components/input-time/index.d.ts +0 -4
  120. package/components/input-time/input-time.component.d.ts +0 -62
  121. package/components/input-time/input-time.directive.d.ts +0 -17
  122. package/components/input-time/input-time.module.d.ts +0 -23
  123. package/components/input-time/input-time.options.d.ts +0 -42
  124. package/components/input-time/native-time/native-time.component.d.ts +0 -12
  125. package/components/multi-select/hide-selected.pipe.d.ts +0 -11
  126. package/components/multi-select/index.d.ts +0 -10
  127. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +0 -23
  128. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +0 -8
  129. package/components/multi-select/multi-select.component.d.ts +0 -71
  130. package/components/multi-select/multi-select.directive.d.ts +0 -14
  131. package/components/multi-select/multi-select.module.d.ts +0 -31
  132. package/components/multi-select/multi-select.options.d.ts +0 -14
  133. package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +0 -9
  134. package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +0 -8
  135. package/components/multi-select/native-multi-select/native-multi-select.d.ts +0 -11
  136. package/components/multi-select-option/index.d.ts +0 -2
  137. package/components/multi-select-option/multi-select-option.component.d.ts +0 -9
  138. package/components/multi-select-option/multi-select-option.module.d.ts +0 -9
  139. package/components/primitive-textfield/index.d.ts +0 -7
  140. package/components/primitive-textfield/primitive-textfield-options.d.ts +0 -21
  141. package/components/primitive-textfield/primitive-textfield-types.d.ts +0 -11
  142. package/components/primitive-textfield/primitive-textfield.component.d.ts +0 -73
  143. package/components/primitive-textfield/primitive-textfield.directive.d.ts +0 -14
  144. package/components/primitive-textfield/primitive-textfield.module.d.ts +0 -21
  145. package/components/primitive-textfield/textfield/textfield.component.d.ts +0 -13
  146. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +0 -22
  147. package/components/select/index.d.ts +0 -6
  148. package/components/select/native-select/native-select-group.component.d.ts +0 -17
  149. package/components/select/native-select/native-select.component.d.ts +0 -16
  150. package/components/select/select.component.d.ts +0 -45
  151. package/components/select/select.directive.d.ts +0 -16
  152. package/components/select/select.module.d.ts +0 -24
  153. package/components/select/select.options.d.ts +0 -25
  154. package/components/select-option/index.d.ts +0 -2
  155. package/components/select-option/select-option.component.d.ts +0 -27
  156. package/components/select-option/select-option.module.d.ts +0 -10
  157. package/components/svg/content-processor.d.ts +0 -19
  158. package/components/svg/deprecated-icons.d.ts +0 -5
  159. package/components/svg/index.d.ts +0 -5
  160. package/components/svg/svg-options.d.ts +0 -50
  161. package/components/svg/svg.component.d.ts +0 -50
  162. package/components/svg/svg.service.d.ts +0 -21
  163. package/components/tag/index.d.ts +0 -3
  164. package/components/tag/tag.component.d.ts +0 -44
  165. package/components/tag/tag.module.d.ts +0 -16
  166. package/components/tag/tag.options.d.ts +0 -27
  167. package/components/textarea/index.d.ts +0 -3
  168. package/components/textarea/textarea.component.d.ts +0 -54
  169. package/components/textarea/textarea.directive.d.ts +0 -12
  170. package/components/textarea/textarea.module.d.ts +0 -21
  171. package/components/tooltip/index.d.ts +0 -2
  172. package/components/tooltip/tooltip.component.d.ts +0 -12
  173. package/components/tooltip/tooltip.module.d.ts +0 -13
  174. package/directives/index.d.ts +0 -5
  175. package/directives/legacy-dropdown-open-monitor/index.d.ts +0 -1
  176. package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +0 -11
  177. package/directives/textfield-controller/index.d.ts +0 -14
  178. package/directives/textfield-controller/textfield-appearance.directive.d.ts +0 -9
  179. package/directives/textfield-controller/textfield-cleaner.directive.d.ts +0 -9
  180. package/directives/textfield-controller/textfield-controller.module.d.ts +0 -17
  181. package/directives/textfield-controller/textfield-controller.provider.d.ts +0 -4
  182. package/directives/textfield-controller/textfield-custom-content.directive.d.ts +0 -10
  183. package/directives/textfield-controller/textfield-filler.directive.d.ts +0 -9
  184. package/directives/textfield-controller/textfield-icon-left.directive.d.ts +0 -12
  185. package/directives/textfield-controller/textfield-icon.directive.d.ts +0 -12
  186. package/directives/textfield-controller/textfield-label-outside.directive.d.ts +0 -9
  187. package/directives/textfield-controller/textfield-postfix.directive.d.ts +0 -9
  188. package/directives/textfield-controller/textfield-prefix.directive.d.ts +0 -9
  189. package/directives/textfield-controller/textfield-size.directive.d.ts +0 -10
  190. package/directives/textfield-controller/textfield.controller.d.ts +0 -41
  191. package/directives/textfield-controller/textfield.options.d.ts +0 -19
  192. package/directives/unfinished-validator/index.d.ts +0 -2
  193. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +0 -10
  194. package/directives/unfinished-validator/unfinished.validator.d.ts +0 -4
  195. package/directives/value-accessor/index.d.ts +0 -3
  196. package/directives/value-accessor/value-accessor.directive.d.ts +0 -5
  197. package/directives/value-accessor/value-accessor.module.d.ts +0 -7
  198. package/directives/value-accessor/value-accessor.provider.d.ts +0 -2
  199. package/directives/wrapper/README.md +0 -19
  200. package/directives/wrapper/index.d.ts +0 -2
  201. package/directives/wrapper/wrapper.directive.d.ts +0 -22
  202. package/directives/wrapper/wrapper.module.d.ts +0 -10
  203. package/fesm2022/taiga-ui-legacy-classes.mjs +0 -415
  204. package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
  205. package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -85
  206. package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
  207. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +0 -726
  208. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +0 -1
  209. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +0 -299
  210. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +0 -1
  211. package/fesm2022/taiga-ui-legacy-components-input-color.mjs +0 -127
  212. package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +0 -1
  213. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -356
  214. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
  215. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -465
  216. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +0 -1
  217. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +0 -372
  218. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +0 -1
  219. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +0 -221
  220. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +0 -1
  221. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +0 -390
  222. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +0 -1
  223. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +0 -215
  224. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +0 -1
  225. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +0 -372
  226. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +0 -1
  227. package/fesm2022/taiga-ui-legacy-components-input-range.mjs +0 -261
  228. package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +0 -1
  229. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +0 -199
  230. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +0 -1
  231. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +0 -524
  232. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +0 -1
  233. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +0 -430
  234. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +0 -1
  235. package/fesm2022/taiga-ui-legacy-components-input.mjs +0 -155
  236. package/fesm2022/taiga-ui-legacy-components-input.mjs.map +0 -1
  237. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +0 -47
  238. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +0 -1
  239. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +0 -690
  240. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +0 -1
  241. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +0 -454
  242. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +0 -1
  243. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +0 -88
  244. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +0 -1
  245. package/fesm2022/taiga-ui-legacy-components-select.mjs +0 -353
  246. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
  247. package/fesm2022/taiga-ui-legacy-components-svg.mjs +0 -387
  248. package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +0 -1
  249. package/fesm2022/taiga-ui-legacy-components-tag.mjs +0 -225
  250. package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +0 -1
  251. package/fesm2022/taiga-ui-legacy-components-textarea.mjs +0 -262
  252. package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +0 -1
  253. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +0 -53
  254. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +0 -1
  255. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +0 -50
  256. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
  257. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -401
  258. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
  259. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -50
  260. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +0 -1
  261. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +0 -44
  262. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +0 -1
  263. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +0 -99
  264. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +0 -1
  265. package/fesm2022/taiga-ui-legacy-directives.mjs +0 -10
  266. package/fesm2022/taiga-ui-legacy-directives.mjs.map +0 -1
  267. package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs +0 -59
  268. package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs.map +0 -1
  269. package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs +0 -50
  270. package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs.map +0 -1
  271. package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs +0 -80
  272. package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs.map +0 -1
  273. package/fesm2022/taiga-ui-legacy-pipes.mjs +0 -8
  274. package/fesm2022/taiga-ui-legacy-pipes.mjs.map +0 -1
  275. package/fesm2022/taiga-ui-legacy-services.mjs +0 -42
  276. package/fesm2022/taiga-ui-legacy-services.mjs.map +0 -1
  277. package/fesm2022/taiga-ui-legacy-tokens.mjs +0 -384
  278. package/fesm2022/taiga-ui-legacy-tokens.mjs.map +0 -1
  279. package/fesm2022/taiga-ui-legacy-utils.mjs +0 -268
  280. package/fesm2022/taiga-ui-legacy-utils.mjs.map +0 -1
  281. package/pipes/format-phone/format-phone.pipe.d.ts +0 -37
  282. package/pipes/format-phone/index.d.ts +0 -1
  283. package/pipes/index.d.ts +0 -3
  284. package/pipes/iso-to-country-code/index.d.ts +0 -1
  285. package/pipes/iso-to-country-code/iso-to-country-code.pipe.d.ts +0 -30
  286. package/pipes/to-country-code/index.d.ts +0 -1
  287. package/pipes/to-country-code/to-country-code.pipe.d.ts +0 -38
  288. package/services/index.d.ts +0 -1
  289. package/services/static-request.service.d.ts +0 -11
  290. package/styles/mixins/mixins.less +0 -239
  291. package/styles/mixins/mixins.scss +0 -224
  292. package/styles/mixins/textfield.less +0 -324
  293. package/styles/mixins/textfield.scss +0 -308
  294. package/styles/taiga-ui-local.less +0 -3
  295. package/styles/taiga-ui-local.scss +0 -3
  296. package/tokens/countries-masks.d.ts +0 -9
  297. package/tokens/focusable-item-accessor.d.ts +0 -25
  298. package/tokens/fonts-ready.d.ts +0 -6
  299. package/tokens/icons.d.ts +0 -6
  300. package/tokens/index.d.ts +0 -14
  301. package/tokens/is-apple.d.ts +0 -6
  302. package/tokens/is-chromium.d.ts +0 -6
  303. package/tokens/is-firefox.d.ts +0 -6
  304. package/tokens/is-stackblitz.d.ts +0 -5
  305. package/tokens/month-formatter.d.ts +0 -10
  306. package/tokens/sanitizer.d.ts +0 -6
  307. package/tokens/textfield-appearance.d.ts +0 -7
  308. package/tokens/textfield-host.d.ts +0 -23
  309. package/tokens/touch-supported.d.ts +0 -5
  310. package/tokens/value-accessor.d.ts +0 -7
  311. package/utils/capitalize-first-letter.d.ts +0 -4
  312. package/utils/date-mode-maskito-adapter.d.ts +0 -6
  313. package/utils/format-phone.d.ts +0 -30
  314. package/utils/get-border.d.ts +0 -5
  315. package/utils/get-max-allowed-phone-length.d.ts +0 -24
  316. package/utils/get-safe-area-size.d.ts +0 -7
  317. package/utils/icons-path-factory.d.ts +0 -13
  318. package/utils/index.d.ts +0 -14
  319. package/utils/is-apple.d.ts +0 -5
  320. package/utils/is-presumed-html-string.d.ts +0 -4
  321. package/utils/iso-to-country-code.d.ts +0 -13
  322. package/utils/not-kz-region.d.ts +0 -20
  323. package/utils/process-icon.d.ts +0 -4
  324. package/utils/specific-dropdown-controllers.d.ts +0 -4
  325. package/utils/status.d.ts +0 -4
@@ -1,372 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, EventEmitter, TemplateRef, Input, Output, ContentChild, ViewChild, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
4
- import { maskitoTransform, MASKITO_DEFAULT_OPTIONS } from '@maskito/core';
5
- import { maskitoCaretGuard, maskitoPrefixPostprocessorGenerator } from '@maskito/kit';
6
- import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
7
- import { tuiProvideOptions, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
8
- import { TuiDataListDirective, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
9
- import * as i1 from '@taiga-ui/core/directives/dropdown';
10
- import { TuiDropdownOpen, TuiDropdownFixed, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
11
- import { AbstractTuiControl, tuiAsControl, AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
12
- import * as i3 from '@taiga-ui/legacy/components/primitive-textfield';
13
- import { TuiPrimitiveTextfieldComponent, TuiTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
14
- import * as i4 from '@taiga-ui/legacy/directives';
15
- import { TUI_TEXTFIELD_CLEANER, TUI_TEXTFIELD_SIZE, TuiTextfieldControllerModule, TuiValueAccessorModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
16
- import { tuiAsFocusableItemAccessor, tuiAsTextfieldHost } from '@taiga-ui/legacy/tokens';
17
- import * as i2 from '@maskito/angular';
18
- import { MaskitoDirective } from '@maskito/angular';
19
-
20
- /**
21
- * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
22
- */
23
- const TUI_INPUT_PHONE_DEFAULT_OPTIONS = {
24
- phoneMaskAfterCountryCode: '### ###-##-##',
25
- allowText: false,
26
- countryCode: '+7',
27
- };
28
- /**
29
- * Default parameters for input phone component
30
- * @deprecated drop in v5.0, use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
31
- */
32
- const TUI_INPUT_PHONE_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_PHONE_OPTIONS' : '', {
33
- factory: () => TUI_INPUT_PHONE_DEFAULT_OPTIONS,
34
- });
35
- /**
36
- * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
37
- */
38
- function tuiInputPhoneOptionsProvider(options) {
39
- return tuiProvideOptions(TUI_INPUT_PHONE_OPTIONS, options, TUI_INPUT_PHONE_DEFAULT_OPTIONS);
40
- }
41
-
42
- const countDigits = (value) => value.replaceAll(/\D/g, '').length;
43
- /**
44
- * `InputPhone` component sets country code as non-removable prefix.
45
- * This prefix appears on focus and cannot be erased.
46
- * But users sometimes can copy complete phone number (from any different source)
47
- * and try to insert the whole string inside our `InputPhone` textfield.
48
- * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.
49
- */
50
- function tuiCreateCompletePhoneInsertionPreprocessor(countryCode, phoneMaskAfterCountryCode) {
51
- const completePhoneLength = (countryCode + phoneMaskAfterCountryCode).replaceAll(/[^#\d]+/g, '').length;
52
- const trimCountryPrefix = (value) => countryCode === '+7'
53
- ? value.replace(/^(\+?\s*7?\s?8?)\s?/, '')
54
- : value.replace(new RegExp(`^(\\+?\\s*${countryCode.replace('+', '')}?)\\s?`), '');
55
- return ({ elementState, data }) => {
56
- const { value, selection } = elementState;
57
- return {
58
- elementState: {
59
- selection,
60
- value:
61
- /**
62
- * The only possible case when `value` includes digits more
63
- * than mask expression allows – browser autofill.
64
- * It means that we are inside `input`-event
65
- * and mask are ready to reject "extra" characters.
66
- * We should cut leading country prefix to save trailing characters!
67
- */
68
- countDigits(value) > completePhoneLength
69
- ? trimCountryPrefix(value)
70
- : value,
71
- },
72
- data: countDigits(data) >= completePhoneLength || data.startsWith(countryCode)
73
- ? /**
74
- * User tries to insert/drop the complete phone number (with country prefix).
75
- * We should drop already existing non-removable prefix.
76
- */
77
- trimCountryPrefix(data)
78
- : data,
79
- };
80
- };
81
- }
82
-
83
- /**
84
- * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number
85
- *
86
- * @example
87
- * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');
88
- */
89
- function tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode) {
90
- return [
91
- ...countryCode.split(''),
92
- ' ',
93
- ...phoneMaskAfterCountryCode
94
- .replaceAll(/[^#\- ()]+/g, '')
95
- .split('')
96
- .map((item) => (item === '#' ? /\d/ : item)),
97
- ];
98
- }
99
-
100
- const MASK_SYMBOLS = /[ \-_()]/g;
101
- function isText(value) {
102
- return Number.isNaN(parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));
103
- }
104
- /**
105
- * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
106
- */
107
- class TuiInputPhoneComponent extends AbstractTuiControl {
108
- constructor() {
109
- super(...arguments);
110
- this.textfieldCleaner = inject(TUI_TEXTFIELD_CLEANER);
111
- this.options = inject(TUI_INPUT_PHONE_OPTIONS);
112
- this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
113
- this.open = false;
114
- this.phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;
115
- this.allowText = this.options.allowText;
116
- this.search = '';
117
- this.searchChange = new EventEmitter();
118
- this.countryCode = this.options.countryCode;
119
- }
120
- set countryCodeSetter(newCountryCode) {
121
- const prevCountryCode = this.countryCode;
122
- this.countryCode = newCountryCode;
123
- this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);
124
- }
125
- get size() {
126
- return this.textfieldSize.size;
127
- }
128
- get nativeFocusableElement() {
129
- return !this.textfield || this.computedDisabled
130
- ? null
131
- : this.textfield.nativeFocusableElement;
132
- }
133
- get focused() {
134
- return (tuiIsFocused(this.nativeFocusableElement) || !!this.dropdown?.tuiDropdownOpen);
135
- }
136
- get nativeValue() {
137
- return (this.nativeFocusableElement?.value ||
138
- maskitoTransform(this.value, this.maskOptions));
139
- }
140
- set nativeValue(value) {
141
- if (this.nativeFocusableElement) {
142
- this.nativeFocusableElement.value = value;
143
- }
144
- }
145
- get inputMode() {
146
- return this.allowText ? 'text' : 'numeric';
147
- }
148
- onValueChange(value) {
149
- const parsed = isText(value)
150
- ? value
151
- : value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);
152
- this.updateSearch(parsed);
153
- this.value = parsed === this.countryCode || isText(parsed) ? '' : parsed;
154
- this.open = true;
155
- if (!this.value && !this.allowText) {
156
- this.nativeValue = this.nonRemovablePrefix;
157
- }
158
- }
159
- handleOption(item) {
160
- this.focusInput();
161
- this.value = item;
162
- this.nativeValue = maskitoTransform(this.value, this.maskOptions);
163
- this.updateSearch('');
164
- this.open = false;
165
- }
166
- setDisabledState() {
167
- super.setDisabledState();
168
- this.open = false;
169
- }
170
- writeValue(value) {
171
- super.writeValue(value);
172
- this.nativeValue = maskitoTransform(this.value || '', this.maskOptions);
173
- this.updateSearch('');
174
- }
175
- get canOpen() {
176
- return this.interactive && !!this.datalist;
177
- }
178
- get canClean() {
179
- return (this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner);
180
- }
181
- get maskOptions() {
182
- return this.calculateMask(this.countryCode, this.phoneMaskAfterCountryCode, this.nonRemovablePrefix, this.allowText);
183
- }
184
- onActiveZone(active) {
185
- this.updateFocused(active);
186
- if (active && !this.nativeValue && !this.readOnly && !this.allowText) {
187
- this.updateSearch(this.nonRemovablePrefix);
188
- this.nativeValue = this.nonRemovablePrefix;
189
- return;
190
- }
191
- if (this.nativeValue === this.nonRemovablePrefix || this.isTextValue) {
192
- this.updateSearch('');
193
- this.nativeValue = '';
194
- return;
195
- }
196
- if (!active && !this.allowText && this.nativeFocusableElement) {
197
- this.nativeValue = this.nativeValue.replace(/\D$/, '');
198
- }
199
- }
200
- getFallbackValue() {
201
- return '';
202
- }
203
- get nonRemovablePrefix() {
204
- return `${this.countryCode} `;
205
- }
206
- get maxPhoneLength() {
207
- return (this.countryCode.length +
208
- this.phoneMaskAfterCountryCode.replaceAll(/[^#]+/g, '').length);
209
- }
210
- get isTextValue() {
211
- return !!this.search && isText(this.search);
212
- }
213
- calculateMask(countryCode, phoneMaskAfterCountryCode, nonRemovablePrefix, allowText) {
214
- const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);
215
- const preprocessors = [
216
- tuiCreateCompletePhoneInsertionPreprocessor(countryCode, phoneMaskAfterCountryCode),
217
- ];
218
- return allowText
219
- ? {
220
- mask: ({ value }) => isText(value) && value !== '+'
221
- ? MASKITO_DEFAULT_OPTIONS.mask
222
- : mask,
223
- preprocessors,
224
- }
225
- : {
226
- mask,
227
- preprocessors,
228
- postprocessors: [
229
- maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),
230
- ],
231
- plugins: [
232
- maskitoCaretGuard((value, [from, to]) => [
233
- from === to ? nonRemovablePrefix.length : 0,
234
- value.length,
235
- ]),
236
- ],
237
- };
238
- }
239
- focusInput() {
240
- if (this.nativeFocusableElement) {
241
- this.nativeFocusableElement.focus({ preventScroll: true });
242
- }
243
- }
244
- updateSearch(search) {
245
- if (this.search === search) {
246
- return;
247
- }
248
- this.search = search;
249
- this.searchChange.emit(search);
250
- }
251
- updateValueWithNewCountryCode(prevCountryCode, newCountryCode) {
252
- if (!this.isTextValue) {
253
- this.value = this.value.replace(prevCountryCode, newCountryCode);
254
- this.nativeValue = maskitoTransform(this.value, this.maskOptions);
255
- }
256
- }
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputPhoneComponent, isStandalone: false, selector: "tui-input-phone", inputs: { phoneMaskAfterCountryCode: "phoneMaskAfterCountryCode", allowText: "allowText", search: "search", countryCodeSetter: ["countryCode", "countryCodeSetter"] }, outputs: { searchChange: "searchChange" }, host: { properties: { "attr.data-size": "size" } }, providers: [
259
- tuiAsFocusableItemAccessor(TuiInputPhoneComponent),
260
- tuiAsControl(TuiInputPhoneComponent),
261
- tuiAsDataListHost(TuiInputPhoneComponent),
262
- ], queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"], dependencies: [{ kind: "directive", type: i2.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i3.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i3.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i4.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i4.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { kind: "directive", type: i4.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
263
- }
264
- __decorate([
265
- tuiPure
266
- ], TuiInputPhoneComponent.prototype, "calculateMask", null);
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneComponent, decorators: [{
268
- type: Component,
269
- args: [{ standalone: false, selector: 'tui-input-phone', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
270
- tuiAsFocusableItemAccessor(TuiInputPhoneComponent),
271
- tuiAsControl(TuiInputPhoneComponent),
272
- tuiAsDataListHost(TuiInputPhoneComponent),
273
- ], hostDirectives: [TuiDropdownFixed], host: {
274
- '[attr.data-size]': 'size',
275
- }, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"] }]
276
- }], propDecorators: { dropdown: [{
277
- type: ViewChild,
278
- args: [TuiDropdownOpen]
279
- }], textfield: [{
280
- type: ViewChild,
281
- args: [TuiPrimitiveTextfieldComponent]
282
- }], datalist: [{
283
- type: ContentChild,
284
- args: [TuiDataListDirective, { read: TemplateRef }]
285
- }], phoneMaskAfterCountryCode: [{
286
- type: Input
287
- }], allowText: [{
288
- type: Input
289
- }], search: [{
290
- type: Input
291
- }], searchChange: [{
292
- type: Output
293
- }], countryCodeSetter: [{
294
- type: Input,
295
- args: ['countryCode']
296
- }], calculateMask: [] } });
297
-
298
- /**
299
- * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
300
- */
301
- class TuiInputPhoneDirective extends AbstractTuiTextfieldHost {
302
- get value() {
303
- return this.host.nativeValue;
304
- }
305
- onValueChange(value) {
306
- this.host.onValueChange(value);
307
- }
308
- process(input) {
309
- this.input = input;
310
- }
311
- ngDoCheck() {
312
- if (!this.input) {
313
- return;
314
- }
315
- this.input.type = 'tel';
316
- this.input.inputMode = this.host.inputMode;
317
- }
318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
319
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputPhoneDirective, isStandalone: false, selector: "tui-input-phone", providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)], usesInheritance: true, ngImport: i0 }); }
320
- }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneDirective, decorators: [{
322
- type: Directive,
323
- args: [{
324
- standalone: false,
325
- selector: 'tui-input-phone',
326
- providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],
327
- }]
328
- }] });
329
-
330
- /**
331
- * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}
332
- */
333
- class TuiInputPhoneModule {
334
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
335
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneModule, declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective], imports: [MaskitoDirective,
336
- TuiPrimitiveTextfieldModule,
337
- TuiTextfieldControllerModule,
338
- TuiValueAccessorModule,
339
- TuiLegacyDropdownOpenMonitorDirective, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection], exports: [TuiInputPhoneComponent,
340
- TuiInputPhoneDirective,
341
- TuiTextfieldComponent, i1.TuiDropdownOptionsDirective, i1.TuiDropdownDriverDirective, i1.TuiDropdownDirective, i1.TuiDropdownComponent, i1.TuiDropdownOpen, i1.TuiDropdownOpenLegacy, i1.TuiDropdownPortal, i1.TuiDropdownManual, i1.TuiDropdownHover, i1.TuiDropdownContext, i1.TuiDropdownPosition, i1.TuiDropdownPositionSided, i1.TuiDropdownSelection] }); }
342
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneModule, imports: [TuiPrimitiveTextfieldModule,
343
- TuiTextfieldControllerModule,
344
- TuiValueAccessorModule, i1.TuiDropdownComponent] }); }
345
- }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPhoneModule, decorators: [{
347
- type: NgModule,
348
- args: [{
349
- imports: [
350
- MaskitoDirective,
351
- TuiPrimitiveTextfieldModule,
352
- TuiTextfieldControllerModule,
353
- TuiValueAccessorModule,
354
- TuiLegacyDropdownOpenMonitorDirective,
355
- ...TuiDropdown,
356
- ],
357
- declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],
358
- exports: [
359
- TuiInputPhoneComponent,
360
- TuiInputPhoneDirective,
361
- TuiTextfieldComponent,
362
- ...TuiDropdown,
363
- ],
364
- }]
365
- }] });
366
-
367
- /**
368
- * Generated bundle index. Do not edit.
369
- */
370
-
371
- export { TUI_INPUT_PHONE_DEFAULT_OPTIONS, TUI_INPUT_PHONE_OPTIONS, TuiInputPhoneComponent, TuiInputPhoneDirective, TuiInputPhoneModule, tuiInputPhoneOptionsProvider };
372
- //# sourceMappingURL=taiga-ui-legacy-components-input-phone.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-legacy-components-input-phone.mjs","sources":["../../../projects/legacy/components/input-phone/input-phone.options.ts","../../../projects/legacy/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/legacy/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/legacy/components/input-phone/input-phone.component.ts","../../../projects/legacy/components/input-phone/input-phone.template.html","../../../projects/legacy/components/input-phone/input-phone.directive.ts","../../../projects/legacy/components/input-phone/input-phone.module.ts","../../../projects/legacy/components/input-phone/taiga-ui-legacy-components-input-phone.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly countryCode: string;\n readonly phoneMaskAfterCountryCode: string;\n}\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n phoneMaskAfterCountryCode: '### ###-##-##',\n allowText: false,\n countryCode: '+7',\n};\n\n/**\n * Default parameters for input phone component\n * @deprecated drop in v5.0, use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\nexport const TUI_INPUT_PHONE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_PHONE_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\nexport function tuiInputPhoneOptionsProvider(\n options: Partial<TuiInputPhoneOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_OPTIONS,\n options,\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n );\n}\n","import {type MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replaceAll(/\\D/g, '').length;\n\n/**\n * `InputPhone` component sets country code as non-removable prefix.\n * This prefix appears on focus and cannot be erased.\n * But users sometimes can copy complete phone number (from any different source)\n * and try to insert the whole string inside our `InputPhone` textfield.\n * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.\n */\nexport function tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): MaskitoPreprocessor {\n const completePhoneLength = (countryCode + phoneMaskAfterCountryCode).replaceAll(\n /[^#\\d]+/g,\n '',\n ).length;\n\n const trimCountryPrefix = (value: string): string =>\n countryCode === '+7'\n ? value.replace(/^(\\+?\\s*7?\\s?8?)\\s?/, '')\n : value.replace(\n new RegExp(`^(\\\\+?\\\\s*${countryCode.replace('+', '')}?)\\\\s?`),\n '',\n );\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength || data.startsWith(countryCode)\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(''),\n ' ',\n ...phoneMaskAfterCountryCode\n .replaceAll(/[^#\\- ()]+/g, '')\n .split('')\n .map((item) => (item === '#' ? /\\d/ : item)),\n ];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport {type TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n TuiDataListDirective,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiDropdownFixed, TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_CLEANER, TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\n\nimport {TUI_INPUT_PHONE_OPTIONS} from './input-phone.options';\nimport {\n tuiCreateCompletePhoneInsertionPreprocessor,\n tuiCreatePhoneMaskExpression,\n} from './utils';\n\nconst MASK_SYMBOLS = /[ \\-_()]/g;\n\nfunction isText(value: string): boolean {\n return Number.isNaN(parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));\n}\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\n@Component({\n standalone: false,\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneComponent),\n tuiAsControl(TuiInputPhoneComponent),\n tuiAsDataListHost(TuiInputPhoneComponent),\n ],\n hostDirectives: [TuiDropdownFixed],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiDropdownOpen)\n private readonly dropdown?: TuiDropdownOpen;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textfieldCleaner = inject(TUI_TEXTFIELD_CLEANER);\n private readonly options = inject(TUI_INPUT_PHONE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n protected readonly datalist?: TemplateRef<TuiContext<TuiActiveZone>>;\n\n protected open = false;\n\n @Input()\n public phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;\n\n @Input()\n public allowText = this.options.allowText;\n\n @Input()\n public search = '';\n\n @Output()\n public readonly searchChange = new EventEmitter<string>();\n\n public countryCode = this.options.countryCode;\n\n @Input('countryCode')\n public set countryCodeSetter(newCountryCode: string) {\n const prevCountryCode = this.countryCode;\n\n this.countryCode = newCountryCode;\n this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n public get focused(): boolean {\n return (\n tuiIsFocused(this.nativeFocusableElement) || !!this.dropdown?.tuiDropdownOpen\n );\n }\n\n public get nativeValue(): string {\n return (\n this.nativeFocusableElement?.value ||\n maskitoTransform(this.value, this.maskOptions)\n );\n }\n\n public set nativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n public get inputMode(): string {\n return this.allowText ? 'text' : 'numeric';\n }\n\n public onValueChange(value: string): void {\n const parsed = isText(value)\n ? value\n : value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);\n\n this.updateSearch(parsed);\n this.value = parsed === this.countryCode || isText(parsed) ? '' : parsed;\n this.open = true;\n\n if (!this.value && !this.allowText) {\n this.nativeValue = this.nonRemovablePrefix;\n }\n }\n\n public handleOption(item: string): void {\n this.focusInput();\n this.value = item;\n this.nativeValue = maskitoTransform(this.value, this.maskOptions);\n this.updateSearch('');\n this.open = false;\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n public override writeValue(value: string | null): void {\n super.writeValue(value);\n this.nativeValue = maskitoTransform(this.value || '', this.maskOptions);\n this.updateSearch('');\n }\n\n protected get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n protected get canClean(): boolean {\n return (\n this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner\n );\n }\n\n protected get maskOptions(): MaskitoOptions {\n return this.calculateMask(\n this.countryCode,\n this.phoneMaskAfterCountryCode,\n this.nonRemovablePrefix,\n this.allowText,\n );\n }\n\n protected onActiveZone(active: boolean): void {\n this.updateFocused(active);\n\n if (active && !this.nativeValue && !this.readOnly && !this.allowText) {\n this.updateSearch(this.nonRemovablePrefix);\n this.nativeValue = this.nonRemovablePrefix;\n\n return;\n }\n\n if (this.nativeValue === this.nonRemovablePrefix || this.isTextValue) {\n this.updateSearch('');\n this.nativeValue = '';\n\n return;\n }\n\n if (!active && !this.allowText && this.nativeFocusableElement) {\n this.nativeValue = this.nativeValue.replace(/\\D$/, '');\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get nonRemovablePrefix(): string {\n return `${this.countryCode} `;\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode.length +\n this.phoneMaskAfterCountryCode.replaceAll(/[^#]+/g, '').length\n );\n }\n\n private get isTextValue(): boolean {\n return !!this.search && isText(this.search);\n }\n\n @tuiPure\n private calculateMask(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n nonRemovablePrefix: string,\n allowText: boolean,\n ): MaskitoOptions {\n const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);\n const preprocessors = [\n tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode,\n phoneMaskAfterCountryCode,\n ),\n ];\n\n return allowText\n ? {\n mask: ({value}) =>\n isText(value) && value !== '+'\n ? (MASKITO_DEFAULT_OPTIONS.mask as RegExp)\n : mask,\n preprocessors,\n }\n : {\n mask,\n preprocessors,\n postprocessors: [\n maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),\n ],\n plugins: [\n maskitoCaretGuard((value, [from, to]) => [\n from === to ? nonRemovablePrefix.length : 0,\n value.length,\n ]),\n ],\n };\n }\n\n private focusInput(): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll: true});\n }\n }\n\n private updateSearch(search: string): void {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private updateValueWithNewCountryCode(\n prevCountryCode: string,\n newCountryCode: string,\n ): void {\n if (!this.isTextValue) {\n this.value = this.value.replace(prevCountryCode, newCountryCode);\n this.nativeValue = maskitoTransform(this.value, this.maskOptions);\n }\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n","import {Directive, type DoCheck} from '@angular/core';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiInputPhoneComponent} from './input-phone.component';\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\n@Directive({\n standalone: false,\n selector: 'tui-input-phone',\n providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],\n})\nexport class TuiInputPhoneDirective\n extends AbstractTuiTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n protected input?: HTMLInputElement;\n\n public override get value(): string {\n return this.host.nativeValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public override process(input: HTMLInputElement): void {\n this.input = input;\n }\n\n public ngDoCheck(): void {\n if (!this.input) {\n return;\n }\n\n this.input.type = 'tel';\n this.input.inputMode = this.host.inputMode;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n/**\n * @deprecated use {@link https://taiga-ui.dev/components/input-phone TuiInputPhone} with {@link https://taiga-ui.dev/components/textfield TuiTextfield}\n */\n@NgModule({\n imports: [\n MaskitoDirective,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n TuiLegacyDropdownOpenMonitorDirective,\n ...TuiDropdown,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [\n TuiInputPhoneComponent,\n TuiInputPhoneDirective,\n TuiTextfieldComponent,\n ...TuiDropdown,\n ],\n})\nexport class TuiInputPhoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAYA;;AAEG;AACU,MAAA,+BAA+B,GAAyB;AACjE,IAAA,yBAAyB,EAAE,eAAe;AAC1C,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,WAAW,EAAE,IAAI;;AAGrB;;;AAGG;AACU,MAAA,uBAAuB,GAAG,IAAI,cAAc,CACrD,SAAS,GAAG,yBAAyB,GAAG,EAAE,EAC1C;AACI,IAAA,OAAO,EAAE,MAAM,+BAA+B;AACjD,CAAA;AAGL;;AAEG;AACG,SAAU,4BAA4B,CACxC,OAAsC,EAAA;IAEtC,OAAO,iBAAiB,CACpB,uBAAuB,EACvB,OAAO,EACP,+BAA+B,CAClC;AACL;;ACzCA,MAAM,WAAW,GAAG,CAAC,KAAa,KAAa,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;AAEjF;;;;;;AAMG;AACa,SAAA,2CAA2C,CACvD,WAAmB,EACnB,yBAAiC,EAAA;AAEjC,IAAA,MAAM,mBAAmB,GAAG,CAAC,WAAW,GAAG,yBAAyB,EAAE,UAAU,CAC5E,UAAU,EACV,EAAE,CACL,CAAC,MAAM;IAER,MAAM,iBAAiB,GAAG,CAAC,KAAa,KACpC,WAAW,KAAK;UACV,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE;UACvC,KAAK,CAAC,OAAO,CACT,IAAI,MAAM,CAAC,CAAA,UAAA,EAAa,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAC7D,EAAE,CACL;AAEX,IAAA,OAAO,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,KAAI;AAC5B,QAAA,MAAM,EAAC,KAAK,EAAE,SAAS,EAAC,GAAG,YAAY;QAEvC,OAAO;AACH,YAAA,YAAY,EAAE;gBACV,SAAS;gBACT,KAAK;AACD;;;;;;AAMG;AACH,gBAAA,WAAW,CAAC,KAAK,CAAC,GAAG;AACjB,sBAAE,iBAAiB,CAAC,KAAK;AACzB,sBAAE,KAAK;AAClB,aAAA;AACD,YAAA,IAAI,EACA,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW;AACnE;;;AAGK;oBACH,iBAAiB,CAAC,IAAI;AACxB,kBAAE,IAAI;SACjB;AACL,KAAC;AACL;;ACxDA;;;;;AAKG;AACa,SAAA,4BAA4B,CACxC,WAAmB,EACnB,yBAAiC,EAAA;IAEjC,OAAO;AACH,QAAA,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG;AACH,QAAA,GAAG;AACE,aAAA,UAAU,CAAC,aAAa,EAAE,EAAE;aAC5B,KAAK,CAAC,EAAE;AACR,aAAA,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;KACnD;AACL;;ACwBA,MAAM,YAAY,GAAG,WAAW;AAEhC,SAAS,MAAM,CAAC,KAAa,EAAA;AACzB,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE;AAEA;;AAEG;AAiBG,MAAO,sBACT,SAAQ,kBAA0B,CAAA;AAjBtC,IAAA,WAAA,GAAA;;AA0BqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAChD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAKjD,IAAI,CAAA,IAAA,GAAG,KAAK;AAGf,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB;AAGlE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;QAGlC,IAAM,CAAA,MAAA,GAAG,EAAE;AAGF,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;AAElD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;AAsMhD;IApMG,IACW,iBAAiB,CAAC,cAAsB,EAAA;AAC/C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW;AAExC,QAAA,IAAI,CAAC,WAAW,GAAG,cAAc;AACjC,QAAA,IAAI,CAAC,6BAA6B,CAAC,eAAe,EAAE,cAAc,CAAC;;AAGvE,IAAA,IAAW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGlC,IAAA,IAAW,sBAAsB,GAAA;AAC7B,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;AAC3B,cAAE;AACF,cAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB;;AAG/C,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,QACI,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe;;AAIrF,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,QACI,IAAI,CAAC,sBAAsB,EAAE,KAAK;YAClC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;;IAItD,IAAW,WAAW,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK;;;AAIjD,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS;;AAGvC,IAAA,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK;AACvB,cAAE;AACF,cAAE,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AAEtE,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM;AACxE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAEhB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB;;;AAI3C,IAAA,YAAY,CAAC,IAAY,EAAA;QAC5B,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;IAGL,gBAAgB,GAAA;QAC5B,KAAK,CAAC,gBAAgB,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;AAGL,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3C,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;AACvE,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;;AAGzB,IAAA,IAAc,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ;;AAG9C,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,QACI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO;;AAIrF,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,SAAS,CACjB;;AAGK,IAAA,YAAY,CAAC,MAAe,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAE1B,QAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB;YAE1C;;AAGJ,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;YAErB;;AAGJ,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;;IAIpD,gBAAgB,GAAA;AACtB,QAAA,OAAO,EAAE;;AAGb,IAAA,IAAY,kBAAkB,GAAA;AAC1B,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,WAAW,GAAG;;AAGjC,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,QACI,IAAI,CAAC,WAAW,CAAC,MAAM;AACvB,YAAA,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM;;AAItE,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAIvC,IAAA,aAAa,CACjB,WAAmB,EACnB,yBAAiC,EACjC,kBAA0B,EAC1B,SAAkB,EAAA;QAElB,MAAM,IAAI,GAAG,4BAA4B,CAAC,WAAW,EAAE,yBAAyB,CAAC;AACjF,QAAA,MAAM,aAAa,GAAG;AAClB,YAAA,2CAA2C,CACvC,WAAW,EACX,yBAAyB,CAC5B;SACJ;AAED,QAAA,OAAO;AACH,cAAE;AACI,gBAAA,IAAI,EAAE,CAAC,EAAC,KAAK,EAAC,KACV,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;sBACpB,uBAAuB,CAAC;AAC3B,sBAAE,IAAI;gBACd,aAAa;AAChB;AACH,cAAE;gBACI,IAAI;gBACJ,aAAa;AACb,gBAAA,cAAc,EAAE;oBACZ,mCAAmC,CAAC,kBAAkB,CAAC;AAC1D,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK;wBACrC,IAAI,KAAK,EAAE,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;AAC3C,wBAAA,KAAK,CAAC,MAAM;qBACf,CAAC;AACL,iBAAA;aACJ;;IAGH,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;;AAIxD,IAAA,YAAY,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB;;AAGJ,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG1B,6BAA6B,CACjC,eAAuB,EACvB,cAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC;AAChE,YAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;;;+GAlOhE,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAVpB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,0BAA0B,CAAC,sBAAsB,CAAC;YAClD,YAAY,CAAC,sBAAsB,CAAC;YACpC,iBAAiB,CAAC,sBAAsB,CAAC;SAC5C,EAoBa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,2BAAS,WAAW,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAV3C,eAAe,EAGf,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,8BAA8B,6HC1E7C,24BA8BA,EAAA,MAAA,EAAA,CAAA,mPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;AD6MY,UAAA,CAAA;IADP;AAoCA,CAAA,EAAA,sBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;4FA3MQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhBlC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,0BAA0B,CAAwB,sBAAA,CAAA;AAClD,wBAAA,YAAY,CAAwB,sBAAA,CAAA;AACpC,wBAAA,iBAAiB,CAAwB,sBAAA,CAAA;qBAC5C,EACe,cAAA,EAAA,CAAC,gBAAgB,CAAC,EAC5B,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,QAAA,EAAA,24BAAA,EAAA,MAAA,EAAA,CAAA,mPAAA,CAAA,EAAA;8BAOgB,QAAQ,EAAA,CAAA;sBADxB,SAAS;uBAAC,eAAe;gBAIT,SAAS,EAAA,CAAA;sBADzB,SAAS;uBAAC,8BAA8B;gBAQtB,QAAQ,EAAA,CAAA;sBAD1B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC;gBAMhD,yBAAyB,EAAA,CAAA;sBAD/B;gBAIM,SAAS,EAAA,CAAA;sBADf;gBAIM,MAAM,EAAA,CAAA;sBADZ;gBAIe,YAAY,EAAA,CAAA;sBAD3B;gBAMU,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;uBAAC,aAAa;gBAuIZ,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;AErOzB;;AAEG;AAMG,MAAO,sBACT,SAAQ,wBAAgD,CAAA;AAKxD,IAAA,IAAoB,KAAK,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW;;AAGzB,IAAA,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;;AAGlB,IAAA,OAAO,CAAC,KAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;IAGf,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb;;AAGJ,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;QACvB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;;+GAxBrC,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+DAFpB,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE9C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE,CAAC,kBAAkB,CAAA,sBAAA,CAAwB,CAAC;AAC1D,iBAAA;;;ACGD;;AAEG;MAkBU,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EARb,YAAA,EAAA,CAAA,sBAAsB,EAAE,sBAAsB,aAPzD,gBAAgB;YAChB,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB;AACtB,YAAA,qCAAqC,kVAKrC,sBAAsB;YACtB,sBAAsB;YACtB,qBAAqB,EAAA,EAAA,CAAA,2BAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA;AAIhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAdxB,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA;;4FAYjB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAjB/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,gBAAgB;wBAChB,2BAA2B;wBAC3B,4BAA4B;wBAC5B,sBAAsB;wBACtB,qCAAqC;AACrC,wBAAA,GAAG,WAAW;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;AAC9D,oBAAA,OAAO,EAAE;wBACL,sBAAsB;wBACtB,sBAAsB;wBACtB,qBAAqB;AACrB,wBAAA,GAAG,WAAW;AACjB,qBAAA;AACJ,iBAAA;;;ACnCD;;AAEG;;;;"}