@skbkontur/react-ui 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
  3. package/cjs/components/Autocomplete/Autocomplete.js +10 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +4 -5
  6. package/cjs/components/Button/Button.js +8 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.mixins.js +1 -1
  9. package/cjs/components/Button/Button.mixins.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.js +18 -18
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +4 -3
  13. package/cjs/components/Center/Center.js +9 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.md +48 -0
  16. package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
  17. package/cjs/components/ComboBox/ComboBox.js +12 -2
  18. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -6
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  24. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  25. package/cjs/components/DateInput/DateInput.d.ts +8 -11
  26. package/cjs/components/DateInput/DateInput.js +11 -3
  27. package/cjs/components/DateInput/DateInput.js.map +1 -1
  28. package/cjs/components/DatePicker/DatePicker.d.ts +6 -8
  29. package/cjs/components/DatePicker/DatePicker.js +12 -6
  30. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  31. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  32. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  33. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  34. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  35. package/cjs/components/FxInput/FxInput.js +13 -10
  36. package/cjs/components/FxInput/FxInput.js.map +1 -1
  37. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  38. package/cjs/components/Gapped/Gapped.js +12 -6
  39. package/cjs/components/Gapped/Gapped.js.map +1 -1
  40. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  41. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  42. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  43. package/cjs/components/Hint/Hint.d.ts +7 -11
  44. package/cjs/components/Hint/Hint.js +15 -5
  45. package/cjs/components/Hint/Hint.js.map +1 -1
  46. package/cjs/components/Input/Input.d.ts +4 -3
  47. package/cjs/components/Input/Input.js +7 -4
  48. package/cjs/components/Input/Input.js.map +1 -1
  49. package/cjs/components/Kebab/Kebab.d.ts +7 -11
  50. package/cjs/components/Kebab/Kebab.js +14 -5
  51. package/cjs/components/Kebab/Kebab.js.map +1 -1
  52. package/cjs/components/Link/Link.d.ts +4 -4
  53. package/cjs/components/Link/Link.js +11 -4
  54. package/cjs/components/Link/Link.js.map +1 -1
  55. package/cjs/components/Loader/Loader.d.ts +7 -4
  56. package/cjs/components/Loader/Loader.js +14 -4
  57. package/cjs/components/Loader/Loader.js.map +1 -1
  58. package/cjs/components/Modal/Modal.d.ts +4 -3
  59. package/cjs/components/Modal/Modal.js +8 -3
  60. package/cjs/components/Modal/Modal.js.map +1 -1
  61. package/cjs/components/Modal/ModalFooter.js +1 -1
  62. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  63. package/cjs/components/Modal/ModalHeader.js +1 -1
  64. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  65. package/cjs/components/Paging/Paging.d.ts +6 -9
  66. package/cjs/components/Paging/Paging.js +15 -5
  67. package/cjs/components/Paging/Paging.js.map +1 -1
  68. package/cjs/components/Paging/PagingDefaultComponent.d.ts +1 -1
  69. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  70. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  71. package/cjs/components/PasswordInput/PasswordInput.js +8 -3
  72. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  73. package/cjs/components/Radio/Radio.d.ts +4 -3
  74. package/cjs/components/Radio/Radio.js +8 -3
  75. package/cjs/components/Radio/Radio.js.map +1 -1
  76. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  77. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  78. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  79. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  80. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  81. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  82. package/cjs/components/ScrollContainer/ScrollContainer.js +11 -5
  83. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  84. package/cjs/components/Select/Select.d.ts +3 -12
  85. package/cjs/components/Select/Select.js +6 -1
  86. package/cjs/components/Select/Select.js.map +1 -1
  87. package/cjs/components/Select/Select.styles.js +4 -4
  88. package/cjs/components/Select/Select.styles.js.map +1 -1
  89. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  90. package/cjs/components/SidePage/SidePage.js +8 -1
  91. package/cjs/components/SidePage/SidePage.js.map +1 -1
  92. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  93. package/cjs/components/Spinner/Spinner.js +9 -3
  94. package/cjs/components/Spinner/Spinner.js.map +1 -1
  95. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  96. package/cjs/components/Sticky/Sticky.js +9 -2
  97. package/cjs/components/Sticky/Sticky.js.map +1 -1
  98. package/cjs/components/Tabs/Tab.d.ts +4 -4
  99. package/cjs/components/Tabs/Tab.js +11 -13
  100. package/cjs/components/Tabs/Tab.js.map +1 -1
  101. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  102. package/cjs/components/Tabs/Tabs.js +12 -3
  103. package/cjs/components/Tabs/Tabs.js.map +1 -1
  104. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  105. package/cjs/components/Textarea/Textarea.js +10 -6
  106. package/cjs/components/Textarea/Textarea.js.map +1 -1
  107. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  108. package/cjs/components/Toggle/Toggle.js +10 -4
  109. package/cjs/components/Toggle/Toggle.js.map +1 -1
  110. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  111. package/cjs/components/TokenInput/TokenInput.js +75 -57
  112. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  113. package/cjs/components/Tooltip/Tooltip.d.ts +11 -14
  114. package/cjs/components/Tooltip/Tooltip.js +26 -14
  115. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  116. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  117. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  118. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  119. package/cjs/internal/BGRuler.d.ts +13 -15
  120. package/cjs/internal/BGRuler.js +16 -8
  121. package/cjs/internal/BGRuler.js.map +1 -1
  122. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  123. package/cjs/internal/Calendar/Calendar.js +10 -5
  124. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  125. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  126. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  127. package/cjs/internal/Calendar/Month.js +16 -11
  128. package/cjs/internal/Calendar/Month.js.map +1 -1
  129. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  130. package/cjs/internal/ComponentCombinator.js +6 -2
  131. package/cjs/internal/ComponentCombinator.js.map +1 -1
  132. package/cjs/internal/ComponentTable.d.ts +5 -6
  133. package/cjs/internal/ComponentTable.js +11 -2
  134. package/cjs/internal/ComponentTable.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  136. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +7 -1
  137. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  138. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  139. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  140. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  141. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  142. package/cjs/internal/DateSelect/DateSelect.js +15 -9
  143. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  144. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  145. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  146. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  147. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  148. package/cjs/internal/InputLikeText/InputLikeText.js +7 -2
  149. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  150. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  151. package/cjs/internal/InternalMenu/InternalMenu.js +16 -6
  152. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  153. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  154. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  155. package/cjs/internal/MaskedInput/MaskedInput.d.ts +4 -2
  156. package/cjs/internal/MaskedInput/MaskedInput.js +7 -2
  157. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  158. package/cjs/internal/Menu/Menu.d.ts +4 -7
  159. package/cjs/internal/Menu/Menu.js +7 -1
  160. package/cjs/internal/Menu/Menu.js.map +1 -1
  161. package/cjs/internal/Popup/Popup.d.ts +10 -16
  162. package/cjs/internal/Popup/Popup.js +21 -7
  163. package/cjs/internal/Popup/Popup.js.map +1 -1
  164. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  165. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  166. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  167. package/cjs/internal/RenderLayer/RenderLayer.d.ts +5 -3
  168. package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
  169. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  170. package/cjs/internal/ThemePlayground/VariableValue.d.ts +5 -4
  171. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  172. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  173. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  174. package/cjs/internal/ZIndex/ZIndex.js +10 -3
  175. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  176. package/cjs/lib/createPropsGetter.d.ts +2 -1
  177. package/cjs/lib/createPropsGetter.js +2 -0
  178. package/cjs/lib/createPropsGetter.js.map +1 -1
  179. package/components/Autocomplete/Autocomplete/Autocomplete.js +22 -12
  180. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  181. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  182. package/components/Button/Button/Button.js +11 -5
  183. package/components/Button/Button/Button.js.map +1 -1
  184. package/components/Button/Button.d.ts +4 -5
  185. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  186. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  187. package/components/Button/Button.styles/Button.styles.js +18 -18
  188. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  189. package/components/Center/Center/Center.js +7 -5
  190. package/components/Center/Center/Center.js.map +1 -1
  191. package/components/Center/Center.d.ts +4 -3
  192. package/components/Checkbox/Checkbox.md +48 -0
  193. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  194. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  195. package/components/ComboBox/ComboBox.d.ts +8 -13
  196. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +21 -18
  197. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  198. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  199. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  200. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  201. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  202. package/components/DateInput/DateInput/DateInput.js +17 -4
  203. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  204. package/components/DateInput/DateInput.d.ts +8 -11
  205. package/components/DatePicker/DatePicker/DatePicker.js +12 -9
  206. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  207. package/components/DatePicker/DatePicker.d.ts +6 -8
  208. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  209. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  210. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  211. package/components/FxInput/FxInput/FxInput.js +11 -9
  212. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  213. package/components/FxInput/FxInput.d.ts +6 -6
  214. package/components/Gapped/Gapped/Gapped.js +17 -8
  215. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  216. package/components/Gapped/Gapped.d.ts +7 -8
  217. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  218. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  219. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  220. package/components/Hint/Hint/Hint.js +30 -18
  221. package/components/Hint/Hint/Hint.js.map +1 -1
  222. package/components/Hint/Hint.d.ts +7 -11
  223. package/components/Input/Input/Input.js +9 -7
  224. package/components/Input/Input/Input.js.map +1 -1
  225. package/components/Input/Input.d.ts +4 -3
  226. package/components/Kebab/Kebab/Kebab.js +19 -8
  227. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  228. package/components/Kebab/Kebab.d.ts +7 -11
  229. package/components/Link/Link/Link.js +9 -6
  230. package/components/Link/Link/Link.js.map +1 -1
  231. package/components/Link/Link.d.ts +4 -4
  232. package/components/Loader/Loader/Loader.js +22 -17
  233. package/components/Loader/Loader/Loader.js.map +1 -1
  234. package/components/Loader/Loader.d.ts +7 -4
  235. package/components/Modal/Modal/Modal.js +3 -1
  236. package/components/Modal/Modal/Modal.js.map +1 -1
  237. package/components/Modal/Modal.d.ts +4 -3
  238. package/components/Modal/ModalFooter/ModalFooter.js +2 -2
  239. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  240. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  241. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  242. package/components/Paging/Paging/Paging.js +24 -14
  243. package/components/Paging/Paging/Paging.js.map +1 -1
  244. package/components/Paging/Paging.d.ts +6 -9
  245. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  246. package/components/Paging/PagingDefaultComponent.d.ts +1 -1
  247. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -5
  248. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  249. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  250. package/components/Radio/Radio/Radio.js +7 -5
  251. package/components/Radio/Radio/Radio.js.map +1 -1
  252. package/components/Radio/Radio.d.ts +4 -3
  253. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  254. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  255. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  256. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  257. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  258. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +10 -6
  259. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  260. package/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  261. package/components/Select/Select/Select.js +4 -3
  262. package/components/Select/Select/Select.js.map +1 -1
  263. package/components/Select/Select.d.ts +3 -12
  264. package/components/Select/Select.styles/Select.styles.js +4 -4
  265. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  266. package/components/SidePage/SidePage/SidePage.js +14 -9
  267. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  268. package/components/SidePage/SidePage.d.ts +5 -6
  269. package/components/Spinner/Spinner/Spinner.js +7 -5
  270. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  271. package/components/Spinner/Spinner.d.ts +4 -2
  272. package/components/Sticky/Sticky/Sticky.js +7 -4
  273. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  274. package/components/Sticky/Sticky.d.ts +5 -4
  275. package/components/Tabs/Tab/Tab.js +15 -7
  276. package/components/Tabs/Tab/Tab.js.map +1 -1
  277. package/components/Tabs/Tab.d.ts +4 -4
  278. package/components/Tabs/Tabs/Tabs.js +10 -8
  279. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  280. package/components/Tabs/Tabs.d.ts +4 -4
  281. package/components/Textarea/Textarea/Textarea.js +19 -14
  282. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  283. package/components/Textarea/Textarea.d.ts +8 -10
  284. package/components/Toggle/Toggle/Toggle.js +12 -7
  285. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  286. package/components/Toggle/Toggle.d.ts +5 -6
  287. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  288. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  289. package/components/TokenInput/TokenInput.d.ts +19 -16
  290. package/components/Tooltip/Tooltip/Tooltip.js +55 -32
  291. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  292. package/components/Tooltip/Tooltip.d.ts +11 -14
  293. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  294. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  295. package/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  296. package/internal/BGRuler/BGRuler.js +11 -6
  297. package/internal/BGRuler/BGRuler.js.map +1 -1
  298. package/internal/BGRuler.d.ts +13 -15
  299. package/internal/Calendar/Calendar/Calendar.js +11 -5
  300. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  301. package/internal/Calendar/Calendar.d.ts +4 -13
  302. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  303. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  304. package/internal/Calendar/Month/Month.js +20 -11
  305. package/internal/Calendar/Month/Month.js.map +1 -1
  306. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  307. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  308. package/internal/ComponentCombinator.d.ts +6 -8
  309. package/internal/ComponentTable/ComponentTable.js +16 -4
  310. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  311. package/internal/ComponentTable.d.ts +5 -6
  312. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
  313. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  314. package/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  315. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  316. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  317. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  318. package/internal/DateSelect/DateSelect/DateSelect.js +14 -11
  319. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  320. package/internal/DateSelect/DateSelect.d.ts +4 -6
  321. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  322. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  323. package/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  324. package/internal/InputLikeText/InputLikeText/InputLikeText.js +4 -2
  325. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  326. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  327. package/internal/InternalMenu/InternalMenu/InternalMenu.js +21 -10
  328. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  329. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  330. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  331. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  332. package/internal/MaskedInput/MaskedInput/MaskedInput.js +3 -1
  333. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  334. package/internal/MaskedInput/MaskedInput.d.ts +4 -2
  335. package/internal/Menu/Menu/Menu.js +10 -3
  336. package/internal/Menu/Menu/Menu.js.map +1 -1
  337. package/internal/Menu/Menu.d.ts +4 -7
  338. package/internal/Popup/Popup/Popup.js +32 -23
  339. package/internal/Popup/Popup/Popup.js.map +1 -1
  340. package/internal/Popup/Popup.d.ts +10 -16
  341. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  342. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  343. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  344. package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
  345. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  346. package/internal/RenderLayer/RenderLayer.d.ts +5 -3
  347. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  348. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  349. package/internal/ThemePlayground/VariableValue.d.ts +5 -4
  350. package/internal/ZIndex/ZIndex/ZIndex.js +15 -13
  351. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  352. package/internal/ZIndex/ZIndex.d.ts +7 -11
  353. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  354. package/lib/createPropsGetter.d.ts +2 -1
  355. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useEffect","getScrollWidth","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","styles","ModalContext","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","footerWrapper","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,UAA3B,EAAuCC,SAAvC,QAAwD,OAAxD;;AAEA,SAASC,cAAT,QAA+B,8BAA/B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,mBAAT,QAAoC,qBAApC;;AAEA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,YAAT,QAA6B,gBAA7B;;;;;;;;;;;AAWA,OAAO,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B;;;AAIP;AACA;AACA;AACA;AACA;AACA,SAASC,WAAT,CAAqBC,KAArB,EAA8C;AAC5C,MAAMC,KAAK,GAAGf,UAAU,CAACI,YAAD,CAAxB;AACA,MAAMY,KAAK,GAAGhB,UAAU,CAACU,YAAD,CAAxB;AACA,MAAMO,MAAM,GAAGT,mBAAmB,EAAlC;;AAEA,sBAAuDM,KAAvD,CAAQI,MAAR,CAAQA,MAAR,8BAAiB,CAACD,MAAM,CAACE,QAAzB,iBAAmCC,KAAnC,GAAuDN,KAAvD,CAAmCM,KAAnC,CAA0CC,QAA1C,GAAuDP,KAAvD,CAA0CO,QAA1C;;AAEApB,EAAAA,SAAS,CAAC,YAAM;AACde,IAAAA,KAAK,CAACM,YAAN,oBAAAN,KAAK,CAACM,YAAN;AACAN,IAAAA,KAAK,CAACO,WAAN,oBAAAP,KAAK,CAACO,WAAN,CAAoBH,KAApB;;AAEA,WAAO,YAAM;AACXJ,MAAAA,KAAK,CAACM,YAAN,oBAAAN,KAAK,CAACM,YAAN,CAAqB,KAArB;AACAN,MAAAA,KAAK,CAACO,WAAN,oBAAAP,KAAK,CAACO,WAAN,CAAoB,KAApB;AACD,KAHD;AAID,GARQ,EAQN,CAACH,KAAD,CARM,CAAT;;AAUA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAmB,aAAlBA,KAAkB,cAAlBA,KAAkB,GAAV,KAAU;AACvC;AACE;AACE,oBAAUd,mBAAmB,CAACC,IADhC;AAEE,QAAA,SAAS,EAAEL,EAAE;AACVE,QAAAA,MAAM,CAACiB,MAAP,CAAcX,KAAd,CADU,IACa,IADb;AAEVN,QAAAA,MAAM,CAACkB,WAAP,CAAmBZ,KAAnB,CAFU,IAEkBU,KAFlB;AAGVhB,QAAAA,MAAM,CAACW,KAAP,CAAaL,KAAb,CAHU,IAGYa,OAAO,CAACR,KAAD,CAHnB;AAIVX,QAAAA,MAAM,CAACoB,UAAP,CAAkBd,KAAlB,CAJU,IAIiBU,KAAK,IAAIG,OAAO,CAACR,KAAD,CAJjC;AAKVX,QAAAA,MAAM,CAACqB,YAAP,CAAoBf,KAApB,CALU,IAKmBE,MAAM,CAACE,QAL1B,OAFf;;;AAUGE,MAAAA,QAVH,CADF;;;AAcD,GAfD;;AAiBA;AACE,wBAAC,aAAD,EAAmBP,KAAnB;AACE,wBAAC,MAAD,IAAQ,QAAQ,EAAE,aAAlB,EAAiC,SAAS,EAAEL,MAAM,CAACsB,aAAP,EAA5C;AACGb,IAAAA,MAAM;AACL,wBAAC,MAAD,IAAQ,IAAI,EAAC,QAAb,EAAsB,MAAM,EAAEF,KAAK,CAACgB,gBAAN,GAAyB9B,cAAc,EAAvC,GAA4C,CAA1E;AACGsB,IAAAA,aADH,CADK;;;AAKLA,IAAAA,aAAa,EANjB,CADF,CADF;;;;;AAaD;;AAEDX,WAAW,CAACoB,mBAAZ,GAAkC,aAAlC;AACApB,WAAW,CAACqB,gBAAZ,GAA+B,IAA/B;;AAEA,SAASrB,WAAT","sourcesContent":["import React, { ReactNode, useContext, useEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, panel, children } = props;\n\n useEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx({\n [styles.footer(theme)]: true,\n [styles.fixedFooter(theme)]: fixed,\n [styles.panel(theme)]: Boolean(panel),\n [styles.fixedPanel(theme)]: fixed && Boolean(panel),\n [styles.mobileFooter(theme)]: layout.isMobile,\n })}\n >\n {children}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalFooter'} className={styles.footerWrapper()}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"]}
1
+ {"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","styles","ModalContext","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","footerWrapper","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,UAA3B,EAAuCC,eAAvC,QAA8D,OAA9D;;AAEA,SAASC,cAAT,QAA+B,8BAA/B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,mBAAT,QAAoC,qBAApC;;AAEA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,YAAT,QAA6B,gBAA7B;;;;;;;;;;;AAWA,OAAO,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B;;;AAIP;AACA;AACA;AACA;AACA;AACA,SAASC,WAAT,CAAqBC,KAArB,EAA8C;AAC5C,MAAMC,KAAK,GAAGf,UAAU,CAACI,YAAD,CAAxB;AACA,MAAMY,KAAK,GAAGhB,UAAU,CAACU,YAAD,CAAxB;AACA,MAAMO,MAAM,GAAGT,mBAAmB,EAAlC;;AAEA,sBAAuDM,KAAvD,CAAQI,MAAR,CAAQA,MAAR,8BAAiB,CAACD,MAAM,CAACE,QAAzB,iBAAmCC,KAAnC,GAAuDN,KAAvD,CAAmCM,KAAnC,CAA0CC,QAA1C,GAAuDP,KAAvD,CAA0CO,QAA1C;;AAEApB,EAAAA,eAAe,CAAC,YAAM;AACpBe,IAAAA,KAAK,CAACM,YAAN,oBAAAN,KAAK,CAACM,YAAN;AACAN,IAAAA,KAAK,CAACO,WAAN,oBAAAP,KAAK,CAACO,WAAN,CAAoBH,KAApB;;AAEA,WAAO,YAAM;AACXJ,MAAAA,KAAK,CAACM,YAAN,oBAAAN,KAAK,CAACM,YAAN,CAAqB,KAArB;AACAN,MAAAA,KAAK,CAACO,WAAN,oBAAAP,KAAK,CAACO,WAAN,CAAoB,KAApB;AACD,KAHD;AAID,GARc,EAQZ,CAACH,KAAD,CARY,CAAf;;AAUA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAmB,aAAlBA,KAAkB,cAAlBA,KAAkB,GAAV,KAAU;AACvC;AACE;AACE,oBAAUd,mBAAmB,CAACC,IADhC;AAEE,QAAA,SAAS,EAAEL,EAAE;AACVE,QAAAA,MAAM,CAACiB,MAAP,CAAcX,KAAd,CADU,IACa,IADb;AAEVN,QAAAA,MAAM,CAACkB,WAAP,CAAmBZ,KAAnB,CAFU,IAEkBU,KAFlB;AAGVhB,QAAAA,MAAM,CAACW,KAAP,CAAaL,KAAb,CAHU,IAGYa,OAAO,CAACR,KAAD,CAHnB;AAIVX,QAAAA,MAAM,CAACoB,UAAP,CAAkBd,KAAlB,CAJU,IAIiBU,KAAK,IAAIG,OAAO,CAACR,KAAD,CAJjC;AAKVX,QAAAA,MAAM,CAACqB,YAAP,CAAoBf,KAApB,CALU,IAKmBE,MAAM,CAACE,QAL1B,OAFf;;;AAUGE,MAAAA,QAVH,CADF;;;AAcD,GAfD;;AAiBA;AACE,wBAAC,aAAD,EAAmBP,KAAnB;AACE,wBAAC,MAAD,IAAQ,QAAQ,EAAE,aAAlB,EAAiC,SAAS,EAAEL,MAAM,CAACsB,aAAP,EAA5C;AACGb,IAAAA,MAAM;AACL,wBAAC,MAAD,IAAQ,IAAI,EAAC,QAAb,EAAsB,MAAM,EAAEF,KAAK,CAACgB,gBAAN,GAAyB9B,cAAc,EAAvC,GAA4C,CAA1E;AACGsB,IAAAA,aADH,CADK;;;AAKLA,IAAAA,aAAa,EANjB,CADF,CADF;;;;;AAaD;;AAEDX,WAAW,CAACoB,mBAAZ,GAAkC,aAAlC;AACApB,WAAW,CAACqB,gBAAZ,GAA+B,IAA/B;;AAEA,SAASrB,WAAT","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx({\n [styles.footer(theme)]: true,\n [styles.fixedFooter(theme)]: fixed,\n [styles.panel(theme)]: Boolean(panel),\n [styles.fixedPanel(theme)]: fixed && Boolean(panel),\n [styles.mobileFooter(theme)]: layout.isMobile,\n })}\n >\n {children}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalFooter'} className={styles.footerWrapper()}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"]}
@@ -1,4 +1,4 @@
1
- import React, { useContext, useEffect } from 'react';
1
+ import React, { useContext, useLayoutEffect } from 'react';
2
2
  import { Sticky } from "../../Sticky";
3
3
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
4
4
  import { ZIndex } from "../../../internal/ZIndex";
@@ -24,7 +24,7 @@ function ModalHeader(props) {
24
24
  var _props$sticky = props.sticky,
25
25
  sticky = _props$sticky === void 0 ? !layout.isMobile : _props$sticky,
26
26
  children = props.children;
27
- useEffect(function () {
27
+ useLayoutEffect(function () {
28
28
  modal.setHasHeader == null ? void 0 : modal.setHasHeader();
29
29
  return function () {
30
30
  return modal.setHasHeader == null ? void 0 : modal.setHasHeader(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useEffect","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","headerAddPadding","Boolean","additionalPadding","fixedHeader","mobileFixedHeader","headerWithClose","close","mobileHeaderWithClose","requestClose","disableClose","headerWrapper","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx({\n [styles.header(theme)]: true,\n [styles.mobileHeader(theme)]: layout.isMobile,\n [styles.headerAddPadding()]: Boolean(modal.additionalPadding),\n [styles.fixedHeader(theme)]: fixed,\n [styles.mobileFixedHeader(theme)]: fixed && layout.isMobile,\n [styles.headerWithClose(theme)]: Boolean(modal.close),\n [styles.mobileHeaderWithClose(theme)]: layout.isMobile,\n })}\n >\n {modal.close && <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />}\n {children}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalHeader'} className={styles.headerWrapper()}>\n {sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"]}
1
+ {"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","ZIndex","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","headerAddPadding","Boolean","additionalPadding","fixedHeader","mobileFixedHeader","headerWithClose","close","mobileHeaderWithClose","requestClose","disableClose","headerWrapper","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx({\n [styles.header(theme)]: true,\n [styles.mobileHeader(theme)]: layout.isMobile,\n [styles.headerAddPadding()]: Boolean(modal.additionalPadding),\n [styles.fixedHeader(theme)]: fixed,\n [styles.mobileFixedHeader(theme)]: fixed && layout.isMobile,\n [styles.headerWithClose(theme)]: Boolean(modal.close),\n [styles.mobileHeaderWithClose(theme)]: layout.isMobile,\n })}\n >\n {modal.close && <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />}\n {children}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n <ZIndex priority={'ModalHeader'} className={styles.headerWrapper()}>\n {sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}\n </ZIndex>\n </CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"]}
@@ -15,6 +15,7 @@ import { ArrowChevronRightIcon } from "../../../internal/icons/16px";
15
15
  import { CommonWrapper } from "../../../internal/CommonWrapper";
16
16
  import { cx } from "../../../lib/theming/Emotion";
17
17
  import { rootNode } from "../../../lib/rootNode";
18
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
18
19
  import { styles } from "../Paging.styles";
19
20
  import * as NavigationHelper from "../NavigationHelper";
20
21
  import { getItems } from "../PagingHelper";
@@ -39,10 +40,11 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
39
40
  }
40
41
 
41
42
  _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;
43
+ _this.getProps = createPropsGetter(Paging.defaultProps);
42
44
  _this.state = {
43
45
  focusedByTab: false,
44
46
  focusedItem: null,
45
- keyboardControl: _this.props.useGlobalListener
47
+ keyboardControl: _this.getProps().useGlobalListener
46
48
  };
47
49
  _this.addedGlobalListener = false;
48
50
  _this.container = null;
@@ -84,9 +86,10 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
84
86
  var _cx;
85
87
 
86
88
  var classes = cx((_cx = {}, _cx[styles.forwardLink(_this.theme)] = true, _cx[styles.forwardLinkFocused()] = focused, _cx[styles.disabled(_this.theme)] = disabled, _cx));
87
- var _this$props = _this.props,
88
- Component = _this$props.component,
89
- caption = _this$props.caption;
89
+ var caption = _this.props.caption;
90
+
91
+ var Component = _this.getProps().component;
92
+
90
93
  var forward = _this.locale.forward;
91
94
  return /*#__PURE__*/React.createElement(Component, {
92
95
  key: 'forward',
@@ -107,7 +110,8 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
107
110
  var _cx2;
108
111
 
109
112
  var classes = cx((_cx2 = {}, _cx2[styles.pageLink(_this.theme)] = true, _cx2[styles.pageLinkFocused(_this.theme)] = focused, _cx2[styles.active(_this.theme)] = active, _cx2));
110
- var Component = _this.props.component;
113
+
114
+ var Component = _this.getProps().component;
111
115
 
112
116
  var handleClick = function handleClick() {
113
117
  return _this.goToPage(pageNumber);
@@ -248,7 +252,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
248
252
  _this.handleBlur = function () {
249
253
  _this.setState({
250
254
  focusedByTab: false,
251
- keyboardControl: _this.props.useGlobalListener || false
255
+ keyboardControl: _this.getProps().useGlobalListener || false
252
256
  });
253
257
  };
254
258
 
@@ -377,7 +381,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
377
381
  var _proto = Paging.prototype;
378
382
 
379
383
  _proto.componentDidMount = function componentDidMount() {
380
- var useGlobalListener = this.props.useGlobalListener;
384
+ var useGlobalListener = this.getProps().useGlobalListener;
381
385
 
382
386
  if (useGlobalListener) {
383
387
  this.addGlobalListener();
@@ -385,17 +389,19 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
385
389
  };
386
390
 
387
391
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
388
- if (!prevProps.useGlobalListener && this.props.useGlobalListener) {
392
+ var useGlobalListener = this.getProps().useGlobalListener;
393
+
394
+ if (!prevProps.useGlobalListener && useGlobalListener) {
389
395
  this.addGlobalListener();
390
396
  }
391
397
 
392
- if (prevProps.useGlobalListener && !this.props.useGlobalListener) {
398
+ if (prevProps.useGlobalListener && !useGlobalListener) {
393
399
  this.removeGlobalListener();
394
400
  }
395
401
 
396
- if (prevProps.useGlobalListener !== this.props.useGlobalListener) {
402
+ if (prevProps.useGlobalListener !== useGlobalListener) {
397
403
  this.setState({
398
- keyboardControl: this.props.useGlobalListener
404
+ keyboardControl: useGlobalListener
399
405
  });
400
406
  }
401
407
  };
@@ -407,7 +413,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
407
413
  _proto.render = function render() {
408
414
  var _this2 = this;
409
415
 
410
- if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {
416
+ if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {
411
417
  return null;
412
418
  }
413
419
 
@@ -418,13 +424,17 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
418
424
  };
419
425
 
420
426
  _proto.renderMain = function renderMain() {
427
+ var _this$getProps = this.getProps(),
428
+ dataTid = _this$getProps['data-tid'],
429
+ useGlobalListener = _this$getProps.useGlobalListener;
430
+
421
431
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
422
432
  rootNodeRef: this.setRootNode
423
433
  }, this.props), /*#__PURE__*/React.createElement("span", {
424
434
  tabIndex: 0,
425
- "data-tid": this.props['data-tid'],
435
+ "data-tid": dataTid,
426
436
  className: styles.paging(this.theme),
427
- onKeyDown: this.props.useGlobalListener ? undefined : this.handleKeyDown,
437
+ onKeyDown: useGlobalListener ? undefined : this.handleKeyDown,
428
438
  onFocus: this.handleFocus,
429
439
  onBlur: this.handleBlur,
430
440
  onMouseDown: this.handleMouseDown,
@@ -1 +1 @@
1
- {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","theme","classes","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLinkFocused","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid={PagingDataTids.dots} key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
1
+ {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","theme","classes","forwardLinkFocused","caption","Component","component","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLinkFocused","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","dataTid","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component?: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener?: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\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={0}\n data-tid={dataTid}\n className={styles.paging(this.theme)}\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 data-tid={PagingDataTids.dots} key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { caption } = this.props;\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.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 if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.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 document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
@@ -15,7 +15,7 @@ export interface PagingProps extends CommonProps {
15
15
  * Компонент обертки по умолчанию
16
16
  * @default <span />
17
17
  */
18
- component: React.ComponentType<ItemComponentProps>;
18
+ component?: React.ComponentType<ItemComponentProps>;
19
19
  onPageChange: (pageNumber: number) => void;
20
20
  pagesCount: number;
21
21
  disabled?: boolean;
@@ -32,7 +32,7 @@ export interface PagingProps extends CommonProps {
32
32
  * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться
33
33
  * на каждом из них. Такие случаи лучше обрабатывать отдельно.
34
34
  */
35
- useGlobalListener: boolean;
35
+ useGlobalListener?: boolean;
36
36
  /**
37
37
  * Определяет, нужно ли показывать `Paging` когда страница всего одна.
38
38
  *
@@ -41,7 +41,7 @@ export interface PagingProps extends CommonProps {
41
41
  *
42
42
  * @default false
43
43
  */
44
- shouldBeVisibleWithLessThanTwoPages: boolean;
44
+ shouldBeVisibleWithLessThanTwoPages?: boolean;
45
45
  }
46
46
  export interface PagingState {
47
47
  focusedByTab: boolean;
@@ -56,14 +56,11 @@ export declare const PagingDataTids: {
56
56
  readonly pageLinkWrapper: "Paging__pageLinkWrapper";
57
57
  readonly pageLink: "Paging__pageLink";
58
58
  };
59
+ declare type DefaultProps = Required<Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>>;
59
60
  export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
60
61
  static __KONTUR_REACT_UI__: string;
61
- static defaultProps: {
62
- component: ({ onClick, className, children, ...rest }: import("./PagingDefaultComponent").PagingDefaultComponentProps) => JSX.Element;
63
- shouldBeVisibleWithLessThanTwoPages: boolean;
64
- useGlobalListener: boolean;
65
- 'data-tid': "Paging__root";
66
- };
62
+ static defaultProps: DefaultProps;
63
+ private getProps;
67
64
  static propTypes: {};
68
65
  private setRootNode;
69
66
  static isForward(pageNumber: number | 'forward'): boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["PagingDefaultComponent.tsx"],"names":["React","extractDataProps","PagingDefaultComponent","onClick","className","children","rest","dataProps"],"mappings":"mNAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,gBAAT,QAAiC,iBAAjC;;;;;;;;;;AAUA,OAAO,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAA4E,KAAzEC,OAAyE,QAAzEA,OAAyE,CAAhEC,SAAgE,QAAhEA,SAAgE,CAArDC,QAAqD,QAArDA,QAAqD,CAAxCC,IAAwC;AAChH,0BAAsBL,gBAAgB,CAACK,IAAD,CAAtC,CAAQC,SAAR,qBAAQA,SAAR;;AAEA;AACE,2CAAM,OAAO,EAAEJ,OAAf,EAAwB,SAAS,EAAEC,SAAnC,IAAkDG,SAAlD;AACGF,IAAAA,QADH,CADF;;;AAKD,CARM","sourcesContent":["import React from 'react';\n\nimport { extractDataProps } from '../../lib/utils';\nimport { CommonProps } from '../../internal/CommonWrapper';\n\ntype PagingDefaultComponentInterface = {\n onClick: () => void;\n children: React.ReactNode;\n};\n\nexport type PagingDefaultComponentProps = PagingDefaultComponentInterface & Pick<CommonProps, 'className'>;\n\nexport const PagingDefaultComponent = ({ onClick, className, children, ...rest }: PagingDefaultComponentProps) => {\n const { dataProps } = extractDataProps(rest);\n\n return (\n <span onClick={onClick} className={className} {...dataProps}>\n {children}\n </span>\n );\n};\n"]}
1
+ {"version":3,"sources":["PagingDefaultComponent.tsx"],"names":["React","extractDataProps","PagingDefaultComponent","onClick","className","children","rest","dataProps"],"mappings":"mNAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,gBAAT,QAAiC,iBAAjC;;;;;;;;;;AAUA,OAAO,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAA4E,KAAzEC,OAAyE,QAAzEA,OAAyE,CAAhEC,SAAgE,QAAhEA,SAAgE,CAArDC,QAAqD,QAArDA,QAAqD,CAAxCC,IAAwC;AAChH,0BAAsBL,gBAAgB,CAACK,IAAD,CAAtC,CAAQC,SAAR,qBAAQA,SAAR;;AAEA;AACE,2CAAM,OAAO,EAAEJ,OAAf,EAAwB,SAAS,EAAEC,SAAnC,IAAkDG,SAAlD;AACGF,IAAAA,QADH,CADF;;;AAKD,CARM","sourcesContent":["import React from 'react';\n\nimport { extractDataProps } from '../../lib/utils';\nimport { CommonProps } from '../../internal/CommonWrapper';\n\ntype PagingDefaultComponentInterface = {\n onClick: () => void;\n children?: React.ReactNode;\n};\n\nexport type PagingDefaultComponentProps = PagingDefaultComponentInterface & Pick<CommonProps, 'className'>;\n\nexport const PagingDefaultComponent = ({ onClick, className, children, ...rest }: PagingDefaultComponentProps) => {\n const { dataProps } = extractDataProps(rest);\n\n return (\n <span onClick={onClick} className={className} {...dataProps}>\n {children}\n </span>\n );\n};\n"]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { CommonProps } from '../../internal/CommonWrapper';
3
3
  declare type PagingDefaultComponentInterface = {
4
4
  onClick: () => void;
5
- children: React.ReactNode;
5
+ children?: React.ReactNode;
6
6
  };
7
7
  export declare type PagingDefaultComponentProps = PagingDefaultComponentInterface & Pick<CommonProps, 'className'>;
8
8
  export declare const PagingDefaultComponent: ({ onClick, className, children, ...rest }: PagingDefaultComponentProps) => JSX.Element;
@@ -18,6 +18,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
18
18
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
19
19
  import { cx } from "../../../lib/theming/Emotion";
20
20
  import { rootNode } from "../../../lib/rootNode";
21
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
21
22
  import { styles } from "../PasswordInput.styles";
22
23
  import { PasswordInputIcon } from "../PasswordInputIcon";
23
24
  export var PasswordInputDataTids = {
@@ -25,11 +26,11 @@ export var PasswordInputDataTids = {
25
26
  capsLockDetector: 'PasswordInputCapsLockDetector',
26
27
  eyeIcon: 'PasswordInputEyeIcon'
27
28
  };
29
+ export
28
30
  /**
29
- * Компонент для ввода пароля
30
- */
31
-
32
- export var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {
31
+ * Компонент для ввода пароля
32
+ */
33
+ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {
33
34
  _inheritsLoose(PasswordInput, _React$PureComponent);
34
35
 
35
36
  function PasswordInput() {
@@ -40,6 +41,7 @@ export var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
40
41
  }
41
42
 
42
43
  _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;
44
+ _this.getProps = createPropsGetter(PasswordInput.defaultProps);
43
45
  _this.state = {
44
46
  visible: false,
45
47
  capsLockEnabled: false
@@ -215,7 +217,7 @@ export var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
215
217
  right = false;
216
218
  }
217
219
 
218
- switch (this.props.size) {
220
+ switch (this.getProps().size) {
219
221
  case 'large':
220
222
  return styles.eyeWrapperLarge(this.theme);
221
223
 
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span\n data-tid={PasswordInputDataTids.eyeIcon}\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","RenderLayer","isNonNullable","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","createPropsGetter","styles","PasswordInputIcon","PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: 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\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && isNonNullable(capsLockEnabled)) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.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\n data-tid={PasswordInputDataTids.eyeIcon}\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
@@ -14,6 +14,7 @@ export declare const PasswordInputDataTids: {
14
14
  readonly capsLockDetector: "PasswordInputCapsLockDetector";
15
15
  readonly eyeIcon: "PasswordInputEyeIcon";
16
16
  };
17
+ declare type DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;
17
18
  /**
18
19
  * Компонент для ввода пароля
19
20
  */
@@ -25,9 +26,8 @@ export declare class PasswordInput extends React.PureComponent<PasswordInputProp
25
26
  */
26
27
  detectCapsLock: PropTypes.Requireable<boolean>;
27
28
  };
28
- static defaultProps: {
29
- size: string;
30
- };
29
+ static defaultProps: DefaultProps;
30
+ private getProps;
31
31
  state: PasswordInputState;
32
32
  private theme;
33
33
  private input;
@@ -54,3 +54,4 @@ export declare class PasswordInput extends React.PureComponent<PasswordInputProp
54
54
  private hideSymbols;
55
55
  private renderMain;
56
56
  }
57
+ export {};
@@ -14,15 +14,16 @@ import { rootNode } from "../../../lib/rootNode";
14
14
  import { fixFirefoxModifiedClickOnLabel } from "../../../lib/events/fixFirefoxModifiedClickOnLabel";
15
15
  import { isEdge, isIE11 } from "../../../lib/client";
16
16
  import { RadioGroupContext } from "../../RadioGroup/RadioGroupContext";
17
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
17
18
  import { styles, globalClasses } from "../Radio.styles";
18
19
  export var RadioDataTids = {
19
20
  root: 'Radio__root'
20
21
  };
22
+ export
21
23
  /**
22
- * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
23
- */
24
-
25
- export var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
24
+ * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
25
+ */
26
+ var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
26
27
  _inheritsLoose(Radio, _React$Component);
27
28
 
28
29
  function Radio() {
@@ -36,6 +37,7 @@ export var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
36
37
  _this.state = {
37
38
  focusedByKeyboard: false
38
39
  };
40
+ _this.getProps = createPropsGetter(Radio.defaultProps);
39
41
  _this.context = _this.context;
40
42
  _this.inputEl = /*#__PURE__*/React.createRef();
41
43
 
@@ -56,7 +58,7 @@ export var Radio = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
56
58
  rest = _objectWithoutPropertiesLoose(props, _excluded);
57
59
 
58
60
  var radioProps = {
59
- className: cx((_cx = {}, _cx[styles.circle(_this.theme)] = true, _cx[styles.checked(_this.theme)] = _this.props.checked, _cx[styles.focus(_this.theme)] = _this.props.focused || _this.state.focusedByKeyboard, _cx[styles.error(_this.theme)] = error, _cx[styles.warning(_this.theme)] = warning, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.checkedDisabled(_this.theme)] = _this.props.checked && disabled, _cx[globalClasses.circle] = true, _cx))
61
+ className: cx((_cx = {}, _cx[styles.circle(_this.theme)] = true, _cx[styles.checked(_this.theme)] = _this.props.checked, _cx[styles.focus(_this.theme)] = _this.getProps().focused || _this.state.focusedByKeyboard, _cx[styles.error(_this.theme)] = error, _cx[styles.warning(_this.theme)] = warning, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.checkedDisabled(_this.theme)] = _this.props.checked && disabled, _cx[globalClasses.circle] = true, _cx))
60
62
  };
61
63
  var value;
62
64