@skbkontur/react-ui 5.4.0-combobox-multiline-beta.1 → 5.4.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 (292) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +2 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +5 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +2 -1
  6. package/cjs/components/Button/Button.js +19 -17
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/ButtonArrow.js +13 -14
  9. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  10. package/cjs/components/Checkbox/Checkbox.d.ts +2 -4
  11. package/cjs/components/Checkbox/Checkbox.js +15 -19
  12. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  13. package/cjs/components/ComboBox/ComboBox.d.ts +10 -2
  14. package/cjs/components/ComboBox/ComboBox.js +10 -0
  15. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  16. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -1
  17. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  18. package/cjs/components/CurrencyLabel/CurrencyLabel.js +2 -2
  19. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  20. package/cjs/components/DateInput/DateInput.d.ts +3 -1
  21. package/cjs/components/DateInput/DateInput.js +8 -4
  22. package/cjs/components/DateInput/DateInput.js.map +1 -1
  23. package/cjs/components/FileUploader/FileUploader.js +1 -0
  24. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  25. package/cjs/components/FxInput/FxInput.d.ts +10 -2
  26. package/cjs/components/FxInput/FxInput.js +140 -58
  27. package/cjs/components/FxInput/FxInput.js.map +1 -1
  28. package/cjs/components/FxInput/FxInputRestoreBtn.js +2 -3
  29. package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  30. package/cjs/components/Input/Input.d.ts +4 -5
  31. package/cjs/components/Input/Input.js +16 -47
  32. package/cjs/components/Input/Input.js.map +1 -1
  33. package/cjs/components/Input/Input.styles.d.ts +0 -1
  34. package/cjs/components/Input/Input.styles.js +8 -19
  35. package/cjs/components/Input/Input.styles.js.map +1 -1
  36. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  37. package/cjs/components/Kebab/Kebab.js +9 -5
  38. package/cjs/components/Kebab/Kebab.js.map +1 -1
  39. package/cjs/components/Link/Link.js +9 -1
  40. package/cjs/components/Link/Link.js.map +1 -1
  41. package/cjs/components/Loader/Loader.d.ts +1 -0
  42. package/cjs/components/Loader/Loader.js +5 -1
  43. package/cjs/components/Loader/Loader.js.map +1 -1
  44. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  45. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
  46. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  47. package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -2
  48. package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  49. package/cjs/components/MaskedInput/MaskedInput.d.ts +8 -0
  50. package/cjs/components/MaskedInput/MaskedInput.js +26 -3
  51. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  52. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -5
  53. package/cjs/components/PasswordInput/PasswordInput.js +20 -22
  54. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  55. package/cjs/components/Radio/Radio.d.ts +2 -1
  56. package/cjs/components/Radio/Radio.js +6 -4
  57. package/cjs/components/Radio/Radio.js.map +1 -1
  58. package/cjs/components/Select/Select.d.ts +2 -1
  59. package/cjs/components/Select/Select.js +9 -6
  60. package/cjs/components/Select/Select.js.map +1 -1
  61. package/cjs/components/SidePage/SidePage.js +3 -1
  62. package/cjs/components/SidePage/SidePage.js.map +1 -1
  63. package/cjs/components/SidePage/SidePage.styles.js +2 -2
  64. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  65. package/cjs/components/SingleToast/SingleToast.d.ts +32 -2
  66. package/cjs/components/SingleToast/SingleToast.js +58 -3
  67. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  68. package/cjs/components/Textarea/Textarea.d.ts +2 -1
  69. package/cjs/components/Textarea/Textarea.js +8 -4
  70. package/cjs/components/Textarea/Textarea.js.map +1 -1
  71. package/cjs/components/Textarea/Textarea.styles.js +2 -2
  72. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  73. package/cjs/components/Toast/Toast.d.ts +54 -9
  74. package/cjs/components/Toast/Toast.js +103 -11
  75. package/cjs/components/Toast/Toast.js.map +1 -1
  76. package/cjs/components/Toast/ToastView.d.ts +5 -1
  77. package/cjs/components/Toast/ToastView.js +21 -5
  78. package/cjs/components/Toast/ToastView.js.map +1 -1
  79. package/cjs/components/Toast/ToastView.styles.d.ts +4 -0
  80. package/cjs/components/Toast/ToastView.styles.js +43 -9
  81. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  82. package/cjs/components/Toggle/Toggle.d.ts +2 -1
  83. package/cjs/components/Toggle/Toggle.js +5 -5
  84. package/cjs/components/Toggle/Toggle.js.map +1 -1
  85. package/cjs/components/TokenInput/TokenInput.d.ts +4 -1
  86. package/cjs/components/TokenInput/TokenInput.js +42 -30
  87. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  88. package/cjs/components/Tooltip/Tooltip.d.ts +2 -1
  89. package/cjs/components/Tooltip/Tooltip.js +14 -11
  90. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  91. package/cjs/index.d.ts +1 -0
  92. package/cjs/index.js +1 -0
  93. package/cjs/index.js.map +1 -1
  94. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +5 -2
  95. package/cjs/internal/CustomComboBox/ComboBoxView.js +30 -6
  96. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  97. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  98. package/cjs/internal/CustomComboBox/CustomComboBox.js +14 -5
  99. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  100. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  101. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  102. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -3
  103. package/cjs/internal/InputLikeText/InputLikeText.js +12 -14
  104. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  105. package/cjs/internal/ThemePlayground/Playground.js +5 -1
  106. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  107. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  108. package/cjs/internal/themes/BasicTheme.d.ts +9 -0
  109. package/cjs/internal/themes/BasicTheme.js +11 -2
  110. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  111. package/cjs/internal/themes/DarkTheme5_4.js +2 -1
  112. package/cjs/internal/themes/DarkTheme5_4.js.map +1 -1
  113. package/cjs/internal/themes/LightTheme5_4.js +2 -1
  114. package/cjs/internal/themes/LightTheme5_4.js.map +1 -1
  115. package/cjs/internal/themes/consts.d.ts +1 -0
  116. package/cjs/internal/themes/consts.js +2 -1
  117. package/cjs/internal/themes/consts.js.map +1 -1
  118. package/cjs/lib/__stories__/Blink.creevey.mts +90 -0
  119. package/cjs/lib/blink.d.ts +15 -0
  120. package/cjs/lib/blink.js +65 -0
  121. package/cjs/lib/blink.js.map +1 -0
  122. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +2 -0
  123. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +2 -0
  124. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +5 -1
  125. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  126. package/cjs/lib/size/SizeControlContext.d.ts +6 -0
  127. package/cjs/lib/size/SizeControlContext.js +16 -0
  128. package/cjs/lib/size/SizeControlContext.js.map +1 -0
  129. package/cjs/lib/size/SizeDecorator.d.ts +33 -0
  130. package/cjs/lib/size/SizeDecorator.js +41 -0
  131. package/cjs/lib/size/SizeDecorator.js.map +1 -0
  132. package/cjs/lib/size/constants.d.ts +2 -0
  133. package/cjs/lib/size/constants.js +3 -0
  134. package/cjs/lib/size/constants.js.map +1 -0
  135. package/cjs/lib/size/index.d.ts +1 -0
  136. package/cjs/lib/size/index.js +1 -0
  137. package/cjs/lib/size/index.js.map +1 -0
  138. package/cjs/lib/size/useSizeControl.d.ts +2 -0
  139. package/cjs/lib/size/useSizeControl.js +10 -0
  140. package/cjs/lib/size/useSizeControl.js.map +1 -0
  141. package/cjs/lib/utils.d.ts +13 -0
  142. package/cjs/lib/utils.js +34 -1
  143. package/cjs/lib/utils.js.map +1 -1
  144. package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -4
  145. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  146. package/components/Autocomplete/Autocomplete.d.ts +2 -1
  147. package/components/Button/Button/Button.js +22 -22
  148. package/components/Button/Button/Button.js.map +1 -1
  149. package/components/Button/Button.d.ts +2 -1
  150. package/components/Button/ButtonArrow/ButtonArrow.js +1 -3
  151. package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
  152. package/components/Checkbox/Checkbox/Checkbox.js +12 -13
  153. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  154. package/components/Checkbox/Checkbox.d.ts +2 -4
  155. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  156. package/components/ComboBox/ComboBox.d.ts +10 -2
  157. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +2 -1
  158. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  159. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
  160. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  161. package/components/DateInput/DateInput/DateInput.js +9 -8
  162. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  163. package/components/DateInput/DateInput.d.ts +3 -1
  164. package/components/FileUploader/FileUploader/FileUploader.js +1 -0
  165. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  166. package/components/FxInput/FxInput/FxInput.js +121 -65
  167. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  168. package/components/FxInput/FxInput.d.ts +10 -2
  169. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js +2 -2
  170. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
  171. package/components/Input/Input/Input.js +23 -52
  172. package/components/Input/Input/Input.js.map +1 -1
  173. package/components/Input/Input.d.ts +4 -5
  174. package/components/Input/Input.styles/Input.styles.js +9 -13
  175. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  176. package/components/Input/Input.styles.d.ts +0 -1
  177. package/components/Kebab/Kebab/Kebab.js +7 -7
  178. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  179. package/components/Kebab/Kebab.d.ts +2 -1
  180. package/components/Link/Link/Link.js +4 -1
  181. package/components/Link/Link/Link.js.map +1 -1
  182. package/components/Loader/Loader/Loader.js +2 -1
  183. package/components/Loader/Loader/Loader.js.map +1 -1
  184. package/components/Loader/Loader.d.ts +1 -0
  185. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
  186. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  187. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  188. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +3 -2
  189. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
  190. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -2
  191. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  192. package/components/MaskedInput/MaskedInput.d.ts +8 -0
  193. package/components/PasswordInput/PasswordInput/PasswordInput.js +13 -19
  194. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  195. package/components/PasswordInput/PasswordInput.d.ts +3 -5
  196. package/components/Radio/Radio/Radio.js +7 -7
  197. package/components/Radio/Radio/Radio.js.map +1 -1
  198. package/components/Radio/Radio.d.ts +2 -1
  199. package/components/Select/Select/Select.js +12 -11
  200. package/components/Select/Select/Select.js.map +1 -1
  201. package/components/Select/Select.d.ts +2 -1
  202. package/components/SidePage/SidePage/SidePage.js +2 -2
  203. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  204. package/components/SidePage/SidePage.styles/SidePage.styles.js +1 -1
  205. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  206. package/components/SingleToast/SingleToast/SingleToast.js +37 -12
  207. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  208. package/components/SingleToast/SingleToast.d.ts +32 -2
  209. package/components/Textarea/Textarea/Textarea.js +7 -6
  210. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  211. package/components/Textarea/Textarea.d.ts +2 -1
  212. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  213. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  214. package/components/Toast/Toast/Toast.js +86 -23
  215. package/components/Toast/Toast/Toast.js.map +1 -1
  216. package/components/Toast/Toast.d.ts +54 -9
  217. package/components/Toast/ToastView/ToastView.js +17 -5
  218. package/components/Toast/ToastView/ToastView.js.map +1 -1
  219. package/components/Toast/ToastView.d.ts +5 -1
  220. package/components/Toast/ToastView.styles/ToastView.styles.js +17 -5
  221. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  222. package/components/Toast/ToastView.styles.d.ts +4 -0
  223. package/components/Toggle/Toggle/Toggle.js +10 -10
  224. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  225. package/components/Toggle/Toggle.d.ts +2 -1
  226. package/components/TokenInput/TokenInput/TokenInput.js +47 -42
  227. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  228. package/components/TokenInput/TokenInput.d.ts +4 -1
  229. package/components/Tooltip/Tooltip/Tooltip.js +13 -9
  230. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  231. package/components/Tooltip/Tooltip.d.ts +2 -1
  232. package/index.d.ts +1 -0
  233. package/index.js +1 -0
  234. package/index.js.map +1 -1
  235. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +35 -20
  236. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  237. package/internal/CustomComboBox/ComboBoxView.d.ts +5 -2
  238. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +10 -6
  239. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  240. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  241. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  242. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  243. package/internal/InputLikeText/InputLikeText/InputLikeText.js +17 -28
  244. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  245. package/internal/InputLikeText/InputLikeText.d.ts +2 -3
  246. package/internal/ThemePlayground/Playground/Playground.js +4 -2
  247. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  248. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/internal/themes/BasicTheme/BasicTheme.js +10 -1
  250. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  251. package/internal/themes/BasicTheme.d.ts +9 -0
  252. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +1 -1
  253. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -1
  254. package/internal/themes/LightTheme5_4/LightTheme5_4.js +1 -1
  255. package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -1
  256. package/internal/themes/consts/consts.js +3 -1
  257. package/internal/themes/consts/consts.js.map +1 -1
  258. package/internal/themes/consts.d.ts +1 -0
  259. package/lib/__stories__/Blink.creevey.mts +90 -0
  260. package/lib/blink/blink.js +63 -0
  261. package/lib/blink/blink.js.map +1 -0
  262. package/lib/blink/package.json +6 -0
  263. package/lib/blink.d.ts +15 -0
  264. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +2 -0
  265. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  266. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  267. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +2 -0
  268. package/lib/size/SizeControlContext/SizeControlContext.js +7 -0
  269. package/lib/size/SizeControlContext/SizeControlContext.js.map +1 -0
  270. package/lib/size/SizeControlContext/package.json +6 -0
  271. package/lib/size/SizeControlContext.d.ts +6 -0
  272. package/lib/size/SizeDecorator/SizeDecorator.js +41 -0
  273. package/lib/size/SizeDecorator/SizeDecorator.js.map +1 -0
  274. package/lib/size/SizeDecorator/package.json +6 -0
  275. package/lib/size/SizeDecorator.d.ts +33 -0
  276. package/lib/size/constants/constants.js +1 -0
  277. package/lib/size/constants/constants.js.map +1 -0
  278. package/lib/size/constants/package.json +6 -0
  279. package/lib/size/constants.d.ts +2 -0
  280. package/lib/size/index/index.js +1 -0
  281. package/lib/size/index/index.js.map +1 -0
  282. package/lib/size/index/package.json +6 -0
  283. package/lib/size/index.d.ts +1 -0
  284. package/lib/size/package.json +6 -0
  285. package/lib/size/useSizeControl/package.json +6 -0
  286. package/lib/size/useSizeControl/useSizeControl.js +7 -0
  287. package/lib/size/useSizeControl/useSizeControl.js.map +1 -0
  288. package/lib/size/useSizeControl.d.ts +2 -0
  289. package/lib/utils/utils.js +26 -0
  290. package/lib/utils/utils.js.map +1 -1
  291. package/lib/utils.d.ts +13 -0
  292. package/package.json +4 -6
package/CHANGELOG.md CHANGED
@@ -3,6 +3,127 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.4.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.4.0...@skbkontur/react-ui@5.4.1) (2025-11-01)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **CurrencyInput:** do not warn about null value ([5a2f5bd](https://github.com/skbkontur/retail-ui/commit/5a2f5bd09598e11e4e69dd96eca55dd44c6f78e0))
12
+ * **CurrencyInput:** fix onPaste handler ([a50f7e0](https://github.com/skbkontur/retail-ui/commit/a50f7e0cf859381c0eb54a38fe5aca61a77f5f5d))
13
+ * **FxInput:** add support `mask` & feature flag `fxInputUseMaskedInput` ([f86d3bd](https://github.com/skbkontur/retail-ui/commit/f86d3bde8e205dbea77faee0fd079266af04980f))
14
+
15
+
16
+
17
+
18
+
19
+ # [5.4.0](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.11...@skbkontur/react-ui@5.4.0) (2025-10-23)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **Button, Link:** fix passing of disabled attribute to root ([beb66d9](https://github.com/skbkontur/retail-ui/commit/beb66d9cefbe4efa0b55916a5cd0fcb649a12993))
25
+ * **Tooltip:** use correct default positions ([3237031](https://github.com/skbkontur/retail-ui/commit/3237031370d74729b3b4dcb2bc7439cfb38b0df3))
26
+
27
+
28
+ ### Features
29
+
30
+ * **SizeControlContext:** Add size control context ([66cc2ac](https://github.com/skbkontur/retail-ui/commit/66cc2acb818f4391fb7349b52da7433f627a367d))
31
+ * **Combobox:** add multiline behavior ([cab53bd](https://github.com/skbkontur/retail-ui/commit/cab53bd482d8716cf294db333d39b6fc8515955c))
32
+ * **Toast,SingleToast:** add `use` option and `error` view ([9958f1b](https://github.com/skbkontur/retail-ui/commit/9958f1b117645244566ef652290766d3923dfc4a))
33
+ * **react-ui:** update react-focus-lock package ([d733020](https://github.com/skbkontur/retail-ui/commit/d73302034bc23e703fca38022fe038e717635bab))
34
+
35
+
36
+
37
+
38
+
39
+ ## [5.3.11](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.10...@skbkontur/react-ui@5.3.11) (2025-10-22)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * **SidePage:** fix clipping of shadows/focuses inside SidePage.Body ([d41d10e](https://github.com/skbkontur/retail-ui/commit/d41d10ea28c546c97b3f0dff902b37054f6be364))
45
+
46
+
47
+
48
+
49
+
50
+ ## [5.3.10](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.9...@skbkontur/react-ui@5.3.10) (2025-10-16)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * **DatePicker:** pass correct value to onValueChange on blur ([8e82ee0](https://github.com/skbkontur/retail-ui/commit/8e82ee07ae2e29a6ab608863e89bb85511597a10))
56
+
57
+
58
+
59
+
60
+
61
+ ## [5.3.9](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.8...@skbkontur/react-ui@5.3.9) (2025-10-03)
62
+
63
+
64
+ ### Bug Fixes
65
+
66
+ * **SidePage:** add support for overlays from widgets ([8a968cb](https://github.com/skbkontur/retail-ui/commit/8a968cb3b896d4ca22f9ed5116bb600a036426b4))
67
+
68
+
69
+
70
+
71
+
72
+ ## [5.3.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.7...@skbkontur/react-ui@5.3.8) (2025-10-01)
73
+
74
+
75
+ ### Bug Fixes
76
+
77
+ * **TokenInput:** create token on blur in "withoutReference" mode (feature flag) ([10ebcbb](https://github.com/skbkontur/retail-ui/commit/10ebcbb58e3736f5c4887ea8daca148b55b6c6d6))
78
+
79
+
80
+
81
+
82
+
83
+ ## [5.3.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.6...@skbkontur/react-ui@5.3.7) (2025-09-24)
84
+
85
+
86
+ ### Bug Fixes
87
+
88
+ * **MaskedInput:** return "" from onValueChange after input cleaning ([884ed1c](https://github.com/skbkontur/retail-ui/commit/884ed1c296d36bea895b3cb13481dcf67052193f))
89
+
90
+
91
+
92
+
93
+
94
+ ## [5.3.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.5...@skbkontur/react-ui@5.3.6) (2025-09-24)
95
+
96
+
97
+ ### Bug Fixes
98
+
99
+ * **ComboBox,MaskedInput:** support mask and filter value on paste ([a6f6935](https://github.com/skbkontur/retail-ui/commit/a6f69355a1b962dbaf8a86158c6b833b2159eb48))
100
+
101
+
102
+
103
+
104
+
105
+ ## [5.3.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.4...@skbkontur/react-ui@5.3.5) (2025-09-24)
106
+
107
+
108
+ ### Bug Fixes
109
+
110
+ * **FileUploader:** set files on drop ([ba181f3](https://github.com/skbkontur/retail-ui/commit/ba181f3e89354bea9e18e4ca20dd97c43c7e292e))
111
+
112
+
113
+
114
+
115
+
116
+ ## [5.3.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.3...@skbkontur/react-ui@5.3.4) (2025-09-23)
117
+
118
+
119
+ ### Bug Fixes
120
+
121
+ * **react-ui:** use imask with fixed sourcemap ([a4ee23d](https://github.com/skbkontur/retail-ui/commit/a4ee23de971210302c2e3dfcf9f1e9b1c5eb2ad5))
122
+
123
+
124
+
125
+
126
+
6
127
  ## [5.3.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.2...@skbkontur/react-ui@5.3.3) (2025-09-22)
7
128
 
8
129
 
@@ -52,7 +52,7 @@ export declare const AutocompleteDataTids: {
52
52
  export declare const AutocompleteIds: {
53
53
  readonly menu: "Autocomplete__menu";
54
54
  };
55
- type DefaultProps = Required<Pick<AutocompleteProps, 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>>;
55
+ type DefaultProps = Required<Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>>;
56
56
  /**
57
57
  * `Autocomplete` — стандартный инпут с подсказками.
58
58
  *
@@ -65,6 +65,7 @@ export declare class Autocomplete extends React.Component<AutocompleteProps, Aut
65
65
  static defaultProps: DefaultProps;
66
66
  state: AutocompleteState;
67
67
  private theme;
68
+ private size;
68
69
  private readonly locale;
69
70
  private isMobileLayout;
70
71
  private opened;
@@ -32,6 +32,7 @@ var _MaskedInput = require("../MaskedInput");
32
32
 
33
33
  var _ReactUIFeatureFlagsContext = require("../../lib/featureFlagsContext/ReactUIFeatureFlagsContext");
34
34
  var _FeatureFlagsHelpers = require("../../lib/featureFlagsContext/FeatureFlagsHelpers");
35
+ var _SizeDecorator = require("../../lib/size/SizeDecorator");
35
36
 
36
37
  var _Autocomplete2 = require("./Autocomplete.styles");
37
38
 
@@ -128,9 +129,6 @@ var AutocompleteIds = exports.AutocompleteIds = {
128
129
 
129
130
 
130
131
 
131
-
132
-
133
-
134
132
  /**
135
133
  * `Autocomplete` — стандартный инпут с подсказками.
136
134
  *
@@ -140,8 +138,8 @@ var AutocompleteIds = exports.AutocompleteIds = {
140
138
 
141
139
 
142
140
 
143
- Autocomplete = exports.Autocomplete = (_dec = (0, _decorators.locale)('Autocomplete', _locale.AutocompleteLocaleHelper), (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_class = _dec(_class = (_Autocomplete = /*#__PURE__*/function (_React$Component) {function Autocomplete() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
144
141
 
142
+ Autocomplete = exports.Autocomplete = (_dec = (0, _decorators.locale)('Autocomplete', _locale.AutocompleteLocaleHelper), (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_class = _dec(_class = (0, _SizeDecorator.withSize)(_class = (_Autocomplete = /*#__PURE__*/function (_React$Component) {function Autocomplete() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
145
143
 
146
144
 
147
145
 
@@ -163,6 +161,7 @@ Autocomplete = exports.Autocomplete = (_dec = (0, _decorators.locale)('Autocompl
163
161
 
164
162
 
165
163
 
164
+
166
165
  opened = false;_this.
167
166
  input = null;_this.
168
167
 
@@ -383,7 +382,7 @@ Autocomplete = exports.Autocomplete = (_dec = (0, _decorators.locale)('Autocompl
383
382
  return items ?
384
383
  items.map(function (item, i) {
385
384
  return /*#__PURE__*/(
386
- _react.default.createElement(_MenuItem.MenuItem, { onClick: _this.handleMenuItemClick(i), key: i, isMobile: isMobile, size: _this.props.size },
385
+ _react.default.createElement(_MenuItem.MenuItem, { onClick: _this.handleMenuItemClick(i), key: i, isMobile: isMobile, size: _this.size },
387
386
  _this.getProps().renderItem(item)
388
387
  ));
389
388
 
@@ -572,4 +571,4 @@ Autocomplete = exports.Autocomplete = (_dec = (0, _decorators.locale)('Autocompl
572
571
  * @public
573
572
  */;_proto.blur = function blur() {this.handleBlur();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.value !== this.props.value) {this.updateItems(this.props.value || '');}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ReactUIFeatureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _FeatureFlagsHelpers.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getAutocompleteTheme.getAutocompleteTheme)(theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain));});});};_proto.renderHints = function renderHints() {var items = this.state.items;if (!this.props.value) {return /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, null, this.locale.enterValue);}if ((items == null ? void 0 : items.length) === 0 && this.props.value) {return /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, null, this.locale.notFound);}if ((0, _utils.isNullable)(items) && this.props.value) {return /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, null, this.locale.updateValue);}return null;};_proto.renderMenu = function renderMenu() {var items = this.state.items;var _this$getProps = this.getProps(),menuPos = _this$getProps.menuPos,menuAlign = _this$getProps.menuAlign,menuMaxHeight = _this$getProps.menuMaxHeight,hasShadow = _this$getProps.hasShadow,menuWidth = _this$getProps.menuWidth,width = _this$getProps.width,preventWindowScroll = _this$getProps.preventWindowScroll,disablePortal = _this$getProps.disablePortal;var calculatedMenuWidth = menuWidth ? '100%' : width && (0, _getDOMRect.getDOMRect)(this.rootSpan).width;var menuProps = { ref: this.refMenu, maxHeight: menuMaxHeight, hasShadow: false, hasMargin: false, width: calculatedMenuWidth, preventWindowScroll: preventWindowScroll };if (!items || items.length === 0) {return null;}return /*#__PURE__*/_react.default.createElement(_Popup.Popup, { opened: true, hasShadow: hasShadow, id: this.menuId, priority: _ZIndex.ZIndex.priorities.PopupMenu, "data-tid": AutocompleteDataTids.menu, anchorElement: this.getAnchor(), disablePortal: disablePortal, width: menuWidth, minWidth: menuWidth === undefined ? '100%' : undefined, positions: (0, _getMenuPositions.getMenuPositions)(menuPos, menuAlign), margin: parseInt(this.theme.menuOffsetY) - 1 }, /*#__PURE__*/_react.default.createElement(_Menu.Menu, menuProps, this.getItems()));};_proto.handleMenuItemClick = function handleMenuItemClick(i) {var _this3 = this;return function (event) {return _this3.handleItemClick(event, i);};};_proto.handleItemClick = function handleItemClick(event, index) {if (event.button) {return;}event.preventDefault();this.choose(index);};_proto.choose = function choose(index) {var _this4 = this;if (!this.state.items) {return;}var value = this.state.items[index];this.opened = false;this.setState({ selected: -1, items: null });this.fireChange(value); // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.
574
573
  // Можно будет убрать после полного перехода на MaskedInput
575
- _globalObject.globalObject.setTimeout(function () {_this4.blur();}, 0);};_proto.updateItems = function updateItems(value) {var _this5 = this;if (!this.opened) {return;}var pattern = value.trim();var source = this.props.source;if (!source) {return;}var promise;this.requestId += 1;var expectingId = this.requestId;if (typeof source === 'function') {promise = source(pattern);} else {promise = match(pattern, source);}promise.then(function (items) {if (_this5.opened && expectingId === _this5.requestId) {_this5.setState({ items: items, selected: -1 });}});};_proto.fireChange = function fireChange(value) {if (this.props.onValueChange) {this.props.onValueChange(value);}};return Autocomplete;}(_react.default.Component), _Autocomplete.__KONTUR_REACT_UI__ = 'Autocomplete', _Autocomplete.displayName = 'Autocomplete', _Autocomplete.defaultProps = { renderItem: renderItem, size: 'small', disablePortal: false, hasShadow: true, menuMaxHeight: 300, preventWindowScroll: true }, _Autocomplete)) || _class) || _class) || _class);
574
+ _globalObject.globalObject.setTimeout(function () {_this4.blur();}, 0);};_proto.updateItems = function updateItems(value) {var _this5 = this;if (!this.opened) {return;}var pattern = value.trim();var source = this.props.source;if (!source) {return;}var promise;this.requestId += 1;var expectingId = this.requestId;if (typeof source === 'function') {promise = source(pattern);} else {promise = match(pattern, source);}promise.then(function (items) {if (_this5.opened && expectingId === _this5.requestId) {_this5.setState({ items: items, selected: -1 });}});};_proto.fireChange = function fireChange(value) {if (this.props.onValueChange) {this.props.onValueChange(value);}};return Autocomplete;}(_react.default.Component), _Autocomplete.__KONTUR_REACT_UI__ = 'Autocomplete', _Autocomplete.displayName = 'Autocomplete', _Autocomplete.defaultProps = { renderItem: renderItem, disablePortal: false, hasShadow: true, menuMaxHeight: 300, preventWindowScroll: true }, _Autocomplete)) || _class) || _class) || _class) || _class);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_MenuMessage","_decorators","_utils","_ThemeContext","_Emotion","_identifiers","_Input","_Menu","_MenuItem","_RenderLayer","_createPropsGetter","_fixClickFocusIE","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_getDOMRect","_Popup","_getMenuPositions","_ZIndex","_MaskedInput","_ReactUIFeatureFlagsContext","_FeatureFlagsHelpers","_Autocomplete2","_locale","_getAutocompleteTheme","_excluded","_dec","_class","_Autocomplete","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","exports","root","menu","AutocompleteIds","Autocomplete","locale","AutocompleteLocaleHelper","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","getRandomID","requestId","getProps","createPropsGetter","defaultProps","renderMain","props","_cx","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","_props$width","width","theme","inputWidth","mobileMenuHeaderText","type","rest","_objectWithoutPropertiesLoose2","default","inputProps","_extends2","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","RenderLayer","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","cx","styles","noPortal","style","refRootSpan","getInput","renderMobileMenu","renderMenu","featureFlags","autocompleteUseMaskedInput","mask","MaskedInput","getSafeMaskInputType","maskChar","Input","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","inputMode","MobilePopup","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","Menu","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","MenuItem","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","fixClickFocusIE","isKeyEscape","preventDefault","isKeyArrowUp","up","isKeyArrowDown","down","isKeyEnter","enter","getAnchor","getRootNode","el","span","rootSpan","_inheritsLoose2","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","getAutocompleteTheme","Provider","CommonWrapper","rootNodeRef","setRootNode","MenuMessage","notFound","isNullable","updateValue","_this$getProps","menuWidth","calculatedMenuWidth","getDOMRect","menuProps","hasMargin","Popup","priority","ZIndex","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","getMenuPositions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","globalObject","setTimeout","_this5","trim","promise","expectingId","then","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Autocomplete.tsx"],"sourcesContent":["import type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../../internal/Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getSafeMaskInputType, MaskedInput, type MaskedProps } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { styles } from './Autocomplete.styles';\nimport type { AutocompleteLocale } from './locale';\nimport { AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Задает функцию, которая отрисовывает элементы меню. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задает промис, который резолвит элементы меню. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего меню. */\n hasShadow?: boolean;\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает максимальную высоту выпадающего меню. */\n menuMaxHeight?: number | string;\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда меню открыто. */\n preventWindowScroll?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при потере автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Задаёт размер инпута. */\n size?: SizeProp;\n\n /** Задает значение автокомплита. */\n value: string;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n AutocompleteProps,\n 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'\n >\n>;\n\n/**\n * `Autocomplete` — стандартный инпут с подсказками.\n *\n * Подсказки определяются в пропе `source`.\n * Все свойства передаются во внутренний `Input`.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n private featureFlags!: ReactUIFeatureFlags;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={cx(styles.root(this.theme), {\n [styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.featureFlags.autocompleteUseMaskedInput && this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} mask={this.props.mask} maskChar={this.props.maskChar} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={this.getInput(inputProps)}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.props.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n globalObject.setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;;AAEA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;;AAEA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;AACA,IAAAY,kBAAA,GAAAZ,OAAA;;AAEA,IAAAa,gBAAA,GAAAb,OAAA;;AAEA,IAAAc,cAAA,GAAAd,OAAA;AACA,IAAAe,YAAA,GAAAf,OAAA;AACA,IAAAgB,UAAA,GAAAhB,OAAA;;AAEA,IAAAiB,SAAA,GAAAjB,OAAA;AACA,IAAAkB,WAAA,GAAAlB,OAAA;;AAEA,IAAAmB,MAAA,GAAAnB,OAAA;AACA,IAAAoB,iBAAA,GAAApB,OAAA;AACA,IAAAqB,OAAA,GAAArB,OAAA;AACA,IAAAsB,YAAA,GAAAtB,OAAA;;AAEA,IAAAuB,2BAAA,GAAAvB,OAAA;AACA,IAAAwB,oBAAA,GAAAxB,OAAA;;AAEA,IAAAyB,cAAA,GAAAzB,OAAA;;AAEA,IAAA0B,OAAA,GAAA1B,OAAA;AACA,IAAA2B,qBAAA,GAAA3B,OAAA,2BAA8D,IAAA4B,SAAA,0NAAAC,IAAA,EAAAC,MAAA,EAAAC,aAAA;;AAE9D,SAASC,KAAKA,CAACC,OAAe,EAAEC,KAAe,EAAE;EAC/C,IAAI,CAACD,OAAO,IAAI,CAACC,KAAK,EAAE;IACtB,OAAOC,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;EAC5B;;EAEA,IAAMC,iBAAiB,GAAGJ,OAAO,CAACK,WAAW,CAAC,CAAC;EAC/C,IAAMC,oBAAoB,GAAGL,KAAK,CAACM,MAAM,CAAC,UAACC,IAAI,EAAK;IAClD,OAAOA,IAAI,CAACH,WAAW,CAAC,CAAC,CAACI,QAAQ,CAACL,iBAAiB,CAAC;EACvD,CAAC,CAAC;;EAEF,OAAOF,OAAO,CAACC,OAAO,CAACG,oBAAoB,CAAC;AAC9C;;AAEA,SAASI,UAAUA,CAACF,IAAS,EAAE;EAC7B,OAAOA,IAAI;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DO,IAAMG,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE;AACR,CAAU;;AAEH,IAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG;EAC7BD,IAAI,EAAEH,oBAAoB,CAACG;AAC7B,CAAU;;;;;;;;;AASV;AACA;AACA;AACA;AACA;AACA,GALA;;;;AASaE,YAAY,GAAAJ,OAAA,CAAAI,YAAA,IAAApB,IAAA,GADxB,IAAAqB,kBAAM,EAAC,cAAc,EAAEC,gCAAwB,CAAC,MAFhDC,2BAAgB,EAAAtB,MAAA,OAChBuB,kBAAQ,EAAAvB,MAAA,GAAAD,IAAA,CAAAC,MAAA,IAAAC,aAAA,0BAAAuB,gBAAA,YAAAL,aAAA,OAAAM,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;IAeAU,KAAK,GAAsB;MAChC/B,KAAK,EAAE,IAAI;MACXgC,QAAQ,EAAE,CAAC,CAAC;MACZC,OAAO,EAAE,KAAK;MACdC,cAAc,EAAE;IAClB,CAAC,CAAAb,KAAA;;;;;IAKOc,MAAM,GAAG,KAAK,CAAAd,KAAA;IACde,KAAK,GAAoB,IAAI,CAAAf,KAAA;;IAE7BgB,MAAM,GAAGvB,eAAe,CAACD,IAAI,GAAG,IAAAyB,kBAAW,EAAC,CAAC,CAAAjB,KAAA;;;;;IAK7CkB,SAAS,GAAG,CAAC,CAAAlB,KAAA;;IAEbmB,QAAQ,GAAG,IAAAC,oCAAiB,EAAC1B,YAAY,CAAC2B,YAAY,CAAC,CAAArB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiDxDsB,UAAU,GAAG,UAACC,KAAgD,EAAK,KAAAC,GAAA;MACxE,IAAQZ,OAAO,GAAKZ,KAAA,CAAKU,KAAK,CAAtBE,OAAO;;MAEf,IAAMa,QAAQ,GAAGzB,KAAA,CAAK0B,cAAc;;MAEpC;QACEC,aAAa;;;;;;;;;;;;;;;;QAgBXJ,KAAK,CAhBPI,aAAa,CACbC,SAAS,GAePL,KAAK,CAfPK,SAAS,CACTC,OAAO,GAcLN,KAAK,CAdPM,OAAO,CACPC,MAAM,GAaJP,KAAK,CAbPO,MAAM,CACMC,WAAW,GAYrBR,KAAK,CAZPnC,UAAU,CACV4C,aAAa,GAWXT,KAAK,CAXPS,aAAa,CACbC,SAAS,GAUPV,KAAK,CAVPU,SAAS,CACTC,SAAS,GASPX,KAAK,CATPW,SAAS,CACTC,aAAa,GAQXZ,KAAK,CARPY,aAAa,CACbC,mBAAmB,GAOjBb,KAAK,CAPPa,mBAAmB,CACnBC,MAAM,GAMJd,KAAK,CANPc,MAAM,CACNC,OAAO,GAKLf,KAAK,CALPe,OAAO,CAAAC,YAAA,GAKLhB,KAAK,CAJPiB,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGvC,KAAA,CAAKyC,KAAK,CAACC,UAAU,GAAAH,YAAA,CAC7BI,oBAAoB,GAGlBpB,KAAK,CAHPoB,oBAAoB,CACpBC,IAAI,GAEFrB,KAAK,CAFPqB,IAAI,CACDC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLxB,KAAK,EAAAlD,SAAA;;MAET,IAAM2E,UAAU,OAAAC,SAAA,CAAAF,OAAA;MACXF,IAAI;QACPL,KAAK,EAAE,MAAM;QACbU,YAAY,EAAE,KAAK;QACnB,eAAe,EAAElD,KAAA,CAAKgB,MAAM;QAC5BW,aAAa,EAAE3B,KAAA,CAAKmD,iBAAiB;QACrCvB,SAAS,EAAE5B,KAAA,CAAKoD,aAAa;QAC7BvB,OAAO,EAAE7B,KAAA,CAAKqD,WAAW;QACzBC,GAAG,EAAEtD,KAAA,CAAKuD,QAAQ,GACnB;;;MAED;QACEhH,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACpG,YAAA,CAAAqG,WAAW,IAACC,cAAc,EAAE1D,KAAA,CAAK2D,UAAW,EAACC,cAAc,EAAE5D,KAAA,CAAK6D,kBAAmB,EAACC,MAAM,EAAElD,OAAQ;QACrGrE,MAAA,CAAAwG,OAAA,CAAAS,aAAA;UACE,YAAUnE,oBAAoB,CAACE,IAAK;UACpCwE,SAAS,EAAE,IAAAC,WAAE,EAACC,qBAAM,CAAC1E,IAAI,CAACS,KAAA,CAAKyC,KAAK,CAAC,GAAAjB,GAAA,OAAAA,GAAA;UAClCyC,qBAAM,CAACC,QAAQ,CAAC,CAAC,IAAGlC,aAAa,EAAAR,GAAA;UACnC,CAAE;UACH2C,KAAK,EAAE,EAAE3B,KAAK,EAALA,KAAK,CAAC,CAAE;UACjBc,GAAG,EAAEtD,KAAA,CAAKoE,WAAY;;QAErBpE,KAAA,CAAKqE,QAAQ,CAACrB,UAAU,CAAC;;QAEzBvB,QAAQ,GAAGzB,KAAA,CAAKsE,gBAAgB,CAAC,CAAC,GAAGtE,KAAA,CAAKuE,UAAU,CAAC;QAClD;QACK,CAAC;;IAElB,CAAC,CAAAvE,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwDOqE,QAAQ,GAAG,UAACrB,UAAsB,EAAK;MAC7C,OAAOhD,KAAA,CAAKwE,YAAY,CAACC,0BAA0B,IAAIzE,KAAA,CAAKuB,KAAK,CAACmD,IAAI;MACpEnI,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACzF,YAAA,CAAA4G,WAAW,MAAA1B,SAAA,CAAAF,OAAA;MACNC,UAAU;QACdJ,IAAI,EAAE,IAAAgC,iCAAoB,EAAC5E,KAAA,CAAKuB,KAAK,CAACqB,IAAI,CAAE;QAC5C8B,IAAI,EAAE1E,KAAA,CAAKuB,KAAK,CAACmD,IAAK;QACtBG,QAAQ,EAAE7E,KAAA,CAAKuB,KAAK,CAACsD,QAAS;MAC/B,CAAC;;MAEFtI,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACvG,MAAA,CAAA6H,KAAK,MAAA7B,SAAA,CAAAF,OAAA,MAAKC,UAAU,IAAE0B,IAAI,EAAE1E,KAAA,CAAKuB,KAAK,CAACmD,IAAK,EAACG,QAAQ,EAAE7E,KAAA,CAAKuB,KAAK,CAACsD,QAAS,GAAE,CAC/E;;IACH,CAAC,CAAA7E,KAAA;;IAEOsE,gBAAgB,GAAG,YAAM,KAAAS,iBAAA;MAC/B,IAAM/B,UAAsB,GAAG;QAC7BE,YAAY,EAAE,KAAK;QACnB8B,SAAS,EAAE,IAAI;QACfxC,KAAK,EAAE,MAAM;QACbb,aAAa,EAAE3B,KAAA,CAAKmD,iBAAiB;QACrC8B,UAAU,EAAEjF,KAAA,CAAKkF,oBAAoB;QACrCC,KAAK,EAAEnF,KAAA,CAAKuB,KAAK,CAAC4D,KAAK;QACvBC,WAAW,EAAEpF,KAAA,CAAKL,MAAM,CAAC0F,UAAU;QACnCzC,IAAI,EAAE5C,KAAA,CAAKuB,KAAK,CAACqB,IAAI;QACrB0C,SAAS,EAAEtF,KAAA,CAAKuB,KAAK,CAAC+D,SAAS;QAC/B,YAAY,EAAEtF,KAAA,CAAKuB,KAAK,CAAC,YAAY,CAAC;QACtC,eAAe,EAAEvB,KAAA,CAAKgB;MACxB,CAAC;;MAED,IAAMrC,KAAK,GAAGqB,KAAA,CAAKU,KAAK,CAAC/B,KAAK;;MAE9B;QACEpC,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAChG,YAAA,CAAA+H,WAAW;UACVC,EAAE,EAAExF,KAAA,CAAKgB,MAAO;UAChByE,oBAAoB,EAAEzF,KAAA,CAAKqE,QAAQ,CAACrB,UAAU,CAAE;UAChD0C,OAAO,EAAE1F,KAAA,CAAKuB,KAAK,CAACoB,oBAAqB;UACzC7B,MAAM,EAAEd,KAAA,CAAKU,KAAK,CAACG,cAAe;UAClC8E,cAAc,EAAE3F,KAAA,CAAK4F,iBAAkB;UACvCtC,GAAG,EAAEtD,KAAA,CAAK6F,cAAe;;QAEzBtJ,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACtG,KAAA,CAAA4I,IAAI,IAACxC,GAAG,EAAEtD,KAAA,CAAK+F,OAAQ,EAACC,WAAW,GAAAjB,iBAAA,GAAE/E,KAAA,CAAKiG,WAAW,qBAAhBlB,iBAAA,CAAkBmB,KAAM,EAACC,sBAAsB,QAACC,SAAS,EAAE,MAAO;QACrGzH,KAAK,IAAIA,KAAK,CAACwB,MAAM,GAAG,CAAC,IAAIH,KAAA,CAAKqG,QAAQ,CAAC,CAAC;QAC5CrG,KAAA,CAAKsG,WAAW,CAAC;QACd;QACK,CAAC;;IAElB,CAAC,CAAAtG,KAAA;;IAEOqG,QAAQ,GAAG,YAAM;MACvB,IAAM1H,KAAK,GAAGqB,KAAA,CAAKU,KAAK,CAAC/B,KAAK;MAC9B,IAAM8C,QAAQ,GAAGzB,KAAA,CAAK0B,cAAc;;MAEpC,OAAO/C,KAAK;MACRA,KAAK,CAAC4H,GAAG,CAAC,UAACrH,IAAI,EAAEsH,CAAC,EAAK;QACrB;UACEjK,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACrG,SAAA,CAAAsJ,QAAQ,IAACC,OAAO,EAAE1G,KAAA,CAAK2G,mBAAmB,CAACH,CAAC,CAAE,EAACI,GAAG,EAAEJ,CAAE,EAAC/E,QAAQ,EAAEA,QAAS,EAACoF,IAAI,EAAE7G,KAAA,CAAKuB,KAAK,CAACsF,IAAK;UAC/F7G,KAAA,CAAKmB,QAAQ,CAAC,CAAC,CAAC/B,UAAU,CAACF,IAAI;UACxB,CAAC;;MAEf,CAAC,CAAC;MACF,IAAI;IACV,CAAC,CAAAc,KAAA;;IAEOmD,iBAAiB,GAAG,UAACgC,KAAa,EAAK;MAC7CnF,KAAA,CAAKc,MAAM,GAAG,IAAI;;MAElBd,KAAA,CAAK8G,UAAU,CAAC3B,KAAK,CAAC;IACxB,CAAC,CAAAnF,KAAA;;IAEO4F,iBAAiB,GAAG,YAAM;MAChC5F,KAAA,CAAK+G,QAAQ,CAAC;QACZlG,cAAc,EAAE;MAClB,CAAC,CAAC;;MAEFb,KAAA,CAAK2D,UAAU,CAAC,CAAC;IACnB,CAAC,CAAA3D,KAAA;;IAEOkF,oBAAoB,GAAG,UAAC8B,CAAgB,EAAK;MACnD,IAAIA,CAAC,CAACJ,GAAG,KAAK,OAAO,EAAE,KAAAK,kBAAA;QACrB,CAAAA,kBAAA,GAAAjH,KAAA,CAAKiG,WAAW,aAAhBgB,kBAAA,CAAkBf,KAAK,CAAC,CAAC;MAC3B;IACF,CAAC,CAAAlG,KAAA;;IAEOqD,WAAW,GAAG,UAAC6D,KAAyC,EAAK;MACnE,IAAIlH,KAAA,CAAK0B,cAAc,EAAE;QACvB1B,KAAA,CAAK+G,QAAQ,CAAC,EAAElG,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;MACzC;;MAEA,IAAIb,KAAA,CAAKU,KAAK,CAACE,OAAO,EAAE;QACtB;MACF;;MAEAZ,KAAA,CAAK+G,QAAQ,CAAC,EAAEnG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEhC,IAAIZ,KAAA,CAAKuB,KAAK,CAACM,OAAO,EAAE;QACtB7B,KAAA,CAAKuB,KAAK,CAACM,OAAO,CAACqF,KAAK,CAAC;MAC3B;IACF,CAAC,CAAAlH,KAAA;;IAEO2D,UAAU,GAAG,YAAM;MACzB,IAAI,CAAC3D,KAAA,CAAKU,KAAK,CAACE,OAAO,EAAE;QACvB;MACF;;MAEAZ,KAAA,CAAKc,MAAM,GAAG,KAAK;MACnBd,KAAA,CAAK+G,QAAQ,CAAC,EAAEpI,KAAK,EAAE,IAAI,EAAEiC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;;MAE9C,IAAIZ,KAAA,CAAKe,KAAK,EAAE;QACdf,KAAA,CAAKe,KAAK,CAACoG,IAAI,CAAC,CAAC;MACnB;;MAEA,IAAInH,KAAA,CAAKuB,KAAK,CAACO,MAAM,EAAE;QACrB9B,KAAA,CAAKuB,KAAK,CAACO,MAAM,CAAC,CAAC;MACrB;IACF,CAAC,CAAA9B,KAAA;;IAEO6D,kBAAkB,GAAG,UAACmD,CAAQ,EAAK;MACzC,IAAAI,gCAAe,EAACJ,CAAC,CAAC;MAClBhH,KAAA,CAAK2D,UAAU,CAAC,CAAC;IACnB,CAAC,CAAA3D,KAAA;;IAEOoD,aAAa,GAAG,UAAC4D,CAAwC,EAAK;MACpE,IAAIhH,KAAA,CAAKuB,KAAK,CAACK,SAAS,EAAE;QACxB5B,KAAA,CAAKuB,KAAK,CAACK,SAAS,CAACoF,CAAC,CAAC;MACzB;MACA,QAAQ,IAAI;QACV,KAAK,IAAAK,wBAAW,EAACL,CAAC,CAAC;UACjBA,CAAC,CAACM,cAAc,CAAC,CAAC;UAClBtH,KAAA,CAAK+G,QAAQ,CAAC,EAAEpI,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;UAC9B;QACF,KAAK,IAAA4I,yBAAY,EAACP,CAAC,CAAC;UAClBA,CAAC,CAACM,cAAc,CAAC,CAAC;UAClB,IAAItH,KAAA,CAAKR,IAAI,EAAE;YACbQ,KAAA,CAAKR,IAAI,CAACgI,EAAE,CAAC,CAAC;UAChB;UACA;QACF,KAAK,IAAAC,2BAAc,EAACT,CAAC,CAAC;UACpBA,CAAC,CAACM,cAAc,CAAC,CAAC;UAClB,IAAItH,KAAA,CAAKR,IAAI,EAAE;YACbQ,KAAA,CAAKR,IAAI,CAACkI,IAAI,CAAC,CAAC;UAClB;UACA;QACF,KAAK,IAAAC,uBAAU,EAACX,CAAC,CAAC;UAChBA,CAAC,CAACM,cAAc,CAAC,CAAC,CAAC,CAAC;UACpB,IAAItH,KAAA,CAAKR,IAAI,EAAE;YACbQ,KAAA,CAAKR,IAAI,CAACoI,KAAK,CAACZ,CAAC,CAAC;UACpB;UACA;MACJ;IACF,CAAC,CAAAhH,KAAA;;;;;;IAMO6H,SAAS,GAAG,YAAM;MACxB,OAAO,IAAAC,qBAAW,EAAA9H,KAAK,CAAC;IAC1B,CAAC,CAAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmEOuD,QAAQ,GAAG,UAACwE,EAAgB,EAAK;MACvC/H,KAAA,CAAKe,KAAK,GAAGgH,EAAE;IACjB,CAAC,CAAA/H,KAAA;;IAEO+F,OAAO,GAAG,UAACvG,IAAiB,EAAK;MACvCQ,KAAA,CAAKR,IAAI,GAAGA,IAAI;IAClB,CAAC,CAAAQ,KAAA;;IAEOoE,WAAW,GAAG,UAAC4D,IAAqB,EAAK;MAC/ChI,KAAA,CAAKiI,QAAQ,GAAGD,IAAI;IACtB,CAAC,CAAAhI,KAAA;;IAEO6F,cAAc,GAAG,UAACI,WAA+B,EAAK;MAC5DjG,KAAA,CAAKiG,WAAW,GAAGA,WAAW;IAChC,CAAC,QAAAjG,KAAA,MAAAkI,eAAA,CAAAnF,OAAA,EAAArD,YAAA,EAAAK,gBAAA,MAAAoI,MAAA,GAAAzI,YAAA,CAAA0I,SAAA,EArYD;AACF;AACA,KAFED,MAAA,CAGOE,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACtH,KAAK,EAAE,CACd,IAAI,CAACA,KAAK,CAACsH,KAAK,CAAC,CAAC,CACpB,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAF,MAAA,CAGOhB,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,CAACxD,UAAU,CAAC,CAAC,CACnB,CAAC,CAAAwE,MAAA,CAEMG,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAA4B,EAAE,CACtD,IAAIA,SAAS,CAACpD,KAAK,KAAK,IAAI,CAAC5D,KAAK,CAAC4D,KAAK,EAAE,CACxC,IAAI,CAACqD,WAAW,CAAC,IAAI,CAACjH,KAAK,CAAC4D,KAAK,IAAI,EAAE,CAAC,CAC1C,CACF,CAAC,CAAAgD,MAAA,CAEMM,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEnM,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACxF,2BAAA,CAAA2K,0BAA0B,CAACC,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVH,MAAI,CAAClE,YAAY,GAAG,IAAAsE,+CAA0B,EAACD,KAAK,CAAC,CACrD,oBACEtM,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC1G,aAAA,CAAAiM,YAAY,CAACH,QAAQ,QACnB,UAACnG,KAAK,EAAK,CACViG,MAAI,CAACjG,KAAK,GAAG,IAAAuG,0CAAoB,EAACvG,KAAK,CAAC,CACxC,oBACElG,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC1G,aAAA,CAAAiM,YAAY,CAACE,QAAQ,IAAC9D,KAAK,EAAEuD,MAAI,CAACjG,KAAM,iBACvClG,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACjG,cAAA,CAAA2L,aAAa,MAAAjG,SAAA,CAAAF,OAAA,IAACoG,WAAW,EAAET,MAAI,CAACU,WAAY,IAAKV,MAAI,CAACvH,QAAQ,CAAC,CAAC,GAC9DuH,MAAI,CAACpH,UACO,CACM,CAAC,CAE5B,CACqB,CAAC,CAE5B,CACmC,CAAC,CAE1C,CAAC,CAAA6G,MAAA,CAsDO7B,WAAW,GAAnB,SAAAA,YAAA,EAAuC,CACrC,IAAM3H,KAAK,GAAG,IAAI,CAAC+B,KAAK,CAAC/B,KAAK,CAE9B,IAAI,CAAC,IAAI,CAAC4C,KAAK,CAAC4D,KAAK,EAAE,CACrB,oBAAO5I,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC7G,YAAA,CAAA0M,WAAW,QAAE,IAAI,CAAC1J,MAAM,CAAC0F,UAAwB,CAAC,CAC5D,CAEA,IAAI,CAAA1G,KAAK,oBAALA,KAAK,CAAEwB,MAAM,MAAK,CAAC,IAAI,IAAI,CAACoB,KAAK,CAAC4D,KAAK,EAAE,CAC3C,oBAAO5I,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC7G,YAAA,CAAA0M,WAAW,QAAE,IAAI,CAAC1J,MAAM,CAAC2J,QAAsB,CAAC,CAC1D,CAEA,IAAI,IAAAC,iBAAU,EAAC5K,KAAK,CAAC,IAAI,IAAI,CAAC4C,KAAK,CAAC4D,KAAK,EAAE,CACzC,oBAAO5I,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC7G,YAAA,CAAA0M,WAAW,QAAE,IAAI,CAAC1J,MAAM,CAAC6J,WAAyB,CAAC,CAC7D,CAEA,OAAO,IAAI,CACb,CAAC,CAAArB,MAAA,CAEO5D,UAAU,GAAlB,SAAAA,WAAA,EAAsC,CACpC,IAAM5F,KAAK,GAAG,IAAI,CAAC+B,KAAK,CAAC/B,KAAK,CAC9B,IAAA8K,cAAA,GACE,IAAI,CAACtI,QAAQ,CAAC,CAAC,CADTmB,OAAO,GAAAmH,cAAA,CAAPnH,OAAO,CAAEJ,SAAS,GAAAuH,cAAA,CAATvH,SAAS,CAAEC,aAAa,GAAAsH,cAAA,CAAbtH,aAAa,CAAEF,SAAS,GAAAwH,cAAA,CAATxH,SAAS,CAAEyH,SAAS,GAAAD,cAAA,CAATC,SAAS,CAAElH,KAAK,GAAAiH,cAAA,CAALjH,KAAK,CAAEJ,mBAAmB,GAAAqH,cAAA,CAAnBrH,mBAAmB,CAAEJ,aAAa,GAAAyH,cAAA,CAAbzH,aAAa,CAE1G,IAAM2H,mBAAmB,GAAGD,SAAS,GAAG,MAAM,GAAGlH,KAAK,IAAI,IAAAoH,sBAAU,EAAC,IAAI,CAAC3B,QAAQ,CAAC,CAACzF,KAAK,CACzF,IAAMqH,SAAS,GAAG,EAChBvG,GAAG,EAAE,IAAI,CAACyC,OAAO,EACjBK,SAAS,EAAEjE,aAAa,EACxBF,SAAS,EAAE,KAAK,EAChB6H,SAAS,EAAE,KAAK,EAChBtH,KAAK,EAAEmH,mBAAmB,EAC1BvH,mBAAmB,EAAnBA,mBAAmB,CACrB,CAAC,CACD,IAAI,CAACzD,KAAK,IAAIA,KAAK,CAACwB,MAAM,KAAK,CAAC,EAAE,CAChC,OAAO,IAAI,CACb,CAEA,oBACE5D,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAAC5F,MAAA,CAAAmM,KAAK,IACJjJ,MAAM,QACNmB,SAAS,EAAEA,SAAU,EACrBuD,EAAE,EAAE,IAAI,CAACxE,MAAO,EAChBgJ,QAAQ,EAAEC,cAAM,CAACC,UAAU,CAACC,SAAU,EACtC,YAAU9K,oBAAoB,CAACG,IAAK,EACpC4K,aAAa,EAAE,IAAI,CAACvC,SAAS,CAAC,CAAE,EAChC7F,aAAa,EAAEA,aAAc,EAC7BQ,KAAK,EAAEkH,SAAU,EACjBW,QAAQ,EAAEX,SAAS,KAAKY,SAAS,GAAG,MAAM,GAAGA,SAAU,EACvDC,SAAS,EAAE,IAAAC,kCAAgB,EAAClI,OAAO,EAAEJ,SAAS,CAAE,EAChDuI,MAAM,EAAEC,QAAQ,CAAC,IAAI,CAACjI,KAAK,CAACkI,WAAW,CAAC,GAAG,CAAE,iBAE7CpO,MAAA,CAAAwG,OAAA,CAAAS,aAAA,CAACtG,KAAA,CAAA4I,IAAI,EAAK+D,SAAS,EAAG,IAAI,CAACxD,QAAQ,CAAC,CAAQ,CACvC,CAAC,CAEZ,CAAC,CAAA8B,MAAA,CAwJOxB,mBAAmB,GAA3B,SAAAA,oBAA4BH,CAAS,EAAE,KAAAoE,MAAA,QACrC,OAAO,UAAC1D,KAAwC,UAAK0D,MAAI,CAACC,eAAe,CAAC3D,KAAK,EAAEV,CAAC,CAAC,GACrF,CAAC,CAAA2B,MAAA,CAMO0C,eAAe,GAAvB,SAAAA,gBAAwB3D,KAAwE,EAAE4D,KAAa,EAAE,CAC/G,IAAK5D,KAAK,CAAmC6D,MAAM,EAAE,CACnD,OACF,CAEA7D,KAAK,CAACI,cAAc,CAAC,CAAC,CACtB,IAAI,CAAC0D,MAAM,CAACF,KAAK,CAAC,CACpB,CAAC,CAAA3C,MAAA,CAEO6C,MAAM,GAAd,SAAAA,OAAeF,KAAa,EAAE,KAAAG,MAAA,QAC5B,IAAI,CAAC,IAAI,CAACvK,KAAK,CAAC/B,KAAK,EAAE,CACrB,OACF,CAEA,IAAMwG,KAAK,GAAG,IAAI,CAACzE,KAAK,CAAC/B,KAAK,CAACmM,KAAK,CAAC,CACrC,IAAI,CAAChK,MAAM,GAAG,KAAK,CACnB,IAAI,CAACiG,QAAQ,CAAC,EACZpG,QAAQ,EAAE,CAAC,CAAC,EACZhC,KAAK,EAAE,IAAI,CACb,CAAC,CAAC,CAEF,IAAI,CAACmI,UAAU,CAAC3B,KAAK,CAAC,CAAC,CAEvB;IACA;IACA+F,0BAAY,CAACC,UAAU,CAAC,YAAM,CAC5BF,MAAI,CAAC9D,IAAI,CAAC,CAAC,CACb,CAAC,EAAE,CAAC,CAAC,CACP,CAAC,CAAAgB,MAAA,CAEOK,WAAW,GAAnB,SAAAA,YAAoBrD,KAAa,EAAE,KAAAiG,MAAA,QACjC,IAAI,CAAC,IAAI,CAACtK,MAAM,EAAE,CAChB,OACF,CACA,IAAMpC,OAAO,GAAGyG,KAAK,CAACkG,IAAI,CAAC,CAAC,CAC5B,IAAMhJ,MAAM,GAAG,IAAI,CAACd,KAAK,CAACc,MAAM,CAEhC,IAAI,CAACA,MAAM,EAAE,CACX,OACF,CAEA,IAAIiJ,OAAO,CACX,IAAI,CAACpK,SAAS,IAAI,CAAC,CACnB,IAAMqK,WAAW,GAAG,IAAI,CAACrK,SAAS,CAClC,IAAI,OAAOmB,MAAM,KAAK,UAAU,EAAE,CAChCiJ,OAAO,GAAGjJ,MAAM,CAAC3D,OAAO,CAAC,CAC3B,CAAC,MAAM,CACL4M,OAAO,GAAG7M,KAAK,CAACC,OAAO,EAAE2D,MAAM,CAAC,CAClC,CACAiJ,OAAO,CAACE,IAAI,CAAC,UAAC7M,KAAK,EAAK,CACtB,IAAIyM,MAAI,CAACtK,MAAM,IAAIyK,WAAW,KAAKH,MAAI,CAAClK,SAAS,EAAE,CACjDkK,MAAI,CAACrE,QAAQ,CAAC,EACZpI,KAAK,EAALA,KAAK,EACLgC,QAAQ,EAAE,CAAC,CAAC,CACd,CAAC,CAAC,CACJ,CACF,CAAC,CAAC,CACJ,CAAC,CAAAwH,MAAA,CAEOrB,UAAU,GAAlB,SAAAA,WAAmB3B,KAAa,EAAE,CAChC,IAAI,IAAI,CAAC5D,KAAK,CAACI,aAAa,EAAE,CAC5B,IAAI,CAACJ,KAAK,CAACI,aAAa,CAACwD,KAAK,CAAC,CACjC,CACF,CAAC,QAAAzF,YAAA,GA1Z+B+L,cAAK,CAACC,SAAS,GAAAlN,aAAA,CACjCmN,mBAAmB,GAAG,cAAc,EAAAnN,aAAA,CACpCoN,WAAW,GAAG,cAAc,EAAApN,aAAA,CAE5B6C,YAAY,GAAiB,EACzCjC,UAAU,EAAVA,UAAU,EACVyH,IAAI,EAAE,OAAO,EACb7E,aAAa,EAAE,KAAK,EACpBC,SAAS,EAAE,IAAI,EACfE,aAAa,EAAE,GAAG,EAClBC,mBAAmB,EAAE,IAAI,CAC3B,CAAC,EAAA5D,aAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_MenuMessage","_decorators","_utils","_ThemeContext","_Emotion","_identifiers","_Input","_Menu","_MenuItem","_RenderLayer","_createPropsGetter","_fixClickFocusIE","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_getDOMRect","_Popup","_getMenuPositions","_ZIndex","_MaskedInput","_ReactUIFeatureFlagsContext","_FeatureFlagsHelpers","_SizeDecorator","_Autocomplete2","_locale","_getAutocompleteTheme","_excluded","_dec","_class","_Autocomplete","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","exports","root","menu","AutocompleteIds","Autocomplete","locale","AutocompleteLocaleHelper","responsiveLayout","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","getRandomID","requestId","getProps","createPropsGetter","defaultProps","renderMain","props","_cx","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","_props$width","width","theme","inputWidth","mobileMenuHeaderText","type","rest","_objectWithoutPropertiesLoose2","default","inputProps","_extends2","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","RenderLayer","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","cx","styles","noPortal","style","refRootSpan","getInput","renderMobileMenu","renderMenu","featureFlags","autocompleteUseMaskedInput","mask","MaskedInput","getSafeMaskInputType","maskChar","Input","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","inputMode","MobilePopup","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","Menu","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","MenuItem","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","fixClickFocusIE","isKeyEscape","preventDefault","isKeyArrowUp","up","isKeyArrowDown","down","isKeyEnter","enter","getAnchor","getRootNode","el","span","rootSpan","_inheritsLoose2","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","getAutocompleteTheme","Provider","CommonWrapper","rootNodeRef","setRootNode","MenuMessage","notFound","isNullable","updateValue","_this$getProps","menuWidth","calculatedMenuWidth","getDOMRect","menuProps","hasMargin","Popup","priority","ZIndex","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","getMenuPositions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","globalObject","setTimeout","_this5","trim","promise","expectingId","then","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Autocomplete.tsx"],"sourcesContent":["import type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../../internal/Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getSafeMaskInputType, MaskedInput, type MaskedProps } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Autocomplete.styles';\nimport type { AutocompleteLocale } from './locale';\nimport { AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Задает функцию, которая отрисовывает элементы меню. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задает промис, который резолвит элементы меню. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего меню. */\n hasShadow?: boolean;\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает максимальную высоту выпадающего меню. */\n menuMaxHeight?: number | string;\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда меню открыто. */\n preventWindowScroll?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при потере автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Задаёт размер инпута. */\n size?: SizeProp;\n\n /** Задает значение автокомплита. */\n value: string;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>\n>;\n\n/**\n * `Autocomplete` — стандартный инпут с подсказками.\n *\n * Подсказки определяются в пропе `source`.\n * Все свойства передаются во внутренний `Input`.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\n@withSize\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n private featureFlags!: ReactUIFeatureFlags;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={cx(styles.root(this.theme), {\n [styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.featureFlags.autocompleteUseMaskedInput && this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} mask={this.props.mask} maskChar={this.props.maskChar} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={this.getInput(inputProps)}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n globalObject.setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -72,7 +72,7 @@ export declare const ButtonDataTids: {
72
72
  readonly root: "Button__root";
73
73
  readonly spinner: "Button__spinner";
74
74
  };
75
- type DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;
75
+ type DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;
76
76
  export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<ButtonProps<C>, ButtonState> {
77
77
  static __KONTUR_REACT_UI__: string;
78
78
  static displayName: string;
@@ -84,6 +84,7 @@ export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DE
84
84
  };
85
85
  private theme;
86
86
  private node;
87
+ private size;
87
88
  getRootNode: TGetRootNode;
88
89
  private setRootNode;
89
90
  componentDidMount(): void;
@@ -19,13 +19,14 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
19
19
  var _Link = require("../Link");
20
20
 
21
21
 
22
+ var _SizeDecorator = require("../../lib/size/SizeDecorator");
22
23
 
23
24
  var _Button2 = require("./Button.styles");
24
25
 
25
26
  var _ButtonIcon = require("./ButtonIcon");
26
27
  var _ButtonArrow = require("./ButtonArrow");
27
28
  var _getInnerLinkTheme = require("./getInnerLinkTheme");
28
- var _LoadingButtonIcon = require("./LoadingButtonIcon");var _class, _Button;var _excluded = ["children"],_excluded2 = ["corners", "active", "disabled", "borderless", "checked", "error", "warning", "loading", "narrow", "arrow", "icon", "rightIcon", "_noPadding", "_noRightPadding", "visuallyFocused", "align", "disableFocus", "width", "tabIndex", "component", "use", "size", "theme"];
29
+ var _LoadingButtonIcon = require("./LoadingButtonIcon");var _class, _Button;var _excluded = ["children"],_excluded2 = ["corners", "active", "disabled", "borderless", "checked", "error", "warning", "loading", "narrow", "arrow", "icon", "rightIcon", "_noPadding", "_noRightPadding", "visuallyFocused", "align", "disableFocus", "width", "tabIndex", "component", "use", "theme"];
29
30
 
30
31
 
31
32
 
@@ -132,8 +133,8 @@ var SpanComponent = function SpanComponent(_ref) {var children = _ref.children,r
132
133
  };var
133
134
 
134
135
 
135
- Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE__*/function (_React$Component) {function Button() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
136
136
 
137
+ Button = exports.Button = (0, _SizeDecorator.withSize)(_class = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE__*/function (_React$Component) {function Button() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
137
138
 
138
139
 
139
140
 
@@ -218,6 +219,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
218
219
 
219
220
 
220
221
 
222
+
221
223
 
222
224
 
223
225
  renderMain = function (props) {var _cx, _cx4, _cx5;
@@ -245,9 +247,8 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
245
247
 
246
248
 
247
249
 
248
-
249
- props.corners,active = props.active,disabled = props.disabled,borderless = props.borderless,checked = props.checked,error = props.error,warning = props.warning,loading = props.loading,narrow = props.narrow,arrow = props.arrow,icon = props.icon,rightIcon = props.rightIcon,_noPadding = props._noPadding,_noRightPadding = props._noRightPadding,visuallyFocused = props.visuallyFocused,align = props.align,disableFocus = props.disableFocus,width = props.width,tabIndex = props.tabIndex,_component = props.component,useProp = props.use,sizeProp = props.size,theme = props.theme,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
250
- var _this$getProps = _this.getProps(),use = _this$getProps.use,size = _this$getProps.size,component = _this$getProps.component,children = _this$getProps.children;
250
+ props.corners,active = props.active,disabled = props.disabled,borderless = props.borderless,checked = props.checked,error = props.error,warning = props.warning,loading = props.loading,narrow = props.narrow,arrow = props.arrow,icon = props.icon,rightIcon = props.rightIcon,_noPadding = props._noPadding,_noRightPadding = props._noRightPadding,visuallyFocused = props.visuallyFocused,align = props.align,disableFocus = props.disableFocus,width = props.width,tabIndex = props.tabIndex,_component = props.component,useProp = props.use,theme = props.theme,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
251
+ var _this$getProps = _this.getProps(),use = _this$getProps.use,component = _this$getProps.component,children = _this$getProps.children;
251
252
 
252
253
  var sizeClass = _this.getSizeClassName();
253
254
 
@@ -255,12 +256,12 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
255
256
  var isLink = use === 'link';
256
257
 
257
258
  var _useButtonArrow = (0, _ButtonArrow.useButtonArrow)((0, _extends2.default)({},
258
- _this.props, { isFocused: Boolean(isFocused) }),
259
+ _this.props, { isFocused: Boolean(isFocused), size: _this.size }),
259
260
  _this.theme
260
261
  ),rootClassNameWithArrow = _useButtonArrow[0],arrowNode = _useButtonArrow[1];
261
262
  var isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);
262
263
 
263
- var trueDisabled = disabled || loading;
264
+ var nonInteractive = disabled || loading;
264
265
  var rootClassName = _Emotion.cx.apply(void 0, [
265
266
  _Button2.styles.root(_this.theme),
266
267
  _Button2.styles[use](_this.theme),
@@ -269,7 +270,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
269
270
  _noPadding && _Button2.styles.noPadding(),
270
271
  _noRightPadding && _Button2.styles.noRightPadding(),
271
272
  rootClassNameWithArrow].concat(
272
- trueDisabled ?
273
+ nonInteractive ?
273
274
  [
274
275
  _Button2.styles.disabled(_this.theme),
275
276
  isUseStateWithoutOutlineInDisabledState && _Button2.styles.disabledWithoutOutline(_this.theme),
@@ -295,10 +296,9 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
295
296
  textAlign: align },
296
297
  corners),
297
298
 
298
- disabled: trueDisabled,
299
299
  onFocus: _this.handleFocus,
300
300
  onBlur: _this.handleBlur,
301
- tabIndex: _this.getTabIndex({ disableFocus: disableFocus, disabled: trueDisabled, tabIndex: tabIndex }) });
301
+ tabIndex: _this.getTabIndex({ disableFocus: disableFocus, disabled: nonInteractive, tabIndex: tabIndex }) });
302
302
 
303
303
 
304
304
  var wrapProps = {
@@ -311,10 +311,12 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
311
311
  }
312
312
  };
313
313
 
314
+ var buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};
315
+
314
316
  var innerShadowNode = null;
315
317
 
316
318
  var outlineNode = null;
317
- if ((!isFocused || isLink) && !trueDisabled) {var _cx2;
319
+ if ((!isFocused || isLink) && !nonInteractive) {var _cx2;
318
320
  outlineNode = /*#__PURE__*/
319
321
  _react.default.createElement("div", {
320
322
  className: (0, _Emotion.cx)(_Button2.styles.outline(), (_cx2 = {}, _cx2[
@@ -330,7 +332,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
330
332
 
331
333
  var iconProps = {
332
334
  use: use,
333
- size: _this.getProps().size,
335
+ size: _this.size,
334
336
  hasChildren: !!children,
335
337
  loading: loading || false
336
338
  };
@@ -348,7 +350,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
348
350
  _Button2.styles.linkLineHeight()] = !_client.isSafari, _cx3[
349
351
  _Button2.styles.linkLineHeightSafariFallback()] = _client.isSafari, _cx3[
350
352
  _Button2.styles.linkFocus(_this.theme)] = isFocused, _cx3[
351
- _Button2.styles.linkDisabled(_this.theme)] = trueDisabled, _cx3)
353
+ _Button2.styles.linkDisabled(_this.theme)] = nonInteractive, _cx3)
352
354
  );
353
355
  Object.assign(wrapProps, {
354
356
  className: (0, _Emotion.cx)(_Button2.styles.wrap(_this.theme), _Button2.styles.wrapLink()),
@@ -359,7 +361,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
359
361
  }
360
362
 
361
363
  var hasLoadingNode = loading && !icon && !rightIcon;
362
- var loadingNode = hasLoadingNode && /*#__PURE__*/_react.default.createElement(_LoadingButtonIcon.LoadingButtonIcon, { size: size });
364
+ var loadingNode = hasLoadingNode && /*#__PURE__*/_react.default.createElement(_LoadingButtonIcon.LoadingButtonIcon, { size: _this.size });
363
365
 
364
366
  var captionNode = /*#__PURE__*/
365
367
  _react.default.createElement("div", {
@@ -403,7 +405,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
403
405
 
404
406
  return /*#__PURE__*/(
405
407
  _react.default.createElement("span", (0, _extends2.default)({}, wrapProps, { "data-tid": ButtonDataTids.root }), /*#__PURE__*/
406
- _react.default.createElement(Root, (0, _extends2.default)({ "data-tid": ButtonDataTids.rootElement, ref: _this._ref }, rootProps),
408
+ _react.default.createElement(Root, (0, _extends2.default)({ "data-tid": ButtonDataTids.rootElement, ref: _this._ref }, rootProps, buttonOnlyProps),
407
409
  innerShadowNode,
408
410
  outlineNode,
409
411
  arrowNode,
@@ -514,7 +516,7 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
514
516
  * @public
515
517
  */;_proto.focus = function focus() {var _this$node;(_this$node = this.node) == null || _this$node.focus();} /**
516
518
  * @public
517
- */;_proto.blur = function blur() {var _this$node2;(_this$node2 = this.node) == null || _this$node2.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = _this2.props.theme ? _ThemeFactory.ThemeFactory.create(_this2.props.theme, theme) : theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};_proto.getTabIndex = function getTabIndex(_ref2) {var disableFocus = _ref2.disableFocus,disabled = _ref2.disabled,_ref2$tabIndex = _ref2.tabIndex,tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;if (disableFocus || disabled) {return -1;}return tabIndex;};_proto.renderIcon2022 = function renderIcon2022(icon) {if (icon && (0, _utils.isKonturIcon)(icon)) {var _icon$props$size;var sizes = (0, _ButtonIcon.getButtonIconSizes)(this.theme);return /*#__PURE__*/_react.default.cloneElement(icon, { size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[this.getProps().size] });}return icon;};_proto.getSizeClassName = function getSizeClassName() {var _this$getProps2 = this.getProps(),icon = _this$getProps2.icon,rightIcon = _this$getProps2.rightIcon,children = _this$getProps2.children,size = _this$getProps2.size;var isThemeGTE_5_3 = (0, _ThemeHelpers.isThemeGTE)(this.theme, '5.3');switch (size) {case 'large':{var _commonClasses, _themeSpecificClasses;var commonClasses = (_commonClasses = {}, _commonClasses[_Button2.styles.sizeLargeIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses[_Button2.styles.sizeLargeWithIcon(this.theme)] = !!icon, _commonClasses[_Button2.styles.sizeLargeWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses);var themeSpecificClasses = (_themeSpecificClasses = {}, _themeSpecificClasses[_Button2.styles.sizeLargeWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses[_Button2.styles.sizeLargeWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses);return (0, _Emotion.cx)(_Button2.styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);}case 'medium':{var _commonClasses3, _themeSpecificClasses3;var _commonClasses2 = (_commonClasses3 = {}, _commonClasses3[_Button2.styles.sizeMediumIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses3[_Button2.styles.sizeMediumWithIcon(this.theme)] = !!icon, _commonClasses3[_Button2.styles.sizeMediumWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses3);var _themeSpecificClasses2 = (_themeSpecificClasses3 = {}, _themeSpecificClasses3[_Button2.styles.sizeMediumWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses3[_Button2.styles.sizeMediumWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses3);return (0, _Emotion.cx)(_Button2.styles.sizeMedium(this.theme), _commonClasses2, isThemeGTE_5_3 && _themeSpecificClasses2);}case 'small':default:{var _commonClasses5, _themeSpecificClasses5;var _commonClasses4 = (_commonClasses5 = {}, _commonClasses5[_Button2.styles.sizeSmallIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses5[_Button2.styles.sizeSmallWithIcon(this.theme)] = !!icon, _commonClasses5[_Button2.styles.sizeSmallWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses5);var _themeSpecificClasses4 = (_themeSpecificClasses5 = {}, _themeSpecificClasses5[_Button2.styles.sizeSmallWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses5[_Button2.styles.sizeSmallWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses5);return (0, _Emotion.cx)(_Button2.styles.sizeSmall(this.theme), _commonClasses4, isThemeGTE_5_3 && _themeSpecificClasses4);}}};_proto.getSizeWrapClassName = function getSizeWrapClassName() {switch (this.getProps().size) {case 'large':return _Button2.styles.wrapLarge(this.theme);case 'medium':return _Button2.styles.wrapMedium(this.theme);case 'small':default:return _Button2.styles.wrapSmall(this.theme);}};return Button;}(_react.default.Component), _Button.__KONTUR_REACT_UI__ = 'Button', _Button.displayName = 'Button', _Button.__BUTTON__ = true, _Button.defaultProps = { use: 'default', size: 'small', // By default the type attribute is 'submit'. IE8 will fire a click event
519
+ */;_proto.blur = function blur() {var _this$node2;(_this$node2 = this.node) == null || _this$node2.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = _this2.props.theme ? _ThemeFactory.ThemeFactory.create(_this2.props.theme, theme) : theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};_proto.getTabIndex = function getTabIndex(_ref2) {var disableFocus = _ref2.disableFocus,disabled = _ref2.disabled,_ref2$tabIndex = _ref2.tabIndex,tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;if (disableFocus || disabled) {return -1;}return tabIndex;};_proto.renderIcon2022 = function renderIcon2022(icon) {if (icon && (0, _utils.isKonturIcon)(icon)) {var _icon$props$size;var sizes = (0, _ButtonIcon.getButtonIconSizes)(this.theme);return /*#__PURE__*/_react.default.cloneElement(icon, { size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[this.size] });}return icon;};_proto.getSizeClassName = function getSizeClassName() {var _this$getProps2 = this.getProps(),icon = _this$getProps2.icon,rightIcon = _this$getProps2.rightIcon,children = _this$getProps2.children;var isThemeGTE_5_3 = (0, _ThemeHelpers.isThemeGTE)(this.theme, '5.3');switch (this.size) {case 'large':{var _commonClasses, _themeSpecificClasses;var commonClasses = (_commonClasses = {}, _commonClasses[_Button2.styles.sizeLargeIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses[_Button2.styles.sizeLargeWithIcon(this.theme)] = !!icon, _commonClasses[_Button2.styles.sizeLargeWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses);var themeSpecificClasses = (_themeSpecificClasses = {}, _themeSpecificClasses[_Button2.styles.sizeLargeWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses[_Button2.styles.sizeLargeWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses);return (0, _Emotion.cx)(_Button2.styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);}case 'medium':{var _commonClasses3, _themeSpecificClasses3;var _commonClasses2 = (_commonClasses3 = {}, _commonClasses3[_Button2.styles.sizeMediumIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses3[_Button2.styles.sizeMediumWithIcon(this.theme)] = !!icon, _commonClasses3[_Button2.styles.sizeMediumWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses3);var _themeSpecificClasses2 = (_themeSpecificClasses3 = {}, _themeSpecificClasses3[_Button2.styles.sizeMediumWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses3[_Button2.styles.sizeMediumWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses3);return (0, _Emotion.cx)(_Button2.styles.sizeMedium(this.theme), _commonClasses2, isThemeGTE_5_3 && _themeSpecificClasses2);}case 'small':default:{var _commonClasses5, _themeSpecificClasses5;var _commonClasses4 = (_commonClasses5 = {}, _commonClasses5[_Button2.styles.sizeSmallIE11(this.theme)] = _client.isIE11 || _client.isEdge, _commonClasses5[_Button2.styles.sizeSmallWithIcon(this.theme)] = !!icon, _commonClasses5[_Button2.styles.sizeSmallWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses5);var _themeSpecificClasses4 = (_themeSpecificClasses5 = {}, _themeSpecificClasses5[_Button2.styles.sizeSmallWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses5[_Button2.styles.sizeSmallWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses5);return (0, _Emotion.cx)(_Button2.styles.sizeSmall(this.theme), _commonClasses4, isThemeGTE_5_3 && _themeSpecificClasses4);}}};_proto.getSizeWrapClassName = function getSizeWrapClassName() {switch (this.size) {case 'large':return _Button2.styles.wrapLarge(this.theme);case 'medium':return _Button2.styles.wrapMedium(this.theme);case 'small':default:return _Button2.styles.wrapSmall(this.theme);}};return Button;}(_react.default.Component), _Button.__KONTUR_REACT_UI__ = 'Button', _Button.displayName = 'Button', _Button.__BUTTON__ = true, _Button.defaultProps = { use: 'default', // By default, the type attribute is 'submit'. IE8 will fire a click event
518
520
  // on this button if somewhere on the page user presses Enter while some
519
521
  // input is focused. So we set type to 'button' by default.
520
- type: 'button', component: BUTTON_DEFAULT_COMPONENT }, _Button)) || _class;
522
+ type: 'button', component: BUTTON_DEFAULT_COMPONENT }, _Button)) || _class) || _class;