element-plus
Version:
A Component Library for Vue 3
1 lines • 2.81 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":";;;AAKM,MAAA,aAAA,GAAgB,CAAC,KAA4B,KAAA;AACjD,EAAA,MAAM,QAAQ,GAAiB,EAAA,CAAA;AAC/B,EAAM,MAAA,MAAA,GAAS,IAAI,CAAC,CAAA,CAAA;AACpB,EAAM,MAAA,OAAA,GAAU,IAAI,CAAC,CAAA,CAAA;AAErB,EAAI,IAAA,cAAA,CAAA;AACJ,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,GAAiB,iBAAkB,CAAA,KAAA,EAAO,CAAC,CAAC,KAAK,CAAM,KAAA;AACrD,MAAA,MAAM,EAAE,KAAA,EAAO,MAAO,EAAA,GAAI,KAAM,CAAA,WAAA,CAAA;AAChC,MAAM,MAAA,EAAE,aAAa,YAAc,EAAA,UAAA,EAAY,eAC7C,GAAA,gBAAA,CAAiB,MAAM,MAAM,CAAA,CAAA;AAE/B,MAAA,MAAM,IAAO,GAAA,MAAA,CAAO,QAAS,CAAA,WAAW,CAAK,IAAA,CAAA,CAAA;AAC7C,MAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,QAAS,CAAA,YAAY,CAAK,IAAA,CAAA,CAAA;AAC/C,MAAA,MAAM,GAAM,GAAA,MAAA,CAAO,QAAS,CAAA,UAAU,CAAK,IAAA,CAAA,CAAA;AAC3C,MAAA,MAAM,MAAS,GAAA,MAAA,CAAO,QAAS,CAAA,aAAa,CAAK,IAAA,CAAA,CAAA;AAEjD,MAAO,MAAA,CAAA,KAAA,GAAQ,QAAQ,IAAO,GAAA,KAAA,CAAA;AAC9B,MAAQ,OAAA,CAAA,KAAA,GAAQ,SAAS,GAAM,GAAA,MAAA,CAAA;AAAA,KAChC,CAAE,CAAA,IAAA,CAAA;AAAA,GACJ,CAAA,CAAA;AAED,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,EAAA,CAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,KAAA,CAAA,CAAC,QAAQ,OAAO,CAAA,EAAG,CAAC,CAAC,KAAA,EAAO,MAAM,CAAM,KAAA;AA/BhD,IAAA,IAAA,EAAA,CAAA;AAgCI,IAAA,CAAA,EAAA,GAAA,KAAA,CAAM,aAAN,IAAiB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAAA,MACf,KAAA;AAAA,MACA,MAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,KAAO,EAAA,MAAA;AAAA,IACP,MAAQ,EAAA,OAAA;AAAA,GACV,CAAA;AACF;;;;"}