UNPKG

vue-slider-component

Version:
62 lines 2.16 kB
export const getSize = (value) => { return typeof value === 'number' ? `${value}px` : value; }; /** Get the distance of the element from the top/left of the page */ export const getOffset = (elem) => { const doc = document.documentElement; const body = document.body; const rect = elem.getBoundingClientRect(); const offset = { y: rect.top + (window.pageYOffset || doc.scrollTop) - (doc.clientTop || body.clientTop || 0), x: rect.left + (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || body.clientLeft || 0), }; return offset; }; /** * Get the position of the mouse/finger in the element * @param e Trigger event * @param elem Container element * @param isReverse From the right/bottom */ export const getPos = (e, elem, isReverse, zoom = 1) => { const event = 'targetTouches' in e ? e.targetTouches[0] : e; const offset = getOffset(elem); const posObj = { x: event.pageX - offset.x, y: event.pageY - offset.y, }; return { x: isReverse ? elem.offsetWidth * zoom - posObj.x : posObj.x, y: isReverse ? elem.offsetHeight * zoom - posObj.y : posObj.y, }; }; export const getKeyboardHandleFunc = (e, params) => { if (params.hook) { const result = params.hook(e); if (typeof result === 'function') return result; if (!result) return null; } switch (e.keyCode) { case 38 /* UP */: return i => (params.direction === 'ttb' ? i - 1 : i + 1); case 39 /* RIGHT */: return i => (params.direction === 'rtl' ? i - 1 : i + 1); case 40 /* DOWN */: return i => (params.direction === 'ttb' ? i + 1 : i - 1); case 37 /* LEFT */: return i => (params.direction === 'rtl' ? i + 1 : i - 1); case 35 /* END */: return () => params.max; case 36 /* HOME */: return () => params.min; case 33 /* PAGE_UP */: return i => i + 10; case 34 /* PAGE_DOWN */: return i => i - 10; default: return null; } }; //# sourceMappingURL=index.js.map