UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.6 kB
{"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;;;;"}