mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-14 01:11:25 +08:00
22 lines
540 B
TypeScript
22 lines
540 B
TypeScript
import { addResizeListener, removeResizeListener } from '@element-plus/utils'
|
|
|
|
import type { DirectiveBinding, ObjectDirective } from 'vue'
|
|
|
|
declare interface ResizeEl extends HTMLElement {
|
|
_handleResize?: () => void
|
|
}
|
|
|
|
const Resize: ObjectDirective = {
|
|
beforeMount(el: ResizeEl, binding: DirectiveBinding) {
|
|
el._handleResize = () => {
|
|
el && binding.value?.(el)
|
|
}
|
|
addResizeListener(el, el._handleResize)
|
|
},
|
|
beforeUnmount(el: ResizeEl) {
|
|
removeResizeListener(el, el._handleResize)
|
|
},
|
|
}
|
|
|
|
export default Resize
|