@ryupold/vode 1.8.8 → 1.8.11
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/.github/workflows/publish.yml +5 -0
- package/.github/workflows/tests.yml +1 -0
- package/README.md +36 -2
- package/dist/vode.cjs.min.js +1 -1
- package/dist/vode.d.ts +5 -6
- package/dist/vode.es5.min.js +1 -1
- package/dist/vode.js +54 -44
- package/dist/vode.min.js +1 -1
- package/dist/vode.min.mjs +1 -1
- package/dist/vode.mjs +54 -44
- package/dist/vode.tests.mjs +5475 -0
- package/log.txt +1 -0
- package/package.json +5 -5
- package/src/vode.ts +63 -52
- package/test/helper.ts +299 -146
- package/test/index.ts +2 -64
- package/test/mocks.ts +83 -9
- package/test/run-tests.ts +61 -0
- package/test/tests-app.ts +48 -48
- package/test/tests-catch.ts +15 -15
- package/test/tests-children.ts +31 -31
- package/test/tests-createPatch.ts +12 -12
- package/test/tests-createState.ts +11 -11
- package/test/tests-defuse.ts +18 -18
- package/test/tests-examples.ts +87 -88
- package/test/tests-hydrate.ts +28 -28
- package/test/tests-memo.ts +29 -28
- package/test/tests-mergeClass.ts +31 -31
- package/test/tests-mergeProps.ts +19 -19
- package/test/tests-mergeStyle.ts +28 -14
- package/test/tests-mount-unmount.ts +368 -268
- package/test/tests-patch-advanced.ts +127 -19
- package/test/tests-patch-merge.ts +15 -15
- package/test/tests-props.ts +15 -15
- package/test/tests-state-context.ts +33 -33
- package/test/tests-tag.ts +14 -14
- package/test/tests-vode.ts +6 -6
|
@@ -22,6 +22,7 @@ jobs:
|
|
|
22
22
|
- uses: actions/setup-node@v6
|
|
23
23
|
with:
|
|
24
24
|
registry-url: "https://registry.npmjs.org"
|
|
25
|
+
node-version: 24
|
|
25
26
|
- run: npm ci
|
|
26
27
|
- run: npm run test
|
|
27
28
|
|
|
@@ -34,6 +35,7 @@ jobs:
|
|
|
34
35
|
- uses: actions/setup-node@v6
|
|
35
36
|
with:
|
|
36
37
|
registry-url: "https://registry.npmjs.org"
|
|
38
|
+
node-version: 24
|
|
37
39
|
- run: npm ci
|
|
38
40
|
- run: npm run release
|
|
39
41
|
- run: |
|
|
@@ -61,6 +63,7 @@ jobs:
|
|
|
61
63
|
- uses: actions/setup-node@v6
|
|
62
64
|
with:
|
|
63
65
|
registry-url: "https://npm.pkg.github.com"
|
|
66
|
+
node-version: 24
|
|
64
67
|
- run: npm ci
|
|
65
68
|
- run: npm run release
|
|
66
69
|
- run: |
|
|
@@ -85,6 +88,8 @@ jobs:
|
|
|
85
88
|
steps:
|
|
86
89
|
- uses: actions/checkout@v4
|
|
87
90
|
- uses: actions/setup-node@v6
|
|
91
|
+
with:
|
|
92
|
+
node-version: 24
|
|
88
93
|
- run: |
|
|
89
94
|
echo "@ryupold:registry=https://git.chimps.quest/api/packages/ryupold/npm/" >> .npmrc
|
|
90
95
|
echo "//git.chimps.quest/api/packages/ryupold/npm/:_authToken=${CHIMPS_TOKEN}" >> .npmrc
|
package/README.md
CHANGED
|
@@ -391,7 +391,7 @@ s.patch(async (s) => {
|
|
|
391
391
|
s.patch({}); // with an empty render patch
|
|
392
392
|
const result = await apiCall();
|
|
393
393
|
return { title: result.title, body: result.body, loading: false };
|
|
394
|
-
});
|
|
394
|
+
}); // can be awaited to wait for execution
|
|
395
395
|
|
|
396
396
|
// patch with an async generator function that yields patches
|
|
397
397
|
s.patch(async function*(s){
|
|
@@ -399,7 +399,7 @@ s.patch(async function*(s){
|
|
|
399
399
|
const result = await apiCall();
|
|
400
400
|
yield { title: result.title, body: result.body };
|
|
401
401
|
return { loading: false };
|
|
402
|
-
});
|
|
402
|
+
}); // can be awaited to wait for execution
|
|
403
403
|
|
|
404
404
|
// ignored, also: undefined, number, string, boolean, void
|
|
405
405
|
s.patch(null);
|
|
@@ -595,6 +595,40 @@ patch({ showTimer: false });
|
|
|
595
595
|
|
|
596
596
|
Like the other events (onclick, onmouseenter, etc.), these can also be attached conditionally and will be added or removed on the fly during rendering. Returning a patch object from these events will patch the same way as with events.
|
|
597
597
|
|
|
598
|
+
> Note that in certain situations onMount/onUnmount will not be called.
|
|
599
|
+
> For example consider this transition:
|
|
600
|
+
> ```ts
|
|
601
|
+
> const CompA: Component = () => [ARTICLE,
|
|
602
|
+
> [DIV,
|
|
603
|
+
> {
|
|
604
|
+
> onMount: () => console.log("mount A"),
|
|
605
|
+
> onUnmount: () => console.log("unmount A")
|
|
606
|
+
> },
|
|
607
|
+
> "Component A"]
|
|
608
|
+
> ];
|
|
609
|
+
> const CompB: Component = () => [ARTICLE,
|
|
610
|
+
> [DIV,
|
|
611
|
+
> {
|
|
612
|
+
> onMount: () => console.log("mount B"),
|
|
613
|
+
> onUnmount: () => console.log("unmount B")
|
|
614
|
+
> },
|
|
615
|
+
> "Component B"
|
|
616
|
+
> ]
|
|
617
|
+
> ];
|
|
618
|
+
>
|
|
619
|
+
> const state = createState({ showB: false });
|
|
620
|
+
> app<typeof state>(container, state, s => [DIV,
|
|
621
|
+
> s.showB ? CompB : CompA,
|
|
622
|
+
> ]);
|
|
623
|
+
>
|
|
624
|
+
> state.patch({ showB: true });
|
|
625
|
+
>
|
|
626
|
+
> // Output:
|
|
627
|
+
> // > "mount A"
|
|
628
|
+
> ```
|
|
629
|
+
> onMount of B and onUnmount of A are not called because DOM does not require element creation or removal (same TAGs)
|
|
630
|
+
|
|
631
|
+
|
|
598
632
|
### SVG & MathML
|
|
599
633
|
SVG and MathML elements are supported but need the namespace defined in properties.
|
|
600
634
|
|
package/dist/vode.cjs.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LINK=exports.LINEARGRADIENT=exports.LINE=exports.LI=exports.LEGEND=exports.LABEL=exports.KBD=exports.INS=exports.INPUT=exports.IMG=exports.IMAGE=exports.IFRAME=exports.I=exports.HTML=exports.HR=exports.HGROUP=exports.HEADER=exports.HEAD=exports.H6=exports.H5=exports.H4=exports.H3=exports.H2=exports.H1=exports.G=exports.FORM=exports.FOREIGNOBJECT=exports.FOOTER=exports.FILTER=exports.FIGURE=exports.FIGCAPTION=exports.FIELDSET=exports.FETURBULENCE=exports.FETILE=exports.FESPOTLIGHT=exports.FESPECULARLIGHTING=exports.FEPOINTLIGHT=exports.FEOFFSET=exports.FEMORPHOLOGY=exports.FEMERGENODE=exports.FEMERGE=exports.FEIMAGE=exports.FEGAUSSIANBLUR=exports.FEFUNCR=exports.FEFUNCG=exports.FEFUNCB=exports.FEFUNCA=exports.FEFLOOD=exports.FEDROPSHADOW=exports.FEDISTANTLIGHT=exports.FEDISPLACEMENTMAP=exports.FEDIFFUSELIGHTING=exports.FECONVOLVEMATRIX=exports.FECOMPOSITE=exports.FECOMPONENTTRANSFER=exports.FECOLORMATRIX=exports.FEBLEND=exports.EMBED=exports.EM=exports.ELLIPSE=exports.DT=exports.DL=exports.DIV=exports.DIALOG=exports.DFN=exports.DETAILS=exports.DESC=exports.DEL=exports.DEFS=exports.DD=exports.DATALIST=exports.DATA=exports.COLGROUP=exports.COL=exports.CODE=exports.CLIPPATH=exports.CITE=exports.CIRCLE=exports.CAPTION=exports.CANVAS=exports.BUTTON=exports.BR=exports.BODY=exports.BLOCKQUOTE=exports.BDO=exports.BDI=exports.BASE=exports.B=exports.AUDIO=exports.ASIDE=exports.ARTICLE=exports.AREA=exports.ANNOTATION_XML=exports.ANNOTATION=exports.ANIMATETRANSFORM=exports.ANIMATEMOTION=exports.ANIMATE=exports.ADDRESS=exports.ABBR=exports.A=void 0,exports.VIEW=exports.VIDEO=exports.VAR=exports.USE=exports.UL=exports.U=exports.TSPAN=exports.TRACK=exports.TR=exports.TITLE=exports.TIME=exports.THEAD=exports.TH=exports.TFOOT=exports.TEXTPATH=exports.TEXTAREA=exports.TEXT=exports.TEMPLATE=exports.TD=exports.TBODY=exports.TABLE=exports.SYMBOL=exports.SWITCH=exports.SVG=exports.SUP=exports.SUMMARY=exports.SUB=exports.STYLE=exports.STRONG=exports.STOP=exports.SPAN=exports.SOURCE=exports.SMALL=exports.SLOT=exports.SET=exports.SEMANTICS=exports.SELECT=exports.SECTION=exports.SEARCH=exports.SCRIPT=exports.SAMP=exports.S=exports.RUBY=exports.RT=exports.RP=exports.RECT=exports.RADIALGRADIENT=exports.Q=exports.PROGRESS=exports.PRE=exports.POLYLINE=exports.POLYGON=exports.PICTURE=exports.PATTERN=exports.PATH=exports.P=exports.OUTPUT=exports.OPTION=exports.OPTGROUP=exports.OL=exports.OBJECT=exports.NOSCRIPT=exports.NAV=exports.MUNDEROVER=exports.MUNDER=exports.MTR=exports.MTEXT=exports.MTD=exports.MTABLE=exports.MSUP=exports.MSUBSUP=exports.MSUB=exports.MSTYLE=exports.MSQRT=exports.MSPACE=exports.MS=exports.MROW=exports.MROOT=exports.MPRESCRIPTS=exports.MPHANTOM=exports.MPATH=exports.MPADDED=exports.MOVER=exports.MO=exports.MN=exports.MMULTISCRIPTS=exports.MI=exports.MFRAC=exports.METER=exports.METADATA=exports.META=exports.MERROR=exports.MENU=exports.MATH=exports.MASK=exports.MARKER=exports.MARK=exports.MAP=exports.MAIN=exports.MACTION=void 0,exports.WBR=void 0,exports.app=app,exports.child=child,exports.childCount=childCount,exports.children=children,exports.childrenStart=childrenStart,exports.context=context,exports.createPatch=createPatch,exports.createState=createState,exports.defuse=defuse,exports.globals=void 0,exports.hydrate=hydrate,exports.memo=memo,exports.mergeClass=mergeClass,exports.mergeProps=mergeProps,exports.mergeStyle=mergeStyle,exports.props=props,exports.tag=tag,exports.vode=vode;function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}// src/vode.ts
|
|
2
|
-
var globals=exports.globals={currentViewTransition:void 0,requestAnimationFrame:"undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(a){return a()},startViewTransition:"undefined"!=typeof document&&"function"==typeof document.startViewTransition?document.startViewTransition.bind(document):null};function vode(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:"object"===_typeof(b)?[a,b].concat(d):[a].concat(d)}function app(a,b,c){function d(b){var d=performance.now(),e=c(i.state);i.vode=render(i.state,a.parentElement,0,0,i.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=i.vode.node,a._vode=i),b||(i.stats.lastSyncRenderTime=performance.now()-d,i.stats.syncRenderCount++,i.isRendering=!1,i.qSync&&i.renderSync())}for(var e,f=arguments.length,g=Array(3<f?f-3:0),h=3;h<f;h++)g[h-3]=arguments[h];if(!(null!==(e=a)&&void 0!==e&&e.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var i={syncRenderer:globals.requestAnimationFrame,asyncRenderer:globals.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},j=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(g=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(g))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,f,g,h,k,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(i.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,i.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return i.stats.liveEffectCount++,c.p=5,j.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,i.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:j.patch(e.value,b);case 10:return c.p=10,i.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return i.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,j.patch(f,b);case 15:return c.p=15,i.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){g=_createForOfIteratorHelper(a);try{for(g.s();!(h=g.n()).done;)k=h.value,j.patch(k,!document.hidden&&!!i.asyncRenderer)}catch(a){g.e(a)}finally{g.f()}}else{i.qSync=mergeState(i.qSync||{},i.qAsync,!1),i.qAsync=null;try{null===(l=globals.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}i.stats.syncRenderPatchCount++,i.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}j.patch(a(i.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return i.stats.asyncRenderPatchCount++,i.qAsync=mergeState(i.qAsync||{},a,!1),c.n=20,i.renderAsync();case 20:c.n=22;break;case 21:i.stats.syncRenderPatchCount++,i.qSync=mergeState(i.qSync||{},a,!1),i.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var k=d.bind(null,!1),l=d.bind(null,!0);Object.defineProperty(i,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){i.isRendering||!i.qSync||(i.isRendering=!0,i.state=mergeState(i.state,i.qSync,!0),i.qSync=null,i.syncRenderer(k))}}),Object.defineProperty(i,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!i.isAnimating&&i.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=globals.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(i.isAnimating||!i.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return i.isAnimating=!0,c=performance.now(),a.p=4,i.state=mergeState(i.state,i.qAsync,!0),i.qAsync=null,globals.currentViewTransition=i.asyncRenderer(l),a.n=5,null===(d=globals.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,i.stats.lastAsyncRenderTime=performance.now()-c,i.stats.asyncRenderCount++,i.isAnimating=!1,a.f(5);case 6:i.qAsync&&i.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),i.state=j;var m=a;m._vode=i;var n=Array.from(a.parentElement.children).indexOf(a);i.isRendering=!0,i.vode=render(b,a.parentElement,n,n,hydrate(a,!0),c(b)),i.isRendering=!1,i.qSync&&i.renderSync();var o,p=_createForOfIteratorHelper(g);try{for(p.s();!(o=p.n()).done;){var q=o.value;j.patch(q)}}catch(a){p.e(a)}finally{p.f()}return function(a){return j.patch(a)}}function defuse(a){if(null!==a&&void 0!==a&&a._vode){var b=function c(a){if(null!==a&&void 0!==a&&a.node){var d=props(a);if(d){for(var e in d)"o"===e[0]&&"n"===e[1]&&(a.node[e]=null);a.node["catch"]=null}if(a.node._vode)defuse(a.node);else{var f=children(a);if(f){var g,h=_createForOfIteratorHelper(f);try{for(h.s();!(g=h.n()).done;){var i=g.value;b(i)}}catch(a){h.e(a)}finally{h.f()}}}}},c=b,d=a._vode;delete a._vode,Object.defineProperty(d.state,"patch",{value:void 0}),Object.defineProperty(d,"renderSync",{value:function a(){}}),Object.defineProperty(d,"renderAsync",{value:function a(){}}),b(d.vode)}else{var e,f=_createForOfIteratorHelper(a.children);try{for(f.s();!(e=f.n()).done;){var g=e.value;defuse(g)}}catch(a){f.e(a)}finally{f.f()}}}function hydrate(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var d;return""===(null===(d=b.nodeValue)||void 0===d?void 0:d.trim())?void 0:c?b:b.nodeValue}if(b.nodeType===Node.ELEMENT_NODE){var e=b.tagName.toLowerCase(),f=[e];if(c&&(f.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var g,h={},i=b.attributes,j=_createForOfIteratorHelper(i);try{for(j.s();!(g=j.n()).done;){var k=g.value;h[k.name]=k.value}}catch(a){j.e(a)}finally{j.f()}f.push(h)}if(b.hasChildNodes()){var l,m=[],n=_createForOfIteratorHelper(b.childNodes);try{for(n.s();!(l=n.n()).done;){var o=l.value,p=o&&hydrate(o,c);p?f.push(p):o&&c&&m.push(o)}}catch(a){n.e(a)}finally{n.f()}for(var q,r=0,s=m;r<s.length;r++)q=s[r],q.remove()}return f}}function memo(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a child vode");if(b.__memo){var c=b;b=function b(a){return c(a)}}return b.__memo=a,b}function createState(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function createPatch(a){return a}function tag(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function props(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function children(a){var b=childrenStart(a);return 0<b?a.slice(b):null}function childCount(a){var b=childrenStart(a);return 0>b?0:a.length-b}function child(a,b){var c=childrenStart(a);return 0<c?a[b+c]:void 0}function childrenStart(a){return props(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function mergeState(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=mergeState({},e,c):"object"===_typeof(f)?mergeState(a[d],e,c):a[d]=mergeState({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=mergeState({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function render(a,b,c,d,e,f,g){try{var h,j;f=remember(a,f,e);var k=!f||"number"==typeof f||"boolean"==typeof f;if(f===e||!e&&k)return e;var l=(null===e||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE,m=l?e:null===e||void 0===e?void 0:e.node;if(k)return unmountTree(a,e),void(null===m||void 0===m||m.remove());var n=!k&&isTextVode(f),o=!k&&isNaturalVode(f),p=!!f&&"string"!=typeof f&&!!(null!==(h=f)&&void 0!==h&&h.node||(null===(j=f)||void 0===j?void 0:j.nodeType)===Node.TEXT_NODE);if(!n&&!o&&!p&&!e)throw new Error("Invalid vode: "+_typeof(f)+" "+JSON.stringify(f));else p&&n?f=f.wholeText:p&&o&&(f=_toConsumableArray(f));if(l&&n)return m.nodeValue!==f&&(m.nodeValue=f),e;if(n&&(!m||!l)){var q=document.createTextNode(f);if(m)unmountTree(a,e),m.replaceWith(q);else{for(var r,s=!1,t=d;t<b.childNodes.length;t++)if(r=b.childNodes[t],r){r.before(q),s=!0;break}s||b.appendChild(q)}return q}if(o&&(!m||l||e[0]!==f[0])){var u=f;1 in u&&(u[1]=remember(a,u[1],void 0));var v=props(f);void 0!==(null===v||void 0===v?void 0:v.xmlns)&&(g=v.xmlns);var w=g?document.createElementNS(g,f[0]):document.createElement(f[0]);if(f.node=w,patchProperties(a,w,void 0,v,null!==g&&void 0!==g?g:null),!!v&&"catch"in v&&(f.node["catch"]=null,f.node.removeAttribute("catch")),m)unmountTree(a,e),m.replaceWith(w);else{for(var x,y=!1,z=d;z<b.childNodes.length;z++)if(x=b.childNodes[z],x){x.before(w),y=!0;break}y||b.appendChild(w)}var A=childrenStart(f);if(0<A)for(var B=v?2:1,C=0,D=0;D<f.length-A;D++){var E=f[D+A],F=render(a,w,D,C,void 0,E,null!==g&&void 0!==g?g:null);f[D+B]=F,F&&C++}return f._unmountCount=(null!==v&&void 0!==v&&v.onUnmount?1:0)+sumChildUnmountCounts(f),"function"==typeof(null===v||void 0===v?void 0:v.onMount)&&a.patch(v.onMount(a,w)),f}if(!l&&o&&e[0]===f[0]){f.node=m;var G=props(f),H=props(e);void 0!==(null===G||void 0===G?void 0:G.xmlns)&&(g=G.xmlns),patchProperties(a,m,H,G,g),!(null!==G&&void 0!==G&&G["catch"])||(null===H||void 0===H?void 0:H["catch"])===G["catch"]||(f.node["catch"]=null,f.node.removeAttribute("catch"));var I=childrenStart(f),J=childrenStart(e);if(0<I)for(var K=0,L=0;L<f.length-I;L++){var M=f[L+I],N=0<J?e[L+J]:void 0,O=render(a,m,L,K,N,M,g);f[L+I]=O,O&&K++}if(0<J)for(var P=0<I?f.length-I:0,Q=e.length-1-J;Q>=P;Q--)render(a,m,Q,Q,e[Q+J],void 0,g);return f._unmountCount=(null!==G&&void 0!==G&&G.onUnmount?1:0)+sumChildUnmountCounts(f),f}}catch(h){var R,S=null===(R=props(f))||void 0===R?void 0:R["catch"];if(S){var T,U="function"==typeof S?S(a,h):S;return render(a,b,c,d,hydrate((null===(T=f)||void 0===T?void 0:T.node)||(null===e||void 0===e?void 0:e.node),!0),U,g)}throw h}}function unmountTree(a,b){if(b&&Array.isArray(b)&&0!=(0|b._unmountCount)){var c=children(b);if(c)for(var d=c.length-1;0<=d;d--)unmountTree(a,c[d]);var e=props(b);"function"==typeof(null===e||void 0===e?void 0:e.onUnmount)&&a.patch(e.onUnmount(a,b.node))}}function sumChildUnmountCounts(a){var b=children(a);if(!b)return 0;var c,d=0,e=_createForOfIteratorHelper(b);try{for(e.s();!(c=e.n()).done;){var f=c.value;f&&Array.isArray(f)&&(d+=0|f._unmountCount)}}catch(a){e.e(a)}finally{e.f()}return d}function isNaturalVode(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function isTextVode(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function remember(a,b,c){for(var d;"function"==typeof b&&!b.__memo;)b=b(a);if("function"!=typeof b)return b;var e=null===(d=b)||void 0===d?void 0:d.__memo,f=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(e)&&Array.isArray(f)&&e.length===f.length){for(var g=!0,h=0;h<e.length;h++)if(e[h]!==f[h]){g=!1;break}if(g)return c}for(;"function"==typeof b;)b=b(a);return"object"===_typeof(b)&&(b.__memo=e),b}function patchProperties(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=patchProperty(a,b,g,h,i,f):patchProperty(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=patchProperty(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=patchProperty(a,b,l,void 0,m,f)}}}function patchProperty(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",classString(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function classString(a){return"string"==typeof a?a:Array.isArray(a)?a.map(classString).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
|
|
2
|
+
var globals=exports.globals={currentViewTransition:void 0,requestAnimationFrame:"undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(a){return a()},startViewTransition:"undefined"!=typeof document&&"function"==typeof document.startViewTransition?document.startViewTransition.bind(document):null};function vode(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:"object"===_typeof(b)?[a,b].concat(d):[a].concat(d)}function app(a,b,c){function d(a,b){return e.apply(this,arguments)}function e(){return e=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:return m.stats.liveEffectCount++,c.p=1,c.n=2,a;case 2:return d=c.v,c.n=3,n.patch(d,b);case 3:return c.p=3,m.stats.liveEffectCount--,c.f(3);case 4:return c.a(2)}},c,null,[[1,,3,4]])})),e.apply(this,arguments)}function f(a,b){return g.apply(this,arguments)}function g(){return g=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:return d=a,m.stats.liveEffectCount++,c.p=1,c.n=2,d.next();case 2:e=c.v;case 3:if(!1!==e.done){c.n=9;break}return m.stats.liveEffectCount++,c.p=4,c.n=5,n.patch(e.value,b);case 5:return c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,m.stats.liveEffectCount--,c.f(7);case 8:c.n=3;break;case 9:return c.n=10,n.patch(e.value,b);case 10:return c.p=10,m.stats.liveEffectCount--,c.f(10);case 11:return c.a(2)}},c,null,[[4,,7,8],[1,,10,11]])})),g.apply(this,arguments)}function h(b){var d=performance.now(),e=c(m.state);if(m.vode=render(m.state,a.parentElement,0,0,m.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=m.vode.node,a._vode=m),!b){m.stats.lastSyncRenderTime=performance.now()-d;var f=m.isRendering!==m.stats.syncRenderPatchCount;m.stats.syncRenderCount++,m.isRendering=0,f&&m.renderSync()}}for(var i,j=arguments.length,k=Array(3<j?j-3:0),l=3;l<j;l++)k[l-3]=arguments[l];if(!(null!==(i=a)&&void 0!==i&&i.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var m={syncRenderer:globals.requestAnimationFrame,asyncRenderer:globals.startViewTransition,isRendering:0,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},n=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(k=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(k))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(a,b){for(var e;"function"==typeof a;)a=a(m.state);if(a&&"object"===_typeof(a)){if(m.stats.patchCount++,null!==(e=a)&&void 0!==e&&e.next)return f(a,b);if(a.then)return d(a,b);if(!Array.isArray(a))b?(m.stats.asyncRenderPatchCount++,m.qAsync=mergeState(m.qAsync||{},a,!1),m.renderAsync()):(m.stats.syncRenderPatchCount++,mergeState(m.state,a,!0),m.renderSync());else if(0<a.length){var g,h=_createForOfIteratorHelper(a);try{for(h.s();!(g=h.n()).done;){var i=g.value;n.patch(i,!document.hidden&&!!m.asyncRenderer)}}catch(a){h.e(a)}finally{h.f()}}else{mergeState(m.state,m.qAsync,!0),m.qAsync=null;try{var j;null===(j=globals.currentViewTransition)||void 0===j||j.skipTransition()}catch(a){}m.stats.syncRenderPatchCount++,m.renderSync()}}}});var o=h.bind(null,!1),p=h.bind(null,!0);Object.defineProperty(m,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){m.isRendering||(m.isRendering=m.stats.syncRenderPatchCount,m.syncRenderer(o))}}),Object.defineProperty(m,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!m.isAnimating&&m.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=globals.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(m.isAnimating||!m.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return m.isAnimating=!0,c=performance.now(),a.p=4,m.state=mergeState(m.state,m.qAsync,!0),m.qAsync=null,globals.currentViewTransition=m.asyncRenderer(p),a.n=5,null===(d=globals.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,m.stats.lastAsyncRenderTime=performance.now()-c,m.stats.asyncRenderCount++,m.isAnimating=!1,a.f(5);case 6:m.qAsync&&m.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),m.state=n;var q=a;q._vode=m;var r=Array.from(a.parentElement.children).indexOf(a),s=m.stats.syncRenderPatchCount;m.isRendering=m.stats.syncRenderPatchCount,m.vode=render(b,a.parentElement,r,r,hydrate(a,!0),c(b));var t=m.stats.syncRenderPatchCount!==s;m.isRendering=0,m.stats.syncRenderCount++,t&&m.renderSync();var u,v=_createForOfIteratorHelper(k);try{for(v.s();!(u=v.n()).done;){var w=u.value;n.patch(w)}}catch(a){v.e(a)}finally{v.f()}return function(a){return n.patch(a)}}function defuse(a){if(null!==a&&void 0!==a&&a._vode){var b=function c(a){if(null!==a&&void 0!==a&&a.node){var d=props(a);if(d){for(var e in d)"o"===e[0]&&"n"===e[1]&&(a.node[e]=null);a.node["catch"]=null}if(a.node._vode)defuse(a.node);else{var f=children(a);if(f){var g,h=_createForOfIteratorHelper(f);try{for(h.s();!(g=h.n()).done;){var i=g.value;b(i)}}catch(a){h.e(a)}finally{h.f()}}}}},c=b,d=a._vode;delete a._vode,Object.defineProperty(d.state,"patch",{value:void 0}),Object.defineProperty(d,"renderSync",{value:function a(){}}),Object.defineProperty(d,"renderAsync",{value:function a(){}}),b(d.vode)}else{var e,f=_createForOfIteratorHelper(a.children);try{for(f.s();!(e=f.n()).done;){var g=e.value;defuse(g)}}catch(a){f.e(a)}finally{f.f()}}}function hydrate(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var d;return""===(null===(d=b.nodeValue)||void 0===d?void 0:d.trim())?void 0:c?b:b.nodeValue}if(b.nodeType===Node.ELEMENT_NODE){var e=b.tagName.toLowerCase(),f=[e];if(c&&(f.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var g,h={},i=b.attributes,j=_createForOfIteratorHelper(i);try{for(j.s();!(g=j.n()).done;){var k=g.value;h[k.name]=k.value}}catch(a){j.e(a)}finally{j.f()}f.push(h)}if(b.hasChildNodes()){var l,m=[],n=_createForOfIteratorHelper(b.childNodes);try{for(n.s();!(l=n.n()).done;){var o=l.value,p=o&&hydrate(o,c);p?f.push(p):o&&c&&m.push(o)}}catch(a){n.e(a)}finally{n.f()}for(var q,r=0,s=m;r<s.length;r++)q=s[r],q.remove()}return f}}function memo(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a child vode");if(b.__memo){var c=b;b=function b(a){return c(a)}}return b.__memo=a,b}function createState(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function createPatch(a){return a}function tag(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function props(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function children(a){var b=childrenStart(a);return 0<b?a.slice(b):null}function childCount(a){var b=childrenStart(a);return 0>b?0:a.length-b}function child(a,b){var c=childrenStart(a);return 0<c?a[b+c]:void 0}function childrenStart(a){return props(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function mergeState(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=mergeState({},e,c):"object"===_typeof(f)?mergeState(a[d],e,c):a[d]=mergeState({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=mergeState({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function render(a,b,c,d,e,f,g){try{var h,j;f=remember(a,f,e);var k=!f||"number"==typeof f||"boolean"==typeof f;if(f===e||!e&&k)return e;var l=(null===e||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE,m=l?e:null===e||void 0===e?void 0:e.node;if(k)return unmountTree(a,e),void(null===m||void 0===m||m.remove());var n=!k&&isTextVode(f),o=!k&&isNaturalVode(f),p=!!f&&"string"!=typeof f&&!!(null!==(h=f)&&void 0!==h&&h.node||(null===(j=f)||void 0===j?void 0:j.nodeType)===Node.TEXT_NODE);if(!n&&!o&&!p&&!e)throw new Error("Invalid vode: "+_typeof(f)+" "+JSON.stringify(f));else p&&n?f=f.wholeText:p&&o&&(f=_toConsumableArray(f));if(l&&n)return m.nodeValue!==f&&(m.nodeValue=f),e;if(n&&(!m||!l)){var q=document.createTextNode(f);if(m)unmountTree(a,e),m.replaceWith(q);else{for(var r,s=!1,t=d;t<b.childNodes.length;t++)if(r=b.childNodes[t],r){r.before(q),s=!0;break}s||b.appendChild(q)}return q}if(o&&(!m||l||e[0]!==f[0])){var u=f;1 in u&&(u[1]=remember(a,u[1],void 0));var v=props(f);void 0!==(null===v||void 0===v?void 0:v.xmlns)&&(g=v.xmlns);var w=g?document.createElementNS(g,f[0]):document.createElement(f[0]);if(f.node=w,patchProperties(a,w,void 0,v,null!==g&&void 0!==g?g:null),!!v&&"catch"in v&&(f.node["catch"]=null,f.node.removeAttribute("catch")),m)unmountTree(a,e),m.replaceWith(w);else{for(var x,y=!1,z=d;z<b.childNodes.length;z++)if(x=b.childNodes[z],x){x.before(w),y=!0;break}y||b.appendChild(w)}var A=childrenStart(f);if(0<A)for(var B=v?2:1,C=0,D=0;D<f.length-A;D++){var E=f[D+A],F=render(a,w,D,C,void 0,E,null!==g&&void 0!==g?g:null);f[D+B]=F,F&&C++}return f._unmountCount=(null!==v&&void 0!==v&&v.onUnmount?1:0)+sumChildUnmountCounts(f),"function"==typeof(null===v||void 0===v?void 0:v.onMount)&&a.patch(v.onMount(a,w)),f}if(!l&&o&&e[0]===f[0]){f.node=m;var G=props(f),H=props(e);void 0!==(null===G||void 0===G?void 0:G.xmlns)&&(g=G.xmlns),patchProperties(a,m,H,G,g),!(null!==G&&void 0!==G&&G["catch"])||(null===H||void 0===H?void 0:H["catch"])===G["catch"]||(f.node["catch"]=null,f.node.removeAttribute("catch"));var I=childrenStart(f),J=childrenStart(e);if(0<I)for(var K=0,L=0;L<f.length-I;L++){var M=f[L+I],N=0<J?e[L+J]:void 0,O=render(a,m,L,K,N,M,g);f[L+I]=O,O&&K++}if(0<J)for(var P=0<I?f.length-I:0,Q=e.length-1-J;Q>=P;Q--)render(a,m,Q,Q,e[Q+J],void 0,g);return f._unmountCount=(null!==G&&void 0!==G&&G.onUnmount?1:0)+sumChildUnmountCounts(f),f}}catch(h){var R,S=null===(R=props(f))||void 0===R?void 0:R["catch"];if(S){var T,U="function"==typeof S?S(a,h):S;return render(a,b,c,d,hydrate((null===(T=f)||void 0===T?void 0:T.node)||(null===e||void 0===e?void 0:e.node),!0),U,g)}throw h}}function unmountTree(a,b){if(b&&Array.isArray(b)&&0!=(0|b._unmountCount)){var c=children(b);if(c)for(var d=c.length-1;0<=d;d--)unmountTree(a,c[d]);var e=props(b);"function"==typeof(null===e||void 0===e?void 0:e.onUnmount)&&a.patch(e.onUnmount(a,b.node))}}function sumChildUnmountCounts(a){var b=children(a);if(!b)return 0;var c,d=0,e=_createForOfIteratorHelper(b);try{for(e.s();!(c=e.n()).done;){var f=c.value;f&&Array.isArray(f)&&(d+=0|f._unmountCount)}}catch(a){e.e(a)}finally{e.f()}return d}function isNaturalVode(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function isTextVode(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function remember(a,b,c){for(var d;"function"==typeof b&&!b.__memo;)b=b(a);if("function"!=typeof b)return b;var e=null===(d=b)||void 0===d?void 0:d.__memo,f=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(e)&&Array.isArray(f)&&e.length===f.length){for(var g=!0,h=0;h<e.length;h++)if(e[h]!==f[h]){g=!1;break}if(g)return c}for(;"function"==typeof b;)b=b(a);return"object"===_typeof(b)&&(b.__memo=e),b}function patchProperties(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=patchProperty(a,b,g,h,i,f):patchProperty(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=patchProperty(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=patchProperty(a,b,l,void 0,m,f)}}}function patchProperty(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",classString(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function classString(a){return"string"==typeof a?a:Array.isArray(a)?a.map(classString).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
|
|
3
3
|
var A=exports.A="a",ABBR=exports.ABBR="abbr",ADDRESS=exports.ADDRESS="address",AREA=exports.AREA="area",ARTICLE=exports.ARTICLE="article",ASIDE=exports.ASIDE="aside",AUDIO=exports.AUDIO="audio",B=exports.B="b",BASE=exports.BASE="base",BDI=exports.BDI="bdi",BDO=exports.BDO="bdo",BLOCKQUOTE=exports.BLOCKQUOTE="blockquote",BODY=exports.BODY="body",BR=exports.BR="br",BUTTON=exports.BUTTON="button",CANVAS=exports.CANVAS="canvas",CAPTION=exports.CAPTION="caption",CITE=exports.CITE="cite",CODE=exports.CODE="code",COL=exports.COL="col",COLGROUP=exports.COLGROUP="colgroup",DATA=exports.DATA="data",DATALIST=exports.DATALIST="datalist",DD=exports.DD="dd",DEL=exports.DEL="del",DETAILS=exports.DETAILS="details",DFN=exports.DFN="dfn",DIALOG=exports.DIALOG="dialog",DIV=exports.DIV="div",DL=exports.DL="dl",DT=exports.DT="dt",EM=exports.EM="em",EMBED=exports.EMBED="embed",FIELDSET=exports.FIELDSET="fieldset",FIGCAPTION=exports.FIGCAPTION="figcaption",FIGURE=exports.FIGURE="figure",FOOTER=exports.FOOTER="footer",FORM=exports.FORM="form",H1=exports.H1="h1",H2=exports.H2="h2",H3=exports.H3="h3",H4=exports.H4="h4",H5=exports.H5="h5",H6=exports.H6="h6",HEAD=exports.HEAD="head",HEADER=exports.HEADER="header",HGROUP=exports.HGROUP="hgroup",HR=exports.HR="hr",HTML=exports.HTML="html",I=exports.I="i",IFRAME=exports.IFRAME="iframe",IMG=exports.IMG="img",INPUT=exports.INPUT="input",INS=exports.INS="ins",KBD=exports.KBD="kbd",LABEL=exports.LABEL="label",LEGEND=exports.LEGEND="legend",LI=exports.LI="li",LINK=exports.LINK="link",MAIN=exports.MAIN="main",MAP=exports.MAP="map",MARK=exports.MARK="mark",MENU=exports.MENU="menu",META=exports.META="meta",METER=exports.METER="meter",NAV=exports.NAV="nav",NOSCRIPT=exports.NOSCRIPT="noscript",OBJECT=exports.OBJECT="object",OL=exports.OL="ol",OPTGROUP=exports.OPTGROUP="optgroup",OPTION=exports.OPTION="option",OUTPUT=exports.OUTPUT="output",P=exports.P="p",PICTURE=exports.PICTURE="picture",PRE=exports.PRE="pre",PROGRESS=exports.PROGRESS="progress",Q=exports.Q="q",RP=exports.RP="rp",RT=exports.RT="rt",RUBY=exports.RUBY="ruby",S=exports.S="s",SAMP=exports.SAMP="samp",SCRIPT=exports.SCRIPT="script",SEARCH=exports.SEARCH="search",SECTION=exports.SECTION="section",SELECT=exports.SELECT="select",SLOT=exports.SLOT="slot",SMALL=exports.SMALL="small",SOURCE=exports.SOURCE="source",SPAN=exports.SPAN="span",STRONG=exports.STRONG="strong",STYLE=exports.STYLE="style",SUB=exports.SUB="sub",SUMMARY=exports.SUMMARY="summary",SUP=exports.SUP="sup",TABLE=exports.TABLE="table",TBODY=exports.TBODY="tbody",TD=exports.TD="td",TEMPLATE=exports.TEMPLATE="template",TEXTAREA=exports.TEXTAREA="textarea",TFOOT=exports.TFOOT="tfoot",TH=exports.TH="th",THEAD=exports.THEAD="thead",TIME=exports.TIME="time",TITLE=exports.TITLE="title",TR=exports.TR="tr",TRACK=exports.TRACK="track",U=exports.U="u",UL=exports.UL="ul",VAR=exports.VAR="var",VIDEO=exports.VIDEO="video",WBR=exports.WBR="wbr",ANIMATE=exports.ANIMATE="animate",ANIMATEMOTION=exports.ANIMATEMOTION="animateMotion",ANIMATETRANSFORM=exports.ANIMATETRANSFORM="animateTransform",CIRCLE=exports.CIRCLE="circle",CLIPPATH=exports.CLIPPATH="clipPath",DEFS=exports.DEFS="defs",DESC=exports.DESC="desc",ELLIPSE=exports.ELLIPSE="ellipse",FEBLEND=exports.FEBLEND="feBlend",FECOLORMATRIX=exports.FECOLORMATRIX="feColorMatrix",FECOMPONENTTRANSFER=exports.FECOMPONENTTRANSFER="feComponentTransfer",FECOMPOSITE=exports.FECOMPOSITE="feComposite",FECONVOLVEMATRIX=exports.FECONVOLVEMATRIX="feConvolveMatrix",FEDIFFUSELIGHTING=exports.FEDIFFUSELIGHTING="feDiffuseLighting",FEDISPLACEMENTMAP=exports.FEDISPLACEMENTMAP="feDisplacementMap",FEDISTANTLIGHT=exports.FEDISTANTLIGHT="feDistantLight",FEDROPSHADOW=exports.FEDROPSHADOW="feDropShadow",FEFLOOD=exports.FEFLOOD="feFlood",FEFUNCA=exports.FEFUNCA="feFuncA",FEFUNCB=exports.FEFUNCB="feFuncB",FEFUNCG=exports.FEFUNCG="feFuncG",FEFUNCR=exports.FEFUNCR="feFuncR",FEGAUSSIANBLUR=exports.FEGAUSSIANBLUR="feGaussianBlur",FEIMAGE=exports.FEIMAGE="feImage",FEMERGE=exports.FEMERGE="feMerge",FEMERGENODE=exports.FEMERGENODE="feMergeNode",FEMORPHOLOGY=exports.FEMORPHOLOGY="feMorphology",FEOFFSET=exports.FEOFFSET="feOffset",FEPOINTLIGHT=exports.FEPOINTLIGHT="fePointLight",FESPECULARLIGHTING=exports.FESPECULARLIGHTING="feSpecularLighting",FESPOTLIGHT=exports.FESPOTLIGHT="feSpotLight",FETILE=exports.FETILE="feTile",FETURBULENCE=exports.FETURBULENCE="feTurbulence",FILTER=exports.FILTER="filter",FOREIGNOBJECT=exports.FOREIGNOBJECT="foreignObject",G=exports.G="g",IMAGE=exports.IMAGE="image",LINE=exports.LINE="line",LINEARGRADIENT=exports.LINEARGRADIENT="linearGradient",MARKER=exports.MARKER="marker",MASK=exports.MASK="mask",METADATA=exports.METADATA="metadata",MPATH=exports.MPATH="mpath",PATH=exports.PATH="path",PATTERN=exports.PATTERN="pattern",POLYGON=exports.POLYGON="polygon",POLYLINE=exports.POLYLINE="polyline",RADIALGRADIENT=exports.RADIALGRADIENT="radialGradient",RECT=exports.RECT="rect",SET=exports.SET="set",STOP=exports.STOP="stop",SVG=exports.SVG="svg",SWITCH=exports.SWITCH="switch",SYMBOL=exports.SYMBOL="symbol",TEXT=exports.TEXT="text",TEXTPATH=exports.TEXTPATH="textPath",TSPAN=exports.TSPAN="tspan",USE=exports.USE="use",VIEW=exports.VIEW="view",ANNOTATION=exports.ANNOTATION="annotation",ANNOTATION_XML=exports.ANNOTATION_XML="annotation-xml",MACTION=exports.MACTION="maction",MATH=exports.MATH="math",MERROR=exports.MERROR="merror",MFRAC=exports.MFRAC="mfrac",MI=exports.MI="mi",MMULTISCRIPTS=exports.MMULTISCRIPTS="mmultiscripts",MN=exports.MN="mn",MO=exports.MO="mo",MOVER=exports.MOVER="mover",MPADDED=exports.MPADDED="mpadded",MPHANTOM=exports.MPHANTOM="mphantom",MPRESCRIPTS=exports.MPRESCRIPTS="mprescripts",MROOT=exports.MROOT="mroot",MROW=exports.MROW="mrow",MS=exports.MS="ms",MSPACE=exports.MSPACE="mspace",MSQRT=exports.MSQRT="msqrt",MSTYLE=exports.MSTYLE="mstyle",MSUB=exports.MSUB="msub",MSUBSUP=exports.MSUBSUP="msubsup",MSUP=exports.MSUP="msup",MTABLE=exports.MTABLE="mtable",MTD=exports.MTD="mtd",MTEXT=exports.MTEXT="mtext",MTR=exports.MTR="mtr",MUNDER=exports.MUNDER="munder",MUNDEROVER=exports.MUNDEROVER="munderover",SEMANTICS=exports.SEMANTICS="semantics";// src/merge-class.ts
|
|
4
4
|
function mergeClass(){for(var c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];if(!d||0===d.length)return null;if(1===d.length)return d[0];for(var f=d[0],g=1;g<d.length;g++){var h=f,i=d[g];if(!h)f=i;else if(!i)continue;else if("string"==typeof h&&"string"==typeof i){var j=h.split(" "),k=i.split(" "),l=/* @__PURE__ */new Set([].concat(_toConsumableArray(j),_toConsumableArray(k)));f=Array.from(l).join(" ").trim()}else if("string"==typeof h&&Array.isArray(i)){var m=/* @__PURE__ */new Set([].concat(_toConsumableArray(i),_toConsumableArray(h.split(" "))));f=Array.from(m).join(" ").trim()}else if(Array.isArray(h)&&"string"==typeof i){var n=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i.split(" "))));f=Array.from(n).join(" ").trim()}else if(Array.isArray(h)&&Array.isArray(i)){var o=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i)));f=Array.from(o).join(" ").trim()}else if("string"==typeof h&&"object"===_typeof(i))f=_objectSpread(_defineProperty({},h,!0),i);else if("object"===_typeof(h)&&"string"==typeof i)f=_objectSpread(_objectSpread({},h),{},_defineProperty({},i,!0));else if("object"===_typeof(h)&&"object"===_typeof(i))f=_objectSpread(_objectSpread({},h),i);else if("object"===_typeof(h)&&Array.isArray(i)){var p,q=_objectSpread({},h),r=_createForOfIteratorHelper(i);try{for(r.s();!(p=r.n()).done;){var s=p.value;q[s]=!0}}catch(a){r.e(a)}finally{r.f()}f=q}else if(Array.isArray(h)&&"object"===_typeof(i)){var t,u={},v=_createForOfIteratorHelper(h);try{for(v.s();!(t=v.n()).done;){var w=t.value;u[w]=!0}}catch(a){v.e(a)}finally{v.f()}for(var x,y=0,z=Object.keys(i);y<z.length;y++)x=z[y],u[x]=i[x];f=u}else throw new Error("cannot merge classes of ".concat(h," (").concat(_typeof(h),") and ").concat(i," (").concat(_typeof(i),")"))}return f}// src/merge-style.ts
|
|
5
5
|
var tempDivForStyling;function mergeStyle(){tempDivForStyling||(tempDivForStyling=document.createElement("div"));try{for(var a=tempDivForStyling.style,b=arguments.length,c=Array(b),d=0;d<b;d++)c[d]=arguments[d];for(var e,f=0,g=c;f<g.length;f++)if(e=g[f],"object"===_typeof(e)&&null!==e)for(var h in e)a[h]=e[h];else"string"==typeof e&&(a.cssText+=";"+e);return a.cssText}finally{tempDivForStyling.style.cssText=""}}// src/merge-props.ts
|
package/dist/vode.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
export type Vode<S = PatchableState> = FullVode<S> | JustTagVode | NoPropsVode<S>;
|
|
4
4
|
export type FullVode<S = PatchableState> = [
|
|
5
5
|
tag: Tag,
|
|
6
|
-
props: Props<S>,
|
|
6
|
+
props: Props<S> | ChildVode<S>,
|
|
7
7
|
...children: ChildVode<S>[]
|
|
8
8
|
];
|
|
9
9
|
export type NoPropsVode<S = PatchableState> = [
|
|
@@ -40,9 +40,9 @@ export interface Props<S = PatchableState> extends Partial<Omit<HTMLElement, key
|
|
|
40
40
|
class?: ClassProp;
|
|
41
41
|
style?: StyleProp;
|
|
42
42
|
/** called after the element was attached */
|
|
43
|
-
onMount?: MountFunction<S
|
|
43
|
+
onMount?: MountFunction<S> | null | false;
|
|
44
44
|
/** called before the element is detached */
|
|
45
|
-
onUnmount?: MountFunction<S
|
|
45
|
+
onUnmount?: MountFunction<S> | null | false;
|
|
46
46
|
/** used instead of original vode when an error occurs during rendering */
|
|
47
47
|
catch?: ((s: S, error: Error) => ChildVode<S>) | ChildVode<S>;
|
|
48
48
|
}
|
|
@@ -61,7 +61,7 @@ export type EventsMapBase = {
|
|
|
61
61
|
export interface EventsMap extends EventsMapBase {
|
|
62
62
|
}
|
|
63
63
|
export type PropertyValue<S> = string | boolean | null | undefined | void | StyleProp | ClassProp | Patch<S>;
|
|
64
|
-
export type Dispatch<S> = (action: Patch<S>) => void
|
|
64
|
+
export type Dispatch<S> = (action: Patch<S>) => void | Promise<void>;
|
|
65
65
|
export interface Patchable<S = object> {
|
|
66
66
|
patch: Dispatch<S>;
|
|
67
67
|
}
|
|
@@ -82,9 +82,8 @@ export interface ContainerNode<S = PatchableState> extends HTMLElement {
|
|
|
82
82
|
renderAsync: () => Promise<unknown>;
|
|
83
83
|
syncRenderer: (cb: () => void) => void;
|
|
84
84
|
asyncRenderer: ((cb: () => void) => ViewTransition) | null | undefined;
|
|
85
|
-
qSync: {} | undefined | null;
|
|
86
85
|
qAsync: {} | undefined | null;
|
|
87
|
-
isRendering:
|
|
86
|
+
isRendering: number;
|
|
88
87
|
isAnimating: boolean;
|
|
89
88
|
/** stats about the overall patches & last render time */
|
|
90
89
|
stats: {
|
package/dist/vode.es5.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var V=function(){function a(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:"object"===_typeof(b)?[a,b].concat(d):[a].concat(d)}function b(a,b,c){function e(b){var d=performance.now(),e=c(j.state);j.vode=r(j.state,a.parentElement,0,0,j.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=j.vode.node,a._vode=j),b||(j.stats.lastSyncRenderTime=performance.now()-d,j.stats.syncRenderCount++,j.isRendering=!1,j.qSync&&j.renderSync())}for(var f,g=arguments.length,h=Array(3<g?g-3:0),i=3;i<g;i++)h[i-3]=arguments[i];if(!(null!==(f=a)&&void 0!==f&&f.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var j={syncRenderer:N.requestAnimationFrame,asyncRenderer:N.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},k=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(h=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(h))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e,f,g,h,i,l;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:if(a&&("function"==typeof a||"object"===_typeof(a))){c.n=1;break}return c.a(2);case 1:if(j.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,j.stats.liveEffectCount++,c.p=2,c.n=3,d.next();case 3:e=c.v;case 4:if(!1!==e.done){c.n=9;break}return j.stats.liveEffectCount++,c.p=5,k.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,j.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:k.patch(e.value,b);case 10:return c.p=10,j.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return j.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,k.patch(f,b);case 15:return c.p=15,j.stats.liveEffectCount--,c.f(15);case 16:c.n=22;break;case 17:if(!Array.isArray(a)){c.n=18;break}if(0<a.length){g=_createForOfIteratorHelper(a);try{for(g.s();!(h=g.n()).done;)i=h.value,k.patch(i,!document.hidden&&!!j.asyncRenderer)}catch(a){g.e(a)}finally{g.f()}}else{j.qSync=q(j.qSync||{},j.qAsync,!1),j.qAsync=null;try{null===(l=N.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}j.stats.syncRenderPatchCount++,j.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}k.patch(a(j.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return j.stats.asyncRenderPatchCount++,j.qAsync=q(j.qAsync||{},a,!1),c.n=20,j.renderAsync();case 20:c.n=22;break;case 21:j.stats.syncRenderPatchCount++,j.qSync=q(j.qSync||{},a,!1),j.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var l=e.bind(null,!1),m=e.bind(null,!0);Object.defineProperty(j,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){j.isRendering||!j.qSync||(j.isRendering=!0,j.state=q(j.state,j.qSync,!0),j.qSync=null,j.syncRenderer(l))}}),Object.defineProperty(j,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!j.isAnimating&&j.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=N.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(j.isAnimating||!j.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return j.isAnimating=!0,c=performance.now(),a.p=4,j.state=q(j.state,j.qAsync,!0),j.qAsync=null,N.currentViewTransition=j.asyncRenderer(m),a.n=5,null===(d=N.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,j.stats.lastAsyncRenderTime=performance.now()-c,j.stats.asyncRenderCount++,j.isAnimating=!1,a.f(5);case 6:j.qAsync&&j.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),j.state=k;var n=a;n._vode=j;var o=Array.from(a.parentElement.children).indexOf(a);j.isRendering=!0,j.vode=r(b,a.parentElement,o,o,d(a,!0),c(b)),j.isRendering=!1,j.qSync&&j.renderSync();var p,s=_createForOfIteratorHelper(h);try{for(s.s();!(p=s.n()).done;){var t=p.value;k.patch(t)}}catch(a){s.e(a)}finally{s.f()}return function(a){return k.patch(a)}}function c(a){if(null!==a&&void 0!==a&&a._vode){var b=function d(a){if(null!==a&&void 0!==a&&a.node){var e=j(a);if(e){for(var f in e)"o"===f[0]&&"n"===f[1]&&(a.node[f]=null);a.node["catch"]=null}if(a.node._vode)c(a.node);else{var g=l(a);if(g){var h,i=_createForOfIteratorHelper(g);try{for(i.s();!(h=i.n()).done;){var k=h.value;b(k)}}catch(a){i.e(a)}finally{i.f()}}}}},d=b,e=a._vode;delete a._vode,Object.defineProperty(e.state,"patch",{value:void 0}),Object.defineProperty(e,"renderSync",{value:function a(){}}),Object.defineProperty(e,"renderAsync",{value:function a(){}}),b(e.vode)}else{var f,g=_createForOfIteratorHelper(a.children);try{for(g.s();!(f=g.n()).done;){var h=f.value;c(h)}}catch(a){g.e(a)}finally{g.f()}}}function d(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var e;return""===(null===(e=b.nodeValue)||void 0===e?void 0:e.trim())?void 0:c?b:b.nodeValue}if(b.nodeType===Node.ELEMENT_NODE){var f=b.tagName.toLowerCase(),g=[f];if(c&&(g.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var h,i={},j=b.attributes,k=_createForOfIteratorHelper(j);try{for(k.s();!(h=k.n()).done;){var l=h.value;i[l.name]=l.value}}catch(a){k.e(a)}finally{k.f()}g.push(i)}if(b.hasChildNodes()){var m,n=[],o=_createForOfIteratorHelper(b.childNodes);try{for(o.s();!(m=o.n()).done;){var p=m.value,q=p&&d(p,c);q?g.push(q):p&&c&&n.push(p)}}catch(a){o.e(a)}finally{o.f()}for(var r,s=0,t=n;s<t.length;s++)r=t[s],r.remove()}return g}}function e(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a child vode");if(b.__memo){var c=b;b=function b(a){return c(a)}}return b.__memo=a,b}function f(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function g(a){return a}function h(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function j(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function l(a){var b=o(a);return 0<b?a.slice(b):null}function m(a){var b=o(a);return 0>b?0:a.length-b}function n(a,b){var c=o(a);return 0<c?a[b+c]:void 0}function o(a){return j(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function q(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=q({},e,c):"object"===_typeof(f)?q(a[d],e,c):a[d]=q({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=q({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function r(a,b,c,e,f,g,h){try{var k,l;g=w(a,g,f);var m=!g||"number"==typeof g||"boolean"==typeof g;if(g===f||!f&&m)return f;var n=(null===f||void 0===f?void 0:f.nodeType)===Node.TEXT_NODE,p=n?f:null===f||void 0===f?void 0:f.node;if(m)return s(a,f),void(null===p||void 0===p||p.remove());var q=!m&&v(g),y=!m&&u(g),z=!!g&&"string"!=typeof g&&!!(null!==(k=g)&&void 0!==k&&k.node||(null===(l=g)||void 0===l?void 0:l.nodeType)===Node.TEXT_NODE);if(!q&&!y&&!z&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else z&&q?g=g.wholeText:z&&y&&(g=_toConsumableArray(g));if(n&&q)return p.nodeValue!==g&&(p.nodeValue=g),f;if(q&&(!p||!n)){var A=document.createTextNode(g);if(p)s(a,f),p.replaceWith(A);else{for(var B,C=!1,D=e;D<b.childNodes.length;D++)if(B=b.childNodes[D],B){B.before(A),C=!0;break}C||b.appendChild(A)}return A}if(y&&(!p||n||f[0]!==g[0])){var E=g;1 in E&&(E[1]=w(a,E[1],void 0));var F=j(g);void 0!==(null===F||void 0===F?void 0:F.xmlns)&&(h=F.xmlns);var G=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=G,x(a,G,void 0,F,null!==h&&void 0!==h?h:null),!!F&&"catch"in F&&(g.node["catch"]=null,g.node.removeAttribute("catch")),p)s(a,f),p.replaceWith(G);else{for(var H,I=!1,J=e;J<b.childNodes.length;J++)if(H=b.childNodes[J],H){H.before(G),I=!0;break}I||b.appendChild(G)}var K=o(g);if(0<K)for(var L=F?2:1,M=0,N=0;N<g.length-K;N++){var O=g[N+K],P=r(a,G,N,M,void 0,O,null!==h&&void 0!==h?h:null);g[N+L]=P,P&&M++}return g._unmountCount=(null!==F&&void 0!==F&&F.onUnmount?1:0)+t(g),"function"==typeof(null===F||void 0===F?void 0:F.onMount)&&a.patch(F.onMount(a,G)),g}if(!n&&y&&f[0]===g[0]){g.node=p;var Q=j(g),R=j(f);void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),x(a,p,R,Q,h),!(null!==Q&&void 0!==Q&&Q["catch"])||(null===R||void 0===R?void 0:R["catch"])===Q["catch"]||(g.node["catch"]=null,g.node.removeAttribute("catch"));var S=o(g),T=o(f);if(0<S)for(var U=0,V=0;V<g.length-S;V++){var W=g[V+S],X=0<T?f[V+T]:void 0,Y=r(a,p,V,U,X,W,h);g[V+S]=Y,Y&&U++}if(0<T)for(var Z=0<S?g.length-S:0,$=f.length-1-T;$>=Z;$--)r(a,p,$,$,f[$+T],void 0,h);return g._unmountCount=(null!==Q&&void 0!==Q&&Q.onUnmount?1:0)+t(g),g}}catch(i){var _,aa=null===(_=j(g))||void 0===_?void 0:_["catch"];if(aa){var ba,ca="function"==typeof aa?aa(a,i):aa;return r(a,b,c,e,d((null===(ba=g)||void 0===ba?void 0:ba.node)||(null===f||void 0===f?void 0:f.node),!0),ca,h)}throw i}}function s(a,b){if(b&&Array.isArray(b)&&0!=(0|b._unmountCount)){var c=l(b);if(c)for(var d=c.length-1;0<=d;d--)s(a,c[d]);var e=j(b);"function"==typeof(null===e||void 0===e?void 0:e.onUnmount)&&a.patch(e.onUnmount(a,b.node))}}function t(a){var b=l(a);if(!b)return 0;var c,d=0,e=_createForOfIteratorHelper(b);try{for(e.s();!(c=e.n()).done;){var f=c.value;f&&Array.isArray(f)&&(d+=0|f._unmountCount)}}catch(a){e.e(a)}finally{e.f()}return d}function u(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function v(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function w(a,b,c){for(var d;"function"==typeof b&&!b.__memo;)b=b(a);if("function"!=typeof b)return b;var e=null===(d=b)||void 0===d?void 0:d.__memo,f=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(e)&&Array.isArray(f)&&e.length===f.length){for(var g=!0,h=0;h<e.length;h++)if(e[h]!==f[h]){g=!1;break}if(g)return c}for(;"function"==typeof b;)b=b(a);return"object"===_typeof(b)&&(b.__memo=e),b}function x(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=y(a,b,g,h,i,f):y(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=y(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=y(a,b,l,void 0,m,f)}}}function y(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",z(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function z(a){return"string"==typeof a?a:Array.isArray(a)?a.map(z).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
|
|
1
|
+
"use strict";function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _regenerator(){function b(a,b,f,g){var h=b&&b.prototype instanceof d?b:d,c=Object.create(h.prototype);return _regeneratorDefine2(c,"_invoke",function(a,b,g){function h(a,b){for(q=a,s=b,e=0;!w&&t&&!c&&e<v.length;e++){var c,f=v[e],g=p.p,h=f[2];3<a?(c=h===b)&&(s=f[(q=f[4])?5:(q=3,3)],f[4]=f[5]=j):f[0]<=g&&((c=2>a&&g<f[1])?(q=0,p.v=b,p.n=f[1]):g<h&&(c=3>a||f[0]>b||b>h)&&(f[4]=a,f[5]=b,p.n=h,q=0))}if(c||1<a)return m;throw w=!0,b}var k,q,s,t=0,v=g||[],w=!1,p={p:0,n:0,v:j,a:h,f:h.bind(j,4),d:function c(a,b){return k=a,q=0,s=j,p.n=b,m}};return function(c,d,f){if(1<t)throw TypeError("Generator is already running");for(w&&1===d&&h(d,f),q=d,s=f;(e=2>q?j:s)||!w;){k||(q?3>q?(1<q&&(p.n=-1),h(q,s)):p.n=s:p.v=s);try{if(t=2,k){if(q||(c="next"),e=k[c]){if(!(e=e.call(k,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,2>q&&(q=0)}else 1===q&&(e=k["return"])&&e.call(k),2>q&&(s=TypeError("The iterator does not provide a '"+c+"' method"),q=1);k=j}else if((e=(w=0>p.n)?s:a.call(b,p))!==m)break}catch(a){k=j,q=1,s=a}finally{t=1}}return{value:e,done:w}}}(a,f,g),!0),c}function d(){}function g(){}function h(){}function i(a){return Object.setPrototypeOf?Object.setPrototypeOf(a,h):(a.__proto__=h,_regeneratorDefine2(a,l,"GeneratorFunction")),a.prototype=Object.create(c),a}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var j,e,f="function"==typeof Symbol?Symbol:{},k=f.iterator||"@@iterator",l=f.toStringTag||"@@toStringTag",m={};e=Object.getPrototypeOf;var a=[][k]?e(e([][k]())):(_regeneratorDefine2(e={},k,function(){return this}),e),c=h.prototype=d.prototype=Object.create(a);return g.prototype=h,_regeneratorDefine2(c,"constructor",h),_regeneratorDefine2(h,"constructor",g),g.displayName="GeneratorFunction",_regeneratorDefine2(h,l,"GeneratorFunction"),_regeneratorDefine2(c),_regeneratorDefine2(c,l,"Generator"),_regeneratorDefine2(c,k,function(){return this}),_regeneratorDefine2(c,"toString",function(){return"[object Generator]"}),(_regenerator=function a(){return{w:b,m:i}})()}function _regeneratorDefine2(a,b,c,d){var f=Object.defineProperty;try{f({},"",{})}catch(a){f=0}_regeneratorDefine2=function e(a,b,c,d){function g(b,c){_regeneratorDefine2(a,b,function(a){return this._invoke(b,c,a)})}b?f?f(a,b,{value:c,enumerable:!d,configurable:!d,writable:!d}):a[b]=c:(g("next",0),g("throw",1),g("return",2))},_regeneratorDefine2(a,b,c,d)}function asyncGeneratorStep(b,d,f,e,g,h,a){try{var c=b[h](a),i=c.value}catch(a){return void f(a)}c.done?d(i):Promise.resolve(i).then(e,g)}function _asyncToGenerator(b){return function(){var c=this,d=arguments;return new Promise(function(e,f){function g(a){asyncGeneratorStep(i,e,f,g,h,"next",a)}function h(a){asyncGeneratorStep(i,e,f,g,h,"throw",a)}var i=b.apply(c,d);g(void 0)})}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _createForOfIteratorHelper(b,c){var d="undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(!d){if(Array.isArray(b)||(d=_unsupportedIterableToArray(b))||c&&b&&"number"==typeof b.length){d&&(b=d);var e=0,f=function a(){};return{s:f,n:function a(){return e>=b.length?{done:!0}:{done:!1,value:b[e++]}},e:function b(a){throw a},f:f}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g,h=!0,i=!1;return{s:function a(){d=d.call(b)},n:function a(){var b=d.next();return h=b.done,b},e:function b(a){i=!0,g=a},f:function a(){try{h||null==d["return"]||d["return"]()}finally{if(i)throw g}}}}function _unsupportedIterableToArray(b,c){if(b){if("string"==typeof b)return _arrayLikeToArray(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(b,c):void 0}}function _arrayLikeToArray(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var V=function(){function a(a,b){if(!a)throw new Error("first argument to vode() must be a tag name or a vode");for(var c=arguments.length,d=Array(2<c?c-2:0),e=2;e<c;e++)d[e-2]=arguments[e];return Array.isArray(a)?a:"object"===_typeof(b)?[a,b].concat(d):[a].concat(d)}function b(a,b,c){function e(a,b){return f.apply(this,arguments)}function f(){return f=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:return n.stats.liveEffectCount++,c.p=1,c.n=2,a;case 2:return d=c.v,c.n=3,o.patch(d,b);case 3:return c.p=3,n.stats.liveEffectCount--,c.f(3);case 4:return c.a(2)}},c,null,[[1,,3,4]])})),f.apply(this,arguments)}function g(a,b){return h.apply(this,arguments)}function h(){return h=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function c(a,b){var d,e;return _regenerator().w(function(c){for(;1;)switch(c.p=c.n){case 0:return d=a,n.stats.liveEffectCount++,c.p=1,c.n=2,d.next();case 2:e=c.v;case 3:if(!1!==e.done){c.n=9;break}return n.stats.liveEffectCount++,c.p=4,c.n=5,o.patch(e.value,b);case 5:return c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,n.stats.liveEffectCount--,c.f(7);case 8:c.n=3;break;case 9:return c.n=10,o.patch(e.value,b);case 10:return c.p=10,n.stats.liveEffectCount--,c.f(10);case 11:return c.a(2)}},c,null,[[4,,7,8],[1,,10,11]])})),h.apply(this,arguments)}function i(b){var d=performance.now(),e=c(n.state);if(n.vode=r(n.state,a.parentElement,0,0,n.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=n.vode.node,a._vode=n),!b){n.stats.lastSyncRenderTime=performance.now()-d;var f=n.isRendering!==n.stats.syncRenderPatchCount;n.stats.syncRenderCount++,n.isRendering=0,f&&n.renderSync()}}for(var j,k=arguments.length,l=Array(3<k?k-3:0),m=3;m<k;m++)l[m-3]=arguments[m];if(!(null!==(j=a)&&void 0!==j&&j.parentElement))throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!b||"object"!==_typeof(b))throw new Error("second argument to app() must be a state object");if("function"!=typeof c)throw new Error("third argument to app() must be a function that returns a vode");var n={syncRenderer:N.requestAnimationFrame,asyncRenderer:N.startViewTransition,isRendering:0,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},o=b;"patch"in b&&"function"==typeof b.patch&&Array.isArray(b.patch.initialPatches)&&(l=[].concat(_toConsumableArray(b.patch.initialPatches),_toConsumableArray(l))),Object.defineProperty(b,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(a,b){for(var d;"function"==typeof a;)a=a(n.state);if(a&&"object"===_typeof(a)){if(n.stats.patchCount++,null!==(d=a)&&void 0!==d&&d.next)return g(a,b);if(a.then)return e(a,b);if(!Array.isArray(a))b?(n.stats.asyncRenderPatchCount++,n.qAsync=q(n.qAsync||{},a,!1),n.renderAsync()):(n.stats.syncRenderPatchCount++,q(n.state,a,!0),n.renderSync());else if(0<a.length){var f,h=_createForOfIteratorHelper(a);try{for(h.s();!(f=h.n()).done;){var i=f.value;o.patch(i,!document.hidden&&!!n.asyncRenderer)}}catch(a){h.e(a)}finally{h.f()}}else{q(n.state,n.qAsync,!0),n.qAsync=null;try{var j;null===(j=N.currentViewTransition)||void 0===j||j.skipTransition()}catch(a){}n.stats.syncRenderPatchCount++,n.renderSync()}}}});var p=i.bind(null,!1),s=i.bind(null,!0);Object.defineProperty(n,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){n.isRendering||(n.isRendering=n.stats.syncRenderPatchCount,n.syncRenderer(p))}}),Object.defineProperty(n,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function a(){var b,c,d;return _regenerator().w(function(a){for(;1;)switch(a.p=a.n){case 0:if(!n.isAnimating&&n.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=N.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(n.isAnimating||!n.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return n.isAnimating=!0,c=performance.now(),a.p=4,n.state=q(n.state,n.qAsync,!0),n.qAsync=null,N.currentViewTransition=n.asyncRenderer(s),a.n=5,null===(d=N.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,n.stats.lastAsyncRenderTime=performance.now()-c,n.stats.asyncRenderCount++,n.isAnimating=!1,a.f(5);case 6:n.qAsync&&n.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),n.state=o;var t=a;t._vode=n;var u=Array.from(a.parentElement.children).indexOf(a),v=n.stats.syncRenderPatchCount;n.isRendering=n.stats.syncRenderPatchCount,n.vode=r(b,a.parentElement,u,u,d(a,!0),c(b));var w=n.stats.syncRenderPatchCount!==v;n.isRendering=0,n.stats.syncRenderCount++,w&&n.renderSync();var x,y=_createForOfIteratorHelper(l);try{for(y.s();!(x=y.n()).done;){var z=x.value;o.patch(z)}}catch(a){y.e(a)}finally{y.f()}return function(a){return o.patch(a)}}function c(a){if(null!==a&&void 0!==a&&a._vode){var b=function d(a){if(null!==a&&void 0!==a&&a.node){var e=j(a);if(e){for(var f in e)"o"===f[0]&&"n"===f[1]&&(a.node[f]=null);a.node["catch"]=null}if(a.node._vode)c(a.node);else{var g=l(a);if(g){var h,i=_createForOfIteratorHelper(g);try{for(i.s();!(h=i.n()).done;){var k=h.value;b(k)}}catch(a){i.e(a)}finally{i.f()}}}}},d=b,e=a._vode;delete a._vode,Object.defineProperty(e.state,"patch",{value:void 0}),Object.defineProperty(e,"renderSync",{value:function a(){}}),Object.defineProperty(e,"renderAsync",{value:function a(){}}),b(e.vode)}else{var f,g=_createForOfIteratorHelper(a.children);try{for(g.s();!(f=g.n()).done;){var h=f.value;c(h)}}catch(a){g.e(a)}finally{g.f()}}}function d(b,c){if((null===b||void 0===b?void 0:b.nodeType)===Node.TEXT_NODE){var e;return""===(null===(e=b.nodeValue)||void 0===e?void 0:e.trim())?void 0:c?b:b.nodeValue}if(b.nodeType===Node.ELEMENT_NODE){var f=b.tagName.toLowerCase(),g=[f];if(c&&(g.node=b),null!==b&&void 0!==b&&b.hasAttributes()){var h,i={},j=b.attributes,k=_createForOfIteratorHelper(j);try{for(k.s();!(h=k.n()).done;){var l=h.value;i[l.name]=l.value}}catch(a){k.e(a)}finally{k.f()}g.push(i)}if(b.hasChildNodes()){var m,n=[],o=_createForOfIteratorHelper(b.childNodes);try{for(o.s();!(m=o.n()).done;){var p=m.value,q=p&&d(p,c);q?g.push(q):p&&c&&n.push(p)}}catch(a){o.e(a)}finally{o.f()}for(var r,s=0,t=n;s<t.length;s++)r=t[s],r.remove()}return g}}function e(a,b){if(!a||!Array.isArray(a))throw new Error("first argument to memo() must be an array of values to compare");if("function"!=typeof b)throw new Error("second argument to memo() must be a function that returns a child vode");if(b.__memo){var c=b;b=function b(a){return c(a)}}return b.__memo=a,b}function f(a){if(!a||"object"!==_typeof(a))throw new Error("createState() must be called with a state object");return"patch"in a||Object.defineProperty(a,"patch",{enumerable:!1,configurable:!0,writable:!1,value:function c(b){var d=a;Array.isArray(d.patch.initialPatches)||(d.patch.initialPatches=[]),d.patch.initialPatches.push(b)}}),a}function g(a){return a}function h(a){return!a?void 0:Array.isArray(a)?a[0]:"string"==typeof a||a.nodeType===Node.TEXT_NODE?"#text":void 0}function j(a){return Array.isArray(a)&&1<a.length&&a[1]&&!Array.isArray(a[1])&&"object"===_typeof(a[1])&&a[1].nodeType!==Node.TEXT_NODE?a[1]:void 0}function l(a){var b=o(a);return 0<b?a.slice(b):null}function m(a){var b=o(a);return 0>b?0:a.length-b}function n(a,b){var c=o(a);return 0<c?a[b+c]:void 0}function o(a){return j(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function q(a,b,c){if(!b)return a;for(var d in b){var e=b[d];if(e&&"object"===_typeof(e)){var f=a[d];f?Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date&&f!==e?a[d]=new Date(e):Array.isArray(f)?a[d]=q({},e,c):"object"===_typeof(f)?q(a[d],e,c):a[d]=q({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=q({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function r(a,b,c,e,f,g,h){try{var k,l;g=w(a,g,f);var m=!g||"number"==typeof g||"boolean"==typeof g;if(g===f||!f&&m)return f;var n=(null===f||void 0===f?void 0:f.nodeType)===Node.TEXT_NODE,p=n?f:null===f||void 0===f?void 0:f.node;if(m)return s(a,f),void(null===p||void 0===p||p.remove());var q=!m&&v(g),y=!m&&u(g),z=!!g&&"string"!=typeof g&&!!(null!==(k=g)&&void 0!==k&&k.node||(null===(l=g)||void 0===l?void 0:l.nodeType)===Node.TEXT_NODE);if(!q&&!y&&!z&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else z&&q?g=g.wholeText:z&&y&&(g=_toConsumableArray(g));if(n&&q)return p.nodeValue!==g&&(p.nodeValue=g),f;if(q&&(!p||!n)){var A=document.createTextNode(g);if(p)s(a,f),p.replaceWith(A);else{for(var B,C=!1,D=e;D<b.childNodes.length;D++)if(B=b.childNodes[D],B){B.before(A),C=!0;break}C||b.appendChild(A)}return A}if(y&&(!p||n||f[0]!==g[0])){var E=g;1 in E&&(E[1]=w(a,E[1],void 0));var F=j(g);void 0!==(null===F||void 0===F?void 0:F.xmlns)&&(h=F.xmlns);var G=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=G,x(a,G,void 0,F,null!==h&&void 0!==h?h:null),!!F&&"catch"in F&&(g.node["catch"]=null,g.node.removeAttribute("catch")),p)s(a,f),p.replaceWith(G);else{for(var H,I=!1,J=e;J<b.childNodes.length;J++)if(H=b.childNodes[J],H){H.before(G),I=!0;break}I||b.appendChild(G)}var K=o(g);if(0<K)for(var L=F?2:1,M=0,N=0;N<g.length-K;N++){var O=g[N+K],P=r(a,G,N,M,void 0,O,null!==h&&void 0!==h?h:null);g[N+L]=P,P&&M++}return g._unmountCount=(null!==F&&void 0!==F&&F.onUnmount?1:0)+t(g),"function"==typeof(null===F||void 0===F?void 0:F.onMount)&&a.patch(F.onMount(a,G)),g}if(!n&&y&&f[0]===g[0]){g.node=p;var Q=j(g),R=j(f);void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),x(a,p,R,Q,h),!(null!==Q&&void 0!==Q&&Q["catch"])||(null===R||void 0===R?void 0:R["catch"])===Q["catch"]||(g.node["catch"]=null,g.node.removeAttribute("catch"));var S=o(g),T=o(f);if(0<S)for(var U=0,V=0;V<g.length-S;V++){var W=g[V+S],X=0<T?f[V+T]:void 0,Y=r(a,p,V,U,X,W,h);g[V+S]=Y,Y&&U++}if(0<T)for(var Z=0<S?g.length-S:0,$=f.length-1-T;$>=Z;$--)r(a,p,$,$,f[$+T],void 0,h);return g._unmountCount=(null!==Q&&void 0!==Q&&Q.onUnmount?1:0)+t(g),g}}catch(i){var _,aa=null===(_=j(g))||void 0===_?void 0:_["catch"];if(aa){var ba,ca="function"==typeof aa?aa(a,i):aa;return r(a,b,c,e,d((null===(ba=g)||void 0===ba?void 0:ba.node)||(null===f||void 0===f?void 0:f.node),!0),ca,h)}throw i}}function s(a,b){if(b&&Array.isArray(b)&&0!=(0|b._unmountCount)){var c=l(b);if(c)for(var d=c.length-1;0<=d;d--)s(a,c[d]);var e=j(b);"function"==typeof(null===e||void 0===e?void 0:e.onUnmount)&&a.patch(e.onUnmount(a,b.node))}}function t(a){var b=l(a);if(!b)return 0;var c,d=0,e=_createForOfIteratorHelper(b);try{for(e.s();!(c=e.n()).done;){var f=c.value;f&&Array.isArray(f)&&(d+=0|f._unmountCount)}}catch(a){e.e(a)}finally{e.f()}return d}function u(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function v(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function w(a,b,c){for(var d;"function"==typeof b&&!b.__memo;)b=b(a);if("function"!=typeof b)return b;var e=null===(d=b)||void 0===d?void 0:d.__memo,f=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(e)&&Array.isArray(f)&&e.length===f.length){for(var g=!0,h=0;h<e.length;h++)if(e[h]!==f[h]){g=!1;break}if(g)return c}for(;"function"==typeof b;)b=b(a);return"object"===_typeof(b)&&(b.__memo=e),b}function x(a,b,c,d,e){if(d||c){var f=void 0!==e;if(c)for(var g in c){var h=c[g],i=null===d||void 0===d?void 0:d[g];h!==i&&(d?d[g]=y(a,b,g,h,i,f):y(a,b,g,h,void 0,f))}if(d&&c){for(var j in d)if(!(j in c)){var k=d[j];d[j]=y(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=y(a,b,l,void 0,m,f)}}}function y(a,b,c,d,e,f){if("style"===c){if(!e)b.style.cssText="";else if("string"==typeof e)d!==e&&(b.style.cssText=e);else if(d&&"object"===_typeof(d)){for(var g in d){var h=e[g];h||(b.style[g]=null)}for(var i in e){var j=d[i],l=e[i];j!==l&&(b.style[i]=l)}}else for(var m in e)b.style[m]=e[m];}else if("class"===c)e?b.setAttribute("class",z(e)):b.removeAttribute("class");else if(!("o"===c[0]&&"n"===c[1]))f||(b[c]=e),void 0===e||null===e||!1===e?b.removeAttribute(c):b.setAttribute(c,e);else if(e){var n=null;if("function"==typeof e){var o=e;n=function c(b){return a.patch(o(a,b))}}else"object"===_typeof(e)&&(n=function b(){return a.patch(e)});b[c]=n}else b[c]=null;return e}function z(a){return"string"==typeof a?a:Array.isArray(a)?a.map(z).join(" "):"object"===_typeof(a)?Object.keys(a).filter(function(b){return a[b]}).join(" "):""}// src/vode-tags.ts
|
|
2
2
|
// src/merge-class.ts
|
|
3
3
|
function A(){for(var c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];if(!d||0===d.length)return null;if(1===d.length)return d[0];for(var f=d[0],g=1;g<d.length;g++){var h=f,i=d[g];if(!h)f=i;else if(!i)continue;else if("string"==typeof h&&"string"==typeof i){var j=h.split(" "),k=i.split(" "),l=/* @__PURE__ */new Set([].concat(_toConsumableArray(j),_toConsumableArray(k)));f=Array.from(l).join(" ").trim()}else if("string"==typeof h&&Array.isArray(i)){var m=/* @__PURE__ */new Set([].concat(_toConsumableArray(i),_toConsumableArray(h.split(" "))));f=Array.from(m).join(" ").trim()}else if(Array.isArray(h)&&"string"==typeof i){var n=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i.split(" "))));f=Array.from(n).join(" ").trim()}else if(Array.isArray(h)&&Array.isArray(i)){var o=/* @__PURE__ */new Set([].concat(_toConsumableArray(h),_toConsumableArray(i)));f=Array.from(o).join(" ").trim()}else if("string"==typeof h&&"object"===_typeof(i))f=_objectSpread(_defineProperty({},h,!0),i);else if("object"===_typeof(h)&&"string"==typeof i)f=_objectSpread(_objectSpread({},h),{},_defineProperty({},i,!0));else if("object"===_typeof(h)&&"object"===_typeof(i))f=_objectSpread(_objectSpread({},h),i);else if("object"===_typeof(h)&&Array.isArray(i)){var p,q=_objectSpread({},h),r=_createForOfIteratorHelper(i);try{for(r.s();!(p=r.n()).done;){var s=p.value;q[s]=!0}}catch(a){r.e(a)}finally{r.f()}f=q}else if(Array.isArray(h)&&"object"===_typeof(i)){var t,u={},v=_createForOfIteratorHelper(h);try{for(v.s();!(t=v.n()).done;){var w=t.value;u[w]=!0}}catch(a){v.e(a)}finally{v.f()}for(var x,y=0,z=Object.keys(i);y<z.length;y++)x=z[y],u[x]=i[x];f=u}else throw new Error("cannot merge classes of ".concat(h," (").concat(_typeof(h),") and ").concat(i," (").concat(_typeof(i),")"))}return f}// src/merge-style.ts
|
|
4
4
|
function B(){M||(M=document.createElement("div"));try{for(var a=M.style,b=arguments.length,c=Array(b),d=0;d<b;d++)c[d]=arguments[d];for(var e,f=0,g=c;f<g.length;f++)if(e=g[f],"object"===_typeof(e)&&null!==e)for(var h in e)a[h]=e[h];else"string"==typeof e&&(a.cssText+=";"+e);return a.cssText}finally{M.style.cssText=""}}// src/merge-props.ts
|
package/dist/vode.js
CHANGED
|
@@ -261,53 +261,62 @@ var V = (() => {
|
|
|
261
261
|
const _vode = {};
|
|
262
262
|
_vode.syncRenderer = globals.requestAnimationFrame;
|
|
263
263
|
_vode.asyncRenderer = globals.startViewTransition;
|
|
264
|
-
_vode.
|
|
264
|
+
_vode.isRendering = 0;
|
|
265
265
|
_vode.qAsync = null;
|
|
266
266
|
_vode.stats = { lastSyncRenderTime: 0, lastAsyncRenderTime: 0, syncRenderCount: 0, asyncRenderCount: 0, liveEffectCount: 0, patchCount: 0, syncRenderPatchCount: 0, asyncRenderPatchCount: 0 };
|
|
267
267
|
const patchableState = state;
|
|
268
268
|
if ("patch" in state && typeof state.patch === "function" && Array.isArray(state.patch.initialPatches)) {
|
|
269
269
|
initialPatches = [...state.patch.initialPatches, ...initialPatches];
|
|
270
270
|
}
|
|
271
|
+
async function promisePatch(action, isAnimated) {
|
|
272
|
+
_vode.stats.liveEffectCount++;
|
|
273
|
+
try {
|
|
274
|
+
const resolvedPatch = await action;
|
|
275
|
+
await patchableState.patch(resolvedPatch, isAnimated);
|
|
276
|
+
} finally {
|
|
277
|
+
_vode.stats.liveEffectCount--;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
async function generatorPatch(action, isAnimated) {
|
|
281
|
+
const generator = action;
|
|
282
|
+
_vode.stats.liveEffectCount++;
|
|
283
|
+
try {
|
|
284
|
+
let v = await generator.next();
|
|
285
|
+
while (v.done === false) {
|
|
286
|
+
_vode.stats.liveEffectCount++;
|
|
287
|
+
try {
|
|
288
|
+
await patchableState.patch(v.value, isAnimated);
|
|
289
|
+
v = await generator.next();
|
|
290
|
+
} finally {
|
|
291
|
+
_vode.stats.liveEffectCount--;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
await patchableState.patch(v.value, isAnimated);
|
|
295
|
+
} finally {
|
|
296
|
+
_vode.stats.liveEffectCount--;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
271
299
|
Object.defineProperty(state, "patch", {
|
|
272
300
|
enumerable: false,
|
|
273
301
|
configurable: true,
|
|
274
302
|
writable: false,
|
|
275
|
-
value:
|
|
276
|
-
|
|
303
|
+
value: (action, isAnimated) => {
|
|
304
|
+
while (typeof action === "function") {
|
|
305
|
+
action = action(_vode.state);
|
|
306
|
+
}
|
|
307
|
+
if (!action || typeof action !== "object") return;
|
|
277
308
|
_vode.stats.patchCount++;
|
|
278
309
|
if (action?.next) {
|
|
279
|
-
|
|
280
|
-
_vode.stats.liveEffectCount++;
|
|
281
|
-
try {
|
|
282
|
-
let v = await generator.next();
|
|
283
|
-
while (v.done === false) {
|
|
284
|
-
_vode.stats.liveEffectCount++;
|
|
285
|
-
try {
|
|
286
|
-
patchableState.patch(v.value, isAsync);
|
|
287
|
-
v = await generator.next();
|
|
288
|
-
} finally {
|
|
289
|
-
_vode.stats.liveEffectCount--;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
patchableState.patch(v.value, isAsync);
|
|
293
|
-
} finally {
|
|
294
|
-
_vode.stats.liveEffectCount--;
|
|
295
|
-
}
|
|
310
|
+
return generatorPatch(action, isAnimated);
|
|
296
311
|
} else if (action.then) {
|
|
297
|
-
|
|
298
|
-
try {
|
|
299
|
-
const resolvedPatch = await action;
|
|
300
|
-
patchableState.patch(resolvedPatch, isAsync);
|
|
301
|
-
} finally {
|
|
302
|
-
_vode.stats.liveEffectCount--;
|
|
303
|
-
}
|
|
312
|
+
return promisePatch(action, isAnimated);
|
|
304
313
|
} else if (Array.isArray(action)) {
|
|
305
314
|
if (action.length > 0) {
|
|
306
315
|
for (const p of action) {
|
|
307
316
|
patchableState.patch(p, !document.hidden && !!_vode.asyncRenderer);
|
|
308
317
|
}
|
|
309
318
|
} else {
|
|
310
|
-
|
|
319
|
+
mergeState(_vode.state, _vode.qAsync, true);
|
|
311
320
|
_vode.qAsync = null;
|
|
312
321
|
try {
|
|
313
322
|
globals.currentViewTransition?.skipTransition();
|
|
@@ -316,22 +325,20 @@ var V = (() => {
|
|
|
316
325
|
_vode.stats.syncRenderPatchCount++;
|
|
317
326
|
_vode.renderSync();
|
|
318
327
|
}
|
|
319
|
-
} else if (typeof action === "function") {
|
|
320
|
-
patchableState.patch(action(_vode.state), isAsync);
|
|
321
328
|
} else {
|
|
322
|
-
if (
|
|
329
|
+
if (isAnimated) {
|
|
323
330
|
_vode.stats.asyncRenderPatchCount++;
|
|
324
331
|
_vode.qAsync = mergeState(_vode.qAsync || {}, action, false);
|
|
325
|
-
|
|
332
|
+
_vode.renderAsync();
|
|
326
333
|
} else {
|
|
327
334
|
_vode.stats.syncRenderPatchCount++;
|
|
328
|
-
|
|
335
|
+
mergeState(_vode.state, action, true);
|
|
329
336
|
_vode.renderSync();
|
|
330
337
|
}
|
|
331
338
|
}
|
|
332
339
|
}
|
|
333
340
|
});
|
|
334
|
-
function renderDom(
|
|
341
|
+
function renderDom(isAnimated) {
|
|
335
342
|
const sw = performance.now();
|
|
336
343
|
const vom = dom(_vode.state);
|
|
337
344
|
_vode.vode = render(_vode.state, container.parentElement, 0, 0, _vode.vode, vom);
|
|
@@ -339,11 +346,13 @@ var V = (() => {
|
|
|
339
346
|
container = _vode.vode.node;
|
|
340
347
|
container._vode = _vode;
|
|
341
348
|
}
|
|
342
|
-
if (!
|
|
349
|
+
if (!isAnimated) {
|
|
343
350
|
_vode.stats.lastSyncRenderTime = performance.now() - sw;
|
|
351
|
+
const changesSinceRender = _vode.isRendering !== _vode.stats.syncRenderPatchCount;
|
|
344
352
|
_vode.stats.syncRenderCount++;
|
|
345
|
-
_vode.isRendering =
|
|
346
|
-
if (
|
|
353
|
+
_vode.isRendering = 0;
|
|
354
|
+
if (changesSinceRender)
|
|
355
|
+
_vode.renderSync();
|
|
347
356
|
}
|
|
348
357
|
}
|
|
349
358
|
const sr = renderDom.bind(null, false);
|
|
@@ -353,10 +362,8 @@ var V = (() => {
|
|
|
353
362
|
configurable: true,
|
|
354
363
|
writable: false,
|
|
355
364
|
value: () => {
|
|
356
|
-
if (_vode.isRendering
|
|
357
|
-
_vode.isRendering =
|
|
358
|
-
_vode.state = mergeState(_vode.state, _vode.qSync, true);
|
|
359
|
-
_vode.qSync = null;
|
|
365
|
+
if (_vode.isRendering) return;
|
|
366
|
+
_vode.isRendering = _vode.stats.syncRenderPatchCount;
|
|
360
367
|
_vode.syncRenderer(sr);
|
|
361
368
|
}
|
|
362
369
|
});
|
|
@@ -387,7 +394,8 @@ var V = (() => {
|
|
|
387
394
|
const root = container;
|
|
388
395
|
root._vode = _vode;
|
|
389
396
|
const indexInParent = Array.from(container.parentElement.children).indexOf(container);
|
|
390
|
-
|
|
397
|
+
const patchCountBefore = _vode.stats.syncRenderPatchCount;
|
|
398
|
+
_vode.isRendering = _vode.stats.syncRenderPatchCount;
|
|
391
399
|
_vode.vode = render(
|
|
392
400
|
state,
|
|
393
401
|
container.parentElement,
|
|
@@ -396,8 +404,10 @@ var V = (() => {
|
|
|
396
404
|
hydrate(container, true),
|
|
397
405
|
dom(state)
|
|
398
406
|
);
|
|
399
|
-
_vode.
|
|
400
|
-
|
|
407
|
+
const continueRendering = _vode.stats.syncRenderPatchCount !== patchCountBefore;
|
|
408
|
+
_vode.isRendering = 0;
|
|
409
|
+
_vode.stats.syncRenderCount++;
|
|
410
|
+
if (continueRendering) _vode.renderSync();
|
|
401
411
|
for (const effect of initialPatches) {
|
|
402
412
|
patchableState.patch(effect);
|
|
403
413
|
}
|