@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":["_react","_interopRequireWildcard","require","_renderEnvironment","_CommonWrapper","_forwardRefAndName","_fileUtils","_utils","_TextWidthHelper","_stringUtils","_ThemeContext","_keyListener","_identifiers","_Hint","_Tooltip","_getDOMRect","_useFileUploaderSize","_FileUploaderFileStatusIcon","_FileUploaderFileTypeIcon","_FileUploaderFile","_LoadingIcon","_excluded","splitFileNameAndExtension","filename","lastDotIndex","lastIndexOf","name","extension","substring","getTruncatedName","fileNameWidth","fileNameElementWidth","isTileView","charWidth","Math","ceil","length","maxCharsCountInSpan","splitFileName","truncate","calcTruncatedName","textHelperRef","fileNameElementRef","_textHelperRef$curren","current","getTextWidth","getDOMRect","width","FileUploaderFileDataTids","exports","file","fileTooltip","fileName","fileSize","fileIcon","fileTypeIcon","FileUploaderFile","forwardRefAndName","props","ref","_cx","_cx2","_ref","_props$showSize","showSize","previewImg","error","warning","multiple","_props$disabled","disabled","_props$hovered","hovered","_props$focused","focused","size","_props$view","view","withValidationTooltip","validationTooltipPosition","withWarningIcon","onRemove","_props$showFilenameHi","showFilenameHint","showFullFilename","rest","_objectWithoutPropertiesLoose2","default","id","originalFile","status","validationResult","_useState","useState","hoveredFile","setHoveredFile","_useState2","focusedByTab","setFocusedByTab","_useState3","truncatedFileName","setTruncatedFileName","useRef","theme","useContext","ThemeContext","globalObject","useGlobal","_useEmotion","useEmotion","cx","keyListener","useKeyListener","jsStyles","useStyles","getJsStyles","jsRowStyles","getJsRowStyles","jsTileStyles","getJsTileStyles","isLoading","FileUploaderFileStatus","Loading","jsViewStyles","validationTooltipPositionByView","formattedSize","useMemo","formatBytes","useEffect","truncatedName","handleRemove","useCallback","event","preventDefault","stopPropagation","isValid","message","isError","Error","isWarning","Warning","isInvalid","sizeIconClass","useFileUploaderSize","small","iconSmall","medium","iconMedium","large","iconLarge","renderTooltipContent","sizeNameBlockClass","contentSmall","contentMedium","contentLarge","sizeViewNameBlockClass","validationTextClassName","validationTextWarning","validationTextError","contentClassNames","content","nameTextClassNames","handleMouseEnter","handleMouseLeave","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","handleIconKeyDown","e","isKeyEnter","iconClassNames","icon","iconAction","iconActionShow","sizeClassName","sizeSmall","sizeMedium","sizeLarge","sizeClassNames","sizeDisabled","sizeFileTypeIconClass","fileTypeIconSmall","fileTypeIconMedium","fileTypeIconLarge","isTruncated","fileTypeIconClassName","disabledFileTypeIconSvg","fileTypeIconPreview","disabledFileTypeIcon","warningFileTypeIcon","errorFileTypeIcon","fileTypeIconMultiple","nameBlockClassNames","nameBlock","fileType","getFileUploaderTypeIcon","createElement","LoadingIcon","FileUploaderFileTypeIcon","type","splitTruncatedFileName","CommonWrapper","className","root","onMouseEnter","onMouseLeave","Tooltip","pos","render","style","backgroundImage","undefined","TextWidthHelper","text","Hint","maxWidth","Fragment","tabIndex","onClick","onFocus","onBlur","onKeyDown","FileUploaderFileStatusIcon","hasValidation"],"sources":["FileUploaderFile.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment';\nimport { CommonWrapper, type CommonProps } from '../../internal/CommonWrapper';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport type {\n FileUploaderAttachedFile,\n FileUploaderIconType,\n FileUploaderView,\n} from '../../internal/FileUploaderControl/fileUtils';\nimport { FileUploaderFileStatus, getFileUploaderTypeIcon } from '../../internal/FileUploaderControl/fileUtils';\nimport { formatBytes } from '../../lib/utils';\nimport { TextWidthHelper } from '../../internal/TextWidthHelper/TextWidthHelper';\nimport { truncate } from '../../lib/stringUtils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { useKeyListener } from '../../lib/events/keyListener';\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport type { Nullable } from '../../typings/utility-types';\nimport { Hint } from '../Hint';\nimport { Tooltip } from '../Tooltip';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FileUploaderFileStatusIcon } from '../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileStatusIcon';\nimport { FileUploaderFileTypeIcon } from '../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileTypeIcon';\nimport {\n getJsStyles,\n getJsRowStyles,\n getJsTileStyles,\n} from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles';\nimport { LoadingIcon } from '../../internal/icons2022/LoadingIcon';\n\nexport interface FileUploaderFileProps extends CommonProps {\n file: FileUploaderAttachedFile;\n showSize?: boolean;\n previewImg?: string;\n multiple?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n size: SizeProp;\n /** Вид контрола\n * - `row` — стандартное отображение в виде инпута\n * - `tile` — вид карточки/плитки\n * @default row\n */\n view?: FileUploaderView;\n /** Состояние ошибки контрола файла */\n error?: boolean;\n /** Состояние предупреждения контрола файла */\n warning?: boolean;\n /** Валидация с тултипом */\n withValidationTooltip?: boolean;\n /** Задает приоритетное расположение подсказки относительно контрола */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n /** Использовать иконку для ворнинга (восклицательный знак)*/\n withWarningIcon?: boolean;\n onRemove(id: string): void;\n /**\n * Добавляет иконку типа файла\n */\n fileTypeIcon?: React.ReactElement;\n /**\n * Задаёт показ подсказки с полным именем файла\n * @default true\n */\n showFilenameHint?: boolean;\n}\n\nconst splitFileNameAndExtension = (filename: string): { name: string; extension: string } => {\n const lastDotIndex = filename.lastIndexOf('.');\n if (lastDotIndex === -1) {\n return { name: filename, extension: '' };\n }\n const name = filename.substring(0, lastDotIndex);\n const extension = filename.substring(lastDotIndex + 1);\n return { name, extension };\n};\n\nconst getTruncatedName = (fileNameWidth: number, fileNameElementWidth: number, name: string, isTileView = false) => {\n if (!fileNameWidth && !fileNameElementWidth) {\n return null;\n }\n\n if (fileNameWidth <= fileNameElementWidth) {\n return name;\n }\n\n const charWidth = Math.ceil(fileNameWidth / name.length);\n const maxCharsCountInSpan = Math.ceil(fileNameElementWidth / charWidth);\n\n if (isTileView) {\n const splitFileName = splitFileNameAndExtension(name);\n return `${truncate(splitFileName.name, maxCharsCountInSpan)}.${splitFileName.extension}`;\n }\n\n return truncate(name, maxCharsCountInSpan);\n};\n\nconst calcTruncatedName = (\n textHelperRef: React.RefObject<TextWidthHelper>,\n fileNameElementRef: React.RefObject<HTMLSpanElement>,\n name: string,\n isTileView = false,\n) => {\n const fileNameWidth = textHelperRef.current?.getTextWidth() || 0;\n const fileNameElementWidth = isTileView\n ? // даем возможность занять 2 строки с погрешностью в 50%\n getDOMRect(fileNameElementRef.current).width * 1.5\n : getDOMRect(fileNameElementRef.current).width;\n\n return getTruncatedName(fileNameWidth, fileNameElementWidth, name, isTileView);\n};\n\nexport const FileUploaderFileDataTids = {\n file: 'FileUploader__file',\n fileTooltip: 'FileUploader__fileTooltip',\n fileName: 'FileUploader__fileName',\n fileSize: 'FileUploader__fileSize',\n fileIcon: 'FileUploader__fileIcon',\n fileTypeIcon: 'FileUploader__fileTypeIcon',\n} as const;\n\n/**\n * Компонент файла `FileUploaderFile` из FileUploader для отрисовки загруженного файла.\n */\nexport const FileUploaderFile = forwardRefAndName<HTMLDivElement, FileUploaderFileProps>(\n 'FileUploaderFile',\n (props, ref) => {\n const {\n file,\n showSize = false,\n previewImg,\n error,\n warning,\n multiple,\n disabled = false,\n hovered = false,\n focused = false,\n size,\n view = 'row',\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n onRemove,\n showFilenameHint: showFullFilename = true,\n fileTypeIcon,\n ...rest\n } = props;\n const { id, originalFile, status, validationResult } = file;\n const { name, size: fileSize } = originalFile;\n\n const [hoveredFile, setHoveredFile] = useState<boolean>(hovered || false);\n const [focusedByTab, setFocusedByTab] = useState(focused || false);\n const [truncatedFileName, setTruncatedFileName] = useState<Nullable<string>>(null);\n\n const textHelperRef = useRef<TextWidthHelper>(null);\n const fileNameElementRef = useRef<HTMLSpanElement>(null);\n\n const theme = useContext(ThemeContext);\n const globalObject = useGlobal();\n\n const { cx } = useEmotion();\n const keyListener = useKeyListener();\n const jsStyles = useStyles(getJsStyles);\n const jsRowStyles = useStyles(getJsRowStyles);\n const jsTileStyles = useStyles(getJsTileStyles);\n\n const isLoading = status === FileUploaderFileStatus.Loading;\n const isTileView = view === 'tile';\n const jsViewStyles = isTileView ? jsTileStyles : jsRowStyles;\n const validationTooltipPositionByView = validationTooltipPosition || (isTileView ? 'top center' : 'top left');\n\n const formattedSize = useMemo(() => formatBytes(fileSize, 1), [fileSize]);\n\n useEffect(() => {\n const truncatedName = calcTruncatedName(textHelperRef, fileNameElementRef, name, isTileView);\n\n setTruncatedFileName(truncatedName);\n });\n\n const handleRemove = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n onRemove(id);\n },\n [id, onRemove],\n );\n\n const { isValid, message } = validationResult;\n\n const isError = file.status === FileUploaderFileStatus.Error || error;\n const isWarning = file.status === FileUploaderFileStatus.Warning || warning;\n const isInvalid = isError || !isValid;\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsViewStyles.iconSmall(theme),\n medium: jsViewStyles.iconMedium(theme),\n large: jsViewStyles.iconLarge(theme),\n });\n\n const renderTooltipContent = useCallback((): ReactNode => {\n return !isValid && !error && message ? message : null;\n }, [isValid, error, message]);\n\n const sizeNameBlockClass = useFileUploaderSize(size, {\n small: jsStyles.contentSmall(theme),\n medium: jsStyles.contentMedium(theme),\n large: jsStyles.contentLarge(theme),\n });\n\n const sizeViewNameBlockClass = useFileUploaderSize(size, {\n small: jsViewStyles.contentSmall(theme),\n medium: jsViewStyles.contentMedium(theme),\n large: jsViewStyles.contentLarge(theme),\n });\n\n const validationTextClassName = cx({\n [jsStyles.validationTextWarning(theme)]: isWarning,\n [jsStyles.validationTextError(theme)]: isError,\n });\n\n const contentClassNames = cx(jsStyles.content(), jsViewStyles.content());\n const nameTextClassNames = cx(jsViewStyles.name(), isTileView && !disabled && validationTextClassName);\n\n const handleMouseEnter = useCallback(() => {\n setHoveredFile(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setHoveredFile(false);\n }, []);\n\n const handleFocus = useCallback(() => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n }, []);\n\n const handleBlur = useCallback(() => {\n setFocusedByTab(false);\n }, []);\n\n const handleIconKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEnter(e)) {\n onRemove(id);\n }\n },\n [onRemove, id],\n );\n\n const iconClassNames = cx(jsStyles.icon(theme), {\n [sizeIconClass]: true,\n [jsTileStyles.iconAction(theme)]: isTileView,\n [jsTileStyles.iconActionShow()]: isTileView && !disabled && (hovered || hoveredFile || focused || focusedByTab),\n });\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeClassNames = cx(\n jsStyles.size(theme),\n sizeClassName,\n jsViewStyles.size(theme),\n isTileView && disabled && jsTileStyles.sizeDisabled(theme),\n );\n\n const sizeFileTypeIconClass = useFileUploaderSize(size, {\n small: jsViewStyles.fileTypeIconSmall(theme),\n medium: jsViewStyles.fileTypeIconMedium(theme),\n large: jsViewStyles.fileTypeIconLarge(theme),\n });\n\n const isTruncated = truncatedFileName !== name;\n\n const fileTypeIconClassName = cx(\n sizeFileTypeIconClass,\n disabled && jsStyles.disabledFileTypeIconSvg(theme),\n isTileView && {\n [jsTileStyles.fileTypeIcon(theme)]: true,\n [jsTileStyles.fileTypeIconPreview()]: !!previewImg,\n [jsTileStyles.disabledFileTypeIcon(theme)]: disabled,\n [jsTileStyles.warningFileTypeIcon(theme)]: isWarning,\n [jsTileStyles.errorFileTypeIcon(theme)]: isError,\n },\n multiple && jsStyles.fileTypeIconMultiple(),\n );\n\n const nameBlockClassNames = cx(\n sizeNameBlockClass,\n sizeViewNameBlockClass,\n jsStyles.nameBlock(),\n disabled && jsViewStyles.disabled(theme),\n jsViewStyles.nameBlock(),\n );\n\n const fileType: FileUploaderIconType = getFileUploaderTypeIcon(\n file.originalFile,\n isError,\n isWarning && !!withWarningIcon,\n );\n const icon =\n isTileView && isLoading ? (\n <LoadingIcon size={size} />\n ) : (\n fileTypeIcon ?? <FileUploaderFileTypeIcon type={fileType} size={size} view={view} />\n );\n\n const splitTruncatedFileName = truncatedFileName && splitFileNameAndExtension(truncatedFileName);\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={FileUploaderFileDataTids.file}\n className={jsStyles.root()}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n >\n <Tooltip\n data-tid={FileUploaderFileDataTids.fileTooltip}\n pos={validationTooltipPositionByView}\n render={() => (withValidationTooltip || isTileView ? renderTooltipContent() : null)}\n >\n <div className={contentClassNames}>\n {\n <div\n data-tid={FileUploaderFileDataTids.fileTypeIcon}\n className={fileTypeIconClassName}\n style={previewImg ? { backgroundImage: `url(${previewImg})` } : undefined}\n >\n {(!isTileView || !previewImg) && icon}\n </div>\n }\n <div className={nameBlockClassNames}>\n <TextWidthHelper ref={textHelperRef} text={name} />\n <Hint maxWidth={'100%'} text={showFullFilename && isTruncated ? name : null}>\n <span\n data-tid={FileUploaderFileDataTids.fileName}\n ref={fileNameElementRef}\n className={nameTextClassNames}\n >\n {splitTruncatedFileName && (\n <>\n {splitTruncatedFileName.name}\n {splitTruncatedFileName.extension && <span>.{splitTruncatedFileName.extension}</span>}\n </>\n )}\n </span>\n </Hint>\n {!(withValidationTooltip || isTileView) && (\n <span className={validationTextClassName}>{renderTooltipContent()}</span>\n )}\n </div>\n {showSize && formattedSize && (\n <span data-tid={FileUploaderFileDataTids.fileSize} className={sizeClassNames}>\n {formattedSize}\n </span>\n )}\n <div\n className={iconClassNames}\n data-tid={FileUploaderFileDataTids.fileIcon}\n tabIndex={0}\n onClick={handleRemove}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleIconKeyDown}\n >\n <FileUploaderFileStatusIcon\n isTileView={isTileView}\n status={status}\n disabled={disabled}\n hovered={hovered || hoveredFile}\n focusedByTab={focused || focusedByTab}\n isInvalid={isInvalid}\n hasValidation={isError || isWarning}\n size={size}\n />\n </div>\n </div>\n </Tooltip>\n </div>\n </CommonWrapper>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_CommonWrapper","_forwardRefAndName","_fileUtils","_utils","_TextWidthHelper","_stringUtils","_ThemeContext","_keyListener","_identifiers","_Hint","_Tooltip","_getDOMRect","_useFileUploaderSize","_FileUploaderFileStatusIcon","_FileUploaderFileTypeIcon","_FileUploaderFile","_LoadingIcon","_excluded","splitFileNameAndExtension","filename","lastDotIndex","lastIndexOf","name","extension","substring","getTruncatedName","fileNameWidth","fileNameElementWidth","isTileView","charWidth","Math","ceil","length","maxCharsCountInSpan","splitFileName","truncate","calcTruncatedName","textHelperRef","fileNameElementRef","_textHelperRef$curren","current","getTextWidth","getDOMRect","width","FileUploaderFileDataTids","exports","file","fileTooltip","fileName","fileSize","fileIcon","fileTypeIcon","FileUploaderFile","forwardRefAndName","props","ref","_cx","_cx2","_ref","_props$showSize","showSize","previewImg","error","warning","multiple","_props$disabled","disabled","_props$hovered","hovered","_props$focused","focused","size","_props$view","view","withValidationTooltip","validationTooltipPosition","withWarningIcon","onRemove","_props$showFilenameHi","showFilenameHint","showFullFilename","rest","_objectWithoutPropertiesLoose2","default","id","originalFile","status","validationResult","_useState","useState","hoveredFile","setHoveredFile","_useState2","focusedByTab","setFocusedByTab","_useState3","truncatedFileName","setTruncatedFileName","useRef","theme","useContext","ThemeContext","globalObject","useGlobal","_useEmotion","useEmotion","cx","keyListener","useKeyListener","jsStyles","useStyles","getJsStyles","jsRowStyles","getJsRowStyles","jsTileStyles","getJsTileStyles","isLoading","FileUploaderFileStatus","Loading","jsViewStyles","validationTooltipPositionByView","formattedSize","useMemo","formatBytes","useEffect","truncatedName","handleRemove","useCallback","event","preventDefault","stopPropagation","isValid","message","isError","Error","isWarning","Warning","isInvalid","sizeIconClass","useFileUploaderSize","small","iconSmall","medium","iconMedium","large","iconLarge","renderTooltipContent","sizeNameBlockClass","contentSmall","contentMedium","contentLarge","sizeViewNameBlockClass","validationTextClassName","validationTextWarning","validationTextError","contentClassNames","content","nameTextClassNames","handleMouseEnter","handleMouseLeave","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","handleIconKeyDown","e","isKeyEnter","iconClassNames","icon","iconAction","iconActionShow","sizeClassName","sizeSmall","sizeMedium","sizeLarge","sizeClassNames","sizeDisabled","sizeFileTypeIconClass","fileTypeIconSmall","fileTypeIconMedium","fileTypeIconLarge","isTruncated","fileTypeIconClassName","disabledFileTypeIconSvg","fileTypeIconPreview","disabledFileTypeIcon","warningFileTypeIcon","errorFileTypeIcon","fileTypeIconMultiple","nameBlockClassNames","nameBlock","fileType","getFileUploaderTypeIcon","createElement","LoadingIcon","FileUploaderFileTypeIcon","type","splitTruncatedFileName","CommonWrapper","className","root","onMouseEnter","onMouseLeave","Tooltip","pos","render","style","backgroundImage","undefined","TextWidthHelper","text","Hint","maxWidth","Fragment","tabIndex","onClick","onFocus","onBlur","onKeyDown","FileUploaderFileStatusIcon","hasValidation"],"sources":["FileUploaderFile.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment';\nimport { type CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport type {\n FileUploaderAttachedFile,\n FileUploaderIconType,\n FileUploaderView,\n} from '../../internal/FileUploaderControl/fileUtils';\nimport { FileUploaderFileStatus, getFileUploaderTypeIcon } from '../../internal/FileUploaderControl/fileUtils';\nimport { formatBytes } from '../../lib/utils';\nimport { TextWidthHelper } from '../../internal/TextWidthHelper/TextWidthHelper';\nimport { truncate } from '../../lib/stringUtils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { useKeyListener } from '../../lib/events/keyListener';\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport type { Nullable } from '../../typings/utility-types';\nimport { Hint } from '../Hint';\nimport { Tooltip } from '../Tooltip';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FileUploaderFileStatusIcon } from '../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileStatusIcon';\nimport { FileUploaderFileTypeIcon } from '../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileTypeIcon';\nimport {\n getJsRowStyles,\n getJsStyles,\n getJsTileStyles,\n} from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles';\nimport { LoadingIcon } from '../../internal/icons2022/LoadingIcon';\n\nexport interface FileUploaderFileProps extends CommonProps {\n file: FileUploaderAttachedFile;\n showSize?: boolean;\n previewImg?: string;\n multiple?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n size: SizeProp;\n /** Вид контрола\n * - `row` — стандартное отображение в виде инпута\n * - `tile` — вид карточки/плитки\n * @default row\n */\n view?: FileUploaderView;\n /** Состояние ошибки контрола файла */\n error?: boolean;\n /** Состояние предупреждения контрола файла */\n warning?: boolean;\n /** Валидация с тултипом */\n withValidationTooltip?: boolean;\n /** Задает приоритетное расположение подсказки относительно контрола */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n /** Использовать иконку для ворнинга (восклицательный знак)*/\n withWarningIcon?: boolean;\n onRemove(id: string): void;\n /**\n * Добавляет иконку типа файла\n */\n fileTypeIcon?: React.ReactElement;\n /**\n * Задаёт показ подсказки с полным именем файла\n * @default true\n */\n showFilenameHint?: boolean;\n}\n\nconst splitFileNameAndExtension = (filename: string): { name: string; extension: string } => {\n const lastDotIndex = filename.lastIndexOf('.');\n if (lastDotIndex === -1) {\n return { name: filename, extension: '' };\n }\n const name = filename.substring(0, lastDotIndex);\n const extension = filename.substring(lastDotIndex + 1);\n return { name, extension };\n};\n\nconst getTruncatedName = (fileNameWidth: number, fileNameElementWidth: number, name: string, isTileView = false) => {\n if (!fileNameWidth && !fileNameElementWidth) {\n return null;\n }\n\n if (fileNameWidth <= fileNameElementWidth) {\n return name;\n }\n\n const charWidth = Math.ceil(fileNameWidth / name.length);\n const maxCharsCountInSpan = Math.ceil(fileNameElementWidth / charWidth);\n\n if (isTileView) {\n const splitFileName = splitFileNameAndExtension(name);\n return `${truncate(splitFileName.name, maxCharsCountInSpan)}.${splitFileName.extension}`;\n }\n\n return truncate(name, maxCharsCountInSpan);\n};\n\nconst calcTruncatedName = (\n textHelperRef: React.RefObject<TextWidthHelper | null>,\n fileNameElementRef: React.RefObject<HTMLSpanElement | null>,\n name: string,\n isTileView = false,\n) => {\n const fileNameWidth = textHelperRef.current?.getTextWidth() || 0;\n const fileNameElementWidth = isTileView\n ? // даем возможность занять 2 строки с погрешностью в 50%\n getDOMRect(fileNameElementRef.current).width * 1.5\n : getDOMRect(fileNameElementRef.current).width;\n\n return getTruncatedName(fileNameWidth, fileNameElementWidth, name, isTileView);\n};\n\nexport const FileUploaderFileDataTids = {\n file: 'FileUploader__file',\n fileTooltip: 'FileUploader__fileTooltip',\n fileName: 'FileUploader__fileName',\n fileSize: 'FileUploader__fileSize',\n fileIcon: 'FileUploader__fileIcon',\n fileTypeIcon: 'FileUploader__fileTypeIcon',\n} as const;\n\n/**\n * Компонент файла `FileUploaderFile` из FileUploader для отрисовки загруженного файла.\n */\nexport const FileUploaderFile = forwardRefAndName<HTMLDivElement, FileUploaderFileProps>(\n 'FileUploaderFile',\n (props, ref) => {\n const {\n file,\n showSize = false,\n previewImg,\n error,\n warning,\n multiple,\n disabled = false,\n hovered = false,\n focused = false,\n size,\n view = 'row',\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n onRemove,\n showFilenameHint: showFullFilename = true,\n fileTypeIcon,\n ...rest\n } = props;\n const { id, originalFile, status, validationResult } = file;\n const { name, size: fileSize } = originalFile;\n\n const [hoveredFile, setHoveredFile] = useState<boolean>(hovered || false);\n const [focusedByTab, setFocusedByTab] = useState(focused || false);\n const [truncatedFileName, setTruncatedFileName] = useState<Nullable<string>>(null);\n\n const textHelperRef = useRef<TextWidthHelper>(null);\n const fileNameElementRef = useRef<HTMLSpanElement>(null);\n\n const theme = useContext(ThemeContext);\n const globalObject = useGlobal();\n\n const { cx } = useEmotion();\n const keyListener = useKeyListener();\n const jsStyles = useStyles(getJsStyles);\n const jsRowStyles = useStyles(getJsRowStyles);\n const jsTileStyles = useStyles(getJsTileStyles);\n\n const isLoading = status === FileUploaderFileStatus.Loading;\n const isTileView = view === 'tile';\n const jsViewStyles = isTileView ? jsTileStyles : jsRowStyles;\n const validationTooltipPositionByView = validationTooltipPosition || (isTileView ? 'top center' : 'top left');\n\n const formattedSize = useMemo(() => formatBytes(fileSize, 1), [fileSize]);\n\n useEffect(() => {\n const truncatedName = calcTruncatedName(textHelperRef, fileNameElementRef, name, isTileView);\n\n setTruncatedFileName(truncatedName);\n });\n\n const handleRemove = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n onRemove(id);\n },\n [id, onRemove],\n );\n\n const { isValid, message } = validationResult;\n\n const isError = file.status === FileUploaderFileStatus.Error || error;\n const isWarning = file.status === FileUploaderFileStatus.Warning || warning;\n const isInvalid = isError || !isValid;\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsViewStyles.iconSmall(theme),\n medium: jsViewStyles.iconMedium(theme),\n large: jsViewStyles.iconLarge(theme),\n });\n\n const renderTooltipContent = useCallback((): ReactNode => {\n return !isValid && !error && message ? message : null;\n }, [isValid, error, message]);\n\n const sizeNameBlockClass = useFileUploaderSize(size, {\n small: jsStyles.contentSmall(theme),\n medium: jsStyles.contentMedium(theme),\n large: jsStyles.contentLarge(theme),\n });\n\n const sizeViewNameBlockClass = useFileUploaderSize(size, {\n small: jsViewStyles.contentSmall(theme),\n medium: jsViewStyles.contentMedium(theme),\n large: jsViewStyles.contentLarge(theme),\n });\n\n const validationTextClassName = cx({\n [jsStyles.validationTextWarning(theme)]: isWarning,\n [jsStyles.validationTextError(theme)]: isError,\n });\n\n const contentClassNames = cx(jsStyles.content(), jsViewStyles.content());\n const nameTextClassNames = cx(jsViewStyles.name(), isTileView && !disabled && validationTextClassName);\n\n const handleMouseEnter = useCallback(() => {\n setHoveredFile(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setHoveredFile(false);\n }, []);\n\n const handleFocus = useCallback(() => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n }, []);\n\n const handleBlur = useCallback(() => {\n setFocusedByTab(false);\n }, []);\n\n const handleIconKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEnter(e)) {\n onRemove(id);\n }\n },\n [onRemove, id],\n );\n\n const iconClassNames = cx(jsStyles.icon(theme), {\n [sizeIconClass]: true,\n [jsTileStyles.iconAction(theme)]: isTileView,\n [jsTileStyles.iconActionShow()]: isTileView && !disabled && (hovered || hoveredFile || focused || focusedByTab),\n });\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeClassNames = cx(\n jsStyles.size(theme),\n sizeClassName,\n jsViewStyles.size(theme),\n isTileView && disabled && jsTileStyles.sizeDisabled(theme),\n );\n\n const sizeFileTypeIconClass = useFileUploaderSize(size, {\n small: jsViewStyles.fileTypeIconSmall(theme),\n medium: jsViewStyles.fileTypeIconMedium(theme),\n large: jsViewStyles.fileTypeIconLarge(theme),\n });\n\n const isTruncated = truncatedFileName !== name;\n\n const fileTypeIconClassName = cx(\n sizeFileTypeIconClass,\n disabled && jsStyles.disabledFileTypeIconSvg(theme),\n isTileView && {\n [jsTileStyles.fileTypeIcon(theme)]: true,\n [jsTileStyles.fileTypeIconPreview()]: !!previewImg,\n [jsTileStyles.disabledFileTypeIcon(theme)]: disabled,\n [jsTileStyles.warningFileTypeIcon(theme)]: isWarning,\n [jsTileStyles.errorFileTypeIcon(theme)]: isError,\n },\n multiple && jsStyles.fileTypeIconMultiple(),\n );\n\n const nameBlockClassNames = cx(\n sizeNameBlockClass,\n sizeViewNameBlockClass,\n jsStyles.nameBlock(),\n disabled && jsViewStyles.disabled(theme),\n jsViewStyles.nameBlock(),\n );\n\n const fileType: FileUploaderIconType = getFileUploaderTypeIcon(\n file.originalFile,\n isError,\n isWarning && !!withWarningIcon,\n );\n const icon =\n isTileView && isLoading ? (\n <LoadingIcon size={size} />\n ) : (\n fileTypeIcon ?? <FileUploaderFileTypeIcon type={fileType} size={size} view={view} />\n );\n\n const splitTruncatedFileName = truncatedFileName && splitFileNameAndExtension(truncatedFileName);\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={FileUploaderFileDataTids.file}\n className={jsStyles.root()}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n >\n <Tooltip\n data-tid={FileUploaderFileDataTids.fileTooltip}\n pos={validationTooltipPositionByView}\n render={() => (withValidationTooltip || isTileView ? renderTooltipContent() : null)}\n >\n <div className={contentClassNames}>\n {\n <div\n data-tid={FileUploaderFileDataTids.fileTypeIcon}\n className={fileTypeIconClassName}\n style={previewImg ? { backgroundImage: `url(${previewImg})` } : undefined}\n >\n {(!isTileView || !previewImg) && icon}\n </div>\n }\n <div className={nameBlockClassNames}>\n <TextWidthHelper ref={textHelperRef} text={name} />\n <Hint maxWidth={'100%'} text={showFullFilename && isTruncated ? name : null}>\n <span\n data-tid={FileUploaderFileDataTids.fileName}\n ref={fileNameElementRef}\n className={nameTextClassNames}\n >\n {splitTruncatedFileName && (\n <>\n {splitTruncatedFileName.name}\n {splitTruncatedFileName.extension && <span>.{splitTruncatedFileName.extension}</span>}\n </>\n )}\n </span>\n </Hint>\n {!(withValidationTooltip || isTileView) && (\n <span className={validationTextClassName}>{renderTooltipContent()}</span>\n )}\n </div>\n {showSize && formattedSize && (\n <span data-tid={FileUploaderFileDataTids.fileSize} className={sizeClassNames}>\n {formattedSize}\n </span>\n )}\n <div\n className={iconClassNames}\n data-tid={FileUploaderFileDataTids.fileIcon}\n tabIndex={0}\n onClick={handleRemove}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleIconKeyDown}\n >\n <FileUploaderFileStatusIcon\n isTileView={isTileView}\n status={status}\n disabled={disabled}\n hovered={hovered || hoveredFile}\n focusedByTab={focused || focusedByTab}\n isInvalid={isInvalid}\n hasValidation={isError || isWarning}\n size={size}\n />\n </div>\n </div>\n </Tooltip>\n </div>\n </CommonWrapper>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper';
3
+ import { CommonWrapper } from '../../internal/CommonWrapper';
3
4
  export interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {
4
5
  /** Устанавливает ожидаемое время(ms) ответа сервера. */
5
6
  expectedResponseTime: number;
@@ -12,6 +13,6 @@ export interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {
12
13
  }
13
14
  export interface GlobalLoaderViewRef {
14
15
  element: HTMLDivElement;
15
- refObject: React.RefObject<GlobalLoaderViewRef['element']>;
16
+ refObject: React.RefObject<GlobalLoaderViewRef['element'] | null>;
16
17
  }
17
- export declare const GlobalLoaderView: ({ expectedResponseTime, delayBeforeHide, status, disableAnimations, ...rest }: GlobalLoaderViewProps) => React.JSX.Element;
18
+ export declare const GlobalLoaderView: React.ForwardRefExoticComponent<GlobalLoaderViewProps & React.RefAttributes<CommonWrapper<CommonProps>>>;
@@ -28,57 +28,56 @@ var _useParams = require("./useParams");var _excluded = ["expectedResponseTime",
28
28
 
29
29
 
30
30
 
31
- var GlobalLoaderView = exports.GlobalLoaderView = function GlobalLoaderView(_ref)
32
-
33
-
34
-
35
-
36
-
37
- {var expectedResponseTime = _ref.expectedResponseTime,delayBeforeHide = _ref.delayBeforeHide,status = _ref.status,disableAnimations = _ref.disableAnimations,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
38
- var ref = (0, _react.useRef)(null);
39
- var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
40
- var _useEmotion = (0, _renderEnvironment.useEmotion)(),cx = _useEmotion.cx;
41
- var styles = (0, _renderEnvironment.useStyles)(_GlobalLoaderView.getStyles);
42
- var animations = (0, _renderEnvironment.useStyles)(_GlobalLoaderView.getAnimations);
43
- var _useGlobalLoaderWidth = (0, _useParams.useGlobalLoaderWidth)(status, ref),width = _useGlobalLoaderWidth.width,startWidth = _useGlobalLoaderWidth.startWidth,fullWidth = _useGlobalLoaderWidth.fullWidth;
44
- var _useGlobalLoaderPosit = (0, _useParams.useGlobalLoaderPosition)(ref),left = _useGlobalLoaderPosit.left;
45
-
46
- var getAnimationClass = function getAnimationClass(status) {
47
- if (!disableAnimations) {
48
- switch (status) {
49
- case 'success':
50
- return animations.successAnimation(delayBeforeHide, width, left);
51
- case 'accept':
52
- if (startWidth < fullWidth * 0.8) {
53
- return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);
54
- }
55
- return animations.slowAcceptAnimation(theme, startWidth, width, left);
56
- case 'error':
57
- return animations.errorAnimation(theme);
58
- case 'standard':
59
- return animations.standardAnimation(theme, expectedResponseTime);
31
+ var GlobalLoaderView = exports.GlobalLoaderView = /*#__PURE__*/(0, _react.forwardRef)(
32
+ function (_ref,
33
+
34
+ externalRef)
35
+ {var expectedResponseTime = _ref.expectedResponseTime,delayBeforeHide = _ref.delayBeforeHide,status = _ref.status,disableAnimations = _ref.disableAnimations,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
36
+ var ref = (0, _react.useRef)(null);
37
+ var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
38
+ var _useEmotion = (0, _renderEnvironment.useEmotion)(),cx = _useEmotion.cx;
39
+ var styles = (0, _renderEnvironment.useStyles)(_GlobalLoaderView.getStyles);
40
+ var animations = (0, _renderEnvironment.useStyles)(_GlobalLoaderView.getAnimations);
41
+ var _useGlobalLoaderWidth = (0, _useParams.useGlobalLoaderWidth)(status, ref),width = _useGlobalLoaderWidth.width,startWidth = _useGlobalLoaderWidth.startWidth,fullWidth = _useGlobalLoaderWidth.fullWidth;
42
+ var _useGlobalLoaderPosit = (0, _useParams.useGlobalLoaderPosition)(ref),left = _useGlobalLoaderPosit.left;
43
+
44
+ var getAnimationClass = function getAnimationClass(status) {
45
+ if (!disableAnimations) {
46
+ switch (status) {
47
+ case 'success':
48
+ return animations.successAnimation(delayBeforeHide, width, left);
49
+ case 'accept':
50
+ if (startWidth < fullWidth * 0.8) {
51
+ return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);
52
+ }
53
+ return animations.slowAcceptAnimation(theme, startWidth, width, left);
54
+ case 'error':
55
+ return animations.errorAnimation(theme);
56
+ case 'standard':
57
+ return animations.standardAnimation(theme, expectedResponseTime);
58
+ }
60
59
  }
61
- }
62
-
63
- if (disableAnimations) {
64
- switch (status) {
65
- case 'success':
66
- return styles.successWithoutAnimation();
67
- case 'accept':
68
- return animations.acceptWithoutAnimation(startWidth);
69
- case 'error':
70
- return styles.errorWithoutAnimation();
71
- case 'standard':
72
- return styles.standardWithoutAnimation();
60
+
61
+ if (disableAnimations) {
62
+ switch (status) {
63
+ case 'success':
64
+ return styles.successWithoutAnimation();
65
+ case 'accept':
66
+ return animations.acceptWithoutAnimation(startWidth);
67
+ case 'error':
68
+ return styles.errorWithoutAnimation();
69
+ case 'standard':
70
+ return styles.standardWithoutAnimation();
71
+ }
73
72
  }
74
- }
75
- };
73
+ };
76
74
 
77
- return /*#__PURE__*/(
78
- _react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({}, rest, { "data-status": status }), /*#__PURE__*/
79
- _react.default.createElement(_ZIndex.ZIndex, { priority: "GlobalLoader", className: styles.outer(theme) }, /*#__PURE__*/
80
- _react.default.createElement("div", { ref: ref, className: cx(styles.inner(theme), getAnimationClass(status)) })
81
- )
82
- ));
75
+ return /*#__PURE__*/(
76
+ _react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({}, rest, { "data-status": status, ref: externalRef }), /*#__PURE__*/
77
+ _react.default.createElement(_ZIndex.ZIndex, { priority: "GlobalLoader", className: styles.outer(theme) }, /*#__PURE__*/
78
+ _react.default.createElement("div", { ref: ref, className: cx(styles.inner(theme), getAnimationClass(status)) })
79
+ )
80
+ ));
83
81
 
84
- };
82
+ }
83
+ );
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_ZIndex","_ThemeContext","_CommonWrapper","_GlobalLoaderView","_useParams","_excluded","GlobalLoaderView","exports","_ref","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","_objectWithoutPropertiesLoose2","default","ref","useRef","theme","useContext","ThemeContext","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","animations","getAnimations","_useGlobalLoaderWidth","useGlobalLoaderWidth","width","startWidth","fullWidth","_useGlobalLoaderPosit","useGlobalLoaderPosition","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","createElement","CommonWrapper","_extends2","ZIndex","priority","className","outer","inner"],"sources":["GlobalLoaderView.tsx"],"sourcesContent":["import React, { useContext, useRef } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { getAnimations, getStyles } from './GlobalLoaderView.styles';\nimport { useGlobalLoaderPosition, useGlobalLoaderWidth } from './useParams';\n\nexport interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {\n /** Устанавливает ожидаемое время(ms) ответа сервера. */\n expectedResponseTime: number;\n\n /** Устанавливает задержку в миллисекундах до исчезновения лоадера. */\n delayBeforeHide: number;\n\n /** Устанавливает статус операции. */\n status?: 'success' | 'error' | 'standard' | 'accept';\n\n /** Отключает анимацию. */\n disableAnimations: boolean;\n}\n\nexport interface GlobalLoaderViewRef {\n element: HTMLDivElement;\n refObject: React.RefObject<GlobalLoaderViewRef['element']>;\n}\n\nexport const GlobalLoaderView = ({\n expectedResponseTime,\n delayBeforeHide,\n status,\n disableAnimations,\n ...rest\n}: GlobalLoaderViewProps) => {\n const ref = useRef<GlobalLoaderViewRef['element']>(null);\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const animations = useStyles(getAnimations);\n const { width, startWidth, fullWidth } = useGlobalLoaderWidth(status, ref);\n const { left } = useGlobalLoaderPosition(ref);\n\n const getAnimationClass = (status: GlobalLoaderViewProps['status']) => {\n if (!disableAnimations) {\n switch (status) {\n case 'success':\n return animations.successAnimation(delayBeforeHide, width, left);\n case 'accept':\n if (startWidth < fullWidth * 0.8) {\n return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);\n }\n return animations.slowAcceptAnimation(theme, startWidth, width, left);\n case 'error':\n return animations.errorAnimation(theme);\n case 'standard':\n return animations.standardAnimation(theme, expectedResponseTime);\n }\n }\n\n if (disableAnimations) {\n switch (status) {\n case 'success':\n return styles.successWithoutAnimation();\n case 'accept':\n return animations.acceptWithoutAnimation(startWidth);\n case 'error':\n return styles.errorWithoutAnimation();\n case 'standard':\n return styles.standardWithoutAnimation();\n }\n }\n };\n\n return (\n <CommonWrapper {...rest} data-status={status}>\n <ZIndex priority=\"GlobalLoader\" className={styles.outer(theme)}>\n <div ref={ref} className={cx(styles.inner(theme), getAnimationClass(status))} />\n </ZIndex>\n </CommonWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_ZIndex","_ThemeContext","_CommonWrapper","_GlobalLoaderView","_useParams","_excluded","GlobalLoaderView","exports","forwardRef","_ref","externalRef","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","_objectWithoutPropertiesLoose2","default","ref","useRef","theme","useContext","ThemeContext","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","animations","getAnimations","_useGlobalLoaderWidth","useGlobalLoaderWidth","width","startWidth","fullWidth","_useGlobalLoaderPosit","useGlobalLoaderPosition","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","createElement","CommonWrapper","_extends2","ZIndex","priority","className","outer","inner"],"sources":["GlobalLoaderView.tsx"],"sourcesContent":["import React, { forwardRef, useContext, useRef } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { getAnimations, getStyles } from './GlobalLoaderView.styles';\nimport { useGlobalLoaderPosition, useGlobalLoaderWidth } from './useParams';\n\nexport interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {\n /** Устанавливает ожидаемое время(ms) ответа сервера. */\n expectedResponseTime: number;\n\n /** Устанавливает задержку в миллисекундах до исчезновения лоадера. */\n delayBeforeHide: number;\n\n /** Устанавливает статус операции. */\n status?: 'success' | 'error' | 'standard' | 'accept';\n\n /** Отключает анимацию. */\n disableAnimations: boolean;\n}\n\nexport interface GlobalLoaderViewRef {\n element: HTMLDivElement;\n refObject: React.RefObject<GlobalLoaderViewRef['element'] | null>;\n}\n\nexport const GlobalLoaderView = forwardRef(\n (\n { expectedResponseTime, delayBeforeHide, status, disableAnimations, ...rest }: GlobalLoaderViewProps,\n externalRef: React.Ref<CommonWrapper<CommonProps>>,\n ) => {\n const ref = useRef<GlobalLoaderViewRef['element']>(null);\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const animations = useStyles(getAnimations);\n const { width, startWidth, fullWidth } = useGlobalLoaderWidth(status, ref);\n const { left } = useGlobalLoaderPosition(ref);\n\n const getAnimationClass = (status: GlobalLoaderViewProps['status']) => {\n if (!disableAnimations) {\n switch (status) {\n case 'success':\n return animations.successAnimation(delayBeforeHide, width, left);\n case 'accept':\n if (startWidth < fullWidth * 0.8) {\n return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);\n }\n return animations.slowAcceptAnimation(theme, startWidth, width, left);\n case 'error':\n return animations.errorAnimation(theme);\n case 'standard':\n return animations.standardAnimation(theme, expectedResponseTime);\n }\n }\n\n if (disableAnimations) {\n switch (status) {\n case 'success':\n return styles.successWithoutAnimation();\n case 'accept':\n return animations.acceptWithoutAnimation(startWidth);\n case 'error':\n return styles.errorWithoutAnimation();\n case 'standard':\n return styles.standardWithoutAnimation();\n }\n }\n };\n\n return (\n <CommonWrapper {...rest} data-status={status} ref={externalRef}>\n <ZIndex priority=\"GlobalLoader\" className={styles.outer(theme)}>\n <div ref={ref} className={cx(styles.inner(theme), getAnimationClass(status))} />\n </ZIndex>\n </CommonWrapper>\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;
@@ -1 +1 @@
1
- {"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_interopRequireWildcard","_warning","_identifiers","_ThemeContext","_CommonWrapper","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_blink2","_SizeDecorator","_renderEnvironment","_Input2","_InputLayout","_excluded","_class","_Input","inputTypes","exports","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","catchUnreachableWarning","InputDataTids","root","clearCross","Input","withRenderEnvironment","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","selectAllId","input","labelRef","createRef","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","React","cloneElement","createElement","renderMain","_this$cx","_this$cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","warning","leftIcon","rightIcon","borderless","align","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose2","default","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","style","_extends2","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","FocusControlWrapper","onBlurWhenDisabled","resetFocus","getRightIcon","ClearCrossIcon","onClick","handleClearInput","InputLayout","context","setState","event","target","e","isDeleteKey","someKeys","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","blink","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","componentWillUnmount","invariant","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_this$globalObject$do","_this$input2","includes","document","activeElement","render","_this2","getStyles","emotion","ThemeContext","Consumer","CommonWrapper","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":";AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAI,YAAA,GAAAJ,OAAA;;AAEA,IAAAK,aAAA,GAAAL,OAAA;;;AAGA,IAAAM,cAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAR,OAAA;;AAEA,IAAAS,oBAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;;;AAGA,IAAAe,OAAA,GAAAf,OAAA;AACA,IAAAgB,YAAA,GAAAhB,OAAA,8BAAwD,IAAAiB,SAAA,mYAAAC,MAAA,EAAAC,MAAA,EA3BxD;;AA6BO,IAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAU;;;;;;;AAO3G,IAAME,qBAAkC,GAAAD,OAAA,CAAAC,qBAAA,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;AACvF,IAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAIC,IAAe,EAAEC,YAAyB,EAA6B,KAAtDA,YAAyB,cAAzBA,YAAyB,GAAGH,qBAAqB;EACtG,gEAA6DE,IAAI,0CAAoCC,YAAY;EAC9GC,GAAG,CAAC,UAACC,CAAC,iBAASA,CAAC,SAAG,CAAC;EACpBC,IAAI,CAAC,IAAI,CAAC;AACf,CAAC;;AAEM,IAAMC,8BAA8B,GAAAR,OAAA,CAAAQ,8BAAA,GAAG,SAAjCA,8BAA8BA,CAAAC,IAAA;;;;;;;;;;AAU5B,KATbC,aAAa,GAAAD,IAAA,CAAbC,aAAa,CACbC,aAAa,GAAAF,IAAA,CAAbE,aAAa,CACbC,OAAO,GAAAH,IAAA,CAAPG,OAAO,CACPC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;EAOP,QAAQH,aAAa;IACnB,KAAK,QAAQ;MACX,OAAOC,aAAa;IACtB,KAAK,MAAM;MACT,OAAOG,OAAO,CAAC,CAACF,OAAO,IAAIC,OAAO,KAAKF,aAAa,CAAC;IACvD,KAAK,OAAO;MACV,OAAO,KAAK;IACd;MACE,OAAO,IAAAI,mCAAuB,EAACL,aAAa,EAAE,KAAK,CAAC;EACxD;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FM,IAAMM,aAAa,GAAAhB,OAAA,CAAAgB,aAAA,GAAG;EAC3BC,IAAI,EAAE,aAAa;EACnBC,UAAU,EAAE;AACd,CAAU;;;;AAIV;AACA;AACA,GAFA;;;;AAMaC,KAAK,GAAAnB,OAAA,CAAAmB,KAAA,OAHjBC,wCAAqB,EAAAvB,MAAA,OACrBwB,kBAAQ,EAAAxB,MAAA,OACRyB,uBAAQ,EAAAzB,MAAA,IAAAC,MAAA,0BAAAyB,gBAAA,YAAAJ,MAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;IAWCU,QAAQ,GAAG,IAAAC,oCAAiB,EAAChB,KAAK,CAACiB,YAAY,CAAC,CAAAZ,KAAA;;IAEhDa,WAAW,GAAkB,IAAI,CAAAb,KAAA;;;;;;IAMlCc,KAAK,GAA4B,IAAI,CAAAd,KAAA;IACrCe,QAAQ,gBAAG,IAAAC,gBAAS,EAAmB,CAAC,CAAAhB,KAAA;;;;IAIvCiB,mBAAmB,GAAG,UAAAC,KAAA;;;;;;;;IAQf,KAAAC,WAAA,KAPb/B,OAAO,GAAA8B,KAAA,CAAP9B,OAAO,CACPC,OAAO,GAAA6B,KAAA,CAAP7B,OAAO,CACP+B,eAAe,GAAAF,KAAA,CAAfE,eAAe;MAMf,IAAIpB,KAAA,CAAKqB,KAAK,CAACC,QAAQ,EAAE;QACvB,OAAO,KAAK;MACd;MACA,OAAOtC,8BAA8B,CAAC;QACpCE,aAAa,EAAEc,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACxB,aAAa;QAC5CC,aAAa,EAAEG,OAAO,CAAC,EAAA6B,WAAA,GAAAnB,KAAA,CAAKc,KAAK,qBAAVK,WAAA,CAAYI,KAAK,KAAIH,eAAe,CAAC;QAC5DhC,OAAO,EAAPA,OAAO;QACPC,OAAO,EAAPA;MACF,CAAC,CAAC;IACJ,CAAC,CAAAW,KAAA;;IAEMwB,KAAK,GAAe;MACzBpC,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,KAAK;MACdoC,gBAAgB,EAAEzB,KAAA,CAAKiB,mBAAmB,CAAC;QACzC7B,OAAO,EAAE,KAAK;QACdgC,eAAe,EAAE9B,OAAO,CAACU,KAAA,CAAKqB,KAAK,CAACE,KAAK,IAAIvB,KAAA,CAAKqB,KAAK,CAACK,YAAY;MACtE,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFD;AACF;AACA;AACA;AACA;AACA,OALE1B,KAAA;IAMO2B,SAAS,GAAG,oBAAY3B,KAAA,CAAK4B,UAAU,CAAC,CAAC,GAAA5B,KAAA;;IAEzC6B,cAAc,GAAG,YAAqB,KAAAC,qBAAA;MAC3C,OAAQ9B,KAAA,CAAKa,WAAW,IAAAiB,qBAAA,GAAG9B,KAAA,CAAK+B,YAAY,CAACC,qBAAqB,oBAAvChC,KAAA,CAAK+B,YAAY,CAACC,qBAAqB,CAAGhC,KAAA,CAAK4B,UAAU,CAAC,YAAAE,qBAAA,GAAI,IAAI;IAC/F,CAAC,CAAA9B,KAAA;;IAEO4B,UAAU,GAAG,YAAY;MAC/B,IAAI5B,KAAA,CAAKc,KAAK,EAAE;QACdd,KAAA,CAAKiC,iBAAiB,CAAC,CAAC,EAAEjC,KAAA,CAAKc,KAAK,CAACS,KAAK,CAACpB,MAAM,CAAC;MACpD;IACF,CAAC,CAAAH,KAAA;;IAEOkC,sBAAsB,GAAG,YAAY;MAC3C,IAAIlC,KAAA,CAAKa,WAAW,EAAE;QACpBb,KAAA,CAAK+B,YAAY,CAACI,oBAAoB,YAAtCnC,KAAA,CAAK+B,YAAY,CAACI,oBAAoB,CAAGnC,KAAA,CAAKa,WAAW,CAAC;QAC1Db,KAAA,CAAKa,WAAW,GAAG,IAAI;MACzB;IACF,CAAC,CAAAb,KAAA;;IAEOoC,QAAQ,GAAG,UAACC,UAAiE,EAAK;MACxF,IAAIrC,KAAA,CAAKqB,KAAK,CAACiB,OAAO,EAAE;QACtB,oBAAOC,cAAK,CAACC,YAAY,CAACxC,KAAA,CAAKqB,KAAK,CAACiB,OAAO,EAAED,UAAU,CAAC;MAC3D;;MAEA,oBAAOE,cAAK,CAACE,aAAa,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACjD,CAAC,CAAArC,KAAA;;IAEO0C,UAAU,GAAG,UAACrB,KAAyC,EAAK,KAAAsB,QAAA,EAAAC,SAAA;MAClE;QACEC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8BVxB,KAAK,CA9BPwB,YAAY,CACZC,YAAY,GA6BVzB,KAAK,CA7BPyB,YAAY,CACZC,WAAW,GA4BT1B,KAAK,CA5BP0B,WAAW,CACXC,SAAS,GA2BP3B,KAAK,CA3BP2B,SAAS,CACTC,UAAU,GA0BR5B,KAAK,CA1BP4B,UAAU,CACVC,aAAa,GAyBX7B,KAAK,CAzBP6B,aAAa,CACbC,KAAK,GAwBH9B,KAAK,CAxBP8B,KAAK,CACLC,KAAK,GAuBH/B,KAAK,CAvBP+B,KAAK,CACLC,IAAI,GAsBFhC,KAAK,CAtBPgC,IAAI,CACJC,OAAO,GAqBLjC,KAAK,CArBPiC,OAAO,CACPC,QAAQ,GAoBNlC,KAAK,CApBPkC,QAAQ,CACRC,SAAS,GAmBPnC,KAAK,CAnBPmC,SAAS,CACTC,UAAU,GAkBRpC,KAAK,CAlBPoC,UAAU,CACVlC,KAAK,GAiBHF,KAAK,CAjBPE,KAAK,CACLmC,KAAK,GAgBHrC,KAAK,CAhBPqC,KAAK,CACL/E,IAAI,GAeF0C,KAAK,CAfP1C,IAAI,CACJgF,IAAI,GAcFtC,KAAK,CAdPsC,IAAI,CACJC,WAAW,GAaTvC,KAAK,CAbPuC,WAAW,CACXC,gBAAgB,GAYdxC,KAAK,CAZPwC,gBAAgB,CAChBvC,QAAQ,GAWND,KAAK,CAXPC,QAAQ,CACRwC,iBAAiB,GAUfzC,KAAK,CAVPyC,iBAAiB,CACjBC,MAAM,GASJ1C,KAAK,CATP0C,MAAM,CACNC,MAAM,GAQJ3C,KAAK,CARP2C,MAAM,CACNC,OAAO,GAOL5C,KAAK,CAPP4C,OAAO,CACaC,eAAe,GAMjC7C,KAAK,CANP,kBAAkB,EACD8C,YAAY,GAK3B9C,KAAK,CALP,eAAe,EACD+C,SAAS,GAIrB/C,KAAK,CAJP,YAAY,EACZiB,OAAO,GAGLjB,KAAK,CAHPiB,OAAO,CACPpD,aAAa,GAEXmC,KAAK,CAFPnC,aAAa,CACVmF,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLlD,KAAK,EAAAjD,SAAA;;MAET,IAAQgB,OAAO,GAAKY,KAAA,CAAKwB,KAAK,CAAtBpC,OAAO;;MAEf,IAAMoF,UAAU,GAAG;QACjBC,SAAS,EAAEzE,KAAA,CAAK0E,EAAE,CAAC1E,KAAA,CAAK2E,MAAM,CAAClF,IAAI,CAACO,KAAA,CAAK4E,KAAK,CAAC,EAAE5E,KAAA,CAAK6E,gBAAgB,CAAC,CAAC,GAAAlC,QAAA,OAAAA,QAAA;QACrE3C,KAAA,CAAK2E,MAAM,CAACG,KAAK,CAAC9E,KAAA,CAAK4E,KAAK,CAAC,IAAGxF,OAAO,IAAI,CAACkE,OAAO,IAAI,CAACF,KAAK,EAAAT,QAAA;QAC7D3C,KAAA,CAAK2E,MAAM,CAACI,QAAQ,CAAC/E,KAAA,CAAK4E,KAAK,CAAC,IAAG,CAACxF,OAAO,IAAI,CAACkC,QAAQ,IAAI,CAACgC,OAAO,IAAI,CAACF,KAAK,IAAI,CAACK,UAAU,EAAAd,QAAA;QAC7F3C,KAAA,CAAK2E,MAAM,CAAClB,UAAU,CAAC,CAAC,IAAGA,UAAU,IAAI,CAACrE,OAAO,EAAAuD,QAAA;QACjD3C,KAAA,CAAK2E,MAAM,CAACrD,QAAQ,CAACtB,KAAA,CAAK4E,KAAK,CAAC,IAAGtD,QAAQ,EAAAqB,QAAA;QAC3C3C,KAAA,CAAK2E,MAAM,CAACrB,OAAO,CAACtD,KAAA,CAAK4E,KAAK,CAAC,IAAGtB,OAAO,EAAAX,QAAA;QACzC3C,KAAA,CAAK2E,MAAM,CAACvB,KAAK,CAACpD,KAAA,CAAK4E,KAAK,CAAC,IAAGxB,KAAK,EAAAT,QAAA;QACvC,CAAC;QACF,eAAe,EAAEwB,YAAY;QAC7Ba,KAAK,MAAAC,SAAA,CAAAV,OAAA,IAAIpB,KAAK,EAALA,KAAK,IAAKc,OAAO,CAAE;QAC5BpB,YAAY,EAAE7C,KAAA,CAAKkF,gBAAgB;QACnCpC,YAAY,EAAE9C,KAAA,CAAKmF,gBAAgB;QACnCpC,WAAW,EAAXA,WAAW;QACXqC,GAAG,EAAEpF,KAAA,CAAKe;MACZ,CAAC;;MAED,IAAMsB,UAAiE,OAAA4C,SAAA,CAAAV,OAAA;MAClEF,IAAI;QACPI,SAAS,EAAEzE,KAAA,CAAK0E,EAAE,CAAC1E,KAAA,CAAK2E,MAAM,CAAC7D,KAAK,CAACd,KAAA,CAAK4E,KAAK,CAAC,GAAAhC,SAAA,OAAAA,SAAA;QAC7C5C,KAAA,CAAK2E,MAAM,CAACU,UAAU,CAACrF,KAAA,CAAK4E,KAAK,CAAC,IAAGxF,OAAO,EAAAwD,SAAA;QAC5C5C,KAAA,CAAK2E,MAAM,CAACW,aAAa,CAACtF,KAAA,CAAK4E,KAAK,CAAC,IAAGtD,QAAQ,EAAAsB,SAAA;QAClD,CAAC;QACFrB,KAAK,EAALA,KAAK;QACL8B,IAAI,EAAJA,IAAI;QACJkC,QAAQ,EAAEvF,KAAA,CAAKwF,YAAY;QAC3BC,OAAO,EAAEzF,KAAA,CAAK0F,WAAW;QACzB1C,SAAS,EAAEhD,KAAA,CAAK2F,aAAa;QAC7B1C,UAAU,EAAEjD,KAAA,CAAK4F,cAAc;QAC/BC,MAAM,EAAE7F,KAAA,CAAK8F,UAAU;QACvBd,KAAK,EAAE,EAAEe,SAAS,EAAErC,KAAK,CAAC,CAAC;QAC3B0B,GAAG,EAAEpF,KAAA,CAAKgG,QAAQ;QAClBrH,IAAI,EAAJA,IAAI;QACJiF,WAAW,EAAXA,WAAW;QACXtC,QAAQ,EAARA,QAAQ;QACR,kBAAkB,EAAE4C,eAAe;QACnC,YAAY,EAAEE,SAAS,GACxB;;;MAED,IAAMtD,KAAK;MACT1D,MAAA,CAAAmH,OAAA,CAAA9B,aAAA,CAAC7E,oBAAA,CAAAqI,mBAAmB,IAACC,kBAAkB,EAAElG,KAAA,CAAKmG,UAAW,IAAEnG,KAAA,CAAKoC,QAAQ,CAACC,UAAU,CAAuB,CAC3G;;;MAED,IAAM+D,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;QACzB,OAAOpG,KAAA,CAAKwB,KAAK,CAACC,gBAAgB;QAChCrE,MAAA,CAAAmH,OAAA,CAAA9B,aAAA,CAAC5E,eAAA,CAAAwI,cAAc,IAAC,YAAU7G,aAAa,CAACE,UAAW,EAACiE,IAAI,EAAE3D,KAAA,CAAK2D,IAAK,EAAC2C,OAAO,EAAEtG,KAAA,CAAKuG,gBAAiB,EAAE,CAAC;;QAEvG/C,SACD;;MACH,CAAC;MACD;QACEpG,MAAA,CAAAmH,OAAA,CAAA9B,aAAA,CAACtE,YAAA,CAAAqI,WAAW;UACVjD,QAAQ,EAAEA,QAAS;UACnBC,SAAS,EAAE4C,YAAY,CAAC,CAAE;UAC1BrC,MAAM,EAAEA,MAAO;UACfC,MAAM,EAAEA,MAAO;UACfQ,UAAU,EAAEA,UAAW;UACvBiC,OAAO,EAAE,EAAEnF,QAAQ,EAAEhC,OAAO,CAACgC,QAAQ,CAAC,EAAElC,OAAO,EAAPA,OAAO,EAAEuE,IAAI,EAAE3D,KAAA,CAAK2D,IAAI,CAAC,CAAE;;QAElE7C;QACU,CAAC;;IAElB,CAAC,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;IAoBOgG,QAAQ,GAAG,UAAC1D,OAA+C,EAAK;MACtE,IAAIA,OAAO,IAAI,OAAO,IAAIA,OAAO,EAAE;QACjCtC,KAAA,CAAKc,KAAK,GAAGwB,OAAO,CAACxB,KAAK;MAC5B,CAAC,MAAM;QACLd,KAAA,CAAKc,KAAK,GAAGwB,OAAO;MACtB;IACF,CAAC,CAAAtC,KAAA;;IAEOuG,gBAAgB,GAAG,YAAM;MAC/B,IAAIvG,KAAA,CAAKc,KAAK,EAAE;QACdd,KAAA,CAAKc,KAAK,CAACS,KAAK,GAAG,EAAE;MACvB;;MAEAvB,KAAA,CAAK0G,QAAQ,CAAC,EAAEjF,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;;MAE1C,IAAIzB,KAAA,CAAKqB,KAAK,CAAC6B,aAAa,EAAE;QAC5BlD,KAAA,CAAKqB,KAAK,CAAC6B,aAAa,CAAC,EAAE,CAAC;MAC9B;IACF,CAAC,CAAAlD,KAAA;;IAEOwF,YAAY,GAAG,UAACmB,KAA0C,EAAK;MACrE,IAAI3G,KAAA,CAAKqB,KAAK,CAAC6B,aAAa,EAAE;QAC5BlD,KAAA,CAAKqB,KAAK,CAAC6B,aAAa,CAACyD,KAAK,CAACC,MAAM,CAACrF,KAAK,CAAC;MAC9C;;MAEA,IAAIvB,KAAA,CAAKqB,KAAK,CAACkE,QAAQ,EAAE;QACvBvF,KAAA,CAAKqB,KAAK,CAACkE,QAAQ,CAACoB,KAAK,CAAC;MAC5B;;MAEA3G,KAAA,CAAK0G,QAAQ,CAAC;QACZjF,gBAAgB,EAAEzB,KAAA,CAAKiB,mBAAmB,CAAC,EAAE7B,OAAO,EAAEY,KAAA,CAAKwB,KAAK,CAACpC,OAAO,EAAEC,OAAO,EAAEW,KAAA,CAAKwB,KAAK,CAACnC,OAAO,CAAC,CAAC;MACzG,CAAC,CAAC;IACJ,CAAC,CAAAW,KAAA;;IAEOkF,gBAAgB,GAAG,UAAC2B,CAAiD,EAAK;MAChF7G,KAAA,CAAK0G,QAAQ,CAAC;QACZrH,OAAO,EAAE,IAAI;QACboC,gBAAgB,EAAEzB,KAAA,CAAKiB,mBAAmB,CAAC,EAAE7B,OAAO,EAAEY,KAAA,CAAKwB,KAAK,CAACpC,OAAO,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC;MAC3F,CAAC,CAAC;MACF,IAAIW,KAAA,CAAKqB,KAAK,CAACwB,YAAY,EAAE;QAC3B7C,KAAA,CAAKqB,KAAK,CAACwB,YAAY,CAACgE,CAAC,CAAC;MAC5B;IACF,CAAC,CAAA7G,KAAA;IACOmF,gBAAgB,GAAG,UAAC0B,CAAiD,EAAK;MAChF7G,KAAA,CAAK0G,QAAQ,CAAC;QACZrH,OAAO,EAAE,KAAK;QACdoC,gBAAgB,EAAEzB,KAAA,CAAKiB,mBAAmB,CAAC,EAAE7B,OAAO,EAAEY,KAAA,CAAKwB,KAAK,CAACpC,OAAO,EAAEC,OAAO,EAAE,KAAK,CAAC,CAAC;MAC5F,CAAC,CAAC;MACF,IAAIW,KAAA,CAAKqB,KAAK,CAACyB,YAAY,EAAE;QAC3B9C,KAAA,CAAKqB,KAAK,CAACyB,YAAY,CAAC+D,CAAC,CAAC;MAC5B;IACF,CAAC,CAAA7G,KAAA;;IAEO0F,WAAW,GAAG,UAACiB,KAAyC,EAAK;MACnE3G,KAAA,CAAK0G,QAAQ,CAAC;QACZtH,OAAO,EAAE,IAAI;QACbqC,gBAAgB,EAAEzB,KAAA,CAAKiB,mBAAmB,CAAC,EAAE7B,OAAO,EAAE,IAAI,EAAEC,OAAO,EAAEW,KAAA,CAAKwB,KAAK,CAACnC,OAAO,CAAC,CAAC;MAC3F,CAAC,CAAC;;MAEF,IAAIW,KAAA,CAAKqB,KAAK,CAACwC,gBAAgB,EAAE;QAC/B7D,KAAA,CAAKc,KAAK,IAAId,KAAA,CAAK2B,SAAS,CAAC,CAAC;MAChC;;MAEA,IAAI3B,KAAA,CAAKqB,KAAK,CAACoE,OAAO,EAAE;QACtBzF,KAAA,CAAKqB,KAAK,CAACoE,OAAO,CAACkB,KAAK,CAAC;MAC3B;IACF,CAAC,CAAA3G,KAAA;;IAEO2F,aAAa,GAAG,UAACkB,CAAwC,EAAK;MACpE,IAAI7G,KAAA,CAAKqB,KAAK,CAAC2B,SAAS,EAAE;QACxBhD,KAAA,CAAKqB,KAAK,CAAC2B,SAAS,CAAC6D,CAAC,CAAC;MACzB;;MAEA,IAAMC,WAAW,GAAG,IAAAC,qBAAQ,EAACC,2BAAc,EAAEC,wBAAW,CAAC,CAACJ,CAAC,CAAC;;MAE5D,IAAI,CAACA,CAAC,CAACK,aAAa,CAAC3F,KAAK,IAAIuF,WAAW,IAAI,CAACD,CAAC,CAACM,MAAM,EAAE;QACtDnH,KAAA,CAAKoH,qBAAqB,CAAC,CAAC;MAC9B;IACF,CAAC,CAAApH,KAAA;;IAEO4F,cAAc,GAAG,UAACe,KAA4C,EAAK;MACzE,IAAI3G,KAAA,CAAKqB,KAAK,CAAC4B,UAAU,EAAE;QACzBjD,KAAA,CAAKqB,KAAK,CAAC4B,UAAU,CAAC0D,KAAK,CAAC;MAC9B;;MAEA,IAAI3G,KAAA,CAAKqB,KAAK,CAACgG,SAAS,KAAKV,KAAK,CAACO,aAAa,CAAC3F,KAAK,CAACpB,MAAM,EAAE;QAC7DH,KAAA,CAAKoH,qBAAqB,CAACT,KAAK,CAACO,aAAa,CAAC3F,KAAK,CAAC;MACvD;IACF,CAAC,CAAAvB,KAAA;;IAEOoH,qBAAqB,GAAG,UAAC7F,KAAa,EAA8B,KAA3CA,KAAa,cAAbA,KAAa,GAAGvB,KAAA,CAAKqB,KAAK,CAACE,KAAK,IAAI,EAAE;MACrE,IAAIvB,KAAA,CAAKqB,KAAK,CAACyC,iBAAiB,EAAE;QAChC9D,KAAA,CAAKqB,KAAK,CAACyC,iBAAiB,CAACvC,KAAK,CAAC;MACrC,CAAC,MAAM;QACLvB,KAAA,CAAKsH,KAAK,CAAC,CAAC;MACd;IACF,CAAC,CAAAtH,KAAA;;IAEOmG,UAAU,GAAG,oBAAMnG,KAAA,CAAK0G,QAAQ,CAAC,EAAEtH,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAAY,KAAA;;IAEpD8F,UAAU,GAAG,UAACa,KAAyC,EAAK,KAAAY,YAAA;MAClE,IAAMrI,aAAa,GAAGc,KAAA,CAAKqB,KAAK,CAACnC,aAAa;MAC9C,IAAIA,aAAa,KAAAqI,YAAA,GAAI,IAAAC,qBAAW,EAAAxH,KAAK,CAAC,aAAjBuH,YAAA,CAAmBE,QAAQ,CAACd,KAAK,CAACe,aAAa,CAAC,EAAE;QACrE1H,KAAA,CAAK0G,QAAQ,CAAC,EAAEtH,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;MACnC,CAAC,MAAM;QACL,IAAMqC,gBAAgB,GAAGzB,KAAA,CAAKiB,mBAAmB,CAAC,EAAE7B,OAAO,EAAE,KAAK,EAAEC,OAAO,EAAEW,KAAA,CAAKwB,KAAK,CAACnC,OAAO,CAAC,CAAC,CAAC;QAClGW,KAAA,CAAK0G,QAAQ,CAAC;UACZtH,OAAO,EAAE,KAAK;UACdqC,gBAAgB,EAAhBA;QACF,CAAC,CAAC;QACFzB,KAAA,CAAKqB,KAAK,CAACwE,MAAM,YAAjB7F,KAAA,CAAKqB,KAAK,CAACwE,MAAM,CAAGc,KAAK,CAAC;MAC5B;IACF,CAAC,QAAA3G,KAAA,MAAA2H,eAAA,CAAApD,OAAA,EAAA5E,KAAA,EAAAI,gBAAA,MAAA6H,MAAA,GAAAjI,KAAA,CAAAkI,SAAA,CAAAD,MAAA,CArVME,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAAC5F,sBAAsB,CAAC,CAAC,CAC/B,CAAC,CAED;AACF;AACA;AACA,KAHE,CAAA0F,MAAA,CAIO9C,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAAiD,kBAAS,EAAC,IAAI,CAACjH,KAAK,EAAE,kDAAkD,CAAC,CACzE,IAAI,CAACA,KAAK,CAACgE,KAAK,CAAC,CAAC,CACpB,CAAC,CAED;AACF;AACA,KAFE,CAAA8C,MAAA,CAGOI,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAAD,kBAAS,EAAC,IAAI,CAACjH,KAAK,EAAE,iDAAiD,CAAC,CACxE,IAAI,CAACA,KAAK,CAACkH,IAAI,CAAC,CAAC,CACnB,CAAC,CAED;AACF;AACA,KAFE,CAAAJ,MAAA,CAGOK,OAAO,GAAd,SAAAA,QAAA,EAAiB,CACf,OAAO,IAAI,CAACnH,KAAK,CACnB,CAAC,CAED;AACF;AACA,KAFE,CAAA8G,MAAA,CAGON,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAAA,aAAK,EAAC,EAAEY,EAAE,EAAE,IAAI,CAACnH,QAAQ,CAACoH,OAAO,EAAEC,UAAU,EAAE,IAAI,CAACxD,KAAK,CAACyD,eAAe,CAAC,CAAC,CAAC,CAC9E,CAAC,CAED;AACF;AACA;AACA;AACA,KAJE,CAAAT,MAAA,CAKO3F,iBAAiB,GAAxB,SAAAA,kBAAyBqG,KAAa,EAAEC,GAAW,EAAE,KAAAC,qBAAA,EAAAC,YAAA,EACnD;IACA;IACA,IAAI,CAAChK,qBAAqB,CAACiK,QAAQ,CAAC,IAAI,CAAChI,QAAQ,CAAC,CAAC,CAAC/B,IAAI,CAAC,EAAE,CACzD,IAAA2E,gBAAO,EAAC,KAAK,EAAE5E,qBAAqB,CAAC,IAAI,CAACgC,QAAQ,CAAC,CAAC,CAAC/B,IAAI,CAAC,CAAC,CAE3D,OACF,CAEA,IAAI,CAAC,IAAI,CAACmC,KAAK,EAAE,CACf,IAAAwC,gBAAO,EAAC,KAAK,EAAE,oDAAoD,CAAC,CACpE,OACF,CAEA,IAAI,EAAAkF,qBAAA,OAAI,CAACzG,YAAY,CAAC4G,QAAQ,qBAA1BH,qBAAA,CAA4BI,aAAa,MAAK,IAAI,CAAC9H,KAAK,EAAE,CAC5D,IAAI,CAACgE,KAAK,CAAC,CAAC,CACd,CAEA,CAAA2D,YAAA,OAAI,CAAC3H,KAAK,aAAV2H,YAAA,CAAYxG,iBAAiB,CAACqG,KAAK,EAAEC,GAAG,CAAC,CAC3C,CAAC,CAAAX,MAAA,CAEMiB,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAACnE,MAAM,GAAG,IAAAoE,iBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACE5L,MAAA,CAAAmH,OAAA,CAAA9B,aAAA,CAACjF,aAAA,CAAAyL,YAAY,CAACC,QAAQ,QACnB,UAACtE,KAAK,EAAK,CACVkE,MAAI,CAAClE,KAAK,GAAGA,KAAK,CAClB,oBACExH,MAAA,CAAAmH,OAAA,CAAA9B,aAAA,CAAChF,cAAA,CAAA0L,aAAa,MAAAlE,SAAA,CAAAV,OAAA,IAAC6E,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACpI,QAAQ,CAAC,CAAC,GAC9DoI,MAAI,CAACpG,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,CAAAkF,MAAA,CAuIO/C,gBAAgB,GAAxB,SAAAA,iBAAA,EAA2B,KAAAyE,SAAA,EAAAC,SAAA,EAAAC,SAAA,CACzB,QAAQ,IAAI,CAAC7F,IAAI,GACf,KAAK,OAAO,CACV,OAAO,IAAI,CAACe,EAAE,EAAA4E,SAAA,OAAAA,SAAA,CACX,IAAI,CAAC3E,MAAM,CAAC8E,SAAS,CAAC,IAAI,CAAC7E,KAAK,CAAC,IAAG,IAAI,EAAA0E,SAAA,CAC1C,CAAC,CACJ,KAAK,QAAQ,CACX,OAAO,IAAI,CAAC5E,EAAE,EAAA6E,SAAA,OAAAA,SAAA,CACX,IAAI,CAAC5E,MAAM,CAAC+E,UAAU,CAAC,IAAI,CAAC9E,KAAK,CAAC,IAAG,IAAI,EAAA2E,SAAA,CAC3C,CAAC,CACJ,KAAK,OAAO,CACZ,QACE,OAAO,IAAI,CAAC7E,EAAE,EAAA8E,SAAA,OAAAA,SAAA,CACX,IAAI,CAAC7E,MAAM,CAACgF,SAAS,CAAC,IAAI,CAAC/E,KAAK,CAAC,IAAG,IAAI,EAAA4E,SAAA,CAC1C,CAAC,CACN,CACF,CAAC,QAAA7J,KAAA,GAvRwB4C,cAAK,CAACqH,SAAS,GAAAtL,MAAA,CAC1BuL,mBAAmB,GAAG,OAAO,EAAAvL,MAAA,CAC7BwL,WAAW,GAAG,OAAO,EAAAxL,MAAA,CAErBsC,YAAY,GAAiB,EACzCjC,IAAI,EAAE,MAAM,EACZO,aAAa,EAAE,OAAO,CACxB,CAAC,EAAAZ,MAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_interopRequireWildcard","_warning","_identifiers","_ThemeContext","_CommonWrapper","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_blink2","_SizeDecorator","_renderEnvironment","_Input2","_InputLayout","_excluded","_class","_Input","inputTypes","exports","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","catchUnreachableWarning","InputDataTids","root","clearCross","Input","withRenderEnvironment","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","selectAllId","input","labelRef","createRef","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","React","cloneElement","createElement","renderMain","_this$cx","_this$cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","warning","leftIcon","rightIcon","borderless","align","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose2","default","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","style","_extends2","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","FocusControlWrapper","onBlurWhenDisabled","resetFocus","getRightIcon","ClearCrossIcon","onClick","handleClearInput","InputLayout","context","setState","event","target","e","isDeleteKey","someKeys","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","blink","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","componentWillUnmount","invariant","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_this$globalObject$do","_this$input2","includes","document","activeElement","render","_this2","getStyles","emotion","ThemeContext","Consumer","CommonWrapper","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":[]}
@@ -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
  }
@@ -6,6 +6,7 @@ var _forwardRefAndName = require("../../../lib/forwardRefAndName");
6
6
  var _Input = require("../Input");
7
7
 
8
8
  var _CommonWrapper = require("../../../internal/CommonWrapper");
9
+ var _mergeRefs = require("../../../lib/mergeRefs");
9
10
 
10
11
  var _InputLayoutAside = require("./InputLayoutAside");
11
12
 
@@ -29,7 +30,7 @@ var InputLayout = exports.InputLayout = (0, _forwardRefAndName.forwardRefAndName
29
30
  return /*#__PURE__*/(
30
31
  _react.default.createElement(_InputLayoutContext.InputLayoutContext.Provider, { value: _context }, /*#__PURE__*/
31
32
  _react.default.createElement(_CommonWrapper.CommonWrapper, props, /*#__PURE__*/
32
- _react.default.createElement(Tag, (0, _extends2.default)({ ref: ref, "data-tid": _Input.InputDataTids.root }, labelProps), /*#__PURE__*/
33
+ _react.default.createElement(Tag, (0, _extends2.default)({ "data-tid": _Input.InputDataTids.root }, labelProps, { ref: (0, _mergeRefs.mergeRefs)(ref, labelProps.ref) }), /*#__PURE__*/
33
34
  _react.default.createElement(_InputLayoutAside.InputLayoutAside, { icon: leftIcon, text: prefix, side: "left" }), /*#__PURE__*/
34
35
  _react.default.createElement("span", { className: stylesLayout.input() }, children), /*#__PURE__*/
35
36
  _react.default.createElement(_InputLayoutAside.InputLayoutAside, { icon: rightIcon, text: suffix, side: "right" })