@v-c/util 0.0.14 → 0.0.15

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.
package/dist/vnode.cjs CHANGED
@@ -1,4 +1,5 @@
1
1
  const require_warning = require("./warning.cjs");
2
+ const require_findDOMNode = require("./Dom/findDOMNode.cjs");
2
3
  const require_index = require("./props-util/index.cjs");
3
4
  let vue = require("vue");
4
5
  function cloneElement(vnode, nodeProps = {}, override = true, mergeRef = false) {
@@ -41,8 +42,24 @@ function customRenderSlot(slots, name, props, fallback) {
41
42
  if (ensureValidVNode(slot)) return slot;
42
43
  return fallback?.();
43
44
  }
45
+ function resolveToElement(node) {
46
+ if (!node) return null;
47
+ if (require_findDOMNode.isDOM(node?.__$el)) return node.__$el;
48
+ if (require_findDOMNode.isDOM(node)) return node;
49
+ const exposed = node;
50
+ if (require_findDOMNode.isDOM(exposed?.$el)) return exposed.$el;
51
+ const nativeEl = exposed?.nativeElement;
52
+ if (require_findDOMNode.isDOM(nativeEl?.value)) return nativeEl.value;
53
+ if (require_findDOMNode.isDOM(nativeEl)) return nativeEl;
54
+ if (typeof exposed?.getElement === "function") {
55
+ const el = exposed.getElement();
56
+ if (require_findDOMNode.isDOM(el)) return el;
57
+ }
58
+ return null;
59
+ }
44
60
  exports.cloneElement = cloneElement;
45
61
  exports.cloneVNodes = cloneVNodes;
46
62
  exports.customRenderSlot = customRenderSlot;
47
63
  exports.deepCloneElement = deepCloneElement;
64
+ exports.resolveToElement = resolveToElement;
48
65
  exports.triggerVNodeUpdate = triggerVNodeUpdate;
package/dist/vnode.d.ts CHANGED
@@ -8,4 +8,5 @@ export declare function cloneVNodes(vnodes: any, nodeProps?: {}, override?: bool
8
8
  export declare function deepCloneElement<T, U>(vnode: VNode<T, U> | VNode<T, U>[], nodeProps?: NodeProps, override?: boolean, mergeRef?: boolean): any;
9
9
  export declare function triggerVNodeUpdate(vm: VNode, attrs: Record<string, any>, dom: any): void;
10
10
  export declare function customRenderSlot(slots: Slots, name: string, props: Record<string, unknown>, fallback?: () => VNodeArrayChildren): VNodeArrayChildren;
11
+ export declare function resolveToElement(node: any): any;
11
12
  export {};
package/dist/vnode.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import warning_default from "./warning.js";
2
+ import { isDOM } from "./Dom/findDOMNode.js";
2
3
  import { filterEmpty } from "./props-util/index.js";
3
4
  import { Comment, Fragment, cloneVNode, isVNode, render } from "vue";
4
5
  function cloneElement(vnode, nodeProps = {}, override = true, mergeRef = false) {
@@ -41,4 +42,19 @@ function customRenderSlot(slots, name, props, fallback) {
41
42
  if (ensureValidVNode(slot)) return slot;
42
43
  return fallback?.();
43
44
  }
44
- export { cloneElement, cloneVNodes, customRenderSlot, deepCloneElement, triggerVNodeUpdate };
45
+ function resolveToElement(node) {
46
+ if (!node) return null;
47
+ if (isDOM(node?.__$el)) return node.__$el;
48
+ if (isDOM(node)) return node;
49
+ const exposed = node;
50
+ if (isDOM(exposed?.$el)) return exposed.$el;
51
+ const nativeEl = exposed?.nativeElement;
52
+ if (isDOM(nativeEl?.value)) return nativeEl.value;
53
+ if (isDOM(nativeEl)) return nativeEl;
54
+ if (typeof exposed?.getElement === "function") {
55
+ const el = exposed.getElement();
56
+ if (isDOM(el)) return el;
57
+ }
58
+ return null;
59
+ }
60
+ export { cloneElement, cloneVNodes, customRenderSlot, deepCloneElement, resolveToElement, triggerVNodeUpdate };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@v-c/util",
3
3
  "type": "module",
4
- "version": "0.0.14",
4
+ "version": "0.0.15",
5
5
  "description": "Vue3 components utils",
6
6
  "publishConfig": {
7
7
  "access": "public"