@lytjs/renderer 4.0.4 → 4.0.5
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/dom.cjs +1 -1
- package/dist/dom.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/native.cjs +1 -1
- package/dist/native.mjs +1 -1
- package/dist/ssr.cjs +1 -1
- package/dist/ssr.mjs +1 -1
- package/dist/types/dom/dom-renderer.d.ts.map +1 -1
- package/dist/types/dom/index.d.ts.map +1 -1
- package/dist/types/dom/patch-events.d.ts +2 -2
- package/dist/types/dom/patch-events.d.ts.map +1 -1
- package/dist/types/miniapp/index.d.ts.map +1 -1
- package/dist/types/miniapp/miniapp-renderer.d.ts +3 -3
- package/dist/types/miniapp/miniapp-renderer.d.ts.map +1 -1
- package/dist/types/native/index.d.ts.map +1 -1
- package/dist/types/native/native-renderer.d.ts +2 -2
- package/dist/types/native/native-renderer.d.ts.map +1 -1
- package/dist/types/ssr/hydration.d.ts.map +1 -1
- package/dist/types/ssr/index.d.ts.map +1 -1
- package/dist/types/ssr/ssr-renderer.d.ts.map +1 -1
- package/dist/types/vapor/index.d.ts.map +1 -1
- package/dist/types/vapor/vapor-compiler.d.ts.map +1 -1
- package/dist/types/vapor/vapor-component.d.ts.map +1 -1
- package/dist/types/vapor/vapor-reactive.d.ts.map +1 -1
- package/dist/types/vapor/vapor-renderer.d.ts.map +1 -1
- package/dist/vapor.cjs +1 -1
- package/dist/vapor.mjs +1 -1
- package/package.json +3 -3
package/dist/vapor.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var j=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var de=(e,i)=>{for(var t in i)j(e,t,{get:i[t],enumerable:!0})},fe=(e,i,t,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of pe(i))!ce.call(e,o)&&o!==t&&j(e,o,{get:()=>i[o],enumerable:!(n=le(i,o))||n.enumerable});return e};var ye=e=>fe(j({},"__esModule",{value:!0}),e);var Re={};de(Re,{Comment:()=>U,Fragment:()=>P,PatchFlags:()=>E,ShapeFlags:()=>h,Text:()=>k,bindAttr:()=>M,bindClass:()=>_,bindEach:()=>X,bindEvent:()=>D,bindIf:()=>z,bindProp:()=>v,bindText:()=>O,compileToVapor:()=>w,createRenderer:()=>ne,createVaporApp:()=>se,createVaporElement:()=>Z,defineVaporComponent:()=>ie,getVaporDOMFactory:()=>N,parseTemplate:()=>F,renderVaporComponent:()=>ae,renderVaporNode:()=>u,setVaporDOMFactory:()=>re,vaporMount:()=>B,vaporPatch:()=>G});module.exports=ye(Re);var te=require("@lytjs/vdom");var h=(s=>(s[s.ELEMENT=1]="ELEMENT",s[s.FUNCTIONAL_COMPONENT=2]="FUNCTIONAL_COMPONENT",s[s.STATEFUL_COMPONENT=4]="STATEFUL_COMPONENT",s[s.TEXT_CHILDREN=8]="TEXT_CHILDREN",s[s.ARRAY_CHILDREN=16]="ARRAY_CHILDREN",s[s.SLOTS_CHILDREN=32]="SLOTS_CHILDREN",s))(h||{}),E=(c=>(c[c.TEXT=1]="TEXT",c[c.CLASS=2]="CLASS",c[c.STYLE=4]="STYLE",c[c.PROPS=8]="PROPS",c[c.FULL_PROPS=16]="FULL_PROPS",c[c.STABLE_FRAGMENT=32]="STABLE_FRAGMENT",c[c.KEYED_FRAGMENT=64]="KEYED_FRAGMENT",c[c.UNKEYED_FRAGMENT=128]="UNKEYED_FRAGMENT",c[c.NEED_PATCH=256]="NEED_PATCH",c[c.DYNAMIC_SLOTS=512]="DYNAMIC_SLOTS",c[c.HOISTED=-1]="HOISTED",c[c.BAIL=-2]="BAIL",c))(E||{}),P=Symbol("Fragment"),k=Symbol("Text"),U=Symbol("Comment");function V(e){return e.type===P}function b(e){return e.type===k}function T(e){return e.type===U}function q(e,i){return e.type===i.type&&e.key===i.key}function H(e){return Array.isArray(e.dynamicChildren)}function J(e,i,t,n){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n);else if(t.startsWith("on")||t.startsWith("@")){let o=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();e.addEventListener(i,o,n)}else t==="key"||t==="ref"||e.setAttribute(i,t,n)}function W(e,i,t,n,o){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n||{});else if(t.startsWith("on")||t.startsWith("@")){let r=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();o&&e.removeEventListener(i,r,o),n&&e.addEventListener(i,r,n)}else e.setAttribute(i,t,n)}function K(e,i,t,n){for(let o in n){if(o==="key"||o==="ref")continue;let r=t[o],s=n[o];s!==r&&W(e,i,o,s,r)}for(let o in t)if(!(o==="key"||o==="ref")&&!(o in n))if(o==="class")e.setClass(i,"");else if(o==="style")e.setStyle(i,{});else if(o.startsWith("on")||o.startsWith("@")){let r=o.startsWith("@")?o.slice(1).toLowerCase():o.slice(2).toLowerCase();e.removeEventListener(i,r,t[o])}else e.removeAttribute(i,o)}function Y(e,i,t,n,o,r){let{shapeFlag:s}=t;if(V(t)){me(e,i,t,n,o,r);return}if(b(t)){let a=e.createText(t.children);t.el=a,e.insert(n,a,o);return}if(T(t)){let a=e.createComment(t.children);t.el=a,e.insert(n,a,o);return}if(s&1){ue(e,i,t,n,o,r);return}if(s&6){ge(i,t,n,o,r);return}}function ue(e,i,t,n,o,r){let s=t.type,a=e.createElement(s);if(t.el=a,t.props)for(let p in t.props){let d=t.props[p];J(e,a,p,d)}let{shapeFlag:l,children:f}=t;l&8?a.textContent=f:l&16&&A(i,f,a,null,r),e.insert(n,a,o)}function A(e,i,t,n,o){for(let r=0;r<i.length;r++)e(null,i[r],t,n,o)}function me(e,i,t,n,o,r){let{children:s}=t,a=e.createComment("");e.insert(n,a,o),Array.isArray(s)&&s.length>0&&A(i,s,n,a,r),t.el=a,t.anchor=a}function ge(e,i,t,n,o){let r=i.component;r&&r.update&&r.update(),r&&r.subTree&&(e(null,r.subTree,t,n,r),i.el=r.subTree.el)}function Q(e,i,t,n){let{shapeFlag:o,children:r}=t;if(V(t)){if(Array.isArray(r))for(let s=0;s<r.length;s++)i(r[s],n);t.anchor&&t.anchor.parentNode&&e.remove(t.anchor);return}if(o&6){t.component&&t.component.subTree&&i(t.component.subTree,n);return}t.el&&e.remove(t.el)}function R(e,i){for(let t=0;t<i.length;t++)e(i[t])}var L=require("@lytjs/vdom");function S(e,i,t,n,o,r=null,s=null){if(n==null){t&&i(t,o);return}if(t===null){Y(e,$(e,i),n,o,r,s);return}if(H(n)&&H(t)){ve(e,i,t,n,o,s);return}if(!q(t,n)){i(t,o),Y(e,$(e,i),n,o,r,s);return}n.el=t.el,n.anchor=t.anchor;let{shapeFlag:a}=n;if(V(n)){Ne(e,i,t,n,o,r,s);return}if(b(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(T(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(a&1){he(e,i,t,n,s);return}if(a&6){xe(t,n,s);return}}function $(e,i){return(t,n,o,r,s)=>{S(e,i,t,n,o,r,s)}}function he(e,i,t,n,o=null){let r=n.el=t.el,s=t.props||{},a=n.props||{},{patchFlag:l,dynamicProps:f}=n;if(l&&l>0){if(l&1&&t.children!==n.children&&(r.textContent=n.children),l&2&&s.class!==a.class&&e.setClass(r,a.class),l&4&&s.style!==a.style&&e.setStyle(r,a.style||{}),l&8&&f)for(let p=0;p<f.length;p++){let d=f[p],c=s[d],y=a[d];y!==c&&W(e,r,d,y,c)}l&16&&K(e,r,s,a)}else K(e,r,s,a);(!l||!(l&1))&&ee(e,i,t,n,r,null,o)}function ee(e,i,t,n,o,r,s){let a=t.shapeFlag,l=n.shapeFlag,f=t.children,p=n.children;if(l&8){a&16&&R(i,f),f!==p&&(o.textContent=p);return}if(l&16){a&16?Ve(e,i,f,p,o,r,s):(a&8&&(o.textContent=""),A($(e,i),p,o,r,s));return}p==null&&(a&8?o.textContent="":a&16&&R(i,f))}function Ve(e,i,t,n,o,r,s){n.every(l=>l.key!==null&&l.key!==void 0)&&t.every(l=>l.key!==null&&l.key!==void 0)?(0,L.patchKeyedChildren)(t,n,o,r,s,null,!1):(0,L.patchUnkeyedChildren)(t,n,o,r,s,null,!1)}function Ne(e,i,t,n,o,r,s){let a=t.children,l=n.children;Array.isArray(l)&&l.length>0?(ee(e,i,t,n,o,r,s),n.el=l[0].el,n.anchor=l[l.length-1].el?e.nextSibling(l[l.length-1].el):r):Array.isArray(a)&&a.length>0&&l===null?(R(i,a),n.el=t.el,n.anchor=t.anchor):(n.el=t.el,n.anchor=t.anchor)}function ve(e,i,t,n,o,r){let s=t.dynamicChildren,a=n.dynamicChildren;for(let l=0;l<a.length;l++)S(e,i,s[l],a[l],o,null,r)}function xe(e,i,t){i.component=e.component,i.el=e.el,i.component&&i.component.update&&i.component.update()}function ne(e){function i(o,r){Q(e,i,o,r)}(0,te.registerDOMOperations)({insert(o,r,s){e.insert(r,o,s)},createElement(o){return e.createElement(o)},createText(o){return e.createText(o)},setText(o,r){o.nodeValue=r},setElementText(o,r){o.textContent=r},remove(o){e.remove(o)},createComment(o){return e.createComment(o)},mount(o,r,s,a,l,f,p){n(null,o,r,s,a)},patch(o,r,s,a,l,f,p,d){n(o,r,s,a,l)},unmount(o,r,s,a){i(o)},move(o,r,s){e.insert(r,o.el,s)}});function n(o,r,s,a,l){S(e,i,o,r,s,a,l)}return{mount(o,r){r.nodeType===1&&(r.textContent=""),n(null,o,r,null,null)},patch(o,r,s){var a;n(o,r,s||((a=o.el)==null?void 0:a.parentNode),null,null)},unmount(o,r){i(o,r)}}}var m=require("@lytjs/reactivity/signal");function O(e,i){return(0,m.effect)(()=>{let n=i();e.textContent=n==null?"":String(n)})}function v(e,i,t){return(0,m.effect)(()=>{let o=t();e[i]=o})}function M(e,i,t){return(0,m.effect)(()=>{let o=t();o==null||o===!1?e.removeAttribute(i):e.setAttribute(i,o===!0?"":String(o))})}function _(e,i){return(0,m.effect)(()=>{let n=i();if(typeof n=="string")e.className=n;else if(Array.isArray(n))e.className=n.filter(Boolean).join(" ");else if(typeof n=="object"&&n!==null){let o=[];for(let r of Object.keys(n))n[r]&&o.push(r);e.className=o.join(" ")}else e.className=""})}function D(e,i,t){return e.addEventListener(i,t),()=>{e.removeEventListener(i,t)}}function z(e,i){return(0,m.effect)(()=>{i()?(e.style=e.style||{},e.style.display==="none"&&(e.style.display=""),e.hidden=!1):(e.style=e.style||{},e.style.display="none",e.hidden=!0)})}function X(e,i,t,n){let o=[],r=[],s=new Map,a=(0,m.effect)(()=>{let l=i();if(!Array.isArray(l))return;let f=l.map((p,d)=>n?n(p,d):d);if(f.length===r.length){let p=!0;for(let d=0;d<f.length;d++)if(f[d]!==r[d]){p=!1;break}if(p){for(let d=0;d<l.length;d++){let c=t(l[d],d),y=o[d];y&&y.parentNode===e&&e.replaceChild(c,y),o[d]=c}return}}for(let p of o)p.parentNode===e&&e.removeChild(p);s.clear(),o=[],r=[];for(let p=0;p<l.length;p++){let d=t(l[p],p);e.appendChild(d),o.push(d),r.push(f[p]),s.set(f[p],d)}});return()=>{a();for(let l of o)l.parentNode===e&&e.removeChild(l);o=[],r=[],s.clear()}}var I=e=>{if(typeof document!="undefined")return document.createElement(e);throw new Error("[lyt:vapor] \u672A\u8BBE\u7F6E DOM \u5DE5\u5382\u51FD\u6570\u3002\u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\u8BF7\u8C03\u7528 setVaporDOMFactory()")};function re(e){I=e}function N(){return I}function Z(e,i,...t){let n={tag:e,children:[],props:{},events:{},bindings:[]};if(i)for(let[o,r]of Object.entries(i))if(o.startsWith("on")&&typeof r=="function"&&!oe(r)){let s=o.slice(2).toLowerCase();n.events[s]=r}else oe(r)?o==="textContent"||o==="text"?n.bindings.push({type:"text",target:"textContent",signal:r}):o==="className"||o==="class"?n.bindings.push({type:"class",target:"className",signal:r}):o==="style"?n.bindings.push({type:"style",target:"style",signal:r}):n.bindings.push({type:"prop",target:o,signal:r}):n.props[o]=r;for(let o of t)typeof o=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:o}):n.children.push(o);return n}function oe(e){return typeof e!="function"?!1:!!(e._subscribe||e.set)&&!e.toString().startsWith("class")}function u(e){if(e.tag==="#text"){let t=I("#text");return t.textContent=e.text||"",t.nodeType=3,t}let i=I(e.tag);e.el=i;for(let[t,n]of Object.entries(e.props))if(t==="style"&&typeof n=="object")for(let[o,r]of Object.entries(n))i.style[o]=r;else t==="className"||t==="class"?i.className=String(n):i[t]=n;for(let t of e.bindings)t.type==="text"?O(i,t.signal):t.type==="prop"?v(i,t.target,t.signal):t.type==="attr"?M(i,t.target,t.signal):t.type==="class"?_(i,t.signal):t.type==="style"&&v(i,"style",t.signal);for(let[t,n]of Object.entries(e.events))D(i,t,n);for(let t of e.children){let n=u(t);i.appendChild(n)}return i}function G(e,i,t){if(e.tag!==i.tag){let r=u(i);e.el&&e.el.parentNode===t&&t.removeChild(e.el),t.appendChild(r);return}let n=e.el||u(e);i.el=n;for(let[r,s]of Object.entries(i.props))if(r==="style"&&typeof s=="object")for(let[a,l]of Object.entries(s))n.style[a]=l;else r==="className"||r==="class"?n.className=String(s):n[r]=s;i.text!==void 0&&(n.textContent=i.text);for(let[r,s]of Object.entries(e.events))i.events[r]||n.removeEventListener(r,s);for(let[r,s]of Object.entries(i.events))e.events[r]!==s&&(e.events[r]&&n.removeEventListener(r,e.events[r]),n.addEventListener(r,s));let o=Math.max(e.children.length,i.children.length);for(let r=0;r<o;r++){let s=e.children[r],a=i.children[r];if(!s&&a){let l=u(a);n.appendChild(l)}else s&&!a?s.el&&s.el.parentNode===n&&n.removeChild(s.el):s&&a&&G(s,a,n)}}function B(e,i){let t=i.setup?i.setup():{};i.beforeMount&&i.beforeMount();let n;if(i.render){let r=i.render(t,Z);n=Array.isArray(r)?r:[r]}else n=[];let o=[];for(let r of n){let s=u(r);e.appendChild(s),o.push(s)}return i.mounted&&i.mounted(),()=>{i.beforeUnmount&&i.beforeUnmount();for(let r of o)e.removeChild(r);i.unmounted&&i.unmounted()}}function F(e){let i={type:"fragment",children:[]},t=e.trim();for(;t.length>0;){let n=t.match(/^<([a-zA-Z][a-zA-Z0-9-]*)([\s\S]*?)(\/?)>/);if(n){let o=n[1],r=n[2],s=n[3]==="/",{props:a,events:l,directives:f}=Ee(r),p={type:"element",tag:o,props:a,events:l,directives:f,children:[]};if(t=t.slice(n[0].length),s){i.children.push(p);continue}let d=`</${o}>`,c=Ce(t,o);if(c===-1)throw new Error(`[lyt:vapor:compiler] \u672A\u627E\u5230\u95ED\u5408\u6807\u7B7E: </${o}>`);let y=t.slice(0,c);t=t.slice(c+d.length);let g=F(y);p.children=g.children||[],i.children.push(p)}else{let o=t.indexOf("<"),r;if(o===-1?(r=t,t=""):(r=t.slice(0,o),t=t.slice(o)),r.trim())if(r.includes("{{")){let s=be(r);for(let a of s)a.type==="text"?i.children.push({type:"text",text:a.value}):i.children.push({type:"interpolation",expression:a.value})}else i.children.push({type:"text",text:r})}}return i}function Ce(e,i){let t=1,n=0,o=`<${i}`,r=`</${i}>`;for(;n<e.length&&t>0;){let s=e.indexOf(o,n),a=e.indexOf(r,n);if(a===-1)return-1;if(s!==-1&&s<a){let l=e[s+o.length];l===">"||l===" "||l==="/"?(t++,n=s+o.length):(n=a+r.length,t--)}else n=a+r.length,t--}return t===0?n-r.length:-1}function Ee(e){let i={},t={},n={},o=/([a-zA-Z@:][a-zA-Z0-9@:.-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g,r;for(;(r=o.exec(e))!==null;){let s=r[1],a=r[2]||r[3];if(s.startsWith("on:")){let l=s.slice(3);t[l]=a}else if(s.startsWith(":")){let l=s.slice(1);i[l]=a}else if(s==="v-if")n.if=a;else if(s==="v-each"){let l=a.match(/^\s*(\w+)\s+in\s+(.+)\s*$/);l&&(n.each={item:l[1],expression:l[2]})}else i[s]=a}return{props:i,events:t,directives:n}}function be(e){let i=[],t=/\{\{([\s\S]*?)\}\}/g,n=0,o;for(;(o=t.exec(e))!==null;)o.index>n&&i.push({type:"text",value:e.slice(n,o.index)}),i.push({type:"interpolation",value:o[1].trim()}),n=o.index+o[0].length;return n<e.length&&i.push({type:"text",value:e.slice(n)}),i}function w(e){let i=F(e);return{render:Te(i),ast:i}}function Te(e){return function(t){let n=N();return C(e,t,n)}}function C(e,i,t){var n,o;if(e.type==="fragment"){if(e.children&&e.children.length===1)return C(e.children[0],i,t);let r=t("div");if(r.nodeType=11,e.children)for(let s of e.children){let a=C(s,i,t);r.appendChild(a)}return r}if(e.type==="text"){let r=t("#text");return r.textContent=e.text||"",r.nodeType=3,r}if(e.type==="interpolation"){let r=t("span"),s=e.expression||"",a=x(i,s);return r.textContent=a!=null?String(a):"",r}if(e.type==="element"){if((n=e.directives)!=null&&n.each){let{item:s,expression:a}=e.directives.each,l=x(i,a),f=t("#fragment");if(f.childNodes=[],f.nodeType=11,Array.isArray(l))for(let p=0;p<l.length;p++){let d={...i,[s]:l[p],index:p},c=t(e.tag);if(e.props)for(let[y,g]of Object.entries(e.props))y==="class"||y==="className"?c.className=g:c[y]=g;if(e.children)for(let y of e.children){let g=C(y,d,t);c.appendChild(g)}f.appendChild(c)}return f}let r=t(e.tag);if((o=e.directives)!=null&&o.if&&(x(i,e.directives.if)||(r.style=r.style||{},r.style.display="none",r.hidden=!0)),e.props)for(let[s,a]of Object.entries(e.props))if(s.startsWith(":")){let l=s.slice(1),f=x(i,a);r[l]=f}else s==="class"||s==="className"?r.className=a:r[s]=a;if(e.events)for(let[s,a]of Object.entries(e.events)){let l=x(i,a);typeof l=="function"&&r.addEventListener(s,l)}if(e.children)for(let s of e.children){let a=C(s,i,t);if(a.nodeType===11&&a.childNodes)for(let l of a.childNodes)r.appendChild(l);else r.appendChild(a)}return r}return t("div")}function x(e,i){let t=i.trim();if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t)){let r=e[t];return typeof r=="function"&&!r.prototype?r():r}let n=t.split("."),o=e;for(let r of n){if(o==null)return;o=o[r],typeof o=="function"&&!o.prototype&&n.indexOf(r)<n.length-1&&(o=o())}return o}function ie(e){return e}function se(e){let i=!1,t=null,n=null;return{mount(o){if(!i){if(typeof o=="string")if(typeof document!="undefined"){let r=document.querySelector(o);if(!r)throw new Error(`[lyt:vapor] \u672A\u627E\u5230\u6302\u8F7D\u76EE\u6807: ${o}`);n=r}else throw new Error("[lyt:vapor] \u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\uFF0C\u8BF7\u76F4\u63A5\u4F20\u5165\u5BB9\u5668\u5143\u7D20");else n=o;t=B(n,e),i=!0}},unmount(){i&&(t&&(t(),t=null),i=!1,n=null)}}}function ae(e){let i=e.setup?e.setup():{};e.beforeMount&&e.beforeMount();let t;if(e.template){let{render:n}=w(e.template);t=n(i)}else if(e.render){let n=e.render(i,Ae),o=Array.isArray(n)?n:[n];if(o.length===1)t=u(o[0]);else{t=N()("div");for(let s of o)t.appendChild(u(s))}}else throw new Error("[lyt:vapor] \u7EC4\u4EF6\u5FC5\u987B\u63D0\u4F9B template \u6216 render \u51FD\u6570");return e.mounted&&e.mounted(),t}function Ae(e,i,...t){let n={tag:e,children:[],props:i||{},events:{},bindings:[]};for(let o of t)typeof o=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:o}):n.children.push(o);return n}
|
|
1
|
+
var F=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var de=(e,i)=>{for(var t in i)F(e,t,{get:i[t],enumerable:!0})},fe=(e,i,t,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of pe(i))!ce.call(e,o)&&o!==t&&F(e,o,{get:()=>i[o],enumerable:!(n=le(i,o))||n.enumerable});return e};var ye=e=>fe(F({},"__esModule",{value:!0}),e);var Re={};de(Re,{Comment:()=>U,Fragment:()=>k,PatchFlags:()=>E,ShapeFlags:()=>h,Text:()=>P,bindAttr:()=>_,bindClass:()=>M,bindEach:()=>X,bindEvent:()=>D,bindIf:()=>z,bindProp:()=>N,bindText:()=>O,compileToVapor:()=>j,createRenderer:()=>ne,createVaporApp:()=>se,createVaporElement:()=>Z,defineVaporComponent:()=>ie,getVaporDOMFactory:()=>v,parseTemplate:()=>w,renderVaporComponent:()=>ae,renderVaporNode:()=>u,setVaporDOMFactory:()=>re,vaporMount:()=>B,vaporPatch:()=>G});module.exports=ye(Re);var te=require("@lytjs/vdom");var h=(s=>(s[s.ELEMENT=1]="ELEMENT",s[s.FUNCTIONAL_COMPONENT=2]="FUNCTIONAL_COMPONENT",s[s.STATEFUL_COMPONENT=4]="STATEFUL_COMPONENT",s[s.TEXT_CHILDREN=8]="TEXT_CHILDREN",s[s.ARRAY_CHILDREN=16]="ARRAY_CHILDREN",s[s.SLOTS_CHILDREN=32]="SLOTS_CHILDREN",s))(h||{}),E=(c=>(c[c.TEXT=1]="TEXT",c[c.CLASS=2]="CLASS",c[c.STYLE=4]="STYLE",c[c.PROPS=8]="PROPS",c[c.FULL_PROPS=16]="FULL_PROPS",c[c.STABLE_FRAGMENT=32]="STABLE_FRAGMENT",c[c.KEYED_FRAGMENT=64]="KEYED_FRAGMENT",c[c.UNKEYED_FRAGMENT=128]="UNKEYED_FRAGMENT",c[c.NEED_PATCH=256]="NEED_PATCH",c[c.DYNAMIC_SLOTS=512]="DYNAMIC_SLOTS",c[c.HOISTED=-1]="HOISTED",c[c.BAIL=-2]="BAIL",c))(E||{}),k=Symbol("Fragment"),P=Symbol("Text"),U=Symbol("Comment");function V(e){return e.type===k}function T(e){return e.type===P}function b(e){return e.type===U}function q(e,i){return e.type===i.type&&e.key===i.key}function H(e){return Array.isArray(e.dynamicChildren)}function J(e,i,t,n){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n);else if(t.startsWith("on")||t.startsWith("@")){let o=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();e.addEventListener(i,o,n)}else t==="key"||t==="ref"||e.setAttribute(i,t,n)}function W(e,i,t,n,o){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n||{});else if(t.startsWith("on")||t.startsWith("@")){let r=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();o&&e.removeEventListener(i,r,o),n&&e.addEventListener(i,r,n)}else e.setAttribute(i,t,n)}function K(e,i,t,n){for(let o in n){if(o==="key"||o==="ref")continue;let r=t[o],s=n[o];s!==r&&W(e,i,o,s,r)}for(let o in t)if(!(o==="key"||o==="ref")&&!(o in n))if(o==="class")e.setClass(i,"");else if(o==="style")e.setStyle(i,{});else if(o.startsWith("on")||o.startsWith("@")){let r=o.startsWith("@")?o.slice(1).toLowerCase():o.slice(2).toLowerCase();e.removeEventListener(i,r,t[o])}else e.removeAttribute(i,o)}function Y(e,i,t,n,o,r){let{shapeFlag:s}=t;if(V(t)){me(e,i,t,n,o,r);return}if(T(t)){let a=e.createText(t.children);t.el=a,e.insert(n,a,o);return}if(b(t)){let a=e.createComment(t.children);t.el=a,e.insert(n,a,o);return}if(s&1){ue(e,i,t,n,o,r);return}if(s&6){ge(i,t,n,o,r);return}}function ue(e,i,t,n,o,r){let s=t.type,a=e.createElement(s);if(t.el=a,t.props)for(let p in t.props){let d=t.props[p];J(e,a,p,d)}let{shapeFlag:l,children:f}=t;l&8?a.textContent=f:l&16&&A(i,f,a,null,r),e.insert(n,a,o)}function A(e,i,t,n,o){for(let r=0;r<i.length;r++)e(null,i[r],t,n,o)}function me(e,i,t,n,o,r){let{children:s}=t,a=e.createComment("");e.insert(n,a,o),Array.isArray(s)&&s.length>0&&A(i,s,n,a,r),t.el=a,t.anchor=a}function ge(e,i,t,n,o){let r=i.component;r&&r.update&&r.update(),r&&r.subTree&&(e(null,r.subTree,t,n,r),i.el=r.subTree.el)}function Q(e,i,t,n){let{shapeFlag:o,children:r}=t;if(V(t)){if(Array.isArray(r))for(let s=0;s<r.length;s++)i(r[s],n);t.anchor&&t.anchor.parentNode&&e.remove(t.anchor);return}if(o&6){t.component&&t.component.subTree&&i(t.component.subTree,n);return}t.el&&e.remove(t.el)}function R(e,i){for(let t=0;t<i.length;t++)e(i[t])}var L=require("@lytjs/vdom");function S(e,i,t,n,o,r=null,s=null){if(n==null){t&&i(t,o);return}if(t===null){Y(e,$(e,i),n,o,r,s);return}if(H(n)&&H(t)){Ne(e,i,t,n,o,s);return}if(!q(t,n)){i(t,o),Y(e,$(e,i),n,o,r,s);return}n.el=t.el,n.anchor=t.anchor;let{shapeFlag:a}=n;if(V(n)){ve(e,i,t,n,o,r,s);return}if(T(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(b(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(a&1){he(e,i,t,n,s);return}if(a&6){xe(t,n,s);return}}function $(e,i){return(t,n,o,r,s)=>{S(e,i,t,n,o,r,s)}}function he(e,i,t,n,o=null){let r=n.el=t.el,s=t.props||{},a=n.props||{},{patchFlag:l,dynamicProps:f}=n;if(l&&l>0){if(l&1&&t.children!==n.children&&(r.textContent=n.children),l&2&&s.class!==a.class&&e.setClass(r,a.class),l&4&&s.style!==a.style&&e.setStyle(r,a.style||{}),l&8&&f)for(let p=0;p<f.length;p++){let d=f[p],c=s[d],y=a[d];y!==c&&W(e,r,d,y,c)}l&16&&K(e,r,s,a)}else K(e,r,s,a);(!l||!(l&1))&&ee(e,i,t,n,r,null,o)}function ee(e,i,t,n,o,r,s){let a=t.shapeFlag,l=n.shapeFlag,f=t.children,p=n.children;if(l&8){a&16&&R(i,f),f!==p&&(o.textContent=p);return}if(l&16){a&16?Ve(e,i,f,p,o,r,s):(a&8&&(o.textContent=""),A($(e,i),p,o,r,s));return}p==null&&(a&8?o.textContent="":a&16&&R(i,f))}function Ve(e,i,t,n,o,r,s){n.every(l=>l.key!==null&&l.key!==void 0)&&t.every(l=>l.key!==null&&l.key!==void 0)?(0,L.patchKeyedChildren)(t,n,o,r,s,null,!1):(0,L.patchUnkeyedChildren)(t,n,o,r,s,null,!1)}function ve(e,i,t,n,o,r,s){let a=t.children,l=n.children;Array.isArray(l)&&l.length>0?(ee(e,i,t,n,o,r,s),n.el=l[0].el,n.anchor=l[l.length-1].el?e.nextSibling(l[l.length-1].el):r):Array.isArray(a)&&a.length>0&&l===null?(R(i,a),n.el=t.el,n.anchor=t.anchor):(n.el=t.el,n.anchor=t.anchor)}function Ne(e,i,t,n,o,r){let s=t.dynamicChildren,a=n.dynamicChildren;for(let l=0;l<a.length;l++)S(e,i,s[l],a[l],o,null,r)}function xe(e,i,t){i.component=e.component,i.el=e.el,i.component&&i.component.update&&i.component.update()}function ne(e){function i(o,r){Q(e,i,o,r)}(0,te.registerDOMOperations)({insert(o,r,s){e.insert(r,o,s)},createElement(o){return e.createElement(o)},createText(o){return e.createText(o)},setText(o,r){o.nodeValue=r},setElementText(o,r){o.textContent=r},remove(o){e.remove(o)},createComment(o){return e.createComment(o)},mount(o,r,s,a,l,f,p){n(null,o,r,s,a)},patch(o,r,s,a,l,f,p,d){n(o,r,s,a,l)},unmount(o,r,s,a){i(o)},move(o,r,s){e.insert(r,o.el,s)}});function n(o,r,s,a,l){S(e,i,o,r,s,a,l)}return{mount(o,r){r.nodeType===1&&(r.textContent=""),n(null,o,r,null,null)},patch(o,r,s){var a;n(o,r,s||((a=o.el)==null?void 0:a.parentNode),null,null)},unmount(o,r){i(o,r)}}}var m=require("@lytjs/reactivity/signal");function O(e,i){return(0,m.effect)(()=>{let n=i();e.textContent=n==null?"":String(n)})}function N(e,i,t){return(0,m.effect)(()=>{let o=t();e[i]=o})}function _(e,i,t){return(0,m.effect)(()=>{let o=t();o==null||o===!1?e.removeAttribute(i):e.setAttribute(i,o===!0?"":String(o))})}function M(e,i){return(0,m.effect)(()=>{let n=i();if(typeof n=="string")e.className=n;else if(Array.isArray(n))e.className=n.filter(Boolean).join(" ");else if(typeof n=="object"&&n!==null){let o=[];for(let r of Object.keys(n))n[r]&&o.push(r);e.className=o.join(" ")}else e.className=""})}function D(e,i,t){return e.addEventListener(i,t),()=>{e.removeEventListener(i,t)}}function z(e,i){return(0,m.effect)(()=>{i()?(e.style=e.style||{},e.style.display==="none"&&(e.style.display=""),e.hidden=!1):(e.style=e.style||{},e.style.display="none",e.hidden=!0)})}function X(e,i,t,n){let o=[],r=[],s=new Map,a=(0,m.effect)(()=>{let l=i();if(!Array.isArray(l))return;let f=l.map((p,d)=>n?n(p,d):d);if(f.length===r.length){let p=!0;for(let d=0;d<f.length;d++)if(f[d]!==r[d]){p=!1;break}if(p){for(let d=0;d<l.length;d++){let c=t(l[d],d),y=o[d];y&&y.parentNode===e&&e.replaceChild(c,y),o[d]=c}return}}for(let p of o)p.parentNode===e&&e.removeChild(p);s.clear(),o=[],r=[];for(let p=0;p<l.length;p++){let d=t(l[p],p);e.appendChild(d),o.push(d),r.push(f[p]),s.set(f[p],d)}});return()=>{a();for(let l of o)l.parentNode===e&&e.removeChild(l);o=[],r=[],s.clear()}}var I=e=>{if(typeof document!="undefined")return document.createElement(e);throw new Error("[lyt:vapor] \u672A\u8BBE\u7F6E DOM \u5DE5\u5382\u51FD\u6570\u3002\u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\u8BF7\u8C03\u7528 setVaporDOMFactory()")};function re(e){I=e}function v(){return I}function Z(e,i,...t){let n={tag:e,children:[],props:{},events:{},bindings:[]};if(i)for(let[o,r]of Object.entries(i))if(o.startsWith("on")&&typeof r=="function"&&!oe(r)){let s=o.slice(2).toLowerCase();n.events[s]=r}else oe(r)?o==="textContent"||o==="text"?n.bindings.push({type:"text",target:"textContent",signal:r}):o==="className"||o==="class"?n.bindings.push({type:"class",target:"className",signal:r}):o==="style"?n.bindings.push({type:"style",target:"style",signal:r}):n.bindings.push({type:"prop",target:o,signal:r}):n.props[o]=r;for(let o of t)typeof o=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:o}):n.children.push(o);return n}function oe(e){return typeof e!="function"?!1:!!(e._subscribe||e.set)&&!e.toString().startsWith("class")}function u(e){if(e.tag==="#text"){let t=I("#text");return t.textContent=e.text||"",t.nodeType=3,t}let i=I(e.tag);e.el=i;for(let[t,n]of Object.entries(e.props))if(t==="style"&&typeof n=="object")for(let[o,r]of Object.entries(n))i.style[o]=r;else t==="className"||t==="class"?i.className=String(n):i[t]=n;for(let t of e.bindings)t.signal&&(t.type==="text"?O(i,t.signal):t.type==="prop"?N(i,t.target,t.signal):t.type==="attr"?_(i,t.target,t.signal):t.type==="class"?M(i,t.signal):t.type==="style"&&N(i,"style",t.signal));for(let[t,n]of Object.entries(e.events))D(i,t,n);for(let t of e.children){let n=u(t);i.appendChild(n)}return i}function G(e,i,t){if(e.tag!==i.tag){let r=u(i);e.el&&e.el.parentNode===t&&t.removeChild(e.el),t.appendChild(r);return}let n=e.el||u(e);i.el=n;for(let[r,s]of Object.entries(i.props))if(r==="style"&&typeof s=="object")for(let[a,l]of Object.entries(s))n.style[a]=l;else r==="className"||r==="class"?n.className=String(s):n[r]=s;i.text!==void 0&&(n.textContent=i.text);for(let[r,s]of Object.entries(e.events))i.events[r]||n.removeEventListener(r,s);for(let[r,s]of Object.entries(i.events))e.events[r]!==s&&(e.events[r]&&n.removeEventListener(r,e.events[r]),n.addEventListener(r,s));let o=Math.max(e.children.length,i.children.length);for(let r=0;r<o;r++){let s=e.children[r],a=i.children[r];if(!s&&a){let l=u(a);n.appendChild(l)}else s&&!a?s.el&&s.el.parentNode===n&&n.removeChild(s.el):s&&a&&G(s,a,n)}}function B(e,i){let t=i.setup?i.setup():{};i.beforeMount&&i.beforeMount();let n;if(i.render){let r=i.render(t,Z);n=Array.isArray(r)?r:[r]}else n=[];let o=[];for(let r of n){let s=u(r);e.appendChild(s),o.push(s)}return i.mounted&&i.mounted(),()=>{i.beforeUnmount&&i.beforeUnmount();for(let r of o)e.removeChild(r);i.unmounted&&i.unmounted()}}function w(e){let i={type:"fragment",children:[]},t=e.trim();for(;t.length>0;){let n=t.match(/^<([a-zA-Z][a-zA-Z0-9-]*)([\s\S]*?)(\/?)>/);if(n){let o=n[1],r=n[2],s=n[3]==="/",{props:a,events:l,directives:f}=Ee(r),p={type:"element",tag:o,props:a,events:l,directives:f,children:[]};if(t=t.slice(n[0].length),s){i.children.push(p);continue}let d=`</${o}>`,c=Ce(t,o);if(c===-1)throw new Error(`[lyt:vapor:compiler] \u672A\u627E\u5230\u95ED\u5408\u6807\u7B7E: </${o}>`);let y=t.slice(0,c);t=t.slice(c+d.length);let g=w(y);p.children=g.children||[],i.children.push(p)}else{let o=t.indexOf("<"),r;if(o===-1?(r=t,t=""):(r=t.slice(0,o),t=t.slice(o)),r.trim())if(r.includes("{{")){let s=Te(r);for(let a of s)a.type==="text"?i.children.push({type:"text",text:a.value}):i.children.push({type:"interpolation",expression:a.value})}else i.children.push({type:"text",text:r})}}return i}function Ce(e,i){let t=1,n=0,o=`<${i}`,r=`</${i}>`;for(;n<e.length&&t>0;){let s=e.indexOf(o,n),a=e.indexOf(r,n);if(a===-1)return-1;if(s!==-1&&s<a){let l=e[s+o.length];l===">"||l===" "||l==="/"?(t++,n=s+o.length):(n=a+r.length,t--)}else n=a+r.length,t--}return t===0?n-r.length:-1}function Ee(e){let i={},t={},n={},o=/([a-zA-Z@:][a-zA-Z0-9@:.-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g,r;for(;(r=o.exec(e))!==null;){let s=r[1],a=r[2]||r[3];if(s.startsWith("on:")){let l=s.slice(3);t[l]=a}else if(s.startsWith(":")){let l=s.slice(1);i[l]=a}else if(s==="v-if")n.if=a;else if(s==="v-each"){let l=a.match(/^\s*(\w+)\s+in\s+(.+)\s*$/);l&&(n.each={item:l[1],expression:l[2]})}else i[s]=a}return{props:i,events:t,directives:n}}function Te(e){let i=[],t=/\{\{([\s\S]*?)\}\}/g,n=0,o;for(;(o=t.exec(e))!==null;)o.index>n&&i.push({type:"text",value:e.slice(n,o.index)}),i.push({type:"interpolation",value:o[1].trim()}),n=o.index+o[0].length;return n<e.length&&i.push({type:"text",value:e.slice(n)}),i}function j(e){let i=w(e);return{render:be(i),ast:i}}function be(e){return function(t){let n=v();return C(e,t,n)}}function C(e,i,t){var n,o;if(e.type==="fragment"){if(e.children&&e.children.length===1)return C(e.children[0],i,t);let r=t("div");if(r.nodeType=11,e.children)for(let s of e.children){let a=C(s,i,t);r.appendChild(a)}return r}if(e.type==="text"){let r=t("#text");return r.textContent=e.text||"",r.nodeType=3,r}if(e.type==="interpolation"){let r=t("span"),s=e.expression||"",a=x(i,s);return r.textContent=a!=null?String(a):"",r}if(e.type==="element"){if((n=e.directives)!=null&&n.each){let{item:s,expression:a}=e.directives.each,l=x(i,a),f=t("#fragment");if(f.childNodes=[],f.nodeType=11,Array.isArray(l))for(let p=0;p<l.length;p++){let d={...i,[s]:l[p],index:p},c=t(e.tag||"div");if(e.props)for(let[y,g]of Object.entries(e.props))y==="class"||y==="className"?c.className=g:c[y]=g;if(e.children)for(let y of e.children){let g=C(y,d,t);c.appendChild(g)}f.appendChild(c)}return f}let r=t(e.tag||"div");if((o=e.directives)!=null&&o.if&&(x(i,e.directives.if)||(r.style=r.style||{},r.style.display="none",r.hidden=!0)),e.props)for(let[s,a]of Object.entries(e.props))if(s.startsWith(":")){let l=s.slice(1),f=x(i,a);r[l]=f}else s==="class"||s==="className"?r.className=a:r[s]=a;if(e.events)for(let[s,a]of Object.entries(e.events)){let l=x(i,a);typeof l=="function"&&r.addEventListener(s,l)}if(e.children)for(let s of e.children){let a=C(s,i,t);if(a.nodeType===11&&a.childNodes)for(let l of a.childNodes)r.appendChild(l);else r.appendChild(a)}return r}return t("div")}function x(e,i){let t=i.trim();if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t)){let r=e[t];return typeof r=="function"&&!r.prototype?r():r}let n=t.split("."),o=e;for(let r of n){if(o==null)return;o=o[r],typeof o=="function"&&!o.prototype&&n.indexOf(r)<n.length-1&&(o=o())}return o}function ie(e){return e}function se(e){let i=!1,t=null,n=null;return{mount(o){if(!i){if(typeof o=="string")if(typeof document!="undefined"){let r=document.querySelector(o);if(!r)throw new Error(`[lyt:vapor] \u672A\u627E\u5230\u6302\u8F7D\u76EE\u6807: ${o}`);n=r}else throw new Error("[lyt:vapor] \u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\uFF0C\u8BF7\u76F4\u63A5\u4F20\u5165\u5BB9\u5668\u5143\u7D20");else n=o;t=B(n,e),i=!0}},unmount(){i&&(t&&(t(),t=null),i=!1,n=null)}}}function ae(e){let i=e.setup?e.setup():{};e.beforeMount&&e.beforeMount();let t;if(e.template){let{render:n}=j(e.template);t=n(i)}else if(e.render){let n=e.render(i,Ae),o=Array.isArray(n)?n:[n];if(o.length===1)t=u(o[0]);else{t=v()("div");for(let s of o)t.appendChild(u(s))}}else throw new Error("[lyt:vapor] \u7EC4\u4EF6\u5FC5\u987B\u63D0\u4F9B template \u6216 render \u51FD\u6570");return e.mounted&&e.mounted(),t}function Ae(e,i,...t){let n={tag:e,children:[],props:i||{},events:{},bindings:[]};for(let o of t)typeof o=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:o}):n.children.push(o);return n}
|
package/dist/vapor.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{registerDOMOperations as ce}from"@lytjs/vdom";var V=(s=>(s[s.ELEMENT=1]="ELEMENT",s[s.FUNCTIONAL_COMPONENT=2]="FUNCTIONAL_COMPONENT",s[s.STATEFUL_COMPONENT=4]="STATEFUL_COMPONENT",s[s.TEXT_CHILDREN=8]="TEXT_CHILDREN",s[s.ARRAY_CHILDREN=16]="ARRAY_CHILDREN",s[s.SLOTS_CHILDREN=32]="SLOTS_CHILDREN",s))(V||{}),S=(c=>(c[c.TEXT=1]="TEXT",c[c.CLASS=2]="CLASS",c[c.STYLE=4]="STYLE",c[c.PROPS=8]="PROPS",c[c.FULL_PROPS=16]="FULL_PROPS",c[c.STABLE_FRAGMENT=32]="STABLE_FRAGMENT",c[c.KEYED_FRAGMENT=64]="KEYED_FRAGMENT",c[c.UNKEYED_FRAGMENT=128]="UNKEYED_FRAGMENT",c[c.NEED_PATCH=256]="NEED_PATCH",c[c.DYNAMIC_SLOTS=512]="DYNAMIC_SLOTS",c[c.HOISTED=-1]="HOISTED",c[c.BAIL=-2]="BAIL",c))(S||{}),H=Symbol("Fragment"),W=Symbol("Text"),K=Symbol("Comment");function g(e){return e.type===H}function C(e){return e.type===W}function E(e){return e.type===K}function Y(e,i){return e.type===i.type&&e.key===i.key}function O(e){return Array.isArray(e.dynamicChildren)}function $(e,i,t,n){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n);else if(t.startsWith("on")||t.startsWith("@")){let r=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();e.addEventListener(i,r,n)}else t==="key"||t==="ref"||e.setAttribute(i,t,n)}function M(e,i,t,n,r){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n||{});else if(t.startsWith("on")||t.startsWith("@")){let o=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();r&&e.removeEventListener(i,o,r),n&&e.addEventListener(i,o,n)}else e.setAttribute(i,t,n)}function _(e,i,t,n){for(let r in n){if(r==="key"||r==="ref")continue;let o=t[r],s=n[r];s!==o&&M(e,i,r,s,o)}for(let r in t)if(!(r==="key"||r==="ref")&&!(r in n))if(r==="class")e.setClass(i,"");else if(r==="style")e.setStyle(i,{});else if(r.startsWith("on")||r.startsWith("@")){let o=r.startsWith("@")?r.slice(1).toLowerCase():r.slice(2).toLowerCase();e.removeEventListener(i,o,t[r])}else e.removeAttribute(i,r)}function D(e,i,t,n,r,o){let{shapeFlag:s}=t;if(g(t)){te(e,i,t,n,r,o);return}if(C(t)){let a=e.createText(t.children);t.el=a,e.insert(n,a,r);return}if(E(t)){let a=e.createComment(t.children);t.el=a,e.insert(n,a,r);return}if(s&1){ee(e,i,t,n,r,o);return}if(s&6){ne(i,t,n,r,o);return}}function ee(e,i,t,n,r,o){let s=t.type,a=e.createElement(s);if(t.el=a,t.props)for(let p in t.props){let d=t.props[p];$(e,a,p,d)}let{shapeFlag:l,children:f}=t;l&8?a.textContent=f:l&16&&b(i,f,a,null,o),e.insert(n,a,r)}function b(e,i,t,n,r){for(let o=0;o<i.length;o++)e(null,i[o],t,n,r)}function te(e,i,t,n,r,o){let{children:s}=t,a=e.createComment("");e.insert(n,a,r),Array.isArray(s)&&s.length>0&&b(i,s,n,a,o),t.el=a,t.anchor=a}function ne(e,i,t,n,r){let o=i.component;o&&o.update&&o.update(),o&&o.subTree&&(e(null,o.subTree,t,n,o),i.el=o.subTree.el)}function z(e,i,t,n){let{shapeFlag:r,children:o}=t;if(g(t)){if(Array.isArray(o))for(let s=0;s<o.length;s++)i(o[s],n);t.anchor&&t.anchor.parentNode&&e.remove(t.anchor);return}if(r&6){t.component&&t.component.subTree&&i(t.component.subTree,n);return}t.el&&e.remove(t.el)}function T(e,i){for(let t=0;t<i.length;t++)e(i[t])}import{patchKeyedChildren as oe,patchUnkeyedChildren as re}from"@lytjs/vdom";function A(e,i,t,n,r,o=null,s=null){if(n==null){t&&i(t,r);return}if(t===null){D(e,I(e,i),n,r,o,s);return}if(O(n)&&O(t)){le(e,i,t,n,r,s);return}if(!Y(t,n)){i(t,r),D(e,I(e,i),n,r,o,s);return}n.el=t.el,n.anchor=t.anchor;let{shapeFlag:a}=n;if(g(n)){ae(e,i,t,n,r,o,s);return}if(C(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(E(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(a&1){ie(e,i,t,n,s);return}if(a&6){pe(t,n,s);return}}function I(e,i){return(t,n,r,o,s)=>{A(e,i,t,n,r,o,s)}}function ie(e,i,t,n,r=null){let o=n.el=t.el,s=t.props||{},a=n.props||{},{patchFlag:l,dynamicProps:f}=n;if(l&&l>0){if(l&1&&t.children!==n.children&&(o.textContent=n.children),l&2&&s.class!==a.class&&e.setClass(o,a.class),l&4&&s.style!==a.style&&e.setStyle(o,a.style||{}),l&8&&f)for(let p=0;p<f.length;p++){let d=f[p],c=s[d],y=a[d];y!==c&&M(e,o,d,y,c)}l&16&&_(e,o,s,a)}else _(e,o,s,a);(!l||!(l&1))&&X(e,i,t,n,o,null,r)}function X(e,i,t,n,r,o,s){let a=t.shapeFlag,l=n.shapeFlag,f=t.children,p=n.children;if(l&8){a&16&&T(i,f),f!==p&&(r.textContent=p);return}if(l&16){a&16?se(e,i,f,p,r,o,s):(a&8&&(r.textContent=""),b(I(e,i),p,r,o,s));return}p==null&&(a&8?r.textContent="":a&16&&T(i,f))}function se(e,i,t,n,r,o,s){n.every(l=>l.key!==null&&l.key!==void 0)&&t.every(l=>l.key!==null&&l.key!==void 0)?oe(t,n,r,o,s,null,!1):re(t,n,r,o,s,null,!1)}function ae(e,i,t,n,r,o,s){let a=t.children,l=n.children;Array.isArray(l)&&l.length>0?(X(e,i,t,n,r,o,s),n.el=l[0].el,n.anchor=l[l.length-1].el?e.nextSibling(l[l.length-1].el):o):Array.isArray(a)&&a.length>0&&l===null?(T(i,a),n.el=t.el,n.anchor=t.anchor):(n.el=t.el,n.anchor=t.anchor)}function le(e,i,t,n,r,o){let s=t.dynamicChildren,a=n.dynamicChildren;for(let l=0;l<a.length;l++)A(e,i,s[l],a[l],r,null,o)}function pe(e,i,t){i.component=e.component,i.el=e.el,i.component&&i.component.update&&i.component.update()}function de(e){function i(r,o){z(e,i,r,o)}ce({insert(r,o,s){e.insert(o,r,s)},createElement(r){return e.createElement(r)},createText(r){return e.createText(r)},setText(r,o){r.nodeValue=o},setElementText(r,o){r.textContent=o},remove(r){e.remove(r)},createComment(r){return e.createComment(r)},mount(r,o,s,a,l,f,p){n(null,r,o,s,a)},patch(r,o,s,a,l,f,p,d){n(r,o,s,a,l)},unmount(r,o,s,a){i(r)},move(r,o,s){e.insert(o,r.el,s)}});function n(r,o,s,a,l){A(e,i,r,o,s,a,l)}return{mount(r,o){o.nodeType===1&&(o.textContent=""),n(null,r,o,null,null)},patch(r,o,s){var a;n(r,o,s||((a=r.el)==null?void 0:a.parentNode),null,null)},unmount(r,o){i(r,o)}}}import{effect as h}from"@lytjs/reactivity/signal";function B(e,i){return h(()=>{let n=i();e.textContent=n==null?"":String(n)})}function R(e,i,t){return h(()=>{let r=t();e[i]=r})}function F(e,i,t){return h(()=>{let r=t();r==null||r===!1?e.removeAttribute(i):e.setAttribute(i,r===!0?"":String(r))})}function w(e,i){return h(()=>{let n=i();if(typeof n=="string")e.className=n;else if(Array.isArray(n))e.className=n.filter(Boolean).join(" ");else if(typeof n=="object"&&n!==null){let r=[];for(let o of Object.keys(n))n[o]&&r.push(o);e.className=r.join(" ")}else e.className=""})}function j(e,i,t){return e.addEventListener(i,t),()=>{e.removeEventListener(i,t)}}function Z(e,i){return h(()=>{i()?(e.style=e.style||{},e.style.display==="none"&&(e.style.display=""),e.hidden=!1):(e.style=e.style||{},e.style.display="none",e.hidden=!0)})}function G(e,i,t,n){let r=[],o=[],s=new Map,a=h(()=>{let l=i();if(!Array.isArray(l))return;let f=l.map((p,d)=>n?n(p,d):d);if(f.length===o.length){let p=!0;for(let d=0;d<f.length;d++)if(f[d]!==o[d]){p=!1;break}if(p){for(let d=0;d<l.length;d++){let c=t(l[d],d),y=r[d];y&&y.parentNode===e&&e.replaceChild(c,y),r[d]=c}return}}for(let p of r)p.parentNode===e&&e.removeChild(p);s.clear(),r=[],o=[];for(let p=0;p<l.length;p++){let d=t(l[p],p);e.appendChild(d),r.push(d),o.push(f[p]),s.set(f[p],d)}});return()=>{a();for(let l of r)l.parentNode===e&&e.removeChild(l);r=[],o=[],s.clear()}}var L=e=>{if(typeof document!="undefined")return document.createElement(e);throw new Error("[lyt:vapor] \u672A\u8BBE\u7F6E DOM \u5DE5\u5382\u51FD\u6570\u3002\u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\u8BF7\u8C03\u7528 setVaporDOMFactory()")};function fe(e){L=e}function N(){return L}function J(e,i,...t){let n={tag:e,children:[],props:{},events:{},bindings:[]};if(i)for(let[r,o]of Object.entries(i))if(r.startsWith("on")&&typeof o=="function"&&!q(o)){let s=r.slice(2).toLowerCase();n.events[s]=o}else q(o)?r==="textContent"||r==="text"?n.bindings.push({type:"text",target:"textContent",signal:o}):r==="className"||r==="class"?n.bindings.push({type:"class",target:"className",signal:o}):r==="style"?n.bindings.push({type:"style",target:"style",signal:o}):n.bindings.push({type:"prop",target:r,signal:o}):n.props[r]=o;for(let r of t)typeof r=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:r}):n.children.push(r);return n}function q(e){return typeof e!="function"?!1:!!(e._subscribe||e.set)&&!e.toString().startsWith("class")}function u(e){if(e.tag==="#text"){let t=L("#text");return t.textContent=e.text||"",t.nodeType=3,t}let i=L(e.tag);e.el=i;for(let[t,n]of Object.entries(e.props))if(t==="style"&&typeof n=="object")for(let[r,o]of Object.entries(n))i.style[r]=o;else t==="className"||t==="class"?i.className=String(n):i[t]=n;for(let t of e.bindings)t.type==="text"?B(i,t.signal):t.type==="prop"?R(i,t.target,t.signal):t.type==="attr"?F(i,t.target,t.signal):t.type==="class"?w(i,t.signal):t.type==="style"&&R(i,"style",t.signal);for(let[t,n]of Object.entries(e.events))j(i,t,n);for(let t of e.children){let n=u(t);i.appendChild(n)}return i}function Q(e,i,t){if(e.tag!==i.tag){let o=u(i);e.el&&e.el.parentNode===t&&t.removeChild(e.el),t.appendChild(o);return}let n=e.el||u(e);i.el=n;for(let[o,s]of Object.entries(i.props))if(o==="style"&&typeof s=="object")for(let[a,l]of Object.entries(s))n.style[a]=l;else o==="className"||o==="class"?n.className=String(s):n[o]=s;i.text!==void 0&&(n.textContent=i.text);for(let[o,s]of Object.entries(e.events))i.events[o]||n.removeEventListener(o,s);for(let[o,s]of Object.entries(i.events))e.events[o]!==s&&(e.events[o]&&n.removeEventListener(o,e.events[o]),n.addEventListener(o,s));let r=Math.max(e.children.length,i.children.length);for(let o=0;o<r;o++){let s=e.children[o],a=i.children[o];if(!s&&a){let l=u(a);n.appendChild(l)}else s&&!a?s.el&&s.el.parentNode===n&&n.removeChild(s.el):s&&a&&Q(s,a,n)}}function P(e,i){let t=i.setup?i.setup():{};i.beforeMount&&i.beforeMount();let n;if(i.render){let o=i.render(t,J);n=Array.isArray(o)?o:[o]}else n=[];let r=[];for(let o of n){let s=u(o);e.appendChild(s),r.push(s)}return i.mounted&&i.mounted(),()=>{i.beforeUnmount&&i.beforeUnmount();for(let o of r)e.removeChild(o);i.unmounted&&i.unmounted()}}function k(e){let i={type:"fragment",children:[]},t=e.trim();for(;t.length>0;){let n=t.match(/^<([a-zA-Z][a-zA-Z0-9-]*)([\s\S]*?)(\/?)>/);if(n){let r=n[1],o=n[2],s=n[3]==="/",{props:a,events:l,directives:f}=ue(o),p={type:"element",tag:r,props:a,events:l,directives:f,children:[]};if(t=t.slice(n[0].length),s){i.children.push(p);continue}let d=`</${r}>`,c=ye(t,r);if(c===-1)throw new Error(`[lyt:vapor:compiler] \u672A\u627E\u5230\u95ED\u5408\u6807\u7B7E: </${r}>`);let y=t.slice(0,c);t=t.slice(c+d.length);let m=k(y);p.children=m.children||[],i.children.push(p)}else{let r=t.indexOf("<"),o;if(r===-1?(o=t,t=""):(o=t.slice(0,r),t=t.slice(r)),o.trim())if(o.includes("{{")){let s=me(o);for(let a of s)a.type==="text"?i.children.push({type:"text",text:a.value}):i.children.push({type:"interpolation",expression:a.value})}else i.children.push({type:"text",text:o})}}return i}function ye(e,i){let t=1,n=0,r=`<${i}`,o=`</${i}>`;for(;n<e.length&&t>0;){let s=e.indexOf(r,n),a=e.indexOf(o,n);if(a===-1)return-1;if(s!==-1&&s<a){let l=e[s+r.length];l===">"||l===" "||l==="/"?(t++,n=s+r.length):(n=a+o.length,t--)}else n=a+o.length,t--}return t===0?n-o.length:-1}function ue(e){let i={},t={},n={},r=/([a-zA-Z@:][a-zA-Z0-9@:.-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g,o;for(;(o=r.exec(e))!==null;){let s=o[1],a=o[2]||o[3];if(s.startsWith("on:")){let l=s.slice(3);t[l]=a}else if(s.startsWith(":")){let l=s.slice(1);i[l]=a}else if(s==="v-if")n.if=a;else if(s==="v-each"){let l=a.match(/^\s*(\w+)\s+in\s+(.+)\s*$/);l&&(n.each={item:l[1],expression:l[2]})}else i[s]=a}return{props:i,events:t,directives:n}}function me(e){let i=[],t=/\{\{([\s\S]*?)\}\}/g,n=0,r;for(;(r=t.exec(e))!==null;)r.index>n&&i.push({type:"text",value:e.slice(n,r.index)}),i.push({type:"interpolation",value:r[1].trim()}),n=r.index+r[0].length;return n<e.length&&i.push({type:"text",value:e.slice(n)}),i}function U(e){let i=k(e);return{render:ge(i),ast:i}}function ge(e){return function(t){let n=N();return x(e,t,n)}}function x(e,i,t){var n,r;if(e.type==="fragment"){if(e.children&&e.children.length===1)return x(e.children[0],i,t);let o=t("div");if(o.nodeType=11,e.children)for(let s of e.children){let a=x(s,i,t);o.appendChild(a)}return o}if(e.type==="text"){let o=t("#text");return o.textContent=e.text||"",o.nodeType=3,o}if(e.type==="interpolation"){let o=t("span"),s=e.expression||"",a=v(i,s);return o.textContent=a!=null?String(a):"",o}if(e.type==="element"){if((n=e.directives)!=null&&n.each){let{item:s,expression:a}=e.directives.each,l=v(i,a),f=t("#fragment");if(f.childNodes=[],f.nodeType=11,Array.isArray(l))for(let p=0;p<l.length;p++){let d={...i,[s]:l[p],index:p},c=t(e.tag);if(e.props)for(let[y,m]of Object.entries(e.props))y==="class"||y==="className"?c.className=m:c[y]=m;if(e.children)for(let y of e.children){let m=x(y,d,t);c.appendChild(m)}f.appendChild(c)}return f}let o=t(e.tag);if((r=e.directives)!=null&&r.if&&(v(i,e.directives.if)||(o.style=o.style||{},o.style.display="none",o.hidden=!0)),e.props)for(let[s,a]of Object.entries(e.props))if(s.startsWith(":")){let l=s.slice(1),f=v(i,a);o[l]=f}else s==="class"||s==="className"?o.className=a:o[s]=a;if(e.events)for(let[s,a]of Object.entries(e.events)){let l=v(i,a);typeof l=="function"&&o.addEventListener(s,l)}if(e.children)for(let s of e.children){let a=x(s,i,t);if(a.nodeType===11&&a.childNodes)for(let l of a.childNodes)o.appendChild(l);else o.appendChild(a)}return o}return t("div")}function v(e,i){let t=i.trim();if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t)){let o=e[t];return typeof o=="function"&&!o.prototype?o():o}let n=t.split("."),r=e;for(let o of n){if(r==null)return;r=r[o],typeof r=="function"&&!r.prototype&&n.indexOf(o)<n.length-1&&(r=r())}return r}function he(e){return e}function Ve(e){let i=!1,t=null,n=null;return{mount(r){if(!i){if(typeof r=="string")if(typeof document!="undefined"){let o=document.querySelector(r);if(!o)throw new Error(`[lyt:vapor] \u672A\u627E\u5230\u6302\u8F7D\u76EE\u6807: ${r}`);n=o}else throw new Error("[lyt:vapor] \u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\uFF0C\u8BF7\u76F4\u63A5\u4F20\u5165\u5BB9\u5668\u5143\u7D20");else n=r;t=P(n,e),i=!0}},unmount(){i&&(t&&(t(),t=null),i=!1,n=null)}}}function Ne(e){let i=e.setup?e.setup():{};e.beforeMount&&e.beforeMount();let t;if(e.template){let{render:n}=U(e.template);t=n(i)}else if(e.render){let n=e.render(i,ve),r=Array.isArray(n)?n:[n];if(r.length===1)t=u(r[0]);else{t=N()("div");for(let s of r)t.appendChild(u(s))}}else throw new Error("[lyt:vapor] \u7EC4\u4EF6\u5FC5\u987B\u63D0\u4F9B template \u6216 render \u51FD\u6570");return e.mounted&&e.mounted(),t}function ve(e,i,...t){let n={tag:e,children:[],props:i||{},events:{},bindings:[]};for(let r of t)typeof r=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:r}):n.children.push(r);return n}export{K as Comment,H as Fragment,S as PatchFlags,V as ShapeFlags,W as Text,F as bindAttr,w as bindClass,G as bindEach,j as bindEvent,Z as bindIf,R as bindProp,B as bindText,U as compileToVapor,de as createRenderer,Ve as createVaporApp,J as createVaporElement,he as defineVaporComponent,N as getVaporDOMFactory,k as parseTemplate,Ne as renderVaporComponent,u as renderVaporNode,fe as setVaporDOMFactory,P as vaporMount,Q as vaporPatch};
|
|
1
|
+
import{registerDOMOperations as ce}from"@lytjs/vdom";var V=(s=>(s[s.ELEMENT=1]="ELEMENT",s[s.FUNCTIONAL_COMPONENT=2]="FUNCTIONAL_COMPONENT",s[s.STATEFUL_COMPONENT=4]="STATEFUL_COMPONENT",s[s.TEXT_CHILDREN=8]="TEXT_CHILDREN",s[s.ARRAY_CHILDREN=16]="ARRAY_CHILDREN",s[s.SLOTS_CHILDREN=32]="SLOTS_CHILDREN",s))(V||{}),S=(c=>(c[c.TEXT=1]="TEXT",c[c.CLASS=2]="CLASS",c[c.STYLE=4]="STYLE",c[c.PROPS=8]="PROPS",c[c.FULL_PROPS=16]="FULL_PROPS",c[c.STABLE_FRAGMENT=32]="STABLE_FRAGMENT",c[c.KEYED_FRAGMENT=64]="KEYED_FRAGMENT",c[c.UNKEYED_FRAGMENT=128]="UNKEYED_FRAGMENT",c[c.NEED_PATCH=256]="NEED_PATCH",c[c.DYNAMIC_SLOTS=512]="DYNAMIC_SLOTS",c[c.HOISTED=-1]="HOISTED",c[c.BAIL=-2]="BAIL",c))(S||{}),H=Symbol("Fragment"),W=Symbol("Text"),K=Symbol("Comment");function g(e){return e.type===H}function C(e){return e.type===W}function E(e){return e.type===K}function Y(e,i){return e.type===i.type&&e.key===i.key}function O(e){return Array.isArray(e.dynamicChildren)}function $(e,i,t,n){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n);else if(t.startsWith("on")||t.startsWith("@")){let r=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();e.addEventListener(i,r,n)}else t==="key"||t==="ref"||e.setAttribute(i,t,n)}function _(e,i,t,n,r){if(t==="class")e.setClass(i,n);else if(t==="style")e.setStyle(i,n||{});else if(t.startsWith("on")||t.startsWith("@")){let o=t.startsWith("@")?t.slice(1).toLowerCase():t.slice(2).toLowerCase();r&&e.removeEventListener(i,o,r),n&&e.addEventListener(i,o,n)}else e.setAttribute(i,t,n)}function M(e,i,t,n){for(let r in n){if(r==="key"||r==="ref")continue;let o=t[r],s=n[r];s!==o&&_(e,i,r,s,o)}for(let r in t)if(!(r==="key"||r==="ref")&&!(r in n))if(r==="class")e.setClass(i,"");else if(r==="style")e.setStyle(i,{});else if(r.startsWith("on")||r.startsWith("@")){let o=r.startsWith("@")?r.slice(1).toLowerCase():r.slice(2).toLowerCase();e.removeEventListener(i,o,t[r])}else e.removeAttribute(i,r)}function D(e,i,t,n,r,o){let{shapeFlag:s}=t;if(g(t)){te(e,i,t,n,r,o);return}if(C(t)){let a=e.createText(t.children);t.el=a,e.insert(n,a,r);return}if(E(t)){let a=e.createComment(t.children);t.el=a,e.insert(n,a,r);return}if(s&1){ee(e,i,t,n,r,o);return}if(s&6){ne(i,t,n,r,o);return}}function ee(e,i,t,n,r,o){let s=t.type,a=e.createElement(s);if(t.el=a,t.props)for(let p in t.props){let d=t.props[p];$(e,a,p,d)}let{shapeFlag:l,children:f}=t;l&8?a.textContent=f:l&16&&T(i,f,a,null,o),e.insert(n,a,r)}function T(e,i,t,n,r){for(let o=0;o<i.length;o++)e(null,i[o],t,n,r)}function te(e,i,t,n,r,o){let{children:s}=t,a=e.createComment("");e.insert(n,a,r),Array.isArray(s)&&s.length>0&&T(i,s,n,a,o),t.el=a,t.anchor=a}function ne(e,i,t,n,r){let o=i.component;o&&o.update&&o.update(),o&&o.subTree&&(e(null,o.subTree,t,n,o),i.el=o.subTree.el)}function z(e,i,t,n){let{shapeFlag:r,children:o}=t;if(g(t)){if(Array.isArray(o))for(let s=0;s<o.length;s++)i(o[s],n);t.anchor&&t.anchor.parentNode&&e.remove(t.anchor);return}if(r&6){t.component&&t.component.subTree&&i(t.component.subTree,n);return}t.el&&e.remove(t.el)}function b(e,i){for(let t=0;t<i.length;t++)e(i[t])}import{patchKeyedChildren as oe,patchUnkeyedChildren as re}from"@lytjs/vdom";function A(e,i,t,n,r,o=null,s=null){if(n==null){t&&i(t,r);return}if(t===null){D(e,I(e,i),n,r,o,s);return}if(O(n)&&O(t)){le(e,i,t,n,r,s);return}if(!Y(t,n)){i(t,r),D(e,I(e,i),n,r,o,s);return}n.el=t.el,n.anchor=t.anchor;let{shapeFlag:a}=n;if(g(n)){ae(e,i,t,n,r,o,s);return}if(C(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(E(n)){n.children!==t.children&&(n.el.nodeValue=n.children);return}if(a&1){ie(e,i,t,n,s);return}if(a&6){pe(t,n,s);return}}function I(e,i){return(t,n,r,o,s)=>{A(e,i,t,n,r,o,s)}}function ie(e,i,t,n,r=null){let o=n.el=t.el,s=t.props||{},a=n.props||{},{patchFlag:l,dynamicProps:f}=n;if(l&&l>0){if(l&1&&t.children!==n.children&&(o.textContent=n.children),l&2&&s.class!==a.class&&e.setClass(o,a.class),l&4&&s.style!==a.style&&e.setStyle(o,a.style||{}),l&8&&f)for(let p=0;p<f.length;p++){let d=f[p],c=s[d],y=a[d];y!==c&&_(e,o,d,y,c)}l&16&&M(e,o,s,a)}else M(e,o,s,a);(!l||!(l&1))&&X(e,i,t,n,o,null,r)}function X(e,i,t,n,r,o,s){let a=t.shapeFlag,l=n.shapeFlag,f=t.children,p=n.children;if(l&8){a&16&&b(i,f),f!==p&&(r.textContent=p);return}if(l&16){a&16?se(e,i,f,p,r,o,s):(a&8&&(r.textContent=""),T(I(e,i),p,r,o,s));return}p==null&&(a&8?r.textContent="":a&16&&b(i,f))}function se(e,i,t,n,r,o,s){n.every(l=>l.key!==null&&l.key!==void 0)&&t.every(l=>l.key!==null&&l.key!==void 0)?oe(t,n,r,o,s,null,!1):re(t,n,r,o,s,null,!1)}function ae(e,i,t,n,r,o,s){let a=t.children,l=n.children;Array.isArray(l)&&l.length>0?(X(e,i,t,n,r,o,s),n.el=l[0].el,n.anchor=l[l.length-1].el?e.nextSibling(l[l.length-1].el):o):Array.isArray(a)&&a.length>0&&l===null?(b(i,a),n.el=t.el,n.anchor=t.anchor):(n.el=t.el,n.anchor=t.anchor)}function le(e,i,t,n,r,o){let s=t.dynamicChildren,a=n.dynamicChildren;for(let l=0;l<a.length;l++)A(e,i,s[l],a[l],r,null,o)}function pe(e,i,t){i.component=e.component,i.el=e.el,i.component&&i.component.update&&i.component.update()}function de(e){function i(r,o){z(e,i,r,o)}ce({insert(r,o,s){e.insert(o,r,s)},createElement(r){return e.createElement(r)},createText(r){return e.createText(r)},setText(r,o){r.nodeValue=o},setElementText(r,o){r.textContent=o},remove(r){e.remove(r)},createComment(r){return e.createComment(r)},mount(r,o,s,a,l,f,p){n(null,r,o,s,a)},patch(r,o,s,a,l,f,p,d){n(r,o,s,a,l)},unmount(r,o,s,a){i(r)},move(r,o,s){e.insert(o,r.el,s)}});function n(r,o,s,a,l){A(e,i,r,o,s,a,l)}return{mount(r,o){o.nodeType===1&&(o.textContent=""),n(null,r,o,null,null)},patch(r,o,s){var a;n(r,o,s||((a=r.el)==null?void 0:a.parentNode),null,null)},unmount(r,o){i(r,o)}}}import{effect as h}from"@lytjs/reactivity/signal";function B(e,i){return h(()=>{let n=i();e.textContent=n==null?"":String(n)})}function R(e,i,t){return h(()=>{let r=t();e[i]=r})}function w(e,i,t){return h(()=>{let r=t();r==null||r===!1?e.removeAttribute(i):e.setAttribute(i,r===!0?"":String(r))})}function j(e,i){return h(()=>{let n=i();if(typeof n=="string")e.className=n;else if(Array.isArray(n))e.className=n.filter(Boolean).join(" ");else if(typeof n=="object"&&n!==null){let r=[];for(let o of Object.keys(n))n[o]&&r.push(o);e.className=r.join(" ")}else e.className=""})}function F(e,i,t){return e.addEventListener(i,t),()=>{e.removeEventListener(i,t)}}function Z(e,i){return h(()=>{i()?(e.style=e.style||{},e.style.display==="none"&&(e.style.display=""),e.hidden=!1):(e.style=e.style||{},e.style.display="none",e.hidden=!0)})}function G(e,i,t,n){let r=[],o=[],s=new Map,a=h(()=>{let l=i();if(!Array.isArray(l))return;let f=l.map((p,d)=>n?n(p,d):d);if(f.length===o.length){let p=!0;for(let d=0;d<f.length;d++)if(f[d]!==o[d]){p=!1;break}if(p){for(let d=0;d<l.length;d++){let c=t(l[d],d),y=r[d];y&&y.parentNode===e&&e.replaceChild(c,y),r[d]=c}return}}for(let p of r)p.parentNode===e&&e.removeChild(p);s.clear(),r=[],o=[];for(let p=0;p<l.length;p++){let d=t(l[p],p);e.appendChild(d),r.push(d),o.push(f[p]),s.set(f[p],d)}});return()=>{a();for(let l of r)l.parentNode===e&&e.removeChild(l);r=[],o=[],s.clear()}}var L=e=>{if(typeof document!="undefined")return document.createElement(e);throw new Error("[lyt:vapor] \u672A\u8BBE\u7F6E DOM \u5DE5\u5382\u51FD\u6570\u3002\u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\u8BF7\u8C03\u7528 setVaporDOMFactory()")};function fe(e){L=e}function v(){return L}function J(e,i,...t){let n={tag:e,children:[],props:{},events:{},bindings:[]};if(i)for(let[r,o]of Object.entries(i))if(r.startsWith("on")&&typeof o=="function"&&!q(o)){let s=r.slice(2).toLowerCase();n.events[s]=o}else q(o)?r==="textContent"||r==="text"?n.bindings.push({type:"text",target:"textContent",signal:o}):r==="className"||r==="class"?n.bindings.push({type:"class",target:"className",signal:o}):r==="style"?n.bindings.push({type:"style",target:"style",signal:o}):n.bindings.push({type:"prop",target:r,signal:o}):n.props[r]=o;for(let r of t)typeof r=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:r}):n.children.push(r);return n}function q(e){return typeof e!="function"?!1:!!(e._subscribe||e.set)&&!e.toString().startsWith("class")}function u(e){if(e.tag==="#text"){let t=L("#text");return t.textContent=e.text||"",t.nodeType=3,t}let i=L(e.tag);e.el=i;for(let[t,n]of Object.entries(e.props))if(t==="style"&&typeof n=="object")for(let[r,o]of Object.entries(n))i.style[r]=o;else t==="className"||t==="class"?i.className=String(n):i[t]=n;for(let t of e.bindings)t.signal&&(t.type==="text"?B(i,t.signal):t.type==="prop"?R(i,t.target,t.signal):t.type==="attr"?w(i,t.target,t.signal):t.type==="class"?j(i,t.signal):t.type==="style"&&R(i,"style",t.signal));for(let[t,n]of Object.entries(e.events))F(i,t,n);for(let t of e.children){let n=u(t);i.appendChild(n)}return i}function Q(e,i,t){if(e.tag!==i.tag){let o=u(i);e.el&&e.el.parentNode===t&&t.removeChild(e.el),t.appendChild(o);return}let n=e.el||u(e);i.el=n;for(let[o,s]of Object.entries(i.props))if(o==="style"&&typeof s=="object")for(let[a,l]of Object.entries(s))n.style[a]=l;else o==="className"||o==="class"?n.className=String(s):n[o]=s;i.text!==void 0&&(n.textContent=i.text);for(let[o,s]of Object.entries(e.events))i.events[o]||n.removeEventListener(o,s);for(let[o,s]of Object.entries(i.events))e.events[o]!==s&&(e.events[o]&&n.removeEventListener(o,e.events[o]),n.addEventListener(o,s));let r=Math.max(e.children.length,i.children.length);for(let o=0;o<r;o++){let s=e.children[o],a=i.children[o];if(!s&&a){let l=u(a);n.appendChild(l)}else s&&!a?s.el&&s.el.parentNode===n&&n.removeChild(s.el):s&&a&&Q(s,a,n)}}function k(e,i){let t=i.setup?i.setup():{};i.beforeMount&&i.beforeMount();let n;if(i.render){let o=i.render(t,J);n=Array.isArray(o)?o:[o]}else n=[];let r=[];for(let o of n){let s=u(o);e.appendChild(s),r.push(s)}return i.mounted&&i.mounted(),()=>{i.beforeUnmount&&i.beforeUnmount();for(let o of r)e.removeChild(o);i.unmounted&&i.unmounted()}}function P(e){let i={type:"fragment",children:[]},t=e.trim();for(;t.length>0;){let n=t.match(/^<([a-zA-Z][a-zA-Z0-9-]*)([\s\S]*?)(\/?)>/);if(n){let r=n[1],o=n[2],s=n[3]==="/",{props:a,events:l,directives:f}=ue(o),p={type:"element",tag:r,props:a,events:l,directives:f,children:[]};if(t=t.slice(n[0].length),s){i.children.push(p);continue}let d=`</${r}>`,c=ye(t,r);if(c===-1)throw new Error(`[lyt:vapor:compiler] \u672A\u627E\u5230\u95ED\u5408\u6807\u7B7E: </${r}>`);let y=t.slice(0,c);t=t.slice(c+d.length);let m=P(y);p.children=m.children||[],i.children.push(p)}else{let r=t.indexOf("<"),o;if(r===-1?(o=t,t=""):(o=t.slice(0,r),t=t.slice(r)),o.trim())if(o.includes("{{")){let s=me(o);for(let a of s)a.type==="text"?i.children.push({type:"text",text:a.value}):i.children.push({type:"interpolation",expression:a.value})}else i.children.push({type:"text",text:o})}}return i}function ye(e,i){let t=1,n=0,r=`<${i}`,o=`</${i}>`;for(;n<e.length&&t>0;){let s=e.indexOf(r,n),a=e.indexOf(o,n);if(a===-1)return-1;if(s!==-1&&s<a){let l=e[s+r.length];l===">"||l===" "||l==="/"?(t++,n=s+r.length):(n=a+o.length,t--)}else n=a+o.length,t--}return t===0?n-o.length:-1}function ue(e){let i={},t={},n={},r=/([a-zA-Z@:][a-zA-Z0-9@:.-]*)\s*=\s*(?:"([^"]*)"|'([^']*)')/g,o;for(;(o=r.exec(e))!==null;){let s=o[1],a=o[2]||o[3];if(s.startsWith("on:")){let l=s.slice(3);t[l]=a}else if(s.startsWith(":")){let l=s.slice(1);i[l]=a}else if(s==="v-if")n.if=a;else if(s==="v-each"){let l=a.match(/^\s*(\w+)\s+in\s+(.+)\s*$/);l&&(n.each={item:l[1],expression:l[2]})}else i[s]=a}return{props:i,events:t,directives:n}}function me(e){let i=[],t=/\{\{([\s\S]*?)\}\}/g,n=0,r;for(;(r=t.exec(e))!==null;)r.index>n&&i.push({type:"text",value:e.slice(n,r.index)}),i.push({type:"interpolation",value:r[1].trim()}),n=r.index+r[0].length;return n<e.length&&i.push({type:"text",value:e.slice(n)}),i}function U(e){let i=P(e);return{render:ge(i),ast:i}}function ge(e){return function(t){let n=v();return x(e,t,n)}}function x(e,i,t){var n,r;if(e.type==="fragment"){if(e.children&&e.children.length===1)return x(e.children[0],i,t);let o=t("div");if(o.nodeType=11,e.children)for(let s of e.children){let a=x(s,i,t);o.appendChild(a)}return o}if(e.type==="text"){let o=t("#text");return o.textContent=e.text||"",o.nodeType=3,o}if(e.type==="interpolation"){let o=t("span"),s=e.expression||"",a=N(i,s);return o.textContent=a!=null?String(a):"",o}if(e.type==="element"){if((n=e.directives)!=null&&n.each){let{item:s,expression:a}=e.directives.each,l=N(i,a),f=t("#fragment");if(f.childNodes=[],f.nodeType=11,Array.isArray(l))for(let p=0;p<l.length;p++){let d={...i,[s]:l[p],index:p},c=t(e.tag||"div");if(e.props)for(let[y,m]of Object.entries(e.props))y==="class"||y==="className"?c.className=m:c[y]=m;if(e.children)for(let y of e.children){let m=x(y,d,t);c.appendChild(m)}f.appendChild(c)}return f}let o=t(e.tag||"div");if((r=e.directives)!=null&&r.if&&(N(i,e.directives.if)||(o.style=o.style||{},o.style.display="none",o.hidden=!0)),e.props)for(let[s,a]of Object.entries(e.props))if(s.startsWith(":")){let l=s.slice(1),f=N(i,a);o[l]=f}else s==="class"||s==="className"?o.className=a:o[s]=a;if(e.events)for(let[s,a]of Object.entries(e.events)){let l=N(i,a);typeof l=="function"&&o.addEventListener(s,l)}if(e.children)for(let s of e.children){let a=x(s,i,t);if(a.nodeType===11&&a.childNodes)for(let l of a.childNodes)o.appendChild(l);else o.appendChild(a)}return o}return t("div")}function N(e,i){let t=i.trim();if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t)){let o=e[t];return typeof o=="function"&&!o.prototype?o():o}let n=t.split("."),r=e;for(let o of n){if(r==null)return;r=r[o],typeof r=="function"&&!r.prototype&&n.indexOf(o)<n.length-1&&(r=r())}return r}function he(e){return e}function Ve(e){let i=!1,t=null,n=null;return{mount(r){if(!i){if(typeof r=="string")if(typeof document!="undefined"){let o=document.querySelector(r);if(!o)throw new Error(`[lyt:vapor] \u672A\u627E\u5230\u6302\u8F7D\u76EE\u6807: ${r}`);n=o}else throw new Error("[lyt:vapor] \u5728\u975E\u6D4F\u89C8\u5668\u73AF\u5883\u4E2D\uFF0C\u8BF7\u76F4\u63A5\u4F20\u5165\u5BB9\u5668\u5143\u7D20");else n=r;t=k(n,e),i=!0}},unmount(){i&&(t&&(t(),t=null),i=!1,n=null)}}}function ve(e){let i=e.setup?e.setup():{};e.beforeMount&&e.beforeMount();let t;if(e.template){let{render:n}=U(e.template);t=n(i)}else if(e.render){let n=e.render(i,Ne),r=Array.isArray(n)?n:[n];if(r.length===1)t=u(r[0]);else{t=v()("div");for(let s of r)t.appendChild(u(s))}}else throw new Error("[lyt:vapor] \u7EC4\u4EF6\u5FC5\u987B\u63D0\u4F9B template \u6216 render \u51FD\u6570");return e.mounted&&e.mounted(),t}function Ne(e,i,...t){let n={tag:e,children:[],props:i||{},events:{},bindings:[]};for(let r of t)typeof r=="string"?n.children.push({tag:"#text",children:[],props:{},events:{},bindings:[],text:r}):n.children.push(r);return n}export{K as Comment,H as Fragment,S as PatchFlags,V as ShapeFlags,W as Text,w as bindAttr,j as bindClass,G as bindEach,F as bindEvent,Z as bindIf,R as bindProp,B as bindText,U as compileToVapor,de as createRenderer,Ve as createVaporApp,J as createVaporElement,he as defineVaporComponent,v as getVaporDOMFactory,P as parseTemplate,ve as renderVaporComponent,u as renderVaporNode,fe as setVaporDOMFactory,k as vaporMount,Q as vaporPatch};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lytjs/renderer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"description": "Lyt.js 渲染器 - 多平台渲染抽象层(DOM/SSR/Native/MiniApp)",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"ssr"
|
|
69
69
|
],
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@lytjs/reactivity": "^4.0.
|
|
72
|
-
"@lytjs/vdom": "^4.0.
|
|
71
|
+
"@lytjs/reactivity": "^4.0.5",
|
|
72
|
+
"@lytjs/vdom": "^4.0.5"
|
|
73
73
|
},
|
|
74
74
|
"engines": {
|
|
75
75
|
"node": ">=18.0.0"
|