@skbkontur/react-ui 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -7
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
  4. package/cjs/components/Autocomplete/Autocomplete.js +49 -46
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +2 -0
  7. package/cjs/components/Button/Button.js +29 -1
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +6 -0
  10. package/cjs/components/Button/Button.styles.js +107 -75
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.d.ts +2 -0
  13. package/cjs/components/Calendar/Calendar.js +1 -0
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Center/Center.d.ts +2 -0
  16. package/cjs/components/Center/Center.js +1 -0
  17. package/cjs/components/Center/Center.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
  19. package/cjs/components/Checkbox/Checkbox.js +2 -14
  20. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  22. package/cjs/components/ComboBox/ComboBox.js +1 -0
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/constants.js +1 -2
  28. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.d.ts +2 -0
  32. package/cjs/components/DateInput/DateInput.js +1 -0
  33. package/cjs/components/DateInput/DateInput.js.map +1 -1
  34. package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
  35. package/cjs/components/DatePicker/DatePicker.js +6 -60
  36. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
  38. package/cjs/components/Dropdown/Dropdown.js +2 -82
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FxInput/FxInput.d.ts +2 -5
  44. package/cjs/components/FxInput/FxInput.js +2 -7
  45. package/cjs/components/FxInput/FxInput.js.map +1 -1
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -15
  47. package/cjs/components/Gapped/Gapped.js +1 -24
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  50. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
  51. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  52. package/cjs/components/Group/Group.d.ts +5 -4
  53. package/cjs/components/Group/Group.js +91 -40
  54. package/cjs/components/Group/Group.js.map +1 -1
  55. package/cjs/components/Group/Group.styles.d.ts +1 -0
  56. package/cjs/components/Group/Group.styles.js +12 -6
  57. package/cjs/components/Group/Group.styles.js.map +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +2 -0
  59. package/cjs/components/Hint/Hint.js +1 -0
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Input/Input.d.ts +2 -0
  62. package/cjs/components/Input/Input.js +1 -0
  63. package/cjs/components/Input/Input.js.map +1 -1
  64. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  65. package/cjs/components/Kebab/Kebab.js +2 -26
  66. package/cjs/components/Kebab/Kebab.js.map +1 -1
  67. package/cjs/components/Link/Link.d.ts +2 -0
  68. package/cjs/components/Link/Link.js +1 -0
  69. package/cjs/components/Link/Link.js.map +1 -1
  70. package/cjs/components/Loader/Loader.d.ts +6 -36
  71. package/cjs/components/Loader/Loader.js +3 -57
  72. package/cjs/components/Loader/Loader.js.map +1 -1
  73. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
  74. package/cjs/components/MaskedInput/MaskedInput.js +17 -1
  75. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  76. package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
  77. package/cjs/components/MenuItem/MenuItem.js +2 -22
  78. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  79. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  80. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  81. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  82. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  83. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  84. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  85. package/cjs/components/Modal/Modal.styles.js +36 -28
  86. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  87. package/cjs/components/Modal/ModalBody.d.ts +2 -0
  88. package/cjs/components/Modal/ModalBody.js +1 -0
  89. package/cjs/components/Modal/ModalBody.js.map +1 -1
  90. package/cjs/components/Modal/ModalHeader.d.ts +5 -0
  91. package/cjs/components/Modal/ModalHeader.js +8 -1
  92. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  93. package/cjs/components/Paging/DotsIcon.d.ts +3 -0
  94. package/cjs/components/Paging/DotsIcon.js +13 -0
  95. package/cjs/components/Paging/DotsIcon.js.map +1 -0
  96. package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
  97. package/cjs/components/Paging/ForwardIcon.js +13 -1
  98. package/cjs/components/Paging/ForwardIcon.js.map +1 -1
  99. package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
  100. package/cjs/components/Paging/NavigationHelper.js +8 -6
  101. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  102. package/cjs/components/Paging/Paging.d.ts +13 -2
  103. package/cjs/components/Paging/Paging.js +120 -50
  104. package/cjs/components/Paging/Paging.js.map +1 -1
  105. package/cjs/components/Paging/Paging.styles.d.ts +24 -1
  106. package/cjs/components/Paging/Paging.styles.js +151 -22
  107. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  108. package/cjs/components/Paging/PagingHelper.d.ts +1 -1
  109. package/cjs/components/Paging/PagingHelper.js +18 -11
  110. package/cjs/components/Paging/PagingHelper.js.map +1 -1
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
  112. package/cjs/components/PasswordInput/PasswordInput.js +2 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/Radio/Radio.d.ts +2 -0
  115. package/cjs/components/Radio/Radio.js +1 -0
  116. package/cjs/components/Radio/Radio.js.map +1 -1
  117. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
  118. package/cjs/components/RadioGroup/RadioGroup.js +1 -0
  119. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  121. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
  122. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  123. package/cjs/components/Select/Select.d.ts +2 -0
  124. package/cjs/components/Select/Select.js +1 -0
  125. package/cjs/components/Select/Select.js.map +1 -1
  126. package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
  127. package/cjs/components/SidePage/SidePage.styles.js +52 -38
  128. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  129. package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
  130. package/cjs/components/SidePage/SidePageBody.js +1 -0
  131. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  132. package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
  133. package/cjs/components/SidePage/SidePageContainer.js +1 -0
  134. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
  136. package/cjs/components/SidePage/SidePageFooter.js +1 -0
  137. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
  139. package/cjs/components/SidePage/SidePageHeader.js +60 -19
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.d.ts +2 -18
  142. package/cjs/components/Spinner/Spinner.js +2 -32
  143. package/cjs/components/Spinner/Spinner.js.map +1 -1
  144. package/cjs/components/Sticky/Sticky.d.ts +2 -13
  145. package/cjs/components/Sticky/Sticky.js +2 -22
  146. package/cjs/components/Sticky/Sticky.js.map +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +6 -21
  148. package/cjs/components/Switcher/Switcher.js +11 -20
  149. package/cjs/components/Switcher/Switcher.js.map +1 -1
  150. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  151. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  152. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  153. package/cjs/components/Tabs/Indicator.d.ts +2 -0
  154. package/cjs/components/Tabs/Indicator.js +1 -0
  155. package/cjs/components/Tabs/Indicator.js.map +1 -1
  156. package/cjs/components/Tabs/Tab.d.ts +2 -0
  157. package/cjs/components/Tabs/Tab.js +1 -0
  158. package/cjs/components/Tabs/Tab.js.map +1 -1
  159. package/cjs/components/Tabs/Tabs.d.ts +2 -0
  160. package/cjs/components/Tabs/Tabs.js +1 -0
  161. package/cjs/components/Tabs/Tabs.js.map +1 -1
  162. package/cjs/components/Textarea/Textarea.d.ts +2 -44
  163. package/cjs/components/Textarea/Textarea.js +2 -56
  164. package/cjs/components/Textarea/Textarea.js.map +1 -1
  165. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  166. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +2 -0
  168. package/cjs/components/Toast/Toast.js +1 -0
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toast/ToastView.d.ts +2 -14
  171. package/cjs/components/Toast/ToastView.js +3 -22
  172. package/cjs/components/Toast/ToastView.js.map +1 -1
  173. package/cjs/components/Toggle/Toggle.d.ts +2 -10
  174. package/cjs/components/Toggle/Toggle.js +1 -11
  175. package/cjs/components/Toggle/Toggle.js.map +1 -1
  176. package/cjs/components/Token/Token.d.ts +2 -0
  177. package/cjs/components/Token/Token.js +1 -0
  178. package/cjs/components/Token/Token.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  180. package/cjs/components/TokenInput/TokenInput.js +1 -0
  181. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
  183. package/cjs/components/Tooltip/Tooltip.js +95 -13
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
  186. package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
  187. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  188. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  189. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
  190. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  191. package/cjs/index.d.ts +1 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  194. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
  195. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  196. package/cjs/internal/ComponentTable.js +2 -3
  197. package/cjs/internal/ComponentTable.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  202. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
  203. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  204. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  205. package/cjs/internal/DateSelect/DateSelect.js +1 -18
  206. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  207. package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
  208. package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
  209. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  210. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
  211. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  212. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
  213. package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
  214. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  215. package/cjs/internal/Menu/Menu.d.ts +2 -0
  216. package/cjs/internal/Menu/Menu.js +1 -0
  217. package/cjs/internal/Menu/Menu.js.map +1 -1
  218. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
  219. package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  221. package/cjs/internal/Popup/Popup.d.ts +41 -59
  222. package/cjs/internal/Popup/Popup.js +36 -79
  223. package/cjs/internal/Popup/Popup.js.map +1 -1
  224. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  225. package/cjs/internal/Popup/PopupPin.js +2 -35
  226. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  227. package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
  228. package/cjs/internal/Popup/PopupPinNew.js +180 -0
  229. package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
  230. package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  231. package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
  232. package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
  233. package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
  234. package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
  235. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  236. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  237. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  238. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  239. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
  240. package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
  241. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  243. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  244. package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
  245. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
  247. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
  250. package/cjs/internal/ZIndex/ZIndex.js +5 -1
  251. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  252. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  253. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
  254. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
  255. package/cjs/internal/themes/BasicTheme.d.ts +112 -20
  256. package/cjs/internal/themes/BasicTheme.js +149 -18
  257. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  258. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  259. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  260. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  261. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  262. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  263. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  264. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  265. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  266. package/cjs/lib/delay.mts +3 -0
  267. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  268. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  269. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  270. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  271. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  272. package/cjs/lib/forwardRefAndName.js +0 -1
  273. package/cjs/lib/forwardRefAndName.js.map +1 -1
  274. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  275. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
  276. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  277. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  278. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  279. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  280. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  281. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  282. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  283. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  284. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  285. package/cjs/lib/utils.d.ts +4 -0
  286. package/cjs/lib/utils.js +5 -1
  287. package/cjs/lib/utils.js.map +1 -1
  288. package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
  289. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  290. package/components/Autocomplete/Autocomplete.d.ts +6 -23
  291. package/components/Button/Button/Button.js +26 -5
  292. package/components/Button/Button/Button.js.map +1 -1
  293. package/components/Button/Button.d.ts +2 -0
  294. package/components/Button/Button.styles/Button.styles.js +78 -60
  295. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  296. package/components/Button/Button.styles.d.ts +6 -0
  297. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  298. package/components/Calendar/Calendar.d.ts +2 -0
  299. package/components/Center/Center/Center.js.map +1 -1
  300. package/components/Center/Center.d.ts +2 -0
  301. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  302. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  303. package/components/Checkbox/Checkbox.d.ts +2 -12
  304. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  305. package/components/ComboBox/ComboBox.d.ts +2 -0
  306. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
  307. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  308. package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  309. package/components/CurrencyInput/constants/constants.js +0 -1
  310. package/components/CurrencyInput/constants/constants.js.map +1 -1
  311. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  312. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  313. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  314. package/components/DateInput/DateInput.d.ts +2 -0
  315. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  316. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  317. package/components/DatePicker/DatePicker.d.ts +6 -33
  318. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  319. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  320. package/components/Dropdown/Dropdown.d.ts +2 -47
  321. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  322. package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  323. package/components/FxInput/FxInput/FxInput.js +1 -5
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/FxInput/FxInput.d.ts +2 -5
  326. package/components/Gapped/Gapped/Gapped.js +1 -15
  327. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  328. package/components/Gapped/Gapped.d.ts +2 -15
  329. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  330. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  331. package/components/Group/Group/Group.js +64 -28
  332. package/components/Group/Group/Group.js.map +1 -1
  333. package/components/Group/Group.d.ts +5 -4
  334. package/components/Group/Group.styles/Group.styles.js +9 -6
  335. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  336. package/components/Group/Group.styles.d.ts +1 -0
  337. package/components/Hint/Hint/Hint.js.map +1 -1
  338. package/components/Hint/Hint.d.ts +2 -0
  339. package/components/Input/Input/Input.js.map +1 -1
  340. package/components/Input/Input.d.ts +2 -0
  341. package/components/Kebab/Kebab/Kebab.js +2 -20
  342. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  343. package/components/Kebab/Kebab.d.ts +2 -1
  344. package/components/Link/Link/Link.js.map +1 -1
  345. package/components/Link/Link.d.ts +2 -0
  346. package/components/Loader/Loader/Loader.js +0 -33
  347. package/components/Loader/Loader/Loader.js.map +1 -1
  348. package/components/Loader/Loader.d.ts +6 -36
  349. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
  350. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  351. package/components/MaskedInput/MaskedInput.d.ts +1 -0
  352. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  353. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  354. package/components/MenuItem/MenuItem.d.ts +2 -12
  355. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  356. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  357. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  358. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  359. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  360. package/components/Modal/Modal.styles/Modal.styles.js +31 -28
  361. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  362. package/components/Modal/Modal.styles.d.ts +1 -0
  363. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  364. package/components/Modal/ModalBody.d.ts +2 -0
  365. package/components/Modal/ModalHeader/ModalHeader.js +3 -1
  366. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  367. package/components/Modal/ModalHeader.d.ts +5 -0
  368. package/components/Paging/DotsIcon/DotsIcon.js +14 -0
  369. package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
  370. package/components/Paging/DotsIcon/package.json +6 -0
  371. package/components/Paging/DotsIcon.d.ts +3 -0
  372. package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
  373. package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
  374. package/components/Paging/ForwardIcon.d.ts +3 -0
  375. package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
  376. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  377. package/components/Paging/NavigationHelper.d.ts +3 -2
  378. package/components/Paging/Paging/Paging.js +96 -47
  379. package/components/Paging/Paging/Paging.js.map +1 -1
  380. package/components/Paging/Paging.d.ts +13 -2
  381. package/components/Paging/Paging.styles/Paging.styles.js +77 -16
  382. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  383. package/components/Paging/Paging.styles.d.ts +24 -1
  384. package/components/Paging/PagingHelper/PagingHelper.js +16 -8
  385. package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
  386. package/components/Paging/PagingHelper.d.ts +1 -1
  387. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  388. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  389. package/components/PasswordInput/PasswordInput.d.ts +2 -7
  390. package/components/Radio/Radio/Radio.js.map +1 -1
  391. package/components/Radio/Radio.d.ts +2 -0
  392. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  393. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  397. package/components/Select/Select/Select.js.map +1 -1
  398. package/components/Select/Select.d.ts +2 -0
  399. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  401. package/components/SidePage/SidePage.styles.d.ts +3 -1
  402. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  403. package/components/SidePage/SidePageBody.d.ts +2 -0
  404. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  405. package/components/SidePage/SidePageContainer.d.ts +2 -0
  406. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  407. package/components/SidePage/SidePageFooter.d.ts +2 -0
  408. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  410. package/components/SidePage/SidePageHeader.d.ts +12 -2
  411. package/components/Spinner/Spinner/Spinner.js +1 -18
  412. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  413. package/components/Spinner/Spinner.d.ts +2 -18
  414. package/components/Sticky/Sticky/Sticky.js +1 -13
  415. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  416. package/components/Sticky/Sticky.d.ts +2 -13
  417. package/components/Switcher/Switcher/Switcher.js +19 -16
  418. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  419. package/components/Switcher/Switcher.d.ts +6 -21
  420. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  422. package/components/Switcher/Switcher.styles.d.ts +1 -0
  423. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  424. package/components/Tabs/Indicator.d.ts +2 -0
  425. package/components/Tabs/Tab/Tab.js.map +1 -1
  426. package/components/Tabs/Tab.d.ts +2 -0
  427. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  428. package/components/Tabs/Tabs.d.ts +2 -0
  429. package/components/Textarea/Textarea/Textarea.js +1 -44
  430. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  431. package/components/Textarea/Textarea.d.ts +2 -44
  432. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  434. package/components/Toast/Toast/Toast.js.map +1 -1
  435. package/components/Toast/Toast.d.ts +2 -0
  436. package/components/Toast/ToastView/ToastView.js +3 -17
  437. package/components/Toast/ToastView/ToastView.js.map +1 -1
  438. package/components/Toast/ToastView.d.ts +2 -14
  439. package/components/Toggle/Toggle/Toggle.js +1 -10
  440. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  441. package/components/Toggle/Toggle.d.ts +2 -10
  442. package/components/Token/Token/Token.js.map +1 -1
  443. package/components/Token/Token.d.ts +2 -0
  444. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  445. package/components/TokenInput/TokenInput.d.ts +2 -0
  446. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  447. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  448. package/components/Tooltip/Tooltip.d.ts +14 -9
  449. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  451. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  452. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  453. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  454. package/index.d.ts +1 -0
  455. package/index.js +1 -0
  456. package/index.js.map +1 -1
  457. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  459. package/internal/ComponentTable/ComponentTable.js +0 -2
  460. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  461. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  463. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  464. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  465. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  466. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  467. package/internal/DateSelect/DateSelect.d.ts +0 -10
  468. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  469. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  470. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  473. package/internal/Menu/Menu/Menu.js.map +1 -1
  474. package/internal/Menu/Menu.d.ts +2 -0
  475. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  476. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  477. package/internal/Popup/Popup/Popup.js +14 -64
  478. package/internal/Popup/Popup/Popup.js.map +1 -1
  479. package/internal/Popup/Popup.d.ts +41 -59
  480. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  481. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  482. package/internal/Popup/PopupPin.d.ts +23 -33
  483. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  485. package/internal/Popup/PopupPinNew/package.json +6 -0
  486. package/internal/Popup/PopupPinNew.d.ts +31 -0
  487. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  489. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  490. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  491. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  492. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  493. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  495. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  496. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  498. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  499. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  500. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  501. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  503. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  505. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  506. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  507. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  508. package/internal/ZIndex/ZIndex.d.ts +3 -3
  509. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  513. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  514. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  515. package/internal/themes/BasicTheme.d.ts +112 -20
  516. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  518. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  520. package/internal/themes/DarkTheme5_3/package.json +6 -0
  521. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  522. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  524. package/internal/themes/LightTheme5_3/package.json +6 -0
  525. package/internal/themes/LightTheme5_3.d.ts +1 -0
  526. package/lib/delay.d.mts +1 -0
  527. package/lib/delay.mts +3 -0
  528. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  529. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  532. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  533. package/lib/forwardRefAndName.d.ts +1 -1
  534. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  535. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  536. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  537. package/lib/theming/ThemeVersions.d.ts +1 -1
  538. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  540. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  541. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  542. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  543. package/lib/theming/themes/LightTheme.d.ts +1 -0
  544. package/lib/utils/utils.js +2 -0
  545. package/lib/utils/utils.js.map +1 -1
  546. package/lib/utils.d.ts +4 -0
  547. package/package.json +10 -13
  548. package/cjs/lib/SSRSafe.d.ts +0 -2
  549. package/cjs/lib/SSRSafe.js +0 -5
  550. package/cjs/lib/SSRSafe.js.map +0 -1
  551. package/lib/SSRSafe/SSRSafe.js +0 -4
  552. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  553. package/lib/SSRSafe/package.json +0 -6
  554. package/lib/SSRSafe.d.ts +0 -2
@@ -1,10 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
- var _excluded = ["onValueChange", "onKeyDown", "onFocus", "onBlur", "renderItem", "disablePortal", "hasShadow", "menuAlign", "menuMaxHeight", "preventWindowScroll", "source", "menuPos", "width", "mobileMenuHeaderText", "aria-label"];
4
+ var _excluded = ["onValueChange", "onKeyDown", "onFocus", "onBlur", "renderItem", "disablePortal", "hasShadow", "menuAlign", "menuMaxHeight", "preventWindowScroll", "source", "menuPos", "width", "mobileMenuHeaderText", "type"];
5
5
  var _dec, _class, _Autocomplete;
6
6
  import React from 'react';
7
- import PropTypes from 'prop-types';
7
+ import { globalObject } from '@skbkontur/global-object';
8
8
  import { MenuMessage } from "../../../internal/MenuMessage";
9
9
  import { locale } from "../../../lib/locale/decorators";
10
10
  import { getRandomID, isNullable } from "../../../lib/utils";
@@ -25,6 +25,9 @@ import { getDOMRect } from "../../../lib/dom/getDOMRect";
25
25
  import { Popup } from "../../../internal/Popup";
26
26
  import { getMenuPositions } from "../../../lib/getMenuPositions";
27
27
  import { ZIndex } from "../../../internal/ZIndex";
28
+ import { getSafeMaskInputType, MaskedInput } from "../../MaskedInput";
29
+ import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext/ReactUIFeatureFlagsContext";
30
+ import { getFullReactUIFlagsContext } from "../../../lib/featureFlagsContext/FeatureFlagsHelpers";
28
31
  import { styles } from "../Autocomplete.styles";
29
32
  import { AutocompleteLocaleHelper } from "../locale";
30
33
  import { getAutocompleteTheme } from "../getAutocompleteTheme";
@@ -92,11 +95,12 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
92
95
  _props$width = props.width,
93
96
  width = _props$width === void 0 ? _this.theme.inputWidth : _props$width,
94
97
  mobileMenuHeaderText = props.mobileMenuHeaderText,
95
- ariaLabel = props['aria-label'],
98
+ type = props.type,
96
99
  rest = _objectWithoutPropertiesLoose(props, _excluded);
97
100
  var inputProps = _extends({}, rest, {
98
101
  width: '100%',
99
102
  autoComplete: 'off',
103
+ 'aria-controls': _this.menuId,
100
104
  onValueChange: _this.handleValueChange,
101
105
  onKeyDown: _this.handleKeyDown,
102
106
  onFocus: _this.handleFocus,
@@ -115,14 +119,22 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
115
119
  width: width
116
120
  },
117
121
  ref: _this.refRootSpan
118
- }, /*#__PURE__*/
119
-
120
- React.createElement(Input, _extends({
121
- "aria-label": ariaLabel,
122
- "aria-controls": _this.menuId
123
- }, inputProps)), isMobile ? _this.renderMobileMenu() : _this.renderMenu()))
122
+ }, _this.getInput(inputProps), isMobile ? _this.renderMobileMenu() : _this.renderMenu()))
124
123
  );
125
124
  };
125
+ _this.getInput = function (inputProps) {
126
+ return _this.featureFlags.autocompleteUseMaskedInput && _this.props.mask ? /*#__PURE__*/
127
+ React.createElement(MaskedInput, _extends({}, inputProps, {
128
+ type: getSafeMaskInputType(_this.props.type),
129
+ mask: _this.props.mask,
130
+ maskChar: _this.props.maskChar
131
+ })) : /*#__PURE__*/
132
+
133
+ React.createElement(Input, _extends({}, inputProps, {
134
+ mask: _this.props.mask,
135
+ maskChar: _this.props.maskChar
136
+ }));
137
+ };
126
138
  _this.renderMobileMenu = function () {
127
139
  var _this$mobilePopup;
128
140
  var inputProps = {
@@ -132,13 +144,17 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
132
144
  onValueChange: _this.handleValueChange,
133
145
  onKeyPress: _this.handleKeyPressMobile,
134
146
  value: _this.props.value,
135
- placeholder: _this.locale.enterValue
147
+ placeholder: _this.locale.enterValue,
148
+ type: _this.props.type,
149
+ inputMode: _this.props.inputMode,
150
+ 'aria-label': _this.props['aria-label'],
151
+ 'aria-controls': _this.menuId
136
152
  };
137
153
  var items = _this.state.items;
138
154
  return /*#__PURE__*/(
139
155
  React.createElement(MobilePopup, {
140
156
  id: _this.menuId,
141
- headerChildComponent: /*#__PURE__*/React.createElement(Input, inputProps),
157
+ headerChildComponent: _this.getInput(inputProps),
142
158
  caption: _this.props.mobileMenuHeaderText,
143
159
  opened: _this.state.isMobileOpened,
144
160
  onCloseRequest: _this.handleCloseMobile,
@@ -288,13 +304,16 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
288
304
  };
289
305
  _proto.render = function render() {
290
306
  var _this2 = this;
291
- return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
292
- _this2.theme = getAutocompleteTheme(theme);
293
- return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
294
- value: _this2.theme
295
- }, /*#__PURE__*/React.createElement(CommonWrapper, _extends({
296
- rootNodeRef: _this2.setRootNode
297
- }, _this2.getProps()), _this2.renderMain));
307
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
308
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
309
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
310
+ _this2.theme = getAutocompleteTheme(theme);
311
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
312
+ value: _this2.theme
313
+ }, /*#__PURE__*/React.createElement(CommonWrapper, _extends({
314
+ rootNodeRef: _this2.setRootNode
315
+ }, _this2.getProps()), _this2.renderMain));
316
+ });
298
317
  });
299
318
  };
300
319
  _proto.renderHints = function renderHints() {
@@ -321,12 +340,13 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
321
340
  width = _this$getProps.width,
322
341
  preventWindowScroll = _this$getProps.preventWindowScroll,
323
342
  disablePortal = _this$getProps.disablePortal;
343
+ var calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;
324
344
  var menuProps = {
325
345
  ref: this.refMenu,
326
346
  maxHeight: menuMaxHeight,
327
347
  hasShadow: false,
328
348
  hasMargin: false,
329
- width: menuWidth || width && getDOMRect(this.rootSpan).width,
349
+ width: calculatedMenuWidth,
330
350
  preventWindowScroll: preventWindowScroll
331
351
  };
332
352
  if (!items || items.length === 0) {
@@ -360,6 +380,7 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
360
380
  this.choose(index);
361
381
  };
362
382
  _proto.choose = function choose(index) {
383
+ var _this4 = this;
363
384
  if (!this.state.items) {
364
385
  return;
365
386
  }
@@ -369,11 +390,14 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
369
390
  selected: -1,
370
391
  items: null
371
392
  });
372
- this.fireChange(value);
373
- this.blur();
393
+ this.fireChange(value); // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.
394
+ // Можно будет убрать после полного перехода на MaskedInput
395
+ globalObject.setTimeout(function () {
396
+ _this4.blur();
397
+ }, 0);
374
398
  };
375
399
  _proto.updateItems = function updateItems(value) {
376
- var _this4 = this;
400
+ var _this5 = this;
377
401
  if (!this.opened) {
378
402
  return;
379
403
  }
@@ -391,8 +415,8 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
391
415
  promise = match(pattern, source);
392
416
  }
393
417
  promise.then(function (items) {
394
- if (_this4.opened && expectingId === _this4.requestId) {
395
- _this4.setState({
418
+ if (_this5.opened && expectingId === _this5.requestId) {
419
+ _this5.setState({
396
420
  items: items,
397
421
  selected: -1
398
422
  });
@@ -405,27 +429,7 @@ export var Autocomplete = (_dec = locale('Autocomplete', AutocompleteLocaleHelpe
405
429
  }
406
430
  };
407
431
  return Autocomplete;
408
- }(React.Component), _Autocomplete.__KONTUR_REACT_UI__ = 'Autocomplete', _Autocomplete.displayName = 'Autocomplete', _Autocomplete.propTypes = {
409
- /**
410
- * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент
411
- * — *item*.
412
- */
413
- renderItem: PropTypes.func,
414
- /**
415
- * Если передан массив, то совпадения ищутся по этому массиву.
416
- *
417
- * Если передается функция, то она должна возвращать thenable, который
418
- * резолвится уже отфильтрованным массивом. Возвращенный thenable может
419
- * иметь метод cancel, который будет вызван при отмене поиска (пользователь
420
- * изменил строку поиска, автокомплит потерял фокус).
421
- * ```
422
- * function(pattern) {
423
- * return service.findAll(pattern);
424
- * }
425
- * ```
426
- */
427
- source: PropTypes.oneOfType([PropTypes.array, PropTypes.func])
428
- }, _Autocomplete.defaultProps = {
432
+ }(React.Component), _Autocomplete.__KONTUR_REACT_UI__ = 'Autocomplete', _Autocomplete.displayName = 'Autocomplete', _Autocomplete.defaultProps = {
429
433
  renderItem: renderItem,
430
434
  size: 'small',
431
435
  disablePortal: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","MenuMessage","locale","getRandomID","isNullable","ThemeContext","cx","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","Popup","getMenuPositions","ZIndex","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","_dec","_class","_Autocomplete","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","_cx","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","_props$width","width","theme","inputWidth","mobileMenuHeaderText","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","noPortal","style","refRootSpan","renderMobileMenu","renderMenu","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","_inheritsLoose","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","Consumer","Provider","rootNodeRef","setRootNode","notFound","updateValue","_this$getProps","menuWidth","menuProps","hasMargin","priority","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName","propTypes","func","oneOfType","array"],"sources":["Autocomplete.tsx"],"sourcesContent":["import type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\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 { 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';\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 Override<\n InputProps,\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 propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\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\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\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 <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 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 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\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 <Input aria-label={ariaLabel} aria-controls={this.menuId} {...inputProps} />\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 menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: menuWidth || (width && getDOMRect(this.rootSpan).width),\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 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 };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={<Input {...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 this.blur();\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":[]}
1
+ {"version":3,"names":["React","globalObject","MenuMessage","locale","getRandomID","isNullable","ThemeContext","cx","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","Popup","getMenuPositions","ZIndex","getSafeMaskInputType","MaskedInput","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","_dec","_class","_Autocomplete","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","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","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","noPortal","style","refRootSpan","getInput","renderMobileMenu","renderMenu","featureFlags","autocompleteUseMaskedInput","mask","maskChar","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","inputMode","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","_inheritsLoose","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","Consumer","flags","Provider","rootNodeRef","setRootNode","notFound","updateValue","_this$getProps","menuWidth","calculatedMenuWidth","menuProps","hasMargin","priority","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","setTimeout","_this5","trim","promise","expectingId","then","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":"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","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  import type { AriaAttributes } from 'react';
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import type { InputProps } from '../Input';
5
4
  import type { Nullable, Override } from '../../typings/utility-types';
6
5
  import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
6
+ import type { TGetRootNode } from '../../lib/rootNode';
7
7
  import type { SizeProp } from '../../lib/types/props';
8
- export interface AutocompleteProps extends CommonProps, Pick<AriaAttributes, 'aria-label'>, Override<InputProps, {
8
+ import { type MaskedProps } from '../MaskedInput';
9
+ export interface AutocompleteProps extends CommonProps, Pick<AriaAttributes, 'aria-label'>, Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>, Override<Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>, {
9
10
  /** Задает функцию, которая отрисовывает элементы меню. */
10
11
  renderItem?: (item: string) => React.ReactNode;
11
12
  /** Задает промис, который резолвит элементы меню. */
@@ -61,27 +62,6 @@ type DefaultProps = Required<Pick<AutocompleteProps, 'renderItem' | 'size' | 'di
61
62
  export declare class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {
62
63
  static __KONTUR_REACT_UI__: string;
63
64
  static displayName: string;
64
- static propTypes: {
65
- /**
66
- * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент
67
- * — *item*.
68
- */
69
- renderItem: PropTypes.Requireable<(...args: any[]) => any>;
70
- /**
71
- * Если передан массив, то совпадения ищутся по этому массиву.
72
- *
73
- * Если передается функция, то она должна возвращать thenable, который
74
- * резолвится уже отфильтрованным массивом. Возвращенный thenable может
75
- * иметь метод cancel, который будет вызван при отмене поиска (пользователь
76
- * изменил строку поиска, автокомплит потерял фокус).
77
- * ```
78
- * function(pattern) {
79
- * return service.findAll(pattern);
80
- * }
81
- * ```
82
- */
83
- source: PropTypes.Requireable<NonNullable<any[] | ((...args: any[]) => any) | null | undefined>>;
84
- };
85
65
  static defaultProps: DefaultProps;
86
66
  state: AutocompleteState;
87
67
  private theme;
@@ -93,8 +73,10 @@ export declare class Autocomplete extends React.Component<AutocompleteProps, Aut
93
73
  private menuId;
94
74
  private rootSpan;
95
75
  private mobilePopup;
76
+ private featureFlags;
96
77
  private requestId;
97
78
  private getProps;
79
+ getRootNode: TGetRootNode;
98
80
  private setRootNode;
99
81
  /**
100
82
  * @public
@@ -109,6 +91,7 @@ export declare class Autocomplete extends React.Component<AutocompleteProps, Aut
109
91
  renderMain: (props: CommonWrapperRestProps<AutocompleteProps>) => React.JSX.Element;
110
92
  private renderHints;
111
93
  private renderMenu;
94
+ private getInput;
112
95
  private renderMobileMenu;
113
96
  private getItems;
114
97
  private handleValueChange;
@@ -9,6 +9,7 @@ import { globalObject } from '@skbkontur/global-object';
9
9
  import { isKonturIcon } from "../../../lib/utils";
10
10
  import { isIE11, isEdge, isSafari } from "../../../lib/client";
11
11
  import { keyListener } from "../../../lib/events/keyListener";
12
+ import { isThemeGTE } from "../../../lib/theming/ThemeHelpers";
12
13
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
13
14
  import { CommonWrapper } from "../../../internal/CommonWrapper";
14
15
  import { cx } from "../../../lib/theming/Emotion";
@@ -269,15 +270,35 @@ export var Button = rootNode(_class = (_Button = /*#__PURE__*/function (_React$C
269
270
  return icon;
270
271
  };
271
272
  _proto.getSizeClassName = function getSizeClassName() {
272
- var _cx6, _cx7, _cx8;
273
- switch (this.getProps().size) {
273
+ var _this$getProps2 = this.getProps(),
274
+ icon = _this$getProps2.icon,
275
+ rightIcon = _this$getProps2.rightIcon,
276
+ children = _this$getProps2.children,
277
+ size = _this$getProps2.size;
278
+ var isThemeGTE_5_3 = isThemeGTE(this.theme, '5.3');
279
+ switch (size) {
274
280
  case 'large':
275
- return cx(styles.sizeLarge(this.theme), (_cx6 = {}, _cx6[styles.sizeLargeIE11(this.theme)] = isIE11 || isEdge, _cx6[styles.sizeLargeWithIcon(this.theme)] = !!this.props.icon, _cx6[styles.sizeLargeWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx6));
281
+ {
282
+ var _commonClasses, _themeSpecificClasses;
283
+ var commonClasses = (_commonClasses = {}, _commonClasses[styles.sizeLargeIE11(this.theme)] = isIE11 || isEdge, _commonClasses[styles.sizeLargeWithIcon(this.theme)] = !!icon, _commonClasses[styles.sizeLargeWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses);
284
+ var themeSpecificClasses = (_themeSpecificClasses = {}, _themeSpecificClasses[styles.sizeLargeWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses[styles.sizeLargeWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses);
285
+ return cx(styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);
286
+ }
276
287
  case 'medium':
277
- return cx(styles.sizeMedium(this.theme), (_cx7 = {}, _cx7[styles.sizeMediumIE11(this.theme)] = isIE11 || isEdge, _cx7[styles.sizeMediumWithIcon(this.theme)] = !!this.props.icon, _cx7[styles.sizeMediumWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx7));
288
+ {
289
+ var _commonClasses3, _themeSpecificClasses3;
290
+ var _commonClasses2 = (_commonClasses3 = {}, _commonClasses3[styles.sizeMediumIE11(this.theme)] = isIE11 || isEdge, _commonClasses3[styles.sizeMediumWithIcon(this.theme)] = !!icon, _commonClasses3[styles.sizeMediumWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses3);
291
+ var _themeSpecificClasses2 = (_themeSpecificClasses3 = {}, _themeSpecificClasses3[styles.sizeMediumWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses3[styles.sizeMediumWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses3);
292
+ return cx(styles.sizeMedium(this.theme), _commonClasses2, isThemeGTE_5_3 && _themeSpecificClasses2);
293
+ }
278
294
  case 'small':
279
295
  default:
280
- return cx(styles.sizeSmall(this.theme), (_cx8 = {}, _cx8[styles.sizeSmallIE11(this.theme)] = isIE11 || isEdge, _cx8[styles.sizeSmallWithIcon(this.theme)] = !!this.props.icon, _cx8[styles.sizeSmallWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx8));
296
+ {
297
+ var _commonClasses5, _themeSpecificClasses5;
298
+ var _commonClasses4 = (_commonClasses5 = {}, _commonClasses5[styles.sizeSmallIE11(this.theme)] = isIE11 || isEdge, _commonClasses5[styles.sizeSmallWithIcon(this.theme)] = !!icon, _commonClasses5[styles.sizeSmallWithIconWithoutText(this.theme)] = !!icon && !children, _commonClasses5);
299
+ var _themeSpecificClasses4 = (_themeSpecificClasses5 = {}, _themeSpecificClasses5[styles.sizeSmallWithRightIcon(this.theme)] = !!rightIcon, _themeSpecificClasses5[styles.sizeSmallWithIconWithoutText5_3(this.theme)] = (!!icon || !!rightIcon) && !children, _themeSpecificClasses5);
300
+ return cx(styles.sizeSmall(this.theme), _commonClasses4, isThemeGTE_5_3 && _themeSpecificClasses4);
301
+ }
281
302
  }
282
303
  };
283
304
  _proto.getSizeWrapClassName = function getSizeWrapClassName() {