@ryupold/vode 1.6.8 → 1.7.0
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/README.md +13 -10
- package/dist/vode.amd.min.js +3 -3
- package/dist/vode.es5.min.js +6 -6
- package/dist/vode.js +93 -8
- package/dist/vode.min.js +1 -1
- package/dist/vode.min.mjs +1 -1
- package/dist/vode.mjs +93 -8
- package/package.json +2 -2
- package/src/state-context.ts +209 -72
package/README.md
CHANGED
|
@@ -567,6 +567,7 @@ const CompMathML = (s) =>
|
|
|
567
567
|
The state context utilities can help creating shareable type safe components.
|
|
568
568
|
|
|
569
569
|
```typescript
|
|
570
|
+
import { app, context, createState, SubStateContext, Vode, DIV, FORM, H1, OPTION, P, SELECT } from "@ryupold/vode";
|
|
570
571
|
|
|
571
572
|
type Settings = { theme: string, lang: string };
|
|
572
573
|
type StateType = {
|
|
@@ -578,13 +579,13 @@ type StateType = {
|
|
|
578
579
|
const state = createState<StateType>({
|
|
579
580
|
user: {
|
|
580
581
|
profile: {
|
|
581
|
-
settings: { theme: 'dark', lang: '
|
|
582
|
+
settings: { theme: 'dark', lang: 'es' }
|
|
582
583
|
}
|
|
583
584
|
}
|
|
584
585
|
});
|
|
585
586
|
|
|
586
587
|
// Create a context for the nested settings
|
|
587
|
-
const settingsCtx =
|
|
588
|
+
const settingsCtx = context(state).user.profile.settings;
|
|
588
589
|
|
|
589
590
|
const element = document.getElementById('app')!;
|
|
590
591
|
app(element, state,
|
|
@@ -602,20 +603,22 @@ function SettingsForm(ctx: SubStateContext<Settings>) {
|
|
|
602
603
|
[SELECT,
|
|
603
604
|
{
|
|
604
605
|
class: 'theme-select',
|
|
605
|
-
onchange: (s:
|
|
606
|
+
onchange: (s: unknown, e: Event) => ctx.patch({ theme: (<HTMLSelectElement>e.target).value }),
|
|
607
|
+
value: settings.theme,
|
|
606
608
|
},
|
|
607
|
-
[OPTION, { value: 'light', selected: settings.theme === 'light'
|
|
608
|
-
[OPTION, { value: 'dark', selected: settings.theme === 'dark'
|
|
609
|
+
[OPTION, { value: 'light', selected: settings.theme === 'light' }, 'light'],
|
|
610
|
+
[OPTION, { value: 'dark', selected: settings.theme === 'dark' }, 'dark'],
|
|
609
611
|
],
|
|
610
612
|
[P, "current lang:", settings.lang],
|
|
611
613
|
[SELECT, {
|
|
612
614
|
class: 'lang-select',
|
|
613
|
-
onchange: (s:
|
|
615
|
+
onchange: (s: unknown, e: Event) => ctx.patch({ lang: (<HTMLSelectElement>e.target).value }),
|
|
616
|
+
value: settings.lang,
|
|
614
617
|
},
|
|
615
|
-
[OPTION, { value: 'en', selected: settings.lang === 'en'
|
|
616
|
-
[OPTION, { value: 'de', selected: settings.lang === 'de'
|
|
617
|
-
[OPTION, { value: 'es', selected: settings.lang === 'es'
|
|
618
|
-
[OPTION, { value: 'fr', selected: settings.lang === 'fr'
|
|
618
|
+
[OPTION, { value: 'en', selected: settings.lang === 'en' }, 'en'],
|
|
619
|
+
[OPTION, { value: 'de', selected: settings.lang === 'de' }, 'de'],
|
|
620
|
+
[OPTION, { value: 'es', selected: settings.lang === 'es' }, 'es'],
|
|
621
|
+
[OPTION, { value: 'fr', selected: settings.lang === 'fr' }, 'fr'],
|
|
619
622
|
],
|
|
620
623
|
];
|
|
621
624
|
}
|
package/dist/vode.amd.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LINE=exports.LI=exports.LEGEND=exports.LABEL=exports.KeyStateContext=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.DelegateStateContext=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.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=exports.LINK=exports.LINEARGRADIENT=void 0,exports.WBR=exports.VIEW=exports.VIDEO=void 0,exports.app=app,exports.child=child,exports.childCount=childCount,exports.children=children,exports.childrenStart=childrenStart,exports.createPatch=createPatch,exports.createState=createState,exports.defuse=defuse,exports.globals=void 0,exports.hydrate=hydrate,exports.memo=memo,exports.mergeClass=mergeClass,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 _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 _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 _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 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 _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
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LINE=exports.LI=exports.LEGEND=exports.LABEL=exports.KeyStateContext=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.DelegateStateContext=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.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=exports.LINK=exports.LINEARGRADIENT=void 0,exports.WBR=exports.VIEW=exports.VIDEO=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.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 _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 _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 _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 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 _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
2
|
var globals=exports.globals={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)};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:b?[a,b].concat(d):[a].concat(d)}function app(a,b,c){var d;function e(b){var d=Date.now(),e=c(f.state);f.vode=render(f.state,a.parentElement,0,0,f.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=f.vode.node,a._vode=f),b||(f.stats.lastSyncRenderTime=Date.now()-d,f.stats.syncRenderCount++,f.isRendering=!1,f.qSync&&f.renderSync())}if(!(null!==(d=a)&&void 0!==d&&d.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 f={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}},g=b;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,h,i,j,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(f.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,f.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 f.stats.liveEffectCount++,c.p=5,g.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,f.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:g.patch(e.value,b);case 10:return c.p=10,f.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return f.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:h=c.v,g.patch(h,b);case 15:return c.p=15,f.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){i=_createForOfIteratorHelper(a);try{for(i.s();!(j=i.n()).done;)k=j.value,g.patch(k,!document.hidden&&!!f.asyncRenderer)}catch(a){i.e(a)}finally{i.f()}}else{f.qSync=mergeState(f.qSync||{},f.qAsync,!1),f.qAsync=null;try{null===(l=globals.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}f.stats.syncRenderPatchCount++,f.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}g.patch(a(f.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return f.stats.asyncRenderPatchCount++,f.qAsync=mergeState(f.qAsync||{},a,!1),c.n=20,f.renderAsync();case 20:c.n=22;break;case 21:f.stats.syncRenderPatchCount++,f.qSync=mergeState(f.qSync||{},a,!1),f.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var h=e.bind(null,!1),i=e.bind(null,!0);Object.defineProperty(f,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){f.isRendering||!f.qSync||(f.isRendering=!0,f.state=mergeState(f.state,f.qSync,!0),f.qSync=null,f.syncRenderer(h))}}),Object.defineProperty(f,"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(!f.isAnimating&&f.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(!(f.isAnimating||!f.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return f.isAnimating=!0,c=Date.now(),a.p=4,f.state=mergeState(f.state,f.qAsync,!0),f.qAsync=null,globals.currentViewTransition=f.asyncRenderer(i),a.n=5,null===(d=globals.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,f.stats.lastAsyncRenderTime=Date.now()-c,f.stats.asyncRenderCount++,f.isAnimating=!1,a.f(5);case 6:f.qAsync&&f.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),f.state=g;var j=a;j._vode=f;var k=Array.from(a.parentElement.children).indexOf(a);f.vode=render(b,a.parentElement,k,k,hydrate(a,!0),c(b));for(var l=arguments.length,m=Array(3<l?l-3:0),n=3;n<l;n++)m[n-3]=arguments[n];for(var o,p=0,q=m;p<q.length;p++)o=q[p],g.patch(o);return function(a){return g.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.COMMENT_NODE&&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 vode or props object");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 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(null===m||void 0===m?void 0:m.onUnmount)&&a.patch(m.onUnmount(m)),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)m.onUnmount&&a.patch(m.onUnmount(m)),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,r),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)m.onUnmount&&a.patch(m.onUnmount(m)),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,x),y=!0;break}y||b.appendChild(w)}var A=children(f);if(A)for(var B=v?2:1,C=0,D=0;D<A.length;D++){var E=A[D],F=render(a,w,D,C,void 0,E,null!==g&&void 0!==g?g:null);f[D+B]=F,F&&C++}return w.onMount&&a.patch(w.onMount(w)),f}if(!l&&o&&e[0]===f[0]){var G;f.node=m;var H=f,I=e,J=props(f),K=props(e);if(void 0!==(null===J||void 0===J?void 0:J.xmlns)&&(g=J.xmlns),null!==(G=H[1])&&void 0!==G&&G.__memo){var L=H[1];H[1]=remember(a,H[1],I[1]),L!==H[1]&&patchProperties(a,m,K,J,g)}else patchProperties(a,m,K,J,g);!(null!==J&&void 0!==J&&J["catch"])||(null===K||void 0===K?void 0:K["catch"])===J["catch"]||(f.node["catch"]=null,f.node.removeAttribute("catch"));var M=children(f),N=children(e);if(M)for(var O=J?2:1,P=0,Q=0;Q<M.length;Q++){var R=M[Q],S=N&&N[Q],T=render(a,m,Q,P,S,R,g);f[Q+O]=T,T&&P++}if(N)for(var U=M?M.length:0,V=N.length-1;V>=U;V--)render(a,m,V,V,N[V],void 0,g);return f}}catch(h){var W,X=null===(W=props(f))||void 0===W?void 0:W["catch"];if(X){var Y,Z="function"==typeof X?X(a,h):X;return render(a,b,c,d,hydrate((null===(Y=f)||void 0===Y?void 0:Y.node)||(null===e||void 0===e?void 0:e.node),!0),Z,g)}throw h}}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){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=unwrap(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function unwrap(a,b){return"function"==typeof a?unwrap(a(b),b):a}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=document.createElement("div");function mergeStyle(){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/state-context.ts
|
|
6
|
-
var KeyStateContext=exports.KeyStateContext=/*#__PURE__*/function(){function a(b,c){_classCallCheck(this,a),_defineProperty(this,"keys",void 0),this.state=b,this.path=c,this.keys=c.split(".")}return _createClass(a,[{key:"get",value:function a(){for(var b=this.keys,c=this.state?this.state[b[0]]:void 0,d=1;d<b.length&&!!c;d++)c=c[b[d]];return c}},{key:"put",value:function b(a){this.putDeep(a,this.state)}},{key:"patch",value:function b(a){if(Array.isArray(a)){var c,d=[],e=_createForOfIteratorHelper(a);try{for(e.s();!(c=e.n()).done;){var f=c.value;d.push(this.createPatch(f))}}catch(a){e.e(a)}finally{e.f()}this.state.patch(d)}else this.state.patch(this.createPatch(a))}/**
|
|
6
|
+
function context(a){return new ProxyStateContextImpl(a,[])}var ProxyStateContextImpl=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){throw"implemented in ctor"}},{key:"put",value:function b(a){throw"implemented in ctor"}},{key:"patch",value:function b(a){throw"implemented in ctor"}}])}(),DelegateStateContext=exports.DelegateStateContext=/*#__PURE__*/_createClass(function e(a,b,c,d){_classCallCheck(this,e),this.state=a,this.get=b,this.put=c,this.patch=d}),KeyStateContext=exports.KeyStateContext=/*#__PURE__*/function(){function a(b,c){_classCallCheck(this,a),_defineProperty(this,"keys",void 0),this.state=b,this.path=c,this.keys=c.split(".")}return _createClass(a,[{key:"get",value:function a(){for(var b=this.keys,c=this.state?this.state[b[0]]:void 0,d=1;d<b.length&&!!c;d++)c=c[b[d]];return c}},{key:"put",value:function b(a){this.putDeep(a,this.state)}},{key:"patch",value:function b(a){if(Array.isArray(a)){var c,d=[],e=_createForOfIteratorHelper(a);try{for(e.s();!(c=e.n()).done;){var f=c.value;d.push(this.createPatch(f))}}catch(a){e.e(a)}finally{e.f()}this.state.patch(d)}else this.state.patch(this.createPatch(a))}/**
|
|
7
7
|
* Creates a render-patch for the parent state by setting a nested sub-state value while creating necessary structure.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
@@ -15,4 +15,4 @@ var KeyStateContext=exports.KeyStateContext=/*#__PURE__*/function(){function a(b
|
|
|
15
15
|
*
|
|
16
16
|
* @param value
|
|
17
17
|
* @returns {{key-path}:{...: value}} render-patch for the parent state
|
|
18
|
-
*/},{key:"createPatch",value:function b(a){var c={};return this.putDeep(a,c),c}},{key:"putDeep",value:function c(a,b){var d=this.keys;if(1<d.length){var e=0,f=b[d[e]];for(("object"!==_typeof(f)||null===f)&&(b[d[e]]=f={}),e=1;e<d.length-1;e++){var g=f;f=f[d[e]],("object"!==_typeof(f)||null===f)&&(g[d[e]]=f={})}f[d[e]]=a}else"object"===_typeof(b[d[0]])&&"object"===_typeof(a)?Object.assign(b[d[0]],a):b[d[0]]=a}}])}()
|
|
18
|
+
*/},{key:"createPatch",value:function b(a){var c={};return this.putDeep(a,c),c}},{key:"putDeep",value:function c(a,b){var d=this.keys;if(1<d.length){var e=0,f=b[d[e]];for(("object"!==_typeof(f)||null===f)&&(b[d[e]]=f={}),e=1;e<d.length-1;e++){var g=f;f=f[d[e]],("object"!==_typeof(f)||null===f)&&(g[d[e]]=f={})}f[d[e]]=a}else"object"===_typeof(b[d[0]])&&"object"===_typeof(a)?Object.assign(b[d[0]],a):b[d[0]]=a}}])}();
|
package/dist/vode.es5.min.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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 _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 _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 _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:b?[a,b].concat(d):[a].concat(d)}function b(a,b,c){var e;function f(b){var d=Date.now(),e=c(g.state);g.vode=o(g.state,a.parentElement,0,0,g.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=g.vode.node,a._vode=g),b||(g.stats.lastSyncRenderTime=Date.now()-d,g.stats.syncRenderCount++,g.isRendering=!1,g.qSync&&g.renderSync())}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 g={syncRenderer:H.requestAnimationFrame,asyncRenderer:H.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},h=b;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,i,j,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(g.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,g.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 g.stats.liveEffectCount++,c.p=5,h.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,g.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:h.patch(e.value,b);case 10:return c.p=10,g.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return g.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,h.patch(f,b);case 15:return c.p=15,g.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){i=_createForOfIteratorHelper(a);try{for(i.s();!(j=i.n()).done;)k=j.value,h.patch(k,!document.hidden&&!!g.asyncRenderer)}catch(a){i.e(a)}finally{i.f()}}else{g.qSync=n(g.qSync||{},g.qAsync,!1),g.qAsync=null;try{null===(l=H.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}g.stats.syncRenderPatchCount++,g.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}h.patch(a(g.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return g.stats.asyncRenderPatchCount++,g.qAsync=n(g.qAsync||{},a,!1),c.n=20,g.renderAsync();case 20:c.n=22;break;case 21:g.stats.syncRenderPatchCount++,g.qSync=n(g.qSync||{},a,!1),g.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var i=f.bind(null,!1),j=f.bind(null,!0);Object.defineProperty(g,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){g.isRendering||!g.qSync||(g.isRendering=!0,g.state=n(g.state,g.qSync,!0),g.qSync=null,g.syncRenderer(i))}}),Object.defineProperty(g,"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(!g.isAnimating&&g.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=H.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(g.isAnimating||!g.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return g.isAnimating=!0,c=Date.now(),a.p=4,g.state=n(g.state,g.qAsync,!0),g.qAsync=null,H.currentViewTransition=g.asyncRenderer(j),a.n=5,null===(d=H.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,g.stats.lastAsyncRenderTime=Date.now()-c,g.stats.asyncRenderCount++,g.isAnimating=!1,a.f(5);case 6:g.qAsync&&g.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),g.state=h;var k=a;k._vode=g;var l=Array.from(a.parentElement.children).indexOf(a);g.vode=o(b,a.parentElement,l,l,d(a,!0),c(b));for(var m=arguments.length,p=Array(3<m?m-3:0),q=3;q<m;q++)p[q-3]=arguments[q];for(var r,s=0,t=p;s<t.length;s++)r=t[s],h.patch(r);return function(a){return h.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=i(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=j(a);if(g){var h,k=_createForOfIteratorHelper(g);try{for(k.s();!(h=k.n()).done;){var l=h.value;b(l)}}catch(a){k.e(a)}finally{k.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.COMMENT_NODE&&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 vode or props object");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 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 i(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 j(a){var b=m(a);return 0<b?a.slice(b):null}function k(a){var b=m(a);return 0>b?0:a.length-b}function l(a,b){var c=m(a);return 0<c?a[b+c]:void 0}function m(a){return i(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function n(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]=n({},e,c):"object"===_typeof(f)?n(a[d],e,c):a[d]=n({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=n({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function o(a,b,c,e,f,g,h){try{var k,l;g=r(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,s=n?f:null===f||void 0===f?void 0:f.node;if(m)return(null===s||void 0===s?void 0:s.onUnmount)&&a.patch(s.onUnmount(s)),void(null===s||void 0===s||s.remove());var t=!m&&q(g),v=!m&&p(g),w=!!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(!t&&!v&&!w&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else w&&t?g=g.wholeText:w&&v&&(g=_toConsumableArray(g));if(n&&t)return s.nodeValue!==g&&(s.nodeValue=g),f;if(t&&(!s||!n)){var x=document.createTextNode(g);if(s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(x);else{for(var y,z=!1,A=e;A<b.childNodes.length;A++)if(y=b.childNodes[A],y){y.before(x,y),z=!0;break}z||b.appendChild(x)}return x}if(v&&(!s||n||f[0]!==g[0])){var B=g;1 in B&&(B[1]=r(a,B[1],void 0));var C=i(g);void 0!==(null===C||void 0===C?void 0:C.xmlns)&&(h=C.xmlns);var D=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=D,u(a,D,void 0,C,null!==h&&void 0!==h?h:null),!!C&&"catch"in C&&(g.node["catch"]=null,g.node.removeAttribute("catch")),s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(D);else{for(var E,F=!1,G=e;G<b.childNodes.length;G++)if(E=b.childNodes[G],E){E.before(D,E),F=!0;break}F||b.appendChild(D)}var H=j(g);if(H)for(var I=C?2:1,J=0,K=0;K<H.length;K++){var L=H[K],M=o(a,D,K,J,void 0,L,null!==h&&void 0!==h?h:null);g[K+I]=M,M&&J++}return D.onMount&&a.patch(D.onMount(D)),g}if(!n&&v&&f[0]===g[0]){var N;g.node=s;var O=g,P=f,Q=i(g),R=i(f);if(void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),null!==(N=O[1])&&void 0!==N&&N.__memo){var S=O[1];O[1]=r(a,O[1],P[1]),S!==O[1]&&u(a,s,R,Q,h)}else u(a,s,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 T=j(g),U=j(f);if(T)for(var V=Q?2:1,W=0,X=0;X<T.length;X++){var Y=T[X],Z=U&&U[X],$=o(a,s,X,W,Z,Y,h);g[X+V]=$,$&&W++}if(U)for(var _=T?T.length:0,aa=U.length-1;aa>=_;aa--)o(a,s,aa,aa,U[aa],void 0,h);return g}}catch(j){var ba,ca=null===(ba=i(g))||void 0===ba?void 0:ba["catch"];if(ca){var da,ea="function"==typeof ca?ca(a,j):ca;return o(a,b,c,e,d((null===(da=g)||void 0===da?void 0:da.node)||(null===f||void 0===f?void 0:f.node),!0),ea,h)}throw j}}function p(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function q(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function r(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=t(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function t(a,b){return"function"==typeof a?t(a(b),b):a}function u(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]=v(a,b,g,h,i,f):v(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]=v(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=v(a,b,l,void 0,m,f)}}}function v(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",w(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 w(a){return"string"==typeof a?a:Array.isArray(a)?a.map(w).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 _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 _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 _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:b?[a,b].concat(d):[a].concat(d)}function b(a,b,c){var e;function f(b){var d=Date.now(),e=c(g.state);g.vode=o(g.state,a.parentElement,0,0,g.vode,e),a.tagName.toUpperCase()!==e[0].toUpperCase()&&(a=g.vode.node,a._vode=g),b||(g.stats.lastSyncRenderTime=Date.now()-d,g.stats.syncRenderCount++,g.isRendering=!1,g.qSync&&g.renderSync())}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 g={syncRenderer:I.requestAnimationFrame,asyncRenderer:I.startViewTransition,qSync:null,qAsync:null,stats:{lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0}},h=b;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,i,j,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(g.stats.patchCount++,!(null!==a&&void 0!==a&&a.next)){c.n=12;break}return d=a,g.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 g.stats.liveEffectCount++,c.p=5,h.patch(e.value,b),c.n=6,d.next();case 6:e=c.v;case 7:return c.p=7,g.stats.liveEffectCount--,c.f(7);case 8:c.n=4;break;case 9:h.patch(e.value,b);case 10:return c.p=10,g.stats.liveEffectCount--,c.f(10);case 11:c.n=22;break;case 12:if(!a.then){c.n=17;break}return g.stats.liveEffectCount++,c.p=13,c.n=14,a;case 14:f=c.v,h.patch(f,b);case 15:return c.p=15,g.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){i=_createForOfIteratorHelper(a);try{for(i.s();!(j=i.n()).done;)k=j.value,h.patch(k,!document.hidden&&!!g.asyncRenderer)}catch(a){i.e(a)}finally{i.f()}}else{g.qSync=n(g.qSync||{},g.qAsync,!1),g.qAsync=null;try{null===(l=I.currentViewTransition)||void 0===l||l.skipTransition()}catch(a){}g.stats.syncRenderPatchCount++,g.renderSync()}c.n=22;break;case 18:if("function"!=typeof a){c.n=19;break}h.patch(a(g.state),b),c.n=22;break;case 19:if(!b){c.n=21;break}return g.stats.asyncRenderPatchCount++,g.qAsync=n(g.qAsync||{},a,!1),c.n=20,g.renderAsync();case 20:c.n=22;break;case 21:g.stats.syncRenderPatchCount++,g.qSync=n(g.qSync||{},a,!1),g.renderSync();case 22:return c.a(2)}},c,null,[[13,,15,16],[5,,7,8],[2,,10,11]])}));return a}()});var i=f.bind(null,!1),j=f.bind(null,!0);Object.defineProperty(g,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:function a(){g.isRendering||!g.qSync||(g.isRendering=!0,g.state=n(g.state,g.qSync,!0),g.qSync=null,g.syncRenderer(i))}}),Object.defineProperty(g,"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(!g.isAnimating&&g.qAsync){a.n=1;break}return a.a(2);case 1:return a.n=2,null===(b=I.currentViewTransition)||void 0===b?void 0:b.updateCallbackDone;case 2:if(!(g.isAnimating||!g.qAsync||document.hidden)){a.n=3;break}return a.a(2);case 3:return g.isAnimating=!0,c=Date.now(),a.p=4,g.state=n(g.state,g.qAsync,!0),g.qAsync=null,I.currentViewTransition=g.asyncRenderer(j),a.n=5,null===(d=I.currentViewTransition)||void 0===d?void 0:d.updateCallbackDone;case 5:return a.p=5,g.stats.lastAsyncRenderTime=Date.now()-c,g.stats.asyncRenderCount++,g.isAnimating=!1,a.f(5);case 6:g.qAsync&&g.renderAsync();case 7:return a.a(2)}},a,null,[[4,,5,6]])}));return a}()}),g.state=h;var k=a;k._vode=g;var l=Array.from(a.parentElement.children).indexOf(a);g.vode=o(b,a.parentElement,l,l,d(a,!0),c(b));for(var m=arguments.length,p=Array(3<m?m-3:0),q=3;q<m;q++)p[q-3]=arguments[q];for(var r,s=0,t=p;s<t.length;s++)r=t[s],h.patch(r);return function(a){return h.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=i(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=j(a);if(g){var h,k=_createForOfIteratorHelper(g);try{for(k.s();!(h=k.n()).done;){var l=h.value;b(l)}}catch(a){k.e(a)}finally{k.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.COMMENT_NODE&&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 vode or props object");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 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 i(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 j(a){var b=m(a);return 0<b?a.slice(b):null}function k(a){var b=m(a);return 0>b?0:a.length-b}function l(a,b){var c=m(a);return 0<c?a[b+c]:void 0}function m(a){return i(a)?2<a.length?2:-1:Array.isArray(a)&&1<a.length?1:-1}function n(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]=n({},e,c):"object"===_typeof(f)?n(a[d],e,c):a[d]=n({},e,c):Array.isArray(e)?a[d]=_toConsumableArray(e):e instanceof Date?a[d]=new Date(e):a[d]=n({},e,c)}else void 0===e&&c?delete a[d]:a[d]=e}return a}function o(a,b,c,e,f,g,h){try{var k,l;g=r(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,s=n?f:null===f||void 0===f?void 0:f.node;if(m)return(null===s||void 0===s?void 0:s.onUnmount)&&a.patch(s.onUnmount(s)),void(null===s||void 0===s||s.remove());var t=!m&&q(g),v=!m&&p(g),w=!!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(!t&&!v&&!w&&!f)throw new Error("Invalid vode: "+_typeof(g)+" "+JSON.stringify(g));else w&&t?g=g.wholeText:w&&v&&(g=_toConsumableArray(g));if(n&&t)return s.nodeValue!==g&&(s.nodeValue=g),f;if(t&&(!s||!n)){var x=document.createTextNode(g);if(s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(x);else{for(var y,z=!1,A=e;A<b.childNodes.length;A++)if(y=b.childNodes[A],y){y.before(x,y),z=!0;break}z||b.appendChild(x)}return x}if(v&&(!s||n||f[0]!==g[0])){var B=g;1 in B&&(B[1]=r(a,B[1],void 0));var C=i(g);void 0!==(null===C||void 0===C?void 0:C.xmlns)&&(h=C.xmlns);var D=h?document.createElementNS(h,g[0]):document.createElement(g[0]);if(g.node=D,u(a,D,void 0,C,null!==h&&void 0!==h?h:null),!!C&&"catch"in C&&(g.node["catch"]=null,g.node.removeAttribute("catch")),s)s.onUnmount&&a.patch(s.onUnmount(s)),s.replaceWith(D);else{for(var E,F=!1,G=e;G<b.childNodes.length;G++)if(E=b.childNodes[G],E){E.before(D,E),F=!0;break}F||b.appendChild(D)}var H=j(g);if(H)for(var I=C?2:1,J=0,K=0;K<H.length;K++){var L=H[K],M=o(a,D,K,J,void 0,L,null!==h&&void 0!==h?h:null);g[K+I]=M,M&&J++}return D.onMount&&a.patch(D.onMount(D)),g}if(!n&&v&&f[0]===g[0]){var N;g.node=s;var O=g,P=f,Q=i(g),R=i(f);if(void 0!==(null===Q||void 0===Q?void 0:Q.xmlns)&&(h=Q.xmlns),null!==(N=O[1])&&void 0!==N&&N.__memo){var S=O[1];O[1]=r(a,O[1],P[1]),S!==O[1]&&u(a,s,R,Q,h)}else u(a,s,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 T=j(g),U=j(f);if(T)for(var V=Q?2:1,W=0,X=0;X<T.length;X++){var Y=T[X],Z=U&&U[X],$=o(a,s,X,W,Z,Y,h);g[X+V]=$,$&&W++}if(U)for(var _=T?T.length:0,aa=U.length-1;aa>=_;aa--)o(a,s,aa,aa,U[aa],void 0,h);return g}}catch(j){var ba,ca=null===(ba=i(g))||void 0===ba?void 0:ba["catch"];if(ca){var da,ea="function"==typeof ca?ca(a,j):ca;return o(a,b,c,e,d((null===(da=g)||void 0===da?void 0:da.node)||(null===f||void 0===f?void 0:f.node),!0),ea,h)}throw j}}function p(a){return Array.isArray(a)&&0<a.length&&"string"==typeof a[0]}function q(a){return"string"==typeof a||(null===a||void 0===a?void 0:a.nodeType)===Node.TEXT_NODE}function r(a,b,c){if("function"!=typeof b)return b;var d=null===b||void 0===b?void 0:b.__memo,e=null===c||void 0===c?void 0:c.__memo;if(Array.isArray(d)&&Array.isArray(e)&&d.length===e.length){for(var f=!0,g=0;g<d.length;g++)if(d[g]!==e[g]){f=!1;break}if(f)return c}var h=t(b,a);return"object"===_typeof(h)&&(h.__memo=null===b||void 0===b?void 0:b.__memo),h}function t(a,b){return"function"==typeof a?t(a(b),b):a}function u(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]=v(a,b,g,h,i,f):v(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]=v(a,b,j,void 0,k,f)}}else if(d)for(var l in d){var m=d[l];d[l]=v(a,b,l,void 0,m,f)}}}function v(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",w(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 w(a){return"string"==typeof a?a:Array.isArray(a)?a.map(w).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 x(){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
|
-
function y(){try{for(var a=
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
var
|
|
4
|
+
function y(){try{for(var a=td.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{td.style.cssText=""}}// src/state-context.ts
|
|
5
|
+
function z(a){return new ud(a,[])}var A=Object.defineProperty,B=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,D=Object.prototype.hasOwnProperty,E=function c(a,b){for(var d in b)A(a,d,{get:b[d],enumerable:!0})},F=function e(a,b,c,d){if(b&&"object"===_typeof(b)||"function"==typeof b){var f,g=_createForOfIteratorHelper(C(b));try{var h=function e(){var g=f.value;D.call(a,g)||g===c||A(a,g,{get:function a(){return b[g]},enumerable:!(d=B(b,g))||d.enumerable})};for(g.s();!(f=g.n()).done;)h()}catch(a){g.e(a)}finally{g.f()}}return a},G=function b(a){return F(A({},"__esModule",{value:!0}),a)},H={};// index.ts
|
|
6
|
+
E(H,{A:function a(){return J},ABBR:function a(){return s},ADDRESS:function a(){return K},ANIMATE:function a(){return Mb},ANIMATEMOTION:function a(){return Nb},ANIMATETRANSFORM:function a(){return Ob},ANNOTATION:function a(){return Rc},ANNOTATION_XML:function a(){return Sc},AREA:function a(){return L},ARTICLE:function a(){return M},ASIDE:function a(){return N},AUDIO:function a(){return O},B:function a(){return P},BASE:function a(){return Q},BDI:function a(){return R},BDO:function a(){return S},BLOCKQUOTE:function a(){return T},BODY:function a(){return U},BR:function a(){return V},BUTTON:function a(){return W},CANVAS:function a(){return X},CAPTION:function a(){return Y},CIRCLE:function a(){return Pb},CITE:function a(){return Z},CLIPPATH:function a(){return Qb},CODE:function a(){return $},COL:function a(){return _},COLGROUP:function a(){return aa},DATA:function a(){return ba},DATALIST:function a(){return ca},DD:function a(){return da},DEFS:function a(){return Rb},DEL:function a(){return ea},DESC:function a(){return Sb},DETAILS:function a(){return fa},DFN:function a(){return ga},DIALOG:function a(){return ha},DIV:function a(){return ia},DL:function a(){return ja},DT:function a(){return ka},DelegateStateContext:function a(){return vd},ELLIPSE:function a(){return Tb},EM:function a(){return la},EMBED:function a(){return ma},FEBLEND:function a(){return Ub},FECOLORMATRIX:function a(){return Vb},FECOMPONENTTRANSFER:function a(){return Wb},FECOMPOSITE:function a(){return Xb},FECONVOLVEMATRIX:function a(){return Yb},FEDIFFUSELIGHTING:function a(){return Zb},FEDISPLACEMENTMAP:function a(){return $b},FEDISTANTLIGHT:function a(){return _b},FEDROPSHADOW:function a(){return ac},FEFLOOD:function a(){return bc},FEFUNCA:function a(){return cc},FEFUNCB:function a(){return dc},FEFUNCG:function a(){return ec},FEFUNCR:function a(){return fc},FEGAUSSIANBLUR:function a(){return gc},FEIMAGE:function a(){return hc},FEMERGE:function a(){return ic},FEMERGENODE:function a(){return jc},FEMORPHOLOGY:function a(){return kc},FEOFFSET:function a(){return lc},FEPOINTLIGHT:function a(){return mc},FESPECULARLIGHTING:function a(){return nc},FESPOTLIGHT:function a(){return oc},FETILE:function a(){return pc},FETURBULENCE:function a(){return qc},FIELDSET:function a(){return na},FIGCAPTION:function a(){return oa},FIGURE:function a(){return pa},FILTER:function a(){return rc},FOOTER:function a(){return qa},FOREIGNOBJECT:function a(){return sc},FORM:function a(){return ra},G:function a(){return tc},H1:function a(){return sa},H2:function a(){return ta},H3:function a(){return ua},H4:function a(){return va},H5:function a(){return wa},H6:function a(){return xa},HEAD:function a(){return ya},HEADER:function a(){return za},HGROUP:function a(){return Aa},HR:function a(){return Ba},HTML:function a(){return Ca},I:function a(){return Da},IFRAME:function a(){return Ea},IMAGE:function a(){return uc},IMG:function a(){return Fa},INPUT:function a(){return Ga},INS:function a(){return Ha},KBD:function a(){return Ia},KeyStateContext:function a(){return wd},LABEL:function a(){return Ja},LEGEND:function a(){return Ka},LI:function a(){return La},LINE:function a(){return vc},LINEARGRADIENT:function a(){return wc},LINK:function a(){return Ma},MACTION:function a(){return Tc},MAIN:function a(){return Na},MAP:function a(){return Oa},MARK:function a(){return Pa},MARKER:function a(){return xc},MASK:function a(){return yc},MATH:function a(){return Uc},MENU:function a(){return Qa},MERROR:function a(){return Vc},META:function a(){return Ra},METADATA:function a(){return zc},METER:function a(){return Sa},MFRAC:function a(){return Wc},MI:function a(){return Xc},MMULTISCRIPTS:function a(){return Yc},MN:function a(){return Zc},MO:function a(){return $c},MOVER:function a(){return _c},MPADDED:function a(){return ad},MPATH:function a(){return Ac},MPHANTOM:function a(){return bd},MPRESCRIPTS:function a(){return cd},MROOT:function a(){return dd},MROW:function a(){return ed},MS:function a(){return fd},MSPACE:function a(){return gd},MSQRT:function a(){return hd},MSTYLE:function a(){return id},MSUB:function a(){return jd},MSUBSUP:function a(){return kd},MSUP:function a(){return ld},MTABLE:function a(){return md},MTD:function a(){return nd},MTEXT:function a(){return od},MTR:function a(){return pd},MUNDER:function a(){return qd},MUNDEROVER:function a(){return rd},NAV:function a(){return Ta},NOSCRIPT:function a(){return Ua},OBJECT:function a(){return Va},OL:function a(){return Wa},OPTGROUP:function a(){return Xa},OPTION:function a(){return Ya},OUTPUT:function a(){return Za},P:function a(){return $a},PATH:function a(){return Bc},PATTERN:function a(){return Cc},PICTURE:function a(){return _a},POLYGON:function a(){return Dc},POLYLINE:function a(){return Ec},PRE:function a(){return ab},PROGRESS:function a(){return bb},Q:function a(){return cb},RADIALGRADIENT:function a(){return Fc},RECT:function a(){return Gc},RP:function a(){return db},RT:function a(){return eb},RUBY:function a(){return fb},S:function a(){return gb},SAMP:function a(){return hb},SCRIPT:function a(){return ib},SEARCH:function a(){return jb},SECTION:function a(){return kb},SELECT:function a(){return lb},SEMANTICS:function a(){return sd},SET:function a(){return Hc},SLOT:function a(){return mb},SMALL:function a(){return nb},SOURCE:function a(){return ob},SPAN:function a(){return pb},STOP:function a(){return Ic},STRONG:function a(){return qb},STYLE:function a(){return rb},SUB:function a(){return sb},SUMMARY:function a(){return tb},SUP:function a(){return ub},SVG:function a(){return Jc},SWITCH:function a(){return Kc},SYMBOL:function a(){return Lc},TABLE:function a(){return vb},TBODY:function a(){return wb},TD:function a(){return xb},TEMPLATE:function a(){return yb},TEXT:function a(){return Mc},TEXTAREA:function a(){return zb},TEXTPATH:function a(){return Nc},TFOOT:function a(){return Ab},TH:function a(){return Bb},THEAD:function a(){return Cb},TIME:function a(){return Db},TITLE:function a(){return Eb},TR:function a(){return Fb},TRACK:function a(){return Gb},TSPAN:function a(){return Oc},U:function a(){return Hb},UL:function a(){return Ib},USE:function a(){return Pc},VAR:function a(){return Jb},VIDEO:function a(){return Kb},VIEW:function a(){return Qc},WBR:function a(){return Lb},app:function a(){return b},child:function a(){return l},childCount:function a(){return k},children:function a(){return j},childrenStart:function a(){return m},context:function a(){return z},createPatch:function a(){return g},createState:function a(){return f},defuse:function a(){return c},globals:function a(){return I},hydrate:function a(){return d},memo:function a(){return e},mergeClass:function a(){return x},mergeStyle:function a(){return y},props:function a(){return i},tag:function a(){return h},vode:function b(){return a}});// src/vode.ts
|
|
7
|
+
var I={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimationFrame?function(a){return a()}:window.requestAnimationFrame.bind(window),startViewTransition:!document.startViewTransition?null:document.startViewTransition.bind(document)},J="a",s="abbr",K="address",L="area",M="article",N="aside",O="audio",P="b",Q="base",R="bdi",S="bdo",T="blockquote",U="body",V="br",W="button",X="canvas",Y="caption",Z="cite",$="code",_="col",aa="colgroup",ba="data",ca="datalist",da="dd",ea="del",fa="details",ga="dfn",ha="dialog",ia="div",ja="dl",ka="dt",la="em",ma="embed",na="fieldset",oa="figcaption",pa="figure",qa="footer",ra="form",sa="h1",ta="h2",ua="h3",va="h4",wa="h5",xa="h6",ya="head",za="header",Aa="hgroup",Ba="hr",Ca="html",Da="i",Ea="iframe",Fa="img",Ga="input",Ha="ins",Ia="kbd",Ja="label",Ka="legend",La="li",Ma="link",Na="main",Oa="map",Pa="mark",Qa="menu",Ra="meta",Sa="meter",Ta="nav",Ua="noscript",Va="object",Wa="ol",Xa="optgroup",Ya="option",Za="output",$a="p",_a="picture",ab="pre",bb="progress",cb="q",db="rp",eb="rt",fb="ruby",gb="s",hb="samp",ib="script",jb="search",kb="section",lb="select",mb="slot",nb="small",ob="source",pb="span",qb="strong",rb="style",sb="sub",tb="summary",ub="sup",vb="table",wb="tbody",xb="td",yb="template",zb="textarea",Ab="tfoot",Bb="th",Cb="thead",Db="time",Eb="title",Fb="tr",Gb="track",Hb="u",Ib="ul",Jb="var",Kb="video",Lb="wbr",Mb="animate",Nb="animateMotion",Ob="animateTransform",Pb="circle",Qb="clipPath",Rb="defs",Sb="desc",Tb="ellipse",Ub="feBlend",Vb="feColorMatrix",Wb="feComponentTransfer",Xb="feComposite",Yb="feConvolveMatrix",Zb="feDiffuseLighting",$b="feDisplacementMap",_b="feDistantLight",ac="feDropShadow",bc="feFlood",cc="feFuncA",dc="feFuncB",ec="feFuncG",fc="feFuncR",gc="feGaussianBlur",hc="feImage",ic="feMerge",jc="feMergeNode",kc="feMorphology",lc="feOffset",mc="fePointLight",nc="feSpecularLighting",oc="feSpotLight",pc="feTile",qc="feTurbulence",rc="filter",sc="foreignObject",tc="g",uc="image",vc="line",wc="linearGradient",xc="marker",yc="mask",zc="metadata",Ac="mpath",Bc="path",Cc="pattern",Dc="polygon",Ec="polyline",Fc="radialGradient",Gc="rect",Hc="set",Ic="stop",Jc="svg",Kc="switch",Lc="symbol",Mc="text",Nc="textPath",Oc="tspan",Pc="use",Qc="view",Rc="annotation",Sc="annotation-xml",Tc="maction",Uc="math",Vc="merror",Wc="mfrac",Xc="mi",Yc="mmultiscripts",Zc="mn",$c="mo",_c="mover",ad="mpadded",bd="mphantom",cd="mprescripts",dd="mroot",ed="mrow",fd="ms",gd="mspace",hd="msqrt",id="mstyle",jd="msub",kd="msubsup",ld="msup",md="mtable",nd="mtd",od="mtext",pd="mtr",qd="munder",rd="munderover",sd="semantics",td=document.createElement("div"),ud=/*#__PURE__*/function(){function a(b,c){function d(a,b){if(1<c.length){var d=0,e=b[c[d]];for(("object"!==_typeof(e)||null===e)&&(b[c[d]]=e={}),d=1;d<c.length-1;d++){var f=e;e=e[c[d]],("object"!==_typeof(e)||null===e)&&(f[c[d]]=e={})}e[c[d]]=a}else 1===c.length?"object"===_typeof(b[c[0]])&&"object"===_typeof(a)?Object.assign(b[c[0]],a):b[c[0]]=a:Object.assign(b,a)}function e(a){var b={};return d(a,b),b}function f(){if(0===c.length)return b;for(var a=b?b[c[0]]:void 0,d=1;d<c.length&&!!a;d++)a=a[c[d]];return a}function g(a){d(a,b)}function h(a){if(Array.isArray(a)){var c,d=[],f=_createForOfIteratorHelper(a);try{for(f.s();!(c=f.n()).done;){var g=c.value;d.push(e(g))}}catch(a){f.e(a)}finally{f.f()}b.patch(d)}else b.patch(e(a))}return _classCallCheck(this,a),this.state=b,this.keys=c,new Proxy(this,{get:function i(c,d,e){if("state"===d)return b;if("get"===d)return f;if("put"===d)return g;if("patch"===d)return h;var j=[].concat(_toConsumableArray(c.keys),[d+""]);return new a(c.state,j)}})}return _createClass(a,[{key:"get",value:function a(){throw"implemented in ctor"}},{key:"put",value:function b(a){throw"implemented in ctor"}},{key:"patch",value:function b(a){throw"implemented in ctor"}}])}(),vd=/*#__PURE__*/_createClass(function e(a,b,c,d){_classCallCheck(this,e),this.state=a,this.get=b,this.put=c,this.patch=d}),wd=/*#__PURE__*/function(){function a(b,c){_classCallCheck(this,a),_defineProperty(this,"keys",void 0),this.state=b,this.path=c,this.keys=c.split(".")}return _createClass(a,[{key:"get",value:function a(){for(var b=this.keys,c=this.state?this.state[b[0]]:void 0,d=1;d<b.length&&!!c;d++)c=c[b[d]];return c}},{key:"put",value:function b(a){this.putDeep(a,this.state)}},{key:"patch",value:function b(a){if(Array.isArray(a)){var c,d=[],e=_createForOfIteratorHelper(a);try{for(e.s();!(c=e.n()).done;){var f=c.value;d.push(this.createPatch(f))}}catch(a){e.e(a)}finally{e.f()}this.state.patch(d)}else this.state.patch(this.createPatch(a))}/**
|
|
8
8
|
* Creates a render-patch for the parent state by setting a nested sub-state value while creating necessary structure.
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
@@ -16,4 +16,4 @@ var H={currentViewTransition:void 0,requestAnimationFrame:!window.requestAnimati
|
|
|
16
16
|
*
|
|
17
17
|
* @param value
|
|
18
18
|
* @returns {{key-path}:{...: value}} render-patch for the parent state
|
|
19
|
-
*/},{key:"createPatch",value:function b(a){var c={};return this.putDeep(a,c),c}},{key:"putDeep",value:function c(a,b){var d=this.keys;if(1<d.length){var e=0,f=b[d[e]];for(("object"!==_typeof(f)||null===f)&&(b[d[e]]=f={}),e=1;e<d.length-1;e++){var g=f;f=f[d[e]],("object"!==_typeof(f)||null===f)&&(g[d[e]]=f={})}f[d[e]]=a}else"object"===_typeof(b[d[0]])&&"object"===_typeof(a)?Object.assign(b[d[0]],a):b[d[0]]=a}}])}()
|
|
19
|
+
*/},{key:"createPatch",value:function b(a){var c={};return this.putDeep(a,c),c}},{key:"putDeep",value:function c(a,b){var d=this.keys;if(1<d.length){var e=0,f=b[d[e]];for(("object"!==_typeof(f)||null===f)&&(b[d[e]]=f={}),e=1;e<d.length-1;e++){var g=f;f=f[d[e]],("object"!==_typeof(f)||null===f)&&(g[d[e]]=f={})}f[d[e]]=a}else"object"===_typeof(b[d[0]])&&"object"===_typeof(a)?Object.assign(b[d[0]],a):b[d[0]]=a}}])}();return G(H)}();
|
package/dist/vode.js
CHANGED
|
@@ -229,6 +229,7 @@ var V = (() => {
|
|
|
229
229
|
childCount: () => childCount,
|
|
230
230
|
children: () => children,
|
|
231
231
|
childrenStart: () => childrenStart,
|
|
232
|
+
context: () => context,
|
|
232
233
|
createPatch: () => createPatch,
|
|
233
234
|
createState: () => createState,
|
|
234
235
|
defuse: () => defuse,
|
|
@@ -1104,6 +1105,98 @@ var V = (() => {
|
|
|
1104
1105
|
}
|
|
1105
1106
|
|
|
1106
1107
|
// src/state-context.ts
|
|
1108
|
+
function context(state) {
|
|
1109
|
+
return new ProxyStateContextImpl(state, []);
|
|
1110
|
+
}
|
|
1111
|
+
var ProxyStateContextImpl = class _ProxyStateContextImpl {
|
|
1112
|
+
constructor(state, keys) {
|
|
1113
|
+
this.state = state;
|
|
1114
|
+
this.keys = keys;
|
|
1115
|
+
function putDeep(value, target) {
|
|
1116
|
+
if (keys.length > 1) {
|
|
1117
|
+
let i = 0;
|
|
1118
|
+
let raw = target[keys[i]];
|
|
1119
|
+
if (typeof raw !== "object" || raw === null) {
|
|
1120
|
+
target[keys[i]] = raw = {};
|
|
1121
|
+
}
|
|
1122
|
+
for (i = 1; i < keys.length - 1; i++) {
|
|
1123
|
+
const p = raw;
|
|
1124
|
+
raw = raw[keys[i]];
|
|
1125
|
+
if (typeof raw !== "object" || raw === null) {
|
|
1126
|
+
p[keys[i]] = raw = {};
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
raw[keys[i]] = value;
|
|
1130
|
+
} else if (keys.length === 1) {
|
|
1131
|
+
if (typeof target[keys[0]] === "object" && typeof value === "object")
|
|
1132
|
+
Object.assign(target[keys[0]], value);
|
|
1133
|
+
else
|
|
1134
|
+
target[keys[0]] = value;
|
|
1135
|
+
} else {
|
|
1136
|
+
Object.assign(target, value);
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
function createPatch2(value) {
|
|
1140
|
+
const renderPatch = {};
|
|
1141
|
+
putDeep(value, renderPatch);
|
|
1142
|
+
return renderPatch;
|
|
1143
|
+
}
|
|
1144
|
+
function get() {
|
|
1145
|
+
if (keys.length === 0)
|
|
1146
|
+
return state;
|
|
1147
|
+
let raw = state ? state[keys[0]] : void 0;
|
|
1148
|
+
for (let i = 1; i < keys.length && !!raw; i++) {
|
|
1149
|
+
raw = raw[keys[i]];
|
|
1150
|
+
}
|
|
1151
|
+
return raw;
|
|
1152
|
+
}
|
|
1153
|
+
function put(value) {
|
|
1154
|
+
putDeep(value, state);
|
|
1155
|
+
}
|
|
1156
|
+
function patch(value) {
|
|
1157
|
+
if (Array.isArray(value)) {
|
|
1158
|
+
const animation = [];
|
|
1159
|
+
for (const v of value) {
|
|
1160
|
+
animation.push(createPatch2(v));
|
|
1161
|
+
}
|
|
1162
|
+
state.patch(animation);
|
|
1163
|
+
} else {
|
|
1164
|
+
state.patch(createPatch2(value));
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
return new Proxy(this, {
|
|
1168
|
+
get: (target, prop, receiver) => {
|
|
1169
|
+
if (prop === "state")
|
|
1170
|
+
return state;
|
|
1171
|
+
if (prop === "get")
|
|
1172
|
+
return get;
|
|
1173
|
+
if (prop === "put")
|
|
1174
|
+
return put;
|
|
1175
|
+
if (prop === "patch")
|
|
1176
|
+
return patch;
|
|
1177
|
+
const newKeys = [...target.keys, String(prop)];
|
|
1178
|
+
return new _ProxyStateContextImpl(target.state, newKeys);
|
|
1179
|
+
}
|
|
1180
|
+
});
|
|
1181
|
+
}
|
|
1182
|
+
get() {
|
|
1183
|
+
throw "implemented in ctor";
|
|
1184
|
+
}
|
|
1185
|
+
put(value) {
|
|
1186
|
+
throw "implemented in ctor";
|
|
1187
|
+
}
|
|
1188
|
+
patch(value) {
|
|
1189
|
+
throw "implemented in ctor";
|
|
1190
|
+
}
|
|
1191
|
+
};
|
|
1192
|
+
var DelegateStateContext = class {
|
|
1193
|
+
constructor(state, get, put, patch) {
|
|
1194
|
+
this.state = state;
|
|
1195
|
+
this.get = get;
|
|
1196
|
+
this.put = put;
|
|
1197
|
+
this.patch = patch;
|
|
1198
|
+
}
|
|
1199
|
+
};
|
|
1107
1200
|
var KeyStateContext = class {
|
|
1108
1201
|
constructor(state, path) {
|
|
1109
1202
|
this.state = state;
|
|
@@ -1175,13 +1268,5 @@ var V = (() => {
|
|
|
1175
1268
|
}
|
|
1176
1269
|
}
|
|
1177
1270
|
};
|
|
1178
|
-
var DelegateStateContext = class {
|
|
1179
|
-
constructor(state, get, put, patch) {
|
|
1180
|
-
this.state = state;
|
|
1181
|
-
this.get = get;
|
|
1182
|
-
this.put = put;
|
|
1183
|
-
this.patch = patch;
|
|
1184
|
-
}
|
|
1185
|
-
};
|
|
1186
1271
|
return __toCommonJS(index_exports);
|
|
1187
1272
|
})();
|
package/dist/vode.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var V=(()=>{var D=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var a in n)D(e,a,{get:n[a],enumerable:!0})},$=(e,n,a,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of _(n))!q.call(e,t)&&t!==a&&D(e,t,{get:()=>n[t],enumerable:!(s=B(n,t))||s.enumerable});return e};var w=e=>$(D({},"__esModule",{value:!0}),e);var wo={};X(wo,{A:()=>st,ABBR:()=>at,ADDRESS:()=>rt,ANIMATE:()=>ln,ANIMATEMOTION:()=>pn,ANIMATETRANSFORM:()=>dn,ANNOTATION:()=>To,ANNOTATION_XML:()=>yo,AREA:()=>ct,ARTICLE:()=>it,ASIDE:()=>lt,AUDIO:()=>pt,B:()=>dt,BASE:()=>ft,BDI:()=>St,BDO:()=>ut,BLOCKQUOTE:()=>Tt,BODY:()=>yt,BR:()=>gt,BUTTON:()=>xt,CANVAS:()=>ht,CAPTION:()=>mt,CIRCLE:()=>fn,CITE:()=>bt,CLIPPATH:()=>Sn,CODE:()=>Et,COL:()=>Pt,COLGROUP:()=>At,DATA:()=>Ct,DATALIST:()=>Nt,DD:()=>Mt,DEFS:()=>un,DEL:()=>Rt,DESC:()=>Tn,DETAILS:()=>Ot,DFN:()=>Dt,DIALOG:()=>vt,DIV:()=>Lt,DL:()=>It,DT:()=>Vt,DelegateStateContext:()=>F,ELLIPSE:()=>yn,EM:()=>Ft,EMBED:()=>kt,FEBLEND:()=>gn,FECOLORMATRIX:()=>xn,FECOMPONENTTRANSFER:()=>hn,FECOMPOSITE:()=>mn,FECONVOLVEMATRIX:()=>bn,FEDIFFUSELIGHTING:()=>En,FEDISPLACEMENTMAP:()=>Pn,FEDISTANTLIGHT:()=>An,FEDROPSHADOW:()=>Cn,FEFLOOD:()=>Nn,FEFUNCA:()=>Mn,FEFUNCB:()=>Rn,FEFUNCG:()=>On,FEFUNCR:()=>Dn,FEGAUSSIANBLUR:()=>vn,FEIMAGE:()=>Ln,FEMERGE:()=>In,FEMERGENODE:()=>Vn,FEMORPHOLOGY:()=>Fn,FEOFFSET:()=>kn,FEPOINTLIGHT:()=>jn,FESPECULARLIGHTING:()=>Hn,FESPOTLIGHT:()=>Un,FETILE:()=>Gn,FETURBULENCE:()=>Kn,FIELDSET:()=>jt,FIGCAPTION:()=>Ht,FIGURE:()=>Ut,FILTER:()=>Bn,FOOTER:()=>Gt,FOREIGNOBJECT:()=>_n,FORM:()=>Kt,G:()=>qn,H1:()=>Bt,H2:()=>_t,H3:()=>qt,H4:()=>Xt,H5:()=>$t,H6:()=>wt,HEAD:()=>Yt,HEADER:()=>Wt,HGROUP:()=>Jt,HR:()=>Qt,HTML:()=>zt,I:()=>Zt,IFRAME:()=>te,IMAGE:()=>Xn,IMG:()=>ee,INPUT:()=>ne,INS:()=>oe,KBD:()=>se,KeyStateContext:()=>V,LABEL:()=>ae,LEGEND:()=>re,LI:()=>ce,LINE:()=>$n,LINEARGRADIENT:()=>wn,LINK:()=>ie,MACTION:()=>go,MAIN:()=>le,MAP:()=>pe,MARK:()=>de,MARKER:()=>Yn,MASK:()=>Wn,MATH:()=>xo,MENU:()=>fe,MERROR:()=>ho,META:()=>Se,METADATA:()=>Jn,METER:()=>ue,MFRAC:()=>mo,MI:()=>bo,MMULTISCRIPTS:()=>Eo,MN:()=>Po,MO:()=>Ao,MOVER:()=>Co,MPADDED:()=>No,MPATH:()=>Qn,MPHANTOM:()=>Mo,MPRESCRIPTS:()=>Ro,MROOT:()=>Oo,MROW:()=>Do,MS:()=>vo,MSPACE:()=>Lo,MSQRT:()=>Io,MSTYLE:()=>Vo,MSUB:()=>Fo,MSUBSUP:()=>ko,MSUP:()=>jo,MTABLE:()=>Ho,MTD:()=>Uo,MTEXT:()=>Go,MTR:()=>Ko,MUNDER:()=>Bo,MUNDEROVER:()=>_o,NAV:()=>Te,NOSCRIPT:()=>ye,OBJECT:()=>ge,OL:()=>xe,OPTGROUP:()=>he,OPTION:()=>me,OUTPUT:()=>be,P:()=>Ee,PATH:()=>zn,PATTERN:()=>Zn,PICTURE:()=>Pe,POLYGON:()=>to,POLYLINE:()=>eo,PRE:()=>Ae,PROGRESS:()=>Ce,Q:()=>Ne,RADIALGRADIENT:()=>no,RECT:()=>oo,RP:()=>Me,RT:()=>Re,RUBY:()=>Oe,S:()=>De,SAMP:()=>ve,SCRIPT:()=>Le,SEARCH:()=>Ie,SECTION:()=>Ve,SELECT:()=>Fe,SEMANTICS:()=>qo,SET:()=>so,SLOT:()=>ke,SMALL:()=>je,SOURCE:()=>He,SPAN:()=>Ue,STOP:()=>ao,STRONG:()=>Ge,STYLE:()=>Ke,SUB:()=>Be,SUMMARY:()=>_e,SUP:()=>qe,SVG:()=>ro,SWITCH:()=>co,SYMBOL:()=>io,TABLE:()=>Xe,TBODY:()=>$e,TD:()=>we,TEMPLATE:()=>Ye,TEXT:()=>lo,TEXTAREA:()=>We,TEXTPATH:()=>po,TFOOT:()=>Je,TH:()=>Qe,THEAD:()=>ze,TIME:()=>Ze,TITLE:()=>tn,TR:()=>en,TRACK:()=>nn,TSPAN:()=>fo,U:()=>on,UL:()=>sn,USE:()=>So,VAR:()=>an,VIDEO:()=>rn,VIEW:()=>uo,WBR:()=>cn,app:()=>W,child:()=>et,childCount:()=>tt,children:()=>N,childrenStart:()=>O,createPatch:()=>z,createState:()=>Q,defuse:()=>I,globals:()=>P,hydrate:()=>R,memo:()=>J,mergeClass:()=>Xo,mergeStyle:()=>$o,props:()=>A,tag:()=>Z,vode:()=>Y});var P={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function Y(e,n,...a){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...a]:[e,...a]}function W(e,n,a,...s){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof a!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=P.requestAnimationFrame,t.asyncRenderer=P.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let p=l;t.stats.liveEffectCount++;try{let S=await p.next();for(;S.done===!1;){t.stats.liveEffectCount++;try{o.patch(S.value,y),S=await p.next()}finally{t.stats.liveEffectCount--}}o.patch(S.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let p=await l;o.patch(p,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let p of l)o.patch(p,!document.hidden&&!!t.asyncRenderer);else{t.qSync=b(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=b(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=b(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),p=a(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,p),e.tagName.toUpperCase()!==p[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let c=r.bind(null,!1),f=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=b(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(c))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=b(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(f),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let i=e;i._vode=t;let E=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,E,E,R(e,!0),a(n));for(let l of s)o.patch(l);return l=>o.patch(l)}function I(e){if(e?._vode){let a=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)I(t.node);else{let r=N(t);if(r)for(let c of r)a(c)}};var n=a;let s=e._vode;delete e._vode,Object.defineProperty(s.state,"patch",{value:void 0}),Object.defineProperty(s,"renderSync",{value:()=>{}}),Object.defineProperty(s,"renderAsync",{value:()=>{}}),a(s.vode)}else for(let a of e.children)I(a)}function R(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let s=[e.tagName.toLowerCase()];if(n&&(s.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;s.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&R(o,n);r?s.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return s}else return}function J(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function Q(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function z(e){return e}function Z(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function N(e){let n=O(e);return n>0?e.slice(n):null}function tt(e){let n=O(e);return n<0?0:e.length-n}function et(e,n){let a=O(e);if(a>0)return e[n+a]}function O(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function b(e,n,a){if(!n)return e;for(let s in n){let t=n[s];if(t&&typeof t=="object"){let o=e[s];o?Array.isArray(t)?e[s]=[...t]:t instanceof Date&&o!==t?e[s]=new Date(t):Array.isArray(o)?e[s]=b({},t,a):typeof o=="object"?b(e[s],t,a):e[s]=b({},t,a):Array.isArray(t)?e[s]=[...t]:t instanceof Date?e[s]=new Date(t):e[s]=b({},t,a)}else t===void 0&&a?delete e[s]:e[s]=t}return e}function C(e,n,a,s,t,o,r){try{o=v(e,o,t);let c=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&c)return t;let f=t?.nodeType===Node.TEXT_NODE,i=f?t:t?.node;if(c){i?.onUnmount&&e.patch(i.onUnmount(i)),i?.remove();return}let E=!c&&ot(o),l=!c&&nt(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!E&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&E?o=o.wholeText:y&&l&&(o=[...o]),f&&E)return i.nodeValue!==o&&(i.nodeValue=o),t;if(E&&(!i||!f)){let p=document.createTextNode(o);if(i)i.onUnmount&&e.patch(i.onUnmount(i)),i.replaceWith(p);else{let S=!1;for(let d=s;d<n.childNodes.length;d++){let g=n.childNodes[d];if(g){g.before(p,g),S=!0;break}}S||n.appendChild(p)}return p}if(l&&(!i||f||t[0]!==o[0])){let p=o;1 in p&&(p[1]=v(e,p[1],void 0));let S=A(o);S?.xmlns!==void 0&&(r=S.xmlns);let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=d,L(e,d,void 0,S,r??null),S&&"catch"in S&&(o.node.catch=null,o.node.removeAttribute("catch")),i)i.onUnmount&&e.patch(i.onUnmount(i)),i.replaceWith(d);else{let x=!1;for(let T=s;T<n.childNodes.length;T++){let u=n.childNodes[T];if(u){u.before(d,u),x=!0;break}}x||n.appendChild(d)}let g=N(o);if(g){let x=S?2:1,T=0;for(let u=0;u<g.length;u++){let h=g[u],m=C(e,d,u,T,void 0,h,r??null);o[u+x]=m,m&&T++}}return d.onMount&&e.patch(d.onMount(d)),o}if(!f&&l&&t[0]===o[0]){o.node=i;let p=o,S=t,d=A(o),g=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),p[1]?.__memo){let u=p[1];p[1]=v(e,p[1],S[1]),u!==p[1]&&L(e,i,g,d,r)}else L(e,i,g,d,r);d?.catch&&g?.catch!==d.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let x=N(o),T=N(t);if(x){let u=d?2:1,h=0;for(let m=0;m<x.length;m++){let G=x[m],K=T&&T[m],k=C(e,i,m,h,K,G,r);o[m+u]=k,k&&h++}}if(T){let u=x?x.length:0;for(let h=T.length-1;h>=u;h--)C(e,i,h,h,T[h],void 0,r)}return o}}catch(c){let f=A(o)?.catch;if(f){let i=typeof f=="function"?f(e,c):f;return C(e,n,a,s,R(o?.node||t?.node,!0),i,r)}else throw c}}function nt(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function ot(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function v(e,n,a){if(typeof n!="function")return n;let s=n?.__memo,t=a?.__memo;if(Array.isArray(s)&&Array.isArray(t)&&s.length===t.length){let r=!0;for(let c=0;c<s.length;c++)if(s[c]!==t[c]){r=!1;break}if(r)return a}let o=j(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function j(e,n){return typeof e=="function"?j(e(n),n):e}function L(e,n,a,s,t){if(!s&&!a)return;let o=t!==void 0;if(a)for(let r in a){let c=a[r],f=s?.[r];c!==f&&(s?s[r]=M(e,n,r,c,f,o):M(e,n,r,c,void 0,o))}if(s&&a){for(let r in s)if(!(r in a)){let c=s[r];s[r]=M(e,n,r,void 0,c,o)}}else if(s)for(let r in s){let c=s[r];s[r]=M(e,n,r,void 0,c,o)}}function M(e,n,a,s,t,o){if(a==="style")if(!t)n.style.cssText="";else if(typeof t=="string")s!==t&&(n.style.cssText=t);else if(s&&typeof s=="object"){for(let r in s)t[r]||(n.style[r]=null);for(let r in t){let c=s[r],f=t[r];c!==f&&(n.style[r]=f)}}else for(let r in t)n.style[r]=t[r];else if(a==="class")t?n.setAttribute("class",H(t)):n.removeAttribute("class");else if(a[0]==="o"&&a[1]==="n")if(t){let r=null;if(typeof t=="function"){let c=t;r=f=>e.patch(c(e,f))}else typeof t=="object"&&(r=()=>e.patch(t));n[a]=r}else n[a]=null;else o||(n[a]=t),t==null||t===!1?n.removeAttribute(a):n.setAttribute(a,t);return t}function H(e){return typeof e=="string"?e:Array.isArray(e)?e.map(H).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var st="a",at="abbr",rt="address",ct="area",it="article",lt="aside",pt="audio",dt="b",ft="base",St="bdi",ut="bdo",Tt="blockquote",yt="body",gt="br",xt="button",ht="canvas",mt="caption",bt="cite",Et="code",Pt="col",At="colgroup",Ct="data",Nt="datalist",Mt="dd",Rt="del",Ot="details",Dt="dfn",vt="dialog",Lt="div",It="dl",Vt="dt",Ft="em",kt="embed",jt="fieldset",Ht="figcaption",Ut="figure",Gt="footer",Kt="form",Bt="h1",_t="h2",qt="h3",Xt="h4",$t="h5",wt="h6",Yt="head",Wt="header",Jt="hgroup",Qt="hr",zt="html",Zt="i",te="iframe",ee="img",ne="input",oe="ins",se="kbd",ae="label",re="legend",ce="li",ie="link",le="main",pe="map",de="mark",fe="menu",Se="meta",ue="meter",Te="nav",ye="noscript",ge="object",xe="ol",he="optgroup",me="option",be="output",Ee="p",Pe="picture",Ae="pre",Ce="progress",Ne="q",Me="rp",Re="rt",Oe="ruby",De="s",ve="samp",Le="script",Ie="search",Ve="section",Fe="select",ke="slot",je="small",He="source",Ue="span",Ge="strong",Ke="style",Be="sub",_e="summary",qe="sup",Xe="table",$e="tbody",we="td",Ye="template",We="textarea",Je="tfoot",Qe="th",ze="thead",Ze="time",tn="title",en="tr",nn="track",on="u",sn="ul",an="var",rn="video",cn="wbr",ln="animate",pn="animateMotion",dn="animateTransform",fn="circle",Sn="clipPath",un="defs",Tn="desc",yn="ellipse",gn="feBlend",xn="feColorMatrix",hn="feComponentTransfer",mn="feComposite",bn="feConvolveMatrix",En="feDiffuseLighting",Pn="feDisplacementMap",An="feDistantLight",Cn="feDropShadow",Nn="feFlood",Mn="feFuncA",Rn="feFuncB",On="feFuncG",Dn="feFuncR",vn="feGaussianBlur",Ln="feImage",In="feMerge",Vn="feMergeNode",Fn="feMorphology",kn="feOffset",jn="fePointLight",Hn="feSpecularLighting",Un="feSpotLight",Gn="feTile",Kn="feTurbulence",Bn="filter",_n="foreignObject",qn="g",Xn="image",$n="line",wn="linearGradient",Yn="marker",Wn="mask",Jn="metadata",Qn="mpath",zn="path",Zn="pattern",to="polygon",eo="polyline",no="radialGradient",oo="rect",so="set",ao="stop",ro="svg",co="switch",io="symbol",lo="text",po="textPath",fo="tspan",So="use",uo="view",To="annotation",yo="annotation-xml",go="maction",xo="math",ho="merror",mo="mfrac",bo="mi",Eo="mmultiscripts",Po="mn",Ao="mo",Co="mover",No="mpadded",Mo="mphantom",Ro="mprescripts",Oo="mroot",Do="mrow",vo="ms",Lo="mspace",Io="msqrt",Vo="mstyle",Fo="msub",ko="msubsup",jo="msup",Ho="mtable",Uo="mtd",Go="mtext",Ko="mtr",Bo="munder",_o="munderover",qo="semantics";function Xo(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let a=1;a<e.length;a++){let s=n,t=e[a];if(!s)n=t;else if(t)if(typeof s=="string"&&typeof t=="string"){let o=s.split(" "),r=t.split(" "),c=new Set([...o,...r]);n=Array.from(c).join(" ").trim()}else if(typeof s=="string"&&Array.isArray(t)){let o=new Set([...t,...s.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&typeof t=="string"){let o=new Set([...s,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(s)&&Array.isArray(t)){let o=new Set([...s,...t]);n=Array.from(o).join(" ").trim()}else if(typeof s=="string"&&typeof t=="object")n={[s]:!0,...t};else if(typeof s=="object"&&typeof t=="string")n={...s,[t]:!0};else if(typeof s=="object"&&typeof t=="object")n={...s,...t};else if(typeof s=="object"&&Array.isArray(t)){let o={...s};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(s)&&typeof t=="object"){let o={};for(let r of s)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${s} (${typeof s}) and ${t} (${typeof t})`);else continue}return n}var U=document.createElement("div");function $o(...e){try{let n=U.style;for(let a of e)if(typeof a=="object"&&a!==null)for(let s in a)n[s]=a[s];else typeof a=="string"&&(n.cssText+=";"+a);return n.cssText}finally{U.style.cssText=""}}var V=class{constructor(n,a){this.state=n;this.path=a;this.keys=a.split(".")}keys;get(){let n=this.keys,a=this.state?this.state[n[0]]:void 0;for(let s=1;s<n.length&&a;s++)a=a[n[s]];return a}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let a=[];for(let s of n)a.push(this.createPatch(s));this.state.patch(a)}else this.state.patch(this.createPatch(n))}createPatch(n){let a={};return this.putDeep(n,a),a}putDeep(n,a){let s=this.keys;if(s.length>1){let t=0,o=a[s[t]];for((typeof o!="object"||o===null)&&(a[s[t]]=o={}),t=1;t<s.length-1;t++){let r=o;o=o[s[t]],(typeof o!="object"||o===null)&&(r[s[t]]=o={})}o[s[t]]=n}else typeof a[s[0]]=="object"&&typeof n=="object"?Object.assign(a[s[0]],n):a[s[0]]=n}},F=class{constructor(n,a,s,t){this.state=n;this.get=a;this.put=s;this.patch=t}};return w(wo);})();
|
|
1
|
+
"use strict";var V=(()=>{var O=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var X=(e,n)=>{for(var s in n)O(e,s,{get:n[s],enumerable:!0})},$=(e,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of q(n))!w.call(e,t)&&t!==s&&O(e,t,{get:()=>n[t],enumerable:!(a=_(n,t))||a.enumerable});return e};var Y=e=>$(O({},"__esModule",{value:!0}),e);var Wo={};X(Wo,{A:()=>st,ABBR:()=>rt,ADDRESS:()=>ct,ANIMATE:()=>pn,ANIMATEMOTION:()=>Sn,ANIMATETRANSFORM:()=>dn,ANNOTATION:()=>yo,ANNOTATION_XML:()=>go,AREA:()=>it,ARTICLE:()=>lt,ASIDE:()=>pt,AUDIO:()=>St,B:()=>dt,BASE:()=>ft,BDI:()=>ut,BDO:()=>Tt,BLOCKQUOTE:()=>yt,BODY:()=>gt,BR:()=>xt,BUTTON:()=>ht,CANVAS:()=>bt,CAPTION:()=>mt,CIRCLE:()=>fn,CITE:()=>Pt,CLIPPATH:()=>un,CODE:()=>Et,COL:()=>At,COLGROUP:()=>Ct,DATA:()=>Nt,DATALIST:()=>Mt,DD:()=>Rt,DEFS:()=>Tn,DEL:()=>Dt,DESC:()=>yn,DETAILS:()=>Ot,DFN:()=>vt,DIALOG:()=>Lt,DIV:()=>It,DL:()=>Vt,DT:()=>Ft,DelegateStateContext:()=>F,ELLIPSE:()=>gn,EM:()=>jt,EMBED:()=>Ht,FEBLEND:()=>xn,FECOLORMATRIX:()=>hn,FECOMPONENTTRANSFER:()=>bn,FECOMPOSITE:()=>mn,FECONVOLVEMATRIX:()=>Pn,FEDIFFUSELIGHTING:()=>En,FEDISPLACEMENTMAP:()=>An,FEDISTANTLIGHT:()=>Cn,FEDROPSHADOW:()=>Nn,FEFLOOD:()=>Mn,FEFUNCA:()=>Rn,FEFUNCB:()=>Dn,FEFUNCG:()=>On,FEFUNCR:()=>vn,FEGAUSSIANBLUR:()=>Ln,FEIMAGE:()=>In,FEMERGE:()=>Vn,FEMERGENODE:()=>Fn,FEMORPHOLOGY:()=>jn,FEOFFSET:()=>Hn,FEPOINTLIGHT:()=>Kn,FESPECULARLIGHTING:()=>kn,FESPOTLIGHT:()=>Un,FETILE:()=>Gn,FETURBULENCE:()=>Bn,FIELDSET:()=>Kt,FIGCAPTION:()=>kt,FIGURE:()=>Ut,FILTER:()=>_n,FOOTER:()=>Gt,FOREIGNOBJECT:()=>qn,FORM:()=>Bt,G:()=>wn,H1:()=>_t,H2:()=>qt,H3:()=>wt,H4:()=>Xt,H5:()=>$t,H6:()=>Yt,HEAD:()=>Wt,HEADER:()=>Jt,HGROUP:()=>Qt,HR:()=>zt,HTML:()=>Zt,I:()=>te,IFRAME:()=>ee,IMAGE:()=>Xn,IMG:()=>ne,INPUT:()=>oe,INS:()=>ae,KBD:()=>se,KeyStateContext:()=>j,LABEL:()=>re,LEGEND:()=>ce,LI:()=>ie,LINE:()=>$n,LINEARGRADIENT:()=>Yn,LINK:()=>le,MACTION:()=>xo,MAIN:()=>pe,MAP:()=>Se,MARK:()=>de,MARKER:()=>Wn,MASK:()=>Jn,MATH:()=>ho,MENU:()=>fe,MERROR:()=>bo,META:()=>ue,METADATA:()=>Qn,METER:()=>Te,MFRAC:()=>mo,MI:()=>Po,MMULTISCRIPTS:()=>Eo,MN:()=>Ao,MO:()=>Co,MOVER:()=>No,MPADDED:()=>Mo,MPATH:()=>zn,MPHANTOM:()=>Ro,MPRESCRIPTS:()=>Do,MROOT:()=>Oo,MROW:()=>vo,MS:()=>Lo,MSPACE:()=>Io,MSQRT:()=>Vo,MSTYLE:()=>Fo,MSUB:()=>jo,MSUBSUP:()=>Ho,MSUP:()=>Ko,MTABLE:()=>ko,MTD:()=>Uo,MTEXT:()=>Go,MTR:()=>Bo,MUNDER:()=>_o,MUNDEROVER:()=>qo,NAV:()=>ye,NOSCRIPT:()=>ge,OBJECT:()=>xe,OL:()=>he,OPTGROUP:()=>be,OPTION:()=>me,OUTPUT:()=>Pe,P:()=>Ee,PATH:()=>Zn,PATTERN:()=>to,PICTURE:()=>Ae,POLYGON:()=>eo,POLYLINE:()=>no,PRE:()=>Ce,PROGRESS:()=>Ne,Q:()=>Me,RADIALGRADIENT:()=>oo,RECT:()=>ao,RP:()=>Re,RT:()=>De,RUBY:()=>Oe,S:()=>ve,SAMP:()=>Le,SCRIPT:()=>Ie,SEARCH:()=>Ve,SECTION:()=>Fe,SELECT:()=>je,SEMANTICS:()=>wo,SET:()=>so,SLOT:()=>He,SMALL:()=>Ke,SOURCE:()=>ke,SPAN:()=>Ue,STOP:()=>ro,STRONG:()=>Ge,STYLE:()=>Be,SUB:()=>_e,SUMMARY:()=>qe,SUP:()=>we,SVG:()=>co,SWITCH:()=>io,SYMBOL:()=>lo,TABLE:()=>Xe,TBODY:()=>$e,TD:()=>Ye,TEMPLATE:()=>We,TEXT:()=>po,TEXTAREA:()=>Je,TEXTPATH:()=>So,TFOOT:()=>Qe,TH:()=>ze,THEAD:()=>Ze,TIME:()=>tn,TITLE:()=>en,TR:()=>nn,TRACK:()=>on,TSPAN:()=>fo,U:()=>an,UL:()=>sn,USE:()=>uo,VAR:()=>rn,VIDEO:()=>cn,VIEW:()=>To,WBR:()=>ln,app:()=>J,child:()=>nt,childCount:()=>et,children:()=>N,childrenStart:()=>D,context:()=>Yo,createPatch:()=>Z,createState:()=>z,defuse:()=>I,globals:()=>E,hydrate:()=>R,memo:()=>Q,mergeClass:()=>Xo,mergeStyle:()=>$o,props:()=>A,tag:()=>tt,vode:()=>W});var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function W(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...s]:[e,...s]}function J(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=E.requestAnimationFrame,t.asyncRenderer=E.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let u=await S.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let f=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,f,f,R(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function I(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)I(t.node);else{let r=N(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)I(s)}function R(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&R(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function Q(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function z(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Z(e){return e}function tt(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function N(e){let n=D(e);return n>0?e.slice(n):null}function et(e){let n=D(e);return n<0?0:e.length-n}function nt(e,n){let s=D(e);if(s>0)return e[n+s]}function D(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=v(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let f=!p&&at(o),l=!p&&ot(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!f&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&f?o=o.wholeText:y&&l&&(o=[...o]),i&&f)return c.nodeValue!==o&&(c.nodeValue=o),t;if(f&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let u=!1;for(let d=a;d<n.childNodes.length;d++){let x=n.childNodes[d];if(x){x.before(S,x),u=!0;break}}u||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=v(e,S[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=d,L(e,d,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(d);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(d,T),h=!0;break}}h||n.appendChild(d)}let x=N(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let b=x[T],m=C(e,d,T,g,void 0,b,r??null);o[T+h]=m,m&&g++}}return d.onMount&&e.patch(d.onMount(d)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,u=t,d=A(o),x=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),S[1]?.__memo){let T=S[1];S[1]=v(e,S[1],u[1]),T!==S[1]&&L(e,c,x,d,r)}else L(e,c,x,d,r);d?.catch&&x?.catch!==d.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=N(o),g=N(t);if(h){let T=d?2:1,b=0;for(let m=0;m<h.length;m++){let G=h[m],B=g&&g[m],H=C(e,c,m,b,B,G,r);o[m+T]=H,H&&b++}}if(g){let T=h?h.length:0;for(let b=g.length-1;b>=T;b--)C(e,c,b,b,g[b],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,R(o?.node||t?.node,!0),c,r)}else throw p}}function ot(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function at(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function v(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}let o=K(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function K(e,n){return typeof e=="function"?K(e(n),n):e}function L(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=M(e,n,r,p,i,o):M(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=M(e,n,r,void 0,p,o)}}function M(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",k(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function k(e){return typeof e=="string"?e:Array.isArray(e)?e.map(k).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var st="a",rt="abbr",ct="address",it="area",lt="article",pt="aside",St="audio",dt="b",ft="base",ut="bdi",Tt="bdo",yt="blockquote",gt="body",xt="br",ht="button",bt="canvas",mt="caption",Pt="cite",Et="code",At="col",Ct="colgroup",Nt="data",Mt="datalist",Rt="dd",Dt="del",Ot="details",vt="dfn",Lt="dialog",It="div",Vt="dl",Ft="dt",jt="em",Ht="embed",Kt="fieldset",kt="figcaption",Ut="figure",Gt="footer",Bt="form",_t="h1",qt="h2",wt="h3",Xt="h4",$t="h5",Yt="h6",Wt="head",Jt="header",Qt="hgroup",zt="hr",Zt="html",te="i",ee="iframe",ne="img",oe="input",ae="ins",se="kbd",re="label",ce="legend",ie="li",le="link",pe="main",Se="map",de="mark",fe="menu",ue="meta",Te="meter",ye="nav",ge="noscript",xe="object",he="ol",be="optgroup",me="option",Pe="output",Ee="p",Ae="picture",Ce="pre",Ne="progress",Me="q",Re="rp",De="rt",Oe="ruby",ve="s",Le="samp",Ie="script",Ve="search",Fe="section",je="select",He="slot",Ke="small",ke="source",Ue="span",Ge="strong",Be="style",_e="sub",qe="summary",we="sup",Xe="table",$e="tbody",Ye="td",We="template",Je="textarea",Qe="tfoot",ze="th",Ze="thead",tn="time",en="title",nn="tr",on="track",an="u",sn="ul",rn="var",cn="video",ln="wbr",pn="animate",Sn="animateMotion",dn="animateTransform",fn="circle",un="clipPath",Tn="defs",yn="desc",gn="ellipse",xn="feBlend",hn="feColorMatrix",bn="feComponentTransfer",mn="feComposite",Pn="feConvolveMatrix",En="feDiffuseLighting",An="feDisplacementMap",Cn="feDistantLight",Nn="feDropShadow",Mn="feFlood",Rn="feFuncA",Dn="feFuncB",On="feFuncG",vn="feFuncR",Ln="feGaussianBlur",In="feImage",Vn="feMerge",Fn="feMergeNode",jn="feMorphology",Hn="feOffset",Kn="fePointLight",kn="feSpecularLighting",Un="feSpotLight",Gn="feTile",Bn="feTurbulence",_n="filter",qn="foreignObject",wn="g",Xn="image",$n="line",Yn="linearGradient",Wn="marker",Jn="mask",Qn="metadata",zn="mpath",Zn="path",to="pattern",eo="polygon",no="polyline",oo="radialGradient",ao="rect",so="set",ro="stop",co="svg",io="switch",lo="symbol",po="text",So="textPath",fo="tspan",uo="use",To="view",yo="annotation",go="annotation-xml",xo="maction",ho="math",bo="merror",mo="mfrac",Po="mi",Eo="mmultiscripts",Ao="mn",Co="mo",No="mover",Mo="mpadded",Ro="mphantom",Do="mprescripts",Oo="mroot",vo="mrow",Lo="ms",Io="mspace",Vo="msqrt",Fo="mstyle",jo="msub",Ho="msubsup",Ko="msup",ko="mtable",Uo="mtd",Go="mtext",Bo="mtr",_o="munder",qo="munderover",wo="semantics";function Xo(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var U=document.createElement("div");function $o(...e){try{let n=U.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{U.style.cssText=""}}function Yo(e){return new V(e,[])}var V=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let f=0,l=c[s[f]];for((typeof l!="object"||l===null)&&(c[s[f]]=l={}),f=1;f<s.length-1;f++){let y=l;l=l[s[f]],(typeof l!="object"||l===null)&&(y[s[f]]=l={})}l[s[f]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let f of i)c.push(t(f));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,f)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}},F=class{constructor(n,s,a,t){this.state=n;this.get=s;this.put=a;this.patch=t}},j=class{constructor(n,s){this.state=n;this.path=s;this.keys=s.split(".")}keys;get(){let n=this.keys,s=this.state?this.state[n[0]]:void 0;for(let a=1;a<n.length&&s;a++)s=s[n[a]];return s}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let s=[];for(let a of n)s.push(this.createPatch(a));this.state.patch(s)}else this.state.patch(this.createPatch(n))}createPatch(n){let s={};return this.putDeep(n,s),s}putDeep(n,s){let a=this.keys;if(a.length>1){let t=0,o=s[a[t]];for((typeof o!="object"||o===null)&&(s[a[t]]=o={}),t=1;t<a.length-1;t++){let r=o;o=o[a[t]],(typeof o!="object"||o===null)&&(r[a[t]]=o={})}o[a[t]]=n}else typeof s[a[0]]=="object"&&typeof n=="object"?Object.assign(s[a[0]],n):s[a[0]]=n}};return Y(Wo);})();
|
package/dist/vode.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var P={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function _(e,o,...a){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:o?[e,o,...a]:[e,...a]}function q(e,o,a,...s){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!o||typeof o!="object")throw new Error("second argument to app() must be a state object");if(typeof a!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=P.requestAnimationFrame,t.asyncRenderer=P.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let n=o;Object.defineProperty(o,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let p=l;t.stats.liveEffectCount++;try{let S=await p.next();for(;S.done===!1;){t.stats.liveEffectCount++;try{n.patch(S.value,y),S=await p.next()}finally{t.stats.liveEffectCount--}}n.patch(S.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let p=await l;n.patch(p,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let p of l)n.patch(p,!document.hidden&&!!t.asyncRenderer);else{t.qSync=b(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{P.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?n.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=b(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=b(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),p=a(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,p),e.tagName.toUpperCase()!==p[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let c=r.bind(null,!1),f=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=b(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(c))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await P.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=b(t.state,t.qAsync,!0),t.qAsync=null,P.currentViewTransition=t.asyncRenderer(f),await P.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=n;let i=e;i._vode=t;let E=Array.from(e.parentElement.children).indexOf(e);t.vode=C(o,e.parentElement,E,E,D(e,!0),a(o));for(let l of s)n.patch(l);return l=>n.patch(l)}function I(e){if(e?._vode){let a=function(t){if(!t?.node)return;let n=A(t);if(n){for(let r in n)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)I(t.node);else{let r=M(t);if(r)for(let c of r)a(c)}};var o=a;let s=e._vode;delete e._vode,Object.defineProperty(s.state,"patch",{value:void 0}),Object.defineProperty(s,"renderSync",{value:()=>{}}),Object.defineProperty(s,"renderAsync",{value:()=>{}}),a(s.vode)}else for(let a of e.children)I(a)}function D(e,o){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?o?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let s=[e.tagName.toLowerCase()];if(o&&(s.node=e),e?.hasAttributes()){let t={},n=e.attributes;for(let r of n)t[r.name]=r.value;s.push(t)}if(e.hasChildNodes()){let t=[];for(let n of e.childNodes){let r=n&&D(n,o);r?s.push(r):n&&o&&t.push(n)}for(let n of t)n.remove()}return s}else return}function X(e,o){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof o!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return o.__memo=e,o}function $(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function w(e){return e}function Y(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let o=v(e);return o>0?e.slice(o):null}function W(e){let o=v(e);return o<0?0:e.length-o}function J(e,o){let a=v(e);if(a>0)return e[o+a]}function v(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function b(e,o,a){if(!o)return e;for(let s in o){let t=o[s];if(t&&typeof t=="object"){let n=e[s];n?Array.isArray(t)?e[s]=[...t]:t instanceof Date&&n!==t?e[s]=new Date(t):Array.isArray(n)?e[s]=b({},t,a):typeof n=="object"?b(e[s],t,a):e[s]=b({},t,a):Array.isArray(t)?e[s]=[...t]:t instanceof Date?e[s]=new Date(t):e[s]=b({},t,a)}else t===void 0&&a?delete e[s]:e[s]=t}return e}function C(e,o,a,s,t,n,r){try{n=R(e,n,t);let c=!n||typeof n=="number"||typeof n=="boolean";if(n===t||!t&&c)return t;let f=t?.nodeType===Node.TEXT_NODE,i=f?t:t?.node;if(c){i?.onUnmount&&e.patch(i.onUnmount(i)),i?.remove();return}let E=!c&&B(n),l=!c&&K(n),y=!!n&&typeof n!="string"&&!!(n?.node||n?.nodeType===Node.TEXT_NODE);if(!E&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof n+" "+JSON.stringify(n));if(y&&E?n=n.wholeText:y&&l&&(n=[...n]),f&&E)return i.nodeValue!==n&&(i.nodeValue=n),t;if(E&&(!i||!f)){let p=document.createTextNode(n);if(i)i.onUnmount&&e.patch(i.onUnmount(i)),i.replaceWith(p);else{let S=!1;for(let d=s;d<o.childNodes.length;d++){let g=o.childNodes[d];if(g){g.before(p,g),S=!0;break}}S||o.appendChild(p)}return p}if(l&&(!i||f||t[0]!==n[0])){let p=n;1 in p&&(p[1]=R(e,p[1],void 0));let S=A(n);S?.xmlns!==void 0&&(r=S.xmlns);let d=r?document.createElementNS(r,n[0]):document.createElement(n[0]);if(n.node=d,O(e,d,void 0,S,r??null),S&&"catch"in S&&(n.node.catch=null,n.node.removeAttribute("catch")),i)i.onUnmount&&e.patch(i.onUnmount(i)),i.replaceWith(d);else{let x=!1;for(let T=s;T<o.childNodes.length;T++){let u=o.childNodes[T];if(u){u.before(d,u),x=!0;break}}x||o.appendChild(d)}let g=M(n);if(g){let x=S?2:1,T=0;for(let u=0;u<g.length;u++){let h=g[u],m=C(e,d,u,T,void 0,h,r??null);n[u+x]=m,m&&T++}}return d.onMount&&e.patch(d.onMount(d)),n}if(!f&&l&&t[0]===n[0]){n.node=i;let p=n,S=t,d=A(n),g=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),p[1]?.__memo){let u=p[1];p[1]=R(e,p[1],S[1]),u!==p[1]&&O(e,i,g,d,r)}else O(e,i,g,d,r);d?.catch&&g?.catch!==d.catch&&(n.node.catch=null,n.node.removeAttribute("catch"));let x=M(n),T=M(t);if(x){let u=d?2:1,h=0;for(let m=0;m<x.length;m++){let U=x[m],G=T&&T[m],L=C(e,i,m,h,G,U,r);n[m+u]=L,L&&h++}}if(T){let u=x?x.length:0;for(let h=T.length-1;h>=u;h--)C(e,i,h,h,T[h],void 0,r)}return n}}catch(c){let f=A(n)?.catch;if(f){let i=typeof f=="function"?f(e,c):f;return C(e,o,a,s,D(n?.node||t?.node,!0),i,r)}else throw c}}function K(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function B(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function R(e,o,a){if(typeof o!="function")return o;let s=o?.__memo,t=a?.__memo;if(Array.isArray(s)&&Array.isArray(t)&&s.length===t.length){let r=!0;for(let c=0;c<s.length;c++)if(s[c]!==t[c]){r=!1;break}if(r)return a}let n=V(o,e);return typeof n=="object"&&(n.__memo=o?.__memo),n}function V(e,o){return typeof e=="function"?V(e(o),o):e}function O(e,o,a,s,t){if(!s&&!a)return;let n=t!==void 0;if(a)for(let r in a){let c=a[r],f=s?.[r];c!==f&&(s?s[r]=N(e,o,r,c,f,n):N(e,o,r,c,void 0,n))}if(s&&a){for(let r in s)if(!(r in a)){let c=s[r];s[r]=N(e,o,r,void 0,c,n)}}else if(s)for(let r in s){let c=s[r];s[r]=N(e,o,r,void 0,c,n)}}function N(e,o,a,s,t,n){if(a==="style")if(!t)o.style.cssText="";else if(typeof t=="string")s!==t&&(o.style.cssText=t);else if(s&&typeof s=="object"){for(let r in s)t[r]||(o.style[r]=null);for(let r in t){let c=s[r],f=t[r];c!==f&&(o.style[r]=f)}}else for(let r in t)o.style[r]=t[r];else if(a==="class")t?o.setAttribute("class",F(t)):o.removeAttribute("class");else if(a[0]==="o"&&a[1]==="n")if(t){let r=null;if(typeof t=="function"){let c=t;r=f=>e.patch(c(e,f))}else typeof t=="object"&&(r=()=>e.patch(t));o[a]=r}else o[a]=null;else n||(o[a]=t),t==null||t===!1?o.removeAttribute(a):o.setAttribute(a,t);return t}function F(e){return typeof e=="string"?e:Array.isArray(e)?e.map(F).join(" "):typeof e=="object"?Object.keys(e).filter(o=>e[o]).join(" "):""}var z="a",Z="abbr",tt="address",et="area",nt="article",ot="aside",st="audio",at="b",rt="base",ct="bdi",it="bdo",lt="blockquote",pt="body",dt="br",ft="button",St="canvas",ut="caption",Tt="cite",yt="code",gt="col",xt="colgroup",ht="data",mt="datalist",bt="dd",Et="del",Pt="details",At="dfn",Ct="dialog",Nt="div",Mt="dl",Rt="dt",Ot="em",Dt="embed",vt="fieldset",Lt="figcaption",It="figure",Vt="footer",Ft="form",kt="h1",jt="h2",Ht="h3",Ut="h4",Gt="h5",Kt="h6",Bt="head",_t="header",qt="hgroup",Xt="hr",$t="html",wt="i",Yt="iframe",Wt="img",Jt="input",Qt="ins",zt="kbd",Zt="label",te="legend",ee="li",ne="link",oe="main",se="map",ae="mark",re="menu",ce="meta",ie="meter",le="nav",pe="noscript",de="object",fe="ol",Se="optgroup",ue="option",Te="output",ye="p",ge="picture",xe="pre",he="progress",me="q",be="rp",Ee="rt",Pe="ruby",Ae="s",Ce="samp",Ne="script",Me="search",Re="section",Oe="select",De="slot",ve="small",Le="source",Ie="span",Ve="strong",Fe="style",ke="sub",je="summary",He="sup",Ue="table",Ge="tbody",Ke="td",Be="template",_e="textarea",qe="tfoot",Xe="th",$e="thead",we="time",Ye="title",We="tr",Je="track",Qe="u",ze="ul",Ze="var",tn="video",en="wbr",nn="animate",on="animateMotion",sn="animateTransform",an="circle",rn="clipPath",cn="defs",ln="desc",pn="ellipse",dn="feBlend",fn="feColorMatrix",Sn="feComponentTransfer",un="feComposite",Tn="feConvolveMatrix",yn="feDiffuseLighting",gn="feDisplacementMap",xn="feDistantLight",hn="feDropShadow",mn="feFlood",bn="feFuncA",En="feFuncB",Pn="feFuncG",An="feFuncR",Cn="feGaussianBlur",Nn="feImage",Mn="feMerge",Rn="feMergeNode",On="feMorphology",Dn="feOffset",vn="fePointLight",Ln="feSpecularLighting",In="feSpotLight",Vn="feTile",Fn="feTurbulence",kn="filter",jn="foreignObject",Hn="g",Un="image",Gn="line",Kn="linearGradient",Bn="marker",_n="mask",qn="metadata",Xn="mpath",$n="path",wn="pattern",Yn="polygon",Wn="polyline",Jn="radialGradient",Qn="rect",zn="set",Zn="stop",to="svg",eo="switch",no="symbol",oo="text",so="textPath",ao="tspan",ro="use",co="view",io="annotation",lo="annotation-xml",po="maction",fo="math",So="merror",uo="mfrac",To="mi",yo="mmultiscripts",go="mn",xo="mo",ho="mover",mo="mpadded",bo="mphantom",Eo="mprescripts",Po="mroot",Ao="mrow",Co="ms",No="mspace",Mo="msqrt",Ro="mstyle",Oo="msub",Do="msubsup",vo="msup",Lo="mtable",Io="mtd",Vo="mtext",Fo="mtr",ko="munder",jo="munderover",Ho="semantics";function Go(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let o=e[0];for(let a=1;a<e.length;a++){let s=o,t=e[a];if(!s)o=t;else if(t)if(typeof s=="string"&&typeof t=="string"){let n=s.split(" "),r=t.split(" "),c=new Set([...n,...r]);o=Array.from(c).join(" ").trim()}else if(typeof s=="string"&&Array.isArray(t)){let n=new Set([...t,...s.split(" ")]);o=Array.from(n).join(" ").trim()}else if(Array.isArray(s)&&typeof t=="string"){let n=new Set([...s,...t.split(" ")]);o=Array.from(n).join(" ").trim()}else if(Array.isArray(s)&&Array.isArray(t)){let n=new Set([...s,...t]);o=Array.from(n).join(" ").trim()}else if(typeof s=="string"&&typeof t=="object")o={[s]:!0,...t};else if(typeof s=="object"&&typeof t=="string")o={...s,[t]:!0};else if(typeof s=="object"&&typeof t=="object")o={...s,...t};else if(typeof s=="object"&&Array.isArray(t)){let n={...s};for(let r of t)n[r]=!0;o=n}else if(Array.isArray(s)&&typeof t=="object"){let n={};for(let r of s)n[r]=!0;for(let r of Object.keys(t))n[r]=t[r];o=n}else throw new Error(`cannot merge classes of ${s} (${typeof s}) and ${t} (${typeof t})`);else continue}return o}var k=document.createElement("div");function Bo(...e){try{let o=k.style;for(let a of e)if(typeof a=="object"&&a!==null)for(let s in a)o[s]=a[s];else typeof a=="string"&&(o.cssText+=";"+a);return o.cssText}finally{k.style.cssText=""}}var j=class{constructor(o,a){this.state=o;this.path=a;this.keys=a.split(".")}keys;get(){let o=this.keys,a=this.state?this.state[o[0]]:void 0;for(let s=1;s<o.length&&a;s++)a=a[o[s]];return a}put(o){this.putDeep(o,this.state)}patch(o){if(Array.isArray(o)){let a=[];for(let s of o)a.push(this.createPatch(s));this.state.patch(a)}else this.state.patch(this.createPatch(o))}createPatch(o){let a={};return this.putDeep(o,a),a}putDeep(o,a){let s=this.keys;if(s.length>1){let t=0,n=a[s[t]];for((typeof n!="object"||n===null)&&(a[s[t]]=n={}),t=1;t<s.length-1;t++){let r=n;n=n[s[t]],(typeof n!="object"||n===null)&&(r[s[t]]=n={})}n[s[t]]=o}else typeof a[s[0]]=="object"&&typeof o=="object"?Object.assign(a[s[0]],o):a[s[0]]=o}},H=class{constructor(o,a,s,t){this.state=o;this.get=a;this.put=s;this.patch=t}};export{z as A,Z as ABBR,tt as ADDRESS,nn as ANIMATE,on as ANIMATEMOTION,sn as ANIMATETRANSFORM,io as ANNOTATION,lo as ANNOTATION_XML,et as AREA,nt as ARTICLE,ot as ASIDE,st as AUDIO,at as B,rt as BASE,ct as BDI,it as BDO,lt as BLOCKQUOTE,pt as BODY,dt as BR,ft as BUTTON,St as CANVAS,ut as CAPTION,an as CIRCLE,Tt as CITE,rn as CLIPPATH,yt as CODE,gt as COL,xt as COLGROUP,ht as DATA,mt as DATALIST,bt as DD,cn as DEFS,Et as DEL,ln as DESC,Pt as DETAILS,At as DFN,Ct as DIALOG,Nt as DIV,Mt as DL,Rt as DT,H as DelegateStateContext,pn as ELLIPSE,Ot as EM,Dt as EMBED,dn as FEBLEND,fn as FECOLORMATRIX,Sn as FECOMPONENTTRANSFER,un as FECOMPOSITE,Tn as FECONVOLVEMATRIX,yn as FEDIFFUSELIGHTING,gn as FEDISPLACEMENTMAP,xn as FEDISTANTLIGHT,hn as FEDROPSHADOW,mn as FEFLOOD,bn as FEFUNCA,En as FEFUNCB,Pn as FEFUNCG,An as FEFUNCR,Cn as FEGAUSSIANBLUR,Nn as FEIMAGE,Mn as FEMERGE,Rn as FEMERGENODE,On as FEMORPHOLOGY,Dn as FEOFFSET,vn as FEPOINTLIGHT,Ln as FESPECULARLIGHTING,In as FESPOTLIGHT,Vn as FETILE,Fn as FETURBULENCE,vt as FIELDSET,Lt as FIGCAPTION,It as FIGURE,kn as FILTER,Vt as FOOTER,jn as FOREIGNOBJECT,Ft as FORM,Hn as G,kt as H1,jt as H2,Ht as H3,Ut as H4,Gt as H5,Kt as H6,Bt as HEAD,_t as HEADER,qt as HGROUP,Xt as HR,$t as HTML,wt as I,Yt as IFRAME,Un as IMAGE,Wt as IMG,Jt as INPUT,Qt as INS,zt as KBD,j as KeyStateContext,Zt as LABEL,te as LEGEND,ee as LI,Gn as LINE,Kn as LINEARGRADIENT,ne as LINK,po as MACTION,oe as MAIN,se as MAP,ae as MARK,Bn as MARKER,_n as MASK,fo as MATH,re as MENU,So as MERROR,ce as META,qn as METADATA,ie as METER,uo as MFRAC,To as MI,yo as MMULTISCRIPTS,go as MN,xo as MO,ho as MOVER,mo as MPADDED,Xn as MPATH,bo as MPHANTOM,Eo as MPRESCRIPTS,Po as MROOT,Ao as MROW,Co as MS,No as MSPACE,Mo as MSQRT,Ro as MSTYLE,Oo as MSUB,Do as MSUBSUP,vo as MSUP,Lo as MTABLE,Io as MTD,Vo as MTEXT,Fo as MTR,ko as MUNDER,jo as MUNDEROVER,le as NAV,pe as NOSCRIPT,de as OBJECT,fe as OL,Se as OPTGROUP,ue as OPTION,Te as OUTPUT,ye as P,$n as PATH,wn as PATTERN,ge as PICTURE,Yn as POLYGON,Wn as POLYLINE,xe as PRE,he as PROGRESS,me as Q,Jn as RADIALGRADIENT,Qn as RECT,be as RP,Ee as RT,Pe as RUBY,Ae as S,Ce as SAMP,Ne as SCRIPT,Me as SEARCH,Re as SECTION,Oe as SELECT,Ho as SEMANTICS,zn as SET,De as SLOT,ve as SMALL,Le as SOURCE,Ie as SPAN,Zn as STOP,Ve as STRONG,Fe as STYLE,ke as SUB,je as SUMMARY,He as SUP,to as SVG,eo as SWITCH,no as SYMBOL,Ue as TABLE,Ge as TBODY,Ke as TD,Be as TEMPLATE,oo as TEXT,_e as TEXTAREA,so as TEXTPATH,qe as TFOOT,Xe as TH,$e as THEAD,we as TIME,Ye as TITLE,We as TR,Je as TRACK,ao as TSPAN,Qe as U,ze as UL,ro as USE,Ze as VAR,tn as VIDEO,co as VIEW,en as WBR,q as app,J as child,W as childCount,M as children,v as childrenStart,w as createPatch,$ as createState,I as defuse,P as globals,D as hydrate,X as memo,Go as mergeClass,Bo as mergeStyle,A as props,Y as tag,_ as vode};
|
|
1
|
+
var E={currentViewTransition:void 0,requestAnimationFrame:window.requestAnimationFrame?window.requestAnimationFrame.bind(window):(e=>e()),startViewTransition:document.startViewTransition?document.startViewTransition.bind(document):null};function q(e,n,...s){if(!e)throw new Error("first argument to vode() must be a tag name or a vode");return Array.isArray(e)?e:n?[e,n,...s]:[e,...s]}function w(e,n,s,...a){if(!e?.parentElement)throw new Error("first argument to app() must be a valid HTMLElement inside the <html></html> document");if(!n||typeof n!="object")throw new Error("second argument to app() must be a state object");if(typeof s!="function")throw new Error("third argument to app() must be a function that returns a vode");let t={};t.syncRenderer=E.requestAnimationFrame,t.asyncRenderer=E.startViewTransition,t.qSync=null,t.qAsync=null,t.stats={lastSyncRenderTime:0,lastAsyncRenderTime:0,syncRenderCount:0,asyncRenderCount:0,liveEffectCount:0,patchCount:0,syncRenderPatchCount:0,asyncRenderPatchCount:0};let o=n;Object.defineProperty(n,"patch",{enumerable:!1,configurable:!0,writable:!1,value:async(l,y)=>{if(!(!l||typeof l!="function"&&typeof l!="object"))if(t.stats.patchCount++,l?.next){let S=l;t.stats.liveEffectCount++;try{let u=await S.next();for(;u.done===!1;){t.stats.liveEffectCount++;try{o.patch(u.value,y),u=await S.next()}finally{t.stats.liveEffectCount--}}o.patch(u.value,y)}finally{t.stats.liveEffectCount--}}else if(l.then){t.stats.liveEffectCount++;try{let S=await l;o.patch(S,y)}finally{t.stats.liveEffectCount--}}else if(Array.isArray(l))if(l.length>0)for(let S of l)o.patch(S,!document.hidden&&!!t.asyncRenderer);else{t.qSync=P(t.qSync||{},t.qAsync,!1),t.qAsync=null;try{E.currentViewTransition?.skipTransition()}catch{}t.stats.syncRenderPatchCount++,t.renderSync()}else typeof l=="function"?o.patch(l(t.state),y):y?(t.stats.asyncRenderPatchCount++,t.qAsync=P(t.qAsync||{},l,!1),await t.renderAsync()):(t.stats.syncRenderPatchCount++,t.qSync=P(t.qSync||{},l,!1),t.renderSync())}});function r(l){let y=Date.now(),S=s(t.state);t.vode=C(t.state,e.parentElement,0,0,t.vode,S),e.tagName.toUpperCase()!==S[0].toUpperCase()&&(e=t.vode.node,e._vode=t),l||(t.stats.lastSyncRenderTime=Date.now()-y,t.stats.syncRenderCount++,t.isRendering=!1,t.qSync&&t.renderSync())}let p=r.bind(null,!1),i=r.bind(null,!0);Object.defineProperty(t,"renderSync",{enumerable:!1,configurable:!0,writable:!1,value:()=>{t.isRendering||!t.qSync||(t.isRendering=!0,t.state=P(t.state,t.qSync,!0),t.qSync=null,t.syncRenderer(p))}}),Object.defineProperty(t,"renderAsync",{enumerable:!1,configurable:!0,writable:!1,value:async()=>{if(t.isAnimating||!t.qAsync||(await E.currentViewTransition?.updateCallbackDone,t.isAnimating||!t.qAsync||document.hidden))return;t.isAnimating=!0;let l=Date.now();try{t.state=P(t.state,t.qAsync,!0),t.qAsync=null,E.currentViewTransition=t.asyncRenderer(i),await E.currentViewTransition?.updateCallbackDone}finally{t.stats.lastAsyncRenderTime=Date.now()-l,t.stats.asyncRenderCount++,t.isAnimating=!1}t.qAsync&&t.renderAsync()}}),t.state=o;let c=e;c._vode=t;let f=Array.from(e.parentElement.children).indexOf(e);t.vode=C(n,e.parentElement,f,f,O(e,!0),s(n));for(let l of a)o.patch(l);return l=>o.patch(l)}function V(e){if(e?._vode){let s=function(t){if(!t?.node)return;let o=A(t);if(o){for(let r in o)r[0]==="o"&&r[1]==="n"&&(t.node[r]=null);t.node.catch=null}if(t.node._vode)V(t.node);else{let r=M(t);if(r)for(let p of r)s(p)}};var n=s;let a=e._vode;delete e._vode,Object.defineProperty(a.state,"patch",{value:void 0}),Object.defineProperty(a,"renderSync",{value:()=>{}}),Object.defineProperty(a,"renderAsync",{value:()=>{}}),s(a.vode)}else for(let s of e.children)V(s)}function O(e,n){if(e?.nodeType===Node.TEXT_NODE)return e.nodeValue?.trim()!==""?n?e:e.nodeValue:void 0;if(e.nodeType===Node.COMMENT_NODE)return;if(e.nodeType===Node.ELEMENT_NODE){let a=[e.tagName.toLowerCase()];if(n&&(a.node=e),e?.hasAttributes()){let t={},o=e.attributes;for(let r of o)t[r.name]=r.value;a.push(t)}if(e.hasChildNodes()){let t=[];for(let o of e.childNodes){let r=o&&O(o,n);r?a.push(r):o&&n&&t.push(o)}for(let o of t)o.remove()}return a}else return}function X(e,n){if(!e||!Array.isArray(e))throw new Error("first argument to memo() must be an array of values to compare");if(typeof n!="function")throw new Error("second argument to memo() must be a function that returns a vode or props object");return n.__memo=e,n}function $(e){if(!e||typeof e!="object")throw new Error("createState() must be called with a state object");return e}function Y(e){return e}function W(e){return e?Array.isArray(e)?e[0]:typeof e=="string"||e.nodeType===Node.TEXT_NODE?"#text":void 0:void 0}function A(e){if(Array.isArray(e)&&e.length>1&&e[1]&&!Array.isArray(e[1])&&typeof e[1]=="object"&&e[1].nodeType!==Node.TEXT_NODE)return e[1]}function M(e){let n=v(e);return n>0?e.slice(n):null}function J(e){let n=v(e);return n<0?0:e.length-n}function Q(e,n){let s=v(e);if(s>0)return e[n+s]}function v(e){return A(e)?e.length>2?2:-1:Array.isArray(e)&&e.length>1?1:-1}function P(e,n,s){if(!n)return e;for(let a in n){let t=n[a];if(t&&typeof t=="object"){let o=e[a];o?Array.isArray(t)?e[a]=[...t]:t instanceof Date&&o!==t?e[a]=new Date(t):Array.isArray(o)?e[a]=P({},t,s):typeof o=="object"?P(e[a],t,s):e[a]=P({},t,s):Array.isArray(t)?e[a]=[...t]:t instanceof Date?e[a]=new Date(t):e[a]=P({},t,s)}else t===void 0&&s?delete e[a]:e[a]=t}return e}function C(e,n,s,a,t,o,r){try{o=R(e,o,t);let p=!o||typeof o=="number"||typeof o=="boolean";if(o===t||!t&&p)return t;let i=t?.nodeType===Node.TEXT_NODE,c=i?t:t?.node;if(p){c?.onUnmount&&e.patch(c.onUnmount(c)),c?.remove();return}let f=!p&&_(o),l=!p&&B(o),y=!!o&&typeof o!="string"&&!!(o?.node||o?.nodeType===Node.TEXT_NODE);if(!f&&!l&&!y&&!t)throw new Error("Invalid vode: "+typeof o+" "+JSON.stringify(o));if(y&&f?o=o.wholeText:y&&l&&(o=[...o]),i&&f)return c.nodeValue!==o&&(c.nodeValue=o),t;if(f&&(!c||!i)){let S=document.createTextNode(o);if(c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(S);else{let u=!1;for(let d=a;d<n.childNodes.length;d++){let x=n.childNodes[d];if(x){x.before(S,x),u=!0;break}}u||n.appendChild(S)}return S}if(l&&(!c||i||t[0]!==o[0])){let S=o;1 in S&&(S[1]=R(e,S[1],void 0));let u=A(o);u?.xmlns!==void 0&&(r=u.xmlns);let d=r?document.createElementNS(r,o[0]):document.createElement(o[0]);if(o.node=d,D(e,d,void 0,u,r??null),u&&"catch"in u&&(o.node.catch=null,o.node.removeAttribute("catch")),c)c.onUnmount&&e.patch(c.onUnmount(c)),c.replaceWith(d);else{let h=!1;for(let g=a;g<n.childNodes.length;g++){let T=n.childNodes[g];if(T){T.before(d,T),h=!0;break}}h||n.appendChild(d)}let x=M(o);if(x){let h=u?2:1,g=0;for(let T=0;T<x.length;T++){let b=x[T],m=C(e,d,T,g,void 0,b,r??null);o[T+h]=m,m&&g++}}return d.onMount&&e.patch(d.onMount(d)),o}if(!i&&l&&t[0]===o[0]){o.node=c;let S=o,u=t,d=A(o),x=A(t);if(d?.xmlns!==void 0&&(r=d.xmlns),S[1]?.__memo){let T=S[1];S[1]=R(e,S[1],u[1]),T!==S[1]&&D(e,c,x,d,r)}else D(e,c,x,d,r);d?.catch&&x?.catch!==d.catch&&(o.node.catch=null,o.node.removeAttribute("catch"));let h=M(o),g=M(t);if(h){let T=d?2:1,b=0;for(let m=0;m<h.length;m++){let U=h[m],G=g&&g[m],I=C(e,c,m,b,G,U,r);o[m+T]=I,I&&b++}}if(g){let T=h?h.length:0;for(let b=g.length-1;b>=T;b--)C(e,c,b,b,g[b],void 0,r)}return o}}catch(p){let i=A(o)?.catch;if(i){let c=typeof i=="function"?i(e,p):i;return C(e,n,s,a,O(o?.node||t?.node,!0),c,r)}else throw p}}function B(e){return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"}function _(e){return typeof e=="string"||e?.nodeType===Node.TEXT_NODE}function R(e,n,s){if(typeof n!="function")return n;let a=n?.__memo,t=s?.__memo;if(Array.isArray(a)&&Array.isArray(t)&&a.length===t.length){let r=!0;for(let p=0;p<a.length;p++)if(a[p]!==t[p]){r=!1;break}if(r)return s}let o=F(n,e);return typeof o=="object"&&(o.__memo=n?.__memo),o}function F(e,n){return typeof e=="function"?F(e(n),n):e}function D(e,n,s,a,t){if(!a&&!s)return;let o=t!==void 0;if(s)for(let r in s){let p=s[r],i=a?.[r];p!==i&&(a?a[r]=N(e,n,r,p,i,o):N(e,n,r,p,void 0,o))}if(a&&s){for(let r in a)if(!(r in s)){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}else if(a)for(let r in a){let p=a[r];a[r]=N(e,n,r,void 0,p,o)}}function N(e,n,s,a,t,o){if(s==="style")if(!t)n.style.cssText="";else if(typeof t=="string")a!==t&&(n.style.cssText=t);else if(a&&typeof a=="object"){for(let r in a)t[r]||(n.style[r]=null);for(let r in t){let p=a[r],i=t[r];p!==i&&(n.style[r]=i)}}else for(let r in t)n.style[r]=t[r];else if(s==="class")t?n.setAttribute("class",j(t)):n.removeAttribute("class");else if(s[0]==="o"&&s[1]==="n")if(t){let r=null;if(typeof t=="function"){let p=t;r=i=>e.patch(p(e,i))}else typeof t=="object"&&(r=()=>e.patch(t));n[s]=r}else n[s]=null;else o||(n[s]=t),t==null||t===!1?n.removeAttribute(s):n.setAttribute(s,t);return t}function j(e){return typeof e=="string"?e:Array.isArray(e)?e.map(j).join(" "):typeof e=="object"?Object.keys(e).filter(n=>e[n]).join(" "):""}var Z="a",tt="abbr",et="address",nt="area",ot="article",at="aside",st="audio",rt="b",ct="base",it="bdi",lt="bdo",pt="blockquote",St="body",dt="br",ft="button",ut="canvas",Tt="caption",yt="cite",gt="code",xt="col",ht="colgroup",bt="data",mt="datalist",Pt="dd",Et="del",At="details",Ct="dfn",Nt="dialog",Mt="div",Rt="dl",Dt="dt",Ot="em",vt="embed",Lt="fieldset",It="figcaption",Vt="figure",Ft="footer",jt="form",Ht="h1",Kt="h2",kt="h3",Ut="h4",Gt="h5",Bt="h6",_t="head",qt="header",wt="hgroup",Xt="hr",$t="html",Yt="i",Wt="iframe",Jt="img",Qt="input",zt="ins",Zt="kbd",te="label",ee="legend",ne="li",oe="link",ae="main",se="map",re="mark",ce="menu",ie="meta",le="meter",pe="nav",Se="noscript",de="object",fe="ol",ue="optgroup",Te="option",ye="output",ge="p",xe="picture",he="pre",be="progress",me="q",Pe="rp",Ee="rt",Ae="ruby",Ce="s",Ne="samp",Me="script",Re="search",De="section",Oe="select",ve="slot",Le="small",Ie="source",Ve="span",Fe="strong",je="style",He="sub",Ke="summary",ke="sup",Ue="table",Ge="tbody",Be="td",_e="template",qe="textarea",we="tfoot",Xe="th",$e="thead",Ye="time",We="title",Je="tr",Qe="track",ze="u",Ze="ul",tn="var",en="video",nn="wbr",on="animate",an="animateMotion",sn="animateTransform",rn="circle",cn="clipPath",ln="defs",pn="desc",Sn="ellipse",dn="feBlend",fn="feColorMatrix",un="feComponentTransfer",Tn="feComposite",yn="feConvolveMatrix",gn="feDiffuseLighting",xn="feDisplacementMap",hn="feDistantLight",bn="feDropShadow",mn="feFlood",Pn="feFuncA",En="feFuncB",An="feFuncG",Cn="feFuncR",Nn="feGaussianBlur",Mn="feImage",Rn="feMerge",Dn="feMergeNode",On="feMorphology",vn="feOffset",Ln="fePointLight",In="feSpecularLighting",Vn="feSpotLight",Fn="feTile",jn="feTurbulence",Hn="filter",Kn="foreignObject",kn="g",Un="image",Gn="line",Bn="linearGradient",_n="marker",qn="mask",wn="metadata",Xn="mpath",$n="path",Yn="pattern",Wn="polygon",Jn="polyline",Qn="radialGradient",zn="rect",Zn="set",to="stop",eo="svg",no="switch",oo="symbol",ao="text",so="textPath",ro="tspan",co="use",io="view",lo="annotation",po="annotation-xml",So="maction",fo="math",uo="merror",To="mfrac",yo="mi",go="mmultiscripts",xo="mn",ho="mo",bo="mover",mo="mpadded",Po="mphantom",Eo="mprescripts",Ao="mroot",Co="mrow",No="ms",Mo="mspace",Ro="msqrt",Do="mstyle",Oo="msub",vo="msubsup",Lo="msup",Io="mtable",Vo="mtd",Fo="mtext",jo="mtr",Ho="munder",Ko="munderover",ko="semantics";function Go(...e){if(!e||e.length===0)return null;if(e.length===1)return e[0];let n=e[0];for(let s=1;s<e.length;s++){let a=n,t=e[s];if(!a)n=t;else if(t)if(typeof a=="string"&&typeof t=="string"){let o=a.split(" "),r=t.split(" "),p=new Set([...o,...r]);n=Array.from(p).join(" ").trim()}else if(typeof a=="string"&&Array.isArray(t)){let o=new Set([...t,...a.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&typeof t=="string"){let o=new Set([...a,...t.split(" ")]);n=Array.from(o).join(" ").trim()}else if(Array.isArray(a)&&Array.isArray(t)){let o=new Set([...a,...t]);n=Array.from(o).join(" ").trim()}else if(typeof a=="string"&&typeof t=="object")n={[a]:!0,...t};else if(typeof a=="object"&&typeof t=="string")n={...a,[t]:!0};else if(typeof a=="object"&&typeof t=="object")n={...a,...t};else if(typeof a=="object"&&Array.isArray(t)){let o={...a};for(let r of t)o[r]=!0;n=o}else if(Array.isArray(a)&&typeof t=="object"){let o={};for(let r of a)o[r]=!0;for(let r of Object.keys(t))o[r]=t[r];n=o}else throw new Error(`cannot merge classes of ${a} (${typeof a}) and ${t} (${typeof t})`);else continue}return n}var H=document.createElement("div");function _o(...e){try{let n=H.style;for(let s of e)if(typeof s=="object"&&s!==null)for(let a in s)n[a]=s[a];else typeof s=="string"&&(n.cssText+=";"+s);return n.cssText}finally{H.style.cssText=""}}function wo(e){return new L(e,[])}var L=class e{constructor(n,s){this.state=n;this.keys=s;function a(i,c){if(s.length>1){let f=0,l=c[s[f]];for((typeof l!="object"||l===null)&&(c[s[f]]=l={}),f=1;f<s.length-1;f++){let y=l;l=l[s[f]],(typeof l!="object"||l===null)&&(y[s[f]]=l={})}l[s[f]]=i}else s.length===1?typeof c[s[0]]=="object"&&typeof i=="object"?Object.assign(c[s[0]],i):c[s[0]]=i:Object.assign(c,i)}function t(i){let c={};return a(i,c),c}function o(){if(s.length===0)return n;let i=n?n[s[0]]:void 0;for(let c=1;c<s.length&&i;c++)i=i[s[c]];return i}function r(i){a(i,n)}function p(i){if(Array.isArray(i)){let c=[];for(let f of i)c.push(t(f));n.patch(c)}else n.patch(t(i))}return new Proxy(this,{get:(i,c,f)=>{if(c==="state")return n;if(c==="get")return o;if(c==="put")return r;if(c==="patch")return p;let l=[...i.keys,String(c)];return new e(i.state,l)}})}get(){throw"implemented in ctor"}put(n){throw"implemented in ctor"}patch(n){throw"implemented in ctor"}},K=class{constructor(n,s,a,t){this.state=n;this.get=s;this.put=a;this.patch=t}},k=class{constructor(n,s){this.state=n;this.path=s;this.keys=s.split(".")}keys;get(){let n=this.keys,s=this.state?this.state[n[0]]:void 0;for(let a=1;a<n.length&&s;a++)s=s[n[a]];return s}put(n){this.putDeep(n,this.state)}patch(n){if(Array.isArray(n)){let s=[];for(let a of n)s.push(this.createPatch(a));this.state.patch(s)}else this.state.patch(this.createPatch(n))}createPatch(n){let s={};return this.putDeep(n,s),s}putDeep(n,s){let a=this.keys;if(a.length>1){let t=0,o=s[a[t]];for((typeof o!="object"||o===null)&&(s[a[t]]=o={}),t=1;t<a.length-1;t++){let r=o;o=o[a[t]],(typeof o!="object"||o===null)&&(r[a[t]]=o={})}o[a[t]]=n}else typeof s[a[0]]=="object"&&typeof n=="object"?Object.assign(s[a[0]],n):s[a[0]]=n}};export{Z as A,tt as ABBR,et as ADDRESS,on as ANIMATE,an as ANIMATEMOTION,sn as ANIMATETRANSFORM,lo as ANNOTATION,po as ANNOTATION_XML,nt as AREA,ot as ARTICLE,at as ASIDE,st as AUDIO,rt as B,ct as BASE,it as BDI,lt as BDO,pt as BLOCKQUOTE,St as BODY,dt as BR,ft as BUTTON,ut as CANVAS,Tt as CAPTION,rn as CIRCLE,yt as CITE,cn as CLIPPATH,gt as CODE,xt as COL,ht as COLGROUP,bt as DATA,mt as DATALIST,Pt as DD,ln as DEFS,Et as DEL,pn as DESC,At as DETAILS,Ct as DFN,Nt as DIALOG,Mt as DIV,Rt as DL,Dt as DT,K as DelegateStateContext,Sn as ELLIPSE,Ot as EM,vt as EMBED,dn as FEBLEND,fn as FECOLORMATRIX,un as FECOMPONENTTRANSFER,Tn as FECOMPOSITE,yn as FECONVOLVEMATRIX,gn as FEDIFFUSELIGHTING,xn as FEDISPLACEMENTMAP,hn as FEDISTANTLIGHT,bn as FEDROPSHADOW,mn as FEFLOOD,Pn as FEFUNCA,En as FEFUNCB,An as FEFUNCG,Cn as FEFUNCR,Nn as FEGAUSSIANBLUR,Mn as FEIMAGE,Rn as FEMERGE,Dn as FEMERGENODE,On as FEMORPHOLOGY,vn as FEOFFSET,Ln as FEPOINTLIGHT,In as FESPECULARLIGHTING,Vn as FESPOTLIGHT,Fn as FETILE,jn as FETURBULENCE,Lt as FIELDSET,It as FIGCAPTION,Vt as FIGURE,Hn as FILTER,Ft as FOOTER,Kn as FOREIGNOBJECT,jt as FORM,kn as G,Ht as H1,Kt as H2,kt as H3,Ut as H4,Gt as H5,Bt as H6,_t as HEAD,qt as HEADER,wt as HGROUP,Xt as HR,$t as HTML,Yt as I,Wt as IFRAME,Un as IMAGE,Jt as IMG,Qt as INPUT,zt as INS,Zt as KBD,k as KeyStateContext,te as LABEL,ee as LEGEND,ne as LI,Gn as LINE,Bn as LINEARGRADIENT,oe as LINK,So as MACTION,ae as MAIN,se as MAP,re as MARK,_n as MARKER,qn as MASK,fo as MATH,ce as MENU,uo as MERROR,ie as META,wn as METADATA,le as METER,To as MFRAC,yo as MI,go as MMULTISCRIPTS,xo as MN,ho as MO,bo as MOVER,mo as MPADDED,Xn as MPATH,Po as MPHANTOM,Eo as MPRESCRIPTS,Ao as MROOT,Co as MROW,No as MS,Mo as MSPACE,Ro as MSQRT,Do as MSTYLE,Oo as MSUB,vo as MSUBSUP,Lo as MSUP,Io as MTABLE,Vo as MTD,Fo as MTEXT,jo as MTR,Ho as MUNDER,Ko as MUNDEROVER,pe as NAV,Se as NOSCRIPT,de as OBJECT,fe as OL,ue as OPTGROUP,Te as OPTION,ye as OUTPUT,ge as P,$n as PATH,Yn as PATTERN,xe as PICTURE,Wn as POLYGON,Jn as POLYLINE,he as PRE,be as PROGRESS,me as Q,Qn as RADIALGRADIENT,zn as RECT,Pe as RP,Ee as RT,Ae as RUBY,Ce as S,Ne as SAMP,Me as SCRIPT,Re as SEARCH,De as SECTION,Oe as SELECT,ko as SEMANTICS,Zn as SET,ve as SLOT,Le as SMALL,Ie as SOURCE,Ve as SPAN,to as STOP,Fe as STRONG,je as STYLE,He as SUB,Ke as SUMMARY,ke as SUP,eo as SVG,no as SWITCH,oo as SYMBOL,Ue as TABLE,Ge as TBODY,Be as TD,_e as TEMPLATE,ao as TEXT,qe as TEXTAREA,so as TEXTPATH,we as TFOOT,Xe as TH,$e as THEAD,Ye as TIME,We as TITLE,Je as TR,Qe as TRACK,ro as TSPAN,ze as U,Ze as UL,co as USE,tn as VAR,en as VIDEO,io as VIEW,nn as WBR,w as app,Q as child,J as childCount,M as children,v as childrenStart,wo as context,Y as createPatch,$ as createState,V as defuse,E as globals,O as hydrate,X as memo,Go as mergeClass,_o as mergeStyle,A as props,W as tag,q as vode};
|
package/dist/vode.mjs
CHANGED
|
@@ -860,6 +860,98 @@ function mergeStyle(...props2) {
|
|
|
860
860
|
}
|
|
861
861
|
|
|
862
862
|
// src/state-context.ts
|
|
863
|
+
function context(state) {
|
|
864
|
+
return new ProxyStateContextImpl(state, []);
|
|
865
|
+
}
|
|
866
|
+
var ProxyStateContextImpl = class _ProxyStateContextImpl {
|
|
867
|
+
constructor(state, keys) {
|
|
868
|
+
this.state = state;
|
|
869
|
+
this.keys = keys;
|
|
870
|
+
function putDeep(value, target) {
|
|
871
|
+
if (keys.length > 1) {
|
|
872
|
+
let i = 0;
|
|
873
|
+
let raw = target[keys[i]];
|
|
874
|
+
if (typeof raw !== "object" || raw === null) {
|
|
875
|
+
target[keys[i]] = raw = {};
|
|
876
|
+
}
|
|
877
|
+
for (i = 1; i < keys.length - 1; i++) {
|
|
878
|
+
const p = raw;
|
|
879
|
+
raw = raw[keys[i]];
|
|
880
|
+
if (typeof raw !== "object" || raw === null) {
|
|
881
|
+
p[keys[i]] = raw = {};
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
raw[keys[i]] = value;
|
|
885
|
+
} else if (keys.length === 1) {
|
|
886
|
+
if (typeof target[keys[0]] === "object" && typeof value === "object")
|
|
887
|
+
Object.assign(target[keys[0]], value);
|
|
888
|
+
else
|
|
889
|
+
target[keys[0]] = value;
|
|
890
|
+
} else {
|
|
891
|
+
Object.assign(target, value);
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
function createPatch2(value) {
|
|
895
|
+
const renderPatch = {};
|
|
896
|
+
putDeep(value, renderPatch);
|
|
897
|
+
return renderPatch;
|
|
898
|
+
}
|
|
899
|
+
function get() {
|
|
900
|
+
if (keys.length === 0)
|
|
901
|
+
return state;
|
|
902
|
+
let raw = state ? state[keys[0]] : void 0;
|
|
903
|
+
for (let i = 1; i < keys.length && !!raw; i++) {
|
|
904
|
+
raw = raw[keys[i]];
|
|
905
|
+
}
|
|
906
|
+
return raw;
|
|
907
|
+
}
|
|
908
|
+
function put(value) {
|
|
909
|
+
putDeep(value, state);
|
|
910
|
+
}
|
|
911
|
+
function patch(value) {
|
|
912
|
+
if (Array.isArray(value)) {
|
|
913
|
+
const animation = [];
|
|
914
|
+
for (const v of value) {
|
|
915
|
+
animation.push(createPatch2(v));
|
|
916
|
+
}
|
|
917
|
+
state.patch(animation);
|
|
918
|
+
} else {
|
|
919
|
+
state.patch(createPatch2(value));
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
return new Proxy(this, {
|
|
923
|
+
get: (target, prop, receiver) => {
|
|
924
|
+
if (prop === "state")
|
|
925
|
+
return state;
|
|
926
|
+
if (prop === "get")
|
|
927
|
+
return get;
|
|
928
|
+
if (prop === "put")
|
|
929
|
+
return put;
|
|
930
|
+
if (prop === "patch")
|
|
931
|
+
return patch;
|
|
932
|
+
const newKeys = [...target.keys, String(prop)];
|
|
933
|
+
return new _ProxyStateContextImpl(target.state, newKeys);
|
|
934
|
+
}
|
|
935
|
+
});
|
|
936
|
+
}
|
|
937
|
+
get() {
|
|
938
|
+
throw "implemented in ctor";
|
|
939
|
+
}
|
|
940
|
+
put(value) {
|
|
941
|
+
throw "implemented in ctor";
|
|
942
|
+
}
|
|
943
|
+
patch(value) {
|
|
944
|
+
throw "implemented in ctor";
|
|
945
|
+
}
|
|
946
|
+
};
|
|
947
|
+
var DelegateStateContext = class {
|
|
948
|
+
constructor(state, get, put, patch) {
|
|
949
|
+
this.state = state;
|
|
950
|
+
this.get = get;
|
|
951
|
+
this.put = put;
|
|
952
|
+
this.patch = patch;
|
|
953
|
+
}
|
|
954
|
+
};
|
|
863
955
|
var KeyStateContext = class {
|
|
864
956
|
constructor(state, path) {
|
|
865
957
|
this.state = state;
|
|
@@ -931,14 +1023,6 @@ var KeyStateContext = class {
|
|
|
931
1023
|
}
|
|
932
1024
|
}
|
|
933
1025
|
};
|
|
934
|
-
var DelegateStateContext = class {
|
|
935
|
-
constructor(state, get, put, patch) {
|
|
936
|
-
this.state = state;
|
|
937
|
-
this.get = get;
|
|
938
|
-
this.put = put;
|
|
939
|
-
this.patch = patch;
|
|
940
|
-
}
|
|
941
|
-
};
|
|
942
1026
|
export {
|
|
943
1027
|
A,
|
|
944
1028
|
ABBR,
|
|
@@ -1148,6 +1232,7 @@ export {
|
|
|
1148
1232
|
childCount,
|
|
1149
1233
|
children,
|
|
1150
1234
|
childrenStart,
|
|
1235
|
+
context,
|
|
1151
1236
|
createPatch,
|
|
1152
1237
|
createState,
|
|
1153
1238
|
defuse,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryupold/vode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "a minimalist web framework",
|
|
5
5
|
"author": "Michael Scherbakow (ryupold)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"homepage": "https://github.com/ryupold/vode#readme",
|
|
27
27
|
"module": "index.ts",
|
|
28
28
|
"scripts": {
|
|
29
|
-
"build": "esbuild index.ts --bundle --format=esm --outfile=dist/vode.mjs
|
|
29
|
+
"build": "esbuild index.ts --bundle --format=esm --outfile=dist/vode.mjs",
|
|
30
30
|
"build-min": "esbuild index.ts --bundle --format=esm --minify --outfile=dist/vode.min.mjs",
|
|
31
31
|
"build-classic": "esbuild index.ts --outfile=dist/vode.js --bundle --format=iife --global-name=V",
|
|
32
32
|
"build-classic-min": "esbuild index.ts --outfile=dist/vode.min.js --bundle --format=iife --global-name=V --minify",
|
package/src/state-context.ts
CHANGED
|
@@ -1,9 +1,203 @@
|
|
|
1
1
|
import { AnimatedPatch, DeepPartial, PatchableState, RenderPatch } from "./vode.js";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* State context for type-safe access and manipulation of nested state paths
|
|
5
|
+
* while still be able to access the parent state.
|
|
6
|
+
*/
|
|
7
|
+
export interface StateContext<S extends PatchableState, SubState> extends SubStateContext<SubState> {
|
|
8
|
+
/**
|
|
9
|
+
* parent state
|
|
10
|
+
* @see PatchableState<S>
|
|
11
|
+
*/
|
|
12
|
+
get state(): S;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* State context for type-safe access and manipulation of nested sub-state values without knowledge of the parent state.
|
|
17
|
+
*/
|
|
18
|
+
export interface SubStateContext<SubState> {
|
|
19
|
+
/**
|
|
20
|
+
* Reads the current value of the substate if it exists.
|
|
21
|
+
*
|
|
22
|
+
* @returns The current value, or undefined if the path doesn't exist
|
|
23
|
+
*/
|
|
24
|
+
get(): SubState | undefined;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Updates the nested sub-state value WITHOUT triggering a render.
|
|
28
|
+
* This performs a silent mutation of the parent state object.
|
|
29
|
+
*
|
|
30
|
+
* @param {DeepPartial<SubState>} value - The new value or partial update to apply
|
|
31
|
+
*/
|
|
32
|
+
put(value: SubState | DeepPartial<SubState> | undefined | null): void;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Updates the nested sub-state value AND triggers a render.
|
|
36
|
+
* This is the recommended way to update nested state in most cases.
|
|
37
|
+
*
|
|
38
|
+
* @param value - The new value or partial update to apply
|
|
39
|
+
*/
|
|
40
|
+
patch(value: SubState | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null): void;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* create a ProxyStateContext for type-safe dynamic access to nested state
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const state = createState({
|
|
49
|
+
* user: {
|
|
50
|
+
* profile: {
|
|
51
|
+
* settings: { theme: 'dark', lang: 'en' }
|
|
52
|
+
* }
|
|
53
|
+
* });
|
|
54
|
+
* app(element, state, (s) => [DIV]);
|
|
55
|
+
*
|
|
56
|
+
* // Create a proxy context for the state
|
|
57
|
+
* const ctx = context(state).user.profile.settings;
|
|
58
|
+
*
|
|
59
|
+
* // Access nested state dynamically
|
|
60
|
+
* const settings = ctx.get(); // { theme: 'dark', lang: 'en' }
|
|
61
|
+
*
|
|
62
|
+
* // Update and trigger render
|
|
63
|
+
* ctx.patch({ theme: 'light' });
|
|
64
|
+
*
|
|
65
|
+
* // Update without render (silent mutation)
|
|
66
|
+
* ctx.put({ lang: 'de' });
|
|
67
|
+
* state.patch({}); // trigger render manually later
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @param state
|
|
71
|
+
* @returns
|
|
72
|
+
*/
|
|
73
|
+
export function context<S extends PatchableState>(state: S): ProxyStateContext<S, S> {
|
|
74
|
+
return new ProxyStateContextImpl<S, S>(state, []) as unknown as ProxyStateContext<S, S>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
class ProxyStateContextImpl<S extends PatchableState, SubState>
|
|
78
|
+
implements StateContext<S, SubState> {
|
|
79
|
+
|
|
80
|
+
constructor(
|
|
81
|
+
public readonly state: S,
|
|
82
|
+
private readonly keys: string[]
|
|
83
|
+
) {
|
|
84
|
+
function putDeep(value: SubState | DeepPartial<SubState> | undefined | null, target: S | DeepPartial<S>) {
|
|
85
|
+
if (keys.length > 1) {
|
|
86
|
+
let i = 0;
|
|
87
|
+
let raw = (<any>target)[keys[i]];
|
|
88
|
+
if (typeof raw !== "object" || raw === null) {
|
|
89
|
+
(<any>target)[keys[i]] = raw = {};
|
|
90
|
+
}
|
|
91
|
+
for (i = 1; i < keys.length - 1; i++) {
|
|
92
|
+
const p = raw;
|
|
93
|
+
raw = raw[keys[i]];
|
|
94
|
+
if (typeof raw !== "object" || raw === null) {
|
|
95
|
+
p[keys[i]] = raw = {};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
raw[keys[i]] = value;
|
|
99
|
+
} else if (keys.length === 1) {
|
|
100
|
+
if (typeof (<any>target)[keys[0]] === "object" && typeof value === "object")
|
|
101
|
+
Object.assign((<any>target)[keys[0]], value);
|
|
102
|
+
else
|
|
103
|
+
(<any>target)[keys[0]] = value;
|
|
104
|
+
} else {
|
|
105
|
+
Object.assign(target, value as DeepPartial<S>);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function createPatch(value: SubState | DeepPartial<SubState> | undefined | null): RenderPatch<S> {
|
|
110
|
+
const renderPatch: DeepPartial<S> = {};
|
|
111
|
+
putDeep(value, renderPatch);
|
|
112
|
+
return renderPatch;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function get(): SubState | undefined {
|
|
116
|
+
if (keys.length === 0)
|
|
117
|
+
return state as unknown as SubState;
|
|
118
|
+
|
|
119
|
+
let raw = state ? (<any>state)[keys[0]] : undefined;
|
|
120
|
+
for (let i = 1; i < keys.length && !!raw; i++) {
|
|
121
|
+
raw = raw[keys[i]];
|
|
122
|
+
}
|
|
123
|
+
return raw;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function put(value: SubState | DeepPartial<SubState> | undefined | null) {
|
|
127
|
+
putDeep(value, state);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function patch(value: SubState | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null) {
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
const animation: AnimatedPatch<S> = [];
|
|
133
|
+
for (const v of value) {
|
|
134
|
+
animation.push(createPatch(v));
|
|
135
|
+
}
|
|
136
|
+
state.patch(animation);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
state.patch(createPatch(value as DeepPartial<SubState>));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return new Proxy(this, {
|
|
144
|
+
get: (target, prop, receiver) => {
|
|
145
|
+
if (prop === 'state')
|
|
146
|
+
return state;
|
|
147
|
+
|
|
148
|
+
if (prop === 'get')
|
|
149
|
+
return get;
|
|
150
|
+
|
|
151
|
+
if (prop === 'put')
|
|
152
|
+
return put;
|
|
153
|
+
|
|
154
|
+
if (prop === 'patch')
|
|
155
|
+
return patch;
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
// otherwise return a new ProxyStateContext for nested access
|
|
159
|
+
const newKeys = [...target.keys, String(prop)];
|
|
160
|
+
return new ProxyStateContextImpl<S, any>(target.state, newKeys);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
get(): SubState | undefined { throw 'implemented in ctor' }
|
|
166
|
+
put(value: SubState | DeepPartial<SubState> | null | undefined): void { throw 'implemented in ctor' }
|
|
167
|
+
patch(value: SubState | DeepPartial<SubState> | DeepPartial<SubState>[] | null | undefined): void { throw 'implemented in ctor' }
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Provides type-safe access to sub-state with fetch & store delegate functions.
|
|
172
|
+
* Implementer is responsible for reading/writing the sub-state correctly.
|
|
173
|
+
*
|
|
174
|
+
* **When to use:**
|
|
175
|
+
* - State structure is dynamic or complex
|
|
176
|
+
* - You need custom logic for accessing nested state
|
|
177
|
+
* - You want to encapsulate access logic outside of parent state
|
|
178
|
+
*
|
|
179
|
+
* **When to avoid:**
|
|
180
|
+
* - Simple, static state structures
|
|
181
|
+
* - You want automatic path-based access (use KeyStateContext instead)
|
|
182
|
+
* - Learning vode for the first time (start simpler)
|
|
183
|
+
*/
|
|
184
|
+
export class DelegateStateContext<S extends PatchableState, SubState>
|
|
185
|
+
implements StateContext<S, SubState> {
|
|
186
|
+
constructor(
|
|
187
|
+
public readonly state: S,
|
|
188
|
+
|
|
189
|
+
public readonly get: () => SubState | undefined,
|
|
190
|
+
|
|
191
|
+
public readonly put: (value: SubState | DeepPartial<SubState> | undefined | null) => void,
|
|
192
|
+
|
|
193
|
+
public readonly patch: (value: SubState | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null) => void,
|
|
194
|
+
) {
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
5
198
|
|
|
6
199
|
/**
|
|
200
|
+
* @deprecated use proxy state context instead
|
|
7
201
|
* Generates dot-notation path strings for all nested properties in an object type.
|
|
8
202
|
*
|
|
9
203
|
* @example
|
|
@@ -18,6 +212,7 @@ export type KeyPath<ObjectType extends object> =
|
|
|
18
212
|
}[keyof ObjectType & (string | number)];
|
|
19
213
|
|
|
20
214
|
/**
|
|
215
|
+
* @deprecated use proxy state context instead
|
|
21
216
|
* Extracts the value type at a given dot-notation path in an object type.
|
|
22
217
|
*
|
|
23
218
|
* @example
|
|
@@ -34,6 +229,7 @@ export type PathValue<T, P extends string> =
|
|
|
34
229
|
: never;
|
|
35
230
|
|
|
36
231
|
/**
|
|
232
|
+
* @deprecated use proxy state context instead
|
|
37
233
|
* Maps valid paths in an object type to paths that resolve to a specific substate type.
|
|
38
234
|
* Used for type-safe path constraints in StateContext.
|
|
39
235
|
* Ensures exact type matching (not just compatibility).
|
|
@@ -52,48 +248,11 @@ export type KeyToSubState<S extends object, Sub, K = KeyPath<S>> =
|
|
|
52
248
|
: never
|
|
53
249
|
: never;
|
|
54
250
|
|
|
251
|
+
/** @deprecated Helper to unwrap undefined/null from optional properties */
|
|
252
|
+
type NonNullable<T> = T extends null | undefined ? never : T;
|
|
55
253
|
|
|
56
254
|
/**
|
|
57
|
-
*
|
|
58
|
-
* while still be able to access the parent state.
|
|
59
|
-
*/
|
|
60
|
-
export interface StateContext<S extends PatchableState, SubState> extends SubStateContext<SubState> {
|
|
61
|
-
/**
|
|
62
|
-
* parent state
|
|
63
|
-
* @see PatchableState<S>
|
|
64
|
-
*/
|
|
65
|
-
get state(): S;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* State context for type-safe access and manipulation of nested sub-state values without knowledge of the parent state.
|
|
70
|
-
*/
|
|
71
|
-
export interface SubStateContext<SubState> {
|
|
72
|
-
/**
|
|
73
|
-
* Reads the current value of the substate if it exists.
|
|
74
|
-
*
|
|
75
|
-
* @returns The current value, or undefined if the path doesn't exist
|
|
76
|
-
*/
|
|
77
|
-
get(): SubState | undefined;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Updates the nested sub-state value WITHOUT triggering a render.
|
|
81
|
-
* This performs a silent mutation of the parent state object.
|
|
82
|
-
*
|
|
83
|
-
* @param {DeepPartial<SubState>} value - The new value or partial update to apply
|
|
84
|
-
*/
|
|
85
|
-
put(value: SubState | DeepPartial<SubState> | undefined | null): void;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Updates the nested sub-state value AND triggers a render.
|
|
89
|
-
* This is the recommended way to update nested state in most cases.
|
|
90
|
-
*
|
|
91
|
-
* @param value - The new value or partial update to apply
|
|
92
|
-
*/
|
|
93
|
-
patch(value: SubState | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null): void;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
255
|
+
* @deprecated use {context()} instead
|
|
97
256
|
* Provides type-safe access to deeply nested state with path-based operations.
|
|
98
257
|
*
|
|
99
258
|
* **When to use:**
|
|
@@ -106,6 +265,9 @@ export interface SubStateContext<SubState> {
|
|
|
106
265
|
* - State structure changes frequently
|
|
107
266
|
* - Learning vode for the first time (start simpler)
|
|
108
267
|
*
|
|
268
|
+
* @template S - The root state type (must extend PatchableState)
|
|
269
|
+
* @template SubState - The type of the nested state being accessed
|
|
270
|
+
*
|
|
109
271
|
* @example
|
|
110
272
|
* ```typescript
|
|
111
273
|
* const state = createState({
|
|
@@ -130,9 +292,6 @@ export interface SubStateContext<SubState> {
|
|
|
130
292
|
* settingsCtx.put({ lang: 'de' });
|
|
131
293
|
* state.patch({}); // trigger render manually later
|
|
132
294
|
* ```
|
|
133
|
-
*
|
|
134
|
-
* @template S - The root state type (must extend PatchableState)
|
|
135
|
-
* @template SubState - The type of the nested state being accessed
|
|
136
295
|
*/
|
|
137
296
|
export class KeyStateContext<S extends PatchableState, SubState>
|
|
138
297
|
implements StateContext<S, SubState> {
|
|
@@ -215,30 +374,8 @@ export class KeyStateContext<S extends PatchableState, SubState>
|
|
|
215
374
|
}
|
|
216
375
|
}
|
|
217
376
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
* - State structure is dynamic or complex
|
|
224
|
-
* - You need custom logic for accessing nested state
|
|
225
|
-
* - You want to encapsulate access logic outside of parent state
|
|
226
|
-
*
|
|
227
|
-
* **When to avoid:**
|
|
228
|
-
* - Simple, static state structures
|
|
229
|
-
* - You want automatic path-based access (use KeyStateContext instead)
|
|
230
|
-
* - Learning vode for the first time (start simpler)
|
|
231
|
-
*/
|
|
232
|
-
export class DelegateStateContext<S extends PatchableState, SubState>
|
|
233
|
-
implements StateContext<S, SubState> {
|
|
234
|
-
constructor(
|
|
235
|
-
public readonly state: S,
|
|
236
|
-
|
|
237
|
-
public readonly get: () => SubState | undefined,
|
|
238
|
-
|
|
239
|
-
public readonly put: (value: SubState | DeepPartial<SubState> | undefined | null) => void,
|
|
240
|
-
|
|
241
|
-
public readonly patch: (value: SubState | DeepPartial<SubState> | Array<DeepPartial<SubState>> | undefined | null) => void,
|
|
242
|
-
) {
|
|
243
|
-
}
|
|
244
|
-
}
|
|
377
|
+
export type ProxyStateContext<S extends PatchableState, SubState> = StateContext<S, SubState> & {
|
|
378
|
+
[K in keyof SubState]-?: NonNullable<SubState[K]> extends object
|
|
379
|
+
? ProxyStateContext<S, NonNullable<SubState[K]>>
|
|
380
|
+
: StateContext<S, SubState[K]>
|
|
381
|
+
};
|