@salutejs/plasma-new-hope 0.338.0-canary.2237.18342071625.0 → 0.338.0-canary.2254.18489699974.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/_virtual/_rollupPluginBabelHelpers.js +0 -8
- package/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/cjs/components/Calendar/Calendar.tokens.js +1 -0
- package/cjs/components/Calendar/Calendar.tokens.js.map +1 -1
- package/cjs/components/Calendar/CalendarBase/CalendarBase.css +4 -4
- package/cjs/components/Calendar/CalendarDouble/CalendarDouble.css +4 -4
- package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.css +4 -4
- package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.css +4 -4
- package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.css +4 -4
- package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.css +4 -4
- package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.css +4 -4
- package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +4 -4
- package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js.map +1 -1
- package/cjs/components/Calendar/ui/DateStructureItem/{DateStructureItem.styles_12b03hz.css → DateStructureItem.styles_z3dhwf.css} +1 -1
- package/cjs/components/DatePicker/DatePicker.tokens.js +3 -0
- package/cjs/components/DatePicker/DatePicker.tokens.js.map +1 -1
- package/cjs/components/DatePicker/DatePickerBase.styles.js +1 -1
- package/cjs/components/DatePicker/DatePickerBase.styles.js.map +1 -1
- package/{es/components/DatePicker/DatePickerBase.styles_1fnt3hc.css → cjs/components/DatePicker/DatePickerBase.styles_6x4unn.css} +1 -1
- package/cjs/components/DatePicker/RangeDate/RangeDate.css +8 -8
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +6 -6
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
- package/{es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_160e4y4.css → cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1wt56uj.css} +2 -2
- package/cjs/components/DatePicker/SingleDate/SingleDate.css +9 -9
- package/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +1 -1
- package/cjs/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
- package/{es/components/DatePicker/SingleDate/SingleDate.styles_15voqba.css → cjs/components/DatePicker/SingleDate/SingleDate.styles_5c37vu.css} +1 -1
- package/cjs/components/Drawer/Drawer.js +4 -1
- package/cjs/components/Drawer/Drawer.js.map +1 -1
- package/cjs/components/Modal/Modal.css +2 -2
- package/cjs/components/Modal/Modal.js +5 -4
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Popup/Popup.styles.js +3 -2
- package/cjs/components/Popup/Popup.styles.js.map +1 -1
- package/cjs/components/Slider/ui/Handler/Handler.js +6 -2
- package/cjs/components/Slider/ui/Handler/Handler.js.map +1 -1
- package/cjs/components/Tree/utils/traverseTree.js +1 -1
- package/cjs/components/Tree/utils/traverseTree.js.map +1 -1
- package/cjs/index.css +11 -11
- package/cjs/index.js +0 -2
- package/cjs/index.js.map +1 -1
- package/emotion/cjs/components/Calendar/Calendar.tokens.js +1 -0
- package/emotion/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +9 -9
- package/emotion/cjs/components/DatePicker/DatePicker.tokens.js +3 -0
- package/emotion/cjs/components/DatePicker/DatePickerBase.styles.js +5 -5
- package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +7 -7
- package/emotion/cjs/components/Drawer/Drawer.js +3 -1
- package/emotion/cjs/components/Modal/Modal.js +7 -6
- package/emotion/cjs/components/Popup/Popup.styles.js +13 -13
- package/emotion/cjs/components/Scrollbar/Scrollbar.js +423 -0
- package/emotion/cjs/components/Scrollbar/Scrollbar.styles.js +59 -0
- package/emotion/cjs/components/Scrollbar/Scrollbar.tokens.js +39 -0
- package/emotion/cjs/components/Scrollbar/Scrollbar.types.js +4 -0
- package/emotion/cjs/components/Scrollbar/index.js +26 -0
- package/emotion/cjs/components/Scrollbar/utils.js +87 -0
- package/emotion/cjs/components/Scrollbar/variations/_size/base.js +12 -0
- package/emotion/cjs/components/Scrollbar/variations/_view/base.js +12 -0
- package/emotion/cjs/components/Slider/ui/Handler/Handler.js +6 -2
- package/emotion/cjs/components/Tree/utils/traverseTree.js +1 -1
- package/emotion/cjs/examples/components/Scrollbar/Scrollbar.config.js +27 -0
- package/emotion/cjs/examples/components/Scrollbar/Scrollbar.js +15 -0
- package/emotion/cjs/mixins/addScrollbar.js +30 -0
- package/emotion/cjs/mixins/index.js +0 -1
- package/emotion/es/components/Calendar/Calendar.tokens.js +1 -0
- package/emotion/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +9 -9
- package/emotion/es/components/DatePicker/DatePicker.tokens.js +3 -0
- package/emotion/es/components/DatePicker/DatePickerBase.styles.js +5 -5
- package/emotion/es/components/DatePicker/SingleDate/SingleDate.styles.js +7 -7
- package/emotion/es/components/Drawer/Drawer.js +3 -1
- package/emotion/es/components/Modal/Modal.js +6 -5
- package/emotion/es/components/Popup/Popup.styles.js +13 -13
- package/emotion/es/components/Scrollbar/Scrollbar.js +359 -0
- package/emotion/es/components/Scrollbar/Scrollbar.styles.js +24 -0
- package/emotion/es/components/Scrollbar/Scrollbar.tokens.js +21 -0
- package/emotion/es/components/Scrollbar/Scrollbar.types.js +1 -0
- package/emotion/es/components/Scrollbar/index.js +2 -0
- package/emotion/es/components/Scrollbar/utils.js +69 -0
- package/emotion/es/components/Scrollbar/variations/_size/base.js +2 -0
- package/emotion/es/components/Scrollbar/variations/_view/base.js +2 -0
- package/emotion/es/components/Slider/ui/Handler/Handler.js +6 -2
- package/emotion/es/components/Tree/utils/traverseTree.js +1 -1
- package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
- package/emotion/es/examples/components/Scrollbar/Scrollbar.config.js +17 -0
- package/emotion/es/examples/components/Scrollbar/Scrollbar.js +5 -0
- package/emotion/es/mixins/addScrollbar.js +9 -0
- package/emotion/es/mixins/index.js +0 -1
- package/es/_virtual/_rollupPluginBabelHelpers.js +1 -8
- package/es/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/es/components/Calendar/Calendar.tokens.js +1 -0
- package/es/components/Calendar/Calendar.tokens.js.map +1 -1
- package/es/components/Calendar/CalendarBase/CalendarBase.css +4 -4
- package/es/components/Calendar/CalendarDouble/CalendarDouble.css +4 -4
- package/es/components/Calendar/ui/CalendarDays/CalendarDays.css +4 -4
- package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.css +4 -4
- package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.css +4 -4
- package/es/components/Calendar/ui/CalendarYears/CalendarYears.css +4 -4
- package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.css +4 -4
- package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +4 -4
- package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js.map +1 -1
- package/es/components/Calendar/ui/DateStructureItem/{DateStructureItem.styles_12b03hz.css → DateStructureItem.styles_z3dhwf.css} +1 -1
- package/es/components/DatePicker/DatePicker.tokens.js +3 -0
- package/es/components/DatePicker/DatePicker.tokens.js.map +1 -1
- package/es/components/DatePicker/DatePickerBase.styles.js +1 -1
- package/es/components/DatePicker/DatePickerBase.styles.js.map +1 -1
- package/{cjs/components/DatePicker/DatePickerBase.styles_1fnt3hc.css → es/components/DatePicker/DatePickerBase.styles_6x4unn.css} +1 -1
- package/es/components/DatePicker/RangeDate/RangeDate.css +8 -8
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +6 -6
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
- package/{cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_160e4y4.css → es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1wt56uj.css} +2 -2
- package/es/components/DatePicker/SingleDate/SingleDate.css +9 -9
- package/es/components/DatePicker/SingleDate/SingleDate.styles.js +1 -1
- package/es/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
- package/{cjs/components/DatePicker/SingleDate/SingleDate.styles_15voqba.css → es/components/DatePicker/SingleDate/SingleDate.styles_5c37vu.css} +1 -1
- package/es/components/Drawer/Drawer.js +4 -1
- package/es/components/Drawer/Drawer.js.map +1 -1
- package/es/components/Modal/Modal.css +2 -2
- package/es/components/Modal/Modal.js +5 -4
- package/es/components/Modal/Modal.js.map +1 -1
- package/es/components/Popup/Popup.styles.js +3 -2
- package/es/components/Popup/Popup.styles.js.map +1 -1
- package/es/components/Slider/ui/Handler/Handler.js +7 -3
- package/es/components/Slider/ui/Handler/Handler.js.map +1 -1
- package/es/components/Tree/utils/traverseTree.js +1 -1
- package/es/components/Tree/utils/traverseTree.js.map +1 -1
- package/es/index.css +11 -11
- package/es/index.js +0 -1
- package/es/index.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Calendar/Calendar.tokens.js +1 -0
- package/styled-components/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +8 -7
- package/styled-components/cjs/components/DatePicker/DatePicker.tokens.js +3 -0
- package/styled-components/cjs/components/DatePicker/DatePickerBase.styles.js +3 -3
- package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +10 -4
- package/styled-components/cjs/components/Drawer/Drawer.js +3 -1
- package/styled-components/cjs/components/Modal/Modal.js +7 -6
- package/styled-components/cjs/components/Popup/Popup.styles.js +7 -7
- package/styled-components/cjs/components/Scrollbar/Scrollbar.js +423 -0
- package/styled-components/cjs/components/Scrollbar/Scrollbar.styles.js +121 -0
- package/styled-components/cjs/components/Scrollbar/Scrollbar.tokens.js +39 -0
- package/styled-components/cjs/components/Scrollbar/Scrollbar.types.js +4 -0
- package/styled-components/cjs/components/Scrollbar/index.js +26 -0
- package/styled-components/cjs/components/Scrollbar/utils.js +87 -0
- package/styled-components/cjs/components/Scrollbar/variations/_size/base.js +14 -0
- package/styled-components/cjs/components/Scrollbar/variations/_view/base.js +14 -0
- package/styled-components/cjs/components/Slider/ui/Handler/Handler.js +6 -2
- package/styled-components/cjs/components/Tree/utils/traverseTree.js +1 -1
- package/styled-components/cjs/examples/components/Scrollbar/Scrollbar.config.js +45 -0
- package/styled-components/cjs/examples/components/Scrollbar/Scrollbar.js +15 -0
- package/styled-components/cjs/mixins/addScrollbar.js +30 -0
- package/styled-components/cjs/mixins/index.js +0 -1
- package/styled-components/es/components/Calendar/Calendar.tokens.js +1 -0
- package/styled-components/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +8 -7
- package/styled-components/es/components/DatePicker/DatePicker.tokens.js +3 -0
- package/styled-components/es/components/DatePicker/DatePickerBase.styles.js +3 -3
- package/styled-components/es/components/DatePicker/SingleDate/SingleDate.styles.js +10 -4
- package/styled-components/es/components/Drawer/Drawer.js +3 -1
- package/styled-components/es/components/Modal/Modal.js +6 -5
- package/styled-components/es/components/Popup/Popup.styles.js +7 -7
- package/styled-components/es/components/Scrollbar/Scrollbar.js +359 -0
- package/styled-components/es/components/Scrollbar/Scrollbar.styles.js +51 -0
- package/styled-components/es/components/Scrollbar/Scrollbar.tokens.js +21 -0
- package/styled-components/es/components/Scrollbar/Scrollbar.types.js +1 -0
- package/styled-components/es/components/Scrollbar/index.js +2 -0
- package/styled-components/es/components/Scrollbar/utils.js +69 -0
- package/styled-components/es/components/Scrollbar/variations/_size/base.js +4 -0
- package/styled-components/es/components/Scrollbar/variations/_view/base.js +4 -0
- package/styled-components/es/components/Slider/ui/Handler/Handler.js +6 -2
- package/styled-components/es/components/Tree/utils/traverseTree.js +1 -1
- package/styled-components/es/examples/components/Scrollbar/Scrollbar.config.js +35 -0
- package/styled-components/es/examples/components/Scrollbar/Scrollbar.js +5 -0
- package/styled-components/es/mixins/addScrollbar.js +9 -0
- package/styled-components/es/mixins/index.js +0 -1
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts +1 -1
- package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +8 -8
- package/types/components/Calendar/Calendar.tokens.d.ts +1 -0
- package/types/components/Calendar/Calendar.tokens.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.d.ts +1 -1
- package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts +8 -8
- package/types/components/DatePicker/DatePicker.tokens.d.ts +3 -0
- package/types/components/DatePicker/DatePicker.tokens.d.ts.map +1 -1
- package/types/components/DatePicker/DatePickerBase.styles.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts +6 -6
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +8 -8
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
- package/types/components/Drawer/Drawer.d.ts.map +1 -1
- package/types/components/Modal/Modal.d.ts.map +1 -1
- package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +6 -6
- package/types/components/Popup/Popup.types.d.ts +8 -1
- package/types/components/Popup/Popup.types.d.ts.map +1 -1
- package/types/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/components/Range/Range.styles.d.ts +8 -8
- package/types/components/Scrollbar/Scrollbar.d.ts +23 -0
- package/types/components/Scrollbar/Scrollbar.d.ts.map +1 -0
- package/types/components/Scrollbar/Scrollbar.styles.d.ts +7 -0
- package/types/components/Scrollbar/Scrollbar.styles.d.ts.map +1 -0
- package/types/components/Scrollbar/Scrollbar.tokens.d.ts +22 -0
- package/types/components/Scrollbar/Scrollbar.tokens.d.ts.map +1 -0
- package/types/components/Scrollbar/Scrollbar.types.d.ts +52 -0
- package/types/components/Scrollbar/Scrollbar.types.d.ts.map +1 -0
- package/types/components/Scrollbar/index.d.ts +4 -0
- package/types/components/Scrollbar/index.d.ts.map +1 -0
- package/types/components/Scrollbar/utils.d.ts +7 -0
- package/types/components/Scrollbar/utils.d.ts.map +1 -0
- package/types/components/Scrollbar/variations/_size/base.d.ts +2 -0
- package/types/components/Scrollbar/variations/_size/base.d.ts.map +1 -0
- package/types/components/Scrollbar/variations/_view/base.d.ts +2 -0
- package/types/components/Scrollbar/variations/_view/base.d.ts.map +1 -0
- package/types/components/Select/ui/Target/Target.d.ts +1 -1
- package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts +8 -8
- package/types/components/Select/utils/getView.d.ts +1 -1
- package/types/components/Slider/components/Double/Double.styles.d.ts +8 -8
- package/types/components/Slider/ui/Handler/Handler.d.ts.map +1 -1
- package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +6 -6
- package/types/components/TimePicker/TimePicker.styles.d.ts +8 -8
- package/types/components/Tree/utils/traverseTree.d.ts.map +1 -1
- package/types/examples/components/Autocomplete/Autocomplete.d.ts +8 -8
- package/types/examples/components/Combobox/Legacy/Combobox.d.ts +2 -2
- package/types/examples/components/DatePicker/DatePicker.d.ts +3 -3
- package/types/examples/components/Mask/Mask.d.ts +8 -8
- package/types/examples/components/NumberFormat/NumberFormat.d.ts +8 -8
- package/types/examples/components/NumberInput/NumberInput.d.ts +2 -2
- package/types/examples/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/examples/components/Scrollbar/Scrollbar.config.d.ts +16 -0
- package/types/examples/components/Scrollbar/Scrollbar.config.d.ts.map +1 -0
- package/types/examples/components/Scrollbar/Scrollbar.d.ts +10 -0
- package/types/examples/components/Scrollbar/Scrollbar.d.ts.map +1 -0
- package/types/examples/components/Select/Select.d.ts +6 -6
- package/types/examples/components/TextArea/TextArea.d.ts +8 -8
- package/types/examples/components/TextField/TextField.d.ts +8 -8
- package/types/examples/components/Tokens/Colors/Colors.styles.d.ts +1 -1
- package/types/examples/components/Tokens/Typography/Typography.styles.d.ts +1 -1
- package/types/mixins/addScrollbar.d.ts +4 -0
- package/types/mixins/addScrollbar.d.ts.map +1 -0
- package/types/mixins/index.d.ts +0 -1
- package/types/mixins/index.d.ts.map +1 -1
- package/types/types/InputHTMLAttributes.d.ts +9 -3
- package/types/types/InputHTMLAttributes.d.ts.map +1 -1
- package/types/types/TextareaHTMLAttributes.d.ts +9 -3
- package/types/types/TextareaHTMLAttributes.d.ts.map +1 -1
- package/cjs/mixins/applyDisabled.js +0 -22
- package/cjs/mixins/applyDisabled.js.map +0 -1
- package/emotion/cjs/mixins/applyDisabled.js +0 -47
- package/emotion/es/mixins/applyDisabled.js +0 -39
- package/es/mixins/applyDisabled.js +0 -18
- package/es/mixins/applyDisabled.js.map +0 -1
- package/styled-components/cjs/mixins/applyDisabled.js +0 -23
- package/styled-components/es/mixins/applyDisabled.js +0 -15
- package/types/mixins/applyDisabled.d.ts +0 -14
- package/types/mixins/applyDisabled.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport cls from 'classnames';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { getSizeValueFromProp, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\nimport { useFocusTrap } from '../../hooks';\n\nimport { classes, tokens } from './Drawer.tokens';\nimport type { DrawerProps } from './Drawer.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as borderRadiusCSS } from './variations/_borderRadius/base';\nimport { StyledPopup, StyledPanel } from './Drawer.styles';\nimport { getIdLastDrawer } from './DrawerContext';\nimport { useDrawer } from './hooks';\n\n// issue #823\n\nexport const drawerRoot = (Root: RootProps<HTMLDivElement, DrawerProps>) =>\n forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n id,\n zIndex,\n popupInfo,\n withBlur,\n children,\n view,\n size,\n width,\n height,\n isOpen,\n opened,\n initialFocusRef,\n focusAfterRef,\n animationInfo,\n className,\n customBackgroundColor,\n customContentBackgroundColor,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n offset,\n frame,\n borderRadius = 'none',\n placement = 'right',\n closeOnEsc = true,\n closeOnOverlayClick = true,\n asModal = true,\n draggable,\n ...rest\n },\n outerRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const trapRef = useFocusTrap(true, initialFocusRef, focusAfterRef);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.drawerOverlayWithBlurColor})`\n : `var(${tokens.drawerOverlayColor})`;\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n const innerHeight = height ? getSizeValueFromProp(height) : '100%';\n\n const placementClass = placement ? classes[`${placement}Placement` as keyof typeof classes] : undefined;\n\n const { drawerInfo } = useDrawer({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n disableScroll: asModal,\n });\n const transparent = useMemo(() => getIdLastDrawer(Array.from(popupController.items.values())) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onDrawerOverlayKeyDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <StyledPopup\n id={innerId}\n ref={asModal ? innerRef : outerRef}\n className={cls(placementClass, className, {\n [classes.enterCustomAnimation]: animationInfo?.enter,\n [classes.exitCustomAnimation]: animationInfo?.exit,\n })}\n opened={innerIsOpen}\n zIndex={zIndex}\n placement={placement}\n popupInfo={drawerInfo}\n frame={frame}\n width={innerWidth}\n height={innerHeight}\n offset={offset}\n withAnimation\n drawerAnimationInfo={animationInfo}\n overlay={\n asModal && (\n <Root view={view}>\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onDrawerOverlayKeyDown}\n />\n </Root>\n )\n }\n {...rest}\n >\n <Root\n className={classes.panel}\n view={view}\n size={size}\n style={{ width: innerWidth, height: innerHeight }}\n borderRadius={borderRadius}\n >\n <StyledPanel\n width={innerWidth}\n height={innerHeight}\n customBackgroundColor={customBackgroundColor}\n customContentBackgroundColor={customContentBackgroundColor}\n >\n {children}\n </StyledPanel>\n </Root>\n </StyledPopup>\n );\n },\n );\n\nexport const drawerConfig = {\n name: 'Drawer',\n tag: 'div',\n layout: drawerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n borderRadius: {\n css: borderRadiusCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n borderRadius: 'none',\n },\n};\n"],"names":["drawerRoot","Root","forwardRef","_ref","outerRef","id","zIndex","popupInfo","withBlur","children","view","size","width","height","isOpen","opened","initialFocusRef","focusAfterRef","animationInfo","className","customBackgroundColor","customContentBackgroundColor","onClose","onOverlayClick","onEscKeyDown","offset","frame","_ref$borderRadius","borderRadius","_ref$placement","placement","_ref$closeOnEsc","closeOnEsc","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$asModal","asModal","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","concat","tokens","drawerOverlayWithBlurColor","drawerOverlayColor","innerWidth","getSizeValueFromProp","innerHeight","placementClass","classes","undefined","_useDrawer","useDrawer","disableScroll","drawerInfo","transparent","useMemo","getIdLastDrawer","Array","from","items","values","onDrawerOverlayKeyDown","event","React","createElement","StyledPopup","_extends","ref","cls","_defineProperty","enterCustomAnimation","enter","exitCustomAnimation","exit","withAnimation","drawerAnimationInfo","overlay","Overlay","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","panel","style","StyledPanel","drawerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","borderRadiusCSS","defaults"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport cls from 'classnames';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { getSizeValueFromProp, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\nimport { useFocusTrap } from '../../hooks';\n\nimport { classes, tokens } from './Drawer.tokens';\nimport type { DrawerProps } from './Drawer.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as borderRadiusCSS } from './variations/_borderRadius/base';\nimport { StyledPopup, StyledPanel } from './Drawer.styles';\nimport { getIdLastDrawer } from './DrawerContext';\nimport { useDrawer } from './hooks';\n\n// issue #823\n\nexport const drawerRoot = (Root: RootProps<HTMLDivElement, DrawerProps>) =>\n forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n id,\n zIndex,\n popupInfo,\n withBlur,\n children,\n view,\n size,\n width,\n height,\n isOpen,\n opened,\n initialFocusRef,\n focusAfterRef,\n animationInfo,\n className,\n customBackgroundColor,\n customContentBackgroundColor,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n offset,\n frame,\n positionFixed = false,\n borderRadius = 'none',\n placement = 'right',\n closeOnEsc = true,\n closeOnOverlayClick = true,\n asModal = true,\n draggable,\n ...rest\n },\n outerRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const trapRef = useFocusTrap(true, initialFocusRef, focusAfterRef);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.drawerOverlayWithBlurColor})`\n : `var(${tokens.drawerOverlayColor})`;\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n const innerHeight = height ? getSizeValueFromProp(height) : '100%';\n\n const placementClass = placement ? classes[`${placement}Placement` as keyof typeof classes] : undefined;\n\n const { drawerInfo } = useDrawer({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n disableScroll: asModal,\n });\n const transparent = useMemo(() => getIdLastDrawer(Array.from(popupController.items.values())) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onDrawerOverlayKeyDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <StyledPopup\n id={innerId}\n ref={asModal ? innerRef : outerRef}\n className={cls(placementClass, className, {\n [classes.enterCustomAnimation]: animationInfo?.enter,\n [classes.exitCustomAnimation]: animationInfo?.exit,\n })}\n opened={innerIsOpen}\n zIndex={zIndex}\n placement={placement}\n popupInfo={drawerInfo}\n frame={frame}\n positionFixed={positionFixed}\n width={innerWidth}\n height={innerHeight}\n offset={offset}\n withAnimation\n drawerAnimationInfo={animationInfo}\n overlay={\n asModal && (\n <Root view={view}>\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onDrawerOverlayKeyDown}\n />\n </Root>\n )\n }\n {...rest}\n >\n <Root\n className={classes.panel}\n view={view}\n size={size}\n style={{ width: innerWidth, height: innerHeight }}\n borderRadius={borderRadius}\n >\n <StyledPanel\n width={innerWidth}\n height={innerHeight}\n customBackgroundColor={customBackgroundColor}\n customContentBackgroundColor={customContentBackgroundColor}\n >\n {children}\n </StyledPanel>\n </Root>\n </StyledPopup>\n );\n },\n );\n\nexport const drawerConfig = {\n name: 'Drawer',\n tag: 'div',\n layout: drawerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n borderRadius: {\n css: borderRadiusCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n borderRadius: 'none',\n },\n};\n"],"names":["drawerRoot","Root","forwardRef","_ref","outerRef","id","zIndex","popupInfo","withBlur","children","view","size","width","height","isOpen","opened","initialFocusRef","focusAfterRef","animationInfo","className","customBackgroundColor","customContentBackgroundColor","onClose","onOverlayClick","onEscKeyDown","offset","frame","_ref$positionFixed","positionFixed","_ref$borderRadius","borderRadius","_ref$placement","placement","_ref$closeOnEsc","closeOnEsc","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$asModal","asModal","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","concat","tokens","drawerOverlayWithBlurColor","drawerOverlayColor","innerWidth","getSizeValueFromProp","innerHeight","placementClass","classes","undefined","_useDrawer","useDrawer","disableScroll","drawerInfo","transparent","useMemo","getIdLastDrawer","Array","from","items","values","onDrawerOverlayKeyDown","event","React","createElement","StyledPopup","_extends","ref","cls","_defineProperty","enterCustomAnimation","enter","exitCustomAnimation","exit","withAnimation","drawerAnimationInfo","overlay","Overlay","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","panel","style","StyledPanel","drawerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","borderRadiusCSS","defaults"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
.IconRoot_7pl7ig_svvlqhf__32c458a1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:var(--svvlqhf-0);height:var(--svvlqhf-0);-webkit-flex:0 0 var(--svvlqhf-0);-ms-flex:0 0 var(--svvlqhf-0);flex:0 0 var(--svvlqhf-0);}
|
|
2
|
+
|
|
1
3
|
.Popup_styles_kpf3dd_bvkpf6n__890879ed .Popup_styles_kpf3dd_draggablePopupWrapper__890879ed{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;}.Popup_styles_kpf3dd_bvkpf6n__890879ed .Popup_styles_kpf3dd_draggingPopupWrapper__890879ed{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing;}.Popup_styles_kpf3dd_bvkpf6n__890879ed .Popup_styles_kpf3dd_resizableContainerNoSelect__890879ed{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;}
|
|
2
4
|
|
|
3
5
|
.Popup_styles_kpf3dd_s5u7tqa__890879ed{width:0;}
|
|
@@ -7,8 +9,6 @@
|
|
|
7
9
|
|
|
8
10
|
.Overlay_styles_cxej3y_s1afr8la__70d4dd9a{position:fixed;inset:0;z-index:var(--s1afr8la-0);--plasma_private-overlay-background-color:var(--s1afr8la-1);--plasma_private-overlay-backdrop-filter:var(--s1afr8la-2);background:var(--s1afr8la-3);-webkit-backdrop-filter:var(--s1afr8la-4);backdrop-filter:var(--s1afr8la-4);cursor:var(--s1afr8la-5);}
|
|
9
11
|
|
|
10
|
-
.IconRoot_7pl7ig_svvlqhf__32c458a1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:var(--svvlqhf-0);height:var(--svvlqhf-0);-webkit-flex:0 0 var(--svvlqhf-0);-ms-flex:0 0 var(--svvlqhf-0);flex:0 0 var(--svvlqhf-0);}
|
|
11
|
-
|
|
12
12
|
.Modal_styles_1obtvtw_b7npn1w__a2f4e50d{height:100%;}
|
|
13
13
|
.Modal_styles_1obtvtw_m16phoaz__a2f4e50d{height:100%;box-sizing:border-box;border-radius:var(--plasma-modal-body-border-radius);padding:var(--plasma-modal-body-padding);background:var(--plasma-modal-body-background);box-shadow:var(--shadow-down-soft-l);}
|
|
14
14
|
.Modal_styles_1obtvtw_m5bx5hr__a2f4e50d{position:relative;padding:var(--plasma-modal-content-padding);}
|
|
@@ -6,7 +6,6 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var plasmaCore = require('@salutejs/plasma-core');
|
|
8
8
|
var index = require('../Popup/utils/index.js');
|
|
9
|
-
var IconClose = require('../_Icon/Icons/IconClose.js');
|
|
10
9
|
var Modal_tokens = require('./Modal.tokens.js');
|
|
11
10
|
var base = require('./variations/_view/base.js');
|
|
12
11
|
var ModalContext = require('./ModalContext.js');
|
|
@@ -15,6 +14,7 @@ var useFocusTrap = require('../../hooks/useFocusTrap.js');
|
|
|
15
14
|
var PopupContext = require('../Popup/PopupContext.js');
|
|
16
15
|
var react = require('../../utils/react.js');
|
|
17
16
|
var useModal = require('./hooks/useModal.js');
|
|
17
|
+
var IconClose = require('../_Icon/Icons/IconClose.js');
|
|
18
18
|
var common = require('../../engines/common.js');
|
|
19
19
|
var Popup$1 = require('../Popup/Popup.js');
|
|
20
20
|
var Overlay = require('../Overlay/Overlay.js');
|
|
@@ -24,7 +24,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
24
24
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
25
25
|
|
|
26
26
|
var _IconClose;
|
|
27
|
-
var _excluded = ["id", "withAnimation", "onClose", "onOverlayClick", "onEscKeyDown", "closeOnEsc", "closeOnOverlayClick", "withBlur", "isFocusTrapped", "initialFocusRef", "focusAfterRef", "zIndex", "popupInfo", "children", "view", "opened", "isOpen", "hasBody", "hasClose", "resizable", "draggable"];
|
|
27
|
+
var _excluded = ["id", "withAnimation", "onClose", "onOverlayClick", "onEscKeyDown", "closeOnEsc", "closeOnOverlayClick", "withBlur", "isFocusTrapped", "initialFocusRef", "focusAfterRef", "zIndex", "popupInfo", "children", "view", "opened", "isOpen", "hasBody", "hasClose", "resizable", "draggable", "overlay"];
|
|
28
28
|
|
|
29
29
|
// issue #823
|
|
30
30
|
var Popup = /*#__PURE__*/common.component(Popup$1.popupConfig);
|
|
@@ -59,6 +59,7 @@ var modalRoot = function modalRoot(Root) {
|
|
|
59
59
|
hasClose = _ref.hasClose,
|
|
60
60
|
resizable = _ref.resizable,
|
|
61
61
|
draggable = _ref.draggable,
|
|
62
|
+
overlay = _ref.overlay,
|
|
62
63
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
63
64
|
var innerIsOpen = Boolean(isOpen || opened);
|
|
64
65
|
var innerHasClose = hasClose === undefined && hasBody || hasClose;
|
|
@@ -105,9 +106,9 @@ var modalRoot = function modalRoot(Root) {
|
|
|
105
106
|
popupInfo: modalInfo,
|
|
106
107
|
withAnimation: withAnimation,
|
|
107
108
|
zIndex: zIndex,
|
|
108
|
-
overlay:
|
|
109
|
+
overlay: /*#__PURE__*/React__default.default.createElement(Root, {
|
|
109
110
|
view: view
|
|
110
|
-
}, overlayNode),
|
|
111
|
+
}, overlay || overlayNode),
|
|
111
112
|
draggable: draggable,
|
|
112
113
|
resizable: resizable
|
|
113
114
|
}, rest), hasBody ? /*#__PURE__*/React__default.default.createElement(Root, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\nimport { RootProps, component } from 'src/engines';\nimport { useFocusTrap } from 'src/hooks';\n\nimport { popupConfig, usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\nimport { IconClose } from '../_Icon/Icons/IconClose';\n\nimport { classes, tokens } from './Modal.tokens';\nimport { ModalProps } from './Modal.types';\nimport { useModal } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { getIdLastModal } from './ModalContext';\nimport { CloseButton, ModalBody, ModalContent, base } from './Modal.styles';\n\n// issue #823\nconst Popup = component(popupConfig);\n\n/**\n * Modal.\n * Управляет показом/скрытием, подложкой и анимацией визуальной части модального окна.\n */\nexport const modalRoot = (Root: RootProps<HTMLDivElement, ModalProps>) =>\n forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n id,\n withAnimation,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n closeOnEsc = true,\n closeOnOverlayClick = true,\n withBlur,\n isFocusTrapped = true,\n initialFocusRef,\n focusAfterRef,\n zIndex,\n popupInfo,\n children,\n view,\n opened,\n isOpen,\n hasBody,\n hasClose,\n resizable,\n draggable,\n ...rest\n },\n outerRootRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n const innerHasClose = (hasClose === undefined && hasBody) || hasClose;\n const trapRef = useFocusTrap(isFocusTrapped, initialFocusRef, focusAfterRef, true, !isFocusTrapped);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRootRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.modalOverlayWithBlurColor})`\n : `var(${tokens.modalOverlayColor})`;\n\n const { modalInfo } = useModal({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n });\n\n const transparent = useMemo(() => getIdLastModal(Array.from(popupController.items.values())) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onModalOverlayKeyDown = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n },\n [closeOnOverlayClick, onOverlayClick, onClose],\n );\n\n const overlayNode = (\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onModalOverlayKeyDown}\n />\n );\n\n return (\n <Popup\n id={innerId}\n opened={innerIsOpen}\n ref={innerRef}\n popupInfo={modalInfo}\n withAnimation={withAnimation}\n zIndex={zIndex}\n overlay={hasBody ? overlayNode : <Root view={view}>{overlayNode}</Root>}\n draggable={draggable}\n resizable={resizable}\n {...rest}\n >\n {hasBody ? (\n <Root view={view}>\n <ModalBody>\n <ModalContent>\n {innerHasClose && (\n <CloseButton onClick={onClose} data-test=\"modal-close\">\n <IconClose size=\"s\" color=\"currentColor\" />\n </CloseButton>\n )}\n {children}\n </ModalContent>\n </ModalBody>\n </Root>\n ) : (\n <>{children}</>\n )}\n </Popup>\n );\n },\n );\n\nexport const modalConfig = {\n name: 'Modal',\n tag: 'div',\n layout: modalRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["Popup","component","popupConfig","modalRoot","Root","forwardRef","_ref","outerRootRef","id","withAnimation","onClose","onOverlayClick","onEscKeyDown","_ref$closeOnEsc","closeOnEsc","_ref$closeOnOverlayCl","closeOnOverlayClick","withBlur","_ref$isFocusTrapped","isFocusTrapped","initialFocusRef","focusAfterRef","zIndex","popupInfo","children","view","opened","isOpen","hasBody","hasClose","resizable","draggable","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","innerHasClose","undefined","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","concat","tokens","modalOverlayWithBlurColor","modalOverlayColor","_useModal","useModal","modalInfo","transparent","useMemo","getIdLastModal","Array","from","items","values","onModalOverlayKeyDown","useCallback","event","overlayNode","React","createElement","Overlay","className","classes","overlay","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","_extends","ref","ModalBody","ModalContent","CloseButton","onClick","_IconClose","IconClose","size","color","Fragment","modalConfig","name","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\nimport { RootProps, component } from 'src/engines';\nimport { useFocusTrap } from 'src/hooks';\nimport { IconClose } from 'src/components/_Icon';\n\nimport { popupConfig, usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\n\nimport { classes, tokens } from './Modal.tokens';\nimport { ModalProps } from './Modal.types';\nimport { useModal } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { getIdLastModal } from './ModalContext';\nimport { CloseButton, ModalBody, ModalContent, base } from './Modal.styles';\n\n// issue #823\nconst Popup = component(popupConfig);\n\n/**\n * Modal.\n * Управляет показом/скрытием, подложкой и анимацией визуальной части модального окна.\n */\nexport const modalRoot = (Root: RootProps<HTMLDivElement, ModalProps>) =>\n forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n id,\n withAnimation,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n closeOnEsc = true,\n closeOnOverlayClick = true,\n withBlur,\n isFocusTrapped = true,\n initialFocusRef,\n focusAfterRef,\n zIndex,\n popupInfo,\n children,\n view,\n opened,\n isOpen,\n hasBody,\n hasClose,\n resizable,\n draggable,\n overlay,\n ...rest\n },\n outerRootRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n const innerHasClose = (hasClose === undefined && hasBody) || hasClose;\n const trapRef = useFocusTrap(isFocusTrapped, initialFocusRef, focusAfterRef, true, !isFocusTrapped);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRootRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.modalOverlayWithBlurColor})`\n : `var(${tokens.modalOverlayColor})`;\n\n const { modalInfo } = useModal({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n });\n\n const transparent = useMemo(() => getIdLastModal(Array.from(popupController.items.values())) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onModalOverlayKeyDown = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n },\n [closeOnOverlayClick, onOverlayClick, onClose],\n );\n\n const overlayNode = (\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onModalOverlayKeyDown}\n />\n );\n\n return (\n <Popup\n id={innerId}\n opened={innerIsOpen}\n ref={innerRef}\n popupInfo={modalInfo}\n withAnimation={withAnimation}\n zIndex={zIndex}\n overlay={<Root view={view}>{overlay || overlayNode}</Root>}\n draggable={draggable}\n resizable={resizable}\n {...rest}\n >\n {hasBody ? (\n <Root view={view}>\n <ModalBody>\n <ModalContent>\n {innerHasClose && (\n <CloseButton onClick={onClose} data-test=\"modal-close\">\n <IconClose size=\"s\" color=\"currentColor\" />\n </CloseButton>\n )}\n {children}\n </ModalContent>\n </ModalBody>\n </Root>\n ) : (\n <>{children}</>\n )}\n </Popup>\n );\n },\n );\n\nexport const modalConfig = {\n name: 'Modal',\n tag: 'div',\n layout: modalRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["Popup","component","popupConfig","modalRoot","Root","forwardRef","_ref","outerRootRef","id","withAnimation","onClose","onOverlayClick","onEscKeyDown","_ref$closeOnEsc","closeOnEsc","_ref$closeOnOverlayCl","closeOnOverlayClick","withBlur","_ref$isFocusTrapped","isFocusTrapped","initialFocusRef","focusAfterRef","zIndex","popupInfo","children","view","opened","isOpen","hasBody","hasClose","resizable","draggable","overlay","rest","_objectWithoutProperties","_excluded","innerIsOpen","Boolean","innerHasClose","undefined","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","concat","tokens","modalOverlayWithBlurColor","modalOverlayColor","_useModal","useModal","modalInfo","transparent","useMemo","getIdLastModal","Array","from","items","values","onModalOverlayKeyDown","useCallback","event","overlayNode","React","createElement","Overlay","className","classes","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","_extends","ref","ModalBody","ModalContent","CloseButton","onClick","_IconClose","IconClose","size","color","Fragment","modalConfig","name","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":"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"}
|
|
@@ -25,8 +25,9 @@ var PopupView = /*#__PURE__*/react.styled('div')({
|
|
|
25
25
|
});
|
|
26
26
|
var _exp4 = function _exp4() {
|
|
27
27
|
return function (_ref) {
|
|
28
|
-
var frame = _ref.frame
|
|
29
|
-
|
|
28
|
+
var frame = _ref.frame,
|
|
29
|
+
positionFixed = _ref.positionFixed;
|
|
30
|
+
return frame === 'document' || positionFixed ? 'fixed' : 'absolute';
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
33
|
var _exp5 = function _exp5() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.styles.js","sources":["../../../src/components/Popup/Popup.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\nimport { IconResizeDiagonal } from 'src/components/_Icon';\n\nimport { classes } from './Popup.tokens';\nimport type { PopupRootContainerProps } from './Popup.types';\nimport { DEFAULT_Z_INDEX } from './utils';\n\nexport const base = css`\n .${classes.draggablePopupWrapper} {\n cursor: grab;\n }\n\n .${classes.draggingPopupWrapper} {\n cursor: grabbing;\n }\n\n .${classes.resizableContainerNoSelect} {\n user-select: none;\n -webkit-user-select: none;\n }\n`;\n\nexport const StyledPortal = styled.div``;\n\nexport const StyledPortalContainer = styled.div`\n width: 0;\n`;\n\nexport const PopupView = styled.div`\n position: relative;\n max-width: 100%;\n pointer-events: all;\n`;\n\nexport const PopupRootContainer = styled.div<PopupRootContainerProps>`\n position: ${({ frame }) => (frame === 'document' ? 'fixed' : 'absolute')};\n z-index: ${({ zIndex }) => zIndex || DEFAULT_Z_INDEX};\n left: ${({ position }) => position.left || ''};\n right: ${({ position }) => position.right || ''};\n top: ${({ position }) => position.top || ''};\n bottom: ${({ position }) => position.bottom || ''};\n transform: ${({ position }) => position.transform || ''};\n`;\n\nexport const IconResizeDiagonalStyled = styled(IconResizeDiagonal)`\n color: var(--text-secondary);\n\n &:hover {\n color: var(--text-secondary-hover);\n }\n\n &:active {\n color: var(--text-secondary-active);\n }\n\n &.${classes.resizableTopRightIcon} {\n transform: rotate(-90deg);\n }\n\n &.${classes.resizableBottomRightIcon} {\n transform: rotate(0);\n }\n\n &.${classes.resizableBottomLeftIcon} {\n transform: rotate(90deg);\n }\n\n &.${classes.resizableTopLeftIcon} {\n transform: rotate(180deg);\n }\n`;\n"],"names":["base","StyledPortal","styled","name","class","propsAsIs","StyledPortalContainer","PopupView","_exp4","_ref","frame","_exp5","_ref2","zIndex","DEFAULT_Z_INDEX","_exp6","_ref3","position","left","_exp7","_ref4","right","_exp8","_ref5","top","_exp9","_ref6","bottom","_exp10","_ref7","transform","PopupRootContainer","vars","_exp11","IconResizeDiagonal","IconResizeDiagonalStyled"],"mappings":";;;;;;;;AAQO,IAAMA,IAAI,GAahB,UAAA;AAEM,IAAMC,YAAY,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,cAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAAM,EAAA;AAEjC,IAAMC,qBAAqB,gBAAGJ,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,uBAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAE1C,EAAA;AAEM,IAAME,SAAS,gBAAGL,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,WAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAI9B,EAAA;AAAC,IAAAG,KAAA,GAhCgBA,SAgChBA,KAAAA,GAAA;AAAA,EAAA,OAGc,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,
|
|
1
|
+
{"version":3,"file":"Popup.styles.js","sources":["../../../src/components/Popup/Popup.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\nimport { IconResizeDiagonal } from 'src/components/_Icon';\n\nimport { classes } from './Popup.tokens';\nimport type { PopupRootContainerProps } from './Popup.types';\nimport { DEFAULT_Z_INDEX } from './utils';\n\nexport const base = css`\n .${classes.draggablePopupWrapper} {\n cursor: grab;\n }\n\n .${classes.draggingPopupWrapper} {\n cursor: grabbing;\n }\n\n .${classes.resizableContainerNoSelect} {\n user-select: none;\n -webkit-user-select: none;\n }\n`;\n\nexport const StyledPortal = styled.div``;\n\nexport const StyledPortalContainer = styled.div`\n width: 0;\n`;\n\nexport const PopupView = styled.div`\n position: relative;\n max-width: 100%;\n pointer-events: all;\n`;\n\nexport const PopupRootContainer = styled.div<PopupRootContainerProps>`\n position: ${({ frame, positionFixed }) => (frame === 'document' || positionFixed ? 'fixed' : 'absolute')};\n z-index: ${({ zIndex }) => zIndex || DEFAULT_Z_INDEX};\n left: ${({ position }) => position.left || ''};\n right: ${({ position }) => position.right || ''};\n top: ${({ position }) => position.top || ''};\n bottom: ${({ position }) => position.bottom || ''};\n transform: ${({ position }) => position.transform || ''};\n`;\n\nexport const IconResizeDiagonalStyled = styled(IconResizeDiagonal)`\n color: var(--text-secondary);\n\n &:hover {\n color: var(--text-secondary-hover);\n }\n\n &:active {\n color: var(--text-secondary-active);\n }\n\n &.${classes.resizableTopRightIcon} {\n transform: rotate(-90deg);\n }\n\n &.${classes.resizableBottomRightIcon} {\n transform: rotate(0);\n }\n\n &.${classes.resizableBottomLeftIcon} {\n transform: rotate(90deg);\n }\n\n &.${classes.resizableTopLeftIcon} {\n transform: rotate(180deg);\n }\n`;\n"],"names":["base","StyledPortal","styled","name","class","propsAsIs","StyledPortalContainer","PopupView","_exp4","_ref","frame","positionFixed","_exp5","_ref2","zIndex","DEFAULT_Z_INDEX","_exp6","_ref3","position","left","_exp7","_ref4","right","_exp8","_ref5","top","_exp9","_ref6","bottom","_exp10","_ref7","transform","PopupRootContainer","vars","_exp11","IconResizeDiagonal","IconResizeDiagonalStyled"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var ReactDraggable = require('react-draggable');
|
|
8
|
+
var plasmaCore = require('@salutejs/plasma-core');
|
|
8
9
|
var index = require('../../../../utils/index.js');
|
|
9
10
|
var index$1 = require('../../utils/index.js');
|
|
10
11
|
var Thumb = require('../Thumb/Thumb.js');
|
|
@@ -47,13 +48,15 @@ var Handler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
47
48
|
value = _ref.value,
|
|
48
49
|
valuePlacement = _ref.valuePlacement,
|
|
49
50
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
51
|
+
var nodeRef = React.useRef(null);
|
|
52
|
+
var combinedRef = plasmaCore.useForkRef(nodeRef, ref);
|
|
50
53
|
var isVertical = orientation === 'vertical';
|
|
51
54
|
var _useState = React.useState(false),
|
|
52
55
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
53
56
|
isDrag = _useState2[0],
|
|
54
57
|
setIsDrag = _useState2[1];
|
|
55
58
|
var lastOnChangeValue = React.useRef();
|
|
56
|
-
var _getOffsets = index$1.getOffsets(
|
|
59
|
+
var _getOffsets = index$1.getOffsets(nodeRef, side, isVertical),
|
|
57
60
|
_getOffsets2 = _rollupPluginBabelHelpers.slicedToArray(_getOffsets, 2),
|
|
58
61
|
startClientOffset = _getOffsets2[0],
|
|
59
62
|
endClientOffset = _getOffsets2[1];
|
|
@@ -118,6 +121,7 @@ var Handler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
118
121
|
isPointerHidden = false;
|
|
119
122
|
}
|
|
120
123
|
return /*#__PURE__*/React__default.default.createElement(ReactDraggable__default.default, {
|
|
124
|
+
nodeRef: nodeRef,
|
|
121
125
|
axis: isVertical ? 'y' : 'x',
|
|
122
126
|
bounds: computedBounds,
|
|
123
127
|
grid: isVertical ? [1, stepSize] : [stepSize, 1],
|
|
@@ -127,7 +131,7 @@ var Handler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
127
131
|
position: dragPosition,
|
|
128
132
|
disabled: disabled
|
|
129
133
|
}, /*#__PURE__*/React__default.default.createElement(Handler_styles.HandlerStyled, {
|
|
130
|
-
ref:
|
|
134
|
+
ref: combinedRef,
|
|
131
135
|
style: {
|
|
132
136
|
zIndex: zIndex
|
|
133
137
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","sources":["../../../../../src/components/Slider/ui/Handler/Handler.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, KeyboardEvent } from 'react';\nimport Draggable, { DraggableEventHandler } from 'react-draggable';\n\nimport { cx } from '../../../../utils';\nimport { getSliderThumbValue, getOffsets } from '../../utils';\nimport { Thumb } from '../Thumb/Thumb';\nimport { classes } from '../../Slider.tokens';\n\nimport type { HandlerProps } from './Handler.types';\nimport { HandlerStyled, StyledValue } from './Handler.styles';\nimport { computeKeyPressData } from './computeKeyPressData';\n\n// TODO: PLASMA-1707\ndeclare module 'react-draggable' {\n export interface DraggableProps {\n children: React.ReactNode;\n }\n}\n\nexport const Handler = forwardRef<HTMLDivElement, HandlerProps>(\n (\n {\n size,\n visibility,\n isHovered,\n orientation,\n stepSize,\n onChangeCommitted,\n onChange,\n position = 0,\n min,\n max,\n bounds = [],\n zIndex,\n disabled,\n side,\n showCurrentValue = false,\n startOffset = 0,\n endOffset = 0,\n value,\n valuePlacement,\n ...rest\n },\n ref,\n ) => {\n const isVertical = orientation === 'vertical';\n const [isDrag, setIsDrag] = useState(false);\n\n const lastOnChangeValue = useRef<number>();\n const [startClientOffset, endClientOffset] = getOffsets(ref, side, isVertical);\n\n const [startValueBound, endValueBound] = bounds;\n const startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;\n const endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;\n\n const dragPosition =\n typeof position === 'number' ? { x: isVertical ? 0 : position, y: isVertical ? position : 0 } : undefined;\n const tabIndex = disabled ? -1 : 0;\n\n const computedBounds = {\n [isVertical ? 'top' : 'left']: (startPositionBound ?? 0) - (startClientOffset ? stepSize : 0),\n [isVertical ? 'bottom' : 'right']:\n (endPositionBound ?? stepSize * (max - min)) - (endClientOffset ? stepSize : 0),\n };\n\n const showCurrentValueCondition =\n showCurrentValue &&\n ((position >= startOffset && position <= max * stepSize - endOffset) || (position === 0 && value !== 0));\n\n const onDrag: DraggableEventHandler = (_, data) => {\n const newValue = getSliderThumbValue(isVertical ? data.y : data.x, stepSize, min, max);\n if (lastOnChangeValue.current !== newValue) {\n onChange?.(newValue, data);\n lastOnChangeValue.current = newValue;\n }\n };\n\n const onStart: DraggableEventHandler = () => {\n setIsDrag(true);\n };\n\n const onStop: DraggableEventHandler = (_, data) => {\n setIsDrag(false);\n\n const newValue = getSliderThumbValue(isVertical ? data.y : data.x, stepSize, min, max);\n onChangeCommitted && onChangeCommitted(newValue, data);\n };\n\n const onKeyPress = (event: KeyboardEvent<HTMLDivElement>) => {\n event.persist();\n\n const computedMultipleSteps = stepSize * ((rest.multipleStepSize / 100) * max);\n\n const data = computeKeyPressData(event, {\n isVertical,\n stepSize,\n position,\n max,\n computedMultipleSteps,\n });\n\n if (!data) {\n return;\n }\n\n const { left, right, top, bottom } = computedBounds;\n\n /*\n * INFO: Находим значение в диапазоне между указанными левой и правой границами.\n * Или между верхней и нижней\n * Необходимо для правильного расчета положения SliderThumb.\n * см. функция clamp\n */\n const boundedValue = isVertical\n ? Math.max(Math.min(bottom, data.y), top)\n : Math.max(Math.min(right, data.x), left);\n\n const computedValue = getSliderThumbValue(boundedValue, stepSize, min, max);\n lastOnChangeValue.current = computedValue;\n\n onChangeCommitted && onChangeCommitted(computedValue, data);\n };\n\n let isPointerHidden = (visibility === 'hover' && !isHovered) || size === 'none';\n\n if (isDrag) {\n isPointerHidden = false;\n }\n\n return (\n <Draggable\n axis={isVertical ? 'y' : 'x'}\n bounds={computedBounds}\n grid={isVertical ? [1, stepSize] : [stepSize, 1]}\n onStart={onStart}\n onStop={onStop}\n onDrag={onDrag}\n position={dragPosition}\n disabled={disabled}\n >\n <HandlerStyled\n ref={ref}\n style={{ zIndex }}\n className={cx(\n isVertical && classes.verticalOrientation,\n valuePlacement === 'left' && classes.valuePlacementLeft,\n )}\n isLarge={size === 'large'}\n isPointerHidden={isPointerHidden}\n onKeyDown={onKeyPress}\n >\n {!isPointerHidden && (\n <Thumb\n tabIndex={tabIndex}\n min={min}\n max={max}\n value={value}\n disabled={disabled}\n orientation={orientation}\n {...rest}\n />\n )}\n {showCurrentValueCondition && <StyledValue isPointerHidden={isPointerHidden}>{value}</StyledValue>}\n </HandlerStyled>\n </Draggable>\n );\n },\n);\n"],"names":["Handler","forwardRef","_ref","ref","size","visibility","isHovered","orientation","stepSize","onChangeCommitted","onChange","_ref$position","position","min","max","_ref$bounds","bounds","zIndex","disabled","side","_ref$showCurrentValue","showCurrentValue","_ref$startOffset","startOffset","_ref$endOffset","endOffset","value","valuePlacement","rest","_objectWithoutProperties","_excluded","isVertical","_useState","useState","_useState2","_slicedToArray","isDrag","setIsDrag","lastOnChangeValue","useRef","_getOffsets","getOffsets","_getOffsets2","startClientOffset","endClientOffset","_bounds","startValueBound","endValueBound","startPositionBound","endPositionBound","dragPosition","x","y","undefined","tabIndex","computedBounds","_defineProperty","showCurrentValueCondition","onDrag","_","data","newValue","getSliderThumbValue","current","onStart","onStop","onKeyPress","event","persist","computedMultipleSteps","multipleStepSize","computeKeyPressData","left","right","top","bottom","boundedValue","Math","computedValue","isPointerHidden","React","createElement","Draggable","axis","grid","HandlerStyled","style","className","cx","classes","verticalOrientation","valuePlacementLeft","isLarge","onKeyDown","Thumb","_extends","StyledValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Handler.js","sources":["../../../../../src/components/Slider/ui/Handler/Handler.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, KeyboardEvent } from 'react';\nimport Draggable, { DraggableEventHandler } from 'react-draggable';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { cx } from 'src/utils';\n\nimport { getSliderThumbValue, getOffsets } from '../../utils';\nimport { Thumb } from '../Thumb/Thumb';\nimport { classes } from '../../Slider.tokens';\n\nimport type { HandlerProps } from './Handler.types';\nimport { HandlerStyled, StyledValue } from './Handler.styles';\nimport { computeKeyPressData } from './computeKeyPressData';\n\n// TODO: PLASMA-1707\ndeclare module 'react-draggable' {\n export interface DraggableProps {\n children: React.ReactNode;\n }\n}\n\nexport const Handler = forwardRef<HTMLDivElement, HandlerProps>(\n (\n {\n size,\n visibility,\n isHovered,\n orientation,\n stepSize,\n onChangeCommitted,\n onChange,\n position = 0,\n min,\n max,\n bounds = [],\n zIndex,\n disabled,\n side,\n showCurrentValue = false,\n startOffset = 0,\n endOffset = 0,\n value,\n valuePlacement,\n ...rest\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const combinedRef = useForkRef(nodeRef, ref);\n\n const isVertical = orientation === 'vertical';\n const [isDrag, setIsDrag] = useState(false);\n\n const lastOnChangeValue = useRef<number>();\n const [startClientOffset, endClientOffset] = getOffsets(nodeRef, side, isVertical);\n\n const [startValueBound, endValueBound] = bounds;\n const startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;\n const endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;\n\n const dragPosition =\n typeof position === 'number' ? { x: isVertical ? 0 : position, y: isVertical ? position : 0 } : undefined;\n const tabIndex = disabled ? -1 : 0;\n\n const computedBounds = {\n [isVertical ? 'top' : 'left']: (startPositionBound ?? 0) - (startClientOffset ? stepSize : 0),\n [isVertical ? 'bottom' : 'right']:\n (endPositionBound ?? stepSize * (max - min)) - (endClientOffset ? stepSize : 0),\n };\n\n const showCurrentValueCondition =\n showCurrentValue &&\n ((position >= startOffset && position <= max * stepSize - endOffset) || (position === 0 && value !== 0));\n\n const onDrag: DraggableEventHandler = (_, data) => {\n const newValue = getSliderThumbValue(isVertical ? data.y : data.x, stepSize, min, max);\n\n if (lastOnChangeValue.current !== newValue) {\n onChange?.(newValue, data);\n lastOnChangeValue.current = newValue;\n }\n };\n\n const onStart: DraggableEventHandler = () => {\n setIsDrag(true);\n };\n\n const onStop: DraggableEventHandler = (_, data) => {\n setIsDrag(false);\n\n const newValue = getSliderThumbValue(isVertical ? data.y : data.x, stepSize, min, max);\n onChangeCommitted && onChangeCommitted(newValue, data);\n };\n\n const onKeyPress = (event: KeyboardEvent<HTMLDivElement>) => {\n event.persist();\n\n const computedMultipleSteps = stepSize * ((rest.multipleStepSize / 100) * max);\n\n const data = computeKeyPressData(event, {\n isVertical,\n stepSize,\n position,\n max,\n computedMultipleSteps,\n });\n\n if (!data) {\n return;\n }\n\n const { left, right, top, bottom } = computedBounds;\n\n /*\n * INFO: Находим значение в диапазоне между указанными левой и правой границами.\n * Или между верхней и нижней\n * Необходимо для правильного расчета положения SliderThumb.\n * см. функция clamp\n */\n const boundedValue = isVertical\n ? Math.max(Math.min(bottom, data.y), top)\n : Math.max(Math.min(right, data.x), left);\n\n const computedValue = getSliderThumbValue(boundedValue, stepSize, min, max);\n lastOnChangeValue.current = computedValue;\n\n onChangeCommitted && onChangeCommitted(computedValue, data);\n };\n\n let isPointerHidden = (visibility === 'hover' && !isHovered) || size === 'none';\n\n if (isDrag) {\n isPointerHidden = false;\n }\n\n return (\n <Draggable\n nodeRef={nodeRef}\n axis={isVertical ? 'y' : 'x'}\n bounds={computedBounds}\n grid={isVertical ? [1, stepSize] : [stepSize, 1]}\n onStart={onStart}\n onStop={onStop}\n onDrag={onDrag}\n position={dragPosition}\n disabled={disabled}\n >\n <HandlerStyled\n ref={combinedRef}\n style={{ zIndex }}\n className={cx(\n isVertical && classes.verticalOrientation,\n valuePlacement === 'left' && classes.valuePlacementLeft,\n )}\n isLarge={size === 'large'}\n isPointerHidden={isPointerHidden}\n onKeyDown={onKeyPress}\n >\n {!isPointerHidden && (\n <Thumb\n tabIndex={tabIndex}\n min={min}\n max={max}\n value={value}\n disabled={disabled}\n orientation={orientation}\n {...rest}\n />\n )}\n {showCurrentValueCondition && <StyledValue isPointerHidden={isPointerHidden}>{value}</StyledValue>}\n </HandlerStyled>\n </Draggable>\n );\n },\n);\n"],"names":["Handler","forwardRef","_ref","ref","size","visibility","isHovered","orientation","stepSize","onChangeCommitted","onChange","_ref$position","position","min","max","_ref$bounds","bounds","zIndex","disabled","side","_ref$showCurrentValue","showCurrentValue","_ref$startOffset","startOffset","_ref$endOffset","endOffset","value","valuePlacement","rest","_objectWithoutProperties","_excluded","nodeRef","useRef","combinedRef","useForkRef","isVertical","_useState","useState","_useState2","_slicedToArray","isDrag","setIsDrag","lastOnChangeValue","_getOffsets","getOffsets","_getOffsets2","startClientOffset","endClientOffset","_bounds","startValueBound","endValueBound","startPositionBound","endPositionBound","dragPosition","x","y","undefined","tabIndex","computedBounds","_defineProperty","showCurrentValueCondition","onDrag","_","data","newValue","getSliderThumbValue","current","onStart","onStop","onKeyPress","event","persist","computedMultipleSteps","multipleStepSize","computeKeyPressData","left","right","top","bottom","boundedValue","Math","computedValue","isPointerHidden","React","createElement","Draggable","axis","grid","HandlerStyled","style","className","cx","classes","verticalOrientation","valuePlacementLeft","isLarge","onKeyDown","Thumb","_extends","StyledValue"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ var deepCopy = function deepCopy(obj) {
|
|
|
21
21
|
return deepCopy(item);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
if (obj
|
|
24
|
+
if (obj.$$typeof === Symbol["for"]('react.element') || obj.$$typeof === Symbol["for"]('react.fragment') || _rollupPluginBabelHelpers.typeof(obj === null || obj === void 0 ? void 0 : obj.$$typeof) === 'symbol') {
|
|
25
25
|
return obj;
|
|
26
26
|
}
|
|
27
27
|
return Object.fromEntries(Object.entries(obj).map(function (_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseTree.js","sources":["../../../../src/components/Tree/utils/traverseTree.ts"],"sourcesContent":["import type { Key } from 'react';\nimport cls from 'classnames/dedupe';\n\nimport { classes } from '../Tree.tokens';\nimport type { TreeItem } from '../Tree.types';\n\n// Blazing-fast хелпер для глубокого копирования объектов.\n// Ссылки на функции (React-компоненты) сохраняются.\nconst deepCopy = <T>(obj: T): T => {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return (obj.map((item) => deepCopy(item)) as unknown) as T;\n }\n\n if ((obj as any)
|
|
1
|
+
{"version":3,"file":"traverseTree.js","sources":["../../../../src/components/Tree/utils/traverseTree.ts"],"sourcesContent":["import type { Key } from 'react';\nimport cls from 'classnames/dedupe';\n\nimport { classes } from '../Tree.tokens';\nimport type { TreeItem } from '../Tree.types';\n\n// Blazing-fast хелпер для глубокого копирования объектов.\n// Ссылки на функции (React-компоненты) сохраняются.\nconst deepCopy = <T>(obj: T): T => {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return (obj.map((item) => deepCopy(item)) as unknown) as T;\n }\n\n if (\n (obj as any).$$typeof === Symbol.for('react.element') ||\n (obj as any).$$typeof === Symbol.for('react.fragment') ||\n typeof (obj as any)?.$$typeof === 'symbol'\n ) {\n return obj;\n }\n\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, deepCopy(value)])) as T;\n};\n\n// Поиск в глубину для обхода узлов дерева.\nconst dfs = (node: TreeItem, selectedKeys: Set<Key>, rootParentsSelected: Set<Key>, parents: TreeItem[]): void => {\n if (selectedKeys.has(node.key)) {\n parents.forEach((parent) => {\n parent.className = cls(parent.className, classes.treeItemHasSelectedChildren);\n });\n }\n\n node.children?.forEach((childNode) => dfs(childNode, selectedKeys, rootParentsSelected, [...parents, node]));\n\n if (rootParentsSelected.has(parents.filter((parent) => parent.key !== 'root')[0]?.key)) {\n node.className = cls(node.className, classes.treeItemPrimaryBackground);\n }\n\n if (!node.children) {\n node.className = cls(node.className, classes.treeLeafNode);\n }\n};\n\nconst getRootParentsSelectedChildren = (node: TreeItem, selectedKeysSet: Set<Key>) => {\n const rootParentsSelected = new Set<Key>();\n\n const dfs = (node: TreeItem, currentRootParentKey: Key) => {\n if (rootParentsSelected.has(currentRootParentKey)) {\n return;\n }\n\n if (selectedKeysSet.has(node.key)) {\n rootParentsSelected.add(currentRootParentKey);\n }\n\n if (node.children) {\n node.children.forEach((childNode) => {\n dfs(childNode, currentRootParentKey);\n });\n }\n };\n\n if (node.children) {\n node.children.forEach((rootNode) => {\n dfs(rootNode, rootNode.key);\n });\n }\n\n return rootParentsSelected;\n};\n\n// Перебираем и клонируем элементы в дереве, а также добавляем к ним класснеймы.\nexport const traverseTree = (items: TreeItem[], selectedKeys?: Key[]): TreeItem[] => {\n const selectedKeysSet = new Set(selectedKeys);\n\n const copyItems = deepCopy(items);\n\n const rootParentsSelected = getRootParentsSelectedChildren({ key: 'root', children: copyItems }, selectedKeysSet);\n\n copyItems.forEach((item) => {\n dfs(item, selectedKeysSet, rootParentsSelected, [item]);\n });\n\n return copyItems;\n};\n"],"names":["deepCopy","obj","_typeof","Array","isArray","map","item","$$typeof","Symbol","Object","fromEntries","entries","_ref","_ref2","_slicedToArray","key","value","dfs","node","selectedKeys","rootParentsSelected","parents","_node$children","_parents$filter$","has","forEach","parent","className","cls","classes","treeItemHasSelectedChildren","children","childNode","concat","_toConsumableArray","filter","treeItemPrimaryBackground","treeLeafNode","getRootParentsSelectedChildren","selectedKeysSet","Set","currentRootParentKey","add","rootNode","traverseTree","items","copyItems"],"mappings":"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"}
|