UNPKG

@wix/design-system

Version:

@wix/design-system

112 lines (111 loc) 4.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _rcSlider = require("rc-slider"); var _Focusable = require("../common/Focusable"); var _useHover2 = require("../common/useHover"); var _constants = require("./constants"); var _SliderSt = require("./Slider.st.css.js"); var _Tooltip = _interopRequireDefault(require("../Tooltip")); var _utils = require("./utils"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/Slider/SliderHandle.jsx", _this = void 0; var SliderHandle = function SliderHandle(_ref) { var tooltipValue = _ref.tooltipValue, className = _ref.className, _ref$onFocusCustom = _ref.onFocusCustom, onFocusCustom = _ref$onFocusCustom === void 0 ? function () {} : _ref$onFocusCustom, _ref$onBlurCustom = _ref.onBlurCustom, onBlurCustom = _ref$onBlurCustom === void 0 ? function () {} : _ref$onBlurCustom, focusableOnFocus = _ref.focusableOnFocus, focusableOnBlur = _ref.focusableOnBlur, disabled = _ref.disabled, handleProps = _ref.handleProps, _ref$displayTooltip = _ref.displayTooltip, displayTooltip = _ref$displayTooltip === void 0 ? true : _ref$displayTooltip, index = _ref.index, dataHook = _ref.dataHook, direction = _ref.direction, gradientColor = _ref.gradientColor; var min = handleProps.min, max = handleProps.max, value = handleProps.value; var gradientValue = (value - min) / (max - min); var _useHover = (0, _useHover2.useHover)(), hovered = _useHover.hovered, hoverProps = _useHover.hoverProps; var tooltipRef = _react["default"].useRef(null); var handleOnFocus = function handleOnFocus(event) { focusableOnFocus(); tooltipRef.current.open(); onFocusCustom(Number(tooltipValue), event); }; var handleOnBlur = function handleOnBlur(event) { focusableOnBlur(); tooltipRef.current.close(); onBlurCustom(Number(tooltipValue), event); }; var tooltipDataHook = dataHook ? "".concat(dataHook, "-").concat(_constants.dataHooks.sliderTooltip, "-").concat(index) : "".concat(_constants.dataHooks.sliderTooltip, "-").concat(index); return /*#__PURE__*/_react["default"].createElement("div", { className: (0, _SliderSt.st)(_SliderSt.classes.sliderHandleWrapper, {}, className), onBlur: handleOnBlur, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 48, columnNumber: 5 } }, /*#__PURE__*/_react["default"].createElement(_rcSlider.Handle, (0, _extends2["default"])({}, handleProps, { vertical: direction === 'vertical', onFocus: handleOnFocus, className: (0, _SliderSt.st)(_SliderSt.classes.sliderHandle, { disabled: disabled }) }, hoverProps, { "data-hook": _constants.dataHooks.sliderHandle, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 52, columnNumber: 7 } }), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], { ref: tooltipRef, className: _SliderSt.classes.sliderHandleTooltip, disabled: !displayTooltip || disabled || !tooltipValue, content: tooltipValue, moveBy: !!gradientColor ? { y: 3.5 } : { y: 3 }, dataHook: tooltipDataHook, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 60, columnNumber: 9 } }, /*#__PURE__*/_react["default"].createElement("div", { className: (0, _SliderSt.st)(_SliderSt.classes.sliderThumb, { hovered: hovered, hasGradient: !!gradientColor }), style: (0, _utils.getThumbStyle)({ gradientColor: gradientColor, alpha: gradientValue, disabled: disabled }), "data-hook": _constants.dataHooks.sliderThumb, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 68, columnNumber: 11 } })))); }; var _default = exports["default"] = (0, _Focusable.withFocusable)(SliderHandle);