github.com/vugu/vugu@v0.3.6-0.20240430171613-3f6f402e014b/domrender/renderer-js-script.go (about)

     1  package domrender
     2  
     3  // GENERATED FILE, DO NOT EDIT!  See renderer-js-script-maker.go
     4  
     5  const jsHelperScript = "(function(){if(window.vuguRender)return;const e=0,t=1,n=5,s=6,o=7,i=20,a=21,r=23,c=24,l=25,d=26,u=27,h=28,m=29,f=30,p=31,E=32,C=33,b=35,j=36,y=37,_=38,w=39,O=40,v=41;class g{constructor(e,t){return this.dataView=e,this.offset=t||0,this}readUint8(){var e=this.dataView.getUint8(this.offset);return this.offset++,e}readRefToString(){var e=this.dataView.getUint32(this.offset).toString(16).padStart(8,\"0\")+this.dataView.getUint32(this.offset+4).toString(16).padStart(8,\"0\");return this.offset+=8,e}readUint32(){var e=this.dataView.getUint32(this.offset);return this.offset+=4,e}readString(){var e=this.dataView.getUint32(this.offset),t=x.decode(new DataView(this.dataView.buffer,this.dataView.byteOffset+this.offset+4,e));return this.offset+=e+4,t}}let x=new TextDecoder;window.vuguGetActiveEvent=function(){let e=window.vuguState||{};return window.vuguState=e,e.activeEvent},window.vuguGetActiveEventTarget=function(){let e=window.vuguState||{};return window.vuguState=e,e.activeEvent&&e.activeEvent.target},window.vuguGetActiveEventCurrentTarget=function(){let e=window.vuguState||{};return window.vuguState=e,e.activeEvent&&e.activeEvent.currentTarget},window.vuguActiveEventPreventDefault=function(){let e=window.vuguState||{};window.vuguState=e,e.activeEvent&&e.activeEvent.preventDefault&&e.activeEvent.preventDefault()},window.vuguActiveEventStopPropagation=function(){let e=window.vuguState||{};window.vuguState=e,e.activeEvent&&e.activeEvent.stopPropagation&&e.activeEvent.stopPropagation()},window.vuguSetEventHandler=function(t){let e=window.vuguState||{};window.vuguState=e,e.eventHandlerFunc=t},window.vuguSetCallbackHandler=function(t){let e=window.vuguState||{};window.vuguState=e,e.callbackHandlerFunc=t},window.vuguGetRenderArray=function(){return window.vuguRenderArray||(window.vuguRenderArray=new Uint8Array(16384)),window.vuguRenderArray},window.vuguRender=function(){let A=window.vuguRenderArray;if(!window.vuguRenderArray)throw\"window.vuguRenderArray is not set\";let x=window.vuguState||{};window.vuguState=x;let S=new TextEncoder,M=new DataView(A.buffer,A.byteOffset,A.byteLength);var C=new g(M,0),k,E;x.mountPointEl=x.mountPointEl||null,x.el=x.el||null,x.bufferedInnerHTML=x.bufferedInnerHTML||null,x.nextElMove=x.nextElMove||null,x.elAttrNames=x.elAttrNames||{},x.eventHandlerMap=x.eventHandlerMap||{},x.elEventKeys=x.elEventKeys||{};instructionLoop:for(;!0;){let g=C.readUint8();try{switch(g){case e:break instructionLoop;case t:{x.el=null,x.nextElMove=null;break}case b:{let e=x.el;if(!e)throw\"opcodeSetProperty: no current reference\";let t=C.readString(),n=C.readString();e[t]=JSON.parse(n);break}case j:{let e=C.readString();x.el=document.querySelector(e),x.nextElMove=null;break}case s:{let e=x.el;if(!e)throw\"opcodeSetAttrStr: no current reference\";let t=C.readString(),n=C.readString();e.setAttribute(t,n),x.elAttrNames[t]=!0;break}case _:{let t=x.el;if(!t)throw\"opcodeSetAttrNSStr: no current reference\";let e=C.readString();e==\"\"&&(e=null);let n=C.readString(),s=C.readString();t.setAttributeNS(e,n,s),x.elAttrNames[n]=!0;break}case o:{x.elAttrNames={},x.elEventKeys={};let t=C.readString(),n=C.readString();if(x.mountPointEl)x.el=x.mountPointEl;else{let e=document.querySelector(t);if(!e)throw\"mount point selector not found: \"+t;x.mountPointEl=e,x.el=e}let e=x.el;if(e.nodeName.toUpperCase()!=n.toUpperCase()){let t=document.createElement(n);e.parentNode.replaceChild(t,e),x.mountPointEl=t,e=t}x.el=e,x.nextElMove=null;break}case n:{if(!x.el)throw\"no element selected\";if(x.nextElMove)throw\"cannot call opcodeRemoveOtherAttrs when nextElMove is set\";let e=[];for(let t=0;t<x.el.attributes.length;t++)x.elAttrNames[x.el.attributes[t].name]||e.push(x.el.attributes[t].name);for(let t=0;t<e.length;t++)x.el.attributes.removeNamedItem(e[t]);break}case l:{if(x.nextElMove==\"first_child\")x.nextElMove=null;else{let e=x.el.parentNode,t=x.el;for(;t.nextSibling;)e.removeChild(t.nextSibling);x.el=e,x.nextElMove=null}break}case i:{if(x.nextElMove){if(x.nextElMove==\"first_child\"){if(x.el=x.el.firstChild,!x.el)throw\"unable to find state.el.firstChild\"}else if(x.nextElMove==\"next_sibling\")if(x.el=x.el.nextSibling,!x.el)throw\"unable to find state.el.nextSibling\";x.nextElMove=null}if(!x.el)throw\"must have current selection to use opcodeMoveToFirstChild\";x.nextElMove=\"first_child\";break}case d:{if(x.nextElMove){if(x.nextElMove==\"first_child\"){if(x.el=x.el.firstChild,!x.el)throw\"unable to find state.el.firstChild\"}else if(x.nextElMove==\"next_sibling\")if(x.el=x.el.nextSibling,!x.el)throw\"unable to find state.el.nextSibling\";x.nextElMove=null}if(!x.el)throw\"must have current selection to use opcodeMoveToNextSibling\";x.nextElMove=\"next_sibling\";break}case a:{let e=C.readString();if(x.elAttrNames={},x.elEventKeys={},x.nextElMove==\"first_child\"){x.nextElMove=null;let t=x.el.firstChild;if(t)x.el=t;else{t=document.createElement(e),x.el.appendChild(t),x.el=t;break}}else if(x.nextElMove==\"next_sibling\"){x.nextElMove=null;let t=x.el.nextSibling;if(t)x.el=t;else{t=document.createElement(e),x.el.parentNode.appendChild(t),x.el=t;break}}else if(x.nextElMove)throw\"bad state.nextElMove value: \"+x.nextElMove;if(x.el.nodeType!=1||x.el.nodeName.toUpperCase()!=e.toUpperCase()){let t=document.createElement(e);x.el.parentNode.replaceChild(t,x.el),x.el=t}break}case w:{let e=C.readString(),t=C.readString();if(x.elAttrNames={},x.elEventKeys={},x.nextElMove==\"first_child\"){x.nextElMove=null;let n=x.el.firstChild;if(n)x.el=n;else{n=document.createElementNS(t,e),x.el.appendChild(n),x.el=n;break}}else if(x.nextElMove==\"next_sibling\"){x.nextElMove=null;let n=x.el.nextSibling;if(n)x.el=n;else{n=document.createElementNS(t,e),x.el.parentNode.appendChild(n),x.el=n;break}}else if(x.nextElMove)throw\"bad state.nextElMove value: \"+x.nextElMove;if(x.el.nodeType!=1||x.el.nodeName.toUpperCase()!=e.toUpperCase()){let n=document.createElementNS(t,e);x.el.parentNode.replaceChild(n,x.el),x.el=n}break}case r:{let e=C.readString();if(x.nextElMove==\"first_child\"){x.nextElMove=null;let t=x.el.firstChild;if(t)x.el=t;else{let t=document.createTextNode(e);x.el.appendChild(t),x.el=t;break}}else if(x.nextElMove==\"next_sibling\"){x.nextElMove=null;let t=x.el.nextSibling;if(t)x.el=t;else{let t=document.createTextNode(e);x.el.parentNode.appendChild(t),x.el=t;break}}else if(x.nextElMove)throw\"bad state.nextElMove value: \"+x.nextElMove;if(x.el.nodeType!=3){let t=document.createTextNode(e);x.el.parentNode.replaceChild(t,x.el),x.el=t}else x.el.textContent=e;break}case c:{let e=C.readString();if(x.nextElMove==\"first_child\"){x.nextElMove=null;let t=x.el.firstChild;if(t)x.el=t;else{let t=document.createComment(e);x.el.appendChild(t),x.el=t;break}}else if(x.nextElMove==\"next_sibling\"){x.nextElMove=null;let t=x.el.nextSibling;if(t)x.el=t;else{let t=document.createComment(e);x.el.parentNode.appendChild(t),x.el=t;break}}else if(x.nextElMove)throw\"bad state.nextElMove value: \"+x.nextElMove;if(x.el.nodeType!=8){let t=document.createComment(e);x.el.parentNode.replaceChild(t,x.el),x.el=t}else x.el.textContent=e;break}case y:{let e=C.readString();x.bufferedInnerHTML=(x.bufferedInnerHTML||\"\")+e;break}case m:{let e=C.readString();if(!x.el)throw\"opcodeSetInnerHTML must have currently selected element\";if(x.nextElMove)throw\"opcodeSetInnerHTML nextElMove must not be set\";if(x.el.nodeType!=1)throw\"opcodeSetInnerHTML currently selected element expected nodeType 1 but has: \"+x.el.nodeType;x.el.innerHTML=(x.bufferedInnerHTML||\"\")+e,x.bufferedInnerHTML=null;break}case u:{let t=C.readString(),e=x.eventHandlerMap[t]||{},n=[];for(let t in e)x.elEventKeys[t]||n.push(t);for(let t=0;t<n.length;t++){let s=n[t],i=e[s],o=s.split(\"|\");x.el.removeEventListener(o[0],i,{capture:+o[1],passive:+o[2]}),delete e[s]}Object.keys(e).length==0?delete x.eventHandlerMap[t]:x.eventHandlerMap[t]=e;break}case h:{let o=C.readString(),t=C.readString(),n=C.readUint8(),s=C.readUint8();if(!x.el)throw\"must have state.el set in order to call opcodeSetEventListener\";k=t+\"|\"+(n?\"1\":\"0\")+\"|\"+(s?\"1\":\"0\"),x.elEventKeys[k]=!0;let i=x.eventHandlerMap[o]||{},e=i[k];e||(e=function(i){x.activeEvent=i;let a={};for(let e in i)try{let t=typeof i[e];(t==\"boolean\"||t==\"number\"||t==\"string\")&&(a[e]=i[e])}catch{}if(i.target){a.target={};let e=i.target;for(let t in e)try{let n=typeof e[t];(n==\"boolean\"||n==\"number\"||n==\"string\")&&(a.target[t]=e[t])}catch{}}let d=JSON.stringify({position_id:o,event_type:t,capture:!!n,passive:!!s,event_summary:a}),r=S.encode(d);const c=r.byteLength-r.byteOffset,l=c+4,u=s=>{const t=16384,e=s+1,n=e%t;return n===0?e-1:e+(t-n)-1};let e=x.eventBuffer;if(!e||e.length<l){const t=u(l);e=new Uint8Array(t),x.eventBuffer=e,x.eventBufferView=new DataView(e.buffer,e.byteOffset,e.byteLength)}x.eventBuffer.set(r,4),x.eventBufferView.setUint32(0,c),x.eventHandlerFunc.call(null,e),x.activeEvent=null},i[k]=e,x.el.removeEventListener(t,e,{capture:n,passive:s})),x.el.addEventListener(t,e,{capture:n,passive:s}),x.eventHandlerMap[o]=i;break}case f:{let e=C.readString(),t=C.readString(),n=C.readUint8();if(n%2!=0)throw\"attrPairsLen is odd number: \"+n;E={};for(let e=0;e<n;e+=2){let t=C.readString(),s=C.readString();E[t]=s}x.elCSSTagsSet=x.elCSSTagsSet||[];let s=t;if(e==\"link\"&&(s=E.href),s==\"\"){this.console.log(\"element\",e,\"ignored due to empty key\");break}let o=null;if(this.document.querySelectorAll(e).forEach(t=>{let n;e==\"style\"?n=t.textContent:n=t.href,s==n&&(o=t)}),o)x.elCSSTagsSet.push(o);else{let n=this.document.createElement(e);for(let e in E)n.setAttribute(e,E[e]);n.vuguCreated=!0,t&&n.appendChild(document.createTextNode(t)),this.document.head.appendChild(n),x.elCSSTagsSet.push(n)}break}case p:{x.elCSSTagsSet=x.elCSSTagsSet||[],this.document.querySelectorAll(\"style,link\").forEach(e=>{if(!e.vuguCreated)return;if(x.elCSSTagsSet.findIndex(t=>t==e)>=0)return;e.parentNode.removeChild(e)}),x.elCSSTagsSet=null;break}case v:{let t=C.readUint32(),e=x.el;if(!e)throw\"opcodeCallbackLastElement: no current reference\";x.callbackHandlerFunc(t,e);break}case O:{let e=C.readUint32();x.callbackHandlerFunc(e);break}default:{console.error(\"found invalid opcode\",g);return}}}catch(e){throw this.console.log(\"Error during instruction loop. Data opcode=\",g,\", state.el=\",x.el,\", state.nextElMove=\",x.nextElMove,\", with error: \",e),e}}}})()"