{"version":3,"file":"use-column-resize.mjs","sources":["../../../../../../../packages/components/table/src/hooks/use-column-resize.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { reactive, ref } from 'vue'\nimport { off, on } from '../../../../utils/dom'\n\nexport const useColumnResize = (thRefs: Ref<Record<string, HTMLElement>>) => {\n  const resizingProp = ref('')\n  const columnWidth = reactive<Record<string, number>>({})\n\n  const handleThMouseDown = (prop: string, ev: MouseEvent) => {\n    ev.preventDefault()\n\n    resizingProp.value = prop\n    on(window, 'mousemove', handleThMouseMoving)\n    on(window, 'mouseup', handleThMouseUp)\n    on(window, 'contextmenu', handleThMouseUp)\n  }\n\n  const handleThMouseUp = () => {\n    resizingProp.value = ''\n    off(window, 'mousemove', handleThMouseMoving)\n    off(window, 'mouseup', handleThMouseUp)\n    off(window, 'contextmenu', handleThMouseUp)\n  }\n\n  const handleThMouseMoving = (ev: MouseEvent) => {\n    const element = thRefs.value[resizingProp.value]\n    if (element) {\n      const { clientX } = ev\n      const { x } = element.getBoundingClientRect()\n      let width = Math.ceil(clientX - x)\n      if (width < 40) {\n        width = 40\n      }\n      columnWidth[resizingProp.value] = width\n    }\n  }\n\n  return {\n    resizingProp,\n    columnWidth,\n    handleThMouseDown,\n    handleThMouseUp\n  }\n}\n"],"names":[],"mappings":";;;AAIa,MAAA,eAAA,GAAkB,CAAC,MAA6C,KAAA;AAC3E,EAAM,MAAA,YAAA,GAAe,IAAI,EAAE,CAAA,CAAA;AAC3B,EAAM,MAAA,WAAA,GAAc,QAAiC,CAAA,EAAE,CAAA,CAAA;AAEvD,EAAM,MAAA,iBAAA,GAAoB,CAAC,IAAA,EAAc,EAAmB,KAAA;AAC1D,IAAA,EAAA,CAAG,cAAe,EAAA,CAAA;AAElB,IAAA,YAAA,CAAa,KAAQ,GAAA,IAAA,CAAA;AACrB,IAAG,EAAA,CAAA,MAAA,EAAQ,aAAa,mBAAmB,CAAA,CAAA;AAC3C,IAAG,EAAA,CAAA,MAAA,EAAQ,WAAW,eAAe,CAAA,CAAA;AACrC,IAAG,EAAA,CAAA,MAAA,EAAQ,eAAe,eAAe,CAAA,CAAA;AAAA,GAC3C,CAAA;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,YAAA,CAAa,KAAQ,GAAA,EAAA,CAAA;AACrB,IAAI,GAAA,CAAA,MAAA,EAAQ,aAAa,mBAAmB,CAAA,CAAA;AAC5C,IAAI,GAAA,CAAA,MAAA,EAAQ,WAAW,eAAe,CAAA,CAAA;AACtC,IAAI,GAAA,CAAA,MAAA,EAAQ,eAAe,eAAe,CAAA,CAAA;AAAA,GAC5C,CAAA;AAEA,EAAM,MAAA,mBAAA,GAAsB,CAAC,EAAmB,KAAA;AAC9C,IAAA,MAAM,OAAU,GAAA,MAAA,CAAO,KAAM,CAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAC/C,IAAA,IAAI,OAAS,EAAA;AACX,MAAM,MAAA,EAAE,SAAY,GAAA,EAAA,CAAA;AACpB,MAAA,MAAM,EAAE,CAAA,EAAM,GAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAA;AAC5C,MAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,IAAK,CAAA,OAAA,GAAU,CAAC,CAAA,CAAA;AACjC,MAAA,IAAI,QAAQ,EAAI,EAAA;AACd,QAAQ,KAAA,GAAA,EAAA,CAAA;AAAA,OACV;AACA,MAAY,WAAA,CAAA,YAAA,CAAa,KAAK,CAAI,GAAA,KAAA,CAAA;AAAA,KACpC;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,YAAA;AAAA,IACA,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF;;;;"}