@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","_reactTransitionGroup","_reactFocusLock","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_HideBodyVerticalScroll","_ModalStack","_RenderContainer","_RenderLayer","_ZIndex","_ThemeContext","_CommonWrapper","_currentEnvironment","_ResponsiveLayout","_createPropsGetter","_isInstanceOf","_renderEnvironment","_SidePageBody","_SidePageContainer","_SidePageContext","_SidePageFooter","_SidePageHeader","_SidePage2","_class","_SidePage","SidePageDataTids","exports","root","container","TRANSITION_TIMEOUT","SidePage","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","React","createRef","updateLayout","_this$header","_this$footer","update","getProps","createPropsGetter","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","isReactUIInstance","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","ModalStack","isBlocking","globalObject","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","isInstanceOf","MouseEvent","document","clientX","documentElement","handleKeyDown","isKeyEscape","stopPropagation","disableClose","onClose","ref","layoutRef","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$globalObject$ad","_this$globalObject","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","_this$globalObject$re","_this$globalObject2","removeEventListener","isNonNullable","remove","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","ResponsiveLayout","_ref","isMobile","RenderContainer","CommonWrapper","ZIndex","priority","onScroll","emit","createStackingContext","style","position","renderShadow","CSSTransition","in","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","HideBodyVerticalScroll","_this$cx","_this$cx2","_this$props2","mobileWidth","ariaLabel","_this$getProps","offset","role","widthDesktop","width","widthMobile","className","cx","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","RenderLayer","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","SidePageContext","Provider","value","children","_this$cx3","overlay","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass2","get","_this$getProps2","disableFocusLock","undefined","Component","__KONTUR_REACT_UI__","displayName","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","isTestEnv"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isNonNullable, isReactUIInstance } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { getStyles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает ширину сайдпейджаю на мобилке. По умолчанию ширина во весь экран. */\n mobileWidth?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\n@withRenderEnvironment\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n public rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n this.globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange, this.globalObject);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender(this.globalObject);\n this.setState({\n hasBackground: ModalStack.isBlocking(this, this.globalObject),\n });\n }\n }\n\n public componentWillUnmount() {\n this.globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this, this.globalObject);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{ position: 'absolute' }}\n >\n {!isMobile && blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { mobileWidth, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n const widthDesktop = this.props.width || (blockBackground ? 800 : 500);\n const widthMobile = mobileWidth || '100%';\n const width = isMobile ? widthMobile : widthDesktop;\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={this.cx({\n [this.styles.root()]: true,\n })}\n ref={this.rootRef}\n onScroll={LayoutEvents.emit}\n style={{\n width,\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }}\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={this.styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={this.cx(this.styles.wrapper(this.theme), {\n [this.styles.wrapperLeft()]: fromLeft,\n [this.styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [this.styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [this.styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <div className={this.styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={this.cx({\n [this.styles.background()]: true,\n [this.styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? this.styles.transitionRight : this.styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: this.styles.transitionActive(),\n exit: this.styles.transitionLeave(),\n exitActive: this.styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: this.styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter(\n (x) => isReactUIInstance<SidePage>(x, 'SidePage') && x.props.fromLeft === this.props.fromLeft,\n );\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this, this.globalObject);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, this.globalObject.MouseEvent) &&\n this.globalObject.document &&\n e.clientX > this.globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n e.stopPropagation();\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_reactFocusLock","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_HideBodyVerticalScroll","_ModalStack","_RenderContainer","_RenderLayer","_ZIndex","_ThemeContext","_CommonWrapper","_currentEnvironment","_ResponsiveLayout","_createPropsGetter","_isInstanceOf","_rootNode","_renderEnvironment","_SidePageBody","_SidePageContainer","_SidePageContext","_SidePageFooter","_SidePageHeader","_SidePage2","_class","_SidePage","SidePageDataTids","exports","root","container","TRANSITION_TIMEOUT","SidePage","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","React","createRef","updateLayout","_this$header","_this$footer","update","getProps","createPropsGetter","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","isReactUIInstance","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","ModalStack","isBlocking","globalObject","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","isInstanceOf","MouseEvent","document","clientX","documentElement","handleKeyDown","isKeyEscape","stopPropagation","disableClose","onClose","ref","layoutRef","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$globalObject$ad","_this$globalObject","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","_this$globalObject$re","_this$globalObject2","removeEventListener","isNonNullable","remove","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","ResponsiveLayout","_ref","isMobile","RenderContainer","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","onScroll","emit","createStackingContext","style","position","renderShadow","CSSTransition","in","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","HideBodyVerticalScroll","_this$cx","_this$cx2","_this$props2","mobileWidth","ariaLabel","_this$getProps","offset","role","widthDesktop","width","widthMobile","className","cx","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","RenderLayer","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","SidePageContext","Provider","value","children","_this$cx3","overlay","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass2","get","_this$getProps2","disableFocusLock","undefined","Component","__KONTUR_REACT_UI__","displayName","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","isTestEnv"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isNonNullable, isReactUIInstance } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { getStyles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает ширину сайдпейджаю на мобилке. По умолчанию ширина во весь экран. */\n mobileWidth?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\n@withRenderEnvironment\n@rootNode\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n public rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n this.globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange, this.globalObject);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender(this.globalObject);\n this.setState({\n hasBackground: ModalStack.isBlocking(this, this.globalObject),\n });\n }\n }\n\n public componentWillUnmount() {\n this.globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this, this.globalObject);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{ position: 'absolute' }}\n >\n {!isMobile && blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { mobileWidth, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n const widthDesktop = this.props.width || (blockBackground ? 800 : 500);\n const widthMobile = mobileWidth || '100%';\n const width = isMobile ? widthMobile : widthDesktop;\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={this.cx({\n [this.styles.root()]: true,\n })}\n ref={this.rootRef}\n onScroll={LayoutEvents.emit}\n style={{\n width,\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }}\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={this.styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={this.cx(this.styles.wrapper(this.theme), {\n [this.styles.wrapperLeft()]: fromLeft,\n [this.styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [this.styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [this.styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <div className={this.styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={this.cx({\n [this.styles.background()]: true,\n [this.styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? this.styles.transitionRight : this.styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: this.styles.transitionActive(),\n exit: this.styles.transitionLeave(),\n exitActive: this.styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: this.styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter(\n (x) => isReactUIInstance<SidePage>(x, 'SidePage') && x.props.fromLeft === this.props.fromLeft,\n );\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this, this.globalObject);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, this.globalObject.MouseEvent) &&\n this.globalObject.document &&\n e.clientX > this.globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n e.stopPropagation();\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;AACA,IAAAO,uBAAA,GAAAP,OAAA;;AAEA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,gBAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;;;AAGA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA;AACA,IAAAe,iBAAA,GAAAf,OAAA;AACA,IAAAgB,kBAAA,GAAAhB,OAAA;AACA,IAAAiB,aAAA,GAAAjB,OAAA;;AAEA,IAAAkB,SAAA,GAAAlB,OAAA;AACA,IAAAmB,kBAAA,GAAAnB,OAAA;;AAEA,IAAAoB,aAAA,GAAApB,OAAA;AACA,IAAAqB,kBAAA,GAAArB,OAAA;;AAEA,IAAAsB,gBAAA,GAAAtB,OAAA;AACA,IAAAuB,eAAA,GAAAvB,OAAA;AACA,IAAAwB,eAAA,GAAAxB,OAAA;AACA,IAAAyB,UAAA,GAAAzB,OAAA,sBAA8C,IAAA0B,MAAA,EAAAC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDvC,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,IAAI,EAAE,gBAAgB;EACtBC,SAAS,EAAE;AACb,CAAU;;;;AAIV,IAAMC,kBAAkB,GAAG,GAAG;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GARA;;;AAWaC,QAAQ,GAAAJ,OAAA,CAAAI,QAAA,OAFpBC,wCAAqB,EAAAR,MAAA,OACrBS,kBAAQ,EAAAT,MAAA,IAAAC,SAAA,0BAAAS,gBAAA,YAAAH,SAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;IAYAU,KAAK,GAAkB;MAC5BC,SAAS,EAAE,KAAK;MAChBC,SAAS,EAAE,KAAK;MAChBC,QAAQ,EAAE;IACZ,CAAC,CAAAb,KAAA;;;;;;;IAOOc,iBAAiB,GAAkC,IAAI,CAAAd,KAAA;IACvDe,MAAM,GAAuB,IAAI,CAAAf,KAAA;IACjCgB,MAAM,GAA0B,IAAI,CAAAhB,KAAA;IACpCiB,MAAM,GAA0B,IAAI,CAAAjB,KAAA;IACrCkB,OAAO,gBAAGC,cAAK,CAACC,SAAS,CAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;IAwBlD;AACF;AACA;AACA,OAHEpB,KAAA;IAIOqB,YAAY,GAAG,YAAY,KAAAC,YAAA,EAAAC,YAAA;MAChC,CAAAD,YAAA,GAAAtB,KAAA,CAAKgB,MAAM,aAAXM,YAAA,CAAaE,MAAM,CAAC,CAAC;MACrB,CAAAD,YAAA,GAAAvB,KAAA,CAAKiB,MAAM,aAAXM,YAAA,CAAaC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAAxB,KAAA;;;;;;;;IAQOyB,QAAQ,GAAG,IAAAC,oCAAiB,EAAC9B,QAAQ,CAAC+B,YAAY,CAAC,CAAA3B,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiHnD4B,uBAAuB,GAAG,YAA2B;MAC3D,OAAO;QACLjB,SAAS,EAAEX,KAAA,CAAKU,KAAK,CAACC,SAAS;QAC/BC,SAAS,EAAEZ,KAAA,CAAKU,KAAK,CAACE,SAAS;QAC/BC,QAAQ,EAAEb,KAAA,CAAKU,KAAK,CAACG,QAAQ;QAC7BgB,YAAY,EAAE7B,KAAA,CAAK6B,YAAY;QAC/BC,QAAQ,EAAE9B,KAAA,CAAK8B,QAAQ;QACvBT,YAAY,EAAErB,KAAA,CAAKqB,YAAY;QAC/BU,SAAS,EAAE/B,KAAA,CAAK+B,SAAS;QACzBC,SAAS,EAAEhC,KAAA,CAAKgC,SAAS;QACzBC,YAAY,EAAEjC,KAAA,CAAKiC,YAAY;QAC/BC,YAAY,EAAElC,KAAA,CAAKkC,YAAY;QAC/BC,WAAW,EAAEnC,KAAA,CAAKmC;MACpB,CAAC;IACH,CAAC,CAAAnC,KAAA;;IAEO8B,QAAQ,GAAG,YAAM;MACvB,IAAI,CAAC9B,KAAA,CAAKe,MAAM,EAAE;QAChB,OAAO,MAAM;MACf;MACA,OAAOf,KAAA,CAAKe,MAAM,CAACqB,WAAW;IAChC,CAAC,CAAApC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BOqC,iBAAiB,GAAG,UAACC,KAAiC,EAAK;MACjE,IAAMC,SAAS,GAAGD,KAAK,CAACE,MAAM;QAC5B,UAACC,CAAC,UAAK,IAAAC,wBAAiB,EAAWD,CAAC,EAAE,UAAU,CAAC,IAAIA,CAAC,CAACE,KAAK,CAACC,QAAQ,KAAK5C,KAAA,CAAK2C,KAAK,CAACC,QAAQ;MAC/F,CAAC;MACD,IAAMC,uBAAuB,GAAGN,SAAS,CAACO,OAAO,CAAA9C,KAAK,CAAC;;MAEvD,IAAM+C,SAAS,GAAGR,SAAS,CAACpC,MAAM,GAAG,CAAC,IAAI0C,uBAAuB,KAAKN,SAAS,CAACpC,MAAM,GAAG,CAAC;MAC1F,IAAM6C,SAAS,GAAGT,SAAS,CAACpC,MAAM,GAAG,CAAC,IAAI0C,uBAAuB,GAAGN,SAAS,CAACpC,MAAM,GAAG,CAAC;MACxF,IAAM8C,aAAa,GAAGC,sBAAU,CAACC,UAAU,CAAAnD,KAAA,EAAOA,KAAA,CAAKoD,YAAY,CAAC;;MAEpEpD,KAAA,CAAKqD,QAAQ,CAAC;QACZC,aAAa,EAAEhB,KAAK,CAACQ,OAAO,CAAA9C,KAAK,CAAC;QAClC+C,SAAS,EAATA,SAAS;QACTC,SAAS,EAATA,SAAS;QACTC,aAAa,EAAbA;MACF,CAAC,CAAC;IACJ,CAAC,CAAAjD,KAAA;;IAEOuD,kBAAkB,GAAG,UAACC,CAAQ,EAAK;MACzC,IAAIxD,KAAA,CAAKU,KAAK,CAAC4C,aAAa,KAAK,CAAC,IAAI,CAACtD,KAAA,CAAK2C,KAAK,CAACc,qBAAqB,EAAE;QACvE;QACA;QACE,IAAAC,0BAAY,EAACF,CAAC,EAAExD,KAAA,CAAKoD,YAAY,CAACO,UAAU,CAAC;QAC7C3D,KAAA,CAAKoD,YAAY,CAACQ,QAAQ;QAC1BJ,CAAC,CAACK,OAAO,GAAG7D,KAAA,CAAKoD,YAAY,CAACQ,QAAQ,CAACE,eAAe,CAAC1B,WAAW;QAClE;UACA;QACF;QACApC,KAAA,CAAK6B,YAAY,CAAC,CAAC;MACrB;IACF,CAAC,CAAA7B,KAAA;;IAEO+D,aAAa,GAAG,UAACP,CAAgB,EAAK;MAC5C,IAAIxD,KAAA,CAAKU,KAAK,CAAC4C,aAAa,KAAK,CAAC,EAAE;QAClC;MACF;MACA,IAAI,IAAAU,wBAAW,EAACR,CAAC,CAAC,EAAE;QAClBA,CAAC,CAACS,eAAe,CAAC,CAAC;QACnBjE,KAAA,CAAK6B,YAAY,CAAC,CAAC;MACrB;IACF,CAAC,CAAA7B,KAAA;;IAEO6B,YAAY,GAAG,YAAM;MAC3B,IAAI7B,KAAA,CAAK2C,KAAK,CAACuB,YAAY,EAAE;QAC3B;MACF;MACA,IAAIlE,KAAA,CAAK2C,KAAK,CAACwB,OAAO,EAAE;QACtBnE,KAAA,CAAK2C,KAAK,CAACwB,OAAO,CAAC,CAAC;MACtB;IACF,CAAC,CAAAnE,KAAA;;IAEO+B,SAAS,GAAG,UAACqC,GAA0B,EAAK;MAClDpE,KAAA,CAAKgB,MAAM,GAAGoD,GAAG;IACnB,CAAC,CAAApE,KAAA;;IAEOgC,SAAS,GAAG,UAACoC,GAA0B,EAAK;MAClDpE,KAAA,CAAKiB,MAAM,GAAGmD,GAAG;IACnB,CAAC,CAAApE,KAAA;;IAEOqE,SAAS,GAAG,UAACD,GAA0B,EAAK;MAClDpE,KAAA,CAAKe,MAAM,GAAGqD,GAAG;IACnB,CAAC,CAAApE,KAAA;;IAEOiC,YAAY,GAAG,UAACtB,SAAS,EAAY,KAArBA,SAAS,cAATA,SAAS,GAAG,IAAI;MACtCX,KAAA,CAAKU,KAAK,CAACC,SAAS,KAAKA,SAAS,IAAIX,KAAA,CAAKqD,QAAQ,CAAC,EAAE1C,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC,CAAAX,KAAA;;IAEOkC,YAAY,GAAG,UAACtB,SAAS,EAAY,KAArBA,SAAS,cAATA,SAAS,GAAG,IAAI;MACtCZ,KAAA,CAAKU,KAAK,CAACE,SAAS,KAAKA,SAAS,IAAIZ,KAAA,CAAKqD,QAAQ,CAAC,EAAEzC,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC,CAAAZ,KAAA;;IAEOmC,WAAW,GAAG,UAACtB,QAAQ,EAAa,KAArBA,QAAQ,cAARA,QAAQ,GAAG,KAAK;MACrCb,KAAA,CAAKU,KAAK,CAACG,QAAQ,KAAKA,QAAQ,IAAIb,KAAA,CAAKqD,QAAQ,CAAC,EAAExC,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC,QAAAb,KAAA,MAAAsE,eAAA,CAAAC,OAAA,EAAA3E,QAAA,EAAAG,gBAAA,MAAAyE,MAAA,GAAA5E,QAAA,CAAA6E,SAAA,CAAAD,MAAA,CAlRME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,KAAAC,qBAAA,EAAAC,kBAAA,CACzB,CAAAD,qBAAA,IAAAC,kBAAA,OAAI,CAACxB,YAAY,EAACyB,gBAAgB,aAAlCF,qBAAA,CAAApE,IAAA,CAAAqE,kBAAA,EAAqC,SAAS,EAAE,IAAI,CAACb,aAAa,CAAC,CACnE,IAAI,CAACjD,iBAAiB,GAAGoC,sBAAU,CAAC4B,GAAG,CAAC,IAAI,EAAE,IAAI,CAACzC,iBAAiB,EAAE,IAAI,CAACe,YAAY,CAAC,CAC1F,CAAC,CAAAoB,MAAA,CAEMO,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAwB,EAAE,CAClD,IAAIA,SAAS,CAACC,eAAe,KAAK,IAAI,CAACtC,KAAK,CAACsC,eAAe,EAAE,CAC5D/B,sBAAU,CAACgC,QAAQ,CAAC,IAAI,CAAC9B,YAAY,CAAC,CACtC,IAAI,CAACC,QAAQ,CAAC,EACZJ,aAAa,EAAEC,sBAAU,CAACC,UAAU,CAAC,IAAI,EAAE,IAAI,CAACC,YAAY,CAAC,CAC/D,CAAC,CAAC,CACJ,CACF,CAAC,CAAAoB,MAAA,CAEMW,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,KAAAC,qBAAA,EAAAC,mBAAA,CAC5B,CAAAD,qBAAA,IAAAC,mBAAA,OAAI,CAACjC,YAAY,EAACkC,mBAAmB,aAArCF,qBAAA,CAAA7E,IAAA,CAAA8E,mBAAA,EAAwC,SAAS,EAAE,IAAI,CAACtB,aAAa,CAAC,CACtE,IAAI,IAAAwB,oBAAa,EAAC,IAAI,CAACzE,iBAAiB,CAAC,EAAE,CACzC,IAAI,CAACA,iBAAiB,CAAC0E,MAAM,CAAC,CAAC,CACjC,CACAtC,sBAAU,CAACsC,MAAM,CAAC,IAAI,EAAE,IAAI,CAACpC,YAAY,CAAC,CAC5C,CAAC,CAAAoB,MAAA,CAmBMiB,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAACC,MAAM,GAAG,IAAAC,oBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACEpI,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACvH,aAAA,CAAAwH,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVP,MAAI,CAACO,KAAK,GAAGA,KAAK,CAClB,OAAOP,MAAI,CAACQ,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAA1B,MAAA,CAEO0B,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,MAAA,QACnB,IAAAC,WAAA,GAAsC,IAAI,CAACzD,KAAK,CAAxCsC,eAAe,GAAAmB,WAAA,CAAfnB,eAAe,CAAEoB,QAAQ,GAAAD,WAAA,CAARC,QAAQ,CACjC,IAAMC,iBAAiB,GAAG,IAAI,CAAC7E,QAAQ,CAAC,CAAC,CAAC6E,iBAAiB,CAC3D,oBACE7I,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACpH,iBAAA,CAAA6H,gBAAgB,QACd,UAAAC,IAAA,OAAGC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,qBACVhJ,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAAC1H,gBAAA,CAAAsI,eAAe,qBACdjJ,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACtH,cAAA,CAAAmI,aAAa,MAAAC,SAAA,CAAArC,OAAA,IAACsC,WAAW,EAAEV,MAAI,CAACW,WAAY,IAAKX,MAAI,CAACxD,KAAK,gBAC1DlF,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACxH,OAAA,CAAAyI,MAAM,IACLC,QAAQ,EAAE,UAAW,EACrBC,QAAQ,EAAEjJ,YAAY,CAACkJ,IAAK,EAC5BC,qBAAqB,QACrBC,KAAK,EAAE,EAAEC,QAAQ,EAAE,UAAU,CAAC,CAAE,IAE/B,CAACZ,QAAQ,IAAIxB,eAAe,IAAIkB,MAAI,CAACmB,YAAY,CAAC,CAAC,eACpD7J,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAAClI,qBAAA,CAAA2J,aAAa,IACZC,EAAE,QACFC,UAAU,EAAEtB,MAAI,CAACuB,kBAAkB,CAAC,CAAE,EACtCC,MAAM,EAAE,CAACrB,iBAAkB,EAC3BsB,KAAK,EAAE,CAACtB,iBAAkB,EAC1BuB,IAAI,EAAE,KAAM,EACZC,OAAO,EAAE,EACPF,KAAK,EAAEjI,kBAAkB,EACzBkI,IAAI,EAAElI,kBAAkB,CAC1B,CAAE,EACFoI,OAAO,EAAE5B,MAAI,CAACjF,OAAQ,EACtB8G,SAAS,EAAE3B,QAAS,IAEnBF,MAAI,CAAC8B,eAAe,CAACxB,QAAQ,CACjB,CAAC,EACfA,QAAQ,iBAAIhJ,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAAC5H,uBAAA,CAAAgK,sBAAsB,MAAE,CAChC,CACK,CACA,CAAC,EAEJ,CAAC,CAEvB,CAAC,CAAA1D,MAAA,CAcOyD,eAAe,GAAvB,SAAAA,gBAAwBxB,QAAiB,EAAe,KAAA0B,QAAA,EAAAC,SAAA,CACtD,IAAAC,YAAA,GAA4E,IAAI,CAAC1F,KAAK,CAA9E2F,WAAW,GAAAD,YAAA,CAAXC,WAAW,CAAErD,eAAe,GAAAoD,YAAA,CAAfpD,eAAe,CAAErC,QAAQ,GAAAyF,YAAA,CAARzF,QAAQ,CAAgB2F,SAAS,GAAAF,YAAA,CAAvB,YAAY,EAC5D,IAAAG,cAAA,GAAyB,IAAI,CAAC/G,QAAQ,CAAC,CAAC,CAAhCgH,MAAM,GAAAD,cAAA,CAANC,MAAM,CAAEC,IAAI,GAAAF,cAAA,CAAJE,IAAI,CAEpB,IAAMC,YAAY,GAAG,IAAI,CAAChG,KAAK,CAACiG,KAAK,KAAK3D,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC,CACtE,IAAM4D,WAAW,GAAGP,WAAW,IAAI,MAAM,CACzC,IAAMM,KAAK,GAAGnC,QAAQ,GAAGoC,WAAW,GAAGF,YAAY,CAEnD,oBACElL,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,UACE,kBAAU,EACV4C,IAAI,EAAEA,IAAK,EACX,cAAYH,SAAU,EACtB,YAAUhJ,gBAAgB,CAACE,IAAK,EAChCqJ,SAAS,EAAE,IAAI,CAACC,EAAE,EAAAZ,QAAA,OAAAA,QAAA,CACf,IAAI,CAACxC,MAAM,CAAClG,IAAI,CAAC,CAAC,IAAG,IAAI,EAAA0I,QAAA,CAC3B,CAAE,EACH/D,GAAG,EAAE,IAAI,CAAClD,OAAQ,EAClB+F,QAAQ,EAAEjJ,YAAY,CAACkJ,IAAK,EAC5BE,KAAK,EAAE,EACLwB,KAAK,EAALA,KAAK,EACLI,KAAK,EAAEpG,QAAQ,GAAG,MAAM,GAAG6F,MAAM,EACjCQ,IAAI,EAAErG,QAAQ,GAAG6F,MAAM,GAAG,MAAM,CAClC,CAAE,iBAEFhL,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACjI,eAAA,CAAA0G,OAAS,IAAC2E,QAAQ,EAAE,IAAI,CAACC,mBAAoB,EAACC,SAAS,EAAE,KAAM,EAACN,SAAS,EAAE,IAAI,CAACnD,MAAM,CAAC0D,SAAS,CAAC,CAAE,iBAClG5L,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAACzH,YAAA,CAAAiL,WAAW,IAACC,cAAc,EAAE,IAAI,CAAChG,kBAAmB,EAACiG,MAAM,uBAC1D/L,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,UACE,YAAUvG,gBAAgB,CAACG,SAAU,EACrCoJ,SAAS,EAAE,IAAI,CAACC,EAAE,CAAC,IAAI,CAACpD,MAAM,CAAC8D,OAAO,CAAC,IAAI,CAACxD,KAAK,CAAC,GAAAmC,SAAA,OAAAA,SAAA,CAC/C,IAAI,CAACzC,MAAM,CAAC+D,WAAW,CAAC,CAAC,IAAG9G,QAAQ,EAAAwF,SAAA,CACpC,IAAI,CAACzC,MAAM,CAACgE,iBAAiB,CAAC,CAAC,IAAG,IAAI,CAACjJ,KAAK,CAACqC,SAAS,IAAIH,QAAQ,EAAAwF,SAAA,CAClE,IAAI,CAACzC,MAAM,CAACiE,kBAAkB,CAAC,CAAC,IAAG,IAAI,CAAClJ,KAAK,CAACqC,SAAS,IAAI,CAACH,QAAQ,EAAAwF,SAAA,CACpE,IAAI,CAACzC,MAAM,CAACkE,MAAM,CAAC,IAAI,CAAC5D,KAAK,CAAC,IAAG,IAAI,CAACvF,KAAK,CAACsC,SAAS,EAAAoF,SAAA,CACvD,CAAE,EACHhE,GAAG,EAAE,IAAI,CAACC,SAAU,iBAEpB5G,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAAC7G,gBAAA,CAAA6K,eAAe,CAACC,QAAQ,IAACC,KAAK,EAAE,IAAI,CAACpI,uBAAuB,CAAC,CAAE,IAC7D,IAAI,CAACe,KAAK,CAACsH,QACY,CACvB,CACM,CACJ,CACR,CAAC,CAEV,CAAC,CAAAzF,MAAA,CAyBO8C,YAAY,GAApB,SAAAA,aAAA,EAAoC,KAAA4C,SAAA,CAClC,oBACEzM,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,UAAKgD,SAAS,EAAE,IAAI,CAACnD,MAAM,CAACwE,OAAO,CAAC,CAAE,EAAClD,QAAQ,EAAEjJ,YAAY,CAACkJ,IAAK,iBACjEzJ,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,CAAC5H,uBAAA,CAAAgK,sBAAsB,IAACkC,GAAG,EAAC,MAAM,EAAE,CAAC,eACrC3M,MAAA,CAAA8G,OAAA,CAAAuB,aAAA,UACEsE,GAAG,EAAC,SAAS,EACbtB,SAAS,EAAE,IAAI,CAACC,EAAE,EAAAmB,SAAA,OAAAA,SAAA,CACf,IAAI,CAACvE,MAAM,CAAC0E,UAAU,CAAC,CAAC,IAAG,IAAI,EAAAH,SAAA,CAC/B,IAAI,CAACvE,MAAM,CAAC2E,cAAc,CAAC,IAAI,CAACrE,KAAK,CAAC,IAAG,IAAI,CAACvF,KAAK,CAACuC,aAAa,EAAAiH,SAAA,CACnE,CAAE,EACJ,CACE,CAAC,CAEV,CAAC,CAAA1F,MAAA,CAEOkD,kBAAkB,GAA1B,SAAAA,mBAAA,EAAqD,CACnD,IAAM6C,UAAU,GAAG,IAAI,CAAC5H,KAAK,CAACC,QAAQ,GAAG,IAAI,CAAC+C,MAAM,CAAC6E,eAAe,GAAG,IAAI,CAAC7E,MAAM,CAAC8E,cAAc,CAEjG,OAAO,EACL7C,KAAK,EAAE2C,UAAU,CAAC,CAAC,EACnBG,WAAW,EAAE,IAAI,CAAC/E,MAAM,CAACgF,gBAAgB,CAAC,CAAC,EAC3C9C,IAAI,EAAE,IAAI,CAAClC,MAAM,CAACiF,eAAe,CAAC,CAAC,EACnCC,UAAU,EAAE,IAAI,CAAClF,MAAM,CAACmF,qBAAqB,CAAC,CAAC,EAC/CnD,MAAM,EAAE4C,UAAU,CAAC,CAAC,EACpBQ,YAAY,EAAE,IAAI,CAACpF,MAAM,CAACgF,gBAAgB,CAAC,CAAC,CAC9C,CAAC,CACH,CAAC,YAAAK,aAAA,CAAAzG,OAAA,EAAA3E,QAAA,KAAAwK,GAAA,yBAAAa,GAAA,EA5GD,SAAAA,IAAA,EAAkC,CAChC,IAAAC,eAAA,GAA6B,IAAI,CAACzJ,QAAQ,CAAC,CAAC,CAApC0J,gBAAgB,GAAAD,eAAA,CAAhBC,gBAAgB,CACxB,IAAQlG,eAAe,GAAK,IAAI,CAACtC,KAAK,CAA9BsC,eAAe,CACvB,IAAI,CAACA,eAAe,EAAE,CACpB,OAAO,IAAI,CACb,CACA,IAAIkG,gBAAgB,KAAKC,SAAS,EAAE,CAClC,OAAOD,gBAAgB,CACzB,CACA,OAAO,KAAK,CACd,CAAC,OAjI2BhK,cAAK,CAACkK,SAAS,GAAA/L,SAAA,CAC7BgM,mBAAmB,GAAG,UAAU,EAAAhM,SAAA,CAChCiM,WAAW,GAAG,UAAU,EAAAjM,SAAA,CAKxBkM,MAAM,GAAGC,8BAAc,EAAAnM,SAAA,CACvBoM,IAAI,GAAGC,0BAAY,EAAArM,SAAA,CACnBsM,MAAM,GAAGC,8BAAc,EAAAvM,SAAA,CACvBwM,SAAS,GAAGC,oCAAiB,EAAAzM,SAAA,CAiD7BqC,YAAY,GAAiB,EACzC2E,iBAAiB,EAAE0F,6BAAS,EAC5BvD,MAAM,EAAE,CAAC,EACTC,IAAI,EAAE,QAAQ,CAChB,CAAC,EAAApJ,SAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","LayoutEvents","_interopRequireWildcard","_ThemeContext","_CommonWrapper","_decorator","_rootNode","_getDOMRect","_Gapped","_utils","_ModalSeparator","_renderEnvironment","_SidePage","_SidePageContext","_class","_SidePageFooter","SidePageFooterDataTids","exports","root","SidePageFooter","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","getRootNode","wrapperRect","getDOMRect","contentRect","top","setState","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","globalObject","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this3","separator","ModalSeparator","CommonWrapper","_extends2","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","SidePageContext","_ref","_this3$cx","_this3$cx2","getWidth","cx","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","isNonNullable","gap","Gapped","vertical","children","React","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update, this.globalObject);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={this.styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={this.cx(this.styles.footer(this.theme), {\n [this.styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={this.cx(this.styles.footerContent(this.theme), {\n [this.styles.footerFixed(this.theme)]: this.state.fixed,\n [this.styles.panel(this.theme)]: !!this.props.panel,\n [this.styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [this.styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"odAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAC,YAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;;;AAGA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;;AAEA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,kBAAA,GAAAX,OAAA;;AAEA,IAAAY,SAAA,GAAAZ,OAAA;;AAEA,IAAAa,gBAAA,GAAAb,OAAA,sBAAoD,IAAAc,MAAA,EAAAC,eAAA;;;;;;;;;;;;;;;;;;;;AAoB7C,IAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA,GAJA;;;;AAQaC,cAAc,GAAAF,OAAA,CAAAE,cAAA,OAH1BC,wCAAqB,EAAAN,MAAA,OACrBO,2BAAgB,EAAAP,MAAA,OAChBQ,kBAAQ,EAAAR,MAAA,IAAAC,eAAA,0BAAAQ,gBAAA,YAAAJ,eAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,CAAAV,KAAA;;;IAG3CW,KAAK,GAAwB;MAClCC,KAAK,EAAE;IACT,CAAC,CAAAZ,KAAA;;;;;;;IAOOa,OAAO,GAAuB,IAAI,CAAAb,KAAA;IAClCc,SAAS,GAAuD,IAAI,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDrEe,MAAM,GAAG,YAAM;MACpBf,KAAA,CAAKgB,eAAe,CAAC,CAAC;IACxB,CAAC,CAAAhB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDOiB,UAAU,GAAG,UAACC,IAAwB,EAAK;MACjDlB,KAAA,CAAKa,OAAO,GAAGK,IAAI;IACrB,CAAC,CAAAlB,KAAA;;IAEOgB,eAAe,GAAG,YAAM;MAC9B,IAAMG,OAAO,GAAG,IAAAC,qBAAW,EAAApB,KAAK,CAAC;MACjC,IAAImB,OAAO,IAAInB,KAAA,CAAKa,OAAO,EAAE;QAC3B,IAAMQ,WAAW,GAAG,IAAAC,sBAAU,EAACH,OAAO,CAAC;QACvC,IAAMI,WAAW,GAAG,IAAAD,sBAAU,EAACtB,KAAA,CAAKa,OAAO,CAAC;QAC5C,IAAMD,KAAK,GAAGS,WAAW,CAACG,GAAG,GAAGD,WAAW,CAACC,GAAG;QAC/CxB,KAAA,CAAKyB,QAAQ,CAAC,EAAEb,KAAK,EAALA,KAAK,CAAC,CAAC,CAAC;MAC1B;IACF,CAAC,QAAAZ,KAAA,MAAA0B,eAAA,CAAAC,OAAA,EAAAhC,cAAA,EAAAI,gBAAA,MAAA6B,MAAA,GAAAjC,cAAA,CAAAkC,SAAA,CAAAD,MAAA,CA9GME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,KAAAC,qBAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,cAAA,CACzB,IAAI,CAACxB,OAAO,CAACyB,SAAS,CAAC,IAAI,CAAC,CAC5B,IAAI,CAACpB,MAAM,CAAC,CAAC,CACb,IAAI,CAACD,SAAS,GAAGrC,YAAY,CAAC2D,WAAW,CAAC,IAAI,CAACrB,MAAM,EAAE,IAAI,CAACsB,YAAY,CAAC,CACzE,CAAAN,qBAAA,IAAAC,aAAA,OAAI,CAACtB,OAAO,EAAC4B,YAAY,aAAzBP,qBAAA,CAAAxB,IAAA,CAAAyB,aAA4B,CAAC,CAC7B,CAAAC,qBAAA,IAAAC,cAAA,OAAI,CAACxB,OAAO,EAAC6B,WAAW,aAAxBN,qBAAA,CAAA1B,IAAA,CAAA2B,cAAA,EAA2B,IAAI,CAACM,KAAK,CAACC,KAAK,CAAC,CAC9C,CAAC,CAAAb,MAAA,CAEMc,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAwC,EAAE,KAAAC,sBAAA,EAAAC,cAAA,CAClE,IAAI,CAACL,KAAK,CAACC,KAAK,KAAKE,SAAS,CAACF,KAAK,MAAAG,sBAAA,GAAI,CAAAC,cAAA,OAAI,CAACnC,OAAO,EAAC6B,WAAW,qBAAxBK,sBAAA,CAAArC,IAAA,CAAAsC,cAAA,EAA2B,IAAI,CAACL,KAAK,CAACC,KAAK,CAAC,EACtF,CAAC,CAAAb,MAAA,CAEMkB,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,KAAAC,sBAAA,EAAAC,cAAA,EAAAC,sBAAA,EAAAC,cAAA,CAC5B,IAAI,CAACxC,OAAO,CAACyB,SAAS,CAAC,IAAI,CAAC,CAC5B,IAAI,IAAI,CAACrB,SAAS,EAAE,CAClB,IAAI,CAACA,SAAS,CAACqC,MAAM,CAAC,CAAC,CACzB,CACA,CAAAJ,sBAAA,IAAAC,cAAA,OAAI,CAACtC,OAAO,EAAC4B,YAAY,aAAzBS,sBAAA,CAAAxC,IAAA,CAAAyC,cAAA,EAA4B,KAAK,CAAC,CAClC,CAAAC,sBAAA,IAAAC,cAAA,OAAI,CAACxC,OAAO,EAAC6B,WAAW,aAAxBU,sBAAA,CAAA1C,IAAA,CAAA2C,cAAA,EAA2B,KAAK,CAAC,CACnC,CAAC,CAAAtB,MAAA,CAEMwB,SAAS,GAAhB,SAAAA,UAAA,EAAmB,CACjB,IAAI,OAAO,IAAI,CAACZ,KAAK,CAACa,MAAM,KAAK,WAAW,EAAE,CAC5C,OAAO,IAAI,CAACb,KAAK,CAACa,MAAM,CAC1B,CAEA,IAAI,IAAI,CAACC,cAAc,EAAE,CACvB,OAAO,KAAK,CACd,CAEA,OAAO,IAAI,CACb,CAAC,CAAA1B,MAAA,CAEM2B,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAACC,MAAM,GAAG,IAAAC,mBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACErF,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,CAACjF,aAAA,CAAAkF,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVP,MAAI,CAACO,KAAK,GAAGA,KAAK,CAClB,OAAOP,MAAI,CAACQ,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAApC,MAAA,CAMOoC,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,MAAA,QACnB,IAAMC,SAA0B,GAAG,CAAC,IAAI,CAAC1B,KAAK,CAACC,KAAK,IAAI,IAAI,CAAC9B,KAAK,CAACC,KAAK,kBACtEtC,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,CAAC1E,eAAA,CAAAiF,cAAc,IAACvD,KAAK,EAAE,IAAI,CAACD,KAAK,CAACC,KAAM,EAAE,CAC3C,CAED,oBACEtC,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,CAAChF,cAAA,CAAAwF,aAAa,MAAAC,SAAA,CAAA1C,OAAA,IAAC2C,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAAC/B,KAAK,gBAC1DlE,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,UACE,YAAUpE,sBAAsB,CAACE,IAAK,EACtC8E,KAAK,EAAE,EAAEC,MAAM,EAAE,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC,CAAE,EAC3CC,SAAS,EAAE,IAAI,CAAClB,MAAM,CAACmB,aAAa,CAAC,CAAE,iBAEvCtG,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,CAACvE,gBAAA,CAAAwF,eAAe,CAACf,QAAQ,QACtB,UAAAgB,IAAA,OAAAC,SAAA,EAAAC,UAAA,KAAGC,QAAQ,GAAAH,IAAA,CAARG,QAAQ,qBACV3G,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,UACEe,SAAS,EAAEV,MAAI,CAACiB,EAAE,CAACjB,MAAI,CAACR,MAAM,CAAC0B,MAAM,CAAClB,MAAI,CAACF,KAAK,CAAC,GAAAgB,SAAA,OAAAA,SAAA,CAC9Cd,MAAI,CAACR,MAAM,CAAC2B,cAAc,CAAC,CAAC,IAAG,CAACnB,MAAI,CAACb,SAAS,CAAC,CAAC,EAAA2B,SAAA,CAClD,CAAE,EACHP,KAAK,EAAE,EACLa,KAAK,EAAEJ,QAAQ,CAAC,CAAC,CACnB,CAAE,IAEDf,SAAS,eACV5F,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,UACEe,SAAS,EAAEV,MAAI,CAACiB,EAAE,CAACjB,MAAI,CAACR,MAAM,CAAC6B,aAAa,CAACrB,MAAI,CAACF,KAAK,CAAC,GAAAiB,UAAA,OAAAA,UAAA,CACrDf,MAAI,CAACR,MAAM,CAAC8B,WAAW,CAACtB,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACtD,KAAK,CAACC,KAAK,EAAAoE,UAAA,CACtDf,MAAI,CAACR,MAAM,CAAChB,KAAK,CAACwB,MAAI,CAACF,KAAK,CAAC,IAAG,CAAC,CAACE,MAAI,CAACzB,KAAK,CAACC,KAAK,EAAAuC,UAAA,CAClDf,MAAI,CAACR,MAAM,CAAC+B,UAAU,CAACvB,MAAI,CAACF,KAAK,CAAC,IAAG,CAAC,CAACE,MAAI,CAACzB,KAAK,CAACC,KAAK,IAAIwB,MAAI,CAACtD,KAAK,CAACC,KAAK,EAAAoE,UAAA,CAC3Ef,MAAI,CAACR,MAAM,CAACgC,mBAAmB,CAACxB,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACX,cAAc,EAAA0B,UAAA,CACnE,CAAE,EACHU,GAAG,EAAEzB,MAAI,CAAChD,UAAW,IAEpB,IAAA0E,oBAAa,EAAC1B,MAAI,CAACzB,KAAK,CAACoD,GAAG,CAAC,gBAC5BtH,MAAA,CAAAqD,OAAA,CAAAiC,aAAA,CAAC5E,OAAA,CAAA6G,MAAM,IAACC,QAAQ,EAAE7B,MAAI,CAACX,cAAe,EAACsC,GAAG,EAAE3B,MAAI,CAACzB,KAAK,CAACoD,GAAI,IACxD3B,MAAI,CAACzB,KAAK,CAACuD,QACN,CAAC,GAET9B,MAAI,CAACzB,KAAK,CAACuD,QAEV,CACF,CAAC,EAEgB,CACvB,CACQ,CAAC,CAEpB,CAAC,CAAAnE,MAAA;;EAgBO8C,gBAAgB,GAAxB,SAAAA,iBAAA,EAA2B;IACzB,IAAI,CAAC,IAAI,CAAC7D,OAAO,EAAE;MACjB,OAAO,MAAM;IACf;IACA,OAAO,IAAAS,sBAAU,EAAC,IAAI,CAACT,OAAO,CAAC,CAAC4D,MAAM;EACxC,CAAC,QAAA9E,cAAA,GA3IiCqG,cAAK,CAACC,SAAS,GAAA1G,eAAA,CACnC2G,mBAAmB,GAAG,gBAAgB,EAAA3G,eAAA,CACtC4G,WAAW,GAAG,gBAAgB,EAAA5G,eAAA,CAE9B6G,WAAW,GAAGvB,gCAAe,EAAAtF,eAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","LayoutEvents","_interopRequireWildcard","_ThemeContext","_CommonWrapper","_decorator","_rootNode","_getDOMRect","_Gapped","_utils","_ModalSeparator","_renderEnvironment","_SidePage","_SidePageContext","_class","_SidePageFooter","SidePageFooterDataTids","exports","root","SidePageFooter","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","getRootNode","wrapperRect","getDOMRect","contentRect","top","setState","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","globalObject","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this3","separator","ModalSeparator","CommonWrapper","_extends2","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","SidePageContext","_ref","_this3$cx","_this3$cx2","getWidth","cx","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","isNonNullable","gap","Gapped","vertical","children","React","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update, this.globalObject);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={this.styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={this.cx(this.styles.footer(this.theme), {\n [this.styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={this.cx(this.styles.footerContent(this.theme), {\n [this.styles.footerFixed(this.theme)]: this.state.fixed,\n [this.styles.panel(this.theme)]: !!this.props.panel,\n [this.styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [this.styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_Sticky","_utils","_ThemeContext","_CommonWrapper","_decorator","_rootNode","_ModalSeparator","_renderEnvironment","_SidePage","_SidePageContext","_SidePageCloseButton","_class","_SidePageHeader","SidePageHeaderDataTids","exports","root","close","SidePageHeader","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isNativeStuck","isReadyToStuck","sticky","componentDidMount","_getRootNode","getRootNode","parentNode","addEventListener","throttleHandleScroll","setHasHeader","headerRef","componentWillUnmount","_getRootNode2","removeEventListener","throttle","event","target","currentTarget","scrollTop","setState","update","_this$sticky","reflow","renderHeader","fixed","_this$cx","_this$cx2","isDisplayed","props","hasSeparator","default","createElement","className","cx","styles","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","mobileTitle","titleCut","cutTitleOnStuck","isFunction","children","ModalSeparator","_this$cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","wrapperClose","wrapperCloseFixed","mobileWrapperClose","Sticky","side","offset","SidePageCloseButton","isHeaderFixed","isMobile","stickyRef","el","_inheritsLoose2","_proto","prototype","render","_this2","getStyles","emotion","ThemeContext","Consumer","renderMain","getStickyProp","_this$cx4","isStickyDesktop","isStickyMobile","CommonWrapper","_extends2","rootNodeRef","setRootNode","headerWrapper","headerNativeStuck","ref","React","Component","__KONTUR_REACT_UI__","displayName","contextType","SidePageContext","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n\n /**\n * Обрезает длинный заголовок при «залипании» шапки.\n * @default false.\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isNativeStuck: boolean;\n isReadyToStuck: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isNativeStuck: true,\n isReadyToStuck: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private sticky: Sticky | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount = () => {\n getRootNode(this)?.parentNode?.addEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n getRootNode(this)?.parentNode?.removeEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n private throttleHandleScroll = throttle((event: Event) => {\n const target = event.currentTarget as HTMLElement;\n if (target && typeof target.scrollTop === 'number') {\n this.setState({ isNativeStuck: target.scrollTop === 0 });\n }\n this.update();\n }, 5);\n\n public update = () => {\n this.sticky?.reflow();\n };\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp();\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageHeaderDataTids.root}\n className={this.cx(this.styles.headerWrapper(), {\n [this.styles.headerNativeStuck(this.theme)]: this.state.isNativeStuck,\n })}\n >\n {!this.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={this.cx(this.styles.header(this.theme), {\n [this.styles.headerFixed(this.theme)]: fixed,\n [this.styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={this.cx(this.styles.title(this.theme), {\n [this.styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [this.styles.titleCut()]: fixed && this.props.cutTitleOnStuck,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n return (\n <div\n className={this.cx(this.styles.wrapperClose(this.theme), {\n [this.styles.wrapperCloseFixed(this.theme)]: fixed,\n [this.styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n })}\n >\n {!this.isMobileLayout ? (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n ) : (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile={this.isMobileLayout} />\n )}\n </div>\n );\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"qXAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;;;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;;;AAGA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;;AAEA,IAAAU,SAAA,GAAAV,OAAA;;AAEA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,oBAAA,GAAAZ,OAAA,0BAA4D,IAAAa,MAAA,EAAAC,eAAA;;;;;;;;;;;;;;;;;;;;;;AAsBrD,IAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,IAAI,EAAE,sBAAsB;EAC5BC,KAAK,EAAE;AACT,CAAU;;AAEV;AACA;AACA;AACA;AACA,GAJA;;;;AAQaC,cAAc,GAAAH,OAAA,CAAAG,cAAA,OAH1BC,wCAAqB,EAAAP,MAAA,OACrBQ,2BAAgB,EAAAR,MAAA,OAChBS,kBAAQ,EAAAT,MAAA,IAAAC,eAAA,0BAAAS,gBAAA,YAAAJ,eAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,CAAAV,KAAA;;;;IAI3CW,KAAK,GAAwB;MAClCC,aAAa,EAAE,IAAI;MACnBC,cAAc,EAAE;IAClB,CAAC,CAAAb,KAAA;;;;;;;;;;IAUOc,MAAM,GAAkB,IAAI,CAAAd,KAAA;;;;IAI7Be,iBAAiB,GAAG,YAAM,KAAAC,YAAA;MAC/B,CAAAA,YAAA,OAAAC,qBAAW,EAAAjB,KAAK,CAAC,cAAAgB,YAAA,GAAjBA,YAAA,CAAmBE,UAAU,aAA7BF,YAAA,CAA+BG,gBAAgB,YAA/CH,YAAA,CAA+BG,gBAAgB,CAAG,QAAQ,EAAEnB,KAAA,CAAKoB,oBAAoB,EAAE,IAAI,CAAC;MAC5FpB,KAAA,CAAKU,OAAO,CAACW,YAAY,YAAzBrB,KAAA,CAAKU,OAAO,CAACW,YAAY,CAAG,CAAC;MAC7BrB,KAAA,CAAKU,OAAO,CAACY,SAAS,CAAAtB,KAAK,CAAC;IAC9B,CAAC,CAAAA,KAAA;;IAEMuB,oBAAoB,GAAG,YAAM,KAAAC,aAAA;MAClC,CAAAA,aAAA,OAAAP,qBAAW,EAAAjB,KAAK,CAAC,cAAAwB,aAAA,GAAjBA,aAAA,CAAmBN,UAAU,aAA7BM,aAAA,CAA+BC,mBAAmB,YAAlDD,aAAA,CAA+BC,mBAAmB,CAAG,QAAQ,EAAEzB,KAAA,CAAKoB,oBAAoB,EAAE,IAAI,CAAC;MAC/FpB,KAAA,CAAKU,OAAO,CAACW,YAAY,YAAzBrB,KAAA,CAAKU,OAAO,CAACW,YAAY,CAAG,KAAK,CAAC;MAClCrB,KAAA,CAAKU,OAAO,CAACY,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAC,CAAAtB,KAAA;;IAEOoB,oBAAoB,GAAG,IAAAM,eAAQ,EAAC,UAACC,KAAY,EAAK;MACxD,IAAMC,MAAM,GAAGD,KAAK,CAACE,aAA4B;MACjD,IAAID,MAAM,IAAI,OAAOA,MAAM,CAACE,SAAS,KAAK,QAAQ,EAAE;QAClD9B,KAAA,CAAK+B,QAAQ,CAAC,EAAEnB,aAAa,EAAEgB,MAAM,CAACE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;MAC1D;MACA9B,KAAA,CAAKgC,MAAM,CAAC,CAAC;IACf,CAAC,EAAE,CAAC,CAAC,CAAAhC,KAAA;;IAEEgC,MAAM,GAAG,YAAM,KAAAC,YAAA;MACpB,CAAAA,YAAA,GAAAjC,KAAA,CAAKc,MAAM,aAAXmB,YAAA,CAAaC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAAlC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqDOmC,YAAY,GAAG,UAACC,KAAK,EAAa,KAAAC,QAAA,EAAAC,SAAA,KAAlBF,KAAK,cAALA,KAAK,GAAG,KAAK;MACnC,IAAMG,WAAW,GAAGvC,KAAA,CAAKwC,KAAK,CAACC,YAAY,IAAIL,KAAK;MACpD;QACE9D,MAAA,CAAAoE,OAAA,CAAAC,aAAA;QACErE,MAAA,CAAAoE,OAAA,CAAAC,aAAA;UACEC,SAAS,EAAE5C,KAAA,CAAK6C,EAAE,CAAC7C,KAAA,CAAK8C,MAAM,CAACC,MAAM,CAAC/C,KAAA,CAAKgD,KAAK,CAAC,GAAAX,QAAA,OAAAA,QAAA;UAC9CrC,KAAA,CAAK8C,MAAM,CAACG,WAAW,CAACjD,KAAA,CAAKgD,KAAK,CAAC,IAAGZ,KAAK,EAAAC,QAAA;UAC3CrC,KAAA,CAAK8C,MAAM,CAACI,YAAY,CAAClD,KAAA,CAAKgD,KAAK,CAAC,IAAGhD,KAAA,CAAKmD,cAAc,EAAAd,QAAA;UAC5D,CAAE;;QAEFrC,KAAA,CAAKoD,WAAW,CAAChB,KAAK,CAAC;QACxB9D,MAAA,CAAAoE,OAAA,CAAAC,aAAA;UACEC,SAAS,EAAE5C,KAAA,CAAK6C,EAAE,CAAC7C,KAAA,CAAK8C,MAAM,CAACO,KAAK,CAACrD,KAAA,CAAKgD,KAAK,CAAC,GAAAV,SAAA,OAAAA,SAAA;UAC7CtC,KAAA,CAAK8C,MAAM,CAACQ,WAAW,CAACtD,KAAA,CAAKgD,KAAK,CAAC,IAAGhD,KAAA,CAAKmD,cAAc,EAAAb,SAAA;UACzDtC,KAAA,CAAK8C,MAAM,CAACS,QAAQ,CAAC,CAAC,IAAGnB,KAAK,IAAIpC,KAAA,CAAKwC,KAAK,CAACgB,eAAe,EAAAlB,SAAA;UAC9D,CAAE;;QAEF,IAAAmB,iBAAU,EAACzD,KAAA,CAAKwC,KAAK,CAACkB,QAAQ,CAAC,GAAG1D,KAAA,CAAKwC,KAAK,CAACkB,QAAQ,CAACtB,KAAK,CAAC,GAAGpC,KAAA,CAAKwC,KAAK,CAACkB;QACxE;QACF,CAAC;QACLnB,WAAW,iBAAIjE,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAAC3D,eAAA,CAAA2E,cAAc,IAACvB,KAAK,EAAEA,KAAM,EAAE;QAC5C,CAAC;;IAEV,CAAC,CAAApC,KAAA;;IAEOoD,WAAW,GAAG,UAAChB,KAAc,EAAK,KAAAwB,SAAA;MACxC,IAAMC,YAAY,GAAGC,QAAQ,CAAC9D,KAAA,CAAKgD,KAAK,CAACe,0BAA0B,CAAC;MACpE;QACEzF,MAAA,CAAAoE,OAAA,CAAAC,aAAA;UACEC,SAAS,EAAE5C,KAAA,CAAK6C,EAAE,CAAC7C,KAAA,CAAK8C,MAAM,CAACkB,YAAY,CAAChE,KAAA,CAAKgD,KAAK,CAAC,GAAAY,SAAA,OAAAA,SAAA;UACpD5D,KAAA,CAAK8C,MAAM,CAACmB,iBAAiB,CAACjE,KAAA,CAAKgD,KAAK,CAAC,IAAGZ,KAAK,EAAAwB,SAAA;UACjD5D,KAAA,CAAK8C,MAAM,CAACoB,kBAAkB,CAAClE,KAAA,CAAKgD,KAAK,CAAC,IAAGhD,KAAA,CAAKmD,cAAc,EAAAS,SAAA;UAClE,CAAE;;QAEF,CAAC5D,KAAA,CAAKmD,cAAc;QACnB7E,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAACjE,OAAA,CAAAyF,MAAM,IAACC,IAAI,EAAC,KAAK,EAACC,MAAM,EAAER,YAAa;QACtCvF,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAACvD,oBAAA,CAAAkF,mBAAmB,IAACC,aAAa,EAAEnC,KAAM,EAAE;QACtC,CAAC;;QAET9D,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAACvD,oBAAA,CAAAkF,mBAAmB,IAACC,aAAa,EAAEnC,KAAM,EAACoC,QAAQ,EAAExE,KAAA,CAAKmD,cAAe,EAAE;;QAE1E,CAAC;;IAEV,CAAC,CAAAnD,KAAA;;IAEOyE,SAAS,GAAG,UAACC,EAAiB,EAAK;MACzC1E,KAAA,CAAKc,MAAM,GAAG4D,EAAE;IAClB,CAAC,QAAA1E,KAAA,MAAA2E,eAAA,CAAAjC,OAAA,EAAA/C,cAAA,EAAAI,gBAAA,MAAA6E,MAAA,GAAAjF,cAAA,CAAAkF,SAAA,CAAAD,MAAA,CAlGME,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAACjC,MAAM,GAAG,IAAAkC,mBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACE3G,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAAC/D,aAAA,CAAAsG,YAAY,CAACC,QAAQ,QACnB,UAACnC,KAAK,EAAK,CACV+B,MAAI,CAAC/B,KAAK,GAAGA,KAAK,CAClB,OAAO+B,MAAI,CAACK,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAR,MAAA,CAEMS,aAAa,GAApB,SAAAA,cAAA,EAAuB,CACrB,IAAI,OAAO,IAAI,CAAC7C,KAAK,CAAC1B,MAAM,KAAK,WAAW,EAAE,CAC5C,OAAO,IAAI,CAAC0B,KAAK,CAAC1B,MAAM,CAC1B,CAEA,IAAI,IAAI,CAACqC,cAAc,EAAE,CACvB,OAAO,KAAK,CACd,CAEA,OAAO,IAAI,CACb,CAAC,CAAAyB,MAAA,CAEOQ,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAE,SAAA,CACnB,IAAMC,eAAe,GAAG,CAAC,IAAI,CAACpC,cAAc,IAAI,IAAI,CAACkC,aAAa,CAAC,CAAC,CACpE,IAAMG,cAAc,GAAG,IAAI,CAACrC,cAAc,IAAI,IAAI,CAACkC,aAAa,CAAC,CAAC,CAElE,IAAMtC,MAAM,GAAG,IAAI,CAACZ,YAAY,CAEhC,oBACE7D,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAAC9D,cAAA,CAAA4G,aAAa,MAAAC,SAAA,CAAAhD,OAAA,IAACiD,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACpD,KAAK,gBAC1DlE,MAAA,CAAAoE,OAAA,CAAAC,aAAA,UACE,YAAUpD,sBAAsB,CAACE,IAAK,EACtCmD,SAAS,EAAE,IAAI,CAACC,EAAE,CAAC,IAAI,CAACC,MAAM,CAAC+C,aAAa,CAAC,CAAC,GAAAP,SAAA,OAAAA,SAAA,CAC3C,IAAI,CAACxC,MAAM,CAACgD,iBAAiB,CAAC,IAAI,CAAC9C,KAAK,CAAC,IAAG,IAAI,CAACrC,KAAK,CAACC,aAAa,EAAA0E,SAAA,CACtE,CAAE,IAEF,CAAC,IAAI,CAAC3E,KAAK,CAACC,aAAa,KAAK2E,eAAe,IAAIC,cAAc,CAAC,gBAC/DlH,MAAA,CAAAoE,OAAA,CAAAC,aAAA,CAACjE,OAAA,CAAAyF,MAAM,IAAC4B,GAAG,EAAE,IAAI,CAACtB,SAAU,EAACL,IAAI,EAAC,KAAK,IACpCrB,MACK,CAAC,GAETA,MAAM,CAAC,CAEN,CACQ,CAAC,CAEpB,CAAC,QAAApD,cAAA,GAnGiCqG,cAAK,CAACC,SAAS,GAAA3G,eAAA,CACnC4G,mBAAmB,GAAG,gBAAgB,EAAA5G,eAAA,CACtC6G,WAAW,GAAG,gBAAgB,EAAA7G,eAAA,CAE9B8G,WAAW,GAAGC,gCAAe,EAAA/G,eAAA,CAU7BgH,YAAY,GAAiC,EACzD7D,YAAY,EAAE,KAAK,CACrB,CAAC,EAAAnD,eAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_Sticky","_utils","_ThemeContext","_CommonWrapper","_decorator","_rootNode","_ModalSeparator","_renderEnvironment","_SidePage","_SidePageContext","_SidePageCloseButton","_class","_SidePageHeader","SidePageHeaderDataTids","exports","root","close","SidePageHeader","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isNativeStuck","isReadyToStuck","sticky","componentDidMount","_getRootNode","getRootNode","parentNode","addEventListener","throttleHandleScroll","setHasHeader","headerRef","componentWillUnmount","_getRootNode2","removeEventListener","throttle","event","target","currentTarget","scrollTop","setState","update","_this$sticky","reflow","renderHeader","fixed","_this$cx","_this$cx2","isDisplayed","props","hasSeparator","default","createElement","className","cx","styles","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","mobileTitle","titleCut","cutTitleOnStuck","isFunction","children","ModalSeparator","_this$cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","wrapperClose","wrapperCloseFixed","mobileWrapperClose","Sticky","side","offset","SidePageCloseButton","isHeaderFixed","isMobile","stickyRef","el","_inheritsLoose2","_proto","prototype","render","_this2","getStyles","emotion","ThemeContext","Consumer","renderMain","getStickyProp","_this$cx4","isStickyDesktop","isStickyMobile","CommonWrapper","_extends2","rootNodeRef","setRootNode","headerWrapper","headerNativeStuck","ref","React","Component","__KONTUR_REACT_UI__","displayName","contextType","SidePageContext","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\nimport throttle from 'lodash.throttle';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n\n /**\n * Обрезает длинный заголовок при «залипании» шапки.\n * @default false.\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isNativeStuck: boolean;\n isReadyToStuck: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isNativeStuck: true,\n isReadyToStuck: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private sticky: Sticky | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount = () => {\n getRootNode(this)?.parentNode?.addEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n getRootNode(this)?.parentNode?.removeEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n private throttleHandleScroll = throttle((event: Event) => {\n const target = event.currentTarget as HTMLElement;\n if (target && typeof target.scrollTop === 'number') {\n this.setState({ isNativeStuck: target.scrollTop === 0 });\n }\n this.update();\n }, 5);\n\n public update = () => {\n this.sticky?.reflow();\n };\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp();\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageHeaderDataTids.root}\n className={this.cx(this.styles.headerWrapper(), {\n [this.styles.headerNativeStuck(this.theme)]: this.state.isNativeStuck,\n })}\n >\n {!this.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={this.cx(this.styles.header(this.theme), {\n [this.styles.headerFixed(this.theme)]: fixed,\n [this.styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={this.cx(this.styles.title(this.theme), {\n [this.styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [this.styles.titleCut()]: fixed && this.props.cutTitleOnStuck,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n return (\n <div\n className={this.cx(this.styles.wrapperClose(this.theme), {\n [this.styles.wrapperCloseFixed(this.theme)]: fixed,\n [this.styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n })}\n >\n {!this.isMobileLayout ? (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n ) : (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile={this.isMobileLayout} />\n )}\n </div>\n );\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,7 @@ import { Toast } from '../Toast';
|
|
|
13
13
|
export declare class SingleToast extends React.Component<ToastProps> {
|
|
14
14
|
static __KONTUR_REACT_UI__: string;
|
|
15
15
|
static displayName: string;
|
|
16
|
-
static ref: React.RefObject<Toast>;
|
|
16
|
+
static ref: React.RefObject<Toast | null>;
|
|
17
17
|
static close: ToastClose;
|
|
18
18
|
/**
|
|
19
19
|
* Показывает тост с `notification` в качестве сообщения.
|
|
@@ -154,9 +154,13 @@ Sticky = exports.Sticky = (0, _renderEnvironment.withRenderEnvironment)(_class =
|
|
|
154
154
|
|
|
155
155
|
|
|
156
156
|
|
|
157
|
-
refWrapper = function (ref) {
|
|
157
|
+
refWrapper = function (ref) {
|
|
158
|
+
_this.wrapper = ref;
|
|
159
|
+
};_this.
|
|
158
160
|
|
|
159
|
-
refInner = function (ref) {
|
|
161
|
+
refInner = function (ref) {
|
|
162
|
+
_this.inner = ref;
|
|
163
|
+
};
|
|
160
164
|
|
|
161
165
|
/**
|
|
162
166
|
* Пересчитать габариты и позицию залипшего элемента
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_shallowequal","_warning","LayoutEvents","_interopRequireWildcard","_utils","_ZIndex","_CommonWrapper","_rootNode","_getDOMRect3","_createPropsGetter","_renderEnvironment","_Sticky2","_class","_Sticky","MAX_REFLOW_RETRIES","StickyDataTids","exports","root","Sticky","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_this$globalObject$do","globalObject","document","documentElement","warning","windowHeight","innerHeight","clientHeight","_getDOMRect","getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","shallowEqual","render","styles","getStyles","emotion","renderMain","_this$cx","children","_this$state2","innerStyle","isFunction","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","ZIndex","priority","applyZIndex","cx","style","wrapperRef","container","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport warning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@withRenderEnvironment\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow, this.globalObject);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n this.reflow();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n return this.renderMain();\n }\n\n private renderMain() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={this.styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={this.cx(this.styles.inner(), {\n [this.styles.fixed()]: fixed && !stopped,\n [this.styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={this.styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!this.globalObject.document?.documentElement) {\n warning(false, 'There is no \"documentElement\" in document');\n return;\n }\n\n const windowHeight = this.globalObject.innerHeight || this.globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_shallowequal","_warning","LayoutEvents","_interopRequireWildcard","_utils","_ZIndex","_CommonWrapper","_rootNode","_getDOMRect3","_createPropsGetter","_renderEnvironment","_Sticky2","_class","_Sticky","MAX_REFLOW_RETRIES","StickyDataTids","exports","root","Sticky","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_this$globalObject$do","globalObject","document","documentElement","warning","windowHeight","innerHeight","clientHeight","_getDOMRect","getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","shallowEqual","render","styles","getStyles","emotion","renderMain","_this$cx","children","_this$state2","innerStyle","isFunction","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","ZIndex","priority","applyZIndex","cx","style","wrapperRef","container","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport warning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@withRenderEnvironment\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow, this.globalObject);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n this.reflow();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n return this.renderMain();\n }\n\n private renderMain() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={this.styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={this.cx(this.styles.inner(), {\n [this.styles.fixed()]: fixed && !stopped,\n [this.styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={this.styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => {\n this.wrapper = ref;\n };\n\n private refInner = (ref: Nullable<HTMLElement>) => {\n this.inner = ref;\n };\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!this.globalObject.document?.documentElement) {\n warning(false, 'There is no \"documentElement\" in document');\n return;\n }\n\n const windowHeight = this.globalObject.innerHeight || this.globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"ocAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;;;AAGA,IAAAG,YAAA,GAAAC,uBAAA,CAAAJ,OAAA;;AAEA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;;AAEA,IAAAO,cAAA,GAAAP,OAAA;;AAEA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,kBAAA,GAAAV,OAAA;AACA,IAAAW,kBAAA,GAAAX,OAAA;;AAEA,IAAAY,QAAA,GAAAZ,OAAA,oBAA4C,IAAAa,MAAA,EAAAC,OAAA;;AAE5C,IAAMC,kBAAkB,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BrB,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,IAAI,EAAE;AACR,CAAU;;;;AAIV;AACA;AACA;AACA,GAHA;;;AAMaC,MAAM,GAAAF,OAAA,CAAAE,MAAA,OAFlBC,wCAAqB,EAAAP,MAAA,OACrBQ,kBAAQ,EAAAR,MAAA,IAAAC,OAAA,0BAAAQ,gBAAA,YAAAH,OAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;IAOCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACf,MAAM,CAACgB,YAAY,CAAC,CAAAZ,KAAA;;IAElDa,KAAK,GAAgB;MAC1BC,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACf,CAAC,CAAAjB,KAAA;;;;;;;;IAQOkB,kBAAkB,GAAqC,EAAEC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAAnB,KAAA;IACvEoB,aAAa,GAAG,CAAC,CAAApB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2EjBqB,UAAU,GAAG,UAACC,GAA0B,EAAK;MACnDtB,KAAA,CAAKuB,OAAO,GAAGD,GAAG;IACpB,CAAC,CAAAtB,KAAA;;IAEOwB,QAAQ,GAAG,UAACF,GAA0B,EAAK;MACjDtB,KAAA,CAAKyB,KAAK,GAAGH,GAAG;IAClB,CAAC;;IAED;AACF;AACA;AACA;AACA,OAJEtB,KAAA;IAKO0B,MAAM,GAAG,YAAM,KAAAC,qBAAA;MACpB,IAAI,GAAAA,qBAAA,GAAC3B,KAAA,CAAK4B,YAAY,CAACC,QAAQ,aAA1BF,qBAAA,CAA4BG,eAAe,GAAE;QAChD,IAAAC,gBAAO,EAAC,KAAK,EAAE,2CAA2C,CAAC;QAC3D;MACF;;MAEA,IAAMC,YAAY,GAAGhC,KAAA,CAAK4B,YAAY,CAACK,WAAW,IAAIjC,KAAA,CAAK4B,YAAY,CAACC,QAAQ,CAACC,eAAe,CAACI,YAAY;MAC7G,IAAI,CAAClC,KAAA,CAAKuB,OAAO,IAAI,CAACvB,KAAA,CAAKyB,KAAK,EAAE;QAChC;MACF;MACA,IAAAU,WAAA,GAAqC,IAAAC,uBAAU,EAACpC,KAAA,CAAKuB,OAAO,CAAC,CAArDc,GAAG,GAAAF,WAAA,CAAHE,GAAG,CAAEC,MAAM,GAAAH,WAAA,CAANG,MAAM,CAAEC,IAAI,GAAAJ,WAAA,CAAJI,IAAI,CAAEC,KAAK,GAAAL,WAAA,CAALK,KAAK;MAChC,IAAAC,YAAA,GAAmB,IAAAL,uBAAU,EAACpC,KAAA,CAAKyB,KAAK,CAAC,CAAjCiB,MAAM,GAAAD,YAAA,CAANC,MAAM;MACd,IAAAC,WAAA,GAA0B3C,KAAA,CAAK4C,KAAK,CAA5BC,OAAO,GAAAF,WAAA,CAAPE,OAAO,CAAEC,IAAI,GAAAH,WAAA,CAAJG,IAAI;MACrB,IAAAC,WAAA,GAA0D/C,KAAA,CAAKa,KAAK,CAArDmC,SAAS,GAAAD,WAAA,CAAhBjC,KAAK,CAAAmC,kBAAA,GAAAF,WAAA,CAAaL,MAAM,CAAEQ,UAAU,GAAAD,kBAAA,cAAGP,MAAM,GAAAO,kBAAA;MACrD,IAAME,MAAM,GAAGnD,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACyC,MAAM;MACrC,IAAMrC,KAAK,GAAGgC,IAAI,KAAK,KAAK,GAAGM,IAAI,CAACC,IAAI,CAAChB,GAAG,CAAC,GAAGc,MAAM,GAAGC,IAAI,CAACE,KAAK,CAAChB,MAAM,CAAC,GAAGN,YAAY,GAAGmB,MAAM;;MAEnGnD,KAAA,CAAKuD,QAAQ,CAAC,EAAEzC,KAAK,EAALA,KAAK,EAAEyB,IAAI,EAAJA,IAAI,CAAC,CAAC,CAAC;;MAE9B,IAAIzB,KAAK,IAAI,CAACkC,SAAS,EAAE;QACvBhD,KAAA,CAAKuD,QAAQ,CAAC,EAAEf,KAAK,EAALA,KAAK,EAAEE,MAAM,EAANA,MAAM,CAAC,CAAC,CAAC;MAClC;;MAEA,IAAI5B,KAAK,EAAE;QACTd,KAAA,CAAKuD,QAAQ,CAAC,EAAEf,KAAK,EAALA,KAAK,CAAC,CAAC,CAAC;QACxB,IAAMgB,IAAI,GAAGX,OAAO,IAAIA,OAAO,CAAC,CAAC;QACjC,IAAIW,IAAI,EAAE;UACR,IAAMzC,WAAW,GAAGmC,UAAU,GAAGR,MAAM;UACvC,IAAMe,QAAQ,GAAG,IAAArB,uBAAU,EAACoB,IAAI,CAAC;UACjC,IAAME,WAAW,GAAGhB,MAAM,GAAGS,MAAM;UACnC,IAAInC,OAAO,GAAG,KAAK;UACnB,IAAIC,WAAW,GAAG,CAAC;;UAEnB,IAAI6B,IAAI,KAAK,KAAK,EAAE;YAClB9B,OAAO,GAAGyC,QAAQ,CAACpB,GAAG,GAAGqB,WAAW,GAAG,CAAC;YACxCzC,WAAW,GAAGwC,QAAQ,CAACpB,GAAG,GAAGa,UAAU,GAAGb,GAAG;UAC/C,CAAC,MAAM;YACLrB,OAAO,GAAGyC,QAAQ,CAACnB,MAAM,GAAGoB,WAAW,GAAG1B,YAAY;YACtDf,WAAW,GAAGwC,QAAQ,CAACnB,MAAM,GAAGD,GAAG;UACrC;;UAEArC,KAAA,CAAKuD,QAAQ,CAAC,EAAEtC,WAAW,EAAXA,WAAW,EAAEF,WAAW,EAAXA,WAAW,EAAEC,OAAO,EAAPA,OAAO,CAAC,CAAC,CAAC;QACtD;MACF;IACF,CAAC,QAAAhB,KAAA,MAAA2D,eAAA,CAAAC,OAAA,EAAAhE,MAAA,EAAAG,gBAAA,MAAA8D,MAAA,GAAAjE,MAAA,CAAAkE,SAAA,CAAAD,MAAA,CAhIME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACrC,MAAM,CAAC,CAAC,CAEb,IAAI,CAACR,kBAAkB,GAAGtC,YAAY,CAACoF,WAAW,CAAC,IAAI,CAACtC,MAAM,EAAE,IAAI,CAACE,YAAY,CAAC,CACpF,CAAC,CAAAiC,MAAA,CAEMI,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAAC/C,kBAAkB,CAACC,MAAM,EAAE,CAClC,IAAI,CAACD,kBAAkB,CAACC,MAAM,CAAC,CAAC,CAClC,CACF,CAAC,CAAA0C,MAAA,CAEMK,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAsB,EAAEC,SAAsB,EAAE,CACxE,IAAI,CAAC,IAAAC,qBAAY,EAACF,SAAS,EAAE,IAAI,CAACvB,KAAK,CAAC,IAAI,CAAC,IAAAyB,qBAAY,EAACD,SAAS,EAAE,IAAI,CAACvD,KAAK,CAAC,EAAE,CAChF,IAAI,IAAI,CAACO,aAAa,GAAG5B,kBAAkB,EAAE,CAC3C,IAAI,CAACkC,MAAM,CAAC,CAAC,CACb,IAAI,CAACN,aAAa,IAAI,CAAC,CACvB,OACF,CACF,CACA,IAAI,CAACA,aAAa,GAAG,CAAC,CACxB,CAAC,CAAAyC,MAAA,CAEMS,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,IAAI,CAACC,MAAM,GAAG,IAAAC,kBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CACrC,OAAO,IAAI,CAACC,UAAU,CAAC,CAAC,CAC1B,CAAC,CAAAb,MAAA,CAEOa,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,QAAA,CACnB,IAAMC,QAAQ,GAAK,IAAI,CAAChC,KAAK,CAAvBgC,QAAQ,CACd,IAAQ9B,IAAI,GAAK,IAAI,CAACF,KAAK,CAAnBE,IAAI,CACZ,IAAMK,MAAM,GAAG,IAAI,CAACzC,QAAQ,CAAC,CAAC,CAACyC,MAAM,CACrC,IAAA0B,YAAA,GAA0E,IAAI,CAAChE,KAAK,CAA5EC,KAAK,GAAA+D,YAAA,CAAL/D,KAAK,CAAEE,OAAO,GAAA6D,YAAA,CAAP7D,OAAO,CAAEC,WAAW,GAAA4D,YAAA,CAAX5D,WAAW,CAAEF,WAAW,GAAA8D,YAAA,CAAX9D,WAAW,CAAEyB,KAAK,GAAAqC,YAAA,CAALrC,KAAK,CAAEE,MAAM,GAAAmC,YAAA,CAANnC,MAAM,CAAEH,IAAI,GAAAsC,YAAA,CAAJtC,IAAI,CACrE,IAAMuC,UAA+B,GAAG,CAAC,CAAC,CAE1C,IAAIhE,KAAK,EAAE,CACT,IAAIE,OAAO,EAAE,CACX8D,UAAU,CAACzC,GAAG,GAAGpB,WAAW,CAC5B6D,UAAU,CAAChC,IAAI,KAAK,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG/B,WAAW,CACzE,CAAC,MAAM,CACL+D,UAAU,CAACtC,KAAK,GAAGA,KAAK,CACxBsC,UAAU,CAAChC,IAAI,CAAC,GAAGK,MAAM,CACzB2B,UAAU,CAACvC,IAAI,GAAGA,IAAI,CACxB,CACF,CAEA,IAAI,IAAAwC,iBAAU,EAACH,QAAQ,CAAC,EAAE,CACxBA,QAAQ,GAAGA,QAAQ,CAAC9D,KAAK,CAAC,CAC5B,CAEA,oBACEvC,MAAA,CAAAqF,OAAA,CAAAoB,aAAA,CAAChG,cAAA,CAAAiG,aAAa,MAAAC,SAAA,CAAAtB,OAAA,IAACuB,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACxC,KAAK,gBAC1DrE,MAAA,CAAAqF,OAAA,CAAAoB,aAAA,UAAK,YAAUvF,cAAc,CAACE,IAAK,EAAC2B,GAAG,EAAE,IAAI,CAACD,UAAW,EAACgE,SAAS,EAAE,IAAI,CAACd,MAAM,CAAChD,OAAO,CAAC,CAAE,iBACzFhD,MAAA,CAAAqF,OAAA,CAAAoB,aAAA,CAACjG,OAAA,CAAAuG,MAAM,IACLC,QAAQ,EAAC,QAAQ,EACjBC,WAAW,EAAE1E,KAAM,EACnBuE,SAAS,EAAE,IAAI,CAACI,EAAE,CAAC,IAAI,CAAClB,MAAM,CAAC9C,KAAK,CAAC,CAAC,GAAAkD,QAAA,OAAAA,QAAA,CACnC,IAAI,CAACJ,MAAM,CAACzD,KAAK,CAAC,CAAC,IAAGA,KAAK,IAAI,CAACE,OAAO,EAAA2D,QAAA,CACvC,IAAI,CAACJ,MAAM,CAACvD,OAAO,CAAC,CAAC,IAAGA,OAAO,EAAA2D,QAAA,CACjC,CAAE,EACHe,KAAK,EAAEZ,UAAW,EAClBa,UAAU,EAAE,IAAI,CAACnE,QAAS,iBAE1BjD,MAAA,CAAAqF,OAAA,CAAAoB,aAAA,UAAKK,SAAS,EAAE,IAAI,CAACd,MAAM,CAACqB,SAAS,CAAC,CAAE,IAAEhB,QAAc,CAClD,CAAC,EACR9D,KAAK,IAAI,CAACE,OAAO,gBAAGzC,MAAA,CAAAqF,OAAA,CAAAoB,aAAA,UAAKU,KAAK,EAAE,EAAElD,KAAK,EAALA,KAAK,EAAEE,MAAM,EAANA,MAAM,CAAC,CAAE,EAAE,CAAC,GAAG,IACtD,CACQ,CAAC,CAEpB,CAAC,QAAA9C,MAAA,GA/FyBiG,cAAK,CAACC,SAAS,GAAAvG,OAAA,CAC3BwG,mBAAmB,GAAG,QAAQ,EAAAxG,OAAA,CAC9ByG,WAAW,GAAG,QAAQ,EAAAzG,OAAA,CAEtBqB,YAAY,GAAiB,EAAEuC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAA5D,OAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_CommonWrapper","_getRootNode","_rootNode","_createPropsGetter","_isInstanceOf","_renderEnvironment","_Indicator","_Tabs2","_TabsContext","_Tab","_class","_Tabs","TabsDataTids","exports","root","indicatorRoot","Tabs","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose2","default","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","_this3$cx","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","cx","rootSmall","rootMedium","rootLarge","style","TabsContext","Provider","activeTab","Indicator","React","Component","__KONTUR_REACT_UI__","displayName","Tab"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { Indicator } from './Indicator';\nimport { getStyles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Задает кастомный класс подчёркиванию таба. */\n indicatorClassName?: string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает текущий активный `<Tab />`. Принимает `id` таба. */\n value: T;\n\n /** Задает функцию, изменяющую текущий активный `<Tab />`. */\n onValueChange?: (value: T) => void;\n\n /** Задает расположение элементов по вертикали.\n * @default false */\n vertical?: boolean;\n\n /** Задает ширину компонента Tabs. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.\n *\n * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.\n *\n * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.\n * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.\n */\n@withRenderEnvironment\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: size === 'small',\n [this.styles.rootMedium(this.theme)]: size === 'medium',\n [this.styles.rootLarge(this.theme)]: size === 'large',\n [this.styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, this.globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_CommonWrapper","_getRootNode","_rootNode","_createPropsGetter","_isInstanceOf","_renderEnvironment","_Indicator","_Tabs2","_TabsContext","_Tab","_class","_Tabs","TabsDataTids","exports","root","indicatorRoot","Tabs","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose2","default","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","_this3$cx","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","cx","rootSmall","rootMedium","rootLarge","style","TabsContext","Provider","activeTab","Indicator","React","Component","__KONTUR_REACT_UI__","displayName","Tab"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes, JSX } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { Indicator } from './Indicator';\nimport { getStyles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Задает кастомный класс подчёркиванию таба. */\n indicatorClassName?: string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает текущий активный `<Tab />`. Принимает `id` таба. */\n value: T;\n\n /** Задает функцию, изменяющую текущий активный `<Tab />`. */\n onValueChange?: (value: T) => void;\n\n /** Задает расположение элементов по вертикали.\n * @default false */\n vertical?: boolean;\n\n /** Задает ширину компонента Tabs. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.\n *\n * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.\n *\n * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.\n * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.\n */\n@withRenderEnvironment\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={this.cx({\n [this.styles.rootSmall(this.theme)]: size === 'small',\n [this.styles.rootMedium(this.theme)]: size === 'medium',\n [this.styles.rootLarge(this.theme)]: size === 'large',\n [this.styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, this.globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { type CommonProps, CommonWrapper } from '../../internal/CommonWrapper';
|
|
3
4
|
import type { TokenSize } from './Token';
|
|
4
5
|
export interface TokenViewProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
6
|
/** Задает размер контрола. */
|
|
@@ -9,4 +10,4 @@ export interface TokenViewProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
9
10
|
/** Определяет, скрывать ли крестик для удаления токена. */
|
|
10
11
|
hideCloseButton?: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare
|
|
13
|
+
export declare const TokenView: React.ForwardRefExoticComponent<TokenViewProps & React.RefAttributes<CommonWrapper<CommonProps>>>;
|
|
@@ -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.TokenView =
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.TokenView = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
2
2
|
var _react = _interopRequireWildcard(require("react"));
|
|
3
3
|
|
|
4
4
|
var _renderEnvironment = require("../../lib/renderEnvironment");
|
|
@@ -17,7 +17,7 @@ var _Token = require("./Token.styles");var _excluded = ["size", "children", "clo
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
var TokenView = exports.TokenView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {var _cx;
|
|
21
21
|
var _props$size = props.size,size = _props$size === void 0 ? 'small' : _props$size,children = props.children,closeButton = props.closeButton,hideCloseButton = props.hideCloseButton,className = props.className,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
22
22
|
var _useEmotion = (0, _renderEnvironment.useEmotion)(),cx = _useEmotion.cx;
|
|
23
23
|
var styles = (0, _renderEnvironment.useStyles)(_Token.getStyles);
|
|
@@ -38,7 +38,7 @@ function TokenView(props) {var _cx;
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
return /*#__PURE__*/(
|
|
41
|
-
_react.default.createElement(_CommonWrapper.CommonWrapper, props, /*#__PURE__*/
|
|
41
|
+
_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({}, props, { ref: ref }), /*#__PURE__*/
|
|
42
42
|
_react.default.createElement("div", (0, _extends2.default)({},
|
|
43
43
|
rest, {
|
|
44
44
|
className: cx(getSizeClassName(size), (_cx = {}, _cx[
|
|
@@ -50,4 +50,4 @@ function TokenView(props) {var _cx;
|
|
|
50
50
|
)
|
|
51
51
|
));
|
|
52
52
|
|
|
53
|
-
}
|
|
53
|
+
});
|