@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","_interopRequireDefault","require","_lodash","_isInstanceOf","LayoutEvents","_interopRequireWildcard","_CommonWrapper","_rootNode","_getDOMRect","_createPropsGetter","_currentEnvironment","_callChildRef","_renderEnvironment","_ScrollContainer2","_ScrollContainer3","_ScrollContainer4","_ScrollBar","_class","_ScrollContainer","ScrollContainerDataTids","exports","root","inner","ScrollContainer","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","initialIsScrollBarVisible","showScrollBar","state","isScrollBarXVisible","isScrollBarYVisible","isHovered","renderScrollbar","axis","_this$getProps","offsetY","offsetX","invert","disableAnimations","isAxisX","refScrollBar","refScrollBarX","refScrollBarY","offset","isVisible","default","createElement","ScrollBar","ref","onScroll","handleScroll","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","convertScrollbarXScrollState","props","onScrollStateChangeX","scrollYState","convertScrollbarYScrollState","onScrollStateChangeY","prevScrollState","_this$getProps2","showScrollBarOnMouseWheel","scrollbar","refInner","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","scrollRef","callChildRef","handleNativeScroll","event","_this$scrollY","_this$scrollX","reflow","preventDefault","emit","isScrollBarVisible","setState","hideScrollBar","debounce","_this$scrollX2","_this$scrollY2","isScrollBarXHovered","getHover","isScrollBarYHovered","hideScrollBarDelay","isInstanceOf","globalObject","WheelEvent","shiftKey","hasScrollBar","_scrollSizeParameters","scrollSizeParametersNames","pos","size","deltaY","handleMouseMove","_this$scrollY3","_this$scrollX3","right","getDOMRect","currentTarget","pageX","bottom","pageY","setHover","handleMouseLeave","_this$scrollY4","_this$scrollX4","updateInnerElement","_this$scrollX5","_this$scrollY5","setInnerElement","_inheritsLoose2","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","disabled","render","styles","getStyles","emotion","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","scrollbarX","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","onMouseMove","onMouseLeave","style","cx","globalClasses","scrollTo","scrollLeft","offsetLeft","scrollTop","getScrollYOffset","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["ScrollContainer.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport type { ScrollAxis, ScrollBarScrollState } from './ScrollBar';\nimport { ScrollBar } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /** Инвертирует цвет скроллбара.\n * @default false */\n invert?: boolean;\n\n /** Задает максимальную высоту. */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Отключает скролл окна, когда меню открыто.\n * @default false */\n preventWindowScroll?: boolean;\n\n /** Задает поведение скролла. (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto' */\n scrollBehaviour?: ScrollBehaviour;\n\n /** Задает функцию, которая вызывается при скроле по горизонтали. */\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n\n /** Задает функцию, которая вызывается при скроле по вертикали. */\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n\n /** Задает функцию, которая вызывается при скроле. */\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n\n /** Отключает кастомный скролл. */\n disabled?: boolean;\n\n /** Задает смещение вертикального скроллбара. */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n\n /** Задает смещение горизонтального скроллбара. */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n\n /** Определяет, нужно ли показывать скроллбар. */\n showScrollBar?: 'always' | 'scroll' | 'hover' | 'never';\n\n /** Устанавливает задержку в миллисекундах перед скрытием скроллбара.\n * Работает только при hideScrollBar = true или showScrollBar = 'scroll' | 'hover'. */\n hideScrollBarDelay?: number;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n scrollRef?: React.Ref<HTMLDivElement | null>;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'disableAnimations' | 'hideScrollBarDelay' | 'showScrollBar'\n >\n>;\n\ninterface ScrollContainerState {\n isScrollBarXVisible: boolean;\n isScrollBarYVisible: boolean;\n isHovered: boolean;\n}\n\n/**\n * `ScrollContainer` используется для создания контейнера с кастомными полосами прокрутки, который обеспечивает прокрутку содержимого по горизонтали или вертикали.\n */\n@withRenderEnvironment\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps, ScrollContainerState> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n public static displayName = 'ScrollContainer';\n\n public inner: Nullable<HTMLElement>;\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n showScrollBar: 'always',\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private initialIsScrollBarVisible = this.getProps().showScrollBar === 'always';\n\n public state: ScrollContainerState = {\n isScrollBarXVisible: this.initialIsScrollBarVisible,\n isScrollBarYVisible: this.initialIsScrollBarVisible,\n isHovered: false,\n };\n\n public componentDidMount() {\n this.updateInnerElement();\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n\n if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {\n this.updateInnerElement();\n }\n\n if (prevProps.showScrollBar !== this.props.showScrollBar) {\n if (this.props.showScrollBar === 'always') {\n this.setState({ isScrollBarXVisible: true, isScrollBarYVisible: true });\n } else if (this.props.showScrollBar === 'never') {\n this.setState({ isScrollBarXVisible: false, isScrollBarYVisible: false });\n }\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={this.styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={this.cx(this.styles.inner(), globalClasses.inner)}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n public hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const { offsetY, offsetX, invert, disableAnimations } = this.getProps();\n const isAxisX = axis === 'x';\n const refScrollBar = isAxisX ? this.refScrollBarX : this.refScrollBarY;\n const offset = isAxisX ? offsetX : offsetY;\n const isVisible = isAxisX ? this.state.isScrollBarXVisible : this.state.isScrollBarYVisible;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScroll={this.handleScroll}\n offset={offset}\n disableAnimations={disableAnimations}\n isVisible={isVisible}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private handleScroll = (\n axis: ScrollAxis,\n scrollState: ScrollBarScrollState,\n prevScrollState: ScrollBarScrollState,\n ) => {\n if (scrollState !== prevScrollState) {\n this.handleScrollStateChange(scrollState, axis);\n }\n const { showScrollBar } = this.getProps();\n showScrollBar === 'scroll' && this.showScrollBarOnMouseWheel(axis);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n\n if (this.props.scrollRef) {\n callChildRef(this.props.scrollRef, element);\n }\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow();\n this.scrollX?.reflow();\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private showScrollBarOnMouseWheel = (axis: ScrollAxis) => {\n const isScrollBarVisible = axis === 'x' ? this.state.isScrollBarXVisible : this.state.isScrollBarYVisible;\n if (!isScrollBarVisible) {\n axis === 'x' ? this.setState({ isScrollBarXVisible: true }) : this.setState({ isScrollBarYVisible: true });\n }\n this.hideScrollBar(axis);\n };\n\n private readonly hideScrollBar = debounce((axis: ScrollAxis | 'both') => {\n if (this.state.isHovered) {\n return;\n }\n const isScrollBarXHovered = this.scrollX?.getHover();\n const isScrollBarYHovered = this.scrollY?.getHover();\n if (axis === 'both') {\n !isScrollBarXHovered && !isScrollBarYHovered\n ? this.setState({ isScrollBarXVisible: false, isScrollBarYVisible: false })\n : this.hideScrollBar('both');\n } else if (axis === 'x') {\n !isScrollBarXHovered ? this.setState({ isScrollBarXVisible: false }) : this.hideScrollBar('x');\n } else {\n !isScrollBarYHovered ? this.setState({ isScrollBarYVisible: false }) : this.hideScrollBar('y');\n }\n }, this.getProps().hideScrollBarDelay);\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n\n this.getProps().showScrollBar === 'hover' &&\n !this.state.isHovered &&\n this.setState({ isScrollBarXVisible: true, isScrollBarYVisible: true, isHovered: true });\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n if (this.getProps().showScrollBar === 'hover') {\n this.setState({ isHovered: false });\n this.hideScrollBar('both');\n }\n };\n\n private updateInnerElement = () => {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_isInstanceOf","LayoutEvents","_interopRequireWildcard","_CommonWrapper","_rootNode","_getDOMRect","_createPropsGetter","_currentEnvironment","_callChildRef","_renderEnvironment","_ScrollContainer2","_ScrollContainer3","_ScrollContainer4","_ScrollBar","_class","_ScrollContainer","ScrollContainerDataTids","exports","root","inner","ScrollContainer","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","initialIsScrollBarVisible","showScrollBar","state","isScrollBarXVisible","isScrollBarYVisible","isHovered","renderScrollbar","axis","_this$getProps","offsetY","offsetX","invert","disableAnimations","isAxisX","refScrollBar","refScrollBarX","refScrollBarY","offset","isVisible","default","createElement","ScrollBar","ref","onScroll","handleScroll","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","convertScrollbarXScrollState","props","onScrollStateChangeX","scrollYState","convertScrollbarYScrollState","onScrollStateChangeY","prevScrollState","_this$getProps2","showScrollBarOnMouseWheel","scrollbar","refInner","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","scrollRef","callChildRef","handleNativeScroll","event","_this$scrollY","_this$scrollX","reflow","preventDefault","emit","isScrollBarVisible","setState","hideScrollBar","debounce","_this$scrollX2","_this$scrollY2","isScrollBarXHovered","getHover","isScrollBarYHovered","hideScrollBarDelay","isInstanceOf","globalObject","WheelEvent","shiftKey","hasScrollBar","_scrollSizeParameters","scrollSizeParametersNames","pos","size","deltaY","handleMouseMove","_this$scrollY3","_this$scrollX3","right","getDOMRect","currentTarget","pageX","bottom","pageY","setHover","handleMouseLeave","_this$scrollY4","_this$scrollX4","updateInnerElement","_this$scrollX5","_this$scrollY5","setInnerElement","_inheritsLoose2","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","disabled","render","styles","getStyles","emotion","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","scrollbarX","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","onMouseMove","onMouseLeave","style","cx","globalClasses","scrollTo","scrollLeft","offsetLeft","scrollTop","getScrollYOffset","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["ScrollContainer.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n getScrollYOffset,\n} from './ScrollContainer.helpers';\nimport type { ScrollAxis, ScrollBarScrollState } from './ScrollBar';\nimport { ScrollBar } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /** Инвертирует цвет скроллбара.\n * @default false */\n invert?: boolean;\n\n /** Задает максимальную высоту. */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Отключает скролл окна, когда меню открыто.\n * @default false */\n preventWindowScroll?: boolean;\n\n /** Задает поведение скролла. (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto' */\n scrollBehaviour?: ScrollBehaviour;\n\n /** Задает функцию, которая вызывается при скроле по горизонтали. */\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n\n /** Задает функцию, которая вызывается при скроле по вертикали. */\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n\n /** Задает функцию, которая вызывается при скроле. */\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n\n /** Отключает кастомный скролл. */\n disabled?: boolean;\n\n /** Задает смещение вертикального скроллбара. */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n\n /** Задает смещение горизонтального скроллбара. */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n\n /** Определяет, нужно ли показывать скроллбар. */\n showScrollBar?: 'always' | 'scroll' | 'hover' | 'never';\n\n /** Устанавливает задержку в миллисекундах перед скрытием скроллбара.\n * Работает только при hideScrollBar = true или showScrollBar = 'scroll' | 'hover'. */\n hideScrollBarDelay?: number;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n scrollRef?: React.Ref<HTMLDivElement | null>;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'disableAnimations' | 'hideScrollBarDelay' | 'showScrollBar'\n >\n>;\n\ninterface ScrollContainerState {\n isScrollBarXVisible: boolean;\n isScrollBarYVisible: boolean;\n isHovered: boolean;\n}\n\n/**\n * `ScrollContainer` используется для создания контейнера с кастомными полосами прокрутки, который обеспечивает прокрутку содержимого по горизонтали или вертикали.\n */\n@withRenderEnvironment\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps, ScrollContainerState> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n public static displayName = 'ScrollContainer';\n\n public inner: Nullable<HTMLElement>;\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n showScrollBar: 'always',\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private initialIsScrollBarVisible = this.getProps().showScrollBar === 'always';\n\n public state: ScrollContainerState = {\n isScrollBarXVisible: this.initialIsScrollBarVisible,\n isScrollBarYVisible: this.initialIsScrollBarVisible,\n isHovered: false,\n };\n\n public componentDidMount() {\n this.updateInnerElement();\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n\n if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {\n this.updateInnerElement();\n }\n\n if (prevProps.showScrollBar !== this.props.showScrollBar) {\n if (this.props.showScrollBar === 'always') {\n this.setState({ isScrollBarXVisible: true, isScrollBarYVisible: true });\n } else if (this.props.showScrollBar === 'never') {\n this.setState({ isScrollBarXVisible: false, isScrollBarYVisible: false });\n }\n }\n }\n\n public render(): React.ReactNode {\n this.styles = getStyles(this.emotion);\n\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={this.styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={this.cx(this.styles.inner(), globalClasses.inner)}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n public hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const { offsetY, offsetX, invert, disableAnimations } = this.getProps();\n const isAxisX = axis === 'x';\n const refScrollBar = isAxisX ? this.refScrollBarX : this.refScrollBarY;\n const offset = isAxisX ? offsetX : offsetY;\n const isVisible = isAxisX ? this.state.isScrollBarXVisible : this.state.isScrollBarYVisible;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScroll={this.handleScroll}\n offset={offset}\n disableAnimations={disableAnimations}\n isVisible={isVisible}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private handleScroll = (\n axis: ScrollAxis,\n scrollState: ScrollBarScrollState,\n prevScrollState: ScrollBarScrollState,\n ) => {\n if (scrollState !== prevScrollState) {\n this.handleScrollStateChange(scrollState, axis);\n }\n const { showScrollBar } = this.getProps();\n showScrollBar === 'scroll' && this.showScrollBarOnMouseWheel(axis);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n\n if (this.props.scrollRef) {\n callChildRef(this.props.scrollRef, element);\n }\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow();\n this.scrollX?.reflow();\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private showScrollBarOnMouseWheel = (axis: ScrollAxis) => {\n const isScrollBarVisible = axis === 'x' ? this.state.isScrollBarXVisible : this.state.isScrollBarYVisible;\n if (!isScrollBarVisible) {\n axis === 'x' ? this.setState({ isScrollBarXVisible: true }) : this.setState({ isScrollBarYVisible: true });\n }\n this.hideScrollBar(axis);\n };\n\n private readonly hideScrollBar = debounce((axis: ScrollAxis | 'both') => {\n if (this.state.isHovered) {\n return;\n }\n const isScrollBarXHovered = this.scrollX?.getHover();\n const isScrollBarYHovered = this.scrollY?.getHover();\n if (axis === 'both') {\n !isScrollBarXHovered && !isScrollBarYHovered\n ? this.setState({ isScrollBarXVisible: false, isScrollBarYVisible: false })\n : this.hideScrollBar('both');\n } else if (axis === 'x') {\n !isScrollBarXHovered ? this.setState({ isScrollBarXVisible: false }) : this.hideScrollBar('x');\n } else {\n !isScrollBarYHovered ? this.setState({ isScrollBarYVisible: false }) : this.hideScrollBar('y');\n }\n }, this.getProps().hideScrollBarDelay);\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n\n this.getProps().showScrollBar === 'hover' &&\n !this.state.isHovered &&\n this.setState({ isScrollBarXVisible: true, isScrollBarYVisible: true, isHovered: true });\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n if (this.getProps().showScrollBar === 'hover') {\n this.setState({ isHovered: false });\n this.hideScrollBar('both');\n }\n };\n\n private updateInnerElement = () => {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AriaAttributes, HTMLAttributes, ReactNode, ReactPortal } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ButtonUse } from '../Button';
|
|
4
4
|
import type { Nullable } from '../../typings/utility-types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_lodash","_identifiers","_decorators","_reactGetTextContent","_Button","_filterProps","_Input","_Menu","_MenuItem","_MenuSeparator","_RenderLayer","_createPropsGetter","_utils","_ThemeContext","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_ThemeFactory","_Link","_Popup","_ZIndex","_getMenuPositions","_SizeDecorator","_renderEnvironment","_ArrowDownIcon","_Item","_locale","_Select2","_selectTheme","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_dec","_class","_Select","PASS_BUTTON_PROPS","id","disabled","error","use","size","warning","corners","onMouseEnter","onMouseLeave","onMouseOver","SelectIds","menu","SelectDataTids","Select","locale","SelectLocaleHelper","withRenderEnvironment","responsiveLayout","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","apply","concat","state","opened","value","props","defaultValue","searchPattern","menuId","getRandomID","buttonElement","getProps","createPropsGetter","defaultProps","open","setState","onOpen","close","onClose","focus","getDefaultButtonParams","_this$renderLabel","renderLabel","label","isPlaceholder","buttonParams","onClick","toggle","onKeyDown","handleKey","getSearch","default","createElement","className","styles","search","Input","ref","debouncedFocusInput","onValueChange","handleSearch","width","getMobileSearch","autoFocus","getMenuItems","isMobile","isMobileLayout","mapItems","iValue","item","i","comment","isFunction","element","React","isValidElement","cloneElement","isReactUINode","MenuItem","areValuesEqual","select","bind","renderItem","popupGetParent","getRootNode","focusInput","input","debounce","refMenu","e","isKeySpace","isKeyArrowVertical","preventDefault","isKeyEscape","isKeyArrowUp","up","isKeyArrowDown","down","isKeyEnter","enter","_this$menu","highlightItem","buttonRef","getButton","_props$ariaLabel","button","_renderButton","renderDefaultButton","Children","only","onFocus","onBlur","_inheritsLoose2","_proto","componentDidUpdate","_prevProps","prevState","_this$globalObject$ad","_this$globalObject","globalObject","addEventListener","_this$globalObject$re","_this$globalObject2","removeEventListener","render","_this2","linkStyles","getLinkStyles","emotion","getStyles","ThemeContext","Consumer","theme","ThemeFactory","create","menuOffsetY","selectMenuOffsetY","Provider","renderMain","getMenuRenderer","renderMobileMenu","renderMenu","_this$getProps$dataT","_this$cx","dataTid","root","getSelectTheme","style","maxWidth","undefined","cx","rootMobile","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","_this$props$placehold","_this$locale","getValue","getItemByValue","isNonNullable","renderValue","placeholder","getLeftIconClass","leftIconLink","leftIconLarge","leftIconMedium","leftIconSmall","params","_this$cx2","_this$cx3","_this$cx4","buttonProps","filterProps","align","labelProps","customUsePlaceholder","placeholderDisabled","paddingRight","getSelectIconGap","useIsCustom","icon","ArrowDownIcon","Button","selectButtonContainer","_icon","arrowWrap","arrowDisabled","customUseArrow","_this3","getArrowPadding","selectIconGapLarge","selectIconGapMedium","selectIconGapSmall","arrowLeftPadding","parseFloat","_this$getProps","menuWidth","menuPos","menuAlign","positions","Popup","hasShadow","getMenuPositions","anchorElement","priority","ZIndex","priorities","PopupMenu","disablePortal","margin","parseInt","minWidth","popupOffset","menuOffset","Menu","hasMargin","onItemClick","maxHeight","maxMenuHeight","MobilePopup","headerChildComponent","caption","mobileMenuHeaderText","onCloseRequest","disableScrollContainer","_this$props$onValueCh","_this$props","fn","items","pattern","toLowerCase","result","index","_iterator","_createForOfIteratorHelperLoose2","_step","done","entry","_normalizeEntry","normalizeEntry","filterItem","push","_iterator2","_step2","_normalizeEntry2","itemValue","value1","value2","Component","__KONTUR_REACT_UI__","displayName","Item","SEP","MenuSeparator","staticElement","invariant","isArray","getTextFromItem","reactGetTextContent","toString","itemText","indexOf"],"sources":["Select.tsx"],"sourcesContent":["import type { ReactNode, ReactPortal, AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport debounce from 'lodash.debounce';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent';\nimport type { ButtonProps, ButtonUse } from '../Button';\nimport { Button } from '../Button';\nimport { filterProps } from '../../lib/filterProps';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport type { MenuItemProps } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { MenuHeaderProps } from '../MenuHeader';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getStyles as getLinkStyles } from '../Link/Link.styles';\nimport { Popup, type PopupPositionsType } from '../../internal/Popup';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { Item } from './Item';\nimport type { SelectLocale } from './locale';\nimport { SelectLocaleHelper } from './locale';\nimport { getStyles } from './Select.styles';\nimport { getSelectTheme } from './selectTheme';\nimport { SelectDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface ButtonParams\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'> {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает лейбл. */\n label: React.ReactNode;\n\n /** Задает функцию, которая вызывается при клике на селект. */\n onClick: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** @ignore */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает значение по умолчанию. */\n defaultValue?: TValue;\n\n menuOffset?: number;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает функцию, которая отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Задает набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом: если элемент — это массив, то первый элемент является значением,\n * второй — отображается в списке, а третий – комментарий;\n * если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя можно использовать `Select.SEP`.\n *\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * @example\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n *\n * Чтобы добавить стандартный отступ для статического элемента:\n * @example\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Задает позиции выпадающего меню. */\n positions?: PopupPositionsType[];\n\n /** Задает текущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: TValue) => void;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Задает функцию, которая отображает элемент в выпадающем списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию сравнения `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Показывает строку поиска в списке. */\n search?: boolean;\n\n /** Задает значение. */\n value?: TValue;\n\n theme?: ThemeIn | Theme;\n\n /** Задает длину контрола. */\n width?: number | string;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задаёт HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** Задаёт HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<unknown> {\n focus: (event?: unknown) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use'>\n>;\n\n/**\n * Раскрывающийся список `Select` позволяет выбрать значение из заранее известного набора вариантов.\n *\n * Используйте `Select` при:\n * * заполнении форм, например для выбора месяца.\n * * переключении состояний, например, фильтра.\n * * выборе предустановленных настроек, например, частоты уведомлений, часового пояса.\n *\n * Не используйте `Select` для выбора элементов меню. В таком случае воспользуйтесь компонентом Dropdown.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n@withSize\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n };\n\n public static Item = Item;\n public static SEP = () => <MenuSeparator />;\n\n public static staticElement = (element: React.ReactElement | (() => React.ReactElement)) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private linkStyles!: ReturnType<typeof getLinkStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n this.globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n this.globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render() {\n this.linkStyles = getLinkStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public open = () => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /**\n * @public\n */\n public close = () => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={this.cx({ [this.styles.root()]: true, [this.styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder ?? this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return this.styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return this.styles.leftIconLarge(this.theme);\n case 'medium':\n return this.styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: this.cx({\n [this.styles.label()]: use !== 'link',\n [this.styles.placeholder(this.theme)]: params.isPlaceholder,\n [this.styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [this.styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.size} />;\n\n return (\n <Button {...buttonProps}>\n <div\n className={this.cx(this.styles.selectButtonContainer(), {\n [this.linkStyles.root(this.theme)]: use === 'link',\n })}\n >\n {this.props._icon && <div className={this.getLeftIconClass(this.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={this.cx(this.styles.arrowWrap(this.theme), {\n [this.styles.arrowDisabled(this.theme)]: this.props.disabled,\n [this.styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign, positions } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={positions ?? getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={this.styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n return (\n <MobilePopup\n headerChildComponent={search}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: unknown) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: string | React.ReactNode | (() => React.ReactNode) | number): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAG,YAAA,GAAAH,OAAA;;;;;;;;AAQA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;;AAEA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;;AAEA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,cAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;AACA,IAAAa,kBAAA,GAAAb,OAAA;;AAEA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,aAAA,GAAAf,OAAA;;;AAGA,IAAAgB,cAAA,GAAAhB,OAAA;AACA,IAAAiB,YAAA,GAAAjB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;;AAEA,IAAAmB,SAAA,GAAAnB,OAAA;AACA,IAAAoB,aAAA,GAAApB,OAAA;;;AAGA,IAAAqB,KAAA,GAAArB,OAAA;AACA,IAAAsB,MAAA,GAAAtB,OAAA;AACA,IAAAuB,OAAA,GAAAvB,OAAA;AACA,IAAAwB,iBAAA,GAAAxB,OAAA;AACA,IAAAyB,cAAA,GAAAzB,OAAA;AACA,IAAA0B,kBAAA,GAAA1B,OAAA;;AAEA,IAAA2B,cAAA,GAAA3B,OAAA;AACA,IAAA4B,KAAA,GAAA5B,OAAA;;AAEA,IAAA6B,OAAA,GAAA7B,OAAA;AACA,IAAA8B,QAAA,GAAA9B,OAAA;AACA,IAAA+B,YAAA,GAAA/B,OAAA;AACA,IAAAgC,KAAA,GAAAhC,OAAA;;AAEAiC,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA,OAAAA,GAAA,kBAAAA,GAAA,8BAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA,cAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA,UAAAK,OAAA,CAAAL,GAAA,IAAAJ,KAAA,CAAAI,GAAA,KAAuB,IAAAM,IAAA,EAAAC,MAAA,EAAAC,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BvB,IAAMC,iBAAiB,GAAG;EACxBC,EAAE,EAAE,IAAI;EACRC,QAAQ,EAAE,IAAI;EACdC,KAAK,EAAE,IAAI;EACXC,GAAG,EAAE,IAAI;EACTC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,IAAI;;EAEbC,YAAY,EAAE,IAAI;EAClBC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE;AACf,CAAC;;AAEM,IAAMC,SAAS,GAAAf,OAAA,CAAAe,SAAA,GAAG;EACvBC,IAAI,EAAEC,oBAAc,CAACD;AACvB,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6JV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GATA;;;;;;;;AAiBaE,MAAM,GAAAlB,OAAA,CAAAkB,MAAA,IAAAjB,IAAA,GAJlB,IAAAkB,kBAAM,EAAC,QAAQ,EAAEC,0BAAkB,CAAC,MAHpCC,wCAAqB,EAAAnB,MAAA,OACrBoB,2BAAgB,EAAApB,MAAA,OAChBqB,kBAAQ,EAAArB,MAAA,GAAAD,IAAA,CAAAC,MAAA,OAERsB,uBAAQ,EAAAtB,MAAA,IAAAC,OAAA,0BAAAsB,gBAAA,YAAAP,OAAA,OAAAQ,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,CAAA3B,IAAA,CAAAmC,KAAA,CAAAR,gBAAA,SAAAS,MAAA,CAAAJ,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;IA0BAS,KAAK,GAAwB;MAClCC,MAAM,EAAE,KAAK;MACbC,KAAK,EAAEX,KAAA,CAAKY,KAAK,CAACC,YAAY;MAC9BC,aAAa,EAAE;IACjB,CAAC,CAAAd,KAAA;;;;;;;;;;;;IAYOe,MAAM,GAAG1B,SAAS,CAACC,IAAI,GAAG,IAAA0B,kBAAW,EAAC,CAAC,CAAAhB,KAAA;IACvCiB,aAAa,GAAiC,IAAI,CAAAjB,KAAA;IAClDkB,QAAQ,GAAG,IAAAC,oCAAiB,EAAC3B,MAAM,CAAC4B,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCzD;AACF;AACA,OAFEpB,KAAA;IAGOqB,IAAI,GAAG,YAAM;MAClB,IAAI,CAACrB,KAAA,CAAKS,KAAK,CAACC,MAAM,EAAE;QACtBV,KAAA,CAAKsB,QAAQ,CAAC,EAAEZ,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;;QAE/B,IAAIV,KAAA,CAAKY,KAAK,CAACW,MAAM,EAAE;UACrBvB,KAAA,CAAKY,KAAK,CAACW,MAAM,CAAC,CAAC;QACrB;MACF;IACF,CAAC;;IAED;AACF;AACA,OAFEvB,KAAA;IAGOwB,KAAK,GAAG,YAAM;MACnB,IAAIxB,KAAA,CAAKS,KAAK,CAACC,MAAM,EAAE;QACrBV,KAAA,CAAKsB,QAAQ,CAAC,EAAEZ,MAAM,EAAE,KAAK,EAAEI,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;;QAEnD,IAAId,KAAA,CAAKY,KAAK,CAACa,OAAO,EAAE;UACtBzB,KAAA,CAAKY,KAAK,CAACa,OAAO,CAAC,CAAC;QACtB;MACF;IACF,CAAC;;IAED;AACF;AACA,OAFEzB,KAAA;IAGO0B,KAAK,GAAG,YAAM;MACnB,IAAI1B,KAAA,CAAKiB,aAAa,IAAIjB,KAAA,CAAKiB,aAAa,CAACS,KAAK,EAAE;QAClD1B,KAAA,CAAKiB,aAAa,CAACS,KAAK,CAAC,CAAC;MAC5B;IACF,CAAC,CAAA1B,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DO2B,sBAAsB,GAAG,YAAoB;MACnD,IAAAC,iBAAA,GAAiC5B,KAAA,CAAK6B,WAAW,CAAC,CAAC,CAA3CC,KAAK,GAAAF,iBAAA,CAALE,KAAK,CAAEC,aAAa,GAAAH,iBAAA,CAAbG,aAAa;;MAE5B,IAAMC,YAA0B,GAAG;QACjCtB,MAAM,EAAEV,KAAA,CAAKS,KAAK,CAACC,MAAM;QACzBoB,KAAK,EAALA,KAAK;QACLC,aAAa,EAAbA,aAAa;QACbE,OAAO,EAAEjC,KAAA,CAAKkC,MAAM;QACpBC,SAAS,EAAEnC,KAAA,CAAKoC,SAAS;QACzBrD,IAAI,EAAEiB,KAAA,CAAKjB,IAAI;QACfH,QAAQ,EAAEoB,KAAA,CAAKkB,QAAQ,CAAC,CAAC,CAACtC;MAC5B,CAAC;;MAED,OAAOoD,YAAY;IACrB,CAAC,CAAAhC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4IOqC,SAAS,GAAG,YAAM;MACxB;QACE1G,MAAA,CAAA2G,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAExC,KAAA,CAAKyC,MAAM,CAACC,MAAM,CAAC,CAAE,EAACP,SAAS,EAAEnC,KAAA,CAAKoC,SAAU;QAC9DzG,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAClG,MAAA,CAAAsG,KAAK,IAACC,GAAG,EAAE5C,KAAA,CAAK6C,mBAAoB,EAACC,aAAa,EAAE9C,KAAA,CAAK+C,YAAa,EAACC,KAAK,EAAC,MAAM,EAAE;QACnF,CAAC;;IAEV,CAAC,CAAAhD,KAAA;;;;;;;;;;;;;;;;;;;;IAoBOiD,eAAe,GAAG,YAAM;MAC9B;QACEtH,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAClG,MAAA,CAAAsG,KAAK;UACJO,SAAS;UACTvC,KAAK,EAAEX,KAAA,CAAKS,KAAK,CAACK,aAAc;UAChC8B,GAAG,EAAE5C,KAAA,CAAK6C,mBAAoB;UAC9BC,aAAa,EAAE9C,KAAA,CAAK+C,YAAa;UACjCC,KAAK,EAAC,MAAM;QACb,CAAC;;IAEN,CAAC,CAAAhD,KAAA;;IAEOmD,YAAY,GAAG,UAACxC,KAAuB,EAAK;MAClD,IAAMyC,QAAQ,GAAGpD,KAAA,CAAKqD,cAAc;MACpC,IAAMtE,IAAI,GAAGiB,KAAA,CAAKjB,IAAI;;MAEtB,OAAOiB,KAAA,CAAKsD,QAAQ;QAClB,UAACC,MAAc,EAAEC,IAAqC,EAAEC,CAAS,EAAEC,OAAkC,EAAK;UACxG,IAAI,IAAAC,iBAAU,EAACH,IAAI,CAAC,EAAE;YACpB,IAAMI,OAAO,GAAGJ,IAAI,CAAC,CAAC;;YAEtB,kBAAIK,cAAK,CAACC,cAAc,CAACF,OAAO,CAAC,EAAE;cACjC,oBAAOC,cAAK,CAACE,YAAY,CAACH,OAAO,EAAE,EAAE3F,GAAG,EAAEwF,CAAC,EAAEL,QAAQ,EAARA,QAAQ,EAAErE,IAAI,EAAJA,IAAI,CAAC,CAAkB,CAAC;YACjF;;YAEA,OAAO,IAAI;UACb;;UAEA,kBAAI8E,cAAK,CAACC,cAAc,CAACN,IAAI,CAAC,EAAE;YAC9B,IAAI,IAAAQ,oBAAa,EAAC,UAAU,EAAER,IAAI,CAAC,EAAE;cACnC,oBAAOK,cAAK,CAACE,YAAY,CAACP,IAAI,EAAE,EAAEvF,GAAG,EAAEwF,CAAC,EAAEL,QAAQ,EAARA,QAAQ,EAAErE,IAAI,EAAJA,IAAI,CAAC,CAAkB,CAAC;YAC9E;YACA,IAAI,IAAAiF,oBAAa,EAAC,YAAY,EAAER,IAAI,CAAC,EAAE;cACrC,oBAAOK,cAAK,CAACE,YAAY,CAACP,IAAI,EAAE,EAAEzE,IAAI,EAAJA,IAAI,CAAC,CAAoB,CAAC;YAC9D;YACA,oBAAO8E,cAAK,CAACE,YAAY,CAACP,IAAI,EAAE,EAAEvF,GAAG,EAAEwF,CAAC,CAAC,CAAC,CAAC;UAC7C;;UAEA;YACE9H,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAChG,SAAA,CAAA0H,QAAQ;cACPhG,GAAG,EAAEwF,CAAE;cACPhD,KAAK,EAAET,KAAA,CAAKkE,cAAc,CAACX,MAAM,EAAE5C,KAAK,CAAC,GAAG,UAAU,GAAG,IAAK;cAC9DsB,OAAO,EAAEjC,KAAA,CAAKmE,MAAM,CAACC,IAAI,CAAApE,KAAA,EAAOuD,MAAM,CAAE;cACxCG,OAAO,EAAEA,OAAQ;cACjBN,QAAQ,EAAEA,QAAS;cACnBrE,IAAI,EAAEiB,KAAA,CAAKjB,IAAK;;YAEfiB,KAAA,CAAKkB,QAAQ,CAAC,CAAC,CAACmD,UAAU,CAACd,MAAM,EAAEC,IAAI;YAChC,CAAC;;QAEf;MACF,CAAC;IACH,CAAC,CAAAxD,KAAA;;IAEOsE,cAAc,GAAG,YAAM;MAC7B,OAAO,IAAAC,qBAAW,EAAAvE,KAAK,CAAC;IAC1B,CAAC;;IAED;IACA;IAAAA,KAAA,CACQwE,UAAU,GAAG,UAACC,KAAY,UAAKA,KAAK,oBAALA,KAAK,CAAE/C,KAAK,CAAC,CAAC,GAAA1B,KAAA;IAC7C6C,mBAAmB,GAAG,IAAA6B,eAAQ,EAAC1E,KAAA,CAAKwE,UAAU,CAAC,CAAAxE,KAAA;;IAE/C2E,OAAO,GAAG,UAACrF,IAAU,EAAK;MAChCU,KAAA,CAAKV,IAAI,GAAGA,IAAI;IAClB,CAAC,CAAAU,KAAA;;IAEOkC,MAAM,GAAG,YAAM;MACrB,IAAIlC,KAAA,CAAKS,KAAK,CAACC,MAAM,EAAE;QACrBV,KAAA,CAAKwB,KAAK,CAAC,CAAC;MACd,CAAC,MAAM;QACLxB,KAAA,CAAKqB,IAAI,CAAC,CAAC;MACb;IACF,CAAC,CAAArB,KAAA;;IAEOoC,SAAS,GAAG,UAACwC,CAAmC,EAAK;MAC3D,IAAI,CAAC5E,KAAA,CAAKS,KAAK,CAACC,MAAM,EAAE;QACtB,IAAI,IAAAmE,uBAAU,EAACD,CAAC,CAAC,IAAI,IAAAE,+BAAkB,EAACF,CAAC,CAAC,EAAE;UAC1CA,CAAC,CAACG,cAAc,CAAC,CAAC;UAClB/E,KAAA,CAAKqB,IAAI,CAAC,CAAC;QACb;MACF,CAAC,MAAM;QACL,QAAQ,IAAI;UACV,KAAK,IAAA2D,wBAAW,EAACJ,CAAC,CAAC;YACjB5E,KAAA,CAAK0B,KAAK,CAAC,CAAC;YACZ1B,KAAA,CAAKwB,KAAK,CAAC,CAAC;YACZ;UACF,KAAK,IAAAyD,yBAAY,EAACL,CAAC,CAAC;YAClBA,CAAC,CAACG,cAAc,CAAC,CAAC;YAClB,IAAI/E,KAAA,CAAKV,IAAI,EAAE;cACbU,KAAA,CAAKV,IAAI,CAAC4F,EAAE,CAAC,CAAC;YAChB;YACA;UACF,KAAK,IAAAC,2BAAc,EAACP,CAAC,CAAC;YACpBA,CAAC,CAACG,cAAc,CAAC,CAAC;YAClB,IAAI/E,KAAA,CAAKV,IAAI,EAAE;cACbU,KAAA,CAAKV,IAAI,CAAC8F,IAAI,CAAC,CAAC;YAClB;YACA;UACF,KAAK,IAAAC,uBAAU,EAACT,CAAC,CAAC;YAChBA,CAAC,CAACG,cAAc,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI/E,KAAA,CAAKV,IAAI,EAAE;cACbU,KAAA,CAAKV,IAAI,CAACgG,KAAK,CAACV,CAAC,CAAC;YACpB;YACA;QACJ;MACF;MACA,IAAI5E,KAAA,CAAKY,KAAK,CAACuB,SAAS,EAAE;QACxBnC,KAAA,CAAKY,KAAK,CAACuB,SAAS,CAACyC,CAAC,CAAC;MACzB;IACF,CAAC,CAAA5E,KAAA;;IAEO+C,YAAY,GAAG,UAACpC,KAAa,EAAK,KAAA4E,UAAA;MACxCvF,KAAA,CAAKsB,QAAQ,CAAC,EAAER,aAAa,EAAEH,KAAK,CAAC,CAAC,CAAC;MACvC,CAAA4E,UAAA,GAAAvF,KAAA,CAAKV,IAAI,aAATiG,UAAA,CAAWC,aAAa,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAAxF,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4DOyF,SAAS,GAAG,UAAC7B,OAAqC,EAAK;MAC7D5D,KAAA,CAAKiB,aAAa,GAAG2C,OAAO;IAC9B,CAAC,CAAA5D,KAAA;;IAEO0F,SAAS,GAAG,UAAC1D,YAA0B,EAAK,KAAA2D,gBAAA;MAClD,IAAMC,MAAM,GAAG5F,KAAA,CAAKY,KAAK,CAACiF,aAAa;MACnC7F,KAAA,CAAKY,KAAK,CAACiF,aAAa,CAAC7D,YAAY,CAAC;MACtChC,KAAA,CAAK8F,mBAAmB,CAAC9D,YAAY,CAAC;;MAE1C,IAAMf,aAAa,GAAG4C,cAAK,CAACkC,QAAQ,CAACC,IAAI,CAACJ,MAAM,CAAC;;MAEjD,OAAO,aAAA/B,cAAK,CAACC,cAAc,CAAC7C,aAAa,CAAC;MACtC4C,cAAK,CAACE,YAAY,CAAC9C,aAAa,EAAwB;QACtD2B,GAAG,EAAE5C,KAAA,CAAKyF,SAAS;QACnBQ,OAAO,EAAEjG,KAAA,CAAKY,KAAK,CAACqF,OAAO;QAC3BC,MAAM,EAAElG,KAAA,CAAKY,KAAK,CAACsF,MAAM;QACzBnH,IAAI,EAAEiB,KAAA,CAAKjB,IAAI;QACf,kBAAkB,EAAEiB,KAAA,CAAKY,KAAK,CAAC,kBAAkB,CAAC;QAClD,eAAe,EAAEZ,KAAA,CAAKS,KAAK,CAACC,MAAM,GAAG,MAAM,GAAG,OAAO;QACrD,eAAe,EAAEV,KAAA,CAAKe,MAAM;QAC5B,YAAY,GAAA4E,gBAAA,GAAG1E,aAAa,CAAwBL,KAAK,CAAC,YAAY,CAAC,YAAA+E,gBAAA,GAAI3F,KAAA,CAAKY,KAAK,CAAC,YAAY;MACpG,CAAC,CAAC;MACFK,aAAa;IACnB,CAAC,QAAAjB,KAAA,MAAAmG,eAAA,CAAA7D,OAAA,EAAA9C,MAAA,EAAAO,gBAAA,MAAAqG,MAAA,GAAA5G,MAAA,CAAAtB,SAAA,CAAAkI,MAAA,CAjfMC,kBAAkB,GAAzB,SAAAA,mBAA0BC,UAAsC,EAAEC,SAA8B,EAAE,CAChG,IAAI,CAACA,SAAS,CAAC7F,MAAM,IAAI,IAAI,CAACD,KAAK,CAACC,MAAM,EAAE,KAAA8F,qBAAA,EAAAC,kBAAA,CAC1C,CAAAD,qBAAA,IAAAC,kBAAA,OAAI,CAACC,YAAY,EAACC,gBAAgB,aAAlCH,qBAAA,CAAApI,IAAA,CAAAqI,kBAAA,EAAqC,UAAU,EAAE,IAAI,CAACjF,KAAK,CAAC,CAC9D,CACA,IAAI+E,SAAS,CAAC7F,MAAM,IAAI,CAAC,IAAI,CAACD,KAAK,CAACC,MAAM,EAAE,KAAAkG,qBAAA,EAAAC,mBAAA,CAC1C,CAAAD,qBAAA,IAAAC,mBAAA,OAAI,CAACH,YAAY,EAACI,mBAAmB,aAArCF,qBAAA,CAAAxI,IAAA,CAAAyI,mBAAA,EAAwC,UAAU,EAAE,IAAI,CAACrF,KAAK,CAAC,CACjE,CACF,CAAC,CAAA4E,MAAA,CAEMW,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAI,CAACC,UAAU,GAAG,IAAAC,eAAa,EAAC,IAAI,CAACC,OAAO,CAAC,CAC7C,IAAI,CAAC1E,MAAM,GAAG,IAAA2E,kBAAS,EAAC,IAAI,CAACD,OAAO,CAAC,CAErC,oBACExL,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC3F,aAAA,CAAAyK,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVP,MAAI,CAACO,KAAK,GAAGC,0BAAY,CAACC,MAAM,CAC9B,EACEC,WAAW,EAAEH,KAAK,CAACI,iBAAiB,CACtC,CAAC,EACDJ,KACF,CAAC,CACD,oBAAO5L,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC3F,aAAA,CAAAyK,YAAY,CAACO,QAAQ,IAACjH,KAAK,EAAEqG,MAAI,CAACO,KAAM,IAAEP,MAAI,CAACa,UAAU,CAAC,CAAyB,CAAC,CAC9F,CACqB,CAAC,CAE5B,CAAC,CAAAzB,MAAA,CAqCO0B,eAAe,GAAvB,SAAAA,gBAAA,EAA0B,CACxB,IAAI,IAAI,CAAClH,KAAK,CAAChC,QAAQ,EAAE,CACvB,OAAO,IAAI,CACb,CAEA,IAAI,IAAI,CAACyE,cAAc,EAAE,CACvB,OAAO,IAAI,CAAC0E,gBAAgB,CAAC,CAAC,CAChC,CAEA,IAAI,IAAI,CAACtH,KAAK,CAACC,MAAM,EAAE,CACrB,OAAO,IAAI,CAACsH,UAAU,CAAC,CAAC,CAC1B,CAEA,OAAO,IAAI,CACb,CAAC,CAAA5B,MAAA,CAEOyB,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAI,oBAAA,EAAAC,QAAA,CACnB,IAAMlG,YAAY,GAAG,IAAI,CAACL,sBAAsB,CAAC,CAAC,CAClD,IAAMwG,OAAO,IAAAF,oBAAA,GAAG,IAAI,CAAC/G,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,YAAA+G,oBAAA,GAAI1I,oBAAc,CAAC6I,IAAI,CAClE,IAAMxC,MAAM,gBACVjK,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC3F,aAAA,CAAAyK,YAAY,CAACO,QAAQ,IAACjH,KAAK,EAAE,IAAA0H,2BAAc,EAAC,IAAI,CAACd,KAAK,EAAE,IAAI,CAAC3G,KAAK,CAAE,IAClE,IAAI,CAAC8E,SAAS,CAAC1D,YAAY,CACP,CACxB,CAED,IAAMoB,QAAQ,GAAG,IAAI,CAACC,cAAc,CAEpC,IAAMiF,KAAK,GAAG,EACZtF,KAAK,EAAE,IAAI,CAACpC,KAAK,CAACoC,KAAK,EACvBuF,QAAQ,EAAE,IAAI,CAAC3H,KAAK,CAAC2H,QAAQ,IAAIC,SAAS,CAC5C,CAAC,CAED,IAAMJ,IAAI,gBACRzM,MAAA,CAAA2G,OAAA,CAAAC,aAAA,WACE,YAAU4F,OAAQ,EAClB3F,SAAS,EAAE,IAAI,CAACiG,EAAE,EAAAP,QAAA,OAAAA,QAAA,CAAI,IAAI,CAACzF,MAAM,CAAC2F,IAAI,CAAC,CAAC,IAAG,IAAI,EAAAF,QAAA,CAAG,IAAI,CAACzF,MAAM,CAACiG,UAAU,CAAC,IAAI,CAACnB,KAAK,CAAC,IAAGnE,QAAQ,EAAA8E,QAAA,CAAE,CAAE,EACnGI,KAAK,EAAEA,KAAM,IAEZ1C,MAAM,EACN,IAAI,CAACkC,eAAe,CAAC,CAClB,CACP,CAED,oBACEnM,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC1F,cAAA,CAAA8L,aAAa,MAAAC,SAAA,CAAAtG,OAAA,IAACuG,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAAClI,KAAK,gBAC1DjF,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC9F,YAAA,CAAAsM,WAAW,IACVC,cAAc,EAAE,IAAI,CAACxH,KAAM,EAC3ByH,cAAc,EAAE,IAAI,CAACzH,KAAM,EAC3B0H,MAAM,EAAE9F,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC3C,KAAK,CAACC,MAAO,IAE5C0H,IACU,CACA,CAAC,CAEpB,CAAC,CAAAhC,MAAA,CAkBOvE,WAAW,GAAnB,SAAAA,YAAA,EAAsB,KAAAsH,qBAAA,EAAAC,YAAA,CACpB,IAAMzI,KAAK,GAAG,IAAI,CAAC0I,QAAQ,CAAC,CAAC,CAC7B,IAAM7F,IAAI,GAAG,IAAI,CAAC8F,cAAc,CAAC3I,KAAK,CAAC,CAEvC,IAAI,IAAA4I,oBAAa,EAAC5I,KAAK,CAAC,EAAE,CACxB,OAAO,EACLmB,KAAK,EAAE,IAAI,CAACZ,QAAQ,CAAC,CAAC,CAACsI,WAAW,CAAC7I,KAAK,EAAE6C,IAAI,CAAC,EAC/CzB,aAAa,EAAE,KAAK,CACtB,CAAC,CACH,CAEA,OAAO,EACLD,KAAK,eAAEnG,MAAA,CAAA2G,OAAA,CAAAC,aAAA,gBAAA4G,qBAAA,GAAO,IAAI,CAACvI,KAAK,CAAC6I,WAAW,YAAAN,qBAAA,IAAAC,YAAA,GAAI,IAAI,CAAC3J,MAAM,qBAAX2J,YAAA,CAAaK,WAAkB,CAAC,EACxE1H,aAAa,EAAE,IAAI,CACrB,CAAC,CACH,CAAC,CAAAqE,MAAA,CAEOsD,gBAAgB,GAAxB,SAAAA,iBAAyB3K,IAA0B,EAAE,CACnD,IAAI,IAAI,CAACmC,QAAQ,CAAC,CAAC,CAACpC,GAAG,KAAK,MAAM,EAAE,CAClC,OAAO,IAAI,CAAC2D,MAAM,CAACkH,YAAY,CAAC,IAAI,CAACpC,KAAK,CAAC,CAC7C,CAEA,QAAQxI,IAAI,GACV,KAAK,OAAO,CACV,OAAO,IAAI,CAAC0D,MAAM,CAACmH,aAAa,CAAC,IAAI,CAACrC,KAAK,CAAC,CAC9C,KAAK,QAAQ,CACX,OAAO,IAAI,CAAC9E,MAAM,CAACoH,cAAc,CAAC,IAAI,CAACtC,KAAK,CAAC,CAC/C,KAAK,OAAO,CACZ,QACE,OAAO,IAAI,CAAC9E,MAAM,CAACqH,aAAa,CAAC,IAAI,CAACvC,KAAK,CAAC,CAChD,CACF,CAAC,CAAAnB,MAAA,CAEON,mBAAmB,GAA3B,SAAAA,oBAA4BiE,MAAoB,EAAE,KAAAC,SAAA,EAAAC,SAAA,EAAAC,SAAA,CAChD,IAAMC,WAAwB,OAAAvB,SAAA,CAAAtG,OAAA,MACzB,IAAA8H,wBAAW,EAAC,IAAI,CAACxJ,KAAK,EAAElC,iBAAiB,CAAC,IAC7C2L,KAAK,EAAE,MAA0C,EACjDzL,QAAQ,EAAE,IAAI,CAACgC,KAAK,CAAChC,QAAQ,EAC7BoE,KAAK,EAAE,MAAM,EACbf,OAAO,EAAE8H,MAAM,CAAC9H,OAAO,EACvBE,SAAS,EAAE4H,MAAM,CAAC5H,SAAS,EAC3B+G,MAAM,EAAEa,MAAM,CAACrJ,MAAM,EACrB3B,IAAI,EAAEgL,MAAM,CAAChL,IAAI,GAClB,CACD,IAAMD,GAAG,GAAG,IAAI,CAACoC,QAAQ,CAAC,CAAC,CAACpC,GAAG,CAE/B,IAAMwL,UAAU,GAAG,EACjB,UAAU,EAAE/K,oBAAc,CAACuC,KAAK,EAChCU,SAAS,EAAE,IAAI,CAACiG,EAAE,EAAAuB,SAAA,OAAAA,SAAA,CACf,IAAI,CAACvH,MAAM,CAACX,KAAK,CAAC,CAAC,IAAGhD,GAAG,KAAK,MAAM,EAAAkL,SAAA,CACpC,IAAI,CAACvH,MAAM,CAACgH,WAAW,CAAC,IAAI,CAAClC,KAAK,CAAC,IAAGwC,MAAM,CAAChI,aAAa,EAAAiI,SAAA,CAC1D,IAAI,CAACvH,MAAM,CAAC8H,oBAAoB,CAAC,CAAC,IAAGR,MAAM,CAAChI,aAAa,IAAIjD,GAAG,KAAK,SAAS,EAAAkL,SAAA,CAC9E,IAAI,CAACvH,MAAM,CAAC+H,mBAAmB,CAAC,IAAI,CAACjD,KAAK,CAAC,IAAGwC,MAAM,CAAChI,aAAa,IAAI,IAAI,CAACnB,KAAK,CAAChC,QAAQ,EAAAoL,SAAA,CAC3F,CAAC,EACF1B,KAAK,EAAE,EACLmC,YAAY,EAAE,IAAI,CAACC,gBAAgB,CAAC,CAAC,CACvC,CAAC,CACH,CAAC,CAED,IAAMC,WAAW,GAAG7L,GAAG,KAAK,SAAS,CAErC,IAAM8L,IAAI,gBAAGjP,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC/E,cAAA,CAAAqN,aAAa,IAAC9L,IAAI,EAAE,IAAI,CAACA,IAAK,EAAE,CAAC,CAE/C,oBACEpD,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAACpG,OAAA,CAAA2O,MAAM,EAAKX,WAAW,eACrBxO,MAAA,CAAA2G,OAAA,CAAAC,aAAA,UACEC,SAAS,EAAE,IAAI,CAACiG,EAAE,CAAC,IAAI,CAAChG,MAAM,CAACsI,qBAAqB,CAAC,CAAC,GAAAd,SAAA,OAAAA,SAAA,CACnD,IAAI,CAAChD,UAAU,CAACmB,IAAI,CAAC,IAAI,CAACb,KAAK,CAAC,IAAGzI,GAAG,KAAK,MAAM,EAAAmL,SAAA,CACnD,CAAE,IAEF,IAAI,CAACrJ,KAAK,CAACoK,KAAK,iBAAIrP,MAAA,CAAA2G,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAE,IAAI,CAACkH,gBAAgB,CAAC,IAAI,CAAC3K,IAAI,CAAE,IAAE,IAAI,CAAC6B,KAAK,CAACoK,KAAW,CAAC,eAC/FrP,MAAA,CAAA2G,OAAA,CAAAC,aAAA,SAAU+H,UAAU,EAAGP,MAAM,CAACjI,KAAY,CAAC,eAE3CnG,MAAA,CAAA2G,OAAA,CAAAC,aAAA,UACEC,SAAS,EAAE,IAAI,CAACiG,EAAE,CAAC,IAAI,CAAChG,MAAM,CAACwI,SAAS,CAAC,IAAI,CAAC1D,KAAK,CAAC,GAAA2C,SAAA,OAAAA,SAAA,CACjD,IAAI,CAACzH,MAAM,CAACyI,aAAa,CAAC,IAAI,CAAC3D,KAAK,CAAC,IAAG,IAAI,CAAC3G,KAAK,CAAChC,QAAQ,EAAAsL,SAAA,CAC3D,IAAI,CAACzH,MAAM,CAAC0I,cAAc,CAAC,CAAC,IAAGR,WAAW,EAAAT,SAAA,CAC5C,CAAE,IAEFU,IACE,CACF,CACC,CAAC,CAEb,CAAC,CAAAxE,MAAA,CAEOsE,gBAAgB,GAAxB,SAAAA,iBAAA,EAAmC,KAAAU,MAAA,QACjC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS,CAC5B,QAAQD,MAAI,CAACrM,IAAI,GACf,KAAK,OAAO,CACV,OAAOqM,MAAI,CAAC7D,KAAK,CAAC+D,kBAAkB,CACtC,KAAK,QAAQ,CACX,OAAOF,MAAI,CAAC7D,KAAK,CAACgE,mBAAmB,CACvC,KAAK,OAAO,CACZ,QACE,OAAOH,MAAI,CAAC7D,KAAK,CAACiE,kBAAkB,CACxC,CACF,CAAC,CACD,IAAMC,gBAAgB,GAAGC,UAAU,CAACL,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAE3D,OAAOI,gBAAgB,CACzB,CAAC,CAAArF,MAAA,CAEO4B,UAAU,GAAlB,SAAAA,WAAA,EAAsC,CACpC,IAAMtF,MAAM,GAAG,IAAI,CAAC9B,KAAK,CAAC8B,MAAM,GAAG,IAAI,CAACL,SAAS,CAAC,CAAC,GAAG,IAAI,CAE1D,IAAM1B,KAAK,GAAG,IAAI,CAAC0I,QAAQ,CAAC,CAAC,CAC7B,IAAAsC,cAAA,GAAqD,IAAI,CAACzK,QAAQ,CAAC,CAAC,CAA5D0K,SAAS,GAAAD,cAAA,CAATC,SAAS,CAAEC,OAAO,GAAAF,cAAA,CAAPE,OAAO,CAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS,CAAEC,SAAS,GAAAJ,cAAA,CAATI,SAAS,CAEhD,oBACEpQ,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAACpF,MAAA,CAAA6O,KAAK,IACJtL,MAAM,QACNuL,SAAS,QACTtN,EAAE,EAAE,IAAI,CAACoC,MAAO,EAChB,YAAUxB,oBAAc,CAACD,IAAK,EAC9ByM,SAAS,EAAEA,SAAS,WAATA,SAAS,GAAI,IAAAG,kCAAgB,EAACL,OAAO,EAAEC,SAAS,CAAE,EAC7DK,aAAa,EAAE,IAAI,CAAC7H,cAAc,CAAC,CAAE,EACrC8H,QAAQ,EAAEC,cAAM,CAACC,UAAU,CAACC,SAAU,EACtCC,aAAa,EAAE,IAAI,CAAC5L,KAAK,CAAC4L,aAAc,EACxCC,MAAM,EAAEC,QAAQ,CAAC,IAAI,CAACnF,KAAK,CAACG,WAAW,CAAC,GAAG,CAAE,EAC7C1E,KAAK,EAAE4I,SAAU,EACjBe,QAAQ,EAAEf,SAAS,KAAKpD,SAAS,GAAG,MAAM,GAAGA,SAAU,EACvDoE,WAAW,EAAE,IAAI,CAAChM,KAAK,CAACiM,UAAW,iBAEnClR,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAACjG,KAAA,CAAAwQ,IAAI,IACHC,SAAS,EAAE,KAAM,EACjBnK,GAAG,EAAE,IAAI,CAAC+B,OAAQ,EAClBqI,WAAW,EAAE,IAAI,CAACxL,KAAM,EACxByL,SAAS,EAAE,IAAI,CAACrM,KAAK,CAACsM,aAAc,EACpC7C,KAAK,EAAEyB,SAAU,IAEhBpJ,MAAM,EACN,IAAI,CAACS,YAAY,CAACxC,KAAK,CACpB,CACD,CAAC,CAEZ,CAAC,CAAAyF,MAAA,CAUO2B,gBAAgB,GAAxB,SAAAA,iBAAA,EAA4C,CAC1C,IAAMrF,MAAM,GAAG,IAAI,CAAC9B,KAAK,CAAC8B,MAAM,GAAG,IAAI,CAACO,eAAe,CAAC,CAAC,GAAG,IAAI,CAChE,IAAMtC,KAAK,GAAG,IAAI,CAAC0I,QAAQ,CAAC,CAAC,CAE7B,oBACE1N,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAACzF,YAAA,CAAAqQ,WAAW,IACVC,oBAAoB,EAAE1K,MAAO,EAC7B2K,OAAO,EAAE,IAAI,CAACzM,KAAK,CAAC0M,oBAAqB,EACzCC,cAAc,EAAE,IAAI,CAAC/L,KAAM,EAC3Bd,MAAM,EAAE,IAAI,CAACD,KAAK,CAACC,MAAO,iBAE1B/E,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAACjG,KAAA,CAAAwQ,IAAI,IAACE,WAAW,EAAE,IAAI,CAACxL,KAAM,EAACgM,sBAAsB,QAACP,SAAS,EAAE,MAAO,IACrE,IAAI,CAAC9J,YAAY,CAACxC,KAAK,CACpB,CACK,CAAC,CAElB,CAAC,CAAAyF,MAAA,CAuHOjC,MAAM,GAAd,SAAAA,OAAexD,KAAa,EAAE,CAC5B,IAAI,CAACe,KAAK,CAAC,CAAC,CACZ,IAAI,CAACJ,QAAQ,CAAC,EAAEZ,MAAM,EAAE,KAAK,EAAEC,KAAK,EAALA,KAAK,CAAC,CAAC,CAAC,CAEvC,IAAI,CAAC,IAAI,CAACuD,cAAc,CAAC,IAAI,CAACmF,QAAQ,CAAC,CAAC,EAAE1I,KAAK,CAAC,EAAE,KAAA8M,qBAAA,EAAAC,WAAA,CAChD,CAAAD,qBAAA,IAAAC,WAAA,OAAI,CAAC9M,KAAK,EAACkC,aAAa,aAAxB2K,qBAAA,CAAArP,IAAA,CAAAsP,WAAA,EAA2B/M,KAAK,CAAC,CACnC,CACF,CAAC,CAAAyF,MAAA,CAEOiD,QAAQ,GAAhB,SAAAA,SAAA,EAAmB,CACjB,IAAI,IAAI,CAACzI,KAAK,CAACD,KAAK,KAAK6H,SAAS,EAAE,CAClC,OAAO,IAAI,CAAC5H,KAAK,CAACD,KAAK,CACzB,CACA,OAAO,IAAI,CAACF,KAAK,CAACE,KAAK,CACzB,CAAC,CAAAyF,MAAA,CAEO9C,QAAQ,GAAhB,SAAAA,SAAiBqK,EAAoF,EAAE,CACrG,IAAQC,KAAK,GAAK,IAAI,CAAChN,KAAK,CAApBgN,KAAK,CACb,IAAI,CAACA,KAAK,EAAE,CACV,OAAO,EAAE,CACX,CACA,IAAMC,OAAO,GAAG,IAAI,CAACpN,KAAK,CAACK,aAAa,IAAI,IAAI,CAACL,KAAK,CAACK,aAAa,CAACgN,WAAW,CAAC,CAAC,CAElF,IAAMC,MAAyB,GAAG,EAAE,CACpC,IAAIC,KAAK,GAAG,CAAC,CACb,SAAAC,SAAA,OAAAC,gCAAA,CAAA5L,OAAA,EAAoBsL,KAAK,GAAAO,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE,KAAhBC,KAAK,GAAAF,KAAA,CAAAxN,KAAA,CACd,IAAA2N,eAAA,GAA+BC,cAAc,CAACF,KAAc,CAAC,CAAtD1N,KAAK,GAAA2N,eAAA,IAAE9K,IAAI,GAAA8K,eAAA,IAAE5K,OAAO,GAAA4K,eAAA,IAE3B,IAAI,CAACT,OAAO,IAAI,IAAI,CAAC3M,QAAQ,CAAC,CAAC,CAACsN,UAAU,CAAC7N,KAAK,EAAE6C,IAAI,EAAEqK,OAAO,CAAC,EAAE,CAChEE,MAAM,CAACU,IAAI,CAACd,EAAE,CAAChN,KAAK,EAAE6C,IAAI,EAAEwK,KAAK,EAAEtK,OAAO,CAAC,CAAC,CAC5C,EAAEsK,KAAK,CACT,CACF,CAEA,OAAOD,MAAM,CACf,CAAC,CAAA3H,MAAA,CAEOkD,cAAc,GAAtB,SAAAA,eAAuB3I,KAAwB,EAAE,CAC/C,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK6H,SAAS,EAAE,CACzC,OAAO,IAAI,CACb,CAEA,IAAMoF,KAAK,GAAG,IAAI,CAAChN,KAAK,CAACgN,KAAK,IAAI,EAAE,CAEpC,SAAAc,UAAA,OAAAR,gCAAA,CAAA5L,OAAA,EAAoBsL,KAAK,GAAAe,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAAN,IAAA,GAAE,KAAhBC,KAAK,GAAAM,MAAA,CAAAhO,KAAA,CACd,IAAAiO,gBAAA,GAA0BL,cAAc,CAACF,KAAK,CAAC,CAAxCQ,SAAS,GAAAD,gBAAA,IAAEpL,IAAI,GAAAoL,gBAAA,IAEtB,IAAI,IAAI,CAAC1K,cAAc,CAAC2K,SAAS,EAAElO,KAAK,CAAC,EAAE,CACzC,OAAO6C,IAAI,CACb,CACF,CACA,OAAO,IAAI,CACb,CAAC,CAAA4C,MAAA,CAEOlC,cAAc,GAAtB,SAAAA,eAAuB4K,MAAwB,EAAEC,MAAwB,EAAE,CACzE,OAAO,IAAAxF,oBAAa,EAACuF,MAAM,CAAC,IAAI,IAAAvF,oBAAa,EAACwF,MAAM,CAAC,IAAI,IAAI,CAAC7N,QAAQ,CAAC,CAAC,CAACgD,cAAc,CAAC4K,MAAM,EAAEC,MAAM,CAAC,CACzG,CAAC,QAAAvP,MAAA,GArgBkDqE,cAAK,CAACmL,SAAS,GAAAvQ,OAAA,CACpDwQ,mBAAmB,GAAG,QAAQ,EAAAxQ,OAAA,CAC9ByQ,WAAW,GAAG,QAAQ,EAAAzQ,OAAA,CAEtB2C,YAAY,GAAmD,EAC3EoI,WAAW,EAAXA,WAAW,EACXnF,UAAU,EAAVA,UAAU,EACVH,cAAc,EAAdA,cAAc,EACdsK,UAAU,EAAVA,UAAU,EACV1P,GAAG,EAAE,SAAS,CAChB,CAAC,EAAAL,OAAA,CAEa0Q,IAAI,GAAGA,UAAI,EAAA1Q,OAAA,CACX2Q,GAAG,GAAG,iCAAMzT,MAAA,CAAA2G,OAAA,CAAAC,aAAA,CAAC/F,cAAA,CAAA6S,aAAa,MAAE,CAAC,IAAA5Q,OAAA,CAE7B6Q,aAAa,GAAG,UAAC1L,OAAwD,EAAK,CAC1F,IAAA2L,kBAAS,EACP,cAAA1L,cAAK,CAACC,cAAc,CAACF,OAAO,CAAC,IAAI,OAAOA,OAAO,KAAK,UAAU,EAC9D,4EACF,CAAC,CACD,OAAOA,OAAO,CAChB,CAAC,EAAAnF,OAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA;;;AA4gBH,SAASgL,WAAWA,CAAgB7I,KAAa,EAAE6C,IAAqB,EAAE;EACxE,OAAOA,IAAI;AACb;;AAEA,SAASa,UAAUA,CAAgB1D,KAAa,EAAE6C,IAAY,EAAE;EAC9D,OAAOA,IAAI;AACb;;AAEA,SAASU,cAAcA,CAAS4K,MAAc,EAAEC,MAAc,EAAE;EAC9D,OAAOD,MAAM,KAAKC,MAAM;AAC1B;;AAEA,SAASR,cAAcA,CAACF,KAAc,EAAE;EACtC,IAAIhO,KAAK,CAACmP,OAAO,CAACnB,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK;EACd;;EAEA,OAAO,CAACA,KAAK,EAAEA,KAAK,EAAE7F,SAAS,CAAC;AAClC;;AAEA,IAAMiH,eAAe,GAAG,SAAlBA,eAAeA,CAAIjM,IAAiE,EAAa;EACrG,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI;EACb;;EAEA,IAAI,IAAAG,iBAAU,EAACH,IAAI,CAAC,EAAE;IACpB,OAAOiM,eAAe,CAACjM,IAAI,CAAC,CAAC,CAAC;EAChC;;EAEA,kBAAIK,cAAK,CAACC,cAAc,CAACN,IAAI,CAAC,EAAE;IAC9B,OAAO,IAAAkM,wCAAmB,EAAClM,IAAI,CAAC;EAClC;;EAEA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI,CAACmM,QAAQ,CAAC,EAAE,CAAC;EAC1B;;EAEA,OAAO,EAAE;AACX,CAAC;;AAED,SAASnB,UAAUA,CAAS7N,KAAa,EAAE6C,IAAS,EAAEqK,OAAe,EAAE;EACrE,IAAIrK,IAAI,KAAKhE,MAAM,CAAC4P,GAAG,EAAE;IACvB,OAAO,KAAK;EACd;;EAEA,IAAMQ,QAAQ,GAAGH,eAAe,CAACjM,IAAI,CAAC;;EAEtC,IAAI,CAACoM,QAAQ,EAAE;IACb,OAAO,KAAK;EACd;;EAEA,OAAOA,QAAQ,CAAC9B,WAAW,CAAC,CAAC,CAAC+B,OAAO,CAAChC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvD","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_lodash","_identifiers","_decorators","_reactGetTextContent","_Button","_filterProps","_Input","_Menu","_MenuItem","_MenuSeparator","_RenderLayer","_createPropsGetter","_utils","_ThemeContext","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_ThemeFactory","_Link","_Popup","_ZIndex","_getMenuPositions","_SizeDecorator","_renderEnvironment","_ArrowDownIcon","_Item","_locale","_Select2","_selectTheme","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_dec","_class","_Select","PASS_BUTTON_PROPS","id","disabled","error","use","size","warning","corners","onMouseEnter","onMouseLeave","onMouseOver","SelectIds","menu","SelectDataTids","Select","locale","SelectLocaleHelper","withRenderEnvironment","responsiveLayout","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","apply","concat","state","opened","value","props","defaultValue","searchPattern","menuId","getRandomID","buttonElement","getProps","createPropsGetter","defaultProps","open","setState","onOpen","close","onClose","focus","getDefaultButtonParams","_this$renderLabel","renderLabel","label","isPlaceholder","buttonParams","onClick","toggle","onKeyDown","handleKey","getSearch","default","createElement","className","styles","search","Input","ref","debouncedFocusInput","onValueChange","handleSearch","width","getMobileSearch","autoFocus","getMenuItems","isMobile","isMobileLayout","mapItems","iValue","item","i","comment","isFunction","element","React","isValidElement","cloneElement","isReactUINode","MenuItem","areValuesEqual","select","bind","renderItem","popupGetParent","getRootNode","focusInput","input","debounce","refMenu","e","isKeySpace","isKeyArrowVertical","preventDefault","isKeyEscape","isKeyArrowUp","up","isKeyArrowDown","down","isKeyEnter","enter","_this$menu","highlightItem","buttonRef","getButton","_props$ariaLabel","button","_renderButton","renderDefaultButton","Children","only","onFocus","onBlur","_inheritsLoose2","_proto","componentDidUpdate","_prevProps","prevState","_this$globalObject$ad","_this$globalObject","globalObject","addEventListener","_this$globalObject$re","_this$globalObject2","removeEventListener","render","_this2","linkStyles","getLinkStyles","emotion","getStyles","ThemeContext","Consumer","theme","ThemeFactory","create","menuOffsetY","selectMenuOffsetY","Provider","renderMain","getMenuRenderer","renderMobileMenu","renderMenu","_this$getProps$dataT","_this$cx","dataTid","root","getSelectTheme","style","maxWidth","undefined","cx","rootMobile","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","_this$props$placehold","_this$locale","getValue","getItemByValue","isNonNullable","renderValue","placeholder","getLeftIconClass","leftIconLink","leftIconLarge","leftIconMedium","leftIconSmall","params","_this$cx2","_this$cx3","_this$cx4","buttonProps","filterProps","align","labelProps","customUsePlaceholder","placeholderDisabled","paddingRight","getSelectIconGap","useIsCustom","icon","ArrowDownIcon","Button","selectButtonContainer","_icon","arrowWrap","arrowDisabled","customUseArrow","_this3","getArrowPadding","selectIconGapLarge","selectIconGapMedium","selectIconGapSmall","arrowLeftPadding","parseFloat","_this$getProps","menuWidth","menuPos","menuAlign","positions","Popup","hasShadow","getMenuPositions","anchorElement","priority","ZIndex","priorities","PopupMenu","disablePortal","margin","parseInt","minWidth","popupOffset","menuOffset","Menu","hasMargin","onItemClick","maxHeight","maxMenuHeight","MobilePopup","headerChildComponent","caption","mobileMenuHeaderText","onCloseRequest","disableScrollContainer","_this$props$onValueCh","_this$props","fn","items","pattern","toLowerCase","result","index","_iterator","_createForOfIteratorHelperLoose2","_step","done","entry","_normalizeEntry","normalizeEntry","filterItem","push","_iterator2","_step2","_normalizeEntry2","itemValue","value1","value2","Component","__KONTUR_REACT_UI__","displayName","Item","SEP","MenuSeparator","staticElement","invariant","isArray","getTextFromItem","reactGetTextContent","toString","itemText","indexOf"],"sources":["Select.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, ReactNode, ReactPortal } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport debounce from 'lodash.debounce';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport {\n isKeyArrowDown,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n} from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { reactGetTextContent } from '../../lib/reactGetTextContent';\nimport type { ButtonProps, ButtonUse } from '../Button';\nimport { Button } from '../Button';\nimport { filterProps } from '../../lib/filterProps';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport type { MenuItemProps } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { getRandomID, isFunction, isNonNullable, isReactUINode } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { MenuHeaderProps } from '../MenuHeader';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getStyles as getLinkStyles } from '../Link/Link.styles';\nimport { Popup, type PopupPositionsType } from '../../internal/Popup';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { Item } from './Item';\nimport type { SelectLocale } from './locale';\nimport { SelectLocaleHelper } from './locale';\nimport { getStyles } from './Select.styles';\nimport { getSelectTheme } from './selectTheme';\nimport { SelectDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface ButtonParams\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-expanded'> {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает лейбл. */\n label: React.ReactNode;\n\n /** Задает функцию, которая вызывается при клике на селект. */\n onClick: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Определяет, открыто ли выпадающее меню. */\n opened: boolean;\n\n /** Определяет, есть ли Placeholder. */\n isPlaceholder: boolean;\n\n /** Задает размер контрола. */\n size: SizeProp;\n}\n\nconst PASS_BUTTON_PROPS = {\n id: true,\n disabled: true,\n error: true,\n use: true,\n size: true,\n warning: true,\n corners: true,\n\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport const SelectIds = {\n menu: SelectDataTids.menu,\n} as const;\n\ntype SelectItem<TValue, TItem> =\n | [TValue, TItem, React.ReactNode?]\n | TItem\n | TValue\n | React.ReactElement\n | (() => React.ReactElement);\n\nexport interface SelectProps<TValue, TItem>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** @ignore */\n _icon?: React.ReactNode;\n\n /** @ignore */\n _renderButton?: (params: ButtonParams) => React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает значение по умолчанию. */\n defaultValue?: TValue;\n\n menuOffset?: number;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает функцию, которая отфильтровывает элементы по заданному паттерну. */\n filterItem?: (value: TValue, item: TItem, pattern: string) => boolean;\n\n /** Задает набор значений. Поддерживаются любые перечисляемые типы, в том числе `Array`, `Map`, `Immutable.Map`.\n *\n * Элементы воспринимаются следующим образом: если элемент — это массив, то первый элемент является значением,\n * второй — отображается в списке, а третий – комментарий;\n * если элемент не является массивом, то он используется и для отображения, и для значения.\n *\n * Для вставки разделителя можно использовать `Select.SEP`.\n *\n * Вставить невыделяемый элемент со своей разметкой можно так:\n * @example\n * ```\n * <Select ...\n * items={[Select.staticElement(() => <div>My Element</div>)]}\n * />\n * ```\n *\n * Чтобы добавить стандартный отступ для статического элемента:\n * @example\n * ```\n * <Select.Item>My Element</Select.Item>\n * ``` */\n items?: Array<SelectItem<TValue, TItem>>;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает максимальную ширину. */\n maxWidth?: React.CSSProperties['maxWidth'];\n\n /** Задает позиции выпадающего меню. */\n positions?: PopupPositionsType[];\n\n /** Задает текущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom' | 'middle';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange?: (value: TValue) => void;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: React.ReactNode;\n\n /** Задает функцию, которая отображает элемент в выпадающем списке. */\n renderItem?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранный элемент. */\n renderValue?: (value: TValue, item?: TItem) => React.ReactNode;\n\n /** Задает функцию сравнения `value` с элементом из `items`. */\n areValuesEqual?: (value1: TValue, value2: TValue) => boolean;\n\n /** Показывает строку поиска в списке. */\n search?: boolean;\n\n /** Задает значение. */\n value?: TValue;\n\n theme?: ThemeIn | Theme;\n\n /** Задает длину контрола. */\n width?: number | string;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задаёт HTML-событие `onfocus`. */\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n /** Задаёт HTML-событие `onblur`. */\n onBlur?: React.FocusEventHandler<HTMLElement>;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n}\n\nexport interface SelectState<TValue> {\n opened: boolean;\n searchPattern: string;\n value: Nullable<TValue>;\n}\n\ninterface FocusableReactElement extends React.ReactElement<unknown> {\n focus: (event?: unknown) => void;\n}\n\ntype DefaultProps<TValue, TItem> = Required<\n Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use'>\n>;\n\n/**\n * Раскрывающийся список `Select` позволяет выбрать значение из заранее известного набора вариантов.\n *\n * Используйте `Select` при:\n * * заполнении форм, например для выбора месяца.\n * * переключении состояний, например, фильтра.\n * * выборе предустановленных настроек, например, частоты уведомлений, часового пояса.\n *\n * Не используйте `Select` для выбора элементов меню. В таком случае воспользуйтесь компонентом Dropdown.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Select', SelectLocaleHelper)\n@withSize\n// Suggested solutions break current behavior\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {\n public static __KONTUR_REACT_UI__ = 'Select';\n public static displayName = 'Select';\n\n public static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal> = {\n renderValue,\n renderItem,\n areValuesEqual,\n filterItem,\n use: 'default',\n };\n\n public static Item = Item;\n public static SEP = () => <MenuSeparator />;\n\n public static staticElement = (element: React.ReactElement | (() => React.ReactElement)) => {\n invariant(\n React.isValidElement(element) || typeof element === 'function',\n 'Select.staticElement(element) expects element to be a valid react element.',\n );\n return element;\n };\n\n public state: SelectState<TValue> = {\n opened: false,\n value: this.props.defaultValue,\n searchPattern: '',\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private linkStyles!: ReturnType<typeof getLinkStyles>;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private readonly locale!: SelectLocale;\n private menu: Nullable<Menu>;\n private menuId = SelectIds.menu + getRandomID();\n private buttonElement: FocusableReactElement | null = null;\n private getProps = createPropsGetter(Select.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(_prevProps: SelectProps<TValue, TItem>, prevState: SelectState<TValue>) {\n if (!prevState.opened && this.state.opened) {\n this.globalObject.addEventListener?.('popstate', this.close);\n }\n if (prevState.opened && !this.state.opened) {\n this.globalObject.removeEventListener?.('popstate', this.close);\n }\n }\n\n public render() {\n this.linkStyles = getLinkStyles(this.emotion);\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = ThemeFactory.create(\n {\n menuOffsetY: theme.selectMenuOffsetY,\n },\n theme,\n );\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public open = () => {\n if (!this.state.opened) {\n this.setState({ opened: true });\n\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n }\n };\n\n /**\n * @public\n */\n public close = () => {\n if (this.state.opened) {\n this.setState({ opened: false, searchPattern: '' });\n\n if (this.props.onClose) {\n this.props.onClose();\n }\n }\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.buttonElement && this.buttonElement.focus) {\n this.buttonElement.focus();\n }\n };\n\n private getMenuRenderer() {\n if (this.props.disabled) {\n return null;\n }\n\n if (this.isMobileLayout) {\n return this.renderMobileMenu();\n }\n\n if (this.state.opened) {\n return this.renderMenu();\n }\n\n return null;\n }\n\n private renderMain() {\n const buttonParams = this.getDefaultButtonParams();\n const dataTid = this.getProps()['data-tid'] ?? SelectDataTids.root;\n const button = (\n <ThemeContext.Provider value={getSelectTheme(this.theme, this.props)}>\n {this.getButton(buttonParams)}\n </ThemeContext.Provider>\n );\n\n const isMobile = this.isMobileLayout;\n\n const style = {\n width: this.props.width,\n maxWidth: this.props.maxWidth || undefined,\n };\n\n const root = (\n <span\n data-tid={dataTid}\n className={this.cx({ [this.styles.root()]: true, [this.styles.rootMobile(this.theme)]: isMobile })}\n style={style}\n >\n {button}\n {this.getMenuRenderer()}\n </span>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.close}\n onFocusOutside={this.close}\n active={isMobile ? false : this.state.opened}\n >\n {root}\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getDefaultButtonParams = (): ButtonParams => {\n const { label, isPlaceholder } = this.renderLabel();\n\n const buttonParams: ButtonParams = {\n opened: this.state.opened,\n label,\n isPlaceholder,\n onClick: this.toggle,\n onKeyDown: this.handleKey,\n size: this.size,\n disabled: this.getProps().disabled,\n };\n\n return buttonParams;\n };\n\n private renderLabel() {\n const value = this.getValue();\n const item = this.getItemByValue(value);\n\n if (isNonNullable(value)) {\n return {\n label: this.getProps().renderValue(value, item),\n isPlaceholder: false,\n };\n }\n\n return {\n label: <span>{this.props.placeholder ?? this.locale?.placeholder}</span>,\n isPlaceholder: true,\n };\n }\n\n private getLeftIconClass(size: SizeProp | undefined) {\n if (this.getProps().use === 'link') {\n return this.styles.leftIconLink(this.theme);\n }\n\n switch (size) {\n case 'large':\n return this.styles.leftIconLarge(this.theme);\n case 'medium':\n return this.styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.leftIconSmall(this.theme);\n }\n }\n\n private renderDefaultButton(params: ButtonParams) {\n const buttonProps: ButtonProps = {\n ...filterProps(this.props, PASS_BUTTON_PROPS),\n align: 'left' as React.CSSProperties['textAlign'],\n disabled: this.props.disabled,\n width: '100%',\n onClick: params.onClick,\n onKeyDown: params.onKeyDown,\n active: params.opened,\n size: params.size,\n };\n const use = this.getProps().use;\n\n const labelProps = {\n 'data-tid': SelectDataTids.label,\n className: this.cx({\n [this.styles.label()]: use !== 'link',\n [this.styles.placeholder(this.theme)]: params.isPlaceholder,\n [this.styles.customUsePlaceholder()]: params.isPlaceholder && use !== 'default',\n [this.styles.placeholderDisabled(this.theme)]: params.isPlaceholder && this.props.disabled,\n }),\n style: {\n paddingRight: this.getSelectIconGap(),\n },\n };\n\n const useIsCustom = use !== 'default';\n\n const icon = <ArrowDownIcon size={this.size} />;\n\n return (\n <Button {...buttonProps}>\n <div\n className={this.cx(this.styles.selectButtonContainer(), {\n [this.linkStyles.root(this.theme)]: use === 'link',\n })}\n >\n {this.props._icon && <div className={this.getLeftIconClass(this.size)}>{this.props._icon}</div>}\n <span {...labelProps}>{params.label}</span>\n\n <div\n className={this.cx(this.styles.arrowWrap(this.theme), {\n [this.styles.arrowDisabled(this.theme)]: this.props.disabled,\n [this.styles.customUseArrow()]: useIsCustom,\n })}\n >\n {icon}\n </div>\n </div>\n </Button>\n );\n }\n\n private getSelectIconGap(): number {\n const getArrowPadding = () => {\n switch (this.size) {\n case 'large':\n return this.theme.selectIconGapLarge;\n case 'medium':\n return this.theme.selectIconGapMedium;\n case 'small':\n default:\n return this.theme.selectIconGapSmall;\n }\n };\n const arrowLeftPadding = parseFloat(getArrowPadding()) || 0;\n\n return arrowLeftPadding;\n }\n\n private renderMenu(): React.ReactNode {\n const search = this.props.search ? this.getSearch() : null;\n\n const value = this.getValue();\n const { menuWidth, menuPos, menuAlign, positions } = this.getProps();\n\n return (\n <Popup\n opened\n hasShadow\n id={this.menuId}\n data-tid={SelectDataTids.menu}\n positions={positions ?? getMenuPositions(menuPos, menuAlign)}\n anchorElement={this.popupGetParent()}\n priority={ZIndex.priorities.PopupMenu}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n popupOffset={this.props.menuOffset}\n >\n <Menu\n hasMargin={false}\n ref={this.refMenu}\n onItemClick={this.close}\n maxHeight={this.props.maxMenuHeight}\n align={menuAlign}\n >\n {search}\n {this.getMenuItems(value)}\n </Menu>\n </Popup>\n );\n }\n\n private getSearch = () => {\n return (\n <div className={this.styles.search()} onKeyDown={this.handleKey}>\n <Input ref={this.debouncedFocusInput} onValueChange={this.handleSearch} width=\"100%\" />\n </div>\n );\n };\n\n private renderMobileMenu(): React.ReactNode {\n const search = this.props.search ? this.getMobileSearch() : null;\n const value = this.getValue();\n\n return (\n <MobilePopup\n headerChildComponent={search}\n caption={this.props.mobileMenuHeaderText}\n onCloseRequest={this.close}\n opened={this.state.opened}\n >\n <Menu onItemClick={this.close} disableScrollContainer maxHeight={'auto'}>\n {this.getMenuItems(value)}\n </Menu>\n </MobilePopup>\n );\n }\n\n private getMobileSearch = () => {\n return (\n <Input\n autoFocus\n value={this.state.searchPattern}\n ref={this.debouncedFocusInput}\n onValueChange={this.handleSearch}\n width=\"100%\"\n />\n );\n };\n\n private getMenuItems = (value: Nullable<TValue>) => {\n const isMobile = this.isMobileLayout;\n const size = this.size;\n\n return this.mapItems(\n (iValue: TValue, item: TItem | (() => React.ReactNode), i: number, comment: Nullable<React.ReactNode>) => {\n if (isFunction(item)) {\n const element = item();\n\n if (React.isValidElement(element)) {\n return React.cloneElement(element, { key: i, isMobile, size } as MenuItemProps);\n }\n\n return null;\n }\n\n if (React.isValidElement(item)) {\n if (isReactUINode('MenuItem', item)) {\n return React.cloneElement(item, { key: i, isMobile, size } as MenuItemProps);\n }\n if (isReactUINode('MenuHeader', item)) {\n return React.cloneElement(item, { size } as MenuHeaderProps);\n }\n return React.cloneElement(item, { key: i });\n }\n\n return (\n <MenuItem\n key={i}\n state={this.areValuesEqual(iValue, value) ? 'selected' : null}\n onClick={this.select.bind(this, iValue)}\n comment={comment}\n isMobile={isMobile}\n size={this.size}\n >\n {this.getProps().renderItem(iValue, item)}\n </MenuItem>\n );\n },\n );\n };\n\n private popupGetParent = () => {\n return getRootNode(this);\n };\n\n // fix cases when an Input is rendered in portal\n // https://github.com/skbkontur/retail-ui/issues/1995\n private focusInput = (input: Input) => input?.focus();\n private debouncedFocusInput = debounce(this.focusInput);\n\n private refMenu = (menu: Menu) => {\n this.menu = menu;\n };\n\n private toggle = () => {\n if (this.state.opened) {\n this.close();\n } else {\n this.open();\n }\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLElement>) => {\n if (!this.state.opened) {\n if (isKeySpace(e) || isKeyArrowVertical(e)) {\n e.preventDefault();\n this.open();\n }\n } else {\n switch (true) {\n case isKeyEscape(e):\n this.focus();\n this.close();\n break;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n break;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n break;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n break;\n }\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleSearch = (value: string) => {\n this.setState({ searchPattern: value });\n this.menu?.highlightItem(0);\n };\n\n private select(value: TValue) {\n this.focus();\n this.setState({ opened: false, value });\n\n if (!this.areValuesEqual(this.getValue(), value)) {\n this.props.onValueChange?.(value);\n }\n }\n\n private getValue() {\n if (this.props.value !== undefined) {\n return this.props.value;\n }\n return this.state.value;\n }\n\n private mapItems(fn: (value: TValue, item: TItem, index: number, comment?: string) => React.ReactNode) {\n const { items } = this.props;\n if (!items) {\n return [];\n }\n const pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();\n\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, item, comment] = normalizeEntry(entry as TItem);\n\n if (!pattern || this.getProps().filterItem(value, item, pattern)) {\n result.push(fn(value, item, index, comment));\n ++index;\n }\n }\n\n return result;\n }\n\n private getItemByValue(value?: Nullable<TValue>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const items = this.props.items || [];\n\n for (const entry of items) {\n const [itemValue, item] = normalizeEntry(entry);\n\n if (this.areValuesEqual(itemValue, value)) {\n return item;\n }\n }\n return null;\n }\n\n private areValuesEqual(value1: Nullable<TValue>, value2: Nullable<TValue>) {\n return isNonNullable(value1) && isNonNullable(value2) && this.getProps().areValuesEqual(value1, value2);\n }\n\n private buttonRef = (element: FocusableReactElement | null) => {\n this.buttonElement = element;\n };\n\n private getButton = (buttonParams: ButtonParams) => {\n const button = this.props._renderButton\n ? this.props._renderButton(buttonParams)\n : this.renderDefaultButton(buttonParams);\n\n const buttonElement = React.Children.only(button);\n\n return React.isValidElement(buttonElement)\n ? React.cloneElement(buttonElement as React.ReactElement<any>, {\n ref: this.buttonRef,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n size: this.size,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-expanded': this.state.opened ? 'true' : 'false',\n 'aria-controls': this.menuId,\n 'aria-label': (buttonElement as React.ReactElement<any>).props['aria-label'] ?? this.props['aria-label'],\n })\n : buttonElement;\n };\n}\n\nfunction renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>) {\n return item;\n}\n\nfunction renderItem<TValue, TItem>(value: TValue, item?: TItem) {\n return item;\n}\n\nfunction areValuesEqual<TValue>(value1: TValue, value2: TValue) {\n return value1 === value2;\n}\n\nfunction normalizeEntry(entry: unknown) {\n if (Array.isArray(entry)) {\n return entry;\n }\n\n return [entry, entry, undefined];\n}\n\nconst getTextFromItem = (item: string | React.ReactNode | (() => React.ReactNode) | number): string => {\n if (typeof item === 'string') {\n return item;\n }\n\n if (isFunction(item)) {\n return getTextFromItem(item());\n }\n\n if (React.isValidElement(item)) {\n return reactGetTextContent(item);\n }\n\n if (typeof item === 'number') {\n return item.toString(10);\n }\n\n return '';\n};\n\nfunction filterItem<TValue>(value: TValue, item: any, pattern: string) {\n if (item === Select.SEP) {\n return false;\n }\n\n const itemText = getTextFromItem(item);\n\n if (!itemText) {\n return false;\n }\n\n return itemText.toLowerCase().indexOf(pattern) !== -1;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { AriaAttributes, HTMLAttributes } from 'react';
|
|
1
|
+
import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
4
5
|
import { SidePageBody } from './SidePageBody';
|
|
5
6
|
import { SidePageContainer } from './SidePageContainer';
|
|
6
7
|
import { SidePageFooter } from './SidePageFooter';
|
|
@@ -56,6 +57,8 @@ type DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset'
|
|
|
56
57
|
export declare class SidePage extends React.Component<SidePageProps, SidePageState> {
|
|
57
58
|
static __KONTUR_REACT_UI__: string;
|
|
58
59
|
static displayName: string;
|
|
60
|
+
getRootNode: TGetRootNode;
|
|
61
|
+
private setRootNode;
|
|
59
62
|
static Header: typeof SidePageHeader;
|
|
60
63
|
static Body: typeof SidePageBody;
|
|
61
64
|
static Footer: typeof SidePageFooter;
|
|
@@ -70,7 +73,7 @@ export declare class SidePage extends React.Component<SidePageProps, SidePageSta
|
|
|
70
73
|
private layout;
|
|
71
74
|
private header;
|
|
72
75
|
private footer;
|
|
73
|
-
rootRef: React.RefObject<HTMLDivElement>;
|
|
76
|
+
rootRef: React.RefObject<HTMLDivElement | null>;
|
|
74
77
|
componentDidMount(): void;
|
|
75
78
|
componentDidUpdate(prevProps: SidePageProps): void;
|
|
76
79
|
componentWillUnmount(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.SidePageDataTids = exports.SidePage = void 0;var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.SidePageDataTids = exports.SidePage = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
3
|
var _reactTransitionGroup = require("react-transition-group");
|
|
4
4
|
var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
|
|
@@ -22,6 +22,8 @@ var _currentEnvironment = require("../../lib/currentEnvironment");
|
|
|
22
22
|
var _ResponsiveLayout = require("../ResponsiveLayout");
|
|
23
23
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
24
24
|
var _isInstanceOf = require("../../lib/isInstanceOf");
|
|
25
|
+
|
|
26
|
+
var _rootNode = require("../../lib/rootNode");
|
|
25
27
|
var _renderEnvironment = require("../../lib/renderEnvironment");
|
|
26
28
|
|
|
27
29
|
var _SidePageBody = require("./SidePageBody");
|
|
@@ -100,7 +102,11 @@ var TRANSITION_TIMEOUT = 200;
|
|
|
100
102
|
* Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.
|
|
101
103
|
*/var
|
|
102
104
|
|
|
103
|
-
|
|
105
|
+
|
|
106
|
+
SidePage = exports.SidePage = (0, _renderEnvironment.withRenderEnvironment)(_class = (0, _rootNode.rootNode)(_class = (_SidePage = /*#__PURE__*/function (_React$Component) {function SidePage() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
104
110
|
|
|
105
111
|
|
|
106
112
|
|
|
@@ -399,4 +405,4 @@ SidePage = exports.SidePage = (0, _renderEnvironment.withRenderEnvironment)(_cla
|
|
|
399
405
|
|
|
400
406
|
setHasPanel = function (hasPanel) {if (hasPanel === void 0) {hasPanel = false;}
|
|
401
407
|
_this.state.hasPanel !== hasPanel && _this.setState({ hasPanel: hasPanel });
|
|
402
|
-
};return _this;}(0, _inheritsLoose2.default)(SidePage, _React$Component);var _proto = SidePage.prototype;_proto.componentDidMount = function componentDidMount() {var _this$globalObject$ad, _this$globalObject;(_this$globalObject$ad = (_this$globalObject = this.globalObject).addEventListener) == null || _this$globalObject$ad.call(_this$globalObject, 'keydown', this.handleKeyDown);this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange, this.globalObject);};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.blockBackground !== this.props.blockBackground) {_ModalStack.ModalStack.rerender(this.globalObject);this.setState({ hasBackground: _ModalStack.ModalStack.isBlocking(this, this.globalObject) });}};_proto.componentWillUnmount = function componentWillUnmount() {var _this$globalObject$re, _this$globalObject2;(_this$globalObject$re = (_this$globalObject2 = this.globalObject).removeEventListener) == null || _this$globalObject$re.call(_this$globalObject2, 'keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this, this.globalObject);};_proto.render = function render() {var _this2 = this;this.styles = (0, _SidePage2.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$props = this.props,blockBackground = _this$props.blockBackground,onOpened = _this$props.onOpened;var disableAnimations = this.getProps().disableAnimations;return /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Sidepage', onScroll: LayoutEvents.emit, createStackingContext: true, style: { position: 'absolute' } }, !isMobile && blockBackground && _this3.renderShadow(), /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { in: true, classNames: _this3.getTransitionNames(), appear: !disableAnimations, enter: !disableAnimations, exit: false, timeout: { enter: TRANSITION_TIMEOUT, exit: TRANSITION_TIMEOUT }, nodeRef: _this3.rootRef, onEntered: onOpened }, _this3.renderContainer(isMobile)), isMobile && /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null))));});};_proto.renderContainer = function renderContainer(isMobile) {var _this$cx, _this$cx2;var _this$props2 = this.props,mobileWidth = _this$props2.mobileWidth,blockBackground = _this$props2.blockBackground,fromLeft = _this$props2.fromLeft,ariaLabel = _this$props2['aria-label'];var _this$getProps = this.getProps(),offset = _this$getProps.offset,role = _this$getProps.role;var widthDesktop = this.props.width || (blockBackground ? 800 : 500);var widthMobile = mobileWidth || '100%';var width = isMobile ? widthMobile : widthDesktop;return /*#__PURE__*/_react.default.createElement("div", { "aria-modal": true, role: role, "aria-label": ariaLabel, "data-tid": SidePageDataTids.root, className: this.cx((_this$cx = {}, _this$cx[this.styles.root()] = true, _this$cx)), ref: this.rootRef, onScroll: LayoutEvents.emit, style: { width: width, right: fromLeft ? 'auto' : offset, left: fromLeft ? offset : 'auto' } }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: this.isFocusLockDisabled, autoFocus: false, className: this.styles.focusLock() }, /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.handleClickOutside, active: true }, /*#__PURE__*/_react.default.createElement("div", { "data-tid": SidePageDataTids.container, className: this.cx(this.styles.wrapper(this.theme), (_this$cx2 = {}, _this$cx2[this.styles.wrapperLeft()] = fromLeft, _this$cx2[this.styles.wrapperMarginLeft()] = this.state.hasMargin && fromLeft, _this$cx2[this.styles.wrapperMarginRight()] = this.state.hasMargin && !fromLeft, _this$cx2[this.styles.shadow(this.theme)] = this.state.hasShadow, _this$cx2)), ref: this.layoutRef }, /*#__PURE__*/_react.default.createElement(_SidePageContext.SidePageContext.Provider, { value: this.getSidePageContextProps() }, this.props.children)))));};_proto.renderShadow = function renderShadow() {var _this$cx3;return /*#__PURE__*/_react.default.createElement("div", { className: this.styles.overlay(), onScroll: LayoutEvents.emit }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, { key: "hbvs" }), /*#__PURE__*/_react.default.createElement("div", { key: "overlay", className: this.cx((_this$cx3 = {}, _this$cx3[this.styles.background()] = true, _this$cx3[this.styles.backgroundGray(this.theme)] = this.state.hasBackground, _this$cx3)) }));};_proto.getTransitionNames = function getTransitionNames() {var transition = this.props.fromLeft ? this.styles.transitionRight : this.styles.transitionLeft;return { enter: transition(), enterActive: this.styles.transitionActive(), exit: this.styles.transitionLeave(), exitActive: this.styles.transitionLeaveActive(), appear: transition(), appearActive: this.styles.transitionActive() };};return (0, _createClass2.default)(SidePage, [{ key: "isFocusLockDisabled", get: function get() {var _this$getProps2 = this.getProps(),disableFocusLock = _this$getProps2.disableFocusLock;var blockBackground = this.props.blockBackground;if (!blockBackground) {return true;}if (disableFocusLock !== undefined) {return disableFocusLock;}return false;} }]);}(_react.default.Component), _SidePage.__KONTUR_REACT_UI__ = 'SidePage', _SidePage.displayName = 'SidePage', _SidePage.Header = _SidePageHeader.SidePageHeader, _SidePage.Body = _SidePageBody.SidePageBody, _SidePage.Footer = _SidePageFooter.SidePageFooter, _SidePage.Container = _SidePageContainer.SidePageContainer, _SidePage.defaultProps = { disableAnimations: _currentEnvironment.isTestEnv, offset: 0, role: 'dialog' }, _SidePage)) || _class;
|
|
408
|
+
};return _this;}(0, _inheritsLoose2.default)(SidePage, _React$Component);var _proto = SidePage.prototype;_proto.componentDidMount = function componentDidMount() {var _this$globalObject$ad, _this$globalObject;(_this$globalObject$ad = (_this$globalObject = this.globalObject).addEventListener) == null || _this$globalObject$ad.call(_this$globalObject, 'keydown', this.handleKeyDown);this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange, this.globalObject);};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.blockBackground !== this.props.blockBackground) {_ModalStack.ModalStack.rerender(this.globalObject);this.setState({ hasBackground: _ModalStack.ModalStack.isBlocking(this, this.globalObject) });}};_proto.componentWillUnmount = function componentWillUnmount() {var _this$globalObject$re, _this$globalObject2;(_this$globalObject$re = (_this$globalObject2 = this.globalObject).removeEventListener) == null || _this$globalObject$re.call(_this$globalObject2, 'keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this, this.globalObject);};_proto.render = function render() {var _this2 = this;this.styles = (0, _SidePage2.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$props = this.props,blockBackground = _this$props.blockBackground,onOpened = _this$props.onOpened;var disableAnimations = this.getProps().disableAnimations;return /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this3.setRootNode }, _this3.props), /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Sidepage', onScroll: LayoutEvents.emit, createStackingContext: true, style: { position: 'absolute' } }, !isMobile && blockBackground && _this3.renderShadow(), /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { in: true, classNames: _this3.getTransitionNames(), appear: !disableAnimations, enter: !disableAnimations, exit: false, timeout: { enter: TRANSITION_TIMEOUT, exit: TRANSITION_TIMEOUT }, nodeRef: _this3.rootRef, onEntered: onOpened }, _this3.renderContainer(isMobile)), isMobile && /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null))));});};_proto.renderContainer = function renderContainer(isMobile) {var _this$cx, _this$cx2;var _this$props2 = this.props,mobileWidth = _this$props2.mobileWidth,blockBackground = _this$props2.blockBackground,fromLeft = _this$props2.fromLeft,ariaLabel = _this$props2['aria-label'];var _this$getProps = this.getProps(),offset = _this$getProps.offset,role = _this$getProps.role;var widthDesktop = this.props.width || (blockBackground ? 800 : 500);var widthMobile = mobileWidth || '100%';var width = isMobile ? widthMobile : widthDesktop;return /*#__PURE__*/_react.default.createElement("div", { "aria-modal": true, role: role, "aria-label": ariaLabel, "data-tid": SidePageDataTids.root, className: this.cx((_this$cx = {}, _this$cx[this.styles.root()] = true, _this$cx)), ref: this.rootRef, onScroll: LayoutEvents.emit, style: { width: width, right: fromLeft ? 'auto' : offset, left: fromLeft ? offset : 'auto' } }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: this.isFocusLockDisabled, autoFocus: false, className: this.styles.focusLock() }, /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.handleClickOutside, active: true }, /*#__PURE__*/_react.default.createElement("div", { "data-tid": SidePageDataTids.container, className: this.cx(this.styles.wrapper(this.theme), (_this$cx2 = {}, _this$cx2[this.styles.wrapperLeft()] = fromLeft, _this$cx2[this.styles.wrapperMarginLeft()] = this.state.hasMargin && fromLeft, _this$cx2[this.styles.wrapperMarginRight()] = this.state.hasMargin && !fromLeft, _this$cx2[this.styles.shadow(this.theme)] = this.state.hasShadow, _this$cx2)), ref: this.layoutRef }, /*#__PURE__*/_react.default.createElement(_SidePageContext.SidePageContext.Provider, { value: this.getSidePageContextProps() }, this.props.children)))));};_proto.renderShadow = function renderShadow() {var _this$cx3;return /*#__PURE__*/_react.default.createElement("div", { className: this.styles.overlay(), onScroll: LayoutEvents.emit }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, { key: "hbvs" }), /*#__PURE__*/_react.default.createElement("div", { key: "overlay", className: this.cx((_this$cx3 = {}, _this$cx3[this.styles.background()] = true, _this$cx3[this.styles.backgroundGray(this.theme)] = this.state.hasBackground, _this$cx3)) }));};_proto.getTransitionNames = function getTransitionNames() {var transition = this.props.fromLeft ? this.styles.transitionRight : this.styles.transitionLeft;return { enter: transition(), enterActive: this.styles.transitionActive(), exit: this.styles.transitionLeave(), exitActive: this.styles.transitionLeaveActive(), appear: transition(), appearActive: this.styles.transitionActive() };};return (0, _createClass2.default)(SidePage, [{ key: "isFocusLockDisabled", get: function get() {var _this$getProps2 = this.getProps(),disableFocusLock = _this$getProps2.disableFocusLock;var blockBackground = this.props.blockBackground;if (!blockBackground) {return true;}if (disableFocusLock !== undefined) {return disableFocusLock;}return false;} }]);}(_react.default.Component), _SidePage.__KONTUR_REACT_UI__ = 'SidePage', _SidePage.displayName = 'SidePage', _SidePage.Header = _SidePageHeader.SidePageHeader, _SidePage.Body = _SidePageBody.SidePageBody, _SidePage.Footer = _SidePageFooter.SidePageFooter, _SidePage.Container = _SidePageContainer.SidePageContainer, _SidePage.defaultProps = { disableAnimations: _currentEnvironment.isTestEnv, offset: 0, role: 'dialog' }, _SidePage)) || _class) || _class;
|