{"version":3,"file":"utils.cjs","sources":["../../../../../../packages/vue-components/vc-slider/src/utils.ts"],"sourcesContent":["import { KeyCode } from '@antdv/utils';\n\nexport function isEventFromHandle(e: { target: HTMLElement }, handles) {\n  try {\n    return Object.keys(handles).some(key => e.target === handles[key].ref);\n  } catch (error) {\n    return false;\n  }\n}\n\nexport function isValueOutOfRange(value: number, { min, max }: { min?: number; max?: number }) {\n  return value < min || value > max;\n}\n\nexport function isNotTouchEvent(e: TouchEvent) {\n  return e.touches.length > 1 || (e.type.toLowerCase() === 'touchend' && e.touches.length > 0);\n}\n\nexport function getClosestPoint(val: number, { marks, step, min, max }) {\n  const points = Object.keys(marks).map(Number.parseFloat);\n  if (step !== null) {\n    const baseNum = 10 ** getPrecision(step);\n    const maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n    const steps = Math.min((val - min) / step, maxSteps);\n    const closestStep = Math.round(steps) * step + min;\n    points.push(closestStep);\n  }\n  const diffs = points.map(point => Math.abs(val - point));\n  return points[diffs.indexOf(Math.min(...diffs))];\n}\n\nexport function getPrecision(step: number) {\n  const stepString = step.toString();\n  let precision = 0;\n  if (stepString.includes('.'))\n    precision = stepString.length - stepString.indexOf('.') - 1;\n\n  return precision;\n}\n\nexport function getMousePosition(vertical: boolean, e: MouseEvent) {\n  let zoom = 1;\n  if (window.visualViewport)\n    zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n\n  return (vertical ? e.clientY : e.pageX) / zoom;\n}\n\nexport function getTouchPosition(vertical: boolean, e: TouchEvent) {\n  let zoom = 1;\n  if (window.visualViewport)\n    zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n\n  return (vertical ? e.touches[0].clientY : e.touches[0].pageX) / zoom;\n}\n\nexport function getHandleCenterPosition(vertical: boolean, handle: HTMLElement) {\n  const coords = handle.getBoundingClientRect();\n  return vertical\n    ? coords.top + coords.height * 0.5\n    : window.scrollX + coords.left + coords.width * 0.5;\n}\n\nexport function ensureValueInRange(val: number, { max, min }: { max?: number; min?: number }) {\n  if (val <= min)\n    return min;\n\n  if (val >= max)\n    return max;\n\n  return val;\n}\n\nexport function ensureValuePrecision(val: number, props: any) {\n  const { step } = props;\n  const closestPoint = Number.isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0;\n  return step === null ? closestPoint : Number.parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\n\nexport function pauseEvent(e: Event) {\n  e.stopPropagation();\n  e.preventDefault();\n}\n\nexport function calculateNextValue(func, value, props) {\n  const operations = {\n    increase: (a, b) => a + b,\n    decrease: (a, b) => a - b,\n  };\n\n  const indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n  const keyToGet = Object.keys(props.marks)[indexToGet];\n\n  if (props.step)\n    return operations[func](value, props.step);\n\n  if (!!Object.keys(props.marks).length && !!props.marks[keyToGet])\n    return props.marks[keyToGet];\n\n  return value;\n}\n\nexport function getKeyboardValueMutator(e: KeyboardEvent, vertical: boolean, reverse: boolean) {\n  const increase = 'increase';\n  const decrease = 'decrease';\n  let method = increase;\n  switch (e.keyCode) {\n    case KeyCode.UP:\n      method = vertical && reverse ? decrease : increase;\n      break;\n    case KeyCode.RIGHT:\n      method = !vertical && reverse ? decrease : increase;\n      break;\n    case KeyCode.DOWN:\n      method = vertical && reverse ? increase : decrease;\n      break;\n    case KeyCode.LEFT:\n      method = !vertical && reverse ? increase : decrease;\n      break;\n\n    case KeyCode.END:\n      return (_value, props) => props.max;\n    case KeyCode.HOME:\n      return (_value, props) => props.min;\n    case KeyCode.PAGE_UP:\n      return (value, props) => value + props.step * 2;\n    case KeyCode.PAGE_DOWN:\n      return (value, props) => value - props.step * 2;\n\n    default:\n      return undefined;\n  }\n  return (value, props) => calculateNextValue(method, value, props);\n}\n"],"names":["KeyCode"],"mappings":"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"}