@skbkontur/react-ui 4.2.2 → 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 (337) hide show
  1. package/CHANGELOG.md +17 -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/ComboBox/ComboBox.d.ts +8 -13
  16. package/cjs/components/ComboBox/ComboBox.js +12 -2
  17. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  19. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -6
  20. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  21. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DateInput/DateInput.d.ts +8 -11
  25. package/cjs/components/DateInput/DateInput.js +11 -3
  26. package/cjs/components/DateInput/DateInput.js.map +1 -1
  27. package/cjs/components/DatePicker/DatePicker.d.ts +6 -8
  28. package/cjs/components/DatePicker/DatePicker.js +12 -6
  29. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  30. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  31. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  32. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  33. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  34. package/cjs/components/FxInput/FxInput.js +13 -10
  35. package/cjs/components/FxInput/FxInput.js.map +1 -1
  36. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  37. package/cjs/components/Gapped/Gapped.js +12 -6
  38. package/cjs/components/Gapped/Gapped.js.map +1 -1
  39. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  40. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  41. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  42. package/cjs/components/Hint/Hint.d.ts +7 -11
  43. package/cjs/components/Hint/Hint.js +15 -5
  44. package/cjs/components/Hint/Hint.js.map +1 -1
  45. package/cjs/components/Input/Input.d.ts +4 -3
  46. package/cjs/components/Input/Input.js +7 -4
  47. package/cjs/components/Input/Input.js.map +1 -1
  48. package/cjs/components/Kebab/Kebab.d.ts +7 -11
  49. package/cjs/components/Kebab/Kebab.js +14 -5
  50. package/cjs/components/Kebab/Kebab.js.map +1 -1
  51. package/cjs/components/Link/Link.d.ts +4 -4
  52. package/cjs/components/Link/Link.js +11 -4
  53. package/cjs/components/Link/Link.js.map +1 -1
  54. package/cjs/components/Loader/Loader.d.ts +7 -4
  55. package/cjs/components/Loader/Loader.js +14 -4
  56. package/cjs/components/Loader/Loader.js.map +1 -1
  57. package/cjs/components/Modal/Modal.d.ts +4 -3
  58. package/cjs/components/Modal/Modal.js +8 -3
  59. package/cjs/components/Modal/Modal.js.map +1 -1
  60. package/cjs/components/Paging/Paging.d.ts +6 -9
  61. package/cjs/components/Paging/Paging.js +15 -5
  62. package/cjs/components/Paging/Paging.js.map +1 -1
  63. package/cjs/components/Paging/PagingDefaultComponent.d.ts +1 -1
  64. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  65. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  66. package/cjs/components/PasswordInput/PasswordInput.js +8 -3
  67. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  68. package/cjs/components/Radio/Radio.d.ts +4 -3
  69. package/cjs/components/Radio/Radio.js +8 -3
  70. package/cjs/components/Radio/Radio.js.map +1 -1
  71. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  72. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  73. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  74. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  75. package/cjs/components/ScrollContainer/ScrollContainer.js +11 -5
  76. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  77. package/cjs/components/Select/Select.d.ts +3 -12
  78. package/cjs/components/Select/Select.js +6 -1
  79. package/cjs/components/Select/Select.js.map +1 -1
  80. package/cjs/components/Select/Select.styles.js +4 -4
  81. package/cjs/components/Select/Select.styles.js.map +1 -1
  82. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  83. package/cjs/components/SidePage/SidePage.js +8 -1
  84. package/cjs/components/SidePage/SidePage.js.map +1 -1
  85. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  86. package/cjs/components/Spinner/Spinner.js +9 -3
  87. package/cjs/components/Spinner/Spinner.js.map +1 -1
  88. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  89. package/cjs/components/Sticky/Sticky.js +9 -2
  90. package/cjs/components/Sticky/Sticky.js.map +1 -1
  91. package/cjs/components/Tabs/Tab.d.ts +4 -4
  92. package/cjs/components/Tabs/Tab.js +11 -13
  93. package/cjs/components/Tabs/Tab.js.map +1 -1
  94. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  95. package/cjs/components/Tabs/Tabs.js +12 -3
  96. package/cjs/components/Tabs/Tabs.js.map +1 -1
  97. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  98. package/cjs/components/Textarea/Textarea.js +10 -6
  99. package/cjs/components/Textarea/Textarea.js.map +1 -1
  100. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  101. package/cjs/components/Toggle/Toggle.js +10 -4
  102. package/cjs/components/Toggle/Toggle.js.map +1 -1
  103. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  104. package/cjs/components/TokenInput/TokenInput.js +75 -57
  105. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  106. package/cjs/components/Tooltip/Tooltip.d.ts +10 -14
  107. package/cjs/components/Tooltip/Tooltip.js +23 -12
  108. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  109. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  110. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  111. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  112. package/cjs/internal/BGRuler.d.ts +13 -15
  113. package/cjs/internal/BGRuler.js +16 -8
  114. package/cjs/internal/BGRuler.js.map +1 -1
  115. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  116. package/cjs/internal/Calendar/Calendar.js +10 -5
  117. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  118. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  119. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  120. package/cjs/internal/Calendar/Month.js +16 -11
  121. package/cjs/internal/Calendar/Month.js.map +1 -1
  122. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  123. package/cjs/internal/ComponentCombinator.js +6 -2
  124. package/cjs/internal/ComponentCombinator.js.map +1 -1
  125. package/cjs/internal/ComponentTable.d.ts +5 -6
  126. package/cjs/internal/ComponentTable.js +11 -2
  127. package/cjs/internal/ComponentTable.js.map +1 -1
  128. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  129. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +7 -1
  130. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  131. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  132. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  133. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  134. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  135. package/cjs/internal/DateSelect/DateSelect.js +15 -9
  136. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  137. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  138. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  139. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  140. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  141. package/cjs/internal/InputLikeText/InputLikeText.js +7 -2
  142. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  143. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  144. package/cjs/internal/InternalMenu/InternalMenu.js +16 -6
  145. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  146. package/cjs/internal/MaskedInput/MaskedInput.d.ts +4 -2
  147. package/cjs/internal/MaskedInput/MaskedInput.js +7 -2
  148. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  149. package/cjs/internal/Menu/Menu.d.ts +4 -7
  150. package/cjs/internal/Menu/Menu.js +7 -1
  151. package/cjs/internal/Menu/Menu.js.map +1 -1
  152. package/cjs/internal/Popup/Popup.d.ts +10 -16
  153. package/cjs/internal/Popup/Popup.js +21 -7
  154. package/cjs/internal/Popup/Popup.js.map +1 -1
  155. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  156. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  157. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  158. package/cjs/internal/RenderLayer/RenderLayer.d.ts +4 -3
  159. package/cjs/internal/RenderLayer/RenderLayer.js +8 -2
  160. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  161. package/cjs/internal/ThemePlayground/VariableValue.d.ts +5 -4
  162. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  163. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  164. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  165. package/cjs/internal/ZIndex/ZIndex.js +10 -3
  166. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  167. package/cjs/lib/createPropsGetter.d.ts +2 -1
  168. package/cjs/lib/createPropsGetter.js +2 -0
  169. package/cjs/lib/createPropsGetter.js.map +1 -1
  170. package/components/Autocomplete/Autocomplete/Autocomplete.js +22 -12
  171. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  172. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  173. package/components/Button/Button/Button.js +11 -5
  174. package/components/Button/Button/Button.js.map +1 -1
  175. package/components/Button/Button.d.ts +4 -5
  176. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  177. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  178. package/components/Button/Button.styles/Button.styles.js +18 -18
  179. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  180. package/components/Center/Center/Center.js +7 -5
  181. package/components/Center/Center/Center.js.map +1 -1
  182. package/components/Center/Center.d.ts +4 -3
  183. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  184. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  185. package/components/ComboBox/ComboBox.d.ts +8 -13
  186. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +21 -18
  187. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  188. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  189. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  190. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  191. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  192. package/components/DateInput/DateInput/DateInput.js +17 -4
  193. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  194. package/components/DateInput/DateInput.d.ts +8 -11
  195. package/components/DatePicker/DatePicker/DatePicker.js +12 -9
  196. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  197. package/components/DatePicker/DatePicker.d.ts +6 -8
  198. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  199. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  200. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  201. package/components/FxInput/FxInput/FxInput.js +11 -9
  202. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  203. package/components/FxInput/FxInput.d.ts +6 -6
  204. package/components/Gapped/Gapped/Gapped.js +17 -8
  205. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  206. package/components/Gapped/Gapped.d.ts +7 -8
  207. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  208. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  209. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  210. package/components/Hint/Hint/Hint.js +30 -18
  211. package/components/Hint/Hint/Hint.js.map +1 -1
  212. package/components/Hint/Hint.d.ts +7 -11
  213. package/components/Input/Input/Input.js +9 -7
  214. package/components/Input/Input/Input.js.map +1 -1
  215. package/components/Input/Input.d.ts +4 -3
  216. package/components/Kebab/Kebab/Kebab.js +19 -8
  217. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  218. package/components/Kebab/Kebab.d.ts +7 -11
  219. package/components/Link/Link/Link.js +9 -6
  220. package/components/Link/Link/Link.js.map +1 -1
  221. package/components/Link/Link.d.ts +4 -4
  222. package/components/Loader/Loader/Loader.js +22 -17
  223. package/components/Loader/Loader/Loader.js.map +1 -1
  224. package/components/Loader/Loader.d.ts +7 -4
  225. package/components/Modal/Modal/Modal.js +3 -1
  226. package/components/Modal/Modal/Modal.js.map +1 -1
  227. package/components/Modal/Modal.d.ts +4 -3
  228. package/components/Paging/Paging/Paging.js +24 -14
  229. package/components/Paging/Paging/Paging.js.map +1 -1
  230. package/components/Paging/Paging.d.ts +6 -9
  231. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  232. package/components/Paging/PagingDefaultComponent.d.ts +1 -1
  233. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -5
  234. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  235. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  236. package/components/Radio/Radio/Radio.js +7 -5
  237. package/components/Radio/Radio/Radio.js.map +1 -1
  238. package/components/Radio/Radio.d.ts +4 -3
  239. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  240. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  241. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  242. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +10 -6
  243. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  244. package/components/ScrollContainer/ScrollContainer.d.ts +6 -7
  245. package/components/Select/Select/Select.js +4 -3
  246. package/components/Select/Select/Select.js.map +1 -1
  247. package/components/Select/Select.d.ts +3 -12
  248. package/components/Select/Select.styles/Select.styles.js +4 -4
  249. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  250. package/components/SidePage/SidePage/SidePage.js +14 -9
  251. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  252. package/components/SidePage/SidePage.d.ts +5 -6
  253. package/components/Spinner/Spinner/Spinner.js +7 -5
  254. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  255. package/components/Spinner/Spinner.d.ts +4 -2
  256. package/components/Sticky/Sticky/Sticky.js +7 -4
  257. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  258. package/components/Sticky/Sticky.d.ts +5 -4
  259. package/components/Tabs/Tab/Tab.js +15 -7
  260. package/components/Tabs/Tab/Tab.js.map +1 -1
  261. package/components/Tabs/Tab.d.ts +4 -4
  262. package/components/Tabs/Tabs/Tabs.js +10 -8
  263. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  264. package/components/Tabs/Tabs.d.ts +4 -4
  265. package/components/Textarea/Textarea/Textarea.js +19 -14
  266. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  267. package/components/Textarea/Textarea.d.ts +8 -10
  268. package/components/Toggle/Toggle/Toggle.js +12 -7
  269. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  270. package/components/Toggle/Toggle.d.ts +5 -6
  271. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  272. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  273. package/components/TokenInput/TokenInput.d.ts +19 -16
  274. package/components/Tooltip/Tooltip/Tooltip.js +51 -30
  275. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  276. package/components/Tooltip/Tooltip.d.ts +10 -14
  277. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  278. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  279. package/components/TooltipMenu/TooltipMenu.d.ts +5 -4
  280. package/internal/BGRuler/BGRuler.js +11 -6
  281. package/internal/BGRuler/BGRuler.js.map +1 -1
  282. package/internal/BGRuler.d.ts +13 -15
  283. package/internal/Calendar/Calendar/Calendar.js +11 -5
  284. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  285. package/internal/Calendar/Calendar.d.ts +4 -13
  286. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  287. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  288. package/internal/Calendar/Month/Month.js +20 -11
  289. package/internal/Calendar/Month/Month.js.map +1 -1
  290. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  291. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  292. package/internal/ComponentCombinator.d.ts +6 -8
  293. package/internal/ComponentTable/ComponentTable.js +16 -4
  294. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  295. package/internal/ComponentTable.d.ts +5 -6
  296. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
  297. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  298. package/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
  299. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  300. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  301. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  302. package/internal/DateSelect/DateSelect/DateSelect.js +14 -11
  303. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  304. package/internal/DateSelect/DateSelect.d.ts +4 -6
  305. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  306. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  307. package/internal/DropdownContainer/DropdownContainer.d.ts +3 -6
  308. package/internal/InputLikeText/InputLikeText/InputLikeText.js +4 -2
  309. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  310. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  311. package/internal/InternalMenu/InternalMenu/InternalMenu.js +21 -10
  312. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  313. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  314. package/internal/MaskedInput/MaskedInput/MaskedInput.js +3 -1
  315. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  316. package/internal/MaskedInput/MaskedInput.d.ts +4 -2
  317. package/internal/Menu/Menu/Menu.js +10 -3
  318. package/internal/Menu/Menu/Menu.js.map +1 -1
  319. package/internal/Menu/Menu.d.ts +4 -7
  320. package/internal/Popup/Popup/Popup.js +32 -23
  321. package/internal/Popup/Popup/Popup.js.map +1 -1
  322. package/internal/Popup/Popup.d.ts +10 -16
  323. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  324. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  325. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  326. package/internal/RenderLayer/RenderLayer/RenderLayer.js +8 -4
  327. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  328. package/internal/RenderLayer/RenderLayer.d.ts +4 -3
  329. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  330. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  331. package/internal/ThemePlayground/VariableValue.d.ts +5 -4
  332. package/internal/ZIndex/ZIndex/ZIndex.js +15 -13
  333. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  334. package/internal/ZIndex/ZIndex.d.ts +7 -11
  335. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  336. package/lib/createPropsGetter.d.ts +2 -1
  337. package/package.json +2 -2
@@ -12,6 +12,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
12
12
  var _CommonWrapper = require("../../internal/CommonWrapper");
13
13
  var _Emotion = require("../../lib/theming/Emotion");
14
14
  var _rootNode = require("../../lib/rootNode");
15
+ var _createPropsGetter = require("../../lib/createPropsGetter");
15
16
 
16
17
  var _Input = require("./Input.styles");var _excluded = ["onMouseEnter", "onMouseLeave", "onMouseOver", "onKeyDown", "onKeyPress", "onValueChange", "width", "error", "warning", "leftIcon", "rightIcon", "borderless", "value", "align", "type", "mask", "maskChar", "alwaysShowMask", "size", "placeholder", "selectAllOnFocus", "disabled", "onUnexpectedInput", "prefix", "suffix", "formatChars"];var _class, _class2, _temp;
17
18
 
@@ -108,13 +109,15 @@ var _Input = require("./Input.styles");var _excluded = ["onMouseEnter", "onMouse
108
109
 
109
110
 
110
111
  var InputDataTids = {
111
- root: 'Input__root' };
112
+ root: 'Input__root' };exports.InputDataTids = InputDataTids;
113
+
114
+
112
115
 
113
116
 
114
117
  /**
115
118
  * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
116
119
  * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
117
- */exports.InputDataTids = InputDataTids;var
120
+ */var
118
121
 
119
122
  Input = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Input, _React$Component);function Input() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
120
123
 
@@ -123,7 +126,7 @@ Input = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
123
126
 
124
127
 
125
128
 
126
-
129
+ getProps = (0, _createPropsGetter.createPropsGetter)(Input.defaultProps);_this.
127
130
 
128
131
  state = {
129
132
  needsPolyfillPlaceholder: _needsPolyfillPlaceholder.needsPolyfillPlaceholder,
@@ -578,4 +581,4 @@ Input = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
578
581
  * @param {number} end
579
582
  */;_proto.setSelectionRange = function setSelectionRange(start, end) {if (!this.input) {throw new Error('Cannot call "setSelectionRange" on unmounted Input');}if (document.activeElement !== this.input) {this.focus();}this.input.setSelectionRange(start, end);};_proto.render = function render() {var _this3 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this3.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this3.setRootNode }, _this3.props), _this3.renderMain);});} /**
580
583
  * @public
581
- */;_proto.renderMaskedInput = function renderMaskedInput(inputProps, mask) {return /*#__PURE__*/_react.default.createElement(_MaskedInput.MaskedInput, (0, _extends2.default)({}, inputProps, { mask: mask, maskChar: this.props.maskChar, alwaysShowMask: this.props.alwaysShowMask, formatChars: this.props.formatChars, onChange: this.props.onChange, onValueChange: this.handleMaskedValueChange, onUnexpectedInput: this.handleUnexpectedInput }));};_proto.getIconSizeClassname = function getIconSizeClassname(right) {if (right === void 0) {right = false;}switch (this.props.size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};_proto.renderLeftIcon = function renderLeftIcon() {return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());};_proto.renderRightIcon = function renderRightIcon() {return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));};_proto.renderIcon = function renderIcon(icon, sizeClassName) {var _cx5;if (!icon) {return null;}var disabled = this.props.disabled;var iconNode = icon instanceof Function ? icon() : icon;return /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Input.styles.icon(), sizeClassName, _Input.styles.useDefaultColor(this.theme), (_cx5 = {}, _cx5[_Input.styles.iconDisabled()] = disabled, _cx5)) }, iconNode);};_proto.renderPlaceholder = function renderPlaceholder() {var disabled = this.props.disabled;var focused = this.state.focused;var placeholder = null;if (this.state.needsPolyfillPlaceholder && this.props.placeholder && !this.isMaskVisible && !this.props.value && !this.props.defaultValue) {var _cx6;placeholder = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Input.styles.placeholder(this.theme), (_cx6 = {}, _cx6[_Input.styles.placeholderDisabled(this.theme)] = disabled, _cx6[_Input.styles.placeholderFocus(this.theme)] = focused, _cx6)), style: { textAlign: this.props.align || 'inherit' } }, this.props.placeholder);}return placeholder;};_proto.getSizeClassName = function getSizeClassName() {var _cx7, _cx8, _cx9;switch (this.props.size) {case 'large':return (0, _Emotion.cx)((_cx7 = {}, _cx7[_Input.styles.sizeLarge(this.theme)] = true, _cx7[_Input.styles.sizeLargeFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx7));case 'medium':return (0, _Emotion.cx)((_cx8 = {}, _cx8[_Input.styles.sizeMedium(this.theme)] = true, _cx8[_Input.styles.sizeMediumFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx8));case 'small':default:return (0, _Emotion.cx)((_cx9 = {}, _cx9[_Input.styles.sizeSmall(this.theme)] = true, _cx9[_Input.styles.sizeSmallFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx9));}};(0, _createClass2.default)(Input, [{ key: "isMaskVisible", get: function get() {var _this$props3 = this.props,mask = _this$props3.mask,alwaysShowMask = _this$props3.alwaysShowMask;var focused = this.state.focused;return Boolean(mask && (focused || alwaysShowMask));} }]);return Input;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Input', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.Input = Input;
584
+ */;_proto.renderMaskedInput = function renderMaskedInput(inputProps, mask) {return /*#__PURE__*/_react.default.createElement(_MaskedInput.MaskedInput, (0, _extends2.default)({}, inputProps, { mask: mask, maskChar: this.props.maskChar, alwaysShowMask: this.props.alwaysShowMask, formatChars: this.props.formatChars, onChange: this.props.onChange, onValueChange: this.handleMaskedValueChange, onUnexpectedInput: this.handleUnexpectedInput }));};_proto.getIconSizeClassname = function getIconSizeClassname(right) {if (right === void 0) {right = false;}switch (this.getProps().size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};_proto.renderLeftIcon = function renderLeftIcon() {return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());};_proto.renderRightIcon = function renderRightIcon() {return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));};_proto.renderIcon = function renderIcon(icon, sizeClassName) {var _cx5;if (!icon) {return null;}var disabled = this.props.disabled;var iconNode = icon instanceof Function ? icon() : icon;return /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Input.styles.icon(), sizeClassName, _Input.styles.useDefaultColor(this.theme), (_cx5 = {}, _cx5[_Input.styles.iconDisabled()] = disabled, _cx5)) }, iconNode);};_proto.renderPlaceholder = function renderPlaceholder() {var disabled = this.props.disabled;var focused = this.state.focused;var placeholder = null;if (this.state.needsPolyfillPlaceholder && this.props.placeholder && !this.isMaskVisible && !this.props.value && !this.props.defaultValue) {var _cx6;placeholder = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Input.styles.placeholder(this.theme), (_cx6 = {}, _cx6[_Input.styles.placeholderDisabled(this.theme)] = disabled, _cx6[_Input.styles.placeholderFocus(this.theme)] = focused, _cx6)), style: { textAlign: this.props.align || 'inherit' } }, this.props.placeholder);}return placeholder;};_proto.getSizeClassName = function getSizeClassName() {var _cx7, _cx8, _cx9;switch (this.getProps().size) {case 'large':return (0, _Emotion.cx)((_cx7 = {}, _cx7[_Input.styles.sizeLarge(this.theme)] = true, _cx7[_Input.styles.sizeLargeFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx7));case 'medium':return (0, _Emotion.cx)((_cx8 = {}, _cx8[_Input.styles.sizeMedium(this.theme)] = true, _cx8[_Input.styles.sizeMediumFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx8));case 'small':default:return (0, _Emotion.cx)((_cx9 = {}, _cx9[_Input.styles.sizeSmall(this.theme)] = true, _cx9[_Input.styles.sizeSmallFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx9));}};(0, _createClass2.default)(Input, [{ key: "isMaskVisible", get: function get() {var _this$props3 = this.props,mask = _this$props3.mask,alwaysShowMask = _this$props3.alwaysShowMask;var focused = this.state.focused;return Boolean(mask && (focused || alwaysShowMask));} }]);return Input;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Input', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.Input = Input;
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.tsx"],"names":["InputDataTids","root","Input","rootNode","state","needsPolyfillPlaceholder","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","styles","theme","getSizeClassName","focus","blink","focusFallback","isIE11","isEdge","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","React","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","MaskedInput","event","fieldIsEmpty","target","e","isDeleteKey","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconDisabled","defaultValue","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: {\n size: InputSize;\n } = {\n size: 'small',\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input!.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input!.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\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 selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["Input.tsx"],"names":["InputDataTids","root","Input","rootNode","getProps","defaultProps","state","needsPolyfillPlaceholder","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","styles","theme","getSizeClassName","focus","blink","focusFallback","isIE11","isEdge","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","React","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","MaskedInput","event","fieldIsEmpty","target","e","isDeleteKey","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconDisabled","defaultValue","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size'>>;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input!.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input!.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\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 selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
@@ -5,7 +5,7 @@ import { PopupPositionsType } from '../../internal/Popup';
5
5
  import { CommonProps } from '../../internal/CommonWrapper';
6
6
  export interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {
7
7
  disabled?: boolean;
8
- size: 'small' | 'medium' | 'large';
8
+ size?: 'small' | 'medium' | 'large';
9
9
  /**
10
10
  * Список позиций доступных для расположения выпадашки.
11
11
  *
@@ -14,12 +14,12 @@ export interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' |
14
14
  * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`
15
15
  * @default ['bottom left', 'bottom right', 'top left', 'top right']
16
16
  */
17
- positions: PopupPositionsType[];
17
+ positions?: PopupPositionsType[];
18
18
  menuMaxHeight?: number | string;
19
19
  /**
20
20
  * Не показывать анимацию
21
21
  */
22
- disableAnimations: boolean;
22
+ disableAnimations?: boolean;
23
23
  /**
24
24
  * Кастомная иконка
25
25
  */
@@ -29,17 +29,12 @@ export interface KebabState {
29
29
  anchor: Nullable<HTMLElement>;
30
30
  focusedByTab: boolean;
31
31
  }
32
+ declare type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations' | 'icon'>>;
32
33
  export declare class Kebab extends React.Component<KebabProps, KebabState> {
33
34
  static __KONTUR_REACT_UI__: string;
34
35
  static propTypes: {};
35
- static defaultProps: {
36
- onOpen: () => undefined;
37
- onClose: () => undefined;
38
- positions: string[];
39
- size: string;
40
- disableAnimations: boolean;
41
- icon: JSX.Element;
42
- };
36
+ static defaultProps: DefaultProps;
37
+ private getProps;
43
38
  state: {
44
39
  focusedByTab: boolean;
45
40
  anchor: null;
@@ -58,3 +53,4 @@ export declare class Kebab extends React.Component<KebabProps, KebabState> {
58
53
  private handleBlur;
59
54
  private renderIcon;
60
55
  }
56
+ export {};
@@ -15,6 +15,7 @@ var _ThemeFactory = require("../../lib/theming/ThemeFactory");
15
15
  var _CommonWrapper = require("../../internal/CommonWrapper");
16
16
  var _Emotion = require("../../lib/theming/Emotion");
17
17
  var _rootNode = require("../../lib/rootNode");
18
+ var _createPropsGetter = require("../../lib/createPropsGetter");
18
19
 
19
20
  var _Kebab = require("./Kebab.styles");var _class, _class2, _temp;function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}var
20
21
 
@@ -42,6 +43,10 @@ var _Kebab = require("./Kebab.styles");var _class, _class2, _temp;function _getR
42
43
 
43
44
 
44
45
 
46
+
47
+
48
+
49
+
45
50
 
46
51
 
47
52
 
@@ -61,6 +66,8 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
61
66
 
62
67
 
63
68
 
69
+ getProps = (0, _createPropsGetter.createPropsGetter)(Kebab.defaultProps);_this.
70
+
64
71
  state = {
65
72
  focusedByTab: false,
66
73
  anchor: null };_this.
@@ -126,6 +133,7 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
126
133
 
127
134
 
128
135
 
136
+
129
137
 
130
138
 
131
139
  renderCaption = function (captionProps) {var _cx;
@@ -193,19 +201,20 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
193
201
  _this.setState({
194
202
  focusedByTab: false });
195
203
 
196
- };return _this;}var _proto = Kebab.prototype;_proto.componentDidMount = function componentDidMount() {/** addListener'у нужен колбэк в аргумент */this.listener = LayoutEvents.addListener(function () {return undefined;});};_proto.componentWillUnmount = function componentWillUnmount() {this.listener.remove();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.kebabPinOffset, popupMargin: theme.kebabMargin, popupPinSize: theme.kebabPinSize }, theme) }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this$props = this.props,disabled = _this$props.disabled,positions = _this$props.positions;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_PopupMenu.PopupMenu, { popupHasPin: true, positions: positions, onChangeMenuState: this.handleChangeMenuState, caption: this.renderCaption, disableAnimations: this.props.disableAnimations, menuMaxHeight: this.props.menuMaxHeight, onOpen: this.props.onOpen, onClose: this.props.onClose }, !disabled && this.props.children));};_proto.
204
+ };return _this;}var _proto = Kebab.prototype;_proto.componentDidMount = function componentDidMount() {/** addListener'у нужен колбэк в аргумент */this.listener = LayoutEvents.addListener(function () {return undefined;});};_proto.componentWillUnmount = function componentWillUnmount() {this.listener.remove();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.kebabPinOffset, popupMargin: theme.kebabMargin, popupPinSize: theme.kebabPinSize }, theme) }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var disabled = this.props.disabled;var _this$getProps = this.getProps(),positions = _this$getProps.positions,disableAnimations = _this$getProps.disableAnimations,onOpen = _this$getProps.onOpen,onClose = _this$getProps.onClose;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_PopupMenu.PopupMenu, { popupHasPin: true, positions: positions, onChangeMenuState: this.handleChangeMenuState, caption: this.renderCaption, disableAnimations: disableAnimations, menuMaxHeight: this.props.menuMaxHeight, onOpen: onOpen, onClose: onClose }, !disabled && this.props.children));};_proto.
197
205
 
198
206
  renderIcon = function renderIcon() {var _cx2;
207
+ var _this$getProps2 = this.getProps(),size = _this$getProps2.size,icon = _this$getProps2.icon;
199
208
  return /*#__PURE__*/(
200
209
  _react.default.createElement("div", {
201
210
  className: (0, _Emotion.cx)((_cx2 = {}, _cx2[
202
211
  _Kebab.styles.icon()] = true, _cx2[
203
- _Kebab.styles.iconsmall()] = this.props.size === 'small', _cx2[
204
- _Kebab.styles.iconmedium()] = this.props.size === 'medium', _cx2[
205
- _Kebab.styles.iconlarge()] = this.props.size === 'large', _cx2)) },
212
+ _Kebab.styles.iconsmall()] = size === 'small', _cx2[
213
+ _Kebab.styles.iconmedium()] = size === 'medium', _cx2[
214
+ _Kebab.styles.iconlarge()] = size === 'large', _cx2)) },
206
215
 
207
216
 
208
- this.props.icon));
217
+ icon));
209
218
 
210
219
 
211
220
  };return Kebab;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Kebab', _class2.propTypes = {}, _class2.defaultProps = { onOpen: function onOpen() {return undefined;}, onClose: function onClose() {return undefined;}, positions: ['bottom left', 'bottom right', 'top left', 'top right'], size: 'small', disableAnimations: _currentEnvironment.isTestEnv, icon: /*#__PURE__*/_react.default.createElement(_px.MenuKebabIcon, null) }, _temp)) || _class;exports.Kebab = Kebab;
@@ -1 +1 @@
1
- {"version":3,"sources":["Kebab.tsx"],"names":["Kebab","rootNode","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","styles","kebab","theme","opened","focused","renderIcon","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","keyListener","isTabPressed","componentDidMount","LayoutEvents","addListener","componentWillUnmount","render","ThemeFactory","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","setRootNode","disableAnimations","menuMaxHeight","onOpen","onClose","children","icon","iconsmall","size","iconmedium","iconlarge","React","Component","__KONTUR_REACT_UI__","propTypes","defaultProps","isTestEnv","PropTypes","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Kebab.styles';\n\nexport interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n disabled?: boolean;\n size: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n public state = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled, positions } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={this.props.disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: this.props.size === 'small',\n [styles.iconmedium()]: this.props.size === 'medium',\n [styles.iconlarge()]: this.props.size === 'large',\n })}\n >\n {this.props.icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
1
+ {"version":3,"sources":["Kebab.tsx"],"names":["Kebab","rootNode","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","styles","kebab","theme","opened","focused","renderIcon","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","keyListener","isTabPressed","componentDidMount","LayoutEvents","addListener","componentWillUnmount","render","ThemeFactory","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","disableAnimations","onOpen","onClose","setRootNode","menuMaxHeight","children","size","icon","iconsmall","iconmedium","iconlarge","React","Component","__KONTUR_REACT_UI__","propTypes","isTestEnv","PropTypes","node","bool","oneOfType","string","number","func"],"mappings":"mUAAA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCaA,K,OADZC,kB;;;;;;;;;;;;;;AAeSC,IAAAA,Q,GAAW,0CAAkBF,KAAK,CAACG,YAAxB,C;;AAEZC,IAAAA,K,GAAQ;AACbC,MAAAA,YAAY,EAAE,KADD;AAEbC,MAAAA,MAAM,EAAE,IAFK,E;;;;;;AAQPC,IAAAA,Q;;AAEJ;AACFC,MAAAA,MAAM,EAAE,0BAAMC,SAAN,EADN,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DIC,IAAAA,a,GAAgB,UAACC,YAAD,EAAyC;AAC/D,UAAQC,QAAR,GAAqB,MAAKC,KAA1B,CAAQD,QAAR;AACA,UAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAgD;AAC3E,YAAI,CAACH,QAAL,EAAe;AACb,gBAAKE,oBAAL,CAA0BC,KAA1B,EAAiCJ,YAAY,CAACK,QAA9C;AACD;AACF,OAJD;;AAMA,UAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,YAAI,CAACL,QAAL,EAAe;AACbD,UAAAA,YAAY,CAACO,UAAb;AACD;AACF,OAJD;;AAMA;AACE;AACE,UAAA,QAAQ,EAAEN,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAD5B;AAEE,UAAA,OAAO,EAAEK,kBAFX;AAGE,UAAA,SAAS,EAAEH,oBAHb;AAIE,UAAA,OAAO,EAAE,MAAKK,WAJhB;AAKE,UAAA,MAAM,EAAE,MAAKC,UALf;AAME,UAAA,SAAS,EAAE;AACRC,wBAAOC,KAAP,CAAa,MAAKC,KAAlB,CADQ,IACmB,IADnB;AAERF,wBAAOG,MAAP,CAAc,MAAKD,KAAnB,CAFQ,IAEoBZ,YAAY,CAACa,MAFjC;AAGRH,wBAAOT,QAAP,EAHQ,IAGYA,QAHZ;AAIRS,wBAAOI,OAAP,CAAe,MAAKF,KAApB,CAJQ,IAIqB,MAAKnB,KAAL,CAAWC,YAJhC,OANb;;;AAaG,cAAKqB,UAAL,EAbH,CADF;;;AAiBD,K;;AAEOZ,IAAAA,oB,GAAuB;AAC7Ba,IAAAA,CAD6B;AAE7BX,IAAAA,QAF6B;AAG1B;AACH,UAAI,2BAASY,uBAAT,EAAqBC,uBAArB,EAAiCC,+BAAjC,EAAqDH,CAArD,CAAJ,EAA6D;AAC3DA,QAAAA,CAAC,CAACI,cAAF;AACAf,QAAAA,QAAQ,CAAC,IAAD,CAAR;AACD;AACF,K;;AAEOgB,IAAAA,qB,GAAwB,UAACC,QAAD,EAAoBC,YAApB,EAAoD;AAClF,YAAKC,QAAL,CAAc;AACZ9B,QAAAA,YAAY,EAAE,CAAC4B,QAAD,IAAaC,YADf,EAAd;;AAGD,K;;AAEOf,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,CAAC,MAAKN,KAAL,CAAWD,QAAhB,EAA0B;AACxB;AACA;AACAwB,QAAAA,qBAAqB,CAAC,YAAM;AAC1B,cAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,kBAAKH,QAAL,CAAc,EAAE9B,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,SAJoB,CAArB;AAKD;AACF,K;;AAEOe,IAAAA,U,GAAa,YAAM;AACzB,YAAKe,QAAL,CAAc;AACZ9B,QAAAA,YAAY,EAAE,KADF,EAAd;;AAGD,K,mDAvHMkC,iB,GAAP,6BAA2B,CACzB,4CACA,KAAKhC,QAAL,GAAgBiC,YAAY,CAACC,WAAb,CAAyB,oBAAMhC,SAAN,EAAzB,CAAhB,CACD,C,QAEMiC,oB,GAAP,gCAA8B,CAC5B,KAAKnC,QAAL,CAAcC,MAAd,GACD,C,QAEMmC,M,GAAP,kBAA6B,mBAC3B,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACpB,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,0BAAD,CAAc,QAAd,IACE,KAAK,EAAEqB,2BAAaC,MAAb,CACL,EACEC,cAAc,EAAEvB,KAAK,CAACwB,cADxB,EAEEC,WAAW,EAAEzB,KAAK,CAAC0B,WAFrB,EAGEC,YAAY,EAAE3B,KAAK,CAAC4B,YAHtB,EADK,EAML5B,KANK,CADT,IAUG,MAAI,CAAC6B,UAAL,EAVH,CADF,CAcD,CAjBH,CADF,CAqBD,C,QAEOA,U,GAAR,sBAAqB,CACnB,IAAQxC,QAAR,GAAqB,KAAKC,KAA1B,CAAQD,QAAR,CACA,qBAA0D,KAAKV,QAAL,EAA1D,CAAQmD,SAAR,kBAAQA,SAAR,CAAmBC,iBAAnB,kBAAmBA,iBAAnB,CAAsCC,MAAtC,kBAAsCA,MAAtC,CAA8CC,OAA9C,kBAA8CA,OAA9C,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAK5C,KAAvD,gBACE,6BAAC,oBAAD,IACE,WAAW,MADb,EAEE,SAAS,EAAEwC,SAFb,EAGE,iBAAiB,EAAE,KAAKrB,qBAH1B,EAIE,OAAO,EAAE,KAAKtB,aAJhB,EAKE,iBAAiB,EAAE4C,iBALrB,EAME,aAAa,EAAE,KAAKzC,KAAL,CAAW6C,aAN5B,EAOE,MAAM,EAAEH,MAPV,EAQE,OAAO,EAAEC,OARX,IAUG,CAAC5C,QAAD,IAAa,KAAKC,KAAL,CAAW8C,QAV3B,CADF,CADF,CAgBD,C;;AAqEOjC,EAAAA,U,GAAR,sBAAqB;AACnB,0BAAuB,KAAKxB,QAAL,EAAvB,CAAQ0D,IAAR,mBAAQA,IAAR,CAAcC,IAAd,mBAAcA,IAAd;AACA;AACE;AACE,QAAA,SAAS,EAAE;AACRxC,sBAAOwC,IAAP,EADQ,IACQ,IADR;AAERxC,sBAAOyC,SAAP,EAFQ,IAEaF,IAAI,KAAK,OAFtB;AAGRvC,sBAAO0C,UAAP,EAHQ,IAGcH,IAAI,KAAK,QAHvB;AAIRvC,sBAAO2C,SAAP,EAJQ,IAIaJ,IAAI,KAAK,OAJtB,QADb;;;AAQGC,MAAAA,IARH,CADF;;;AAYD,G,gBArKwBI,eAAMC,S,WACjBC,mB,GAAsB,O,UAEtBC,S,GAAY,E,UAEZjE,Y,GAA6B,EACzCoD,MAAM,EAAE,0BAAM9C,SAAN,EADiC,EAEzC+C,OAAO,EAAE,2BAAM/C,SAAN,EAFgC,EAGzC4C,SAAS,EAAE,CAAC,aAAD,EAAgB,cAAhB,EAAgC,UAAhC,EAA4C,WAA5C,CAH8B,EAIzCO,IAAI,EAAE,OAJmC,EAKzCN,iBAAiB,EAAEe,6BALsB,EAMzCR,IAAI,eAAE,6BAAC,iBAAD,OANmC,E;;;AAmK7C7D,KAAK,CAACoE,SAAN,GAAkB;AAChBT,EAAAA,QAAQ,EAAEW,mBAAUC,IADJ;AAEhB3D,EAAAA,QAAQ,EAAE0D,mBAAUE,IAFJ;AAGhBd,EAAAA,aAAa,EAAEY,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUK,MAA7B,CAApB,CAHC;;AAKhB;AACF;AACA;AACEf,EAAAA,IAAI,EAAEU,mBAAUI,MARA;;AAUhB;AACF;AACA;AACElB,EAAAA,OAAO,EAAEc,mBAAUM,IAbH;;AAehB;AACF;AACA;AACErB,EAAAA,MAAM,EAAEe,mBAAUM,IAlBF,EAAlB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\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 './Kebab.styles';\n\nexport interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n disabled?: boolean;\n size?: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations' | 'icon'>\n>;\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon } = this.getProps();\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: size === 'small',\n [styles.iconmedium()]: size === 'medium',\n [styles.iconlarge()]: size === 'large',\n })}\n >\n {icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
@@ -47,6 +47,7 @@ export interface LinkState {
47
47
  export declare const LinkDataTids: {
48
48
  readonly root: "Link__root";
49
49
  };
50
+ declare type DefaultProps = Required<Pick<LinkProps, 'href' | 'use'>>;
50
51
  /**
51
52
  * Элемент ссылки из HTML.
52
53
  */
@@ -58,10 +59,8 @@ export declare class Link extends React.Component<LinkProps, LinkState> {
58
59
  icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
60
  use: PropTypes.Requireable<string>;
60
61
  };
61
- static defaultProps: {
62
- href: string;
63
- use: string;
64
- };
62
+ static defaultProps: DefaultProps;
63
+ private getProps;
65
64
  state: {
66
65
  focusedByTab: boolean;
67
66
  };
@@ -73,3 +72,4 @@ export declare class Link extends React.Component<LinkProps, LinkState> {
73
72
  private _handleBlur;
74
73
  private _handleClick;
75
74
  }
75
+ export {};
@@ -10,6 +10,7 @@ var _Spinner = require("../Spinner");
10
10
  var _CommonWrapper = require("../../internal/CommonWrapper");
11
11
  var _Emotion = require("../../lib/theming/Emotion");
12
12
  var _rootNodeDecorator = require("../../lib/rootNode/rootNodeDecorator");
13
+ var _createPropsGetter = require("../../lib/createPropsGetter");
13
14
 
14
15
  var _Link = require("./Link.styles");var _excluded = ["disabled", "href", "icon", "use", "loading", "_button", "_buttonOpened", "rel"];var _class, _class2, _temp;
15
16
 
@@ -62,12 +63,15 @@ var _Link = require("./Link.styles");var _excluded = ["disabled", "href", "icon"
62
63
 
63
64
 
64
65
  var LinkDataTids = {
65
- root: 'Link__root' };
66
+ root: 'Link__root' };exports.LinkDataTids = LinkDataTids;
67
+
68
+
69
+
66
70
 
67
71
 
68
72
  /**
69
73
  * Элемент ссылки из HTML.
70
- */exports.LinkDataTids = LinkDataTids;var
74
+ */var
71
75
 
72
76
  Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Link, _React$Component);function Link() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
73
77
 
@@ -87,6 +91,8 @@ Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
87
91
 
88
92
 
89
93
 
94
+ getProps = (0, _createPropsGetter.createPropsGetter)(Link.defaultProps);_this.
95
+
90
96
  state = {
91
97
  focusedByTab: false };_this.
92
98
 
@@ -178,11 +184,12 @@ Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
178
184
  };_this.
179
185
 
180
186
  _handleClick = function (event) {
181
- var _this$props = _this.props,href = _this$props.href,onClick = _this$props.onClick,disabled = _this$props.disabled,loading = _this$props.loading;
187
+ var _this$props = _this.props,onClick = _this$props.onClick,disabled = _this$props.disabled,loading = _this$props.loading;
188
+ var href = _this.getProps().href;
182
189
  if (!href) {
183
190
  event.preventDefault();
184
191
  }
185
192
  if (onClick && !disabled && !loading) {
186
193
  onClick(event);
187
194
  }
188
- };return _this;}var _proto = Link.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};return Link;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Link', _class2.propTypes = { disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.node, use: _propTypes.default.oneOf(['default', 'success', 'danger', 'grayed']) }, _class2.defaultProps = { href: '', use: 'default' }, _temp)) || _class;exports.Link = Link;
195
+ };return _this;}var _proto = Link.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});};return Link;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Link', _class2.propTypes = { disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.node, use: _propTypes.default.oneOf(['default', 'success', 'danger', 'grayed']) }, _class2.defaultProps = { href: '', use: 'default' }, _temp)) || _class;exports.Link = Link;
@@ -1 +1 @@
1
- {"version":3,"sources":["Link.tsx"],"names":["LinkDataTids","root","Link","rootNode","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","styles","theme","arrow","focused","linkProps","className","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","event","requestAnimationFrame","keyListener","isTabPressed","setState","preventDefault","render","setRootNode","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","node","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps = {\n href: '',\n use: 'default',\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\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 private renderMain = (props: CommonWrapperRestProps<LinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = (event: React.FocusEvent<HTMLAnchorElement>) => {\n if (!this.props.disabled) {\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\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { href, onClick, disabled, loading } = this.props;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Link.tsx"],"names":["LinkDataTids","root","Link","rootNode","getProps","defaultProps","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","styles","theme","arrow","focused","linkProps","className","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","event","requestAnimationFrame","keyListener","isTabPressed","setState","preventDefault","render","setRootNode","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","node","oneOf"],"mappings":"qdAAA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,IAAI,EAAE,YADoB,EAArB,C;;;;;;AAOP;AACA;AACA,G;;AAEaC,I,OADZC,2B;;;;;;;;;;;;;;;;;;AAmBSC,IAAAA,Q,GAAW,0CAAkBF,IAAI,CAACG,YAAvB,C;;AAEZC,IAAAA,K,GAAQ;AACbC,MAAAA,YAAY,EAAE,KADD,E;;;;;;;;;;;;;;;;;;;;;AAsBPC,IAAAA,U,GAAa,UAACC,KAAD,EAAyD;AAC5E,UAAQC,QAAR,GAAgGD,KAAhG,CAAQC,QAAR,CAAkBC,IAAlB,GAAgGF,KAAhG,CAAkBE,IAAlB,CAAwBC,IAAxB,GAAgGH,KAAhG,CAAwBG,IAAxB,CAA8BC,GAA9B,GAAgGJ,KAAhG,CAA8BI,GAA9B,CAAmCC,OAAnC,GAAgGL,KAAhG,CAAmCK,OAAnC,CAA4CC,OAA5C,GAAgGN,KAAhG,CAA4CM,OAA5C,CAAqDC,aAArD,GAAgGP,KAAhG,CAAqDO,aAArD,CAAyEC,SAAzE,GAAgGR,KAAhG,CAAoES,GAApE,CAAuFC,IAAvF,+CAAgGV,KAAhG;;AAEA,UAAIW,WAAW,GAAG,IAAlB;AACA,UAAIR,IAAJ,EAAU;AACRQ,QAAAA,WAAW;AACT,+CAAM,SAAS,EAAEC,aAAOT,IAAP,CAAY,MAAKU,KAAjB,CAAjB,IAA2CR,OAAO,gBAAG,6BAAC,gBAAD,IAAS,OAAO,EAAE,IAAlB,EAAwB,MAAM,MAA9B,EAA+B,MAAM,MAArC,GAAH,GAA8CF,IAAhG,CADF;;AAGD;;AAED,UAAIW,KAAK,GAAG,IAAZ;AACA,UAAIR,OAAJ,EAAa;AACXQ,QAAAA,KAAK,gBAAG,uCAAM,SAAS,EAAEF,aAAOE,KAAP,EAAjB,GAAR;AACD;;AAED,UAAIL,GAAG,GAAGD,SAAV;AACA,UAAI,OAAOC,GAAP,KAAe,WAAf,IAA8BP,IAAlC,EAAwC;AACtCO,QAAAA,GAAG,iBAAc,2BAAeP,IAAf,IAAuB,aAAvB,GAAuC,EAArD,CAAH;AACD;;AAED,UAAMa,OAAO,GAAG,CAACd,QAAD,IAAa,MAAKJ,KAAL,CAAWC,YAAxC;;AAEA,UAAMkB,SAAS,GAAG;AAChBC,QAAAA,SAAS,EAAE;AACRL,qBAAOpB,IAAP,CAAY,MAAKqB,KAAjB,CADQ,IACkB,IADlB;AAERD,qBAAOM,MAAP,CAAc,MAAKL,KAAnB,CAFQ,IAEoB,CAAC,CAACP,OAFtB;AAGRM,qBAAOO,YAAP,CAAoB,MAAKN,KAAzB,CAHQ,IAG0B,CAAC,CAACN,aAH5B;AAIRK,qBAAOQ,UAAP,CAAkB,MAAKP,KAAvB,CAJQ,IAIwBT,GAAG,KAAK,SAJhC;AAKRQ,qBAAOS,UAAP,CAAkB,MAAKR,KAAvB,CALQ,IAKwBT,GAAG,KAAK,SALhC;AAMRQ,qBAAOU,SAAP,CAAiB,MAAKT,KAAtB,CANQ,IAMuBT,GAAG,KAAK,QAN/B;AAORQ,qBAAOW,SAAP,CAAiB,MAAKV,KAAtB,CAPQ,IAOuBT,GAAG,KAAK,QAP/B;AAQRQ,qBAAOY,cAAP,CAAsB,MAAKX,KAA3B,CARQ,IAQ4BT,GAAG,KAAK,QAAR,IAAoBW,OARhD;AASRH,qBAAOa,KAAP,CAAa,MAAKZ,KAAlB,CATQ,IASmBE,OATnB;AAURH,qBAAOX,QAAP,CAAgB,MAAKY,KAArB,CAVQ,IAUsB,CAAC,CAACZ,QAAF,IAAc,CAAC,CAACI,OAVtC,OADK;;AAahBH,QAAAA,IAAI,EAAJA,IAbgB;AAchBO,QAAAA,GAAG,EAAHA,GAdgB;AAehBiB,QAAAA,OAAO,EAAE,MAAKC,YAfE;AAgBhBC,QAAAA,OAAO,EAAE,MAAKC,YAhBE;AAiBhBC,QAAAA,MAAM,EAAE,MAAKC,WAjBG;AAkBhBC,QAAAA,QAAQ,EAAE/B,QAAQ,IAAII,OAAZ,GAAsB,CAAC,CAAvB,GAA2B,MAAKL,KAAL,CAAWgC,QAlBhC,EAAlB;;;AAqBA;AACE,mEAAG,YAAUzC,YAAY,CAACC,IAA1B,IAAoCkB,IAApC,EAA8CM,SAA9C;AACGL,QAAAA,WADH;AAEG,cAAKX,KAAL,CAAWiC,QAFd;AAGGnB,QAAAA,KAHH,CADF;;;AAOD,K;;AAEOe,IAAAA,Y,GAAe,UAACK,KAAD,EAAgD;AACrE,UAAI,CAAC,MAAKlC,KAAL,CAAWC,QAAhB,EAA0B;AACxB;AACA;AACAkC,QAAAA,qBAAqB,CAAC,YAAM;AAC1B,cAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,kBAAKC,QAAL,CAAc,EAAExC,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,SAJoB,CAArB;AAKD;AACF,K;;AAEOiC,IAAAA,W,GAAc,YAAM;AAC1B,YAAKO,QAAL,CAAc,EAAExC,YAAY,EAAE,KAAhB,EAAd;AACD,K;;AAEO6B,IAAAA,Y,GAAe,UAACO,KAAD,EAAgD;AACrE,wBAAuC,MAAKlC,KAA5C,CAAQ0B,OAAR,eAAQA,OAAR,CAAiBzB,QAAjB,eAAiBA,QAAjB,CAA2BI,OAA3B,eAA2BA,OAA3B;AACA,UAAMH,IAAI,GAAG,MAAKP,QAAL,GAAgBO,IAA7B;AACA,UAAI,CAACA,IAAL,EAAW;AACTgC,QAAAA,KAAK,CAACK,cAAN;AACD;AACD,UAAIb,OAAO,IAAI,CAACzB,QAAZ,IAAwB,CAACI,OAA7B,EAAsC;AACpCqB,QAAAA,OAAO,CAACQ,KAAD,CAAP;AACD;AACF,K,kDA5FMM,M,GAAP,kBAA6B,mBAC3B,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAC3B,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAAC4B,WAAjC,IAAkD,MAAI,CAAC9C,QAAL,EAAlD,GACG,MAAI,CAACI,UADR,CADF,CAKD,CARH,CADF,CAYD,C,eAxCuB2C,eAAMC,S,WAChBC,mB,GAAsB,M,UAEtBC,S,GAAY,EACxB5C,QAAQ,EAAE6C,mBAAUC,IADI,EAGxB7C,IAAI,EAAE4C,mBAAUE,MAHQ,EAKxB7C,IAAI,EAAE2C,mBAAUG,IALQ,EAOxB7C,GAAG,EAAE0C,mBAAUI,KAAV,CAAgB,CAAC,SAAD,EAAY,SAAZ,EAAuB,QAAvB,EAAiC,QAAjC,CAAhB,CAPmB,E,UAUZtD,Y,GAA6B,EACzCM,IAAI,EAAE,EADmC,EAEzCE,GAAG,EAAE,SAFoC,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps, 'href' | 'use'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps: DefaultProps = {\n href: '',\n use: 'default',\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = (event: React.FocusEvent<HTMLAnchorElement>) => {\n if (!this.props.disabled) {\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\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { onClick, disabled, loading } = this.props;\n const href = this.getProps().href;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
@@ -8,7 +8,7 @@ export interface LoaderProps extends CommonProps {
8
8
  * Флаг переключения состояния лоадера
9
9
  * @default false
10
10
  */
11
- active: boolean;
11
+ active?: boolean;
12
12
  caption?: SpinnerProps['caption'];
13
13
  /**
14
14
  * Компонент заменяющий спиннер.
@@ -20,12 +20,12 @@ export interface LoaderProps extends CommonProps {
20
20
  * Время в миллисекундах для показа вуали без спиннера.
21
21
  * @default 300
22
22
  */
23
- delayBeforeSpinnerShow: number;
23
+ delayBeforeSpinnerShow?: number;
24
24
  /**
25
25
  * Минимальное время в миллисекундах для показа спиннера
26
26
  * @default 1000
27
27
  */
28
- minimalDelayBeforeSpinnerHide: number;
28
+ minimalDelayBeforeSpinnerHide?: number;
29
29
  }
30
30
  export interface LoaderState {
31
31
  isStickySpinner: boolean;
@@ -37,12 +37,14 @@ export declare const LoaderDataTids: {
37
37
  readonly veil: "Loader__Veil";
38
38
  readonly spinner: "Loader__Spinner";
39
39
  };
40
+ declare type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
40
41
  /**
41
42
  * DRAFT - лоадер-контейнер
42
43
  */
43
44
  export declare class Loader extends React.Component<LoaderProps, LoaderState> {
44
45
  static __KONTUR_REACT_UI__: string;
45
- static defaultProps: Partial<LoaderProps>;
46
+ static defaultProps: DefaultProps;
47
+ private getProps;
46
48
  static propTypes: {
47
49
  /**
48
50
  * показываем лоадер или нет
@@ -102,3 +104,4 @@ export declare class Loader extends React.Component<LoaderProps, LoaderState> {
102
104
  private makeObservable;
103
105
  private makeUnobservable;
104
106
  }
107
+ export {};