@salutejs/plasma-new-hope 0.337.1-canary.2279.18403339090.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.
@@ -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(ref, side, isVertical),
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: 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)(ref, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
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: 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(ref, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
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: 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, useState, useRef } from 'react';
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(ref, side, isVertical),
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: 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.2279.18403339090.0",
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": "19549d8c9a2cbcd59feb40eb9700f0965c1f2ca9"
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)(ref, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
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: 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(ref, side, isVertical), 2), startClientOffset = _getOffsets[0], endClientOffset = _getOffsets[1];
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: 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;AAQ3E,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,qFAoJnB,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"}