@salutejs/plasma-new-hope 0.337.1-canary.2279.18381214047.0 → 0.337.1-canary.2282.18455921993.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/Slider/ui/Handler/Handler.js +6 -2
- package/cjs/components/Slider/ui/Handler/Handler.js.map +1 -1
- package/emotion/cjs/components/Slider/ui/Handler/Handler.js +6 -2
- package/emotion/es/components/Slider/ui/Handler/Handler.js +6 -2
- package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
- package/es/components/Slider/ui/Handler/Handler.js +7 -3
- package/es/components/Slider/ui/Handler/Handler.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Slider/ui/Handler/Handler.js +6 -2
- package/styled-components/es/components/Slider/ui/Handler/Handler.js +6 -2
- package/types/components/Slider/ui/Handler/Handler.d.ts.map +1 -1
|
@@ -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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"}
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "Handler", {
|
|
|
10
10
|
});
|
|
11
11
|
var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
var _reactdraggable = /*#__PURE__*/ _interop_require_default(require("react-draggable"));
|
|
13
|
+
var _plasmacore = require("@salutejs/plasma-core");
|
|
13
14
|
var _utils = require("../../../../utils");
|
|
14
15
|
var _utils1 = require("../../utils");
|
|
15
16
|
var _Thumb = require("../Thumb/Thumb");
|
|
@@ -185,10 +186,12 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
185
186
|
"value",
|
|
186
187
|
"valuePlacement"
|
|
187
188
|
]);
|
|
189
|
+
var nodeRef = (0, _react.useRef)(null);
|
|
190
|
+
var combinedRef = (0, _plasmacore.useForkRef)(nodeRef, ref);
|
|
188
191
|
var isVertical = orientation === 'vertical';
|
|
189
192
|
var _useState = _sliced_to_array((0, _react.useState)(false), 2), isDrag = _useState[0], setIsDrag = _useState[1];
|
|
190
193
|
var lastOnChangeValue = (0, _react.useRef)();
|
|
191
|
-
var _getOffsets = _sliced_to_array((0, _utils1.getOffsets)(
|
|
194
|
+
var _getOffsets = _sliced_to_array((0, _utils1.getOffsets)(nodeRef, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
|
|
192
195
|
var _bounds = _sliced_to_array(bounds, 2), startValueBound = _bounds[0], endValueBound = _bounds[1];
|
|
193
196
|
var startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;
|
|
194
197
|
var endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;
|
|
@@ -244,6 +247,7 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
244
247
|
isPointerHidden = false;
|
|
245
248
|
}
|
|
246
249
|
return /*#__PURE__*/ _react.default.createElement(_reactdraggable.default, {
|
|
250
|
+
nodeRef: nodeRef,
|
|
247
251
|
axis: isVertical ? 'y' : 'x',
|
|
248
252
|
bounds: computedBounds,
|
|
249
253
|
grid: isVertical ? [
|
|
@@ -259,7 +263,7 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
259
263
|
position: dragPosition,
|
|
260
264
|
disabled: disabled
|
|
261
265
|
}, /*#__PURE__*/ _react.default.createElement(_Handlerstyles.HandlerStyled, {
|
|
262
|
-
ref:
|
|
266
|
+
ref: combinedRef,
|
|
263
267
|
style: {
|
|
264
268
|
zIndex: zIndex
|
|
265
269
|
},
|
|
@@ -101,6 +101,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
101
101
|
}
|
|
102
102
|
import React, { useRef, useState, forwardRef } from "react";
|
|
103
103
|
import Draggable from "react-draggable";
|
|
104
|
+
import { useForkRef } from "@salutejs/plasma-core";
|
|
104
105
|
import { cx } from "../../../../utils";
|
|
105
106
|
import { getSliderThumbValue, getOffsets } from "../../utils";
|
|
106
107
|
import { Thumb } from "../Thumb/Thumb";
|
|
@@ -129,10 +130,12 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
129
130
|
"value",
|
|
130
131
|
"valuePlacement"
|
|
131
132
|
]);
|
|
133
|
+
var nodeRef = useRef(null);
|
|
134
|
+
var combinedRef = useForkRef(nodeRef, ref);
|
|
132
135
|
var isVertical = orientation === 'vertical';
|
|
133
136
|
var _useState = _sliced_to_array(useState(false), 2), isDrag = _useState[0], setIsDrag = _useState[1];
|
|
134
137
|
var lastOnChangeValue = useRef();
|
|
135
|
-
var _getOffsets = _sliced_to_array(getOffsets(
|
|
138
|
+
var _getOffsets = _sliced_to_array(getOffsets(nodeRef, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
|
|
136
139
|
var _bounds = _sliced_to_array(bounds, 2), startValueBound = _bounds[0], endValueBound = _bounds[1];
|
|
137
140
|
var startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;
|
|
138
141
|
var endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;
|
|
@@ -188,6 +191,7 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
188
191
|
isPointerHidden = false;
|
|
189
192
|
}
|
|
190
193
|
return /*#__PURE__*/ React.createElement(Draggable, {
|
|
194
|
+
nodeRef: nodeRef,
|
|
191
195
|
axis: isVertical ? 'y' : 'x',
|
|
192
196
|
bounds: computedBounds,
|
|
193
197
|
grid: isVertical ? [
|
|
@@ -203,7 +207,7 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
203
207
|
position: dragPosition,
|
|
204
208
|
disabled: disabled
|
|
205
209
|
}, /*#__PURE__*/ React.createElement(HandlerStyled, {
|
|
206
|
-
ref:
|
|
210
|
+
ref: combinedRef,
|
|
207
211
|
style: {
|
|
208
212
|
zIndex: zIndex
|
|
209
213
|
},
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { component, mergeConfig } from "../../../engines";
|
|
2
|
+
import { comboboxNewConfig } from "../../..";
|
|
3
|
+
import { config } from "./Combobox.config";
|
|
4
|
+
var mergedConfig = mergeConfig(comboboxNewConfig, config);
|
|
5
|
+
var ComboboxComponent = component(mergedConfig);
|
|
6
|
+
var Combobox = ComboboxComponent;
|
|
7
|
+
export { Combobox };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React, { forwardRef,
|
|
2
|
+
import React, { forwardRef, useRef, useState } from 'react';
|
|
3
3
|
import ReactDraggable from 'react-draggable';
|
|
4
|
+
import { useForkRef } from '@salutejs/plasma-core';
|
|
4
5
|
import { cx } from '../../../../utils/index.js';
|
|
5
6
|
import { getOffsets, getSliderThumbValue } from '../../utils/index.js';
|
|
6
7
|
import { Thumb } from '../Thumb/Thumb.js';
|
|
@@ -38,13 +39,15 @@ var Handler = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
38
39
|
value = _ref.value,
|
|
39
40
|
valuePlacement = _ref.valuePlacement,
|
|
40
41
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
42
|
+
var nodeRef = useRef(null);
|
|
43
|
+
var combinedRef = useForkRef(nodeRef, ref);
|
|
41
44
|
var isVertical = orientation === 'vertical';
|
|
42
45
|
var _useState = useState(false),
|
|
43
46
|
_useState2 = _slicedToArray(_useState, 2),
|
|
44
47
|
isDrag = _useState2[0],
|
|
45
48
|
setIsDrag = _useState2[1];
|
|
46
49
|
var lastOnChangeValue = useRef();
|
|
47
|
-
var _getOffsets = getOffsets(
|
|
50
|
+
var _getOffsets = getOffsets(nodeRef, side, isVertical),
|
|
48
51
|
_getOffsets2 = _slicedToArray(_getOffsets, 2),
|
|
49
52
|
startClientOffset = _getOffsets2[0],
|
|
50
53
|
endClientOffset = _getOffsets2[1];
|
|
@@ -109,6 +112,7 @@ var Handler = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
109
112
|
isPointerHidden = false;
|
|
110
113
|
}
|
|
111
114
|
return /*#__PURE__*/React.createElement(ReactDraggable, {
|
|
115
|
+
nodeRef: nodeRef,
|
|
112
116
|
axis: isVertical ? 'y' : 'x',
|
|
113
117
|
bounds: computedBounds,
|
|
114
118
|
grid: isVertical ? [1, stepSize] : [stepSize, 1],
|
|
@@ -118,7 +122,7 @@ var Handler = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
118
122
|
position: dragPosition,
|
|
119
123
|
disabled: disabled
|
|
120
124
|
}, /*#__PURE__*/React.createElement(HandlerStyled, {
|
|
121
|
-
ref:
|
|
125
|
+
ref: combinedRef,
|
|
122
126
|
style: {
|
|
123
127
|
zIndex: zIndex
|
|
124
128
|
},
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salutejs/plasma-new-hope",
|
|
3
|
-
"version": "0.337.1-canary.
|
|
3
|
+
"version": "0.337.1-canary.2282.18455921993.0",
|
|
4
4
|
"description": "Salute Design System blueprint",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -137,5 +137,5 @@
|
|
|
137
137
|
"sideEffects": [
|
|
138
138
|
"*.css"
|
|
139
139
|
],
|
|
140
|
-
"gitHead": "
|
|
140
|
+
"gitHead": "c506cc6878f1821b8a3ba9c56a9fd86465f09dd1"
|
|
141
141
|
}
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "Handler", {
|
|
|
10
10
|
});
|
|
11
11
|
var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
var _reactdraggable = /*#__PURE__*/ _interop_require_default(require("react-draggable"));
|
|
13
|
+
var _plasmacore = require("@salutejs/plasma-core");
|
|
13
14
|
var _utils = require("../../../../utils");
|
|
14
15
|
var _utils1 = require("../../utils");
|
|
15
16
|
var _Thumb = require("../Thumb/Thumb");
|
|
@@ -185,10 +186,12 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
185
186
|
"value",
|
|
186
187
|
"valuePlacement"
|
|
187
188
|
]);
|
|
189
|
+
var nodeRef = (0, _react.useRef)(null);
|
|
190
|
+
var combinedRef = (0, _plasmacore.useForkRef)(nodeRef, ref);
|
|
188
191
|
var isVertical = orientation === 'vertical';
|
|
189
192
|
var _useState = _sliced_to_array((0, _react.useState)(false), 2), isDrag = _useState[0], setIsDrag = _useState[1];
|
|
190
193
|
var lastOnChangeValue = (0, _react.useRef)();
|
|
191
|
-
var _getOffsets = _sliced_to_array((0, _utils1.getOffsets)(
|
|
194
|
+
var _getOffsets = _sliced_to_array((0, _utils1.getOffsets)(nodeRef, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
|
|
192
195
|
var _bounds = _sliced_to_array(bounds, 2), startValueBound = _bounds[0], endValueBound = _bounds[1];
|
|
193
196
|
var startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;
|
|
194
197
|
var endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;
|
|
@@ -244,6 +247,7 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
244
247
|
isPointerHidden = false;
|
|
245
248
|
}
|
|
246
249
|
return /*#__PURE__*/ _react.default.createElement(_reactdraggable.default, {
|
|
250
|
+
nodeRef: nodeRef,
|
|
247
251
|
axis: isVertical ? 'y' : 'x',
|
|
248
252
|
bounds: computedBounds,
|
|
249
253
|
grid: isVertical ? [
|
|
@@ -259,7 +263,7 @@ var Handler = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
|
259
263
|
position: dragPosition,
|
|
260
264
|
disabled: disabled
|
|
261
265
|
}, /*#__PURE__*/ _react.default.createElement(_Handlerstyles.HandlerStyled, {
|
|
262
|
-
ref:
|
|
266
|
+
ref: combinedRef,
|
|
263
267
|
style: {
|
|
264
268
|
zIndex: zIndex
|
|
265
269
|
},
|
|
@@ -101,6 +101,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
101
101
|
}
|
|
102
102
|
import React, { useRef, useState, forwardRef } from "react";
|
|
103
103
|
import Draggable from "react-draggable";
|
|
104
|
+
import { useForkRef } from "@salutejs/plasma-core";
|
|
104
105
|
import { cx } from "../../../../utils";
|
|
105
106
|
import { getSliderThumbValue, getOffsets } from "../../utils";
|
|
106
107
|
import { Thumb } from "../Thumb/Thumb";
|
|
@@ -129,10 +130,12 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
129
130
|
"value",
|
|
130
131
|
"valuePlacement"
|
|
131
132
|
]);
|
|
133
|
+
var nodeRef = useRef(null);
|
|
134
|
+
var combinedRef = useForkRef(nodeRef, ref);
|
|
132
135
|
var isVertical = orientation === 'vertical';
|
|
133
136
|
var _useState = _sliced_to_array(useState(false), 2), isDrag = _useState[0], setIsDrag = _useState[1];
|
|
134
137
|
var lastOnChangeValue = useRef();
|
|
135
|
-
var _getOffsets = _sliced_to_array(getOffsets(
|
|
138
|
+
var _getOffsets = _sliced_to_array(getOffsets(nodeRef, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
|
|
136
139
|
var _bounds = _sliced_to_array(bounds, 2), startValueBound = _bounds[0], endValueBound = _bounds[1];
|
|
137
140
|
var startPositionBound = startValueBound ? (startValueBound - min) * stepSize : null;
|
|
138
141
|
var endPositionBound = endValueBound ? (endValueBound - min) * stepSize : null;
|
|
@@ -188,6 +191,7 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
188
191
|
isPointerHidden = false;
|
|
189
192
|
}
|
|
190
193
|
return /*#__PURE__*/ React.createElement(Draggable, {
|
|
194
|
+
nodeRef: nodeRef,
|
|
191
195
|
axis: isVertical ? 'y' : 'x',
|
|
192
196
|
bounds: computedBounds,
|
|
193
197
|
grid: isVertical ? [
|
|
@@ -203,7 +207,7 @@ export var Handler = /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
|
203
207
|
position: dragPosition,
|
|
204
208
|
disabled: disabled
|
|
205
209
|
}, /*#__PURE__*/ React.createElement(HandlerStyled, {
|
|
206
|
-
ref:
|
|
210
|
+
ref: combinedRef,
|
|
207
211
|
style: {
|
|
208
212
|
zIndex: zIndex
|
|
209
213
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/ui/Handler/Handler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/ui/Handler/Handler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAS3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,OAAO,QAAQ,iBAAiB,CAAC;IAC7B,UAAiB,cAAc;QAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC7B;CACJ;AAED,eAAO,MAAM,OAAO,qFAyJnB,CAAC"}
|