@v-c/util 1.0.11 → 1.0.13

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,6 +1,6 @@
1
1
  import { ComponentPublicInstance, MaybeRef } from 'vue';
2
2
  export declare function isDOM(node: any): node is HTMLElement | SVGElement;
3
- export declare function getDOM(elementRef: MaybeRef): Element | Text;
3
+ export declare function getDOM(elementRef: MaybeRef): any;
4
4
  /**
5
5
  * Return if a node is a DOM node. Else will return by `findDOMNode`
6
6
  */
@@ -1,15 +1,18 @@
1
+ import canUseDom from "./canUseDom.js";
1
2
  import { unref } from "vue";
2
3
  function isDOM(node) {
3
4
  return node instanceof HTMLElement || node instanceof SVGElement;
4
5
  }
5
6
  function getDOM(elementRef) {
6
7
  const unrefElementRef = unref(elementRef);
8
+ if (!canUseDom()) return unrefElementRef;
7
9
  const dom = findDOMNode(unrefElementRef) || (unrefElementRef && typeof unrefElementRef === "object" ? findDOMNode(unrefElementRef.nativeElement) : null);
8
10
  if (dom && (dom.nodeType === 3 || dom.nodeType === 8) && dom.nextElementSibling) return dom.nextElementSibling;
9
11
  return dom;
10
12
  }
11
13
  function findDOMNode(_node) {
12
14
  const node = unref(_node);
15
+ if (!canUseDom()) return node;
13
16
  if (isDOM(node)) return node;
14
17
  else if (node && "$el" in node) return node.$el;
15
18
  return null;
package/dist/Dom/focus.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { getDOM } from "../dist/Dom/findDOMNode.js";
1
2
  import isVisible_default from "./isVisible.js";
2
3
  import { watch } from "vue";
3
4
  function focusable(node, includePositive = false) {
@@ -87,11 +88,12 @@ function lockFocus(element) {
87
88
  };
88
89
  }
89
90
  function useLockFocus(lock, getElement) {
90
- watch(lock, (_, _o, onCleanup) => {
91
- if (lock.value) {
92
- const element = getElement();
93
- if (element) onCleanup(lockFocus(element));
94
- }
91
+ watch([lock, () => getElement()], ([nextLock, element], _o, onCleanup) => {
92
+ element = getDOM(element);
93
+ if (nextLock && element) onCleanup(lockFocus(element));
94
+ }, {
95
+ flush: "post",
96
+ immediate: true
95
97
  });
96
98
  }
97
99
  export { getFocusNodeList, lockFocus, triggerFocus, useLockFocus };
@@ -0,0 +1,4 @@
1
+ function canUseDom() {
2
+ return !!(typeof window !== "undefined" && window.document && window.document.createElement);
3
+ }
4
+ export { canUseDom };
@@ -0,0 +1,20 @@
1
+ import { canUseDom } from "./canUseDom.js";
2
+ import { unref } from "vue";
3
+ function isDOM(node) {
4
+ return node instanceof HTMLElement || node instanceof SVGElement;
5
+ }
6
+ function getDOM(elementRef) {
7
+ const unrefElementRef = unref(elementRef);
8
+ if (!canUseDom()) return unrefElementRef;
9
+ const dom = findDOMNode(unrefElementRef) || (unrefElementRef && typeof unrefElementRef === "object" ? findDOMNode(unrefElementRef.nativeElement) : null);
10
+ if (dom && (dom.nodeType === 3 || dom.nodeType === 8) && dom.nextElementSibling) return dom.nextElementSibling;
11
+ return dom;
12
+ }
13
+ function findDOMNode(_node) {
14
+ const node = unref(_node);
15
+ if (!canUseDom()) return node;
16
+ if (isDOM(node)) return node;
17
+ else if (node && "$el" in node) return node.$el;
18
+ return null;
19
+ }
20
+ export { getDOM };
package/dist/utils/set.js CHANGED
@@ -37,7 +37,7 @@ function mergeWith(sources, config = {}) {
37
37
  if (isArr) clone = set(clone, path, finalPrepareArray(originValue, value));
38
38
  else if (!originValue || typeof originValue !== "object") clone = set(clone, path, createEmpty(value));
39
39
  keys(value).forEach((key) => {
40
- if (Object.getOwnPropertyDescriptor(value, key).enumerable) internalMerge([...path, key], loopSet);
40
+ if (Object?.getOwnPropertyDescriptor?.(value, key)?.enumerable) internalMerge([...path, key], loopSet);
41
41
  });
42
42
  }
43
43
  } else clone = set(clone, path, value);
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@v-c/util",
3
3
  "type": "module",
4
- "version": "1.0.11",
4
+ "version": "1.0.13",
5
5
  "description": "Vue3 components utils",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
+ "author": {
10
+ "name": "aibayanyu20",
11
+ "email": "aibayanyu@qq.com",
12
+ "url": "https://yanyu.me"
13
+ },
9
14
  "exports": {
10
15
  ".": {
11
16
  "types": "./dist/index.d.ts",
@@ -59,11 +64,6 @@
59
64
  },
60
65
  "./package.json": "./package.json"
61
66
  },
62
- "author": {
63
- "name": "aibayanyu20",
64
- "email": "aibayanyu@qq.com",
65
- "url": "https://yanyu.me"
66
- },
67
67
  "main": "dist/index.js",
68
68
  "types": "dist/index.d.ts",
69
69
  "files": [