UNPKG

57.9 kBJavaScriptView Raw
1(function(e,r){if(typeof define==="function"&&define.amd){define([],r)}else{e._hyperscript=r()}})(typeof self!=="undefined"?self:this,function(){return function(){"use strict";function c(e,r){for(var t in r){if(r.hasOwnProperty(t)){e[t]=r[t]}}return e}function r(e){try{return JSON.parse(e)}catch(e){t(e);return null}}function t(e){if(console.error){console.error(e)}else if(console.log){console.log("ERROR: ",e)}}function u(e,r){return new(e.bind.apply(e,[e].concat(r)))}var P=typeof self!=="undefined"?self:typeof global!=="undefined"?global:this;var M=function(){var g={"+":"PLUS","-":"MINUS","*":"MULTIPLY","/":"DIVIDE",".":"PERIOD","\\":"BACKSLASH",":":"COLON","%":"PERCENT","|":"PIPE","!":"EXCLAMATION","?":"QUESTION","#":"POUND","&":"AMPERSAND",$:"DOLLAR",";":"SEMI",",":"COMMA","(":"L_PAREN",")":"R_PAREN","<":"L_ANG",">":"R_ANG","<=":"LTE_ANG",">=":"GTE_ANG","==":"EQ","===":"EQQ","!=":"NEQ","!==":"NEQQ","{":"L_BRACE","}":"R_BRACE","[":"L_BRACKET","]":"R_BRACKET","=":"EQUALS"};function q(e){return C(e)||I(e)||e==="-"||e==="_"||e===":"}function w(e){return C(e)||I(e)||e==="-"||e==="_"||e===":"}function N(e){return e===" "||e==="\t"||b(e)}function O(e){return"[Line: "+e.line+", Column: "+e.col+"]"}function b(e){return e==="\r"||e==="\n"}function I(e){return e>="0"&&e<="9"}function C(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function A(e,r){return e==="_"||!r&&e==="$"}function R(e){return e==="`"||e==="^"}function S(i,o,e){u();var r=null;function u(){while(y(0,true).type==="WHITESPACE"){o.push(i.shift())}}function s(e,r){F.raiseParseError(e,r)}function t(e){var r=l(e);if(r){return r}else{s(this,"Expected '"+e+"' but found '"+k().value+"'")}}function n(e,r,t){for(var n=0;n<arguments.length;n++){var a=arguments[n];var i=l(a);if(i){return i}}}function a(e,r,t){for(var n=0;n<arguments.length;n++){var a=arguments[n];var i=p(a);if(i){return i}}}function l(e){if(k()&&k().op&&k().value===e){return v()}}function c(e,r,t,n){var a=f(e,r,t,n);if(a){return a}else{s(this,"Expected one of "+JSON.stringify([e,r,t]))}}function f(e,r,t,n){if(k()&&k().type&&[e,r,t,n].indexOf(k().type)>=0){return v()}}function m(e,r){var t=p(e,r);if(t){return t}else{s(this,"Expected '"+e+"' but found '"+k().value+"'")}}function p(e,r){var r=r||"IDENTIFIER";if(k()&&k().value===e&&k().type===r){return v()}}function v(){var e=i.shift();o.push(e);r=e;u();return e}function h(e,r){var t=[];var n=y(0,true);while((r==null||n.type!==r)&&(e==null||n.value!==e)&&n.type!=="EOF"){var a=i.shift();o.push(a);t.push(n);n=y(0,true)}u();return t}function d(){if(o[o.length-1]&&o[o.length-1].type==="WHITESPACE"){return o[o.length-1].value}else{return""}}function E(){return h(null,"WHITESPACE")}function T(){return i.length>0}function y(e,r){var t;var n=0;do{if(!r){while(i[n]&&i[n].type==="WHITESPACE"){n++}}t=i[n];e--;n++}while(e>-1);if(t){return t}else{return{type:"EOF",value:"<<<EOF>>>"}}}function k(){return y(0)}function x(){return r}function g(){return e.substring(this.startToken.start,this.endToken.end)}function q(){return e.split("\n")[this.startToken.line-1]}return{matchAnyToken:a,matchAnyOpToken:n,matchOpToken:l,requireOpToken:t,matchTokenType:f,requireTokenType:c,consumeToken:v,matchToken:p,requireToken:m,list:i,consumed:o,source:e,hasMore:T,currentToken:k,lastMatch:x,token:y,consumeUntil:h,consumeUntilWhitespace:E,lastWhitespace:d,sourceFor:g,lineFor:q}}function e(e,r){var t=[];var n=e;var a=0;var i=0;var o=1;var u="<START>";while(a<n.length){if(E()==="-"&&T()==="-"){c()}else{if(N(E())){t.push(x())}else if(!k()&&E()==="."&&C(T())){t.push(f())}else if(!k()&&E()==="#"&&C(T())){t.push(m())}else if(C(E())||A(E(),r)){t.push(p())}else if(I(E())){t.push(v())}else if(E()==='"'||E()==="'"||E()==="`"){t.push(d())}else if(g[E()]){t.push(h())}else if(R(E())){t.push(l("RESERVED",E()))}else{if(a<n.length){throw Error("Unknown token: "+E()+" ")}}}}return S(t,[],n);function s(e,r){var t=l(e,r);t.op=true;return t}function l(e,r){return{type:e,value:r,start:a,end:a+1,column:i,line:o}}function c(){while(E()&&!b(E())){y()}y()}function f(){var e=l("CLASS_REF");var r=y();while(q(E())){r+=y()}e.value=r;e.end=a;return e}function m(){var e=l("ID_REF");var r=y();while(w(E())){r+=y()}e.value=r;e.end=a;return e}function p(){var e=l("IDENTIFIER");var r=y();while(C(E())||A(E())){r+=y()}e.value=r;e.end=a;return e}function v(){var e=l("NUMBER");var r=y();while(I(E())){r+=y()}if(E()==="."){r+=y()}while(I(E())){r+=y()}e.value=r;e.end=a;return e}function h(){var e=s();var r=y();while(E()&&g[r+E()]){r+=y()}e.type=g[r];e.value=r;e.end=a;return e}function d(){var e=l("STRING");var r=y();var t="";while(E()&&E()!==r){if(E()==="\\"){y()}t+=y()}if(E()!==r){throw Error("Unterminated string at "+O(e))}else{y()}e.value=t;e.end=a;e.template=r==="`";return e}function E(){return n.charAt(a)}function T(){return n.charAt(a+1)}function y(){u=E();a++;i++;return u}function k(){return C(u)||I(u)||u===")"||u==="}"||u==="]"}function x(){var e=l("WHITESPACE");var r="";while(E()&&N(E())){if(b(E())){i=0;o++}r+=y()}e.value=r;e.end=a;return e}}return{tokenize:e,makeTokensObject:S}}();var F=function(){var u={};var o={};var s={};var a=[];var l=[];function c(e,r,t){e.startToken=r;e.sourceFor=t.sourceFor;e.lineFor=t.lineFor;e.programSource=t.source}function i(e,r,t){var n=u[e];if(n){var a=r.currentToken();var i=n(F,_,r,t);if(i){c(i,a,r);i.endToken=i.endToken||r.lastMatch();var t=i.root;while(t!=null){c(t,a,r);t=t.root}}return i}}function f(e,r,t,n){var a=i(e,r,n);return a||h(r,t||"Expected "+e)}function m(e,r){for(var t=0;t<e.length;t++){var n=e[t];var a=i(n,r);if(a){return a}}}function t(e,r){u[e]=r}function e(e,a){var i=e+"Command";var r=function(e,r,t){var n=a(e,r,t);if(n){n.type=i;n.execute=function(e){e.meta.command=n;return r.unifiedExec(this,e)};return n}};u[i]=r;o[e]=r}function r(a,i){var o=a+"Feature";var e=function(e,r,t){var n=i(e,r,t);if(n){n.keyword=a;n.type=o;return n}};u[o]=e;s[a]=e}function n(e,r){a.push(e);t(e,r)}function p(e,r){l.push(e);t(e,r)}t("feature",function(e,r,t){if(t.matchOpToken("(")){var n=e.requireElement("feature",t);t.requireOpToken(")");return n}else{var n=s[t.currentToken().value];if(n){return n(e,r,t)}}});t("command",function(e,r,t){if(t.matchOpToken("(")){var n=e.requireElement("command",t);t.requireOpToken(")");return n}else{var n=o[t.currentToken().value];if(n){return n(e,r,t)}else if(t.currentToken().type==="IDENTIFIER"&&t.token(1).value==="("){return e.requireElement("pseudoCommand",t)}}});t("commandList",function(e,r,t){var n=e.parseElement("command",t);if(n){t.matchToken("then");n.next=e.parseElement("commandList",t);return n}});t("leaf",function(e,r,t){var n=m(a,t);if(n==null){return i("symbol",t)}else{return n}});t("indirectExpression",function(e,r,t,n){for(var a=0;a<l.length;a++){var i=l[a];n.endToken=t.lastMatch();var o=e.parseElement(i,t,n);if(o){return o}}return n});t("primaryExpression",function(e,r,t){var n=e.parseElement("leaf",t);if(n){return e.parseElement("indirectExpression",t,n)}e.raiseParseError(t,"Unexpected value: "+t.currentToken().value)});function v(e){var r=e.currentToken();var t=e.source;var n=t.split("\n");var a=r?r.line-1:n.length-1;var i=n[a];var o=r?r.column:i.length-1;return i+"\n"+" ".repeat(o)+"^^\n\n"}function h(e,r){r=(r||"Unexpected Token : "+e.currentToken().value)+"\n\n"+v(e);var t=new Error(r);t["tokens"]=e;throw t}function d(e){return i("hyperscript",e)}function E(e,r){if(e){e.parent=r;E(e.next,r)}}function T(e){return o[e.value]}function y(e){return s[e.value]}function k(e){if(e.value=="end"||e.value=="then"||e.value=="else"||e.value==")"||T(e)||y(e)||e.type=="EOF"){return true}}function x(e){var r=[""];do{r.push(e.lastWhitespace());if(e.currentToken().value==="$"){e.consumeToken();var t=e.matchOpToken("{");r.push(f("expression",e));if(t){e.requireOpToken("}")}r.push("")}else if(e.currentToken().value==="\\"){e.consumeToken();e.consumeToken()}else{var n=e.consumeToken();r[r.length-1]+=n.value}}while(e.hasMore());r.push(e.lastWhitespace());return r}return{setParent:E,requireElement:f,parseElement:i,featureStart:y,commandStart:T,commandBoundary:k,parseAnyOf:m,parseHyperScript:d,raiseParseError:h,addGrammarElement:t,addCommand:e,addFeature:r,addLeafExpression:n,addIndirectExpression:p,parseStringTemplate:x}}();var j={dynamicResolvers:[],String:function(e){if(e.toString){return e.toString()}else{return""+e}},Int:function(e){return parseInt(e)},Float:function(e){return parseFloat(e)},Number:function(e){return Number(e)},Date:function(e){return Date(e)},Array:function(e){return Array.from(e)},JSON:function(e){return JSON.stringify(e)},Object:function(e){if(e instanceof String){e=e.toString()}if(typeof e==="string"){return JSON.parse(e)}else{return c({},e)}}};var _=function(){function t(e,r){var t=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return t&&t.call(e,r)}function i(e,r){var t;if(window.CustomEvent&&typeof window.CustomEvent==="function"){t=new CustomEvent(e,{bubbles:true,cancelable:true,detail:r})}else{t=document.createEvent("CustomEvent");t.initCustomEvent(e,true,true,r)}return t}function o(e,r,t){var t=t||{};t["sentBy"]=e;var n=i(r,t);var a=e.dispatchEvent(n);return a}function u(e){return Array.isArray(e)||e instanceof NodeList}function n(e,r){if(e==null){}else if(u(e)){for(var t=0;t<e.length;t++){r(e[t])}}else{r(e)}}var s={array_sentinel:true};function f(e){var r=[];for(var t=0;t<e.length;t++){var n=e[t];if(Array.isArray(n)){r.push(s);for(var a=0;a<n.length;a++){r.push(n[a])}r.push(s)}else{r.push(n)}}return r}function m(e){var r=[];for(var t=0;t<e.length;t++){var n=e[t];if(n===s){n=e[++t];var a=[];r.push(a);while(n!==s){a.push(n);n=e[++t]}}else{r.push(n)}}return r}function p(e){for(var r=0;r<e.length;r++){var t=e[r];if(t.asyncWrapper){e[r]=t.value}if(Array.isArray(t)){for(var n=0;n<t.length;n++){var a=t[n];if(a.asyncWrapper){t[n]=a.value}}}}}var l={halt_flag:true};function v(r,t){while(true){try{var n=e(r,t)}catch(e){_.registerHyperTrace(t,e);if(t.meta.errorHandler&&!t.meta.handlingError){t.meta.handlingError=true;t[t.meta.errorSymmbol]=e;r=t.meta.errorHandler;continue}else if(t.meta.reject){t.meta.reject(e);n=l}else{throw e}}if(n==null){console.error(r," did not return a next element to execute! context: ",t);return}else if(n.then){n.then(function(e){v(e,t)}).catch(function(e){_.registerHyperTrace(t,e);if(t.meta.errorHandler&&!t.meta.handlingError){t.meta.handlingError=true;t[t.meta.errorSymmbol]=e;v(t.meta.errorHandler,t)}else if(t.meta.reject){t.meta.reject(e)}else{throw e}});return}else if(n===l){return}else{r=n}}}function e(a,r){var e=false;var i=false;var o=[r];if(a.args){for(var t=0;t<a.args.length;t++){var n=a.args[t];if(n==null){o.push(null)}else if(Array.isArray(n)){var u=[];for(var s=0;s<n.length;s++){var l=n[s];var c=l?l.evaluate(r):null;if(c){if(c.then){e=true}else if(c.asyncWrapper){i=true}}u.push(c)}o.push(u)}else if(n.evaluate){var c=n.evaluate(r);if(c){if(c.then){e=true}else if(c.asyncWrapper){i=true}}o.push(c)}else{o.push(n)}}}if(e){return new Promise(function(t,n){var e=f(o);Promise.all(e).then(function(e){e=m(e);if(i){p(e)}try{var r=a.op.apply(a,e);t(r)}catch(e){n(e)}}).catch(function(e){if(r.meta.errorHandler&&!r.meta.handlingError){r.meta.handlingError=true;r[r.meta.errorSymmbol]=e;v(r.meta.errorHandler,r)}else if(r.meta.reject){r.meta.reject(e)}else{}})})}else{if(i){p(o)}return a.op.apply(a,o)}}var r=null;function a(){if(r==null){r=_hyperscript.config.attributes.replace(/ /g,"").split(",")}return r}function c(e){for(var r=0;r<a().length;r++){var t=a()[r];if(e.hasAttribute&&e.hasAttribute(t)){return e.getAttribute(t)}}if(e.type==="text/hyperscript"){return e.innerText}return null}function h(e,r,t,n){var a={meta:{parser:F,lexer:M,runtime:_,owner:e,feature:r,iterators:{}},me:t,event:n,target:n?n.target:null,detail:n?n.detail:null,body:"document"in P?document.body:null};a.meta.ctx=a;return a}function d(){return a().map(function(e){return"["+e+"]"}).join(", ")}function E(e,r){var t=j.dynamicResolvers;for(var n=0;n<t.length;n++){var a=t[n];var i=a(r,e);if(i!==undefined){return i}}if(e==null){return null}var o=j[r];if(o){return o(e)}throw"Unknown conversion : "+r}function T(e,r){return Object.prototype.toString.call(e)==="[object "+r+"]"}function y(e){var r=M.tokenize(e);if(F.commandStart(r.currentToken())){var t=F.parseElement("commandList",r);var n=t;while(n.next){n=n.next}n.next={op:function(){return l}};return t}else if(F.featureStart(r.currentToken())){var a=F.parseElement("hyperscript",r);return a}else{var i=F.parseElement("expression",r);return i}}function k(e,r){r=r||{};var t=y(e);if(t.execute){t.execute(r)}else if(t.apply){t.apply(document.body,null)}else{return t.evaluate(r)}}function x(e){var r=_.getScriptSelector();if(t(e,r)){g(e)}if(e.querySelectorAll){n(e.querySelectorAll(r),function(e){g(e)})}if(e.type==="text/hyperscript"){g(e,document.body)}if(e.querySelectorAll){n(e.querySelectorAll("[type='text/hyperscript']"),function(e){g(e,document.body)})}}function g(r,e){var t=q(r);if(!t.initialized){var n=c(r);if(n){try{t.initialized=true;t.script=n;var a=M.tokenize(n);var i=F.parseHyperScript(a);i.apply(e||r,r);setTimeout(function(){o(e||r,"load",{hyperscript:true})},1)}catch(e){console.error("hyperscript errors were found on the following element:",r,"\n\n",e.message,e.stack)}}}}function q(e){var r="hyperscript-internal-data";var t=e[r];if(!t){t=e[r]={}}return t}function w(e,r,t){if(e==null&&t){return e}var n=Object.prototype.toString.call(e).slice(8,-1);var a=e&&n===r;if(a){return e}else{throw new Error("Typecheck failed! Expected: "+r+", Found: "+n)}}function N(e,r){if(e==="me"||e==="my"||e==="I"){return r["me"]}if(e==="it"||e==="its"){return r["result"]}else{if(r.meta&&r.meta.context){var t=r.meta.context[e];if(typeof t!=="undefined"){return t}}var n=r[e];if(typeof n!=="undefined"){return n}else{return P[e]}}}function O(e,r){if(e){if(e.resolveNext){return e.resolveNext(r)}else if(e.next){return e.next}else{return O(e.parent,r)}}}function b(e,r){if(e!=null){var t=e[r];if(typeof t!=="undefined"){return t}else{if(u(e)){if(r==="first"){return e[0]}else if(r==="last"){return e[e.length-1]}else if(r==="random"){return e[Math.floor(e.length*Math.random())]}else{var n=[];for(var a=0;a<e.length;a++){var i=e[a];var o=i[r];if(o){n.push(o)}}return n}}}}}function I(e,r,t){var n=P;while(e.length>0){var a=e.shift();var i=n[a];if(i==null){i={};n[a]=i}n=i}n[r]=t}function C(e,r){var t=[];var n=e;while(n.meta.caller){n=n.meta.caller}if(n.meta.traceMap){return n.meta.traceMap.get(r,t)}}function A(e,r){var a=[];var t=null;while(e!=null){a.push(e);t=e;e=e.meta.caller}if(t.meta.traceMap==null){t.meta.traceMap=new Map}if(!t.meta.traceMap.get(r)){var n={trace:a,print:function(e){e=e||console.error;e("hypertrace /// ");var r=0;for(var t=0;t<a.length;t++){r=Math.max(r,a[t].meta.feature.displayName.length)}for(var t=0;t<a.length;t++){var n=a[t];e(" ->",n.meta.feature.displayName.padEnd(r+2),"-",n.meta.owner)}}};t.meta.traceMap.set(r,n)}}function R(e){return e.replace(/:/g,function(e){return"\\"+e})}function S(e,r){if(e==null){throw new Error(r.sourceFor()+" is null")}}var L="document"in P?document.currentScript.src:null;return{typeCheck:w,forEach:n,triggerEvent:o,matchesSelector:t,getScript:c,processNode:x,evaluate:k,parse:y,getScriptSelector:d,resolveSymbol:N,makeContext:h,findNext:O,unifiedEval:e,convertValue:E,unifiedExec:v,resolveProperty:b,assignToNamespace:I,registerHyperTrace:A,getHyperTrace:C,getInternalData:q,escapeSelector:R,nullCheck:S,hyperscriptUrl:L,HALT:l}}();{F.addLeafExpression("parenthesized",function(e,r,t){if(t.matchOpToken("(")){var n=e.requireElement("expression",t);t.requireOpToken(")");return{type:"parenthesized",expr:n,evaluate:function(e){return n.evaluate(e)}}}});F.addLeafExpression("string",function(e,r,t){var n=t.matchTokenType("STRING");if(n){var a=n.value;if(n.template){var i=M.tokenize(a,true);var o=e.parseStringTemplate(i)}else{var o=[]}return{type:"string",token:n,args:o,op:function(e){var r="";for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n){r+=n}}return r},evaluate:function(e){if(o.length===0){return a}else{return r.unifiedEval(this,e)}}}}});F.addGrammarElement("nakedString",function(e,r,t){if(t.hasMore()){var n=t.consumeUntilWhitespace();t.matchTokenType("WHITESPACE");return{type:"nakedString",tokens:n,evaluate:function(e){return n.map(function(e){return e.value}).join("")}}}});F.addLeafExpression("number",function(e,r,t){var n=t.matchTokenType("NUMBER");if(n){var a=n;var i=parseFloat(n.value);return{type:"number",value:i,numberToken:a,evaluate:function(){return i}}}});F.addLeafExpression("idRef",function(e,r,t){var n=t.matchTokenType("ID_REF");if(n){return{type:"idRef",css:n.value,value:n.value.substr(1),evaluate:function(e){return document.getElementById(this.value)}}}});F.addLeafExpression("classRef",function(e,r,t){var n=t.matchTokenType("CLASS_REF");if(n){return{type:"classRef",css:n.value,className:function(){return this.css.substr(1)},evaluate:function(){return document.querySelectorAll(r.escapeSelector(this.css))}}}});F.addLeafExpression("queryRef",function(e,r,t){var n=t.matchOpToken("<");if(n){var a=t.consumeUntil("/");t.requireOpToken("/");t.requireOpToken(">");var i=a.map(function(e){if(e.type==="STRING"){return'"'+e.value+'"'}else{return e.value}}).join("");return{type:"queryRef",css:i,evaluate:function(){return document.querySelectorAll(this.css)}}}});F.addGrammarElement("attributeRef",function(e,r,t){if(t.matchOpToken("[")){var n=t.consumeUntil("]");var a=n.map(function(e){return e.value}).join("");var i=a.split("=");var o=i[0];var u=i[1];t.requireOpToken("]");return{type:"attribute_expression",name:o,value:u,args:[u],op:function(e,r){if(this.value){return{name:this.name,value:r}}else{return{name:this.name}}},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("objectKey",function(e,r,t){var n;if(n=t.matchTokenType("STRING")){return{type:"objectKey",key:n.value,evaluate:function(){return this.key}}}else if(t.matchOpToken("[")){var a=e.parseElement("expression",t);t.requireOpToken("]");return{type:"objectKey",expr:a,args:[a],op:function(e,r){return r},evaluate:function(e){return r.unifiedEval(this,e)}}}else{var i="";do{n=t.matchTokenType("IDENTIFIER")||t.matchOpToken("-");if(n)i+=n.value}while(n);return{type:"objectKey",key:i,evaluate:function(){return this.key}}}});F.addLeafExpression("objectLiteral",function(e,r,t){if(t.matchOpToken("{")){var n=[];var a=[];if(!t.matchOpToken("}")){do{var i=e.requireElement("objectKey",t);t.requireOpToken(":");var o=e.requireElement("expression",t);a.push(o);n.push(i)}while(t.matchOpToken(","));t.requireOpToken("}")}return{type:"objectLiteral",args:[n,a],op:function(e,r,t){var n={};for(var a=0;a<r.length;a++){n[r[a]]=t[a]}return n},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("namedArgumentList",function(e,r,t){if(t.matchOpToken("(")){var i=[];var n=[];if(!t.matchOpToken(")")){do{var a=t.requireTokenType("IDENTIFIER");t.requireOpToken(":");var o=e.requireElement("expression",t);n.push(o);i.push({name:a,value:o})}while(t.matchOpToken(","));t.requireOpToken(")")}return{type:"namedArgumentList",fields:i,args:[n],op:function(e,r){var t={_namedArgList_:true};for(var n=0;n<r.length;n++){var a=i[n];t[a.name.value]=r[n]}return t},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("symbol",function(e,r,t){var n=t.matchTokenType("IDENTIFIER");if(n){return{type:"symbol",token:n,name:n.value,evaluate:function(e){return r.resolveSymbol(n.value,e)}}}});F.addGrammarElement("implicitMeTarget",function(e,r,t){return{type:"implicitMeTarget",evaluate:function(e){return e.me}}});F.addLeafExpression("boolean",function(e,r,t){var n=t.matchToken("true")||t.matchToken("false");if(n){return{type:"boolean",evaluate:function(e){return n.value==="true"}}}});F.addLeafExpression("null",function(e,r,t){if(t.matchToken("null")){return{type:"null",evaluate:function(e){return null}}}});F.addLeafExpression("arrayLiteral",function(e,r,t){if(t.matchOpToken("[")){var n=[];if(!t.matchOpToken("]")){do{var a=e.requireElement("expression",t);n.push(a)}while(t.matchOpToken(","));t.requireOpToken("]")}return{type:"arrayLiteral",values:n,args:[n],op:function(e,r){return r},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addLeafExpression("blockLiteral",function(e,r,t){if(t.matchOpToken("\\")){var n=[];var a=t.matchTokenType("IDENTIFIER");if(a){n.push(a);while(t.matchOpToken(",")){n.push(t.requireTokenType("IDENTIFIER"))}}t.requireOpToken("-");t.requireOpToken(">");var i=e.requireElement("expression",t);return{type:"blockLiteral",args:n,expr:i,evaluate:function(r){var e=function(){for(var e=0;e<n.length;e++){r[n[e].value]=arguments[e]}return i.evaluate(r)};return e}}}});F.addGrammarElement("timeExpression",function(e,r,t){var n=e.requireElement("expression",t);var a=1;if(t.matchToken("s")||t.matchToken("seconds")){a=1e3}else if(t.matchToken("ms")||t.matchToken("milliseconds")){}return{type:"timeExpression",time:n,factor:a,args:[n],op:function(e,r){return r*this.factor},evaluate:function(e){return r.unifiedEval(this,e)}}});F.addIndirectExpression("propertyAccess",function(e,n,r,t){if(r.matchOpToken(".")){var a=r.requireTokenType("IDENTIFIER");var i={type:"propertyAccess",root:t,prop:a,args:[t],op:function(e,r){var t=n.resolveProperty(r,a.value);return t},evaluate:function(e){return n.unifiedEval(this,e)}};return e.parseElement("indirectExpression",r,i)}});F.addIndirectExpression("of",function(e,t,r,n){if(r.matchToken("of")){var a=e.requireElement("expression",r);var i=null;var o=n;while(o.root){i=o;o=o.root}if(o.type!=="symbol"){e.raiseParseError(r,"Cannot take a property of a non-symbol")}var u=o.name;var s={type:"ofExpression",prop:o.token,root:a,expression:n,args:[a],op:function(e,r){return t.resolveProperty(r,u)},evaluate:function(e){return t.unifiedEval(this,e)}};if(i){i.root=s;i.args=[s]}else{n=s}return e.parseElement("indirectExpression",r,n)}});F.addIndirectExpression("inExpression",function(e,a,r,i){if(r.matchToken("in")){if(i.type!=="idRef"&&i.type==="queryRef"||i.type==="classRef"){var o=true}var t=e.requireElement("expression",r);var n={type:"inExpression",root:i,args:[o?null:i,t],op:function(e,r,t){var n=[];if(o){a.forEach(t,function(e){var r=e.querySelectorAll(i.css);for(var t=0;t<r.length;t++){n.push(r[t])}})}else{a.forEach(r,function(r){a.forEach(t,function(e){if(r===e){n.push(r)}})})}if(n.length>0){return n}else{return null}},evaluate:function(e){return a.unifiedEval(this,e)}};return e.parseElement("indirectExpression",r,n)}});F.addIndirectExpression("asExpression",function(e,t,r,n){if(r.matchToken("as")){var a=e.requireElement("dotOrColonPath",r).evaluate();var i={type:"asExpression",root:n,args:[n],op:function(e,r){return t.convertValue(r,a)},evaluate:function(e){return t.unifiedEval(this,e)}};return e.parseElement("indirectExpression",r,i)}});F.addIndirectExpression("functionCall",function(e,a,r,i){if(r.matchOpToken("(")){var t=[];if(!r.matchOpToken(")")){do{t.push(e.requireElement("expression",r))}while(r.matchOpToken(","));r.requireOpToken(")")}if(i.root){var n={type:"functionCall",root:i,argExressions:t,args:[i.root,t],op:function(e,r,t){a.nullCheck(r,i.root);var n=r[i.prop.value];a.nullCheck(n,i);if(n.hyperfunc){t.push(e)}return n.apply(r,t)},evaluate:function(e){return a.unifiedEval(this,e)}}}else{var n={type:"functionCall",root:i,argExressions:t,args:[i,t],op:function(e,r,t){a.nullCheck(r,i);if(r.hyperfunc){t.push(e)}var n=r.apply(null,t);return n},evaluate:function(e){return a.unifiedEval(this,e)}}}return e.parseElement("indirectExpression",r,n)}});F.addIndirectExpression("arrayIndex",function(e,r,t,n){if(t.matchOpToken("[")){var a=e.requireElement("expression",t);t.requireOpToken("]");var i={type:"arrayIndex",root:n,index:a,args:[n,a],op:function(e,r,t){return r[t]},evaluate:function(e){return _.unifiedEval(this,e)}};return F.parseElement("indirectExpression",t,i)}});F.addGrammarElement("postfixExpression",function(e,t,r){var n=e.parseElement("primaryExpression",r);if(r.matchOpToken(":")){var a=r.requireTokenType("IDENTIFIER");var i=!r.matchOpToken("!");return{type:"typeCheck",typeName:a,root:n,nullOk:i,args:[n],op:function(e,r){return t.typeCheck(r,this.typeName.value,this.nullOk)},evaluate:function(e){return t.unifiedEval(this,e)}}}else{return n}});F.addGrammarElement("logicalNot",function(e,r,t){if(t.matchToken("not")){var n=e.requireElement("unaryExpression",t);return{type:"logicalNot",root:n,args:[n],op:function(e,r){return!r},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("noExpression",function(e,r,t){if(t.matchToken("no")){var n=e.requireElement("unaryExpression",t);return{type:"noExpression",root:n,args:[n],op:function(e,r){return r==null||r.length===0},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("negativeNumber",function(e,r,t){if(t.matchOpToken("-")){var n=e.requireElement("unaryExpression",t);return{type:"negativeNumber",root:n,args:[n],op:function(e,r){return-1*r},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("unaryExpression",function(e,r,t){return e.parseAnyOf(["logicalNot","positionalExpression","noExpression","negativeNumber","postfixExpression"],t)});F.addGrammarElement("positionalExpression",function(e,r,t){var n=t.matchAnyToken("first","last","random");if(n){t.matchAnyToken("in","from","of");var a=e.requireElement("unaryExpression",t);return{type:"positionalExpression",rhs:a,operator:n.value,args:[a],op:function(e,r){if(!Array.isArray(r)){if(r.children){r=r.children}else{r=Array.from(r)}}if(this.operator==="first"){return r[0]}else if(this.operator==="last"){return r[r.length-1]}else if(this.operator==="random"){return r[Math.floor(Math.random()*r.length)]}},evaluate:function(e){return r.unifiedEval(this,e)}}}});F.addGrammarElement("mathOperator",function(e,r,t){var n=e.parseElement("unaryExpression",t);var a,i=null;a=t.matchAnyOpToken("+","-","*","/","%");while(a){i=i||a;var o=a.value;if(i.value!==o){e.raiseParseError(t,"You must parenthesize math operations with different operators")}var u=e.parseElement("unaryExpression",t);n={type:"mathOperator",lhs:n,rhs:u,operator:o,args:[n,u],op:function(e,r,t){if(this.operator==="+"){return r+t}else if(this.operator==="-"){return r-t}else if(this.operator==="*"){return r*t}else if(this.operator==="/"){return r/t}else if(this.operator==="%"){return r%t}},evaluate:function(e){return r.unifiedEval(this,e)}};a=t.matchAnyOpToken("+","-","*","/","%")}return n});F.addGrammarElement("mathExpression",function(e,r,t){return e.parseAnyOf(["mathOperator","unaryExpression"],t)});F.addGrammarElement("comparisonOperator",function(e,r,t){var n=e.parseElement("mathExpression",t);var a=t.matchAnyOpToken("<",">","<=",">=","==","===","!=","!==");var i=a?a.value:null;if(i==null){if(t.matchToken("is")||t.matchToken("am")){if(t.matchToken("not")){if(t.matchToken("in")){i="not in"}else{i="!="}}else{if(t.matchToken("in")){i="in"}else{i="=="}}}else if(t.matchToken("matches")||t.matchToken("match")){i="match"}else if(t.matchToken("contains")||t.matchToken("contain")){i="contain"}else if(t.matchToken("do")||t.matchToken("does")){t.requireToken("not");if(t.matchToken("matches")||t.matchToken("match")){i="not match"}else if(t.matchToken("contains")||t.matchToken("contain")){i="not contain"}else{e.raiseParseError(t,"Expected matches or contains")}}}if(i){var o=e.requireElement("mathExpression",t);if(i==="match"||i==="not match"){o=o.css?o.css:o}n={type:"comparisonOperator",operator:i,lhs:n,rhs:o,args:[n,o],op:function(e,r,t){if(this.operator==="=="){return r==t}else if(this.operator==="!="){return r!=t}if(this.operator==="in"){return t!=null&&Array.from(t).indexOf(r)>=0}if(this.operator==="not in"){return t==null||Array.from(t).indexOf(r)<0}if(this.operator==="match"){return r!=null&&r.matches(t)}if(this.operator==="not match"){return r==null||!r.matches(t)}if(this.operator==="contain"){return r!=null&&r.contains(t)}if(this.operator==="not contain"){return r==null||!r.contains(t)}if(this.operator==="==="){return r===t}else if(this.operator==="!=="){return r!==t}else if(this.operator==="<"){return r<t}else if(this.operator===">"){return r>t}else if(this.operator==="<="){return r<=t}else if(this.operator===">="){return r>=t}},evaluate:function(e){return r.unifiedEval(this,e)}}}return n});F.addGrammarElement("comparisonExpression",function(e,r,t){return e.parseAnyOf(["comparisonOperator","mathExpression"],t)});F.addGrammarElement("logicalOperator",function(e,r,t){var n=e.parseElement("comparisonExpression",t);var a,i=null;a=t.matchToken("and")||t.matchToken("or");while(a){i=i||a;if(i.value!==a.value){e.raiseParseError(t,"You must parenthesize logical operations with different operators")}var o=e.requireElement("comparisonExpression",t);n={type:"logicalOperator",operator:a.value,lhs:n,rhs:o,args:[n,o],op:function(e,r,t){if(this.operator==="and"){return r&&t}else{return r||t}},evaluate:function(e){return r.unifiedEval(this,e)}};a=t.matchToken("and")||t.matchToken("or")}return n});F.addGrammarElement("logicalExpression",function(e,r,t){return e.parseAnyOf(["logicalOperator","mathExpression"],t)});F.addGrammarElement("asyncExpression",function(e,r,t){if(t.matchToken("async")){var n=e.requireElement("logicalExpression",t);var a={type:"asyncExpression",value:n,evaluate:function(e){return{asyncWrapper:true,value:this.value.evaluate(e)}}};return a}else{return e.parseElement("logicalExpression",t)}});F.addGrammarElement("expression",function(e,r,t){t.matchToken("the");return e.parseElement("asyncExpression",t)});F.addGrammarElement("targetExpression",function(e,r,t){t.matchToken("the");var n=e.parseElement("primaryExpression",t);if(n.type==="symbol"||n.type==="idRef"||n.type==="inExpression"||n.type==="queryRef"||n.type==="classRef"||n.type==="ofExpression"||n.type==="propertyAccess"){return n}else{F.raiseParseError(t,"A target expression must be writable")}return n});F.addGrammarElement("hyperscript",function(e,r,t){var n=[];if(t.hasMore()){do{var a=e.requireElement("feature",t);n.push(a);t.matchToken("end")}while(e.featureStart(t.currentToken())||t.currentToken().value==="(");if(t.hasMore()){e.raiseParseError(t)}}return{type:"hyperscript",features:n,apply:function(r,t){_.forEach(n,function(e){e.install(r,t)})}}});F.addFeature("on",function(e,u,r){if(r.matchToken("on")){var t=false;if(r.matchToken("every")){t=true}var n=[];var a=null;do{var i=e.requireElement("dotOrColonPath",r,"Expected event name");var o=i.evaluate();if(a){a=a+" or "+o}else{a="on "+o}var s=[];if(r.token(0).value==="("&&(r.token(1).value===")"||r.token(2).value===","||r.token(2).value===")")){r.matchOpToken("(");do{s.push(r.requireTokenType("IDENTIFIER"))}while(r.matchOpToken(","));r.requireOpToken(")")}var l=null;if(r.matchOpToken("[")){l=e.requireElement("expression",r);r.requireOpToken("]")}if(r.currentToken().type==="NUMBER"){var c=r.consumeToken();var f=parseInt(c.value);if(r.matchToken("to")){var m=r.consumeToken();var p=parseInt(m.value)}else if(r.matchToken("and")){var v=true;r.requireToken("on")}}var h=null;var d=false;if(r.matchToken("from")){if(r.matchToken("elsewhere")){d=true}else{h=e.parseElement("targetExpression",r);if(!h){e.raiseParseError('Expected either target value or "elsewhere".',r)}}}if(h===null&&d===false&&r.matchToken("elsewhere")){d=true}if(r.matchToken("in")){var E=e.parseAnyOf(["idRef","queryRef","classRef"],r)}if(r.matchToken("debounced")){r.requireToken("at");var T=e.requireElement("timeExpression",r);var y=T.evaluate({})}else if(r.matchToken("throttled")){r.requireToken("at");var T=e.requireElement("timeExpression",r);var k=T.evaluate({})}n.push({execCount:0,every:t,on:o,args:s,filter:l,from:h,inExpr:E,elsewhere:d,startCount:f,endCount:p,unbounded:v,debounceTime:y,throttleTime:k})}while(r.matchToken("or"));var x=[];var g=true;if(!t){if(r.matchToken("queue")){if(r.matchToken("all")){var q=true;var g=false}else if(r.matchToken("first")){var w=true}else if(r.matchToken("none")){var N=true}else{r.requireToken("last")}}}var O=e.requireElement("commandList",r);var b={type:"implicitReturn",op:function(e){e.meta.resolve();return u.HALT},execute:function(e){}};if(O){var I=O;while(I.next){I=I.next}I.next=b}else{O=b}var C={displayName:a,events:n,start:O,every:t,executing:false,execCount:0,queue:x,execute:function(n){if(this.executing&&this.every===false){if(N||w&&x.length>0){return}if(g){C.queue.length=0}C.queue.push(n);return}this.execCount++;this.executing=true;n.meta.resolve=function(){C.executing=false;var e=C.queue.shift();if(e){setTimeout(function(){C.execute(e)},1)}};n.meta.reject=function(e){console.error(e.message?e.message:e);var r=u.getHyperTrace(n,e);if(r){r.print()}u.triggerEvent(n.me,"exception",{error:e});C.executing=false;var t=C.queue.shift();if(t){setTimeout(function(){C.execute(t)},1)}};O.execute(n)},install:function(o,e){u.forEach(C.events,function(i){var e;if(i.elsewhere){e=[document]}else if(i.from){e=i.from.evaluate({})}else{e=[o]}u.forEach(e,function(e){e.addEventListener(i.on,function(e){var r=u.makeContext(o,C,o,e);if(i.elsewhere&&o.contains(e.target)){return}u.forEach(i.args,function(e){r[e.value]=r.event[e.value]||(r.event.detail?r.event.detail[e.value]:null)});if(i.filter){var t=r.meta.context;r.meta.context=r.event;try{var n=i.filter.evaluate(r);if(n){}else{return}}finally{r.meta.context=t}}if(i.inExpr){var a=e.target;while(true){if(a.matches&&a.matches(i.inExpr.css)){r.result=a;break}else{a=a.parentElement;if(a==null){return}}}}i.execCount++;if(i.startCount){if(i.endCount){if(i.execCount<i.startCount||i.execCount>i.endCount){return}}else if(i.unbounded){if(i.execCount<i.startCount){return}}else if(i.execCount!==i.startCount){return}}if(i.debounceTime){if(i.debounced){clearTimeout(i.debounced)}i.debounced=setTimeout(function(){C.execute(r)},i.debounceTime);return}if(i.throttleTime){if(i.lastExec&&Date.now()<i.lastExec+i.throttleTime){return}else{i.lastExec=Date.now()}}C.execute(r)})})})}};e.setParent(O,C);return C}});F.addFeature("def",function(e,l,r){if(r.matchToken("def")){var t=e.requireElement("dotOrColonPath",r);var n=t.evaluate();var a=n.split(".");var i=a.pop();var c=[];if(r.matchOpToken("(")){if(r.matchOpToken(")")){}else{do{c.push(r.requireTokenType("IDENTIFIER"))}while(r.matchOpToken(","));r.requireOpToken(")")}}var f=e.parseElement("commandList",r);if(r.matchToken("catch")){var m=r.requireTokenType("IDENTIFIER").value;var p=e.parseElement("commandList",r)}var v={displayName:i+"("+c.map(function(e){return e.value}).join(", ")+")",name:i,args:c,start:f,errorHandler:p,errorSymbol:m,install:function(e,s){var r=function(){var e="document"in P?document.body:P;var r=l.makeContext(s,v,e,null);r.meta.errorHandler=p;r.meta.errorSymmbol=m;for(var t=0;t<c.length;t++){var n=c[t];var a=arguments[t];if(n){r[n.value]=a}}r.meta.caller=arguments[c.length];if(r.meta.caller){r.meta.callingCommand=r.meta.caller.meta.command}var i,o=null;var u=new Promise(function(e,r){i=e;o=r});f.execute(r);if(r.meta.returned){return r.meta.returnValue}else{r.meta.resolve=i;r.meta.reject=o;return u}};r.hyperfunc=true;r.hypername=n;l.assignToNamespace(a,i,r)}};var o={type:"implicitReturn",op:function(e){e.meta.returned=true;if(e.meta.resolve){e.meta.resolve()}return l.HALT},execute:function(e){}};if(f){var u=f;while(u.next){u=u.next}u.next=o}else{v.start=o}if(p){var u=p;while(u.next){u=u.next}u.next=o}e.setParent(f,v);return v}});F.addFeature("init",function(e,t,r){if(r.matchToken("init")){var n=e.parseElement("commandList",r);var a={start:n,install:function(e,r){setTimeout(function(){n.execute(t.makeContext(e,this,e))},0)}};var i={type:"implicitReturn",op:function(e){return t.HALT},execute:function(e){}};if(n){var o=n;while(o.next){o=o.next}o.next=i}else{a.start=i}e.setParent(n,a);return a}});F.addFeature("worker",function(e,r,t){if(t.matchToken("worker")){e.raiseParseError(t,"In order to use the 'worker' feature, include "+"the _hyperscript worker plugin. See "+"https://hyperscript.org/features/worker/ for "+"more info.")}});F.addGrammarElement("jsBody",function(e,r,t){var n=t.currentToken().start;var a=t.currentToken();var i=[];var o="";var u=false;while(t.hasMore()){a=t.consumeToken();var s=t.currentToken(true);if(s.type==="IDENTIFIER"&&s.value==="end"){break}if(u){if(a.type==="IDENTIFIER"||a.type==="NUMBER"){o+=a.value}else{if(o!=="")i.push(o);o="";u=false}}else if(a.type==="IDENTIFIER"&&a.value==="function"){u=true}}var l=a.end+1;return{type:"jsBody",exposedFunctionNames:i,jsSource:t.source.substring(n,l)}});F.addFeature("js",function(e,r,t){if(t.matchToken("js")){var n=e.parseElement("jsBody",t);var a=n.jsSource+"\nreturn { "+n.exposedFunctionNames.map(function(e){return e+":"+e}).join(",")+" } ";var i=new Function(a);return{jsSource:a,function:i,exposedFunctionNames:n.exposedFunctionNames,install:function(){c(P,i())}}}});F.addCommand("js",function(e,n,r){if(r.matchToken("js")){var a=[];if(r.matchOpToken("(")){if(r.matchOpToken(")")){}else{do{var t=r.requireTokenType("IDENTIFIER");a.push(t.value)}while(r.matchOpToken(","));r.requireOpToken(")")}}var i=e.parseElement("jsBody",r);r.matchToken("end");var o=u(Function,a.concat([i.jsSource]));return{jsSource:i.jsSource,function:o,inputs:a,op:function(t){var r=[];a.forEach(function(e){r.push(n.resolveSymbol(e,t))});var e=o.apply(P,r);if(e&&typeof e.then==="function"){return Promise(function(r){e.then(function(e){t.result=e;r(n.findNext(this,t))})})}else{t.result=e;return n.findNext(this,t)}}}}});F.addCommand("async",function(e,r,t){if(t.matchToken("async")){if(t.matchToken("do")){var n=e.requireElement("commandList",t);t.requireToken("end")}else{var n=e.requireElement("command",t)}return{body:n,op:function(e){setTimeout(function(){n.execute(e)});return r.findNext(this,e)}}}});F.addCommand("with",function(e,t,r){var n=r.currentToken();if(r.matchToken("with")){var a=e.requireElement("expression",r);var i=e.requireElement("commandList",r);if(r.hasMore()){r.requireToken("end")}var o="with_"+n.start;var u={value:a,body:i,args:[a],resolveNext:function(e){var r=e.meta.iterators[o];if(r.index<r.value.length){e.me=r.value[r.index++];return i}else{e.me=r.originalMe;if(this.next){return this.next}else{return t.findNext(this.parent,e)}}},op:function(e,r){if(r==null){r=[]}else if(!(Array.isArray(r)||r instanceof NodeList)){r=[r]}e.meta.iterators[o]={originalMe:e.me,index:0,value:r};return this.resolveNext(e)}};e.setParent(i,u);return u}});F.addCommand("wait",function(e,i,r){if(r.matchToken("wait")){if(r.matchToken("for")){r.matchToken("a");var t=F.requireElement("dotOrColonPath",r,"Expected event name");if(r.matchToken("from")){var n=e.requireElement("expression",r)}var o={event:t,on:n,args:[t,n],op:function(t,n,e){var a=e?e:t.me;return new Promise(function(e){var r=function(){e(i.findNext(o,t))};a.addEventListener(n,r,{once:true})})}}}else{if(r.matchToken("a")){r.requireToken("tick");a=0}else{var a=F.requireElement("timeExpression",r)}var o={type:"waitCmd",time:a,args:[a],op:function(r,t){return new Promise(function(e){setTimeout(function(){e(i.findNext(o,r))},t)})},execute:function(e){return i.unifiedExec(this,e)}}}return o}});F.addGrammarElement("dotOrColonPath",function(e,r,t){var n=t.matchTokenType("IDENTIFIER");if(n){var a=[n.value];var i=t.matchOpToken(".")||t.matchOpToken(":");if(i){do{a.push(t.requireTokenType("IDENTIFIER").value)}while(t.matchOpToken(i.value))}return{type:"dotOrColonPath",path:a,evaluate:function(){return a.join(i?i.value:"")}}}});F.addCommand("send",function(e,a,r){if(r.matchToken("send")){var t=e.requireElement("dotOrColonPath",r);var n=e.parseElement("namedArgumentList",r);if(r.matchToken("to")){var i=e.requireElement("targetExpression",r)}else{var i=e.requireElement("implicitMeTarget",r)}var o={eventName:t,details:n,to:i,args:[i,t,n],op:function(e,r,t,n){a.forEach(r,function(e){a.triggerEvent(e,t,n?n:{})});return a.findNext(o,e)}};return o}});F.addCommand("return",function(e,n,r){if(r.matchToken("return")){var t=e.requireElement("expression",r);var a={value:t,args:[t],op:function(e,r){var t=e.meta.resolve;e.meta.returned=true;if(t){if(r){t(r)}else{t()}}else{e.meta.returned=true;e.meta.returnValue=r}return n.HALT}};return a}});F.addCommand("log",function(e,n,r){if(r.matchToken("log")){var t=[e.parseElement("expression",r)];while(r.matchOpToken(",")){t.push(e.requireElement("expression",r))}if(r.matchToken("with")){var a=e.requireElement("expression",r)}var i={exprs:t,withExpr:a,args:[a,t],op:function(e,r,t){if(r){r.apply(null,t)}else{console.log.apply(null,t)}return n.findNext(this,e)}};return i}});F.addCommand("throw",function(e,n,r){if(r.matchToken("throw")){var t=e.requireElement("expression",r);var a={expr:t,args:[t],op:function(e,r){n.registerHyperTrace(e,r);var t=e.meta&&e.meta.reject;if(t){t(r);return n.HALT}else{throw r}}};return a}});var a=function(e,t,r){var n=e.requireElement("expression",r);var a={expr:n,args:[n],op:function(e,r){e.result=r;return t.findNext(a,e)}};return a};F.addCommand("call",function(e,r,t){if(t.matchToken("call")){var n=a(e,r,t);if(n.expr&&n.expr.type!=="functionCall"){e.raiseParseError(t,"Must be a function invocation")}return n}});F.addCommand("get",function(e,r,t){if(t.matchToken("get")){return a(e,r,t)}});F.addGrammarElement("pseudoCommand",function(e,i,r){var t=e.requireElement("primaryExpression",r);if(t.type!=="functionCall"&&t.root.type!=="symbol"){e.raiseParseError("Implicit function calls must start with a simple function",r)}if(!r.matchAnyToken("to","on","with")&&e.commandBoundary(r.currentToken())){var n=e.requireElement("implicitMeTarget",r)}else{var n=e.requireElement("expression",r)}var o=t.root.name;var a=t.argExressions;var u={type:"pseudoCommand",expr:t,args:[n,a],op:function(e,r,t){var n=r[o];if(n.hyperfunc){t.push(e)}var a=n.apply(r,t);e.result=a;return i.findNext(u,e)},execute:function(e){return i.unifiedExec(this,e)}};return u});F.addCommand("set",function(e,n,r){if(r.matchToken("set")){if(r.currentToken().type==="L_BRACE"){var t=e.requireElement("objectLiteral",r);r.requireToken("on");var a=e.requireElement("expression",r);return{objectLiteral:t,target:a,args:[t,a],op:function(e,r,t){c(t,r)}}}var a=e.requireElement("targetExpression",r);r.requireToken("to");var i=e.requireElement("expression",r);var o=a.type==="symbol";if(a.type!=="symbol"&&a.root==null){e.raiseParseError(r,"Can only put directly into symbols, not references")}var u=null;var s=null;if(o){}else{s=a.prop.value;u=a.root}var l={target:a,symbolWrite:o,value:i,args:[u,i],op:function(e,r,t){if(o){e[a.name]=t}else{n.forEach(r,function(e){e[s]=t})}return n.findNext(this,e)}};return l}});F.addCommand("if",function(e,t,r){if(r.matchToken("if")){var n=e.requireElement("expression",r);r.matchToken("then");var a=e.parseElement("commandList",r);if(r.matchToken("else")){var i=e.parseElement("commandList",r)}if(r.hasMore()){r.requireToken("end")}var o={expr:n,trueBranch:a,falseBranch:i,args:[n],op:function(e,r){if(r){return a}else if(i){return i}else{return t.findNext(this,e)}}};e.setParent(a,o);e.setParent(i,o);return o}});var n=function(e,r,a,t){var n=r.currentToken();if(r.matchToken("for")||t){var i=r.requireTokenType("IDENTIFIER");var o=i.value;r.requireToken("in");var u=e.requireElement("expression",r)}else if(r.matchToken("in")){var o="it";var u=e.requireElement("expression",r)}else if(r.matchToken("while")){var s=e.requireElement("expression",r)}else if(r.matchToken("until")){var l=true;if(r.matchToken("event")){var c=F.requireElement("dotOrColonPath",r,"Expected event name");if(r.matchToken("from")){var f=e.requireElement("expression",r)}}else{var s=e.requireElement("expression",r)}}else if(r.matchTokenType("NUMBER")){var m=parseFloat(n.value);r.requireToken("times")}else{r.matchToken("forever");var p=true}if(r.matchToken("index")){var i=r.requireTokenType("IDENTIFIER");var v=i.value}var h=e.parseElement("commandList",r);if(r.hasMore()){r.requireToken("end")}if(o==null){o="_implicit_repeat_"+n.start;var d=o}else{var d=o+"_"+n.start}var E={identifier:o,indexIdentifier:v,slot:d,expression:u,forever:p,times:m,until:l,event:c,on:f,whileExpr:s,resolveNext:function(){return this},loop:h,args:[s],op:function(e,r){var t=e.meta.iterators[d];var n=false;if(this.forever){n=true}else if(this.until){if(c){n=e.meta.iterators[d].eventFired===false}else{n=r!==true}}else if(r){n=true}else if(m){n=t.index<this.times}else{n=t.value!==null&&t.index<t.value.length}if(n){if(t.value){e[o]=t.value[t.index];e.result=t.value[t.index]}else{e.result=t.index}if(v){e[v]=t.index}t.index++;return h}else{e.meta.iterators[d]=null;return a.findNext(this.parent,e)}}};e.setParent(h,E);var T={name:"repeatInit",args:[u,c,f],op:function(r,e,t,n){r.meta.iterators[d]={index:0,value:e,eventFired:false};if(c){var a=n||r.me;a.addEventListener(t,function(e){r.meta.iterators[d].eventFired=true},{once:true})}return E},execute:function(e){return a.unifiedExec(this,e)}};e.setParent(E,T);return T};F.addCommand("repeat",function(e,r,t){if(t.matchToken("repeat")){return n(e,t,r,false)}});F.addCommand("for",function(e,r,t){if(t.matchToken("for")){return n(e,t,r,true)}});F.addGrammarElement("stringLike",function(e,r,t){return F.parseAnyOf(["string","nakedString"],t)});F.addCommand("fetch",function(e,i,r){if(r.matchToken("fetch")){var t=e.requireElement("stringLike",r);var n=e.parseElement("objectLiteral",r);var o="text";if(r.matchToken("as")){if(r.matchToken("json")){o="json"}else if(r.matchToken("response")){o="response"}else if(r.matchToken("text")){}else{e.raiseParseError(r,"Unknown response type: "+r.currentToken())}}var u={url:t,argExrepssions:n,args:[t,n],op:function(n,e,a){return new Promise(function(r,t){fetch(e,a).then(function(e){if(o==="response"){n.result=e;r(i.findNext(u,n))}else if(o==="json"){e.json().then(function(e){n.result=e;r(i.findNext(u,n))})}else{e.text().then(function(e){n.result=e;r(i.findNext(u,n))})}}).catch(function(e){i.triggerEvent(n.me,"fetch:error",{reason:e});t(e)})})}};return u}})}function e(e){if(document.readyState!=="loading"){e()}else{document.addEventListener("DOMContentLoaded",e)}}function i(){var e=document.querySelector('meta[name="htmx-config"]');if(e){return r(e.content)}else{return null}}function o(){var e=i();if(e){_hyperscript.config=c(_hyperscript.config,e)}}if("document"in P){e(function(){o();_.processNode(document.body);document.addEventListener("htmx:load",function(e){_.processNode(e.detail.elt)})})}return c(function(e,r){return _.evaluate(e,r)},{internals:{lexer:M,parser:F,runtime:_},addFeature:function(e,r){F.addFeature(e,r)},addCommand:function(e,r){F.addCommand(e,r)},addLeafExpression:function(e,r){F.addLeafExpression(e,r)},addIndirectExpression:function(e,r){F.addIndirectExpression(r)},evaluate:function(e,r){return _.evaluate(e,r)},parse:function(e){return _.parse(e)},processNode:function(e){_.processNode(e)},config:{attributes:"_, script, data-script",defaultTransition:"all 500ms ease-in",conversions:j}})}()});(function(){function o(e,r){for(var t in r){if(r.hasOwnProperty(t)){e[t]=r[t]}}return e}_hyperscript.addCommand("settle",function(e,o,r){if(r.matchToken("settle")){if(!e.commandBoundary(r.currentToken())){var t=e.requireElement("expression",r)}else{var t=e.requireElement("implicitMeTarget",r)}var u={type:"settleCmd",args:[t],op:function(e,r){var t=null;var n=false;var a=false;var i=new Promise(function(e){t=e});r.addEventListener("transitionstart",function(){a=true},{once:true});setTimeout(function(){if(!a&&!n){t(o.findNext(u,e))}},500);r.addEventListener("transitionend",function(){if(!n){t(o.findNext(u,e))}},{once:true});return i},execute:function(e){return o.unifiedExec(this,e)}};return u}});_hyperscript.addCommand("add",function(e,n,r){if(r.matchToken("add")){var t=e.parseElement("classRef",r);var a=null;var i=null;if(t==null){a=e.parseElement("attributeRef",r);if(a==null){i=e.parseElement("objectLiteral",r);if(i==null){e.raiseParseError(r,"Expected either a class reference or attribute expression")}}}else{var o=[t];while(t=e.parseElement("classRef",r)){o.push(t)}}if(r.matchToken("to")){var u=e.requireElement("targetExpression",r)}else{var u=e.parseElement("implicitMeTarget",r)}if(o){var s={classRefs:o,to:u,args:[u],op:function(e,t){n.forEach(o,function(r){n.forEach(t,function(e){e.classList.add(r.className())})});return n.findNext(this,e)}}}else if(a){var s={type:"addCmd",attributeRef:a,to:u,args:[u,a],op:function(e,r,t){n.forEach(r,function(e){e.setAttribute(t.name,t.value)});return n.findNext(s,e)},execute:function(e){return n.unifiedExec(this,e)}}}else{var s={type:"addCmd",cssDeclaration:i,to:u,args:[u,i],op:function(e,r,t){n.forEach(r,function(e){for(var r in t){if(t.hasOwnProperty(r)){e.style.setProperty(r,t[r])}}});return n.findNext(s,e)},execute:function(e){return n.unifiedExec(this,e)}}}return s}});_hyperscript.addCommand("remove",function(e,n,r){if(r.matchToken("remove")){var t=e.parseElement("classRef",r);var a=null;var i=null;if(t==null){a=e.parseElement("attributeRef",r);if(a==null){i=e.parseElement("expression",r);if(i==null){e.raiseParseError(r,"Expected either a class reference, attribute expression or value expression")}}}else{var o=[t];while(t=e.parseElement("classRef",r)){o.push(t)}}if(r.matchToken("from")){var u=e.requireElement("targetExpression",r)}else{var u=e.requireElement("implicitMeTarget",r)}if(i){var s={elementExpr:i,from:u,args:[i],op:function(e,r){n.forEach(r,function(e){e.parentElement.removeChild(e)});return n.findNext(this,e)}}}else{var s={classRefs:o,attributeRef:a,elementExpr:i,from:u,args:[u],op:function(e,t){if(this.classRefs){n.forEach(o,function(r){n.forEach(t,function(e){e.classList.remove(r.className())})})}else{n.forEach(t,function(e){e.removeAttribute(a.name)})}return n.findNext(this,e)}}}return s}});_hyperscript.addCommand("toggle",function(e,u,r){if(r.matchToken("toggle")){if(r.matchToken("between")){var t=true;var n=e.parseElement("classRef",r);r.requireToken("and");var a=e.requireElement("classRef",r)}else{var n=e.parseElement("classRef",r);var i=null;if(n==null){i=e.parseElement("attributeRef",r);if(i==null){e.raiseParseError(r,"Expected either a class reference or attribute expression")}}else{var o=[n];while(n=e.parseElement("classRef",r)){o.push(n)}}}if(r.matchToken("on")){var s=e.requireElement("targetExpression",r)}else{var s=e.requireElement("implicitMeTarget",r)}if(r.matchToken("for")){var l=e.requireElement("timeExpression",r)}else if(r.matchToken("until")){var c=e.requireElement("dotOrColonPath",r,"Expected event name");if(r.matchToken("from")){var f=e.requireElement("expression",r)}}var m={classRef:n,classRef2:a,classRefs:o,attributeRef:i,on:s,time:l,evt:c,from:f,toggle:function(e,r){if(t){u.forEach(e,function(e){if(e.classList.contains(n.className())){e.classList.remove(n.className());e.classList.add(a.className())}else{e.classList.add(n.className());e.classList.remove(a.className())}})}else if(this.classRefs){u.forEach(this.classRefs,function(r){u.forEach(e,function(e){e.classList.toggle(r.className())})})}else{u.forEach(e,function(e){if(e.hasAttribute(i.name)){e.removeAttribute(i.name)}else{e.setAttribute(i.name,r)}})}},args:[s,i?i.value:null,l,c,f],op:function(t,n,a,r,i,o){if(r){return new Promise(function(e){m.toggle(n,a);setTimeout(function(){m.toggle(n,a);e(u.findNext(m,t))},r)})}else if(i){return new Promise(function(e){var r=o||t.me;r.addEventListener(i,function(){m.toggle(n,a);e(u.findNext(m,t))},{once:true});m.toggle(n,a)})}else{this.toggle(n,a);return u.findNext(m,t)}}};return m}});var u={display:function(e,r,t){if(t){r.style.display=t}else if(e==="hide"){r.style.display="none"}else{r.style.display="block"}},visibility:function(e,r,t){if(t){r.style.visibility=t}else if(e==="hide"){r.style.visibility="hidden"}else{r.style.visibility="visible"}},opacity:function(e,r,t){if(t){r.style.opacity=t}else if(e==="hide"){r.style.opacity="0"}else{r.style.opacity="1"}}};var s=function(e,r,t){var n;var a=t.currentToken();if(a.value==="with"||e.commandBoundary(a)){n=e.parseElement("implicitMeTarget",t)}else{n=e.parseElement("targetExpression",t)}return n};var l=function(e,r,t){var n=_hyperscript.config.defaultHideShowStrategy;var a=u;if(_hyperscript.config.hideShowStrategies){a=o(a,_hyperscript.config.hideShowStrategies)}t=t||n||"display";var i=a[t];if(i==null){e.raiseParseError(r,"Unknown show/hide strategy : "+t)}return i};_hyperscript.addCommand("hide",function(e,t,r){if(r.matchToken("hide")){var n=s(e,t,r);var a=null;if(r.matchToken("with")){a=r.requireTokenType("IDENTIFIER").value}var i=l(e,r,a);return{target:n,args:[n],op:function(e,r){t.forEach(r,function(e){i("hide",e)});return t.findNext(this,e)}}}});_hyperscript.addCommand("show",function(e,t,r){if(r.matchToken("show")){var n=s(e,t,r);var a=null;if(r.matchToken("with")){a=r.requireTokenType("IDENTIFIER").value}var i=null;if(r.matchOpToken(":")){var o=r.consumeUntilWhitespace();r.matchTokenType("WHITESPACE");i=o.map(function(e){return e.value}).join("")}var u=l(e,r,a);return{target:n,args:[n],op:function(e,r){t.forEach(r,function(e){u("show",e,i)});return t.findNext(this,e)}}}});_hyperscript.addCommand("trigger",function(e,n,r){if(r.matchToken("trigger")){var t=e.requireElement("dotOrColonPath",r);var a=e.parseElement("namedArgumentList",r);var i={eventName:t,details:a,args:[t,a],op:function(e,r,t){n.triggerEvent(e.me,r,t?t:{});return n.findNext(i,e)}};return i}});_hyperscript.addCommand("take",function(e,a,r){if(r.matchToken("take")){var t=e.parseElement("classRef",r);if(r.matchToken("from")){var n=e.requireElement("targetExpression",r)}else{var n=t}if(r.matchToken("for")){var i=e.requireElement("targetExpression",r)}else{var i=e.requireElement("implicitMeTarget",r)}var o={classRef:t,from:n,forElt:i,args:[n,i],op:function(e,r,t){var n=this.classRef.css.substr(1);a.forEach(r,function(e){e.classList.remove(n)});a.forEach(t,function(e){e.classList.add(n)});return a.findNext(this,e)}};return o}});function f(e,r,t){if(r){var n=e[r]}else{var n=e}if(n instanceof Element||n instanceof HTMLDocument){n.innerHTML=t}else{if(r){e[r]=t}else{throw"Don't know how to put a value into "+typeof e}}}_hyperscript.addCommand("put",function(e,n,r){if(r.matchToken("put")){var t=e.requireElement("expression",r);var a=r.matchAnyToken("into","before","after");if(a==null&&r.matchToken("at")){a=r.matchAnyToken("start","end");r.requireToken("of")}if(a==null){e.raiseParseError(r,"Expected one of 'into', 'before', 'at start of', 'at end of', 'after'")}var i=e.requireElement("targetExpression",r);var o=a.value;var u=false;var s=null;var l=null;if(i.type==="propertyAccess"&&o==="into"){l=i.prop.value;s=i.root}else if(i.type==="symbol"&&o==="into"){u=true;l=i.name}else{s=i}var c={target:i,operation:o,symbolWrite:u,value:t,args:[s,t],op:function(e,r,t){if(u){f(e,l,t);e[i.name]=t}else{if(o==="into"){n.forEach(r,function(e){f(e,l,t)})}else if(o==="before"){n.forEach(r,function(e){e.insertAdjacentHTML("beforebegin",t)})}else if(o==="start"){n.forEach(r,function(e){e.insertAdjacentHTML("afterbegin",t)})}else if(o==="end"){n.forEach(r,function(e){e.insertAdjacentHTML("beforeend",t)})}else if(o==="after"){n.forEach(r,function(e){e.insertAdjacentHTML("afterend",t)})}}return n.findNext(this,e)}};return c}});_hyperscript.addCommand("transition",function(e,d,r){if(r.matchToken("transition")){if(r.matchToken("element")||r.matchToken("elements")){var t=e.parseElement("expression",r)}else{var t=e.parseElement("implicitMeTarget",r)}var n=[];var a=[];var i=[];var o=r.currentToken();while(!e.commandBoundary(o)&&o.value!=="using"){n.push(e.requireElement("stringLike",r));if(r.matchToken("from")){a.push(e.requireElement("stringLike",r))}else{a.push(null)}r.requireToken("to");i.push(e.requireElement("stringLike",r));o=r.currentToken()}if(r.matchToken("using")){var u=e.requireElement("expression",r)}var s={to:i,args:[t,n,a,i,u],op:function(e,r,m,p,v,h){var t=[];d.forEach(r,function(f){var e=new Promise(function(i,e){var o=f.style.transition;f.style.transition=h||_hyperscript.config.defaultTransition;var u=d.getInternalData(f);var r=getComputedStyle(f);var t={};for(var n=0;n<r.length;n++){var a=r[n];var s=r[a];t[a]=s}if(!u.initalStyles){u.initalStyles=t}for(var n=0;n<m.length;n++){var l=m[n];var c=p[n];if(c=="computed"||c==null){f.style[l]=t[l]}else{f.style[l]=c}}setTimeout(function(){var e=[];for(var r=0;r<m.length;r++){var t=m[r];var n=v[r];if(n=="initial"){var a=u.initalStyles[t];f.style[t]=a}else{f.style[t]=n}}f.addEventListener("transitionend",function(){f.style.transition=o;i()},{once:true})},5)});t.push(e)});return Promise.all(t).then(function(){return d.findNext(s,e)})}};return s}});_hyperscript.addLeafExpression("closestExpr",function(e,r,t){if(t.matchToken("closest")){var n=e.parseElement("targetExpression",t);if(n.css==null){e.raiseParseError(t,"Expected a CSS expression")}if(t.matchToken("to")){var a=e.parseElement("targetExpression",t)}else{var a=e.parseElement("implicitMeTarget",t)}return{expr:n,to:a,args:[a],op:function(e,r){return r==null?null:r.closest(n.css)},evaluate:function(e){return r.unifiedEval(this,e)}}}});_hyperscript.config.conversions["Values"]=function(e){var n={};var a=_hyperscript.internals.runtime.forEach;a(e,function(e){var r=o(e);if(r!==undefined){n[r.name]=r.value;return}if(e.querySelectorAll!=undefined){var t=e.querySelectorAll("input,select,textarea");a(t,i)}});return n;function i(e){var r=o(e);if(r==undefined){return}if(n[r.name]==undefined){n[r.name]=r.value;return}if(Array.isArray(n[r.name])&&Array.isArray(r.value)){n[r.name]=[].concat(n[r.name],r.value);return}}function o(e){try{var r={name:e.name,value:e.value};if(r.name==undefined||r.value==undefined){return undefined}if(e.type=="radio"&&e.checked==false){return undefined}if(e.type=="checkbox"){if(e.checked==false){r.value=undefined}else if(typeof r.value==="string"){r.value=[r.value]}}if(e.type=="select-multiple"){var t=e.querySelectorAll("option[selected]");r.value=[];for(var n=0;n<t.length;n++){r.value.push(t[n].value)}}return r}catch(e){return undefined}}}})();
\No newline at end of file