"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var React = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode")); var _context = _interopRequireDefault(require("../context")); var _util = require("../util"); var _excluded = ["prefixCls", "value", "valueIndex", "onStartMove", "style", "render", "dragging", "onOffsetChange"]; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) { var _classNames, _getIndex; var prefixCls = props.prefixCls, value = props.value, valueIndex = props.valueIndex, onStartMove = props.onStartMove, style = props.style, render = props.render, dragging = props.dragging, onOffsetChange = props.onOffsetChange, restProps = (0, _objectWithoutProperties2.default)(props, _excluded); var _React$useContext = React.useContext(_context.default), min = _React$useContext.min, max = _React$useContext.max, direction = _React$useContext.direction, disabled = _React$useContext.disabled, keyboard = _React$useContext.keyboard, range = _React$useContext.range, tabIndex = _React$useContext.tabIndex, ariaLabelForHandle = _React$useContext.ariaLabelForHandle, ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle, ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle; var handlePrefixCls = "".concat(prefixCls, "-handle"); // ============================ Events ============================ var onInternalStartMove = function onInternalStartMove(e) { if (!disabled) { onStartMove(e, valueIndex); } }; // =========================== Keyboard =========================== var onKeyDown = function onKeyDown(e) { if (!disabled && keyboard) { var offset = null; // Change the value switch (e.which || e.keyCode) { case _KeyCode.default.LEFT: offset = direction === 'ltr' || direction === 'btt' ? -1 : 1; break; case _KeyCode.default.RIGHT: offset = direction === 'ltr' || direction === 'btt' ? 1 : -1; break; // Up is plus case _KeyCode.default.UP: offset = direction !== 'ttb' ? 1 : -1; break; // Down is minus case _KeyCode.default.DOWN: offset = direction !== 'ttb' ? -1 : 1; break; case _KeyCode.default.HOME: offset = 'min'; break; case _KeyCode.default.END: offset = 'max'; break; case _KeyCode.default.PAGE_UP: offset = 2; break; case _KeyCode.default.PAGE_DOWN: offset = -2; break; } if (offset !== null) { e.preventDefault(); onOffsetChange(offset, valueIndex); } } }; // ============================ Offset ============================ var positionStyle = (0, _util.getDirectionStyle)(direction, value, min, max); // ============================ Render ============================ var handleNode = /*#__PURE__*/React.createElement("div", (0, _extends2.default)({ ref: ref, className: (0, _classnames.default)(handlePrefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(handlePrefixCls, "-").concat(valueIndex + 1), range), (0, _defineProperty2.default)(_classNames, "".concat(handlePrefixCls, "-dragging"), dragging), _classNames)), style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, positionStyle), style), onMouseDown: onInternalStartMove, onTouchStart: onInternalStartMove, onKeyDown: onKeyDown, tabIndex: disabled ? null : (0, _util.getIndex)(tabIndex, valueIndex), role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-disabled": disabled, "aria-label": (0, _util.getIndex)(ariaLabelForHandle, valueIndex), "aria-labelledby": (0, _util.getIndex)(ariaLabelledByForHandle, valueIndex), "aria-valuetext": (_getIndex = (0, _util.getIndex)(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value), "aria-orientation": direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical' }, restProps)); // Customize if (render) { handleNode = render(handleNode, { index: valueIndex, prefixCls: prefixCls, value: value, dragging: dragging }); } return handleNode; }); if (process.env.NODE_ENV !== 'production') { Handle.displayName = 'Handle'; } var _default = Handle; exports.default = _default;