@skbkontur/react-ui 4.21.0-displayname.0 → 4.21.0-displayname.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  2. package/cjs/components/Autocomplete/Autocomplete.js +2 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Button/Button.d.ts +1 -1
  5. package/cjs/components/Button/Button.js +1 -1
  6. package/cjs/components/Button/Button.js.map +1 -1
  7. package/cjs/components/Calendar/Calendar.d.ts +1 -0
  8. package/cjs/components/Calendar/Calendar.js +2 -1
  9. package/cjs/components/Calendar/Calendar.js.map +1 -1
  10. package/cjs/components/Center/Center.d.ts +1 -0
  11. package/cjs/components/Center/Center.js +2 -1
  12. package/cjs/components/Center/Center.js.map +1 -1
  13. package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  14. package/cjs/components/Checkbox/Checkbox.js +2 -1
  15. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  16. package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
  17. package/cjs/components/ComboBox/ComboBox.js +2 -1
  18. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  23. package/cjs/components/DateInput/DateInput.js +2 -1
  24. package/cjs/components/DateInput/DateInput.js.map +1 -1
  25. package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
  26. package/cjs/components/DatePicker/DatePicker.js +2 -1
  27. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  28. package/cjs/components/DatePicker/Picker.d.ts +1 -0
  29. package/cjs/components/DatePicker/Picker.js +2 -1
  30. package/cjs/components/DatePicker/Picker.js.map +1 -1
  31. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  32. package/cjs/components/Dropdown/Dropdown.js +2 -1
  33. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  34. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  35. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  36. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  37. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  38. package/cjs/components/FxInput/FxInput.js +2 -1
  39. package/cjs/components/FxInput/FxInput.js.map +1 -1
  40. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  41. package/cjs/components/Gapped/Gapped.js +2 -1
  42. package/cjs/components/Gapped/Gapped.js.map +1 -1
  43. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  44. package/cjs/components/GlobalLoader/GlobalLoader.js +2 -1
  45. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  46. package/cjs/components/Group/Group.d.ts +1 -0
  47. package/cjs/components/Group/Group.js +2 -1
  48. package/cjs/components/Group/Group.js.map +1 -1
  49. package/cjs/components/Hint/Hint.d.ts +1 -0
  50. package/cjs/components/Hint/Hint.js +2 -1
  51. package/cjs/components/Hint/Hint.js.map +1 -1
  52. package/cjs/components/Kebab/Kebab.d.ts +1 -0
  53. package/cjs/components/Kebab/Kebab.js +2 -1
  54. package/cjs/components/Kebab/Kebab.js.map +1 -1
  55. package/cjs/components/Link/Link.d.ts +1 -0
  56. package/cjs/components/Link/Link.js +2 -1
  57. package/cjs/components/Link/Link.js.map +1 -1
  58. package/cjs/components/Loader/Loader.d.ts +1 -0
  59. package/cjs/components/Loader/Loader.js +2 -1
  60. package/cjs/components/Loader/Loader.js.map +1 -1
  61. package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
  62. package/cjs/components/MenuItem/MenuItem.js +2 -1
  63. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  64. package/cjs/components/Modal/Modal.d.ts +1 -0
  65. package/cjs/components/Modal/Modal.js +2 -1
  66. package/cjs/components/Modal/Modal.js.map +1 -1
  67. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  68. package/cjs/components/Modal/ModalBody.js +2 -1
  69. package/cjs/components/Modal/ModalBody.js.map +1 -1
  70. package/cjs/components/Paging/Paging.d.ts +1 -0
  71. package/cjs/components/Paging/Paging.js +2 -1
  72. package/cjs/components/Paging/Paging.js.map +1 -1
  73. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
  74. package/cjs/components/PasswordInput/PasswordInput.js +2 -1
  75. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  76. package/cjs/components/Radio/Radio.d.ts +1 -0
  77. package/cjs/components/Radio/Radio.js +2 -1
  78. package/cjs/components/Radio/Radio.js.map +1 -1
  79. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  80. package/cjs/components/RadioGroup/RadioGroup.js +2 -1
  81. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  82. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +1 -0
  83. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +2 -1
  84. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  85. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  86. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  87. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  88. package/cjs/components/Select/Item.d.ts +1 -0
  89. package/cjs/components/Select/Item.js +2 -1
  90. package/cjs/components/Select/Item.js.map +1 -1
  91. package/cjs/components/Select/Select.d.ts +1 -0
  92. package/cjs/components/Select/Select.js +2 -1
  93. package/cjs/components/Select/Select.js.map +1 -1
  94. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  95. package/cjs/components/SidePage/SidePage.js +2 -1
  96. package/cjs/components/SidePage/SidePage.js.map +1 -1
  97. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  98. package/cjs/components/SidePage/SidePageBody.js +2 -1
  99. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  100. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  101. package/cjs/components/SidePage/SidePageContainer.js +2 -1
  102. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  103. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
  104. package/cjs/components/SidePage/SidePageFooter.js +2 -1
  105. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  106. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  107. package/cjs/components/SidePage/SidePageHeader.js +2 -1
  108. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  109. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  110. package/cjs/components/Spinner/Spinner.js +2 -1
  111. package/cjs/components/Spinner/Spinner.js.map +1 -1
  112. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  113. package/cjs/components/Sticky/Sticky.js +2 -1
  114. package/cjs/components/Sticky/Sticky.js.map +1 -1
  115. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  116. package/cjs/components/Switcher/Switcher.js +2 -1
  117. package/cjs/components/Switcher/Switcher.js.map +1 -1
  118. package/cjs/components/Tabs/Tab.d.ts +1 -0
  119. package/cjs/components/Tabs/Tab.js +2 -1
  120. package/cjs/components/Tabs/Tab.js.map +1 -1
  121. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  122. package/cjs/components/Tabs/Tabs.js +2 -1
  123. package/cjs/components/Tabs/Tabs.js.map +1 -1
  124. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  125. package/cjs/components/Textarea/Textarea.js +2 -1
  126. package/cjs/components/Textarea/Textarea.js.map +1 -1
  127. package/cjs/components/Toast/Toast.d.ts +1 -0
  128. package/cjs/components/Toast/Toast.js +2 -1
  129. package/cjs/components/Toast/Toast.js.map +1 -1
  130. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  131. package/cjs/components/Toggle/Toggle.js +2 -1
  132. package/cjs/components/Toggle/Toggle.js.map +1 -1
  133. package/cjs/components/Token/Token.d.ts +1 -0
  134. package/cjs/components/Token/Token.js +2 -1
  135. package/cjs/components/Token/Token.js.map +1 -1
  136. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  137. package/cjs/components/TokenInput/TokenInput.js +2 -1
  138. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  139. package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
  140. package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
  141. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  142. package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
  143. package/cjs/components/Tooltip/Tooltip.js +2 -1
  144. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  145. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  146. package/cjs/components/TooltipMenu/TooltipMenu.js +2 -1
  147. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  148. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  149. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
  150. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  151. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  152. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  153. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  154. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  155. package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
  156. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  157. package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
  158. package/cjs/internal/DateSelect/DateSelect.js +2 -1
  159. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  160. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  161. package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
  162. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  163. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  164. package/cjs/internal/FocusTrap/FocusTrap.js +2 -1
  165. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  166. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  167. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  168. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  169. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  170. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  171. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  172. package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
  173. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  174. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  175. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
  176. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  177. package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
  178. package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
  179. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  180. package/cjs/internal/Menu/Menu.d.ts +1 -0
  181. package/cjs/internal/Menu/Menu.js +2 -1
  182. package/cjs/internal/Menu/Menu.js.map +1 -1
  183. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  184. package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
  185. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  186. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  187. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
  188. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  189. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  190. package/cjs/internal/NativeDateInput/NativeDateInput.js +2 -1
  191. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  192. package/cjs/internal/Popup/Popup.d.ts +1 -0
  193. package/cjs/internal/Popup/Popup.js +2 -1
  194. package/cjs/internal/Popup/Popup.js.map +1 -1
  195. package/cjs/internal/Popup/PopupPin.d.ts +1 -0
  196. package/cjs/internal/Popup/PopupPin.js +2 -1
  197. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  198. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  199. package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
  200. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  201. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
  202. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  203. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  204. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +1 -0
  205. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
  206. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  207. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  208. package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
  209. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  210. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  211. package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
  212. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  213. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
  214. package/cjs/internal/ZIndex/ZIndex.js +2 -1
  215. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  216. package/cjs/internal/icons/20px/Icon.d.ts +1 -0
  217. package/cjs/internal/icons/20px/Icon.js +2 -1
  218. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  219. package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
  220. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  221. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  222. package/components/Button/Button/Button.js +1 -1
  223. package/components/Button/Button/Button.js.map +1 -1
  224. package/components/Button/Button.d.ts +1 -1
  225. package/components/Calendar/Calendar/Calendar.js +1 -1
  226. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  227. package/components/Calendar/Calendar.d.ts +1 -0
  228. package/components/Center/Center/Center.js +1 -1
  229. package/components/Center/Center/Center.js.map +1 -1
  230. package/components/Center/Center.d.ts +1 -0
  231. package/components/Checkbox/Checkbox/Checkbox.js +1 -1
  232. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  233. package/components/Checkbox/Checkbox.d.ts +1 -0
  234. package/components/ComboBox/ComboBox/ComboBox.js +1 -1
  235. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  236. package/components/ComboBox/ComboBox.d.ts +1 -0
  237. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
  238. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  239. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  240. package/components/DateInput/DateInput/DateInput.js +1 -1
  241. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  242. package/components/DateInput/DateInput.d.ts +1 -0
  243. package/components/DatePicker/DatePicker/DatePicker.js +1 -1
  244. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  245. package/components/DatePicker/DatePicker.d.ts +1 -0
  246. package/components/DatePicker/Picker/Picker.js +1 -1
  247. package/components/DatePicker/Picker/Picker.js.map +1 -1
  248. package/components/DatePicker/Picker.d.ts +1 -0
  249. package/components/Dropdown/Dropdown/Dropdown.js +1 -1
  250. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  251. package/components/Dropdown/Dropdown.d.ts +1 -0
  252. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  253. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  254. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  255. package/components/FxInput/FxInput/FxInput.js +1 -1
  256. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  257. package/components/FxInput/FxInput.d.ts +1 -0
  258. package/components/Gapped/Gapped/Gapped.js +1 -1
  259. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  260. package/components/Gapped/Gapped.d.ts +1 -0
  261. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
  262. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  263. package/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  264. package/components/Group/Group/Group.js +1 -1
  265. package/components/Group/Group/Group.js.map +1 -1
  266. package/components/Group/Group.d.ts +1 -0
  267. package/components/Hint/Hint/Hint.js +1 -1
  268. package/components/Hint/Hint/Hint.js.map +1 -1
  269. package/components/Hint/Hint.d.ts +1 -0
  270. package/components/Kebab/Kebab/Kebab.js +1 -1
  271. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  272. package/components/Kebab/Kebab.d.ts +1 -0
  273. package/components/Link/Link/Link.js +1 -1
  274. package/components/Link/Link/Link.js.map +1 -1
  275. package/components/Link/Link.d.ts +1 -0
  276. package/components/Loader/Loader/Loader.js +1 -1
  277. package/components/Loader/Loader/Loader.js.map +1 -1
  278. package/components/Loader/Loader.d.ts +1 -0
  279. package/components/MenuItem/MenuItem/MenuItem.js +1 -1
  280. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  281. package/components/MenuItem/MenuItem.d.ts +1 -0
  282. package/components/Modal/Modal/Modal.js +1 -0
  283. package/components/Modal/Modal/Modal.js.map +1 -1
  284. package/components/Modal/Modal.d.ts +1 -0
  285. package/components/Modal/ModalBody/ModalBody.js +1 -1
  286. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  287. package/components/Modal/ModalBody.d.ts +1 -0
  288. package/components/Paging/Paging/Paging.js +1 -1
  289. package/components/Paging/Paging/Paging.js.map +1 -1
  290. package/components/Paging/Paging.d.ts +1 -0
  291. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
  292. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  293. package/components/PasswordInput/PasswordInput.d.ts +1 -0
  294. package/components/Radio/Radio/Radio.js +1 -1
  295. package/components/Radio/Radio/Radio.js.map +1 -1
  296. package/components/Radio/Radio.d.ts +1 -0
  297. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
  298. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  299. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  300. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +2 -1
  301. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  302. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +1 -0
  303. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  304. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  305. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  306. package/components/Select/Item/Item.js +2 -1
  307. package/components/Select/Item/Item.js.map +1 -1
  308. package/components/Select/Item.d.ts +1 -0
  309. package/components/Select/Select/Select.js +1 -1
  310. package/components/Select/Select/Select.js.map +1 -1
  311. package/components/Select/Select.d.ts +1 -0
  312. package/components/SidePage/SidePage/SidePage.js +1 -0
  313. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  314. package/components/SidePage/SidePage.d.ts +1 -0
  315. package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
  316. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  317. package/components/SidePage/SidePageBody.d.ts +1 -0
  318. package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
  319. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  320. package/components/SidePage/SidePageContainer.d.ts +1 -0
  321. package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
  322. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  323. package/components/SidePage/SidePageFooter.d.ts +1 -0
  324. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  325. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  326. package/components/SidePage/SidePageHeader.d.ts +1 -0
  327. package/components/Spinner/Spinner/Spinner.js +1 -1
  328. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  329. package/components/Spinner/Spinner.d.ts +1 -0
  330. package/components/Sticky/Sticky/Sticky.js +1 -1
  331. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  332. package/components/Sticky/Sticky.d.ts +1 -0
  333. package/components/Switcher/Switcher/Switcher.js +1 -1
  334. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  335. package/components/Switcher/Switcher.d.ts +1 -0
  336. package/components/Tabs/Tab/Tab.js +1 -1
  337. package/components/Tabs/Tab/Tab.js.map +1 -1
  338. package/components/Tabs/Tab.d.ts +1 -0
  339. package/components/Tabs/Tabs/Tabs.js +1 -1
  340. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  341. package/components/Tabs/Tabs.d.ts +1 -0
  342. package/components/Textarea/Textarea/Textarea.js +1 -1
  343. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  344. package/components/Textarea/Textarea.d.ts +1 -0
  345. package/components/Toast/Toast/Toast.js +1 -1
  346. package/components/Toast/Toast/Toast.js.map +1 -1
  347. package/components/Toast/Toast.d.ts +1 -0
  348. package/components/Toggle/Toggle/Toggle.js +1 -1
  349. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  350. package/components/Toggle/Toggle.d.ts +1 -0
  351. package/components/Token/Token/Token.js +1 -1
  352. package/components/Token/Token/Token.js.map +1 -1
  353. package/components/Token/Token.d.ts +1 -0
  354. package/components/TokenInput/TokenInput/TokenInput.js +1 -1
  355. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  356. package/components/TokenInput/TokenInput.d.ts +1 -0
  357. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
  358. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  359. package/components/TokenInput/TokenInputMenu.d.ts +1 -0
  360. package/components/Tooltip/Tooltip/Tooltip.js +1 -1
  361. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  362. package/components/Tooltip/Tooltip.d.ts +1 -0
  363. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  364. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  365. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  366. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
  367. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  368. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  369. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
  370. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  371. package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  372. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
  373. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  374. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  375. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  376. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  377. package/internal/DateSelect/DateSelect.d.ts +1 -0
  378. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
  379. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  380. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  381. package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
  382. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  383. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  384. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
  385. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  386. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  387. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
  388. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  389. package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
  390. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  391. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  392. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +1 -0
  393. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  394. package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  395. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  396. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  397. package/internal/InternalMenu/InternalMenu.d.ts +1 -0
  398. package/internal/Menu/Menu/Menu.js +1 -1
  399. package/internal/Menu/Menu/Menu.js.map +1 -1
  400. package/internal/Menu/Menu.d.ts +1 -0
  401. package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
  402. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  403. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  404. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
  405. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  406. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  407. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
  408. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
  409. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  410. package/internal/Popup/Popup/Popup.js +1 -1
  411. package/internal/Popup/Popup/Popup.js.map +1 -1
  412. package/internal/Popup/Popup.d.ts +1 -0
  413. package/internal/Popup/PopupPin/PopupPin.js +1 -0
  414. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  415. package/internal/Popup/PopupPin.d.ts +1 -0
  416. package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
  417. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  418. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  419. package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
  420. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  421. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  422. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +1 -0
  423. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  424. package/internal/RenderContainer/RenderInnerContainer.d.ts +1 -0
  425. package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
  426. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  427. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  428. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
  429. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  430. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  431. package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
  432. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  433. package/internal/ZIndex/ZIndex.d.ts +1 -0
  434. package/internal/icons/20px/Icon/Icon.js +1 -0
  435. package/internal/icons/20px/Icon/Icon.js.map +1 -1
  436. package/internal/icons/20px/Icon.d.ts +1 -0
  437. package/package.json +1 -1
@@ -47,6 +47,7 @@ ModalBody = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
47
47
 
48
48
 
49
49
 
50
+
50
51
  handleResize = function () {
51
52
  LayoutEvents.emit();
52
53
  };return _this;}var _proto = ModalBody.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getModalBodyTheme.getModalBodyTheme)(theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});};_proto.
@@ -78,4 +79,4 @@ ModalBody = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
78
79
 
79
80
 
80
81
 
81
- };return ModalBody;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ModalBody', _class2.__MODAL_BODY__ = true, _temp)) || _class) || _class;exports.ModalBody = ModalBody;
82
+ };return ModalBody;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ModalBody', _class2.displayName = 'ModalBody', _class2.__MODAL_BODY__ = true, _temp)) || _class) || _class;exports.ModalBody = ModalBody;
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","LayoutEvents","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","styles","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"uUAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wD;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;;AAGaA,S,OAFZC,2B,eACAC,kB;;;;;;;;;;;;;;;;;;;AAoBSC,IAAAA,Y,GAAe,YAAM;AAC3BC,MAAAA,YAAY,CAACC,IAAb;AACD,K,uDAbMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAa,0CAAkBA,KAAlB,CAAb,CACA,oBAAO,6BAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,C;;AAMMA,EAAAA,U,GAAP,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,uCAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,uCAAC,cAAD;AACE,YAAA,SAAS,EAAE;AACRI,0BAAOC,IAAP,CAAY,MAAI,CAACR,KAAjB,CADQ,IACkB,IADlB;AAERO,0BAAOE,UAAP,CAAkB,MAAI,CAACT,KAAvB,CAFQ,IAEwB,MAAI,CAACU,cAF7B;AAGRH,0BAAOI,iBAAP,CAAyB,MAAI,CAACX,KAA9B,CAHQ,IAG+B,CAACK,SAHhC;AAIRE,0BAAOK,uBAAP,EAJQ,IAI2B,CAACP,SAAD,IAAc,MAAI,CAACK,cAJ9C;AAKRH,0BAAOM,sBAAP,CAA8B,MAAI,CAACb,KAAnC,CALQ,IAKoCI,iBALpC;AAMRG,0BAAOO,4BAAP,CAAoC,MAAI,CAACd,KAAzC,CANQ,IAM0CI,iBAAiB,IAAI,MAAI,CAACM,cANpE;AAORH,0BAAOQ,kBAAP,EAPQ,IAOsBb,SAPtB,OADb;;;AAWG,UAAA,MAAI,CAACQ,cAAL;AACC,uCAAC,8BAAD,IAAgB,QAAQ,EAAE,MAAI,CAACd,YAA/B,IAA8C,MAAI,CAACO,KAAL,CAAWa,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACb,KAAL,CAAWa,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,G,oBAlD4BC,eAAMC,S,WACrBC,mB,GAAsB,W,UACtBC,c,GAAiB,I","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","LayoutEvents","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","styles","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"uUAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wD;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;;AAGaA,S,OAFZC,2B,eACAC,kB;;;;;;;;;;;;;;;;;;;;AAqBSC,IAAAA,Y,GAAe,YAAM;AAC3BC,MAAAA,YAAY,CAACC,IAAb;AACD,K,uDAbMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAa,0CAAkBA,KAAlB,CAAb,CACA,oBAAO,6BAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,C;;AAMMA,EAAAA,U,GAAP,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,uCAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,uCAAC,cAAD;AACE,YAAA,SAAS,EAAE;AACRI,0BAAOC,IAAP,CAAY,MAAI,CAACR,KAAjB,CADQ,IACkB,IADlB;AAERO,0BAAOE,UAAP,CAAkB,MAAI,CAACT,KAAvB,CAFQ,IAEwB,MAAI,CAACU,cAF7B;AAGRH,0BAAOI,iBAAP,CAAyB,MAAI,CAACX,KAA9B,CAHQ,IAG+B,CAACK,SAHhC;AAIRE,0BAAOK,uBAAP,EAJQ,IAI2B,CAACP,SAAD,IAAc,MAAI,CAACK,cAJ9C;AAKRH,0BAAOM,sBAAP,CAA8B,MAAI,CAACb,KAAnC,CALQ,IAKoCI,iBALpC;AAMRG,0BAAOO,4BAAP,CAAoC,MAAI,CAACd,KAAzC,CANQ,IAM0CI,iBAAiB,IAAI,MAAI,CAACM,cANpE;AAORH,0BAAOQ,kBAAP,EAPQ,IAOsBb,SAPtB,OADb;;;AAWG,UAAA,MAAI,CAACQ,cAAL;AACC,uCAAC,8BAAD,IAAgB,QAAQ,EAAE,MAAI,CAACd,YAA/B,IAA8C,MAAI,CAACO,KAAL,CAAWa,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACb,KAAL,CAAWa,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,G,oBAnD4BC,eAAMC,S,WACrBC,mB,GAAsB,W,UACtBC,W,GAAc,W,UACdC,c,GAAiB,I","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
@@ -59,6 +59,7 @@ export declare const PagingDataTids: {
59
59
  declare type DefaultProps = Required<Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>>;
60
60
  export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
61
61
  static __KONTUR_REACT_UI__: string;
62
+ static displayName: string;
62
63
  static defaultProps: DefaultProps;
63
64
  private getProps;
64
65
  static propTypes: {};
@@ -103,6 +103,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
103
103
 
104
104
 
105
105
 
106
+
106
107
  getProps = (0, _createPropsGetter.createPropsGetter)(Paging.defaultProps);_this.
107
108
 
108
109
 
@@ -488,7 +489,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
488
489
 
489
490
  refContainer = function (element) {
490
491
  _this.container = element;
491
- };return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.getProps().useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var useGlobalListener = this.getProps().useGlobalListener;if (!prevProps.useGlobalListener && useGlobalListener) {this.addGlobalListener();}if (prevProps.useGlobalListener && !useGlobalListener) {this.removeGlobalListener();}if (prevProps.useGlobalListener !== useGlobalListener) {this.setState({ keyboardControl: useGlobalListener });}};_proto.componentWillUnmount = function componentWillUnmount() {this.removeGlobalListener();};_proto.render = function render() {var _this2 = this;if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {return null;}return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx4;var _this$getProps = this.getProps(),dataTid = _this$getProps['data-tid'],useGlobalListener = _this$getProps.useGlobalListener;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("span", { tabIndex: this.props.disabled ? -1 : 0, "data-tid": dataTid, className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Paging.styles.paging(this.theme)] = true, _cx4[_Paging.styles.pagingDisabled()] = this.props.disabled, _cx4)), onKeyDown: useGlobalListener ? undefined : this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, ref: this.refContainer }, this.getItems().map(this.renderItem)));};return Paging;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Paging', _class2.defaultProps = { component: _PagingDefaultComponent.PagingDefaultComponent, shouldBeVisibleWithLessThanTwoPages: true, useGlobalListener: false, 'data-tid': PagingDataTids.root }, _class2.propTypes = {}, _temp)) || _class) || _class);exports.Paging = Paging;
492
+ };return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.getProps().useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var useGlobalListener = this.getProps().useGlobalListener;if (!prevProps.useGlobalListener && useGlobalListener) {this.addGlobalListener();}if (prevProps.useGlobalListener && !useGlobalListener) {this.removeGlobalListener();}if (prevProps.useGlobalListener !== useGlobalListener) {this.setState({ keyboardControl: useGlobalListener });}};_proto.componentWillUnmount = function componentWillUnmount() {this.removeGlobalListener();};_proto.render = function render() {var _this2 = this;if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {return null;}return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx4;var _this$getProps = this.getProps(),dataTid = _this$getProps['data-tid'],useGlobalListener = _this$getProps.useGlobalListener;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("span", { tabIndex: this.props.disabled ? -1 : 0, "data-tid": dataTid, className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Paging.styles.paging(this.theme)] = true, _cx4[_Paging.styles.pagingDisabled()] = this.props.disabled, _cx4)), onKeyDown: useGlobalListener ? undefined : this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, ref: this.refContainer }, this.getItems().map(this.renderItem)));};return Paging;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Paging', _class2.displayName = 'Paging', _class2.defaultProps = { component: _PagingDefaultComponent.PagingDefaultComponent, shouldBeVisibleWithLessThanTwoPages: true, useGlobalListener: false, 'data-tid': PagingDataTids.root }, _class2.propTypes = {}, _temp)) || _class) || _class);exports.Paging = Paging;
492
493
 
493
494
 
494
495
  Paging.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"sources":["Paging.tsx"],"names":["IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","PagingLocaleHelper","rootNode","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","locale","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","emptyHandler","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","NavigationHelper","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","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","dataTid","setRootNode","paging","pagingDisabled","undefined","map","React","PureComponent","__KONTUR_REACT_UI__","PagingDefaultComponent","propTypes","number","isRequired","func"],"mappings":"6VAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4C;;AAEA,IAAMA,iBAAiB,GAAG,CAAC,OAAD,EAAU,UAAV,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,IAAI,EAAE,cAFsB;AAG5BC,EAAAA,WAAW,EAAE,qBAHe;AAI5BC,EAAAA,eAAe,EAAE,yBAJW;AAK5BC,EAAAA,QAAQ,EAAE,kBALkB,EAAvB,C;;;;;;;;;AAcMC,M,WADZ,wBAAO,QAAP,EAAiBC,0BAAjB,C,MADAC,kB;;;;;;;;;;AAYSC,IAAAA,Q,GAAW,0CAAkBH,MAAM,CAACI,YAAzB,C;;;;;;;;;AASZC,IAAAA,K,GAAqB;AAC1BC,MAAAA,YAAY,EAAE,KADY;AAE1BC,MAAAA,WAAW,EAAE,IAFa;AAG1BC,MAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAHP,E;;;;;AAQpBC,IAAAA,mB,GAAsB,K;AACtBC,IAAAA,S,GAAoC,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEpCC,IAAAA,U,GAAa,UAACC,IAAD,EAAiBC,KAAjB,EAAmC;AACtD,UAAMC,OAAO,GAAG,MAAKC,cAAL,OAA0BH,IAA1C;AACA,cAAQA,IAAR;AACE,aAAK,GAAL,CAAU;AACR,gBAAMI,GAAG,aAAUH,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,OAA/B,CAAT;AACA,mBAAO,MAAKI,UAAL,CAAgBD,GAAhB,CAAP;AACD;AACD,aAAK,SAAL,CAAgB;AACd,gBAAME,QAAQ,GAAG,MAAKC,cAAL,CAAoBP,IAApB,CAAjB;AACA,mBAAO,MAAKQ,iBAAL,CAAuBF,QAAvB,EAAiCJ,OAAjC,CAAP;AACD;AACD,gBAAS;AACP,gBAAMO,MAAM,GAAG,MAAKC,KAAL,CAAWC,UAAX,KAA0BX,IAAzC;AACA,mBAAO,MAAKY,cAAL,CAAoBZ,IAApB,EAA0BS,MAA1B,EAAkCP,OAAlC,CAAP;AACD,WAZH;;AAcD,K;;AAEOG,IAAAA,U,GAAa,UAACD,GAAD,EAAiB;AACpC;AACE;AACE,sBAAUvB,cAAc,CAACE,IAD3B;AAEE,UAAA,GAAG,EAAEqB,GAFP;AAGE,UAAA,SAAS,EAAE,gCAAMS,eAAO9B,IAAP,CAAY,MAAK+B,KAAjB,CAAN,IAAgC,IAAhC,MAAuCD,eAAOE,YAAP,CAAoB,MAAKD,KAAzB,CAAvC,IAAyE,MAAKJ,KAAL,CAAWJ,QAApF,OAHb;;AAKG,aALH,CADF;;;AASD,K;;AAEOE,IAAAA,iB,GAAoB,UAACF,QAAD,EAAoBJ,OAApB,EAAsD;AAChF,UAAMc,OAAO,GAAG,+BAAY,MAAKF,KAAjB;AACZ;AACED,qBAAO3B,QAAP,CAAgB,MAAK4B,KAArB,CADF;AAEED,qBAAO7B,WAAP,CAAmB,MAAK8B,KAAxB,CAFF;AAGEZ,MAAAA,OAAO,IAAIW,eAAOI,eAAP,CAAuB,MAAKH,KAA5B,CAHb;AAIE,OAACR,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAAxB,KAAqCO,eAAOK,gBAAP,CAAwB,MAAKJ,KAA7B,CAJvC,CADY;;AAOZ;AACGD,qBAAO7B,WAAP,CAAmB,MAAK8B,KAAxB,CADH,IACoC,IADpC;AAEGD,qBAAOM,kBAAP,EAFH,IAEiCjB,OAFjC;AAGGW,qBAAOO,mBAAP,CAA2B,MAAKN,KAAhC,CAHH,IAG4CR,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAHnE,QAPJ;;AAYA,UAAMe,SAAS,GAAG,MAAK/B,QAAL,GAAgBgC,SAAlC;AACA,UAAQC,OAAR,GAAoB,MAAKC,MAAzB,CAAQD,OAAR;;AAEA,UAAME,WAAW,GAAG,+BAAY,MAAKX,KAAjB;AAClB,mCAAC,wBAAD,IAAa,IAAI,EAAEY,QAAQ,CAAC,MAAKZ,KAAL,CAAWa,qBAAZ,CAA3B,EAA+D,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAd,EAAtE,GADkB;;AAGlB,6CAAM,SAAS,EAAEf,eAAOY,WAAP,CAAmB,MAAKX,KAAxB,CAAjB;AACE,mCAAC,yBAAD,IAAuB,IAAI,EAAE,MAAKA,KAAL,CAAWa,qBAAxC,GADF,CAHF;;;;AAQA;AACE,qCAAC,SAAD;AACE,UAAA,GAAG,EAAE,SADP;AAEE,sBAAU9C,cAAc,CAACG,WAF3B;AAGE,UAAA,MAAM,EAAE,KAHV;AAIE,UAAA,SAAS,EAAEgC,OAJb;AAKE,UAAA,OAAO,EAAEV,QAAQ,GAAGuB,mBAAH,GAAkB,MAAKC,SAL1C;AAME,UAAA,QAAQ,EAAE,CAAC,CANb;AAOE,UAAA,UAAU,EAAE,SAPd;;AASG,cAAKpB,KAAL,CAAWqB,OAAX,IAAsBR,OATzB;AAUGE,QAAAA,WAVH,CADF;;;AAcD,K;;AAEOb,IAAAA,c,GAAiB,UAACoB,UAAD,EAAqBvB,MAArB,EAAsCP,OAAtC,EAAwE;AAC/F,UAAMc,OAAO,GAAG;AACbH,qBAAO3B,QAAP,CAAgB,MAAK4B,KAArB,CADa,IACiB,IADjB;AAEbD,qBAAOI,eAAP,CAAuB,MAAKH,KAA5B,CAFa,IAEwBZ,OAFxB;AAGbW,qBAAOK,gBAAP,CAAwB,MAAKJ,KAA7B,CAHa,IAGyB,MAAKJ,KAAL,CAAWJ,QAHpC;AAIbO,qBAAOoB,eAAP,CAAuB,MAAKnB,KAA5B,CAJa,IAIwBL,MAJxB;AAKbI,qBAAOqB,uBAAP,CAA+B,MAAKpB,KAApC,CALa,IAKgCL,MAAM,IAAI,MAAKC,KAAL,CAAWJ,QALrD,QAAhB;;AAOA,UAAMe,SAAS,GAAG,MAAK/B,QAAL,GAAgBgC,SAAlC;AACA,UAAMa,WAAW,GAAG,SAAdA,WAAc,WAAM,MAAKC,QAAL,CAAcJ,UAAd,CAAN,EAApB;;AAEA;AACE;AACE,sBAAUnD,cAAc,CAACI,eAD3B;AAEE,UAAA,GAAG,EAAE+C,UAFP;AAGE,UAAA,SAAS,EAAEnB,eAAO5B,eAAP,EAHb;AAIE,UAAA,WAAW,EAAE,MAAKoD,uBAJpB;;AAME,qCAAC,SAAD;AACE,sBAAUxD,cAAc,CAACK,QAD3B;AAEE,UAAA,MAAM,EAAEuB,MAFV;AAGE,UAAA,SAAS,EAAEO,OAHb;AAIE,UAAA,OAAO,EAAEmB,WAJX;AAKE,UAAA,QAAQ,EAAE,CAAC,CALb;AAME,UAAA,UAAU,EAAEH,UANd;;AAQGA,QAAAA,UARH,CANF;;AAgBGvB,QAAAA,MAAM,IAAI,MAAK6B,oBAAL,EAhBb,CADF;;;AAoBD,K;;AAEOA,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK5B,KAAL,CAAW6B,qBAAf,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAQ5C,eAAR,GAA4B,MAAKH,KAAjC,CAAQG,eAAR;AACA,UAAM6C,aAAa,GAAG,MAAKA,aAAL,EAAtB;AACA,UAAMC,YAAY,GAAG,MAAKA,YAAL,EAArB;;AAEA,UAAIC,IAAI,GAAG,IAAX;AACA,UAAI/C,eAAe,KAAK6C,aAAa,IAAIC,YAAtB,CAAnB,EAAwD;AACtDC,QAAAA,IAAI;AACF;AACE,+CAAM,SAAS,EAAEF,aAAa,GAAG,EAAH,GAAQ3B,eAAO8B,WAAP,EAAtC,IAA6D,GAA7D,CADF;AAEE,mDAAOC,gBAAgB,CAACC,UAAjB,EAAP,CAFF;AAGE,+CAAM,SAAS,EAAEJ,YAAY,GAAG,EAAH,GAAQ5B,eAAO8B,WAAP,EAArC,IAA4D,GAA5D,CAHF,CADF;;;AAOD;AACD,0BAAO,sCAAK,SAAS,EAAE9B,eAAOiC,YAAP,CAAoB,MAAKhC,KAAzB,CAAhB,IAAkD4B,IAAlD,CAAP;AACD,K;;AAEOK,IAAAA,e,GAAkB,YAAM;AAC9B,YAAKC,QAAL,CAAc,EAAEvD,YAAY,EAAE,KAAhB,EAAuBC,WAAW,EAAE,IAApC,EAAd;AACD,K;;AAEO2C,IAAAA,uB,GAA0B,YAAM;AACtC,UAAIY,cAAJ,EAAY;AACV;AACA;AACAC,mCAAaC,UAAb,CAAwB,oBAAM,MAAKrD,SAAL,IAAkB,MAAKA,SAAL,CAAesD,KAAf,EAAxB,EAAxB,EAAwE,CAAxE;AACD;AACF,K;;AAEOC,IAAAA,a,GAAgB,UAACC,CAAD,EAAyD;AAC/E,UAAIA,CAAC,CAACC,QAAN,EAAgB;AACd;AACD;;AAED,UAAMC,MAAM,GAAGF,CAAC,CAACE,MAAjB;;AAEA,UAAMC,WAAW,GAAG,iCAAeH,CAAf,CAApB;AACA,UAAMI,YAAY,GAAG,kCAAgBJ,CAAhB,CAArB;;AAEA;AACE,sCAAaE,MAAb,EAAqBN,2BAAaS,OAAlC;AACC/E,MAAAA,iBAAiB,CAACgF,QAAlB,CAA2BJ,MAAM,CAACK,OAAP,CAAeC,WAAf,EAA3B,KAA6DN,MAAD,CAAwBO,iBADrF,CADF;AAGE;AACA;AACD;;AAED,UAAInB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCG,WAA3C,EAAwD;AACtD,cAAKT,QAAL,CAAc,EAAEtD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKuE,UAA1C;AACA;AACD;AACD,UAAIrB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCI,YAA3C,EAAyD;AACvD,cAAKV,QAAL,CAAc,EAAEtD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKoC,SAA1C;AACA;AACD;;AAED,UAAI,MAAKhC,SAAL,IAAkB,MAAKA,SAAL,KAAmBwD,CAAC,CAACE,MAA3C,EAAmD;AACjD,YAAIC,WAAJ,EAAiB;AACf,gBAAKT,QAAL,CAAc,EAAEvD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAKyE,aAA3C;AACA;AACD;AACD,YAAIR,YAAJ,EAAkB;AAChB,gBAAKV,QAAL,CAAc,EAAEvD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK0E,cAA3C;AACA;AACD;AACD,YAAI,6BAAWb,CAAX,CAAJ,EAAmB;AACjB,gBAAKc,iBAAL,CAAuB,MAAKjE,cAAL,EAAvB;AACA;AACD;AACF;AACF,K;;AAEOkE,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,MAAK3D,KAAL,CAAWJ,QAAf,EAAyB;AACvB;AACD;;AAED,YAAK0C,QAAL,CAAc,EAAErD,eAAe,EAAE,IAAnB,EAAd;;AAEA;AACA;AACAuD,iCAAaoB,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,YAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,gBAAKxB,QAAL,CAAc,EAAEvD,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,OAJD;AAKD,K;;AAEOgF,IAAAA,U,GAAa,YAAM;AACzB,YAAKzB,QAAL,CAAc;AACZvD,QAAAA,YAAY,EAAE,KADF;AAEZE,QAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAAhB,IAAqC,KAF1C,EAAd;;AAID,K;;AAEO8E,IAAAA,Q,GAAW,YAAkB;AACnC,aAAO,4BAAS,MAAKhE,KAAL,CAAWC,UAApB,EAAgC,MAAKD,KAAL,CAAWiE,UAA3C,EAAuDC,MAAvD,CAA8D,SAA9D,CAAP;AACD,K;;AAEOzE,IAAAA,c,GAAiB,YAA0B;AACjD,UAAI,CAAC,MAAKX,KAAL,CAAWC,YAAhB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AAED,UAAQC,WAAR,GAAwB,MAAKF,KAA7B,CAAQE,WAAR;AACA,UAAIA,WAAW,IAAI,MAAKgF,QAAL,GAAgBd,QAAhB,CAAyBlE,WAAzB,CAAf,IAAwD,MAAKmF,eAAL,CAAqBnF,WAArB,CAA5D,EAA+F;AAC7F,eAAOA,WAAP;AACD;;AAED,aAAO,MAAKgB,KAAL,CAAWC,UAAlB;AACD,K;;AAEOkE,IAAAA,e,GAAkB,UAAC7E,IAAD,EAAoB;AAC5C,aAAO,CAAC,MAAKO,cAAL,CAAoBP,IAApB,CAAR;AACD,K;;AAEOO,IAAAA,c,GAAiB,UAACP,IAAD,EAAoB;AAC3C,cAAQA,IAAR;AACE,aAAK,GAAL;AACE,iBAAO,IAAP;AACF,aAAK,SAAL;AACE,iBAAO,CAAC,MAAKyC,YAAL,EAAR;AACF;AACE,iBAAO,KAAP,CANJ;;AAQD,K;;AAEO2B,IAAAA,iB,GAAoB,UAACpE,IAAD,EAA8B;AACxD,UAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,cAAK8B,SAAL;AACD;AACD,UAAI,OAAO9B,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAKoC,QAAL,CAAcpC,IAAd;AACD;AACF,K;;AAEOkE,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKY,SAAL,CAAe,CAAC,CAAhB;AACD,K;;AAEOX,IAAAA,c,GAAiB,YAAM;AAC7B,YAAKW,SAAL,CAAe,CAAf;AACD,K;;AAEOA,IAAAA,S,GAAY,UAACC,IAAD,EAAkB;AACpC,UAAMrF,WAAW,GAAG,MAAKS,cAAL,EAApB;AACA,UAAM6E,KAAK,GAAG,MAAKN,QAAL,EAAd;AACA,UAAIzE,KAAK,GAAG+E,KAAK,CAACC,SAAN,CAAgB,UAACC,CAAD,UAAOA,CAAC,KAAKxF,WAAb,EAAhB,CAAZ;AACA,SAAG;AACDO,QAAAA,KAAK,GAAG,CAACA,KAAK,GAAG8E,IAAR,GAAeC,KAAK,CAACG,MAAtB,IAAgCH,KAAK,CAACG,MAA9C;AACD,OAFD,QAES,CAAC,MAAKN,eAAL,CAAqBG,KAAK,CAAC/E,KAAD,CAA1B,CAFV;AAGA,YAAK+C,QAAL,CAAc,EAAEtD,WAAW,EAAEsF,KAAK,CAAC/E,KAAD,CAApB,EAAd;AACD,K;;AAEOuC,IAAAA,a,GAAgB,YAAe;AACrC,aAAO,MAAK9B,KAAL,CAAWC,UAAX,GAAwB,CAA/B;AACD,K;;AAEO8B,IAAAA,Y,GAAe,YAAe;AACpC,aAAO,MAAK/B,KAAL,CAAWC,UAAX,GAAwB,MAAKD,KAAL,CAAWiE,UAA1C;AACD,K;;AAEOV,IAAAA,U,GAAa,YAAM;AACzB,YAAK7B,QAAL,CAAc,MAAK1B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEOmB,IAAAA,S,GAAY,YAAM;AACxB,YAAKM,QAAL,CAAc,MAAK1B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEOyB,IAAAA,Q,GAAW,UAACJ,UAAD,EAAwB;AACzC,UAAIA,UAAU,IAAI,CAAd,IAAmBA,UAAU,KAAK,MAAKtB,KAAL,CAAWC,UAA7C,IAA2DqB,UAAU,IAAI,MAAKtB,KAAL,CAAWiE,UAAxF,EAAoG;AAClG,cAAKjE,KAAL,CAAW0E,YAAX,CAAwBpD,UAAxB;AACD;AACF,K;;AAEOqD,IAAAA,iB,GAAoB,YAAM;AAChC,UAAI,MAAKxF,mBAAT,EAA8B;AAC5B;AACD;;AAED,0DAAayF,QAAb,2CAAuBC,gBAAvB,CAAwC,SAAxC,EAAmD,MAAKlC,aAAxD;AACA,YAAKxD,mBAAL,GAA2B,IAA3B;AACD,K;;AAEO2F,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK3F,mBAAT,EAA8B;AAC5B,6DAAayF,QAAb,4CAAuBG,mBAAvB,CAA2C,SAA3C,EAAsD,MAAKpC,aAA3D;;AAEA,cAAKxD,mBAAL,GAA2B,KAA3B;AACD;AACF,K;;AAEO6F,IAAAA,Y,GAAe,UAACC,OAAD,EAAqC;AAC1D,YAAK7F,SAAL,GAAiB6F,OAAjB;AACD,K,sBA5XaC,S,GAAd,mBAAwB5D,UAAxB,EAAiE,aAAc,CAC7E,OAAOA,UAAU,KAAK,SAAtB,CACD,C,sCAaM6D,iB,GAAP,6BAA2B,CACzB,IAAMjG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAIA,iBAAJ,EAAuB,CACrB,KAAKyF,iBAAL,GACD,CACF,C,QAEMS,kB,GAAP,4BAA0BC,SAA1B,EAAkD,CAChD,IAAMnG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAI,CAACmG,SAAS,CAACnG,iBAAX,IAAgCA,iBAApC,EAAuD,CACrD,KAAKyF,iBAAL,GACD,CAED,IAAIU,SAAS,CAACnG,iBAAV,IAA+B,CAACA,iBAApC,EAAuD,CACrD,KAAK4F,oBAAL,GACD,CAED,IAAIO,SAAS,CAACnG,iBAAV,KAAgCA,iBAApC,EAAuD,CACrD,KAAKoD,QAAL,CAAc,EACZrD,eAAe,EAAEC,iBADL,EAAd,EAGD,CACF,C,QAEMoG,oB,GAAP,gCAA8B,CAC5B,KAAKR,oBAAL,GACD,C,QAEMS,M,GAAP,kBAAgB,mBACd,IAAI,KAAKvF,KAAL,CAAWiE,UAAX,GAAwB,CAAxB,IAA6B,CAAC,KAAKrF,QAAL,GAAgB4G,mCAAlD,EAAuF,CACrF,OAAO,IAAP,CACD,CAED,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACpF,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACqF,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,UACnB,qBAAmD,KAAK7G,QAAL,EAAnD,CAAoB8G,OAApB,kBAAQ,UAAR,EAA6BxG,iBAA7B,kBAA6BA,iBAA7B,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKyG,WAAjC,IAAkD,KAAK3F,KAAvD,gBACE,uCACE,QAAQ,EAAE,KAAKA,KAAL,CAAWJ,QAAX,GAAsB,CAAC,CAAvB,GAA2B,CADvC,EAEE,YAAU8F,OAFZ,EAGE,SAAS,EAAE,kCAAMvF,eAAOyF,MAAP,CAAc,KAAKxF,KAAnB,CAAN,IAAkC,IAAlC,OAAyCD,eAAO0F,cAAP,EAAzC,IAAmE,KAAK7F,KAAL,CAAWJ,QAA9E,QAHb,EAIE,SAAS,EAAEV,iBAAiB,GAAG4G,SAAH,GAAe,KAAKnD,aAJlD,EAKE,OAAO,EAAE,KAAKgB,WALhB,EAME,MAAM,EAAE,KAAKI,UANf,EAOE,WAAW,EAAE,KAAK1B,eAPpB,EAQE,GAAG,EAAE,KAAK2C,YARZ,IAUG,KAAKhB,QAAL,GAAgB+B,GAAhB,CAAoB,KAAK1G,UAAzB,CAVH,CADF,CADF,CAgBD,C,iBA3FyB2G,eAAMC,a,WAClBC,mB,GAAsB,Q,UAEtBrH,Y,GAA6B,EACzC+B,SAAS,EAAEuF,8CAD8B,EAEzCX,mCAAmC,EAAE,IAFI,EAGzCtG,iBAAiB,EAAE,KAHsB,EAIzC,YAAYf,cAAc,CAACC,IAJc,E,UAS7BgI,S,GAAY,E;;;AAkY5B3H,MAAM,CAAC2H,SAAP,GAAmB;AACjB;AACF;AACA;AACEnG,EAAAA,UAAU,EAAEoG,kBAAOC,UAJF;;AAMjB;AACF;AACA;AACA;AACA;AACE1F,EAAAA,SAAS,EAAE2F,eAXM;;AAajB;AACF;AACA;AACEtC,EAAAA,UAAU,EAAEoC,kBAAOC,UAhBF;;AAkBjB;AACF;AACA;AACE5B,EAAAA,YAAY,EAAE6B,gBAAKD,UArBF,EAAnB","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface 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\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\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: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\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.getProps().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.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().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 const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={cx({ [styles.paging(this.theme)]: true, [styles.pagingDisabled()]: this.props.disabled })}\n onKeyDown={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\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx({ [styles.dots(this.theme)]: true, [styles.dotsDisabled(this.theme)]: this.props.disabled })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = isTheme2022(this.theme)\n ? cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\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 {this.props.caption || forward}\n {forwardIcon}\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.pageLinkDisabled(this.theme)]: this.props.disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && this.props.disabled,\n });\n const Component = this.getProps().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 let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.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 = () => {\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 globalObject.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.getProps().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 globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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":["IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","PagingLocaleHelper","rootNode","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","locale","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","emptyHandler","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","NavigationHelper","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","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","dataTid","setRootNode","paging","pagingDisabled","undefined","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent","propTypes","number","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface 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\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\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.getProps().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.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().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 const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={cx({ [styles.paging(this.theme)]: true, [styles.pagingDisabled()]: this.props.disabled })}\n onKeyDown={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\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx({ [styles.dots(this.theme)]: true, [styles.dotsDisabled(this.theme)]: this.props.disabled })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = isTheme2022(this.theme)\n ? cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\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 {this.props.caption || forward}\n {forwardIcon}\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.pageLinkDisabled(this.theme)]: this.props.disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && this.props.disabled,\n });\n const Component = this.getProps().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 let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.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 = () => {\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 globalObject.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.getProps().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 globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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"]}
@@ -20,6 +20,7 @@ declare type DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;
20
20
  */
21
21
  export declare class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {
22
22
  static __KONTUR_REACT_UI__: string;
23
+ static displayName: string;
23
24
  static propTypes: {
24
25
  /**
25
26
  * Включает CapsLock детектор
@@ -60,6 +60,7 @@ PasswordInput = (_dec = (0, _decorators.locale)('PasswordInput', _locale.Passwor
60
60
 
61
61
 
62
62
 
63
+
63
64
  getProps = (0, _createPropsGetter.createPropsGetter)(PasswordInput.defaultProps);_this.
64
65
 
65
66
  state = {
@@ -246,6 +247,6 @@ PasswordInput = (_dec = (0, _decorators.locale)('PasswordInput', _locale.Passwor
246
247
  // turns off default ie capslock warning
247
248
  _globalObject.globalObject.document.msCapsLockWarningOff = true;}};PasswordInput.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.disabled) {return { visible: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});} /**
248
249
  * @public
249
- */;_proto.getEyeWrapperClassname = function getEyeWrapperClassname() {switch (this.getProps().size) {case 'large':return _PasswordInput.styles.eyeWrapperLarge(this.theme);case 'medium':return _PasswordInput.styles.eyeWrapperMedium(this.theme);case 'small':default:return _PasswordInput.styles.eyeWrapperSmall(this.theme);}};return PasswordInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'PasswordInput', _class2.propTypes = { /**
250
+ */;_proto.getEyeWrapperClassname = function getEyeWrapperClassname() {switch (this.getProps().size) {case 'large':return _PasswordInput.styles.eyeWrapperLarge(this.theme);case 'medium':return _PasswordInput.styles.eyeWrapperMedium(this.theme);case 'small':default:return _PasswordInput.styles.eyeWrapperSmall(this.theme);}};return PasswordInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'PasswordInput', _class2.displayName = 'PasswordInput', _class2.propTypes = { /**
250
251
  * Включает CapsLock детектор
251
252
  */detectCapsLock: _propTypes.default.bool }, _class2.defaultProps = { size: 'small' }, _temp)) || _class) || _class);exports.PasswordInput = PasswordInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","PasswordInputLocaleHelper","rootNode","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","locale","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","isIE11","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { locale } from '../../lib/locale/decorators';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, 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\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\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: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\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 private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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() {\n switch (this.getProps().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 className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\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"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","PasswordInputLocaleHelper","rootNode","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","locale","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","isIE11","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { locale } from '../../lib/locale/decorators';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, 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\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\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 private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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() {\n switch (this.getProps().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 className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\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"]}
@@ -58,6 +58,7 @@ declare type DefaultProps = Required<Pick<RadioProps<any>, 'focused' | 'size'>>;
58
58
  */
59
59
  export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState> {
60
60
  static __KONTUR_REACT_UI__: string;
61
+ static displayName: string;
61
62
  state: {
62
63
  focusedByKeyboard: boolean;
63
64
  };
@@ -85,6 +85,7 @@ var RadioDataTids = {
85
85
  Radio = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Radio, _React$Component);function Radio() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
86
86
 
87
87
 
88
+
88
89
  state = {
89
90
  focusedByKeyboard: false };_this.
90
91
 
@@ -311,4 +312,4 @@ Radio = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
311
312
  * @public
312
313
  */;_proto.focus = function focus() {var _this$inputEl$current;_keyListener.keyListener.isTabPressed = true;(_this$inputEl$current = this.inputEl.current) == null ? void 0 : _this$inputEl$current.focus();} /**
313
314
  * @public
314
- */;_proto.blur = function blur() {var _this$inputEl$current2;(_this$inputEl$current2 = this.inputEl.current) == null ? void 0 : _this$inputEl$current2.blur();};_proto.renderCaption = function renderCaption() {var _cx5;var captionClassNames = (0, _Emotion.cx)((_cx5 = {}, _cx5[_Radio.styles.caption(this.theme)] = true, _cx5[_Radio.styles.captionDisabled(this.theme)] = !!(this.props.disabled || this.context.disabled), _cx5[_Radio.styles.captionIE11()] = _client.isIE11 || _client.isEdge, _cx5));return /*#__PURE__*/_react.default.createElement("div", { className: captionClassNames }, this.props.children);};return Radio;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Radio', _class2.defaultProps = { focused: false, size: 'small' }, _class2.contextType = _RadioGroupContext.RadioGroupContext, _temp)) || _class;exports.Radio = Radio;
315
+ */;_proto.blur = function blur() {var _this$inputEl$current2;(_this$inputEl$current2 = this.inputEl.current) == null ? void 0 : _this$inputEl$current2.blur();};_proto.renderCaption = function renderCaption() {var _cx5;var captionClassNames = (0, _Emotion.cx)((_cx5 = {}, _cx5[_Radio.styles.caption(this.theme)] = true, _cx5[_Radio.styles.captionDisabled(this.theme)] = !!(this.props.disabled || this.context.disabled), _cx5[_Radio.styles.captionIE11()] = _client.isIE11 || _client.isEdge, _cx5));return /*#__PURE__*/_react.default.createElement("div", { className: captionClassNames }, this.props.children);};return Radio;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Radio', _class2.displayName = 'Radio', _class2.defaultProps = { focused: false, size: 'small' }, _class2.contextType = _RadioGroupContext.RadioGroupContext, _temp)) || _class;exports.Radio = Radio;
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.tsx"],"names":["RadioDataTids","root","Radio","rootNode","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","React","createRef","renderMain","props","disabled","warning","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","styles","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","globalClasses","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","globalObject","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","contextType","RadioGroupContext"],"mappings":";;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB,C;;;;;AAMP;AACA;AACA,G;;AAEaC,K,OADZC,kB;;;AAIQC,IAAAA,K,GAAQ;AACbC,MAAAA,iBAAiB,EAAE,KADN,E;;;;;;;;AASPC,IAAAA,Q,GAAW,0CAAkBJ,KAAK,CAACK,YAAxB,C;;;AAGZC,IAAAA,O,GAAoC,MAAKA,O;;AAExCC,IAAAA,O,gBAAUC,eAAMC,SAAN,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEXC,IAAAA,U,GAAa,UAACC,KAAD,EAAkD;AACpE;;;;;;;;;;;AAWIA,MAAAA,KAXJ,CACEC,QADF,CACEA,QADF,gCACa,MAAKN,OAAL,CAAaM,QAD1B,oCAWID,KAXJ,CAEEE,OAFF,CAEEA,OAFF,+BAEY,MAAKP,OAAL,CAAaO,OAFzB,iCAWIF,KAXJ,CAGEG,KAHF,CAGEA,KAHF,6BAGU,MAAKR,OAAL,CAAaQ,KAHvB,gBAIEC,IAJF,GAWIJ,KAXJ,CAIEI,IAJF,CAKEC,OALF,GAWIL,KAXJ,CAKEK,OALF,CAMEC,WANF,GAWIN,KAXJ,CAMEM,WANF,CAOEC,YAPF,GAWIP,KAXJ,CAOEO,YAPF,CAQEC,YARF,GAWIR,KAXJ,CAQEQ,YARF,CASEC,aATF,GAWIT,KAXJ,CASES,aATF,CAUKC,IAVL,+CAWIV,KAXJ;;AAaA,UAAMW,UAAU,GAAG;AACjBC,QAAAA,SAAS,EAAE;AACRC,sBAAOC,MAAP,CAAc,MAAKC,KAAnB,CADQ,IACoB,IADpB;AAER,cAAKC,sBAAL,EAFQ,IAEwB,IAFxB;AAGRH,sBAAOI,OAAP,CAAe,MAAKF,KAApB,CAHQ,IAGqB,MAAKf,KAAL,CAAWiB,OAHhC;AAIR,cAAKC,uBAAL,EAJQ,IAIyB,MAAKlB,KAAL,CAAWiB,OAJpC;AAKRJ,sBAAOM,KAAP,CAAa,MAAKJ,KAAlB,CALQ,IAKmB,MAAKtB,QAAL,GAAgBY,OAAhB,IAA2B,MAAKd,KAAL,CAAWC,iBALzD;AAMRqB,sBAAOV,KAAP,CAAa,MAAKY,KAAlB,CANQ,IAMmBZ,KANnB;AAORU,sBAAOX,OAAP,CAAe,MAAKa,KAApB,CAPQ,IAOqBb,OAPrB;AAQRW,sBAAOZ,QAAP,CAAgB,MAAKc,KAArB,CARQ,IAQsBd,QARtB;AASRY,sBAAOO,eAAP,CAAuB,MAAKL,KAA5B,CATQ,IAS6B,MAAKf,KAAL,CAAWiB,OAAX,IAAsBhB,QATnD;AAURoB,6BAAcP,MAVN,IAUe,IAVf,OADM,EAAnB;;;;AAeA,UAAIQ,KAAJ;AACA,UAAI,OAAO,MAAKtB,KAAL,CAAWsB,KAAlB,KAA4B,QAA5B,IAAwC,OAAO,MAAKtB,KAAL,CAAWsB,KAAlB,KAA4B,QAAxE,EAAkF;AAChFA,QAAAA,KAAK,GAAG,MAAKtB,KAAL,CAAWsB,KAAnB;AACD;;AAED,UAAMC,UAAU;AACXb,MAAAA,IADW;AAEdc,QAAAA,IAAI,EAAE,OAFQ;AAGdZ,QAAAA,SAAS,EAAEC,cAAOY,KAAP,EAHG;AAIdxB,QAAAA,QAAQ,EAARA,QAJc;AAKdyB,QAAAA,QAAQ,EAAE,MAAK1B,KAAL,CAAW0B,QALP;AAMdJ,QAAAA,KAAK,EAALA,KANc;AAOdK,QAAAA,GAAG,EAAE,MAAK/B,OAPI;AAQdgC,QAAAA,QAAQ,EAAE,MAAKC,YARD;AASdC,QAAAA,OAAO,EAAE,MAAKC,WATA;AAUdC,QAAAA,MAAM,EAAE,MAAKC,UAVC,GAAhB;;;AAaA,UAAMC,UAAU,GAAG;AACjBtB,QAAAA,SAAS,EAAE,iBAAGC,cAAOzB,IAAP,CAAY,MAAK2B,KAAjB,CAAH,EAA4B,MAAKoB,oBAAL,EAA5B;AACRtB,sBAAOuB,WAAP,CAAmB,MAAKrB,KAAxB,CADQ,IACyB,MAAKf,KAAL,CAAWiB,OADpC;AAERJ,sBAAOwB,QAAP,EAFQ,IAEYC,kBAAUC,cAFtB,QADM;;AAKjBjC,QAAAA,WAAW,EAAE,MAAKkC,eALD;AAMjBjC,QAAAA,YAAY,EAAE,MAAKkC,gBANF;AAOjBjC,QAAAA,YAAY,EAAE,MAAKkC,gBAPF;AAQjBC,QAAAA,OAAO,EAAE,oEAA+B,MAAK/C,OAApC,CARQ,EAAnB;;;AAWA,UAAI,MAAKgD,eAAL,EAAJ,EAA4B;AAC1B,YAAM3B,OAAO,GAAG,MAAKjB,KAAL,CAAWsB,KAAX,KAAqB,MAAK3B,OAAL,CAAakD,UAAlD;AACAtB,QAAAA,UAAU,CAACN,OAAX,GAAqBA,OAArB;AACAM,QAAAA,UAAU,CAACuB,IAAX,GAAkB,MAAKnD,OAAL,CAAamD,IAA/B;AACAvB,QAAAA,UAAU,CAACwB,wBAAX,GAAsC,IAAtC;AACAb,QAAAA,UAAU,CAACtB,SAAX,GAAuB,iBAAGC,cAAOzB,IAAP,CAAY,MAAK2B,KAAjB,CAAH,EAA4B,MAAKoB,oBAAL,EAA5B;AACpBtB,sBAAOuB,WAAP,CAAmB,MAAKrB,KAAxB,CADoB,IACaE,OADb;AAEpBJ,sBAAOwB,QAAP,EAFoB,IAEAC,kBAAUC,cAFV,QAAvB;;AAIA5B,QAAAA,UAAU,CAACC,SAAX,GAAuB,iBAAGD,UAAU,CAACC,SAAd;AACpBC,sBAAOI,OAAP,CAAe,MAAKF,KAApB,CADoB,IACSE,OADT;AAEpB,cAAKC,uBAAL,EAFoB,IAEaD,OAFb;AAGpBJ,sBAAOO,eAAP,CAAuB,MAAKL,KAA5B,CAHoB,IAGiBE,OAAO,IAAIhB,QAH5B,QAAvB;;AAKD;;AAED;AACE,uEAAO,YAAUd,aAAa,CAACC,IAA/B,IAAyC8C,UAAzC;AACE,8CAAWX,UAAX,CADF;AAEE,6CAAUZ,UAAV;AACE,+CAAM,SAAS,EAAEE,cAAOmC,WAAP,EAAjB,GADF,CAFF;;AAKG,cAAKhD,KAAL,CAAWiD,QAAX,IAAuB,MAAKC,aAAL,EAL1B,CADF;;;AASD,K;;AAEON,IAAAA,e,GAAkB,oBAAMO,OAAO,CAAC,MAAKxD,OAAL,CAAamD,IAAd,CAAb,E;;;;;;;;;;;;AAYlBjB,IAAAA,Y,GAA2D,UAACuB,CAAD,EAAO;AACxE,YAAKpD,KAAL,CAAWS,aAAX,0BAAKT,KAAL,CAAWS,aAAX,CAA2B,MAAKT,KAAL,CAAWsB,KAAtC;;AAEA,UAAI,MAAKsB,eAAL,EAAJ,EAA4B;AAC1B,cAAKjD,OAAL,CAAa0D,QAAb,CAAsB,MAAKrD,KAAL,CAAWsB,KAAjC;AACD;;AAED,YAAKtB,KAAL,CAAW4B,QAAX,0BAAK5B,KAAL,CAAW4B,QAAX,CAAsBwB,CAAtB;AACD,K;;AAEOZ,IAAAA,e,GAA6D,UAACY,CAAD,EAAO;AAC1E,YAAKpD,KAAL,CAAWM,WAAX,0BAAKN,KAAL,CAAWM,WAAX,CAAyB8C,CAAzB;AACD,K;;AAEOX,IAAAA,gB,GAA8D,UAACW,CAAD,EAAO;AAC3E,YAAKpD,KAAL,CAAWO,YAAX,0BAAKP,KAAL,CAAWO,YAAX,CAA0B6C,CAA1B;AACD,K;;AAEOV,IAAAA,gB,GAA8D,UAACU,CAAD,EAAO;AAC3E,YAAKpD,KAAL,CAAWQ,YAAX,0BAAKR,KAAL,CAAWQ,YAAX,CAA0B4C,CAA1B;AACD,K;;AAEOrB,IAAAA,W,GAAc,UAACqB,CAAD,EAA8B;AAClD,UAAI,CAAC,MAAKzD,OAAL,CAAaM,QAAlB,EAA4B;AAC1B;AACA;AACAqD,mCAAaC,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,cAAIC,yBAAYC,cAAZ,IAA8BD,yBAAYE,YAA9C,EAA4D;AAC1D,kBAAKC,QAAL,CAAc,EAAEnE,iBAAiB,EAAE,IAArB,EAAd;AACD;AACF,SAJD;;AAMA,YAAI,MAAKQ,KAAL,CAAW8B,OAAf,EAAwB;AACtB,gBAAK9B,KAAL,CAAW8B,OAAX,CAAmBsB,CAAnB;AACD;AACF;AACF,K;;AAEOnB,IAAAA,U,GAAa,UAACmB,CAAD,EAA2C;AAC9D,YAAKpD,KAAL,CAAWgC,MAAX,0BAAKhC,KAAL,CAAWgC,MAAX,CAAoBoB,CAApB;AACA,YAAKO,QAAL,CAAc,EAAEnE,iBAAiB,EAAE,KAArB,EAAd;AACD,K,mDA5MO2C,oB,GAAR,gCAA+B,CAC7B,QAAQ,KAAK1C,QAAL,GAAgBW,IAAxB,GACE,KAAK,OAAL,CACE,OAAOS,cAAO+C,SAAP,CAAiB,KAAK7C,KAAtB,CAAP,CACF,KAAK,QAAL,CACE,OAAOF,cAAOgD,UAAP,CAAkB,KAAK9C,KAAvB,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAOF,cAAOiD,SAAP,CAAiB,KAAK/C,KAAtB,CAAP,CAPJ,CASD,C,QAEOC,sB,GAAR,kCAAiC,CAC/B,QAAQ,KAAKvB,QAAL,GAAgBW,IAAxB,GACE,KAAK,OAAL,CACE,OAAOS,cAAOkD,WAAP,CAAmB,KAAKhD,KAAxB,CAAP,CACF,KAAK,QAAL,CACE,OAAOF,cAAOmD,YAAP,CAAoB,KAAKjD,KAAzB,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAOF,cAAOoD,WAAP,CAAmB,KAAKlD,KAAxB,CAAP,CAPJ,CASD,C,QAEOG,uB,GAAR,mCAAkC,CAChC,QAAQ,KAAKzB,QAAL,GAAgBW,IAAxB,GACE,KAAK,OAAL,CACE,OAAOS,cAAOqD,YAAP,CAAoB,KAAKnD,KAAzB,CAAP,CACF,KAAK,QAAL,CACE,OAAOF,cAAOsD,aAAP,CAAqB,KAAKpD,KAA1B,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAOF,cAAOuD,YAAP,CAAoB,KAAKrD,KAAzB,CAAP,CAPJ,CASD,C,QAEMsD,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACtD,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACuD,WAAjC,IAAkD,MAAI,CAACtE,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,CAED;AACF;AACA,K,QACSoB,K,GAAP,iBAAe,2BACbqC,yBAAYE,YAAZ,GAA2B,IAA3B,CACA,8BAAK9D,OAAL,CAAa2E,OAAb,2CAAsBpD,KAAtB,GACD,C,CAED;AACF;AACA,K,QACSqD,I,GAAP,gBAAc,4BACZ,+BAAK5E,OAAL,CAAa2E,OAAb,4CAAsBC,IAAtB,GACD,C,QAyFOtB,a,GAAR,yBAAwB,UACtB,IAAMuB,iBAAiB,GAAG,kCACvB5D,cAAO6D,OAAP,CAAe,KAAK3D,KAApB,CADuB,IACM,IADN,OAEvBF,cAAO8D,eAAP,CAAuB,KAAK5D,KAA5B,CAFuB,IAEc,CAAC,EAAE,KAAKf,KAAL,CAAWC,QAAX,IAAuB,KAAKN,OAAL,CAAaM,QAAtC,CAFf,OAGvBY,cAAO+D,WAAP,EAHuB,IAGAtC,kBAAUC,cAHV,QAA1B,CAMA,oBAAO,sCAAK,SAAS,EAAEkC,iBAAhB,IAAoC,KAAKzE,KAAL,CAAWiD,QAA/C,CAAP,CACD,C,gBAtL2BpD,eAAMgF,S,WACpBC,mB,GAAsB,O,UAMtBpF,Y,GAA6B,EACzCW,OAAO,EAAE,KADgC,EAEzCD,IAAI,EAAE,OAFmC,E,UAO7B2E,W,GAAcC,oC","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, globalClasses } from './Radio.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type RadioSize = SizeProp;\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\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\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused' | 'size'>>;\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: DefaultProps = {\n focused: false,\n size: 'small',\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\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 private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\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 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 size,\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 [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().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), this.getRootSizeClassName(), {\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), this.getRootSizeClassName(), {\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 [this.getCheckedSizeClassName()]: 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 globalObject.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":["RadioDataTids","root","Radio","rootNode","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","React","createRef","renderMain","props","disabled","warning","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","styles","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","globalClasses","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","globalObject","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","displayName","contextType","RadioGroupContext"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, globalClasses } from './Radio.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type RadioSize = SizeProp;\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\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\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused' | 'size'>>;\n\n/**\n * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n public static displayName = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps: DefaultProps = {\n focused: false,\n size: 'small',\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\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 private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\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 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 size,\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 [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().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), this.getRootSizeClassName(), {\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), this.getRootSizeClassName(), {\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 [this.getCheckedSizeClassName()]: 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 globalObject.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"]}
@@ -87,6 +87,7 @@ declare type DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'
87
87
  */
88
88
  export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {
89
89
  static __KONTUR_REACT_UI__: string;
90
+ static displayName: string;
90
91
  static defaultProps: DefaultProps;
91
92
  static Prevent: typeof Prevent;
92
93
  private theme;
@@ -122,6 +122,7 @@ RadioGroup = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/fu
122
122
 
123
123
 
124
124
 
125
+
125
126
  function RadioGroup(props) {var _this;
126
127
  _this = _React$Component.call(this, props) || this;_this.name = (0, _utils.getRandomID)();_this.getProps = (0, _createPropsGetter.createPropsGetter)(RadioGroup.defaultProps);_this.
127
128
 
@@ -255,7 +256,7 @@ RadioGroup = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/fu
255
256
  };_this.state = { activeItem: _this.props.defaultValue };return _this;}var _proto = RadioGroup.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,width = _this$props.width,onMouseLeave = _this$props.onMouseLeave,onMouseOver = _this$props.onMouseOver,onMouseEnter = _this$props.onMouseEnter,onBlur = _this$props.onBlur,ariaDescribedby = _this$props['aria-describedby'];var style = { width: width != null ? width : 'auto' };var handlers = { onMouseOver: onMouseOver, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave };return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_FocusTrap.FocusTrap, { onBlur: onBlur }, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({ "data-tid": RadioGroupDataTids.root, ref: this.ref, style: style, className: _RadioGroup.styles.root(), role: "radiogroup" }, handlers, { "aria-describedby": ariaDescribedby }), /*#__PURE__*/_react.default.createElement(_RadioGroupContext.RadioGroupContext.Provider, { value: this.getRadioGroupContextValue() }, this.renderChildren()))));} /**
256
257
  * @public
257
258
  */;_proto.focus = function focus() {var node = this.node;if (!node) {return;}var radio = node.querySelector('input[type="radio"]:checked'); // If no checked radios, try get first radio
258
- if (!radio || radio.disabled) {radio = node.querySelector('input[type="radio"]:not([disabled])');}if (radio) {radio.focus();}};_proto.renderChildren = function renderChildren() {var _this$props2 = this.props,items = _this$props2.items,children = _this$props2.children;(0, _invariant.default)(!items && children || items && !children, 'Either items or children must be passed, not both');return items ? mapItems(this.renderRadio, items) : children;};return RadioGroup;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RadioGroup', _class2.defaultProps = { renderItem: renderItem }, _class2.Prevent = _Prevent.Prevent, _temp)) || _class;exports.RadioGroup = RadioGroup;function renderItem(_value, data) {
259
+ if (!radio || radio.disabled) {radio = node.querySelector('input[type="radio"]:not([disabled])');}if (radio) {radio.focus();}};_proto.renderChildren = function renderChildren() {var _this$props2 = this.props,items = _this$props2.items,children = _this$props2.children;(0, _invariant.default)(!items && children || items && !children, 'Either items or children must be passed, not both');return items ? mapItems(this.renderRadio, items) : children;};return RadioGroup;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RadioGroup', _class2.displayName = 'RadioGroup', _class2.defaultProps = { renderItem: renderItem }, _class2.Prevent = _Prevent.Prevent, _temp)) || _class;exports.RadioGroup = RadioGroup;function renderItem(_value, data) {
259
260
  return data;
260
261
  }
261
262
 
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioGroup.tsx"],"names":["RadioGroupDataTids","root","RadioGroup","rootNode","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","styles","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","React","Component","__KONTUR_REACT_UI__","Prevent","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\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 /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\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 defaultProps: 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, 'aria-describedby': ariaDescribedby } = 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\n data-tid={RadioGroupDataTids.root}\n ref={this.ref}\n style={style}\n className={styles.root()}\n role=\"radiogroup\"\n {...handlers}\n aria-describedby={ariaDescribedby}\n >\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} role=\"presentation\">\n <Radio value={itemValue}>{this.getProps().renderItem(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"]}
1
+ {"version":3,"sources":["RadioGroup.tsx"],"names":["RadioGroupDataTids","root","RadioGroup","rootNode","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","styles","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","React","Component","__KONTUR_REACT_UI__","displayName","Prevent","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\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 /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\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 public static displayName = 'RadioGroup';\n\n public static defaultProps: 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, 'aria-describedby': ariaDescribedby } = 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\n data-tid={RadioGroupDataTids.root}\n ref={this.ref}\n style={style}\n className={styles.root()}\n role=\"radiogroup\"\n {...handlers}\n aria-describedby={ariaDescribedby}\n >\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} role=\"presentation\">\n <Radio value={itemValue}>{this.getProps().renderItem(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"]}
@@ -11,5 +11,6 @@ interface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {
11
11
  export declare function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>): JSX.Element;
12
12
  export declare namespace ResponsiveLayout {
13
13
  var __KONTUR_REACT_UI__: string;
14
+ var displayName: string;
14
15
  }
15
16
  export {};
@@ -32,4 +32,5 @@ function ResponsiveLayout(props) {var _props$children, _props$children2;
32
32
 
33
33
  }
34
34
 
35
- ResponsiveLayout.__KONTUR_REACT_UI__ = 'ResponsiveLayout';
35
+ ResponsiveLayout.__KONTUR_REACT_UI__ = 'ResponsiveLayout';
36
+ ResponsiveLayout.displayName = 'ResponsiveLayout';
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","customMediaQueries","onLayoutChange","children","__KONTUR_REACT_UI__"],"mappings":"mFAAA;;AAEA;AACA;;;AAGA,4D;;;;;;;;AAQA;AACA;AACA;;AAEO,SAASA,gBAAT,CAAoEC,KAApE,EAAqG;AAC1G,MAAMC,WAAW,GAAG,8CAAuB,EAAEC,kBAAkB,EAAEF,KAAK,CAACE,kBAA5B,EAAvB,CAApB;;AAEA,wBAAU,YAAM;AACd,QAAIF,KAAK,CAACG,cAAV,EAA0B;AACxBH,MAAAA,KAAK,CAACG,cAAN,CAAqBF,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACI,QAAjB,uBAA6BJ,KAAK,CAACI,QAAN,CAAeH,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACI,QAAzE,+BAAqF,IADxF,CADF;;;AAKD;;AAEDL,gBAAgB,CAACM,mBAAjB,GAAuC,kBAAvC","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n customMediaQueries?: T;\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n\nResponsiveLayout.__KONTUR_REACT_UI__ = 'ResponsiveLayout';\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","customMediaQueries","onLayoutChange","children","__KONTUR_REACT_UI__","displayName"],"mappings":"mFAAA;;AAEA;AACA;;;AAGA,4D;;;;;;;;AAQA;AACA;AACA;;AAEO,SAASA,gBAAT,CAAoEC,KAApE,EAAqG;AAC1G,MAAMC,WAAW,GAAG,8CAAuB,EAAEC,kBAAkB,EAAEF,KAAK,CAACE,kBAA5B,EAAvB,CAApB;;AAEA,wBAAU,YAAM;AACd,QAAIF,KAAK,CAACG,cAAV,EAA0B;AACxBH,MAAAA,KAAK,CAACG,cAAN,CAAqBF,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACI,QAAjB,uBAA6BJ,KAAK,CAACI,QAAN,CAAeH,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACI,QAAzE,+BAAqF,IADxF,CADF;;;AAKD;;AAEDL,gBAAgB,CAACM,mBAAjB,GAAuC,kBAAvC;AACAN,gBAAgB,CAACO,WAAjB,GAA+B,kBAA/B","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n customMediaQueries?: T;\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n\nResponsiveLayout.__KONTUR_REACT_UI__ = 'ResponsiveLayout';\nResponsiveLayout.displayName = 'ResponsiveLayout';\n"]}
@@ -72,6 +72,7 @@ interface ScrollContainerState {
72
72
  }
73
73
  export declare class ScrollContainer extends React.Component<ScrollContainerProps, ScrollContainerState> {
74
74
  static __KONTUR_REACT_UI__: string;
75
+ static displayName: string;
75
76
  inner: Nullable<HTMLElement>;
76
77
  static propTypes: {
77
78
  invert: PropTypes.Requireable<boolean>;