UNPKG

@open-data-v/base

Version:

OpenDataV 公共基础包

1 lines 1.64 kB
{"version":3,"file":"index.umd.cjs","sources":["../../../src/directive/resize/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue'\n\nconst RESIZE_OBSERVE = 'RESIZE_OBSERVE'\n\ninterface CustomResizeObserverCallback {\n (entry: ResizeObserverEntry): void\n}\n\nconst resizeDOM = (el: HTMLElement, binding: DirectiveBinding) => {\n const resizeHandler: CustomResizeObserverCallback = binding.value\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n entries.length > 0 && resizeHandler(entries[0])\n })\n resizeObserver.observe(el)\n return resizeObserver\n}\n\nconst ResizeDomDirective: Directive = {\n mounted(el: HTMLElement, binding) {\n el[RESIZE_OBSERVE] = resizeDOM(el, binding)\n },\n\n unmounted(el: HTMLElement) {\n if (el && el[RESIZE_OBSERVE]) {\n const resizeObserver: ResizeObserver = el[RESIZE_OBSERVE]\n resizeObserver.unobserve(el)\n resizeObserver.disconnect()\n delete el[RESIZE_OBSERVE]\n }\n }\n}\n\nexport default ResizeDomDirective\n"],"names":["RESIZE_OBSERVE","resizeDOM","el","binding","resizeHandler","resizeObserver","entries","ResizeDomDirective"],"mappings":"4GAEA,MAAMA,EAAiB,iBAMjBC,EAAY,CAACC,EAAiBC,IAA8B,CAChE,MAAMC,EAA8CD,EAAQ,MACtDE,EAAiB,IAAI,eAAgBC,GAAmC,CAC5EA,EAAQ,OAAS,GAAKF,EAAcE,EAAQ,CAAC,CAAC,CAAA,CAC/C,EACD,OAAAD,EAAe,QAAQH,CAAE,EAClBG,CACT,EAEME,EAAgC,CACpC,QAAQL,EAAiBC,EAAS,CAChCD,EAAGF,CAAc,EAAIC,EAAUC,EAAIC,CAAO,CAC5C,EAEA,UAAUD,EAAiB,CACrB,GAAAA,GAAMA,EAAGF,CAAc,EAAG,CACtB,MAAAK,EAAiCH,EAAGF,CAAc,EACxDK,EAAe,UAAUH,CAAE,EAC3BG,EAAe,WAAW,EAC1B,OAAOH,EAAGF,CAAc,CAAA,CAC1B,CAEJ"}