@skbkontur/react-ui 5.4.7-7ccf0.0 → 5.4.7-a27a4.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 (281) hide show
  1. package/cjs/components/Button/Button.d.ts +1 -0
  2. package/cjs/components/Button/Button.js.map +1 -1
  3. package/cjs/components/Calendar/Calendar.d.ts +1 -1
  4. package/cjs/components/Calendar/Calendar.js.map +1 -1
  5. package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
  6. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  7. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  8. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  9. package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  10. package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
  11. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
  13. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  14. package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
  15. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  16. package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
  17. package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
  18. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  19. package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
  20. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  21. package/cjs/components/Input/Input.d.ts +2 -2
  22. package/cjs/components/Input/Input.js.map +1 -1
  23. package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
  24. package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
  25. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  26. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
  27. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  28. package/cjs/components/Kebab/Kebab.d.ts +1 -1
  29. package/cjs/components/Kebab/Kebab.js.map +1 -1
  30. package/cjs/components/Link/Link.d.ts +1 -1
  31. package/cjs/components/Link/Link.js.map +1 -1
  32. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  33. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
  34. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  35. package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
  36. package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  37. package/cjs/components/MaskedInput/MaskedInput.js +2 -2
  38. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  39. package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
  40. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  41. package/cjs/components/Modal/Modal.d.ts +4 -1
  42. package/cjs/components/Modal/Modal.js +8 -3
  43. package/cjs/components/Modal/Modal.js.map +1 -1
  44. package/cjs/components/Modal/ModalBody.d.ts +2 -2
  45. package/cjs/components/Modal/ModalBody.js.map +1 -1
  46. package/cjs/components/Paging/Paging.d.ts +2 -2
  47. package/cjs/components/Paging/Paging.js.map +1 -1
  48. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
  49. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  50. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
  51. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  52. package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
  53. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  54. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  55. package/cjs/components/Select/Select.d.ts +1 -1
  56. package/cjs/components/Select/Select.js.map +1 -1
  57. package/cjs/components/SidePage/SidePage.d.ts +5 -2
  58. package/cjs/components/SidePage/SidePage.js +9 -3
  59. package/cjs/components/SidePage/SidePage.js.map +1 -1
  60. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
  61. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  62. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
  63. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  64. package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
  65. package/cjs/components/Sticky/Sticky.js +6 -2
  66. package/cjs/components/Sticky/Sticky.js.map +1 -1
  67. package/cjs/components/Tabs/Tabs.d.ts +1 -1
  68. package/cjs/components/Tabs/Tabs.js.map +1 -1
  69. package/cjs/components/Token/TokenView.d.ts +2 -1
  70. package/cjs/components/Token/TokenView.js +4 -4
  71. package/cjs/components/Token/TokenView.js.map +1 -1
  72. package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
  73. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  74. package/cjs/components/TokenInput/TokenInput.js +14 -7
  75. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  76. package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
  77. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  78. package/cjs/hooks/useDrop.js +1 -1
  79. package/cjs/hooks/useDrop.js.map +1 -1
  80. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
  81. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  82. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  83. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
  84. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  85. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  86. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
  87. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  88. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  89. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
  90. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  91. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  92. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
  93. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  94. package/cjs/internal/Menu/Menu.js +6 -2
  95. package/cjs/internal/Menu/Menu.js.map +1 -1
  96. package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
  97. package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
  98. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  99. package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
  100. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  101. package/cjs/internal/Popup/Popup.js +2 -4
  102. package/cjs/internal/Popup/Popup.js.map +1 -1
  103. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
  104. package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
  105. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  106. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
  107. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  108. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
  109. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  110. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  111. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  112. package/cjs/lib/dom/getDOMRect.d.ts +1 -1
  113. package/cjs/lib/dom/getDOMRect.js +3 -1
  114. package/cjs/lib/dom/getDOMRect.js.map +1 -1
  115. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  116. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  117. package/cjs/lib/forwardRefAndName.d.ts +3 -2
  118. package/cjs/lib/forwardRefAndName.js +2 -1
  119. package/cjs/lib/forwardRefAndName.js.map +1 -1
  120. package/cjs/lib/getElementRef.d.ts +5 -0
  121. package/cjs/lib/getElementRef.js +16 -0
  122. package/cjs/lib/getElementRef.js.map +1 -0
  123. package/cjs/lib/locale/decorators.d.ts +0 -3
  124. package/cjs/lib/mergeRefs.d.ts +2 -3
  125. package/cjs/lib/mergeRefs.js +1 -1
  126. package/cjs/lib/mergeRefs.js.map +1 -1
  127. package/cjs/lib/reactGetTextContent.js +6 -1
  128. package/cjs/lib/reactGetTextContent.js.map +1 -1
  129. package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  130. package/cjs/lib/rootNode/getRootNode.js +1 -24
  131. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  132. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  133. package/cjs/lib/size/SizeDecorator.d.ts +0 -3
  134. package/cjs/lib/types/polymorphic-component.d.ts +2 -1
  135. package/cjs/lib/types/polymorphic-component.js.map +1 -1
  136. package/cjs/lib/utils.d.ts +4 -3
  137. package/cjs/lib/utils.js +4 -3
  138. package/cjs/lib/utils.js.map +1 -1
  139. package/cjs/lib/withClassWrapper.d.ts +3 -8
  140. package/components/Button/Button/Button.js +1 -1
  141. package/components/Button/Button/Button.js.map +1 -1
  142. package/components/Button/Button.d.ts +1 -0
  143. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  144. package/components/Calendar/Calendar.d.ts +1 -1
  145. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  146. package/components/DateInput/DateFragmentsView.d.ts +2 -2
  147. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
  148. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  149. package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  150. package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
  151. package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  152. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  153. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  154. package/components/Dropdown/Dropdown.d.ts +4 -4
  155. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  156. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  157. package/components/FileUploader/FileUploader.d.ts +1 -1
  158. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
  159. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
  160. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
  161. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  162. package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  163. package/components/Input/Input/Input.js.map +1 -1
  164. package/components/Input/Input.d.ts +2 -2
  165. package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
  166. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  167. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  168. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
  169. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  170. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  171. package/components/Kebab/Kebab.d.ts +1 -1
  172. package/components/Link/Link/Link.js.map +1 -1
  173. package/components/Link/Link.d.ts +1 -1
  174. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
  175. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  176. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  177. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
  178. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
  179. package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
  180. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  181. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  182. package/components/MenuItem/MenuItem.d.ts +1 -1
  183. package/components/Modal/Modal/Modal.js +7 -3
  184. package/components/Modal/Modal/Modal.js.map +1 -1
  185. package/components/Modal/Modal.d.ts +4 -1
  186. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  187. package/components/Modal/ModalBody.d.ts +2 -2
  188. package/components/Paging/Paging/Paging.js.map +1 -1
  189. package/components/Paging/Paging.d.ts +2 -2
  190. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  191. package/components/PasswordInput/PasswordInput.d.ts +1 -1
  192. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  193. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  194. package/components/ResponsiveLayout/decorator.d.ts +0 -3
  195. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  196. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  197. package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  198. package/components/Select/Select/Select.js.map +1 -1
  199. package/components/Select/Select.d.ts +1 -1
  200. package/components/SidePage/SidePage/SidePage.js +7 -3
  201. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  202. package/components/SidePage/SidePage.d.ts +5 -2
  203. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  204. package/components/SidePage/SidePageFooter.d.ts +1 -1
  205. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  206. package/components/SidePage/SidePageHeader.d.ts +1 -1
  207. package/components/SingleToast/SingleToast.d.ts +1 -1
  208. package/components/Sticky/Sticky/Sticky.js +2 -2
  209. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  210. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  211. package/components/Tabs/Tabs.d.ts +1 -1
  212. package/components/Token/TokenView/TokenView.js +6 -4
  213. package/components/Token/TokenView/TokenView.js.map +1 -1
  214. package/components/Token/TokenView.d.ts +2 -1
  215. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
  216. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  217. package/components/TokenInput/TokenInput/TokenInput.js +5 -5
  218. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  219. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  220. package/components/Tooltip/Tooltip.d.ts +4 -4
  221. package/hooks/useDrop/useDrop.js +1 -1
  222. package/hooks/useDrop/useDrop.js.map +1 -1
  223. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  224. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  225. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
  226. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  227. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  228. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
  229. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  230. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  231. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
  232. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  233. package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  234. package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  235. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  236. package/internal/InputLikeText/InputLikeText.d.ts +2 -2
  237. package/internal/Menu/Menu/Menu.js +2 -2
  238. package/internal/Menu/Menu/Menu.js.map +1 -1
  239. package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
  240. package/internal/Menu/MenuNavigation.d.ts +1 -1
  241. package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
  242. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  243. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  244. package/internal/Popup/Popup/Popup.js +2 -2
  245. package/internal/Popup/Popup/Popup.js.map +1 -1
  246. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  247. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  248. package/internal/PopupMenu/PopupMenu.d.ts +1 -1
  249. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  250. package/internal/RenderLayer/RenderLayer.d.ts +2 -2
  251. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
  252. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
  253. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  254. package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  255. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
  256. package/lib/dom/getDOMRect.d.ts +1 -1
  257. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  258. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  259. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  260. package/lib/forwardRefAndName.d.ts +3 -2
  261. package/lib/getElementRef/getElementRef.js +11 -0
  262. package/lib/getElementRef/getElementRef.js.map +1 -0
  263. package/lib/getElementRef/package.json +6 -0
  264. package/lib/getElementRef.d.ts +5 -0
  265. package/lib/locale/decorators.d.ts +0 -3
  266. package/lib/mergeRefs/mergeRefs.js.map +1 -1
  267. package/lib/mergeRefs.d.ts +2 -3
  268. package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
  269. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  270. package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  271. package/lib/rootNode/getRootNode/getRootNode.js +0 -15
  272. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  273. package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  274. package/lib/size/SizeDecorator.d.ts +0 -3
  275. package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
  276. package/lib/types/polymorphic-component.d.ts +2 -1
  277. package/lib/utils/utils.js +2 -2
  278. package/lib/utils/utils.js.map +1 -1
  279. package/lib/utils.d.ts +4 -3
  280. package/lib/withClassWrapper.d.ts +3 -8
  281. package/package.json +10 -9
@@ -1 +1 @@
1
- {"version":3,"names":["invariant","React","createRef","warning","isKeyBackspace","isKeyDelete","someKeys","ThemeContext","CommonWrapper","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","withRenderEnvironment","getStyles","InputLayout","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_this$globalObject$re","globalObject","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","createElement","renderMain","_this$cx","_this$cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_this$globalObject$do","_this$input2","includes","document","activeElement","render","_this2","emotion","Consumer","rootNodeRef","setRootNode","_this$cx3","_this$cx4","_this$cx5","sizeLarge","sizeMedium","sizeSmall","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport type { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { getStyles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Задаёт размер.\n * @default small\n */\n size?: SizeProp;\n\n /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт тип поля ввода. */\n type?: InputType;\n\n /** Задаёт значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропсы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\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 /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n warning(false, 'Cannot call \"setSelectionRange\" on unmounted Input');\n return;\n }\n\n if (this.globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n\n this.input?.setSelectionRange(start, end);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\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 /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = this.globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n this.globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return React.createElement('input', inputProps);\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 role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: this.cx(this.styles.root(this.theme), this.getSizeClassName(), {\n [this.styles.focus(this.theme)]: focused && !warning && !error,\n [this.styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [this.styles.borderless()]: borderless && !focused,\n [this.styles.disabled(this.theme)]: disabled,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: this.cx(this.styles.input(this.theme), {\n [this.styles.inputFocus(this.theme)]: focused,\n [this.styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\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,\n placeholder,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n </InputLayout>\n );\n };\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.cx({\n [this.styles.sizeLarge(this.theme)]: true,\n });\n case 'medium':\n return this.cx({\n [this.styles.sizeMedium(this.theme)]: true,\n });\n case 'small':\n default:\n return this.cx({\n [this.styles.sizeSmall(this.theme)]: true,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InputElement | null) => {\n if (element && 'input' in element) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\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 this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && this.selectAll();\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 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 resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["invariant","React","createRef","warning","isKeyBackspace","isKeyDelete","someKeys","ThemeContext","CommonWrapper","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","withRenderEnvironment","getStyles","InputLayout","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_this$globalObject$re","globalObject","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","createElement","renderMain","_this$cx","_this$cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_this$globalObject$do","_this$input2","includes","document","activeElement","render","_this2","emotion","Consumer","rootNodeRef","setRootNode","_this$cx3","_this$cx4","_this$cx5","sizeLarge","sizeMedium","sizeSmall","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, JSX, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport type { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { getStyles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Задаёт размер.\n * @default small\n */\n size?: SizeProp;\n\n /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт тип поля ввода. */\n type?: InputType;\n\n /** Задаёт значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропсы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\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 /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n warning(false, 'Cannot call \"setSelectionRange\" on unmounted Input');\n return;\n }\n\n if (this.globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n\n this.input?.setSelectionRange(start, end);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\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 /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = this.globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n this.globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return React.createElement('input', inputProps);\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 role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: this.cx(this.styles.root(this.theme), this.getSizeClassName(), {\n [this.styles.focus(this.theme)]: focused && !warning && !error,\n [this.styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [this.styles.borderless()]: borderless && !focused,\n [this.styles.disabled(this.theme)]: disabled,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: this.cx(this.styles.input(this.theme), {\n [this.styles.inputFocus(this.theme)]: focused,\n [this.styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\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,\n placeholder,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n </InputLayout>\n );\n };\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.cx({\n [this.styles.sizeLarge(this.theme)]: true,\n });\n case 'medium':\n return this.cx({\n [this.styles.sizeMedium(this.theme)]: true,\n });\n case 'small':\n default:\n return this.cx({\n [this.styles.sizeSmall(this.theme)]: true,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InputElement | null) => {\n if (element && 'input' in element) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\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 this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && this.selectAll();\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 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 resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AriaAttributes, HTMLAttributes, ReactElement } from 'react';
1
+ import type { AriaAttributes, HTMLAttributes, JSX, ReactElement } from 'react';
2
2
  import React from 'react';
3
3
  import type { Override } from '../../typings/utility-types';
4
4
  import type { CommonProps } from '../../internal/CommonWrapper';
@@ -99,7 +99,7 @@ export declare class Input extends React.Component<InputProps, InputState> {
99
99
  private styles;
100
100
  private theme;
101
101
  input: HTMLInputElement | null;
102
- labelRef: React.RefObject<HTMLLabelElement>;
102
+ labelRef: React.RefObject<HTMLLabelElement | null>;
103
103
  getRootNode: TGetRootNode;
104
104
  private setRootNode;
105
105
  private getClearCrossShowed;
@@ -4,6 +4,7 @@ import { useStyles } from "../../../../lib/renderEnvironment";
4
4
  import { forwardRefAndName } from "../../../../lib/forwardRefAndName";
5
5
  import { InputDataTids } from "../../Input";
6
6
  import { CommonWrapper } from "../../../../internal/CommonWrapper";
7
+ import { mergeRefs } from "../../../../lib/mergeRefs";
7
8
  import { InputLayoutAside } from "../InputLayoutAside";
8
9
  import { InputLayoutContext, InputLayoutContextDefault } from "../InputLayoutContext";
9
10
  import { getStylesLayout } from "../InputLayout.styles";
@@ -26,9 +27,10 @@ export var InputLayout = forwardRefAndName('InputLayout', function (props, ref)
26
27
  }, /*#__PURE__*/
27
28
  React.createElement(CommonWrapper, props, /*#__PURE__*/
28
29
  React.createElement(Tag, _extends({
29
- ref: ref,
30
30
  "data-tid": InputDataTids.root
31
- }, labelProps), /*#__PURE__*/
31
+ }, labelProps, {
32
+ ref: mergeRefs(ref, labelProps.ref)
33
+ }), /*#__PURE__*/
32
34
  React.createElement(InputLayoutAside, {
33
35
  icon: leftIcon,
34
36
  text: prefix,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useStyles","forwardRefAndName","InputDataTids","CommonWrapper","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","getStylesLayout","InputLayout","props","ref","stylesLayout","leftIcon","rightIcon","prefix","suffix","labelProps","context","children","_props$tag","tag","_context","_extends","Tag","createElement","Provider","value","root","icon","text","side","className","input"],"sources":["InputLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useStyles } from '../../../lib/renderEnvironment';\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport type { InputProps } from '../Input';\nimport { InputDataTids } from '../Input';\nimport type { CommonProps } from '../../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../../internal/CommonWrapper';\n\nimport { InputLayoutAside } from './InputLayoutAside';\nimport type { InputLayoutContextProps } from './InputLayoutContext';\nimport { InputLayoutContext, InputLayoutContextDefault } from './InputLayoutContext';\nimport { getStylesLayout } from './InputLayout.styles';\n\ntype InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;\n\nexport interface InputLayoutRootProps extends InputLayoutRootFromInputProps, CommonProps {\n labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;\n context: Partial<InputLayoutContextProps>;\n tag?: 'label' | 'span';\n}\n\nexport const InputLayout = forwardRefAndName<HTMLLabelElement, InputLayoutRootProps>('InputLayout', (props, ref) => {\n const stylesLayout = useStyles(getStylesLayout);\n const { leftIcon, rightIcon, prefix, suffix, labelProps, context, children, tag = 'label' } = props;\n const _context: InputLayoutContextProps = { ...InputLayoutContextDefault, ...context };\n const Tag = tag;\n\n return (\n <InputLayoutContext.Provider value={_context}>\n <CommonWrapper {...props}>\n <Tag ref={ref} data-tid={InputDataTids.root} {...labelProps}>\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n <span className={stylesLayout.input()}>{children}</span>\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n </Tag>\n </CommonWrapper>\n </InputLayoutContext.Provider>\n );\n});\n"],"mappings":"0DAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,iBAAiB,QAAQ,gCAAgC;;AAElE,SAASC,aAAa,QAAQ,UAAU;;AAExC,SAASC,aAAa,QAAQ,iCAAiC;;AAE/D,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD,SAASC,kBAAkB,EAAEC,yBAAyB,QAAQ,sBAAsB;AACpF,SAASC,eAAe,QAAQ,sBAAsB;;;;;;;;;;AAUtD,OAAO,IAAMC,WAAW,GAAGP,iBAAiB,CAAyC,aAAa,EAAE,UAACQ,KAAK,EAAEC,GAAG,EAAK;EAClH,IAAMC,YAAY,GAAGX,SAAS,CAACO,eAAe,CAAC;EAC/C,IAAQK,QAAQ,GAA8EH,KAAK,CAA3FG,QAAQ,CAAEC,SAAS,GAAmEJ,KAAK,CAAjFI,SAAS,CAAEC,MAAM,GAA2DL,KAAK,CAAtEK,MAAM,CAAEC,MAAM,GAAmDN,KAAK,CAA9DM,MAAM,CAAEC,UAAU,GAAuCP,KAAK,CAAtDO,UAAU,CAAEC,OAAO,GAA8BR,KAAK,CAA1CQ,OAAO,CAAEC,QAAQ,GAAoBT,KAAK,CAAjCS,QAAQ,CAAAC,UAAA,GAAoBV,KAAK,CAAvBW,GAAG,CAAHA,GAAG,GAAAD,UAAA,cAAG,OAAO,GAAAA,UAAA;EACzF,IAAME,QAAiC,GAAAC,QAAA,KAAQhB,yBAAyB,EAAKW,OAAO,CAAE;EACtF,IAAMM,GAAG,GAAGH,GAAG;;EAEf;IACErB,KAAA,CAAAyB,aAAA,CAACnB,kBAAkB,CAACoB,QAAQ,IAACC,KAAK,EAAEL,QAAS;IAC3CtB,KAAA,CAAAyB,aAAA,CAACrB,aAAa,EAAKM,KAAK;IACtBV,KAAA,CAAAyB,aAAA,CAACD,GAAG,EAAAD,QAAA,GAACZ,GAAG,EAAEA,GAAI,EAAC,YAAUR,aAAa,CAACyB,IAAK,IAAKX,UAAU;IACzDjB,KAAA,CAAAyB,aAAA,CAACpB,gBAAgB,IAACwB,IAAI,EAAEhB,QAAS,EAACiB,IAAI,EAAEf,MAAO,EAACgB,IAAI,EAAC,MAAM,EAAE,CAAC;IAC9D/B,KAAA,CAAAyB,aAAA,WAAMO,SAAS,EAAEpB,YAAY,CAACqB,KAAK,CAAC,CAAE,IAAEd,QAAe,CAAC;IACxDnB,KAAA,CAAAyB,aAAA,CAACpB,gBAAgB,IAACwB,IAAI,EAAEf,SAAU,EAACgB,IAAI,EAAEd,MAAO,EAACe,IAAI,EAAC,OAAO,EAAE;IAC5D;IACQ;IACY,CAAC;;AAElC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useStyles","forwardRefAndName","InputDataTids","CommonWrapper","mergeRefs","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","getStylesLayout","InputLayout","props","ref","stylesLayout","leftIcon","rightIcon","prefix","suffix","labelProps","context","children","_props$tag","tag","_context","_extends","Tag","createElement","Provider","value","root","icon","text","side","className","input"],"sources":["InputLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useStyles } from '../../../lib/renderEnvironment';\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport type { InputProps } from '../Input';\nimport { InputDataTids } from '../Input';\nimport type { CommonProps } from '../../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../../internal/CommonWrapper';\nimport { mergeRefs } from '../../../lib/mergeRefs';\n\nimport { InputLayoutAside } from './InputLayoutAside';\nimport type { InputLayoutContextProps } from './InputLayoutContext';\nimport { InputLayoutContext, InputLayoutContextDefault } from './InputLayoutContext';\nimport { getStylesLayout } from './InputLayout.styles';\n\ntype InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;\n\nexport interface InputLayoutRootProps extends InputLayoutRootFromInputProps, CommonProps {\n labelProps: React.LabelHTMLAttributes<HTMLLabelElement> & { ref?: React.Ref<HTMLLabelElement> };\n context: Partial<InputLayoutContextProps>;\n tag?: 'label' | 'span';\n}\n\nexport const InputLayout = forwardRefAndName<HTMLLabelElement, InputLayoutRootProps>('InputLayout', (props, ref) => {\n const stylesLayout = useStyles(getStylesLayout);\n const { leftIcon, rightIcon, prefix, suffix, labelProps, context, children, tag = 'label' } = props;\n const _context: InputLayoutContextProps = { ...InputLayoutContextDefault, ...context };\n const Tag = tag;\n\n return (\n <InputLayoutContext.Provider value={_context}>\n <CommonWrapper {...props}>\n <Tag data-tid={InputDataTids.root} {...labelProps} ref={mergeRefs(ref, labelProps.ref)}>\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n <span className={stylesLayout.input()}>{children}</span>\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n </Tag>\n </CommonWrapper>\n </InputLayoutContext.Provider>\n );\n});\n"],"mappings":"0DAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,iBAAiB,QAAQ,gCAAgC;;AAElE,SAASC,aAAa,QAAQ,UAAU;;AAExC,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,SAAS,QAAQ,wBAAwB;;AAElD,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD,SAASC,kBAAkB,EAAEC,yBAAyB,QAAQ,sBAAsB;AACpF,SAASC,eAAe,QAAQ,sBAAsB;;;;;;;;;;AAUtD,OAAO,IAAMC,WAAW,GAAGR,iBAAiB,CAAyC,aAAa,EAAE,UAACS,KAAK,EAAEC,GAAG,EAAK;EAClH,IAAMC,YAAY,GAAGZ,SAAS,CAACQ,eAAe,CAAC;EAC/C,IAAQK,QAAQ,GAA8EH,KAAK,CAA3FG,QAAQ,CAAEC,SAAS,GAAmEJ,KAAK,CAAjFI,SAAS,CAAEC,MAAM,GAA2DL,KAAK,CAAtEK,MAAM,CAAEC,MAAM,GAAmDN,KAAK,CAA9DM,MAAM,CAAEC,UAAU,GAAuCP,KAAK,CAAtDO,UAAU,CAAEC,OAAO,GAA8BR,KAAK,CAA1CQ,OAAO,CAAEC,QAAQ,GAAoBT,KAAK,CAAjCS,QAAQ,CAAAC,UAAA,GAAoBV,KAAK,CAAvBW,GAAG,CAAHA,GAAG,GAAAD,UAAA,cAAG,OAAO,GAAAA,UAAA;EACzF,IAAME,QAAiC,GAAAC,QAAA,KAAQhB,yBAAyB,EAAKW,OAAO,CAAE;EACtF,IAAMM,GAAG,GAAGH,GAAG;;EAEf;IACEtB,KAAA,CAAA0B,aAAA,CAACnB,kBAAkB,CAACoB,QAAQ,IAACC,KAAK,EAAEL,QAAS;IAC3CvB,KAAA,CAAA0B,aAAA,CAACtB,aAAa,EAAKO,KAAK;IACtBX,KAAA,CAAA0B,aAAA,CAACD,GAAG,EAAAD,QAAA,GAAC,YAAUrB,aAAa,CAAC0B,IAAK,IAAKX,UAAU,IAAEN,GAAG,EAAEP,SAAS,CAACO,GAAG,EAAEM,UAAU,CAACN,GAAG,CAAE;IACrFZ,KAAA,CAAA0B,aAAA,CAACpB,gBAAgB,IAACwB,IAAI,EAAEhB,QAAS,EAACiB,IAAI,EAAEf,MAAO,EAACgB,IAAI,EAAC,MAAM,EAAE,CAAC;IAC9DhC,KAAA,CAAA0B,aAAA,WAAMO,SAAS,EAAEpB,YAAY,CAACqB,KAAK,CAAC,CAAE,IAAEd,QAAe,CAAC;IACxDpB,KAAA,CAAA0B,aAAA,CAACpB,gBAAgB,IAACwB,IAAI,EAAEf,SAAU,EAACgB,IAAI,EAAEd,MAAO,EAACe,IAAI,EAAC,OAAO,EAAE;IAC5D;IACQ;IACY,CAAC;;AAElC,CAAC,CAAC","ignoreList":[]}
@@ -4,7 +4,9 @@ import type { CommonProps } from '../../../internal/CommonWrapper';
4
4
  import type { InputLayoutContextProps } from './InputLayoutContext';
5
5
  type InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;
6
6
  export interface InputLayoutRootProps extends InputLayoutRootFromInputProps, CommonProps {
7
- labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;
7
+ labelProps: React.LabelHTMLAttributes<HTMLLabelElement> & {
8
+ ref?: React.Ref<HTMLLabelElement>;
9
+ };
8
10
  context: Partial<InputLayoutContextProps>;
9
11
  tag?: 'label' | 'span';
10
12
  }
@@ -29,9 +29,9 @@ export var InputLayoutAsideIcon = function InputLayoutAsideIcon(_ref) {
29
29
  };
30
30
  var _icon = icon instanceof Function ? icon() : icon;
31
31
  if (isElement(icon) && isKonturIcon(icon)) {
32
- var _icon$props$size;
32
+ var _ref2;
33
33
  _icon = /*#__PURE__*/React.cloneElement(icon, {
34
- size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[size]
34
+ size: (_ref2 = icon.props.size) != null ? _ref2 : sizes[size]
35
35
  });
36
36
  }
37
37
  var style = {};
@@ -1 +1 @@
1
- {"version":3,"names":["React","isElement","useEmotion","useStyles","isKonturIcon","ThemeContext","InputLayoutContext","getStylesLayout","InputLayoutAsideIcon","_ref","_ref$icon","icon","side","theme","useContext","_useEmotion","cx","stylesLayout","_React$useContext","focused","disabled","size","sizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","gaps","inputIconGapSmall","inputIconGapMedium","inputIconGapLarge","_icon","Function","_icon$props$size","cloneElement","props","style","marginLeft","marginRight","createElement","className","aside","iconFocus","iconDisabled"],"sources":["InputLayoutAsideIcon.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\n\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment';\nimport { isKonturIcon } from '../../../lib/utils';\nimport type { InputProps } from '../Input';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport type { SizeProp } from '../../../lib/types/props';\n\nimport { InputLayoutContext } from './InputLayoutContext';\nimport { getStylesLayout } from './InputLayout.styles';\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n _icon = React.cloneElement(icon as ReactElement, { size: icon.props.size ?? sizes[size] });\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return _icon ? (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(theme),\n )}\n >\n {_icon}\n </span>\n ) : null;\n};\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,UAAU;;AAEpC,SAASC,UAAU,EAAEC,SAAS,QAAQ,gCAAgC;AACtE,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD,SAASC,YAAY,QAAQ,mCAAmC;;;AAGhE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,eAAe,QAAQ,sBAAsB;;;;;;AAMtD,OAAO,IAAMC,oBAAwE,GAAG,SAA3EA,oBAAwEA,CAAAC,IAAA,EAA8B,KAAAC,SAAA,GAAAD,IAAA,CAAxBE,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA,CAAEE,IAAI,GAAAH,IAAA,CAAJG,IAAI;EAC1G,IAAMC,KAAK,GAAGb,KAAK,CAACc,UAAU,CAACT,YAAY,CAAC;EAC5C,IAAAU,WAAA,GAAeb,UAAU,CAAC,CAAC,CAAnBc,EAAE,GAAAD,WAAA,CAAFC,EAAE;EACV,IAAMC,YAAY,GAAGd,SAAS,CAACI,eAAe,CAAC;EAC/C,IAAAW,iBAAA,GAAoClB,KAAK,CAACc,UAAU,CAACR,kBAAkB,CAAC,CAAhEa,OAAO,GAAAD,iBAAA,CAAPC,OAAO,CAAEC,QAAQ,GAAAF,iBAAA,CAARE,QAAQ,CAAEC,IAAI,GAAAH,iBAAA,CAAJG,IAAI;;EAE/B,IAAMC,KAA+B,GAAG;IACtCC,KAAK,EAAEC,QAAQ,CAACX,KAAK,CAACY,kBAAkB,CAAC;IACzCC,MAAM,EAAEF,QAAQ,CAACX,KAAK,CAACc,mBAAmB,CAAC;IAC3CC,KAAK,EAAEJ,QAAQ,CAACX,KAAK,CAACgB,kBAAkB;EAC1C,CAAC;EACD,IAAMC,IAA8B,GAAG;IACrCP,KAAK,EAAEC,QAAQ,CAACX,KAAK,CAACkB,iBAAiB,CAAC;IACxCL,MAAM,EAAEF,QAAQ,CAACX,KAAK,CAACmB,kBAAkB,CAAC;IAC1CJ,KAAK,EAAEJ,QAAQ,CAACX,KAAK,CAACoB,iBAAiB;EACzC,CAAC;;EAED,IAAIC,KAAK,GAAGvB,IAAI,YAAYwB,QAAQ,GAAGxB,IAAI,CAAC,CAAC,GAAGA,IAAI;EACpD,IAAIV,SAAS,CAACU,IAAI,CAAC,IAAIP,YAAY,CAACO,IAAoB,CAAC,EAAE,KAAAyB,gBAAA;IACzDF,KAAK,gBAAGlC,KAAK,CAACqC,YAAY,CAAC1B,IAAI,EAAkB,EAAEU,IAAI,GAAAe,gBAAA,GAAEzB,IAAI,CAAC2B,KAAK,CAACjB,IAAI,YAAAe,gBAAA,GAAId,KAAK,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC;EAC5F;;EAEA,IAAMkB,KAA0B,GAAG,CAAC,CAAC;EACrC,IAAI3B,IAAI,EAAE;IACR,IAAIA,IAAI,KAAK,OAAO,EAAE;MACpB2B,KAAK,CAACC,UAAU,GAAGV,IAAI,CAACT,IAAI,CAAC;IAC/B,CAAC,MAAM;MACLkB,KAAK,CAACE,WAAW,GAAGX,IAAI,CAACT,IAAI,CAAC;IAChC;EACF;;EAEA,OAAOa,KAAK;EACVlC,KAAA,CAAA0C,aAAA;IACEH,KAAK,EAAEA,KAAM;IACbI,SAAS,EAAE3B,EAAE;MACXC,YAAY,CAAC2B,KAAK,CAAC,CAAC;MACpB3B,YAAY,CAACN,IAAI,CAACE,KAAK,CAAC;MACxBM,OAAO,IAAIF,YAAY,CAAC4B,SAAS,CAAChC,KAAK,CAAC;MACxCO,QAAQ,IAAIH,YAAY,CAAC6B,YAAY,CAACjC,KAAK;IAC7C,CAAE;;EAEDqB;EACG,CAAC;EACL,IAAI;AACV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","isElement","useEmotion","useStyles","isKonturIcon","ThemeContext","InputLayoutContext","getStylesLayout","InputLayoutAsideIcon","_ref","_ref$icon","icon","side","theme","useContext","_useEmotion","cx","stylesLayout","_React$useContext","focused","disabled","size","sizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","gaps","inputIconGapSmall","inputIconGapMedium","inputIconGapLarge","_icon","Function","_ref2","cloneElement","props","style","marginLeft","marginRight","createElement","className","aside","iconFocus","iconDisabled"],"sources":["InputLayoutAsideIcon.tsx"],"sourcesContent":["import React from 'react';\nimport { isElement } from 'react-is';\n\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment';\nimport { isKonturIcon } from '../../../lib/utils';\nimport type { InputProps } from '../Input';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport type { SizeProp } from '../../../lib/types/props';\n\nimport { InputLayoutContext } from './InputLayoutContext';\nimport { getStylesLayout } from './InputLayout.styles';\n\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon)) {\n _icon = React.cloneElement(icon, {\n size: (icon.props.size as number) ?? sizes[size],\n });\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return _icon ? (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(theme),\n )}\n >\n {_icon}\n </span>\n ) : null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,UAAU;;AAEpC,SAASC,UAAU,EAAEC,SAAS,QAAQ,gCAAgC;AACtE,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD,SAASC,YAAY,QAAQ,mCAAmC;;;AAGhE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,eAAe,QAAQ,sBAAsB;;;;;;;AAOtD,OAAO,IAAMC,oBAAwE,GAAG,SAA3EA,oBAAwEA,CAAAC,IAAA,EAA8B,KAAAC,SAAA,GAAAD,IAAA,CAAxBE,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA,CAAEE,IAAI,GAAAH,IAAA,CAAJG,IAAI;EAC1G,IAAMC,KAAK,GAAGb,KAAK,CAACc,UAAU,CAACT,YAAY,CAAC;EAC5C,IAAAU,WAAA,GAAeb,UAAU,CAAC,CAAC,CAAnBc,EAAE,GAAAD,WAAA,CAAFC,EAAE;EACV,IAAMC,YAAY,GAAGd,SAAS,CAACI,eAAe,CAAC;EAC/C,IAAAW,iBAAA,GAAoClB,KAAK,CAACc,UAAU,CAACR,kBAAkB,CAAC,CAAhEa,OAAO,GAAAD,iBAAA,CAAPC,OAAO,CAAEC,QAAQ,GAAAF,iBAAA,CAARE,QAAQ,CAAEC,IAAI,GAAAH,iBAAA,CAAJG,IAAI;;EAE/B,IAAMC,KAA+B,GAAG;IACtCC,KAAK,EAAEC,QAAQ,CAACX,KAAK,CAACY,kBAAkB,CAAC;IACzCC,MAAM,EAAEF,QAAQ,CAACX,KAAK,CAACc,mBAAmB,CAAC;IAC3CC,KAAK,EAAEJ,QAAQ,CAACX,KAAK,CAACgB,kBAAkB;EAC1C,CAAC;EACD,IAAMC,IAA8B,GAAG;IACrCP,KAAK,EAAEC,QAAQ,CAACX,KAAK,CAACkB,iBAAiB,CAAC;IACxCL,MAAM,EAAEF,QAAQ,CAACX,KAAK,CAACmB,kBAAkB,CAAC;IAC1CJ,KAAK,EAAEJ,QAAQ,CAACX,KAAK,CAACoB,iBAAiB;EACzC,CAAC;;EAED,IAAIC,KAAK,GAAGvB,IAAI,YAAYwB,QAAQ,GAAGxB,IAAI,CAAC,CAAC,GAAGA,IAAI;EACpD,IAAIV,SAAS,CAACU,IAAI,CAAC,IAAIP,YAAY,CAACO,IAAI,CAAC,EAAE,KAAAyB,KAAA;IACzCF,KAAK,gBAAGlC,KAAK,CAACqC,YAAY,CAAC1B,IAAI,EAAE;MAC/BU,IAAI,GAAAe,KAAA,GAAGzB,IAAI,CAAC2B,KAAK,CAACjB,IAAI,YAAAe,KAAA,GAAed,KAAK,CAACD,IAAI;IACjD,CAAC,CAAC;EACJ;;EAEA,IAAMkB,KAA0B,GAAG,CAAC,CAAC;EACrC,IAAI3B,IAAI,EAAE;IACR,IAAIA,IAAI,KAAK,OAAO,EAAE;MACpB2B,KAAK,CAACC,UAAU,GAAGV,IAAI,CAACT,IAAI,CAAC;IAC/B,CAAC,MAAM;MACLkB,KAAK,CAACE,WAAW,GAAGX,IAAI,CAACT,IAAI,CAAC;IAChC;EACF;;EAEA,OAAOa,KAAK;EACVlC,KAAA,CAAA0C,aAAA;IACEH,KAAK,EAAEA,KAAM;IACbI,SAAS,EAAE3B,EAAE;MACXC,YAAY,CAAC2B,KAAK,CAAC,CAAC;MACpB3B,YAAY,CAACN,IAAI,CAACE,KAAK,CAAC;MACxBM,OAAO,IAAIF,YAAY,CAAC4B,SAAS,CAAChC,KAAK,CAAC;MACxCO,QAAQ,IAAIH,YAAY,CAAC6B,YAAY,CAACjC,KAAK;IAC7C,CAAE;;EAEDqB;EACG,CAAC;EACL,IAAI;AACV,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","isElement","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","KeyListener","PopupMenu","ThemeContext","isTestEnv","ThemeFactory","CommonWrapper","rootNode","createPropsGetter","getVisualStateDataAttributes","withSize","withRenderEnvironment","getStyles","KebabIcon","KebabDataTids","caption","Kebab","_class","_Kebab","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","emotion","Consumer","Provider","value","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","_extends","rootNodeRef","setRootNode","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined, this.globalObject);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\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} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\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 popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\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 role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={this.cx(\n this.styles.kebab(this.theme),\n size === 'small' && this.styles.kebabSmall(this.theme),\n size === 'medium' && this.styles.kebabMedium(this.theme),\n size === 'large' && this.styles.kebabLarge(this.theme),\n captionProps.opened && this.styles.opened(this.theme),\n disabled && this.styles.disabled(),\n this.state.focusedByTab && this.styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.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 { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[this.size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isElement","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","KeyListener","PopupMenu","ThemeContext","isTestEnv","ThemeFactory","CommonWrapper","rootNode","createPropsGetter","getVisualStateDataAttributes","withSize","withRenderEnvironment","getStyles","KebabIcon","KebabDataTids","caption","Kebab","_class","_Kebab","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","emotion","Consumer","Provider","value","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","_extends","rootNodeRef","setRootNode","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined, this.globalObject);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\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} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\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 popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\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 role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={this.cx(\n this.styles.kebab(this.theme),\n size === 'small' && this.styles.kebabSmall(this.theme),\n size === 'medium' && this.styles.kebabMedium(this.theme),\n size === 'large' && this.styles.kebabLarge(this.theme),\n captionProps.opened && this.styles.opened(this.theme),\n disabled && this.styles.disabled(),\n this.state.focusedByTab && this.styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.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 { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon, {\n size: icon.props.size ?? sizes[this.size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AriaAttributes, HTMLAttributes } from 'react';
1
+ import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
2
2
  import React from 'react';
3
3
  import type { PopupMenuProps } from '../../internal/PopupMenu';
4
4
  import type { Nullable } from '../../typings/utility-types';
@@ -1 +1 @@
1
- {"version":3,"names":["React","KeyListener","ThemeContext","isExternalLink","CommonWrapper","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","withRenderEnvironment","getStyles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","globalObject","undefined","renderMain","_this$cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","styles","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends","cx","reserButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","buttonOnlyProps","children","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose","_proto","prototype","componentDidMount","render","_this2","emotion","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */\n disabled?: boolean;\n\n /** Добавляет иконку слева от ссылки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от ссылки. */\n rightIcon?: React.ReactElement;\n\n /** Задаёт стиль ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задаёт HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит ссылку в состояние загрузки. */\n loading?: boolean;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\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<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.\n */\n@withRenderEnvironment\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href, this.globalObject) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={this.styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.default(this.theme);\n case 'danger':\n return this.styles.danger(this.theme);\n case 'success':\n return this.styles.success(this.theme);\n case 'grayed':\n return this.styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.lineFocus(this.theme);\n case 'danger':\n return this.styles.lineFocusDanger(this.theme);\n case 'success':\n return this.styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return this.styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: this.cx({\n [this.styles.root(this.theme)]: true,\n [this.styles.reserButton()]: Root === 'button',\n [this.styles.focus(this.theme)]: isFocused,\n [this.styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [this.styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [this.styles.button(this.theme)]: !!_button,\n [this.styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.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) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","KeyListener","ThemeContext","isExternalLink","CommonWrapper","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","withRenderEnvironment","getStyles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","globalObject","undefined","renderMain","_this$cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","styles","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends","cx","reserButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","buttonOnlyProps","children","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose","_proto","prototype","componentDidMount","render","_this2","emotion","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */\n disabled?: boolean;\n\n /** Добавляет иконку слева от ссылки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от ссылки. */\n rightIcon?: React.ReactElement;\n\n /** Задаёт стиль ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задаёт HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит ссылку в состояние загрузки. */\n loading?: boolean;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\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<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.\n */\n@withRenderEnvironment\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href, this.globalObject) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={this.styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.default(this.theme);\n case 'danger':\n return this.styles.danger(this.theme);\n case 'success':\n return this.styles.success(this.theme);\n case 'grayed':\n return this.styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.lineFocus(this.theme);\n case 'danger':\n return this.styles.lineFocusDanger(this.theme);\n case 'success':\n return this.styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return this.styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: this.cx({\n [this.styles.root(this.theme)]: true,\n [this.styles.reserButton()]: Root === 'button',\n [this.styles.focus(this.theme)]: isFocused,\n [this.styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [this.styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [this.styles.button(this.theme)]: !!_button,\n [this.styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.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) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  import type { ButtonLinkAllowedValues } from '../../lib/types/button-link';
3
3
  import type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';
4
4
  import type { ThemeIn } from '../../lib/theming/Theme';
@@ -20,7 +20,7 @@ export var ColorableInputElement = forwardRefAndName('ColorableInputElement', fu
20
20
  var inputRef = useRef(null);
21
21
  var spanRef = useRef(null);
22
22
  var focused = useRef(false);
23
- var updateActiveTimer = useRef();
23
+ var updateActiveTimer = useRef(undefined);
24
24
  var globalObject = useGlobal();
25
25
  var emotion = useEmotion();
26
26
  var cx = emotion.cx;