@v-c/resize-observer 0.0.3 → 1.0.0

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.
@@ -1,44 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const vue = require("vue");
1
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
2
+ let vue = require("vue");
4
3
  const CollectionContext = Symbol("CollectionContext");
5
- const Collection = /* @__PURE__ */ vue.defineComponent({
6
- props: {
7
- onBatchResize: {
8
- type: Function,
9
- required: false,
10
- default: void 0
11
- }
12
- },
13
- setup(props, {
14
- slots
15
- }) {
16
- const resizeIdRef = vue.shallowRef(0);
17
- const resizeInfosRef = vue.shallowRef([]);
18
- const onCollectionResize = vue.inject(CollectionContext, () => {
19
- });
20
- const onResize = (size, element, data) => {
21
- const resizeId = resizeIdRef.value + 1;
22
- resizeIdRef.value = resizeId;
23
- resizeInfosRef.value.push({
24
- size,
25
- element,
26
- data
27
- });
28
- Promise.resolve().then(() => {
29
- if (resizeIdRef.value === resizeId) {
30
- const resizeInfos = resizeInfosRef.value;
31
- resizeInfosRef.value = [];
32
- props.onBatchResize?.(resizeInfos);
33
- }
34
- });
35
- onCollectionResize?.(size, element, data);
36
- };
37
- vue.provide(CollectionContext, onResize);
38
- return () => {
39
- return slots.default?.();
40
- };
41
- }
4
+ const Collection = /* @__PURE__ */ (0, vue.defineComponent)({
5
+ props: { onBatchResize: {
6
+ type: Function,
7
+ required: false,
8
+ default: void 0
9
+ } },
10
+ setup(props, { slots }) {
11
+ const resizeIdRef = (0, vue.shallowRef)(0);
12
+ const resizeInfosRef = (0, vue.shallowRef)([]);
13
+ const onCollectionResize = (0, vue.inject)(CollectionContext, () => {});
14
+ const onResize = (size, element, data) => {
15
+ const resizeId = resizeIdRef.value + 1;
16
+ resizeIdRef.value = resizeId;
17
+ resizeInfosRef.value.push({
18
+ size,
19
+ element,
20
+ data
21
+ });
22
+ Promise.resolve().then(() => {
23
+ if (resizeIdRef.value === resizeId) {
24
+ const resizeInfos = resizeInfosRef.value;
25
+ resizeInfosRef.value = [];
26
+ props.onBatchResize?.(resizeInfos);
27
+ }
28
+ });
29
+ onCollectionResize?.(size, element, data);
30
+ };
31
+ (0, vue.provide)(CollectionContext, onResize);
32
+ return () => {
33
+ return slots.default?.();
34
+ };
35
+ }
42
36
  });
43
37
  exports.Collection = Collection;
44
38
  exports.CollectionContext = CollectionContext;
@@ -1,44 +1,36 @@
1
- import { defineComponent, shallowRef, inject, provide } from "vue";
1
+ import { defineComponent, inject, provide, shallowRef } from "vue";
2
2
  const CollectionContext = Symbol("CollectionContext");
3
3
  const Collection = /* @__PURE__ */ defineComponent({
4
- props: {
5
- onBatchResize: {
6
- type: Function,
7
- required: false,
8
- default: void 0
9
- }
10
- },
11
- setup(props, {
12
- slots
13
- }) {
14
- const resizeIdRef = shallowRef(0);
15
- const resizeInfosRef = shallowRef([]);
16
- const onCollectionResize = inject(CollectionContext, () => {
17
- });
18
- const onResize = (size, element, data) => {
19
- const resizeId = resizeIdRef.value + 1;
20
- resizeIdRef.value = resizeId;
21
- resizeInfosRef.value.push({
22
- size,
23
- element,
24
- data
25
- });
26
- Promise.resolve().then(() => {
27
- if (resizeIdRef.value === resizeId) {
28
- const resizeInfos = resizeInfosRef.value;
29
- resizeInfosRef.value = [];
30
- props.onBatchResize?.(resizeInfos);
31
- }
32
- });
33
- onCollectionResize?.(size, element, data);
34
- };
35
- provide(CollectionContext, onResize);
36
- return () => {
37
- return slots.default?.();
38
- };
39
- }
4
+ props: { onBatchResize: {
5
+ type: Function,
6
+ required: false,
7
+ default: void 0
8
+ } },
9
+ setup(props, { slots }) {
10
+ const resizeIdRef = shallowRef(0);
11
+ const resizeInfosRef = shallowRef([]);
12
+ const onCollectionResize = inject(CollectionContext, () => {});
13
+ const onResize = (size, element, data) => {
14
+ const resizeId = resizeIdRef.value + 1;
15
+ resizeIdRef.value = resizeId;
16
+ resizeInfosRef.value.push({
17
+ size,
18
+ element,
19
+ data
20
+ });
21
+ Promise.resolve().then(() => {
22
+ if (resizeIdRef.value === resizeId) {
23
+ const resizeInfos = resizeInfosRef.value;
24
+ resizeInfosRef.value = [];
25
+ props.onBatchResize?.(resizeInfos);
26
+ }
27
+ });
28
+ onCollectionResize?.(size, element, data);
29
+ };
30
+ provide(CollectionContext, onResize);
31
+ return () => {
32
+ return slots.default?.();
33
+ };
34
+ }
40
35
  });
41
- export {
42
- Collection,
43
- CollectionContext
44
- };
36
+ export { Collection, CollectionContext };
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const vue = require("vue");
4
- const DomWrapper = /* @__PURE__ */ vue.defineComponent({
5
- setup(_, {
6
- slots
7
- }) {
8
- return () => slots.default?.();
9
- }
10
- });
11
- exports.default = DomWrapper;
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const require_rolldown_runtime = require("../_virtual/rolldown_runtime.cjs");
3
+ let vue = require("vue");
4
+ var DomWrapper_default = /* @__PURE__ */ (0, vue.defineComponent)({ setup(_, { slots }) {
5
+ return () => slots.default?.();
6
+ } });
7
+ exports.default = DomWrapper_default;
@@ -1,11 +1,5 @@
1
1
  import { defineComponent } from "vue";
2
- const DomWrapper = /* @__PURE__ */ defineComponent({
3
- setup(_, {
4
- slots
5
- }) {
6
- return () => slots.default?.();
7
- }
8
- });
9
- export {
10
- DomWrapper as default
11
- };
2
+ var DomWrapper_default = /* @__PURE__ */ defineComponent({ setup(_, { slots }) {
3
+ return () => slots.default?.();
4
+ } });
5
+ export { DomWrapper_default as default };
@@ -1,105 +1,94 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const vue = require("vue");
4
- const findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
5
- const Collection = require("../Collection.cjs");
6
- const observerUtil = require("../utils/observerUtil.cjs");
7
- const DomWrapper = require("./DomWrapper.cjs");
8
- const SingleObserver = /* @__PURE__ */ vue.defineComponent({
9
- props: {
10
- data: {
11
- type: null,
12
- required: false,
13
- default: void 0
14
- },
15
- disabled: {
16
- type: Boolean,
17
- required: false,
18
- default: void 0
19
- },
20
- onResize: {
21
- type: Function,
22
- required: false,
23
- default: void 0
24
- }
25
- },
26
- name: "SingleObserver",
27
- inheritAttrs: false,
28
- setup(props, {
29
- expose,
30
- slots
31
- }) {
32
- const elementRef = vue.shallowRef();
33
- const wrapperRef = vue.shallowRef();
34
- const onCollectionResize = vue.inject(Collection.CollectionContext, () => {
35
- });
36
- const sizeRef = vue.shallowRef({
37
- width: -1,
38
- height: -1,
39
- offsetWidth: -1,
40
- offsetHeight: -1
41
- });
42
- const getDom = () => {
43
- const dom = findDOMNode(elementRef) || (elementRef.value && typeof elementRef.value === "object" ? findDOMNode(elementRef.value.nativeElement) : null) || findDOMNode(wrapperRef.value);
44
- if (dom && dom.nodeType === 3 && dom.nextElementSibling) return dom.nextElementSibling;
45
- return dom;
46
- };
47
- const onInternalResize = (target) => {
48
- const {
49
- onResize,
50
- data
51
- } = props;
52
- const {
53
- width,
54
- height
55
- } = target.getBoundingClientRect();
56
- const {
57
- offsetHeight,
58
- offsetWidth
59
- } = target;
60
- const fixedWidth = Math.floor(width);
61
- const fixedHeight = Math.floor(height);
62
- if (sizeRef.value.width !== fixedWidth || sizeRef.value.height !== fixedHeight || sizeRef.value.offsetWidth !== offsetWidth || sizeRef.value.offsetHeight !== offsetHeight) {
63
- const size = {
64
- width: fixedWidth,
65
- height: fixedHeight,
66
- offsetWidth,
67
- offsetHeight
68
- };
69
- sizeRef.value = size;
70
- const mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
71
- const mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
72
- const sizeInfo = {
73
- ...size,
74
- offsetWidth: mergedOffsetWidth,
75
- offsetHeight: mergedOffsetHeight
76
- };
77
- onCollectionResize?.(sizeInfo, target, data);
78
- if (onResize) {
79
- Promise.resolve().then(() => {
80
- onResize(sizeInfo, target);
81
- });
82
- }
83
- }
84
- };
85
- let currentElement;
86
- vue.onMounted(() => {
87
- currentElement = getDom();
88
- if (currentElement && !props.disabled) observerUtil.observe(currentElement, onInternalResize);
89
- });
90
- vue.onBeforeUnmount(() => {
91
- if (currentElement) observerUtil.unobserve(currentElement, onInternalResize);
92
- });
93
- expose({
94
- getDom
95
- });
96
- return () => {
97
- return vue.createVNode(DomWrapper.default, {
98
- "ref": wrapperRef
99
- }, {
100
- default: () => [slots.default?.()]
101
- });
102
- };
103
- }
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const require_rolldown_runtime = require("../_virtual/rolldown_runtime.cjs");
3
+ const require_Collection = require("../Collection.cjs");
4
+ const require_observerUtil = require("../utils/observerUtil.cjs");
5
+ const require_DomWrapper = require("./DomWrapper.cjs");
6
+ let vue = require("vue");
7
+ let __v_c_util_dist_Dom_findDOMNode = require("@v-c/util/dist/Dom/findDOMNode");
8
+ __v_c_util_dist_Dom_findDOMNode = require_rolldown_runtime.__toESM(__v_c_util_dist_Dom_findDOMNode);
9
+ let __v_c_util_dist_props_util = require("@v-c/util/dist/props-util");
10
+ var SingleObserver = /* @__PURE__ */ (0, vue.defineComponent)({
11
+ props: {
12
+ data: {
13
+ type: null,
14
+ required: false,
15
+ default: void 0
16
+ },
17
+ disabled: {
18
+ type: Boolean,
19
+ required: false,
20
+ default: void 0
21
+ },
22
+ onResize: {
23
+ type: Function,
24
+ required: false,
25
+ default: void 0
26
+ }
27
+ },
28
+ name: "SingleObserver",
29
+ inheritAttrs: false,
30
+ setup(props, { expose, slots }) {
31
+ const elementRef = (0, vue.shallowRef)();
32
+ const wrapperRef = (0, vue.shallowRef)();
33
+ const setWrapperRef = (el) => {
34
+ if (el?.elementEl && typeof el.elementEl === "object") elementRef.value = el.elementEl;
35
+ else if (el?.__$el && typeof el.__$el === "object") elementRef.value = el.__$el;
36
+ else wrapperRef.value = el;
37
+ };
38
+ const onCollectionResize = (0, vue.inject)(require_Collection.CollectionContext, () => {});
39
+ const sizeRef = (0, vue.shallowRef)({
40
+ width: -1,
41
+ height: -1,
42
+ offsetWidth: -1,
43
+ offsetHeight: -1
44
+ });
45
+ const getDom = () => {
46
+ const dom = (0, __v_c_util_dist_Dom_findDOMNode.default)(elementRef) || (elementRef.value && typeof elementRef.value === "object" ? (0, __v_c_util_dist_Dom_findDOMNode.default)(elementRef.value.nativeElement) : null) || (0, __v_c_util_dist_Dom_findDOMNode.default)(wrapperRef.value);
47
+ if (dom && dom.nodeType === 3 && dom.nextElementSibling) return dom.nextElementSibling;
48
+ return dom;
49
+ };
50
+ const onInternalResize = (target) => {
51
+ const { onResize, data } = props;
52
+ const { width, height } = target.getBoundingClientRect();
53
+ const { offsetHeight, offsetWidth } = target;
54
+ const fixedWidth = Math.floor(width);
55
+ const fixedHeight = Math.floor(height);
56
+ if (sizeRef.value.width !== fixedWidth || sizeRef.value.height !== fixedHeight || sizeRef.value.offsetWidth !== offsetWidth || sizeRef.value.offsetHeight !== offsetHeight) {
57
+ const size = {
58
+ width: fixedWidth,
59
+ height: fixedHeight,
60
+ offsetWidth,
61
+ offsetHeight
62
+ };
63
+ sizeRef.value = size;
64
+ const mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
65
+ const mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
66
+ const sizeInfo = {
67
+ ...size,
68
+ offsetWidth: mergedOffsetWidth,
69
+ offsetHeight: mergedOffsetHeight
70
+ };
71
+ onCollectionResize?.(sizeInfo, target, data);
72
+ if (onResize) Promise.resolve().then(() => {
73
+ onResize(sizeInfo, target);
74
+ });
75
+ }
76
+ };
77
+ let currentElement;
78
+ (0, vue.onMounted)(() => {
79
+ currentElement = getDom();
80
+ if (currentElement && !props.disabled) require_observerUtil.observe(currentElement, onInternalResize);
81
+ });
82
+ (0, vue.onBeforeUnmount)(() => {
83
+ if (currentElement) require_observerUtil.unobserve(currentElement, onInternalResize);
84
+ });
85
+ expose({ getDom });
86
+ return () => {
87
+ const children = (0, __v_c_util_dist_props_util.filterEmpty)(slots?.default?.());
88
+ if (children.length === 1 && (0, vue.isVNode)(children[0])) return (0, vue.createVNode)(children[0], { ref: setWrapperRef });
89
+ return (0, vue.createVNode)(require_DomWrapper.default, { "ref": wrapperRef }, { default: () => [slots.default?.()] });
90
+ };
91
+ }
104
92
  });
105
- exports.default = SingleObserver;
93
+ var SingleObserver_default = SingleObserver;
94
+ exports.default = SingleObserver_default;
@@ -1,105 +1,90 @@
1
- import { defineComponent, shallowRef, inject, onMounted, onBeforeUnmount, createVNode } from "vue";
2
- import findDOMNode from "@v-c/util/dist/Dom/findDOMNode";
3
1
  import { CollectionContext } from "../Collection.js";
4
2
  import { observe, unobserve } from "../utils/observerUtil.js";
5
- import DomWrapper from "./DomWrapper.js";
6
- const SingleObserver = /* @__PURE__ */ defineComponent({
7
- props: {
8
- data: {
9
- type: null,
10
- required: false,
11
- default: void 0
12
- },
13
- disabled: {
14
- type: Boolean,
15
- required: false,
16
- default: void 0
17
- },
18
- onResize: {
19
- type: Function,
20
- required: false,
21
- default: void 0
22
- }
23
- },
24
- name: "SingleObserver",
25
- inheritAttrs: false,
26
- setup(props, {
27
- expose,
28
- slots
29
- }) {
30
- const elementRef = shallowRef();
31
- const wrapperRef = shallowRef();
32
- const onCollectionResize = inject(CollectionContext, () => {
33
- });
34
- const sizeRef = shallowRef({
35
- width: -1,
36
- height: -1,
37
- offsetWidth: -1,
38
- offsetHeight: -1
39
- });
40
- const getDom = () => {
41
- const dom = findDOMNode(elementRef) || (elementRef.value && typeof elementRef.value === "object" ? findDOMNode(elementRef.value.nativeElement) : null) || findDOMNode(wrapperRef.value);
42
- if (dom && dom.nodeType === 3 && dom.nextElementSibling) return dom.nextElementSibling;
43
- return dom;
44
- };
45
- const onInternalResize = (target) => {
46
- const {
47
- onResize,
48
- data
49
- } = props;
50
- const {
51
- width,
52
- height
53
- } = target.getBoundingClientRect();
54
- const {
55
- offsetHeight,
56
- offsetWidth
57
- } = target;
58
- const fixedWidth = Math.floor(width);
59
- const fixedHeight = Math.floor(height);
60
- if (sizeRef.value.width !== fixedWidth || sizeRef.value.height !== fixedHeight || sizeRef.value.offsetWidth !== offsetWidth || sizeRef.value.offsetHeight !== offsetHeight) {
61
- const size = {
62
- width: fixedWidth,
63
- height: fixedHeight,
64
- offsetWidth,
65
- offsetHeight
66
- };
67
- sizeRef.value = size;
68
- const mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
69
- const mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
70
- const sizeInfo = {
71
- ...size,
72
- offsetWidth: mergedOffsetWidth,
73
- offsetHeight: mergedOffsetHeight
74
- };
75
- onCollectionResize?.(sizeInfo, target, data);
76
- if (onResize) {
77
- Promise.resolve().then(() => {
78
- onResize(sizeInfo, target);
79
- });
80
- }
81
- }
82
- };
83
- let currentElement;
84
- onMounted(() => {
85
- currentElement = getDom();
86
- if (currentElement && !props.disabled) observe(currentElement, onInternalResize);
87
- });
88
- onBeforeUnmount(() => {
89
- if (currentElement) unobserve(currentElement, onInternalResize);
90
- });
91
- expose({
92
- getDom
93
- });
94
- return () => {
95
- return createVNode(DomWrapper, {
96
- "ref": wrapperRef
97
- }, {
98
- default: () => [slots.default?.()]
99
- });
100
- };
101
- }
3
+ import DomWrapper_default from "./DomWrapper.js";
4
+ import { createVNode, defineComponent, inject, isVNode, onBeforeUnmount, onMounted, shallowRef } from "vue";
5
+ import findDOMNode from "@v-c/util/dist/Dom/findDOMNode";
6
+ import { filterEmpty } from "@v-c/util/dist/props-util";
7
+ var SingleObserver_default = /* @__PURE__ */ defineComponent({
8
+ props: {
9
+ data: {
10
+ type: null,
11
+ required: false,
12
+ default: void 0
13
+ },
14
+ disabled: {
15
+ type: Boolean,
16
+ required: false,
17
+ default: void 0
18
+ },
19
+ onResize: {
20
+ type: Function,
21
+ required: false,
22
+ default: void 0
23
+ }
24
+ },
25
+ name: "SingleObserver",
26
+ inheritAttrs: false,
27
+ setup(props, { expose, slots }) {
28
+ const elementRef = shallowRef();
29
+ const wrapperRef = shallowRef();
30
+ const setWrapperRef = (el) => {
31
+ if (el?.elementEl && typeof el.elementEl === "object") elementRef.value = el.elementEl;
32
+ else if (el?.__$el && typeof el.__$el === "object") elementRef.value = el.__$el;
33
+ else wrapperRef.value = el;
34
+ };
35
+ const onCollectionResize = inject(CollectionContext, () => {});
36
+ const sizeRef = shallowRef({
37
+ width: -1,
38
+ height: -1,
39
+ offsetWidth: -1,
40
+ offsetHeight: -1
41
+ });
42
+ const getDom = () => {
43
+ const dom = findDOMNode(elementRef) || (elementRef.value && typeof elementRef.value === "object" ? findDOMNode(elementRef.value.nativeElement) : null) || findDOMNode(wrapperRef.value);
44
+ if (dom && dom.nodeType === 3 && dom.nextElementSibling) return dom.nextElementSibling;
45
+ return dom;
46
+ };
47
+ const onInternalResize = (target) => {
48
+ const { onResize, data } = props;
49
+ const { width, height } = target.getBoundingClientRect();
50
+ const { offsetHeight, offsetWidth } = target;
51
+ const fixedWidth = Math.floor(width);
52
+ const fixedHeight = Math.floor(height);
53
+ if (sizeRef.value.width !== fixedWidth || sizeRef.value.height !== fixedHeight || sizeRef.value.offsetWidth !== offsetWidth || sizeRef.value.offsetHeight !== offsetHeight) {
54
+ const size = {
55
+ width: fixedWidth,
56
+ height: fixedHeight,
57
+ offsetWidth,
58
+ offsetHeight
59
+ };
60
+ sizeRef.value = size;
61
+ const mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
62
+ const mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
63
+ const sizeInfo = {
64
+ ...size,
65
+ offsetWidth: mergedOffsetWidth,
66
+ offsetHeight: mergedOffsetHeight
67
+ };
68
+ onCollectionResize?.(sizeInfo, target, data);
69
+ if (onResize) Promise.resolve().then(() => {
70
+ onResize(sizeInfo, target);
71
+ });
72
+ }
73
+ };
74
+ let currentElement;
75
+ onMounted(() => {
76
+ currentElement = getDom();
77
+ if (currentElement && !props.disabled) observe(currentElement, onInternalResize);
78
+ });
79
+ onBeforeUnmount(() => {
80
+ if (currentElement) unobserve(currentElement, onInternalResize);
81
+ });
82
+ expose({ getDom });
83
+ return () => {
84
+ const children = filterEmpty(slots?.default?.());
85
+ if (children.length === 1 && isVNode(children[0])) return createVNode(children[0], { ref: setWrapperRef });
86
+ return createVNode(DomWrapper_default, { "ref": wrapperRef }, { default: () => [slots.default?.()] });
87
+ };
88
+ }
102
89
  });
103
- export {
104
- SingleObserver as default
105
- };
90
+ export { SingleObserver_default as default };
@@ -0,0 +1,21 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
9
+ key = keys[i];
10
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
11
+ get: ((k) => from[k]).bind(null, key),
12
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
13
+ });
14
+ }
15
+ return to;
16
+ };
17
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
18
+ value: mod,
19
+ enumerable: true
20
+ }) : target, mod));
21
+ exports.__toESM = __toESM;
package/dist/index.cjs CHANGED
@@ -1,56 +1,48 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const vue = require("vue");
4
- const util = require("@v-c/util");
5
- const toArray = require("@v-c/util/dist/Children/toArray");
6
- const Collection = require("./Collection.cjs");
7
- const index = require("./SingleObserver/index.cjs");
8
- const observerUtil = require("./utils/observerUtil.cjs");
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
3
+ const require_Collection = require("./Collection.cjs");
4
+ const require_observerUtil = require("./utils/observerUtil.cjs");
5
+ const require_index = require("./SingleObserver/index.cjs");
6
+ let vue = require("vue");
7
+ let __v_c_util = require("@v-c/util");
8
+ let __v_c_util_dist_Children_toArray = require("@v-c/util/dist/Children/toArray");
9
9
  function _isSlot(s) {
10
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s);
11
11
  }
12
- const INTERNAL_PREFIX_KEY = "vc-observer-key";
13
- const ResizeObserver = /* @__PURE__ */ vue.defineComponent({
14
- props: {
15
- data: {
16
- type: null,
17
- required: false,
18
- default: void 0
19
- },
20
- disabled: {
21
- type: Boolean,
22
- required: false,
23
- default: void 0
24
- },
25
- onResize: {
26
- type: Function,
27
- required: false,
28
- default: void 0
29
- }
30
- },
31
- setup(props, {
32
- slots
33
- }) {
34
- return () => {
35
- const childNodes = toArray.toArray(slots.default?.());
36
- if (process.env.NODE_ENV !== "production") {
37
- if (childNodes.length > 1) {
38
- util.warning(false, "Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.");
39
- } else if (childNodes.length === 0) {
40
- util.warning(false, "`children` of ResizeObserver is empty. Nothing is in observe.");
41
- }
42
- }
43
- return childNodes.map((child, index$1) => {
44
- const key = child?.key || `${INTERNAL_PREFIX_KEY}-${index$1}`;
45
- return vue.createVNode(index.default, vue.mergeProps(props, {
46
- "key": key
47
- }), _isSlot(child) ? child : {
48
- default: () => [child]
49
- });
50
- });
51
- };
52
- }
12
+ var INTERNAL_PREFIX_KEY = "vc-observer-key";
13
+ var ResizeObserver = /* @__PURE__ */ (0, vue.defineComponent)({
14
+ props: {
15
+ data: {
16
+ type: null,
17
+ required: false,
18
+ default: void 0
19
+ },
20
+ disabled: {
21
+ type: Boolean,
22
+ required: false,
23
+ default: void 0
24
+ },
25
+ onResize: {
26
+ type: Function,
27
+ required: false,
28
+ default: void 0
29
+ }
30
+ },
31
+ setup(props, { slots }) {
32
+ return () => {
33
+ const childNodes = (0, __v_c_util_dist_Children_toArray.toArray)(slots.default?.());
34
+ if (process.env.NODE_ENV !== "production") {
35
+ if (childNodes.length > 1) (0, __v_c_util.warning)(false, "Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.");
36
+ else if (childNodes.length === 0) (0, __v_c_util.warning)(false, "`children` of ResizeObserver is empty. Nothing is in observe.");
37
+ }
38
+ return childNodes.map((child, index) => {
39
+ const key = child?.key || `${INTERNAL_PREFIX_KEY}-${index}`;
40
+ return (0, vue.createVNode)(require_index.default, (0, vue.mergeProps)(props, { "key": key }), _isSlot(child) ? child : { default: () => [child] });
41
+ });
42
+ };
43
+ }
53
44
  });
54
- ResizeObserver.Collection = Collection.Collection;
55
- exports._rs = observerUtil._rs;
56
- exports.default = ResizeObserver;
45
+ ResizeObserver.Collection = require_Collection.Collection;
46
+ var src_default = ResizeObserver;
47
+ exports._rs = require_observerUtil._rs;
48
+ exports.default = src_default;
package/dist/index.js CHANGED
@@ -1,56 +1,45 @@
1
- import { defineComponent, createVNode, mergeProps, isVNode } from "vue";
2
- import { warning } from "@v-c/util";
3
- import { toArray } from "@v-c/util/dist/Children/toArray";
4
1
  import { Collection } from "./Collection.js";
5
- import SingleObserver from "./SingleObserver/index.js";
6
2
  import { _rs } from "./utils/observerUtil.js";
3
+ import SingleObserver_default from "./SingleObserver/index.js";
4
+ import { createVNode, defineComponent, isVNode, mergeProps } from "vue";
5
+ import { warning } from "@v-c/util";
6
+ import { toArray } from "@v-c/util/dist/Children/toArray";
7
7
  function _isSlot(s) {
8
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
8
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
9
  }
10
- const INTERNAL_PREFIX_KEY = "vc-observer-key";
11
- const ResizeObserver = /* @__PURE__ */ defineComponent({
12
- props: {
13
- data: {
14
- type: null,
15
- required: false,
16
- default: void 0
17
- },
18
- disabled: {
19
- type: Boolean,
20
- required: false,
21
- default: void 0
22
- },
23
- onResize: {
24
- type: Function,
25
- required: false,
26
- default: void 0
27
- }
28
- },
29
- setup(props, {
30
- slots
31
- }) {
32
- return () => {
33
- const childNodes = toArray(slots.default?.());
34
- if (process.env.NODE_ENV !== "production") {
35
- if (childNodes.length > 1) {
36
- warning(false, "Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.");
37
- } else if (childNodes.length === 0) {
38
- warning(false, "`children` of ResizeObserver is empty. Nothing is in observe.");
39
- }
40
- }
41
- return childNodes.map((child, index) => {
42
- const key = child?.key || `${INTERNAL_PREFIX_KEY}-${index}`;
43
- return createVNode(SingleObserver, mergeProps(props, {
44
- "key": key
45
- }), _isSlot(child) ? child : {
46
- default: () => [child]
47
- });
48
- });
49
- };
50
- }
10
+ var INTERNAL_PREFIX_KEY = "vc-observer-key";
11
+ var ResizeObserver = /* @__PURE__ */ defineComponent({
12
+ props: {
13
+ data: {
14
+ type: null,
15
+ required: false,
16
+ default: void 0
17
+ },
18
+ disabled: {
19
+ type: Boolean,
20
+ required: false,
21
+ default: void 0
22
+ },
23
+ onResize: {
24
+ type: Function,
25
+ required: false,
26
+ default: void 0
27
+ }
28
+ },
29
+ setup(props, { slots }) {
30
+ return () => {
31
+ const childNodes = toArray(slots.default?.());
32
+ if (process.env.NODE_ENV !== "production") {
33
+ if (childNodes.length > 1) warning(false, "Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.");
34
+ else if (childNodes.length === 0) warning(false, "`children` of ResizeObserver is empty. Nothing is in observe.");
35
+ }
36
+ return childNodes.map((child, index) => {
37
+ const key = child?.key || `${INTERNAL_PREFIX_KEY}-${index}`;
38
+ return createVNode(SingleObserver_default, mergeProps(props, { "key": key }), _isSlot(child) ? child : { default: () => [child] });
39
+ });
40
+ };
41
+ }
51
42
  });
52
43
  ResizeObserver.Collection = Collection;
53
- export {
54
- _rs,
55
- ResizeObserver as default
56
- };
44
+ var src_default = ResizeObserver;
45
+ export { _rs, src_default as default };
@@ -1,31 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ResizeObserver = require("resize-observer-polyfill");
4
- const elementListeners = /* @__PURE__ */ new Map();
1
+ const require_rolldown_runtime = require("../_virtual/rolldown_runtime.cjs");
2
+ let resize_observer_polyfill = require("resize-observer-polyfill");
3
+ resize_observer_polyfill = require_rolldown_runtime.__toESM(resize_observer_polyfill);
4
+ var elementListeners = /* @__PURE__ */ new Map();
5
5
  function onResize(entities) {
6
- entities.forEach((entity) => {
7
- const { target } = entity;
8
- elementListeners.get(target)?.forEach((listener) => listener(target));
9
- });
6
+ entities.forEach((entity) => {
7
+ const { target } = entity;
8
+ elementListeners.get(target)?.forEach((listener) => listener(target));
9
+ });
10
10
  }
11
- const resizeObserver = new ResizeObserver(onResize);
11
+ var resizeObserver = new resize_observer_polyfill.default(onResize);
12
12
  const _el = process.env.NODE_ENV !== "production" ? elementListeners : null;
13
13
  const _rs = process.env.NODE_ENV !== "production" ? onResize : null;
14
14
  function observe(element, callback) {
15
- if (!elementListeners.has(element)) {
16
- elementListeners.set(element, /* @__PURE__ */ new Set());
17
- resizeObserver.observe(element);
18
- }
19
- elementListeners?.get?.(element)?.add?.(callback);
15
+ if (!elementListeners.has(element)) {
16
+ elementListeners.set(element, /* @__PURE__ */ new Set());
17
+ resizeObserver.observe(element);
18
+ }
19
+ elementListeners?.get?.(element)?.add?.(callback);
20
20
  }
21
21
  function unobserve(element, callback) {
22
- if (elementListeners.has(element)) {
23
- elementListeners?.get?.(element)?.delete?.(callback);
24
- if (!elementListeners?.get?.(element)?.size) {
25
- resizeObserver.unobserve(element);
26
- elementListeners.delete(element);
27
- }
28
- }
22
+ if (elementListeners.has(element)) {
23
+ elementListeners?.get?.(element)?.delete?.(callback);
24
+ if (!elementListeners?.get?.(element)?.size) {
25
+ resizeObserver.unobserve(element);
26
+ elementListeners.delete(element);
27
+ }
28
+ }
29
29
  }
30
30
  exports._el = _el;
31
31
  exports._rs = _rs;
@@ -1,33 +1,28 @@
1
1
  import ResizeObserver from "resize-observer-polyfill";
2
- const elementListeners = /* @__PURE__ */ new Map();
2
+ var elementListeners = /* @__PURE__ */ new Map();
3
3
  function onResize(entities) {
4
- entities.forEach((entity) => {
5
- const { target } = entity;
6
- elementListeners.get(target)?.forEach((listener) => listener(target));
7
- });
4
+ entities.forEach((entity) => {
5
+ const { target } = entity;
6
+ elementListeners.get(target)?.forEach((listener) => listener(target));
7
+ });
8
8
  }
9
- const resizeObserver = new ResizeObserver(onResize);
9
+ var resizeObserver = new ResizeObserver(onResize);
10
10
  const _el = process.env.NODE_ENV !== "production" ? elementListeners : null;
11
11
  const _rs = process.env.NODE_ENV !== "production" ? onResize : null;
12
12
  function observe(element, callback) {
13
- if (!elementListeners.has(element)) {
14
- elementListeners.set(element, /* @__PURE__ */ new Set());
15
- resizeObserver.observe(element);
16
- }
17
- elementListeners?.get?.(element)?.add?.(callback);
13
+ if (!elementListeners.has(element)) {
14
+ elementListeners.set(element, /* @__PURE__ */ new Set());
15
+ resizeObserver.observe(element);
16
+ }
17
+ elementListeners?.get?.(element)?.add?.(callback);
18
18
  }
19
19
  function unobserve(element, callback) {
20
- if (elementListeners.has(element)) {
21
- elementListeners?.get?.(element)?.delete?.(callback);
22
- if (!elementListeners?.get?.(element)?.size) {
23
- resizeObserver.unobserve(element);
24
- elementListeners.delete(element);
25
- }
26
- }
20
+ if (elementListeners.has(element)) {
21
+ elementListeners?.get?.(element)?.delete?.(callback);
22
+ if (!elementListeners?.get?.(element)?.size) {
23
+ resizeObserver.unobserve(element);
24
+ elementListeners.delete(element);
25
+ }
26
+ }
27
27
  }
28
- export {
29
- _el,
30
- _rs,
31
- observe,
32
- unobserve
33
- };
28
+ export { _el, _rs, observe, unobserve };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@v-c/resize-observer",
3
3
  "type": "module",
4
- "version": "0.0.3",
4
+ "version": "1.0.0",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -17,11 +17,12 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "resize-observer-polyfill": "^1.5.1",
20
- "@v-c/util": "0.0.13"
20
+ "@v-c/util": "^1.0.0"
21
21
  },
22
22
  "scripts": {
23
23
  "build": "vite build",
24
24
  "prepublish": "pnpm build",
25
- "bump": "bumpp --release patch"
25
+ "bump": "bumpp",
26
+ "bump:patch": "bumpp --release patch"
26
27
  }
27
28
  }
@@ -1,6 +1,7 @@
1
1
  import type { ResizeObserverProps, SizeInfo } from '../index.tsx'
2
2
  import findDOMNode from '@v-c/util/dist/Dom/findDOMNode'
3
- import { defineComponent, inject, onBeforeUnmount, onMounted, shallowRef } from 'vue'
3
+ import { filterEmpty } from '@v-c/util/dist/props-util'
4
+ import { createVNode, defineComponent, inject, isVNode, onBeforeUnmount, onMounted, shallowRef } from 'vue'
4
5
  import { CollectionContext } from '../Collection'
5
6
  import { observe, unobserve } from '../utils/observerUtil.ts'
6
7
  import DomWrapper from './DomWrapper'
@@ -11,6 +12,17 @@ const SingleObserver = defineComponent<ResizeObserverProps>({
11
12
  setup(props, { expose, slots }) {
12
13
  const elementRef = shallowRef<HTMLElement>()
13
14
  const wrapperRef = shallowRef()
15
+ const setWrapperRef = (el: any) => {
16
+ if (el?.elementEl && typeof el.elementEl === 'object') {
17
+ elementRef.value = el.elementEl
18
+ }
19
+ else if (el?.__$el && typeof el.__$el === 'object') {
20
+ elementRef.value = el.__$el
21
+ }
22
+ else {
23
+ wrapperRef.value = el
24
+ }
25
+ }
14
26
  const onCollectionResize = inject(CollectionContext, () => {})
15
27
  const sizeRef = shallowRef<SizeInfo>({ width: -1, height: -1, offsetWidth: -1, offsetHeight: -1 })
16
28
  const getDom = () => {
@@ -20,7 +32,6 @@ const SingleObserver = defineComponent<ResizeObserverProps>({
20
32
  // 判断当前的dom是不是一个text元素
21
33
  if (dom && dom.nodeType === 3 && dom.nextElementSibling)
22
34
  return dom.nextElementSibling as HTMLElement
23
-
24
35
  return dom
25
36
  }
26
37
 
@@ -80,6 +91,12 @@ const SingleObserver = defineComponent<ResizeObserverProps>({
80
91
  getDom,
81
92
  })
82
93
  return () => {
94
+ const children = filterEmpty(slots?.default?.())
95
+ if (children.length === 1 && isVNode(children[0])) {
96
+ return createVNode(children[0], {
97
+ ref: setWrapperRef,
98
+ })
99
+ }
83
100
  return (
84
101
  <DomWrapper ref={wrapperRef}>
85
102
  {slots.default?.()}
package/vitest.config.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineProject, mergeConfig } from 'vitest/config'
2
- import configShared from '../../vitest.config.ts'
2
+ import configShared from '../../vitest.config'
3
3
 
4
4
  export default mergeConfig(
5
5
  configShared,