hyperscript.org
Version:
a small scripting language for the web
1 lines • 87.5 kB
JavaScript
(function(e,r){if(typeof module!="undefined"){module.exports=r()}else if(typeof this.define==="function"&&this.define.amd){this.define([],r)}else{e._hyperscript=r()}})(typeof self!=="undefined"?self:this,(function(){"use strict";function e(e,r){for(var t in r){if(r.hasOwnProperty(t)){e[t]=r[t]}}return e}function r(e,r){var t=e[r];if(t){return t}else{var n={};e[r]=n;return n}}function t(e){try{return JSON.parse(e)}catch(e){n(e);return null}}function n(e){if(console.error){console.error(e)}else if(console.log){console.log("ERROR: ",e)}}function a(e,r){return new(e.bind.apply(e,[e].concat(r)))}var i=(1,eval)("this");class o{constructor(e,r){this._css=e;this.relativeToElement=r}get css(){return c.escapeSelector(this._css)}get className(){return this._css.substr(1)}get id(){return this.className()}[Symbol.iterator](){return c.getRootNode(this.relativeToElement).querySelectorAll(this.css)[Symbol.iterator]()}}var u=function(){var e={"+":"PLUS","-":"MINUS","*":"MULTIPLY","/":"DIVIDE",".":"PERIOD","..":"ELLIPSIS","\\":"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 r(e){return u(e)||o(e)||e==="-"||e==="_"||e===":"}function t(e){return u(e)||o(e)||e==="-"||e==="_"||e===":"}function n(e){return e===" "||e==="\t"||i(e)}function a(e){return"[Line: "+e.line+", Column: "+e.column+"]"}function i(e){return e==="\r"||e==="\n"}function o(e){return e>="0"&&e<="9"}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function l(e,r){return e==="_"||e==="$"}function c(e){return e==="`"||e==="^"}function f(e,r,t){a();var n=null;function a(){while(k(0,true).type==="WHITESPACE"){r.push(e.shift())}}function i(e,r){s.raiseParseError(e,r)}function o(e){var r=c(e);if(r){return r}else{i(this,"Expected '"+e+"' but found '"+x().value+"'")}}function u(e,r,t){for(var n=0;n<arguments.length;n++){var a=arguments[n];var i=c(a);if(i){return i}}}function l(e,r,t){for(var n=0;n<arguments.length;n++){var a=arguments[n];var i=v(a);if(i){return i}}}function c(e){if(x()&&x().op&&x().value===e){return h()}}function f(e,r,t,n){var a=m(e,r,t,n);if(a){return a}else{i(this,"Expected one of "+JSON.stringify([e,r,t]))}}function m(e,r,t,n){if(x()&&x().type&&[e,r,t,n].indexOf(x().type)>=0){return h()}}function p(e,r){var t=v(e,r);if(t){return t}else{i(this,"Expected '"+e+"' but found '"+x().value+"'")}}function v(e,r){if(q.indexOf(e)!==-1){return}var r=r||"IDENTIFIER";if(x()&&x().value===e&&x().type===r){return h()}}function h(){var t=e.shift();r.push(t);n=t;a();return t}function d(t,n){var i=[];var o=k(0,true);while((n==null||o.type!==n)&&(t==null||o.value!==t)&&o.type!=="EOF"){var u=e.shift();r.push(u);i.push(o);o=k(0,true)}a();return i}function E(){if(r[r.length-1]&&r[r.length-1].type==="WHITESPACE"){return r[r.length-1].value}else{return""}}function T(){return d(null,"WHITESPACE")}function y(){return e.length>0}function k(r,t){var n;var a=0;do{if(!t){while(e[a]&&e[a].type==="WHITESPACE"){a++}}n=e[a];r--;a++}while(r>-1);if(n){return n}else{return{type:"EOF",value:"<<<EOF>>>"}}}function x(){return k(0)}function g(){return n}function b(){return t.substring(this.startToken.start,this.endToken.end)}function w(){return t.split("\n")[this.startToken.line-1]}var q=[];function S(e){q.push(e)}function N(){q.pop()}function O(){var e=q;q=[];return e}function I(e){q=e}return{pushFollow:S,popFollow:N,clearFollow:O,restoreFollow:I,matchAnyToken:l,matchAnyOpToken:u,matchOpToken:c,requireOpToken:o,matchTokenType:m,requireTokenType:f,consumeToken:h,matchToken:v,requireToken:p,list:e,consumed:r,source:t,hasMore:y,currentToken:x,lastMatch:g,token:k,consumeUntil:d,consumeUntilWhitespace:T,lastWhitespace:E,sourceFor:b,lineFor:w}}function m(e){if(e.length>0){var r=e[e.length-1];if(r.type==="IDENTIFIER"||r.type==="CLASS_REF"||r.type==="ID_REF"){return false}if(r.op&&(r.value===">"||r.value===")")){return false}}return true}function p(s,p){var v=[];var h=s;var d=0;var E=0;var T=1;var y="<START>";var k=0;function x(){return p&&k===0}while(d<h.length){if(A()==="-"&&F()==="-"){w()}else{if(n(A())){v.push(D())}else if(!M()&&A()==="."&&(u(F())||F()==="{")){v.push(q())}else if(!M()&&A()==="#"&&(u(F())||F()==="{")){v.push(O())}else if(A()==="["&&F()==="@"){v.push(S())}else if(A()==="@"){v.push(N())}else if(u(A())||!x()&&l(A())){v.push(I())}else if(o(A())){v.push(L())}else if(!x()&&(A()==='"'||A()==="`")){v.push(C())}else if(!x()&&A()==="'"){if(m(v)){v.push(C())}else{v.push(R())}}else if(e[A()]){if(y==="$"&&A()==="{"){k++}if(A()==="}"){k--}v.push(R())}else if(x()||c(A())){v.push(b("RESERVED",P()))}else{if(d<h.length){throw Error("Unknown token: "+A()+" ")}}}}return f(v,[],h);function g(e,r){var t=b(e,r);t.op=true;return t}function b(e,r){return{type:e,value:r,start:d,end:d+1,column:E,line:T}}function w(){while(A()&&!i(A())){P()}P()}function q(){var e=b("CLASS_REF");var t=P();if(A()==="{"){e.template=true;t+=P();while(A()&&A()!=="}"){t+=P()}if(A()!=="}"){throw Error("Unterminated class reference")}else{t+=P()}}else{while(r(A())){t+=P()}}e.value=t;e.end=d;return e}function S(){var e=b("ATTRIBUTE_REF");var r=P();while(d<h.length&&A()!=="]"){r+=P()}if(A()==="]"){r+=P()}e.value=r;e.end=d;return e}function N(){var e=b("ATTRIBUTE_REF");var r=P();while(t(A())){r+=P()}e.value=r;e.end=d;return e}function O(){var e=b("ID_REF");var r=P();if(A()==="{"){e.template=true;r+=P();while(A()&&A()!=="}"){r+=P()}if(A()!=="}"){throw Error("Unterminated id reference")}else{P()}}else{while(t(A())){r+=P()}}e.value=r;e.end=d;return e}function I(){var e=b("IDENTIFIER");var r=P();while(u(A())||l(A())){r+=P()}e.value=r;e.end=d;return e}function L(){var e=b("NUMBER");var r=P();while(o(A())){r+=P()}if(A()==="."&&o(F())){r+=P()}while(o(A())){r+=P()}e.value=r;e.end=d;return e}function R(){var r=g();var t=P();while(A()&&e[t+A()]){t+=P()}r.type=e[t];r.value=t;r.end=d;return r}function C(){var e=b("STRING");var r=P();var t="";while(A()&&A()!==r){if(A()==="\\"){P()}t+=P()}if(A()!==r){throw Error("Unterminated string at "+a(e))}else{P()}e.value=t;e.end=d;e.template=r==="`";return e}function A(){return h.charAt(d)}function F(){return h.charAt(d+1)}function P(){y=A();d++;E++;return y}function M(){return u(y)||o(y)||y===")"||y==="}"||y==="]"}function D(){var e=b("WHITESPACE");var r="";while(A()&&n(A())){if(i(A())){E=0;T++}r+=P()}e.value=r;e.end=d;return e}}return{tokenize:p,makeTokensObject:f}}();var s=function(){var e={};var r={};var t={};var n=[];var a=[];function i(e,r,t){e.startToken=r;e.sourceFor=t.sourceFor;e.lineFor=t.lineFor;e.programSource=t.source}function o(r,t,n=undefined){var a=e[r];if(a){var o=t.currentToken();var u=a(s,c,t,n);if(u){i(u,o,t);u.endToken=u.endToken||t.lastMatch();var n=u.root;while(n!=null){i(n,o,t);n=n.root}}return u}}function u(e,r,t,n){var a=o(e,r,n);if(!a)E(r,t||"Expected "+e);return a}function l(e,r){for(var t=0;t<e.length;t++){var n=e[t];var a=o(n,r);if(a){return a}}}function f(r,t){e[r]=t}function m(t,n){var a=t+"Command";var i=function(e,r,t){const i=n(e,r,t);if(i){i.type=a;i.execute=function(e){e.meta.command=i;return r.unifiedExec(this,e)};return i}};e[a]=i;r[t]=i}function p(r,n){var a=r+"Feature";var i=function(e,t,i){var o=n(e,t,i);if(o){o.keyword=r;o.type=a;return o}};e[a]=i;t[r]=i}function v(e,r){n.push(e);f(e,r)}function h(e,r){a.push(e);f(e,r)}f("feature",(function(e,r,n){if(n.matchOpToken("(")){var a=e.requireElement("feature",n);n.requireOpToken(")");return a}var i=t[n.currentToken().value];if(i){return i(e,r,n)}}));f("command",(function(e,t,n){if(n.matchOpToken("(")){const r=e.requireElement("command",n);n.requireOpToken(")");return r}var a=r[n.currentToken().value];let i;if(a){i=a(e,t,n)}else if(n.currentToken().type==="IDENTIFIER"&&n.token(1).value==="("){i=e.requireElement("pseudoCommand",n)}if(i){return e.parseElement("indirectStatement",n,i)}return i}));f("commandList",(function(e,r,t){var n=e.parseElement("command",t);if(n){t.matchToken("then");const r=e.parseElement("commandList",t);if(r)n.next=r;return n}}));f("leaf",(function(e,r,t){var a=l(n,t);if(a==null){return o("symbol",t)}return a}));f("indirectExpression",(function(e,r,t,n){for(var i=0;i<a.length;i++){var o=a[i];n.endToken=t.lastMatch();var u=e.parseElement(o,t,n);if(u){return u}}return n}));f("indirectStatement",(function(e,r,t,n){if(t.matchToken("unless")){n.endToken=t.lastMatch();var a=e.requireElement("expression",t);var i={type:"unlessStatementModifier",args:[a],op:function(e,r){if(r){return this.next}else{return n}},execute:function(e){return r.unifiedExec(this,e)}};n.parent=i;return i}return n}));f("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 d(e){var r=e.currentToken();var t=e.source;var n=t.split("\n");var a=r&&r.line?r.line-1:n.length-1;var i=n[a];var o=r&&r.line?r.column:i.length-1;return i+"\n"+" ".repeat(o)+"^^\n\n"}function E(e,r){r=(r||"Unexpected Token : "+e.currentToken().value)+"\n\n"+d(e);var t=new Error(r);t["tokens"]=e;throw t}function T(e){var r=o("hyperscript",e);if(e.hasMore())E(e);if(r)return r}function y(e,r){if(e){e.parent=r;y(e.next,r)}}function k(e){return r[e.value]}function x(e){return t[e.value]}function g(e){if(e.value=="end"||e.value=="then"||e.value=="else"||e.value==")"||k(e)||x(e)||e.type=="EOF"){return true}return false}function b(e){var r=[""];do{r.push(e.lastWhitespace());if(e.currentToken().value==="$"){e.consumeToken();var t=e.matchOpToken("{");r.push(u("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?n.value:""}}while(e.hasMore());r.push(e.lastWhitespace());return r}return{setParent:y,requireElement:u,parseElement:o,featureStart:x,commandStart:k,commandBoundary:g,parseAnyOf:l,parseHyperScript:T,raiseParseError:E,addGrammarElement:f,addCommand:m,addFeature:p,addLeafExpression:v,addIndirectExpression:h,parseStringTemplate:b}}();var l={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){console.log(e);return Number(e)},Date:function(e){return new Date(e)},Array:function(e){return Array.from(e)},JSON:function(e){return JSON.stringify(e)},Object:function(r){if(r instanceof String){r=r.toString()}if(typeof r==="string"){return JSON.parse(r)}else{return e({},r)}}};var c=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 n(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 a(e,r,t){t=t||{};t["sentBy"]=e;var a=n(r,t);var i=e.dispatchEvent(a);return i}function f(e){return Array.isArray(e)||e instanceof NodeList}function m(e){return typeof e==="object"&&Symbol.iterator in e&&typeof e[Symbol.iterator]==="function"}function p(e){return e instanceof o||f(e)}function v(e,r){if(e==null){}else if(m(e)){for(const t of e){r(t)}}else if(f(e)){for(var t=0;t<e.length;t++){r(e[t])}}else{r(e)}}function h(e,r){if(p(e)){for(const t of e)r(t)}else{r(e)}}var d={array_sentinel:true};function E(e){var r=[];for(var t=0;t<e.length;t++){var n=e[t];if(Array.isArray(n)){r.push(d);for(var a=0;a<n.length;a++){r.push(n[a])}r.push(d)}else{r.push(n)}}return r}function T(e){var r=[];for(var t=0;t<e.length;t++){var n=e[t];if(n===d){n=e[++t];var a=[];r.push(a);while(n!==d){a.push(n);n=e[++t]}}else{r.push(n)}}return r}function y(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 k={};function x(e,r){while(true){try{var t=g(e,r)}catch(n){c.registerHyperTrace(r,n);if(r.meta.errorHandler&&!r.meta.handlingError){r.meta.handlingError=true;r[r.meta.errorSymmbol]=n;e=r.meta.errorHandler;continue}else if(r.meta.reject){r.meta.reject(n);t=k}else{throw n}}if(t==null){console.error(e," did not return a next element to execute! context: ",r);return}else if(t.then){t.then((function(e){x(e,r)})).catch((function(e){c.registerHyperTrace(r,e);if(r.meta.errorHandler&&!r.meta.handlingError){r.meta.handlingError=true;r[r.meta.errorSymmbol]=e;x(r.meta.errorHandler,r)}else if(r.meta.reject){r.meta.reject(e)}else{throw e}}));return}else if(t===k){return}else{e=t}}}function g(e,r){var t=[r];var n=false;var a=false;if(e.args){for(var i=0;i<e.args.length;i++){var o=e.args[i];if(o==null){t.push(null)}else if(Array.isArray(o)){var u=[];for(var s=0;s<o.length;s++){var l=o[s];var c=l?l.evaluate(r):null;if(c){if(c.then){n=true}else if(c.asyncWrapper){a=true}}u.push(c)}t.push(u)}else if(o.evaluate){var c=o.evaluate(r);if(c){if(c.then){n=true}else if(c.asyncWrapper){a=true}}t.push(c)}else{t.push(o)}}}if(n){return new Promise((function(n,i){var o=E(t);Promise.all(o).then((function(r){r=T(r);if(a){y(r)}try{var t=e.op.apply(e,r);n(t)}catch(e){i(e)}})).catch((function(e){if(r.meta.errorHandler&&!r.meta.handlingError){r.meta.handlingError=true;r[r.meta.errorSymmbol]=e;x(r.meta.errorHandler,r)}else if(r.meta.reject){r.meta.reject(e)}else{}}))}))}else{if(a){y(t)}return e.op.apply(e,t)}}var b=null;function w(){if(b==null){b=_hyperscript.config.attributes.replace(/ /g,"").split(",")}return b}function q(e){for(var r=0;r<w().length;r++){var t=w()[r];if(e.hasAttribute&&e.hasAttribute(t)){return e.getAttribute(t)}}if(e instanceof HTMLScriptElement&&e.type==="text/hyperscript"){return e.innerText}return null}var S=new WeakMap;function N(e){var r=S.get(e);if(typeof r==="undefined"){S.set(e,r={})}return r}function O(r,t){if(r){e(t,N(r));O(r.parentElement,t)}}function I(e,r,t,n){var a={meta:{parser:s,lexer:u,runtime:c,owner:e,feature:r,iterators:{}},me:t,event:n,target:n?n.target:null,detail:n?n.detail:null,body:"document"in i?document.body:null};a.meta.ctx=a;O(e,a);return a}function L(){return w().map((function(e){return"["+e+"]"})).join(", ")}function R(e,r){var t=l.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=l[r];if(o){return o(e)}throw"Unknown conversion : "+r}function C(e,r){return Object.prototype.toString.call(e)==="[object "+r+"]"}function A(e){var r=u.tokenize(e);if(s.commandStart(r.currentToken())){var t=s.requireElement("commandList",r);var n=t;while(n.next){n=n.next}n.next={op:function(){return k}};return t}else if(s.featureStart(r.currentToken())){var a=s.requireElement("hyperscript",r);return a}else{var i=s.requireElement("expression",r);return i}}function F(r,t){var n="document"in i?i.document.body:o();t=e(I(n,null,n,null),t||{});var a=A(r);if(a.execute){return a.execute(t)}else if(a.apply){a.apply(n,null);return N(n)}else{return a.evaluate(t)}function o(){return{}}}function P(e){var r=c.getScriptSelector();if(t(e,r)){M(e,e)}if(e instanceof HTMLScriptElement&&e.type==="text/hyperscript"){M(e,document.body)}if(e.querySelectorAll){v(e.querySelectorAll(r+", [type='text/hyperscript']"),(function(e){M(e,e instanceof HTMLScriptElement&&e.type==="text/hyperscript"?document.body:e)}))}}function M(e,r){if(e.closest&&e.closest(_hyperscript.config.disableSelector)){return}var t=_(e);if(!t.initialized){var n=q(e);if(n){try{t.initialized=true;t.script=n;var i=u.tokenize(n);var o=s.parseHyperScript(i);if(!o)return;o.apply(r||e,e);setTimeout((function(){a(r||e,"load",{hyperscript:true})}),1)}catch(r){c.triggerEvent(e,"exception",{error:r});console.error("hyperscript errors were found on the following element:",e,"\n\n",r.message,r.stack)}}}}var D=new WeakMap;function _(e){var r=D.get(e);if(typeof r==="undefined"){D.set(e,r={})}return r}function j(e,r,t){if(e==null&&t){return true}var n=Object.prototype.toString.call(e).slice(8,-1);return n===r}function H(e){var t=e.meta&&e.meta.owner;if(t){var n=_(t);var a="elementScope";if(e.meta.feature&&e.meta.feature.behavior){a=e.meta.feature.behavior+"Scope"}var i=r(n,a);return i}else{return{}}}function G(e,r,t){if(e==="me"||e==="my"||e==="I"){return r["me"]}if(e==="it"||e==="its"){return r["result"]}if(e==="you"||e==="your"||e==="yourself"){return r["beingTold"]}else{if(t==="global"){return i[e]}else if(t==="element"){var n=H(r);return n[e]}else if(t==="local"){return r[e]}else{if(r.meta&&r.meta.context){var a=r.meta.context[e];if(typeof a!=="undefined"){return a}}var o=r[e];if(typeof o!=="undefined"){return o}else{var n=H(r);o=n[e];if(typeof o!=="undefined"){return o}else{return i[e]}}}}}function U(e,r,t,n){if(t==="global"){i[e]=n}else if(t==="element"){var a=H(r);a[e]=n}else if(t==="local"){r[e]=n}else{var o=r[e];if(typeof o!=="undefined"){r[e]=n}else{var a=H(r);o=a[e];if(typeof o!=="undefined"){a[e]=n}else{o=i[e];if(typeof o!=="undefined"){i[e]=n}else{r[e]=n}}}}}function B(e,r){if(e){if(e.resolveNext){return e.resolveNext(r)}else if(e.next){return e.next}else{return B(e.parent,r)}}}function W(e,r,t){if(e!=null){var n=t&&e.getAttribute?e.getAttribute(r):e[r];if(typeof n!=="undefined"){return n}if(p(e)){var a=[];for(var i of e){var o=t?i.getAttribute(r):i[r];if(o){a.push(o)}}return a}}}function z(e,r,t,n){if(typeof document==="undefined"||e===document.body){var a=i}else{var a=N(e)}while(r.length>0){var o=r.shift();var u=a[o];if(u==null){u={};a[o]=u}a=u}a[t]=n}function V(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 J(e,r){var t=[];var n=null;while(e!=null){t.push(e);n=e;e=e.meta.caller}if(n.meta.traceMap==null){n.meta.traceMap=new Map}if(!n.meta.traceMap.get(r)){var a={trace:t,print:function(e){e=e||console.error;e("hypertrace /// ");var r=0;for(var n=0;n<t.length;n++){r=Math.max(r,t[n].meta.feature.displayName.length)}for(var n=0;n<t.length;n++){var a=t[n];e(" ->",a.meta.feature.displayName.padEnd(r+2),"-",a.meta.owner)}}};n.meta.traceMap.set(r,a)}}function $(e){return e.replace(/:/g,(function(e){return"\\"+e}))}function K(e,r){if(e==null){throw new Error(r.sourceFor()+" is null")}}function Q(e){return e==undefined||e.length===0}function Y(e){var r=e.getRootNode();if(r instanceof Document||r instanceof ShadowRoot)return r;else return document}var X="document"in i?document.currentScript.src:null;return{typeCheck:j,forEach:v,implicitLoop:h,triggerEvent:a,matchesSelector:t,getScript:q,processNode:P,evaluate:F,parse:A,getScriptSelector:L,resolveSymbol:G,setSymbol:U,makeContext:I,findNext:B,unifiedEval:g,convertValue:R,unifiedExec:x,resolveProperty:W,assignToNamespace:z,registerHyperTrace:J,getHyperTrace:V,getInternalData:_,escapeSelector:$,nullCheck:K,isEmpty:Q,getRootNode:Y,hyperscriptUrl:X,HALT:k}}();{s.addLeafExpression("parenthesized",(function(e,r,t){if(t.matchOpToken("(")){var n=t.clearFollow();try{var a=e.requireElement("expression",t)}finally{t.restoreFollow(n)}t.requireOpToken(")");return a}}));s.addLeafExpression("string",(function(e,r,t){var n=t.matchTokenType("STRING");if(!n)return;var a=n.value;var i;if(n.template){var o=u.tokenize(a,true);i=e.parseStringTemplate(o)}else{i=[]}return{type:"string",token:n,args:i,op:function(e){var r="";for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n!==undefined){r+=n}}return r},evaluate:function(e){if(i.length===0){return a}else{return r.unifiedEval(this,e)}}}}));s.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("")}}}}));s.addLeafExpression("number",(function(e,r,t){var n=t.matchTokenType("NUMBER");if(!n)return;var a=n;var i=parseFloat(n.value);return{type:"number",value:i,numberToken:a,evaluate:function(){return i}}}));s.addLeafExpression("idRef",(function(e,r,t){var n=t.matchTokenType("ID_REF");if(!n)return;if(n.template){var a=n.value.substr(2,n.value.length-2);var i=u.tokenize(a);var o=e.requireElement("expression",i);return{type:"idRefTemplate",args:[o],op:function(e,t){return r.getRootNode(e.me).getElementById(t)},evaluate:function(e){return r.unifiedEval(this,e)}}}else{const e=n.value.substr(1);return{type:"idRef",css:n.value,value:e,evaluate:function(t){return r.getRootNode(t.me).getElementById(e)}}}}));s.addLeafExpression("classRef",(function(e,r,t){var n=t.matchTokenType("CLASS_REF");if(!n)return;if(n.template){var a=n.value.substr(2,n.value.length-2);var i=u.tokenize(a);var s=e.requireElement("expression",i);return{type:"classRefTemplate",args:[s],op:function(e,r){return new o("."+r,e.me)},evaluate:function(e){return r.unifiedEval(this,e)}}}else{const e=n.value;return{type:"classRef",css:e,evaluate:function(r){return new o(e,r.me)}}}}));class t extends o{constructor(e,r,t){super(e,r);this.templateParts=t;this.elements=t.filter((e=>e instanceof Element))}get css(){let e="",r=0;for(const t of this.templateParts){if(t instanceof Element){e+="[data-hs-query-id='"+r+++"']"}else e+=t}return e}[Symbol.iterator](){this.elements.forEach(((e,r)=>e.dataset.hsQueryId=r));const e=super[Symbol.iterator]();this.elements.forEach((e=>e.removeAttribute("data-hs-query-id")));return e}}s.addLeafExpression("queryRef",(function(e,r,n){var a=n.matchOpToken("<");if(!a)return;var i=n.consumeUntil("/");n.requireOpToken("/");n.requireOpToken(">");var s=i.map((function(e){if(e.type==="STRING"){return'"'+e.value+'"'}else{return e.value}})).join("");if(s.indexOf("$")>=0){var l=true;var c=u.tokenize(s,true);var f=e.parseStringTemplate(c)}return{type:"queryRef",css:s,args:f,op:function(e,...r){if(l){return new t(s,e.me,r)}else{return new o(s,e.me)}},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addLeafExpression("attributeRef",(function(e,r,t){var n=t.matchTokenType("ATTRIBUTE_REF");if(!n)return;var a=n.value;if(a.indexOf("[")===0){var i=a.substring(2,a.length-1)}else{var i=a.substring(1)}var o="["+i+"]";var u=i.split("=");var s=u[0];var l=u[1];if(l){if(l.indexOf('"')===0){l=l.substring(1,l.length-1)}}return{type:"attributeRef",name:s,css:o,value:l,op:function(e){var r=e.beingTold||e.me;if(r){return r.getAttribute(s)}},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addGrammarElement("objectKey",(function(e,r,t){var n;if(n=t.matchTokenType("STRING")){return{type:"objectKey",key:n.value,evaluate:function(){return n.value}}}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 i}}}}));s.addLeafExpression("objectLiteral",(function(e,r,t){if(!t.matchOpToken("{"))return;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)}}}));s.addGrammarElement("namedArgumentList",(function(e,r,t){if(!t.matchOpToken("("))return;var n=[];var a=[];if(!t.matchOpToken(")")){do{var i=t.requireTokenType("IDENTIFIER");t.requireOpToken(":");var o=e.requireElement("expression",t);a.push(o);n.push({name:i,value:o})}while(t.matchOpToken(","));t.requireOpToken(")")}return{type:"namedArgumentList",fields:n,args:[a],op:function(e,r){var t={_namedArgList_:true};for(var a=0;a<r.length;a++){var i=n[a];t[i.name.value]=r[a]}return t},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addGrammarElement("symbol",(function(e,r,t){var n="default";if(t.matchToken("global")){n="global"}else if(t.matchToken("element")||t.matchToken("module")){n="element";if(t.matchOpToken("'")){t.requireToken("s")}}else if(t.matchToken("local")){n="local"}var a=t.matchTokenType("IDENTIFIER");if(a){const e=a.value;return{type:"symbol",symbolType:n,token:a,name:e,evaluate:function(t){return r.resolveSymbol(e,t,n)}}}}));s.addGrammarElement("implicitMeTarget",(function(e,r,t){return{type:"implicitMeTarget",evaluate:function(e){return e.beingTold||e.me}}}));s.addLeafExpression("boolean",(function(e,r,t){var n=t.matchToken("true")||t.matchToken("false");if(!n)return;const a=n.value==="true";return{type:"boolean",evaluate:function(e){return a}}}));s.addLeafExpression("null",(function(e,r,t){if(t.matchToken("null")){return{type:"null",evaluate:function(e){return null}}}}));s.addLeafExpression("arrayLiteral",(function(e,r,t){if(!t.matchOpToken("["))return;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)}}}));s.addLeafExpression("blockLiteral",(function(e,r,t){if(!t.matchOpToken("\\"))return;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(e){var r=function(){for(var r=0;r<n.length;r++){e[n[r].value]=arguments[r]}return i.evaluate(e)};return r}}}));s.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*a},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addIndirectExpression("propertyAccess",(function(e,r,t,n){if(!t.matchOpToken("."))return;var a=t.requireTokenType("IDENTIFIER");var i={type:"propertyAccess",root:n,prop:a,args:[n],op:function(e,t){var n=r.resolveProperty(t,a.value,false);return n},evaluate:function(e){return r.unifiedEval(this,e)}};return e.parseElement("indirectExpression",t,i)}));s.addIndirectExpression("of",(function(e,r,t,n){if(!t.matchToken("of"))return;var a=e.requireElement("expression",t);var i=null;var o=n;while(o.root){i=o;o=o.root}if(o.type!=="symbol"&&o.type!=="attributeRef"){e.raiseParseError(t,"Cannot take a property of a non-symbol: "+o.type)}var u=o.type==="attributeRef";var s=o.name;var l={type:"ofExpression",prop:o.token,root:a,attribute:u,expression:n,args:[a],op:function(e,t){return r.resolveProperty(t,s,u)},evaluate:function(e){return r.unifiedEval(this,e)}};if(o.type==="attributeRef"){l.attribute=o}if(i){i.root=l;i.args=[l]}else{n=l}return e.parseElement("indirectExpression",t,n)}));s.addIndirectExpression("possessive",(function(e,r,t,n){if(e.possessivesDisabled){return}var a=t.matchOpToken("'");if(a||n.type==="symbol"&&(n.name==="my"||n.name==="its"||n.name==="your")&&t.currentToken().type==="IDENTIFIER"){if(a){t.requireToken("s")}var i=e.parseElement("attributeRef",t);if(i==null){var o=t.requireTokenType("IDENTIFIER")}var u={type:"possessive",root:n,attribute:i,prop:o,args:[n],op:function(e,t){if(i){var n=r.resolveProperty(t,i.name,true)}else{var n=r.resolveProperty(t,o.value,false)}return n},evaluate:function(e){return r.unifiedEval(this,e)}};return e.parseElement("indirectExpression",t,u)}}));s.addIndirectExpression("inExpression",(function(e,r,t,n){if(!t.matchToken("in"))return;if(n.type!=="idRef"&&n.type==="queryRef"||n.type==="classRef"){var a=true}var i=e.requireElement("expression",t);var o={type:"inExpression",root:n,args:[a?null:n,i],op:function(e,t,i){var o=[];if(a){r.forEach(i,(function(e){var r=e.querySelectorAll(n.css);for(var t=0;t<r.length;t++){o.push(r[t])}}))}else{r.forEach(t,(function(e){r.forEach(i,(function(r){if(e===r){o.push(e)}}))}))}if(o.length>0){return o}else{return null}},evaluate:function(e){return r.unifiedEval(this,e)}};return e.parseElement("indirectExpression",t,o)}));s.addIndirectExpression("asExpression",(function(e,r,t,n){if(!t.matchToken("as"))return;t.matchToken("a")||t.matchToken("an");var a=e.requireElement("dotOrColonPath",t).evaluate();var i={type:"asExpression",root:n,args:[n],op:function(e,t){return r.convertValue(t,a)},evaluate:function(e){return r.unifiedEval(this,e)}};return e.parseElement("indirectExpression",t,i)}));s.addIndirectExpression("functionCall",(function(e,r,t,n){if(!t.matchOpToken("("))return;var a=[];if(!t.matchOpToken(")")){do{a.push(e.requireElement("expression",t))}while(t.matchOpToken(","));t.requireOpToken(")")}if(n.root){var i={type:"functionCall",root:n,argExressions:a,args:[n.root,a],op:function(e,t,a){r.nullCheck(t,n.root);var i=t[n.prop.value];r.nullCheck(i,n);if(i.hyperfunc){a.push(e)}return i.apply(t,a)},evaluate:function(e){return r.unifiedEval(this,e)}}}else{var i={type:"functionCall",root:n,argExressions:a,args:[n,a],op:function(e,t,a){r.nullCheck(t,n);if(t.hyperfunc){a.push(e)}var i=t.apply(null,a);return i},evaluate:function(e){return r.unifiedEval(this,e)}}}return e.parseElement("indirectExpression",t,i)}));s.addIndirectExpression("attributeRefAccess",(function(e,r,t,n){var a=e.parseElement("attributeRef",t);if(!a)return;var i={type:"attributeRefAccess",root:n,attribute:a,args:[n],op:function(e,t){var n=r.resolveProperty(t,a.name,true);return n},evaluate:function(e){return c.unifiedEval(this,e)}};return i}));s.addIndirectExpression("arrayIndex",(function(e,r,t,n){if(!t.matchOpToken("["))return;var a=false;var i=false;var o=null;var u=null;if(t.matchOpToken("..")){a=true;o=e.requireElement("expression",t)}else{o=e.requireElement("expression",t);if(t.matchOpToken("..")){i=true;var l=t.currentToken();if(l.type!=="R_BRACKET"){u=e.parseElement("expression",t)}}}t.requireOpToken("]");var f={type:"arrayIndex",root:n,firstIndex:o,secondIndex:u,args:[n,o,u],op:function(e,r,t,n){if(a){return r.slice(0,t+1)}else if(i){if(n!=null){return r.slice(t,n+1)}else{return r.slice(t)}}else{return r[t]}},evaluate:function(e){return c.unifiedEval(this,e)}};return s.parseElement("indirectExpression",t,f)}));s.addGrammarElement("postfixExpression",(function(e,r,t){var n=e.parseElement("primaryExpression",t);if(t.matchOpToken(":")){var a=t.requireTokenType("IDENTIFIER");var i=!t.matchOpToken("!");return{type:"typeCheck",typeName:a,nullOk:i,args:[n],op:function(e,t){var n=r.typeCheck(t,a.value,i);if(n){return t}else{throw new Error("Typecheck failed! Expected: "+a.value)}},evaluate:function(e){return r.unifiedEval(this,e)}}}else{return n}}));s.addGrammarElement("logicalNot",(function(e,r,t){if(!t.matchToken("not"))return;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)}}}));s.addGrammarElement("noExpression",(function(e,r,t){if(!t.matchToken("no"))return;var n=e.requireElement("unaryExpression",t);return{type:"noExpression",root:n,args:[n],op:function(e,t){return r.isEmpty(t)},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addGrammarElement("negativeNumber",(function(e,r,t){if(!t.matchOpToken("-"))return;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)}}}));s.addGrammarElement("unaryExpression",(function(e,r,t){return e.parseAnyOf(["logicalNot","relativePositionalExpression","positionalExpression","noExpression","negativeNumber","postfixExpression"],t)}));var f=function(e,r,t,n){var a=r.querySelectorAll(t);for(var i=0;i<a.length;i++){var o=a[i];if(o.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_PRECEDING){return o}}if(n){return a[0]}};var m=function(e,r,t,n){var a=r.querySelectorAll(t);for(var i=a.length-1;i>=0;i--){var o=a[i];if(o.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return o}}if(n){return a[a.length-1]}};var p=function(e,r,t,n){var a=[];c.forEach(r,(function(r){if(r.matches(t)||r===e){a.push(r)}}));for(var i=0;i<a.length-1;i++){var o=a[i];if(o===e){return a[i+1]}}if(n){var u=a[0];if(u&&u.matches(t)){return u}}};var v=function(e,r,t,n){return p(e,Array.from(r).reverse(),t,n)};s.addGrammarElement("relativePositionalExpression",(function(e,r,t){var n=t.matchAnyToken("next","previous");if(!n)return;if(n.value==="next"){var a=true}var i=e.parseElement("expression",t);if(t.matchToken("from")){t.pushFollow("in");try{var o=e.requireElement("expression",t)}finally{t.popFollow()}}else{var o=e.requireElement("implicitMeTarget",t)}var u=false;var s;if(t.matchToken("in")){u=true;var l=e.requireElement("expression",t)}else if(t.matchToken("within")){s=e.requireElement("expression",t)}else{s=document.body}var c=false;if(t.matchToken("with")){t.requireToken("wrapping");c=true}return{type:"relativePositionalExpression",from:o,forwardSearch:a,inSearch:u,wrapping:c,inElt:l,withinElt:s,operator:n.value,args:[i,o,l,s],op:function(e,r,t,n,i){var o=r.css;if(o==null){throw"Expected a CSS value"}if(u){if(n){if(a){return p(t,n,o,c)}else{return v(t,n,o,c)}}}else{if(i){if(a){return f(t,i,o,c)}else{return m(t,i,o,c)}}}},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.addGrammarElement("positionalExpression",(function(e,r,t){var n=t.matchAnyToken("first","last","random");if(!n)return;t.matchAnyToken("in","from","of");var a=e.requireElement("unaryExpression",t);const i=n.value;return{type:"positionalExpression",rhs:a,operator:n.value,args:[a],op:function(e,r){if(r&&!Array.isArray(r)){if(r.children){r=r.children}else{r=Array.from(r)}}if(r){if(i==="first"){return r[0]}else if(i==="last"){return r[r.length-1]}else if(i==="random"){return r[Math.floor(Math.random()*r.length)]}}},evaluate:function(e){return r.unifiedEval(this,e)}}}));s.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(o==="+"){return r+t}else if(o==="-"){return r-t}else if(o==="*"){return r*t}else if(o==="/"){return r/t}else if(o==="%"){return r%t}},evaluate:function(e){return r.unifiedEval(this,e)}};a=t.matchAnyOpToken("+","-","*","/","%")}return n}));s.addGrammarElement("mathExpression",(function(e,r,t){return e.parseAnyOf(["mathOperator","unaryExpression"],t)}));s.addGrammarElement("comparisonOperator",(function(e,r,t){var n=e.parseElement("mathExpression",t);var a=t.matchAnyOpToken("<",">","<=",">=","==","===","!=","!==");var i=a?a.value:null;var o=true;var u=false;if(i==null){if(t.matchToken("is")||t.matchToken("am")){if(t.matchToken("not")){if(t.matchToken("in")){i="not in"}else if(t.matchToken("a")){i="not a";u=true}else if(t.matchToken("empty")){i="not empty";o=false}else{i="!="}}else if(t.matchToken("in")){i="in"}else if(t.matchToken("a")){i="a";u=true}else if(t.matchToken("empty")){i="empty";o=false}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){if(u){var s=t.requireTokenType("IDENTIFIER");var l=!t.matchOpToken("!")}else if(o){var c=e.requireElement("mathExpression",t);if(i==="match"||i==="not match"){c=c.css?c.css:c}}n={type:"comparisonOperator",operator:i,typeName:s,nullOk:l,lhs:n,rhs:c,args:[n,c],op:function(e,t,n){if(i==="=="){return t==n}else if(i==="!="){return t!=n}if(i==="in"){return n!=null&&Array.from(n).indexOf(t)>=0}if(i==="not in"){return n==null||Array.from(n).indexOf(t)<0}if(i==="match"){return t!=null&&t.matches(n)}if(i==="not match"){return t==null||!t.matches(n)}if(i==="contain"){return t!=null&&t.contains(n)}if(i==="not contain"){return t==null||!t.contains(n)}if(i==="==="){return t===n}else if(i==="!=="){return t!==n}else if(i==="<"){return t<n}else if(i===">"){return t>n}else if(i==="<="){return t<=n}else if(i===">="){return t>=n}else if(i==="empty"){return r.isEmpty(t)}else if(i==="not empty"){return!r.isEmpty(t)}else if(i==="a"){return r.typeCheck(t,s.value,l)}else if(i==="not a"){return!r.typeCheck(t,s.value,l)}else{throw"Unknown comparison : "+i}},evaluate:function(e){return r.unifiedEval(this,e)}}}return n}));s.addGrammarElement("comparisonExpression",(function(e,r,t){return e.parseAnyOf(["comparisonOperator","mathExpression"],t)}));s.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);const u=a.value;n={type:"logicalOperator",operator:u,lhs:n,rhs:o,args:[n,o],op:function(e,r,t){if(u==="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}));s.addGrammarElement("logicalExpression",(function(e,r,t){return e.parseAnyOf(["logicalOperator","mathExpression"],t)}));s.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)}}));s.addGrammarElement("expression",(function(e,r,t){t.matchToken("the");return e.parseElement("asyncExpression",t)}));s.addGrammarElement("assignableExpression",(function(e,r,t){t.matchToken("the");var n=e.parseElement("primaryExpression",t);if(n&&(n.type==="symbol"||n.type==="ofExpression"||n.type==="propertyAccess"||n.type==="attributeRefAccess"||n.type==="attributeRef"||n.type==="possessive")){return n}else{s.raiseParseError(t,"A target expression must be writable. The expression type '"+(n&&n.type)+"' is not.")}return n}));s.addGrammarElement("hyperscript",(function(e,r,t){var n=[];if(t.hasMore()){while(e.featureStart(t.currentToken())||t.currentToken().value==="("){var a=e.requireElement("feature",t);n.push(a);t.matchToken("end")}}return{type:"hyperscript",features:n,apply:function(e,r,t){for(const a of n){a.install(e,r,t)}}}}));var h=function(e){var r=[];if(e.token(0).value==="("&&(e.token(1).value===")"||e.token(2).value===","||e.token(2).value===")")){e.matchOpToken("(");do{r.push(e.requireTokenType("IDENTIFIER"))}while(e.matchOpToken(","));e.requireOpToken(")")}return r};s.addFeature("on",(function(r,t,n){if(!n.matchToken("on"))return;var a=false;if(n.matchToken("every")){a=true}var i=[];var o=null;do{var u=r.requireElement("eventName",n,"Expected event name");var s=u.evaluate();if(o){o=o+" or "+s}else{o="on "+s}var l=h(n);var f=null;if(n.matchOpToken("[")){f=r.requireElement("expression",n);n.requireOpToken("]")}if(n.currentToken().type==="NUMBER"){var m=n.consumeToken();var p=parseInt(m.value);if(n.matchToken("to")){var v=n.consumeToken();var d=parseInt(v.value)}else if(n.matchToken("and")){var E=true;n.requireToken("on")}}if(s==="intersection"){var T={};if(n.matchToken("with")){T["with"]=r.requireElement("expression",n).evaluate()}if(n.matchToken("having")){do{if(n.matchToken("margin")){T["rootMargin"]=r.requireElement("stringLike",n).evaluate()}else if(n.matchToken("threshold")){T["threshold"]=r.requireElement("expression",n).evaluate()}else{r.raiseParseError(n,"Unknown intersection config specification")}}while(n.matchToken("and"))}}else if(s==="mutation"){var y={};if(n.matchToken("of")){do{if(n.matchToken("anything")){y["attributes"]=true;y["subtree"]=true;y["characterData"]=true;y["childList"]=true}else if(n.matchToken("childList")){y["childList"]=true}else if(n.matchToken("attributes")){y["attributes"]=true;y["attributeOldValue"]=true}else if(n.matchToken("subtree")){y["subtree"]=true}else if(n.matchToken("characterData")){y["characterData"]=true;y["characterDataOldValue"]=true}else if(n.currentToken().type==="ATTRIBUTE_REF"){var k=n.consumeToken();if(y["attributeFilter"]==null){y["attributeFilter"]=[]}if(k.value.indexOf("@")==0){y["attributeFilter"].push(k.value.substring(1))}else{r.raiseParseError(n,"Only shorthand attribute references are allowed here")}}else{r.raiseParseError(n,"Unknown mutation config specification")}}while(n.matchToken("or"))}else{y["attributes"]=true;y["characterData"]=true;y["childList"]=true}}var x=null;var g=false;if(n.matchToken("from")){if(n.matchToken("elsewhere")){g=true}else{x=r.parseElement("expression",n);if(!x){r.raiseParseError(n,'Expected either target value or "elsewhere".')}}}if(x===null&&g===false&&n.matchToken("elsewhere")){g=true}if(n.matchToken("in")){var b=r.parseAnyOf(["idRef","queryRef","classRef"],n)}if(n.matchToken("debounced")){n.requireToken("at");var w=r.requireElement("timeExpression",n);var q=w.evaluate({})}else if(n.matchToken("throttled")){n.requireToken("at");var w=r.requireElement("timeExpression",n);var S=w.evaluate({})}i.push({execCount:0,every:a,on:s,args:l,filter:f,from:x,inExpr:b,elsewhere:g,startCount:p,endCount:d,unbounded:E,debounceTime:q,throttleTime:S,mutationSpec:y,intersectionSpec:T})}while(n.matchToken("or"));var N=[];var O=true;if(!a){if(n.matchToken("queue")){if(n.matchToken("all")){var I=true;var O=false}else if(n.matchToken("first")){var L=true}else if(n.matchToken("none")){var R=true}else{n.requireToken("last")}}}var C=r.parseElement("commandList",n);var A={type:"implicitReturn",op:function(e){e.meta.resolve();return t.HALT},execute:function(e){}};if(C){var F=C;var P=F;while(P.next){P=P.next}P.next=A}else{F=A}var M={displayName:o,events:i,start:F,every:a,executing:false,execCount:0,queue:N,execute:function(e){if(this.executing&&a===false){if(R||L&&N.length>0){return}if(O){M.queue.length=0}M.queue.push(e);return}M.execCount++;this.executing=true;e.meta.resolve=function(){M.executing=false;var e=M.queue.shift();if(e){setTimeout((function(){M.execute(e)}),1)}};e.meta.reject=function(r){console.error(r.message?r.message:r);var n=t.getHyperTrace(e,r);if(n){n.print()}t.triggerEvent(e.me,"exception",{error:r});M.executing=false;var a=M.queue.shift();if(a){setTimeout((function(){M.execute(a)}),1)}};F.execute(e)},install:function(r,n){for(const n of M.events){var a;if(n.elsewhere){a=[document]}else if(n.from){a=n.from.evaluate(t.makeContext(r,M,r,null))}else{a=[r]}t.forEach(a,(function(a){var i=n.on;if(n.mutationSpec){i="hyperscript:mutation";const e=new MutationObserver((function(e,r){console.log(a,e);if(!M.executing){c.triggerEvent(a,i,{mutationList:e,observer:r})}}));e.observe(a,n.mutationSpec)}if(n.intersectionSpec){i="hyperscript:insersection";const r=new IntersectionObserver((function(t){for(const o of t){var n={observer:r};n=e(n,o);n["intersecting"]=o.isIntersecting;c.triggerEvent(a,i,n)}}),n.intersectionSpec);r.observe(a)}a.addEventListener(i,(function e(o){if(r instanceof Node&&a!==r&&!r.isConnected){a.removeEventListener(i,e);return}var u=t.makeContext(r,M,r,o);if(n.elsewhere&&r.contains(o.target)){return}if(n.from){u.result=a}for(const e of n.args){u[e.value]=u.event[e.value]||("detail"in u.event?u.event["detail"][e.value]:null)}if(n.filter){var s=u.meta.context;u.meta.context=u.event;try{var l=n.filter.evaluate(u);if(l){}else{return}}finally{u.meta.context=s}}if(n.inExpr){var c=o.target;while(true){if(c.matches&&c.matches(n.inExpr.css)){u.result=c;break}else{c=c.parentElement;if(c==null){return}}}}n.execCount++;if(n.startCount){if(n.endCount){if(n.execCount<n.startCount||n.execCount>n.endCount){return}}else if(n.unbounded){if(n.execCount<n.startCount){return}}else if(n.execCount!==n.startCount){return}}if(n.debounceTime){if(n.debounced){clearTimeout(n.debounced)}n.debounced=setTimeout((function(){M.execute(u)}),n.debounceTime);return}if(n.throttleTime){if(n.lastExec&&Date.now()<n.lastExec+n.throttleTime){return}else{n.lastExec=Date.now()}}M.execute(u)}))}))}}};r.setParent(F,M);return M}));s.addFeature("def",(function(e,r,t){if(!t.matchToken("def"))return;var n=e.requireElement("dotOrColonPath",t);var a=n.evaluate();var i=a.split(".");var o=i.pop();var u=[];if(t.matchOpToken("(")){if(t.matchOpToken(")")){}else{do{u.push(t.requireTokenType("IDENTIFIER"))}while(t.matchOpToken(","));t.requireOpToken(")")}}var s=e.requireElement("commandList",t);if(t.matchToken("catch")){var l=t.requireTokenType("IDENTIFIER").value;var c=e.parseElement("commandList",t)}var f={displayName:o+"("+u.map((function(e){return e.value})).join(", ")+")",name:o,args:u,start:s,errorHandler:c,errorSymbol:l,install:function(e,t){var n=function(){var n=r.makeContext(t,f,e,null);n.meta.errorHandler=c;n.meta.errorSymmbol=l;for(var a=0;a<u.length;a++){var i=u[a];var o=arguments[a];if(i){n[i.value]=o}}n.meta.caller=arguments[u.length];if(n.meta.caller){n.meta.callingCommand=n.meta.caller.meta.command}var m,p=null;var v=new Promise((function(e,r){m=e;p=r}));s.execute(n);if(n.meta.returned){return n.meta.returnValue}else{n.meta.resolve=m;n.meta.reject=p;return v}};n.hyperfunc=true;n.hypername=a;r.assignToNamespace(e,i,o,n)}};var m={type:"implicitReturn",op:function(e){e.meta.returned=true;if(e.meta.resolve){e.meta.resolve()}return r.HALT},execute:function(e){}};if(s){var p=s;while(p.next){p=p.next}p.next=m}else{f.start=m}if(c){var p=c;while(p.next){p=p.next}p.next=m}e.setParent(s,f);return f}));s.addFeature("init",(function(e,r,t){if(!t.matchToken("init"))return;var n=e.parseElement("commandList",t);var a={start:n,install:function(e,t){setTimeout((function(){n&&n.execute(r.makeContext(e,a,e,null))}),0)}};var i={type:"implicitReturn",op:function(e){return r.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}));s.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.")}}));s.addFeature("behavior",(function(e,t,n){if(!n.matchToken("behavior"))return;var a=e.requireElement("dotOrColonPath",n).evaluate();var o=a.split(".");var u=o.pop();var s=[];if(n.matchOpToken("(")&&!n.matchOpToken(")")){do{s.push(n.requireTokenType("IDENTIFIER").value)}while(n.matchOpToken(","));n.requireOpToken(")")}var l=e.requireElement("hyperscript",n);for(var c=0;c<l.features.length;c++){var f=l.features[c];f.behavior=a}return{install:function(e,n){t.assignToNamespace(i.document&&i.document.body,o,u,(function(e,n,i){var o=t.getInternalData(e);var u=r(o,a+"Scope");for(var c=0;c<s.length;c++){u[s[c]]=i[s[c]]}l.apply(e,n)}))}}}));s.addFeature("install",(function(e,r,t){if(!t.matchToken("install"))return;var n=e.requireElement("dotOrColonPath",t).evaluate();var a=n.split(".");var o=e.parseElement("namedArgumentList",t);var u;return u={install:function(e,t){r.unifiedEval({args:[o],op:function(r,o){var u=i;for(var s=0;s<a.length;s++){u=u[a[s]];if(typeof u!=="object"&&typeof u!=="function")throw new Error("No such behavior defined as "+n)}if(!(u instanceof Function))throw new Error(n+" is not a behavior");u(e,t,o)}},r.makeContext(e,u,e))}}}));s.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.token(0,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)}}));s.addFeature("js",(function(r,t,n){if(!n.matchToken("js"))return;var a=r.requireElement("jsBody",n);var o=a.jsSource+"\nreturn { "+a.exposedFunctionNames.map((function(e){return e+":"+e})).join(",")+" } ";var u=new Function(o);return{jsSource:o,function:u,exposedFunctionNames:a.exposedFunctionNames,install:function(){e(i,u())}}}));s.addCommand("js",(function(e,r,t){if(!t.matchToken("js"))return;var n=[];if(t.matchOpToken("(")){if(t.matchOpToken(")")){}else{do{var o=t.requireTokenType("IDENTIFIER");n.push(o.value)}while(t.matchOpToken(","));t.requireOpToken(")")}}var u=e.requireElement("jsBody",t);t.matchToken("end");var s=a(Function,n.concat([u.jsSource]));var l={jsSource:u.jsSource,function:s,inputs:n,op:function(e){var t=[];n.forEach((function(n){t.push(r.resolveSymbol(n,e,"default"))}));var a=s.apply(i,t);if(a&&typeof a.then==="function"){return new Promise((function(t){a.then((function(n){e.result=n;t(r.findNext(this,e))}))}))}else{e.result=a;return r.findNext(this,e)}}};return l}));s.addCommand("async",(function(e,r,t){if(!t.matchToken("async"))return;if(t.matchToken("do")){var n=e.requireElement("commandList",t);var a=n;while(a.next)a=a.next;a.next=r.HALT;t.requireToken("end")}else{var n=e.requireElement("command",t)}var i={body:n,op:function(e){setTimeout((function(){n.execute(e)}));return r.findNext(this,e)}};return i}));s.addCommand("tell",(function(e,r,t){var n=t.currentToken();if(!t.matchToken("tell"))return;var a=e.requireElement("expression",t);var i=e.requireElement("commandList",t);if(t.hasMore()){t.requireToken("end")}var o="tell_"+n.start;var u={value:a,body:i,args:[a],resolveNext:function(e){var t=e.meta.iterators[o];if(t.index<t.value.length){e.beingTold=t.value[t.index++];return i}else{e.beingTold=t.originalBeingTold;if(this.next){return this.