{"version":3,"file":"draggable.mjs","sources":["../../../../../../packages/components/color-picker/src/draggable.ts"],"sourcesContent":["import { isClient } from '@vueuse/core'\r\nimport { on, off } from '@sgui-plus/utils/dom'\r\n\r\nlet isDragging = false\r\n\r\nexport declare interface IOptions {\r\n  drag?: (event: Event) => void\r\n  start?: (event: Event) => void\r\n  end?: (event: Event) => void\r\n}\r\n\r\nexport default function (element: HTMLElement, options: IOptions) {\r\n  if (!isClient) return\r\n\r\n  const moveFn = function (event: Event) {\r\n    options.drag?.(event)\r\n  }\r\n\r\n  const upFn = function (event: Event) {\r\n    off(document, 'mousemove', moveFn)\r\n    off(document, 'mouseup', upFn)\r\n    off(document, 'touchmove', moveFn)\r\n    off(document, 'touchend', upFn)\r\n    document.onselectstart = null\r\n    document.ondragstart = null\r\n\r\n    isDragging = false\r\n\r\n    options.end?.(event)\r\n  }\r\n\r\n  const downFn = function (event: Event) {\r\n    if (isDragging) return\r\n    event.preventDefault()\r\n    document.onselectstart = () => false\r\n    document.ondragstart = () => false\r\n    on(document, 'mousemove', moveFn)\r\n    on(document, 'mouseup', upFn)\r\n    on(document, 'touchmove', moveFn)\r\n    on(document, 'touchend', upFn)\r\n\r\n    isDragging = true\r\n\r\n    options.start?.(event)\r\n  }\r\n\r\n  on(element, 'mousedown', downFn)\r\n  on(element, 'touchstart', downFn)\r\n}\r\n"],"names":[],"mappings":";;;AAEA,IAAI,UAAU,GAAG,KAAK,CAAC;AACR,kBAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1C,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO;AACX,EAAE,MAAM,MAAM,GAAG,SAAS,KAAK,EAAE;AACjC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnE,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,SAAS,KAAK,EAAE;AAC/B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACvC,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACvC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,IAAI,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClE,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,SAAS,KAAK,EAAE;AACjC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,UAAU;AAClB,MAAM,OAAO;AACb,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,IAAI,QAAQ,CAAC,aAAa,GAAG,MAAM,KAAK,CAAC;AACzC,IAAI,QAAQ,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC;AACvC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACnC,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpE,GAAG,CAAC;AACJ,EAAE,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AACpC;;;;"}