{"version":3,"file":"draggable.mjs","names":[],"sources":["../../../../../../../packages/components/color-picker-panel/src/utils/draggable.ts"],"sourcesContent":["import { isClient } from '@element-plus/utils'\n\nlet isDragging = false\n\nexport interface DraggableOptions {\n  drag?: (event: MouseEvent | TouchEvent) => void\n  start?: (event: MouseEvent | TouchEvent) => void\n  end?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport function draggable(element: HTMLElement, options: DraggableOptions) {\n  if (!isClient) return\n\n  const moveFn = function (event: MouseEvent | TouchEvent) {\n    options.drag?.(event)\n  }\n\n  const upFn = function (event: MouseEvent | TouchEvent) {\n    document.removeEventListener('mousemove', moveFn)\n    document.removeEventListener('mouseup', upFn)\n    document.removeEventListener('touchmove', moveFn)\n    document.removeEventListener('touchend', upFn)\n    document.onselectstart = null\n    document.ondragstart = null\n\n    isDragging = false\n\n    options.end?.(event)\n  }\n\n  const downFn = function (event: MouseEvent | TouchEvent) {\n    if (isDragging) return\n    document.onselectstart = () => false\n    document.ondragstart = () => false\n    document.addEventListener('mousemove', moveFn)\n    document.addEventListener('mouseup', upFn)\n    document.addEventListener('touchmove', moveFn)\n    document.addEventListener('touchend', upFn)\n\n    isDragging = true\n\n    options.start?.(event)\n  }\n\n  element.addEventListener('mousedown', downFn)\n  element.addEventListener('touchstart', downFn, { passive: false })\n}\n"],"mappings":";;AAEA,IAAI,aAAa;AAQjB,SAAgB,UAAU,SAAsB,SAA2B;CACzE,IAAI,CAAC,UAAU;CAEf,MAAM,SAAS,SAAU,OAAgC;EACvD,QAAQ,OAAO,KAAK;CACtB;CAEA,MAAM,OAAO,SAAU,OAAgC;EACrD,SAAS,oBAAoB,aAAa,MAAM;EAChD,SAAS,oBAAoB,WAAW,IAAI;EAC5C,SAAS,oBAAoB,aAAa,MAAM;EAChD,SAAS,oBAAoB,YAAY,IAAI;EAC7C,SAAS,gBAAgB;EACzB,SAAS,cAAc;EAEvB,aAAa;EAEb,QAAQ,MAAM,KAAK;CACrB;CAEA,MAAM,SAAS,SAAU,OAAgC;EACvD,IAAI,YAAY;EAChB,SAAS,sBAAsB;EAC/B,SAAS,oBAAoB;EAC7B,SAAS,iBAAiB,aAAa,MAAM;EAC7C,SAAS,iBAAiB,WAAW,IAAI;EACzC,SAAS,iBAAiB,aAAa,MAAM;EAC7C,SAAS,iBAAiB,YAAY,IAAI;EAE1C,aAAa;EAEb,QAAQ,QAAQ,KAAK;CACvB;CAEA,QAAQ,iBAAiB,aAAa,MAAM;CAC5C,QAAQ,iBAAiB,cAAc,QAAQ,EAAE,SAAS,MAAM,CAAC;AACnE"}