@skirtle/vue-vnode-utils
Version:
Utilities for manipulating Vue 3 VNodes
2 lines (1 loc) • 2.74 kB
JavaScript
var VueVNodeUtils=function(i,u){"use strict";const _=t=>c(t)==="comment",g=t=>c(t)==="component",b=t=>c(t)==="element",S=t=>c(t)==="fragment",L=t=>g(t)&&typeof t.type=="function",M=t=>g(t)&&typeof t.type=="object",P=t=>c(t)==="static",p=t=>c(t)==="text",N=t=>{if(typeof t=="string")return t;if(typeof t=="number")return String(t);if(u.isVNode(t)&&t.type===u.Text)return String(t.children)},c=t=>{const n=typeof t;if(t==null||n==="boolean")return"comment";if(n==="string"||n==="number")return"text";if(Array.isArray(t))return"fragment";if(u.isVNode(t)){const{type:r}=t,e=typeof r;if(e==="symbol"){if(r===u.Fragment)return"fragment";if(r===u.Text)return"text";if(r===u.Comment)return"comment";if(r===u.Static)return"static"}else{if(e==="string")return"element";if(e==="object"||e==="function")return"component"}}},F=t=>{for(const n in t)return!1;return!0},A=t=>{if(Array.isArray(t))return t;const{children:n}=t;return Array.isArray(n)?n:[]};function U(t){return t}const E={element:!0,component:!0},C={element:!0,component:!0,text:!0,static:!0},m={element:!0,component:!0,text:!0,static:!0,comment:!0},T=(t,n)=>{const r=c(t);return!r||r==="fragment"||!n[r]?null:u.isVNode(t)?t:r==="text"?u.createTextVNode(N(t)):u.createCommentVNode()},I=(t,n,r=E)=>d(t,e=>{const s=n(e);if(s&&!F(s))return u.cloneVNode(e,s,!0)},r),w=(t,n,r=C)=>d(t,n,r),d=(t,n,r)=>{var s;let e=null;for(let o=0;o<t.length;++o){const l=t[o];if(S(l)){const y=A(l),f=d(y,n,r);let h=l;y!==f&&(e!=null||(e=t.slice(0,o)),Array.isArray(l)?h=f:(h=u.cloneVNode(l),h.children=f)),e&&e.push(h)}else{const y=T(l,r);if(y){const f=(s=n(y))!=null?s:y;f!==l&&(e!=null||(e=t.slice(0,o))),Array.isArray(f)?e&&e.push(...f):e&&e.push(f)}else e&&e.push(l)}}return e!=null?e:t},j=(t,n,r=C)=>{let e=null;return d(t,s=>{let o;if(e&&(o=n(e,s)),e=s,!(o==null||Array.isArray(o)&&o.length===0))return Array.isArray(o)?[...o,s]:[o,s]},r)},O=(t,n,r=m)=>a(t,n,r),a=(t,n,r)=>{for(const e of t)if(S(e)){if(O(A(e),n,r))return!0}else{const s=T(e,r);if(s&&n(s))return!0}return!1},D=(t,n,r=m)=>!a(t,e=>!n(e),r),K=(t,n,r=m)=>{a(t,e=>{n(e)},r)},V=(t,n,r=m)=>{let e;return a(t,s=>{if(n(s))return e=s,!0},r),e},z=(t,n,r,e=m)=>(a(t,s=>{r=n(r,s)},e),r),B=/\S|\u00a0/,H=t=>!a(t,n=>{if(p(n)){const r=N(n)||"";return B.test(r)}return!0},C),R=t=>V(t,()=>!0,E);return i.ALL_VNODES=m,i.COMPONENTS_AND_ELEMENTS=E,i.SKIP_COMMENTS=C,i.addProps=I,i.betweenChildren=j,i.eachChild=K,i.everyChild=D,i.extractSingleChild=R,i.findChild=V,i.getText=N,i.getType=c,i.isComment=_,i.isComponent=g,i.isElement=b,i.isEmpty=H,i.isFragment=S,i.isFunctionalComponent=L,i.isStatefulComponent=M,i.isStatic=P,i.isText=p,i.reduceChildren=z,i.replaceChildren=w,i.someChild=O,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),i}({},Vue);