{"ast":null,"code":"import { clamp } from '../utils';\nimport { isOneOf, getPosition, eventScope, setStyle } from '../utils/';\nvar Direction;\n(function (Direction) {\n  Direction[Direction[\"X\"] = 0] = \"X\";\n  Direction[Direction[\"Y\"] = 1] = \"Y\";\n})(Direction || (Direction = {}));\nexport function mouseHandler(scrollbar) {\n  var addEvent = eventScope(scrollbar);\n  var container = scrollbar.containerEl;\n  var _a = scrollbar.track,\n    xAxis = _a.xAxis,\n    yAxis = _a.yAxis;\n  function calcMomentum(direction, clickPosition) {\n    var size = scrollbar.size,\n      limit = scrollbar.limit,\n      offset = scrollbar.offset;\n    if (direction === Direction.X) {\n      var totalWidth = size.container.width + (xAxis.thumb.realSize - xAxis.thumb.displaySize);\n      return clamp(clickPosition / totalWidth * size.content.width, 0, limit.x) - offset.x;\n    }\n    if (direction === Direction.Y) {\n      var totalHeight = size.container.height + (yAxis.thumb.realSize - yAxis.thumb.displaySize);\n      return clamp(clickPosition / totalHeight * size.content.height, 0, limit.y) - offset.y;\n    }\n    return 0;\n  }\n  function getTrackDirection(elem) {\n    if (isOneOf(elem, [xAxis.element, xAxis.thumb.element])) {\n      return Direction.X;\n    }\n    if (isOneOf(elem, [yAxis.element, yAxis.thumb.element])) {\n      return Direction.Y;\n    }\n    return void 0;\n  }\n  var isMouseDown;\n  var isMouseMoving;\n  var startOffsetToThumb;\n  var trackDirection;\n  var containerRect;\n  addEvent(container, 'click', function (evt) {\n    if (isMouseMoving || !isOneOf(evt.target, [xAxis.element, yAxis.element])) {\n      return;\n    }\n    var track = evt.target;\n    var direction = getTrackDirection(track);\n    var rect = track.getBoundingClientRect();\n    var clickPos = getPosition(evt);\n    if (direction === Direction.X) {\n      var offsetOnTrack = clickPos.x - rect.left - xAxis.thumb.displaySize / 2;\n      scrollbar.setMomentum(calcMomentum(direction, offsetOnTrack), 0);\n    }\n    if (direction === Direction.Y) {\n      var offsetOnTrack = clickPos.y - rect.top - yAxis.thumb.displaySize / 2;\n      scrollbar.setMomentum(0, calcMomentum(direction, offsetOnTrack));\n    }\n  });\n  addEvent(container, 'mousedown', function (evt) {\n    if (!isOneOf(evt.target, [xAxis.thumb.element, yAxis.thumb.element])) {\n      return;\n    }\n    isMouseDown = true;\n    var thumb = evt.target;\n    var cursorPos = getPosition(evt);\n    var thumbRect = thumb.getBoundingClientRect();\n    trackDirection = getTrackDirection(thumb);\n    // pointer offset to thumb\n    startOffsetToThumb = {\n      x: cursorPos.x - thumbRect.left,\n      y: cursorPos.y - thumbRect.top\n    };\n    // container bounding rectangle\n    containerRect = container.getBoundingClientRect();\n    // prevent selection, see:\n    // https://github.com/idiotWu/smooth-scrollbar/issues/48\n    setStyle(scrollbar.containerEl, {\n      '-user-select': 'none'\n    });\n  });\n  addEvent(window, 'mousemove', function (evt) {\n    if (!isMouseDown) return;\n    isMouseMoving = true;\n    var cursorPos = getPosition(evt);\n    if (trackDirection === Direction.X) {\n      // get percentage of pointer position in track\n      // then tranform to px\n      // don't need easing\n      var offsetOnTrack = cursorPos.x - startOffsetToThumb.x - containerRect.left;\n      scrollbar.setMomentum(calcMomentum(trackDirection, offsetOnTrack), 0);\n    }\n    if (trackDirection === Direction.Y) {\n      var offsetOnTrack = cursorPos.y - startOffsetToThumb.y - containerRect.top;\n      scrollbar.setMomentum(0, calcMomentum(trackDirection, offsetOnTrack));\n    }\n  });\n  addEvent(window, 'mouseup blur', function () {\n    isMouseDown = isMouseMoving = false;\n    setStyle(scrollbar.containerEl, {\n      '-user-select': ''\n    });\n  });\n}","map":{"version":3,"names":["clamp","isOneOf","getPosition","eventScope","setStyle","Direction","mouseHandler","scrollbar","addEvent","container","containerEl","_a","track","xAxis","yAxis","calcMomentum","direction","clickPosition","size","limit","offset","X","totalWidth","width","thumb","realSize","displaySize","content","x","Y","totalHeight","height","y","getTrackDirection","elem","element","isMouseDown","isMouseMoving","startOffsetToThumb","trackDirection","containerRect","evt","target","rect","getBoundingClientRect","clickPos","offsetOnTrack","left","setMomentum","top","cursorPos","thumbRect","window"],"sources":["C:\\Users\\user\\Desktop\\000newport\\node_modules\\smooth-scrollbar\\src\\events\\mouse.ts"],"sourcesContent":["import { clamp } from '../utils';\nimport * as I from '../interfaces/';\n\nimport {\n  isOneOf,\n  getPosition,\n  eventScope,\n  setStyle,\n} from '../utils/';\n\nenum Direction { X, Y }\n\nexport function mouseHandler(scrollbar: I.Scrollbar) {\n  const addEvent = eventScope(scrollbar);\n  const container = scrollbar.containerEl;\n  const { xAxis, yAxis } = scrollbar.track;\n\n  function calcMomentum(\n    direction: Direction,\n    clickPosition: number,\n  ): number {\n    const {\n      size,\n      limit,\n      offset,\n    } = scrollbar;\n\n    if (direction === Direction.X) {\n      const totalWidth = size.container.width + (xAxis.thumb.realSize - xAxis.thumb.displaySize);\n\n      return clamp(clickPosition / totalWidth * size.content.width, 0, limit.x) - offset.x;\n    }\n\n    if (direction === Direction.Y) {\n      const totalHeight = size.container.height + (yAxis.thumb.realSize - yAxis.thumb.displaySize);\n\n      return clamp(clickPosition / totalHeight * size.content.height, 0, limit.y) - offset.y;\n    }\n\n    return 0;\n  }\n\n  function getTrackDirection(\n    elem: HTMLElement,\n  ): Direction | undefined {\n    if (isOneOf(elem, [xAxis.element, xAxis.thumb.element])) {\n      return Direction.X;\n    }\n\n    if (isOneOf(elem, [yAxis.element, yAxis.thumb.element])) {\n      return Direction.Y;\n    }\n\n    return void 0;\n  }\n\n  let isMouseDown: boolean;\n  let isMouseMoving: boolean;\n  let startOffsetToThumb: { x: number, y: number };\n  let trackDirection: Direction | undefined;\n  let containerRect: ClientRect;\n\n  addEvent(container, 'click', (evt: MouseEvent) => {\n    if (isMouseMoving || !isOneOf(evt.target, [xAxis.element, yAxis.element])) {\n      return;\n    }\n\n    const track = evt.target as HTMLElement;\n    const direction = getTrackDirection(track);\n    const rect = track.getBoundingClientRect();\n    const clickPos = getPosition(evt);\n\n    if (direction === Direction.X) {\n      const offsetOnTrack = clickPos.x - rect.left - xAxis.thumb.displaySize / 2;\n      scrollbar.setMomentum(calcMomentum(direction, offsetOnTrack), 0);\n    }\n\n    if (direction === Direction.Y) {\n      const offsetOnTrack = clickPos.y - rect.top - yAxis.thumb.displaySize / 2;\n      scrollbar.setMomentum(0, calcMomentum(direction, offsetOnTrack));\n    }\n  });\n\n  addEvent(container, 'mousedown', (evt: MouseEvent) => {\n    if (!isOneOf(evt.target, [xAxis.thumb.element, yAxis.thumb.element])) {\n      return;\n    }\n\n    isMouseDown = true;\n\n    const thumb = evt.target as HTMLElement;\n    const cursorPos = getPosition(evt);\n    const thumbRect = thumb.getBoundingClientRect();\n\n    trackDirection = getTrackDirection(thumb);\n\n    // pointer offset to thumb\n    startOffsetToThumb = {\n      x: cursorPos.x - thumbRect.left,\n      y: cursorPos.y - thumbRect.top,\n    };\n\n    // container bounding rectangle\n    containerRect = container.getBoundingClientRect();\n\n    // prevent selection, see:\n    // https://github.com/idiotWu/smooth-scrollbar/issues/48\n    setStyle(scrollbar.containerEl, {\n      '-user-select': 'none',\n    });\n  });\n\n  addEvent(window, 'mousemove', (evt) => {\n    if (!isMouseDown) return;\n\n    isMouseMoving = true;\n\n    const cursorPos = getPosition(evt);\n\n    if (trackDirection === Direction.X) {\n      // get percentage of pointer position in track\n      // then tranform to px\n      // don't need easing\n      const offsetOnTrack = cursorPos.x - startOffsetToThumb.x - containerRect.left;\n      scrollbar.setMomentum(calcMomentum(trackDirection, offsetOnTrack), 0);\n    }\n\n    if (trackDirection === Direction.Y) {\n      const offsetOnTrack = cursorPos.y - startOffsetToThumb.y - containerRect.top;\n      scrollbar.setMomentum(0, calcMomentum(trackDirection, offsetOnTrack));\n    }\n  });\n\n  addEvent(window, 'mouseup blur', () => {\n    isMouseDown = isMouseMoving = false;\n\n    setStyle(scrollbar.containerEl, {\n      '-user-select': '',\n    });\n  });\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}