{"version":3,"file":"draggable.mjs","sources":["../../../../../../packages/components/color-picker/src/draggable.ts"],"sourcesContent":["import isServer from '@element-plus/utils/isServer'\nimport { on, off } from '@element-plus/utils/dom'\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 (isServer) 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    document.onselectstart = null\n    document.ondragstart = null\n\n    isDragging = false\n\n    options.end?.(event)\n  }\n\n  on(element, 'mousedown', function (event) {\n    if (isDragging) return\n    document.onselectstart = () => false\n    document.ondragstart = () => false\n    on(document, 'mousemove', moveFn)\n    on(document, 'mouseup', upFn)\n\n    isDragging = true\n\n    options.start?.(event)\n  })\n}\n"],"names":[],"mappings":";;;AAGA,IAAI,aAAa;mBAQQ,SAAsB,SAAmB;AAChE,MAAI;AAAU;AAEd,QAAM,SAAS,SAAU,OAAc;AAdzC;AAeI,kBAAQ,SAAR,iCAAe;AAAA;AAGjB,QAAM,OAAO,SAAU,OAAc;AAlBvC;AAmBI,QAAI,UAAU,aAAa;AAC3B,QAAI,UAAU,WAAW;AACzB,aAAS,gBAAgB;AACzB,aAAS,cAAc;AAEvB,iBAAa;AAEb,kBAAQ,QAAR,iCAAc;AAAA;AAGhB,KAAG,SAAS,aAAa,SAAU,OAAO;AA7B5C;AA8BI,QAAI;AAAY;AAChB,aAAS,gBAAgB,MAAM;AAC/B,aAAS,cAAc,MAAM;AAC7B,OAAG,UAAU,aAAa;AAC1B,OAAG,UAAU,WAAW;AAExB,iBAAa;AAEb,kBAAQ,UAAR,iCAAgB;AAAA;AAAA;;;;"}