wix-style-react
Version:
102 lines (83 loc) • 3.63 kB
JavaScript
import { tooltipDriverFactory } from "wix-ui-core/dist/es/src/components/tooltip/Tooltip.driver";
import { dataHooks } from './constants';
import deprecationLog from '../utils/deprecationLog';
var sliderDriverFactory = function sliderDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var $sliderHandles = function $sliderHandles() {
return element.querySelectorAll("[data-hook=\"".concat(dataHooks.sliderHandle, "\"]"));
};
var $sliderDots = function $sliderDots() {
return element.querySelectorAll('.wsr-slider-dot');
};
var $sliderMarks = function $sliderMarks() {
return element.querySelectorAll("[data-hook=\"".concat(dataHooks.sliderMarkLabel, "\"]"));
};
var getTooltipDriver = function getTooltipDriver(index) {
var sliderDataHook = element.getAttribute('data-hook');
var tooltipDataHook = sliderDataHook ? "".concat(sliderDataHook, "-").concat(dataHooks.sliderTooltip, "-").concat(index) : "".concat(dataHooks.sliderTooltip, "-").concat(index);
return 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) {
deprecationLog('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;
deprecationLog('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;
deprecationLog('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');
}
};
};
export default sliderDriverFactory;