qidian-shared 1.0.67 → 1.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,6 +2,8 @@ import type { App, DirectiveBinding } from 'vue';
|
|
|
2
2
|
interface ResizeElement extends HTMLElement {
|
|
3
3
|
_resizeObserver?: ResizeObserver;
|
|
4
4
|
_resizeHandler?: () => void;
|
|
5
|
+
_lastResizeW?: number;
|
|
6
|
+
_lastResizeH?: number;
|
|
5
7
|
}
|
|
6
8
|
export interface ResizeDirectiveBinding extends DirectiveBinding {
|
|
7
9
|
value: (entries: ResizeObserverEntry[]) => void;
|
|
@@ -5,6 +5,10 @@ const resizeDirective = {
|
|
|
5
5
|
throw new Error("[v-resize] 指令需要一个函数作为值");
|
|
6
6
|
}
|
|
7
7
|
el._resizeObserver = new ResizeObserver((entries) => {
|
|
8
|
+
const { width, height } = entries[0].contentRect;
|
|
9
|
+
if (width === el._lastResizeW && height === el._lastResizeH) return;
|
|
10
|
+
el._lastResizeW = width;
|
|
11
|
+
el._lastResizeH = height;
|
|
8
12
|
handler(entries);
|
|
9
13
|
});
|
|
10
14
|
el._resizeObserver.observe(el);
|
|
@@ -20,6 +24,8 @@ const resizeDirective = {
|
|
|
20
24
|
el._resizeObserver.disconnect();
|
|
21
25
|
el._resizeObserver = void 0;
|
|
22
26
|
}
|
|
27
|
+
el._lastResizeW = void 0;
|
|
28
|
+
el._lastResizeH = void 0;
|
|
23
29
|
el._resizeHandler = void 0;
|
|
24
30
|
}
|
|
25
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resize.mjs","sources":["../../src/directive/resize.ts"],"sourcesContent":["import type { App, DirectiveBinding } from 'vue'\n\ninterface ResizeElement extends HTMLElement {\n _resizeObserver?: ResizeObserver\n _resizeHandler?: () => void\n}\n\nexport interface ResizeDirectiveBinding extends DirectiveBinding {\n value: (entries: ResizeObserverEntry[]) => void\n}\n\nexport const resizeDirective = {\n mounted(el: ResizeElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n if (typeof handler !== 'function') {\n throw new Error('[v-resize] 指令需要一个函数作为值')\n }\n\n el._resizeObserver = new ResizeObserver((entries) => {\n handler(entries)\n })\n\n el._resizeObserver.observe(el)\n },\n\n updated(el: ResizeElement, binding: ResizeDirectiveBinding) {\n if (el._resizeObserver && typeof binding.value === 'function') {\n el._resizeObserver.disconnect()\n el._resizeObserver.observe(el)\n }\n },\n\n unmounted(el: ResizeElement) {\n if (el._resizeObserver) {\n el._resizeObserver.disconnect()\n el._resizeObserver = undefined\n }\n el._resizeHandler = undefined\n }\n}\n\nexport const resize = {\n install(app: App) {\n app.directive('resize', resizeDirective)\n }\n}\n\nexport default resize\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resize.mjs","sources":["../../src/directive/resize.ts"],"sourcesContent":["import type { App, DirectiveBinding } from 'vue'\n\ninterface ResizeElement extends HTMLElement {\n _resizeObserver?: ResizeObserver\n _resizeHandler?: () => void\n _lastResizeW?: number\n _lastResizeH?: number\n}\n\nexport interface ResizeDirectiveBinding extends DirectiveBinding {\n value: (entries: ResizeObserverEntry[]) => void\n}\n\nexport const resizeDirective = {\n mounted(el: ResizeElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n if (typeof handler !== 'function') {\n throw new Error('[v-resize] 指令需要一个函数作为值')\n }\n\n el._resizeObserver = new ResizeObserver((entries) => {\n const { width, height } = entries[0].contentRect\n if (width === el._lastResizeW && height === el._lastResizeH) return\n el._lastResizeW = width\n el._lastResizeH = height\n handler(entries)\n })\n\n el._resizeObserver.observe(el)\n },\n\n updated(el: ResizeElement, binding: ResizeDirectiveBinding) {\n if (el._resizeObserver && typeof binding.value === 'function') {\n el._resizeObserver.disconnect()\n el._resizeObserver.observe(el)\n }\n },\n\n unmounted(el: ResizeElement) {\n if (el._resizeObserver) {\n el._resizeObserver.disconnect()\n el._resizeObserver = undefined\n }\n el._lastResizeW = undefined\n el._lastResizeH = undefined\n el._resizeHandler = undefined\n }\n}\n\nexport const resize = {\n install(app: App) {\n app.directive('resize', resizeDirective)\n }\n}\n\nexport default resize\n"],"names":[],"mappings":"AAaO,MAAM,kBAAkB;AAAA,EAC7B,QAAQ,IAAmB,SAAiC;AAC1D,UAAM,UAAU,QAAQ;AACxB,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,OAAG,kBAAkB,IAAI,eAAe,CAAC,YAAY;AACnD,YAAM,EAAE,OAAO,OAAA,IAAW,QAAQ,CAAC,EAAE;AACrC,UAAI,UAAU,GAAG,gBAAgB,WAAW,GAAG,aAAc;AAC7D,SAAG,eAAe;AAClB,SAAG,eAAe;AAClB,cAAQ,OAAO;AAAA,IACjB,CAAC;AAED,OAAG,gBAAgB,QAAQ,EAAE;AAAA,EAC/B;AAAA,EAEA,QAAQ,IAAmB,SAAiC;AAC1D,QAAI,GAAG,mBAAmB,OAAO,QAAQ,UAAU,YAAY;AAC7D,SAAG,gBAAgB,WAAA;AACnB,SAAG,gBAAgB,QAAQ,EAAE;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,UAAU,IAAmB;AAC3B,QAAI,GAAG,iBAAiB;AACtB,SAAG,gBAAgB,WAAA;AACnB,SAAG,kBAAkB;AAAA,IACvB;AACA,OAAG,eAAe;AAClB,OAAG,eAAe;AAClB,OAAG,iBAAiB;AAAA,EACtB;AACF;AAEO,MAAM,SAAS;AAAA,EACpB,QAAQ,KAAU;AAChB,QAAI,UAAU,UAAU,eAAe;AAAA,EACzC;AACF;"}
|