@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","Transition","warning","getDOMRect","LayoutEvents","ZIndex","RenderContainer","getRandomID","isFunction","isNonNullable","isNullable","isRefableElement","ThemeContext","isTestEnv","CommonWrapper","responsiveLayout","MobilePopup","getRootNode","rootNode","isInstanceWithAnchorElement","createPropsGetter","isInstanceOf","mergeRefs","getVisualStateDataAttributes","withRenderEnvironment","PopupPin","PopupHelper","getStyles","TRANSITION_TIMEOUT","enter","exit","PopupNonPinnablePositions","PopupPinnablePositions","PopupPositions","concat","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","isFullyVisible","PopupDataTids","root","content","contentInner","popupPin","PopupIds","Popup","_class","_Popup","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","createRef","hasAnchorElementListeners","rootId","anchorElement","absoluteParent","renderInPortal","anchor","ref","createElement","isMobileLayout","withoutMobile","renderMobile","renderContent","renderWithoutPortal","EmptyWrapper","updateAbsoluteElement","className","styles","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","replace","percent","parseFloat","children","backgroundColor","_this$getProps","minWidth","theme","refPopupContentElement","style","prepareDataVisualState","_this$state$location","_getVisualStateDataAt","attrName","resetLocation","cancelDelayedUpdateLocation","setState","element","lastPopupContentElement","handleLayoutEvent","updateLocation","popupContentElement","getLocation","onPositionChange","locationEquals","getRelativeShift","_this2","disablePortal","rect","getElementAbsoluteRect","_inheritsLoose","_proto","prototype","componentDidMount","layoutEventsToken","addListener","globalObject","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","_this3","emotion","Consumer","renderMain","renderChildren","rootNodeRef","setRootNode","withoutRenderContainer","onCloseRequest","mobileOnCloseRequest","_anchor","useWrapper","Element","isValidElement","anchorWithRef","cloneElement","canGetAnchorNode","renderRef","renderAnchor","addEventListener","removeEventListener","_this4","_this$props","maxWidth","_this$getProps2","hasShadow","disableAnimations","ignoreHover","relativeShift","_PopupHelper$getPosit","getPositionObject","direction","rootStyle","timeout","appear","Boolean","mountOnEnter","unmountOnExit","onExited","nodeRef","_this4$props$id","_extends2","_ref","_extends","id","priority","cx","popup","shadow","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","_this$props2","pinSize","_this$getProps3","hasPin","popupElement","popupPosition","size","parseInt","popupPinSize","offset","getPinOffset","align","popupBackground","_this$globalObject$re","_this$globalObject","requestAnimationFrame","_this$globalObject$ca","_this$globalObject2","cancelAnimationFrame","x","y","reorderPropsPositionsWithPriorityPos","positions","pos_","pos","index","findIndex","startsWith","join","slice","_this$getProps4","tryPreserveFirstRenderedPosition","anchorRect","popupRect","getCoordinates","canBecomeVisible","canBecomeFullyVisible","_iterator","_createForOfIteratorHelperLoose","_step","done","value","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","defaultCoordinates","getHorizontalPosition","getVerticalPosition","pinOffset","defaultPinOffset","popupPinOffsetY","popupPinOffsetX","defaultHorizontalPosition","defaultVerticalPosition","Component","__KONTUR_REACT_UI__","displayName","priorities","defaultRootNode","_React$Component2","_proto2"],"sources":["Popup.tsx"],"sourcesContent":["import type { HTMLAttributes, LegacyRef } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Priority } from '../ZIndex';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport type { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { getRandomID, isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { mergeRefs } from '../../lib/mergeRefs';\nimport { getVisualStateDataAttributes } from '../CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { PopupPin } from './PopupPin';\nimport type { Offset, PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { getStyles } from './Popup.styles';\n\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupNonPinnablePositions = ['middle center', 'middle left', 'middle right'];\n\nexport const PopupPinnablePositions = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\nexport const PopupPositions = [...PopupPinnablePositions, ...PopupNonPinnablePositions] as const;\n\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = (typeof PopupPositions)[number];\nexport type PopupPinnablePositionsType = (typeof PopupPinnablePositions)[number];\nexport type ShortPopupPositionsType = 'top' | 'bottom' | 'left' | 'right';\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n isFullyVisible: false,\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps\n extends Omit<CommonProps, 'children'>,\n PopupHandlerProps,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: React.ReactNode | Element;\n /**\n * Фон попапа и пина\n */\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n /**\n * Показывать ли пин\n */\n hasPin?: boolean;\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow?: boolean;\n disableAnimations?: boolean;\n /**\n * Отступ попапа от элемента\n */\n margin?: number;\n maxWidth?: number | string;\n /**\n * Показан или скрыт попап\n */\n opened: boolean;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset?: number;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize?: number;\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset?: number;\n priority?: Priority;\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions?: Readonly<PopupPositionsType[]>;\n /**\n * Приоритетная позиция попапа\n */\n pos?: PopupPositionsType | ShortPopupPositionsType;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n minWidth?: React.CSSProperties['minWidth'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в том числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n /** @ignore */\n disablePortal?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType, isFullyVisible: boolean) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n isFullyVisible: boolean;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n root: 'Popup__root',\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\nexport const PopupIds = {\n root: PopupDataTids.root,\n};\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n | 'popupOffset'\n | 'hasPin'\n | 'hasShadow'\n | 'disablePortal'\n | 'disableAnimations'\n | 'useWrapper'\n | 'ignoreHover'\n | 'width'\n | 'priority'\n >\n>;\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n public static displayName = 'Popup';\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n disablePortal: false,\n width: 'auto',\n priority: ZIndex.priorities.Popup,\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupContentElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n private hasAnchorElementListeners = false;\n private rootId = PopupIds.root + getRandomID();\n\n public anchorElement: Nullable<Element> = null;\n private absoluteParent: Nullable<HTMLDivElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);\n\n if (!this.hasAnchorElementListeners) {\n this.addEventListeners(this.anchorElement);\n }\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n if (this.hasAnchorElementListeners) {\n this.removeEventListeners(this.anchorElement);\n }\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <CommonWrapper rootNodeRef={this.setRootNode}>\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n </CommonWrapper>\n ) : null;\n }\n\n private renderMain() {\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isInstanceOf(anchorElement, this.globalObject.Element)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: mergeRefs(\n (anchor as React.RefAttributes<typeof anchor>)?.ref as React.RefCallback<any>,\n this.updateAnchorElement,\n ),\n } as { ref: (instance: Nullable<React.ReactInstance>) => void })\n : null;\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isInstanceOf(anchorElement, this.globalObject.Element);\n const renderRef = canGetAnchorNode ? null : this.updateAnchorElement;\n const renderAnchor = anchorWithRef || anchor;\n\n return this.props.disablePortal\n ? this.renderWithoutPortal(renderAnchor, renderRef)\n : this.renderInPortal(renderAnchor, renderRef);\n }\n\n private renderInPortal = (anchor: React.ReactNode, ref: null | LegacyRef<RenderContainer>) => {\n const { location } = this.state;\n\n return (\n <RenderContainer anchor={anchor} ref={ref}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n };\n\n private renderWithoutPortal = (anchor: React.ReactNode, ref: null | LegacyRef<EmptyWrapper>) => {\n const { location } = this.state;\n\n return (\n <EmptyWrapper ref={ref}>\n {anchor}\n {location && (\n <div ref={this.updateAbsoluteElement} className={this.styles.absoluteParent()}>\n {this.renderContent(location)}\n </div>\n )}\n </EmptyWrapper>\n );\n };\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private updateAbsoluteElement = (instance: HTMLDivElement) => {\n this.absoluteParent = instance;\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, this.globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = true;\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, this.globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = false;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = getDOMRect(this.anchorElement).width;\n\n return width.replace(/(\\d)+%/g, (percent: string) => `${(anchorWidth * parseFloat(percent)) / 100}px`);\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const { width, minWidth } = this.getProps();\n\n return (\n <div\n className={this.styles.content(this.theme)}\n data-tid={PopupDataTids.content}\n ref={mergeRefs(this.refForTransition, this.refPopupContentElement)}\n >\n <div\n className={this.styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width), minWidth: this.calculateWidth(minWidth) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const relativeShift = this.getRelativeShift();\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = {\n maxWidth,\n top: location.coordinates.top + relativeShift.top,\n left: location.coordinates.left + relativeShift.left,\n };\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode} {...this.prepareDataVisualState()}>\n <ZIndex\n id={this.props.id ?? this.rootId}\n data-tid={PopupDataTids.root}\n priority={this.props.priority}\n className={this.cx({\n [this.styles.popup(this.theme)]: true,\n [this.styles.shadow(this.theme)]: hasShadow,\n [this.styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [this.styles[`transition-enter-${direction}` as keyof typeof this.styles](this.theme)]: true,\n [this.styles.transitionEnter()]: state === 'entering',\n [this.styles.transitionEnterActive()]: state === 'entered',\n [this.styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {(!this.isMobileLayout || this.props.withoutMobile) && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private prepareDataVisualState = () => {\n const position = this.state.location?.position;\n if (position) {\n const attrName = `position-` + position.replace(' ', '-');\n return getVisualStateDataAttributes({ [attrName]: true });\n }\n return {};\n };\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupContentElement = (element: HTMLDivElement) => {\n this.lastPopupContentElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n const { pinSize, backgroundColor } = this.props;\n const { hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin &&\n !PopupNonPinnablePositions.includes(positionName) && (\n <PopupPin\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = this.globalObject.requestAnimationFrame?.(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n this.globalObject.cancelAnimationFrame?.(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupContentElement = this.lastPopupContentElement;\n\n if (!popupContentElement) {\n return;\n }\n\n const location = this.getLocation(popupContentElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location.position, location.isFullyVisible);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private reorderPropsPositionsWithPriorityPos() {\n const positions = this.props.positions ? this.props.positions : PopupPinnablePositions;\n let pos_ = '';\n if (this.props.pos) {\n pos_ = this.props.pos;\n } else {\n pos_ = positions[0];\n }\n const index = positions.findIndex((position) => position.startsWith(pos_));\n if (index === -1) {\n warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));\n return positions;\n }\n return [...positions.slice(index), ...positions.slice(0, index)];\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>): Nullable<PopupLocation> {\n const { tryPreserveFirstRenderedPosition } = this.getProps();\n const positions = this.reorderPropsPositionsWithPriorityPos();\n\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isInstanceOf(anchorElement, this.globalObject.Element),\n 'Anchor element is not defined or not instance of Element',\n );\n\n if (!(anchorElement && isInstanceOf(anchorElement, this.globalObject.Element))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect, this.globalObject);\n const canBecomeVisible =\n !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates, this.globalObject);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect, this.globalObject)) {\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n return { coordinates, position, isFullyVisible: false };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getRelativeShift = () => {\n const { absoluteParent } = this;\n\n if (!this.props.disablePortal || !absoluteParent) {\n return {\n top: 0,\n left: 0,\n };\n }\n\n const rect = PopupHelper.getElementAbsoluteRect(absoluteParent);\n\n return {\n top: -rect.top,\n left: -rect.left,\n };\n };\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n const defaultCoordinates = {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n\n switch (position.direction) {\n case 'top':\n return defaultCoordinates;\n case 'middle':\n return {\n top: anchorRect.top + anchorRect.height / 2 - popupRect.height / 2,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n warning(\n false,\n `Unexpected align '${position.direction}'. Must be one of - 'top', 'bottom', 'left', 'right', 'center', 'middle'. Returning default value.`,\n );\n return defaultCoordinates;\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n const defaultPinOffset = pinOffset || parseInt(this.theme.popupPinOffsetY);\n\n switch (align) {\n case 'top':\n case 'bottom':\n return defaultPinOffset;\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'top', 'bottom', 'left', 'right', 'center', 'middle'. Returning default value.`,\n );\n return defaultPinOffset;\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n const defaultHorizontalPosition = anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return defaultHorizontalPosition;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'left', 'center', 'right'. Returning default value.`,\n );\n return defaultHorizontalPosition;\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n const defaultVerticalPosition = anchorRect.top - popupOffset;\n\n switch (align) {\n case 'top':\n return defaultVerticalPosition;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'top', 'middle', 'bottom'. Returning default value.`,\n );\n return defaultVerticalPosition;\n }\n }\n}\n\n// Нужно, чтобы получать по рефу dom-элемент, в который зарендерится anchor\ntype EmptyWrapperProps = Readonly<{\n children: React.ReactNode;\n}>;\n\nclass EmptyWrapper extends React.Component<EmptyWrapperProps> {\n public render() {\n return this.props.children;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Transition","warning","getDOMRect","LayoutEvents","ZIndex","RenderContainer","getRandomID","isFunction","isNonNullable","isNullable","isRefableElement","ThemeContext","isTestEnv","CommonWrapper","responsiveLayout","MobilePopup","getRootNode","rootNode","isInstanceWithAnchorElement","createPropsGetter","isInstanceOf","mergeRefs","getVisualStateDataAttributes","getElementRef","withRenderEnvironment","PopupPin","PopupHelper","getStyles","TRANSITION_TIMEOUT","enter","exit","PopupNonPinnablePositions","PopupPinnablePositions","PopupPositions","concat","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","isFullyVisible","PopupDataTids","root","content","contentInner","popupPin","PopupIds","Popup","_class","_Popup","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","createRef","hasAnchorElementListeners","rootId","anchorElement","absoluteParent","renderInPortal","anchor","ref","createElement","isMobileLayout","withoutMobile","renderMobile","renderContent","renderWithoutPortal","EmptyWrapper","updateAbsoluteElement","className","styles","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","replace","percent","parseFloat","children","backgroundColor","_this$getProps","minWidth","theme","refPopupContentElement","style","prepareDataVisualState","_this$state$location","_getVisualStateDataAt","attrName","resetLocation","cancelDelayedUpdateLocation","setState","element","lastPopupContentElement","handleLayoutEvent","updateLocation","popupContentElement","getLocation","onPositionChange","locationEquals","getRelativeShift","_this2","disablePortal","rect","getElementAbsoluteRect","_inheritsLoose","_proto","prototype","componentDidMount","layoutEventsToken","addListener","globalObject","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","_this3","emotion","Consumer","renderMain","renderChildren","rootNodeRef","setRootNode","withoutRenderContainer","onCloseRequest","mobileOnCloseRequest","useWrapper","Element","isValidElement","anchorWithRef","cloneElement","canGetAnchorNode","renderRef","renderAnchor","addEventListener","removeEventListener","_this4","_this$props","maxWidth","_this$getProps2","hasShadow","disableAnimations","ignoreHover","relativeShift","_PopupHelper$getPosit","getPositionObject","direction","rootStyle","timeout","appear","Boolean","mountOnEnter","unmountOnExit","onExited","nodeRef","_this4$props$id","_extends2","_ref","_extends","id","priority","cx","popup","shadow","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","_this$props2","pinSize","_this$getProps3","hasPin","popupElement","popupPosition","size","parseInt","popupPinSize","offset","getPinOffset","align","popupBackground","_this$globalObject$re","_this$globalObject","requestAnimationFrame","_this$globalObject$ca","_this$globalObject2","cancelAnimationFrame","x","y","reorderPropsPositionsWithPriorityPos","positions","pos_","pos","index","findIndex","startsWith","join","slice","_this$getProps4","tryPreserveFirstRenderedPosition","anchorRect","popupRect","getCoordinates","canBecomeVisible","canBecomeFullyVisible","_iterator","_createForOfIteratorHelperLoose","_step","done","value","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","defaultCoordinates","getHorizontalPosition","getVerticalPosition","pinOffset","defaultPinOffset","popupPinOffsetY","popupPinOffsetX","defaultHorizontalPosition","defaultVerticalPosition","Component","__KONTUR_REACT_UI__","displayName","priorities","defaultRootNode","_React$Component2","_proto2"],"sources":["Popup.tsx"],"sourcesContent":["import type { HTMLAttributes, Ref } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Priority } from '../ZIndex';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport type { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { getRandomID, isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { mergeRefs } from '../../lib/mergeRefs';\nimport { getVisualStateDataAttributes } from '../CommonWrapper/utils/getVisualStateDataAttributes';\nimport { getElementRef } from '../../lib/getElementRef';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { PopupPin } from './PopupPin';\nimport type { Offset, PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { getStyles } from './Popup.styles';\n\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupNonPinnablePositions = ['middle center', 'middle left', 'middle right'];\n\nexport const PopupPinnablePositions = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\nexport const PopupPositions = [...PopupPinnablePositions, ...PopupNonPinnablePositions] as const;\n\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = (typeof PopupPositions)[number];\nexport type PopupPinnablePositionsType = (typeof PopupPinnablePositions)[number];\nexport type ShortPopupPositionsType = 'top' | 'bottom' | 'left' | 'right';\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n isFullyVisible: false,\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps\n extends Omit<CommonProps, 'children'>,\n PopupHandlerProps,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: React.ReactNode | Element;\n /**\n * Фон попапа и пина\n */\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n /**\n * Показывать ли пин\n */\n hasPin?: boolean;\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow?: boolean;\n disableAnimations?: boolean;\n /**\n * Отступ попапа от элемента\n */\n margin?: number;\n maxWidth?: number | string;\n /**\n * Показан или скрыт попап\n */\n opened: boolean;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset?: number;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize?: number;\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset?: number;\n priority?: Priority;\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions?: Readonly<PopupPositionsType[]>;\n /**\n * Приоритетная позиция попапа\n */\n pos?: PopupPositionsType | ShortPopupPositionsType;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n minWidth?: React.CSSProperties['minWidth'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в том числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n /** @ignore */\n disablePortal?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType, isFullyVisible: boolean) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n isFullyVisible: boolean;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n root: 'Popup__root',\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\nexport const PopupIds = {\n root: PopupDataTids.root,\n};\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n | 'popupOffset'\n | 'hasPin'\n | 'hasShadow'\n | 'disablePortal'\n | 'disableAnimations'\n | 'useWrapper'\n | 'ignoreHover'\n | 'width'\n | 'priority'\n >\n>;\n\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n public static displayName = 'Popup';\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n disablePortal: false,\n width: 'auto',\n priority: ZIndex.priorities.Popup,\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupContentElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n private hasAnchorElementListeners = false;\n private rootId = PopupIds.root + getRandomID();\n\n public anchorElement: Nullable<Element> = null;\n private absoluteParent: Nullable<HTMLDivElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);\n\n if (!this.hasAnchorElementListeners) {\n this.addEventListeners(this.anchorElement);\n }\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n if (this.hasAnchorElementListeners) {\n this.removeEventListeners(this.anchorElement);\n }\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <CommonWrapper rootNodeRef={this.setRootNode}>\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n </CommonWrapper>\n ) : null;\n }\n\n private renderMain() {\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isInstanceOf(anchorElement, this.globalObject.Element)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: mergeRefs(getElementRef(anchor), this.updateAnchorElement),\n } as { ref: (instance: Nullable<React.ReactInstance>) => void })\n : null;\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isInstanceOf(anchorElement, this.globalObject.Element);\n const renderRef = canGetAnchorNode ? null : this.updateAnchorElement;\n const renderAnchor = anchorWithRef || anchor;\n\n return this.props.disablePortal\n ? this.renderWithoutPortal(renderAnchor, renderRef)\n : this.renderInPortal(renderAnchor, renderRef);\n }\n\n private renderInPortal = (anchor: React.ReactNode, ref: null | Ref<RenderContainer>) => {\n const { location } = this.state;\n\n return (\n <RenderContainer anchor={anchor} ref={ref}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n };\n\n private renderWithoutPortal = (anchor: React.ReactNode, ref: null | Ref<EmptyWrapper>) => {\n const { location } = this.state;\n\n return (\n <EmptyWrapper ref={ref}>\n {anchor}\n {location && (\n <div ref={this.updateAbsoluteElement} className={this.styles.absoluteParent()}>\n {this.renderContent(location)}\n </div>\n )}\n </EmptyWrapper>\n );\n };\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private updateAbsoluteElement = (instance: HTMLDivElement) => {\n this.absoluteParent = instance;\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, this.globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = true;\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, this.globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = false;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = getDOMRect(this.anchorElement).width;\n\n return width.replace(/(\\d)+%/g, (percent: string) => `${(anchorWidth * parseFloat(percent)) / 100}px`);\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const { width, minWidth } = this.getProps();\n\n return (\n <div\n className={this.styles.content(this.theme)}\n data-tid={PopupDataTids.content}\n ref={mergeRefs(this.refForTransition, this.refPopupContentElement)}\n >\n <div\n className={this.styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width), minWidth: this.calculateWidth(minWidth) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const relativeShift = this.getRelativeShift();\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = {\n maxWidth,\n top: location.coordinates.top + relativeShift.top,\n left: location.coordinates.left + relativeShift.left,\n };\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode} {...this.prepareDataVisualState()}>\n <ZIndex\n id={this.props.id ?? this.rootId}\n data-tid={PopupDataTids.root}\n priority={this.props.priority}\n className={this.cx({\n [this.styles.popup(this.theme)]: true,\n [this.styles.shadow(this.theme)]: hasShadow,\n [this.styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [this.styles[`transition-enter-${direction}` as keyof typeof this.styles](this.theme)]: true,\n [this.styles.transitionEnter()]: state === 'entering',\n [this.styles.transitionEnterActive()]: state === 'entered',\n [this.styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {(!this.isMobileLayout || this.props.withoutMobile) && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private prepareDataVisualState = () => {\n const position = this.state.location?.position;\n if (position) {\n const attrName = `position-` + position.replace(' ', '-');\n return getVisualStateDataAttributes({ [attrName]: true });\n }\n return {};\n };\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupContentElement = (element: HTMLDivElement) => {\n this.lastPopupContentElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n const { pinSize, backgroundColor } = this.props;\n const { hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin &&\n !PopupNonPinnablePositions.includes(positionName) && (\n <PopupPin\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = this.globalObject.requestAnimationFrame?.(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n this.globalObject.cancelAnimationFrame?.(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupContentElement = this.lastPopupContentElement;\n\n if (!popupContentElement) {\n return;\n }\n\n const location = this.getLocation(popupContentElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location.position, location.isFullyVisible);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private reorderPropsPositionsWithPriorityPos() {\n const positions = this.props.positions ? this.props.positions : PopupPinnablePositions;\n let pos_ = '';\n if (this.props.pos) {\n pos_ = this.props.pos;\n } else {\n pos_ = positions[0];\n }\n const index = positions.findIndex((position) => position.startsWith(pos_));\n if (index === -1) {\n warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));\n return positions;\n }\n return [...positions.slice(index), ...positions.slice(0, index)];\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>): Nullable<PopupLocation> {\n const { tryPreserveFirstRenderedPosition } = this.getProps();\n const positions = this.reorderPropsPositionsWithPriorityPos();\n\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isInstanceOf(anchorElement, this.globalObject.Element),\n 'Anchor element is not defined or not instance of Element',\n );\n\n if (!(anchorElement && isInstanceOf(anchorElement, this.globalObject.Element))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect, this.globalObject);\n const canBecomeVisible =\n !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates, this.globalObject);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect, this.globalObject)) {\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n return { coordinates, position, isFullyVisible: false };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getRelativeShift = () => {\n const { absoluteParent } = this;\n\n if (!this.props.disablePortal || !absoluteParent) {\n return {\n top: 0,\n left: 0,\n };\n }\n\n const rect = PopupHelper.getElementAbsoluteRect(absoluteParent);\n\n return {\n top: -rect.top,\n left: -rect.left,\n };\n };\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n const defaultCoordinates = {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n\n switch (position.direction) {\n case 'top':\n return defaultCoordinates;\n case 'middle':\n return {\n top: anchorRect.top + anchorRect.height / 2 - popupRect.height / 2,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n warning(\n false,\n `Unexpected align '${position.direction}'. Must be one of - 'top', 'bottom', 'left', 'right', 'center', 'middle'. Returning default value.`,\n );\n return defaultCoordinates;\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n const defaultPinOffset = pinOffset || parseInt(this.theme.popupPinOffsetY);\n\n switch (align) {\n case 'top':\n case 'bottom':\n return defaultPinOffset;\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'top', 'bottom', 'left', 'right', 'center', 'middle'. Returning default value.`,\n );\n return defaultPinOffset;\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n const defaultHorizontalPosition = anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return defaultHorizontalPosition;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'left', 'center', 'right'. Returning default value.`,\n );\n return defaultHorizontalPosition;\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n const defaultVerticalPosition = anchorRect.top - popupOffset;\n\n switch (align) {\n case 'top':\n return defaultVerticalPosition;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n warning(\n false,\n `Unexpected align '${align}'. Must be one of - 'top', 'middle', 'bottom'. Returning default value.`,\n );\n return defaultVerticalPosition;\n }\n }\n}\n\n// Нужно, чтобы получать по рефу dom-элемент, в который зарендерится anchor\ntype EmptyWrapperProps = Readonly<{\n children: React.ReactNode;\n}>;\n\nclass EmptyWrapper extends React.Component<EmptyWrapperProps> {\n public render() {\n return this.props.children;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -46,7 +46,7 @@ export var PopupMenu = withRenderEnvironment(_class = rootNode(_class = responsi
46
46
  return _this.hideMenu();
47
47
  };
48
48
  _this.menuRef = function (element) {
49
- return _this.menu = element;
49
+ _this.menu = element;
50
50
  };
51
51
  _this.handleOpen = function () {
52
52
  if (_this.menu) {
@@ -79,7 +79,7 @@ export var PopupMenu = withRenderEnvironment(_class = rootNode(_class = responsi
79
79
  "data-tid": PopupMenuDataTids.caption,
80
80
  className: _this.styles.caption(),
81
81
  ref: function ref(element) {
82
- return _this.captionWrapper = element;
82
+ _this.captionWrapper = element;
83
83
  }
84
84
  }, _this.passPropsToCaption(caption))
85
85
  );
@@ -90,7 +90,7 @@ export var PopupMenu = withRenderEnvironment(_class = rootNode(_class = responsi
90
90
  onClick: _this.handleCaptionClick,
91
91
  onKeyDown: _this.handleCaptionKeyDown,
92
92
  ref: function ref(element) {
93
- return _this.captionWrapper = element;
93
+ _this.captionWrapper = element;
94
94
  },
95
95
  className: _this.styles.caption()
96
96
  }, _this.passPropsToCaption(_this.props.caption))
@@ -1 +1 @@
1
- {"version":3,"names":["React","getRandomID","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","someKeys","ThemeContext","ThemeFactory","Popup","PopupIds","RenderLayer","CommonWrapper","responsiveLayout","rootNode","createPropsGetter","Menu","withRenderEnvironment","isValidPositions","getStyles","PopupMenuDataTids","PopupMenuType","Dropdown","Tooltip","Positions","PopupMenu","_class","_PopupMenu","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","rootId","root","getProps","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","caption","_this$props$popupMenu","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","corners","createElement","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","preventDefault","handleKeyDown","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose","_proto","prototype","render","_this2","emotion","Consumer","theme","Provider","value","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","_extends","rootNodeRef","setRootNode","onClickOutside","onFocusOutside","active","container","style","width","children","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { getRandomID } from '../../lib/utils';\nimport type { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { PopupPositionsType } from '../Popup';\nimport { Popup, PopupIds } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { MenuProps } from '../Menu';\nimport { Menu } from '../Menu';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { isValidPositions } from './validatePositions';\nimport { getStyles } from './PopupMenu.styles';\nimport { PopupMenuDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@withRenderEnvironment\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div\n data-tid={PopupMenuDataTids.root}\n className={this.styles.container()}\n style={{ width: this.props.width }}\n >\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private menuRef = (element: Nullable<Menu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={this.styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={this.styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (this.globalObject.document) {\n this.savedFocusableElement = this.globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;;;;AAIzB,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;EACEC,kBAAkB;EAClBC,UAAU;EACVC,WAAW;EACXC,UAAU;EACVC,QAAQ;AACH,uCAAuC;AAC9C,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,KAAK,EAAEC,QAAQ,QAAQ,UAAU;AAC1C,SAASC,WAAW,QAAQ,gBAAgB;;;AAG5C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,gBAAgB,QAAQ,6CAA6C;;AAE9E,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,6BAA6B;;AAE/D,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,qBAAqB,QAAQ,6BAA6B;;AAEnE,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,iBAAiB,QAAQ,QAAQ;;AAE1C,cAAc,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEtB,OAAO,IAAMC,aAAa,GAAG;EAC3BC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;AACX,CAAU;;AAEV,IAAMC,SAA+B,GAAG;AACtC,UAAU;AACV,YAAY;AACZ,WAAW;AACX,WAAW;AACX,cAAc;AACd,cAAc;AACd,aAAa;AACb,eAAe;AACf,cAAc;AACd,UAAU;AACV,aAAa;AACb,aAAa,CACd;;;;;AAID;;;AAGaC,SAAS,GAHrBR,qBAAqB,CAAAS,MAAA,GACrBZ,QAAQ,CAAAY,MAAA,GACRb,gBAAgB,CAAAa,MAAA,IAAAC,UAAA,0BAAAC,gBAAA,YAAAH,UAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;IASPU,MAAM,GAAG7B,QAAQ,CAAC8B,IAAI,GAAGvC,WAAW,CAAC,CAAC,CAAA4B,KAAA;;;;;;;;;IAStCY,QAAQ,GAAG1B,iBAAiB,CAACU,SAAS,CAACiB,YAAY,CAAC,CAAAb,KAAA;;;;IAIrDc,KAAK,GAAG;MACbC,WAAW,EAAE,KAAK;MAClBC,yBAAyB,EAAE;IAC7B,CAAC,CAAAhB,KAAA;;IAEOiB,cAAc,GAA2B,IAAI,CAAAjB,KAAA;IAC7CkB,qBAAqB,GAAuB,IAAI,CAAAlB,KAAA;IAChDmB,IAAI,GAAmB,IAAI,CAAAnB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8E5BoB,IAAI,GAAG,oBAAYpB,KAAA,CAAKqB,QAAQ,CAAC,CAAC,GAAArB,KAAA;IAClCsB,KAAK,GAAG,oBAAYtB,KAAA,CAAKuB,QAAQ,CAAC,CAAC,GAAAvB,KAAA;;IAElCwB,OAAO,GAAG,UAACC,OAAuB,UAAMzB,KAAA,CAAKmB,IAAI,GAAGM,OAAO,EAAC,CAAAzB,KAAA;;IAE5D0B,UAAU,GAAG,YAAM;MACzB,IAAI1B,KAAA,CAAKmB,IAAI,EAAE;QACbnB,KAAA,CAAKmB,IAAI,CAACQ,KAAK,CAAC,CAAC;MACnB;IACF,CAAC,CAAA3B,KAAA;;IAEO4B,kBAAkB,GAAG,UAACC,OAAwB,EAAK,KAAAC,qBAAA;MACzD,IAAI,OAAOD,OAAO,KAAK,QAAQ,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;QAC9D,OAAOA,OAAO;MAChB;;MAEA,oBAAO1D,KAAK,CAAC4D,YAAY,CAACF,OAAO,EAAwB;QACvDG,EAAE,EAAEhC,KAAA,CAAKiC,KAAK,CAACD,EAAE;QACjB,eAAe,GAAAF,qBAAA,GAAE9B,KAAA,CAAKiC,KAAK,CAACC,WAAW,YAAAJ,qBAAA,GAAI9B,KAAA,CAAKU,MAAM;QACtD,eAAe,EAAEV,KAAA,CAAKc,KAAK,CAACC,WAAW,GAAG,MAAM,GAAG,OAAO;QAC1D,YAAY,EAAEf,KAAA,CAAKiC,KAAK,CAAC,YAAY;MACvC,CAAC,CAAC;IACJ,CAAC,CAAAjC,KAAA;;IAEOmC,aAAa,GAAG,YAAM;MAC5B,IAAI,OAAOnC,KAAA,CAAKiC,KAAK,CAACJ,OAAO,KAAK,UAAU,EAAE;QAC5C,IAAMA,OAAO,GAAG7B,KAAA,CAAKiC,KAAK,CAACJ,OAAO,CAAC;UACjCO,MAAM,EAAEpC,KAAA,CAAKc,KAAK,CAACC,WAAW;UAC9BsB,QAAQ,EAAErC,KAAA,CAAKqB,QAAQ;UACvBiB,SAAS,EAAEtC,KAAA,CAAKuB,QAAQ;UACxBgB,UAAU,EAAEvC,KAAA,CAAKuC,UAAU;UAC3BC,OAAO,EAAExC,KAAA,CAAKiC,KAAK,CAACO;QACtB,CAAC,CAAC;;QAEF;UACErE,KAAA,CAAAsE,aAAA;YACE,YAAUlD,iBAAiB,CAACsC,OAAQ;YACpCa,SAAS,EAAE1C,KAAA,CAAK2C,MAAM,CAACd,OAAO,CAAC,CAAE;YACjCe,GAAG,EAAE,SAAAA,IAACnB,OAAO,UAAMzB,KAAA,CAAKiB,cAAc,GAAGQ,OAAO,EAAE;;UAEjDzB,KAAA,CAAK4B,kBAAkB,CAACC,OAAO;UAC5B,CAAC;;MAEX;;MAEA;QACE1D,KAAA,CAAAsE,aAAA;UACE,YAAUlD,iBAAiB,CAACsC,OAAQ;UACpCgB,OAAO,EAAE7C,KAAA,CAAK8C,kBAAmB;UACjCC,SAAS,EAAE/C,KAAA,CAAKgD,oBAAqB;UACrCJ,GAAG,EAAE,SAAAA,IAACnB,OAAO,UAAMzB,KAAA,CAAKiB,cAAc,GAAGQ,OAAO,EAAE;UAClDiB,SAAS,EAAE1C,KAAA,CAAK2C,MAAM,CAACd,OAAO,CAAC,CAAE;;QAEhC7B,KAAA,CAAK4B,kBAAkB,CAAC5B,KAAA,CAAKiC,KAAK,CAACJ,OAAO;QACvC,CAAC;;IAEX,CAAC,CAAA7B,KAAA;;IAEOiD,uBAAuB,GAAG,oBAAMjD,KAAA,CAAKuB,QAAQ,CAAC,CAAC,GAAAvB,KAAA;;;;;;;;;;;IAW/CqB,QAAQ,GAAG,UAACL,yBAAmC,EAAW;MAChEhB,KAAA,CAAKkD,SAAS,CAAC,CAAC;MAChBlD,KAAA,CAAKmD,QAAQ;QACX;UACEpC,WAAW,EAAE,IAAI;UACjBC,yBAAyB,EAAzBA;QACF,CAAC;QACD,YAAM;UACJhB,KAAA,CAAKoD,uBAAuB,CAAC,KAAK,CAAC;QACrC;MACF,CAAC;IACH,CAAC,CAAApD,KAAA;;IAEOuB,QAAQ,GAAG,UAAC8B,YAAsB,EAAW;MACnDrD,KAAA,CAAKmD,QAAQ;QACX;UACEpC,WAAW,EAAE,KAAK;UAClBC,yBAAyB,EAAE;QAC7B,CAAC;QACD,YAAM;UACJhB,KAAA,CAAKoD,uBAAuB,CAAC,CAAC,CAACC,YAAY,CAAC;QAC9C;MACF,CAAC;IACH,CAAC,CAAArD,KAAA;;IAEOuC,UAAU,GAAG,YAAY;MAC/BvC,KAAA,CAAKc,KAAK,CAACC,WAAW,GAAGf,KAAA,CAAKuB,QAAQ,CAAC,CAAC,GAAGvB,KAAA,CAAKqB,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAArB,KAAA;;IAEO8C,kBAAkB,GAAG,YAAY;MACvC9C,KAAA,CAAKuC,UAAU,CAAC,CAAC;IACnB,CAAC,CAAAvC,KAAA;;IAEOgD,oBAAoB,GAAG,UAACM,CAAmC,EAAW;MAC5E,IAAI7E,QAAQ,CAACH,UAAU,EAAEE,UAAU,EAAEH,kBAAkB,CAAC,CAACiF,CAAC,CAAC,EAAE;QAC3DA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClBvD,KAAA,CAAKqB,QAAQ,CAAC,IAAI,CAAC;MACrB;IACF,CAAC,CAAArB,KAAA;;IAEOwD,aAAa,GAAG,UAACF,CAAmC,EAAK;MAC/D,IAAI/E,WAAW,CAAC+E,CAAC,CAAC,EAAE;QAClB,IAAMD,YAAY,GAAG,IAAI;QACzBrD,KAAA,CAAKuB,QAAQ,CAAC8B,YAAY,CAAC;MAC7B;IACF,CAAC,CAAArD,KAAA;;IAEOkD,SAAS,GAAG,YAAY;MAC9B,IAAIlD,KAAA,CAAKyD,YAAY,CAACC,QAAQ,EAAE;QAC9B1D,KAAA,CAAKkB,qBAAqB,GAAGlB,KAAA,CAAKyD,YAAY,CAACC,QAAQ,CAACC,aAA4B;MACtF;IACF,CAAC,CAAA3D,KAAA;;IAEOqD,YAAY,GAAG,YAAY;MACjC,IAAIrD,KAAA,CAAKkB,qBAAqB,EAAE;QAC9BlB,KAAA,CAAKkB,qBAAqB,CAACS,KAAK,CAAC,CAAC;QAClC3B,KAAA,CAAKkB,qBAAqB,GAAG,IAAI;MACnC;IACF,CAAC,CAAAlB,KAAA;;IAEOoD,uBAAuB,GAAG,UAACQ,qBAA8B,EAAW;MAC1E,IAAIA,qBAAqB,EAAE;QACzB5D,KAAA,CAAKqD,YAAY,CAAC,CAAC;MACrB;;MAEA,IAAIrD,KAAA,CAAKc,KAAK,CAACC,WAAW,IAAIf,KAAA,CAAKiC,KAAK,CAAC4B,MAAM,EAAE;QAC/C7D,KAAA,CAAKiC,KAAK,CAAC4B,MAAM,CAAC,CAAC;MACrB;;MAEA,IAAI,CAAC7D,KAAA,CAAKc,KAAK,CAACC,WAAW,IAAIf,KAAA,CAAKiC,KAAK,CAAC6B,OAAO,EAAE;QACjD9D,KAAA,CAAKiC,KAAK,CAAC6B,OAAO,CAAC,CAAC;MACtB;;MAEA,IAAI,OAAO9D,KAAA,CAAKiC,KAAK,CAAC8B,iBAAiB,KAAK,UAAU,EAAE;QACtD/D,KAAA,CAAKiC,KAAK,CAAC8B,iBAAiB,CAAC/D,KAAA,CAAKc,KAAK,CAACC,WAAW,EAAE6C,qBAAqB,CAAC;MAC7E;IACF,CAAC,CAAA5D,KAAA;;IAEOgE,mBAAmB,GAAG,UAACC,KAAwC,EAAW;MAChF,IAAIA,KAAK,CAACC,kBAAkB,CAAC,CAAC,EAAE;QAC9B;MACF;;MAEA,IAAID,KAAK,CAACE,IAAI,KAAK,SAAS,EAAE;QAC5BF,KAAK,CAACV,cAAc,CAAC,CAAC;MACxB;;MAEA,IAAMF,YAAY,GAAGY,KAAK,CAACE,IAAI,KAAK,SAAS;MAC7CnE,KAAA,CAAKuB,QAAQ,CAAC8B,YAAY,CAAC;IAC7B,CAAC,QAAArD,KAAA,EAAAoE,cAAA,CAAAxE,SAAA,EAAAG,gBAAA,MAAAsE,MAAA,GAAAzE,SAAA,CAAA0E,SAAA,CAAAD,MAAA,CAxOME,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAAC7B,MAAM,GAAGrD,SAAS,CAAC,IAAI,CAACmF,OAAO,CAAC,CAErC,oBACEtG,KAAA,CAAAsE,aAAA,CAAC/D,YAAY,CAACgG,QAAQ,QACnB,UAACC,KAAK,EAAK,CACV,oBACExG,KAAA,CAAAsE,aAAA,CAAC/D,YAAY,CAACkG,QAAQ,IACpBC,KAAK,EAAElG,YAAY,CAACmG,MAAM,CACxB,EACEC,WAAW,EAAEJ,KAAK,CAACK,oBAAoB,CACzC,CAAC,EACDL,KACF,CAAE,IAEDH,MAAI,CAACS,UAAU,CAAC,CACI,CAAC,CAE5B,CACqB,CAAC,CAE5B,CAAC,CAAAZ,MAAA,CAEOY,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,sBAAA,CACnB,IAAAC,cAAA,GAA2C,IAAI,CAACvE,QAAQ,CAAC,CAAC,CAAlDwE,WAAW,GAAAD,cAAA,CAAXC,WAAW,CAAEC,iBAAiB,GAAAF,cAAA,CAAjBE,iBAAiB,CACtC,oBACElH,KAAA,CAAAsE,aAAA,CAAC1D,aAAa,EAAAuG,QAAA,GAACC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACvD,KAAK,gBAC1D9D,KAAA,CAAAsE,aAAA,CAAC3D,WAAW,IACV2G,cAAc,EAAE,IAAI,CAACxC,uBAAwB,EAC7CyC,cAAc,EAAE,IAAI,CAACzC,uBAAwB,EAC7C0C,MAAM,EAAE,IAAI,CAAC7E,KAAK,CAACC,WAAY,iBAE/B5C,KAAA,CAAAsE,aAAA,UACE,YAAUlD,iBAAiB,CAACoB,IAAK,EACjC+B,SAAS,EAAE,IAAI,CAACC,MAAM,CAACiD,SAAS,CAAC,CAAE,EACnCC,KAAK,EAAE,EAAEC,KAAK,EAAE,IAAI,CAAC7D,KAAK,CAAC6D,KAAK,CAAC,CAAE,IAElC,IAAI,CAAC3D,aAAa,CAAC,CAAC,EACpB,IAAI,CAAClB,cAAc,IAAI,IAAI,CAACgB,KAAK,CAAC8D,QAAQ,iBACzC5H,KAAA,CAAAsE,aAAA,CAAC7D,KAAK,IACJoD,EAAE,GAAAkD,sBAAA,GAAE,IAAI,CAACjD,KAAK,CAACC,WAAW,YAAAgD,sBAAA,GAAI,IAAI,CAACxE,MAAO,EAC1CsF,aAAa,EAAE,IAAI,CAAC/E,cAAe,EACnCmB,MAAM,EAAE,IAAI,CAACtB,KAAK,CAACC,WAAY,EAC/BkF,SAAS,QACTC,MAAM,EAAE,IAAI,CAACjE,KAAK,CAACkE,WAAY,EAC/BC,MAAM,EAAEhB,WAAY,EACpBiB,SAAS,EAAE,IAAI,CAACpE,KAAK,CAACqE,cAAe,EACrCC,SAAS,EAAE,IAAI,CAACC,YAAY,CAAC,CAAE,EAC/BnB,iBAAiB,EAAEA,iBAAkB,EACrCxB,MAAM,EAAE,IAAI,CAACnC,UAAW,EACxB+E,oBAAoB,EAAE,IAAI,CAAClF,QAAS,EACpCuE,KAAK,EAAE,IAAI,CAACY,cAAc,GAAG,MAAM,GAAG,IAAI,CAACzE,KAAK,CAAC0E,SAAS,IAAI,MAAO,iBAErExI,KAAA,CAAAsE,aAAA,CAACtD,IAAI,IACHyH,SAAS,EAAE,IAAI,CAACF,cAAc,GAAG,MAAM,GAAG,IAAI,CAACzE,KAAK,CAAC4E,aAAa,IAAI,MAAO,EAC7E9D,SAAS,EAAE,IAAI,CAACS,aAAc,EAC9BsD,WAAW,EAAE,IAAI,CAAC9C,mBAAoB,EACtC+C,kBAAkB,EAAE,IAAI,CAAC9E,KAAK,CAAC8E,kBAAmB,EAClDC,eAAe,EAAE,KAAM,EACvBpE,GAAG,EAAE,IAAI,CAACpB,OAAQ,EAClByF,wBAAwB,EAAE,IAAI,CAACnG,KAAK,CAACE,yBAAyB,GAAG,CAAC,GAAG,CAAC,CAAE,EACxEkG,MAAM,EAAE,IAAI,CAACjF,KAAK,CAACiF,MAAO,EAC1BC,MAAM,EAAE,IAAI,CAAClF,KAAK,CAACkF,MAAO,IAEzB,IAAI,CAAClF,KAAK,CAAC8D,QACR,CACD,CAEN,CACM,CACA,CAAC,CAEpB,CAAC,CAAA1B,MAAA,CA8DOmC,YAAY,GAApB,SAAAA,aAAA,EAAuD,CACrD,IAAMD,SAAS,GAAG,IAAI,CAAC3F,QAAQ,CAAC,CAAC,CAAC2F,SAAS,CAC3C,IAAIA,SAAS,IAAIlH,gBAAgB,CAACkH,SAAS,CAAC,EAAE,CAC5C,OAAOA,SAAS,CAClB,CAEA,OAAO5G,SAAS,CAClB,CAAC,QAAAC,SAAA,GA7K4BzB,KAAK,CAACiJ,SAAS,GAAAtH,UAAA,CAC9BuH,mBAAmB,GAAG,WAAW,EAAAvH,UAAA,CACjCwH,WAAW,GAAG,WAAW,EAAAxH,UAAA,CAQzBe,YAAY,GAAiB,EACzC0F,SAAS,EAAE5G,SAAS,EACpBwE,IAAI,EAAE3E,aAAa,CAACE,OAAO,EAC3B0F,WAAW,EAAE,IAAI,EACjBC,iBAAiB,EAAE,KAAK,CAC1B,CAAC,EAAAvF,UAAA,CAIayH,IAAI,GAAG/H,aAAa,EAAAM,UAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","getRandomID","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","someKeys","ThemeContext","ThemeFactory","Popup","PopupIds","RenderLayer","CommonWrapper","responsiveLayout","rootNode","createPropsGetter","Menu","withRenderEnvironment","isValidPositions","getStyles","PopupMenuDataTids","PopupMenuType","Dropdown","Tooltip","Positions","PopupMenu","_class","_PopupMenu","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","rootId","root","getProps","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","caption","_this$props$popupMenu","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","corners","createElement","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","preventDefault","handleKeyDown","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose","_proto","prototype","render","_this2","emotion","Consumer","theme","Provider","value","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","_extends","rootNodeRef","setRootNode","onClickOutside","onFocusOutside","active","container","style","width","children","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { getRandomID } from '../../lib/utils';\nimport type { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { PopupPositionsType } from '../Popup';\nimport { Popup, PopupIds } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { MenuProps } from '../Menu';\nimport { Menu } from '../Menu';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { isValidPositions } from './validatePositions';\nimport { getStyles } from './PopupMenu.styles';\nimport { PopupMenuDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@withRenderEnvironment\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div\n data-tid={PopupMenuDataTids.root}\n className={this.styles.container()}\n style={{ width: this.props.width }}\n >\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private menuRef = (element: Nullable<Menu>) => {\n this.menu = element;\n };\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement<any>, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={this.styles.caption()}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n className={this.styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (this.globalObject.document) {\n this.savedFocusableElement = this.globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AriaAttributes, HTMLAttributes } from 'react';
1
+ import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
2
2
  import React from 'react';
3
3
  import type { HTMLProps } from '../../typings/html';
4
4
  import type { PopupPositionsType } from '../Popup';
@@ -1 +1 @@
1
- {"version":3,"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","createPropsGetter","isInstanceOf","withRenderEnvironment","RenderLayer","_class","_RenderLayer","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorNode","globalObject","Element","onClickOutside","_inheritsLoose","_proto","prototype","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","_this$getProps","detachListeners","componentWillUnmount","render","createElement","_extends","rootNodeRef","setRootNode","Children","only","children","getAnchorElement","_this$globalObject$ad","_this$globalObject","_this$globalObject$do","addEventListener","document","documentElement","_this$globalObject$re","_this$globalObject2","_this$globalObject$do2","remove","removeEventListener","Component","__KONTUR_REACT_UI__","displayName"],"sources":["RenderLayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport type { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<Element>;\n}\n\ntype DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;\n\n@withRenderEnvironment\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n public static displayName = 'RenderLayer';\n\n public static defaultProps: DefaultProps = {\n active: true,\n };\n\n private globalObject!: GlobalObject;\n private getProps = createPropsGetter(RenderLayer.defaultProps);\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.getProps().active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n const { active } = this.getProps();\n\n if (!prevProps.active && active) {\n this.attachListeners();\n }\n if (prevProps.active && !active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.getProps().active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private getAnchorNode(): Nullable<Element> {\n const { getAnchorElement } = this.props;\n return getAnchorElement ? getAnchorElement() : getRootNode(this);\n }\n\n private attachListeners() {\n const node = this.getAnchorNode();\n if (!node) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [node], this.handleFocusOutside, this.globalObject);\n this.globalObject.addEventListener?.('blur', this.handleFocusOutside);\n this.globalObject.document?.addEventListener(\n 'ontouchstart' in this.globalObject.document.documentElement &&\n 'onpointerup' in this.globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n this.globalObject.removeEventListener?.('blur', this.handleFocusOutside);\n this.globalObject.document?.removeEventListener(\n 'ontouchstart' in this.globalObject.document.documentElement &&\n 'onpointerup' in this.globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = this.getAnchorNode();\n\n if (!node || (isInstanceOf(target, this.globalObject.Element) && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"],"mappings":"yJAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,MAAM,IAAIC,kBAAkB,EAAEC,+BAA+B,QAAQ,8BAA8B;;AAE5G,SAASC,aAAa,QAAQ,kBAAkB;;AAEhD,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;;AAE1D,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,qBAAqB,QAAQ,6BAA6B;;;;;;;;;;;;AAYnE;;AAEaC,WAAW,GAFvBD,qBAAqB,CAAAE,MAAA,GACrBL,QAAQ,CAAAK,MAAA,IAAAC,YAAA,0BAAAC,gBAAA,YAAAH,YAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;IAUCU,QAAQ,GAAGjB,iBAAiB,CAACG,WAAW,CAACe,YAAY,CAAC,CAAAX,KAAA;;IAEtDY,yBAAyB;;IAEtB,IAAI,CAAAZ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyEPa,kBAAkB,GAAG,UAACC,KAAY,EAAK;MAC7C,IAAId,KAAA,CAAKe,KAAK,CAACC,cAAc,EAAE;QAC7BhB,KAAA,CAAKe,KAAK,CAACC,cAAc,CAACF,KAAK,CAAC;MAClC;IACF,CAAC,CAAAd,KAAA;;IAEOiB,oBAAoB,GAAG,UAACH,KAAY,EAAK;MAC/C,IAAMI,MAAM,GAAGJ,KAAK,CAACI,MAAM,IAAIJ,KAAK,CAACK,UAAU;MAC/C,IAAMC,IAAI,GAAGpB,KAAA,CAAKqB,aAAa,CAAC,CAAC;;MAEjC,IAAI,CAACD,IAAI,IAAK1B,YAAY,CAACwB,MAAM,EAAElB,KAAA,CAAKsB,YAAY,CAACC,OAAO,CAAC,IAAIlC,+BAA+B,CAAC6B,MAAM,CAAC,CAACE,IAAI,CAAE,EAAE;QAC/G;MACF;;MAEA,IAAIpB,KAAA,CAAKe,KAAK,CAACS,cAAc,EAAE;QAC7BxB,KAAA,CAAKe,KAAK,CAACS,cAAc,CAACV,KAAK,CAAC;MAClC;IACF,CAAC,QAAAd,KAAA,EAAAyB,cAAA,CAAA7B,WAAA,EAAAG,gBAAA,MAAA2B,MAAA,GAAA9B,WAAA,CAAA+B,SAAA,CAAAD,MAAA,CAtFME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAAClB,QAAQ,CAAC,CAAC,CAACmB,MAAM,EAAE,CAC1B,IAAI,CAACC,eAAe,CAAC,CAAC,CACxB,CACF,CAAC,CAAAJ,MAAA,CAEMK,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAA2B,EAAE,CACrD,IAAAC,cAAA,GAAmB,IAAI,CAACvB,QAAQ,CAAC,CAAC,CAA1BmB,MAAM,GAAAI,cAAA,CAANJ,MAAM,CAEd,IAAI,CAACG,SAAS,CAACH,MAAM,IAAIA,MAAM,EAAE,CAC/B,IAAI,CAACC,eAAe,CAAC,CAAC,CACxB,CACA,IAAIE,SAAS,CAACH,MAAM,IAAI,CAACA,MAAM,EAAE,CAC/B,IAAI,CAACK,eAAe,CAAC,CAAC,CACxB,CACF,CAAC,CAAAR,MAAA,CAEMS,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAACzB,QAAQ,CAAC,CAAC,CAACmB,MAAM,EAAE,CAC1B,IAAI,CAACK,eAAe,CAAC,CAAC,CACxB,CACF,CAAC,CAAAR,MAAA,CAEMU,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,oBACElD,KAAA,CAAAmD,aAAA,CAAC/C,aAAa,EAAAgD,QAAA,GAACC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACzB,KAAK,GACzD7B,KAAK,CAACuD,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC3B,KAAK,CAAC4B,QAAQ,CAC3B,CAAC,CAEpB,CAAC,CAAAjB,MAAA,CAEOL,aAAa,GAArB,SAAAA,cAAA,EAA2C,CACzC,IAAQuB,gBAAgB,GAAK,IAAI,CAAC7B,KAAK,CAA/B6B,gBAAgB,CACxB,OAAOA,gBAAgB,GAAGA,gBAAgB,CAAC,CAAC,GAAGrD,WAAW,CAAC,IAAI,CAAC,CAClE,CAAC,CAAAmC,MAAA,CAEOI,eAAe,GAAvB,SAAAA,gBAAA,EAA0B,KAAAe,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA,CACxB,IAAM3B,IAAI,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC,CACjC,IAAI,CAACD,IAAI,EAAE,CACT,OACF,CAEA,IAAI,CAACR,yBAAyB,GAAGxB,kBAAkB,CAAC,oBAAM,CAACgC,IAAI,CAAC,IAAE,IAAI,CAACP,kBAAkB,EAAE,IAAI,CAACS,YAAY,CAAC,CAC7G,CAAAuB,qBAAA,IAAAC,kBAAA,OAAI,CAACxB,YAAY,EAAC0B,gBAAgB,aAAlCH,qBAAA,CAAAtC,IAAA,CAAAuC,kBAAA,EAAqC,MAAM,EAAE,IAAI,CAACjC,kBAAkB,CAAC,CACrE,CAAAkC,qBAAA,OAAI,CAACzB,YAAY,CAAC2B,QAAQ,aAA1BF,qBAAA,CAA4BC,gBAAgB,CAC1C,cAAc,IAAI,IAAI,CAAC1B,YAAY,CAAC2B,QAAQ,CAACC,eAAe,IAC1D,aAAa,IAAI,IAAI,CAAC5B,YAAY,CAAC2B,QAAQ,CAACC,eAAe,GACzD,WAAW,GACX,WAAW,EACf,IAAI,CAACjC,oBACP,CAAC,CACH,CAAC,CAAAS,MAAA,CAEOQ,eAAe,GAAvB,SAAAA,gBAAA,EAA0B,KAAAiB,qBAAA,EAAAC,mBAAA,EAAAC,sBAAA,CACxB,IAAI,IAAI,CAACzC,yBAAyB,EAAE,CAClC,IAAI,CAACA,yBAAyB,CAAC0C,MAAM,CAAC,CAAC,CACvC,IAAI,CAAC1C,yBAAyB,GAAG,IAAI,CACvC,CAEA,CAAAuC,qBAAA,IAAAC,mBAAA,OAAI,CAAC9B,YAAY,EAACiC,mBAAmB,aAArCJ,qBAAA,CAAA5C,IAAA,CAAA6C,mBAAA,EAAwC,MAAM,EAAE,IAAI,CAACvC,kBAAkB,CAAC,CACxE,CAAAwC,sBAAA,OAAI,CAAC/B,YAAY,CAAC2B,QAAQ,aAA1BI,sBAAA,CAA4BE,mBAAmB,CAC7C,cAAc,IAAI,IAAI,CAACjC,YAAY,CAAC2B,QAAQ,CAACC,eAAe,IAC1D,aAAa,IAAI,IAAI,CAAC5B,YAAY,CAAC2B,QAAQ,CAACC,eAAe,GACzD,WAAW,GACX,WAAW,EACf,IAAI,CAACjC,oBACP,CAAC,CACH,CAAC,QAAArB,WAAA,GApF8BV,KAAK,CAACsE,SAAS,GAAA1D,YAAA,CAChC2D,mBAAmB,GAAG,aAAa,EAAA3D,YAAA,CACnC4D,WAAW,GAAG,aAAa,EAAA5D,YAAA,CAE3Ba,YAAY,GAAiB,EACzCkB,MAAM,EAAE,IAAI,CACd,CAAC,EAAA/B,YAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","createPropsGetter","isInstanceOf","withRenderEnvironment","RenderLayer","_class","_RenderLayer","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorNode","globalObject","Element","onClickOutside","_inheritsLoose","_proto","prototype","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","_this$getProps","detachListeners","componentWillUnmount","render","createElement","_extends","rootNodeRef","setRootNode","Children","only","children","getAnchorElement","_this$globalObject$ad","_this$globalObject","_this$globalObject$do","addEventListener","document","documentElement","_this$globalObject$re","_this$globalObject2","_this$globalObject$do2","remove","removeEventListener","Component","__KONTUR_REACT_UI__","displayName"],"sources":["RenderLayer.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport type { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<Element>;\n}\n\ntype DefaultProps = Required<Pick<RenderLayerProps, 'active'>>;\n\n@withRenderEnvironment\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n public static displayName = 'RenderLayer';\n\n public static defaultProps: DefaultProps = {\n active: true,\n };\n\n private globalObject!: GlobalObject;\n private getProps = createPropsGetter(RenderLayer.defaultProps);\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.getProps().active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n const { active } = this.getProps();\n\n if (!prevProps.active && active) {\n this.attachListeners();\n }\n if (prevProps.active && !active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.getProps().active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private getAnchorNode(): Nullable<Element> {\n const { getAnchorElement } = this.props;\n return getAnchorElement ? getAnchorElement() : getRootNode(this);\n }\n\n private attachListeners() {\n const node = this.getAnchorNode();\n if (!node) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [node], this.handleFocusOutside, this.globalObject);\n this.globalObject.addEventListener?.('blur', this.handleFocusOutside);\n this.globalObject.document?.addEventListener(\n 'ontouchstart' in this.globalObject.document.documentElement &&\n 'onpointerup' in this.globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n this.globalObject.removeEventListener?.('blur', this.handleFocusOutside);\n this.globalObject.document?.removeEventListener(\n 'ontouchstart' in this.globalObject.document.documentElement &&\n 'onpointerup' in this.globalObject.document.documentElement\n ? 'pointerup'\n : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = this.getAnchorNode();\n\n if (!node || (isInstanceOf(target, this.globalObject.Element) && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  import type { CommonProps } from '../CommonWrapper';
3
3
  import type { TGetRootNode } from '../../lib/rootNode';
4
4
  import type { Nullable } from '../../typings/utility-types';
@@ -22,7 +22,7 @@ export declare class RenderLayer extends React.Component<RenderLayerProps> {
22
22
  componentDidMount(): void;
23
23
  componentDidUpdate(prevProps: RenderLayerProps): void;
24
24
  componentWillUnmount(): void;
25
- render(): React.JSX.Element;
25
+ render(): JSX.Element;
26
26
  private getAnchorNode;
27
27
  private attachListeners;
28
28
  private detachListeners;
@@ -18,7 +18,7 @@ export var TextWidthHelper = withRenderEnvironment(_class = /*#__PURE__*/functio
18
18
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
19
19
  _this.element = null;
20
20
  _this.elementRef = function (node) {
21
- return _this.element = node;
21
+ _this.element = node;
22
22
  };
23
23
  return _this;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","getDOMRect","withRenderEnvironment","getJsStyles","THIN_SPACE","TextWidthHelper","_class","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","element","elementRef","node","_inheritsLoose","_proto","prototype","render","jsStyles","emotion","createElement","className","root","textContainer","ref","props","text","getTextWidth","width","getTextHeight","height","Component"],"sources":["TextWidthHelper.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getJsStyles } from './TextWidthHelper.styles';\n\nconst THIN_SPACE = '\\u2009';\n\ninterface TextWidthHelperProps {\n text?: string;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private jsStyles!: ReturnType<typeof getJsStyles>;\n\n public render() {\n this.jsStyles = getJsStyles(this.emotion);\n\n return (\n <div className={this.jsStyles.root()}>\n <div className={this.jsStyles.textContainer()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </div>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) => (this.element = node);\n}\n"],"mappings":"iFAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,qBAAqB,QAAQ,6BAA6B;;AAEnE,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD,IAAMC,UAAU,GAAG,QAAQ;;;;;AAK3B;AACA;AACA;AACA;AACaC,eAAe,GAD3BH,qBAAqB,CAAAI,MAAA,0BAAAC,gBAAA,YAAAF,gBAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;IAEZU,OAAO,GAA0B,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;IAwBrCW,UAAU,GAAG,UAACC,IAAoB,UAAMZ,KAAA,CAAKU,OAAO,GAAGE,IAAI,EAAC,QAAAZ,KAAA,EAAAa,cAAA,CAAAhB,eAAA,EAAAE,gBAAA,MAAAe,MAAA,GAAAjB,eAAA,CAAAkB,SAAA,CAAAD,MAAA,CApB7DE,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,IAAI,CAACC,QAAQ,GAAGtB,WAAW,CAAC,IAAI,CAACuB,OAAO,CAAC,CAEzC,oBACE1B,KAAA,CAAA2B,aAAA,UAAKC,SAAS,EAAE,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAE,iBACnC7B,KAAA,CAAA2B,aAAA,UAAKC,SAAS,EAAE,IAAI,CAACH,QAAQ,CAACK,aAAa,CAAC,CAAE,EAACC,GAAG,EAAE,IAAI,CAACZ,UAAW,IACjE,IAAI,CAACa,KAAK,CAACC,IAAI,IAAI7B,UACjB,CACF,CAAC,CAEV,CAAC,CAAAkB,MAAA,CAEMY,YAAY,GAAnB,SAAAA,aAAA,EAA8B,CAC5B,OAAOjC,UAAU,CAAC,IAAI,CAACiB,OAAO,CAAC,CAACiB,KAAK,CACvC,CAAC,CAAAb,MAAA,CAEMc,aAAa,GAApB,SAAAA,cAAA,EAA+B,CAC7B,OAAOnC,UAAU,CAAC,IAAI,CAACiB,OAAO,CAAC,CAACmB,MAAM,CACxC,CAAC,QAAAhC,eAAA,GAvBkCL,KAAK,CAACsC,SAAS,MAAAhC,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","getDOMRect","withRenderEnvironment","getJsStyles","THIN_SPACE","TextWidthHelper","_class","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","element","elementRef","node","_inheritsLoose","_proto","prototype","render","jsStyles","emotion","createElement","className","root","textContainer","ref","props","text","getTextWidth","width","getTextHeight","height","Component"],"sources":["TextWidthHelper.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getJsStyles } from './TextWidthHelper.styles';\n\nconst THIN_SPACE = '\\u2009';\n\ninterface TextWidthHelperProps {\n text?: string;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private jsStyles!: ReturnType<typeof getJsStyles>;\n\n public render() {\n this.jsStyles = getJsStyles(this.emotion);\n\n return (\n <div className={this.jsStyles.root()}>\n <div className={this.jsStyles.textContainer()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </div>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) => {\n this.element = node;\n };\n}\n"],"mappings":"iFAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,qBAAqB,QAAQ,6BAA6B;;AAEnE,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD,IAAMC,UAAU,GAAG,QAAQ;;;;;AAK3B;AACA;AACA;AACA;AACaC,eAAe,GAD3BH,qBAAqB,CAAAI,MAAA,0BAAAC,gBAAA,YAAAF,gBAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;IAEZU,OAAO,GAA0B,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;IAwBrCW,UAAU,GAAG,UAACC,IAAoB,EAAK;MAC7CZ,KAAA,CAAKU,OAAO,GAAGE,IAAI;IACrB,CAAC,QAAAZ,KAAA,EAAAa,cAAA,CAAAhB,eAAA,EAAAE,gBAAA,MAAAe,MAAA,GAAAjB,eAAA,CAAAkB,SAAA,CAAAD,MAAA,CAtBME,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,IAAI,CAACC,QAAQ,GAAGtB,WAAW,CAAC,IAAI,CAACuB,OAAO,CAAC,CAEzC,oBACE1B,KAAA,CAAA2B,aAAA,UAAKC,SAAS,EAAE,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAE,iBACnC7B,KAAA,CAAA2B,aAAA,UAAKC,SAAS,EAAE,IAAI,CAACH,QAAQ,CAACK,aAAa,CAAC,CAAE,EAACC,GAAG,EAAE,IAAI,CAACZ,UAAW,IACjE,IAAI,CAACa,KAAK,CAACC,IAAI,IAAI7B,UACjB,CACF,CAAC,CAEV,CAAC,CAAAkB,MAAA,CAEMY,YAAY,GAAnB,SAAAA,aAAA,EAA8B,CAC5B,OAAOjC,UAAU,CAAC,IAAI,CAACiB,OAAO,CAAC,CAACiB,KAAK,CACvC,CAAC,CAAAb,MAAA,CAEMc,aAAa,GAApB,SAAAA,cAAA,EAA+B,CAC7B,OAAOnC,UAAU,CAAC,IAAI,CAACiB,OAAO,CAAC,CAACmB,MAAM,CACxC,CAAC,QAAAhC,eAAA,GAvBkCL,KAAK,CAACsC,SAAS,MAAAhC,MAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","FxInput","FxInputPlayground","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","auto","value","onValueChange","setState","handleRestore","_inheritsLoose","_proto","prototype","render","createElement","type","onRestore","width","Component"],"sources":["FxInputPlayground.tsx"],"sourcesContent":["import React from 'react';\n\nimport { FxInput } from '../../components/FxInput';\n\ninterface FxInputPlaygroundState {\n auto: boolean;\n value: string;\n}\nexport class FxInputPlayground extends React.Component {\n public state: FxInputPlaygroundState = {\n auto: true,\n value: 'auto',\n };\n\n public render(): JSX.Element {\n return (\n <FxInput\n auto={this.state.auto}\n type={'text'}\n value={this.state.value}\n onRestore={this.handleRestore}\n onValueChange={this.onValueChange}\n width={150}\n />\n );\n }\n\n private onValueChange = (value: string) => {\n this.setState({ value, auto: false });\n };\n\n private handleRestore = () => {\n this.setState({\n value: 'auto',\n auto: true,\n });\n };\n}\n"],"mappings":"sEAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,OAAO,QAAQ,0BAA0B;;;;;;AAMlD,WAAaC,iBAAiB,0BAAAC,gBAAA,YAAAD,kBAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;IACrBU,KAAK,GAA2B;MACrCC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;IACT,CAAC,CAAAZ,KAAA;;;;;;;;;;;;;;;IAeOa,aAAa,GAAG,UAACD,KAAa,EAAK;MACzCZ,KAAA,CAAKc,QAAQ,CAAC,EAAEF,KAAK,EAALA,KAAK,EAAED,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC,CAAAX,KAAA;;IAEOe,aAAa,GAAG,YAAM;MAC5Bf,KAAA,CAAKc,QAAQ,CAAC;QACZF,KAAK,EAAE,MAAM;QACbD,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,QAAAX,KAAA,EAAAgB,cAAA,CAAAlB,iBAAA,EAAAC,gBAAA,MAAAkB,MAAA,GAAAnB,iBAAA,CAAAoB,SAAA,CAAAD,MAAA,CAtBME,MAAM,GAAb,SAAAA,OAAA,EAA6B,CAC3B,oBACEvB,KAAA,CAAAwB,aAAA,CAACvB,OAAO,IACNc,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAK,EACtBU,IAAI,EAAE,MAAO,EACbT,KAAK,EAAE,IAAI,CAACF,KAAK,CAACE,KAAM,EACxBU,SAAS,EAAE,IAAI,CAACP,aAAc,EAC9BF,aAAa,EAAE,IAAI,CAACA,aAAc,EAClCU,KAAK,EAAE,GAAI,EACZ,CAAC,CAEN,CAAC,QAAAzB,iBAAA,GAjBoCF,KAAK,CAAC4B,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","FxInput","FxInputPlayground","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","auto","value","onValueChange","setState","handleRestore","_inheritsLoose","_proto","prototype","render","createElement","type","onRestore","width","Component"],"sources":["FxInputPlayground.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\n\nimport { FxInput } from '../../components/FxInput';\n\ninterface FxInputPlaygroundState {\n auto: boolean;\n value: string;\n}\nexport class FxInputPlayground extends React.Component {\n public state: FxInputPlaygroundState = {\n auto: true,\n value: 'auto',\n };\n\n public render(): JSX.Element {\n return (\n <FxInput\n auto={this.state.auto}\n type={'text'}\n value={this.state.value}\n onRestore={this.handleRestore}\n onValueChange={this.onValueChange}\n width={150}\n />\n );\n }\n\n private onValueChange = (value: string) => {\n this.setState({ value, auto: false });\n };\n\n private handleRestore = () => {\n this.setState({\n value: 'auto',\n auto: true,\n });\n };\n}\n"],"mappings":"sEAAA,OAAOA,KAAK,MAAoB,OAAO;;AAEvC,SAASC,OAAO,QAAQ,0BAA0B;;;;;;AAMlD,WAAaC,iBAAiB,0BAAAC,gBAAA,YAAAD,kBAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;IACrBU,KAAK,GAA2B;MACrCC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;IACT,CAAC,CAAAZ,KAAA;;;;;;;;;;;;;;;IAeOa,aAAa,GAAG,UAACD,KAAa,EAAK;MACzCZ,KAAA,CAAKc,QAAQ,CAAC,EAAEF,KAAK,EAALA,KAAK,EAAED,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC,CAAAX,KAAA;;IAEOe,aAAa,GAAG,YAAM;MAC5Bf,KAAA,CAAKc,QAAQ,CAAC;QACZF,KAAK,EAAE,MAAM;QACbD,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,QAAAX,KAAA,EAAAgB,cAAA,CAAAlB,iBAAA,EAAAC,gBAAA,MAAAkB,MAAA,GAAAnB,iBAAA,CAAAoB,SAAA,CAAAD,MAAA,CAtBME,MAAM,GAAb,SAAAA,OAAA,EAA6B,CAC3B,oBACEvB,KAAA,CAAAwB,aAAA,CAACvB,OAAO,IACNc,IAAI,EAAE,IAAI,CAACD,KAAK,CAACC,IAAK,EACtBU,IAAI,EAAE,MAAO,EACbT,KAAK,EAAE,IAAI,CAACF,KAAK,CAACE,KAAM,EACxBU,SAAS,EAAE,IAAI,CAACP,aAAc,EAC9BF,aAAa,EAAE,IAAI,CAACA,aAAc,EAClCU,KAAK,EAAE,GAAI,EACZ,CAAC,CAEN,CAAC,QAAAzB,iBAAA,GAjBoCF,KAAK,CAAC4B,SAAS","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  interface FxInputPlaygroundState {
3
3
  auto: boolean;
4
4
  value: string;