@skbkontur/react-ui 4.1.2 → 4.2.2

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 (449) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +12 -3
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +3 -0
  6. package/cjs/components/Button/Button.js +8 -4
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.styles.d.ts +1 -1
  9. package/cjs/components/Button/Button.styles.js +6 -6
  10. package/cjs/components/Button/Button.styles.js.map +1 -1
  11. package/cjs/components/Center/Center.d.ts +3 -0
  12. package/cjs/components/Center/Center.js +8 -3
  13. package/cjs/components/Center/Center.js.map +1 -1
  14. package/cjs/components/Checkbox/Checkbox.d.ts +3 -0
  15. package/cjs/components/Checkbox/Checkbox.js +8 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.md +48 -0
  18. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -1
  19. package/cjs/components/CurrencyInput/CurrencyInput.js +23 -5
  20. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  21. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
  25. package/cjs/components/DatePicker/DatePicker.js +14 -3
  26. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  27. package/cjs/components/DatePicker/Picker.js +7 -2
  28. package/cjs/components/DatePicker/Picker.js.map +1 -1
  29. package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
  30. package/cjs/components/Dropdown/Dropdown.js +7 -2
  31. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  32. package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
  33. package/cjs/components/FileUploader/FileUploader.js +10 -4
  34. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  35. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  36. package/cjs/components/FxInput/FxInput.js +7 -3
  37. package/cjs/components/FxInput/FxInput.js.map +1 -1
  38. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  39. package/cjs/components/Gapped/Gapped.js +9 -4
  40. package/cjs/components/Gapped/Gapped.js.map +1 -1
  41. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  42. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  43. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  44. package/cjs/components/Group/Group.d.ts +3 -0
  45. package/cjs/components/Group/Group.js +7 -3
  46. package/cjs/components/Group/Group.js.map +1 -1
  47. package/cjs/components/Input/Input.d.ts +3 -0
  48. package/cjs/components/Input/Input.js +7 -3
  49. package/cjs/components/Input/Input.js.map +1 -1
  50. package/cjs/components/Link/Link.d.ts +4 -1
  51. package/cjs/components/Link/Link.js +8 -4
  52. package/cjs/components/Link/Link.js.map +1 -1
  53. package/cjs/components/Loader/Loader.d.ts +4 -0
  54. package/cjs/components/Loader/Loader.js +8 -3
  55. package/cjs/components/Loader/Loader.js.map +1 -1
  56. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  57. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  58. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  59. package/cjs/components/MenuItem/MenuItem.d.ts +5 -1
  60. package/cjs/components/MenuItem/MenuItem.js +11 -5
  61. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  62. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  63. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  64. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  65. package/cjs/components/Modal/Modal.d.ts +5 -0
  66. package/cjs/components/Modal/Modal.js +9 -3
  67. package/cjs/components/Modal/Modal.js.map +1 -1
  68. package/cjs/components/Modal/ModalClose.js +3 -2
  69. package/cjs/components/Modal/ModalClose.js.map +1 -1
  70. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  71. package/cjs/components/Modal/ModalFooter.js +8 -3
  72. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  73. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  74. package/cjs/components/Modal/ModalHeader.js +9 -3
  75. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  76. package/cjs/components/Paging/Paging.d.ts +8 -1
  77. package/cjs/components/Paging/Paging.js +15 -7
  78. package/cjs/components/Paging/Paging.js.map +1 -1
  79. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -0
  80. package/cjs/components/PasswordInput/PasswordInput.js +13 -5
  81. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  82. package/cjs/components/Radio/Radio.d.ts +3 -0
  83. package/cjs/components/Radio/Radio.js +7 -3
  84. package/cjs/components/Radio/Radio.js.map +1 -1
  85. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
  86. package/cjs/components/RadioGroup/RadioGroup.js +21 -4
  87. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  88. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  89. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  90. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  91. package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
  92. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  93. package/cjs/components/Select/Select.d.ts +3 -0
  94. package/cjs/components/Select/Select.js +11 -3
  95. package/cjs/components/Select/Select.js.map +1 -1
  96. package/cjs/components/SidePage/SidePage.d.ts +4 -0
  97. package/cjs/components/SidePage/SidePage.js +7 -2
  98. package/cjs/components/SidePage/SidePage.js.map +1 -1
  99. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  100. package/cjs/components/SidePage/SidePageBody.js +10 -3
  101. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  102. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  103. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  104. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  105. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  106. package/cjs/components/SidePage/SidePageFooter.js +11 -3
  107. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  108. package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
  109. package/cjs/components/SidePage/SidePageHeader.js +9 -4
  110. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  111. package/cjs/components/Spinner/Spinner.d.ts +3 -0
  112. package/cjs/components/Spinner/Spinner.js +7 -3
  113. package/cjs/components/Spinner/Spinner.js.map +1 -1
  114. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  115. package/cjs/components/Sticky/Sticky.js +7 -3
  116. package/cjs/components/Sticky/Sticky.js.map +1 -1
  117. package/cjs/components/Switcher/Switcher.d.ts +3 -0
  118. package/cjs/components/Switcher/Switcher.js +7 -3
  119. package/cjs/components/Switcher/Switcher.js.map +1 -1
  120. package/cjs/components/Tabs/Indicator.js +4 -2
  121. package/cjs/components/Tabs/Indicator.js.map +1 -1
  122. package/cjs/components/Tabs/Tab.d.ts +3 -0
  123. package/cjs/components/Tabs/Tab.js +7 -2
  124. package/cjs/components/Tabs/Tab.js.map +1 -1
  125. package/cjs/components/Tabs/Tabs.d.ts +4 -0
  126. package/cjs/components/Tabs/Tabs.js +12 -3
  127. package/cjs/components/Tabs/Tabs.js.map +1 -1
  128. package/cjs/components/Textarea/Textarea.d.ts +4 -0
  129. package/cjs/components/Textarea/Textarea.js +8 -3
  130. package/cjs/components/Textarea/Textarea.js.map +1 -1
  131. package/cjs/components/Textarea/TextareaCounter.js +10 -9
  132. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  133. package/cjs/components/Toast/Toast.d.ts +6 -0
  134. package/cjs/components/Toast/Toast.js +9 -2
  135. package/cjs/components/Toast/Toast.js.map +1 -1
  136. package/cjs/components/Toast/ToastStatic.js +1 -1
  137. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  138. package/cjs/components/Toast/ToastView.js +5 -4
  139. package/cjs/components/Toast/ToastView.js.map +1 -1
  140. package/cjs/components/Toggle/Toggle.d.ts +3 -0
  141. package/cjs/components/Toggle/Toggle.js +7 -3
  142. package/cjs/components/Toggle/Toggle.js.map +1 -1
  143. package/cjs/components/Token/Token.d.ts +3 -0
  144. package/cjs/components/Token/Token.js +8 -3
  145. package/cjs/components/Token/Token.js.map +1 -1
  146. package/cjs/components/TokenInput/TokenInput.d.ts +4 -0
  147. package/cjs/components/TokenInput/TokenInput.js +7 -2
  148. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  149. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  150. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  151. package/cjs/components/Tooltip/Tooltip.d.ts +4 -0
  152. package/cjs/components/Tooltip/Tooltip.js +9 -3
  153. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  154. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -0
  155. package/cjs/components/TooltipMenu/TooltipMenu.js +7 -2
  156. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  157. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  158. package/cjs/internal/Calendar/Calendar.js +9 -2
  159. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  160. package/cjs/internal/Calendar/MonthView.js +5 -4
  161. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  162. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  163. package/cjs/internal/CommonWrapper/CommonWrapper.js +4 -2
  164. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  165. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  166. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +23 -5
  167. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  168. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  169. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  170. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  171. package/cjs/internal/CustomComboBox/CustomComboBox.js +6 -2
  172. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  173. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  174. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  175. package/cjs/internal/DataTids/DataTids.js +46 -0
  176. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  177. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  178. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  179. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  180. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  181. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  182. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  183. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  184. package/cjs/internal/DateSelect/DateSelect.js +8 -3
  185. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  186. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  187. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
  188. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  189. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  190. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
  191. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  192. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -0
  193. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  194. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  195. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  196. package/cjs/internal/InternalMenu/InternalMenu.js +8 -3
  197. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  198. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  199. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  200. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  201. package/cjs/internal/MaskedInput/MaskedInput.js +7 -3
  202. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  203. package/cjs/internal/Menu/Menu.d.ts +3 -0
  204. package/cjs/internal/Menu/Menu.js +8 -3
  205. package/cjs/internal/Menu/Menu.js.map +1 -1
  206. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  207. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  208. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  209. package/cjs/internal/Popup/Popup.d.ts +5 -0
  210. package/cjs/internal/Popup/Popup.js +10 -4
  211. package/cjs/internal/Popup/Popup.js.map +1 -1
  212. package/cjs/internal/Popup/PopupPin.js +2 -1
  213. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  214. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  215. package/cjs/internal/PopupMenu/PopupMenu.js +9 -4
  216. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  217. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  218. package/cjs/internal/RenderLayer/RenderLayer.js +8 -3
  219. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  220. package/cjs/internal/icons/16px/index.js +1 -1
  221. package/cjs/internal/icons/16px/index.js.map +1 -1
  222. package/cjs/lib/listenFocusOutside.js +1 -1
  223. package/cjs/lib/listenFocusOutside.js.map +1 -1
  224. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -6
  225. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  226. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  227. package/components/Button/Button/Button.js +5 -1
  228. package/components/Button/Button/Button.js.map +1 -1
  229. package/components/Button/Button.d.ts +3 -0
  230. package/components/Button/Button.styles/Button.styles.js +6 -6
  231. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  232. package/components/Button/Button.styles.d.ts +1 -1
  233. package/components/Center/Center/Center.js +10 -5
  234. package/components/Center/Center/Center.js.map +1 -1
  235. package/components/Center/Center.d.ts +3 -0
  236. package/components/Checkbox/Checkbox/Checkbox.js +4 -0
  237. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  238. package/components/Checkbox/Checkbox.d.ts +3 -0
  239. package/components/Checkbox/Checkbox.md +48 -0
  240. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +27 -12
  241. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  242. package/components/CurrencyInput/CurrencyInput.d.ts +4 -1
  243. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  244. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  245. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  246. package/components/DatePicker/DatePicker/DatePicker.js +6 -0
  247. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  248. package/components/DatePicker/DatePicker.d.ts +5 -0
  249. package/components/DatePicker/Picker/Picker.js +3 -1
  250. package/components/DatePicker/Picker/Picker.js.map +1 -1
  251. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  252. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  253. package/components/Dropdown/Dropdown.d.ts +3 -0
  254. package/components/FileUploader/FileUploader/FileUploader.js +9 -2
  255. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  256. package/components/FileUploader/FileUploader.d.ts +5 -0
  257. package/components/FxInput/FxInput/FxInput.js +6 -2
  258. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  259. package/components/FxInput/FxInput.d.ts +3 -0
  260. package/components/Gapped/Gapped/Gapped.js +12 -5
  261. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  262. package/components/Gapped/Gapped.d.ts +4 -0
  263. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -1
  264. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  265. package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  266. package/components/Group/Group/Group.js +4 -0
  267. package/components/Group/Group/Group.js.map +1 -1
  268. package/components/Group/Group.d.ts +3 -0
  269. package/components/Input/Input/Input.js +11 -6
  270. package/components/Input/Input/Input.js.map +1 -1
  271. package/components/Input/Input.d.ts +3 -0
  272. package/components/Link/Link/Link.js +11 -6
  273. package/components/Link/Link/Link.js.map +1 -1
  274. package/components/Link/Link.d.ts +4 -1
  275. package/components/Loader/Loader/Loader.js +10 -6
  276. package/components/Loader/Loader/Loader.js.map +1 -1
  277. package/components/Loader/Loader.d.ts +4 -0
  278. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  279. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  280. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  281. package/components/MenuItem/MenuItem/MenuItem.js +16 -10
  282. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  283. package/components/MenuItem/MenuItem.d.ts +5 -1
  284. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  285. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  286. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  287. package/components/Modal/Modal/Modal.js +7 -2
  288. package/components/Modal/Modal/Modal.js.map +1 -1
  289. package/components/Modal/Modal.d.ts +5 -0
  290. package/components/Modal/ModalClose/ModalClose.js +2 -1
  291. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  292. package/components/Modal/ModalFooter/ModalFooter.js +6 -2
  293. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  294. package/components/Modal/ModalFooter.d.ts +3 -0
  295. package/components/Modal/ModalHeader/ModalHeader.js +6 -2
  296. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  297. package/components/Modal/ModalHeader.d.ts +3 -0
  298. package/components/Paging/Paging/Paging.js +12 -5
  299. package/components/Paging/Paging/Paging.js.map +1 -1
  300. package/components/Paging/Paging.d.ts +8 -1
  301. package/components/PasswordInput/PasswordInput/PasswordInput.js +12 -6
  302. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  303. package/components/PasswordInput/PasswordInput.d.ts +5 -0
  304. package/components/Radio/Radio/Radio.js +10 -5
  305. package/components/Radio/Radio/Radio.js.map +1 -1
  306. package/components/Radio/Radio.d.ts +3 -0
  307. package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -11
  308. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  309. package/components/RadioGroup/RadioGroup.d.ts +9 -0
  310. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  311. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  312. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
  313. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  314. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  315. package/components/Select/Select/Select.js +4 -0
  316. package/components/Select/Select/Select.js.map +1 -1
  317. package/components/Select/Select.d.ts +3 -0
  318. package/components/SidePage/SidePage/SidePage.js +6 -2
  319. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  320. package/components/SidePage/SidePage.d.ts +4 -0
  321. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  322. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  323. package/components/SidePage/SidePageBody.d.ts +3 -0
  324. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  325. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  326. package/components/SidePage/SidePageContainer.d.ts +3 -0
  327. package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
  328. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  329. package/components/SidePage/SidePageFooter.d.ts +3 -0
  330. package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
  331. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  332. package/components/SidePage/SidePageHeader.d.ts +4 -0
  333. package/components/Spinner/Spinner/Spinner.js +8 -4
  334. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  335. package/components/Spinner/Spinner.d.ts +3 -0
  336. package/components/Sticky/Sticky/Sticky.js +4 -0
  337. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  338. package/components/Sticky/Sticky.d.ts +3 -0
  339. package/components/Switcher/Switcher/Switcher.js +4 -0
  340. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  341. package/components/Switcher/Switcher.d.ts +3 -0
  342. package/components/Tabs/Indicator/Indicator.js +2 -0
  343. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  344. package/components/Tabs/Tab/Tab.js +4 -0
  345. package/components/Tabs/Tab/Tab.js.map +1 -1
  346. package/components/Tabs/Tab.d.ts +3 -0
  347. package/components/Tabs/Tabs/Tabs.js +11 -6
  348. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  349. package/components/Tabs/Tabs.d.ts +4 -0
  350. package/components/Textarea/Textarea/Textarea.js +15 -9
  351. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  352. package/components/Textarea/Textarea.d.ts +4 -0
  353. package/components/Textarea/TextareaCounter/TextareaCounter.js +8 -3
  354. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  355. package/components/Toast/Toast/Toast.js +16 -10
  356. package/components/Toast/Toast/Toast.js.map +1 -1
  357. package/components/Toast/Toast.d.ts +6 -0
  358. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  359. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  360. package/components/Toast/ToastView/ToastView.js +4 -3
  361. package/components/Toast/ToastView/ToastView.js.map +1 -1
  362. package/components/Toggle/Toggle/Toggle.js +8 -4
  363. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  364. package/components/Toggle/Toggle.d.ts +3 -0
  365. package/components/Token/Token/Token.js +4 -0
  366. package/components/Token/Token/Token.js.map +1 -1
  367. package/components/Token/Token.d.ts +3 -0
  368. package/components/TokenInput/TokenInput/TokenInput.js +5 -0
  369. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  370. package/components/TokenInput/TokenInput.d.ts +4 -0
  371. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  372. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  373. package/components/Tooltip/Tooltip/Tooltip.js +7 -1
  374. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  375. package/components/Tooltip/Tooltip.d.ts +4 -0
  376. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +16 -12
  377. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  378. package/components/TooltipMenu/TooltipMenu.d.ts +3 -0
  379. package/internal/Calendar/Calendar/Calendar.js +7 -1
  380. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  381. package/internal/Calendar/Calendar.d.ts +6 -0
  382. package/internal/Calendar/MonthView/MonthView.js +4 -3
  383. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  384. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +4 -5
  385. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  386. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  387. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +12 -5
  388. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  389. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  390. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  391. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  392. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -0
  393. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  394. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  395. package/internal/DataTids/DATATIDS.md +12 -0
  396. package/internal/DataTids/DataTids/DataTids.js +69 -0
  397. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  398. package/internal/DataTids/DataTids/package.json +6 -0
  399. package/internal/DataTids/DataTids.d.ts +12 -0
  400. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  401. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  402. package/internal/DataTids/DataTids.styles/package.json +6 -0
  403. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  404. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  405. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  406. package/internal/DataTids/componentsDataTids/package.json +6 -0
  407. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  408. package/internal/DateSelect/DateSelect/DateSelect.js +6 -2
  409. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  410. package/internal/DateSelect/DateSelect.d.ts +4 -0
  411. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
  412. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  413. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  414. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
  415. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  416. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  417. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  418. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  419. package/internal/InputLikeText/InputLikeText.d.ts +4 -0
  420. package/internal/InternalMenu/InternalMenu/InternalMenu.js +4 -0
  421. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  422. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  423. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  424. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  425. package/internal/MaskedInput/MaskedInput/MaskedInput.js +4 -0
  426. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  427. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  428. package/internal/Menu/Menu/Menu.js +4 -0
  429. package/internal/Menu/Menu/Menu.js.map +1 -1
  430. package/internal/Menu/Menu.d.ts +3 -0
  431. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  432. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  433. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  434. package/internal/Popup/Popup/Popup.js +7 -2
  435. package/internal/Popup/Popup/Popup.js.map +1 -1
  436. package/internal/Popup/Popup.d.ts +5 -0
  437. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  438. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  439. package/internal/PopupMenu/PopupMenu/PopupMenu.js +7 -2
  440. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  441. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  442. package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -7
  443. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  444. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  445. package/internal/icons/16px/index/index.js +1 -1
  446. package/internal/icons/16px/index/index.js.map +1 -1
  447. package/lib/listenFocusOutside/listenFocusOutside.js +1 -1
  448. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  449. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","Dropdown","renderMain","caption","icon","props","items","Children","map","children","item","_refSelect","renderValue","element","_select","render","setRootNode","open","close","Component","__KONTUR_REACT_UI__","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonSize, ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport interface DropdownProps extends CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: ButtonSize;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <Select<React.ReactNode, React.ReactNode>\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
1
+ {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","DropdownDataTids","root","Dropdown","renderMain","caption","icon","props","items","Children","map","children","item","_refSelect","renderValue","element","_select","render","setRootNode","open","close","Component","__KONTUR_REACT_UI__","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonSize, ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport interface DropdownProps extends CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: ButtonSize;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
@@ -53,6 +53,9 @@ export interface DropdownProps extends CommonProps {
53
53
  onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;
54
54
  onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;
55
55
  }
56
+ export declare const DropdownDataTids: {
57
+ readonly root: "Dropdown__root";
58
+ };
56
59
  /**
57
60
  * Выпадающее меню.
58
61
  *
@@ -26,6 +26,12 @@ var stopPropagation = function stopPropagation(e) {
26
26
  return e.stopPropagation();
27
27
  };
28
28
 
29
+ export var FileUploaderDataTids = {
30
+ root: 'FileUploader__root',
31
+ content: 'FileUploader__content',
32
+ link: 'FileUploader__link'
33
+ };
34
+
29
35
  var defaultRenderFile = function defaultRenderFile(file, fileNode) {
30
36
  return fileNode;
31
37
  };
@@ -222,6 +228,7 @@ var _FileUploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
222
228
  var hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;
223
229
  var linkClassNames = cx(jsStyles.link(theme), (_cx4 = {}, _cx4[jsStyles.linkHovered(theme)] = !disabled && hovered, _cx4[jsStyles.linkDisabled(theme)] = disabled, _cx4));
224
230
  return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement("div", {
231
+ "data-tid": FileUploaderDataTids.root,
225
232
  className: jsStyles.root(theme),
226
233
  style: useMemoObject({
227
234
  width: width
@@ -240,10 +247,10 @@ var _FileUploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
240
247
  ref: labelRef,
241
248
  className: uploadButtonClassNames
242
249
  }, /*#__PURE__*/React.createElement("div", {
243
- "data-tid": 'FileUploader__content',
250
+ "data-tid": FileUploaderDataTids.content,
244
251
  className: jsStyles.content()
245
252
  }, /*#__PURE__*/React.createElement("span", {
246
- "data-tid": 'FileUploader__link',
253
+ "data-tid": FileUploaderDataTids.link,
247
254
  className: linkClassNames
248
255
  }, hasOneFileForSingle ? locale.choosedFile : locale.chooseFile), "\xA0", /*#__PURE__*/React.createElement("div", {
249
256
  className: jsStyles.afterLinkText()
@@ -1 +1 @@
1
- {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","jsStyles","stopPropagation","e","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","locale","inputRef","isAsync","isSingleMode","upload","tryValidateAndUpload","forEach","validationMessage","id","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","linkClassNames","link","linkHovered","linkDisabled","root","content","choosedFile","chooseFile","afterLinkText","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\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 { UploadIcon } from '../../internal/icons/16px';\nimport { 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 { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\n\nimport { jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ninterface _FileUploaderProps extends CommonProps, React.InputHTMLAttributes<HTMLInputElement> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\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 renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\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 [upload, validateBeforeUpload, isAsync],\n );\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\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) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\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) {\n windowRef.current = window.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 useImperativeHandle(ref, () => ({ focus, blur, reset }), [ref]);\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 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(jsStyles.uploadButton(theme), {\n [jsStyles.uploadButtonFocus(theme)]: focusedByTab,\n [jsStyles.disabled(theme)]: disabled,\n [jsStyles.hovered(theme)]: !disabled && hovered,\n [jsStyles.warning(theme)]: !!warning,\n [jsStyles.error(theme)]: !!error,\n [jsStyles.dragOver(theme)]: isDraggable && !disabled,\n });\n\n const uploadButtonWrapperClassNames = cx({\n [jsStyles.windowDragOver(theme)]: isWindowDraggable && !disabled,\n });\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), {\n [jsStyles.iconDisabled(theme)]: disabled,\n });\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const linkClassNames = cx(jsStyles.link(theme), {\n [jsStyles.linkHovered(theme)]: !disabled && hovered,\n [jsStyles.linkDisabled(theme)]: disabled,\n });\n\n return (\n <CommonWrapper {...props}>\n <div className={jsStyles.root(theme)} style={useMemoObject({ width })}>\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div data-tid={'FileUploader__content'} className={jsStyles.content()}>\n <span data-tid={'FileUploader__link'} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n &nbsp;\n <div className={jsStyles.afterLinkText()}>\n {hasOneFileForSingle ? (\n <div className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>\n <UploadIcon />\n </div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
1
+ {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","locale","inputRef","isAsync","isSingleMode","upload","tryValidateAndUpload","forEach","validationMessage","id","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","linkClassNames","linkHovered","linkDisabled","choosedFile","chooseFile","afterLinkText","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\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 { UploadIcon } from '../../internal/icons/16px';\nimport { 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 { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\n\nimport { jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ninterface _FileUploaderProps extends CommonProps, React.InputHTMLAttributes<HTMLInputElement> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\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 renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\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 [upload, validateBeforeUpload, isAsync],\n );\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\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) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\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) {\n windowRef.current = window.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 useImperativeHandle(ref, () => ({ focus, blur, reset }), [ref]);\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 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(jsStyles.uploadButton(theme), {\n [jsStyles.uploadButtonFocus(theme)]: focusedByTab,\n [jsStyles.disabled(theme)]: disabled,\n [jsStyles.hovered(theme)]: !disabled && hovered,\n [jsStyles.warning(theme)]: !!warning,\n [jsStyles.error(theme)]: !!error,\n [jsStyles.dragOver(theme)]: isDraggable && !disabled,\n });\n\n const uploadButtonWrapperClassNames = cx({\n [jsStyles.windowDragOver(theme)]: isWindowDraggable && !disabled,\n });\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), {\n [jsStyles.iconDisabled(theme)]: disabled,\n });\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const linkClassNames = cx(jsStyles.link(theme), {\n [jsStyles.linkHovered(theme)]: !disabled && hovered,\n [jsStyles.linkDisabled(theme)]: disabled,\n });\n\n return (\n <CommonWrapper {...props}>\n <div data-tid={FileUploaderDataTids.root} className={jsStyles.root(theme)} style={useMemoObject({ width })}>\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div data-tid={FileUploaderDataTids.content} className={jsStyles.content()}>\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n &nbsp;\n <div className={jsStyles.afterLinkText()}>\n {hasOneFileForSingle ? (\n <div className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>\n <UploadIcon />\n </div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
@@ -36,6 +36,11 @@ export interface FileUploaderRef {
36
36
  /** Сбрасывает выбранные файлы */
37
37
  reset: () => void;
38
38
  }
39
+ export declare const FileUploaderDataTids: {
40
+ readonly root: "FileUploader__root";
41
+ readonly content: "FileUploader__content";
42
+ readonly link: "FileUploader__link";
43
+ };
39
44
  export interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {
40
45
  }
41
46
  export declare const FileUploader: React.MemoExoticComponent<React.ForwardRefExoticComponent<FileUploaderProps & FileUploaderControlProviderProps & React.RefAttributes<FileUploaderRef>>>;
@@ -15,9 +15,12 @@ import { createPropsGetter } from "../../../lib/createPropsGetter";
15
15
  import { FunctionIcon, UndoIcon } from "../../../internal/icons/16px";
16
16
  import { CommonWrapper } from "../../../internal/CommonWrapper";
17
17
  import { rootNode } from "../../../lib/rootNode";
18
- export
18
+ export var FxInputDataTids = {
19
+ root: 'FxInput__root'
20
+ };
19
21
  /** Принимает все свойства `Input`'a */
20
- var FxInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
22
+
23
+ export var FxInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
21
24
  _inheritsLoose(FxInput, _React$Component);
22
25
 
23
26
  function FxInput() {
@@ -56,6 +59,7 @@ var FxInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React
56
59
  }
57
60
 
58
61
  return /*#__PURE__*/React.createElement(Group, {
62
+ "data-tid": FxInputDataTids.root,
59
63
  width: _this.props.width
60
64
  }, button, _this.getProps().type === 'currency' ? /*#__PURE__*/React.createElement(CurrencyInput, _extends({}, inputProps, rest, {
61
65
  width: '100%',
@@ -1 +1 @@
1
- {"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Button","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","UndoIcon","CommonWrapper","rootNode","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","rest","inputProps","align","button","leftIcon","size","borderless","disabled","width","value","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","propTypes","bool","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '../Button';\nimport { Group } from '../Group';\nimport { Input, InputProps, InputType } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon, UndoIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface FxInputProps\n extends CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n }\n > {}\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\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 <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<FxInputProps>) => {\n const { type, onRestore, auto, refInput, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n\n if (auto) {\n inputProps.leftIcon = <FunctionIcon />;\n } else {\n button = (\n <Button\n size={this.props.size}\n narrow\n onClick={this.props.onRestore}\n borderless={this.props.borderless}\n disabled={this.props.disabled}\n >\n <UndoIcon />\n </Button>\n );\n }\n\n return (\n <Group width={this.props.width}>\n {button}\n {this.getProps().type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n width={'100%'}\n ref={this.refInput}\n value={this.props.value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n width={'100%'}\n ref={this.refInput}\n type={this.props.type as InputType}\n value={this.props.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"]}
1
+ {"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Button","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","UndoIcon","CommonWrapper","rootNode","FxInputDataTids","root","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","rest","inputProps","align","button","leftIcon","size","borderless","disabled","width","value","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","propTypes","bool","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '../Button';\nimport { Group } from '../Group';\nimport { Input, InputProps, InputType } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon, UndoIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface FxInputProps\n extends CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\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 <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<FxInputProps>) => {\n const { type, onRestore, auto, refInput, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n\n if (auto) {\n inputProps.leftIcon = <FunctionIcon />;\n } else {\n button = (\n <Button\n size={this.props.size}\n narrow\n onClick={this.props.onRestore}\n borderless={this.props.borderless}\n disabled={this.props.disabled}\n >\n <UndoIcon />\n </Button>\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={this.props.width}>\n {button}\n {this.getProps().type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n width={'100%'}\n ref={this.refInput}\n value={this.props.value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n width={'100%'}\n ref={this.refInput}\n type={this.props.type as InputType}\n value={this.props.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"]}
@@ -21,6 +21,9 @@ export interface FxInputProps extends CommonProps, Override<CurrencyInputProps,
21
21
  hideTrailingZeros?: boolean;
22
22
  }> {
23
23
  }
24
+ export declare const FxInputDataTids: {
25
+ readonly root: "FxInput__root";
26
+ };
24
27
  /** Принимает все свойства `Input`'a */
25
28
  export declare class FxInput extends React.Component<FxInputProps> {
26
29
  static __KONTUR_REACT_UI__: string;
@@ -8,11 +8,15 @@ import PropTypes from 'prop-types';
8
8
  import { isNonNullable } from "../../../lib/utils";
9
9
  import { CommonWrapper } from "../../../internal/CommonWrapper";
10
10
  import { rootNode } from "../../../lib/rootNode";
11
- export
11
+ export var GappedDataTids = {
12
+ vertical: 'Gapped__vertical',
13
+ horizontal: 'Gapped__horizontal'
14
+ };
12
15
  /**
13
- * Контейнер, расстояние между элементами в котором равно `gap`.
14
- */
15
- var Gapped = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
16
+ * Контейнер, расстояние между элементами в котором равно `gap`.
17
+ */
18
+
19
+ export var Gapped = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
16
20
  _inheritsLoose(Gapped, _React$Component);
17
21
 
18
22
  function Gapped() {
@@ -49,7 +53,9 @@ var Gapped = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
49
53
  key: index
50
54
  }, child);
51
55
  });
52
- return /*#__PURE__*/React.createElement("div", null, children);
56
+ return /*#__PURE__*/React.createElement("div", {
57
+ "data-tid": GappedDataTids.vertical
58
+ }, children);
53
59
  };
54
60
 
55
61
  _proto.renderHorizontal = function renderHorizontal() {
@@ -77,6 +83,7 @@ var Gapped = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
77
83
  whiteSpace: 'nowrap'
78
84
  };
79
85
  return /*#__PURE__*/React.createElement("div", {
86
+ "data-tid": GappedDataTids.horizontal,
80
87
  style: rootStyle
81
88
  }, /*#__PURE__*/React.createElement("div", {
82
89
  style: contStyle
@@ -1 +1 @@
1
- {"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","isNonNullable","CommonWrapper","rootNode","Gapped","render","setRootNode","props","vertical","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","propTypes","number","bool","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface GappedProps extends CommonProps {\n /**\n * Расстояние между элементами в пикселях\n * @default 8\n */\n gap?: number;\n /**\n * Вертикальное выравнивание\n * @default \"baseline\"\n */\n verticalAlign: 'top' | 'middle' | 'baseline' | 'bottom';\n /**\n * Расположение элементов по вертикали\n * @default false\n */\n vertical: boolean;\n /**\n * Перенос элементов на новую строку при горизонтальном расположении\n * @default false\n */\n wrap: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Контейнер, расстояние между элементами в котором равно `gap`.\n */\n@rootNode\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = '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 = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.props.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>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign, wrap } = this.props;\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 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"]}
1
+ {"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","isNonNullable","CommonWrapper","rootNode","GappedDataTids","vertical","horizontal","Gapped","render","setRootNode","props","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","propTypes","number","bool","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface GappedProps extends CommonProps {\n /**\n * Расстояние между элементами в пикселях\n * @default 8\n */\n gap?: number;\n /**\n * Вертикальное выравнивание\n * @default \"baseline\"\n */\n verticalAlign: 'top' | 'middle' | 'baseline' | 'bottom';\n /**\n * Расположение элементов по вертикали\n * @default false\n */\n vertical: boolean;\n /**\n * Перенос элементов на новую строку при горизонтальном расположении\n * @default false\n */\n wrap: boolean;\n children: React.ReactNode;\n}\n\nexport const GappedDataTids = {\n vertical: 'Gapped__vertical',\n horizontal: 'Gapped__horizontal',\n} as const;\n\n/**\n * Контейнер, расстояние между элементами в котором равно `gap`.\n */\n@rootNode\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = '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 = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.props.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, wrap } = this.props;\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"]}
@@ -24,6 +24,10 @@ export interface GappedProps extends CommonProps {
24
24
  wrap: boolean;
25
25
  children: React.ReactNode;
26
26
  }
27
+ export declare const GappedDataTids: {
28
+ readonly vertical: "Gapped__vertical";
29
+ readonly horizontal: "Gapped__horizontal";
30
+ };
27
31
  /**
28
32
  * Контейнер, расстояние между элементами в котором равно `gap`.
29
33
  */
@@ -10,6 +10,9 @@ import { isTestEnv } from "../../../lib/currentEnvironment";
10
10
  import { CommonWrapper } from "../../../internal/CommonWrapper";
11
11
  import { rootNode } from "../../../lib/rootNode";
12
12
  import { GlobalLoaderView } from "../GlobalLoaderView";
13
+ export var GlobalLoaderDataTids = {
14
+ root: 'GlobalLoader'
15
+ };
13
16
  var currentGlobalLoader;
14
17
  export var GlobalLoader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
15
18
  _inheritsLoose(GlobalLoader, _React$Component);
@@ -179,7 +182,7 @@ export var GlobalLoader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/func
179
182
  expectedResponseTime: this.state.expectedResponseTime,
180
183
  delayBeforeHide: this.props.delayBeforeHide,
181
184
  status: status,
182
- "data-tid": "GlobalLoader",
185
+ "data-tid": GlobalLoaderDataTids.root,
183
186
  disableAnimations: this.props.disableAnimations
184
187
  }));
185
188
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["GlobalLoader.tsx"],"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","GlobalLoaderView","currentGlobalLoader","GlobalLoader","props","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","cancel","state","successAnimationInProgressTimeout","setTimeout","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","setRootNode","disableAnimations","updateExpectedResponseTime","Component","defaultProps","start"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps extends Partial<DefaultProps> {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\ninterface DefaultProps {\n expectedResponseTime: number;\n delayBeforeShow: number;\n delayBeforeHide: number;\n rejected: boolean;\n active: boolean;\n disableAnimations: boolean;\n}\nexport type GlobalLoaderComponentProps = GlobalLoaderProps & DefaultProps;\n\nlet currentGlobalLoader: GlobalLoader;\n\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderComponentProps, GlobalLoaderState> {\n private successAnimationInProgressTimeout: Nullable<NodeJS.Timeout>;\n private setRootNode!: TSetRootNode;\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.props.delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.props.delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderComponentProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.props.expectedResponseTime,\n };\n this.successAnimationInProgressTimeout = null;\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n }\n componentDidMount() {\n if (this.props.active) {\n this.setActive();\n }\n if (this.props.rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n if (this.props.expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime: this.props.expectedResponseTime });\n }\n if (this.props.rejected !== prevProps.rejected) {\n this.setReject(!!this.props.rejected);\n }\n if (this.props.active !== prevProps.active) {\n if (this.props.active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n componentWillUnmount() {\n this.successAnimationInProgressTimeout && clearTimeout(this.successAnimationInProgressTimeout);\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={this.props.delayBeforeHide}\n status={status}\n data-tid=\"GlobalLoader\"\n disableAnimations={this.props.disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.successAnimationInProgressTimeout = setTimeout(() => {\n this.setActive();\n }, this.props.delayBeforeHide);\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.props.rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.props.active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
1
+ {"version":3,"sources":["GlobalLoader.tsx"],"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","props","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","cancel","state","successAnimationInProgressTimeout","setTimeout","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","setRootNode","disableAnimations","updateExpectedResponseTime","Component","defaultProps","start"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps extends Partial<DefaultProps> {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\ninterface DefaultProps {\n expectedResponseTime: number;\n delayBeforeShow: number;\n delayBeforeHide: number;\n rejected: boolean;\n active: boolean;\n disableAnimations: boolean;\n}\nexport type GlobalLoaderComponentProps = GlobalLoaderProps & DefaultProps;\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\nlet currentGlobalLoader: GlobalLoader;\n\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderComponentProps, GlobalLoaderState> {\n private successAnimationInProgressTimeout: Nullable<NodeJS.Timeout>;\n private setRootNode!: TSetRootNode;\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.props.delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.props.delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderComponentProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.props.expectedResponseTime,\n };\n this.successAnimationInProgressTimeout = null;\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n }\n componentDidMount() {\n if (this.props.active) {\n this.setActive();\n }\n if (this.props.rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n if (this.props.expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime: this.props.expectedResponseTime });\n }\n if (this.props.rejected !== prevProps.rejected) {\n this.setReject(!!this.props.rejected);\n }\n if (this.props.active !== prevProps.active) {\n if (this.props.active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n componentWillUnmount() {\n this.successAnimationInProgressTimeout && clearTimeout(this.successAnimationInProgressTimeout);\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={this.props.delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={this.props.disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.successAnimationInProgressTimeout = setTimeout(() => {\n this.setActive();\n }, this.props.delayBeforeHide);\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.props.rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.props.active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
@@ -62,6 +62,9 @@ interface DefaultProps {
62
62
  disableAnimations: boolean;
63
63
  }
64
64
  export declare type GlobalLoaderComponentProps = GlobalLoaderProps & DefaultProps;
65
+ export declare const GlobalLoaderDataTids: {
66
+ readonly root: "GlobalLoader";
67
+ };
65
68
  export declare class GlobalLoader extends React.Component<GlobalLoaderComponentProps, GlobalLoaderState> {
66
69
  private successAnimationInProgressTimeout;
67
70
  private setRootNode;
@@ -64,6 +64,9 @@ var passCornersIfButton = function passCornersIfButton(child, firstChild, lastCh
64
64
  return child;
65
65
  };
66
66
 
67
+ export var GroupDataTids = {
68
+ root: 'Group__root'
69
+ };
67
70
  export var Group = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
68
71
  _inheritsLoose(Group, _React$Component);
69
72
 
@@ -85,6 +88,7 @@ export var Group = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
85
88
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
86
89
  rootNodeRef: this.setRootNode
87
90
  }, this.props), /*#__PURE__*/React.createElement("span", {
91
+ "data-tid": GroupDataTids.root,
88
92
  className: styles.root(),
89
93
  style: style
90
94
  }, React.Children.map(childrenArray, function (child) {
@@ -1 +1 @@
1
- {"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isIE11","isEdge","isButton","CommonWrapper","cx","rootNode","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","child","firstChild","lastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","corners","cloneElement","Group","render","style","width","props","childrenArray","toArray","setRootNode","root","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","isFirstChild","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\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\nconst getButtonCorners = (\n child: React.ReactNode,\n firstChild: React.ReactNode,\n lastChild: React.ReactNode,\n): React.CSSProperties => {\n if (firstChild === lastChild) {\n return {};\n }\n\n if (child === firstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (child === lastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst passCornersIfButton = (child: React.ReactNode, firstChild: React.ReactNode, lastChild: React.ReactNode) => {\n if (isButton(child)) {\n const corners = getButtonCorners(child, firstChild, lastChild);\n\n return React.cloneElement(child, { corners });\n }\n\n return child;\n};\n\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\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 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 = passCornersIfButton(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"]}
1
+ {"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isIE11","isEdge","isButton","CommonWrapper","cx","rootNode","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","child","firstChild","lastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","corners","cloneElement","GroupDataTids","root","Group","render","style","width","props","childrenArray","toArray","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","isFirstChild","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\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\nconst getButtonCorners = (\n child: React.ReactNode,\n firstChild: React.ReactNode,\n lastChild: React.ReactNode,\n): React.CSSProperties => {\n if (firstChild === lastChild) {\n return {};\n }\n\n if (child === firstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (child === lastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst passCornersIfButton = (child: React.ReactNode, firstChild: React.ReactNode, lastChild: React.ReactNode) => {\n if (isButton(child)) {\n const corners = getButtonCorners(child, firstChild, lastChild);\n\n return React.cloneElement(child, { corners });\n }\n\n return child;\n};\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\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 = passCornersIfButton(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"]}
@@ -4,6 +4,9 @@ import { CommonProps } from '../../internal/CommonWrapper';
4
4
  export interface GroupProps extends CommonProps {
5
5
  width?: React.CSSProperties['width'];
6
6
  }
7
+ export declare const GroupDataTids: {
8
+ readonly root: "Group__root";
9
+ };
7
10
  export declare class Group extends React.Component<GroupProps> {
8
11
  static __KONTUR_REACT_UI__: string;
9
12
  private setRootNode;
@@ -18,12 +18,15 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
18
18
  import { cx } from "../../../lib/theming/Emotion";
19
19
  import { rootNode } from "../../../lib/rootNode";
20
20
  import { styles } from "../Input.styles";
21
- export
21
+ export var InputDataTids = {
22
+ root: 'Input__root'
23
+ };
22
24
  /**
23
- * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
24
- * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
25
- */
26
- var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
25
+ * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
26
+ * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
27
+ */
28
+
29
+ export var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
27
30
  _inheritsLoose(Input, _React$Component);
28
31
 
29
32
  function Input() {
@@ -145,7 +148,9 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
145
148
  }
146
149
 
147
150
  var input = mask ? _this.renderMaskedInput(inputProps, mask) : /*#__PURE__*/React.createElement('input', inputProps);
148
- return /*#__PURE__*/React.createElement("label", labelProps, /*#__PURE__*/React.createElement("span", {
151
+ return /*#__PURE__*/React.createElement("label", _extends({
152
+ "data-tid": InputDataTids.root
153
+ }, labelProps), /*#__PURE__*/React.createElement("span", {
149
154
  className: styles.sideContainer()
150
155
  }, _this.renderLeftIcon(), _this.renderPrefix()), /*#__PURE__*/React.createElement("span", {
151
156
  className: styles.wrapper()