@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.
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
- package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
- package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +2 -2
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +4 -1
- package/cjs/components/Modal/Modal.js +8 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -2
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -2
- package/cjs/components/SidePage/SidePage.js +9 -3
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
- package/cjs/components/Sticky/Sticky.js +6 -2
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Token/TokenView.d.ts +2 -1
- package/cjs/components/Token/TokenView.js +4 -4
- package/cjs/components/Token/TokenView.js.map +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +14 -7
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/hooks/useDrop.js +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +6 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
- package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.js +2 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
- package/cjs/lib/dom/getDOMRect.d.ts +1 -1
- package/cjs/lib/dom/getDOMRect.js +3 -1
- package/cjs/lib/dom/getDOMRect.js.map +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +3 -2
- package/cjs/lib/forwardRefAndName.js +2 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/getElementRef.d.ts +5 -0
- package/cjs/lib/getElementRef.js +16 -0
- package/cjs/lib/getElementRef.js.map +1 -0
- package/cjs/lib/locale/decorators.d.ts +0 -3
- package/cjs/lib/mergeRefs.d.ts +2 -3
- package/cjs/lib/mergeRefs.js +1 -1
- package/cjs/lib/mergeRefs.js.map +1 -1
- package/cjs/lib/reactGetTextContent.js +6 -1
- package/cjs/lib/reactGetTextContent.js.map +1 -1
- package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/cjs/lib/rootNode/getRootNode.js +1 -24
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/cjs/lib/size/SizeDecorator.d.ts +0 -3
- package/cjs/lib/types/polymorphic-component.d.ts +2 -1
- package/cjs/lib/types/polymorphic-component.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -3
- package/cjs/lib/utils.js +4 -3
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.d.ts +3 -8
- package/components/Button/Button/Button.js +1 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +4 -4
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/Modal/Modal/Modal.js +7 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +4 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -2
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/ResponsiveLayout/decorator.d.ts +0 -3
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -1
- package/components/SidePage/SidePage/SidePage.js +7 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -1
- package/components/SingleToast/SingleToast.d.ts +1 -1
- package/components/Sticky/Sticky/Sticky.js +2 -2
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -1
- package/components/Token/TokenView/TokenView.js +6 -4
- package/components/Token/TokenView/TokenView.js.map +1 -1
- package/components/Token/TokenView.d.ts +2 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +5 -5
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -4
- package/hooks/useDrop/useDrop.js +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/internal/Menu/Menu/Menu.js +2 -2
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
- package/internal/Menu/MenuNavigation.d.ts +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +2 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
- package/lib/dom/getDOMRect.d.ts +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +3 -2
- package/lib/getElementRef/getElementRef.js +11 -0
- package/lib/getElementRef/getElementRef.js.map +1 -0
- package/lib/getElementRef/package.json +6 -0
- package/lib/getElementRef.d.ts +5 -0
- package/lib/locale/decorators.d.ts +0 -3
- package/lib/mergeRefs/mergeRefs.js.map +1 -1
- package/lib/mergeRefs.d.ts +2 -3
- package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
- package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/lib/rootNode/getRootNode/getRootNode.js +0 -15
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/lib/size/SizeDecorator.d.ts +0 -3
- package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
- package/lib/types/polymorphic-component.d.ts +2 -1
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -3
- package/lib/withClassWrapper.d.ts +3 -8
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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","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 +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,
|
|
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():
|
|
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
|
-
|
|
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) =>
|
|
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,
|
|
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":[]}
|