wix-style-react
Version:
wix-style-react
141 lines (140 loc) • 5.16 kB
JavaScript
"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 = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _rcSlider = require("rc-slider");
var _Focusable = require("../common/Focusable");
var _constants = require("./constants");
var _SliderSt = require("./Slider.st.css");
var _Tooltip = _interopRequireDefault(require("../Tooltip"));
var _utils = require("./utils");
var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/Slider/SliderHandle.js";
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var SliderHandle = _ref => {
var {
tooltipValue,
className,
onFocusCustom = () => {},
onBlurCustom = () => {},
focusableOnFocus,
focusableOnBlur,
disabled,
handleProps,
displayTooltip = true,
index,
dataHook,
direction,
gradientColor,
ariaLabelledBy
} = _ref;
var {
min,
max,
value
} = handleProps;
var gradientValue = (value - min) / (max - min);
var [hovered, setHovered] = (0, _react.useState)(false);
var tooltipRef = _react.default.useRef(null);
var handleMouseEnter = () => {
setHovered(true);
};
var handleMouseLeave = () => {
setHovered(false);
};
var handleOnFocus = event => {
focusableOnFocus();
tooltipRef.current.open();
onFocusCustom(Number(tooltipValue), event);
};
var 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: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 57,
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
}),
onMouseEnter: handleMouseEnter,
onMouseLeave: handleMouseLeave,
"data-hook": _constants.dataHooks.sliderHandle,
ariaLabelledBy: ariaLabelledBy,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 61,
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: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 71,
columnNumber: 9
}
}, /*#__PURE__*/_react.default.createElement("div", {
className: (0, _SliderSt.st)(_SliderSt.classes.sliderThumb, {
hovered,
hasGradient: !!gradientColor
}),
style: (0, _utils.getThumbStyle)({
gradientColor,
alpha: gradientValue,
disabled
}),
"data-hook": _constants.dataHooks.sliderThumb,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 79,
columnNumber: 11
}
}))));
};
SliderHandle.propTypes = {
onFocusCustom: _propTypes.default.func,
onBlurCustom: _propTypes.default.func,
disabled: _propTypes.default.bool,
displayTooltip: _propTypes.default.bool,
tooltipValue: _propTypes.default.string,
index: _propTypes.default.number,
dataHook: _propTypes.default.string,
gradientColor: _propTypes.default.string,
handleProps: _propTypes.default.shape({
ref: _propTypes.default.func.isRequired,
offset: _propTypes.default.number.isRequired,
min: _propTypes.default.number.isRequired,
max: _propTypes.default.number.isRequired,
value: _propTypes.default.number.isRequired,
reverse: _propTypes.default.bool,
ariaLabel: _propTypes.default.string
}),
direction: _propTypes.default.oneOf(['horizontal', 'vertical'])
};
var _default = exports.default = (0, _Focusable.withFocusable)(SliderHandle);
//# sourceMappingURL=SliderHandle.js.map