@lytjs/renderer 4.0.1 → 4.0.4
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/miniapp.cjs +5 -5
- package/dist/miniapp.mjs +5 -5
- 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/vapor.cjs +1 -1
- package/dist/vapor.mjs +1 -1
- package/package.json +17 -6
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=(p=>(p[p.TEXT=1]="TEXT",p[p.CLASS=2]="CLASS",p[p.STYLE=4]="STYLE",p[p.PROPS=8]="PROPS",p[p.FULL_PROPS=16]="FULL_PROPS",p[p.STABLE_FRAGMENT=32]="STABLE_FRAGMENT",p[p.KEYED_FRAGMENT=64]="KEYED_FRAGMENT",p[p.UNKEYED_FRAGMENT=128]="UNKEYED_FRAGMENT",p[p.NEED_PATCH=256]="NEED_PATCH",p[p.DYNAMIC_SLOTS=512]="DYNAMIC_SLOTS",p[p.HOISTED=-1]="HOISTED",p[p.BAIL=-2]="BAIL",p))(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 c in t.props){let d=t.props[c];$(e,a,c,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 c=0;c<f.length;c++){let d=f[c],p=s[d],y=a[d];y!==p&&M(e,o,d,y,p)}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,c=n.children;if(l&8){a&16&&T(i,f),f!==c&&(r.textContent=c);return}if(l&16){a&16?se(e,i,f,c,r,o,s):(a&8&&(r.textContent=""),b(I(e,i),c,r,o,s));return}c==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)&&t.every(l=>l.key!=null)?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,c){n(null,r,o,s,a)},patch(r,o,s,a,l,f,c,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((c,d)=>n?n(c,d):d);if(f.length===o.length){let c=!0;for(let d=0;d<f.length;d++)if(f[d]!==o[d]){c=!1;break}if(c){for(let d=0;d<l.length;d++){let p=t(l[d],d),y=r[d];y&&y.parentNode===e&&e.replaceChild(p,y),r[d]=p}return}}for(let c of r)c.parentNode===e&&e.removeChild(c);s.clear(),r=[],o=[];for(let c=0;c<l.length;c++){let d=t(l[c],c);e.appendChild(d),r.push(d),o.push(f[c]),s.set(f[c],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 U(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),c={type:"element",tag:r,props:a,events:l,directives:f,children:[]};if(t=t.slice(n[0].length),s){i.children.push(c);continue}let d=`</${r}>`,p=ye(t,r);if(p===-1)throw new Error(`[lyt:vapor:compiler] \u672A\u627E\u5230\u95ED\u5408\u6807\u7B7E: </${r}>`);let y=t.slice(0,p);t=t.slice(p+d.length);let m=U(y);c.children=m.children||[],i.children.push(c)}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 k(e){let i=U(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 c=0;c<l.length;c++){let d={...i,[s]:l[c],index:c},p=t(e.tag);if(e.props)for(let[y,m]of Object.entries(e.props))y==="class"||y==="className"?p.className=m:p[y]=m;if(e.children)for(let y of e.children){let m=x(y,d,t);p.appendChild(m)}f.appendChild(p)}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}=k(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,k as compileToVapor,de as createRenderer,Ve as createVaporApp,J as createVaporElement,he as defineVaporComponent,N as getVaporDOMFactory,U 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 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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lytjs/renderer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"description": "Lyt.js 渲染器 - 多平台渲染抽象层(DOM/SSR/Native/MiniApp)",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -44,7 +44,9 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"sideEffects": false,
|
|
47
|
-
"files": [
|
|
47
|
+
"files": [
|
|
48
|
+
"dist"
|
|
49
|
+
],
|
|
48
50
|
"license": "MIT",
|
|
49
51
|
"author": "lytjs",
|
|
50
52
|
"repository": {
|
|
@@ -53,12 +55,21 @@
|
|
|
53
55
|
},
|
|
54
56
|
"homepage": "https://gitee.com/lytjs/lytjs",
|
|
55
57
|
"keywords": [
|
|
56
|
-
"lyt",
|
|
57
|
-
"
|
|
58
|
+
"lyt",
|
|
59
|
+
"lytjs",
|
|
60
|
+
"javascript",
|
|
61
|
+
"framework",
|
|
62
|
+
"frontend",
|
|
63
|
+
"vue-like",
|
|
64
|
+
"lightweight",
|
|
65
|
+
"zero-dependency",
|
|
66
|
+
"renderer",
|
|
67
|
+
"dom",
|
|
68
|
+
"ssr"
|
|
58
69
|
],
|
|
59
70
|
"dependencies": {
|
|
60
|
-
"@lytjs/reactivity": "^4.0.
|
|
61
|
-
"@lytjs/vdom": "^4.0.
|
|
71
|
+
"@lytjs/reactivity": "^4.0.4",
|
|
72
|
+
"@lytjs/vdom": "^4.0.4"
|
|
62
73
|
},
|
|
63
74
|
"engines": {
|
|
64
75
|
"node": ">=18.0.0"
|