wix-style-react
Version:
114 lines (90 loc) • 3.98 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _Tooltip = require("wix-ui-core/dist/src/components/tooltip/Tooltip.driver");
var _constants = require("./constants");
var _deprecationLog = _interopRequireDefault(require("../utils/deprecationLog"));
var sliderDriverFactory = function sliderDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var $sliderHandles = function $sliderHandles() {
return element.querySelectorAll("[data-hook=\"".concat(_constants.dataHooks.sliderHandle, "\"]"));
};
var $sliderDots = function $sliderDots() {
return element.querySelectorAll('.wsr-slider-dot');
};
var $sliderMarks = function $sliderMarks() {
return element.querySelectorAll("[data-hook=\"".concat(_constants.dataHooks.sliderMarkLabel, "\"]"));
};
var getTooltipDriver = function getTooltipDriver(index) {
var sliderDataHook = element.getAttribute('data-hook');
var tooltipDataHook = sliderDataHook ? "".concat(sliderDataHook, "-").concat(_constants.dataHooks.sliderTooltip, "-").concat(index) : "".concat(_constants.dataHooks.sliderTooltip, "-").concat(index);
return (0, _Tooltip.tooltipDriverFactory)({
element: element.querySelector("[data-hook=\"".concat(tooltipDataHook, "\"]")),
eventTrigger: eventTrigger
});
};
var currentHandleIndex = 0;
return {
/** returns true if element in the DOM */
exists: function exists() {
return !!element;
},
/** returns true if slider grade is selected */
isDotSelected: function isDotSelected(number) {
return $sliderDots().item(number - 1).classList.contains('wsr-slider-dot-active');
},
/** returns number of slider grades */
numOfSliderDots: function numOfSliderDots() {
return $sliderDots().length;
},
/** returns number of slider handles */
numOfSliderHandles: function numOfSliderHandles() {
return $sliderHandles().length;
},
/** returns number of slider marks labels */
numOfSliderMarksLabels: function numOfSliderMarksLabels() {
return $sliderMarks().length;
},
/** returns slider tooltip value */
getToolTipValue: function getToolTipValue() {
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
handleIndex = _ref2.handleIndex;
if (!handleIndex) {
(0, _deprecationLog["default"])('handleIndex is not provided, in next major release this will be required');
}
var index = handleIndex || currentHandleIndex;
var tooltipDriver = getTooltipDriver(index);
var text = null;
try {
text = tooltipDriver.getTooltipText();
} catch (_unused) {}
return text;
},
/** hovers on slider handle */
hoverHandle: function hoverHandle(_ref3) {
var handleIndex = _ref3.handleIndex;
(0, _deprecationLog["default"])('hoverHandle is deprecated and will be removed in next major release, please use getToolTipValue directly with handleIndex');
currentHandleIndex = handleIndex;
var tooltipDriver = getTooltipDriver(handleIndex);
return tooltipDriver.mouseEnter();
},
/** mouse leaves slider handle */
unHoverHandle: function unHoverHandle(_ref4) {
var handleIndex = _ref4.handleIndex;
(0, _deprecationLog["default"])('unHoverHandle is deprecated and will be removed in next major release, please use getToolTipValue directly with handleIndex');
currentHandleIndex = 0;
var tooltipDriver = getTooltipDriver(handleIndex);
return tooltipDriver.mouseLeave();
},
/** returns if the slider is disabled */
isDisabled: function isDisabled() {
return !!element.querySelector('.wsr-slider-disabled');
}
};
};
var _default = sliderDriverFactory;
exports["default"] = _default;