@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":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","theme","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': 'Paging__root',\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid=\"Paging__dots\" key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__forwardLink\"\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__pageLink\"\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
1
+ {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","theme","classes","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLinkFocused","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid={PagingDataTids.dots} key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
@@ -49,13 +49,20 @@ export interface PagingState {
49
49
  keyboardControl: boolean;
50
50
  }
51
51
  export declare type ItemType = number | '.' | 'forward';
52
+ export declare const PagingDataTids: {
53
+ readonly root: "Paging__root";
54
+ readonly dots: "Paging__dots";
55
+ readonly forwardLink: "Paging__forwardLink";
56
+ readonly pageLinkWrapper: "Paging__pageLinkWrapper";
57
+ readonly pageLink: "Paging__pageLink";
58
+ };
52
59
  export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
53
60
  static __KONTUR_REACT_UI__: string;
54
61
  static defaultProps: {
55
62
  component: ({ onClick, className, children, ...rest }: import("./PagingDefaultComponent").PagingDefaultComponentProps) => JSX.Element;
56
63
  shouldBeVisibleWithLessThanTwoPages: boolean;
57
64
  useGlobalListener: boolean;
58
- 'data-tid': string;
65
+ 'data-tid': "Paging__root";
59
66
  };
60
67
  static propTypes: {};
61
68
  private setRootNode;
@@ -20,11 +20,16 @@ import { cx } from "../../../lib/theming/Emotion";
20
20
  import { rootNode } from "../../../lib/rootNode";
21
21
  import { styles } from "../PasswordInput.styles";
22
22
  import { PasswordInputIcon } from "../PasswordInputIcon";
23
- export
23
+ export var PasswordInputDataTids = {
24
+ root: 'PasswordInput',
25
+ capsLockDetector: 'PasswordInputCapsLockDetector',
26
+ eyeIcon: 'PasswordInputEyeIcon'
27
+ };
24
28
  /**
25
- * Компонент для ввода пароля
26
- */
27
- var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {
29
+ * Компонент для ввода пароля
30
+ */
31
+
32
+ export var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {
28
33
  _inheritsLoose(PasswordInput, _React$PureComponent);
29
34
 
30
35
  function PasswordInput() {
@@ -118,9 +123,9 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
118
123
  className: styles.iconWrapper()
119
124
  }, capsLockEnabled && /*#__PURE__*/React.createElement("span", {
120
125
  className: styles.capsLockDetector(),
121
- "data-tid": "PasswordInputCapsLockDetector"
126
+ "data-tid": PasswordInputDataTids.capsLockDetector
122
127
  }), /*#__PURE__*/React.createElement("span", {
123
- "data-tid": "PasswordInputEyeIcon",
128
+ "data-tid": PasswordInputDataTids.eyeIcon,
124
129
  className: cx(styles.toggleVisibility(_this.theme), _this.getEyeWrapperClassname()),
125
130
  onClick: _this.handleToggleVisibility
126
131
  }, !_this.props.disabled && /*#__PURE__*/React.createElement(PasswordInputIcon, {
@@ -152,6 +157,7 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
152
157
  onFocusOutside: _this.hideSymbols,
153
158
  onClickOutside: _this.hideSymbols
154
159
  }, /*#__PURE__*/React.createElement("div", {
160
+ "data-tid": PasswordInputDataTids.root,
155
161
  className: styles.root()
156
162
  }, /*#__PURE__*/React.createElement(Input, _extends({
157
163
  ref: _this.refInput,
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","capsLockDetector","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","root","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\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 this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && <span className={styles.capsLockDetector()} data-tid=\"PasswordInputCapsLockDetector\" />}\n <span\n data-tid=\"PasswordInputEyeIcon\"\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\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 this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span\n data-tid={PasswordInputDataTids.eyeIcon}\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
@@ -9,6 +9,11 @@ export interface PasswordInputState {
9
9
  visible: boolean;
10
10
  capsLockEnabled?: boolean | null;
11
11
  }
12
+ export declare const PasswordInputDataTids: {
13
+ readonly root: "PasswordInput";
14
+ readonly capsLockDetector: "PasswordInputCapsLockDetector";
15
+ readonly eyeIcon: "PasswordInputEyeIcon";
16
+ };
12
17
  /**
13
18
  * Компонент для ввода пароля
14
19
  */
@@ -15,11 +15,14 @@ import { fixFirefoxModifiedClickOnLabel } from "../../../lib/events/fixFirefoxMo
15
15
  import { isEdge, isIE11 } from "../../../lib/client";
16
16
  import { RadioGroupContext } from "../../RadioGroup/RadioGroupContext";
17
17
  import { styles, globalClasses } from "../Radio.styles";
18
- export
18
+ export var RadioDataTids = {
19
+ root: 'Radio__root'
20
+ };
19
21
  /**
20
- * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
21
- */
22
- var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
22
+ * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
23
+ */
24
+
25
+ export var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
23
26
  _inheritsLoose(Radio, _React$Component);
24
27
 
25
28
  function Radio() {
@@ -92,7 +95,9 @@ var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
92
95
  radioProps.className = cx(radioProps.className, (_cx4 = {}, _cx4[styles.checked(_this.theme)] = checked, _cx4[styles.checkedDisabled(_this.theme)] = checked && disabled, _cx4));
93
96
  }
94
97
 
95
- return /*#__PURE__*/React.createElement("label", labelProps, /*#__PURE__*/React.createElement("input", inputProps), /*#__PURE__*/React.createElement("span", radioProps, /*#__PURE__*/React.createElement("span", {
98
+ return /*#__PURE__*/React.createElement("label", _extends({
99
+ "data-tid": RadioDataTids.root
100
+ }, labelProps), /*#__PURE__*/React.createElement("input", inputProps), /*#__PURE__*/React.createElement("span", radioProps, /*#__PURE__*/React.createElement("span", {
96
101
  className: styles.placeholder()
97
102
  })), _this.props.children && _this.renderCaption());
98
103
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.tsx"],"names":["React","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","styles","globalClasses","Radio","state","focusedByKeyboard","context","inputEl","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","circle","theme","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","root","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","defaultProps","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { RadioGroupContext, RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Состояние фокуса.\n */\n focused?: boolean;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: T) => void;\n /**\n * HTML-событие `onmouseenter`\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `onmouseover`\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-атрибут `value`.\n */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n\n private inputEl = React.createRef<HTMLInputElement>();\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
1
+ {"version":3,"sources":["Radio.tsx"],"names":["React","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","styles","globalClasses","RadioDataTids","root","Radio","state","focusedByKeyboard","context","inputEl","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","circle","theme","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","defaultProps","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { RadioGroupContext, RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Состояние фокуса.\n */\n focused?: boolean;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: T) => void;\n /**\n * HTML-событие `onmouseenter`\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `onmouseover`\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-атрибут `value`.\n */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\n/**\n * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n\n private inputEl = React.createRef<HTMLInputElement>();\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
@@ -40,6 +40,9 @@ export interface RadioProps<T> extends CommonProps, Override<React.InputHTMLAttr
40
40
  export interface RadioState {
41
41
  focusedByKeyboard: boolean;
42
42
  }
43
+ export declare const RadioDataTids: {
44
+ readonly root: "Radio__root";
45
+ };
43
46
  /**
44
47
  * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
45
48
  */
@@ -57,17 +57,20 @@ import { rootNode } from "../../../lib/rootNode";
57
57
  import { styles } from "../RadioGroup.styles";
58
58
  import { Prevent } from "../Prevent";
59
59
  import { RadioGroupContext } from "../RadioGroupContext";
60
- export
60
+ export var RadioGroupDataTids = {
61
+ root: 'RadioGroup__root'
62
+ };
61
63
  /**
62
- *
63
- * `children` может содержать любую разметку с компонентами Radio,
64
- * если не передан параметр `items`.
65
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
66
- * как и параметр `value` самой радиогруппы.
67
- *
68
- * Значения активного элемента сравниваются по строгому равенству `===`
69
- */
70
- var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
64
+ *
65
+ * `children` может содержать любую разметку с компонентами Radio,
66
+ * если не передан параметр `items`.
67
+ * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
68
+ * как и параметр `value` самой радиогруппы.
69
+ *
70
+ * Значения активного элемента сравниваются по строгому равенству `===`
71
+ */
72
+
73
+ export var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
71
74
  _inheritsLoose(RadioGroup, _React$Component);
72
75
 
73
76
  function RadioGroup(props) {
@@ -116,7 +119,7 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
116
119
  var _cx;
117
120
 
118
121
  var itemProps = {
119
- key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,
122
+ key: _this.getKeyByItem(itemValue),
120
123
  className: cx((_cx = {}, _cx[styles.item(_this.theme)] = true, _cx[styles.itemFirst()] = index === 0, _cx[styles.itemInline()] = !!_this.props.inline, _cx))
121
124
  };
122
125
  return /*#__PURE__*/React.createElement("span", itemProps, /*#__PURE__*/React.createElement(Radio, {
@@ -124,6 +127,14 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
124
127
  }, _this.getProps().renderItem(itemValue, data)));
125
128
  };
126
129
 
130
+ _this.getKeyByItem = function (itemValue) {
131
+ if (_this.props.toKey) {
132
+ return _this.props.toKey(itemValue);
133
+ }
134
+
135
+ return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;
136
+ };
137
+
127
138
  _this.ref = function (element) {
128
139
  _this.node = element;
129
140
  };
@@ -165,6 +176,7 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
165
176
  }, this.props), /*#__PURE__*/React.createElement(FocusTrap, {
166
177
  onBlur: onBlur
167
178
  }, /*#__PURE__*/React.createElement("span", _extends({
179
+ "data-tid": RadioGroupDataTids.root,
168
180
  ref: this.ref,
169
181
  style: style,
170
182
  className: styles.root()
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","theme","itemFirst","itemInline","inline","renderItem","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
1
+ {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroupDataTids","root","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","getKeyByItem","className","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n\n /**\n * Метод получения уникального ключа по элементу\n * @param item\n */\n toKey?: (item: T) => string | number;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span data-tid={RadioGroupDataTids.root} ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: this.getKeyByItem(itemValue),\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
@@ -28,6 +28,11 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
28
28
  * случайное имя
29
29
  */
30
30
  name?: string;
31
+ /**
32
+ * Метод получения уникального ключа по элементу
33
+ * @param item
34
+ */
35
+ toKey?: (item: T) => string | number;
31
36
  /**
32
37
  * Дизейблит все радиокнопки
33
38
  */
@@ -64,6 +69,9 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
64
69
  export interface RadioGroupState<T> {
65
70
  activeItem?: T;
66
71
  }
72
+ export declare const RadioGroupDataTids: {
73
+ readonly root: "RadioGroup__root";
74
+ };
67
75
  /**
68
76
  *
69
77
  * `children` может содержать любую разметку с компонентами Radio,
@@ -111,6 +119,7 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
111
119
  private handleSelect;
112
120
  private renderChildren;
113
121
  private renderRadio;
122
+ private getKeyByItem;
114
123
  private ref;
115
124
  }
116
125
  declare function renderItem<T>(_value: T, data: React.ReactNode): React.ReactNode;
@@ -48,7 +48,7 @@ export function useResponsiveLayout() {
48
48
  return function () {
49
49
  var _mobileListener$curre;
50
50
 
51
- (_mobileListener$curre = mobileListener.current) == null ? void 0 : _mobileListener$curre.remove;
51
+ (_mobileListener$curre = mobileListener.current) == null ? void 0 : _mobileListener$curre.remove();
52
52
  };
53
53
  }, []);
54
54
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["useResponsiveLayout.ts"],"names":["useCallback","useContext","useEffect","useRef","useState","ThemeContext","addResponsiveLayoutListener","checkMatches","useResponsiveLayout","theme","getLayoutFromGlobal","isMobile","mobileMediaQuery","state","setState","mobileListener","prepareMediaQueries","current","checkLayoutsMediaQueries","globalLayout","e","media","prevState","matches","remove"],"mappings":"0DAAA,SAAgBA,WAAhB,EAA6BC,UAA7B,EAAyCC,SAAzC,EAAoDC,MAApD,EAA4DC,QAA5D,QAA4E,OAA5E;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;;AAGA,SAASC,2BAAT,EAAsCC,YAAtC,QAA0D,0BAA1D;;AAEA,OAAO,SAASC,mBAAT,GAA+B;AACpC,MAAMC,KAAK,GAAGR,UAAU,CAACI,YAAD,CAAxB;;AAEA,MAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,GAA6B;AACvD,QAAMC,QAAQ,GAAGJ,YAAY,CAACE,KAAK,CAACG,gBAAP,CAA7B;;AAEA,WAAO,EAAED,QAAQ,EAAE,CAAC,CAACA,QAAd,EAAP;AACD,GAJD;;AAMA,kBAA0BP,QAAQ,CAACM,mBAAmB,EAApB,CAAlC,CAAOG,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,cAAqE,GAAGZ,MAAM,CAAC,IAAD,CAApF;;AAEA,MAAMa,mBAAmB,GAAGhB,WAAW,CAAC,YAAM;AAC5C,QAAI,CAACS,KAAL,EAAY;AACV;AACD;;AAEDM,IAAAA,cAAc,CAACE,OAAf,GAAyBX,2BAA2B,CAACG,KAAK,CAACG,gBAAP,EAAyBM,wBAAzB,CAApD;;AAEA;AACA,QAAMC,YAAY,GAAGT,mBAAmB,EAAxC;;AAEA,QAAIS,YAAY,CAACR,QAAb,KAA0BE,KAAK,CAACF,QAApC,EAA8C;AAC5CG,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAbsC,EAapC,CAACV,KAAD,CAboC,CAAvC;;AAeA,MAAMS,wBAAwB,GAAGlB,WAAW;AAC1C,YAACoB,CAAD,EAA4B;AAC1B,QAAI,CAACX,KAAL,EAAY;AACV;AACD;;AAED,QAAIW,CAAC,CAACC,KAAF,KAAYZ,KAAK,CAACG,gBAAtB,EAAwC;AACtCE,MAAAA,QAAQ,CAAC,UAACQ,SAAD;AACJA,QAAAA,SADI;AAEPX,UAAAA,QAAQ,EAAES,CAAC,CAACG,OAFL,KAAD,CAAR;;AAID;AACF,GAZyC;AAa1C,GAACd,KAAD,CAb0C,CAA5C;;;AAgBAP,EAAAA,SAAS,CAAC,YAAM;AACdc,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACX,+BAAAD,cAAc,CAACE,OAAf,2CAAwBO,MAAxB;AACD,KAFD;AAGD,GANQ,EAMN,EANM,CAAT;;AAQA,SAAOX,KAAP;AACD","sourcesContent":["import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout() {\n const theme = useContext(ThemeContext);\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags => {\n const isMobile = checkMatches(theme.mobileMediaQuery);\n\n return { isMobile: !!isMobile };\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const mobileListener: React.MutableRefObject<{ remove: () => void } | null> = useRef(null);\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n mobileListener.current = addResponsiveLayoutListener(theme.mobileMediaQuery, checkLayoutsMediaQueries);\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n\n if (globalLayout.isMobile !== state.isMobile) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n if (e.media === theme.mobileMediaQuery) {\n setState((prevState: ResponsiveLayoutFlags) => ({\n ...prevState,\n isMobile: e.matches,\n }));\n }\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n mobileListener.current?.remove;\n };\n }, []);\n\n return state;\n}\n"]}
1
+ {"version":3,"sources":["useResponsiveLayout.ts"],"names":["useCallback","useContext","useEffect","useRef","useState","ThemeContext","addResponsiveLayoutListener","checkMatches","useResponsiveLayout","theme","getLayoutFromGlobal","isMobile","mobileMediaQuery","state","setState","mobileListener","prepareMediaQueries","current","checkLayoutsMediaQueries","globalLayout","e","media","prevState","matches","remove"],"mappings":"0DAAA,SAAgBA,WAAhB,EAA6BC,UAA7B,EAAyCC,SAAzC,EAAoDC,MAApD,EAA4DC,QAA5D,QAA4E,OAA5E;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;;AAGA,SAASC,2BAAT,EAAsCC,YAAtC,QAA0D,0BAA1D;;AAEA,OAAO,SAASC,mBAAT,GAA+B;AACpC,MAAMC,KAAK,GAAGR,UAAU,CAACI,YAAD,CAAxB;;AAEA,MAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,GAA6B;AACvD,QAAMC,QAAQ,GAAGJ,YAAY,CAACE,KAAK,CAACG,gBAAP,CAA7B;;AAEA,WAAO,EAAED,QAAQ,EAAE,CAAC,CAACA,QAAd,EAAP;AACD,GAJD;;AAMA,kBAA0BP,QAAQ,CAACM,mBAAmB,EAApB,CAAlC,CAAOG,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,cAAqE,GAAGZ,MAAM,CAAC,IAAD,CAApF;;AAEA,MAAMa,mBAAmB,GAAGhB,WAAW,CAAC,YAAM;AAC5C,QAAI,CAACS,KAAL,EAAY;AACV;AACD;;AAEDM,IAAAA,cAAc,CAACE,OAAf,GAAyBX,2BAA2B,CAACG,KAAK,CAACG,gBAAP,EAAyBM,wBAAzB,CAApD;;AAEA;AACA,QAAMC,YAAY,GAAGT,mBAAmB,EAAxC;;AAEA,QAAIS,YAAY,CAACR,QAAb,KAA0BE,KAAK,CAACF,QAApC,EAA8C;AAC5CG,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAbsC,EAapC,CAACV,KAAD,CAboC,CAAvC;;AAeA,MAAMS,wBAAwB,GAAGlB,WAAW;AAC1C,YAACoB,CAAD,EAA4B;AAC1B,QAAI,CAACX,KAAL,EAAY;AACV;AACD;;AAED,QAAIW,CAAC,CAACC,KAAF,KAAYZ,KAAK,CAACG,gBAAtB,EAAwC;AACtCE,MAAAA,QAAQ,CAAC,UAACQ,SAAD;AACJA,QAAAA,SADI;AAEPX,UAAAA,QAAQ,EAAES,CAAC,CAACG,OAFL,KAAD,CAAR;;AAID;AACF,GAZyC;AAa1C,GAACd,KAAD,CAb0C,CAA5C;;;AAgBAP,EAAAA,SAAS,CAAC,YAAM;AACdc,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACX,+BAAAD,cAAc,CAACE,OAAf,2CAAwBO,MAAxB;AACD,KAFD;AAGD,GANQ,EAMN,EANM,CAAT;;AAQA,SAAOX,KAAP;AACD","sourcesContent":["import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout() {\n const theme = useContext(ThemeContext);\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags => {\n const isMobile = checkMatches(theme.mobileMediaQuery);\n\n return { isMobile: !!isMobile };\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const mobileListener: React.MutableRefObject<{ remove: () => void } | null> = useRef(null);\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n mobileListener.current = addResponsiveLayoutListener(theme.mobileMediaQuery, checkLayoutsMediaQueries);\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n\n if (globalLayout.isMobile !== state.isMobile) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n if (e.media === theme.mobileMediaQuery) {\n setState((prevState: ResponsiveLayoutFlags) => ({\n ...prevState,\n isMobile: e.matches,\n }));\n }\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n mobileListener.current?.remove();\n };\n }, []);\n\n return state;\n}\n"]}