{"version":3,"file":"draggable.mjs","sources":["../../../../../packages/components/color-picker/src/draggable.ts"],"sourcesContent":["import { isClient } from '@vueuse/core'\nimport { on, off } from '@element-ultra/utils'\n\nlet isDragging = false\n\nexport declare interface IOptions {\n  drag?: (event: Event) => void\n  start?: (event: Event) => void\n  end?: (event: Event) => void\n}\n\nexport default function (element: HTMLElement, options: IOptions) {\n  if (!isClient) return\n\n  const moveFn = function (event: Event) {\n    options.drag?.(event)\n  }\n\n  const upFn = function (event: Event) {\n    off(document, 'mousemove', moveFn)\n    off(document, 'mouseup', upFn)\n    off(document, 'touchmove', moveFn)\n    off(document, '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: Event) {\n    if (isDragging) return\n    event.preventDefault()\n    document.onselectstart = () => false\n    document.ondragstart = () => false\n    on(document, 'mousemove', moveFn)\n    on(document, 'mouseup', upFn)\n    on(document, 'touchmove', moveFn)\n    on(document, 'touchend', upFn)\n\n    isDragging = true\n\n    options.start?.(event)\n  }\n\n  on(element, 'mousedown', downFn)\n  on(element, 'touchstart', downFn)\n}\n"],"names":[],"mappings":";;;;AAGA,IAAI,UAAa,GAAA,KAAA,CAAA;AAQjB,kBAAA,CAAyB,SAAsB,OAAmB,EAAA;AAChE,EAAA,IAAI,CAAC,QAAA;AAAU,IAAA,OAAA;AAEf,EAAM,MAAA,MAAA,GAAS,SAAU,KAAc,EAAA;AAdzC,IAAA,IAAA,EAAA,CAAA;AAeI,IAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,SAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GACjB,CAAA;AAEA,EAAM,MAAA,IAAA,GAAO,SAAU,KAAc,EAAA;AAlBvC,IAAA,IAAA,EAAA,CAAA;AAmBI,IAAI,GAAA,CAAA,QAAA,EAAU,aAAa,MAAM,CAAA,CAAA;AACjC,IAAI,GAAA,CAAA,QAAA,EAAU,WAAW,IAAI,CAAA,CAAA;AAC7B,IAAI,GAAA,CAAA,QAAA,EAAU,aAAa,MAAM,CAAA,CAAA;AACjC,IAAI,GAAA,CAAA,QAAA,EAAU,YAAY,IAAI,CAAA,CAAA;AAC9B,IAAA,QAAA,CAAS,aAAgB,GAAA,IAAA,CAAA;AACzB,IAAA,QAAA,CAAS,WAAc,GAAA,IAAA,CAAA;AAEvB,IAAa,UAAA,GAAA,KAAA,CAAA;AAEb,IAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,QAAR,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAM,MAAA,MAAA,GAAS,SAAU,KAAc,EAAA;AA/BzC,IAAA,IAAA,EAAA,CAAA;AAgCI,IAAI,IAAA,UAAA;AAAY,MAAA,OAAA;AAChB,IAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,IAAA,QAAA,CAAS,gBAAgB,MAAM,KAAA,CAAA;AAC/B,IAAA,QAAA,CAAS,cAAc,MAAM,KAAA,CAAA;AAC7B,IAAG,EAAA,CAAA,QAAA,EAAU,aAAa,MAAM,CAAA,CAAA;AAChC,IAAG,EAAA,CAAA,QAAA,EAAU,WAAW,IAAI,CAAA,CAAA;AAC5B,IAAG,EAAA,CAAA,QAAA,EAAU,aAAa,MAAM,CAAA,CAAA;AAChC,IAAG,EAAA,CAAA,QAAA,EAAU,YAAY,IAAI,CAAA,CAAA;AAE7B,IAAa,UAAA,GAAA,IAAA,CAAA;AAEb,IAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAgB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAG,EAAA,CAAA,OAAA,EAAS,aAAa,MAAM,CAAA,CAAA;AAC/B,EAAG,EAAA,CAAA,OAAA,EAAS,cAAc,MAAM,CAAA,CAAA;AAClC;;;;"}