@skbkontur/react-ui 0.0.0-66a28a30fb → 0.0.0-68e286f9fe

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 (504) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -22
  4. package/cjs/components/Autocomplete/Autocomplete.js +2 -40
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.styles.js +2 -1
  7. package/cjs/components/Button/Button.styles.js.map +1 -1
  8. package/cjs/components/Calendar/CalendarDay.js +18 -2
  9. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  10. package/cjs/components/Calendar/DayCellView.js +7 -15
  11. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +0 -12
  13. package/cjs/components/Checkbox/Checkbox.js +1 -14
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/ComboBox/ComboBox.d.ts +7 -1
  16. package/cjs/components/ComboBox/ComboBox.js +8 -1
  17. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  18. package/cjs/components/ComboBox/ComboBox.md +2 -2
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -29
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -27
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  25. package/cjs/components/DateInput/DateInput.js +37 -14
  26. package/cjs/components/DateInput/DateInput.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/InternalDateMediator.js +10 -1
  29. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  30. package/cjs/components/DatePicker/DatePicker.d.ts +4 -33
  31. package/cjs/components/DatePicker/DatePicker.js +5 -60
  32. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  33. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  34. package/cjs/components/DateRangePicker/DateRangePicker.js +61 -23
  35. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  36. package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  37. package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
  38. package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  39. package/cjs/components/DateRangePicker/DateRangePickerInput.js +4 -8
  40. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  41. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js +17 -17
  42. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
  43. package/cjs/components/Dropdown/Dropdown.d.ts +0 -47
  44. package/cjs/components/Dropdown/Dropdown.js +2 -83
  45. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  46. package/cjs/components/DropdownMenu/DropdownMenu.md +8 -8
  47. package/cjs/components/FileUploader/FileUploader.js +14 -2
  48. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  49. package/cjs/components/FxInput/FxInput.d.ts +1 -6
  50. package/cjs/components/FxInput/FxInput.js +1 -7
  51. package/cjs/components/FxInput/FxInput.js.map +1 -1
  52. package/cjs/components/Gapped/Gapped.d.ts +0 -15
  53. package/cjs/components/Gapped/Gapped.js +1 -25
  54. package/cjs/components/Gapped/Gapped.js.map +1 -1
  55. package/cjs/components/Group/Group.d.ts +3 -4
  56. package/cjs/components/Group/Group.js +90 -40
  57. package/cjs/components/Group/Group.js.map +1 -1
  58. package/cjs/components/Group/Group.md +4 -4
  59. package/cjs/components/Group/Group.styles.d.ts +1 -0
  60. package/cjs/components/Group/Group.styles.js +12 -6
  61. package/cjs/components/Group/Group.styles.js.map +1 -1
  62. package/cjs/components/Input/Input.md +4 -5
  63. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
  64. package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
  65. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  66. package/cjs/components/Kebab/Kebab.d.ts +0 -1
  67. package/cjs/components/Kebab/Kebab.js +1 -26
  68. package/cjs/components/Kebab/Kebab.js.map +1 -1
  69. package/cjs/components/Kebab/Kebab.md +32 -32
  70. package/cjs/components/Link/Link.js +5 -0
  71. package/cjs/components/Link/Link.js.map +1 -1
  72. package/cjs/components/Link/Link.mixins.js +1 -2
  73. package/cjs/components/Link/Link.mixins.js.map +1 -1
  74. package/cjs/components/Link/Link.styles.js +3 -2
  75. package/cjs/components/Link/Link.styles.js.map +1 -1
  76. package/cjs/components/Loader/Loader.d.ts +4 -36
  77. package/cjs/components/Loader/Loader.js +3 -58
  78. package/cjs/components/Loader/Loader.js.map +1 -1
  79. package/cjs/components/MenuItem/MenuItem.d.ts +0 -12
  80. package/cjs/components/MenuItem/MenuItem.js +1 -22
  81. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  82. package/cjs/components/MenuItem/MenuItem.md +6 -6
  83. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  84. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  85. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  86. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  87. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  88. package/cjs/components/Modal/Modal.styles.d.ts +1 -1
  89. package/cjs/components/Modal/Modal.styles.js +6 -6
  90. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  91. package/cjs/components/Modal/ModalSeparator.js +1 -1
  92. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  93. package/cjs/components/Paging/Paging.d.ts +0 -1
  94. package/cjs/components/Paging/Paging.js +2 -28
  95. package/cjs/components/Paging/Paging.js.map +1 -1
  96. package/cjs/components/PasswordInput/PasswordInput.d.ts +0 -7
  97. package/cjs/components/PasswordInput/PasswordInput.js +1 -11
  98. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  99. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  100. package/cjs/components/RadioGroup/RadioGroup.js +18 -1
  101. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  102. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  103. package/cjs/components/RadioGroup/RadioGroup.styles.js +10 -4
  104. package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  105. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  106. package/cjs/components/ScrollContainer/ScrollContainer.js +1 -11
  107. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  108. package/cjs/components/Select/Select.d.ts +3 -0
  109. package/cjs/components/Select/Select.js +4 -1
  110. package/cjs/components/Select/Select.js.map +1 -1
  111. package/cjs/components/Select/Select.md +3 -3
  112. package/cjs/components/SidePage/SidePage.js +1 -1
  113. package/cjs/components/SidePage/SidePage.js.map +1 -1
  114. package/cjs/components/SidePage/SidePageHeader.js +4 -1
  115. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  116. package/cjs/components/SingleToast/SingleToast.d.ts +3 -3
  117. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  118. package/cjs/components/Spinner/Spinner.d.ts +0 -18
  119. package/cjs/components/Spinner/Spinner.js +1 -32
  120. package/cjs/components/Spinner/Spinner.js.map +1 -1
  121. package/cjs/components/Sticky/Sticky.d.ts +3 -13
  122. package/cjs/components/Sticky/Sticky.js +12 -19
  123. package/cjs/components/Sticky/Sticky.js.map +1 -1
  124. package/cjs/components/Switcher/Switcher.d.ts +4 -21
  125. package/cjs/components/Switcher/Switcher.js +11 -21
  126. package/cjs/components/Switcher/Switcher.js.map +1 -1
  127. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  128. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  129. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  130. package/cjs/components/Textarea/Textarea.d.ts +6 -45
  131. package/cjs/components/Textarea/Textarea.js +16 -58
  132. package/cjs/components/Textarea/Textarea.js.map +1 -1
  133. package/cjs/components/Textarea/Textarea.styles.js +2 -1
  134. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  135. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  136. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  137. package/cjs/components/Toast/Toast.d.ts +8 -6
  138. package/cjs/components/Toast/Toast.js +18 -4
  139. package/cjs/components/Toast/Toast.js.map +1 -1
  140. package/cjs/components/Toast/ToastStatic.d.ts +3 -2
  141. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  142. package/cjs/components/Toast/ToastView.d.ts +1 -15
  143. package/cjs/components/Toast/ToastView.js +3 -23
  144. package/cjs/components/Toast/ToastView.js.map +1 -1
  145. package/cjs/components/Toggle/Toggle.d.ts +0 -10
  146. package/cjs/components/Toggle/Toggle.js +1 -12
  147. package/cjs/components/Toggle/Toggle.js.map +1 -1
  148. package/cjs/components/Token/Token.md +0 -83
  149. package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
  150. package/cjs/components/TokenInput/TokenInput.js +2 -1
  151. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  152. package/cjs/components/TokenInput/TokenInput.md +2 -33
  153. package/cjs/components/TokenInput/TokenInputMenu.d.ts +12 -3
  154. package/cjs/components/TokenInput/TokenInputMenu.js +23 -1
  155. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  156. package/cjs/components/Tooltip/Tooltip.d.ts +2 -3
  157. package/cjs/components/Tooltip/Tooltip.js +7 -9
  158. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  159. package/cjs/components/Tooltip/Tooltip.md +8 -8
  160. package/cjs/components/TooltipMenu/TooltipMenu.md +12 -12
  161. package/cjs/index.d.ts +1 -0
  162. package/cjs/index.js.map +1 -1
  163. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  164. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
  165. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  166. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  167. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
  168. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  169. package/cjs/internal/ComponentTable.js +2 -3
  170. package/cjs/internal/ComponentTable.js.map +1 -1
  171. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  172. package/cjs/internal/CustomComboBox/ComboBoxView.js +37 -2
  173. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  174. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  175. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -1
  176. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  177. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  178. package/cjs/internal/DateSelect/DateSelect.js +12 -18
  179. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  180. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  181. package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
  182. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  183. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  184. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +233 -0
  185. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  186. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  187. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
  188. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  189. package/cjs/internal/Popup/Popup.d.ts +41 -60
  190. package/cjs/internal/Popup/Popup.js +27 -78
  191. package/cjs/internal/Popup/Popup.js.map +1 -1
  192. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  193. package/cjs/internal/Popup/PopupPin.js +2 -35
  194. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  195. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  196. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  197. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  198. package/cjs/internal/RenderLayer/RenderLayer.d.ts +0 -3
  199. package/cjs/internal/RenderLayer/RenderLayer.js +2 -12
  200. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  201. package/cjs/internal/ThemePlayground/Playground.js +16 -16
  202. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  203. package/cjs/internal/ThemePlayground/SizesGroup.js +4 -4
  204. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  205. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +1 -1
  206. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  207. package/cjs/internal/ThemePlayground/VariableValue.js +4 -4
  208. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  209. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  210. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -3
  211. package/cjs/internal/ZIndex/ZIndex.js +5 -2
  212. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  213. package/cjs/internal/themes/BasicTheme.d.ts +4 -0
  214. package/cjs/internal/themes/BasicTheme.js +6 -2
  215. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  216. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  217. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  218. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  219. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  220. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  221. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  222. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  223. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  224. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  225. package/cjs/lib/date/InternalDateGetter.js +8 -1
  226. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  227. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  228. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  229. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  230. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  231. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  232. package/cjs/lib/forwardRefAndName.js +0 -1
  233. package/cjs/lib/forwardRefAndName.js.map +1 -1
  234. package/cjs/lib/getMenuPositions.d.ts +21 -1
  235. package/cjs/lib/getMenuPositions.js +45 -8
  236. package/cjs/lib/getMenuPositions.js.map +1 -1
  237. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  238. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  239. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  240. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  241. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  242. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  243. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  244. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  245. package/cjs/lib/utils.d.ts +4 -0
  246. package/cjs/lib/utils.js +5 -1
  247. package/cjs/lib/utils.js.map +1 -1
  248. package/components/Autocomplete/Autocomplete/Autocomplete.js +3 -23
  249. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  250. package/components/Autocomplete/Autocomplete.d.ts +0 -22
  251. package/components/Button/Button.styles/Button.styles.js +1 -1
  252. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  253. package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
  254. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  255. package/components/Calendar/DayCellView/DayCellView.js +6 -10
  256. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  257. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  258. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  259. package/components/Checkbox/Checkbox.d.ts +0 -12
  260. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  261. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  262. package/components/ComboBox/ComboBox.d.ts +7 -1
  263. package/components/ComboBox/ComboBox.md +2 -2
  264. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +9 -36
  265. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  266. package/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  267. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  268. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  269. package/components/DateInput/DateInput/DateInput.js +25 -16
  270. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  271. package/components/DateInput/DateInput.d.ts +1 -0
  272. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +2 -2
  273. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  274. package/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  275. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  276. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  277. package/components/DatePicker/DatePicker.d.ts +4 -33
  278. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +41 -22
  279. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  280. package/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  281. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
  282. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
  283. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  284. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +5 -8
  285. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  286. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js +16 -15
  287. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js.map +1 -1
  288. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  289. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  290. package/components/Dropdown/Dropdown.d.ts +0 -47
  291. package/components/DropdownMenu/DropdownMenu.md +8 -8
  292. package/components/FileUploader/FileUploader/FileUploader.js +7 -2
  293. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  294. package/components/FxInput/FxInput/FxInput.js +1 -5
  295. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  296. package/components/FxInput/FxInput.d.ts +1 -6
  297. package/components/Gapped/Gapped/Gapped.js +1 -15
  298. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  299. package/components/Gapped/Gapped.d.ts +0 -15
  300. package/components/Group/Group/Group.js +64 -28
  301. package/components/Group/Group/Group.js.map +1 -1
  302. package/components/Group/Group.d.ts +3 -4
  303. package/components/Group/Group.md +4 -4
  304. package/components/Group/Group.styles/Group.styles.js +9 -6
  305. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  306. package/components/Group/Group.styles.d.ts +1 -0
  307. package/components/Input/Input.md +4 -5
  308. package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
  309. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  310. package/components/Input/InputLayout/InputLayout.d.ts +1 -0
  311. package/components/Kebab/Kebab/Kebab.js +2 -20
  312. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  313. package/components/Kebab/Kebab.d.ts +0 -1
  314. package/components/Kebab/Kebab.md +32 -32
  315. package/components/Link/Link/Link.js +4 -0
  316. package/components/Link/Link/Link.js.map +1 -1
  317. package/components/Link/Link.mixins/Link.mixins.js +1 -1
  318. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  319. package/components/Link/Link.styles/Link.styles.js +1 -1
  320. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  321. package/components/Loader/Loader/Loader.js +0 -33
  322. package/components/Loader/Loader/Loader.js.map +1 -1
  323. package/components/Loader/Loader.d.ts +4 -36
  324. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  325. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  326. package/components/MenuItem/MenuItem.d.ts +0 -12
  327. package/components/MenuItem/MenuItem.md +6 -6
  328. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  329. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  330. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  331. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  332. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  333. package/components/Modal/Modal.styles/Modal.styles.js +3 -3
  334. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  335. package/components/Modal/Modal.styles.d.ts +1 -1
  336. package/components/Modal/ModalSeparator/ModalSeparator.js +1 -1
  337. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  338. package/components/Paging/Paging/Paging.js +1 -22
  339. package/components/Paging/Paging/Paging.js.map +1 -1
  340. package/components/Paging/Paging.d.ts +0 -1
  341. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  343. package/components/PasswordInput/PasswordInput.d.ts +0 -7
  344. package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -17
  345. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  346. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  347. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js +7 -4
  348. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js.map +1 -1
  349. package/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  350. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  351. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  352. package/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  353. package/components/Select/Select/Select.js +3 -2
  354. package/components/Select/Select/Select.js.map +1 -1
  355. package/components/Select/Select.d.ts +3 -0
  356. package/components/Select/Select.md +3 -3
  357. package/components/SidePage/SidePage/SidePage.js +1 -1
  358. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  359. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -1
  360. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  361. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  362. package/components/SingleToast/SingleToast.d.ts +3 -3
  363. package/components/Spinner/Spinner/Spinner.js +1 -18
  364. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  365. package/components/Spinner/Spinner.d.ts +0 -18
  366. package/components/Sticky/Sticky/Sticky.js +10 -14
  367. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  368. package/components/Sticky/Sticky.d.ts +3 -13
  369. package/components/Switcher/Switcher/Switcher.js +19 -16
  370. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  371. package/components/Switcher/Switcher.d.ts +4 -21
  372. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  373. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  374. package/components/Switcher/Switcher.styles.d.ts +1 -0
  375. package/components/Textarea/Textarea/Textarea.js +12 -46
  376. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  377. package/components/Textarea/Textarea.d.ts +6 -45
  378. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  379. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  380. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  381. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  382. package/components/Toast/Toast/Toast.js +8 -10
  383. package/components/Toast/Toast/Toast.js.map +1 -1
  384. package/components/Toast/Toast.d.ts +8 -6
  385. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  386. package/components/Toast/ToastStatic.d.ts +3 -2
  387. package/components/Toast/ToastView/ToastView.js +3 -17
  388. package/components/Toast/ToastView/ToastView.js.map +1 -1
  389. package/components/Toast/ToastView.d.ts +1 -15
  390. package/components/Toggle/Toggle/Toggle.js +1 -10
  391. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  392. package/components/Toggle/Toggle.d.ts +0 -10
  393. package/components/Token/Token.md +0 -83
  394. package/components/TokenInput/TokenInput/TokenInput.js +2 -1
  395. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  396. package/components/TokenInput/TokenInput.d.ts +2 -2
  397. package/components/TokenInput/TokenInput.md +2 -33
  398. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +16 -6
  399. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  400. package/components/TokenInput/TokenInputMenu.d.ts +12 -3
  401. package/components/Tooltip/Tooltip/Tooltip.js +8 -7
  402. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  403. package/components/Tooltip/Tooltip.d.ts +2 -3
  404. package/components/Tooltip/Tooltip.md +8 -8
  405. package/components/TooltipMenu/TooltipMenu.md +12 -12
  406. package/index.d.ts +1 -0
  407. package/index.js +1 -0
  408. package/index.js.map +1 -1
  409. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
  410. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  411. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  412. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
  413. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
  414. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  415. package/internal/ComponentTable/ComponentTable.js +0 -2
  416. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  417. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +59 -27
  418. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  419. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  420. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +2 -1
  421. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  422. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  423. package/internal/DateSelect/DateSelect/DateSelect.js +3 -10
  424. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  425. package/internal/DateSelect/DateSelect.d.ts +0 -10
  426. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
  427. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  428. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  429. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +244 -0
  430. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  431. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
  432. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  433. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
  434. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
  435. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
  436. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  437. package/internal/Popup/Popup/Popup.js +13 -66
  438. package/internal/Popup/Popup/Popup.js.map +1 -1
  439. package/internal/Popup/Popup.d.ts +41 -60
  440. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  441. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  442. package/internal/Popup/PopupPin.d.ts +23 -33
  443. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  444. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  445. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  446. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  447. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  448. package/internal/RenderLayer/RenderLayer.d.ts +0 -3
  449. package/internal/ThemePlayground/Playground/Playground.js +13 -13
  450. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  451. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +4 -4
  452. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  453. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -2
  454. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  455. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -4
  456. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  457. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  458. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  459. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  460. package/internal/ZIndex/ZIndex.d.ts +1 -3
  461. package/internal/themes/BasicTheme/BasicTheme.js +4 -0
  462. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  463. package/internal/themes/BasicTheme.d.ts +4 -0
  464. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  465. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  466. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  467. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  468. package/internal/themes/DarkTheme5_3/package.json +6 -0
  469. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  470. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  471. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  472. package/internal/themes/LightTheme5_3/package.json +6 -0
  473. package/internal/themes/LightTheme5_3.d.ts +1 -0
  474. package/lib/date/InternalDateGetter/InternalDateGetter.js +4 -1
  475. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  476. package/lib/date/InternalDateGetter.d.ts +1 -1
  477. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  478. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  479. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  480. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  481. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  482. package/lib/forwardRefAndName.d.ts +1 -1
  483. package/lib/getMenuPositions/getMenuPositions.js +33 -4
  484. package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
  485. package/lib/getMenuPositions.d.ts +21 -1
  486. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  487. package/lib/theming/ThemeVersions.d.ts +1 -1
  488. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  489. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  490. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  491. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  492. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  493. package/lib/theming/themes/LightTheme.d.ts +1 -0
  494. package/lib/utils/utils.js +2 -0
  495. package/lib/utils/utils.js.map +1 -1
  496. package/lib/utils.d.ts +4 -0
  497. package/package.json +7 -11
  498. package/cjs/lib/SSRSafe.d.ts +0 -2
  499. package/cjs/lib/SSRSafe.js +0 -5
  500. package/cjs/lib/SSRSafe.js.map +0 -1
  501. package/lib/SSRSafe/SSRSafe.js +0 -4
  502. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  503. package/lib/SSRSafe/package.json +0 -6
  504. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","forwardRefAndName","FocusControlWrapper","UploadIcon","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","_cx","theme","initialFiles","disabled","error","warning","_props$multiple","multiple","_props$width","width","fileUploaderWidth","_props$hideFiles","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","_props$size","size","_props$renderFile","renderFile","inputProps","_objectWithoutPropertiesLoose","_excluded","_useContext","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","_useState","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","validationMessage","wrap","_callee$","_context","prev","next","t0","sent","id","stop","_x","apply","arguments","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","handleDrop","event","dataTransfer","_dataTransfer$files","_useDrop","onDrop","isDraggable","labelRef","_useDrop2","isWindowDraggable","windowRef","current","document","focus","_inputRef$current","isTabPressed","blur","_inputRef$current2","handleRemoveFile","fileId","DataTransfer","filter","f","items","add","originalFile","handleExternalFileDeletion","getRootNode","rootNodeRef","_useState2","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","_useState3","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","createElement","className","style","onRemove","onMouseEnter","onMouseLeave","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","Fragment","orDragHere","onBlurWhenDisabled","_extends","tabIndex","type","visuallyHidden","onClick","FileUploader","memo","displayName"],"sources":["FileUploader.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { FileUploaderAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { UploadIcon } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Начальное состояние загруженных файлов */\n initialFiles?: File[];\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола. */\n size?: SizeProp;\n\n /** Скрывает отображение файлов. */\n hideFiles?: boolean;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request. Чтобы вывести валидацию ошибки, промис должен вернуть строку. * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /** Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл. */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n initialFiles,\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (dataTransfer.files?.length > 0) {\n handleChange(dataTransfer.files);\n }\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n },\n [files],\n );\n\n const handleExternalFileDeletion = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n handleRemoveFile(fileId);\n },\n [handleRemoveFile, removeFile],\n );\n\n useImperativeHandle(\n ref,\n () => ({ focus, blur, reset, removeFile: handleExternalFileDeletion, getRootNode: () => rootNodeRef.current }),\n [ref, blur, focus, reset, handleExternalFileDeletion],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(canDrop && jsStyles.windowDragOver(theme));\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = <UploadIcon size={iconSizes[size]} />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && (\n <FileUploaderFileList renderFile={renderFile} size={size} onRemove={handleRemoveFile} />\n )}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} onRemove={handleRemoveFile} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","forwardRefAndName","FocusControlWrapper","UploadIcon","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","_cx","theme","initialFiles","disabled","error","warning","_props$multiple","multiple","_props$width","width","fileUploaderWidth","_props$hideFiles","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","_props$size","size","_props$renderFile","renderFile","inputProps","_objectWithoutPropertiesLoose","_excluded","_useContext","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","_useState","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","validationMessage","wrap","_callee$","_context","prev","next","t0","sent","id","stop","_x","apply","arguments","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","handleDrop","event","dataTransfer","_dataTransfer$files","_useDrop","onDrop","isDraggable","labelRef","_useDrop2","isWindowDraggable","windowRef","current","document","focus","_inputRef$current","isTabPressed","blur","_inputRef$current2","handleRemoveFile","fileId","DataTransfer","filter","f","items","add","originalFile","handleExternalFileDeletion","handleReset","getRootNode","rootNodeRef","_useState2","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","_useState3","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","createElement","className","style","onRemove","onMouseEnter","onMouseLeave","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","Fragment","orDragHere","onBlurWhenDisabled","_extends","tabIndex","type","visuallyHidden","onClick","FileUploader","memo","displayName"],"sources":["FileUploader.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { FileUploaderAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { UploadIcon } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Начальное состояние загруженных файлов */\n initialFiles?: File[];\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола. */\n size?: SizeProp;\n\n /** Скрывает отображение файлов. */\n hideFiles?: boolean;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request. Чтобы вывести валидацию ошибки, промис должен вернуть строку. * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /** Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл. */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n initialFiles,\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (dataTransfer.files?.length > 0) {\n handleChange(dataTransfer.files);\n }\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n },\n [files],\n );\n\n const handleExternalFileDeletion = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n handleRemoveFile(fileId);\n },\n [handleRemoveFile, removeFile],\n );\n\n const handleReset = useCallback(() => {\n reset();\n const dataTransfer = new DataTransfer();\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, [reset, handleRemoveFile]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus,\n blur,\n reset: handleReset,\n removeFile: handleExternalFileDeletion,\n getRootNode: () => rootNodeRef.current,\n }),\n [ref, blur, focus, handleReset, handleExternalFileDeletion],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(canDrop && jsStyles.windowDragOver(theme));\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = <UploadIcon size={iconSizes[size]} />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && (\n <FileUploaderFileList renderFile={renderFile} size={size} onRemove={handleRemoveFile} />\n )}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} onRemove={handleRemoveFile} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,6 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _excluded = ["type", "onRestore", "auto", "refInput", "value", "width"];
5
5
  var _class, _FxInput;
6
6
  import React from 'react';
7
- import PropTypes from 'prop-types';
8
7
  import { Group } from "../../Group";
9
8
  import { Input } from "../../Input";
10
9
  import { CurrencyInput } from "../../CurrencyInput";
@@ -135,10 +134,7 @@ export var FxInput = rootNode(_class = (_FxInput = /*#__PURE__*/function (_React
135
134
  });
136
135
  };
137
136
  return FxInput;
138
- }(React.Component), _FxInput.__KONTUR_REACT_UI__ = 'FxInput', _FxInput.displayName = 'FxInput', _FxInput.propTypes = {
139
- auto: PropTypes.bool,
140
- type: PropTypes.string
141
- }, _FxInput.defaultProps = {
137
+ }(React.Component), _FxInput.__KONTUR_REACT_UI__ = 'FxInput', _FxInput.displayName = 'FxInput', _FxInput.defaultProps = {
142
138
  width: 250,
143
139
  type: 'text',
144
140
  value: ''
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","Group","Input","CurrencyInput","createPropsGetter","CommonWrapper","rootNode","ThemeContext","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","_class","_FxInput","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","align","button","inputCorners","_extends","corners","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","IconFunction","createElement","leftIcon","disabled","borderless","buttonAriaLabel","ref","onValueChange","focus","blur","element","_inheritsLoose","_proto","prototype","render","_this2","Consumer","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","string"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Устанавливает авто-режим. */\n auto?: boolean;\n\n /** Задает тип инпута */\n type?: 'currency' | InputProps['type'];\n\n /** Задает функцию, которая вызывается при нажатии на кнопку Restore. */\n onRestore?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Задает значение инпута. */\n value?: React.ReactText;\n\n /** Задает ref инпута. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Задает атрибут aria-label кнопке восстановления (restore button). */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/**\n * Автополе `FxInput`.\n *\n * Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.\n *\n * Принимает все свойства `Input`'a.\n */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n const inputCorners: InputProps['corners'] = auto\n ? { ...rest.corners }\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...rest.corners };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n const IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n corners={rest.corners}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\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 if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Group","Input","CurrencyInput","createPropsGetter","CommonWrapper","rootNode","ThemeContext","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","_class","_FxInput","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","align","button","inputCorners","_extends","corners","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","IconFunction","createElement","leftIcon","disabled","borderless","buttonAriaLabel","ref","onValueChange","focus","blur","element","_inheritsLoose","_proto","prototype","render","_this2","Consumer","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Устанавливает авто-режим. */\n auto?: boolean;\n\n /** Задает тип инпута */\n type?: 'currency' | InputProps['type'];\n\n /** Задает функцию, которая вызывается при нажатии на кнопку Restore. */\n onRestore?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Задает значение инпута. */\n value?: string | number;\n\n /** Задает ref инпута. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Задает атрибут aria-label кнопке восстановления (restore button). */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/**\n * Автополе `FxInput`.\n *\n * Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.\n *\n * Принимает все свойства `Input`'a.\n */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n const inputCorners: InputProps['corners'] = auto\n ? { ...rest.corners }\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...rest.corners };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n const IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n corners={rest.corners}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\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 if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,5 @@
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 { Input } from '../Input';
6
5
  import type { CurrencyInputProps } from '../CurrencyInput';
@@ -18,7 +17,7 @@ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, Common
18
17
  /** Задает функцию, вызывающуюся при изменении value. */
19
18
  onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];
20
19
  /** Задает значение инпута. */
21
- value?: React.ReactText;
20
+ value?: string | number;
22
21
  /** Задает ref инпута. */
23
22
  refInput?: (element: CurrencyInput | Input | null) => void;
24
23
  /** Убирает лишние нули после запятой. */
@@ -44,10 +43,6 @@ type DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;
44
43
  export declare class FxInput extends React.Component<FxInputProps> {
45
44
  static __KONTUR_REACT_UI__: string;
46
45
  static displayName: string;
47
- static propTypes: {
48
- auto: PropTypes.Requireable<boolean>;
49
- type: PropTypes.Requireable<string>;
50
- };
51
46
  static defaultProps: DefaultProps;
52
47
  private theme;
53
48
  private input;
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Gapped;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { isNonNullable } from "../../../lib/utils";
7
6
  import { CommonWrapper } from "../../../internal/CommonWrapper";
8
7
  import { rootNode } from "../../../lib/rootNode";
@@ -105,20 +104,7 @@ export var Gapped = rootNode(_class = (_Gapped = /*#__PURE__*/function (_React$C
105
104
  return Boolean(child) || typeof child === 'number';
106
105
  };
107
106
  return Gapped;
108
- }(React.Component), _Gapped.__KONTUR_REACT_UI__ = 'Gapped', _Gapped.displayName = 'Gapped', _Gapped.propTypes = {
109
- /**
110
- * Расстояние между элементами.
111
- */
112
- gap: PropTypes.number,
113
- /**
114
- * Располагать элементы вертикально.
115
- */
116
- vertical: PropTypes.bool,
117
- /**
118
- * Вертикальное выравнивание элементов.
119
- */
120
- verticalAlign: PropTypes.oneOf(['top', 'middle', 'baseline', 'bottom'])
121
- }, _Gapped.defaultProps = {
107
+ }(React.Component), _Gapped.__KONTUR_REACT_UI__ = 'Gapped', _Gapped.displayName = 'Gapped', _Gapped.defaultProps = {
122
108
  wrap: false,
123
109
  vertical: false,
124
110
  verticalAlign: 'baseline'
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","isNonNullable","CommonWrapper","rootNode","createPropsGetter","GappedDataTids","vertical","horizontal","Gapped","_class","_Gapped","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","_inheritsLoose","_proto","prototype","render","createElement","_extends","rootNodeRef","setRootNode","props","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","key","_this$props","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","displayName","propTypes","number","bool","oneOf"],"sources":["Gapped.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport interface GappedProps extends CommonProps {\n /** Задает расстояние между элементами в пикселях. */\n gap?: number;\n\n /** Задает вертикальное выравнивание. */\n verticalAlign?: 'top' | 'middle' | 'baseline' | 'bottom';\n\n /** Располагает элементы по вертикали. */\n vertical?: boolean;\n\n /** Переносит элементы на новую строку при горизонтальном расположении. */\n wrap?: boolean;\n\n /** @ignore */\n children: React.ReactNode;\n}\n\nexport const GappedDataTids = {\n vertical: 'Gapped__vertical',\n horizontal: 'Gapped__horizontal',\n} as const;\n\ntype DefaultProps = Required<Pick<GappedProps, 'wrap' | 'vertical' | 'verticalAlign'>>;\n\n/**\n * Контейнер `Gapped` устанавливает расстояние равное `gap` между элементами.\n */\n@rootNode\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = 'Gapped';\n public static displayName = 'Gapped';\n\n public static propTypes = {\n /**\n * Расстояние между элементами.\n */\n gap: PropTypes.number,\n\n /**\n * Располагать элементы вертикально.\n */\n vertical: PropTypes.bool,\n\n /**\n * Вертикальное выравнивание элементов.\n */\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'baseline', 'bottom']),\n };\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n private getProps = createPropsGetter(Gapped.defaultProps);\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.getProps().vertical ? this.renderVertical() : this.renderHorizontal()}\n </CommonWrapper>\n );\n }\n\n private getGapValue() {\n // DEPRECATED remove in 4.0\n const { gap: propsGap } = this.props;\n if (isNonNullable(propsGap)) {\n return propsGap;\n }\n\n return 8;\n }\n\n private renderVertical() {\n const subsequentItemStyle: React.CSSProperties = {\n paddingTop: this.getGapValue(),\n };\n const children = React.Children.toArray(this.props.children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const style = index === 0 ? undefined : subsequentItemStyle;\n return (\n <div style={style} key={index}>\n {child}\n </div>\n );\n });\n\n return <div data-tid={GappedDataTids.vertical}>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign } = this.props;\n const wrap = this.getProps().wrap;\n const gap = this.getGapValue();\n const itemStyle: React.CSSProperties = {\n display: 'inline-block',\n verticalAlign,\n ...(wrap ? { marginLeft: gap, marginTop: gap } : {}),\n };\n const rootStyle: React.CSSProperties = wrap ? { paddingTop: 1 } : {};\n const contStyle: React.CSSProperties = wrap ? { marginTop: -gap - 1, marginLeft: -gap } : { whiteSpace: 'nowrap' };\n\n return (\n <div data-tid={GappedDataTids.horizontal} style={rootStyle}>\n <div style={contStyle}>\n {React.Children.toArray(children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const marginLeft = index === 0 ? undefined : gap;\n return (\n <span key={index} style={{ marginLeft, ...itemStyle }}>\n {child}\n </span>\n );\n })}\n </div>\n </div>\n );\n }\n\n private filterChildren(child: React.ReactNode): boolean {\n return Boolean(child) || typeof child === 'number';\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isNonNullable","CommonWrapper","rootNode","createPropsGetter","GappedDataTids","vertical","horizontal","Gapped","_class","_Gapped","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","_inheritsLoose","_proto","prototype","render","createElement","_extends","rootNodeRef","setRootNode","props","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","key","_this$props","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Gapped.tsx"],"sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport interface GappedProps extends CommonProps {\n /** Задает расстояние между элементами в пикселях. */\n gap?: number;\n\n /** Задает вертикальное выравнивание. */\n verticalAlign?: 'top' | 'middle' | 'baseline' | 'bottom';\n\n /** Располагает элементы по вертикали. */\n vertical?: boolean;\n\n /** Переносит элементы на новую строку при горизонтальном расположении. */\n wrap?: boolean;\n\n /** @ignore */\n children: React.ReactNode;\n}\n\nexport const GappedDataTids = {\n vertical: 'Gapped__vertical',\n horizontal: 'Gapped__horizontal',\n} as const;\n\ntype DefaultProps = Required<Pick<GappedProps, 'wrap' | 'vertical' | 'verticalAlign'>>;\n\n/**\n * Контейнер `Gapped` устанавливает расстояние равное `gap` между элементами.\n */\n@rootNode\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = 'Gapped';\n public static displayName = 'Gapped';\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n private getProps = createPropsGetter(Gapped.defaultProps);\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.getProps().vertical ? this.renderVertical() : this.renderHorizontal()}\n </CommonWrapper>\n );\n }\n\n private getGapValue() {\n // DEPRECATED remove in 4.0\n const { gap: propsGap } = this.props;\n if (isNonNullable(propsGap)) {\n return propsGap;\n }\n\n return 8;\n }\n\n private renderVertical() {\n const subsequentItemStyle: React.CSSProperties = {\n paddingTop: this.getGapValue(),\n };\n const children = React.Children.toArray(this.props.children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const style = index === 0 ? undefined : subsequentItemStyle;\n return (\n <div style={style} key={index}>\n {child}\n </div>\n );\n });\n\n return <div data-tid={GappedDataTids.vertical}>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign } = this.props;\n const wrap = this.getProps().wrap;\n const gap = this.getGapValue();\n const itemStyle: React.CSSProperties = {\n display: 'inline-block',\n verticalAlign,\n ...(wrap ? { marginLeft: gap, marginTop: gap } : {}),\n };\n const rootStyle: React.CSSProperties = wrap ? { paddingTop: 1 } : {};\n const contStyle: React.CSSProperties = wrap ? { marginTop: -gap - 1, marginLeft: -gap } : { whiteSpace: 'nowrap' };\n\n return (\n <div data-tid={GappedDataTids.horizontal} style={rootStyle}>\n <div style={contStyle}>\n {React.Children.toArray(children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const marginLeft = index === 0 ? undefined : gap;\n return (\n <span key={index} style={{ marginLeft, ...itemStyle }}>\n {child}\n </span>\n );\n })}\n </div>\n </div>\n );\n }\n\n private filterChildren(child: React.ReactNode): boolean {\n return Boolean(child) || typeof child === 'number';\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import type { CommonProps } from '../../internal/CommonWrapper';
4
3
  export interface GappedProps extends CommonProps {
5
4
  /** Задает расстояние между элементами в пикселях. */
@@ -24,20 +23,6 @@ type DefaultProps = Required<Pick<GappedProps, 'wrap' | 'vertical' | 'verticalAl
24
23
  export declare class Gapped extends React.Component<GappedProps> {
25
24
  static __KONTUR_REACT_UI__: string;
26
25
  static displayName: string;
27
- static propTypes: {
28
- /**
29
- * Расстояние между элементами.
30
- */
31
- gap: PropTypes.Requireable<number>;
32
- /**
33
- * Располагать элементы вертикально.
34
- */
35
- vertical: PropTypes.Requireable<boolean>;
36
- /**
37
- * Вертикальное выравнивание элементов.
38
- */
39
- verticalAlign: PropTypes.Requireable<string>;
40
- };
41
26
  private setRootNode;
42
27
  static defaultProps: DefaultProps;
43
28
  private getProps;
@@ -2,12 +2,12 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  var _class, _Group;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { isIE11, isEdge } from "../../../lib/client";
7
6
  import { CommonWrapper } from "../../../internal/CommonWrapper";
8
7
  import { cx } from "../../../lib/theming/Emotion";
9
8
  import { rootNode } from "../../../lib/rootNode";
10
- import { isButton, isAutocomplete, isCurrencyInput, isDropdown, isDropdownMenu, isFxInput, isInput, isPasswordInput, isSelect } from "../../../lib/utils";
9
+ import { isButton, isAutocomplete, isCurrencyInput, isDropdown, isDropdownMenu, isFxInput, isInput, isPasswordInput, isSelect, isTooltip, isHint } from "../../../lib/utils";
10
+ import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
11
11
  import { styles } from "../Group.styles";
12
12
  var getFirstChild = function getFirstChild(children) {
13
13
  if (!Array.isArray(children)) {
@@ -42,8 +42,8 @@ export var getButtonCorners = function getButtonCorners(isFirstChild, isLastChil
42
42
  borderRadius: 0
43
43
  };
44
44
  };
45
- var tryPassCorners = function tryPassCorners(child, firstChild, lastChild) {
46
- var corners = getButtonCorners(child === firstChild, child === lastChild);
45
+ var tryPassCorners = function tryPassCorners(child, isFirstChild, isLastChild) {
46
+ var corners = getButtonCorners(isFirstChild, isLastChild);
47
47
  if (isButton(child) || isInput(child) || isFxInput(child) || isAutocomplete(child) || isPasswordInput(child) || isCurrencyInput(child) || isSelect(child) || isDropdown(child) || isDropdownMenu(child)) {
48
48
  return /*#__PURE__*/React.cloneElement(child, {
49
49
  corners: _extends({}, corners, child.props.corners)
@@ -51,6 +51,9 @@ var tryPassCorners = function tryPassCorners(child, firstChild, lastChild) {
51
51
  }
52
52
  return child;
53
53
  };
54
+ var hasWidthInPercent = function hasWidthInPercent(child) {
55
+ return String(child.props.width).includes('%');
56
+ };
54
57
  export var GroupDataTids = {
55
58
  root: 'Group__root'
56
59
  };
@@ -62,47 +65,80 @@ export var GroupDataTids = {
62
65
  */
63
66
  export var Group = rootNode(_class = (_Group = /*#__PURE__*/function (_React$Component) {
64
67
  function Group() {
65
- return _React$Component.apply(this, arguments) || this;
68
+ var _this;
69
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
70
+ args[_key] = arguments[_key];
71
+ }
72
+ _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
73
+ _this.renderChild = function (child, isFirstChild, isLastChild, isWidthInPercent) {
74
+ var _cx, _cx2;
75
+ return /*#__PURE__*/(
76
+
77
+ React.createElement("div", {
78
+ className: cx((_cx = {}, _cx[styles.fixed()] = !isWidthInPercent, _cx[styles.stretch()] = isWidthInPercent, _cx[styles.stretchFallback()] = Boolean(isWidthInPercent && _this.props.width && (isIE11 || isEdge)), _cx))
79
+ }, /*#__PURE__*/
80
+
81
+ React.createElement("div", {
82
+ className: cx((_cx2 = {}, _cx2[styles.item()] = true, _cx2[styles.itemFirst()] = isFirstChild, _cx2))
83
+ }, tryPassCorners(child, isFirstChild, isLastChild)))
84
+ );
85
+ };
86
+ return _this;
66
87
  }
67
88
  _inheritsLoose(Group, _React$Component);
68
89
  var _proto = Group.prototype;
69
90
  _proto.render = function render() {
70
- var _this = this;
91
+ var _this2 = this;
71
92
  var style = {
72
93
  width: this.props.width
73
94
  };
74
95
  var childrenArray = React.Children.toArray(this.props.children);
75
96
  var firstChild = getFirstChild(childrenArray);
76
97
  var lastChild = getLastChild(childrenArray);
77
- return /*#__PURE__*/(
78
- React.createElement(CommonWrapper, _extends({
79
- rootNodeRef: this.setRootNode
80
- }, this.props), /*#__PURE__*/
81
- React.createElement("span", {
98
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
99
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
100
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
101
+ rootNodeRef: _this2.setRootNode
102
+ }, _this2.props), /*#__PURE__*/React.createElement("span", {
82
103
  "data-tid": GroupDataTids.root,
83
104
  className: styles.root(),
84
105
  style: style
85
106
  }, React.Children.map(childrenArray, function (child) {
86
- var _cx, _cx2;
87
107
  if (!child || ! /*#__PURE__*/React.isValidElement(child)) {
88
108
  return null;
89
109
  }
90
- var isWidthInPercent = Boolean(child.props.width && child.props.width.toString().includes('%'));
91
- var modifiedChild = tryPassCorners(child, firstChild, lastChild);
92
110
  var isFirstChild = child === firstChild;
93
- return /*#__PURE__*/(
94
- React.createElement("div", {
95
- className: cx((_cx = {}, _cx[styles.fixed()] = !isWidthInPercent, _cx[styles.stretch()] = isWidthInPercent, _cx[styles.stretchFallback()] = Boolean(isWidthInPercent && _this.props.width && (isIE11 || isEdge)), _cx))
96
- }, /*#__PURE__*/
97
-
98
- React.createElement("div", {
99
- className: cx((_cx2 = {}, _cx2[styles.item()] = true, _cx2[styles.itemFirst()] = isFirstChild, _cx2))
100
- }, modifiedChild))
101
- );
102
- })))
103
- );
111
+ var isLastChild = child === lastChild;
112
+ if (_this2.featureFlags.groupAddHintAndTooltipSupport && (isHint(child) || isTooltip(child))) {
113
+ return _this2.renderWrappedChildren(child, isFirstChild, isLastChild);
114
+ }
115
+ return _this2.renderChild(child, isFirstChild, isLastChild, hasWidthInPercent(child));
116
+ })));
117
+ });
118
+ };
119
+ _proto.renderWrappedChildren = function renderWrappedChildren(parent, isParentFirst, isParentLast) {
120
+ var _this3 = this,
121
+ _cx3;
122
+ var shouldStretchParent = false;
123
+ var nestedChildren = React.Children.toArray(parent.props.children);
124
+ var modifiedChildren = nestedChildren.map(function (nestedChild, index) {
125
+ if (!nestedChild || ! /*#__PURE__*/React.isValidElement(nestedChild)) {
126
+ return null;
127
+ }
128
+ var isFirstChild = isParentFirst && index === 0;
129
+ var isLastChild = isParentLast && index === nestedChildren.length - 1;
130
+ if (hasWidthInPercent(nestedChild)) {
131
+ shouldStretchParent = true;
132
+ }
133
+ return _this3.renderChild(nestedChild, isFirstChild, isLastChild, hasWidthInPercent(nestedChild));
134
+ });
135
+ var wrappedChildren = /*#__PURE__*/
136
+ React.createElement("div", {
137
+ className: cx(styles.wrappedChildren(), (_cx3 = {}, _cx3[styles.stretch()] = shouldStretchParent, _cx3))
138
+ }, modifiedChildren);
139
+ return /*#__PURE__*/React.cloneElement(parent, {
140
+ children: wrappedChildren
141
+ });
104
142
  };
105
143
  return Group;
106
- }(React.Component), _Group.__KONTUR_REACT_UI__ = 'Group', _Group.displayName = 'Group', _Group.propTypes = {
107
- width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
108
- }, _Group)) || _class;
144
+ }(React.Component), _Group.__KONTUR_REACT_UI__ = 'Group', _Group.displayName = 'Group', _Group)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","isIE11","isEdge","CommonWrapper","cx","rootNode","isButton","isAutocomplete","isCurrencyInput","isDropdown","isDropdownMenu","isFxInput","isInput","isPasswordInput","isSelect","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","tryPassCorners","child","firstChild","lastChild","corners","cloneElement","_extends","props","GroupDataTids","root","Group","_class","_Group","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","_this","style","width","childrenArray","toArray","createElement","rootNodeRef","setRootNode","className","map","_cx","_cx2","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","number","string"],"sources":["Group.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport {\n isButton,\n isAutocomplete,\n isCurrencyInput,\n isDropdown,\n isDropdownMenu,\n isFxInput,\n isInput,\n isPasswordInput,\n isSelect,\n} from '../../lib/utils';\n\nimport { styles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\n /** Задает длину компонента Group. */\n width?: React.CSSProperties['width'];\n}\n\ninterface GroupChildProps {\n width?: React.CSSProperties['width'];\n corners?: number;\n}\n\nconst getFirstChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children?.[0] as React.ReactNode;\n};\n\nconst getLastChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n const numberOfChildren = React.Children.count(children);\n\n return children?.[numberOfChildren - 1] as React.ReactNode;\n};\n\nexport const getButtonCorners = (isFirstChild: boolean, isLastChild: boolean): React.CSSProperties => {\n if (isFirstChild && isLastChild) {\n return {};\n }\n\n if (isFirstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (isLastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst tryPassCorners = (child: React.ReactNode, firstChild: React.ReactNode, lastChild: React.ReactNode) => {\n const corners = getButtonCorners(child === firstChild, child === lastChild);\n\n if (\n isButton(child) ||\n isInput(child) ||\n isFxInput(child) ||\n isAutocomplete(child) ||\n isPasswordInput(child) ||\n isCurrencyInput(child) ||\n isSelect(child) ||\n isDropdown(child) ||\n isDropdownMenu(child)\n ) {\n return React.cloneElement<(typeof child)['props']>(child, { corners: { ...corners, ...child.props.corners } });\n }\n\n return child;\n};\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n/**\n * Компонент `Group` используется для создания логически сгруппированных элементов, выровненных по горизонтали.\n *\n * Длина контейнера настраивается с помощью пропа `width`.\n */\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\n public static displayName = 'Group';\n\n private setRootNode!: TSetRootNode;\n\n public static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n public render() {\n const style: React.CSSProperties = {\n width: this.props.width,\n };\n\n const childrenArray = React.Children.toArray(this.props.children);\n const firstChild = getFirstChild(childrenArray);\n const lastChild = getLastChild(childrenArray);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span data-tid={GroupDataTids.root} className={styles.root()} style={style}>\n {React.Children.map(childrenArray, (child) => {\n if (!child || !React.isValidElement<GroupChildProps>(child)) {\n return null;\n }\n\n const isWidthInPercent = Boolean(child.props.width && child.props.width.toString().includes('%'));\n\n const modifiedChild = tryPassCorners(child, firstChild, lastChild);\n\n const isFirstChild = child === firstChild;\n\n return (\n <div\n className={cx({\n [styles.fixed()]: !isWidthInPercent,\n [styles.stretch()]: isWidthInPercent,\n [styles.stretchFallback()]: Boolean(isWidthInPercent && this.props.width && (isIE11 || isEdge)),\n })}\n >\n <div\n className={cx({\n [styles.item()]: true,\n [styles.itemFirst()]: isFirstChild,\n })}\n >\n {modifiedChild}\n </div>\n </div>\n );\n })}\n </span>\n </CommonWrapper>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isIE11","isEdge","CommonWrapper","cx","rootNode","isButton","isAutocomplete","isCurrencyInput","isDropdown","isDropdownMenu","isFxInput","isInput","isPasswordInput","isSelect","isTooltip","isHint","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","tryPassCorners","child","corners","cloneElement","_extends","props","hasWidthInPercent","String","width","includes","GroupDataTids","root","Group","_class","_Group","_React$Component","_this","_len","arguments","length","args","_key","call","apply","concat","renderChild","isWidthInPercent","_cx","_cx2","createElement","className","fixed","stretch","stretchFallback","Boolean","item","itemFirst","_inheritsLoose","_proto","prototype","render","_this2","style","childrenArray","toArray","firstChild","lastChild","Consumer","flags","featureFlags","rootNodeRef","setRootNode","map","isValidElement","groupAddHintAndTooltipSupport","renderWrappedChildren","parent","isParentFirst","isParentLast","_this3","_cx3","shouldStretchParent","nestedChildren","modifiedChildren","nestedChild","index","wrappedChildren","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Group.tsx"],"sourcesContent":["import React from 'react';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport {\n isButton,\n isAutocomplete,\n isCurrencyInput,\n isDropdown,\n isDropdownMenu,\n isFxInput,\n isInput,\n isPasswordInput,\n isSelect,\n isTooltip,\n isHint,\n} from '../../lib/utils';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\n /** Задает длину компонента Group. */\n width?: React.CSSProperties['width'];\n}\n\ninterface GroupChildProps extends CommonProps {\n width?: React.CSSProperties['width'];\n corners?: number;\n}\n\nconst getFirstChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children?.[0] as React.ReactNode;\n};\n\nconst getLastChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n const numberOfChildren = React.Children.count(children);\n\n return children?.[numberOfChildren - 1] as React.ReactNode;\n};\n\nexport const getButtonCorners = (isFirstChild: boolean, isLastChild: boolean): React.CSSProperties => {\n if (isFirstChild && isLastChild) {\n return {};\n }\n\n if (isFirstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (isLastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst tryPassCorners = (child: React.ReactNode, isFirstChild: boolean, isLastChild: boolean) => {\n const corners = getButtonCorners(isFirstChild, isLastChild);\n\n if (\n isButton(child) ||\n isInput(child) ||\n isFxInput(child) ||\n isAutocomplete(child) ||\n isPasswordInput(child) ||\n isCurrencyInput(child) ||\n isSelect(child) ||\n isDropdown(child) ||\n isDropdownMenu(child)\n ) {\n return React.cloneElement<(typeof child)['props']>(child, { corners: { ...corners, ...child.props.corners } });\n }\n\n return child;\n};\n\nconst hasWidthInPercent = (child: React.ReactElement<GroupChildProps>) => String(child.props.width).includes('%');\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n/**\n * Компонент `Group` используется для создания логически сгруппированных элементов, выровненных по горизонтали.\n *\n * Длина контейнера настраивается с помощью пропа `width`.\n */\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\n public static displayName = 'Group';\n\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n public render() {\n const style: React.CSSProperties = {\n width: this.props.width,\n };\n\n const childrenArray = React.Children.toArray(this.props.children);\n const firstChild = getFirstChild(childrenArray);\n const lastChild = getLastChild(childrenArray);\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span data-tid={GroupDataTids.root} className={styles.root()} style={style}>\n {React.Children.map(childrenArray, (child) => {\n if (!child || !React.isValidElement<GroupChildProps>(child)) {\n return null;\n }\n\n const isFirstChild = child === firstChild;\n const isLastChild = child === lastChild;\n\n if (this.featureFlags.groupAddHintAndTooltipSupport && (isHint(child) || isTooltip(child))) {\n return this.renderWrappedChildren(child, isFirstChild, isLastChild);\n }\n\n return this.renderChild(child, isFirstChild, isLastChild, hasWidthInPercent(child));\n })}\n </span>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderChild = (\n child: React.ReactNode,\n isFirstChild: boolean,\n isLastChild: boolean,\n isWidthInPercent: boolean,\n ) => (\n <div\n className={cx({\n [styles.fixed()]: !isWidthInPercent,\n [styles.stretch()]: isWidthInPercent,\n [styles.stretchFallback()]: Boolean(isWidthInPercent && this.props.width && (isIE11 || isEdge)),\n })}\n >\n <div\n className={cx({\n [styles.item()]: true,\n [styles.itemFirst()]: isFirstChild,\n })}\n >\n {tryPassCorners(child, isFirstChild, isLastChild)}\n </div>\n </div>\n );\n\n private renderWrappedChildren(\n parent: React.ReactElement<GroupChildProps>,\n isParentFirst: boolean,\n isParentLast: boolean,\n ): React.ReactNode {\n let shouldStretchParent = false;\n const nestedChildren = React.Children.toArray(parent.props.children);\n\n const modifiedChildren = nestedChildren.map((nestedChild, index) => {\n if (!nestedChild || !React.isValidElement<GroupChildProps>(nestedChild)) {\n return null;\n }\n\n const isFirstChild = isParentFirst && index === 0;\n const isLastChild = isParentLast && index === nestedChildren.length - 1;\n if (hasWidthInPercent(nestedChild)) {\n shouldStretchParent = true;\n }\n\n return this.renderChild(nestedChild, isFirstChild, isLastChild, hasWidthInPercent(nestedChild));\n });\n\n const wrappedChildren = (\n <div className={cx(styles.wrappedChildren(), { [styles.stretch()]: shouldStretchParent })}>\n {modifiedChildren}\n </div>\n );\n\n return React.cloneElement<GroupChildProps>(parent, {\n children: wrappedChildren,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import type { CommonProps } from '../../internal/CommonWrapper';
4
3
  export interface GroupProps extends CommonProps {
5
4
  /** Задает длину компонента Group. */
@@ -18,8 +17,8 @@ export declare class Group extends React.Component<GroupProps> {
18
17
  static __KONTUR_REACT_UI__: string;
19
18
  static displayName: string;
20
19
  private setRootNode;
21
- static propTypes: {
22
- width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
23
- };
20
+ private featureFlags;
24
21
  render(): React.JSX.Element;
22
+ private renderChild;
23
+ private renderWrappedChildren;
25
24
  }