@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","forwardRef","useContext","useEffect","useImperativeHandle","useLocaleForControl","DateInput","useResponsiveLayout","forwardRefAndName","isNonNullable","DateRangePickerContext","DateRangePickerDataTids","DateRangePickerLocaleHelper","DateRangePickerInput","props","ref","_useContext","minDate","maxDate","startValue","endValue","size","setStartValue","setStartOptional","setStartDisabled","setEndValue","setEndOptional","setEndDisabled","setMinDate","setMaxDate","setFocusInput","open","close","dateRangePickerRef","startRef","endRef","isStart","type","isEnd","locale","_useResponsiveLayout","isMobile","current","value","optional","disabled","onValueChange","commonProps","_extends","withIcon","onClick","onFocus","e","onBlur","_dateRangePickerRef$c","nextFocusedElement","relatedTarget","contains","createElement","start","startDateLabel","end","endDateLabel","DateRangePickerStart","DateRangePickerEnd"],"sources":["DateRangePickerInput.tsx"],"sourcesContent":["import type { Ref } from 'react';\nimport React, { forwardRef, useContext, useEffect, useImperativeHandle } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport type { DateInputProps } from '../DateInput';\nimport { DateInput } from '../DateInput';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport { DateRangePickerDataTids } from './DateRangePicker';\nimport { DateRangePickerLocaleHelper } from './locale';\n\nexport type DateRangePickerInputType = 'start' | 'end';\n\nexport interface DateRangePickerInputProps extends Omit<DateInputProps, 'value'> {\n type: DateRangePickerInputType;\n value?: string | null;\n optional?: boolean;\n}\n\ntype DateRangePickerInputWithoutType = Omit<DateRangePickerInputProps, 'type'>;\n\nconst DateRangePickerInput = forwardRef((props: DateRangePickerInputProps, ref: Ref<DateInput | null>) => {\n const {\n minDate,\n maxDate,\n startValue,\n endValue,\n size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n } = useContext(DateRangePickerContext);\n const isStart = props.type === 'start';\n const isEnd = props.type === 'end';\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const { isMobile } = useResponsiveLayout();\n\n useImperativeHandle(ref, () => (isStart ? startRef.current : endRef.current), []);\n\n useEffect(() => {\n if (isStart && startValue !== props.value) {\n setStartValue(props.value || '');\n } else if (isEnd && endValue !== props.value) {\n setEndValue(props.value || '');\n }\n }, [props.value]);\n\n useEffect(() => {\n if (isStart) {\n setStartOptional(props.optional || false);\n setStartDisabled(props.disabled || false);\n setMinDate(props.minDate || '');\n } else if (isEnd) {\n setEndOptional(props.optional || false);\n setEndDisabled(props.disabled || false);\n setMaxDate(props.maxDate || '');\n }\n }, [props.optional, props.disabled, props.minDate, props.maxDate]);\n\n useEffect(() => {\n if (isStart && startValue !== props.value && isNonNullable(startValue)) {\n props.onValueChange?.(startValue);\n }\n }, [startValue]);\n\n useEffect(() => {\n if (isEnd && endValue !== props.value && isNonNullable(endValue)) {\n props.onValueChange?.(endValue);\n }\n }, [endValue]);\n\n const commonProps: DateRangePickerInputProps = {\n withIcon: true,\n size,\n minDate,\n maxDate,\n ...props,\n onValueChange: (value) => {\n if (isStart) {\n setStartValue(value || '');\n } else if (isEnd) {\n setEndValue(value || '');\n }\n },\n onClick: () => {\n if (props.disabled) {\n return;\n }\n open(props.type);\n },\n onFocus: (e) => {\n open(props.type);\n props.onFocus?.(e);\n },\n onBlur: (e) => {\n props.onBlur?.(e);\n\n if (isMobile) {\n return;\n }\n const nextFocusedElement = e.relatedTarget;\n if (!dateRangePickerRef.current?.contains(nextFocusedElement)) {\n close();\n }\n setFocusInput(null);\n },\n };\n\n switch (props.type) {\n case 'start':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.start}\n aria-label={props['aria-label'] || locale.startDateLabel}\n ref={startRef}\n />\n );\n case 'end':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.end}\n aria-label={props['aria-label'] || locale.endDateLabel}\n ref={endRef}\n />\n );\n }\n});\n\nexport const DateRangePickerStart = forwardRefAndName(\n 'DateRangePickerStart',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"start\" {...props} ref={ref} />\n ),\n);\n\nexport const DateRangePickerEnd = forwardRefAndName(\n 'DateRangePickerEnd',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"end\" {...props} ref={ref} />\n ),\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useContext","useEffect","useImperativeHandle","useLocaleForControl","DateInput","useResponsiveLayout","forwardRefAndName","isNonNullable","DateRangePickerContext","DateRangePickerDataTids","DateRangePickerLocaleHelper","DateRangePickerInput","props","ref","_useContext","minDate","maxDate","startValue","endValue","size","setStartValue","setStartOptional","setStartDisabled","setEndValue","setEndOptional","setEndDisabled","setMinDate","setMaxDate","setFocusInput","open","close","dateRangePickerRef","startRef","endRef","isStart","type","isEnd","locale","_useResponsiveLayout","isMobile","current","value","optional","disabled","onValueChange","commonProps","_extends","withIcon","onClick","onFocus","e","onBlur","_dateRangePickerRef$c","nextFocusedElement","relatedTarget","contains","createElement","start","startDateLabel","end","endDateLabel","DateRangePickerStart","DateRangePickerEnd"],"sources":["DateRangePickerInput.tsx"],"sourcesContent":["import type { Ref } from 'react';\nimport React, { forwardRef, useContext, useEffect, useImperativeHandle } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport type { DateInputProps } from '../DateInput';\nimport { DateInput } from '../DateInput';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport { DateRangePickerDataTids } from './DateRangePicker';\nimport { DateRangePickerLocaleHelper } from './locale';\n\nexport type DateRangePickerInputType = 'start' | 'end';\n\nexport interface DateRangePickerInputProps extends Omit<DateInputProps, 'value'> {\n type: DateRangePickerInputType;\n value?: string | null;\n optional?: boolean;\n}\n\ntype DateRangePickerInputWithoutType = Omit<DateRangePickerInputProps, 'type'>;\n\nconst DateRangePickerInput = forwardRef((props: DateRangePickerInputProps, ref: Ref<DateInput | null>) => {\n const {\n minDate,\n maxDate,\n startValue,\n endValue,\n size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n } = useContext(DateRangePickerContext);\n const isStart = props.type === 'start';\n const isEnd = props.type === 'end';\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const { isMobile } = useResponsiveLayout();\n\n useImperativeHandle<DateInput | null, DateInput | null>(ref, () => (isStart ? startRef.current : endRef.current), []);\n\n useEffect(() => {\n if (isStart && startValue !== props.value) {\n setStartValue(props.value || '');\n } else if (isEnd && endValue !== props.value) {\n setEndValue(props.value || '');\n }\n }, [props.value]);\n\n useEffect(() => {\n if (isStart) {\n setStartOptional(props.optional || false);\n setStartDisabled(props.disabled || false);\n setMinDate(props.minDate || '');\n } else if (isEnd) {\n setEndOptional(props.optional || false);\n setEndDisabled(props.disabled || false);\n setMaxDate(props.maxDate || '');\n }\n }, [props.optional, props.disabled, props.minDate, props.maxDate]);\n\n useEffect(() => {\n if (isStart && startValue !== props.value && isNonNullable(startValue)) {\n props.onValueChange?.(startValue);\n }\n }, [startValue]);\n\n useEffect(() => {\n if (isEnd && endValue !== props.value && isNonNullable(endValue)) {\n props.onValueChange?.(endValue);\n }\n }, [endValue]);\n\n const commonProps: DateRangePickerInputProps = {\n withIcon: true,\n size,\n minDate,\n maxDate,\n ...props,\n onValueChange: (value) => {\n if (isStart) {\n setStartValue(value || '');\n } else if (isEnd) {\n setEndValue(value || '');\n }\n },\n onClick: () => {\n if (props.disabled) {\n return;\n }\n open(props.type);\n },\n onFocus: (e) => {\n open(props.type);\n props.onFocus?.(e);\n },\n onBlur: (e) => {\n props.onBlur?.(e);\n\n if (isMobile) {\n return;\n }\n const nextFocusedElement = e.relatedTarget;\n if (!dateRangePickerRef.current?.contains(nextFocusedElement)) {\n close();\n }\n setFocusInput(null);\n },\n };\n\n switch (props.type) {\n case 'start':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.start}\n aria-label={props['aria-label'] || locale.startDateLabel}\n ref={startRef}\n />\n );\n case 'end':\n return (\n <DateInput\n {...commonProps}\n value={props.value || ''}\n data-tid={props['data-tid'] || DateRangePickerDataTids.end}\n aria-label={props['aria-label'] || locale.endDateLabel}\n ref={endRef}\n />\n );\n }\n});\n\nexport const DateRangePickerStart = forwardRefAndName(\n 'DateRangePickerStart',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"start\" {...props} ref={ref} />\n ),\n);\n\nexport const DateRangePickerEnd = forwardRefAndName(\n 'DateRangePickerEnd',\n (props: DateRangePickerInputWithoutType, ref: Ref<DateInput>) => (\n <DateRangePickerInput type=\"end\" {...props} ref={ref} />\n ),\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeContext","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","corners","id","DropdownDataTids","root","Dropdown","_class","_Dropdown","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_this$props","props","caption","icon","rest","_objectWithoutPropertiesLoose","_excluded","items","Children","map","children","item","createElement","_extends","rootNodeRef","setRootNode","ref","_refSelect","value","_icon","renderValue","element","_select","_inheritsLoose","_proto","prototype","render","_this2","Consumer","theme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator"],"sources":["Dropdown.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ButtonUse } from '../Button';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n corners: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Задает подпись на кнопке. */\n caption: React.ReactNode;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement<any>;\n\n /** Задает ширину выпадающего меню. */\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает длину меню. */\n menuWidth?: number | string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.\n *\n * Используйте кнопку-меню:\n * * когда не хватает места для нескольких кнопок.\n * * когда названия действий очень длинные.\n * * когда действия редко используются или объединены по смыслу.\n *\n * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n private _select: Nullable<DropdownSelectType>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = () => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeContext","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","corners","id","DropdownDataTids","root","Dropdown","_class","_Dropdown","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_this$props","props","caption","icon","rest","_objectWithoutPropertiesLoose","_excluded","items","Children","map","children","item","createElement","_extends","rootNodeRef","setRootNode","ref","_refSelect","value","_icon","renderValue","element","_select","_inheritsLoose","_proto","prototype","render","_this2","Consumer","theme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator"],"sources":["Dropdown.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ButtonUse } from '../Button';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n corners: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Задает подпись на кнопке. */\n caption: React.ReactNode;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Задает ширину выпадающего меню. */\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает длину меню. */\n menuWidth?: number | string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.\n *\n * Используйте кнопку-меню:\n * * когда не хватает места для нескольких кнопок.\n * * когда названия действий очень длинные.\n * * когда действия редко используются или объединены по смыслу.\n *\n * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n private _select: Nullable<DropdownSelectType>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = () => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AriaAttributes, HTMLAttributes } from 'react';
1
+ import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
2
2
  import React from 'react';
3
3
  import { MenuItem } from '../MenuItem';
4
4
  import type { ButtonUse } from '../Button';
@@ -9,7 +9,7 @@ export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria
9
9
  /** Задает подпись на кнопке. */
10
10
  caption: React.ReactNode;
11
11
  /** Добавляет иконку слева от текста кнопки. */
12
- icon?: React.ReactElement<any>;
12
+ icon?: React.ReactElement;
13
13
  /** Задает ширину выпадающего меню. */
14
14
  width?: React.CSSProperties['width'];
15
15
  /** @ignore */
@@ -71,8 +71,8 @@ export declare class Dropdown extends React.Component<DropdownProps> {
71
71
  getRootNode: TGetRootNode;
72
72
  private setRootNode;
73
73
  private theme;
74
- render(): React.JSX.Element;
75
- renderMain: () => React.JSX.Element;
74
+ render(): JSX.Element;
75
+ renderMain: () => JSX.Element;
76
76
  /**
77
77
  * @public
78
78
  */
@@ -31,7 +31,7 @@ export var DropdownMenu = rootNode(_class = (_DropdownMenu = /*#__PURE__*/functi
31
31
  }
32
32
  };
33
33
  _this.refPopupMenu = function (ref) {
34
- return _this.popupMenu = ref;
34
+ _this.popupMenu = ref;
35
35
  };
36
36
  if (!props.caption) {
37
37
  warning(false, 'Prop "caption" is required!!!');
@@ -1 +1 @@
1
- {"version":3,"names":["React","warning","ThemeContext","PopupMenu","isTestEnv","CommonWrapper","rootNode","createPropsGetter","getDropdownMenuTheme","DropdownMenu","_class","_DropdownMenu","_React$Component","props","_this","call","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","_inheritsLoose","_proto","prototype","render","_this2","createElement","Consumer","theme","Provider","value","renderMain","_this$getProps","positions","disableAnimations","_extends","rootNodeRef","setRootNode","id","menuMaxHeight","menuWidth","preventIconsOffset","popupHasPin","header","footer","width","corners","onClose","onOpen","popupMenuId","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["DropdownMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол MenuHeader передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен MenuSeparator.\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Выпадающее меню `DropdownMenu` раскрывается по клику на переданный в `caption` элемент.\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n public static displayName = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption) {\n warning(false, 'Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n id={this.props.id}\n aria-label={this.props['aria-label']}\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n preventIconsOffset={this.props.preventIconsOffset}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n corners={this.props.corners}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","warning","ThemeContext","PopupMenu","isTestEnv","CommonWrapper","rootNode","createPropsGetter","getDropdownMenuTheme","DropdownMenu","_class","_DropdownMenu","_React$Component","props","_this","call","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","_inheritsLoose","_proto","prototype","render","_this2","createElement","Consumer","theme","Provider","value","renderMain","_this$getProps","positions","disableAnimations","_extends","rootNodeRef","setRootNode","id","menuMaxHeight","menuWidth","preventIconsOffset","popupHasPin","header","footer","width","corners","onClose","onOpen","popupMenuId","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["DropdownMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол MenuHeader передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен MenuSeparator.\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Выпадающее меню `DropdownMenu` раскрывается по клику на переданный в `caption` элемент.\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n public static displayName = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption) {\n warning(false, 'Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n id={this.props.id}\n aria-label={this.props['aria-label']}\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n preventIconsOffset={this.props.preventIconsOffset}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n corners={this.props.corners}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => {\n this.popupMenu = ref;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -101,5 +101,5 @@ export interface FileUploaderProps extends _FileUploaderProps, FileUploaderContr
101
101
  *
102
102
  * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.
103
103
  */
104
- export declare const FileUploader: React.MemoExoticComponent<React.ForwardRefExoticComponent<FileUploaderProps & FileUploaderControlProviderProps & React.RefAttributes<FileUploaderRef>>>;
104
+ export declare const FileUploader: React.ForwardRefExoticComponent<FileUploaderProps & FileUploaderControlProviderProps & React.RefAttributes<FileUploaderRef>>;
105
105
  export {};
@@ -17,7 +17,7 @@ import { getDOMRect } from "../../../lib/dom/getDOMRect";
17
17
  import { useFileUploaderSize } from "../../../internal/FileUploaderControl/hooks/useFileUploaderSize";
18
18
  import { FileUploaderFileStatusIcon } from "../../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileStatusIcon";
19
19
  import { FileUploaderFileTypeIcon } from "../../../internal/FileUploaderControl/FileUploaderFile/icons/FileUploaderFileTypeIcon";
20
- import { getJsStyles, getJsRowStyles, getJsTileStyles } from "../../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles";
20
+ import { getJsRowStyles, getJsStyles, getJsTileStyles } from "../../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles";
21
21
  import { LoadingIcon } from "../../../internal/icons2022/LoadingIcon";
22
22
  var splitFileNameAndExtension = function splitFileNameAndExtension(filename) {
23
23
  var lastDotIndex = filename.lastIndexOf('.');
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","useEmotion","useGlobal","useStyles","CommonWrapper","forwardRefAndName","FileUploaderFileStatus","getFileUploaderTypeIcon","formatBytes","TextWidthHelper","truncate","ThemeContext","useKeyListener","isKeyEnter","Hint","Tooltip","getDOMRect","useFileUploaderSize","FileUploaderFileStatusIcon","FileUploaderFileTypeIcon","getJsStyles","getJsRowStyles","getJsTileStyles","LoadingIcon","splitFileNameAndExtension","filename","lastDotIndex","lastIndexOf","name","extension","substring","getTruncatedName","fileNameWidth","fileNameElementWidth","isTileView","charWidth","Math","ceil","length","maxCharsCountInSpan","splitFileName","calcTruncatedName","textHelperRef","fileNameElementRef","_textHelperRef$curren","current","getTextWidth","width","FileUploaderFileDataTids","file","fileTooltip","fileName","fileSize","fileIcon","fileTypeIcon","FileUploaderFile","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","_objectWithoutPropertiesLoose","_excluded","id","originalFile","status","validationResult","_useState","hoveredFile","setHoveredFile","_useState2","focusedByTab","setFocusedByTab","_useState3","truncatedFileName","setTruncatedFileName","theme","globalObject","_useEmotion","cx","keyListener","jsStyles","jsRowStyles","jsTileStyles","isLoading","Loading","jsViewStyles","validationTooltipPositionByView","formattedSize","truncatedName","handleRemove","event","preventDefault","stopPropagation","isValid","message","isError","Error","isWarning","Warning","isInvalid","sizeIconClass","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","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","createElement","type","splitTruncatedFileName","className","root","onMouseEnter","onMouseLeave","pos","render","style","backgroundImage","undefined","text","maxWidth","Fragment","tabIndex","onClick","onFocus","onBlur","onKeyDown","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","useCallback","useContext","useEffect","useMemo","useRef","useState","useEmotion","useGlobal","useStyles","CommonWrapper","forwardRefAndName","FileUploaderFileStatus","getFileUploaderTypeIcon","formatBytes","TextWidthHelper","truncate","ThemeContext","useKeyListener","isKeyEnter","Hint","Tooltip","getDOMRect","useFileUploaderSize","FileUploaderFileStatusIcon","FileUploaderFileTypeIcon","getJsRowStyles","getJsStyles","getJsTileStyles","LoadingIcon","splitFileNameAndExtension","filename","lastDotIndex","lastIndexOf","name","extension","substring","getTruncatedName","fileNameWidth","fileNameElementWidth","isTileView","charWidth","Math","ceil","length","maxCharsCountInSpan","splitFileName","calcTruncatedName","textHelperRef","fileNameElementRef","_textHelperRef$curren","current","getTextWidth","width","FileUploaderFileDataTids","file","fileTooltip","fileName","fileSize","fileIcon","fileTypeIcon","FileUploaderFile","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","_objectWithoutPropertiesLoose","_excluded","id","originalFile","status","validationResult","_useState","hoveredFile","setHoveredFile","_useState2","focusedByTab","setFocusedByTab","_useState3","truncatedFileName","setTruncatedFileName","theme","globalObject","_useEmotion","cx","keyListener","jsStyles","jsRowStyles","jsTileStyles","isLoading","Loading","jsViewStyles","validationTooltipPositionByView","formattedSize","truncatedName","handleRemove","event","preventDefault","stopPropagation","isValid","message","isError","Error","isWarning","Warning","isInvalid","sizeIconClass","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","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","createElement","type","splitTruncatedFileName","className","root","onMouseEnter","onMouseLeave","pos","render","style","backgroundImage","undefined","text","maxWidth","Fragment","tabIndex","onClick","onFocus","onBlur","onKeyDown","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":";AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;;AAE5F,SAASC,UAAU,EAAEC,SAAS,EAAEC,SAAS,QAAQ,6BAA6B;AAC9E,SAA2BC,aAAa,QAAQ,8BAA8B;;AAE9E,SAASC,iBAAiB,QAAQ,6BAA6B;;;;;;AAM/D,SAASC,sBAAsB,EAAEC,uBAAuB,QAAQ,8CAA8C;AAC9G,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,eAAe,QAAQ,gDAAgD;AAChF,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,UAAU,QAAQ,uCAAuC;;AAElE,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,mBAAmB,QAAQ,8DAA8D;;AAElG,SAASC,0BAA0B,QAAQ,sFAAsF;AACjI,SAASC,wBAAwB,QAAQ,oFAAoF;AAC7H;EACEC,cAAc;EACdC,WAAW;EACXC,eAAe;AACV,6EAA6E;AACpF,SAASC,WAAW,QAAQ,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuClE,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,QAAgB,EAA0C;EAC3F,IAAMC,YAAY,GAAGD,QAAQ,CAACE,WAAW,CAAC,GAAG,CAAC;EAC9C,IAAID,YAAY,KAAK,CAAC,CAAC,EAAE;IACvB,OAAO,EAAEE,IAAI,EAAEH,QAAQ,EAAEI,SAAS,EAAE,EAAE,CAAC,CAAC;EAC1C;EACA,IAAMD,IAAI,GAAGH,QAAQ,CAACK,SAAS,CAAC,CAAC,EAAEJ,YAAY,CAAC;EAChD,IAAMG,SAAS,GAAGJ,QAAQ,CAACK,SAAS,CAACJ,YAAY,GAAG,CAAC,CAAC;EACtD,OAAO,EAAEE,IAAI,EAAJA,IAAI,EAAEC,SAAS,EAATA,SAAS,CAAC,CAAC;AAC5B,CAAC;;AAED,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,aAAqB,EAAEC,oBAA4B,EAAEL,IAAY,EAAEM,UAAU,EAAa,KAAvBA,UAAU,cAAVA,UAAU,GAAG,KAAK;EAC7G,IAAI,CAACF,aAAa,IAAI,CAACC,oBAAoB,EAAE;IAC3C,OAAO,IAAI;EACb;;EAEA,IAAID,aAAa,IAAIC,oBAAoB,EAAE;IACzC,OAAOL,IAAI;EACb;;EAEA,IAAMO,SAAS,GAAGC,IAAI,CAACC,IAAI,CAACL,aAAa,GAAGJ,IAAI,CAACU,MAAM,CAAC;EACxD,IAAMC,mBAAmB,GAAGH,IAAI,CAACC,IAAI,CAACJ,oBAAoB,GAAGE,SAAS,CAAC;;EAEvE,IAAID,UAAU,EAAE;IACd,IAAMM,aAAa,GAAGhB,yBAAyB,CAACI,IAAI,CAAC;IACrD,OAAUlB,QAAQ,CAAC8B,aAAa,CAACZ,IAAI,EAAEW,mBAAmB,CAAC,SAAIC,aAAa,CAACX,SAAS;EACxF;;EAEA,OAAOnB,QAAQ,CAACkB,IAAI,EAAEW,mBAAmB,CAAC;AAC5C,CAAC;;AAED,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA;AACrBC,aAAsD;AACtDC,kBAA2D;AAC3Df,IAAY;AACZM,UAAU;AACP,KAAAU,qBAAA,KADHV,UAAU,cAAVA,UAAU,GAAG,KAAK;EAElB,IAAMF,aAAa,GAAG,EAAAY,qBAAA,GAAAF,aAAa,CAACG,OAAO,qBAArBD,qBAAA,CAAuBE,YAAY,CAAC,CAAC,KAAI,CAAC;EAChE,IAAMb,oBAAoB,GAAGC,UAAU;EACnC;EACAlB,UAAU,CAAC2B,kBAAkB,CAACE,OAAO,CAAC,CAACE,KAAK,GAAG,GAAG;EAClD/B,UAAU,CAAC2B,kBAAkB,CAACE,OAAO,CAAC,CAACE,KAAK;;EAEhD,OAAOhB,gBAAgB,CAACC,aAAa,EAAEC,oBAAoB,EAAEL,IAAI,EAAEM,UAAU,CAAC;AAChF,CAAC;;AAED,OAAO,IAAMc,wBAAwB,GAAG;EACtCC,IAAI,EAAE,oBAAoB;EAC1BC,WAAW,EAAE,2BAA2B;EACxCC,QAAQ,EAAE,wBAAwB;EAClCC,QAAQ,EAAE,wBAAwB;EAClCC,QAAQ,EAAE,wBAAwB;EAClCC,YAAY,EAAE;AAChB,CAAU;;AAEV;AACA;AACA;AACA,OAAO,IAAMC,gBAAgB,GAAGlD,iBAAiB;EAC/C,kBAAkB;EAClB,UAACmD,KAAK,EAAEC,GAAG,EAAK,KAAAC,GAAA,EAAAC,IAAA,EAAAC,IAAA;IACd;MACEX,IAAI;;;;;;;;;;;;;;;;;;MAkBFO,KAAK,CAlBPP,IAAI,CAAAY,eAAA,GAkBFL,KAAK,CAjBPM,QAAQ,CAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA,CAChBE,UAAU,GAgBRP,KAAK,CAhBPO,UAAU,CACVC,KAAK,GAeHR,KAAK,CAfPQ,KAAK,CACLC,OAAO,GAcLT,KAAK,CAdPS,OAAO,CACPC,QAAQ,GAaNV,KAAK,CAbPU,QAAQ,CAAAC,eAAA,GAaNX,KAAK,CAZPY,QAAQ,CAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA,CAAAE,cAAA,GAYdb,KAAK,CAXPc,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA,CAAAE,cAAA,GAWbf,KAAK,CAVPgB,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA,CACfE,IAAI,GASFjB,KAAK,CATPiB,IAAI,CAAAC,WAAA,GASFlB,KAAK,CARPmB,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA,CACZE,qBAAqB,GAOnBpB,KAAK,CAPPoB,qBAAqB,CACrBC,yBAAyB,GAMvBrB,KAAK,CANPqB,yBAAyB,CACzBC,eAAe,GAKbtB,KAAK,CALPsB,eAAe,CACfC,QAAQ,GAINvB,KAAK,CAJPuB,QAAQ,CAAAC,qBAAA,GAINxB,KAAK,CAHPyB,gBAAgB,CAAEC,gBAAgB,GAAAF,qBAAA,cAAG,IAAI,GAAAA,qBAAA,CACzC1B,YAAY,GAEVE,KAAK,CAFPF,YAAY,CACT6B,IAAI,GAAAC,6BAAA,CACL5B,KAAK,EAAA6B,SAAA;IACT,IAAQC,EAAE,GAA6CrC,IAAI,CAAnDqC,EAAE,CAAEC,YAAY,GAA+BtC,IAAI,CAA/CsC,YAAY,CAAEC,MAAM,GAAuBvC,IAAI,CAAjCuC,MAAM,CAAEC,gBAAgB,GAAKxC,IAAI,CAAzBwC,gBAAgB;IAClD,IAAQ7D,IAAI,GAAqB2D,YAAY,CAArC3D,IAAI,CAAQwB,QAAQ,GAAKmC,YAAY,CAA/Bd,IAAI;;IAElB,IAAAiB,SAAA,GAAsC1F,QAAQ,CAAUsE,OAAO,IAAI,KAAK,CAAC,CAAlEqB,WAAW,GAAAD,SAAA,IAAEE,cAAc,GAAAF,SAAA;IAClC,IAAAG,UAAA,GAAwC7F,QAAQ,CAACwE,OAAO,IAAI,KAAK,CAAC,CAA3DsB,YAAY,GAAAD,UAAA,IAAEE,eAAe,GAAAF,UAAA;IACpC,IAAAG,UAAA,GAAkDhG,QAAQ,CAAmB,IAAI,CAAC,CAA3EiG,iBAAiB,GAAAD,UAAA,IAAEE,oBAAoB,GAAAF,UAAA;;IAE9C,IAAMtD,aAAa,GAAG3C,MAAM,CAAkB,IAAI,CAAC;IACnD,IAAM4C,kBAAkB,GAAG5C,MAAM,CAAkB,IAAI,CAAC;;IAExD,IAAMoG,KAAK,GAAGvG,UAAU,CAACe,YAAY,CAAC;IACtC,IAAMyF,YAAY,GAAGlG,SAAS,CAAC,CAAC;;IAEhC,IAAAmG,WAAA,GAAepG,UAAU,CAAC,CAAC,CAAnBqG,EAAE,GAAAD,WAAA,CAAFC,EAAE;IACV,IAAMC,WAAW,GAAG3F,cAAc,CAAC,CAAC;IACpC,IAAM4F,QAAQ,GAAGrG,SAAS,CAACkB,WAAW,CAAC;IACvC,IAAMoF,WAAW,GAAGtG,SAAS,CAACiB,cAAc,CAAC;IAC7C,IAAMsF,YAAY,GAAGvG,SAAS,CAACmB,eAAe,CAAC;;IAE/C,IAAMqF,SAAS,GAAGnB,MAAM,KAAKlF,sBAAsB,CAACsG,OAAO;IAC3D,IAAM1E,UAAU,GAAGyC,IAAI,KAAK,MAAM;IAClC,IAAMkC,YAAY,GAAG3E,UAAU,GAAGwE,YAAY,GAAGD,WAAW;IAC5D,IAAMK,+BAA+B,GAAGjC,yBAAyB,KAAK3C,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;;IAE7G,IAAM6E,aAAa,GAAGjH,OAAO,CAAC,oBAAMU,WAAW,CAAC4C,QAAQ,EAAE,CAAC,CAAC,IAAE,CAACA,QAAQ,CAAC,CAAC;;IAEzEvD,SAAS,CAAC,YAAM;MACd,IAAMmH,aAAa,GAAGvE,iBAAiB,CAACC,aAAa,EAAEC,kBAAkB,EAAEf,IAAI,EAAEM,UAAU,CAAC;;MAE5FgE,oBAAoB,CAACc,aAAa,CAAC;IACrC,CAAC,CAAC;;IAEF,IAAMC,YAAY,GAAGtH,WAAW;MAC9B,UAACuH,KAAoC,EAAK;QACxCA,KAAK,CAACC,cAAc,CAAC,CAAC;QACtBD,KAAK,CAACE,eAAe,CAAC,CAAC;QACvBrC,QAAQ,CAACO,EAAE,CAAC;MACd,CAAC;MACD,CAACA,EAAE,EAAEP,QAAQ;IACf,CAAC;;IAED,IAAQsC,OAAO,GAAc5B,gBAAgB,CAArC4B,OAAO,CAAEC,OAAO,GAAK7B,gBAAgB,CAA5B6B,OAAO;;IAExB,IAAMC,OAAO,GAAGtE,IAAI,CAACuC,MAAM,KAAKlF,sBAAsB,CAACkH,KAAK,IAAIxD,KAAK;IACrE,IAAMyD,SAAS,GAAGxE,IAAI,CAACuC,MAAM,KAAKlF,sBAAsB,CAACoH,OAAO,IAAIzD,OAAO;IAC3E,IAAM0D,SAAS,GAAGJ,OAAO,IAAI,CAACF,OAAO;;IAErC,IAAMO,aAAa,GAAG3G,mBAAmB,CAACwD,IAAI,EAAE;MAC9CoD,KAAK,EAAEhB,YAAY,CAACiB,SAAS,CAAC3B,KAAK,CAAC;MACpC4B,MAAM,EAAElB,YAAY,CAACmB,UAAU,CAAC7B,KAAK,CAAC;MACtC8B,KAAK,EAAEpB,YAAY,CAACqB,SAAS,CAAC/B,KAAK;IACrC,CAAC,CAAC;;IAEF,IAAMgC,oBAAoB,GAAGxI,WAAW,CAAC,YAAiB;MACxD,OAAO,CAAC0H,OAAO,IAAI,CAACrD,KAAK,IAAIsD,OAAO,GAAGA,OAAO,GAAG,IAAI;IACvD,CAAC,EAAE,CAACD,OAAO,EAAErD,KAAK,EAAEsD,OAAO,CAAC,CAAC;;IAE7B,IAAMc,kBAAkB,GAAGnH,mBAAmB,CAACwD,IAAI,EAAE;MACnDoD,KAAK,EAAErB,QAAQ,CAAC6B,YAAY,CAAClC,KAAK,CAAC;MACnC4B,MAAM,EAAEvB,QAAQ,CAAC8B,aAAa,CAACnC,KAAK,CAAC;MACrC8B,KAAK,EAAEzB,QAAQ,CAAC+B,YAAY,CAACpC,KAAK;IACpC,CAAC,CAAC;;IAEF,IAAMqC,sBAAsB,GAAGvH,mBAAmB,CAACwD,IAAI,EAAE;MACvDoD,KAAK,EAAEhB,YAAY,CAACwB,YAAY,CAAClC,KAAK,CAAC;MACvC4B,MAAM,EAAElB,YAAY,CAACyB,aAAa,CAACnC,KAAK,CAAC;MACzC8B,KAAK,EAAEpB,YAAY,CAAC0B,YAAY,CAACpC,KAAK;IACxC,CAAC,CAAC;;IAEF,IAAMsC,uBAAuB,GAAGnC,EAAE,EAAA5C,GAAA,OAAAA,GAAA;IAC/B8C,QAAQ,CAACkC,qBAAqB,CAACvC,KAAK,CAAC,IAAGsB,SAAS,EAAA/D,GAAA;IACjD8C,QAAQ,CAACmC,mBAAmB,CAACxC,KAAK,CAAC,IAAGoB,OAAO,EAAA7D,GAAA;IAC/C,CAAC;;IAEF,IAAMkF,iBAAiB,GAAGtC,EAAE,CAACE,QAAQ,CAACqC,OAAO,CAAC,CAAC,EAAEhC,YAAY,CAACgC,OAAO,CAAC,CAAC,CAAC;IACxE,IAAMC,kBAAkB,GAAGxC,EAAE,CAACO,YAAY,CAACjF,IAAI,CAAC,CAAC,EAAEM,UAAU,IAAI,CAACkC,QAAQ,IAAIqE,uBAAuB,CAAC;;IAEtG,IAAMM,gBAAgB,GAAGpJ,WAAW,CAAC,YAAM;MACzCiG,cAAc,CAAC,IAAI,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAMoD,gBAAgB,GAAGrJ,WAAW,CAAC,YAAM;MACzCiG,cAAc,CAAC,KAAK,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAMqD,WAAW,GAAGtJ,WAAW,CAAC,YAAM;MACpC;MACA;MACAyG,YAAY,CAAC8C,qBAAqB,YAAlC9C,YAAY,CAAC8C,qBAAqB,CAAG,YAAM;QACzC,IAAI3C,WAAW,CAAC4C,YAAY,EAAE;UAC5BpD,eAAe,CAAC,IAAI,CAAC;QACvB;MACF,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAMqD,UAAU,GAAGzJ,WAAW,CAAC,YAAM;MACnCoG,eAAe,CAAC,KAAK,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAMsD,iBAAiB,GAAG1J,WAAW;MACnC,UAAC2J,CAAmC,EAAK;QACvC,IAAIzI,UAAU,CAACyI,CAAC,CAAC,EAAE;UACjBvE,QAAQ,CAACO,EAAE,CAAC;QACd;MACF,CAAC;MACD,CAACP,QAAQ,EAAEO,EAAE;IACf,CAAC;;IAED,IAAMiE,cAAc,GAAGjD,EAAE,CAACE,QAAQ,CAACgD,IAAI,CAACrD,KAAK,CAAC,GAAAxC,IAAA,OAAAA,IAAA;IAC3CiE,aAAa,IAAG,IAAI,EAAAjE,IAAA;IACpB+C,YAAY,CAAC+C,UAAU,CAACtD,KAAK,CAAC,IAAGjE,UAAU,EAAAyB,IAAA;IAC3C+C,YAAY,CAACgD,cAAc,CAAC,CAAC,IAAGxH,UAAU,IAAI,CAACkC,QAAQ,KAAKE,OAAO,IAAIqB,WAAW,IAAInB,OAAO,IAAIsB,YAAY,CAAC,EAAAnC,IAAA;IAChH,CAAC;;IAEF,IAAMgG,aAAa,GAAG1I,mBAAmB,CAACwD,IAAI,EAAE;MAC9CoD,KAAK,EAAErB,QAAQ,CAACoD,SAAS,CAACzD,KAAK,CAAC;MAChC4B,MAAM,EAAEvB,QAAQ,CAACqD,UAAU,CAAC1D,KAAK,CAAC;MAClC8B,KAAK,EAAEzB,QAAQ,CAACsD,SAAS,CAAC3D,KAAK;IACjC,CAAC,CAAC;;IAEF,IAAM4D,cAAc,GAAGzD,EAAE;MACvBE,QAAQ,CAAC/B,IAAI,CAAC0B,KAAK,CAAC;MACpBwD,aAAa;MACb9C,YAAY,CAACpC,IAAI,CAAC0B,KAAK,CAAC;MACxBjE,UAAU,IAAIkC,QAAQ,IAAIsC,YAAY,CAACsD,YAAY,CAAC7D,KAAK;IAC3D,CAAC;;IAED,IAAM8D,qBAAqB,GAAGhJ,mBAAmB,CAACwD,IAAI,EAAE;MACtDoD,KAAK,EAAEhB,YAAY,CAACqD,iBAAiB,CAAC/D,KAAK,CAAC;MAC5C4B,MAAM,EAAElB,YAAY,CAACsD,kBAAkB,CAAChE,KAAK,CAAC;MAC9C8B,KAAK,EAAEpB,YAAY,CAACuD,iBAAiB,CAACjE,KAAK;IAC7C,CAAC,CAAC;;IAEF,IAAMkE,WAAW,GAAGpE,iBAAiB,KAAKrE,IAAI;;IAE9C,IAAM0I,qBAAqB,GAAGhE,EAAE;MAC9B2D,qBAAqB;MACrB7F,QAAQ,IAAIoC,QAAQ,CAAC+D,uBAAuB,CAACpE,KAAK,CAAC;MACnDjE,UAAU,KAAA0B,IAAA,OAAAA,IAAA;MACP8C,YAAY,CAACpD,YAAY,CAAC6C,KAAK,CAAC,IAAG,IAAI,EAAAvC,IAAA;MACvC8C,YAAY,CAAC8D,mBAAmB,CAAC,CAAC,IAAG,CAAC,CAACzG,UAAU,EAAAH,IAAA;MACjD8C,YAAY,CAAC+D,oBAAoB,CAACtE,KAAK,CAAC,IAAG/B,QAAQ,EAAAR,IAAA;MACnD8C,YAAY,CAACgE,mBAAmB,CAACvE,KAAK,CAAC,IAAGsB,SAAS,EAAA7D,IAAA;MACnD8C,YAAY,CAACiE,iBAAiB,CAACxE,KAAK,CAAC,IAAGoB,OAAO,EAAA3D,IAAA,CACjD;;MACDM,QAAQ,IAAIsC,QAAQ,CAACoE,oBAAoB,CAAC;IAC5C,CAAC;;IAED,IAAMC,mBAAmB,GAAGvE,EAAE;MAC5B8B,kBAAkB;MAClBI,sBAAsB;MACtBhC,QAAQ,CAACsE,SAAS,CAAC,CAAC;MACpB1G,QAAQ,IAAIyC,YAAY,CAACzC,QAAQ,CAAC+B,KAAK,CAAC;MACxCU,YAAY,CAACiE,SAAS,CAAC;IACzB,CAAC;;IAED,IAAMC,QAA8B,GAAGxK,uBAAuB;MAC5D0C,IAAI,CAACsC,YAAY;MACjBgC,OAAO;MACPE,SAAS,IAAI,CAAC,CAAC3C;IACjB,CAAC;IACD,IAAM0E,IAAI;IACRtH,UAAU,IAAIyE,SAAS;IACrBjH,KAAA,CAAAsL,aAAA,CAACzJ,WAAW,IAACkD,IAAI,EAAEA,IAAK,EAAE,CAAC;;IAE3BnB,YAAY,WAAZA,YAAY,gBAAI5D,KAAA,CAAAsL,aAAA,CAAC7J,wBAAwB,IAAC8J,IAAI,EAAEF,QAAS,EAACtG,IAAI,EAAEA,IAAK,EAACE,IAAI,EAAEA,IAAK,EAAE,CACpF;;;IAEH,IAAMuG,sBAAsB,GAAGjF,iBAAiB,IAAIzE,yBAAyB,CAACyE,iBAAiB,CAAC;;IAEhG;MACEvG,KAAA,CAAAsL,aAAA,CAAC5K,aAAa,EAAK+E,IAAI;MACrBzF,KAAA,CAAAsL,aAAA;QACE,YAAUhI,wBAAwB,CAACC,IAAK;QACxCkI,SAAS,EAAE3E,QAAQ,CAAC4E,IAAI,CAAC,CAAE;QAC3BC,YAAY,EAAEtC,gBAAiB;QAC/BuC,YAAY,EAAEtC,gBAAiB;QAC/BvF,GAAG,EAAEA,GAAI;;MAET/D,KAAA,CAAAsL,aAAA,CAACjK,OAAO;QACN,YAAUiC,wBAAwB,CAACE,WAAY;QAC/CqI,GAAG,EAAEzE,+BAAgC;QACrC0E,MAAM,EAAE,SAAAA,OAAA,UAAO5G,qBAAqB,IAAI1C,UAAU,GAAGiG,oBAAoB,CAAC,CAAC,GAAG,IAAI,EAAE;;MAEpFzI,KAAA,CAAAsL,aAAA,UAAKG,SAAS,EAAEvC,iBAAkB;;MAE9BlJ,KAAA,CAAAsL,aAAA;QACE,YAAUhI,wBAAwB,CAACM,YAAa;QAChD6H,SAAS,EAAEb,qBAAsB;QACjCmB,KAAK,EAAE1H,UAAU,GAAG,EAAE2H,eAAe,WAAS3H,UAAU,MAAG,CAAC,CAAC,GAAG4H,SAAU;;MAEzE,CAAC,CAACzJ,UAAU,IAAI,CAAC6B,UAAU,KAAKyF;MAC9B,CAAC;;MAER9J,KAAA,CAAAsL,aAAA,UAAKG,SAAS,EAAEN,mBAAoB;MAClCnL,KAAA,CAAAsL,aAAA,CAACvK,eAAe,IAACgD,GAAG,EAAEf,aAAc,EAACkJ,IAAI,EAAEhK,IAAK,EAAE,CAAC;MACnDlC,KAAA,CAAAsL,aAAA,CAAClK,IAAI,IAAC+K,QAAQ,EAAE,MAAO,EAACD,IAAI,EAAE1G,gBAAgB,IAAImF,WAAW,GAAGzI,IAAI,GAAG,IAAK;MAC1ElC,KAAA,CAAAsL,aAAA;QACE,YAAUhI,wBAAwB,CAACG,QAAS;QAC5CM,GAAG,EAAEd,kBAAmB;QACxBwI,SAAS,EAAErC,kBAAmB;;MAE7BoC,sBAAsB;MACrBxL,KAAA,CAAAsL,aAAA,CAAAtL,KAAA,CAAAoM,QAAA;MACGZ,sBAAsB,CAACtJ,IAAI;MAC3BsJ,sBAAsB,CAACrJ,SAAS,iBAAInC,KAAA,CAAAsL,aAAA,eAAM,GAAC,EAACE,sBAAsB,CAACrJ,SAAgB;MACpF;;MAEA;MACF,CAAC;MACN,EAAE+C,qBAAqB,IAAI1C,UAAU,CAAC;MACrCxC,KAAA,CAAAsL,aAAA,WAAMG,SAAS,EAAE1C,uBAAwB,IAAEN,oBAAoB,CAAC,CAAQ;;MAEvE,CAAC;MACLrE,QAAQ,IAAIiD,aAAa;MACxBrH,KAAA,CAAAsL,aAAA,WAAM,YAAUhI,wBAAwB,CAACI,QAAS,EAAC+H,SAAS,EAAEpB,cAAe;MAC1EhD;MACG,CACP;;MACDrH,KAAA,CAAAsL,aAAA;QACEG,SAAS,EAAE5B,cAAe;QAC1B,YAAUvG,wBAAwB,CAACK,QAAS;QAC5C0I,QAAQ,EAAE,CAAE;QACZC,OAAO,EAAE/E,YAAa;QACtBgF,OAAO,EAAEhD,WAAY;QACrBiD,MAAM,EAAE9C,UAAW;QACnB+C,SAAS,EAAE9C,iBAAkB;;MAE7B3J,KAAA,CAAAsL,aAAA,CAAC9J,0BAA0B;QACzBgB,UAAU,EAAEA,UAAW;QACvBsD,MAAM,EAAEA,MAAO;QACfpB,QAAQ,EAAEA,QAAS;QACnBE,OAAO,EAAEA,OAAO,IAAIqB,WAAY;QAChCG,YAAY,EAAEtB,OAAO,IAAIsB,YAAa;QACtC6B,SAAS,EAAEA,SAAU;QACrByE,aAAa,EAAE7E,OAAO,IAAIE,SAAU;QACpChD,IAAI,EAAEA,IAAK;MACZ;MACE;MACF;MACE;MACN;MACQ,CAAC;;EAEpB;AACF,CAAC","ignoreList":[]}
@@ -1,14 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["expectedResponseTime", "delayBeforeHide", "status", "disableAnimations"];
4
- import React, { useContext, useRef } from 'react';
4
+ import React, { forwardRef, useContext, useRef } from 'react';
5
5
  import { useEmotion, useStyles } from "../../../lib/renderEnvironment";
6
6
  import { ZIndex } from "../../../internal/ZIndex";
7
7
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
8
8
  import { CommonWrapper } from "../../../internal/CommonWrapper";
9
9
  import { getAnimations, getStyles } from "../GlobalLoaderView.styles";
10
10
  import { useGlobalLoaderPosition, useGlobalLoaderWidth } from "../useParams";
11
- export var GlobalLoaderView = function GlobalLoaderView(_ref) {
11
+ export var GlobalLoaderView = /*#__PURE__*/forwardRef(function (_ref, externalRef) {
12
12
  var expectedResponseTime = _ref.expectedResponseTime,
13
13
  delayBeforeHide = _ref.delayBeforeHide,
14
14
  status = _ref.status,
@@ -57,7 +57,8 @@ export var GlobalLoaderView = function GlobalLoaderView(_ref) {
57
57
  };
58
58
  return /*#__PURE__*/(
59
59
  React.createElement(CommonWrapper, _extends({}, rest, {
60
- "data-status": status
60
+ "data-status": status,
61
+ ref: externalRef
61
62
  }), /*#__PURE__*/
62
63
  React.createElement(ZIndex, {
63
64
  priority: "GlobalLoader",
@@ -68,4 +69,4 @@ export var GlobalLoaderView = function GlobalLoaderView(_ref) {
68
69
  className: cx(styles.inner(theme), getAnimationClass(status))
69
70
  })))
70
71
  );
71
- };
72
+ });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useRef","useEmotion","useStyles","ZIndex","ThemeContext","CommonWrapper","getAnimations","getStyles","useGlobalLoaderPosition","useGlobalLoaderWidth","GlobalLoaderView","_ref","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","_objectWithoutPropertiesLoose","_excluded","ref","theme","_useEmotion","cx","styles","animations","_useGlobalLoaderWidth","width","startWidth","fullWidth","_useGlobalLoaderPosit","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","createElement","_extends","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","forwardRef","useContext","useRef","useEmotion","useStyles","ZIndex","ThemeContext","CommonWrapper","getAnimations","getStyles","useGlobalLoaderPosition","useGlobalLoaderWidth","GlobalLoaderView","_ref","externalRef","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","_objectWithoutPropertiesLoose","_excluded","ref","theme","_useEmotion","cx","styles","animations","_useGlobalLoaderWidth","width","startWidth","fullWidth","_useGlobalLoaderPosit","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","createElement","_extends","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":"yPAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;;AAE7D,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,aAAa,EAAEC,SAAS,QAAQ,2BAA2B;AACpE,SAASC,uBAAuB,EAAEC,oBAAoB,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;AAqB3E,OAAO,IAAMC,gBAAgB,gBAAGZ,UAAU;EACxC,UAAAa,IAAA;;EAEEC,WAAkD;EAC/C,KAFDC,oBAAoB,GAAAF,IAAA,CAApBE,oBAAoB,CAAEC,eAAe,GAAAH,IAAA,CAAfG,eAAe,CAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM,CAAEC,iBAAiB,GAAAL,IAAA,CAAjBK,iBAAiB,CAAKC,IAAI,GAAAC,6BAAA,CAAAP,IAAA,EAAAQ,SAAA;IAG3E,IAAMC,GAAG,GAAGpB,MAAM,CAAiC,IAAI,CAAC;IACxD,IAAMqB,KAAK,GAAGtB,UAAU,CAACK,YAAY,CAAC;IACtC,IAAAkB,WAAA,GAAerB,UAAU,CAAC,CAAC,CAAnBsB,EAAE,GAAAD,WAAA,CAAFC,EAAE;IACV,IAAMC,MAAM,GAAGtB,SAAS,CAACK,SAAS,CAAC;IACnC,IAAMkB,UAAU,GAAGvB,SAAS,CAACI,aAAa,CAAC;IAC3C,IAAAoB,qBAAA,GAAyCjB,oBAAoB,CAACM,MAAM,EAAEK,GAAG,CAAC,CAAlEO,KAAK,GAAAD,qBAAA,CAALC,KAAK,CAAEC,UAAU,GAAAF,qBAAA,CAAVE,UAAU,CAAEC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IACpC,IAAAC,qBAAA,GAAiBtB,uBAAuB,CAACY,GAAG,CAAC,CAArCW,IAAI,GAAAD,qBAAA,CAAJC,IAAI;;IAEZ,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIjB,MAAuC,EAAK;MACrE,IAAI,CAACC,iBAAiB,EAAE;QACtB,QAAQD,MAAM;UACZ,KAAK,SAAS;YACZ,OAAOU,UAAU,CAACQ,gBAAgB,CAACnB,eAAe,EAAEa,KAAK,EAAEI,IAAI,CAAC;UAClE,KAAK,QAAQ;YACX,IAAIH,UAAU,GAAGC,SAAS,GAAG,GAAG,EAAE;cAChC,OAAOJ,UAAU,CAACS,eAAe,CAACb,KAAK,EAAEO,UAAU,EAAEf,oBAAoB,EAAEc,KAAK,EAAEI,IAAI,CAAC;YACzF;YACA,OAAON,UAAU,CAACU,mBAAmB,CAACd,KAAK,EAAEO,UAAU,EAAED,KAAK,EAAEI,IAAI,CAAC;UACvE,KAAK,OAAO;YACV,OAAON,UAAU,CAACW,cAAc,CAACf,KAAK,CAAC;UACzC,KAAK,UAAU;YACb,OAAOI,UAAU,CAACY,iBAAiB,CAAChB,KAAK,EAAER,oBAAoB,CAAC;QACpE;MACF;;MAEA,IAAIG,iBAAiB,EAAE;QACrB,QAAQD,MAAM;UACZ,KAAK,SAAS;YACZ,OAAOS,MAAM,CAACc,uBAAuB,CAAC,CAAC;UACzC,KAAK,QAAQ;YACX,OAAOb,UAAU,CAACc,sBAAsB,CAACX,UAAU,CAAC;UACtD,KAAK,OAAO;YACV,OAAOJ,MAAM,CAACgB,qBAAqB,CAAC,CAAC;UACvC,KAAK,UAAU;YACb,OAAOhB,MAAM,CAACiB,wBAAwB,CAAC,CAAC;QAC5C;MACF;IACF,CAAC;;IAED;MACE5C,KAAA,CAAA6C,aAAA,CAACrC,aAAa,EAAAsC,QAAA,KAAK1B,IAAI,IAAE,eAAaF,MAAO,EAACK,GAAG,EAAER,WAAY;MAC7Df,KAAA,CAAA6C,aAAA,CAACvC,MAAM,IAACyC,QAAQ,EAAC,cAAc,EAACC,SAAS,EAAErB,MAAM,CAACsB,KAAK,CAACzB,KAAK,CAAE;MAC7DxB,KAAA,CAAA6C,aAAA,UAAKtB,GAAG,EAAEA,GAAI,EAACyB,SAAS,EAAEtB,EAAE,CAACC,MAAM,CAACuB,KAAK,CAAC1B,KAAK,CAAC,EAAEW,iBAAiB,CAACjB,MAAM,CAAC,CAAE,EAAE;MACzE;MACK,CAAC;;EAEpB;AACF,CAAC","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>>>;