element-plus
Version:
A Component Library for Vue 3
1 lines • 2.71 kB
Source Map (JSON)
{"version":3,"file":"use-auto-resize.mjs","sources":["../../../../../../../packages/components/table-v2/src/composables/use-auto-resize.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\n\nimport type { AutoResizerProps } from '../auto-resizer'\n\nconst useAutoResize = (props: AutoResizerProps) => {\n const sizer = ref<HTMLElement>()\n const width$ = ref(0)\n const height$ = ref(0)\n\n let resizerStopper: ReturnType<typeof useResizeObserver>['stop']\n onMounted(() => {\n resizerStopper = useResizeObserver(sizer, ([entry]) => {\n const { width, height } = entry.contentRect\n const { paddingLeft, paddingRight, paddingTop, paddingBottom } =\n getComputedStyle(entry.target)\n\n const left = Number.parseInt(paddingLeft) || 0\n const right = Number.parseInt(paddingRight) || 0\n const top = Number.parseInt(paddingTop) || 0\n const bottom = Number.parseInt(paddingBottom) || 0\n\n width$.value = width - left - right\n height$.value = height - top - bottom\n }).stop\n })\n\n onBeforeUnmount(() => {\n resizerStopper?.()\n })\n\n watch([width$, height$], ([width, height]) => {\n props.onResize?.({\n width,\n height,\n })\n })\n\n return {\n sizer,\n width: width$,\n height: height$,\n }\n}\n\nexport { useAutoResize }\n"],"names":[],"mappings":";;;AAKA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA4B;AACjD,EAAA,MAAM,QAAQ,GAAA,EAAiB;AAC/B,EAAA,MAAM,MAAA,GAAS,IAAI,CAAC,CAAA;AACpB,EAAA,MAAM,OAAA,GAAU,IAAI,CAAC,CAAA;AAErB,EAAA,IAAI,cAAA;AACJ,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,GAAiB,iBAAA,CAAkB,KAAA,EAAO,CAAC,CAAC,KAAK,CAAA,KAAM;AACrD,MAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,KAAA,CAAM,WAAA;AAChC,MAAA,MAAM,EAAE,aAAa,YAAA,EAAc,UAAA,EAAY,eAAc,GAC3D,gBAAA,CAAiB,MAAM,MAAM,CAAA;AAE/B,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA,IAAK,CAAA;AAC7C,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA,IAAK,CAAA;AAC/C,MAAA,MAAM,GAAA,GAAM,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA,IAAK,CAAA;AAC3C,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,QAAA,CAAS,aAAa,CAAA,IAAK,CAAA;AAEjD,MAAA,MAAA,CAAO,KAAA,GAAQ,QAAQ,IAAA,GAAO,KAAA;AAC9B,MAAA,OAAA,CAAQ,KAAA,GAAQ,SAAS,GAAA,GAAM,MAAA;AAAA,IACjC,CAAC,CAAA,CAAE,IAAA;AAAA,EACL,CAAC,CAAA;AAED,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,EAAA;AAAA,EACF,CAAC,CAAA;AAED,EAAA,KAAA,CAAM,CAAC,QAAQ,OAAO,CAAA,EAAG,CAAC,CAAC,KAAA,EAAO,MAAM,CAAA,KAAM;AA/BhD,IAAA,IAAA,EAAA;AAgCI,IAAA,CAAA,EAAA,GAAA,KAAA,CAAM,aAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAiB;AAAA,MACf,KAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AACF;;;;"}