@ai-gui/image 0.37.0 → 0.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/page/entry.js +3 -3
- package/package.json +11 -11
package/dist/page/entry.js
CHANGED
|
@@ -20,7 +20,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
20
20
|
`),ee+=ne,ee;const xe=findOpenInlineCode(ee),it=xe?ee.slice(0,xe.index):ee,ut=countUnescaped(it,"**"),ht=countUnescaped(it,"~~");return xe&&(ee+=xe.marker),ht%2===1&&(ee+="~~"),ut%2===1&&(ee+="**"),ee}function findOpenFence(te){let ee;for(const ne of te.split(/\r\n|\r|\n/)){const xe=ne.match(/^ {0,3}(`{3,}|~{3,})(.*)$/);if(!xe)continue;const it=xe[1];ee?it[0]===ee.char&&it.length>=ee.length&&xe[2].trim()===""&&(ee=void 0):ee={char:it[0],length:it.length,marker:it}}return ee?.marker}function findOpenInlineCode(te){let ee;for(let ne=0;ne<te.length;){if(te[ne]!=="`"||isEscaped(te,ne)){ne++;continue}let xe=ne+1;for(;te[xe]==="`";)xe++;const it=te.slice(ne,xe);ee?ee.marker===it&&(ee=void 0):ee={index:ne,marker:it},ne=xe}return ee}function countUnescaped(te,ee){let ne=0;for(let xe=0;xe<=te.length-ee.length;xe++)te.startsWith(ee,xe)&&!isEscaped(te,xe)&&(ne++,xe+=ee.length-1);return ne}function isEscaped(te,ee){let ne=0;for(let xe=ee-1;xe>=0&&te[xe]==="\\";xe--)ne++;return ne%2===1}function escapeHtml$5(te){return te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function sanitizeHtml(te,ee={}){if(ee.sanitizer)return ee.sanitizer(te);if(typeof window>"u"){if(ee.ssr==="throw")throw new Error("sanitizeHtml requires a DOM or an injected sanitizer");return escapeHtml$5(te)}return purify.sanitize(te)}function sanitizeRenderedHtml(te,ee,ne=!1){if(ee===!1)return te;const xe=typeof ee=="object"?ee:void 0;return ne&&xe?.trustPlugins!==!1?te:sanitizeHtml(te,xe)}const DEFAULT_MAX_STRING_LENGTH=2048,DEFAULT_MAX_DEPTH=8,DEFAULT_MAX_NODES=1e3,SENSITIVE_KEY_PARTS=["authorization","auth","accesstoken","refreshtoken","clientsecret","credentials","cookie","setcookie","proxyauthorization","password","passwd","apikey","secret","token"];var DebugEmitter=class{enabled;source;limits;listeners=new Set;sequence=0;constructor(te,ee={}){this.source=te,this.enabled=ee.debug===!0,this.limits={maxStringLength:positiveInteger(ee.maxStringLength,DEFAULT_MAX_STRING_LENGTH,"maxStringLength"),maxDepth:positiveInteger(ee.maxDepth,DEFAULT_MAX_DEPTH,"maxDepth"),maxNodes:positiveInteger(ee.maxNodes,DEFAULT_MAX_NODES,"maxNodes"),redact:ee.redact},this.enabled&&ee.onDebugEvent&&this.listeners.add(ee.onDebugEvent)}get active(){return this.enabled&&this.listeners.size>0}get available(){return this.enabled}subscribe(te){return this.enabled?(this.listeners.add(te),()=>this.listeners.delete(te)):()=>{}}emit(te,ee={}){if(!this.active)return;const ne=Object.freeze({type:te,source:this.source,timestamp:Date.now(),sequence:++this.sequence,data:safeDebugValue(ee,this.limits)});for(const xe of this.listeners)try{xe(ne)}catch{}}};function safeDebugValue(te,ee={}){const ne=positiveInteger(ee.maxStringLength,DEFAULT_MAX_STRING_LENGTH,"maxStringLength"),xe=positiveInteger(ee.maxDepth,DEFAULT_MAX_DEPTH,"maxDepth"),it=positiveInteger(ee.maxNodes,DEFAULT_MAX_NODES,"maxNodes"),ut=new WeakSet;let ht=0;const dt=(Mt,ft="",gt=[],xt=0)=>{if(++ht>it)return"[MAX_NODES]";if(isSensitiveKey(ft)||ee.redact?.({key:ft,path:gt,value:Mt}))return"[REDACTED]";if(typeof Mt=="string")return limitString(redactText(Mt),ne);if(Mt===null||typeof Mt=="boolean")return Mt;if(typeof Mt=="number")return Number.isFinite(Mt)?Mt:String(Mt);if(typeof Mt=="bigint"||typeof Mt=="symbol"||typeof Mt=="function"||typeof Mt>"u")return String(Mt);if(Mt instanceof Error)return{name:limitString(Mt.name||"Error",ne),message:limitString(redactText(Mt.message),ne)};if(xt>=xe)return"[MAX_DEPTH]";if(ut.has(Mt))return"[CIRCULAR]";ut.add(Mt);try{if(Array.isArray(Mt))return Mt.map((Dt,yt)=>dt(Dt,"",[...gt,yt],xt+1));const mt={};for(const[Dt,yt]of Object.entries(Mt))mt[Dt]=dt(yt,Dt,[...gt,Dt],xt+1);return mt}finally{ut.delete(Mt)}};return dt(te)}function isSensitiveKey(te){const ee=te.toLowerCase().replace(/[^a-z0-9]/g,"");return ee!==""&&SENSITIVE_KEY_PARTS.some(ne=>ee.includes(ne))}function redactText(te){return te.replace(/\bBearer\s+[^\s,;]+/gi,"Bearer [REDACTED]").replace(/([?&](?:access[_-]?token|refresh[_-]?token|client[_-]?secret|api[_-]?key|password|passwd|token|secret)=)[^&#\s]*/gi,"$1[REDACTED]").replace(/\b((?:access[_-]?token|refresh[_-]?token|client[_-]?secret|api[_-]?key|password|passwd|token|secret)\s*[:=]\s*)[^\s,;]+/gi,"$1[REDACTED]")}function limitString(te,ee){return te.includes("[REDACTED]")&&ee<20?`[REDACTED][TRUNCATED length=${te.length}]`:te.length>ee?`${te.slice(0,ee)}[TRUNCATED length=${te.length}]`:te}function positiveInteger(te,ee,ne){if(te===void 0)return ee;if(!Number.isSafeInteger(te)||te<=0)throw new TypeError(`${ne} must be a positive integer`);return te}function loadPlugins(te){return te?Array.isArray(te)?te:te():[]}function samePlugins(te,ee){return te===ee?!0:!te||!ee||te.length!==ee.length?!1:te.every((ne,xe)=>ne===ee[xe])}function assertPlugins(te,ee="plugins"){te&&te.forEach((ne,xe)=>{const it=`${ee}[${xe}]`;if(typeof ne=="function"){const ht=ne.name?`${ne.name}()`:"the factory";throw new TypeError(`${it} is a factory function, not a plugin. Call it: ${ht}`)}if(ne===null||typeof ne!="object")throw new TypeError(`${it} is ${ne===null?"null":typeof ne}, not a plugin object`);const{name:ut}=ne;if(typeof ut!="string"||ut.length===0)throw new TypeError(`${it} has no \`name\`. A plugin needs one: its stylesheet and its debug events are keyed by it`)})}function collectNodeRenderers(te=[],ee={}){assertPlugins(te);const ne={},xe=ee.debugTarget,it=xe?void 0:ee.debug===!0?new DebugEmitter("renderer",ee):void 0;for(const ut of te)for(const[ht,dt]of Object.entries(ut.nodeRenderers??{})){if(!(xe?.debugEnabled||ee.debug===!0)){ne[ht]=dt;continue}ne[ht]=(Mt,ft)=>{const gt=(xt,mt)=>xe?.emitDebug(xt,mt)??it?.emit(xt,mt);gt("plugin-render-started",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key});try{const xt=dt(Mt,ft);return isPromise(xt)?xt.then(mt=>(gt("async-output-resolved",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,outputKind:mt.kind}),gt("plugin-render-completed",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,outputKind:mt.kind}),mt),mt=>{throw gt("async-output-rejected",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,error:mt}),gt("plugin-render-failed",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,error:mt}),mt}):(gt("plugin-render-completed",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,outputKind:xt.kind}),xt)}catch(xt){throw gt("plugin-render-failed",{plugin:ut.name,nodeType:Mt.type,nodeKey:Mt.key,error:xt}),xt}}}return ne}function pluginNodeTypes(te=[]){return new Set(Object.keys(collectNodeRenderers(te)))}function isPromise(te){return typeof te?.then=="function"}function createParserWithMetadata(te={}){const ee=new MarkdownIt({html:te.rawHtml!==!1,linkify:!0});ee.use(markdownItCjkFriendlyPlugin),te.configureMd?.(ee);for(const ut of te.plugins??[])ut.extendParser?.(ee);const ne=!!(te.configureMd||te.plugins?.some(ut=>ut.extendParser)),xe=pluginNodeTypes(te.plugins),it=new Map;for(const ut of te.plugins??[])for(const ht of Object.keys(ut.nodeRenderers??{}))ut.isBlockComplete&&it.set(ht,ut.isBlockComplete);return(ut,ht=ut,dt=0)=>{const Mt={},ft=ee.parse(normalizeLineEndings(ut),Mt),gt=[],xt=[],mt=getLineOffsets(ht),Dt=new Map,yt=(wt,At)=>{const Lt=sourceRange(At,ht.length,mt,dt),bt=xt.at(-1),vt=bt&&bt.start===Lt.start&&bt.end===Lt.end?bt:void 0,Qt=Dt.get(Lt.start)??0;Dt.set(Lt.start,Qt+1),gt.push({key:`${Lt.start}:${Qt}`,...wt}),vt?vt.nodeEnd=gt.length:xt.push({...Lt,nodeStart:gt.length-1,nodeEnd:gt.length})};for(let wt=0;wt<ft.length;wt++){const At=ft[wt];if(At.type==="fence"){const Lt=At.info.trim();if(Lt.startsWith("card:")&&te.registry){const bt=Lt.slice(5),vt=te.registry.parse(bt,At.content),Qt=vt.complete&&isClosedFence(ht,At.map,At.markup),Ct=Qt&&vt.valid?getCardId(vt.data):void 0;yt({type:"card",card:{type:bt,data:vt.data,complete:Qt,valid:Qt&&vt.valid&&Ct!==!1,...typeof Ct=="string"?{id:Ct}:{}}},At.map)}else if(xe.has(Lt)){const bt=it.get(Lt);let Qt=isClosedFence(ht,At.map,At.markup);if(Qt&&bt)try{Qt=bt(Lt,At.content)}catch{Qt=!1}yt({type:Lt,content:At.content,attrs:{info:Lt},complete:Qt},At.map)}else yt({type:"code",tag:"code",attrs:Lt?{lang:Lt}:void 0,content:At.content},At.map);continue}if(At.type==="hr"){yt({type:"hr",tag:"hr"},At.map);continue}if(At.type==="code_block"){yt({type:"code",tag:"code",content:At.content},At.map);continue}if(At.type==="html_block"){yt({type:"html",content:At.content},At.map);continue}if(At.type==="heading_open"){const Lt=ft[wt+1],bt=Lt?.content??"";yt({type:"heading",tag:At.tag,content:bt,html:ee.renderer.renderInline(Lt?.children??[],ee.options,Mt)},At.map),wt+=2;continue}if(At.type==="paragraph_open"){const Lt=ft[wt+1],bt=Lt?.content??"";yt({type:"paragraph",tag:"p",content:bt,html:ee.renderer.renderInline(Lt?.children??[],ee.options,Mt)},At.map),wt+=2;continue}if(At.type.endsWith("_open")&&At.level===0){const Lt=At.type.replace("_open","_close");let bt=wt,vt=0;for(;bt<ft.length&&(ft[bt].type===At.type&&vt++,!(ft[bt].type===Lt&&(vt--,vt===0)));bt++);const Qt=ft.slice(wt,bt+1);yt({type:"html",content:ee.renderer.render(Qt,ee.options,Mt)},At.map),wt=bt;continue}if(At.block&&At.level===0){yt({type:"html",content:ee.renderer.render([At],ee.options,Mt)},At.map);continue}}return{nodes:gt,blocks:xt,incrementalSafe:!ne&&!hasReferenceSyntax(ht)}}}function getCardId(te){if(typeof te!="object"||te===null||Array.isArray(te)||!Object.hasOwn(te,"id"))return;const ee=te.id;return typeof ee=="string"&&ee.trim().length>0&&ee.length<=256?ee:!1}function getLineOffsets(te){const ee=[0];for(let ne=0;ne<te.length;ne++)te[ne]==="\r"?(te[ne+1]===`
|
|
21
21
|
`&&ne++,ee.push(ne+1)):te[ne]===`
|
|
22
22
|
`&&ee.push(ne+1);return ee.push(te.length),ee}function sourceRange(te,ee,ne,xe){return te?{start:xe+Math.min(ne[te[0]]??ee,ee),end:xe+Math.min(ne[te[1]]??ee,ee)}:{start:xe,end:xe+ee}}function hasReferenceSyntax(te){return/^ {0,3}\[[^\]\n]+\]:/m.test(te)||/\[[^\]\n]+\]\s*\[[^\]\n]*\]/.test(te)||/(^|[^!])\[[^\]\n]+\](?![([])/m.test(te)}function isClosedFence(te,ee,ne){if(!ee)return!1;const xe=te.split(/\r\n|\r|\n/)[ee[1]-1]?.trim()??"";return xe.length<ne.length||xe[0]!==ne[0]?!1:xe.split("").every(it=>it===ne[0])}function normalizeLineEndings(te){return te.replace(/\r\n|\r/g,`
|
|
23
|
-
`)}const baseCss=["[data-aigui-renderer]{max-width:100%}","[data-aigui-renderer] img,[data-aigui-renderer] svg,[data-aigui-renderer] video,[data-aigui-renderer] canvas{max-width:100%;height:auto}","[data-aigui-renderer] pre{max-width:100%;overflow-x:auto}","[data-aigui-renderer] code{overflow-wrap:anywhere}","[data-aigui-renderer] pre code{overflow-wrap:normal}","[data-aigui-renderer] table:where(:not([data-aigui-resultset] *):not([data-aigui-dashboard] *)){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}","[data-aigui-renderer] p,[data-aigui-renderer] li,[data-aigui-renderer] h1,[data-aigui-renderer] h2,[data-aigui-renderer] h3{overflow-wrap:break-word}","[data-aigui-renderer] a{overflow-wrap:anywhere}","[data-aigui-renderer] [data-aigui-chart],[data-aigui-renderer] [data-aigui-mermaid],[data-aigui-renderer] [data-aigui-map],[data-aigui-renderer] [data-aigui-molecule]{max-width:100%;overflow-x:auto}"].join("");function collectPluginStyles(te){const ee=new Map;ee.set("base",baseCss);for(const ne of te??[]){const xe=ne?.css?.trim();xe&&(xe.startsWith("@import")&&!/@import\s+url\(|@import\s+["'](?:https?:)?\/\//.test(xe)||ee.set(ne.name,xe))}return[...ee].map(([ne,xe])=>({name:ne,css:xe}))}const STYLE_ATTR="data-aigui-style";function injectPluginStyles(te,ee){const ne=ee??(typeof document>"u"?void 0:document);if(ne?.head)for(const{name:xe,css:it}of collectPluginStyles(te)){if(ne.querySelector(`style[${STYLE_ATTR}="${CSS_ESCAPE(xe)}"]`))continue;const ut=ne.createElement("style");ut.setAttribute(STYLE_ATTR,xe),ut.textContent=it,ne.head.appendChild(ut)}}function CSS_ESCAPE(te){return te.replace(/["\\]/g,"\\$&")}function resolveMessages(te,ee){const ne=te.en??{};if(!ee)return ne;const xe=te[ee];if(xe)return{...ne,...xe};const it=ee.split("-")[0],ut=it&&it!==ee?te[it]:void 0;return ut?{...ne,...ut}:ne}function translate$2(te,ee,ne){return resolveMessages(te,ee)[ne]??ne}function measure(te,ee){const ne=typeof te.getBoundingClientRect=="function"?te.getBoundingClientRect():void 0,xe=ht=>Number.parseFloat(te.getAttribute(ht)??""),it=ht=>{const dt=(te.getAttribute("viewBox")??"").split(/[\s,]+/).map(Number);return dt.length===4&&Number.isFinite(dt[ht])?dt[ht]:Number.NaN},ut=(...ht)=>ht.find(dt=>Number.isFinite(dt)&&dt>0);return{width:Math.round(ut(ee.width??Number.NaN,ne?.width??Number.NaN,xe("width"),it(2),720)),height:Math.round(ut(ee.height??Number.NaN,ne?.height??Number.NaN,xe("height"),it(3),400))}}function rasterisable(te){const ee=te.cloneNode(!0),ne=Array.from(ee.querySelectorAll("foreignObject"));for(const xe of ne){const it=(xe.textContent??"").trim(),ut=xe.parentNode;if(!ut)continue;if(!it){ut.removeChild(xe);continue}const ht=Number.parseFloat(xe.getAttribute("x")??"0"),dt=Number.parseFloat(xe.getAttribute("y")??"0"),Mt=Number.parseFloat(xe.getAttribute("width")??"0"),ft=Number.parseFloat(xe.getAttribute("height")??"0"),gt=document.createElementNS("http://www.w3.org/2000/svg","text");gt.setAttribute("x",String(ht+Mt/2)),gt.setAttribute("y",String(dt+ft/2)),gt.setAttribute("text-anchor","middle"),gt.setAttribute("dominant-baseline","middle"),gt.setAttribute("font-size","14"),gt.setAttribute("fill","currentColor"),gt.textContent=it,ut.replaceChild(gt,xe)}return ee}async function exportSVGToImage(te,ee={}){const{width:ne,height:xe}=measure(te,ee),it=ee.scale&&ee.scale>0?ee.scale:globalThis.devicePixelRatio||1,ut=new XMLSerializer().serializeToString(rasterisable(te)),ht=/\sxmlns=/.test(ut)?ut:ut.replace(/^<svg/,'<svg xmlns="http://www.w3.org/2000/svg"'),dt=URL.createObjectURL(new Blob([ht],{type:"image/svg+xml;charset=utf-8"}));try{const Mt=await loadImage(dt),ft=document.createElement("canvas");ft.width=Math.max(1,Math.round(ne*it)),ft.height=Math.max(1,Math.round(xe*it));const gt=ft.getContext("2d");if(!gt)throw new Error("This browser cannot rasterize images");const xt=ee.background??"#ffffff";return xt!=="transparent"&&(gt.fillStyle=xt,gt.fillRect(0,0,ft.width,ft.height)),gt.scale(it,it),gt.drawImage(Mt,0,0,ne,xe),{dataUrl:ft.toDataURL(ee.type??"image/png",ee.quality),width:ft.width,height:ft.height}}finally{URL.revokeObjectURL(dt)}}async function exportRenderedImages(te,ee={}){const ne=[];for(const xe of Array.from(te.querySelectorAll("svg")))if(!xe.closest(".katex"))try{ne.push(await exportSVGToImage(xe,ee))}catch(it){ee.onSkip?.(xe,it)}return ne}function loadImage(te){return new Promise((ee,ne)=>{const xe=new Image;xe.onload=()=>ee(xe),xe.onerror=()=>ne(new Error("The drawing could not be decoded")),xe.src=te})}function diffAst(te,ee){const ne=[],xe=new Set(ee.map(ut=>ut.key)),it=[...te];for(let ut=it.length-1;ut>=0;ut--)xe.has(it[ut].key)||(ne.push({op:"remove",key:it[ut].key}),it.splice(ut,1));for(let ut=0;ut<ee.length;ut++){const ht=ee[ut],dt=it.findIndex(Mt=>Mt.key===ht.key);if(dt===-1){ne.push({op:"insert",index:ut,node:ht}),it.splice(ut,0,ht);continue}if(dt!==ut){ne.push({op:"move",key:ht.key,index:ut});const[Mt]=it.splice(dt,1);it.splice(ut,0,Mt)}nodeEqual(it[ut],ht)||(ne.push({op:"update",key:ht.key,node:ht}),it[ut]=ht)}return ne}function nodeEqual(te,ee){return te===ee?!0:JSON.stringify(te)===JSON.stringify(ee)}var Renderer$1=class{debugSource="renderer";buffer="";prevAst=[];parse;parsed;options;sanitize;generation=0;activeFeed;renderScheduled=!1;scheduleGeneration=0;debug;constructor(ee={}){this.options=ee,assertPlugins(ee.plugins),this.debug=new DebugEmitter(this.debugSource,ee),this.sanitize=ee.sanitize===!1?!1:typeof ee.sanitize=="object"?ee.sanitize:{},this.registerPluginCards(ee.plugins),this.parse=createParserWithMetadata({registry:ee.registry,plugins:ee.plugins,rawHtml:ee.rawHtml})}get plugins(){return this.options.plugins??[]}setPlugins(ee){assertPlugins(ee),!samePlugins(this.options.plugins,ee)&&(this.options={...this.options,plugins:ee},this.registerPluginCards(ee),this.parse=createParserWithMetadata({registry:this.options.registry,plugins:ee,rawHtml:this.options.rawHtml}),this.parsed=void 0,this.renderScheduled=!1,this.scheduleGeneration++,this.debug.active&&this.debug.emit("plugins-changed",{plugins:(ee??[]).map(ne=>ne.name)}),this.render())}registerPluginCards(ee){const ne=this.options.registry;if(ne)for(const xe of ee??[])for(const it of xe.cards??[])ne.register(it)}get debugEnabled(){return this.debug.available}emitDebug(ee,ne={}){this.debug.emit(ee,ne)}push(ee){this.buffer+=ee,this.debug.active&&this.debug.emit("chunk-received",{chunk:ee,length:ee.length,bufferLength:this.buffer.length}),this.scheduleRender()}subscribeDebug(ee){return this.debug.subscribe(ee)}async feed(ee,ne={}){const xe=++this.generation;this.cancelActiveFeed(createAbortError("Superseded by a newer feed")),this.debug.active&&this.debug.emit("feed-started",{generation:xe});const it=new TextDecoder,ut=ne.signal;if(ut?.aborted)throw abortReason$1(ut);let ht=!1,dt;const Mt=()=>{ht=!0,dt=abortReason$1(ut),this.activeFeed?.generation===xe&&this.cancelActiveFeed(dt)};ut?.addEventListener("abort",Mt,{once:!0});const ft=gt=>{if(xe!==this.generation||ht)return;const xt=typeof gt=="string"?it.decode()+gt:it.decode(gt,{stream:!0});xt&&this.push(xt)};try{if(isReadableStream$2(ee)){const gt=ee.getReader();let xt=!1;this.activeFeed={generation:xe,cancel:async mt=>{xt||(xt=!0,await gt.cancel(mt))}};try{for(;;){const{done:mt,value:Dt}=await gt.read();if(mt||xe!==this.generation||ht)break;Dt!=null&&ft(Dt)}}finally{gt.releaseLock()}}else{const gt=ee[Symbol.asyncIterator]();let xt=!1;this.activeFeed={generation:xe,cancel:async()=>{xt||(xt=!0,await gt.return?.())}};try{for(;;){const{done:mt,value:Dt}=await gt.next();if(mt||xe!==this.generation||ht)break;ft(Dt)}}finally{(xe!==this.generation||ht)&&!xt&&(xt=!0,await gt.return?.())}}if(xe===this.generation&&!ht){const gt=it.decode();gt&&this.push(gt),this.flush()}if(ht)throw this.debug.active&&this.debug.emit("feed-cancelled",{generation:xe,error:dt}),dt;xe===this.generation&&this.debug.active&&this.debug.emit("feed-completed",{generation:xe,bufferLength:this.buffer.length})}finally{!ht&&xe!==this.generation&&this.debug.active&&this.debug.emit("feed-cancelled",{generation:xe,reason:"superseded-or-reset"}),ut?.removeEventListener("abort",Mt),this.activeFeed?.generation===xe&&(this.activeFeed=void 0)}}reset(){this.generation++,this.cancelActiveFeed(createAbortError("Renderer reset")),this.activeFeed=void 0,this.buffer="",this.renderScheduled=!1,this.scheduleGeneration++;const ee=diffAst(this.prevAst,[]);this.prevAst=[],this.parsed=void 0,this.options.onPatch?.(ee,[]),this.debug.active&&this.debug.emit("renderer-reset",{patches:ee})}flush(){this.renderScheduled&&(this.renderScheduled=!1,this.scheduleGeneration++,this.render())}scheduleRender(){if(!this.options.scheduler){this.render();return}if(this.renderScheduled)return;this.renderScheduled=!0;const ee=++this.scheduleGeneration;this.options.scheduler(()=>{!this.renderScheduled||ee!==this.scheduleGeneration||(this.renderScheduled=!1,this.render())})}cancelActiveFeed(ee){const ne=this.activeFeed;ne&&Promise.resolve(ne.cancel(ee)).catch(()=>{})}render(){const ee=this.debug.active,ne=ee?now$1():0,xe=this.parsed;let it,ut="full";if(xe?.incrementalSafe&&xe.blocks.length>1){const mt=xe.blocks.at(-1),Dt=xe.blocks.slice(0,-1),yt=mt.nodeStart,wt=this.buffer.slice(mt.start),At=repairMarkdown(wt);ee&&this.debug.emit("markdown-repaired",{mode:"mutable-tail",raw:wt,rawLength:wt.length,repaired:At,repairedLength:At.length,sourceOffset:mt.start});const Lt=ee?now$1():0,bt=this.parse(At,wt,mt.start);if(ee&&this.debug.emit("mutable-tail-reparsed",{sourceOffset:mt.start,durationMs:now$1()-Lt}),bt.incrementalSafe)ut="mutable-tail",this.sanitize!==!1&&this.sanitizeNodesWithDebug(bt.nodes),it={nodes:[...xe.nodes.slice(0,yt),...bt.nodes],blocks:[...Dt,...bt.blocks.map(vt=>({...vt,nodeStart:vt.nodeStart+yt,nodeEnd:vt.nodeEnd+yt}))],incrementalSafe:!0},ee&&this.debug.emit("stable-prefix-committed",{blocks:Dt.length,nodes:yt});else{const vt=repairMarkdown(this.buffer);ee&&this.debug.emit("markdown-repaired",{mode:"full",raw:this.buffer,rawLength:this.buffer.length,repaired:vt,repairedLength:vt.length});const Qt=ee?now$1():0;it=this.parse(vt,this.buffer),ee&&this.debug.emit("parse-completed",{mode:"full",durationMs:now$1()-Qt}),this.sanitize!==!1&&this.sanitizeNodesWithDebug(it.nodes)}}else{const mt=repairMarkdown(this.buffer);ee&&this.debug.emit("markdown-repaired",{mode:"full",raw:this.buffer,rawLength:this.buffer.length,repaired:mt,repairedLength:mt.length});const Dt=ee?now$1():0;it=this.parse(mt,this.buffer),ee&&this.debug.emit("parse-completed",{mode:"full",durationMs:now$1()-Dt}),this.sanitize!==!1&&this.sanitizeNodesWithDebug(it.nodes)}const ht=it.nodes;for(const mt of this.options.plugins??[])if(mt.onASTCommit)try{mt.onASTCommit(ht,{generation:this.generation,emitDebug:(Dt,yt={})=>this.debug.emit(Dt,{plugin:mt.name,...yt})})}catch(Dt){ee&&this.debug.emit("plugin-commit-failed",{plugin:mt.name,error:Dt})}const dt=ee?now$1():0,Mt=diffAst(this.prevAst,ht),ft=ee?now$1()-dt:0;this.parsed=it,this.prevAst=ht;const gt=ee?now$1():0;Mt.length>0&&this.options.onPatch?.(Mt,ht);const xt=ee?now$1()-gt:0;ee&&(this.debug.emit("ast-snapshot",{mode:ut,nodes:ht}),this.debug.emit("ast-patches",{patches:Mt,durationMs:ft}),this.debug.emit("patch-dispatched",{patches:Mt.length,durationMs:xt,renderDurationMs:now$1()-ne}))}sanitizeNodesWithDebug(ee){if(this.sanitize===!1)return;if(!this.debug.active){sanitizeNodes(ee,this.sanitize);return}const ne=nodeMarkupSize(ee),xe=now$1();sanitizeNodes(ee,this.sanitize),this.debug.emit("sanitizer-completed",{inputSize:ne,outputSize:nodeMarkupSize(ee),durationMs:now$1()-xe})}};function sanitizeNodes(te,ee){for(const ne of te)ne.type==="html"&&typeof ne.content=="string"&&(ne.content=sanitizeHtml(ne.content,ee)),ne.html&&(ne.html=sanitizeHtml(ne.html,ee)),ne.children&&sanitizeNodes(ne.children,ee)}function isReadableStream$2(te){return"getReader"in te&&typeof te.getReader=="function"}function abortReason$1(te){return te?.reason??createAbortError("The operation was aborted")}function createAbortError(te){const ee=new Error(te);return ee.name="AbortError",ee}function now$1(){return typeof performance>"u"?Date.now():performance.now()}function nodeMarkupSize(te){let ee=0;for(const ne of te)ee+=ne.content?.length??0,ee+=ne.html?.length??0,ne.children&&(ee+=nodeMarkupSize(ne.children));return ee}function renderOutputToElement(te,ee,ne={}){switch(te.kind){case"html":{const xe=document.createElement("div");return xe.innerHTML=sanitizeRenderedHtml(te.html,ee,te.trusted),xe}case"element":{const xe=document.createElement(te.tag);for(const[it,ut]of Object.entries(te.props??{}))it==="class"||it==="className"?xe.className=String(ut):xe.setAttribute(it,String(ut));for(const it of te.children??[])xe.appendChild(renderOutputToElement(it,ee,ne));return xe}case"card":{const xe=document.createElement("pre");xe.setAttribute("data-aigui-card-fallback","");const it=document.createElement("code");return it.textContent=JSON.stringify(te.data,null,2),xe.appendChild(it),xe}case"mount":{const xe=document.createElement("div");return xe.setAttribute("data-aigui-mount",""),queueMicrotask(()=>{if(xe.__aiguiDisposed)return;const it=te.mount(xe,ne);typeof it=="function"&&(xe.__aiguiDisposed?it():xe.__aiguiCleanup=it)}),xe}}}function renderNodeToElement(te,ee){const ne=(ee.nodeRenderers??collectNodeRenderers(ee.plugins))[te.type];if(ne){if(te.complete===!1){const xe=document.createElement("div");return xe.setAttribute("data-aigui-block-loading",""),xe.setAttribute("data-block-type",te.type),xe}try{const xe=ne(te,{theme:ee.theme,locale:ee.locale});if(typeof xe?.then=="function"){const it=document.createElement("div");return it.setAttribute("data-aigui-async-pending",""),xe.then(ut=>{it.__aiguiDisposed||(it.removeAttribute("data-aigui-async-pending"),it.replaceChildren(renderOutputToElement(ut,ee.sanitize,createRenderMountContext(ee))))},()=>{it.__aiguiDisposed||(it.removeAttribute("data-aigui-async-pending"),it.setAttribute("data-aigui-async-error",""))}),it}return renderOutputToElement(xe,ee.sanitize,createRenderMountContext(ee))}catch{return renderFallback(te,ee)}}switch(te.type){case"heading":{const xe=document.createElement(te.tag??"h1");return xe.innerHTML=renderHtml(te.html??"",ee),xe}case"paragraph":{const xe=document.createElement("p");return xe.innerHTML=renderHtml(te.html??"",ee),xe}case"code":{const xe=document.createElement("pre");te.attrs?.lang&&xe.setAttribute("data-lang",te.attrs.lang);const it=document.createElement("code");return it.textContent=te.content??"",xe.appendChild(it),xe}case"hr":return document.createElement("hr");case"html":{const xe=document.createElement("div");return xe.innerHTML=renderHtml(te.content??"",ee),xe}case"card":return renderCardElement(te,ee);default:return renderFallback(te,ee)}}function renderFallback(te,ee){const ne=document.createElement("div");return ne.innerHTML=renderHtml(te.html??te.content??"",ee),ne}function renderHtml(te,ee){return ee.sanitized||ee.sanitize===!1?te:sanitizeHtml(te,typeof ee.sanitize=="object"?ee.sanitize:void 0)}function renderCardElement(te,ee){const ne=te.card;if(!ne)return document.createElement("div");if(!ne.complete){const ht=document.createElement("div");return ht.setAttribute("data-aigui-card-loading",""),ht.setAttribute("data-card-type",ne.type),ht}if(!ne.valid){const ht=document.createElement("pre");ht.setAttribute("data-aigui-card-invalid","");const dt=document.createElement("code");return dt.textContent=JSON.stringify(ne.data,null,2),ht.appendChild(dt),ht}const xe=ee.registry?.getRender(ne.type);if(!xe)return createCardFallback(ne,ee);const it=document.createElement("div");it.setAttribute("data-aigui-card",ne.type);const ut=createCardController(it,ne,xe,ee);return it.__aiguiCardController=ut,it.__aiguiCleanup=()=>ut.destroy(),it}function createRenderMountContext(te){return{mountCard(ee,ne){return mountCardSlot(ee,ne,te)}}}function mountCardSlot(te,ee,ne){const xe=ne.registry?.getRender(ee.type);if(xe)return createVanillaCardSlot(te,ee.data,xe,()=>({state:{status:"idle"},onAction:it=>ne.onCardAction?.({...it,cardType:ee.type})}))}function createVanillaCardSlot(te,ee,ne,xe){let it=!1,ut,ht;const dt=Mt=>{const ft=ne(Mt,xe());isVanillaCardInstance(ft)?(ut=ft,ht=ft.element):(ut=void 0,ht=ft),te.replaceChildren(ht)};return dt(ee),{element:()=>ht,update(Mt){it||(ut?ut.update(Mt,xe()):dt(Mt))},destroy(){it||(it=!0,ut?.destroy?.(),ut=void 0)}}}function createCardFallback(te,ee){const ne=document.createElement("pre");ne.setAttribute("data-aigui-card-fallback","");const xe=document.createElement("code");ne.appendChild(xe);const it=dt=>{ne.removeAttribute("data-aigui-card-missing"),xe.textContent=JSON.stringify(dt,null,2)},ut=()=>{ne.setAttribute("data-aigui-card-missing",""),xe.textContent="Card data is unavailable"};let ht=()=>{};if(te.id!==void 0&&ee.cardStore){try{const dt=ee.cardStore.register({id:te.id,type:te.type,data:te.data});it(dt.data)}catch(dt){ne.setAttribute("data-aigui-card-store-error",""),xe.textContent=dt instanceof Error?dt.message:"Card registration failed"}ht=ee.cardStore.subscribe(te.id,dt=>{!dt||dt.type!==te.type?ut():(ne.removeAttribute("data-aigui-card-store-error"),it(dt.data))}),ne.__aiguiCleanup=ht}else it(te.data);return ne}function updateCardElement(te,ee){return te.__aiguiCardController?.updateNode(ee)??!1}function createCardController(te,ee,ne,xe){let it=ee,ut=!1,ht=()=>{},dt,Mt=!1;const ft=it.id,gt=Lt=>xe.onCardAction?.({...Lt,cardType:it.type,...ft===void 0?{}:{cardId:ft}});let xt=it.data,mt={status:"idle"},Dt;if(ft!==void 0&&xe.cardStore)try{const Lt=xe.cardStore.register({id:ft,type:it.type,data:xt});xt=Lt.data,mt=Lt.action}catch(Lt){Dt=Lt}const yt=Lt=>{dt=createVanillaCardSlot(te,Lt,ne,()=>({state:mt,onAction:gt}))},wt=(Lt,bt)=>{if(!ut){if(xt=Lt,mt=bt,te.removeAttribute("data-aigui-card-store-error"),Mt){Mt=!1,te.removeAttribute("data-aigui-card-missing");const vt=dt?.element();vt&&te.replaceChildren(vt)}dt?dt.update(xt):yt(xt)}},At=()=>{if(ut||Mt)return;Mt=!0,te.removeAttribute("data-aigui-card-store-error"),te.setAttribute("data-aigui-card-missing","");const Lt=document.createElement("code");Lt.textContent="Card data is unavailable",te.replaceChildren(Lt)};if(Dt===void 0)yt(xt);else{te.setAttribute("data-aigui-card-store-error","");const Lt=document.createElement("code");Lt.textContent=Dt instanceof Error?Dt.message:"Card registration failed",te.replaceChildren(Lt)}return ft!==void 0&&xe.cardStore&&(ht=xe.cardStore.subscribe(ft,Lt=>{if(!Lt||Lt.type!==it.type){At();return}wt(Lt.data,Lt.action)})),{updateNode(Lt){const bt=Lt.card;return!bt?.complete||!bt.valid||bt.type!==it.type||bt.id!==ft?!1:(it=bt,(ft===void 0||!xe.cardStore)&&wt(bt.data,mt),!0)},destroy(){ut||(ut=!0,ht(),ht=()=>{},dt?.destroy(),dt=void 0)}}}function isVanillaCardInstance(te){return!(te instanceof HTMLElement)&&te!==null&&typeof te=="object"&&te.element instanceof HTMLElement&&typeof te.update=="function"}function createReconcileState(){return{els:new Map}}function disposeEl(te){for(const ee of te.querySelectorAll("*"))disposeManagedEl(ee);disposeManagedEl(te)}function disposeManagedEl(te){const ee=te;ee.__aiguiDisposed||(ee.__aiguiDisposed=!0,ee.__aiguiCleanup?.(),ee.__aiguiCleanup=void 0)}function reconcile(te,ee,ne,xe){const it=new Set(ee.map(ht=>ht.key));for(const[ht,dt]of xe.els)it.has(ht)||(disposeEl(dt.el),dt.el.remove(),xe.els.delete(ht));let ut=null;for(const ht of ee){const dt=JSON.stringify(ht);let Mt=xe.els.get(ht.key);if(!Mt)Mt={el:renderNodeToElement(ht,ne),hash:dt},xe.els.set(ht.key,Mt);else if(Mt.hash!==dt)if(updateElementInPlace(Mt.el,ht,ne))Mt.hash=dt;else{disposeEl(Mt.el);const gt=renderNodeToElement(ht,ne);Mt.el.replaceWith(gt),Mt.el=gt,Mt.hash=dt}const ft=ut?ut.nextSibling:te.firstChild;Mt.el!==ft&&te.insertBefore(Mt.el,ft),ut=Mt.el}}function updateElementInPlace(te,ee,ne){if(ne.nodeRenderers?.[ee.type])return!1;switch(ee.type){case"heading":return te.tagName!==(ee.tag??"h1").toUpperCase()?!1:(te.innerHTML=ee.html??"",!0);case"paragraph":return te.tagName!=="P"?!1:(te.innerHTML=ee.html??"",!0);case"code":{if(te.tagName!=="PRE")return!1;ee.attrs?.lang&&te.setAttribute("data-lang",ee.attrs.lang);let xe=te.querySelector("code");return xe||(xe=document.createElement("code"),te.appendChild(xe)),xe.textContent=ee.content??"",!0}case"hr":return te.tagName==="HR";case"html":return te.tagName!=="DIV"?!1:(te.innerHTML=ee.content??"",!0);case"card":return updateCardElement(te,ee);default:return te.tagName!=="DIV"?!1:(te.innerHTML=ee.html??ee.content??"",!0)}}function createRenderer(te,ee={}){const{actionRuntime:ne,cardStore:xe,onCardAction:it,nodeRenderers:ut,theme:ht,locale:dt,onRender:Mt,onNodeClick:ft,plugins:gt,...xt}=ee,mt=loadPlugins(gt),Dt=Array.isArray(mt)?mt:void 0;injectPluginStyles(Dt,te.ownerDocument);let yt="",wt=[],At={owner:{},controller:new AbortController};const Lt=Ot=>{ne&&ne.dispatch({...Ot,params:Ot.params},{owner:At.owner,signal:At.controller.signal}).catch(()=>{}),it?.(Ot)},bt=createReconcileState();let vt=!1;const Qt=new Renderer$1({...xt,plugins:Dt,onPatch:(Ot,zt)=>{vt||(wt=zt,reconcile(te,zt,Ut,bt),Mt?.(zt))}}),Ct=Ot=>({...collectNodeRenderers(Ot,{debugTarget:Qt}),...ut}),Ut={registry:ee.registry,cardStore:xe,onCardAction:Lt,plugins:Dt,nodeRenderers:Ct(Dt),sanitize:ee.sanitize,sanitized:!0,theme:ht,locale:dt},Rt=()=>{for(const Ot of bt.els.values())disposeEl(Ot.el)},Ft=Ot=>{assertPlugins(Ot),!(vt||samePlugins(Ut.plugins,Ot))&&(Ut.plugins=Ot,Ut.nodeRenderers=Ct(Ot),injectPluginStyles(Ot,te.ownerDocument),Rt(),bt.els.clear(),te.replaceChildren(),Qt.setPlugins(Ot),reconcile(te,wt,Ut,bt))},Gt=Ot=>{const zt=Ot;if(!(!zt||typeof zt.nodeType!="number")){for(const[Xt,Zt]of bt.els)if(Zt.el===zt||Zt.el.contains(zt))return wt.find(Ht=>Ht.key===Xt)}},_t=Ot=>{const zt=Gt(Ot.target);zt&&ft?.(zt,Ot)};ft&&te.addEventListener("click",_t),Array.isArray(mt)||mt.then(Ot=>{try{Ft(Ot)}catch(zt){Qt.emitDebug("plugins-load-failed",{error:zt}),console.error(zt)}},Ot=>Qt.emitDebug("plugins-load-failed",{error:Ot}));const kt=()=>{At.controller.abort(),At={owner:{},controller:new AbortController}};return{debugSource:"renderer",subscribeDebug:Ot=>Qt.subscribeDebug(Ot),push:Ot=>{vt||(Qt.push(Ot),yt+=Ot)},setText:Ot=>{vt||Ot===yt||(Ot.startsWith(yt)?Qt.push(Ot.slice(yt.length)):(kt(),Rt(),Qt.reset(),bt.els.clear(),te.replaceChildren(),Qt.push(Ot)),yt=Ot)},setTheme:Ot=>{vt||Ut.theme===Ot||(Ut.theme=Ot,Rt(),bt.els.clear(),te.replaceChildren(),reconcile(te,wt,Ut,bt))},setPlugins:Ft,exportImages:Ot=>exportRenderedImages(te,Ot),feed:(Ot,zt)=>vt?Promise.resolve():Qt.feed(Ot,zt),reset:()=>{vt||(kt(),Rt(),Qt.reset(),bt.els.clear(),te.replaceChildren(),yt="")},destroy:()=>{vt||(vt=!0,yt="",te.removeEventListener("click",_t),At.controller.abort(),Qt.reset(),Rt(),bt.els.clear(),te.replaceChildren())}}}function palette$2(te){const ee=te.accent??(te.theme==="dark"?"#22d3ee":"#0369a1");return te.theme==="dark"?{accent:ee,text:"#e2e8f0",muted:"#94a3b8",good:"#34d399",bad:"#fb7185",warn:"#fbbf24",track:"rgba(148,163,184,0.18)",series:[ee,"#a78bfa","#34d399","#fbbf24","#fb7185","#60a5fa","#f472b6","#2dd4bf"],gridLine:"rgba(148,163,184,0.16)"}:{accent:ee,text:"#1e293b",muted:"#64748b",good:"#059669",bad:"#e11d48",warn:"#d97706",track:"rgba(100,116,139,0.16)",series:[ee,"#7c3aed","#059669","#d97706","#e11d48","#2563eb","#db2777","#0d9488"],gridLine:"rgba(100,116,139,0.2)"}}function withAlpha(te,ee){const ne=te.replace("#",""),xe=ne.length===3?ne.split("").map(ut=>ut+ut).join(""):ne,it=Number.parseInt(xe,16);return`rgba(${it>>16&255},${it>>8&255},${it&255},${ee})`}const FONT="ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'PingFang SC', 'Noto Sans CJK SC', sans-serif";function formatNumber$1(te,ee=0){return te.toLocaleString("en-US",{minimumFractionDigits:ee,maximumFractionDigits:ee})}function gaugeColour(te,ee,ne){return ee?te>=ee[1]?ne.bad:te>=ee[0]?ne.warn:ne.good:ne.accent}function gaugeOption(te,ee,ne){const xe=te.max??100,it=Math.max(0,Math.min(1,te.value/xe)),ut=gaugeColour(it,te.thresholds,ee),ht=te.style==="ring";return{animation:ne,animationDuration:1400,animationEasing:"cubicOut",series:[{type:"gauge",startAngle:ht?90:210,endAngle:ht?-270:-30,min:0,max:xe,radius:"92%",center:["50%",ht?"50%":"58%"],progress:{show:!0,width:ht?14:16,roundCap:!0,itemStyle:{color:ut,shadowBlur:12,shadowColor:withAlpha(ut,.5)}},pointer:{show:!ht,length:"60%",width:4,itemStyle:{color:ut}},axisLine:{lineStyle:{width:ht?14:16,color:[[1,ee.track]]}},axisTick:{show:!1},splitLine:{show:!ht,length:8,lineStyle:{color:ee.muted,width:1}},axisLabel:{show:!ht,color:ee.muted,fontSize:10,distance:18,fontFamily:FONT},anchor:{show:!ht,size:10,itemStyle:{color:ut}},title:{show:!1},detail:{valueAnimation:ne,offsetCenter:[0,ht?0:"28%"],fontSize:ht?28:24,fontWeight:700,fontFamily:FONT,color:ee.text,formatter:dt=>`${formatNumber$1(dt,Number.isInteger(te.value)?0:1)}${te.unit??""}`},data:[{value:te.value}]}]}}function chartOption(te,ee,ne){const xe={axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}}},it=ht=>Array.isArray(ht)?ht.map(dt=>({...xe,...dt})):ht&&typeof ht=="object"?{...xe,...ht}:ht,ut=te.option;return{backgroundColor:"transparent",color:ee.series,textStyle:{color:ee.text,fontFamily:FONT},animation:ne,animationDuration:1200,animationEasing:"cubicOut",grid:{left:40,right:16,top:28,bottom:28,containLabel:!0},legend:{textStyle:{color:ee.muted}},tooltip:{trigger:"axis"},...ut,...ut.xAxis!==void 0?{xAxis:it(ut.xAxis)}:{},...ut.yAxis!==void 0?{yAxis:it(ut.yAxis)}:{}}}function chart3dOption(te,ee,ne){const xe=te.data.map(Mt=>Mt[2]),it=Math.max(...xe),ut=Math.min(...xe),ht=(Mt,ft)=>({type:Mt?"category":"value",data:Mt,name:"",axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}},axisPointer:{show:!1},nameTextStyle:{color:ee.muted},id:ft}),dt={type:te.type,data:te.data,shading:"lambert",emphasis:{itemStyle:{color:ee.text}}};return te.type==="bar3D"&&(dt.bevelSize=.2),te.type==="scatter3D"&&(dt.symbolSize=9),te.type==="line3D"&&(dt.lineStyle={width:3,color:ee.accent}),te.type==="surface"&&(dt.wireframe={show:!0,lineStyle:{color:withAlpha(ee.accent,.35)}}),{backgroundColor:"transparent",textStyle:{fontFamily:FONT},tooltip:{},visualMap:{show:!1,min:ut,max:it,dimension:2,inRange:{color:[withAlpha(ee.accent,.55),ee.accent,ee.series[1]]}},xAxis3D:ht(te.xAxis,"x"),yAxis3D:ht(te.yAxis,"y"),zAxis3D:{type:"value",name:"",axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}}},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,axisPointer:{show:!1},light:{main:{intensity:1.3,shadow:!1,alpha:40,beta:30},ambient:{intensity:.5}},viewControl:{autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:8,distance:190,alpha:24,beta:35,projection:"perspective"},environment:"none"},series:[dt]}}function globeTexture(te,ee){if(typeof document>"u")return;const ne=document.createElement("canvas");ne.width=1024,ne.height=512;const xe=ne.getContext("2d");if(xe){xe.fillStyle=ee==="dark"?"#0b1a33":"#dbe7f5",xe.fillRect(0,0,ne.width,ne.height),xe.strokeStyle=withAlpha(te.accent,ee==="dark"?.28:.35),xe.lineWidth=1.2;for(let it=0;it<360;it+=15){const ut=it/360*ne.width;xe.beginPath(),xe.moveTo(ut,0),xe.lineTo(ut,ne.height),xe.stroke()}for(let it=15;it<180;it+=15){const ut=it/180*ne.height;xe.beginPath(),xe.moveTo(0,ut),xe.lineTo(ne.width,ut),xe.stroke()}return xe.strokeStyle=withAlpha(te.accent,.6),xe.lineWidth=2,xe.beginPath(),xe.moveTo(0,ne.height/2),xe.lineTo(ne.width,ne.height/2),xe.stroke(),ne.toDataURL("image/png")}}const GLOBE_LABELS=8;function globeOption(te,ee,ne,xe,it){const ut=(te.arcs??[]).map(xt=>({coords:[xt.from,xt.to],name:xt.label})),ht=(te.points??[]).map(xt=>({name:xt.label,value:[xt.coord[0],xt.coord[1],0,xt.value??1]})),dt=Math.max(1,...ht.map(xt=>xt.value[3])),Mt=it?it.shading??"lambert":"color",ft={baseTexture:xe,shading:Mt,environment:"none",globeRadius:78,atmosphere:{show:it?it.atmosphere!==!1:!0,color:ee.accent,glowPower:5,innerGlowPower:2,offset:4},light:it?{ambient:{intensity:.5},main:{intensity:it.light?.intensity??1.1,shadow:!1,time:it.light?.time??new Date}}:{ambient:{intensity:1},main:{intensity:.2}},viewControl:{autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:3,distance:150,targetCoord:ut[0]?.coords[0]??ht[0]?.value.slice(0,2)}};it&&(ft.postEffect={enable:!1},it.heightTexture&&(ft.heightTexture=it.heightTexture),Mt==="realistic"&&(ft.realisticMaterial={roughness:.85,metalness:0}));const gt=new Set([...ht].sort((xt,mt)=>mt.value[3]-xt.value[3]).slice(0,GLOBE_LABELS).map(xt=>xt.name));return{backgroundColor:"transparent",...it?{tooltip:{trigger:"item",confine:!0,formatter:"{b}"}}:{},globe:ft,series:[{type:"lines3D",coordinateSystem:"globe",blendMode:"lighter",lineStyle:{width:2.5,color:ee.series[1],opacity:.9},effect:{show:ne,period:3,trailWidth:4,trailLength:.3,trailOpacity:1,trailColor:"#ffffff"},data:ut},{type:"scatter3D",coordinateSystem:"globe",symbolSize:xt=>6+10*Math.sqrt((xt[3]??1)/dt),itemStyle:{color:ee.series[1],opacity:.9},label:{show:!0,formatter:it?xt=>xt.name&>.has(xt.name)?xt.name:"":"{b}",color:ee.text,fontSize:11,fontFamily:FONT,backgroundColor:"transparent",distance:6},data:ht}]}}const WIDTH=2048,HEIGHT=1024;function earthColours(te,ee,ne){const xe=ee==="dark";return{ocean:ne?.ocean??(xe?"#0b1a33":"#dbe7f5"),land:ne?.land??(xe?"#334155":"#f8fafc"),border:ne?.border??withAlpha(te.accent,xe?.55:.75)}}function polygonsOf(te){return!te||!Array.isArray(te.coordinates)?[]:te.type==="Polygon"?[te.coordinates]:te.type==="MultiPolygon"?te.coordinates:[]}function traceRing(te,ee,ne){if(ee.length<2)return;let xe=0,it=ee[0][0];ee.forEach((ut,ht)=>{const dt=ut[0],Mt=dt-it;Mt>180?xe-=360:Mt<-180&&(xe+=360),it=dt;const ft=(dt+xe+180)/360*WIDTH+ne,gt=(90-ut[1])/180*HEIGHT;ht===0?te.moveTo(ft,gt):te.lineTo(ft,gt)}),te.closePath()}function countriesTexture(te,ee){if(typeof document>"u")return;const ne=document.createElement("canvas");ne.width=WIDTH,ne.height=HEIGHT;const xe=ne.getContext("2d");if(xe){xe.fillStyle=ee.ocean,xe.fillRect(0,0,WIDTH,HEIGHT),xe.fillStyle=ee.land,xe.strokeStyle=ee.border,xe.lineWidth=1,xe.lineJoin="round";for(const it of te.features??[])for(const ut of polygonsOf(it?.geometry))for(const ht of[-WIDTH,0,WIDTH]){xe.beginPath();for(const dt of ut)traceRing(xe,dt,ht);xe.fill("evenodd"),xe.stroke()}return ne.toDataURL("image/png")}}function earthTexture(te,ee,ne){return ne?.baseTexture?ne.baseTexture:ne?.countries?countriesTexture(ne.countries,earthColours(te,ee,ne))??globeTexture(te,ee):globeTexture(te,ee)}const TIMELINE_LABELS=12,DEFAULT_SYMBOL=12,HOUR=60*60*1e3,LABEL_FLIPS_AT=.62,escapeHtml$1$2=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function timelineWindow(te){const ee=te.items.map(dt=>Date.parse(dt.at)),ne=te.from===void 0?void 0:Date.parse(te.from),xe=te.to===void 0?void 0:Date.parse(te.to);if(ne!==void 0&&xe!==void 0)return[ne,xe];const it=Math.min(...ee),ut=Math.max(...ee),ht=(ut-it)*.05||HOUR;return[ne??it-ht,xe??ut+ht]}function spacedItems(te,ee=TIMELINE_LABELS){const ne=new Map;te.items.forEach((it,ut)=>{const ht=ne.get(it.lane)??[];ht.push({index:ut,at:Date.parse(it.at)}),ne.set(it.lane,ht)});const xe=new Map;for(const it of ne.values()){const ut=[...it].sort((ht,dt)=>ht.at-dt.at);ut.forEach((ht,dt)=>{const Mt=dt>0?ht.at-ut[dt-1].at:Number.POSITIVE_INFINITY,ft=dt<ut.length-1?ut[dt+1].at-ht.at:Number.POSITIVE_INFINITY;xe.set(ht.index,Math.min(Mt,ft))})}return new Set([...xe.entries()].sort((it,ut)=>ut[1]-it[1]||it[0]-ut[0]).slice(0,ee).map(([it])=>it))}function timelineHeight(te){return Math.min(900,Math.max(320,60+te*28))}const LINK_KINDS$1={contradicts:{danger:!0,dotted:!1,arrow:!1,width:2,opacity:.95},follows:{danger:!1,dotted:!1,arrow:!0,width:1.4,opacity:.6},same:{danger:!1,dotted:!0,arrow:!1,width:1.4,opacity:.6}};function when(te){return`${new Date(te).toISOString().slice(0,16).replace("T"," ")} UTC`}function timelineOption(te,ee,ne){const[xe,it]=timelineWindow(te),ut=new Map(te.lanes.map(yt=>[yt.id,yt.name])),ht=spacedItems(te),dt=Math.max(0,...te.items.map(yt=>yt.value??0)),Mt=yt=>{const wt=typeof yt[2]=="number"?yt[2]:0;return wt>0&&dt>0?8+12*Math.sqrt(wt/dt):DEFAULT_SYMBOL},ft=te.lanes.map((yt,wt)=>{const At=yt.color??ee.series[wt%ee.series.length],Lt=te.items.map((bt,vt)=>({item:bt,index:vt})).filter(({item:bt})=>bt.lane===yt.id).map(({item:bt,index:vt})=>{const Qt=Date.parse(bt.at);return{name:bt.label,value:[Qt,yt.name,bt.value??0],item:bt,label:{show:ht.has(vt),position:(Qt-xe)/(it-xe)>LABEL_FLIPS_AT?"left":"right"}}});return{name:yt.name,type:"scatter",symbolSize:Mt,itemStyle:{color:At,borderColor:withAlpha(At,.35),borderWidth:4},label:{show:!1,position:"right",distance:8,color:ee.text,fontSize:11,fontFamily:FONT,formatter:"{b}"},emphasis:{scale:1.35,label:{show:!0}},animationDelay:bt=>bt*30,data:Lt}}),gt=new Map(te.items.filter(yt=>yt.id!==void 0).map(yt=>[yt.id,yt])),xt=yt=>{const wt=gt.get(yt),At=wt&&ut.get(wt.lane);return wt&&At!==void 0?[Date.parse(wt.at),At]:void 0},mt=(te.links??[]).flatMap(yt=>{const wt=xt(yt.from),At=xt(yt.to);if(!wt||!At)return[];const Lt=yt.kind??"follows",bt=LINK_KINDS$1[Lt];return[{coords:[wt,At],name:Lt,symbol:bt.arrow?["none","arrow"]:["none","none"],symbolSize:7,lineStyle:{color:bt.danger?ee.bad:ee.muted,width:bt.width,type:bt.dotted?"dotted":"solid",opacity:bt.opacity,curveness:.15}}]});mt.length&&ft.push({name:"links",type:"lines",coordinateSystem:"cartesian2d",z:1,polyline:!1,animationDuration:1400,data:mt});const Dt={lineStyle:{color:ee.gridLine}};return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},animation:ne,animationDuration:1200,animationEasing:"cubicOut",grid:{left:8,right:28,top:18,bottom:24,containLabel:!0},tooltip:{trigger:"item",confine:!0,formatter:yt=>{const At=yt.data?.item;if(!At)return escapeHtml$1$2(String(yt.seriesName??""));const Lt=[`<span style="opacity:.7">${escapeHtml$1$2(yt.seriesName??"")} · ${when(Date.parse(At.at))}</span>`,`<b>${escapeHtml$1$2(At.label)}</b>`];return At.detail&&Lt.push(`<span style="opacity:.85">${escapeHtml$1$2(At.detail)}</span>`),Lt.join("<br/>")}},xAxis:{type:"time",min:xe,max:it,axisLine:Dt,axisTick:{show:!1},axisLabel:{color:ee.muted,fontFamily:FONT,fontSize:10,hideOverlap:!0},splitLine:{show:!0,lineStyle:{color:ee.gridLine,type:"dashed"}}},yAxis:{type:"category",data:te.lanes.map(yt=>yt.name),inverse:!0,axisLine:Dt,axisTick:{show:!1},axisLabel:{color:ee.text,fontFamily:FONT,fontSize:11},splitLine:{show:!0,lineStyle:{color:ee.gridLine}},splitArea:{show:!0,areaStyle:{color:[withAlpha(ee.muted,.06),"transparent"]}}},series:ft}}const LAYOUT_SPRING=1,LAYOUT_GRAVITY=.08,HEAT=.12,MIN_DISTANCE=.001,FNV_OFFSET=2166136261,FNV_PRIME=16777619;function hash(te){let ee=FNV_OFFSET;for(let ne=0;ne<te.length;ne++)ee^=te.charCodeAt(ne),ee=Math.imul(ee,FNV_PRIME);return ee>>>0}const STEP_ANCHORS=[[50,300],[500,120],[2e3,40]];function layoutSteps(te){const ee=Math.max(1,te);if(ee<=STEP_ANCHORS[0][0])return STEP_ANCHORS[0][1];for(let ne=1;ne<STEP_ANCHORS.length;ne++){const[xe,it]=STEP_ANCHORS[ne-1],[ut,ht]=STEP_ANCHORS[ne];if(ee>ut)continue;const dt=(Math.log(ee)-Math.log(xe))/(Math.log(ut)-Math.log(xe));return Math.round(it+(ht-it)*dt)}return STEP_ANCHORS[STEP_ANCHORS.length-1][1]}function layoutChunk(te){return Math.max(1,Math.min(8,Math.round(600/Math.max(1,te))))}function layoutRadius(te){return LAYOUT_SPRING*Math.cbrt(Math.max(1,te)/LAYOUT_GRAVITY)}function seedPositions(te,ee){const ne=new Float32Array(te.length*3);let xe=0,it=0;for(const ht of te){const dt=ee?.get(ht);dt&&(xe++,it+=Math.hypot(dt[0],dt[1],dt[2]))}const ut=xe>0?Math.max(it/xe,MIN_DISTANCE):layoutRadius(te.length);for(const[ht,dt]of te.entries()){const Mt=ee?.get(dt);if(Mt){ne[ht*3]=Mt[0],ne[ht*3+1]=Mt[1],ne[ht*3+2]=Mt[2];continue}const gt=hash(dt)%2048/2048*2-1,xt=hash(`${dt}\0`)%4096*(Math.PI*2/4096),mt=Math.sqrt(Math.max(0,1-gt*gt));ne[ht*3]=ut*mt*Math.cos(xt),ne[ht*3+1]=ut*mt*Math.sin(xt),ne[ht*3+2]=ut*gt}return ne}function createLayout(te,ee,ne){const xe=te.map(wt=>wt.id),it=new Map(xe.map((wt,At)=>[wt,At])),ut=seedPositions(xe,ne),ht=new Float64Array(ut.length),dt=te.length,Mt=layoutSteps(dt),ft=[];for(const wt of ee){const At=it.get(wt.from),Lt=it.get(wt.to);At===void 0||Lt===void 0||At===Lt||ft.push(At,Lt)}const gt=LAYOUT_SPRING,xt=gt*gt,mt=layoutRadius(dt)*HEAT;let Dt=0;const yt=()=>{ht.fill(0);for(let At=0;At<dt;At++){const Lt=ut[At*3],bt=ut[At*3+1],vt=ut[At*3+2];for(let Qt=At+1;Qt<dt;Qt++){const Ct=Lt-ut[Qt*3],Ut=bt-ut[Qt*3+1],Rt=vt-ut[Qt*3+2],Ft=Math.max(Ct*Ct+Ut*Ut+Rt*Rt,MIN_DISTANCE*MIN_DISTANCE),Gt=xt/Ft;ht[At*3]+=Ct*Gt,ht[At*3+1]+=Ut*Gt,ht[At*3+2]+=Rt*Gt,ht[Qt*3]-=Ct*Gt,ht[Qt*3+1]-=Ut*Gt,ht[Qt*3+2]-=Rt*Gt}}for(let At=0;At<ft.length;At+=2){const Lt=ft[At],bt=ft[At+1],vt=ut[Lt*3]-ut[bt*3],Qt=ut[Lt*3+1]-ut[bt*3+1],Ct=ut[Lt*3+2]-ut[bt*3+2],Rt=Math.max(Math.hypot(vt,Qt,Ct),MIN_DISTANCE)/gt;ht[Lt*3]-=vt*Rt,ht[Lt*3+1]-=Qt*Rt,ht[Lt*3+2]-=Ct*Rt,ht[bt*3]+=vt*Rt,ht[bt*3+1]+=Qt*Rt,ht[bt*3+2]+=Ct*Rt}const wt=Math.max(mt*(1-Dt/Mt),mt*.01);for(let At=0;At<dt;At++){const Lt=ht[At*3]-ut[At*3]*LAYOUT_GRAVITY,bt=ht[At*3+1]-ut[At*3+1]*LAYOUT_GRAVITY,vt=ht[At*3+2]-ut[At*3+2]*LAYOUT_GRAVITY,Qt=Math.hypot(Lt,bt,vt);if(Qt<MIN_DISTANCE)continue;const Ct=Math.min(Qt,wt)/Qt;ut[At*3]+=Lt*Ct,ut[At*3+1]+=bt*Ct,ut[At*3+2]+=vt*Ct}Dt++};return{step(wt=1){for(let At=0;At<wt&&Dt<Mt;At++)yt()},positions:()=>ut,get done(){return Dt>=Mt},steps:Mt,get taken(){return Dt}}}const GRAPH_LABELS=20,GRAPH_SETTLE_STEPS=8,GRAPH_INSTANT_STEPS=250,GRAPH_MAX_STEPS=1e3,GRAPH_LEGEND_ROWS=12,GRAPH_COLOURS=7,SEED_RADIUS=45;function typeColour(te,ee,ne){if(te===void 0)return ee.muted;const xe=ee.series.slice(0,GRAPH_COLOURS);return ne?.[te]??xe[hash(te)%xe.length]}function degrees$2(te){const ee=new Map(te.nodes.map(ne=>[ne.id,0]));for(const ne of te.edges)for(const xe of[ne.from,ne.to]){const it=ee.get(xe);it!==void 0&&ee.set(xe,it+1)}return ee}function graphLegend(te,ee){const ne=[],xe=new Set,it=(ut,ht)=>{if(ht===void 0)return;const dt=`${ut}:${ht}`;xe.has(dt)||(xe.add(dt),ne.push({label:ht,colour:typeColour(ht,ee,te.types),shape:ut}))};for(const ut of te.nodes)it("node",ut.type);for(const ut of te.edges)it("edge",ut.type);return ne.slice(0,GRAPH_LEGEND_ROWS)}const escapeHtml$4=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function graphTooltip(te){const ee=te.data??{};if(te.dataType==="edge"||ee.coords!==void 0)return escapeHtml$4(ee.edgeType??"linked to");const ne=[`<b>${escapeHtml$4(ee.name??"")}</b>`];return ee.nodeType&&ne.push(`<span style="opacity:.7">${escapeHtml$4(ee.nodeType)}</span>`),ne.push(`<span style="opacity:.7">${ee.degree??0} connections</span>`),ne.join("<br/>")}function graph3dOption(te,ee,ne){const xe=degrees$2(te),it=xt=>xt.value??xe.get(xt.id)??0,ut=Math.max(1,...te.nodes.map(it)),ht=new Set([...te.nodes].sort((xt,mt)=>(xe.get(mt.id)??0)-(xe.get(xt.id)??0)).slice(0,GRAPH_LABELS).map(xt=>xt.id));te.focus!==void 0&&ht.add(te.focus);const dt=SEED_RADIUS*Math.sqrt(te.nodes.length)+60,Mt=te.nodes.map((xt,mt)=>{const Dt=xt.id===te.focus,yt=(Dt?6:0)+6+16*Math.sqrt(it(xt)/ut),wt=mt/te.nodes.length*Math.PI*2;return{id:xt.id,name:xt.name,x:dt*Math.cos(wt),y:dt*Math.sin(wt),nodeType:xt.type,degree:xe.get(xt.id)??0,node:xt,symbolSize:yt,itemStyle:{color:Dt?ee.accent:typeColour(xt.type,ee,te.types),opacity:.95},label:Dt?{show:!0,fontSize:13,fontWeight:"bold",color:ee.accent}:{show:ht.has(xt.id)}}}),ft=te.edges.map(xt=>({source:xt.from,target:xt.to,edgeType:xt.type,lineStyle:{color:typeColour(xt.type,ee,te.types),opacity:.55,width:1.5}})),gt=ne&&te.rotate!==!1;return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},tooltip:{trigger:"item",confine:!0,formatter:graphTooltip},series:[{type:"graphGL",layout:"forceAtlas2",forceAtlas2:{GPU:!0,steps:gt?GRAPH_SETTLE_STEPS:GRAPH_INSTANT_STEPS,maxSteps:GRAPH_MAX_STEPS,gravity:.6,scaling:5,gravityCenter:[-.16*dt,0],edgeWeightInfluence:0,repulsionByDegree:!0,preventOverlap:!0},roam:!0,focusNodeAdjacency:!0,zoom:1,label:{show:!1,position:"right",distance:4,color:ee.text,fontSize:11,fontFamily:FONT,formatter:"{b}"},emphasis:{label:{show:!0}},lineStyle:{color:ee.gridLine,width:1,opacity:.35},nodes:Mt,edges:ft}]}}const ORBIT_EXTENT=50,ORBIT_BOX=140,EDGE_OPACITY=.6,ORBIT_DISTANCE=260,ORBIT_SPEED=6;function orbitFrame(te){if(te.length<3)return{centre:[0,0,0],scale:1};const ee=[1/0,1/0,1/0],ne=[-1/0,-1/0,-1/0];for(let ut=0;ut<te.length;ut+=3)for(let ht=0;ht<3;ht++)ee[ht]=Math.min(ee[ht],te[ut+ht]),ne[ht]=Math.max(ne[ht],te[ut+ht]);const xe=[(ee[0]+ne[0])/2,(ee[1]+ne[1])/2,(ee[2]+ne[2])/2],it=Math.max((ne[0]-ee[0])/2,(ne[1]-ee[1])/2,(ne[2]-ee[2])/2);return{centre:xe,scale:it>0?ORBIT_EXTENT/it:1}}function graphOrbitData(te,ee,ne){const xe=degrees$2(te),it=yt=>yt.value??xe.get(yt.id)??0,ut=Math.max(1,...te.nodes.map(it)),ht=new Set([...te.nodes].sort((yt,wt)=>(xe.get(wt.id)??0)-(xe.get(yt.id)??0)).slice(0,GRAPH_LABELS).map(yt=>yt.id));te.focus!==void 0&&ht.add(te.focus);const{centre:dt,scale:Mt}=orbitFrame(ne),ft=yt=>[(ne[yt*3]-dt[0])*Mt,(ne[yt*3+1]-dt[1])*Mt,(ne[yt*3+2]-dt[2])*Mt],gt=new Map,xt=te.nodes.map((yt,wt)=>{const At=yt.id===te.focus,[Lt,bt,vt]=ft(wt);return gt.set(yt.id,[Lt,bt,vt]),{id:yt.id,name:yt.name,value:[Lt,bt,vt,(At?6:0)+6+16*Math.sqrt(it(yt)/ut)],itemStyle:{color:At?ee.accent:typeColour(yt.type,ee,te.types),opacity:.95},labelled:ht.has(yt.id),nodeType:yt.type,degree:xe.get(yt.id)??0,node:yt}}),mt=[0,0,0],Dt=[];for(const yt of te.edges){const wt=gt.get(yt.from)??mt,At=gt.get(yt.to)??mt,Lt=typeColour(yt.type,ee,te.types);for(const[bt,vt]of[[wt,0],[wt,EDGE_OPACITY],[At,EDGE_OPACITY],[At,0]])Dt.push({value:bt,lineStyle:{color:Lt,opacity:vt}})}return{nodes:xt,edges:Dt}}function hiddenAxis(){return{type:"value",name:"",min:-ORBIT_EXTENT,max:ORBIT_EXTENT,axisPointer:{show:!1}}}function graphOrbitOption(te,ee,ne,xe){const it=graphOrbitData(te,ee,xe),ut=ht=>ht.data?.name??"";return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},animation:!1,tooltip:{trigger:"item",confine:!0,formatter:graphTooltip},xAxis3D:hiddenAxis(),yAxis3D:hiddenAxis(),zAxis3D:hiddenAxis(),grid3D:{show:!1,boxWidth:ORBIT_BOX,boxHeight:ORBIT_BOX,boxDepth:ORBIT_BOX,environment:"none",axisPointer:{show:!1},light:{main:{intensity:1.2,shadow:!1,alpha:30,beta:40},ambient:{intensity:.6}},viewControl:{projection:"perspective",autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:ORBIT_SPEED,autoRotateAfterStill:4,distance:ORBIT_DISTANCE,alpha:18,beta:25,damping:.85}},series:[{type:"line3D",coordinateSystem:"cartesian3D",animation:!1,lineStyle:{width:1.6},silent:!0,data:it.edges},{type:"scatter3D",coordinateSystem:"cartesian3D",animation:!1,symbolSize:ht=>ht[3],itemStyle:{opacity:.95},label:{show:!0,formatter:ht=>ht.data?.labelled?ht.data.name??"":"",color:ee.text,fontSize:11,fontFamily:FONT,distance:4,backgroundColor:"transparent"},emphasis:{label:{show:!0,formatter:ut},itemStyle:{opacity:1}},data:it.nodes}]}}const REMEMBERED_GRAPHS=8,settled=new Map;function graphKey(te){return te.title!==void 0?`title:${te.title}`:`node:${te.nodes[0]?.id??""}`}function recallPositions(te){const ee=settled.get(te);if(ee)return settled.delete(te),settled.set(te,ee),ee}function rememberPositions(te,ee,ne){const xe=new Map;for(const[it,ut]of ee.entries())xe.set(ut,[ne[it*3],ne[it*3+1],ne[it*3+2]]);for(settled.delete(te),settled.set(te,xe);settled.size>REMEMBERED_GRAPHS;){const it=settled.keys().next();if(it.done)break;settled.delete(it.value)}}const SCREEN_FIELDS=new Set(["title","subtitle","theme","accent","columns","panels"]),COMMON=["kind","title","span","height"],FIELDS={kpi:["value","unit","prefix","decimals","delta","upIsGood","trend","label"],gauge:["value","max","unit","style","thresholds"],rank:["items","unit","top"],chart:["option"],chart3d:["type","data","xAxis","yAxis","rotate"],globe:["arcs","points","rotate"],timeline:["lanes","items","links","from","to"],graph3d:["nodes","edges","types","focus","mode","rotate"]},KINDS=new Set(["kpi","gauge","rank","chart","chart3d","globe","timeline","graph3d"]),CHART3D_TYPES=new Set(["bar3D","scatter3D","surface","line3D"]),LINK_KINDS=new Set(["contradicts","follows","same"]),LANE_FIELDS=new Set(["id","name","color"]),TIMELINE_ITEM_FIELDS=new Set(["id","lane","at","label","detail","url","value"]),LINK_FIELDS=new Set(["from","to","kind"]),NODE_FIELDS=new Set(["id","name","type","value"]),EDGE_FIELDS=new Set(["from","to","type"]),HEX$2=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,MAX_POINTS=5e3,MAX_ITEMS=50,MAX_ARCS=300,MAX_LANES=24,MAX_TIMELINE_ITEMS=500,MAX_LINKS=500,MAX_NODES=2e3,MAX_EDGES=5e3,MAX_TYPES=32,MAX_LANE_NAME=40,MAX_ITEM_LABEL=120,MAX_ITEM_DETAIL=400,MAX_URL=400,MAX_NODE_NAME=80,MAX_TYPE_NAME=32,bad$3=te=>({ok:!1,error:{code:"invalid-definition",message:te}}),isRecord$2=te=>typeof te=="object"&&te!==null&&!Array.isArray(te),finite$2=te=>typeof te=="number"&&Number.isFinite(te),text$4=(te,ee=120)=>typeof te=="string"&&te.length<=ee,tooLong=(te,ee,ne)=>typeof ne=="string"?`${te} must be at most ${ee} characters (got ${ne.length})`:`${te} must be a string of at most ${ee} characters`,instant=te=>typeof te=="string"&&te.length<=40&&Number.isFinite(Date.parse(te)),httpUrl=te=>typeof te=="string"&&te.length<=MAX_URL&&/^https?:\/\/\S+$/i.test(te),stray=(te,ee)=>Object.keys(te).find(ne=>!ee.has(ne)),lngLat=te=>Array.isArray(te)&&te.length===2&&te.every(finite$2)&&Math.abs(te[0])<=180&&Math.abs(te[1])<=90;function parseKpi(te,ee){if(!finite$2(te.value))return bad$3(`${ee}.value must be a number`);const ne={kind:"kpi",value:te.value};if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));ne.unit=te.unit}if(te.prefix!==void 0){if(!text$4(te.prefix,8))return bad$3(tooLong(`${ee}.prefix`,8,te.prefix));ne.prefix=te.prefix}if(te.decimals!==void 0){if(!Number.isInteger(te.decimals)||te.decimals<0||te.decimals>6)return bad$3(`${ee}.decimals must be a whole number from 0 to 6`);ne.decimals=te.decimals}if(te.delta!==void 0){if(!finite$2(te.delta))return bad$3(`${ee}.delta must be a number (a fraction: 0.12 is +12%)`);ne.delta=te.delta}if(te.upIsGood!==void 0){if(typeof te.upIsGood!="boolean")return bad$3(`${ee}.upIsGood must be true or false`);ne.upIsGood=te.upIsGood}if(te.trend!==void 0){if(!Array.isArray(te.trend)||te.trend.length<2||te.trend.length>200||!te.trend.every(finite$2))return bad$3(`${ee}.trend must be 2 to 200 numbers`);ne.trend=te.trend}if(te.label!==void 0){if(!text$4(te.label,40))return bad$3(tooLong(`${ee}.label`,40,te.label));ne.label=te.label}return{ok:!0,value:ne}}function parseGauge(te,ee){if(!finite$2(te.value))return bad$3(`${ee}.value must be a number`);const ne={kind:"gauge",value:te.value};if(te.max!==void 0){if(!finite$2(te.max)||te.max<=0)return bad$3(`${ee}.max must be a positive number`);ne.max=te.max}if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));ne.unit=te.unit}if(te.style!==void 0){if(te.style!=="dial"&&te.style!=="ring")return bad$3(`${ee}.style must be dial or ring`);ne.style=te.style}if(te.thresholds!==void 0){const xe=te.thresholds;if(!Array.isArray(xe)||xe.length!==2||!xe.every(finite$2)||!(xe[0]>=0&&xe[0]<=xe[1]&&xe[1]<=1))return bad$3(`${ee}.thresholds must be two fractions in order, e.g. [0.6, 0.85]`);ne.thresholds=[xe[0],xe[1]]}return{ok:!0,value:ne}}function parseRank(te,ee){if(!Array.isArray(te.items)||te.items.length===0||te.items.length>MAX_ITEMS)return bad$3(`${ee}.items must be 1 to ${MAX_ITEMS} entries`);const ne=[];for(const[it,ut]of te.items.entries()){if(!isRecord$2(ut)||!text$4(ut.name,40)||!finite$2(ut.value))return bad$3(`${ee}.items[${it}] must be {name, value}`);for(const ht of Object.keys(ut))if(ht!=="name"&&ht!=="value")return bad$3(`${ee}.items[${it}].${ht} is not a field of a rank item`);ne.push({name:ut.name,value:ut.value})}const xe={kind:"rank",items:ne};if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));xe.unit=te.unit}if(te.top!==void 0){if(!Number.isInteger(te.top)||te.top<1||te.top>MAX_ITEMS)return bad$3(`${ee}.top must be a whole number from 1 to ${MAX_ITEMS}`);xe.top=te.top}return{ok:!0,value:xe}}function parseChart3d(te,ee){if(typeof te.type!="string"||!CHART3D_TYPES.has(te.type))return bad$3(`${ee}.type must be one of ${[...CHART3D_TYPES].join(", ")}`);if(!Array.isArray(te.data)||te.data.length===0||te.data.length>MAX_POINTS)return bad$3(`${ee}.data must be 1 to ${MAX_POINTS} points`);const ne=[];for(const[it,ut]of te.data.entries()){if(!Array.isArray(ut)||ut.length!==3||!ut.every(finite$2))return bad$3(`${ee}.data[${it}] must be [x, y, z]`);ne.push([ut[0],ut[1],ut[2]])}const xe={kind:"chart3d",type:te.type,data:ne};for(const it of["xAxis","yAxis"]){const ut=te[it];if(ut!==void 0){if(!Array.isArray(ut)||ut.length===0||ut.length>200||!ut.every(ht=>text$4(ht,40)))return bad$3(`${ee}.${it} must be a list of category names`);xe[it]=ut}}if(te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);xe.rotate=te.rotate}return{ok:!0,value:xe}}function parseGlobe(te,ee){const ne={kind:"globe"};if(te.arcs!==void 0){if(!Array.isArray(te.arcs)||te.arcs.length>MAX_ARCS)return bad$3(`${ee}.arcs must be up to ${MAX_ARCS} entries`);ne.arcs=[];for(const[xe,it]of te.arcs.entries()){if(!isRecord$2(it)||!lngLat(it.from)||!lngLat(it.to))return bad$3(`${ee}.arcs[${xe}] must be {from: [lng, lat], to: [lng, lat]}`);const ut={from:it.from,to:it.to};if(it.label!==void 0){if(!text$4(it.label,40))return bad$3(tooLong(`${ee}.arcs[${xe}].label`,40,it.label));ut.label=it.label}ne.arcs.push(ut)}}if(te.points!==void 0){if(!Array.isArray(te.points)||te.points.length>MAX_ARCS)return bad$3(`${ee}.points must be up to ${MAX_ARCS} entries`);ne.points=[];for(const[xe,it]of te.points.entries()){if(!isRecord$2(it)||!lngLat(it.coord))return bad$3(`${ee}.points[${xe}] must be {coord: [lng, lat]}`);const ut={coord:it.coord};if(it.label!==void 0){if(!text$4(it.label,40))return bad$3(tooLong(`${ee}.points[${xe}].label`,40,it.label));ut.label=it.label}if(it.value!==void 0){if(!finite$2(it.value)||it.value<0)return bad$3(`${ee}.points[${xe}].value must be zero or a positive number`);ut.value=it.value}ne.points.push(ut)}}if(!ne.arcs?.length&&!ne.points?.length)return bad$3(`${ee} needs arcs or points`);if(te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);ne.rotate=te.rotate}return{ok:!0,value:ne}}function parseTimeline(te,ee){if(!Array.isArray(te.lanes)||te.lanes.length===0||te.lanes.length>MAX_LANES)return bad$3(`${ee}.lanes must be 1 to ${MAX_LANES} entries`);const ne=[],xe=new Set;for(const[dt,Mt]of te.lanes.entries()){const ft=`${ee}.lanes[${dt}]`;if(!isRecord$2(Mt)||!text$4(Mt.id,64)||typeof Mt.name!="string")return bad$3(`${ft} must be {id, name}`);const gt=stray(Mt,LANE_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline lane`);if(!text$4(Mt.name,MAX_LANE_NAME))return bad$3(tooLong(`${ft}.name`,MAX_LANE_NAME,Mt.name));if(xe.has(Mt.id))return bad$3(`${ft}.id is a duplicate lane id`);xe.add(Mt.id);const xt={id:Mt.id,name:Mt.name};if(Mt.color!==void 0){if(typeof Mt.color!="string"||!HEX$2.test(Mt.color))return bad$3(`${ft}.color must be a hex colour like #22d3ee`);xt.color=Mt.color}ne.push(xt)}if(!Array.isArray(te.items)||te.items.length===0||te.items.length>MAX_TIMELINE_ITEMS)return bad$3(`${ee}.items must be 1 to ${MAX_TIMELINE_ITEMS} entries`);const it=[],ut=new Set;for(const[dt,Mt]of te.items.entries()){const ft=`${ee}.items[${dt}]`;if(!isRecord$2(Mt)||typeof Mt.lane!="string"||typeof Mt.label!="string"||Mt.at===void 0)return bad$3(`${ft} must be {lane, at, label}`);const gt=stray(Mt,TIMELINE_ITEM_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline item`);if(!xe.has(Mt.lane))return bad$3(`${ft}.lane is not one of the panel's lane ids`);if(!instant(Mt.at))return bad$3(`${ft}.at must be an ISO 8601 date-time, like 2026-09-01T08:00:00Z`);if(!text$4(Mt.label,MAX_ITEM_LABEL))return bad$3(tooLong(`${ft}.label`,MAX_ITEM_LABEL,Mt.label));const xt={lane:Mt.lane,at:Mt.at,label:Mt.label};if(Mt.id!==void 0){if(!text$4(Mt.id,64))return bad$3(tooLong(`${ft}.id`,64,Mt.id));if(ut.has(Mt.id))return bad$3(`${ft}.id is a duplicate item id`);ut.add(Mt.id),xt.id=Mt.id}if(Mt.detail!==void 0){if(!text$4(Mt.detail,MAX_ITEM_DETAIL))return bad$3(tooLong(`${ft}.detail`,MAX_ITEM_DETAIL,Mt.detail));xt.detail=Mt.detail}if(Mt.url!==void 0){if(!httpUrl(Mt.url))return bad$3(`${ft}.url must be an http or https URL`);xt.url=Mt.url}if(Mt.value!==void 0){if(!finite$2(Mt.value)||Mt.value<0)return bad$3(`${ft}.value must be zero or a positive number`);xt.value=Mt.value}it.push(xt)}const ht={kind:"timeline",lanes:ne,items:it};if(te.links!==void 0){if(!Array.isArray(te.links)||te.links.length>MAX_LINKS)return bad$3(`${ee}.links must be up to ${MAX_LINKS} entries`);ht.links=[];for(const[dt,Mt]of te.links.entries()){const ft=`${ee}.links[${dt}]`;if(!isRecord$2(Mt)||typeof Mt.from!="string"||typeof Mt.to!="string")return bad$3(`${ft} must be {from, to}`);const gt=stray(Mt,LINK_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline link`);for(const mt of["from","to"])if(!ut.has(Mt[mt]))return bad$3(`${ft}.${mt} is not an item id`);const xt={from:Mt.from,to:Mt.to};if(Mt.kind!==void 0){if(typeof Mt.kind!="string"||!LINK_KINDS.has(Mt.kind))return bad$3(`${ft}.kind must be contradicts, follows or same`);xt.kind=Mt.kind}ht.links.push(xt)}}for(const dt of["from","to"])if(te[dt]!==void 0){if(!instant(te[dt]))return bad$3(`${ee}.${dt} must be an ISO 8601 date-time, like 2026-09-01T08:00:00Z`);ht[dt]=te[dt]}return{ok:!0,value:ht}}function parseGraph3d(te,ee){if(!Array.isArray(te.nodes)||te.nodes.length===0||te.nodes.length>MAX_NODES)return bad$3(`${ee}.nodes must be 1 to ${MAX_NODES} entries`);const ne=[],xe=new Set;for(const[ht,dt]of te.nodes.entries()){const Mt=`${ee}.nodes[${ht}]`;if(!isRecord$2(dt)||!text$4(dt.id,64)||typeof dt.name!="string")return bad$3(`${Mt} must be {id, name}`);const ft=stray(dt,NODE_FIELDS);if(ft)return bad$3(`${Mt}.${ft} is not a field of a graph3d node`);if(!text$4(dt.name,MAX_NODE_NAME))return bad$3(tooLong(`${Mt}.name`,MAX_NODE_NAME,dt.name));if(xe.has(dt.id))return bad$3(`${Mt}.id is a duplicate node id`);xe.add(dt.id);const gt={id:dt.id,name:dt.name};if(dt.type!==void 0){if(!text$4(dt.type,MAX_TYPE_NAME))return bad$3(tooLong(`${Mt}.type`,MAX_TYPE_NAME,dt.type));gt.type=dt.type}if(dt.value!==void 0){if(!finite$2(dt.value)||dt.value<0)return bad$3(`${Mt}.value must be zero or a positive number`);gt.value=dt.value}ne.push(gt)}if(!Array.isArray(te.edges)||te.edges.length>MAX_EDGES)return bad$3(`${ee}.edges must be up to ${MAX_EDGES} entries`);const it=[];for(const[ht,dt]of te.edges.entries()){const Mt=`${ee}.edges[${ht}]`;if(!isRecord$2(dt)||typeof dt.from!="string"||typeof dt.to!="string")return bad$3(`${Mt} must be {from, to}`);const ft=stray(dt,EDGE_FIELDS);if(ft)return bad$3(`${Mt}.${ft} is not a field of a graph3d edge`);for(const xt of["from","to"])if(!xe.has(dt[xt]))return bad$3(`${Mt}.${xt} is not a node id`);const gt={from:dt.from,to:dt.to};if(dt.type!==void 0){if(!text$4(dt.type,MAX_TYPE_NAME))return bad$3(tooLong(`${Mt}.type`,MAX_TYPE_NAME,dt.type));gt.type=dt.type}it.push(gt)}const ut={kind:"graph3d",nodes:ne,edges:it};if(te.types!==void 0){if(!isRecord$2(te.types)||Object.keys(te.types).length>MAX_TYPES)return bad$3(`${ee}.types must be up to ${MAX_TYPES} entries`);const ht={};for(const[dt,Mt]of Object.entries(te.types)){if(!text$4(dt,MAX_TYPE_NAME))return bad$3(tooLong(`${ee}.types key`,MAX_TYPE_NAME,dt));if(typeof Mt!="string"||!HEX$2.test(Mt))return bad$3(`${ee}.types.${dt} must be a hex colour like #22d3ee`);ht[dt]=Mt}ut.types=ht}if(te.focus!==void 0){if(typeof te.focus!="string"||!xe.has(te.focus))return bad$3(`${ee}.focus is not a node id`);ut.focus=te.focus}if(te.mode!==void 0&&te.mode!=="orbit"&&te.mode!=="flat")return bad$3(`${ee}.mode must be orbit or flat`);if(ut.mode=te.mode??"orbit",te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);ut.rotate=te.rotate}return{ok:!0,value:ut}}function parsePanel(te,ee,ne){const xe=`panels[${ee}]`;if(!isRecord$2(te))return bad$3(`${xe} must be an object`);if(typeof te.kind!="string"||!KINDS.has(te.kind))return bad$3(`${xe}.kind must be one of ${[...KINDS].join(", ")}`);const it=te.kind,ut=new Set([...COMMON,...FIELDS[it]]);for(const Mt of Object.keys(te))if(!ut.has(Mt))return bad$3(`${xe}.${Mt} is not a field of a ${it} panel`);let ht;switch(it){case"kpi":ht=parseKpi(te,xe);break;case"gauge":ht=parseGauge(te,xe);break;case"rank":ht=parseRank(te,xe);break;case"chart":if(!isRecord$2(te.option))return bad$3(`${xe}.option must be an ECharts option object`);ht={ok:!0,value:{kind:"chart",option:te.option}};break;case"chart3d":ht=parseChart3d(te,xe);break;case"globe":ht=parseGlobe(te,xe);break;case"timeline":ht=parseTimeline(te,xe);break;case"graph3d":ht=parseGraph3d(te,xe);break}if(!ht.ok)return ht;const dt=ht.value;if(te.title!==void 0){if(!text$4(te.title,80))return bad$3(tooLong(`${xe}.title`,80,te.title));dt.title=te.title}if(te.span!==void 0){if(!Number.isInteger(te.span)||te.span<1||te.span>ne)return bad$3(`${xe}.span must be a whole number from 1 to ${ne}`);dt.span=te.span}if(te.height!==void 0){if(!finite$2(te.height)||te.height<80||te.height>900)return bad$3(`${xe}.height must be from 80 to 900 pixels`);dt.height=te.height}return{ok:!0,value:dt}}function parseBigscreen(te,ee={}){const ne=ee.maxPanels??24,xe=ee.maxSourceBytes??64*1024;if(new TextEncoder().encode(te).byteLength>xe)return{ok:!1,error:{code:"too-large",message:"Screen definition is too large."}};let it;try{it=JSON.parse(te)}catch{return{ok:!1,error:{code:"invalid-json",message:"Screen definition is not valid JSON."}}}if(!isRecord$2(it))return bad$3("A screen definition must be a JSON object");for(const ht of Object.keys(it))if(!SCREEN_FIELDS.has(ht))return bad$3(`${ht} is not a field of a screen definition`);const ut={theme:ee.theme??"dark",columns:12,panels:[]};if(it.title!==void 0){if(!text$4(it.title,80))return bad$3(tooLong("title",80,it.title));ut.title=it.title}if(it.subtitle!==void 0){if(!text$4(it.subtitle,120))return bad$3(tooLong("subtitle",120,it.subtitle));ut.subtitle=it.subtitle}if(it.theme!==void 0){if(it.theme!=="dark"&&it.theme!=="light")return bad$3("theme must be dark or light");ut.theme=it.theme}if(it.accent!==void 0){if(typeof it.accent!="string"||!HEX$2.test(it.accent))return bad$3("accent must be a hex colour like #22d3ee");ut.accent=it.accent}if(it.columns!==void 0){if(!Number.isInteger(it.columns)||it.columns<1||it.columns>24)return bad$3("columns must be a whole number from 1 to 24");ut.columns=it.columns}if(!Array.isArray(it.panels)||it.panels.length===0)return bad$3("panels must be a non-empty array");if(it.panels.length>ne)return bad$3(`panels has more than ${ne} entries`);for(const[ht,dt]of it.panels.entries()){const Mt=parsePanel(dt,ht,ut.columns);if(!Mt.ok)return Mt;ut.panels.push(Mt.value)}return{ok:!0,value:ut}}function bigscreenPromptSpec(te){return translate$2(PROMPT$5,te,"spec")}const ZH$2=`数据大屏(围栏代码块):\`\`\`bigscreen 开头,块内是一个 JSON 对象。当用户要一个"大屏 / 看板 / dashboard / 总览",或者要把一组指标、排行、趋势、地域分布放在一起漂亮地展示时,输出一个 bigscreen 块。它会画成深色发光的数据墙:数字滚动增长、仪表盘扫过、排行条生长、图表逐步绘出、3D 图和地球缓慢旋转。文字说明照常写在块外。
|
|
23
|
+
`)}const baseCss=["[data-aigui-renderer]{max-width:100%}","[data-aigui-renderer] img,[data-aigui-renderer] svg,[data-aigui-renderer] video,[data-aigui-renderer] canvas{max-width:100%;height:auto}","[data-aigui-renderer] pre{max-width:100%;overflow-x:auto}","[data-aigui-renderer] code{overflow-wrap:anywhere}","[data-aigui-renderer] pre code{overflow-wrap:normal}","[data-aigui-renderer] table:where(:not([data-aigui-resultset] *):not([data-aigui-dashboard] *)){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}","[data-aigui-renderer] p,[data-aigui-renderer] li,[data-aigui-renderer] h1,[data-aigui-renderer] h2,[data-aigui-renderer] h3{overflow-wrap:break-word}","[data-aigui-renderer] a{overflow-wrap:anywhere}","[data-aigui-renderer] [data-aigui-chart],[data-aigui-renderer] [data-aigui-mermaid],[data-aigui-renderer] [data-aigui-map],[data-aigui-renderer] [data-aigui-molecule]{max-width:100%;overflow-x:auto}"].join("");function collectPluginStyles(te){const ee=new Map;ee.set("base",baseCss);for(const ne of te??[]){const xe=ne?.css?.trim();xe&&(xe.startsWith("@import")&&!/@import\s+url\(|@import\s+["'](?:https?:)?\/\//.test(xe)||ee.set(ne.name,xe))}return[...ee].map(([ne,xe])=>({name:ne,css:xe}))}const STYLE_ATTR="data-aigui-style";function injectPluginStyles(te,ee){const ne=ee??(typeof document>"u"?void 0:document);if(ne?.head)for(const{name:xe,css:it}of collectPluginStyles(te)){if(ne.querySelector(`style[${STYLE_ATTR}="${CSS_ESCAPE(xe)}"]`))continue;const ut=ne.createElement("style");ut.setAttribute(STYLE_ATTR,xe),ut.textContent=it,ne.head.appendChild(ut)}}function CSS_ESCAPE(te){return te.replace(/["\\]/g,"\\$&")}function resolveMessages(te,ee){const ne=te.en??{};if(!ee)return ne;const xe=te[ee];if(xe)return{...ne,...xe};const it=ee.split("-")[0],ut=it&&it!==ee?te[it]:void 0;return ut?{...ne,...ut}:ne}function translate$2(te,ee,ne){return resolveMessages(te,ee)[ne]??ne}function measure(te,ee){const ne=typeof te.getBoundingClientRect=="function"?te.getBoundingClientRect():void 0,xe=ht=>Number.parseFloat(te.getAttribute(ht)??""),it=ht=>{const dt=(te.getAttribute("viewBox")??"").split(/[\s,]+/).map(Number);return dt.length===4&&Number.isFinite(dt[ht])?dt[ht]:Number.NaN},ut=(...ht)=>ht.find(dt=>Number.isFinite(dt)&&dt>0);return{width:Math.round(ut(ee.width??Number.NaN,ne?.width??Number.NaN,xe("width"),it(2),720)),height:Math.round(ut(ee.height??Number.NaN,ne?.height??Number.NaN,xe("height"),it(3),400))}}function rasterisable(te){const ee=te.cloneNode(!0),ne=Array.from(ee.querySelectorAll("foreignObject"));for(const xe of ne){const it=(xe.textContent??"").trim(),ut=xe.parentNode;if(!ut)continue;if(!it){ut.removeChild(xe);continue}const ht=Number.parseFloat(xe.getAttribute("x")??"0"),dt=Number.parseFloat(xe.getAttribute("y")??"0"),Mt=Number.parseFloat(xe.getAttribute("width")??"0"),ft=Number.parseFloat(xe.getAttribute("height")??"0"),gt=document.createElementNS("http://www.w3.org/2000/svg","text");gt.setAttribute("x",String(ht+Mt/2)),gt.setAttribute("y",String(dt+ft/2)),gt.setAttribute("text-anchor","middle"),gt.setAttribute("dominant-baseline","middle"),gt.setAttribute("font-size","14"),gt.setAttribute("fill","currentColor"),gt.textContent=it,ut.replaceChild(gt,xe)}return ee}async function exportSVGToImage(te,ee={}){const{width:ne,height:xe}=measure(te,ee),it=ee.scale&&ee.scale>0?ee.scale:globalThis.devicePixelRatio||1,ut=new XMLSerializer().serializeToString(rasterisable(te)),ht=/\sxmlns=/.test(ut)?ut:ut.replace(/^<svg/,'<svg xmlns="http://www.w3.org/2000/svg"'),dt=URL.createObjectURL(new Blob([ht],{type:"image/svg+xml;charset=utf-8"}));try{const Mt=await loadImage(dt),ft=document.createElement("canvas");ft.width=Math.max(1,Math.round(ne*it)),ft.height=Math.max(1,Math.round(xe*it));const gt=ft.getContext("2d");if(!gt)throw new Error("This browser cannot rasterize images");const xt=ee.background??"#ffffff";return xt!=="transparent"&&(gt.fillStyle=xt,gt.fillRect(0,0,ft.width,ft.height)),gt.scale(it,it),gt.drawImage(Mt,0,0,ne,xe),{dataUrl:ft.toDataURL(ee.type??"image/png",ee.quality),width:ft.width,height:ft.height}}finally{URL.revokeObjectURL(dt)}}async function exportRenderedImages(te,ee={}){const ne=[];for(const xe of Array.from(te.querySelectorAll("svg")))if(!xe.closest(".katex"))try{ne.push(await exportSVGToImage(xe,ee))}catch(it){ee.onSkip?.(xe,it)}return ne}function loadImage(te){return new Promise((ee,ne)=>{const xe=new Image;xe.onload=()=>ee(xe),xe.onerror=()=>ne(new Error("The drawing could not be decoded")),xe.src=te})}function diffAst(te,ee){const ne=[],xe=new Set(ee.map(ut=>ut.key)),it=[...te];for(let ut=it.length-1;ut>=0;ut--)xe.has(it[ut].key)||(ne.push({op:"remove",key:it[ut].key}),it.splice(ut,1));for(let ut=0;ut<ee.length;ut++){const ht=ee[ut],dt=it.findIndex(Mt=>Mt.key===ht.key);if(dt===-1){ne.push({op:"insert",index:ut,node:ht}),it.splice(ut,0,ht);continue}if(dt!==ut){ne.push({op:"move",key:ht.key,index:ut});const[Mt]=it.splice(dt,1);it.splice(ut,0,Mt)}nodeEqual(it[ut],ht)||(ne.push({op:"update",key:ht.key,node:ht}),it[ut]=ht)}return ne}function nodeEqual(te,ee){return te===ee?!0:JSON.stringify(te)===JSON.stringify(ee)}var Renderer$1=class{debugSource="renderer";buffer="";prevAst=[];parse;parsed;options;sanitize;generation=0;activeFeed;renderScheduled=!1;scheduleGeneration=0;debug;constructor(ee={}){this.options=ee,assertPlugins(ee.plugins),this.debug=new DebugEmitter(this.debugSource,ee),this.sanitize=ee.sanitize===!1?!1:typeof ee.sanitize=="object"?ee.sanitize:{},this.registerPluginCards(ee.plugins),this.parse=createParserWithMetadata({registry:ee.registry,plugins:ee.plugins,rawHtml:ee.rawHtml})}get plugins(){return this.options.plugins??[]}setPlugins(ee){assertPlugins(ee),!samePlugins(this.options.plugins,ee)&&(this.options={...this.options,plugins:ee},this.registerPluginCards(ee),this.parse=createParserWithMetadata({registry:this.options.registry,plugins:ee,rawHtml:this.options.rawHtml}),this.parsed=void 0,this.renderScheduled=!1,this.scheduleGeneration++,this.debug.active&&this.debug.emit("plugins-changed",{plugins:(ee??[]).map(ne=>ne.name)}),this.render())}registerPluginCards(ee){const ne=this.options.registry;if(ne)for(const xe of ee??[])for(const it of xe.cards??[])ne.register(it)}get debugEnabled(){return this.debug.available}emitDebug(ee,ne={}){this.debug.emit(ee,ne)}push(ee){this.buffer+=ee,this.debug.active&&this.debug.emit("chunk-received",{chunk:ee,length:ee.length,bufferLength:this.buffer.length}),this.scheduleRender()}subscribeDebug(ee){return this.debug.subscribe(ee)}async feed(ee,ne={}){const xe=++this.generation;this.cancelActiveFeed(createAbortError("Superseded by a newer feed")),this.debug.active&&this.debug.emit("feed-started",{generation:xe});const it=new TextDecoder,ut=ne.signal;if(ut?.aborted)throw abortReason$1(ut);let ht=!1,dt;const Mt=()=>{ht=!0,dt=abortReason$1(ut),this.activeFeed?.generation===xe&&this.cancelActiveFeed(dt)};ut?.addEventListener("abort",Mt,{once:!0});const ft=gt=>{if(xe!==this.generation||ht)return;const xt=typeof gt=="string"?it.decode()+gt:it.decode(gt,{stream:!0});xt&&this.push(xt)};try{if(isReadableStream$2(ee)){const gt=ee.getReader();let xt=!1;this.activeFeed={generation:xe,cancel:async mt=>{xt||(xt=!0,await gt.cancel(mt))}};try{for(;;){const{done:mt,value:Dt}=await gt.read();if(mt||xe!==this.generation||ht)break;Dt!=null&&ft(Dt)}}finally{gt.releaseLock()}}else{const gt=ee[Symbol.asyncIterator]();let xt=!1;this.activeFeed={generation:xe,cancel:async()=>{xt||(xt=!0,await gt.return?.())}};try{for(;;){const{done:mt,value:Dt}=await gt.next();if(mt||xe!==this.generation||ht)break;ft(Dt)}}finally{(xe!==this.generation||ht)&&!xt&&(xt=!0,await gt.return?.())}}if(xe===this.generation&&!ht){const gt=it.decode();gt&&this.push(gt),this.flush()}if(ht)throw this.debug.active&&this.debug.emit("feed-cancelled",{generation:xe,error:dt}),dt;xe===this.generation&&this.debug.active&&this.debug.emit("feed-completed",{generation:xe,bufferLength:this.buffer.length})}finally{!ht&&xe!==this.generation&&this.debug.active&&this.debug.emit("feed-cancelled",{generation:xe,reason:"superseded-or-reset"}),ut?.removeEventListener("abort",Mt),this.activeFeed?.generation===xe&&(this.activeFeed=void 0)}}reset(){this.generation++,this.cancelActiveFeed(createAbortError("Renderer reset")),this.activeFeed=void 0,this.buffer="",this.renderScheduled=!1,this.scheduleGeneration++;const ee=diffAst(this.prevAst,[]);this.prevAst=[],this.parsed=void 0,this.options.onPatch?.(ee,[]),this.debug.active&&this.debug.emit("renderer-reset",{patches:ee})}flush(){this.renderScheduled&&(this.renderScheduled=!1,this.scheduleGeneration++,this.render())}scheduleRender(){if(!this.options.scheduler){this.render();return}if(this.renderScheduled)return;this.renderScheduled=!0;const ee=++this.scheduleGeneration;this.options.scheduler(()=>{!this.renderScheduled||ee!==this.scheduleGeneration||(this.renderScheduled=!1,this.render())})}cancelActiveFeed(ee){const ne=this.activeFeed;ne&&Promise.resolve(ne.cancel(ee)).catch(()=>{})}render(){const ee=this.debug.active,ne=ee?now$1():0,xe=this.parsed;let it,ut="full";if(xe?.incrementalSafe&&xe.blocks.length>1){const mt=xe.blocks.at(-1),Dt=xe.blocks.slice(0,-1),yt=mt.nodeStart,wt=this.buffer.slice(mt.start),At=repairMarkdown(wt);ee&&this.debug.emit("markdown-repaired",{mode:"mutable-tail",raw:wt,rawLength:wt.length,repaired:At,repairedLength:At.length,sourceOffset:mt.start});const Lt=ee?now$1():0,bt=this.parse(At,wt,mt.start);if(ee&&this.debug.emit("mutable-tail-reparsed",{sourceOffset:mt.start,durationMs:now$1()-Lt}),bt.incrementalSafe)ut="mutable-tail",this.sanitize!==!1&&this.sanitizeNodesWithDebug(bt.nodes),it={nodes:[...xe.nodes.slice(0,yt),...bt.nodes],blocks:[...Dt,...bt.blocks.map(vt=>({...vt,nodeStart:vt.nodeStart+yt,nodeEnd:vt.nodeEnd+yt}))],incrementalSafe:!0},ee&&this.debug.emit("stable-prefix-committed",{blocks:Dt.length,nodes:yt});else{const vt=repairMarkdown(this.buffer);ee&&this.debug.emit("markdown-repaired",{mode:"full",raw:this.buffer,rawLength:this.buffer.length,repaired:vt,repairedLength:vt.length});const Qt=ee?now$1():0;it=this.parse(vt,this.buffer),ee&&this.debug.emit("parse-completed",{mode:"full",durationMs:now$1()-Qt}),this.sanitize!==!1&&this.sanitizeNodesWithDebug(it.nodes)}}else{const mt=repairMarkdown(this.buffer);ee&&this.debug.emit("markdown-repaired",{mode:"full",raw:this.buffer,rawLength:this.buffer.length,repaired:mt,repairedLength:mt.length});const Dt=ee?now$1():0;it=this.parse(mt,this.buffer),ee&&this.debug.emit("parse-completed",{mode:"full",durationMs:now$1()-Dt}),this.sanitize!==!1&&this.sanitizeNodesWithDebug(it.nodes)}const ht=it.nodes;for(const mt of this.options.plugins??[])if(mt.onASTCommit)try{mt.onASTCommit(ht,{generation:this.generation,emitDebug:(Dt,yt={})=>this.debug.emit(Dt,{plugin:mt.name,...yt})})}catch(Dt){ee&&this.debug.emit("plugin-commit-failed",{plugin:mt.name,error:Dt})}const dt=ee?now$1():0,Mt=diffAst(this.prevAst,ht),ft=ee?now$1()-dt:0;this.parsed=it,this.prevAst=ht;const gt=ee?now$1():0;Mt.length>0&&this.options.onPatch?.(Mt,ht);const xt=ee?now$1()-gt:0;ee&&(this.debug.emit("ast-snapshot",{mode:ut,nodes:ht}),this.debug.emit("ast-patches",{patches:Mt,durationMs:ft}),this.debug.emit("patch-dispatched",{patches:Mt.length,durationMs:xt,renderDurationMs:now$1()-ne}))}sanitizeNodesWithDebug(ee){if(this.sanitize===!1)return;if(!this.debug.active){sanitizeNodes(ee,this.sanitize);return}const ne=nodeMarkupSize(ee),xe=now$1();sanitizeNodes(ee,this.sanitize),this.debug.emit("sanitizer-completed",{inputSize:ne,outputSize:nodeMarkupSize(ee),durationMs:now$1()-xe})}};function sanitizeNodes(te,ee){for(const ne of te)ne.type==="html"&&typeof ne.content=="string"&&(ne.content=sanitizeHtml(ne.content,ee)),ne.html&&(ne.html=sanitizeHtml(ne.html,ee)),ne.children&&sanitizeNodes(ne.children,ee)}function isReadableStream$2(te){return"getReader"in te&&typeof te.getReader=="function"}function abortReason$1(te){return te?.reason??createAbortError("The operation was aborted")}function createAbortError(te){const ee=new Error(te);return ee.name="AbortError",ee}function now$1(){return typeof performance>"u"?Date.now():performance.now()}function nodeMarkupSize(te){let ee=0;for(const ne of te)ee+=ne.content?.length??0,ee+=ne.html?.length??0,ne.children&&(ee+=nodeMarkupSize(ne.children));return ee}function renderOutputToElement(te,ee,ne={}){switch(te.kind){case"html":{const xe=document.createElement("div");return xe.innerHTML=sanitizeRenderedHtml(te.html,ee,te.trusted),xe}case"element":{const xe=document.createElement(te.tag);for(const[it,ut]of Object.entries(te.props??{}))it==="class"||it==="className"?xe.className=String(ut):xe.setAttribute(it,String(ut));for(const it of te.children??[])xe.appendChild(renderOutputToElement(it,ee,ne));return xe}case"card":{const xe=document.createElement("pre");xe.setAttribute("data-aigui-card-fallback","");const it=document.createElement("code");return it.textContent=JSON.stringify(te.data,null,2),xe.appendChild(it),xe}case"mount":{const xe=document.createElement("div");return xe.setAttribute("data-aigui-mount",""),queueMicrotask(()=>{if(xe.__aiguiDisposed)return;const it=te.mount(xe,ne);typeof it=="function"&&(xe.__aiguiDisposed?it():xe.__aiguiCleanup=it)}),xe}}}function renderNodeToElement(te,ee){const ne=(ee.nodeRenderers??collectNodeRenderers(ee.plugins))[te.type];if(ne){if(te.complete===!1){const xe=document.createElement("div");return xe.setAttribute("data-aigui-block-loading",""),xe.setAttribute("data-block-type",te.type),xe}try{const xe=ne(te,{theme:ee.theme,locale:ee.locale});if(typeof xe?.then=="function"){const it=document.createElement("div");return it.setAttribute("data-aigui-async-pending",""),xe.then(ut=>{it.__aiguiDisposed||(it.removeAttribute("data-aigui-async-pending"),it.replaceChildren(renderOutputToElement(ut,ee.sanitize,createRenderMountContext(ee))))},()=>{it.__aiguiDisposed||(it.removeAttribute("data-aigui-async-pending"),it.setAttribute("data-aigui-async-error",""))}),it}return renderOutputToElement(xe,ee.sanitize,createRenderMountContext(ee))}catch{return renderFallback(te,ee)}}switch(te.type){case"heading":{const xe=document.createElement(te.tag??"h1");return xe.innerHTML=renderHtml(te.html??"",ee),xe}case"paragraph":{const xe=document.createElement("p");return xe.innerHTML=renderHtml(te.html??"",ee),xe}case"code":{const xe=document.createElement("pre");te.attrs?.lang&&xe.setAttribute("data-lang",te.attrs.lang);const it=document.createElement("code");return it.textContent=te.content??"",xe.appendChild(it),xe}case"hr":return document.createElement("hr");case"html":{const xe=document.createElement("div");return xe.innerHTML=renderHtml(te.content??"",ee),xe}case"card":return renderCardElement(te,ee);default:return renderFallback(te,ee)}}function renderFallback(te,ee){const ne=document.createElement("div");return ne.innerHTML=renderHtml(te.html??te.content??"",ee),ne}function renderHtml(te,ee){return ee.sanitized||ee.sanitize===!1?te:sanitizeHtml(te,typeof ee.sanitize=="object"?ee.sanitize:void 0)}function renderCardElement(te,ee){const ne=te.card;if(!ne)return document.createElement("div");if(!ne.complete){const ht=document.createElement("div");return ht.setAttribute("data-aigui-card-loading",""),ht.setAttribute("data-card-type",ne.type),ht}if(!ne.valid){const ht=document.createElement("pre");ht.setAttribute("data-aigui-card-invalid","");const dt=document.createElement("code");return dt.textContent=JSON.stringify(ne.data,null,2),ht.appendChild(dt),ht}const xe=ee.registry?.getRender(ne.type);if(!xe)return createCardFallback(ne,ee);const it=document.createElement("div");it.setAttribute("data-aigui-card",ne.type);const ut=createCardController(it,ne,xe,ee);return it.__aiguiCardController=ut,it.__aiguiCleanup=()=>ut.destroy(),it}function createRenderMountContext(te){return{mountCard(ee,ne){return mountCardSlot(ee,ne,te)}}}function mountCardSlot(te,ee,ne){const xe=ne.registry?.getRender(ee.type);if(xe)return createVanillaCardSlot(te,ee.data,xe,()=>({state:{status:"idle"},onAction:it=>ne.onCardAction?.({...it,cardType:ee.type})}))}function createVanillaCardSlot(te,ee,ne,xe){let it=!1,ut,ht;const dt=Mt=>{const ft=ne(Mt,xe());isVanillaCardInstance(ft)?(ut=ft,ht=ft.element):(ut=void 0,ht=ft),te.replaceChildren(ht)};return dt(ee),{element:()=>ht,update(Mt){it||(ut?ut.update(Mt,xe()):dt(Mt))},destroy(){it||(it=!0,ut?.destroy?.(),ut=void 0)}}}function createCardFallback(te,ee){const ne=document.createElement("pre");ne.setAttribute("data-aigui-card-fallback","");const xe=document.createElement("code");ne.appendChild(xe);const it=dt=>{ne.removeAttribute("data-aigui-card-missing"),xe.textContent=JSON.stringify(dt,null,2)},ut=()=>{ne.setAttribute("data-aigui-card-missing",""),xe.textContent="Card data is unavailable"};let ht=()=>{};if(te.id!==void 0&&ee.cardStore){try{const dt=ee.cardStore.register({id:te.id,type:te.type,data:te.data});it(dt.data)}catch(dt){ne.setAttribute("data-aigui-card-store-error",""),xe.textContent=dt instanceof Error?dt.message:"Card registration failed"}ht=ee.cardStore.subscribe(te.id,dt=>{!dt||dt.type!==te.type?ut():(ne.removeAttribute("data-aigui-card-store-error"),it(dt.data))}),ne.__aiguiCleanup=ht}else it(te.data);return ne}function updateCardElement(te,ee){return te.__aiguiCardController?.updateNode(ee)??!1}function createCardController(te,ee,ne,xe){let it=ee,ut=!1,ht=()=>{},dt,Mt=!1;const ft=it.id,gt=Lt=>xe.onCardAction?.({...Lt,cardType:it.type,...ft===void 0?{}:{cardId:ft}});let xt=it.data,mt={status:"idle"},Dt;if(ft!==void 0&&xe.cardStore)try{const Lt=xe.cardStore.register({id:ft,type:it.type,data:xt});xt=Lt.data,mt=Lt.action}catch(Lt){Dt=Lt}const yt=Lt=>{dt=createVanillaCardSlot(te,Lt,ne,()=>({state:mt,onAction:gt}))},wt=(Lt,bt)=>{if(!ut){if(xt=Lt,mt=bt,te.removeAttribute("data-aigui-card-store-error"),Mt){Mt=!1,te.removeAttribute("data-aigui-card-missing");const vt=dt?.element();vt&&te.replaceChildren(vt)}dt?dt.update(xt):yt(xt)}},At=()=>{if(ut||Mt)return;Mt=!0,te.removeAttribute("data-aigui-card-store-error"),te.setAttribute("data-aigui-card-missing","");const Lt=document.createElement("code");Lt.textContent="Card data is unavailable",te.replaceChildren(Lt)};if(Dt===void 0)yt(xt);else{te.setAttribute("data-aigui-card-store-error","");const Lt=document.createElement("code");Lt.textContent=Dt instanceof Error?Dt.message:"Card registration failed",te.replaceChildren(Lt)}return ft!==void 0&&xe.cardStore&&(ht=xe.cardStore.subscribe(ft,Lt=>{if(!Lt||Lt.type!==it.type){At();return}wt(Lt.data,Lt.action)})),{updateNode(Lt){const bt=Lt.card;return!bt?.complete||!bt.valid||bt.type!==it.type||bt.id!==ft?!1:(it=bt,(ft===void 0||!xe.cardStore)&&wt(bt.data,mt),!0)},destroy(){ut||(ut=!0,ht(),ht=()=>{},dt?.destroy(),dt=void 0)}}}function isVanillaCardInstance(te){return!(te instanceof HTMLElement)&&te!==null&&typeof te=="object"&&te.element instanceof HTMLElement&&typeof te.update=="function"}function createReconcileState(){return{els:new Map}}function disposeEl(te){for(const ee of te.querySelectorAll("*"))disposeManagedEl(ee);disposeManagedEl(te)}function disposeManagedEl(te){const ee=te;ee.__aiguiDisposed||(ee.__aiguiDisposed=!0,ee.__aiguiCleanup?.(),ee.__aiguiCleanup=void 0)}function reconcile(te,ee,ne,xe){const it=new Set(ee.map(ht=>ht.key));for(const[ht,dt]of xe.els)it.has(ht)||(disposeEl(dt.el),dt.el.remove(),xe.els.delete(ht));let ut=null;for(const ht of ee){const dt=JSON.stringify(ht);let Mt=xe.els.get(ht.key);if(!Mt)Mt={el:renderNodeToElement(ht,ne),hash:dt},xe.els.set(ht.key,Mt);else if(Mt.hash!==dt)if(updateElementInPlace(Mt.el,ht,ne))Mt.hash=dt;else{disposeEl(Mt.el);const gt=renderNodeToElement(ht,ne);Mt.el.replaceWith(gt),Mt.el=gt,Mt.hash=dt}const ft=ut?ut.nextSibling:te.firstChild;Mt.el!==ft&&te.insertBefore(Mt.el,ft),ut=Mt.el}}function updateElementInPlace(te,ee,ne){if(ne.nodeRenderers?.[ee.type])return!1;switch(ee.type){case"heading":return te.tagName!==(ee.tag??"h1").toUpperCase()?!1:(te.innerHTML=ee.html??"",!0);case"paragraph":return te.tagName!=="P"?!1:(te.innerHTML=ee.html??"",!0);case"code":{if(te.tagName!=="PRE")return!1;ee.attrs?.lang&&te.setAttribute("data-lang",ee.attrs.lang);let xe=te.querySelector("code");return xe||(xe=document.createElement("code"),te.appendChild(xe)),xe.textContent=ee.content??"",!0}case"hr":return te.tagName==="HR";case"html":return te.tagName!=="DIV"?!1:(te.innerHTML=ee.content??"",!0);case"card":return updateCardElement(te,ee);default:return te.tagName!=="DIV"?!1:(te.innerHTML=ee.html??ee.content??"",!0)}}function createRenderer(te,ee={}){const{actionRuntime:ne,cardStore:xe,onCardAction:it,nodeRenderers:ut,theme:ht,locale:dt,onRender:Mt,onNodeClick:ft,plugins:gt,...xt}=ee,mt=loadPlugins(gt),Dt=Array.isArray(mt)?mt:void 0;injectPluginStyles(Dt,te.ownerDocument);let yt="",wt=[],At={owner:{},controller:new AbortController};const Lt=Ot=>{ne&&ne.dispatch({...Ot,params:Ot.params},{owner:At.owner,signal:At.controller.signal}).catch(()=>{}),it?.(Ot)},bt=createReconcileState();let vt=!1;const Qt=new Renderer$1({...xt,plugins:Dt,onPatch:(Ot,zt)=>{vt||(wt=zt,reconcile(te,zt,Ut,bt),Mt?.(zt))}}),Ct=Ot=>({...collectNodeRenderers(Ot,{debugTarget:Qt}),...ut}),Ut={registry:ee.registry,cardStore:xe,onCardAction:Lt,plugins:Dt,nodeRenderers:Ct(Dt),sanitize:ee.sanitize,sanitized:!0,theme:ht,locale:dt},Rt=()=>{for(const Ot of bt.els.values())disposeEl(Ot.el)},Ft=Ot=>{assertPlugins(Ot),!(vt||samePlugins(Ut.plugins,Ot))&&(Ut.plugins=Ot,Ut.nodeRenderers=Ct(Ot),injectPluginStyles(Ot,te.ownerDocument),Rt(),bt.els.clear(),te.replaceChildren(),Qt.setPlugins(Ot),reconcile(te,wt,Ut,bt))},Gt=Ot=>{const zt=Ot;if(!(!zt||typeof zt.nodeType!="number")){for(const[Xt,Zt]of bt.els)if(Zt.el===zt||Zt.el.contains(zt))return wt.find(Ht=>Ht.key===Xt)}},_t=Ot=>{const zt=Gt(Ot.target);zt&&ft?.(zt,Ot)};ft&&te.addEventListener("click",_t),Array.isArray(mt)||mt.then(Ot=>{try{Ft(Ot)}catch(zt){Qt.emitDebug("plugins-load-failed",{error:zt}),console.error(zt)}},Ot=>Qt.emitDebug("plugins-load-failed",{error:Ot}));const kt=()=>{At.controller.abort(),At={owner:{},controller:new AbortController}};return{debugSource:"renderer",subscribeDebug:Ot=>Qt.subscribeDebug(Ot),push:Ot=>{vt||(Qt.push(Ot),yt+=Ot)},setText:Ot=>{vt||Ot===yt||(Ot.startsWith(yt)?Qt.push(Ot.slice(yt.length)):(kt(),Rt(),Qt.reset(),bt.els.clear(),te.replaceChildren(),Qt.push(Ot)),yt=Ot)},setTheme:Ot=>{vt||Ut.theme===Ot||(Ut.theme=Ot,Rt(),bt.els.clear(),te.replaceChildren(),reconcile(te,wt,Ut,bt))},setPlugins:Ft,exportImages:Ot=>exportRenderedImages(te,Ot),feed:(Ot,zt)=>vt?Promise.resolve():Qt.feed(Ot,zt),reset:()=>{vt||(kt(),Rt(),Qt.reset(),bt.els.clear(),te.replaceChildren(),yt="")},destroy:()=>{vt||(vt=!0,yt="",te.removeEventListener("click",_t),At.controller.abort(),Qt.reset(),Rt(),bt.els.clear(),te.replaceChildren())}}}function palette$2(te){const ee=te.accent??(te.theme==="dark"?"#22d3ee":"#0369a1");return te.theme==="dark"?{accent:ee,text:"#e2e8f0",muted:"#94a3b8",good:"#34d399",bad:"#fb7185",warn:"#fbbf24",track:"rgba(148,163,184,0.18)",series:[ee,"#a78bfa","#34d399","#fbbf24","#fb7185","#60a5fa","#f472b6","#2dd4bf"],gridLine:"rgba(148,163,184,0.16)"}:{accent:ee,text:"#1e293b",muted:"#64748b",good:"#059669",bad:"#e11d48",warn:"#d97706",track:"rgba(100,116,139,0.16)",series:[ee,"#7c3aed","#059669","#d97706","#e11d48","#2563eb","#db2777","#0d9488"],gridLine:"rgba(100,116,139,0.2)"}}function withAlpha(te,ee){const ne=te.replace("#",""),xe=ne.length===3?ne.split("").map(ut=>ut+ut).join(""):ne,it=Number.parseInt(xe,16);return`rgba(${it>>16&255},${it>>8&255},${it&255},${ee})`}const FONT="ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'PingFang SC', 'Noto Sans CJK SC', sans-serif";function formatNumber$1(te,ee=0){return te.toLocaleString("en-US",{minimumFractionDigits:ee,maximumFractionDigits:ee})}function gaugeColour(te,ee,ne){return ee?te>=ee[1]?ne.bad:te>=ee[0]?ne.warn:ne.good:ne.accent}function gaugeOption(te,ee,ne){const xe=te.max??100,it=Math.max(0,Math.min(1,te.value/xe)),ut=gaugeColour(it,te.thresholds,ee),ht=te.style==="ring";return{animation:ne,animationDuration:1400,animationEasing:"cubicOut",series:[{type:"gauge",startAngle:ht?90:210,endAngle:ht?-270:-30,min:0,max:xe,radius:"92%",center:["50%",ht?"50%":"58%"],progress:{show:!0,width:ht?14:16,roundCap:!0,itemStyle:{color:ut,shadowBlur:12,shadowColor:withAlpha(ut,.5)}},pointer:{show:!ht,length:"60%",width:4,itemStyle:{color:ut}},axisLine:{lineStyle:{width:ht?14:16,color:[[1,ee.track]]}},axisTick:{show:!1},splitLine:{show:!ht,length:8,lineStyle:{color:ee.muted,width:1}},axisLabel:{show:!ht,color:ee.muted,fontSize:10,distance:18,fontFamily:FONT},anchor:{show:!ht,size:10,itemStyle:{color:ut}},title:{show:!1},detail:{valueAnimation:ne,offsetCenter:[0,ht?0:"28%"],fontSize:ht?28:24,fontWeight:700,fontFamily:FONT,color:ee.text,formatter:dt=>`${formatNumber$1(dt,Number.isInteger(te.value)?0:1)}${te.unit??""}`},data:[{value:te.value}]}]}}function chartOption(te,ee,ne){const xe={axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}}},it=ht=>Array.isArray(ht)?ht.map(dt=>({...xe,...dt})):ht&&typeof ht=="object"?{...xe,...ht}:ht,ut=te.option;return{backgroundColor:"transparent",color:ee.series,textStyle:{color:ee.text,fontFamily:FONT},animation:ne,animationDuration:1200,animationEasing:"cubicOut",grid:{left:40,right:16,top:28,bottom:28,containLabel:!0},legend:{textStyle:{color:ee.muted}},tooltip:{trigger:"axis"},...ut,...ut.xAxis!==void 0?{xAxis:it(ut.xAxis)}:{},...ut.yAxis!==void 0?{yAxis:it(ut.yAxis)}:{}}}function chart3dOption(te,ee,ne){const xe=te.data.map(Mt=>Mt[2]),it=Math.max(...xe),ut=Math.min(...xe),ht=(Mt,ft)=>({type:Mt?"category":"value",data:Mt,name:"",axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}},axisPointer:{show:!1},nameTextStyle:{color:ee.muted},id:ft}),dt={type:te.type,data:te.data,shading:"lambert",emphasis:{itemStyle:{color:ee.text}}};return te.type==="bar3D"&&(dt.bevelSize=.2),te.type==="scatter3D"&&(dt.symbolSize=9),te.type==="line3D"&&(dt.lineStyle={width:3,color:ee.accent}),te.type==="surface"&&(dt.wireframe={show:!0,lineStyle:{color:withAlpha(ee.accent,.35)}}),{backgroundColor:"transparent",textStyle:{fontFamily:FONT},tooltip:{},visualMap:{show:!1,min:ut,max:it,dimension:2,inRange:{color:[withAlpha(ee.accent,.55),ee.accent,ee.series[1]]}},xAxis3D:ht(te.xAxis,"x"),yAxis3D:ht(te.yAxis,"y"),zAxis3D:{type:"value",name:"",axisLine:{lineStyle:{color:ee.gridLine}},axisLabel:{color:ee.muted,fontFamily:FONT},splitLine:{lineStyle:{color:ee.gridLine}}},grid3D:{boxWidth:100,boxDepth:80,boxHeight:60,axisPointer:{show:!1},light:{main:{intensity:1.3,shadow:!1,alpha:40,beta:30},ambient:{intensity:.5}},viewControl:{autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:8,distance:190,alpha:24,beta:35,projection:"perspective"},environment:"none"},series:[dt]}}function globeTexture(te,ee){if(typeof document>"u")return;const ne=document.createElement("canvas");ne.width=1024,ne.height=512;const xe=ne.getContext("2d");if(xe){xe.fillStyle=ee==="dark"?"#0b1a33":"#dbe7f5",xe.fillRect(0,0,ne.width,ne.height),xe.strokeStyle=withAlpha(te.accent,ee==="dark"?.28:.35),xe.lineWidth=1.2;for(let it=0;it<360;it+=15){const ut=it/360*ne.width;xe.beginPath(),xe.moveTo(ut,0),xe.lineTo(ut,ne.height),xe.stroke()}for(let it=15;it<180;it+=15){const ut=it/180*ne.height;xe.beginPath(),xe.moveTo(0,ut),xe.lineTo(ne.width,ut),xe.stroke()}return xe.strokeStyle=withAlpha(te.accent,.6),xe.lineWidth=2,xe.beginPath(),xe.moveTo(0,ne.height/2),xe.lineTo(ne.width,ne.height/2),xe.stroke(),ne.toDataURL("image/png")}}const GLOBE_LABELS=8;function globeOption(te,ee,ne,xe,it){const ut=(te.arcs??[]).map(xt=>({coords:[xt.from,xt.to],name:xt.label})),ht=(te.points??[]).map(xt=>({name:xt.label,value:[xt.coord[0],xt.coord[1],0,xt.value??1]})),dt=Math.max(1,...ht.map(xt=>xt.value[3])),Mt=it?it.shading??"lambert":"color",ft={baseTexture:xe,shading:Mt,environment:"none",globeRadius:78,atmosphere:{show:it?it.atmosphere!==!1:!0,color:ee.accent,glowPower:5,innerGlowPower:2,offset:4},light:it?{ambient:{intensity:it.light?.ambient??.5},main:{intensity:it.light?.intensity??1.1,shadow:!1,time:it.light?.time??new Date}}:{ambient:{intensity:1},main:{intensity:.2}},viewControl:{autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:3,distance:150,targetCoord:ut[0]?.coords[0]??ht[0]?.value.slice(0,2)}};it&&(ft.postEffect={enable:!1},it.heightTexture&&(ft.heightTexture=it.heightTexture),Mt==="realistic"&&(ft.realisticMaterial={roughness:.85,metalness:0}));const gt=new Set([...ht].sort((xt,mt)=>mt.value[3]-xt.value[3]).slice(0,GLOBE_LABELS).map(xt=>xt.name));return{backgroundColor:"transparent",...it?{tooltip:{trigger:"item",confine:!0,formatter:"{b}"}}:{},globe:ft,series:[{type:"lines3D",coordinateSystem:"globe",blendMode:"lighter",lineStyle:{width:2.5,color:ee.series[1],opacity:.9},effect:{show:ne,period:3,trailWidth:4,trailLength:.3,trailOpacity:1,trailColor:"#ffffff"},data:ut},{type:"scatter3D",coordinateSystem:"globe",symbolSize:xt=>6+10*Math.sqrt((xt[3]??1)/dt),itemStyle:{color:ee.series[1],opacity:.9},label:{show:!0,formatter:it?xt=>xt.name&>.has(xt.name)?xt.name:"":"{b}",color:ee.text,fontSize:11,fontFamily:FONT,backgroundColor:"transparent",distance:6},data:ht}]}}const WIDTH=2048,HEIGHT=1024;function earthColours(te,ee,ne){const xe=ee==="dark";return{ocean:ne?.ocean??(xe?"#0b1a33":"#dbe7f5"),land:ne?.land??(xe?"#334155":"#f8fafc"),border:ne?.border??withAlpha(te.accent,xe?.55:.75)}}function polygonsOf(te){return!te||!Array.isArray(te.coordinates)?[]:te.type==="Polygon"?[te.coordinates]:te.type==="MultiPolygon"?te.coordinates:[]}function traceRing(te,ee,ne){if(ee.length<2)return;let xe=0,it=ee[0][0];ee.forEach((ut,ht)=>{const dt=ut[0],Mt=dt-it;Mt>180?xe-=360:Mt<-180&&(xe+=360),it=dt;const ft=(dt+xe+180)/360*WIDTH+ne,gt=(90-ut[1])/180*HEIGHT;ht===0?te.moveTo(ft,gt):te.lineTo(ft,gt)}),te.closePath()}function countriesTexture(te,ee){if(typeof document>"u")return;const ne=document.createElement("canvas");ne.width=WIDTH,ne.height=HEIGHT;const xe=ne.getContext("2d");if(xe){xe.fillStyle=ee.ocean,xe.fillRect(0,0,WIDTH,HEIGHT),xe.fillStyle=ee.land,xe.strokeStyle=ee.border,xe.lineWidth=1,xe.lineJoin="round";for(const it of te.features??[])for(const ut of polygonsOf(it?.geometry))for(const ht of[-WIDTH,0,WIDTH]){xe.beginPath();for(const dt of ut)traceRing(xe,dt,ht);xe.fill("evenodd"),xe.stroke()}return ne.toDataURL("image/png")}}function earthTexture(te,ee,ne){return ne?.baseTexture?ne.baseTexture:ne?.countries?countriesTexture(ne.countries,earthColours(te,ee,ne))??globeTexture(te,ee):globeTexture(te,ee)}const TIMELINE_LABELS=12,DEFAULT_SYMBOL=12,HOUR=60*60*1e3,LABEL_FLIPS_AT=.62,escapeHtml$1$2=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function timelineWindow(te){const ee=te.items.map(dt=>Date.parse(dt.at)),ne=te.from===void 0?void 0:Date.parse(te.from),xe=te.to===void 0?void 0:Date.parse(te.to);if(ne!==void 0&&xe!==void 0)return[ne,xe];const it=Math.min(...ee),ut=Math.max(...ee),ht=(ut-it)*.05||HOUR;return[ne??it-ht,xe??ut+ht]}function spacedItems(te,ee=TIMELINE_LABELS){const ne=new Map;te.items.forEach((it,ut)=>{const ht=ne.get(it.lane)??[];ht.push({index:ut,at:Date.parse(it.at)}),ne.set(it.lane,ht)});const xe=new Map;for(const it of ne.values()){const ut=[...it].sort((ht,dt)=>ht.at-dt.at);ut.forEach((ht,dt)=>{const Mt=dt>0?ht.at-ut[dt-1].at:Number.POSITIVE_INFINITY,ft=dt<ut.length-1?ut[dt+1].at-ht.at:Number.POSITIVE_INFINITY;xe.set(ht.index,Math.min(Mt,ft))})}return new Set([...xe.entries()].sort((it,ut)=>ut[1]-it[1]||it[0]-ut[0]).slice(0,ee).map(([it])=>it))}function timelineHeight(te){return Math.min(900,Math.max(320,60+te*28))}const LINK_KINDS$1={contradicts:{danger:!0,dotted:!1,arrow:!1,width:2,opacity:.95},follows:{danger:!1,dotted:!1,arrow:!0,width:1.4,opacity:.6},same:{danger:!1,dotted:!0,arrow:!1,width:1.4,opacity:.6}};function when(te){return`${new Date(te).toISOString().slice(0,16).replace("T"," ")} UTC`}function timelineOption(te,ee,ne){const[xe,it]=timelineWindow(te),ut=new Map(te.lanes.map(yt=>[yt.id,yt.name])),ht=spacedItems(te),dt=Math.max(0,...te.items.map(yt=>yt.value??0)),Mt=yt=>{const wt=typeof yt[2]=="number"?yt[2]:0;return wt>0&&dt>0?8+12*Math.sqrt(wt/dt):DEFAULT_SYMBOL},ft=te.lanes.map((yt,wt)=>{const At=yt.color??ee.series[wt%ee.series.length],Lt=te.items.map((bt,vt)=>({item:bt,index:vt})).filter(({item:bt})=>bt.lane===yt.id).map(({item:bt,index:vt})=>{const Qt=Date.parse(bt.at);return{name:bt.label,value:[Qt,yt.name,bt.value??0],item:bt,label:{show:ht.has(vt),position:(Qt-xe)/(it-xe)>LABEL_FLIPS_AT?"left":"right"}}});return{name:yt.name,type:"scatter",symbolSize:Mt,itemStyle:{color:At,borderColor:withAlpha(At,.35),borderWidth:4},label:{show:!1,position:"right",distance:8,color:ee.text,fontSize:11,fontFamily:FONT,formatter:"{b}"},emphasis:{scale:1.35,label:{show:!0}},animationDelay:bt=>bt*30,data:Lt}}),gt=new Map(te.items.filter(yt=>yt.id!==void 0).map(yt=>[yt.id,yt])),xt=yt=>{const wt=gt.get(yt),At=wt&&ut.get(wt.lane);return wt&&At!==void 0?[Date.parse(wt.at),At]:void 0},mt=(te.links??[]).flatMap(yt=>{const wt=xt(yt.from),At=xt(yt.to);if(!wt||!At)return[];const Lt=yt.kind??"follows",bt=LINK_KINDS$1[Lt];return[{coords:[wt,At],name:Lt,symbol:bt.arrow?["none","arrow"]:["none","none"],symbolSize:7,lineStyle:{color:bt.danger?ee.bad:ee.muted,width:bt.width,type:bt.dotted?"dotted":"solid",opacity:bt.opacity,curveness:.15}}]});mt.length&&ft.push({name:"links",type:"lines",coordinateSystem:"cartesian2d",z:1,polyline:!1,animationDuration:1400,data:mt});const Dt={lineStyle:{color:ee.gridLine}};return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},animation:ne,animationDuration:1200,animationEasing:"cubicOut",grid:{left:8,right:28,top:18,bottom:24,containLabel:!0},tooltip:{trigger:"item",confine:!0,formatter:yt=>{const At=yt.data?.item;if(!At)return escapeHtml$1$2(String(yt.seriesName??""));const Lt=[`<span style="opacity:.7">${escapeHtml$1$2(yt.seriesName??"")} · ${when(Date.parse(At.at))}</span>`,`<b>${escapeHtml$1$2(At.label)}</b>`];return At.detail&&Lt.push(`<span style="opacity:.85">${escapeHtml$1$2(At.detail)}</span>`),Lt.join("<br/>")}},xAxis:{type:"time",min:xe,max:it,axisLine:Dt,axisTick:{show:!1},axisLabel:{color:ee.muted,fontFamily:FONT,fontSize:10,hideOverlap:!0},splitLine:{show:!0,lineStyle:{color:ee.gridLine,type:"dashed"}}},yAxis:{type:"category",data:te.lanes.map(yt=>yt.name),inverse:!0,axisLine:Dt,axisTick:{show:!1},axisLabel:{color:ee.text,fontFamily:FONT,fontSize:11},splitLine:{show:!0,lineStyle:{color:ee.gridLine}},splitArea:{show:!0,areaStyle:{color:[withAlpha(ee.muted,.06),"transparent"]}}},series:ft}}const LAYOUT_SPRING=1,LAYOUT_GRAVITY=.08,HEAT=.12,MIN_DISTANCE=.001,FNV_OFFSET=2166136261,FNV_PRIME=16777619;function hash(te){let ee=FNV_OFFSET;for(let ne=0;ne<te.length;ne++)ee^=te.charCodeAt(ne),ee=Math.imul(ee,FNV_PRIME);return ee>>>0}const STEP_ANCHORS=[[50,300],[500,120],[2e3,40]];function layoutSteps(te){const ee=Math.max(1,te);if(ee<=STEP_ANCHORS[0][0])return STEP_ANCHORS[0][1];for(let ne=1;ne<STEP_ANCHORS.length;ne++){const[xe,it]=STEP_ANCHORS[ne-1],[ut,ht]=STEP_ANCHORS[ne];if(ee>ut)continue;const dt=(Math.log(ee)-Math.log(xe))/(Math.log(ut)-Math.log(xe));return Math.round(it+(ht-it)*dt)}return STEP_ANCHORS[STEP_ANCHORS.length-1][1]}function layoutChunk(te){return Math.max(1,Math.min(8,Math.round(600/Math.max(1,te))))}function layoutRadius(te){return LAYOUT_SPRING*Math.cbrt(Math.max(1,te)/LAYOUT_GRAVITY)}function seedPositions(te,ee){const ne=new Float32Array(te.length*3);let xe=0,it=0;for(const ht of te){const dt=ee?.get(ht);dt&&(xe++,it+=Math.hypot(dt[0],dt[1],dt[2]))}const ut=xe>0?Math.max(it/xe,MIN_DISTANCE):layoutRadius(te.length);for(const[ht,dt]of te.entries()){const Mt=ee?.get(dt);if(Mt){ne[ht*3]=Mt[0],ne[ht*3+1]=Mt[1],ne[ht*3+2]=Mt[2];continue}const gt=hash(dt)%2048/2048*2-1,xt=hash(`${dt}\0`)%4096*(Math.PI*2/4096),mt=Math.sqrt(Math.max(0,1-gt*gt));ne[ht*3]=ut*mt*Math.cos(xt),ne[ht*3+1]=ut*mt*Math.sin(xt),ne[ht*3+2]=ut*gt}return ne}function createLayout(te,ee,ne){const xe=te.map(wt=>wt.id),it=new Map(xe.map((wt,At)=>[wt,At])),ut=seedPositions(xe,ne),ht=new Float64Array(ut.length),dt=te.length,Mt=layoutSteps(dt),ft=[];for(const wt of ee){const At=it.get(wt.from),Lt=it.get(wt.to);At===void 0||Lt===void 0||At===Lt||ft.push(At,Lt)}const gt=LAYOUT_SPRING,xt=gt*gt,mt=layoutRadius(dt)*HEAT;let Dt=0;const yt=()=>{ht.fill(0);for(let At=0;At<dt;At++){const Lt=ut[At*3],bt=ut[At*3+1],vt=ut[At*3+2];for(let Qt=At+1;Qt<dt;Qt++){const Ct=Lt-ut[Qt*3],Ut=bt-ut[Qt*3+1],Rt=vt-ut[Qt*3+2],Ft=Math.max(Ct*Ct+Ut*Ut+Rt*Rt,MIN_DISTANCE*MIN_DISTANCE),Gt=xt/Ft;ht[At*3]+=Ct*Gt,ht[At*3+1]+=Ut*Gt,ht[At*3+2]+=Rt*Gt,ht[Qt*3]-=Ct*Gt,ht[Qt*3+1]-=Ut*Gt,ht[Qt*3+2]-=Rt*Gt}}for(let At=0;At<ft.length;At+=2){const Lt=ft[At],bt=ft[At+1],vt=ut[Lt*3]-ut[bt*3],Qt=ut[Lt*3+1]-ut[bt*3+1],Ct=ut[Lt*3+2]-ut[bt*3+2],Rt=Math.max(Math.hypot(vt,Qt,Ct),MIN_DISTANCE)/gt;ht[Lt*3]-=vt*Rt,ht[Lt*3+1]-=Qt*Rt,ht[Lt*3+2]-=Ct*Rt,ht[bt*3]+=vt*Rt,ht[bt*3+1]+=Qt*Rt,ht[bt*3+2]+=Ct*Rt}const wt=Math.max(mt*(1-Dt/Mt),mt*.01);for(let At=0;At<dt;At++){const Lt=ht[At*3]-ut[At*3]*LAYOUT_GRAVITY,bt=ht[At*3+1]-ut[At*3+1]*LAYOUT_GRAVITY,vt=ht[At*3+2]-ut[At*3+2]*LAYOUT_GRAVITY,Qt=Math.hypot(Lt,bt,vt);if(Qt<MIN_DISTANCE)continue;const Ct=Math.min(Qt,wt)/Qt;ut[At*3]+=Lt*Ct,ut[At*3+1]+=bt*Ct,ut[At*3+2]+=vt*Ct}Dt++};return{step(wt=1){for(let At=0;At<wt&&Dt<Mt;At++)yt()},positions:()=>ut,get done(){return Dt>=Mt},steps:Mt,get taken(){return Dt}}}const GRAPH_LABELS=20,GRAPH_SETTLE_STEPS=8,GRAPH_INSTANT_STEPS=250,GRAPH_MAX_STEPS=1e3,GRAPH_LEGEND_ROWS=12,GRAPH_COLOURS=7,SEED_RADIUS=45;function typeColour(te,ee,ne){if(te===void 0)return ee.muted;const xe=ee.series.slice(0,GRAPH_COLOURS);return ne?.[te]??xe[hash(te)%xe.length]}function degrees$2(te){const ee=new Map(te.nodes.map(ne=>[ne.id,0]));for(const ne of te.edges)for(const xe of[ne.from,ne.to]){const it=ee.get(xe);it!==void 0&&ee.set(xe,it+1)}return ee}function graphLegend(te,ee){const ne=[],xe=new Set,it=(ut,ht)=>{if(ht===void 0)return;const dt=`${ut}:${ht}`;xe.has(dt)||(xe.add(dt),ne.push({label:ht,colour:typeColour(ht,ee,te.types),shape:ut}))};for(const ut of te.nodes)it("node",ut.type);for(const ut of te.edges)it("edge",ut.type);return ne.slice(0,GRAPH_LEGEND_ROWS)}const escapeHtml$4=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function graphTooltip(te){const ee=te.data??{};if(te.dataType==="edge"||ee.coords!==void 0)return escapeHtml$4(ee.edgeType??"linked to");const ne=[`<b>${escapeHtml$4(ee.name??"")}</b>`];return ee.nodeType&&ne.push(`<span style="opacity:.7">${escapeHtml$4(ee.nodeType)}</span>`),ne.push(`<span style="opacity:.7">${ee.degree??0} connections</span>`),ne.join("<br/>")}function graph3dOption(te,ee,ne){const xe=degrees$2(te),it=xt=>xt.value??xe.get(xt.id)??0,ut=Math.max(1,...te.nodes.map(it)),ht=new Set([...te.nodes].sort((xt,mt)=>(xe.get(mt.id)??0)-(xe.get(xt.id)??0)).slice(0,GRAPH_LABELS).map(xt=>xt.id));te.focus!==void 0&&ht.add(te.focus);const dt=SEED_RADIUS*Math.sqrt(te.nodes.length)+60,Mt=te.nodes.map((xt,mt)=>{const Dt=xt.id===te.focus,yt=(Dt?6:0)+6+16*Math.sqrt(it(xt)/ut),wt=mt/te.nodes.length*Math.PI*2;return{id:xt.id,name:xt.name,x:dt*Math.cos(wt),y:dt*Math.sin(wt),nodeType:xt.type,degree:xe.get(xt.id)??0,node:xt,symbolSize:yt,itemStyle:{color:Dt?ee.accent:typeColour(xt.type,ee,te.types),opacity:.95},label:Dt?{show:!0,fontSize:13,fontWeight:"bold",color:ee.accent}:{show:ht.has(xt.id)}}}),ft=te.edges.map(xt=>({source:xt.from,target:xt.to,edgeType:xt.type,lineStyle:{color:typeColour(xt.type,ee,te.types),opacity:.55,width:1.5}})),gt=ne&&te.rotate!==!1;return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},tooltip:{trigger:"item",confine:!0,formatter:graphTooltip},series:[{type:"graphGL",layout:"forceAtlas2",forceAtlas2:{GPU:!0,steps:gt?GRAPH_SETTLE_STEPS:GRAPH_INSTANT_STEPS,maxSteps:GRAPH_MAX_STEPS,gravity:.6,scaling:5,gravityCenter:[-.16*dt,0],edgeWeightInfluence:0,repulsionByDegree:!0,preventOverlap:!0},roam:!0,focusNodeAdjacency:!0,zoom:1,label:{show:!1,position:"right",distance:4,color:ee.text,fontSize:11,fontFamily:FONT,formatter:"{b}"},emphasis:{label:{show:!0}},lineStyle:{color:ee.gridLine,width:1,opacity:.35},nodes:Mt,edges:ft}]}}const ORBIT_EXTENT=50,ORBIT_BOX=140,EDGE_OPACITY=.6,ORBIT_DISTANCE=260,ORBIT_SPEED=6;function orbitFrame(te){if(te.length<3)return{centre:[0,0,0],scale:1};const ee=[1/0,1/0,1/0],ne=[-1/0,-1/0,-1/0];for(let ut=0;ut<te.length;ut+=3)for(let ht=0;ht<3;ht++)ee[ht]=Math.min(ee[ht],te[ut+ht]),ne[ht]=Math.max(ne[ht],te[ut+ht]);const xe=[(ee[0]+ne[0])/2,(ee[1]+ne[1])/2,(ee[2]+ne[2])/2],it=Math.max((ne[0]-ee[0])/2,(ne[1]-ee[1])/2,(ne[2]-ee[2])/2);return{centre:xe,scale:it>0?ORBIT_EXTENT/it:1}}function graphOrbitData(te,ee,ne){const xe=degrees$2(te),it=yt=>yt.value??xe.get(yt.id)??0,ut=Math.max(1,...te.nodes.map(it)),ht=new Set([...te.nodes].sort((yt,wt)=>(xe.get(wt.id)??0)-(xe.get(yt.id)??0)).slice(0,GRAPH_LABELS).map(yt=>yt.id));te.focus!==void 0&&ht.add(te.focus);const{centre:dt,scale:Mt}=orbitFrame(ne),ft=yt=>[(ne[yt*3]-dt[0])*Mt,(ne[yt*3+1]-dt[1])*Mt,(ne[yt*3+2]-dt[2])*Mt],gt=new Map,xt=te.nodes.map((yt,wt)=>{const At=yt.id===te.focus,[Lt,bt,vt]=ft(wt);return gt.set(yt.id,[Lt,bt,vt]),{id:yt.id,name:yt.name,value:[Lt,bt,vt,(At?6:0)+6+16*Math.sqrt(it(yt)/ut)],itemStyle:{color:At?ee.accent:typeColour(yt.type,ee,te.types),opacity:.95},labelled:ht.has(yt.id),nodeType:yt.type,degree:xe.get(yt.id)??0,node:yt}}),mt=[0,0,0],Dt=[];for(const yt of te.edges){const wt=gt.get(yt.from)??mt,At=gt.get(yt.to)??mt,Lt=typeColour(yt.type,ee,te.types);for(const[bt,vt]of[[wt,0],[wt,EDGE_OPACITY],[At,EDGE_OPACITY],[At,0]])Dt.push({value:bt,lineStyle:{color:Lt,opacity:vt}})}return{nodes:xt,edges:Dt}}function hiddenAxis(){return{type:"value",name:"",min:-ORBIT_EXTENT,max:ORBIT_EXTENT,axisPointer:{show:!1}}}function graphOrbitOption(te,ee,ne,xe){const it=graphOrbitData(te,ee,xe),ut=ht=>ht.data?.name??"";return{backgroundColor:"transparent",textStyle:{color:ee.text,fontFamily:FONT},animation:!1,tooltip:{trigger:"item",confine:!0,formatter:graphTooltip},xAxis3D:hiddenAxis(),yAxis3D:hiddenAxis(),zAxis3D:hiddenAxis(),grid3D:{show:!1,boxWidth:ORBIT_BOX,boxHeight:ORBIT_BOX,boxDepth:ORBIT_BOX,environment:"none",axisPointer:{show:!1},light:{main:{intensity:1.2,shadow:!1,alpha:30,beta:40},ambient:{intensity:.6}},viewControl:{projection:"perspective",autoRotate:ne&&te.rotate!==!1,autoRotateSpeed:ORBIT_SPEED,autoRotateAfterStill:4,distance:ORBIT_DISTANCE,alpha:18,beta:25,damping:.85}},series:[{type:"line3D",coordinateSystem:"cartesian3D",animation:!1,lineStyle:{width:1.6},silent:!0,data:it.edges},{type:"scatter3D",coordinateSystem:"cartesian3D",animation:!1,symbolSize:ht=>ht[3],itemStyle:{opacity:.95},label:{show:!0,formatter:ht=>ht.data?.labelled?ht.data.name??"":"",color:ee.text,fontSize:11,fontFamily:FONT,distance:4,backgroundColor:"transparent"},emphasis:{label:{show:!0,formatter:ut},itemStyle:{opacity:1}},data:it.nodes}]}}const REMEMBERED_GRAPHS=8,settled=new Map;function graphKey(te){return te.title!==void 0?`title:${te.title}`:`node:${te.nodes[0]?.id??""}`}function recallPositions(te){const ee=settled.get(te);if(ee)return settled.delete(te),settled.set(te,ee),ee}function rememberPositions(te,ee,ne){const xe=new Map;for(const[it,ut]of ee.entries())xe.set(ut,[ne[it*3],ne[it*3+1],ne[it*3+2]]);for(settled.delete(te),settled.set(te,xe);settled.size>REMEMBERED_GRAPHS;){const it=settled.keys().next();if(it.done)break;settled.delete(it.value)}}const SCREEN_FIELDS=new Set(["title","subtitle","theme","accent","columns","panels"]),COMMON=["kind","title","span","height"],FIELDS={kpi:["value","unit","prefix","decimals","delta","upIsGood","trend","label"],gauge:["value","max","unit","style","thresholds"],rank:["items","unit","top"],chart:["option"],chart3d:["type","data","xAxis","yAxis","rotate"],globe:["arcs","points","rotate"],timeline:["lanes","items","links","from","to"],graph3d:["nodes","edges","types","focus","mode","rotate"]},KINDS=new Set(["kpi","gauge","rank","chart","chart3d","globe","timeline","graph3d"]),CHART3D_TYPES=new Set(["bar3D","scatter3D","surface","line3D"]),LINK_KINDS=new Set(["contradicts","follows","same"]),LANE_FIELDS=new Set(["id","name","color"]),TIMELINE_ITEM_FIELDS=new Set(["id","lane","at","label","detail","url","value"]),LINK_FIELDS=new Set(["from","to","kind"]),NODE_FIELDS=new Set(["id","name","type","value"]),EDGE_FIELDS=new Set(["from","to","type"]),HEX$2=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,MAX_POINTS=5e3,MAX_ITEMS=50,MAX_ARCS=300,MAX_LANES=24,MAX_TIMELINE_ITEMS=500,MAX_LINKS=500,MAX_NODES=2e3,MAX_EDGES=5e3,MAX_TYPES=32,MAX_LANE_NAME=40,MAX_ITEM_LABEL=120,MAX_ITEM_DETAIL=400,MAX_URL=400,MAX_NODE_NAME=80,MAX_TYPE_NAME=32,bad$3=te=>({ok:!1,error:{code:"invalid-definition",message:te}}),isRecord$2=te=>typeof te=="object"&&te!==null&&!Array.isArray(te),finite$2=te=>typeof te=="number"&&Number.isFinite(te),text$4=(te,ee=120)=>typeof te=="string"&&te.length<=ee,tooLong=(te,ee,ne)=>typeof ne=="string"?`${te} must be at most ${ee} characters (got ${ne.length})`:`${te} must be a string of at most ${ee} characters`,instant=te=>typeof te=="string"&&te.length<=40&&Number.isFinite(Date.parse(te)),httpUrl=te=>typeof te=="string"&&te.length<=MAX_URL&&/^https?:\/\/\S+$/i.test(te),stray=(te,ee)=>Object.keys(te).find(ne=>!ee.has(ne)),lngLat=te=>Array.isArray(te)&&te.length===2&&te.every(finite$2)&&Math.abs(te[0])<=180&&Math.abs(te[1])<=90;function parseKpi(te,ee){if(!finite$2(te.value))return bad$3(`${ee}.value must be a number`);const ne={kind:"kpi",value:te.value};if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));ne.unit=te.unit}if(te.prefix!==void 0){if(!text$4(te.prefix,8))return bad$3(tooLong(`${ee}.prefix`,8,te.prefix));ne.prefix=te.prefix}if(te.decimals!==void 0){if(!Number.isInteger(te.decimals)||te.decimals<0||te.decimals>6)return bad$3(`${ee}.decimals must be a whole number from 0 to 6`);ne.decimals=te.decimals}if(te.delta!==void 0){if(!finite$2(te.delta))return bad$3(`${ee}.delta must be a number (a fraction: 0.12 is +12%)`);ne.delta=te.delta}if(te.upIsGood!==void 0){if(typeof te.upIsGood!="boolean")return bad$3(`${ee}.upIsGood must be true or false`);ne.upIsGood=te.upIsGood}if(te.trend!==void 0){if(!Array.isArray(te.trend)||te.trend.length<2||te.trend.length>200||!te.trend.every(finite$2))return bad$3(`${ee}.trend must be 2 to 200 numbers`);ne.trend=te.trend}if(te.label!==void 0){if(!text$4(te.label,40))return bad$3(tooLong(`${ee}.label`,40,te.label));ne.label=te.label}return{ok:!0,value:ne}}function parseGauge(te,ee){if(!finite$2(te.value))return bad$3(`${ee}.value must be a number`);const ne={kind:"gauge",value:te.value};if(te.max!==void 0){if(!finite$2(te.max)||te.max<=0)return bad$3(`${ee}.max must be a positive number`);ne.max=te.max}if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));ne.unit=te.unit}if(te.style!==void 0){if(te.style!=="dial"&&te.style!=="ring")return bad$3(`${ee}.style must be dial or ring`);ne.style=te.style}if(te.thresholds!==void 0){const xe=te.thresholds;if(!Array.isArray(xe)||xe.length!==2||!xe.every(finite$2)||!(xe[0]>=0&&xe[0]<=xe[1]&&xe[1]<=1))return bad$3(`${ee}.thresholds must be two fractions in order, e.g. [0.6, 0.85]`);ne.thresholds=[xe[0],xe[1]]}return{ok:!0,value:ne}}function parseRank(te,ee){if(!Array.isArray(te.items)||te.items.length===0||te.items.length>MAX_ITEMS)return bad$3(`${ee}.items must be 1 to ${MAX_ITEMS} entries`);const ne=[];for(const[it,ut]of te.items.entries()){if(!isRecord$2(ut)||!text$4(ut.name,40)||!finite$2(ut.value))return bad$3(`${ee}.items[${it}] must be {name, value}`);for(const ht of Object.keys(ut))if(ht!=="name"&&ht!=="value")return bad$3(`${ee}.items[${it}].${ht} is not a field of a rank item`);ne.push({name:ut.name,value:ut.value})}const xe={kind:"rank",items:ne};if(te.unit!==void 0){if(!text$4(te.unit,16))return bad$3(tooLong(`${ee}.unit`,16,te.unit));xe.unit=te.unit}if(te.top!==void 0){if(!Number.isInteger(te.top)||te.top<1||te.top>MAX_ITEMS)return bad$3(`${ee}.top must be a whole number from 1 to ${MAX_ITEMS}`);xe.top=te.top}return{ok:!0,value:xe}}function parseChart3d(te,ee){if(typeof te.type!="string"||!CHART3D_TYPES.has(te.type))return bad$3(`${ee}.type must be one of ${[...CHART3D_TYPES].join(", ")}`);if(!Array.isArray(te.data)||te.data.length===0||te.data.length>MAX_POINTS)return bad$3(`${ee}.data must be 1 to ${MAX_POINTS} points`);const ne=[];for(const[it,ut]of te.data.entries()){if(!Array.isArray(ut)||ut.length!==3||!ut.every(finite$2))return bad$3(`${ee}.data[${it}] must be [x, y, z]`);ne.push([ut[0],ut[1],ut[2]])}const xe={kind:"chart3d",type:te.type,data:ne};for(const it of["xAxis","yAxis"]){const ut=te[it];if(ut!==void 0){if(!Array.isArray(ut)||ut.length===0||ut.length>200||!ut.every(ht=>text$4(ht,40)))return bad$3(`${ee}.${it} must be a list of category names`);xe[it]=ut}}if(te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);xe.rotate=te.rotate}return{ok:!0,value:xe}}function parseGlobe(te,ee){const ne={kind:"globe"};if(te.arcs!==void 0){if(!Array.isArray(te.arcs)||te.arcs.length>MAX_ARCS)return bad$3(`${ee}.arcs must be up to ${MAX_ARCS} entries`);ne.arcs=[];for(const[xe,it]of te.arcs.entries()){if(!isRecord$2(it)||!lngLat(it.from)||!lngLat(it.to))return bad$3(`${ee}.arcs[${xe}] must be {from: [lng, lat], to: [lng, lat]}`);const ut={from:it.from,to:it.to};if(it.label!==void 0){if(!text$4(it.label,40))return bad$3(tooLong(`${ee}.arcs[${xe}].label`,40,it.label));ut.label=it.label}ne.arcs.push(ut)}}if(te.points!==void 0){if(!Array.isArray(te.points)||te.points.length>MAX_ARCS)return bad$3(`${ee}.points must be up to ${MAX_ARCS} entries`);ne.points=[];for(const[xe,it]of te.points.entries()){if(!isRecord$2(it)||!lngLat(it.coord))return bad$3(`${ee}.points[${xe}] must be {coord: [lng, lat]}`);const ut={coord:it.coord};if(it.label!==void 0){if(!text$4(it.label,40))return bad$3(tooLong(`${ee}.points[${xe}].label`,40,it.label));ut.label=it.label}if(it.value!==void 0){if(!finite$2(it.value)||it.value<0)return bad$3(`${ee}.points[${xe}].value must be zero or a positive number`);ut.value=it.value}ne.points.push(ut)}}if(!ne.arcs?.length&&!ne.points?.length)return bad$3(`${ee} needs arcs or points`);if(te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);ne.rotate=te.rotate}return{ok:!0,value:ne}}function parseTimeline(te,ee){if(!Array.isArray(te.lanes)||te.lanes.length===0||te.lanes.length>MAX_LANES)return bad$3(`${ee}.lanes must be 1 to ${MAX_LANES} entries`);const ne=[],xe=new Set;for(const[dt,Mt]of te.lanes.entries()){const ft=`${ee}.lanes[${dt}]`;if(!isRecord$2(Mt)||!text$4(Mt.id,64)||typeof Mt.name!="string")return bad$3(`${ft} must be {id, name}`);const gt=stray(Mt,LANE_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline lane`);if(!text$4(Mt.name,MAX_LANE_NAME))return bad$3(tooLong(`${ft}.name`,MAX_LANE_NAME,Mt.name));if(xe.has(Mt.id))return bad$3(`${ft}.id is a duplicate lane id`);xe.add(Mt.id);const xt={id:Mt.id,name:Mt.name};if(Mt.color!==void 0){if(typeof Mt.color!="string"||!HEX$2.test(Mt.color))return bad$3(`${ft}.color must be a hex colour like #22d3ee`);xt.color=Mt.color}ne.push(xt)}if(!Array.isArray(te.items)||te.items.length===0||te.items.length>MAX_TIMELINE_ITEMS)return bad$3(`${ee}.items must be 1 to ${MAX_TIMELINE_ITEMS} entries`);const it=[],ut=new Set;for(const[dt,Mt]of te.items.entries()){const ft=`${ee}.items[${dt}]`;if(!isRecord$2(Mt)||typeof Mt.lane!="string"||typeof Mt.label!="string"||Mt.at===void 0)return bad$3(`${ft} must be {lane, at, label}`);const gt=stray(Mt,TIMELINE_ITEM_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline item`);if(!xe.has(Mt.lane))return bad$3(`${ft}.lane is not one of the panel's lane ids`);if(!instant(Mt.at))return bad$3(`${ft}.at must be an ISO 8601 date-time, like 2026-09-01T08:00:00Z`);if(!text$4(Mt.label,MAX_ITEM_LABEL))return bad$3(tooLong(`${ft}.label`,MAX_ITEM_LABEL,Mt.label));const xt={lane:Mt.lane,at:Mt.at,label:Mt.label};if(Mt.id!==void 0){if(!text$4(Mt.id,64))return bad$3(tooLong(`${ft}.id`,64,Mt.id));if(ut.has(Mt.id))return bad$3(`${ft}.id is a duplicate item id`);ut.add(Mt.id),xt.id=Mt.id}if(Mt.detail!==void 0){if(!text$4(Mt.detail,MAX_ITEM_DETAIL))return bad$3(tooLong(`${ft}.detail`,MAX_ITEM_DETAIL,Mt.detail));xt.detail=Mt.detail}if(Mt.url!==void 0){if(!httpUrl(Mt.url))return bad$3(`${ft}.url must be an http or https URL`);xt.url=Mt.url}if(Mt.value!==void 0){if(!finite$2(Mt.value)||Mt.value<0)return bad$3(`${ft}.value must be zero or a positive number`);xt.value=Mt.value}it.push(xt)}const ht={kind:"timeline",lanes:ne,items:it};if(te.links!==void 0){if(!Array.isArray(te.links)||te.links.length>MAX_LINKS)return bad$3(`${ee}.links must be up to ${MAX_LINKS} entries`);ht.links=[];for(const[dt,Mt]of te.links.entries()){const ft=`${ee}.links[${dt}]`;if(!isRecord$2(Mt)||typeof Mt.from!="string"||typeof Mt.to!="string")return bad$3(`${ft} must be {from, to}`);const gt=stray(Mt,LINK_FIELDS);if(gt)return bad$3(`${ft}.${gt} is not a field of a timeline link`);for(const mt of["from","to"])if(!ut.has(Mt[mt]))return bad$3(`${ft}.${mt} is not an item id`);const xt={from:Mt.from,to:Mt.to};if(Mt.kind!==void 0){if(typeof Mt.kind!="string"||!LINK_KINDS.has(Mt.kind))return bad$3(`${ft}.kind must be contradicts, follows or same`);xt.kind=Mt.kind}ht.links.push(xt)}}for(const dt of["from","to"])if(te[dt]!==void 0){if(!instant(te[dt]))return bad$3(`${ee}.${dt} must be an ISO 8601 date-time, like 2026-09-01T08:00:00Z`);ht[dt]=te[dt]}return{ok:!0,value:ht}}function parseGraph3d(te,ee){if(!Array.isArray(te.nodes)||te.nodes.length===0||te.nodes.length>MAX_NODES)return bad$3(`${ee}.nodes must be 1 to ${MAX_NODES} entries`);const ne=[],xe=new Set;for(const[ht,dt]of te.nodes.entries()){const Mt=`${ee}.nodes[${ht}]`;if(!isRecord$2(dt)||!text$4(dt.id,64)||typeof dt.name!="string")return bad$3(`${Mt} must be {id, name}`);const ft=stray(dt,NODE_FIELDS);if(ft)return bad$3(`${Mt}.${ft} is not a field of a graph3d node`);if(!text$4(dt.name,MAX_NODE_NAME))return bad$3(tooLong(`${Mt}.name`,MAX_NODE_NAME,dt.name));if(xe.has(dt.id))return bad$3(`${Mt}.id is a duplicate node id`);xe.add(dt.id);const gt={id:dt.id,name:dt.name};if(dt.type!==void 0){if(!text$4(dt.type,MAX_TYPE_NAME))return bad$3(tooLong(`${Mt}.type`,MAX_TYPE_NAME,dt.type));gt.type=dt.type}if(dt.value!==void 0){if(!finite$2(dt.value)||dt.value<0)return bad$3(`${Mt}.value must be zero or a positive number`);gt.value=dt.value}ne.push(gt)}if(!Array.isArray(te.edges)||te.edges.length>MAX_EDGES)return bad$3(`${ee}.edges must be up to ${MAX_EDGES} entries`);const it=[];for(const[ht,dt]of te.edges.entries()){const Mt=`${ee}.edges[${ht}]`;if(!isRecord$2(dt)||typeof dt.from!="string"||typeof dt.to!="string")return bad$3(`${Mt} must be {from, to}`);const ft=stray(dt,EDGE_FIELDS);if(ft)return bad$3(`${Mt}.${ft} is not a field of a graph3d edge`);for(const xt of["from","to"])if(!xe.has(dt[xt]))return bad$3(`${Mt}.${xt} is not a node id`);const gt={from:dt.from,to:dt.to};if(dt.type!==void 0){if(!text$4(dt.type,MAX_TYPE_NAME))return bad$3(tooLong(`${Mt}.type`,MAX_TYPE_NAME,dt.type));gt.type=dt.type}it.push(gt)}const ut={kind:"graph3d",nodes:ne,edges:it};if(te.types!==void 0){if(!isRecord$2(te.types)||Object.keys(te.types).length>MAX_TYPES)return bad$3(`${ee}.types must be up to ${MAX_TYPES} entries`);const ht={};for(const[dt,Mt]of Object.entries(te.types)){if(!text$4(dt,MAX_TYPE_NAME))return bad$3(tooLong(`${ee}.types key`,MAX_TYPE_NAME,dt));if(typeof Mt!="string"||!HEX$2.test(Mt))return bad$3(`${ee}.types.${dt} must be a hex colour like #22d3ee`);ht[dt]=Mt}ut.types=ht}if(te.focus!==void 0){if(typeof te.focus!="string"||!xe.has(te.focus))return bad$3(`${ee}.focus is not a node id`);ut.focus=te.focus}if(te.mode!==void 0&&te.mode!=="orbit"&&te.mode!=="flat")return bad$3(`${ee}.mode must be orbit or flat`);if(ut.mode=te.mode??"orbit",te.rotate!==void 0){if(typeof te.rotate!="boolean")return bad$3(`${ee}.rotate must be true or false`);ut.rotate=te.rotate}return{ok:!0,value:ut}}function parsePanel(te,ee,ne){const xe=`panels[${ee}]`;if(!isRecord$2(te))return bad$3(`${xe} must be an object`);if(typeof te.kind!="string"||!KINDS.has(te.kind))return bad$3(`${xe}.kind must be one of ${[...KINDS].join(", ")}`);const it=te.kind,ut=new Set([...COMMON,...FIELDS[it]]);for(const Mt of Object.keys(te))if(!ut.has(Mt))return bad$3(`${xe}.${Mt} is not a field of a ${it} panel`);let ht;switch(it){case"kpi":ht=parseKpi(te,xe);break;case"gauge":ht=parseGauge(te,xe);break;case"rank":ht=parseRank(te,xe);break;case"chart":if(!isRecord$2(te.option))return bad$3(`${xe}.option must be an ECharts option object`);ht={ok:!0,value:{kind:"chart",option:te.option}};break;case"chart3d":ht=parseChart3d(te,xe);break;case"globe":ht=parseGlobe(te,xe);break;case"timeline":ht=parseTimeline(te,xe);break;case"graph3d":ht=parseGraph3d(te,xe);break}if(!ht.ok)return ht;const dt=ht.value;if(te.title!==void 0){if(!text$4(te.title,80))return bad$3(tooLong(`${xe}.title`,80,te.title));dt.title=te.title}if(te.span!==void 0){if(!Number.isInteger(te.span)||te.span<1||te.span>ne)return bad$3(`${xe}.span must be a whole number from 1 to ${ne}`);dt.span=te.span}if(te.height!==void 0){if(!finite$2(te.height)||te.height<80||te.height>900)return bad$3(`${xe}.height must be from 80 to 900 pixels`);dt.height=te.height}return{ok:!0,value:dt}}function parseBigscreen(te,ee={}){const ne=ee.maxPanels??24,xe=ee.maxSourceBytes??64*1024;if(new TextEncoder().encode(te).byteLength>xe)return{ok:!1,error:{code:"too-large",message:"Screen definition is too large."}};let it;try{it=JSON.parse(te)}catch{return{ok:!1,error:{code:"invalid-json",message:"Screen definition is not valid JSON."}}}if(!isRecord$2(it))return bad$3("A screen definition must be a JSON object");for(const ht of Object.keys(it))if(!SCREEN_FIELDS.has(ht))return bad$3(`${ht} is not a field of a screen definition`);const ut={theme:ee.theme??"dark",columns:12,panels:[]};if(it.title!==void 0){if(!text$4(it.title,80))return bad$3(tooLong("title",80,it.title));ut.title=it.title}if(it.subtitle!==void 0){if(!text$4(it.subtitle,120))return bad$3(tooLong("subtitle",120,it.subtitle));ut.subtitle=it.subtitle}if(it.theme!==void 0){if(it.theme!=="dark"&&it.theme!=="light")return bad$3("theme must be dark or light");ut.theme=it.theme}if(it.accent!==void 0){if(typeof it.accent!="string"||!HEX$2.test(it.accent))return bad$3("accent must be a hex colour like #22d3ee");ut.accent=it.accent}if(it.columns!==void 0){if(!Number.isInteger(it.columns)||it.columns<1||it.columns>24)return bad$3("columns must be a whole number from 1 to 24");ut.columns=it.columns}if(!Array.isArray(it.panels)||it.panels.length===0)return bad$3("panels must be a non-empty array");if(it.panels.length>ne)return bad$3(`panels has more than ${ne} entries`);for(const[ht,dt]of it.panels.entries()){const Mt=parsePanel(dt,ht,ut.columns);if(!Mt.ok)return Mt;ut.panels.push(Mt.value)}return{ok:!0,value:ut}}function bigscreenPromptSpec(te){return translate$2(PROMPT$5,te,"spec")}const ZH$2=`数据大屏(围栏代码块):\`\`\`bigscreen 开头,块内是一个 JSON 对象。当用户要一个"大屏 / 看板 / dashboard / 总览",或者要把一组指标、排行、趋势、地域分布放在一起漂亮地展示时,输出一个 bigscreen 块。它会画成深色发光的数据墙:数字滚动增长、仪表盘扫过、排行条生长、图表逐步绘出、3D 图和地球缓慢旋转。文字说明照常写在块外。
|
|
24
24
|
|
|
25
25
|
字数超了整个块就作废——一个太长的 label 会让整面墙消失,而不是那一句被截断。所有文字字段都短:unit 最多 16、prefix 最多 8、label 和排行项名字最多 40、面板 title 最多 80。它们是标签,不是句子。
|
|
26
26
|
|
|
@@ -224,7 +224,7 @@ A knowledge graph — six entities of three types, seven edges:
|
|
|
224
224
|
}
|
|
225
225
|
\`\`\`
|
|
226
226
|
|
|
227
|
-
Not supported — fall back to ordinary charts or prose: live refresh, interactive filters, tables, choropleth maps, video. A BI board whose numbers must come from the host's own queries is a dashboard block, not this.`,PROMPT$5={en:{spec:EN$2},"zh-CN":{spec:ZH$2}},escapeHtml$3=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),bigscreenCss=["[data-aigui-bigscreen]{--aigui-bs-accent:#22d3ee;--aigui-bs-text:#e2e8f0;--aigui-bs-muted:#94a3b8;box-sizing:border-box;margin-block:1rem;padding:1.1rem 1.2rem 1.3rem;border-radius:14px;color:var(--aigui-bs-text);font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,'PingFang SC','Noto Sans CJK SC',sans-serif;font-variant-numeric:tabular-nums;container-type:inline-size}","[data-aigui-bigscreen] *{box-sizing:border-box}","[data-aigui-bigscreen='dark']{background:radial-gradient(120% 90% at 50% 0%,#0f1f3d 0%,#0a1428 45%,#050b18 100%);box-shadow:inset 0 0 0 1px rgba(56,189,248,.12),0 20px 60px rgba(0,0,0,.45)}","[data-aigui-bigscreen='light']{background:linear-gradient(180deg,#f8fafc,#eef2f7);box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}",".aigui-bs-head{text-align:center;margin-bottom:1rem}",".aigui-bs-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:.06em}",".aigui-bs-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--aigui-bs-muted);letter-spacing:.12em}",".aigui-bs-rule{height:1px;margin:.8rem auto 0;width:70%}",".aigui-bs-grid{display:grid;gap:.9rem}",".aigui-bs-panel{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid;border-radius:10px;padding:.7rem .85rem .85rem;backdrop-filter:blur(6px)}","[data-aigui-bigscreen='dark'] .aigui-bs-panel{background:linear-gradient(180deg,rgba(17,27,50,.82),rgba(10,18,36,.82));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 30px rgba(0,0,0,.35)}","[data-aigui-bigscreen='light'] .aigui-bs-panel{background:rgba(255,255,255,.9);box-shadow:0 6px 20px rgba(15,23,42,.06)}",".aigui-bs-panel-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--aigui-bs-muted)}",".aigui-bs-panel-mark{display:inline-block;width:4px;height:14px;border-radius:2px}",".aigui-bs-panel-body{position:relative;flex:1 1 auto;width:100%;min-width:0;container-type:inline-size}",".aigui-bs-kpi{display:flex;flex-direction:column;gap:.35rem;justify-content:center;height:100%}",".aigui-bs-kpi-row{display:flex;align-items:baseline;gap:.35rem;min-width:0}",".aigui-bs-kpi-value{font-size:2rem;font-size:clamp(1.2rem,13cqi,2.6rem);font-weight:800;line-height:1.05;letter-spacing:-.01em;white-space:nowrap}",".aigui-bs-kpi-unit{font-size:.95rem;color:var(--aigui-bs-muted)}",".aigui-bs-kpi-meta{display:flex;gap:.7rem;font-size:.8rem;color:var(--aigui-bs-muted)}",".aigui-bs-kpi-delta{font-weight:600}",".aigui-bs-kpi-spark{margin-top:.2rem;opacity:.9}",".aigui-bs-rank{display:flex;flex-direction:column;gap:.45rem;overflow:hidden}",".aigui-bs-rank-row{display:grid;grid-template-columns:1.4rem minmax(3rem,auto) 1fr auto;align-items:center;gap:.5rem;font-size:.85rem}",".aigui-bs-rank-n{font-weight:700;color:var(--aigui-bs-muted);text-align:center}",".aigui-bs-rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}",".aigui-bs-rank-track{display:block;height:8px;border-radius:4px;overflow:hidden}",".aigui-bs-rank-fill{display:block;height:100%;border-radius:4px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}",".aigui-bs-rank-value{color:var(--aigui-bs-muted);font-variant-numeric:tabular-nums}",".aigui-bs-graph-legend{position:absolute;right:.6rem;bottom:.6rem;z-index:2;display:flex;flex-direction:column;gap:.15rem;max-width:48%;padding:.3rem .45rem;border-radius:6px;background:color-mix(in srgb,currentColor 8%,transparent);font-size:.68rem;line-height:1.5;letter-spacing:.02em;color:var(--aigui-bs-muted);pointer-events:none}",".aigui-bs-graph-legend-row{display:flex;align-items:center;gap:.35rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}",".aigui-bs-graph-legend-dot{flex:none;width:8px;height:8px;border-radius:50%}",".aigui-bs-graph-legend-line{flex:none;width:12px;height:2px;border-radius:1px}",".aigui-bs-note{display:flex;align-items:center;justify-content:center;height:100%;min-height:4rem;font-size:.85rem;color:var(--aigui-bs-muted)}","[data-aigui-bigscreen-loading]{min-height:8rem;border-radius:14px;background:currentColor;opacity:.06}",":where([data-aigui-bigscreen-error]){padding:0.5rem 0.75rem;border-radius:0.5rem;font-size:0.875rem;background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 25%,transparent)}","@container (max-width:900px){.aigui-bs-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aigui-bs-panel{grid-column:span 1!important}.aigui-bs-panel[data-aigui-bigscreen-wide]{grid-column:span 2!important}}","@container (max-width:520px){.aigui-bs-grid{grid-template-columns:1fr!important}.aigui-bs-panel,.aigui-bs-panel[data-aigui-bigscreen-wide]{grid-column:span 1!important}}"].join("");function failed$2(te){const ee=escapeHtml$3(te);return{kind:"html",html:`<div data-aigui-bigscreen-error role="img" aria-label="${ee}">${ee}</div>`,trusted:!0}}function bigscreen(te={}){return{name:"bigscreen",css:bigscreenCss,nodeRenderers:{bigscreen:(ne,xe)=>{if(ne.complete===!1)return{kind:"html",html:'<div data-aigui-bigscreen-loading aria-label="Loading screen"></div>'};const it=te.theme??(xe?.theme==="light"?"light":xe?.theme==="dark"?"dark":void 0),ut=parseBigscreen(ne.content??"",{...te,theme:it});if(!ut.ok)return failed$2(ut.error.message);const ht=ut.value;return{kind:"mount",mount:dt=>{let Mt,ft=!1;return Promise.resolve().then(()=>
|
|
227
|
+
Not supported — fall back to ordinary charts or prose: live refresh, interactive filters, tables, choropleth maps, video. A BI board whose numbers must come from the host's own queries is a dashboard block, not this.`,PROMPT$5={en:{spec:EN$2},"zh-CN":{spec:ZH$2}},escapeHtml$3=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),bigscreenCss=["[data-aigui-bigscreen]{--aigui-bs-accent:#22d3ee;--aigui-bs-text:#e2e8f0;--aigui-bs-muted:#94a3b8;box-sizing:border-box;margin-block:1rem;padding:1.1rem 1.2rem 1.3rem;border-radius:14px;color:var(--aigui-bs-text);font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,'PingFang SC','Noto Sans CJK SC',sans-serif;font-variant-numeric:tabular-nums;container-type:inline-size}","[data-aigui-bigscreen] *{box-sizing:border-box}","[data-aigui-bigscreen='dark']{background:radial-gradient(120% 90% at 50% 0%,#0f1f3d 0%,#0a1428 45%,#050b18 100%);box-shadow:inset 0 0 0 1px rgba(56,189,248,.12),0 20px 60px rgba(0,0,0,.45)}","[data-aigui-bigscreen='light']{background:linear-gradient(180deg,#f8fafc,#eef2f7);box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}",".aigui-bs-head{text-align:center;margin-bottom:1rem}",".aigui-bs-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:.06em}",".aigui-bs-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--aigui-bs-muted);letter-spacing:.12em}",".aigui-bs-rule{height:1px;margin:.8rem auto 0;width:70%}",".aigui-bs-grid{display:grid;gap:.9rem}",".aigui-bs-panel{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid;border-radius:10px;padding:.7rem .85rem .85rem;backdrop-filter:blur(6px)}","[data-aigui-bigscreen='dark'] .aigui-bs-panel{background:linear-gradient(180deg,rgba(17,27,50,.82),rgba(10,18,36,.82));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 30px rgba(0,0,0,.35)}","[data-aigui-bigscreen='light'] .aigui-bs-panel{background:rgba(255,255,255,.9);box-shadow:0 6px 20px rgba(15,23,42,.06)}",".aigui-bs-panel-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--aigui-bs-muted)}",".aigui-bs-panel-mark{display:inline-block;width:4px;height:14px;border-radius:2px}",".aigui-bs-panel-body{position:relative;flex:1 1 auto;width:100%;min-width:0;container-type:inline-size}",".aigui-bs-kpi{display:flex;flex-direction:column;gap:.35rem;justify-content:center;height:100%}",".aigui-bs-kpi-row{display:flex;align-items:baseline;gap:.35rem;min-width:0}",".aigui-bs-kpi-value{font-size:2rem;font-size:clamp(1.2rem,13cqi,2.6rem);font-weight:800;line-height:1.05;letter-spacing:-.01em;white-space:nowrap}",".aigui-bs-kpi-unit{font-size:.95rem;color:var(--aigui-bs-muted)}",".aigui-bs-kpi-meta{display:flex;gap:.7rem;font-size:.8rem;color:var(--aigui-bs-muted)}",".aigui-bs-kpi-delta{font-weight:600}",".aigui-bs-kpi-spark{margin-top:.2rem;opacity:.9}",".aigui-bs-rank{display:flex;flex-direction:column;gap:.45rem;overflow:hidden}",".aigui-bs-rank-row{display:grid;grid-template-columns:1.4rem minmax(3rem,auto) 1fr auto;align-items:center;gap:.5rem;font-size:.85rem}",".aigui-bs-rank-n{font-weight:700;color:var(--aigui-bs-muted);text-align:center}",".aigui-bs-rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}",".aigui-bs-rank-track{display:block;height:8px;border-radius:4px;overflow:hidden}",".aigui-bs-rank-fill{display:block;height:100%;border-radius:4px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}",".aigui-bs-rank-value{color:var(--aigui-bs-muted);font-variant-numeric:tabular-nums}",".aigui-bs-graph-legend{position:absolute;right:.6rem;bottom:.6rem;z-index:2;display:flex;flex-direction:column;gap:.15rem;max-width:48%;padding:.3rem .45rem;border-radius:6px;background:color-mix(in srgb,currentColor 8%,transparent);font-size:.68rem;line-height:1.5;letter-spacing:.02em;color:var(--aigui-bs-muted);pointer-events:none}",".aigui-bs-graph-legend-row{display:flex;align-items:center;gap:.35rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}",".aigui-bs-graph-legend-dot{flex:none;width:8px;height:8px;border-radius:50%}",".aigui-bs-graph-legend-line{flex:none;width:12px;height:2px;border-radius:1px}",".aigui-bs-note{display:flex;align-items:center;justify-content:center;height:100%;min-height:4rem;font-size:.85rem;color:var(--aigui-bs-muted)}","[data-aigui-bigscreen-loading]{min-height:8rem;border-radius:14px;background:currentColor;opacity:.06}",":where([data-aigui-bigscreen-error]){padding:0.5rem 0.75rem;border-radius:0.5rem;font-size:0.875rem;background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 25%,transparent)}","@container (max-width:900px){.aigui-bs-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aigui-bs-panel{grid-column:span 1!important}.aigui-bs-panel[data-aigui-bigscreen-wide]{grid-column:span 2!important}}","@container (max-width:520px){.aigui-bs-grid{grid-template-columns:1fr!important}.aigui-bs-panel,.aigui-bs-panel[data-aigui-bigscreen-wide]{grid-column:span 1!important}}"].join("");function failed$2(te){const ee=escapeHtml$3(te);return{kind:"html",html:`<div data-aigui-bigscreen-error role="img" aria-label="${ee}">${ee}</div>`,trusted:!0}}function bigscreen(te={}){return{name:"bigscreen",css:bigscreenCss,nodeRenderers:{bigscreen:(ne,xe)=>{if(ne.complete===!1)return{kind:"html",html:'<div data-aigui-bigscreen-loading aria-label="Loading screen"></div>'};const it=te.theme??(xe?.theme==="light"?"light":xe?.theme==="dark"?"dark":void 0),ut=parseBigscreen(ne.content??"",{...te,theme:it});if(!ut.ok)return failed$2(ut.error.message);const ht=ut.value;return{kind:"mount",mount:dt=>{let Mt,ft=!1;return Promise.resolve().then(()=>mountChcoxgHd).then(({mountScreen:gt})=>{ft||(Mt=gt(dt,ht,te.animate!==!1,te.globe,te.events))}).catch(()=>{const gt=document.createElement("div");gt.setAttribute("data-aigui-bigscreen-error",""),gt.setAttribute("role","img"),gt.setAttribute("aria-label","Screen could not be drawn."),gt.textContent="Screen could not be drawn.",dt.replaceChildren(gt)}),()=>{ft=!0,Mt?.()}}}}},isBlockComplete:(ne,xe)=>{const it=xe.trim();if(!it.startsWith("{")||!it.endsWith("}"))return!1;try{return JSON.parse(it),!0}catch{return!1}},promptSpec:ne=>bigscreenPromptSpec(ne)}}/*! *****************************************************************************
|
|
228
228
|
Copyright (c) Microsoft Corporation.
|
|
229
229
|
|
|
230
230
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -732,7 +732,7 @@ Example — a table, its top resting on four legs:
|
|
|
732
732
|
}
|
|
733
733
|
\`\`\`
|
|
734
734
|
|
|
735
|
-
Not supported in this version — explain these in markdown instead: boolean operations (holes, cuts), curved surface modelling, textures, animation, physics, lighting setup. For solid-geometry questions (sections of a cube and the like) use a solid block, not a scene.`,PROMPT={en:{spec:EN},"zh-CN":{spec:ZH}},escapeHtml=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function loading$1(){return{kind:"html",html:'<div data-aigui-scene-loading aria-label="Loading scene"></div>'}}function failedHtml(te){return`<div data-aigui-scene-error role="img" aria-label="${escapeHtml(te)}">${escapeHtml(te)}</div>`}function failed(te){return{kind:"html",html:failedHtml(te),trusted:!0}}const sceneCss=["[data-aigui-scene]{max-width:100%;margin-block:0.75rem}","[data-aigui-scene] canvas{display:block;max-width:100%;touch-action:none;cursor:grab}","[data-aigui-scene] canvas:active{cursor:grabbing}","[data-aigui-scene-caption]{margin-top:0.35rem;font-size:0.875rem;opacity:0.75;text-align:center}","[data-aigui-scene-loading]{min-height:6rem;border-radius:0.5rem;background:currentColor;opacity:0.06}",":where([data-aigui-scene-error]){padding:0.5rem 0.75rem;border-radius:0.5rem;font-size:0.875rem;background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 25%,transparent)}","[data-aigui-scene-model-error]{margin-top:0.25rem;font-size:0.8rem;opacity:0.7}"].join("");function scene(te={}){const ee=te.height??360;return{name:"scene",css:sceneCss,nodeRenderers:{scene:async(xe,it)=>{if(xe.complete===!1)return loading$1();const ut=parseScene(xe.content??"",te);if(!ut.ok)return failed(ut.error.message);const{definition:ht,refused:dt}=ut.value;return{kind:"mount",mount:Mt=>{Mt.setAttribute("data-aigui-scene",String(ht.objects.length));const ft=document.createElement("div");if(Mt.appendChild(ft),ht.caption){const mt=document.createElement("div");mt.setAttribute("data-aigui-scene-caption",""),mt.textContent=ht.caption,Mt.appendChild(mt)}for(const mt of dt){const Dt=document.createElement("div");Dt.setAttribute("data-aigui-scene-model-error",""),Dt.textContent=mt.message,Mt.appendChild(Dt)}let gt,xt=!1;return Promise.resolve().then(()=>renderCI1iZ6Yu).then(({mountScene:mt})=>mt(ft,ht,{height:ee,theme:it?.theme,onModelError:Dt=>{const yt=document.createElement("div");yt.setAttribute("data-aigui-scene-model-error",""),yt.textContent=`Model could not be loaded from ${new URL(Dt.src).origin}.`,Mt.appendChild(yt)}})).then(mt=>{xt?mt.destroy():gt=mt}).catch(()=>{ft.replaceChildren(),ft.innerHTML=failedHtml("Scene could not be drawn.")}),()=>{xt=!0,gt?.destroy()}}}}},isBlockComplete:(xe,it)=>{const ut=it.trim();if(!ut.startsWith("{")||!ut.endsWith("}"))return!1;try{return JSON.parse(ut),!0}catch{return!1}},promptSpec:xe=>scenePromptSpec(xe)}}const DEFAULT_WIDTH=720;function imagePlugins(te=DEFAULT_WIDTH){const ee=Math.max(200,te-32);return[chart({interactive:!1,width:ee,height:Math.round(ee*.625)}),mermaid$1(),katex({css:""}),dashboard(),scene({height:Math.round(ee*.6)}),gravity({animate:!1,width:ee,height:Math.round(ee*.625)}),bigscreen({animate:!1}),molecule({width:ee,height:Math.round(ee*.6)})]}const PENDING="[data-aigui-async-pending]",FAILED="[data-aigui-async-error]";function quiescent(te,ee){return new Promise(ne=>{let xe=0;const it=new MutationObserver(ut);function ut(){window.clearTimeout(xe),xe=window.setTimeout(ht,ee)}function ht(){if(te.querySelector(PENDING)){ut();return}it.disconnect(),ne()}it.observe(te,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),ut()})}function frame$1(){return new Promise(te=>window.requestAnimationFrame(()=>te()))}window.__aiguiRenderBlock=async(te,ee={})=>{const ne=document.getElementById("root");ne.replaceChildren(),createRenderer(ne,{plugins:imagePlugins(ee.width),theme:ee.theme}).push(te),await quiescent(ne,ee.quietMs??150),await document.fonts.ready,await frame$1(),await frame$1(),ne.querySelector("canvas")&&(await new Promise(ut=>window.setTimeout(ut,ee.canvasSettleMs??600)),await frame$1(),await frame$1());const it=ne.getBoundingClientRect();return{width:Math.ceil(it.width),height:Math.ceil(it.height),failed:ne.querySelector(FAILED)!==null}},use([install$15,install$16,install$14,install$12,install$W,install$10,install$P,install$O,install$V,install$N,install$i,install$H,install$r,install$G,install$11,install$y,install$A,install$l,install$g]);let glReady=null;const loadGl=()=>glReady??=Promise.resolve().then(()=>index),DEFAULT_HEIGHT={kpi:0,gauge:180,rank:220,chart:240,chart3d:280,globe:300,timeline:320,graph3d:320},easeOut=te=>1-Math.pow(1-te,3);function el(te,ee={},ne){const xe=document.createElement(te);for(const[it,ut]of Object.entries(ee))xe.setAttribute(it,ut);return ne!==void 0&&(xe.textContent=ne),xe}function countUp(te,ee,ne){const xe=ee.decimals??0,it=ft=>{te.textContent=`${ee.prefix??""}${formatNumber$1(ft,xe)}`};if(!ne||typeof requestAnimationFrame!="function")return it(ee.value),()=>{};const ut=1400;let ht,dt=0;const Mt=ft=>{ht??=ft;const gt=Math.min(1,(ft-ht)/ut);it(ee.value*easeOut(gt)),gt<1&&(dt=requestAnimationFrame(Mt))};return dt=requestAnimationFrame(Mt),()=>cancelAnimationFrame(dt)}function sparkline(te,ee,ne,xe){const it=Math.min(...te),ht=Math.max(...te)-it||1,dt=ne/(te.length-1),Mt=te.map((mt,Dt)=>`${(Dt*dt).toFixed(1)},${(xe-2-(mt-it)/ht*(xe-4)).toFixed(1)}`),ft=document.createElementNS("http://www.w3.org/2000/svg","svg");ft.setAttribute("viewBox",`0 0 ${ne} ${xe}`),ft.setAttribute("width","100%"),ft.setAttribute("height",String(xe)),ft.setAttribute("preserveAspectRatio","none"),ft.setAttribute("aria-hidden","true");const gt=document.createElementNS("http://www.w3.org/2000/svg","polygon");gt.setAttribute("points",`0,${xe} ${Mt.join(" ")} ${ne},${xe}`),gt.setAttribute("fill",withAlpha(ee.accent,.18));const xt=document.createElementNS("http://www.w3.org/2000/svg","polyline");return xt.setAttribute("points",Mt.join(" ")),xt.setAttribute("fill","none"),xt.setAttribute("stroke",ee.accent),xt.setAttribute("stroke-width","2"),xt.setAttribute("stroke-linejoin","round"),xt.setAttribute("vector-effect","non-scaling-stroke"),ft.append(gt,xt),ft}function mountKpi(te,ee,ne,xe){te.classList.add("aigui-bs-kpi");const it=el("div",{class:"aigui-bs-kpi-row"}),ut=el("span",{class:"aigui-bs-kpi-value"});ut.style.color=ne.accent,ut.style.textShadow=`0 0 18px ${withAlpha(ne.accent,.45)}`,it.appendChild(ut),ee.unit&&it.appendChild(el("span",{class:"aigui-bs-kpi-unit"},ee.unit)),te.appendChild(it);const ht=el("div",{class:"aigui-bs-kpi-meta"});if(ee.delta!==void 0){const dt=ee.delta>=0,Mt=(ee.upIsGood??!0)===dt,ft=el("span",{class:"aigui-bs-kpi-delta"},`${dt?"▲":"▼"} ${formatNumber$1(Math.abs(ee.delta)*100,1)}%`);ft.style.color=Mt?ne.good:ne.bad,ht.appendChild(ft)}if(ee.label&&ht.appendChild(el("span",{class:"aigui-bs-kpi-label"},ee.label)),ht.childNodes.length&&te.appendChild(ht),ee.trend){const dt=el("div",{class:"aigui-bs-kpi-spark"});dt.appendChild(sparkline(ee.trend,ne,200,36)),te.appendChild(dt)}return countUp(ut,ee,xe)}function mountRank(te,ee,ne,xe){te.classList.add("aigui-bs-rank");const it=[...ee.items].sort((Mt,ft)=>ft.value-Mt.value).slice(0,ee.top??8),ut=Math.max(...it.map(Mt=>Mt.value),0)||1,ht=[];if(it.forEach((Mt,ft)=>{const gt=el("div",{class:"aigui-bs-rank-row"}),xt=el("span",{class:"aigui-bs-rank-n"},String(ft+1));ft<3&&(xt.style.color=ne.accent);const mt=el("span",{class:"aigui-bs-rank-name"},Mt.name),Dt=el("span",{class:"aigui-bs-rank-track"});Dt.style.background=ne.track;const yt=el("span",{class:"aigui-bs-rank-fill"}),wt=ft===0?ne.accent:ne.series[ft%(ne.series.length-1)+1];yt.style.background=`linear-gradient(90deg, ${withAlpha(wt,.55)}, ${wt})`,yt.style.boxShadow=`0 0 10px ${withAlpha(wt,.5)}`;const At=`${Math.max(2,Math.max(Mt.value,0)/ut*100)}%`;yt.style.width=xe?"0%":At,Dt.appendChild(yt);const Lt=el("span",{class:"aigui-bs-rank-value"},`${formatNumber$1(Mt.value,Number.isInteger(Mt.value)?0:1)}${ee.unit??""}`);gt.append(xt,mt,Dt,Lt),te.appendChild(gt),ht.push({fill:yt,width:At})}),!xe||typeof requestAnimationFrame!="function")return()=>{};const dt=requestAnimationFrame(()=>requestAnimationFrame(()=>ht.forEach(({fill:Mt,width:ft})=>Mt.style.width=ft)));return()=>cancelAnimationFrame(dt)}function follow(te,ee){if(typeof ResizeObserver>"u")return()=>{};const ne=new ResizeObserver(()=>ee.resize());return ne.observe(te),()=>ne.disconnect()}function whenSized(te,ee){if(te.clientWidth>0||typeof requestAnimationFrame!="function")return ee(),()=>{};const ne=requestAnimationFrame(ee);return()=>cancelAnimationFrame(ne)}function mountChart(te,ee,ne,xe){let it,ut;const ht=whenSized(te,()=>{it=init$3(te,ne==="dark"?"dark":void 0,{renderer:"canvas"}),it.setOption(ee),xe?.(it),ut=follow(te,it)});return()=>{ht(),ut?.(),it?.dispose()}}function mountGl(te,ee,ne,xe,it){let ut,ht,dt,Mt,ft=!1;return loadGl().then(()=>{ft||(dt=whenSized(te,()=>{ft||(ut=init$3(te,ne==="dark"?"dark":void 0,{renderer:"canvas"}),ut.setOption(ee()),Mt=it?.(ut)??void 0,ht=follow(te,ut))}))}).catch(()=>{ft||(ut?.dispose(),ut=void 0,xe())}),()=>{ft=!0,dt?.(),Mt?.(),ht?.(),ut?.dispose()}}function note$2(te,ee){te.replaceChildren(el("div",{class:"aigui-bs-note"},ee))}function openTimelineItem(te,ee){if(ee?.onItemClick){ee.onItemClick(te);return}te.url&&typeof window<"u"&&window.open(te.url,"_blank","noopener,noreferrer")}function bindTimeline(te,ee){te.on("click",ne=>{const xe=ne.data?.item;xe&&openTimelineItem(xe,ee)})}function bindGraph(te,ee){te.on("click",ne=>{const xe=ne;if(xe.dataType==="edge")return;const it=xe.data?.node;it&&ee?.onNodeClick?.(it)})}function settleGraph(te,ee,ne,xe,it){const ut=ee.nodes.map(gt=>gt.id),ht=()=>rememberPositions(it,ut,xe.positions());if(xe.done||typeof requestAnimationFrame!="function")return ht(),()=>{};const dt=layoutChunk(ee.nodes.length),Mt=()=>{xe.step(dt);const gt=graphOrbitData(ee,ne,xe.positions());if(te.setOption({series:[{data:gt.edges},{data:gt.nodes}]},{notMerge:!1,lazyUpdate:!1}),xe.done){ht();return}ft=requestAnimationFrame(Mt)};let ft=requestAnimationFrame(Mt);return()=>cancelAnimationFrame(ft)}function graphLegendNode(te,ee){const ne=graphLegend(te,ee);if(!ne.length)return;const xe=el("div",{class:"aigui-bs-graph-legend"});for(const it of ne){const ut=el("div",{class:"aigui-bs-graph-legend-row"}),ht=el("i",{class:`aigui-bs-graph-legend-${it.shape==="node"?"dot":"line"}`});ht.style.background=it.colour,ut.append(ht,document.createTextNode(it.label)),xe.appendChild(ut)}return xe}function bodyHeight(te){return te.kind==="timeline"?timelineHeight(te.lanes.length):DEFAULT_HEIGHT[te.kind]}function mountPanel(te,ee,ne,xe,it,ut){const ht=el("section",{class:"aigui-bs-panel","data-aigui-bigscreen-panel":te.kind}),dt=Math.min(te.span??4,ee.columns);if(ht.style.gridColumn=`span ${dt}`,dt*2>ee.columns&&ht.setAttribute("data-aigui-bigscreen-wide",""),ht.style.borderColor=withAlpha(ne.accent,ee.theme==="dark"?.22:.18),te.title){const xt=el("header",{class:"aigui-bs-panel-title"},te.title),mt=el("i",{class:"aigui-bs-panel-mark"});mt.style.background=ne.accent,mt.style.boxShadow=`0 0 8px ${ne.accent}`,xt.prepend(mt),ht.appendChild(xt)}const Mt=el("div",{class:"aigui-bs-panel-body"}),ft=te.height??bodyHeight(te);ft&&(Mt.style.height=`${ft}px`),ht.appendChild(Mt);let gt=()=>{};try{switch(te.kind){case"kpi":gt=mountKpi(Mt,te,ne,xe);break;case"rank":gt=mountRank(Mt,te,ne,xe);break;case"gauge":gt=mountChart(Mt,gaugeOption(te,ne,xe),ee.theme);break;case"chart":gt=mountChart(Mt,chartOption(te,ne,xe),ee.theme);break;case"chart3d":gt=mountGl(Mt,()=>chart3dOption(te,ne,xe),ee.theme,()=>note$2(Mt,"3D panels need echarts-gl and WebGL."));break;case"globe":gt=mountGl(Mt,()=>globeOption(te,ne,xe,earthTexture(ne,ee.theme,it),it),ee.theme,()=>note$2(Mt,"Globe panels need echarts-gl and WebGL."));break;case"timeline":gt=mountChart(Mt,timelineOption(te,ne,xe),ee.theme,xt=>bindTimeline(xt,ut));break;case"graph3d":{const xt=graphLegendNode(te,ne);xt&&ht.appendChild(xt);const mt=()=>{xt?.remove(),note$2(Mt,"Knowledge graph panels need echarts-gl and WebGL.")};if(te.mode==="flat"){gt=mountGl(Mt,()=>graph3dOption(te,ne,xe),ee.theme,mt,wt=>bindGraph(wt,ut));break}const Dt=graphKey(te),yt=createLayout(te.nodes,te.edges,recallPositions(Dt));xe||yt.step(yt.steps),gt=mountGl(Mt,()=>graphOrbitOption(te,ne,xe,yt.positions()),ee.theme,mt,wt=>(bindGraph(wt,ut),settleGraph(wt,te,ne,yt,Dt)));break}}}catch{note$2(Mt,"Panel could not be drawn.")}return{node:ht,destroy:gt}}function mountScreen(te,ee,ne,xe,it){const ut=palette$2(ee);if(te.setAttribute("data-aigui-bigscreen",ee.theme),te.style.setProperty("--aigui-bs-accent",ut.accent),te.style.setProperty("--aigui-bs-text",ut.text),te.style.setProperty("--aigui-bs-muted",ut.muted),ee.title||ee.subtitle){const Mt=el("header",{class:"aigui-bs-head"});if(ee.title){const gt=el("h2",{class:"aigui-bs-title"},ee.title);gt.style.textShadow=ee.theme==="dark"?`0 0 24px ${withAlpha(ut.accent,.35)}`:"none",Mt.appendChild(gt)}ee.subtitle&&Mt.appendChild(el("p",{class:"aigui-bs-subtitle"},ee.subtitle));const ft=el("div",{class:"aigui-bs-rule"});ft.style.background=`linear-gradient(90deg, transparent, ${ut.accent}, transparent)`,Mt.appendChild(ft),te.appendChild(Mt)}const ht=el("div",{class:"aigui-bs-grid"});ht.style.gridTemplateColumns=`repeat(${ee.columns}, minmax(0, 1fr))`,te.appendChild(ht);const dt=ee.panels.map(Mt=>mountPanel(Mt,ee,ut,ne,xe,it));for(const{node:Mt}of dt)ht.appendChild(Mt);return()=>{for(const{destroy:Mt}of dt)Mt();te.replaceChildren()}}const mountJK0A6BBY=Object.freeze(Object.defineProperty({__proto__:null,mountScreen},Symbol.toStringTag,{value:"Module"}));use([install$g,install$i]);const echarts$2={init:function(){return init$3.apply(null,arguments)}};use(installLabelLayout);const echartsNS=Object.freeze(Object.defineProperty({__proto__:null,Axis:Axis$1,ChartView,ComponentModel,ComponentView,List:SeriesData,Model,PRIORITY,SeriesModel,color:color$1,connect,dataTool,default:echarts$2,dependencies,disConnect,disconnect,dispose,env,extendChartView,extendComponentModel,extendComponentView,extendSeriesModel,format:format$2,getCoordinateSystemDimensions,getInstanceByDom,getInstanceById,getMap:getMap$1,graphic,helper,init:init$3,innerDrawElementOnCanvas:brushSingle,matrix,number:number$5,parseGeoJSON,parseGeoJson:parseGeoJSON,registerAction,registerCoordinateSystem,registerLayout,registerLoading,registerLocale,registerMap:registerMap$1,registerPostInit,registerPostUpdate,registerPreprocessor,registerProcessor,registerTheme,registerTransform,registerUpdateLifecycle,registerVisual,setCanvasCreator,setPlatformAPI,throttle,time:time$1,use,util:util$1,vector,version:version$2,zrUtil:util$2,zrender},Symbol.toStringTag,{value:"Module"}));function derive(te,ee,ne){typeof ee=="object"&&(ne=ee,ee=null);var xe=this,it;if(!(te instanceof Function)){it=[];for(var ut in te)te.hasOwnProperty(ut)&&it.push(ut)}var ht=function(Mt){if(xe.apply(this,arguments),te instanceof Function?extend$3(this,te.call(this,Mt)):extendWithPropList(this,te,it),this.constructor===ht)for(var ft=ht.__initializers__,gt=0;gt<ft.length;gt++)ft[gt].apply(this,arguments)};ht.__super__=xe,xe.__initializers__?ht.__initializers__=xe.__initializers__.slice():ht.__initializers__=[],ee&&ht.__initializers__.push(ee);var dt=function(){};return dt.prototype=xe.prototype,ht.prototype=new dt,ht.prototype.constructor=ht,extend$3(ht.prototype,ne),ht.extend=xe.extend,ht.derive=xe.extend,ht}function extend$3(te,ee){if(ee)for(var ne in ee)ee.hasOwnProperty(ne)&&(te[ne]=ee[ne])}function extendWithPropList(te,ee,ne){for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]=ee[it]}}const extendMixin={extend:derive,derive};function Handler(te,ee){this.action=te,this.context=ee}var notifier={trigger:function(te){if(this.hasOwnProperty("__handlers__")&&this.__handlers__.hasOwnProperty(te)){var ee=this.__handlers__[te],ne=ee.length,xe=-1,it=arguments;switch(it.length){case 1:for(;++xe<ne;)ee[xe].action.call(ee[xe].context);return;case 2:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1]);return;case 3:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2]);return;case 4:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2],it[3]);return;case 5:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2],it[3],it[4]);return;default:for(;++xe<ne;)ee[xe].action.apply(ee[xe].context,Array.prototype.slice.call(it,1));return}}},on:function(te,ee,ne){if(!(!te||!ee)){var xe=this.__handlers__||(this.__handlers__={});if(!xe[te])xe[te]=[];else if(this.has(te,ee))return;var it=new Handler(ee,ne||this);return xe[te].push(it),this}},once:function(te,ee,ne){if(!te||!ee)return;var xe=this;function it(){xe.off(te,it),ee.apply(this,arguments)}return this.on(te,it,ne)},before:function(te,ee,ne){if(!(!te||!ee))return te="before"+te,this.on(te,ee,ne)},after:function(te,ee,ne){if(!(!te||!ee))return te="after"+te,this.on(te,ee,ne)},success:function(te,ee){return this.once("success",te,ee)},error:function(te,ee){return this.once("error",te,ee)},off:function(te,ee){var ne=this.__handlers__||(this.__handlers__={});if(!ee){ne[te]=[];return}if(ne[te]){for(var xe=ne[te],it=[],ut=0;ut<xe.length;ut++)ee&&xe[ut].action!==ee&&it.push(xe[ut]);ne[te]=it}return this},has:function(te,ee){var ne=this.__handlers__;if(!ne||!ne[te])return!1;for(var xe=ne[te],it=0;it<xe.length;it++)if(xe[it].action===ee)return!0}},guid=0,ArrayProto=Array.prototype,nativeForEach=ArrayProto.forEach,util={genGUID:function(){return++guid},relative2absolute:function(te,ee){if(!ee||te.match(/^\//))return te;for(var ne=te.split("/"),xe=ee.split("/"),it=ne[0];it==="."||it==="..";)it===".."&&xe.pop(),ne.shift(),it=ne[0];return xe.join("/")+"/"+ne.join("/")},extend:function(te,ee){if(ee)for(var ne in ee)ee.hasOwnProperty(ne)&&(te[ne]=ee[ne]);return te},defaults:function(te,ee){if(ee)for(var ne in ee)te[ne]===void 0&&(te[ne]=ee[ne]);return te},extendWithPropList:function(te,ee,ne){if(ee)for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]=ee[it]}return te},defaultsWithPropList:function(te,ee,ne){if(ee)for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]==null&&(te[it]=ee[it])}return te},each:function(te,ee,ne){if(te&&ee)if(te.forEach&&te.forEach===nativeForEach)te.forEach(ee,ne);else if(te.length===+te.length)for(var xe=0,it=te.length;xe<it;xe++)ee.call(ne,te[xe],xe,te);else for(var ut in te)te.hasOwnProperty(ut)&&ee.call(ne,te[ut],ut,te)},isObject:function(te){return te===Object(te)},isArray:function(te){return Array.isArray(te)},isArrayLike:function(te){return te?te.length===+te.length:!1},clone:function(te){if(util.isObject(te)){if(util.isArray(te))return te.slice();if(util.isArrayLike(te)){for(var ee=new te.constructor(te.length),ne=0;ne<te.length;ne++)ee[ne]=te[ne];return ee}else return util.extend({},te)}else return te}},Base=function(){this.__uid__=util.genGUID()};Base.__initializers__=[function(te){util.extend(this,te)}],util.extend(Base,extendMixin),util.extend(Base.prototype,notifier);var GLMAT_EPSILON=1e-6,GLMAT_ARRAY_TYPE=Array,GLMAT_RANDOM$1=Math.random,vec3$f={};vec3$f.create=function(){var te=new GLMAT_ARRAY_TYPE(3);return te[0]=0,te[1]=0,te[2]=0,te},vec3$f.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(3);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee},vec3$f.fromValues=function(te,ee,ne){var xe=new GLMAT_ARRAY_TYPE(3);return xe[0]=te,xe[1]=ee,xe[2]=ne,xe},vec3$f.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te},vec3$f.set=function(te,ee,ne,xe){return te[0]=ee,te[1]=ne,te[2]=xe,te},vec3$f.add=function(te,ee,ne){return te[0]=ee[0]+ne[0],te[1]=ee[1]+ne[1],te[2]=ee[2]+ne[2],te},vec3$f.subtract=function(te,ee,ne){return te[0]=ee[0]-ne[0],te[1]=ee[1]-ne[1],te[2]=ee[2]-ne[2],te},vec3$f.sub=vec3$f.subtract,vec3$f.multiply=function(te,ee,ne){return te[0]=ee[0]*ne[0],te[1]=ee[1]*ne[1],te[2]=ee[2]*ne[2],te},vec3$f.mul=vec3$f.multiply,vec3$f.divide=function(te,ee,ne){return te[0]=ee[0]/ne[0],te[1]=ee[1]/ne[1],te[2]=ee[2]/ne[2],te},vec3$f.div=vec3$f.divide,vec3$f.min=function(te,ee,ne){return te[0]=Math.min(ee[0],ne[0]),te[1]=Math.min(ee[1],ne[1]),te[2]=Math.min(ee[2],ne[2]),te},vec3$f.max=function(te,ee,ne){return te[0]=Math.max(ee[0],ne[0]),te[1]=Math.max(ee[1],ne[1]),te[2]=Math.max(ee[2],ne[2]),te},vec3$f.scale=function(te,ee,ne){return te[0]=ee[0]*ne,te[1]=ee[1]*ne,te[2]=ee[2]*ne,te},vec3$f.scaleAndAdd=function(te,ee,ne,xe){return te[0]=ee[0]+ne[0]*xe,te[1]=ee[1]+ne[1]*xe,te[2]=ee[2]+ne[2]*xe,te},vec3$f.distance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2];return Math.sqrt(ne*ne+xe*xe+it*it)},vec3$f.dist=vec3$f.distance,vec3$f.squaredDistance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2];return ne*ne+xe*xe+it*it},vec3$f.sqrDist=vec3$f.squaredDistance,vec3$f.length=function(te){var ee=te[0],ne=te[1],xe=te[2];return Math.sqrt(ee*ee+ne*ne+xe*xe)},vec3$f.len=vec3$f.length,vec3$f.squaredLength=function(te){var ee=te[0],ne=te[1],xe=te[2];return ee*ee+ne*ne+xe*xe},vec3$f.sqrLen=vec3$f.squaredLength,vec3$f.negate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te},vec3$f.inverse=function(te,ee){return te[0]=1/ee[0],te[1]=1/ee[1],te[2]=1/ee[2],te},vec3$f.normalize=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ne*ne+xe*xe+it*it;return ut>0&&(ut=1/Math.sqrt(ut),te[0]=ee[0]*ut,te[1]=ee[1]*ut,te[2]=ee[2]*ut),te},vec3$f.dot=function(te,ee){return te[0]*ee[0]+te[1]*ee[1]+te[2]*ee[2]},vec3$f.cross=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2];return te[0]=it*Mt-ut*dt,te[1]=ut*ht-xe*Mt,te[2]=xe*dt-it*ht,te},vec3$f.lerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2];return te[0]=it+xe*(ne[0]-it),te[1]=ut+xe*(ne[1]-ut),te[2]=ht+xe*(ne[2]-ht),te},vec3$f.random=function(te,ee){ee=ee||1;var ne=GLMAT_RANDOM$1()*2*Math.PI,xe=GLMAT_RANDOM$1()*2-1,it=Math.sqrt(1-xe*xe)*ee;return te[0]=Math.cos(ne)*it,te[1]=Math.sin(ne)*it,te[2]=xe*ee,te},vec3$f.transformMat4=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[3]*xe+ne[7]*it+ne[11]*ut+ne[15];return ht=ht||1,te[0]=(ne[0]*xe+ne[4]*it+ne[8]*ut+ne[12])/ht,te[1]=(ne[1]*xe+ne[5]*it+ne[9]*ut+ne[13])/ht,te[2]=(ne[2]*xe+ne[6]*it+ne[10]*ut+ne[14])/ht,te},vec3$f.transformMat3=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2];return te[0]=xe*ne[0]+it*ne[3]+ut*ne[6],te[1]=xe*ne[1]+it*ne[4]+ut*ne[7],te[2]=xe*ne[2]+it*ne[5]+ut*ne[8],te},vec3$f.transformQuat=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2],ft=ne[3],gt=ft*xe+dt*ut-Mt*it,xt=ft*it+Mt*xe-ht*ut,mt=ft*ut+ht*it-dt*xe,Dt=-ht*xe-dt*it-Mt*ut;return te[0]=gt*ft+Dt*-ht+xt*-Mt-mt*-dt,te[1]=xt*ft+Dt*-dt+mt*-ht-gt*-Mt,te[2]=mt*ft+Dt*-Mt+gt*-dt-xt*-ht,te},vec3$f.rotateX=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[0],ut[1]=it[1]*Math.cos(xe)-it[2]*Math.sin(xe),ut[2]=it[1]*Math.sin(xe)+it[2]*Math.cos(xe),te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.rotateY=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[2]*Math.sin(xe)+it[0]*Math.cos(xe),ut[1]=it[1],ut[2]=it[2]*Math.cos(xe)-it[0]*Math.sin(xe),te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.rotateZ=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[0]*Math.cos(xe)-it[1]*Math.sin(xe),ut[1]=it[0]*Math.sin(xe)+it[1]*Math.cos(xe),ut[2]=it[2],te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.forEach=function(){var te=vec3$f.create();return function(ee,ne,xe,it,ut,ht){var dt,Mt;for(ne||(ne=3),xe||(xe=0),it?Mt=Math.min(it*ne+xe,ee.length):Mt=ee.length,dt=xe;dt<Mt;dt+=ne)te[0]=ee[dt],te[1]=ee[dt+1],te[2]=ee[dt+2],ut(te,te,ht),ee[dt]=te[0],ee[dt+1]=te[1],ee[dt+2]=te[2];return ee}}(),vec3$f.angle=function(te,ee){var ne=vec3$f.fromValues(te[0],te[1],te[2]),xe=vec3$f.fromValues(ee[0],ee[1],ee[2]);vec3$f.normalize(ne,ne),vec3$f.normalize(xe,xe);var it=vec3$f.dot(ne,xe);return it>1?0:Math.acos(it)};var Vector3$1=function(te,ee,ne){te=te||0,ee=ee||0,ne=ne||0,this.array=vec3$f.fromValues(te,ee,ne),this._dirty=!0};Vector3$1.prototype={constructor:Vector3$1,add:function(te){return vec3$f.add(this.array,this.array,te.array),this._dirty=!0,this},set:function(te,ee,ne){return this.array[0]=te,this.array[1]=ee,this.array[2]=ne,this._dirty=!0,this},setArray:function(te){return this.array[0]=te[0],this.array[1]=te[1],this.array[2]=te[2],this._dirty=!0,this},clone:function(){return new Vector3$1(this.x,this.y,this.z)},copy:function(te){return vec3$f.copy(this.array,te.array),this._dirty=!0,this},cross:function(te,ee){return vec3$f.cross(this.array,te.array,ee.array),this._dirty=!0,this},dist:function(te){return vec3$f.dist(this.array,te.array)},distance:function(te){return vec3$f.distance(this.array,te.array)},div:function(te){return vec3$f.div(this.array,this.array,te.array),this._dirty=!0,this},divide:function(te){return vec3$f.divide(this.array,this.array,te.array),this._dirty=!0,this},dot:function(te){return vec3$f.dot(this.array,te.array)},len:function(){return vec3$f.len(this.array)},length:function(){return vec3$f.length(this.array)},lerp:function(te,ee,ne){return vec3$f.lerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},min:function(te){return vec3$f.min(this.array,this.array,te.array),this._dirty=!0,this},max:function(te){return vec3$f.max(this.array,this.array,te.array),this._dirty=!0,this},mul:function(te){return vec3$f.mul(this.array,this.array,te.array),this._dirty=!0,this},multiply:function(te){return vec3$f.multiply(this.array,this.array,te.array),this._dirty=!0,this},negate:function(){return vec3$f.negate(this.array,this.array),this._dirty=!0,this},normalize:function(){return vec3$f.normalize(this.array,this.array),this._dirty=!0,this},random:function(te){return vec3$f.random(this.array,te),this._dirty=!0,this},scale:function(te){return vec3$f.scale(this.array,this.array,te),this._dirty=!0,this},scaleAndAdd:function(te,ee){return vec3$f.scaleAndAdd(this.array,this.array,te.array,ee),this._dirty=!0,this},sqrDist:function(te){return vec3$f.sqrDist(this.array,te.array)},squaredDistance:function(te){return vec3$f.squaredDistance(this.array,te.array)},sqrLen:function(){return vec3$f.sqrLen(this.array)},squaredLength:function(){return vec3$f.squaredLength(this.array)},sub:function(te){return vec3$f.sub(this.array,this.array,te.array),this._dirty=!0,this},subtract:function(te){return vec3$f.subtract(this.array,this.array,te.array),this._dirty=!0,this},transformMat3:function(te){return vec3$f.transformMat3(this.array,this.array,te.array),this._dirty=!0,this},transformMat4:function(te){return vec3$f.transformMat4(this.array,this.array,te.array),this._dirty=!0,this},transformQuat:function(te){return vec3$f.transformQuat(this.array,this.array,te.array),this._dirty=!0,this},applyProjection:function(te){var ee=this.array;if(te=te.array,te[15]===0){var ne=-1/ee[2];ee[0]=te[0]*ee[0]*ne,ee[1]=te[5]*ee[1]*ne,ee[2]=(te[10]*ee[2]+te[14])*ne}else ee[0]=te[0]*ee[0]+te[12],ee[1]=te[5]*ee[1]+te[13],ee[2]=te[10]*ee[2]+te[14];return this._dirty=!0,this},eulerFromQuat:function(te,ee){Vector3$1.eulerFromQuat(this,te,ee)},eulerFromMat3:function(te,ee){Vector3$1.eulerFromMat3(this,te,ee)},toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$5=Object.defineProperty;if(defineProperty$5){var proto$4=Vector3$1.prototype;defineProperty$5(proto$4,"x",{get:function(){return this.array[0]},set:function(te){this.array[0]=te,this._dirty=!0}}),defineProperty$5(proto$4,"y",{get:function(){return this.array[1]},set:function(te){this.array[1]=te,this._dirty=!0}}),defineProperty$5(proto$4,"z",{get:function(){return this.array[2]},set:function(te){this.array[2]=te,this._dirty=!0}})}Vector3$1.add=function(te,ee,ne){return vec3$f.add(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.set=function(te,ee,ne,xe){vec3$f.set(te.array,ee,ne,xe),te._dirty=!0},Vector3$1.copy=function(te,ee){return vec3$f.copy(te.array,ee.array),te._dirty=!0,te},Vector3$1.cross=function(te,ee,ne){return vec3$f.cross(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.dist=function(te,ee){return vec3$f.distance(te.array,ee.array)},Vector3$1.distance=Vector3$1.dist,Vector3$1.div=function(te,ee,ne){return vec3$f.divide(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.divide=Vector3$1.div,Vector3$1.dot=function(te,ee){return vec3$f.dot(te.array,ee.array)},Vector3$1.len=function(te){return vec3$f.length(te.array)},Vector3$1.lerp=function(te,ee,ne,xe){return vec3$f.lerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Vector3$1.min=function(te,ee,ne){return vec3$f.min(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.max=function(te,ee,ne){return vec3$f.max(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.mul=function(te,ee,ne){return vec3$f.multiply(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.multiply=Vector3$1.mul,Vector3$1.negate=function(te,ee){return vec3$f.negate(te.array,ee.array),te._dirty=!0,te},Vector3$1.normalize=function(te,ee){return vec3$f.normalize(te.array,ee.array),te._dirty=!0,te},Vector3$1.random=function(te,ee){return vec3$f.random(te.array,ee),te._dirty=!0,te},Vector3$1.scale=function(te,ee,ne){return vec3$f.scale(te.array,ee.array,ne),te._dirty=!0,te},Vector3$1.scaleAndAdd=function(te,ee,ne,xe){return vec3$f.scaleAndAdd(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Vector3$1.sqrDist=function(te,ee){return vec3$f.sqrDist(te.array,ee.array)},Vector3$1.squaredDistance=Vector3$1.sqrDist,Vector3$1.sqrLen=function(te){return vec3$f.sqrLen(te.array)},Vector3$1.squaredLength=Vector3$1.sqrLen,Vector3$1.sub=function(te,ee,ne){return vec3$f.subtract(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.subtract=Vector3$1.sub,Vector3$1.transformMat3=function(te,ee,ne){return vec3$f.transformMat3(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.transformMat4=function(te,ee,ne){return vec3$f.transformMat4(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.transformQuat=function(te,ee,ne){return vec3$f.transformQuat(te.array,ee.array,ne.array),te._dirty=!0,te};function clamp$2(te,ee,ne){return te<ee?ee:te>ne?ne:te}var atan2$1=Math.atan2,asin$2=Math.asin,abs$2=Math.abs;Vector3$1.eulerFromQuat=function(te,ee,mt){te._dirty=!0,ee=ee.array;var xe=te.array,it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3],Mt=it*it,ft=ut*ut,gt=ht*ht,xt=dt*dt,mt=(mt||"XYZ").toUpperCase();switch(mt){case"XYZ":xe[0]=atan2$1(2*(it*dt-ut*ht),xt-Mt-ft+gt),xe[1]=asin$2(clamp$2(2*(it*ht+ut*dt),-1,1)),xe[2]=atan2$1(2*(ht*dt-it*ut),xt+Mt-ft-gt);break;case"YXZ":xe[0]=asin$2(clamp$2(2*(it*dt-ut*ht),-1,1)),xe[1]=atan2$1(2*(it*ht+ut*dt),xt-Mt-ft+gt),xe[2]=atan2$1(2*(it*ut+ht*dt),xt-Mt+ft-gt);break;case"ZXY":xe[0]=asin$2(clamp$2(2*(it*dt+ut*ht),-1,1)),xe[1]=atan2$1(2*(ut*dt-ht*it),xt-Mt-ft+gt),xe[2]=atan2$1(2*(ht*dt-it*ut),xt-Mt+ft-gt);break;case"ZYX":xe[0]=atan2$1(2*(it*dt+ht*ut),xt-Mt-ft+gt),xe[1]=asin$2(clamp$2(2*(ut*dt-it*ht),-1,1)),xe[2]=atan2$1(2*(it*ut+ht*dt),xt+Mt-ft-gt);break;case"YZX":xe[0]=atan2$1(2*(it*dt-ht*ut),xt-Mt+ft-gt),xe[1]=atan2$1(2*(ut*dt-it*ht),xt+Mt-ft-gt),xe[2]=asin$2(clamp$2(2*(it*ut+ht*dt),-1,1));break;case"XZY":xe[0]=atan2$1(2*(it*dt+ut*ht),xt-Mt+ft-gt),xe[1]=atan2$1(2*(it*ht+ut*dt),xt+Mt-ft-gt),xe[2]=asin$2(clamp$2(2*(ht*dt-it*ut),-1,1));break;default:console.warn("Unkown order: "+mt)}return te},Vector3$1.eulerFromMat3=function(te,ee,yt){var xe=ee.array,it=xe[0],ut=xe[3],ht=xe[6],dt=xe[1],Mt=xe[4],ft=xe[7],gt=xe[2],xt=xe[5],mt=xe[8],Dt=te.array,yt=(yt||"XYZ").toUpperCase();switch(yt){case"XYZ":Dt[1]=asin$2(clamp$2(ht,-1,1)),abs$2(ht)<.99999?(Dt[0]=atan2$1(-ft,mt),Dt[2]=atan2$1(-ut,it)):(Dt[0]=atan2$1(xt,Mt),Dt[2]=0);break;case"YXZ":Dt[0]=asin$2(-clamp$2(ft,-1,1)),abs$2(ft)<.99999?(Dt[1]=atan2$1(ht,mt),Dt[2]=atan2$1(dt,Mt)):(Dt[1]=atan2$1(-gt,it),Dt[2]=0);break;case"ZXY":Dt[0]=asin$2(clamp$2(xt,-1,1)),abs$2(xt)<.99999?(Dt[1]=atan2$1(-gt,mt),Dt[2]=atan2$1(-ut,Mt)):(Dt[1]=0,Dt[2]=atan2$1(dt,it));break;case"ZYX":Dt[1]=asin$2(-clamp$2(gt,-1,1)),abs$2(gt)<.99999?(Dt[0]=atan2$1(xt,mt),Dt[2]=atan2$1(dt,it)):(Dt[0]=0,Dt[2]=atan2$1(-ut,Mt));break;case"YZX":Dt[2]=asin$2(clamp$2(dt,-1,1)),abs$2(dt)<.99999?(Dt[0]=atan2$1(-ft,Mt),Dt[1]=atan2$1(-gt,it)):(Dt[0]=0,Dt[1]=atan2$1(ht,mt));break;case"XZY":Dt[2]=asin$2(-clamp$2(ut,-1,1)),abs$2(ut)<.99999?(Dt[0]=atan2$1(xt,Mt),Dt[1]=atan2$1(ht,it)):(Dt[0]=atan2$1(-ft,mt),Dt[1]=0);break;default:console.warn("Unkown order: "+yt)}return te._dirty=!0,te},Object.defineProperties(Vector3$1,{POSITIVE_X:{get:function(){return new Vector3$1(1,0,0)}},NEGATIVE_X:{get:function(){return new Vector3$1(-1,0,0)}},POSITIVE_Y:{get:function(){return new Vector3$1(0,1,0)}},NEGATIVE_Y:{get:function(){return new Vector3$1(0,-1,0)}},POSITIVE_Z:{get:function(){return new Vector3$1(0,0,1)}},NEGATIVE_Z:{get:function(){return new Vector3$1(0,0,-1)}},UP:{get:function(){return new Vector3$1(0,1,0)}},ZERO:{get:function(){return new Vector3$1}}});var vec4$1={};vec4$1.create=function(){var te=new GLMAT_ARRAY_TYPE(4);return te[0]=0,te[1]=0,te[2]=0,te[3]=0,te},vec4$1.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(4);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee},vec4$1.fromValues=function(te,ee,ne,xe){var it=new GLMAT_ARRAY_TYPE(4);return it[0]=te,it[1]=ee,it[2]=ne,it[3]=xe,it},vec4$1.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te},vec4$1.set=function(te,ee,ne,xe,it){return te[0]=ee,te[1]=ne,te[2]=xe,te[3]=it,te},vec4$1.add=function(te,ee,ne){return te[0]=ee[0]+ne[0],te[1]=ee[1]+ne[1],te[2]=ee[2]+ne[2],te[3]=ee[3]+ne[3],te},vec4$1.subtract=function(te,ee,ne){return te[0]=ee[0]-ne[0],te[1]=ee[1]-ne[1],te[2]=ee[2]-ne[2],te[3]=ee[3]-ne[3],te},vec4$1.sub=vec4$1.subtract,vec4$1.multiply=function(te,ee,ne){return te[0]=ee[0]*ne[0],te[1]=ee[1]*ne[1],te[2]=ee[2]*ne[2],te[3]=ee[3]*ne[3],te},vec4$1.mul=vec4$1.multiply,vec4$1.divide=function(te,ee,ne){return te[0]=ee[0]/ne[0],te[1]=ee[1]/ne[1],te[2]=ee[2]/ne[2],te[3]=ee[3]/ne[3],te},vec4$1.div=vec4$1.divide,vec4$1.min=function(te,ee,ne){return te[0]=Math.min(ee[0],ne[0]),te[1]=Math.min(ee[1],ne[1]),te[2]=Math.min(ee[2],ne[2]),te[3]=Math.min(ee[3],ne[3]),te},vec4$1.max=function(te,ee,ne){return te[0]=Math.max(ee[0],ne[0]),te[1]=Math.max(ee[1],ne[1]),te[2]=Math.max(ee[2],ne[2]),te[3]=Math.max(ee[3],ne[3]),te},vec4$1.scale=function(te,ee,ne){return te[0]=ee[0]*ne,te[1]=ee[1]*ne,te[2]=ee[2]*ne,te[3]=ee[3]*ne,te},vec4$1.scaleAndAdd=function(te,ee,ne,xe){return te[0]=ee[0]+ne[0]*xe,te[1]=ee[1]+ne[1]*xe,te[2]=ee[2]+ne[2]*xe,te[3]=ee[3]+ne[3]*xe,te},vec4$1.distance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2],ut=ee[3]-te[3];return Math.sqrt(ne*ne+xe*xe+it*it+ut*ut)},vec4$1.dist=vec4$1.distance,vec4$1.squaredDistance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2],ut=ee[3]-te[3];return ne*ne+xe*xe+it*it+ut*ut},vec4$1.sqrDist=vec4$1.squaredDistance,vec4$1.length=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3];return Math.sqrt(ee*ee+ne*ne+xe*xe+it*it)},vec4$1.len=vec4$1.length,vec4$1.squaredLength=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3];return ee*ee+ne*ne+xe*xe+it*it},vec4$1.sqrLen=vec4$1.squaredLength,vec4$1.negate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te[3]=-ee[3],te},vec4$1.inverse=function(te,ee){return te[0]=1/ee[0],te[1]=1/ee[1],te[2]=1/ee[2],te[3]=1/ee[3],te},vec4$1.normalize=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne*ne+xe*xe+it*it+ut*ut;return ht>0&&(ht=1/Math.sqrt(ht),te[0]=ee[0]*ht,te[1]=ee[1]*ht,te[2]=ee[2]*ht,te[3]=ee[3]*ht),te},vec4$1.dot=function(te,ee){return te[0]*ee[0]+te[1]*ee[1]+te[2]*ee[2]+te[3]*ee[3]},vec4$1.lerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3];return te[0]=it+xe*(ne[0]-it),te[1]=ut+xe*(ne[1]-ut),te[2]=ht+xe*(ne[2]-ht),te[3]=dt+xe*(ne[3]-dt),te},vec4$1.random=function(te,ee){return ee=ee||1,te[0]=GLMAT_RANDOM$1(),te[1]=GLMAT_RANDOM$1(),te[2]=GLMAT_RANDOM$1(),te[3]=GLMAT_RANDOM$1(),vec4$1.normalize(te,te),vec4$1.scale(te,te,ee),te},vec4$1.transformMat4=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3];return te[0]=ne[0]*xe+ne[4]*it+ne[8]*ut+ne[12]*ht,te[1]=ne[1]*xe+ne[5]*it+ne[9]*ut+ne[13]*ht,te[2]=ne[2]*xe+ne[6]*it+ne[10]*ut+ne[14]*ht,te[3]=ne[3]*xe+ne[7]*it+ne[11]*ut+ne[15]*ht,te},vec4$1.transformQuat=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2],ft=ne[3],gt=ft*xe+dt*ut-Mt*it,xt=ft*it+Mt*xe-ht*ut,mt=ft*ut+ht*it-dt*xe,Dt=-ht*xe-dt*it-Mt*ut;return te[0]=gt*ft+Dt*-ht+xt*-Mt-mt*-dt,te[1]=xt*ft+Dt*-dt+mt*-ht-gt*-Mt,te[2]=mt*ft+Dt*-Mt+gt*-dt-xt*-ht,te},vec4$1.forEach=function(){var te=vec4$1.create();return function(ee,ne,xe,it,ut,ht){var dt,Mt;for(ne||(ne=4),xe||(xe=0),it?Mt=Math.min(it*ne+xe,ee.length):Mt=ee.length,dt=xe;dt<Mt;dt+=ne)te[0]=ee[dt],te[1]=ee[dt+1],te[2]=ee[dt+2],te[3]=ee[dt+3],ut(te,te,ht),ee[dt]=te[0],ee[dt+1]=te[1],ee[dt+2]=te[2],ee[dt+3]=te[3];return ee}}();var mat3$1={};mat3$1.create=function(){var te=new GLMAT_ARRAY_TYPE(9);return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=1,te[5]=0,te[6]=0,te[7]=0,te[8]=1,te},mat3$1.fromMat4=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[4],te[4]=ee[5],te[5]=ee[6],te[6]=ee[8],te[7]=ee[9],te[8]=ee[10],te},mat3$1.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(9);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee[4]=te[4],ee[5]=te[5],ee[6]=te[6],ee[7]=te[7],ee[8]=te[8],ee},mat3$1.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te},mat3$1.identity=function(te){return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=1,te[5]=0,te[6]=0,te[7]=0,te[8]=1,te},mat3$1.transpose=function(te,ee){if(te===ee){var ne=ee[1],xe=ee[2],it=ee[5];te[1]=ee[3],te[2]=ee[6],te[3]=ne,te[5]=ee[7],te[6]=xe,te[7]=it}else te[0]=ee[0],te[1]=ee[3],te[2]=ee[6],te[3]=ee[1],te[4]=ee[4],te[5]=ee[7],te[6]=ee[2],te[7]=ee[5],te[8]=ee[8];return te},mat3$1.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=gt*ht-dt*ft,mt=-gt*ut+dt*Mt,Dt=ft*ut-ht*Mt,yt=ne*xt+xe*mt+it*Dt;return yt?(yt=1/yt,te[0]=xt*yt,te[1]=(-gt*xe+it*ft)*yt,te[2]=(dt*xe-it*ht)*yt,te[3]=mt*yt,te[4]=(gt*ne-it*Mt)*yt,te[5]=(-dt*ne+it*ut)*yt,te[6]=Dt*yt,te[7]=(-ft*ne+xe*Mt)*yt,te[8]=(ht*ne-xe*ut)*yt,te):null},mat3$1.adjoint=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8];return te[0]=ht*gt-dt*ft,te[1]=it*ft-xe*gt,te[2]=xe*dt-it*ht,te[3]=dt*Mt-ut*gt,te[4]=ne*gt-it*Mt,te[5]=it*ut-ne*dt,te[6]=ut*ft-ht*Mt,te[7]=xe*Mt-ne*ft,te[8]=ne*ht-xe*ut,te},mat3$1.determinant=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3],ut=te[4],ht=te[5],dt=te[6],Mt=te[7],ft=te[8];return ee*(ft*ut-ht*Mt)+ne*(-ft*it+ht*dt)+xe*(Mt*it-ut*dt)},mat3$1.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ne[0],Dt=ne[1],yt=ne[2],wt=ne[3],At=ne[4],Lt=ne[5],bt=ne[6],vt=ne[7],Qt=ne[8];return te[0]=mt*xe+Dt*ht+yt*ft,te[1]=mt*it+Dt*dt+yt*gt,te[2]=mt*ut+Dt*Mt+yt*xt,te[3]=wt*xe+At*ht+Lt*ft,te[4]=wt*it+At*dt+Lt*gt,te[5]=wt*ut+At*Mt+Lt*xt,te[6]=bt*xe+vt*ht+Qt*ft,te[7]=bt*it+vt*dt+Qt*gt,te[8]=bt*ut+vt*Mt+Qt*xt,te},mat3$1.mul=mat3$1.multiply,mat3$1.translate=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ne[0],Dt=ne[1];return te[0]=xe,te[1]=it,te[2]=ut,te[3]=ht,te[4]=dt,te[5]=Mt,te[6]=mt*xe+Dt*ht+ft,te[7]=mt*it+Dt*dt+gt,te[8]=mt*ut+Dt*Mt+xt,te},mat3$1.rotate=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=Math.sin(ne),Dt=Math.cos(ne);return te[0]=Dt*xe+mt*ht,te[1]=Dt*it+mt*dt,te[2]=Dt*ut+mt*Mt,te[3]=Dt*ht-mt*xe,te[4]=Dt*dt-mt*it,te[5]=Dt*Mt-mt*ut,te[6]=ft,te[7]=gt,te[8]=xt,te},mat3$1.scale=function(te,ee,ne){var xe=ne[0],it=ne[1];return te[0]=xe*ee[0],te[1]=xe*ee[1],te[2]=xe*ee[2],te[3]=it*ee[3],te[4]=it*ee[4],te[5]=it*ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te},mat3$1.fromMat2d=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=0,te[3]=ee[2],te[4]=ee[3],te[5]=0,te[6]=ee[4],te[7]=ee[5],te[8]=1,te},mat3$1.fromQuat=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne+ne,dt=xe+xe,Mt=it+it,ft=ne*ht,gt=xe*ht,xt=xe*dt,mt=it*ht,Dt=it*dt,yt=it*Mt,wt=ut*ht,At=ut*dt,Lt=ut*Mt;return te[0]=1-xt-yt,te[3]=gt-Lt,te[6]=mt+At,te[1]=gt+Lt,te[4]=1-ft-yt,te[7]=Dt-wt,te[2]=mt-At,te[5]=Dt+wt,te[8]=1-ft-xt,te},mat3$1.normalFromMat4=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15],bt=ne*dt-xe*ht,vt=ne*Mt-it*ht,Qt=ne*ft-ut*ht,Ct=xe*Mt-it*dt,Ut=xe*ft-ut*dt,Rt=it*ft-ut*Mt,Ft=gt*wt-xt*yt,Gt=gt*At-mt*yt,_t=gt*Lt-Dt*yt,kt=xt*At-mt*wt,Ot=xt*Lt-Dt*wt,zt=mt*Lt-Dt*At,Xt=bt*zt-vt*Ot+Qt*kt+Ct*_t-Ut*Gt+Rt*Ft;return Xt?(Xt=1/Xt,te[0]=(dt*zt-Mt*Ot+ft*kt)*Xt,te[1]=(Mt*_t-ht*zt-ft*Gt)*Xt,te[2]=(ht*Ot-dt*_t+ft*Ft)*Xt,te[3]=(it*Ot-xe*zt-ut*kt)*Xt,te[4]=(ne*zt-it*_t+ut*Gt)*Xt,te[5]=(xe*_t-ne*Ot-ut*Ft)*Xt,te[6]=(wt*Rt-At*Ut+Lt*Ct)*Xt,te[7]=(At*Qt-yt*Rt-Lt*vt)*Xt,te[8]=(yt*Ut-wt*Qt+Lt*bt)*Xt,te):null},mat3$1.frob=function(te){return Math.sqrt(Math.pow(te[0],2)+Math.pow(te[1],2)+Math.pow(te[2],2)+Math.pow(te[3],2)+Math.pow(te[4],2)+Math.pow(te[5],2)+Math.pow(te[6],2)+Math.pow(te[7],2)+Math.pow(te[8],2))};var quat={};quat.create=function(){var te=new GLMAT_ARRAY_TYPE(4);return te[0]=0,te[1]=0,te[2]=0,te[3]=1,te},quat.rotationTo=function(){var te=vec3$f.create(),ee=vec3$f.fromValues(1,0,0),ne=vec3$f.fromValues(0,1,0);return function(xe,it,ut){var ht=vec3$f.dot(it,ut);return ht<-.999999?(vec3$f.cross(te,ee,it),vec3$f.length(te)<1e-6&&vec3$f.cross(te,ne,it),vec3$f.normalize(te,te),quat.setAxisAngle(xe,te,Math.PI),xe):ht>.999999?(xe[0]=0,xe[1]=0,xe[2]=0,xe[3]=1,xe):(vec3$f.cross(te,it,ut),xe[0]=te[0],xe[1]=te[1],xe[2]=te[2],xe[3]=1+ht,quat.normalize(xe,xe))}}(),quat.setAxes=function(){var te=mat3$1.create();return function(ee,ne,xe,it){return te[0]=xe[0],te[3]=xe[1],te[6]=xe[2],te[1]=it[0],te[4]=it[1],te[7]=it[2],te[2]=-ne[0],te[5]=-ne[1],te[8]=-ne[2],quat.normalize(ee,quat.fromMat3(ee,te))}}(),quat.clone=vec4$1.clone,quat.fromValues=vec4$1.fromValues,quat.copy=vec4$1.copy,quat.set=vec4$1.set,quat.identity=function(te){return te[0]=0,te[1]=0,te[2]=0,te[3]=1,te},quat.setAxisAngle=function(te,ee,ne){ne=ne*.5;var xe=Math.sin(ne);return te[0]=xe*ee[0],te[1]=xe*ee[1],te[2]=xe*ee[2],te[3]=Math.cos(ne),te},quat.add=vec4$1.add,quat.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ne[0],Mt=ne[1],ft=ne[2],gt=ne[3];return te[0]=xe*gt+ht*dt+it*ft-ut*Mt,te[1]=it*gt+ht*Mt+ut*dt-xe*ft,te[2]=ut*gt+ht*ft+xe*Mt-it*dt,te[3]=ht*gt-xe*dt-it*Mt-ut*ft,te},quat.mul=quat.multiply,quat.scale=vec4$1.scale,quat.rotateX=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt+ht*dt,te[1]=it*Mt+ut*dt,te[2]=ut*Mt-it*dt,te[3]=ht*Mt-xe*dt,te},quat.rotateY=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt-ut*dt,te[1]=it*Mt+ht*dt,te[2]=ut*Mt+xe*dt,te[3]=ht*Mt-it*dt,te},quat.rotateZ=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt+it*dt,te[1]=it*Mt-xe*dt,te[2]=ut*Mt+ht*dt,te[3]=ht*Mt-ut*dt,te},quat.calculateW=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2];return te[0]=ne,te[1]=xe,te[2]=it,te[3]=Math.sqrt(Math.abs(1-ne*ne-xe*xe-it*it)),te},quat.dot=vec4$1.dot,quat.lerp=vec4$1.lerp,quat.slerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3],Mt=ne[0],ft=ne[1],gt=ne[2],xt=ne[3],mt,Dt,yt,wt,At;return Dt=it*Mt+ut*ft+ht*gt+dt*xt,Dt<0&&(Dt=-Dt,Mt=-Mt,ft=-ft,gt=-gt,xt=-xt),1-Dt>1e-6?(mt=Math.acos(Dt),yt=Math.sin(mt),wt=Math.sin((1-xe)*mt)/yt,At=Math.sin(xe*mt)/yt):(wt=1-xe,At=xe),te[0]=wt*it+At*Mt,te[1]=wt*ut+At*ft,te[2]=wt*ht+At*gt,te[3]=wt*dt+At*xt,te},quat.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne*ne+xe*xe+it*it+ut*ut,dt=ht?1/ht:0;return te[0]=-ne*dt,te[1]=-xe*dt,te[2]=-it*dt,te[3]=ut*dt,te},quat.conjugate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te[3]=ee[3],te},quat.length=vec4$1.length,quat.len=quat.length,quat.squaredLength=vec4$1.squaredLength,quat.sqrLen=quat.squaredLength,quat.normalize=vec4$1.normalize,quat.fromMat3=function(te,ee){var ne=ee[0]+ee[4]+ee[8],xe;if(ne>0)xe=Math.sqrt(ne+1),te[3]=.5*xe,xe=.5/xe,te[0]=(ee[5]-ee[7])*xe,te[1]=(ee[6]-ee[2])*xe,te[2]=(ee[1]-ee[3])*xe;else{var it=0;ee[4]>ee[0]&&(it=1),ee[8]>ee[it*3+it]&&(it=2);var ut=(it+1)%3,ht=(it+2)%3;xe=Math.sqrt(ee[it*3+it]-ee[ut*3+ut]-ee[ht*3+ht]+1),te[it]=.5*xe,xe=.5/xe,te[3]=(ee[ut*3+ht]-ee[ht*3+ut])*xe,te[ut]=(ee[ut*3+it]+ee[it*3+ut])*xe,te[ht]=(ee[ht*3+it]+ee[it*3+ht])*xe}return te};var Quaternion$1=function(te,ee,ne,xe){te=te||0,ee=ee||0,ne=ne||0,xe=xe===void 0?1:xe,this.array=quat.fromValues(te,ee,ne,xe),this._dirty=!0};Quaternion$1.prototype={constructor:Quaternion$1,add:function(te){return quat.add(this.array,this.array,te.array),this._dirty=!0,this},calculateW:function(){return quat.calculateW(this.array,this.array),this._dirty=!0,this},set:function(te,ee,ne,xe){return this.array[0]=te,this.array[1]=ee,this.array[2]=ne,this.array[3]=xe,this._dirty=!0,this},setArray:function(te){return this.array[0]=te[0],this.array[1]=te[1],this.array[2]=te[2],this.array[3]=te[3],this._dirty=!0,this},clone:function(){return new Quaternion$1(this.x,this.y,this.z,this.w)},conjugate:function(){return quat.conjugate(this.array,this.array),this._dirty=!0,this},copy:function(te){return quat.copy(this.array,te.array),this._dirty=!0,this},dot:function(te){return quat.dot(this.array,te.array)},fromMat3:function(te){return quat.fromMat3(this.array,te.array),this._dirty=!0,this},fromMat4:function(){var te=mat3$1.create();return function(ee){return mat3$1.fromMat4(te,ee.array),mat3$1.transpose(te,te),quat.fromMat3(this.array,te),this._dirty=!0,this}}(),identity:function(){return quat.identity(this.array),this._dirty=!0,this},invert:function(){return quat.invert(this.array,this.array),this._dirty=!0,this},len:function(){return quat.len(this.array)},length:function(){return quat.length(this.array)},lerp:function(te,ee,ne){return quat.lerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},mul:function(te){return quat.mul(this.array,this.array,te.array),this._dirty=!0,this},mulLeft:function(te){return quat.multiply(this.array,te.array,this.array),this._dirty=!0,this},multiply:function(te){return quat.multiply(this.array,this.array,te.array),this._dirty=!0,this},multiplyLeft:function(te){return quat.multiply(this.array,te.array,this.array),this._dirty=!0,this},normalize:function(){return quat.normalize(this.array,this.array),this._dirty=!0,this},rotateX:function(te){return quat.rotateX(this.array,this.array,te),this._dirty=!0,this},rotateY:function(te){return quat.rotateY(this.array,this.array,te),this._dirty=!0,this},rotateZ:function(te){return quat.rotateZ(this.array,this.array,te),this._dirty=!0,this},rotationTo:function(te,ee){return quat.rotationTo(this.array,te.array,ee.array),this._dirty=!0,this},setAxes:function(te,ee,ne){return quat.setAxes(this.array,te.array,ee.array,ne.array),this._dirty=!0,this},setAxisAngle:function(te,ee){return quat.setAxisAngle(this.array,te.array,ee),this._dirty=!0,this},slerp:function(te,ee,ne){return quat.slerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},sqrLen:function(){return quat.sqrLen(this.array)},squaredLength:function(){return quat.squaredLength(this.array)},fromEuler:function(te,ee){return Quaternion$1.fromEuler(this,te,ee)},toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$4=Object.defineProperty;if(defineProperty$4){var proto$3=Quaternion$1.prototype;defineProperty$4(proto$3,"x",{get:function(){return this.array[0]},set:function(te){this.array[0]=te,this._dirty=!0}}),defineProperty$4(proto$3,"y",{get:function(){return this.array[1]},set:function(te){this.array[1]=te,this._dirty=!0}}),defineProperty$4(proto$3,"z",{get:function(){return this.array[2]},set:function(te){this.array[2]=te,this._dirty=!0}}),defineProperty$4(proto$3,"w",{get:function(){return this.array[3]},set:function(te){this.array[3]=te,this._dirty=!0}})}Quaternion$1.add=function(te,ee,ne){return quat.add(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.set=function(te,ee,ne,xe,it){quat.set(te.array,ee,ne,xe,it),te._dirty=!0},Quaternion$1.copy=function(te,ee){return quat.copy(te.array,ee.array),te._dirty=!0,te},Quaternion$1.calculateW=function(te,ee){return quat.calculateW(te.array,ee.array),te._dirty=!0,te},Quaternion$1.conjugate=function(te,ee){return quat.conjugate(te.array,ee.array),te._dirty=!0,te},Quaternion$1.identity=function(te){return quat.identity(te.array),te._dirty=!0,te},Quaternion$1.invert=function(te,ee){return quat.invert(te.array,ee.array),te._dirty=!0,te},Quaternion$1.dot=function(te,ee){return quat.dot(te.array,ee.array)},Quaternion$1.len=function(te){return quat.length(te.array)},Quaternion$1.lerp=function(te,ee,ne,xe){return quat.lerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Quaternion$1.slerp=function(te,ee,ne,xe){return quat.slerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Quaternion$1.mul=function(te,ee,ne){return quat.multiply(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.multiply=Quaternion$1.mul,Quaternion$1.rotateX=function(te,ee,ne){return quat.rotateX(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.rotateY=function(te,ee,ne){return quat.rotateY(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.rotateZ=function(te,ee,ne){return quat.rotateZ(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.setAxisAngle=function(te,ee,ne){return quat.setAxisAngle(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.normalize=function(te,ee){return quat.normalize(te.array,ee.array),te._dirty=!0,te},Quaternion$1.sqrLen=function(te){return quat.sqrLen(te.array)},Quaternion$1.squaredLength=Quaternion$1.sqrLen,Quaternion$1.fromMat3=function(te,ee){return quat.fromMat3(te.array,ee.array),te._dirty=!0,te},Quaternion$1.setAxes=function(te,ee,ne,xe){return quat.setAxes(te.array,ee.array,ne.array,xe.array),te._dirty=!0,te},Quaternion$1.rotationTo=function(te,ee,ne){return quat.rotationTo(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.fromEuler=function(te,ee,gt){te._dirty=!0,ee=ee.array;var xe=te.array,it=Math.cos(ee[0]/2),ut=Math.cos(ee[1]/2),ht=Math.cos(ee[2]/2),dt=Math.sin(ee[0]/2),Mt=Math.sin(ee[1]/2),ft=Math.sin(ee[2]/2),gt=(gt||"XYZ").toUpperCase();switch(gt){case"XYZ":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"YXZ":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break;case"ZXY":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"ZYX":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break;case"YZX":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"XZY":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break}};var mat4$2={};mat4$2.create=function(){var te=new GLMAT_ARRAY_TYPE(16);return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=1,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=1,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(16);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee[4]=te[4],ee[5]=te[5],ee[6]=te[6],ee[7]=te[7],ee[8]=te[8],ee[9]=te[9],ee[10]=te[10],ee[11]=te[11],ee[12]=te[12],ee[13]=te[13],ee[14]=te[14],ee[15]=te[15],ee},mat4$2.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te[9]=ee[9],te[10]=ee[10],te[11]=ee[11],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15],te},mat4$2.identity=function(te){return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=1,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=1,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.transpose=function(te,ee){if(te===ee){var ne=ee[1],xe=ee[2],it=ee[3],ut=ee[6],ht=ee[7],dt=ee[11];te[1]=ee[4],te[2]=ee[8],te[3]=ee[12],te[4]=ne,te[6]=ee[9],te[7]=ee[13],te[8]=xe,te[9]=ut,te[11]=ee[14],te[12]=it,te[13]=ht,te[14]=dt}else te[0]=ee[0],te[1]=ee[4],te[2]=ee[8],te[3]=ee[12],te[4]=ee[1],te[5]=ee[5],te[6]=ee[9],te[7]=ee[13],te[8]=ee[2],te[9]=ee[6],te[10]=ee[10],te[11]=ee[14],te[12]=ee[3],te[13]=ee[7],te[14]=ee[11],te[15]=ee[15];return te},mat4$2.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15],bt=ne*dt-xe*ht,vt=ne*Mt-it*ht,Qt=ne*ft-ut*ht,Ct=xe*Mt-it*dt,Ut=xe*ft-ut*dt,Rt=it*ft-ut*Mt,Ft=gt*wt-xt*yt,Gt=gt*At-mt*yt,_t=gt*Lt-Dt*yt,kt=xt*At-mt*wt,Ot=xt*Lt-Dt*wt,zt=mt*Lt-Dt*At,Xt=bt*zt-vt*Ot+Qt*kt+Ct*_t-Ut*Gt+Rt*Ft;return Xt?(Xt=1/Xt,te[0]=(dt*zt-Mt*Ot+ft*kt)*Xt,te[1]=(it*Ot-xe*zt-ut*kt)*Xt,te[2]=(wt*Rt-At*Ut+Lt*Ct)*Xt,te[3]=(mt*Ut-xt*Rt-Dt*Ct)*Xt,te[4]=(Mt*_t-ht*zt-ft*Gt)*Xt,te[5]=(ne*zt-it*_t+ut*Gt)*Xt,te[6]=(At*Qt-yt*Rt-Lt*vt)*Xt,te[7]=(gt*Rt-mt*Qt+Dt*vt)*Xt,te[8]=(ht*Ot-dt*_t+ft*Ft)*Xt,te[9]=(xe*_t-ne*Ot-ut*Ft)*Xt,te[10]=(yt*Ut-wt*Qt+Lt*bt)*Xt,te[11]=(xt*Qt-gt*Ut-Dt*bt)*Xt,te[12]=(dt*Gt-ht*kt-Mt*Ft)*Xt,te[13]=(ne*kt-xe*Gt+it*Ft)*Xt,te[14]=(wt*vt-yt*Ct-At*bt)*Xt,te[15]=(gt*Ct-xt*vt+mt*bt)*Xt,te):null},mat4$2.adjoint=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15];return te[0]=dt*(mt*Lt-Dt*At)-xt*(Mt*Lt-ft*At)+wt*(Mt*Dt-ft*mt),te[1]=-(xe*(mt*Lt-Dt*At)-xt*(it*Lt-ut*At)+wt*(it*Dt-ut*mt)),te[2]=xe*(Mt*Lt-ft*At)-dt*(it*Lt-ut*At)+wt*(it*ft-ut*Mt),te[3]=-(xe*(Mt*Dt-ft*mt)-dt*(it*Dt-ut*mt)+xt*(it*ft-ut*Mt)),te[4]=-(ht*(mt*Lt-Dt*At)-gt*(Mt*Lt-ft*At)+yt*(Mt*Dt-ft*mt)),te[5]=ne*(mt*Lt-Dt*At)-gt*(it*Lt-ut*At)+yt*(it*Dt-ut*mt),te[6]=-(ne*(Mt*Lt-ft*At)-ht*(it*Lt-ut*At)+yt*(it*ft-ut*Mt)),te[7]=ne*(Mt*Dt-ft*mt)-ht*(it*Dt-ut*mt)+gt*(it*ft-ut*Mt),te[8]=ht*(xt*Lt-Dt*wt)-gt*(dt*Lt-ft*wt)+yt*(dt*Dt-ft*xt),te[9]=-(ne*(xt*Lt-Dt*wt)-gt*(xe*Lt-ut*wt)+yt*(xe*Dt-ut*xt)),te[10]=ne*(dt*Lt-ft*wt)-ht*(xe*Lt-ut*wt)+yt*(xe*ft-ut*dt),te[11]=-(ne*(dt*Dt-ft*xt)-ht*(xe*Dt-ut*xt)+gt*(xe*ft-ut*dt)),te[12]=-(ht*(xt*At-mt*wt)-gt*(dt*At-Mt*wt)+yt*(dt*mt-Mt*xt)),te[13]=ne*(xt*At-mt*wt)-gt*(xe*At-it*wt)+yt*(xe*mt-it*xt),te[14]=-(ne*(dt*At-Mt*wt)-ht*(xe*At-it*wt)+yt*(xe*Mt-it*dt)),te[15]=ne*(dt*mt-Mt*xt)-ht*(xe*mt-it*xt)+gt*(xe*Mt-it*dt),te},mat4$2.determinant=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3],ut=te[4],ht=te[5],dt=te[6],Mt=te[7],ft=te[8],gt=te[9],xt=te[10],mt=te[11],Dt=te[12],yt=te[13],wt=te[14],At=te[15],Lt=ee*ht-ne*ut,bt=ee*dt-xe*ut,vt=ee*Mt-it*ut,Qt=ne*dt-xe*ht,Ct=ne*Mt-it*ht,Ut=xe*Mt-it*dt,Rt=ft*yt-gt*Dt,Ft=ft*wt-xt*Dt,Gt=ft*At-mt*Dt,_t=gt*wt-xt*yt,kt=gt*At-mt*yt,Ot=xt*At-mt*wt;return Lt*Ot-bt*kt+vt*_t+Qt*Gt-Ct*Ft+Ut*Rt},mat4$2.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ee[9],Dt=ee[10],yt=ee[11],wt=ee[12],At=ee[13],Lt=ee[14],bt=ee[15],vt=ne[0],Qt=ne[1],Ct=ne[2],Ut=ne[3];return te[0]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[1]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[2]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[3]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[4],Qt=ne[5],Ct=ne[6],Ut=ne[7],te[4]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[5]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[6]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[7]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[8],Qt=ne[9],Ct=ne[10],Ut=ne[11],te[8]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[9]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[10]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[11]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[12],Qt=ne[13],Ct=ne[14],Ut=ne[15],te[12]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[13]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[14]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[15]=vt*ht+Qt*gt+Ct*yt+Ut*bt,te},mat4$2.multiplyAffine=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[12],Dt=ee[13],yt=ee[14],wt=ne[0],At=ne[1],Lt=ne[2];return te[0]=wt*xe+At*ht+Lt*ft,te[1]=wt*it+At*dt+Lt*gt,te[2]=wt*ut+At*Mt+Lt*xt,wt=ne[4],At=ne[5],Lt=ne[6],te[4]=wt*xe+At*ht+Lt*ft,te[5]=wt*it+At*dt+Lt*gt,te[6]=wt*ut+At*Mt+Lt*xt,wt=ne[8],At=ne[9],Lt=ne[10],te[8]=wt*xe+At*ht+Lt*ft,te[9]=wt*it+At*dt+Lt*gt,te[10]=wt*ut+At*Mt+Lt*xt,wt=ne[12],At=ne[13],Lt=ne[14],te[12]=wt*xe+At*ht+Lt*ft+mt,te[13]=wt*it+At*dt+Lt*gt+Dt,te[14]=wt*ut+At*Mt+Lt*xt+yt,te},mat4$2.mul=mat4$2.multiply,mat4$2.mulAffine=mat4$2.multiplyAffine,mat4$2.translate=function(te,ee,ne){var xe=ne[0],it=ne[1],ut=ne[2],ht,dt,Mt,ft,gt,xt,mt,Dt,yt,wt,At,Lt;return ee===te?(te[12]=ee[0]*xe+ee[4]*it+ee[8]*ut+ee[12],te[13]=ee[1]*xe+ee[5]*it+ee[9]*ut+ee[13],te[14]=ee[2]*xe+ee[6]*it+ee[10]*ut+ee[14],te[15]=ee[3]*xe+ee[7]*it+ee[11]*ut+ee[15]):(ht=ee[0],dt=ee[1],Mt=ee[2],ft=ee[3],gt=ee[4],xt=ee[5],mt=ee[6],Dt=ee[7],yt=ee[8],wt=ee[9],At=ee[10],Lt=ee[11],te[0]=ht,te[1]=dt,te[2]=Mt,te[3]=ft,te[4]=gt,te[5]=xt,te[6]=mt,te[7]=Dt,te[8]=yt,te[9]=wt,te[10]=At,te[11]=Lt,te[12]=ht*xe+gt*it+yt*ut+ee[12],te[13]=dt*xe+xt*it+wt*ut+ee[13],te[14]=Mt*xe+mt*it+At*ut+ee[14],te[15]=ft*xe+Dt*it+Lt*ut+ee[15]),te},mat4$2.scale=function(te,ee,ne){var xe=ne[0],it=ne[1],ut=ne[2];return te[0]=ee[0]*xe,te[1]=ee[1]*xe,te[2]=ee[2]*xe,te[3]=ee[3]*xe,te[4]=ee[4]*it,te[5]=ee[5]*it,te[6]=ee[6]*it,te[7]=ee[7]*it,te[8]=ee[8]*ut,te[9]=ee[9]*ut,te[10]=ee[10]*ut,te[11]=ee[11]*ut,te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15],te},mat4$2.rotate=function(te,ee,ne,xe){var it=xe[0],ut=xe[1],ht=xe[2],dt=Math.sqrt(it*it+ut*ut+ht*ht),Mt,ft,gt,xt,mt,Dt,yt,wt,At,Lt,bt,vt,Qt,Ct,Ut,Rt,Ft,Gt,_t,kt,Ot,zt,Xt,Zt;return Math.abs(dt)<GLMAT_EPSILON?null:(dt=1/dt,it*=dt,ut*=dt,ht*=dt,Mt=Math.sin(ne),ft=Math.cos(ne),gt=1-ft,xt=ee[0],mt=ee[1],Dt=ee[2],yt=ee[3],wt=ee[4],At=ee[5],Lt=ee[6],bt=ee[7],vt=ee[8],Qt=ee[9],Ct=ee[10],Ut=ee[11],Rt=it*it*gt+ft,Ft=ut*it*gt+ht*Mt,Gt=ht*it*gt-ut*Mt,_t=it*ut*gt-ht*Mt,kt=ut*ut*gt+ft,Ot=ht*ut*gt+it*Mt,zt=it*ht*gt+ut*Mt,Xt=ut*ht*gt-it*Mt,Zt=ht*ht*gt+ft,te[0]=xt*Rt+wt*Ft+vt*Gt,te[1]=mt*Rt+At*Ft+Qt*Gt,te[2]=Dt*Rt+Lt*Ft+Ct*Gt,te[3]=yt*Rt+bt*Ft+Ut*Gt,te[4]=xt*_t+wt*kt+vt*Ot,te[5]=mt*_t+At*kt+Qt*Ot,te[6]=Dt*_t+Lt*kt+Ct*Ot,te[7]=yt*_t+bt*kt+Ut*Ot,te[8]=xt*zt+wt*Xt+vt*Zt,te[9]=mt*zt+At*Xt+Qt*Zt,te[10]=Dt*zt+Lt*Xt+Ct*Zt,te[11]=yt*zt+bt*Xt+Ut*Zt,ee!==te&&(te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te)},mat4$2.rotateX=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[4],ht=ee[5],dt=ee[6],Mt=ee[7],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[11];return ee!==te&&(te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[4]=ut*it+ft*xe,te[5]=ht*it+gt*xe,te[6]=dt*it+xt*xe,te[7]=Mt*it+mt*xe,te[8]=ft*it-ut*xe,te[9]=gt*it-ht*xe,te[10]=xt*it-dt*xe,te[11]=mt*it-Mt*xe,te},mat4$2.rotateY=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[0],ht=ee[1],dt=ee[2],Mt=ee[3],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[11];return ee!==te&&(te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[0]=ut*it-ft*xe,te[1]=ht*it-gt*xe,te[2]=dt*it-xt*xe,te[3]=Mt*it-mt*xe,te[8]=ut*xe+ft*it,te[9]=ht*xe+gt*it,te[10]=dt*xe+xt*it,te[11]=Mt*xe+mt*it,te},mat4$2.rotateZ=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[0],ht=ee[1],dt=ee[2],Mt=ee[3],ft=ee[4],gt=ee[5],xt=ee[6],mt=ee[7];return ee!==te&&(te[8]=ee[8],te[9]=ee[9],te[10]=ee[10],te[11]=ee[11],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[0]=ut*it+ft*xe,te[1]=ht*it+gt*xe,te[2]=dt*it+xt*xe,te[3]=Mt*it+mt*xe,te[4]=ft*it-ut*xe,te[5]=gt*it-ht*xe,te[6]=xt*it-dt*xe,te[7]=mt*it-Mt*xe,te},mat4$2.fromRotationTranslation=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=xe+xe,Mt=it+it,ft=ut+ut,gt=xe*dt,xt=xe*Mt,mt=xe*ft,Dt=it*Mt,yt=it*ft,wt=ut*ft,At=ht*dt,Lt=ht*Mt,bt=ht*ft;return te[0]=1-(Dt+wt),te[1]=xt+bt,te[2]=mt-Lt,te[3]=0,te[4]=xt-bt,te[5]=1-(gt+wt),te[6]=yt+At,te[7]=0,te[8]=mt+Lt,te[9]=yt-At,te[10]=1-(gt+Dt),te[11]=0,te[12]=ne[0],te[13]=ne[1],te[14]=ne[2],te[15]=1,te},mat4$2.fromQuat=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne+ne,dt=xe+xe,Mt=it+it,ft=ne*ht,gt=xe*ht,xt=xe*dt,mt=it*ht,Dt=it*dt,yt=it*Mt,wt=ut*ht,At=ut*dt,Lt=ut*Mt;return te[0]=1-xt-yt,te[1]=gt+Lt,te[2]=mt-At,te[3]=0,te[4]=gt-Lt,te[5]=1-ft-yt,te[6]=Dt+wt,te[7]=0,te[8]=mt+At,te[9]=Dt-wt,te[10]=1-ft-xt,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.frustum=function(te,ee,ne,xe,it,ut,ht){var dt=1/(ne-ee),Mt=1/(it-xe),ft=1/(ut-ht);return te[0]=ut*2*dt,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=ut*2*Mt,te[6]=0,te[7]=0,te[8]=(ne+ee)*dt,te[9]=(it+xe)*Mt,te[10]=(ht+ut)*ft,te[11]=-1,te[12]=0,te[13]=0,te[14]=ht*ut*2*ft,te[15]=0,te},mat4$2.perspective=function(te,ee,ne,xe,it){var ut=1/Math.tan(ee/2),ht=1/(xe-it);return te[0]=ut/ne,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=ut,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=(it+xe)*ht,te[11]=-1,te[12]=0,te[13]=0,te[14]=2*it*xe*ht,te[15]=0,te},mat4$2.ortho=function(te,ee,ne,xe,it,ut,ht){var dt=1/(ee-ne),Mt=1/(xe-it),ft=1/(ut-ht);return te[0]=-2*dt,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=-2*Mt,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=2*ft,te[11]=0,te[12]=(ee+ne)*dt,te[13]=(it+xe)*Mt,te[14]=(ht+ut)*ft,te[15]=1,te},mat4$2.lookAt=function(te,ee,ne,xe){var it,ut,ht,dt,Mt,ft,gt,xt,mt,Dt,yt=ee[0],wt=ee[1],At=ee[2],Lt=xe[0],bt=xe[1],vt=xe[2],Qt=ne[0],Ct=ne[1],Ut=ne[2];return Math.abs(yt-Qt)<GLMAT_EPSILON&&Math.abs(wt-Ct)<GLMAT_EPSILON&&Math.abs(At-Ut)<GLMAT_EPSILON?mat4$2.identity(te):(gt=yt-Qt,xt=wt-Ct,mt=At-Ut,Dt=1/Math.sqrt(gt*gt+xt*xt+mt*mt),gt*=Dt,xt*=Dt,mt*=Dt,it=bt*mt-vt*xt,ut=vt*gt-Lt*mt,ht=Lt*xt-bt*gt,Dt=Math.sqrt(it*it+ut*ut+ht*ht),Dt?(Dt=1/Dt,it*=Dt,ut*=Dt,ht*=Dt):(it=0,ut=0,ht=0),dt=xt*ht-mt*ut,Mt=mt*it-gt*ht,ft=gt*ut-xt*it,Dt=Math.sqrt(dt*dt+Mt*Mt+ft*ft),Dt?(Dt=1/Dt,dt*=Dt,Mt*=Dt,ft*=Dt):(dt=0,Mt=0,ft=0),te[0]=it,te[1]=dt,te[2]=gt,te[3]=0,te[4]=ut,te[5]=Mt,te[6]=xt,te[7]=0,te[8]=ht,te[9]=ft,te[10]=mt,te[11]=0,te[12]=-(it*yt+ut*wt+ht*At),te[13]=-(dt*yt+Mt*wt+ft*At),te[14]=-(gt*yt+xt*wt+mt*At),te[15]=1,te)},mat4$2.frob=function(te){return Math.sqrt(Math.pow(te[0],2)+Math.pow(te[1],2)+Math.pow(te[2],2)+Math.pow(te[3],2)+Math.pow(te[4],2)+Math.pow(te[5],2)+Math.pow(te[6],2)+Math.pow(te[7],2)+Math.pow(te[8],2)+Math.pow(te[9],2)+Math.pow(te[10],2)+Math.pow(te[11],2)+Math.pow(te[12],2)+Math.pow(te[13],2)+Math.pow(te[14],2)+Math.pow(te[15],2))};var Matrix4$1=function(){this._axisX=new Vector3$1,this._axisY=new Vector3$1,this._axisZ=new Vector3$1,this.array=mat4$2.create(),this._dirty=!0};Matrix4$1.prototype={constructor:Matrix4$1,setArray:function(te){for(var ee=0;ee<this.array.length;ee++)this.array[ee]=te[ee];return this._dirty=!0,this},adjoint:function(){return mat4$2.adjoint(this.array,this.array),this._dirty=!0,this},clone:function(){return new Matrix4$1().copy(this)},copy:function(te){return mat4$2.copy(this.array,te.array),this._dirty=!0,this},determinant:function(){return mat4$2.determinant(this.array)},fromQuat:function(te){return mat4$2.fromQuat(this.array,te.array),this._dirty=!0,this},fromRotationTranslation:function(te,ee){return mat4$2.fromRotationTranslation(this.array,te.array,ee.array),this._dirty=!0,this},fromMat2d:function(te){return Matrix4$1.fromMat2d(this,te),this},frustum:function(te,ee,ne,xe,it,ut){return mat4$2.frustum(this.array,te,ee,ne,xe,it,ut),this._dirty=!0,this},identity:function(){return mat4$2.identity(this.array),this._dirty=!0,this},invert:function(){return mat4$2.invert(this.array,this.array),this._dirty=!0,this},lookAt:function(te,ee,ne){return mat4$2.lookAt(this.array,te.array,ee.array,ne.array),this._dirty=!0,this},mul:function(te){return mat4$2.mul(this.array,this.array,te.array),this._dirty=!0,this},mulLeft:function(te){return mat4$2.mul(this.array,te.array,this.array),this._dirty=!0,this},multiply:function(te){return mat4$2.multiply(this.array,this.array,te.array),this._dirty=!0,this},multiplyLeft:function(te){return mat4$2.multiply(this.array,te.array,this.array),this._dirty=!0,this},ortho:function(te,ee,ne,xe,it,ut){return mat4$2.ortho(this.array,te,ee,ne,xe,it,ut),this._dirty=!0,this},perspective:function(te,ee,ne,xe){return mat4$2.perspective(this.array,te,ee,ne,xe),this._dirty=!0,this},rotate:function(te,ee){return mat4$2.rotate(this.array,this.array,te,ee.array),this._dirty=!0,this},rotateX:function(te){return mat4$2.rotateX(this.array,this.array,te),this._dirty=!0,this},rotateY:function(te){return mat4$2.rotateY(this.array,this.array,te),this._dirty=!0,this},rotateZ:function(te){return mat4$2.rotateZ(this.array,this.array,te),this._dirty=!0,this},scale:function(te){return mat4$2.scale(this.array,this.array,te.array),this._dirty=!0,this},translate:function(te){return mat4$2.translate(this.array,this.array,te.array),this._dirty=!0,this},transpose:function(){return mat4$2.transpose(this.array,this.array),this._dirty=!0,this},decomposeMatrix:function(){var te=vec3$f.create(),ee=vec3$f.create(),ne=vec3$f.create(),xe=mat3$1.create();return function(it,ut,ht){var dt=this.array;vec3$f.set(te,dt[0],dt[1],dt[2]),vec3$f.set(ee,dt[4],dt[5],dt[6]),vec3$f.set(ne,dt[8],dt[9],dt[10]);var Mt=vec3$f.length(te),ft=vec3$f.length(ee),gt=vec3$f.length(ne),xt=this.determinant();xt<0&&(Mt=-Mt),it&&it.set(Mt,ft,gt),ht.set(dt[12],dt[13],dt[14]),mat3$1.fromMat4(xe,dt),xe[0]/=Mt,xe[1]/=Mt,xe[2]/=Mt,xe[3]/=ft,xe[4]/=ft,xe[5]/=ft,xe[6]/=gt,xe[7]/=gt,xe[8]/=gt,quat.fromMat3(ut.array,xe),quat.normalize(ut.array,ut.array),ut._dirty=!0,ht._dirty=!0}}(),toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$3=Object.defineProperty;if(defineProperty$3){var proto$2=Matrix4$1.prototype;defineProperty$3(proto$2,"z",{get:function(){var te=this.array;return this._axisZ.set(te[8],te[9],te[10]),this._axisZ},set:function(te){var ee=this.array;te=te.array,ee[8]=te[0],ee[9]=te[1],ee[10]=te[2],this._dirty=!0}}),defineProperty$3(proto$2,"y",{get:function(){var te=this.array;return this._axisY.set(te[4],te[5],te[6]),this._axisY},set:function(te){var ee=this.array;te=te.array,ee[4]=te[0],ee[5]=te[1],ee[6]=te[2],this._dirty=!0}}),defineProperty$3(proto$2,"x",{get:function(){var te=this.array;return this._axisX.set(te[0],te[1],te[2]),this._axisX},set:function(te){var ee=this.array;te=te.array,ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],this._dirty=!0}})}Matrix4$1.adjoint=function(te,ee){return mat4$2.adjoint(te.array,ee.array),te._dirty=!0,te},Matrix4$1.copy=function(te,ee){return mat4$2.copy(te.array,ee.array),te._dirty=!0,te},Matrix4$1.determinant=function(te){return mat4$2.determinant(te.array)},Matrix4$1.identity=function(te){return mat4$2.identity(te.array),te._dirty=!0,te},Matrix4$1.ortho=function(te,ee,ne,xe,it,ut,ht){return mat4$2.ortho(te.array,ee,ne,xe,it,ut,ht),te._dirty=!0,te},Matrix4$1.perspective=function(te,ee,ne,xe,it){return mat4$2.perspective(te.array,ee,ne,xe,it),te._dirty=!0,te},Matrix4$1.lookAt=function(te,ee,ne,xe){return mat4$2.lookAt(te.array,ee.array,ne.array,xe.array),te._dirty=!0,te},Matrix4$1.invert=function(te,ee){return mat4$2.invert(te.array,ee.array),te._dirty=!0,te},Matrix4$1.mul=function(te,ee,ne){return mat4$2.mul(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.multiply=Matrix4$1.mul,Matrix4$1.fromQuat=function(te,ee){return mat4$2.fromQuat(te.array,ee.array),te._dirty=!0,te},Matrix4$1.fromRotationTranslation=function(te,ee,ne){return mat4$2.fromRotationTranslation(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.fromMat2d=function(xe,ne){xe._dirty=!0;var ne=ne.array,xe=xe.array;return xe[0]=ne[0],xe[4]=ne[2],xe[12]=ne[4],xe[1]=ne[1],xe[5]=ne[3],xe[13]=ne[5],xe},Matrix4$1.rotate=function(te,ee,ne,xe){return mat4$2.rotate(te.array,ee.array,ne,xe.array),te._dirty=!0,te},Matrix4$1.rotateX=function(te,ee,ne){return mat4$2.rotateX(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.rotateY=function(te,ee,ne){return mat4$2.rotateY(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.rotateZ=function(te,ee,ne){return mat4$2.rotateZ(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.scale=function(te,ee,ne){return mat4$2.scale(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.transpose=function(te,ee){return mat4$2.transpose(te.array,ee.array),te._dirty=!0,te},Matrix4$1.translate=function(te,ee,ne){return mat4$2.translate(te.array,ee.array,ne.array),te._dirty=!0,te};var vec3Set$2=vec3$f.set,vec3Copy$1=vec3$f.copy,BoundingBox=function(te,ee){this.min=te||new Vector3$1(1/0,1/0,1/0),this.max=ee||new Vector3$1(-1/0,-1/0,-1/0),this.vertices=null};BoundingBox.prototype={constructor:BoundingBox,updateFromVertices:function(te){if(te.length>0){var ee=this.min,ne=this.max,xe=ee.array,it=ne.array;vec3Copy$1(xe,te[0]),vec3Copy$1(it,te[0]);for(var ut=1;ut<te.length;ut++){var ht=te[ut];ht[0]<xe[0]&&(xe[0]=ht[0]),ht[1]<xe[1]&&(xe[1]=ht[1]),ht[2]<xe[2]&&(xe[2]=ht[2]),ht[0]>it[0]&&(it[0]=ht[0]),ht[1]>it[1]&&(it[1]=ht[1]),ht[2]>it[2]&&(it[2]=ht[2])}ee._dirty=!0,ne._dirty=!0}},union:function(te){var ee=this.min,ne=this.max;return vec3$f.min(ee.array,ee.array,te.min.array),vec3$f.max(ne.array,ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},intersection:function(te){var ee=this.min,ne=this.max;return vec3$f.max(ee.array,ee.array,te.min.array),vec3$f.min(ne.array,ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},intersectBoundingBox:function(te){var ee=this.min.array,ne=this.max.array,xe=te.min.array,it=te.max.array;return!(ee[0]>it[0]||ee[1]>it[1]||ee[2]>it[2]||ne[0]<xe[0]||ne[1]<xe[1]||ne[2]<xe[2])},containBoundingBox:function(te){var ee=this.min.array,ne=this.max.array,xe=te.min.array,it=te.max.array;return ee[0]<=xe[0]&&ee[1]<=xe[1]&&ee[2]<=xe[2]&&ne[0]>=it[0]&&ne[1]>=it[1]&&ne[2]>=it[2]},containPoint:function(te){var ee=this.min.array,ne=this.max.array,xe=te.array;return ee[0]<=xe[0]&&ee[1]<=xe[1]&&ee[2]<=xe[2]&&ne[0]>=xe[0]&&ne[1]>=xe[1]&&ne[2]>=xe[2]},isFinite:function(){var te=this.min.array,ee=this.max.array;return isFinite(te[0])&&isFinite(te[1])&&isFinite(te[2])&&isFinite(ee[0])&&isFinite(ee[1])&&isFinite(ee[2])},applyTransform:function(te){this.transformFrom(this,te)},transformFrom:function(){var te=vec3$f.create(),ee=vec3$f.create(),ne=vec3$f.create(),xe=vec3$f.create(),it=vec3$f.create(),ut=vec3$f.create();return function(ht,dt){var Mt=ht.min.array,ft=ht.max.array,gt=dt.array;return te[0]=gt[0]*Mt[0],te[1]=gt[1]*Mt[0],te[2]=gt[2]*Mt[0],ee[0]=gt[0]*ft[0],ee[1]=gt[1]*ft[0],ee[2]=gt[2]*ft[0],ne[0]=gt[4]*Mt[1],ne[1]=gt[5]*Mt[1],ne[2]=gt[6]*Mt[1],xe[0]=gt[4]*ft[1],xe[1]=gt[5]*ft[1],xe[2]=gt[6]*ft[1],it[0]=gt[8]*Mt[2],it[1]=gt[9]*Mt[2],it[2]=gt[10]*Mt[2],ut[0]=gt[8]*ft[2],ut[1]=gt[9]*ft[2],ut[2]=gt[10]*ft[2],Mt=this.min.array,ft=this.max.array,Mt[0]=Math.min(te[0],ee[0])+Math.min(ne[0],xe[0])+Math.min(it[0],ut[0])+gt[12],Mt[1]=Math.min(te[1],ee[1])+Math.min(ne[1],xe[1])+Math.min(it[1],ut[1])+gt[13],Mt[2]=Math.min(te[2],ee[2])+Math.min(ne[2],xe[2])+Math.min(it[2],ut[2])+gt[14],ft[0]=Math.max(te[0],ee[0])+Math.max(ne[0],xe[0])+Math.max(it[0],ut[0])+gt[12],ft[1]=Math.max(te[1],ee[1])+Math.max(ne[1],xe[1])+Math.max(it[1],ut[1])+gt[13],ft[2]=Math.max(te[2],ee[2])+Math.max(ne[2],xe[2])+Math.max(it[2],ut[2])+gt[14],this.min._dirty=!0,this.max._dirty=!0,this}}(),applyProjection:function(te){var ee=this.min.array,ne=this.max.array,xe=te.array,it=ee[0],ut=ee[1],ht=ee[2],dt=ne[0],Mt=ne[1],ft=ee[2],gt=ne[0],xt=ne[1],mt=ne[2];if(xe[15]===1)ee[0]=xe[0]*it+xe[12],ee[1]=xe[5]*ut+xe[13],ne[2]=xe[10]*ht+xe[14],ne[0]=xe[0]*gt+xe[12],ne[1]=xe[5]*xt+xe[13],ee[2]=xe[10]*mt+xe[14];else{var Dt=-1/ht;ee[0]=xe[0]*it*Dt,ee[1]=xe[5]*ut*Dt,ne[2]=(xe[10]*ht+xe[14])*Dt,Dt=-1/ft,ne[0]=xe[0]*dt*Dt,ne[1]=xe[5]*Mt*Dt,Dt=-1/mt,ee[2]=(xe[10]*mt+xe[14])*Dt}return this.min._dirty=!0,this.max._dirty=!0,this},updateVertices:function(){var te=this.vertices;if(!te){te=[];for(var ee=0;ee<8;ee++)te[ee]=vec3$f.fromValues(0,0,0);this.vertices=te}var ne=this.min.array,xe=this.max.array;return vec3Set$2(te[0],ne[0],ne[1],ne[2]),vec3Set$2(te[1],ne[0],xe[1],ne[2]),vec3Set$2(te[2],xe[0],ne[1],ne[2]),vec3Set$2(te[3],xe[0],xe[1],ne[2]),vec3Set$2(te[4],ne[0],ne[1],xe[2]),vec3Set$2(te[5],ne[0],xe[1],xe[2]),vec3Set$2(te[6],xe[0],ne[1],xe[2]),vec3Set$2(te[7],xe[0],xe[1],xe[2]),this},copy:function(te){var ee=this.min,ne=this.max;return vec3Copy$1(ee.array,te.min.array),vec3Copy$1(ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},clone:function(){var te=new BoundingBox;return te.copy(this),te}};var nameId=0,Node$2=Base.extend({name:"",position:null,rotation:null,scale:null,worldTransform:null,localTransform:null,autoUpdateLocalTransform:!0,_parent:null,_scene:null,_needsUpdateWorldTransform:!0,_inIterating:!1,__depth:0},function(){this.name||(this.name=(this.type||"NODE")+"_"+nameId++),this.position||(this.position=new Vector3$1),this.rotation||(this.rotation=new Quaternion$1),this.scale||(this.scale=new Vector3$1(1,1,1)),this.worldTransform=new Matrix4$1,this.localTransform=new Matrix4$1,this._children=[]},{target:null,invisible:!1,isSkinnedMesh:function(){return!1},isRenderable:function(){return!1},setName:function(te){var ee=this._scene;if(ee){var ne=ee._nodeRepository;delete ne[this.name],ne[te]=this}this.name=te},add:function(te){var ee=te._parent;if(ee!==this){ee&&ee.remove(te),te._parent=this,this._children.push(te);var ne=this._scene;ne&&ne!==te.scene&&te.traverse(this._addSelfToScene,this),te._needsUpdateWorldTransform=!0}},remove:function(te){var ee=this._children,ne=ee.indexOf(te);ne<0||(ee.splice(ne,1),te._parent=null,this._scene&&te.traverse(this._removeSelfFromScene,this))},removeAll:function(){for(var te=this._children,ee=0;ee<te.length;ee++)te[ee]._parent=null,this._scene&&te[ee].traverse(this._removeSelfFromScene,this);this._children=[]},getScene:function(){return this._scene},getParent:function(){return this._parent},_removeSelfFromScene:function(te){te._scene.removeFromScene(te),te._scene=null},_addSelfToScene:function(te){this._scene.addToScene(te),te._scene=this._scene},isAncestor:function(te){for(var ee=te._parent;ee;){if(ee===this)return!0;ee=ee._parent}return!1},children:function(){return this._children.slice()},childAt:function(te){return this._children[te]},getChildByName:function(te){for(var ee=this._children,ne=0;ne<ee.length;ne++)if(ee[ne].name===te)return ee[ne]},getDescendantByName:function(te){for(var ee=this._children,ne=0;ne<ee.length;ne++){var xe=ee[ne];if(xe.name===te)return xe;var it=xe.getDescendantByName(te);if(it)return it}},queryNode:function(te){if(te){for(var ee=te.split("/"),ne=this,xe=0;xe<ee.length;xe++){var it=ee[xe];if(it){for(var ut=!1,ht=ne._children,dt=0;dt<ht.length;dt++){var Mt=ht[dt];if(Mt.name===it){ne=Mt,ut=!0;break}}if(!ut)return}}return ne}},getPath:function(te){if(!this._parent)return"/";for(var ee=this._parent,ne=this.name;ee._parent&&(ne=ee.name+"/"+ne,ee._parent!=te);)ee=ee._parent;return!ee._parent&&te?null:ne},traverse:function(te,ee){te.call(ee,this);for(var ne=this._children,xe=0,it=ne.length;xe<it;xe++)ne[xe].traverse(te,ee)},eachChild:function(te,ee){for(var ne=this._children,xe=0,it=ne.length;xe<it;xe++){var ut=ne[xe];te.call(ee,ut,xe)}},setLocalTransform:function(te){mat4$2.copy(this.localTransform.array,te.array),this.decomposeLocalTransform()},decomposeLocalTransform:function(te){var ee=te?null:this.scale;this.localTransform.decomposeMatrix(ee,this.rotation,this.position)},setWorldTransform:function(te){mat4$2.copy(this.worldTransform.array,te.array),this.decomposeWorldTransform()},decomposeWorldTransform:function(){var te=mat4$2.create();return function(ee){var ne=this.localTransform,xe=this.worldTransform;this._parent?(mat4$2.invert(te,this._parent.worldTransform.array),mat4$2.multiply(ne.array,te,xe.array)):mat4$2.copy(ne.array,xe.array);var it=ee?null:this.scale;ne.decomposeMatrix(it,this.rotation,this.position)}}(),transformNeedsUpdate:function(){return this.position._dirty||this.rotation._dirty||this.scale._dirty},updateLocalTransform:function(){var te=this.position,ee=this.rotation,ne=this.scale;if(this.transformNeedsUpdate()){var xe=this.localTransform.array;mat4$2.fromRotationTranslation(xe,ee.array,te.array),mat4$2.scale(xe,xe,ne.array),ee._dirty=!1,ne._dirty=!1,te._dirty=!1,this._needsUpdateWorldTransform=!0}},_updateWorldTransformTopDown:function(){var te=this.localTransform.array,ee=this.worldTransform.array;this._parent?mat4$2.multiplyAffine(ee,this._parent.worldTransform.array,te):mat4$2.copy(ee,te)},updateWorldTransform:function(){for(var te=this;te&&te.getParent()&&te.getParent().transformNeedsUpdate();)te=te.getParent();te.update()},update:function(te){this.autoUpdateLocalTransform?this.updateLocalTransform():te=!0,(te||this._needsUpdateWorldTransform)&&(this._updateWorldTransformTopDown(),te=!0,this._needsUpdateWorldTransform=!1);for(var ee=this._children,ne=0,xe=ee.length;ne<xe;ne++)ee[ne].update(te)},getBoundingBox:function(){function te(it){return!it.invisible&&it.geometry}var ee=new BoundingBox,ne=new Matrix4$1,xe=new Matrix4$1;return function(it,ut){return ut=ut||new BoundingBox,this._parent?Matrix4$1.invert(xe,this._parent.worldTransform):Matrix4$1.identity(xe),this.traverse(function(ht){ht.geometry&&ht.geometry.boundingBox&&(ee.copy(ht.geometry.boundingBox),Matrix4$1.multiply(ne,xe,ht.worldTransform),ee.applyTransform(ne),ut.union(ee))},this,te),ut}}(),getWorldPosition:function(te){this.transformNeedsUpdate()&&this.updateWorldTransform();var ee=this.worldTransform.array;if(te){var ne=te.array;return ne[0]=ee[12],ne[1]=ee[13],ne[2]=ee[14],te}else return new Vector3$1(ee[12],ee[13],ee[14])},clone:function(){var te=new this.constructor,ee=this._children;te.setName(this.name),te.position.copy(this.position),te.rotation.copy(this.rotation),te.scale.copy(this.scale);for(var ne=0;ne<ee.length;ne++)te.add(ee[ne].clone());return te},rotateAround:function(){var te=new Vector3$1,ee=new Matrix4$1;return function(ne,xe,it){te.copy(this.position).subtract(ne);var ut=this.localTransform;ut.identity(),ut.translate(ne),ut.rotate(it,xe),ee.fromRotationTranslation(this.rotation,te),ut.multiply(ee),ut.scale(this.scale),this.decomposeLocalTransform(),this._needsUpdateWorldTransform=!0}}(),lookAt:function(){var te=new Matrix4$1;return function(ee,ne){te.lookAt(this.position,ee,ne||this.localTransform.y).invert(),this.setLocalTransform(te),this.target=ee}}()});const glenum={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CW:2304,CCW:2305,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_2D:3553,TEXTURE_CUBE_MAP:34067,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FRAMEBUFFER:36160,RENDERBUFFER:36161,DEPTH_STENCIL:34041,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306};var Renderable=Node$2.extend({material:null,geometry:null,mode:glenum.TRIANGLES,_renderInfo:null},{__program:null,lightGroup:0,renderOrder:0,culling:!0,cullFace:glenum.BACK,frontFace:glenum.CCW,frustumCulling:!0,receiveShadow:!0,castShadow:!0,ignorePicking:!1,ignorePreZ:!1,ignoreGBuffer:!1,isRenderable:function(){return this.geometry&&this.material&&this.material.shader&&!this.invisible&&this.geometry.vertexCount>0},beforeRender:function(te){},afterRender:function(te,ee){},getBoundingBox:function(te,ee){return ee=Node$2.prototype.getBoundingBox.call(this,te,ee),this.geometry&&this.geometry.boundingBox&&ee.union(this.geometry.boundingBox),ee},clone:function(){var te=["castShadow","receiveShadow","mode","culling","cullFace","frontFace","frustumCulling","renderOrder","lineWidth","ignorePicking","ignorePreZ","ignoreGBuffer"];return function(){var ee=Node$2.prototype.clone.call(this);ee.geometry=this.geometry,ee.material=this.material;for(var ne=0;ne<te.length;ne++){var xe=te[ne];ee[xe]!==this[xe]&&(ee[xe]=this[xe])}return ee}}()});Renderable.POINTS=glenum.POINTS,Renderable.LINES=glenum.LINES,Renderable.LINE_LOOP=glenum.LINE_LOOP,Renderable.LINE_STRIP=glenum.LINE_STRIP,Renderable.TRIANGLES=glenum.TRIANGLES,Renderable.TRIANGLE_STRIP=glenum.TRIANGLE_STRIP,Renderable.TRIANGLE_FAN=glenum.TRIANGLE_FAN,Renderable.BACK=glenum.BACK,Renderable.FRONT=glenum.FRONT,Renderable.FRONT_AND_BACK=glenum.FRONT_AND_BACK,Renderable.CW=glenum.CW,Renderable.CCW=glenum.CCW;var Mesh$1=Renderable.extend({skeleton:null,joints:null},function(){this.joints||(this.joints=[])},{offsetMatrix:null,isInstancedMesh:function(){return!1},isSkinnedMesh:function(){return!!(this.skeleton&&this.joints&&this.joints.length>0)},clone:function(){var te=Renderable.prototype.clone.call(this);return te.skeleton=this.skeleton,this.joints&&(te.joints=this.joints.slice()),te}});Mesh$1.POINTS=glenum.POINTS,Mesh$1.LINES=glenum.LINES,Mesh$1.LINE_LOOP=glenum.LINE_LOOP,Mesh$1.LINE_STRIP=glenum.LINE_STRIP,Mesh$1.TRIANGLES=glenum.TRIANGLES,Mesh$1.TRIANGLE_STRIP=glenum.TRIANGLE_STRIP,Mesh$1.TRIANGLE_FAN=glenum.TRIANGLE_FAN,Mesh$1.BACK=glenum.BACK,Mesh$1.FRONT=glenum.FRONT,Mesh$1.FRONT_AND_BACK=glenum.FRONT_AND_BACK,Mesh$1.CW=glenum.CW,Mesh$1.CCW=glenum.CCW;var EXTENSION_LIST=["OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","OES_standard_derivatives","OES_vertex_array_object","OES_element_index_uint","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","EXT_texture_filter_anisotropic","EXT_shader_texture_lod","WEBGL_draw_buffers","EXT_frag_depth","EXT_sRGB","ANGLE_instanced_arrays"],PARAMETER_NAMES=["MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE"];function GLInfo(te){for(var ee={},ne={},xe=0;xe<EXTENSION_LIST.length;xe++){var it=EXTENSION_LIST[xe];ht(it)}for(var xe=0;xe<PARAMETER_NAMES.length;xe++){var ut=PARAMETER_NAMES[xe];ne[ut]=te.getParameter(te[ut])}this.getExtension=function(dt){return dt in ee||ht(dt),ee[dt]},this.getParameter=function(dt){return ne[dt]};function ht(dt){if(te.getExtension){var Mt=te.getExtension(dt);Mt||(Mt=te.getExtension("MOZ_"+dt)),Mt||(Mt=te.getExtension("WEBKIT_"+dt)),ee[dt]=Mt}}}function get$5(te){var ee=new XMLHttpRequest;ee.open("get",te.url),ee.responseType=te.responseType||"text",te.onprogress&&(ee.onprogress=function(ne){if(ne.lengthComputable){var xe=ne.loaded/ne.total;te.onprogress(xe,ne.loaded,ne.total)}else te.onprogress(null)}),ee.onload=function(ne){ee.status>=400?te.onerror&&te.onerror():te.onload&&te.onload(ee.response)},te.onerror&&(ee.onerror=te.onerror),ee.send(null)}const request={get:get$5};var supportWebGL,vendor={};vendor.supportWebGL=function(){if(supportWebGL==null)try{var te=document.createElement("canvas"),ee=te.getContext("webgl")||te.getContext("experimental-webgl");if(!ee)throw new Error}catch{supportWebGL=!1}return supportWebGL},vendor.Int8Array=typeof Int8Array>"u"?Array:Int8Array,vendor.Uint8Array=typeof Uint8Array>"u"?Array:Uint8Array,vendor.Uint16Array=typeof Uint16Array>"u"?Array:Uint16Array,vendor.Uint32Array=typeof Uint32Array>"u"?Array:Uint32Array,vendor.Int16Array=typeof Int16Array>"u"?Array:Int16Array,vendor.Float32Array=typeof Float32Array>"u"?Array:Float32Array,vendor.Float64Array=typeof Float64Array>"u"?Array:Float64Array;var g$1={};typeof window<"u"?g$1=window:typeof globalThis<"u"&&(g$1=globalThis),vendor.requestAnimationFrame=g$1.requestAnimationFrame||g$1.msRequestAnimationFrame||g$1.mozRequestAnimationFrame||g$1.webkitRequestAnimationFrame||function(te){setTimeout(te,16)},vendor.createCanvas=function(){return document.createElement("canvas")},vendor.createImage=function(){return new g$1.Image},vendor.request={get:request.get},vendor.addEventListener=function(te,ee,ne,xe){te.addEventListener(ee,ne,xe)},vendor.removeEventListener=function(te,ee,ne){te.removeEventListener(ee,ne)};var LinkedList=function(){this.head=null,this.tail=null,this._length=0};LinkedList.prototype.insert=function(te){var ee=new LinkedList.Entry(te);return this.insertEntry(ee),ee},LinkedList.prototype.insertAt=function(te,ee){if(!(te<0)){for(var ne=this.head,xe=0;ne&&xe!=te;)ne=ne.next,xe++;if(ne){var it=new LinkedList.Entry(ee),ut=ne.prev;ut?(ut.next=it,it.prev=ut):this.head=it,it.next=ne,ne.prev=it}else this.insert(ee)}},LinkedList.prototype.insertBeforeEntry=function(te,ee){var ne=new LinkedList.Entry(te),xe=ee.prev;xe?(xe.next=ne,ne.prev=xe):this.head=ne,ne.next=ee,ee.prev=ne,this._length++},LinkedList.prototype.insertEntry=function(te){this.head?(this.tail.next=te,te.prev=this.tail,this.tail=te):this.head=this.tail=te,this._length++},LinkedList.prototype.remove=function(te){var ee=te.prev,ne=te.next;ee?ee.next=ne:this.head=ne,ne?ne.prev=ee:this.tail=ee,te.next=te.prev=null,this._length--},LinkedList.prototype.removeAt=function(te){if(!(te<0)){for(var ee=this.head,ne=0;ee&&ne!=te;)ee=ee.next,ne++;if(ee)return this.remove(ee),ee.value}},LinkedList.prototype.getHead=function(){if(this.head)return this.head.value},LinkedList.prototype.getTail=function(){if(this.tail)return this.tail.value},LinkedList.prototype.getAt=function(te){if(!(te<0)){for(var ee=this.head,ne=0;ee&&ne!=te;)ee=ee.next,ne++;return ee.value}},LinkedList.prototype.indexOf=function(te){for(var ee=this.head,ne=0;ee;){if(ee.value===te)return ne;ee=ee.next,ne++}},LinkedList.prototype.length=function(){return this._length},LinkedList.prototype.isEmpty=function(){return this._length===0},LinkedList.prototype.forEach=function(te,ee){for(var ne=this.head,xe=0,it=typeof ee<"u";ne;)it?te.call(ee,ne.value,xe):te(ne.value,xe),ne=ne.next,xe++},LinkedList.prototype.clear=function(){this.tail=this.head=null,this._length=0},LinkedList.Entry=function(te){this.value=te,this.next=null,this.prev=null};var LRU=function(te){this._list=new LinkedList,this._map={},this._maxSize=te||10};LRU.prototype.setMaxSize=function(te){this._maxSize=te},LRU.prototype.put=function(te,ee){if(!this._map.hasOwnProperty(te)){var ne=this._list.length();if(ne>=this._maxSize&&ne>0){var xe=this._list.head;this._list.remove(xe),delete this._map[xe.key]}var it=this._list.insert(ee);it.key=te,this._map[te]=it}},LRU.prototype.get=function(te){var ee=this._map[te];if(this._map.hasOwnProperty(te))return ee!==this._list.tail&&(this._list.remove(ee),this._list.insertEntry(ee)),ee.value},LRU.prototype.remove=function(te){var ee=this._map[te];typeof ee<"u"&&(delete this._map[te],this._list.remove(ee))},LRU.prototype.clear=function(){this._list.clear(),this._map={}};var colorUtil={},kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function clampCssByte(te){return te=Math.round(te),te<0?0:te>255?255:te}function clampCssAngle(te){return te=Math.round(te),te<0?0:te>360?360:te}function clampCssFloat(te){return te<0?0:te>1?1:te}function parseCssInt(te){return te.length&&te.charAt(te.length-1)==="%"?clampCssByte(parseFloat(te)/100*255):clampCssByte(parseInt(te,10))}function parseCssFloat(te){return te.length&&te.charAt(te.length-1)==="%"?clampCssFloat(parseFloat(te)/100):clampCssFloat(parseFloat(te))}function cssHueToRgb(te,ee,ne){return ne<0?ne+=1:ne>1&&(ne-=1),ne*6<1?te+(ee-te)*ne*6:ne*2<1?ee:ne*3<2?te+(ee-te)*(2/3-ne)*6:te}function lerpNumber(te,ee,ne){return te+(ee-te)*ne}function setRgba(te,ee,ne,xe,it){return te[0]=ee,te[1]=ne,te[2]=xe,te[3]=it,te}function copyRgba(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te}var colorCache=new LRU(20),lastRemovedArr=null;function putToCache(te,ee){lastRemovedArr&©Rgba(lastRemovedArr,ee),lastRemovedArr=colorCache.put(te,lastRemovedArr||ee.slice())}colorUtil.parse=function(te,ee){if(te){ee=ee||[];var ne=colorCache.get(te);if(ne)return copyRgba(ee,ne);te=te+"";var xe=te.replace(/ /g,"").toLowerCase();if(xe in kCSSColorTable)return copyRgba(ee,kCSSColorTable[xe]),putToCache(te,ee),ee;if(xe.charAt(0)==="#"){if(xe.length===4){var it=parseInt(xe.substr(1),16);if(!(it>=0&&it<=4095)){setRgba(ee,0,0,0,1);return}return setRgba(ee,(it&3840)>>4|(it&3840)>>8,it&240|(it&240)>>4,it&15|(it&15)<<4,1),putToCache(te,ee),ee}else if(xe.length===7){var it=parseInt(xe.substr(1),16);if(!(it>=0&&it<=16777215)){setRgba(ee,0,0,0,1);return}return setRgba(ee,(it&16711680)>>16,(it&65280)>>8,it&255,1),putToCache(te,ee),ee}return}var ut=xe.indexOf("("),ht=xe.indexOf(")");if(ut!==-1&&ht+1===xe.length){var dt=xe.substr(0,ut),Mt=xe.substr(ut+1,ht-(ut+1)).split(","),ft=1;switch(dt){case"rgba":if(Mt.length!==4){setRgba(ee,0,0,0,1);return}ft=parseCssFloat(Mt.pop());case"rgb":if(Mt.length!==3){setRgba(ee,0,0,0,1);return}return setRgba(ee,parseCssInt(Mt[0]),parseCssInt(Mt[1]),parseCssInt(Mt[2]),ft),putToCache(te,ee),ee;case"hsla":if(Mt.length!==4){setRgba(ee,0,0,0,1);return}return Mt[3]=parseCssFloat(Mt[3]),hsla2rgba(Mt,ee),putToCache(te,ee),ee;case"hsl":if(Mt.length!==3){setRgba(ee,0,0,0,1);return}return hsla2rgba(Mt,ee),putToCache(te,ee),ee;default:return}}setRgba(ee,0,0,0,1)}},colorUtil.parseToFloat=function(te,ee){if(ee=colorUtil.parse(te,ee),!!ee)return ee[0]/=255,ee[1]/=255,ee[2]/=255,ee};function hsla2rgba(te,ee){var ne=(parseFloat(te[0])%360+360)%360/360,xe=parseCssFloat(te[1]),it=parseCssFloat(te[2]),ut=it<=.5?it*(xe+1):it+xe-it*xe,ht=it*2-ut;return ee=ee||[],setRgba(ee,clampCssByte(cssHueToRgb(ht,ut,ne+1/3)*255),clampCssByte(cssHueToRgb(ht,ut,ne)*255),clampCssByte(cssHueToRgb(ht,ut,ne-1/3)*255),1),te.length===4&&(ee[3]=te[3]),ee}function rgba2hsla(te){if(te){var ee=te[0]/255,ne=te[1]/255,xe=te[2]/255,it=Math.min(ee,ne,xe),ut=Math.max(ee,ne,xe),ht=ut-it,dt=(ut+it)/2,Mt,ft;if(ht===0)Mt=0,ft=0;else{dt<.5?ft=ht/(ut+it):ft=ht/(2-ut-it);var gt=((ut-ee)/6+ht/2)/ht,xt=((ut-ne)/6+ht/2)/ht,mt=((ut-xe)/6+ht/2)/ht;ee===ut?Mt=mt-xt:ne===ut?Mt=1/3+gt-mt:xe===ut&&(Mt=2/3+xt-gt),Mt<0&&(Mt+=1),Mt>1&&(Mt-=1)}var Dt=[Mt*360,ft,dt];return te[3]!=null&&Dt.push(te[3]),Dt}}colorUtil.lift=function(te,ee){var ne=colorUtil.parse(te);if(ne){for(var xe=0;xe<3;xe++)ee<0?ne[xe]=ne[xe]*(1-ee)|0:ne[xe]=(255-ne[xe])*ee+ne[xe]|0;return colorUtil.stringify(ne,ne.length===4?"rgba":"rgb")}},colorUtil.toHex=function(te){var ee=colorUtil.parse(te);if(ee)return((1<<24)+(ee[0]<<16)+(ee[1]<<8)+ +ee[2]).toString(16).slice(1)},colorUtil.fastLerp=function(te,ee,ne){if(!(!(ee&&ee.length)||!(te>=0&&te<=1))){ne=ne||[];var xe=te*(ee.length-1),it=Math.floor(xe),ut=Math.ceil(xe),ht=ee[it],dt=ee[ut],Mt=xe-it;return ne[0]=clampCssByte(lerpNumber(ht[0],dt[0],Mt)),ne[1]=clampCssByte(lerpNumber(ht[1],dt[1],Mt)),ne[2]=clampCssByte(lerpNumber(ht[2],dt[2],Mt)),ne[3]=clampCssFloat(lerpNumber(ht[3],dt[3],Mt)),ne}},colorUtil.fastMapToColor=colorUtil.fastLerp,colorUtil.lerp=function(te,ee,ne){if(!(!(ee&&ee.length)||!(te>=0&&te<=1))){var xe=te*(ee.length-1),it=Math.floor(xe),ut=Math.ceil(xe),ht=colorUtil.parse(ee[it]),dt=colorUtil.parse(ee[ut]),Mt=xe-it,ft=colorUtil.stringify([clampCssByte(lerpNumber(ht[0],dt[0],Mt)),clampCssByte(lerpNumber(ht[1],dt[1],Mt)),clampCssByte(lerpNumber(ht[2],dt[2],Mt)),clampCssFloat(lerpNumber(ht[3],dt[3],Mt))],"rgba");return ne?{color:ft,leftIndex:it,rightIndex:ut,value:xe}:ft}},colorUtil.mapToColor=colorUtil.lerp,colorUtil.modifyHSL=function(te,ee,ne,xe){if(te=colorUtil.parse(te),te)return te=rgba2hsla(te),ee!=null&&(te[0]=clampCssAngle(ee)),ne!=null&&(te[1]=parseCssFloat(ne)),xe!=null&&(te[2]=parseCssFloat(xe)),colorUtil.stringify(hsla2rgba(te),"rgba")},colorUtil.modifyAlpha=function(te,ee){if(te=colorUtil.parse(te),te&&ee!=null)return te[3]=clampCssFloat(ee),colorUtil.stringify(te,"rgba")},colorUtil.stringify=function(te,ee){if(!(!te||!te.length)){var ne=te[0]+","+te[1]+","+te[2];return(ee==="rgba"||ee==="hsva"||ee==="hsla")&&(ne+=","+te[3]),ee+"("+ne+")"}};var parseColor=colorUtil.parseToFloat,programKeyCache$1={};function getDefineCode$1(te){var ee=Object.keys(te);ee.sort();for(var ne=[],xe=0;xe<ee.length;xe++){var it=ee[xe],ut=te[it];ut===null?ne.push(it):ne.push(it+" "+ut.toString())}return ne.join(`
|
|
735
|
+
Not supported in this version — explain these in markdown instead: boolean operations (holes, cuts), curved surface modelling, textures, animation, physics, lighting setup. For solid-geometry questions (sections of a cube and the like) use a solid block, not a scene.`,PROMPT={en:{spec:EN},"zh-CN":{spec:ZH}},escapeHtml=te=>te.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function loading$1(){return{kind:"html",html:'<div data-aigui-scene-loading aria-label="Loading scene"></div>'}}function failedHtml(te){return`<div data-aigui-scene-error role="img" aria-label="${escapeHtml(te)}">${escapeHtml(te)}</div>`}function failed(te){return{kind:"html",html:failedHtml(te),trusted:!0}}const sceneCss=["[data-aigui-scene]{max-width:100%;margin-block:0.75rem}","[data-aigui-scene] canvas{display:block;max-width:100%;touch-action:none;cursor:grab}","[data-aigui-scene] canvas:active{cursor:grabbing}","[data-aigui-scene-caption]{margin-top:0.35rem;font-size:0.875rem;opacity:0.75;text-align:center}","[data-aigui-scene-loading]{min-height:6rem;border-radius:0.5rem;background:currentColor;opacity:0.06}",":where([data-aigui-scene-error]){padding:0.5rem 0.75rem;border-radius:0.5rem;font-size:0.875rem;background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 25%,transparent)}","[data-aigui-scene-model-error]{margin-top:0.25rem;font-size:0.8rem;opacity:0.7}"].join("");function scene(te={}){const ee=te.height??360;return{name:"scene",css:sceneCss,nodeRenderers:{scene:async(xe,it)=>{if(xe.complete===!1)return loading$1();const ut=parseScene(xe.content??"",te);if(!ut.ok)return failed(ut.error.message);const{definition:ht,refused:dt}=ut.value;return{kind:"mount",mount:Mt=>{Mt.setAttribute("data-aigui-scene",String(ht.objects.length));const ft=document.createElement("div");if(Mt.appendChild(ft),ht.caption){const mt=document.createElement("div");mt.setAttribute("data-aigui-scene-caption",""),mt.textContent=ht.caption,Mt.appendChild(mt)}for(const mt of dt){const Dt=document.createElement("div");Dt.setAttribute("data-aigui-scene-model-error",""),Dt.textContent=mt.message,Mt.appendChild(Dt)}let gt,xt=!1;return Promise.resolve().then(()=>renderCI1iZ6Yu).then(({mountScene:mt})=>mt(ft,ht,{height:ee,theme:it?.theme,onModelError:Dt=>{const yt=document.createElement("div");yt.setAttribute("data-aigui-scene-model-error",""),yt.textContent=`Model could not be loaded from ${new URL(Dt.src).origin}.`,Mt.appendChild(yt)}})).then(mt=>{xt?mt.destroy():gt=mt}).catch(()=>{ft.replaceChildren(),ft.innerHTML=failedHtml("Scene could not be drawn.")}),()=>{xt=!0,gt?.destroy()}}}}},isBlockComplete:(xe,it)=>{const ut=it.trim();if(!ut.startsWith("{")||!ut.endsWith("}"))return!1;try{return JSON.parse(ut),!0}catch{return!1}},promptSpec:xe=>scenePromptSpec(xe)}}const DEFAULT_WIDTH=720;function imagePlugins(te=DEFAULT_WIDTH){const ee=Math.max(200,te-32);return[chart({interactive:!1,width:ee,height:Math.round(ee*.625)}),mermaid$1(),katex({css:""}),dashboard(),scene({height:Math.round(ee*.6)}),gravity({animate:!1,width:ee,height:Math.round(ee*.625)}),bigscreen({animate:!1}),molecule({width:ee,height:Math.round(ee*.6)})]}const PENDING="[data-aigui-async-pending]",FAILED="[data-aigui-async-error]";function quiescent(te,ee){return new Promise(ne=>{let xe=0;const it=new MutationObserver(ut);function ut(){window.clearTimeout(xe),xe=window.setTimeout(ht,ee)}function ht(){if(te.querySelector(PENDING)){ut();return}it.disconnect(),ne()}it.observe(te,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),ut()})}function frame$1(){return new Promise(te=>window.requestAnimationFrame(()=>te()))}window.__aiguiRenderBlock=async(te,ee={})=>{const ne=document.getElementById("root");ne.replaceChildren(),createRenderer(ne,{plugins:imagePlugins(ee.width),theme:ee.theme}).push(te),await quiescent(ne,ee.quietMs??150),await document.fonts.ready,await frame$1(),await frame$1(),ne.querySelector("canvas")&&(await new Promise(ut=>window.setTimeout(ut,ee.canvasSettleMs??600)),await frame$1(),await frame$1());const it=ne.getBoundingClientRect();return{width:Math.ceil(it.width),height:Math.ceil(it.height),failed:ne.querySelector(FAILED)!==null}},use([install$15,install$16,install$14,install$12,install$W,install$10,install$P,install$O,install$V,install$N,install$i,install$H,install$r,install$G,install$11,install$y,install$A,install$l,install$g]);let glReady=null;const loadGl=()=>glReady??=Promise.resolve().then(()=>index),DEFAULT_HEIGHT={kpi:0,gauge:180,rank:220,chart:240,chart3d:280,globe:300,timeline:320,graph3d:320},easeOut=te=>1-Math.pow(1-te,3);function el(te,ee={},ne){const xe=document.createElement(te);for(const[it,ut]of Object.entries(ee))xe.setAttribute(it,ut);return ne!==void 0&&(xe.textContent=ne),xe}function countUp(te,ee,ne){const xe=ee.decimals??0,it=ft=>{te.textContent=`${ee.prefix??""}${formatNumber$1(ft,xe)}`};if(!ne||typeof requestAnimationFrame!="function")return it(ee.value),()=>{};const ut=1400;let ht,dt=0;const Mt=ft=>{ht??=ft;const gt=Math.min(1,(ft-ht)/ut);it(ee.value*easeOut(gt)),gt<1&&(dt=requestAnimationFrame(Mt))};return dt=requestAnimationFrame(Mt),()=>cancelAnimationFrame(dt)}function sparkline(te,ee,ne,xe){const it=Math.min(...te),ht=Math.max(...te)-it||1,dt=ne/(te.length-1),Mt=te.map((mt,Dt)=>`${(Dt*dt).toFixed(1)},${(xe-2-(mt-it)/ht*(xe-4)).toFixed(1)}`),ft=document.createElementNS("http://www.w3.org/2000/svg","svg");ft.setAttribute("viewBox",`0 0 ${ne} ${xe}`),ft.setAttribute("width","100%"),ft.setAttribute("height",String(xe)),ft.setAttribute("preserveAspectRatio","none"),ft.setAttribute("aria-hidden","true");const gt=document.createElementNS("http://www.w3.org/2000/svg","polygon");gt.setAttribute("points",`0,${xe} ${Mt.join(" ")} ${ne},${xe}`),gt.setAttribute("fill",withAlpha(ee.accent,.18));const xt=document.createElementNS("http://www.w3.org/2000/svg","polyline");return xt.setAttribute("points",Mt.join(" ")),xt.setAttribute("fill","none"),xt.setAttribute("stroke",ee.accent),xt.setAttribute("stroke-width","2"),xt.setAttribute("stroke-linejoin","round"),xt.setAttribute("vector-effect","non-scaling-stroke"),ft.append(gt,xt),ft}function mountKpi(te,ee,ne,xe){te.classList.add("aigui-bs-kpi");const it=el("div",{class:"aigui-bs-kpi-row"}),ut=el("span",{class:"aigui-bs-kpi-value"});ut.style.color=ne.accent,ut.style.textShadow=`0 0 18px ${withAlpha(ne.accent,.45)}`,it.appendChild(ut),ee.unit&&it.appendChild(el("span",{class:"aigui-bs-kpi-unit"},ee.unit)),te.appendChild(it);const ht=el("div",{class:"aigui-bs-kpi-meta"});if(ee.delta!==void 0){const dt=ee.delta>=0,Mt=(ee.upIsGood??!0)===dt,ft=el("span",{class:"aigui-bs-kpi-delta"},`${dt?"▲":"▼"} ${formatNumber$1(Math.abs(ee.delta)*100,1)}%`);ft.style.color=Mt?ne.good:ne.bad,ht.appendChild(ft)}if(ee.label&&ht.appendChild(el("span",{class:"aigui-bs-kpi-label"},ee.label)),ht.childNodes.length&&te.appendChild(ht),ee.trend){const dt=el("div",{class:"aigui-bs-kpi-spark"});dt.appendChild(sparkline(ee.trend,ne,200,36)),te.appendChild(dt)}return countUp(ut,ee,xe)}function mountRank(te,ee,ne,xe){te.classList.add("aigui-bs-rank");const it=[...ee.items].sort((Mt,ft)=>ft.value-Mt.value).slice(0,ee.top??8),ut=Math.max(...it.map(Mt=>Mt.value),0)||1,ht=[];if(it.forEach((Mt,ft)=>{const gt=el("div",{class:"aigui-bs-rank-row"}),xt=el("span",{class:"aigui-bs-rank-n"},String(ft+1));ft<3&&(xt.style.color=ne.accent);const mt=el("span",{class:"aigui-bs-rank-name"},Mt.name),Dt=el("span",{class:"aigui-bs-rank-track"});Dt.style.background=ne.track;const yt=el("span",{class:"aigui-bs-rank-fill"}),wt=ft===0?ne.accent:ne.series[ft%(ne.series.length-1)+1];yt.style.background=`linear-gradient(90deg, ${withAlpha(wt,.55)}, ${wt})`,yt.style.boxShadow=`0 0 10px ${withAlpha(wt,.5)}`;const At=`${Math.max(2,Math.max(Mt.value,0)/ut*100)}%`;yt.style.width=xe?"0%":At,Dt.appendChild(yt);const Lt=el("span",{class:"aigui-bs-rank-value"},`${formatNumber$1(Mt.value,Number.isInteger(Mt.value)?0:1)}${ee.unit??""}`);gt.append(xt,mt,Dt,Lt),te.appendChild(gt),ht.push({fill:yt,width:At})}),!xe||typeof requestAnimationFrame!="function")return()=>{};const dt=requestAnimationFrame(()=>requestAnimationFrame(()=>ht.forEach(({fill:Mt,width:ft})=>Mt.style.width=ft)));return()=>cancelAnimationFrame(dt)}function follow(te,ee){if(typeof ResizeObserver>"u")return()=>{};const ne=new ResizeObserver(()=>ee.resize());return ne.observe(te),()=>ne.disconnect()}function whenSized(te,ee){if(te.clientWidth>0||typeof requestAnimationFrame!="function")return ee(),()=>{};const ne=requestAnimationFrame(ee);return()=>cancelAnimationFrame(ne)}function mountChart(te,ee,ne,xe){let it,ut;const ht=whenSized(te,()=>{it=init$3(te,ne==="dark"?"dark":void 0,{renderer:"canvas"}),it.setOption(ee),xe?.(it),ut=follow(te,it)});return()=>{ht(),ut?.(),it?.dispose()}}function mountGl(te,ee,ne,xe,it){let ut,ht,dt,Mt,ft=!1;return loadGl().then(()=>{ft||(dt=whenSized(te,()=>{ft||(ut=init$3(te,ne==="dark"?"dark":void 0,{renderer:"canvas"}),ut.setOption(ee()),Mt=it?.(ut)??void 0,ht=follow(te,ut))}))}).catch(()=>{ft||(ut?.dispose(),ut=void 0,xe())}),()=>{ft=!0,dt?.(),Mt?.(),ht?.(),ut?.dispose()}}function note$2(te,ee){te.replaceChildren(el("div",{class:"aigui-bs-note"},ee))}function openTimelineItem(te,ee){if(ee?.onItemClick){ee.onItemClick(te);return}te.url&&typeof window<"u"&&window.open(te.url,"_blank","noopener,noreferrer")}function bindTimeline(te,ee){te.on("click",ne=>{const xe=ne.data?.item;xe&&openTimelineItem(xe,ee)})}function bindGraph(te,ee){te.on("click",ne=>{const xe=ne;if(xe.dataType==="edge")return;const it=xe.data?.node;it&&ee?.onNodeClick?.(it)})}function settleGraph(te,ee,ne,xe,it){const ut=ee.nodes.map(gt=>gt.id),ht=()=>rememberPositions(it,ut,xe.positions());if(xe.done||typeof requestAnimationFrame!="function")return ht(),()=>{};const dt=layoutChunk(ee.nodes.length),Mt=()=>{xe.step(dt);const gt=graphOrbitData(ee,ne,xe.positions());if(te.setOption({series:[{data:gt.edges},{data:gt.nodes}]},{notMerge:!1,lazyUpdate:!1}),xe.done){ht();return}ft=requestAnimationFrame(Mt)};let ft=requestAnimationFrame(Mt);return()=>cancelAnimationFrame(ft)}function graphLegendNode(te,ee){const ne=graphLegend(te,ee);if(!ne.length)return;const xe=el("div",{class:"aigui-bs-graph-legend"});for(const it of ne){const ut=el("div",{class:"aigui-bs-graph-legend-row"}),ht=el("i",{class:`aigui-bs-graph-legend-${it.shape==="node"?"dot":"line"}`});ht.style.background=it.colour,ut.append(ht,document.createTextNode(it.label)),xe.appendChild(ut)}return xe}function bodyHeight(te){return te.kind==="timeline"?timelineHeight(te.lanes.length):DEFAULT_HEIGHT[te.kind]}function mountPanel(te,ee,ne,xe,it,ut){const ht=el("section",{class:"aigui-bs-panel","data-aigui-bigscreen-panel":te.kind}),dt=Math.min(te.span??4,ee.columns);if(ht.style.gridColumn=`span ${dt}`,dt*2>ee.columns&&ht.setAttribute("data-aigui-bigscreen-wide",""),ht.style.borderColor=withAlpha(ne.accent,ee.theme==="dark"?.22:.18),te.title){const xt=el("header",{class:"aigui-bs-panel-title"},te.title),mt=el("i",{class:"aigui-bs-panel-mark"});mt.style.background=ne.accent,mt.style.boxShadow=`0 0 8px ${ne.accent}`,xt.prepend(mt),ht.appendChild(xt)}const Mt=el("div",{class:"aigui-bs-panel-body"}),ft=te.height??bodyHeight(te);ft&&(Mt.style.height=`${ft}px`),ht.appendChild(Mt);let gt=()=>{};try{switch(te.kind){case"kpi":gt=mountKpi(Mt,te,ne,xe);break;case"rank":gt=mountRank(Mt,te,ne,xe);break;case"gauge":gt=mountChart(Mt,gaugeOption(te,ne,xe),ee.theme);break;case"chart":gt=mountChart(Mt,chartOption(te,ne,xe),ee.theme);break;case"chart3d":gt=mountGl(Mt,()=>chart3dOption(te,ne,xe),ee.theme,()=>note$2(Mt,"3D panels need echarts-gl and WebGL."));break;case"globe":gt=mountGl(Mt,()=>globeOption(te,ne,xe,earthTexture(ne,ee.theme,it),it),ee.theme,()=>note$2(Mt,"Globe panels need echarts-gl and WebGL."));break;case"timeline":gt=mountChart(Mt,timelineOption(te,ne,xe),ee.theme,xt=>bindTimeline(xt,ut));break;case"graph3d":{const xt=graphLegendNode(te,ne);xt&&ht.appendChild(xt);const mt=()=>{xt?.remove(),note$2(Mt,"Knowledge graph panels need echarts-gl and WebGL.")};if(te.mode==="flat"){gt=mountGl(Mt,()=>graph3dOption(te,ne,xe),ee.theme,mt,wt=>bindGraph(wt,ut));break}const Dt=graphKey(te),yt=createLayout(te.nodes,te.edges,recallPositions(Dt));xe||yt.step(yt.steps),gt=mountGl(Mt,()=>graphOrbitOption(te,ne,xe,yt.positions()),ee.theme,mt,wt=>(bindGraph(wt,ut),settleGraph(wt,te,ne,yt,Dt)));break}}}catch{note$2(Mt,"Panel could not be drawn.")}return{node:ht,destroy:gt}}function mountScreen(te,ee,ne,xe,it){const ut=palette$2(ee);if(te.setAttribute("data-aigui-bigscreen",ee.theme),te.style.setProperty("--aigui-bs-accent",ut.accent),te.style.setProperty("--aigui-bs-text",ut.text),te.style.setProperty("--aigui-bs-muted",ut.muted),ee.title||ee.subtitle){const Mt=el("header",{class:"aigui-bs-head"});if(ee.title){const gt=el("h2",{class:"aigui-bs-title"},ee.title);gt.style.textShadow=ee.theme==="dark"?`0 0 24px ${withAlpha(ut.accent,.35)}`:"none",Mt.appendChild(gt)}ee.subtitle&&Mt.appendChild(el("p",{class:"aigui-bs-subtitle"},ee.subtitle));const ft=el("div",{class:"aigui-bs-rule"});ft.style.background=`linear-gradient(90deg, transparent, ${ut.accent}, transparent)`,Mt.appendChild(ft),te.appendChild(Mt)}const ht=el("div",{class:"aigui-bs-grid"});ht.style.gridTemplateColumns=`repeat(${ee.columns}, minmax(0, 1fr))`,te.appendChild(ht);const dt=ee.panels.map(Mt=>mountPanel(Mt,ee,ut,ne,xe,it));for(const{node:Mt}of dt)ht.appendChild(Mt);return()=>{for(const{destroy:Mt}of dt)Mt();te.replaceChildren()}}const mountChcoxgHd=Object.freeze(Object.defineProperty({__proto__:null,mountScreen},Symbol.toStringTag,{value:"Module"}));use([install$g,install$i]);const echarts$2={init:function(){return init$3.apply(null,arguments)}};use(installLabelLayout);const echartsNS=Object.freeze(Object.defineProperty({__proto__:null,Axis:Axis$1,ChartView,ComponentModel,ComponentView,List:SeriesData,Model,PRIORITY,SeriesModel,color:color$1,connect,dataTool,default:echarts$2,dependencies,disConnect,disconnect,dispose,env,extendChartView,extendComponentModel,extendComponentView,extendSeriesModel,format:format$2,getCoordinateSystemDimensions,getInstanceByDom,getInstanceById,getMap:getMap$1,graphic,helper,init:init$3,innerDrawElementOnCanvas:brushSingle,matrix,number:number$5,parseGeoJSON,parseGeoJson:parseGeoJSON,registerAction,registerCoordinateSystem,registerLayout,registerLoading,registerLocale,registerMap:registerMap$1,registerPostInit,registerPostUpdate,registerPreprocessor,registerProcessor,registerTheme,registerTransform,registerUpdateLifecycle,registerVisual,setCanvasCreator,setPlatformAPI,throttle,time:time$1,use,util:util$1,vector,version:version$2,zrUtil:util$2,zrender},Symbol.toStringTag,{value:"Module"}));function derive(te,ee,ne){typeof ee=="object"&&(ne=ee,ee=null);var xe=this,it;if(!(te instanceof Function)){it=[];for(var ut in te)te.hasOwnProperty(ut)&&it.push(ut)}var ht=function(Mt){if(xe.apply(this,arguments),te instanceof Function?extend$3(this,te.call(this,Mt)):extendWithPropList(this,te,it),this.constructor===ht)for(var ft=ht.__initializers__,gt=0;gt<ft.length;gt++)ft[gt].apply(this,arguments)};ht.__super__=xe,xe.__initializers__?ht.__initializers__=xe.__initializers__.slice():ht.__initializers__=[],ee&&ht.__initializers__.push(ee);var dt=function(){};return dt.prototype=xe.prototype,ht.prototype=new dt,ht.prototype.constructor=ht,extend$3(ht.prototype,ne),ht.extend=xe.extend,ht.derive=xe.extend,ht}function extend$3(te,ee){if(ee)for(var ne in ee)ee.hasOwnProperty(ne)&&(te[ne]=ee[ne])}function extendWithPropList(te,ee,ne){for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]=ee[it]}}const extendMixin={extend:derive,derive};function Handler(te,ee){this.action=te,this.context=ee}var notifier={trigger:function(te){if(this.hasOwnProperty("__handlers__")&&this.__handlers__.hasOwnProperty(te)){var ee=this.__handlers__[te],ne=ee.length,xe=-1,it=arguments;switch(it.length){case 1:for(;++xe<ne;)ee[xe].action.call(ee[xe].context);return;case 2:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1]);return;case 3:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2]);return;case 4:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2],it[3]);return;case 5:for(;++xe<ne;)ee[xe].action.call(ee[xe].context,it[1],it[2],it[3],it[4]);return;default:for(;++xe<ne;)ee[xe].action.apply(ee[xe].context,Array.prototype.slice.call(it,1));return}}},on:function(te,ee,ne){if(!(!te||!ee)){var xe=this.__handlers__||(this.__handlers__={});if(!xe[te])xe[te]=[];else if(this.has(te,ee))return;var it=new Handler(ee,ne||this);return xe[te].push(it),this}},once:function(te,ee,ne){if(!te||!ee)return;var xe=this;function it(){xe.off(te,it),ee.apply(this,arguments)}return this.on(te,it,ne)},before:function(te,ee,ne){if(!(!te||!ee))return te="before"+te,this.on(te,ee,ne)},after:function(te,ee,ne){if(!(!te||!ee))return te="after"+te,this.on(te,ee,ne)},success:function(te,ee){return this.once("success",te,ee)},error:function(te,ee){return this.once("error",te,ee)},off:function(te,ee){var ne=this.__handlers__||(this.__handlers__={});if(!ee){ne[te]=[];return}if(ne[te]){for(var xe=ne[te],it=[],ut=0;ut<xe.length;ut++)ee&&xe[ut].action!==ee&&it.push(xe[ut]);ne[te]=it}return this},has:function(te,ee){var ne=this.__handlers__;if(!ne||!ne[te])return!1;for(var xe=ne[te],it=0;it<xe.length;it++)if(xe[it].action===ee)return!0}},guid=0,ArrayProto=Array.prototype,nativeForEach=ArrayProto.forEach,util={genGUID:function(){return++guid},relative2absolute:function(te,ee){if(!ee||te.match(/^\//))return te;for(var ne=te.split("/"),xe=ee.split("/"),it=ne[0];it==="."||it==="..";)it===".."&&xe.pop(),ne.shift(),it=ne[0];return xe.join("/")+"/"+ne.join("/")},extend:function(te,ee){if(ee)for(var ne in ee)ee.hasOwnProperty(ne)&&(te[ne]=ee[ne]);return te},defaults:function(te,ee){if(ee)for(var ne in ee)te[ne]===void 0&&(te[ne]=ee[ne]);return te},extendWithPropList:function(te,ee,ne){if(ee)for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]=ee[it]}return te},defaultsWithPropList:function(te,ee,ne){if(ee)for(var xe=0;xe<ne.length;xe++){var it=ne[xe];te[it]==null&&(te[it]=ee[it])}return te},each:function(te,ee,ne){if(te&&ee)if(te.forEach&&te.forEach===nativeForEach)te.forEach(ee,ne);else if(te.length===+te.length)for(var xe=0,it=te.length;xe<it;xe++)ee.call(ne,te[xe],xe,te);else for(var ut in te)te.hasOwnProperty(ut)&&ee.call(ne,te[ut],ut,te)},isObject:function(te){return te===Object(te)},isArray:function(te){return Array.isArray(te)},isArrayLike:function(te){return te?te.length===+te.length:!1},clone:function(te){if(util.isObject(te)){if(util.isArray(te))return te.slice();if(util.isArrayLike(te)){for(var ee=new te.constructor(te.length),ne=0;ne<te.length;ne++)ee[ne]=te[ne];return ee}else return util.extend({},te)}else return te}},Base=function(){this.__uid__=util.genGUID()};Base.__initializers__=[function(te){util.extend(this,te)}],util.extend(Base,extendMixin),util.extend(Base.prototype,notifier);var GLMAT_EPSILON=1e-6,GLMAT_ARRAY_TYPE=Array,GLMAT_RANDOM$1=Math.random,vec3$f={};vec3$f.create=function(){var te=new GLMAT_ARRAY_TYPE(3);return te[0]=0,te[1]=0,te[2]=0,te},vec3$f.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(3);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee},vec3$f.fromValues=function(te,ee,ne){var xe=new GLMAT_ARRAY_TYPE(3);return xe[0]=te,xe[1]=ee,xe[2]=ne,xe},vec3$f.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te},vec3$f.set=function(te,ee,ne,xe){return te[0]=ee,te[1]=ne,te[2]=xe,te},vec3$f.add=function(te,ee,ne){return te[0]=ee[0]+ne[0],te[1]=ee[1]+ne[1],te[2]=ee[2]+ne[2],te},vec3$f.subtract=function(te,ee,ne){return te[0]=ee[0]-ne[0],te[1]=ee[1]-ne[1],te[2]=ee[2]-ne[2],te},vec3$f.sub=vec3$f.subtract,vec3$f.multiply=function(te,ee,ne){return te[0]=ee[0]*ne[0],te[1]=ee[1]*ne[1],te[2]=ee[2]*ne[2],te},vec3$f.mul=vec3$f.multiply,vec3$f.divide=function(te,ee,ne){return te[0]=ee[0]/ne[0],te[1]=ee[1]/ne[1],te[2]=ee[2]/ne[2],te},vec3$f.div=vec3$f.divide,vec3$f.min=function(te,ee,ne){return te[0]=Math.min(ee[0],ne[0]),te[1]=Math.min(ee[1],ne[1]),te[2]=Math.min(ee[2],ne[2]),te},vec3$f.max=function(te,ee,ne){return te[0]=Math.max(ee[0],ne[0]),te[1]=Math.max(ee[1],ne[1]),te[2]=Math.max(ee[2],ne[2]),te},vec3$f.scale=function(te,ee,ne){return te[0]=ee[0]*ne,te[1]=ee[1]*ne,te[2]=ee[2]*ne,te},vec3$f.scaleAndAdd=function(te,ee,ne,xe){return te[0]=ee[0]+ne[0]*xe,te[1]=ee[1]+ne[1]*xe,te[2]=ee[2]+ne[2]*xe,te},vec3$f.distance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2];return Math.sqrt(ne*ne+xe*xe+it*it)},vec3$f.dist=vec3$f.distance,vec3$f.squaredDistance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2];return ne*ne+xe*xe+it*it},vec3$f.sqrDist=vec3$f.squaredDistance,vec3$f.length=function(te){var ee=te[0],ne=te[1],xe=te[2];return Math.sqrt(ee*ee+ne*ne+xe*xe)},vec3$f.len=vec3$f.length,vec3$f.squaredLength=function(te){var ee=te[0],ne=te[1],xe=te[2];return ee*ee+ne*ne+xe*xe},vec3$f.sqrLen=vec3$f.squaredLength,vec3$f.negate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te},vec3$f.inverse=function(te,ee){return te[0]=1/ee[0],te[1]=1/ee[1],te[2]=1/ee[2],te},vec3$f.normalize=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ne*ne+xe*xe+it*it;return ut>0&&(ut=1/Math.sqrt(ut),te[0]=ee[0]*ut,te[1]=ee[1]*ut,te[2]=ee[2]*ut),te},vec3$f.dot=function(te,ee){return te[0]*ee[0]+te[1]*ee[1]+te[2]*ee[2]},vec3$f.cross=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2];return te[0]=it*Mt-ut*dt,te[1]=ut*ht-xe*Mt,te[2]=xe*dt-it*ht,te},vec3$f.lerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2];return te[0]=it+xe*(ne[0]-it),te[1]=ut+xe*(ne[1]-ut),te[2]=ht+xe*(ne[2]-ht),te},vec3$f.random=function(te,ee){ee=ee||1;var ne=GLMAT_RANDOM$1()*2*Math.PI,xe=GLMAT_RANDOM$1()*2-1,it=Math.sqrt(1-xe*xe)*ee;return te[0]=Math.cos(ne)*it,te[1]=Math.sin(ne)*it,te[2]=xe*ee,te},vec3$f.transformMat4=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[3]*xe+ne[7]*it+ne[11]*ut+ne[15];return ht=ht||1,te[0]=(ne[0]*xe+ne[4]*it+ne[8]*ut+ne[12])/ht,te[1]=(ne[1]*xe+ne[5]*it+ne[9]*ut+ne[13])/ht,te[2]=(ne[2]*xe+ne[6]*it+ne[10]*ut+ne[14])/ht,te},vec3$f.transformMat3=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2];return te[0]=xe*ne[0]+it*ne[3]+ut*ne[6],te[1]=xe*ne[1]+it*ne[4]+ut*ne[7],te[2]=xe*ne[2]+it*ne[5]+ut*ne[8],te},vec3$f.transformQuat=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2],ft=ne[3],gt=ft*xe+dt*ut-Mt*it,xt=ft*it+Mt*xe-ht*ut,mt=ft*ut+ht*it-dt*xe,Dt=-ht*xe-dt*it-Mt*ut;return te[0]=gt*ft+Dt*-ht+xt*-Mt-mt*-dt,te[1]=xt*ft+Dt*-dt+mt*-ht-gt*-Mt,te[2]=mt*ft+Dt*-Mt+gt*-dt-xt*-ht,te},vec3$f.rotateX=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[0],ut[1]=it[1]*Math.cos(xe)-it[2]*Math.sin(xe),ut[2]=it[1]*Math.sin(xe)+it[2]*Math.cos(xe),te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.rotateY=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[2]*Math.sin(xe)+it[0]*Math.cos(xe),ut[1]=it[1],ut[2]=it[2]*Math.cos(xe)-it[0]*Math.sin(xe),te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.rotateZ=function(te,ee,ne,xe){var it=[],ut=[];return it[0]=ee[0]-ne[0],it[1]=ee[1]-ne[1],it[2]=ee[2]-ne[2],ut[0]=it[0]*Math.cos(xe)-it[1]*Math.sin(xe),ut[1]=it[0]*Math.sin(xe)+it[1]*Math.cos(xe),ut[2]=it[2],te[0]=ut[0]+ne[0],te[1]=ut[1]+ne[1],te[2]=ut[2]+ne[2],te},vec3$f.forEach=function(){var te=vec3$f.create();return function(ee,ne,xe,it,ut,ht){var dt,Mt;for(ne||(ne=3),xe||(xe=0),it?Mt=Math.min(it*ne+xe,ee.length):Mt=ee.length,dt=xe;dt<Mt;dt+=ne)te[0]=ee[dt],te[1]=ee[dt+1],te[2]=ee[dt+2],ut(te,te,ht),ee[dt]=te[0],ee[dt+1]=te[1],ee[dt+2]=te[2];return ee}}(),vec3$f.angle=function(te,ee){var ne=vec3$f.fromValues(te[0],te[1],te[2]),xe=vec3$f.fromValues(ee[0],ee[1],ee[2]);vec3$f.normalize(ne,ne),vec3$f.normalize(xe,xe);var it=vec3$f.dot(ne,xe);return it>1?0:Math.acos(it)};var Vector3$1=function(te,ee,ne){te=te||0,ee=ee||0,ne=ne||0,this.array=vec3$f.fromValues(te,ee,ne),this._dirty=!0};Vector3$1.prototype={constructor:Vector3$1,add:function(te){return vec3$f.add(this.array,this.array,te.array),this._dirty=!0,this},set:function(te,ee,ne){return this.array[0]=te,this.array[1]=ee,this.array[2]=ne,this._dirty=!0,this},setArray:function(te){return this.array[0]=te[0],this.array[1]=te[1],this.array[2]=te[2],this._dirty=!0,this},clone:function(){return new Vector3$1(this.x,this.y,this.z)},copy:function(te){return vec3$f.copy(this.array,te.array),this._dirty=!0,this},cross:function(te,ee){return vec3$f.cross(this.array,te.array,ee.array),this._dirty=!0,this},dist:function(te){return vec3$f.dist(this.array,te.array)},distance:function(te){return vec3$f.distance(this.array,te.array)},div:function(te){return vec3$f.div(this.array,this.array,te.array),this._dirty=!0,this},divide:function(te){return vec3$f.divide(this.array,this.array,te.array),this._dirty=!0,this},dot:function(te){return vec3$f.dot(this.array,te.array)},len:function(){return vec3$f.len(this.array)},length:function(){return vec3$f.length(this.array)},lerp:function(te,ee,ne){return vec3$f.lerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},min:function(te){return vec3$f.min(this.array,this.array,te.array),this._dirty=!0,this},max:function(te){return vec3$f.max(this.array,this.array,te.array),this._dirty=!0,this},mul:function(te){return vec3$f.mul(this.array,this.array,te.array),this._dirty=!0,this},multiply:function(te){return vec3$f.multiply(this.array,this.array,te.array),this._dirty=!0,this},negate:function(){return vec3$f.negate(this.array,this.array),this._dirty=!0,this},normalize:function(){return vec3$f.normalize(this.array,this.array),this._dirty=!0,this},random:function(te){return vec3$f.random(this.array,te),this._dirty=!0,this},scale:function(te){return vec3$f.scale(this.array,this.array,te),this._dirty=!0,this},scaleAndAdd:function(te,ee){return vec3$f.scaleAndAdd(this.array,this.array,te.array,ee),this._dirty=!0,this},sqrDist:function(te){return vec3$f.sqrDist(this.array,te.array)},squaredDistance:function(te){return vec3$f.squaredDistance(this.array,te.array)},sqrLen:function(){return vec3$f.sqrLen(this.array)},squaredLength:function(){return vec3$f.squaredLength(this.array)},sub:function(te){return vec3$f.sub(this.array,this.array,te.array),this._dirty=!0,this},subtract:function(te){return vec3$f.subtract(this.array,this.array,te.array),this._dirty=!0,this},transformMat3:function(te){return vec3$f.transformMat3(this.array,this.array,te.array),this._dirty=!0,this},transformMat4:function(te){return vec3$f.transformMat4(this.array,this.array,te.array),this._dirty=!0,this},transformQuat:function(te){return vec3$f.transformQuat(this.array,this.array,te.array),this._dirty=!0,this},applyProjection:function(te){var ee=this.array;if(te=te.array,te[15]===0){var ne=-1/ee[2];ee[0]=te[0]*ee[0]*ne,ee[1]=te[5]*ee[1]*ne,ee[2]=(te[10]*ee[2]+te[14])*ne}else ee[0]=te[0]*ee[0]+te[12],ee[1]=te[5]*ee[1]+te[13],ee[2]=te[10]*ee[2]+te[14];return this._dirty=!0,this},eulerFromQuat:function(te,ee){Vector3$1.eulerFromQuat(this,te,ee)},eulerFromMat3:function(te,ee){Vector3$1.eulerFromMat3(this,te,ee)},toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$5=Object.defineProperty;if(defineProperty$5){var proto$4=Vector3$1.prototype;defineProperty$5(proto$4,"x",{get:function(){return this.array[0]},set:function(te){this.array[0]=te,this._dirty=!0}}),defineProperty$5(proto$4,"y",{get:function(){return this.array[1]},set:function(te){this.array[1]=te,this._dirty=!0}}),defineProperty$5(proto$4,"z",{get:function(){return this.array[2]},set:function(te){this.array[2]=te,this._dirty=!0}})}Vector3$1.add=function(te,ee,ne){return vec3$f.add(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.set=function(te,ee,ne,xe){vec3$f.set(te.array,ee,ne,xe),te._dirty=!0},Vector3$1.copy=function(te,ee){return vec3$f.copy(te.array,ee.array),te._dirty=!0,te},Vector3$1.cross=function(te,ee,ne){return vec3$f.cross(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.dist=function(te,ee){return vec3$f.distance(te.array,ee.array)},Vector3$1.distance=Vector3$1.dist,Vector3$1.div=function(te,ee,ne){return vec3$f.divide(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.divide=Vector3$1.div,Vector3$1.dot=function(te,ee){return vec3$f.dot(te.array,ee.array)},Vector3$1.len=function(te){return vec3$f.length(te.array)},Vector3$1.lerp=function(te,ee,ne,xe){return vec3$f.lerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Vector3$1.min=function(te,ee,ne){return vec3$f.min(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.max=function(te,ee,ne){return vec3$f.max(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.mul=function(te,ee,ne){return vec3$f.multiply(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.multiply=Vector3$1.mul,Vector3$1.negate=function(te,ee){return vec3$f.negate(te.array,ee.array),te._dirty=!0,te},Vector3$1.normalize=function(te,ee){return vec3$f.normalize(te.array,ee.array),te._dirty=!0,te},Vector3$1.random=function(te,ee){return vec3$f.random(te.array,ee),te._dirty=!0,te},Vector3$1.scale=function(te,ee,ne){return vec3$f.scale(te.array,ee.array,ne),te._dirty=!0,te},Vector3$1.scaleAndAdd=function(te,ee,ne,xe){return vec3$f.scaleAndAdd(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Vector3$1.sqrDist=function(te,ee){return vec3$f.sqrDist(te.array,ee.array)},Vector3$1.squaredDistance=Vector3$1.sqrDist,Vector3$1.sqrLen=function(te){return vec3$f.sqrLen(te.array)},Vector3$1.squaredLength=Vector3$1.sqrLen,Vector3$1.sub=function(te,ee,ne){return vec3$f.subtract(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.subtract=Vector3$1.sub,Vector3$1.transformMat3=function(te,ee,ne){return vec3$f.transformMat3(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.transformMat4=function(te,ee,ne){return vec3$f.transformMat4(te.array,ee.array,ne.array),te._dirty=!0,te},Vector3$1.transformQuat=function(te,ee,ne){return vec3$f.transformQuat(te.array,ee.array,ne.array),te._dirty=!0,te};function clamp$2(te,ee,ne){return te<ee?ee:te>ne?ne:te}var atan2$1=Math.atan2,asin$2=Math.asin,abs$2=Math.abs;Vector3$1.eulerFromQuat=function(te,ee,mt){te._dirty=!0,ee=ee.array;var xe=te.array,it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3],Mt=it*it,ft=ut*ut,gt=ht*ht,xt=dt*dt,mt=(mt||"XYZ").toUpperCase();switch(mt){case"XYZ":xe[0]=atan2$1(2*(it*dt-ut*ht),xt-Mt-ft+gt),xe[1]=asin$2(clamp$2(2*(it*ht+ut*dt),-1,1)),xe[2]=atan2$1(2*(ht*dt-it*ut),xt+Mt-ft-gt);break;case"YXZ":xe[0]=asin$2(clamp$2(2*(it*dt-ut*ht),-1,1)),xe[1]=atan2$1(2*(it*ht+ut*dt),xt-Mt-ft+gt),xe[2]=atan2$1(2*(it*ut+ht*dt),xt-Mt+ft-gt);break;case"ZXY":xe[0]=asin$2(clamp$2(2*(it*dt+ut*ht),-1,1)),xe[1]=atan2$1(2*(ut*dt-ht*it),xt-Mt-ft+gt),xe[2]=atan2$1(2*(ht*dt-it*ut),xt-Mt+ft-gt);break;case"ZYX":xe[0]=atan2$1(2*(it*dt+ht*ut),xt-Mt-ft+gt),xe[1]=asin$2(clamp$2(2*(ut*dt-it*ht),-1,1)),xe[2]=atan2$1(2*(it*ut+ht*dt),xt+Mt-ft-gt);break;case"YZX":xe[0]=atan2$1(2*(it*dt-ht*ut),xt-Mt+ft-gt),xe[1]=atan2$1(2*(ut*dt-it*ht),xt+Mt-ft-gt),xe[2]=asin$2(clamp$2(2*(it*ut+ht*dt),-1,1));break;case"XZY":xe[0]=atan2$1(2*(it*dt+ut*ht),xt-Mt+ft-gt),xe[1]=atan2$1(2*(it*ht+ut*dt),xt+Mt-ft-gt),xe[2]=asin$2(clamp$2(2*(ht*dt-it*ut),-1,1));break;default:console.warn("Unkown order: "+mt)}return te},Vector3$1.eulerFromMat3=function(te,ee,yt){var xe=ee.array,it=xe[0],ut=xe[3],ht=xe[6],dt=xe[1],Mt=xe[4],ft=xe[7],gt=xe[2],xt=xe[5],mt=xe[8],Dt=te.array,yt=(yt||"XYZ").toUpperCase();switch(yt){case"XYZ":Dt[1]=asin$2(clamp$2(ht,-1,1)),abs$2(ht)<.99999?(Dt[0]=atan2$1(-ft,mt),Dt[2]=atan2$1(-ut,it)):(Dt[0]=atan2$1(xt,Mt),Dt[2]=0);break;case"YXZ":Dt[0]=asin$2(-clamp$2(ft,-1,1)),abs$2(ft)<.99999?(Dt[1]=atan2$1(ht,mt),Dt[2]=atan2$1(dt,Mt)):(Dt[1]=atan2$1(-gt,it),Dt[2]=0);break;case"ZXY":Dt[0]=asin$2(clamp$2(xt,-1,1)),abs$2(xt)<.99999?(Dt[1]=atan2$1(-gt,mt),Dt[2]=atan2$1(-ut,Mt)):(Dt[1]=0,Dt[2]=atan2$1(dt,it));break;case"ZYX":Dt[1]=asin$2(-clamp$2(gt,-1,1)),abs$2(gt)<.99999?(Dt[0]=atan2$1(xt,mt),Dt[2]=atan2$1(dt,it)):(Dt[0]=0,Dt[2]=atan2$1(-ut,Mt));break;case"YZX":Dt[2]=asin$2(clamp$2(dt,-1,1)),abs$2(dt)<.99999?(Dt[0]=atan2$1(-ft,Mt),Dt[1]=atan2$1(-gt,it)):(Dt[0]=0,Dt[1]=atan2$1(ht,mt));break;case"XZY":Dt[2]=asin$2(-clamp$2(ut,-1,1)),abs$2(ut)<.99999?(Dt[0]=atan2$1(xt,Mt),Dt[1]=atan2$1(ht,it)):(Dt[0]=atan2$1(-ft,mt),Dt[1]=0);break;default:console.warn("Unkown order: "+yt)}return te._dirty=!0,te},Object.defineProperties(Vector3$1,{POSITIVE_X:{get:function(){return new Vector3$1(1,0,0)}},NEGATIVE_X:{get:function(){return new Vector3$1(-1,0,0)}},POSITIVE_Y:{get:function(){return new Vector3$1(0,1,0)}},NEGATIVE_Y:{get:function(){return new Vector3$1(0,-1,0)}},POSITIVE_Z:{get:function(){return new Vector3$1(0,0,1)}},NEGATIVE_Z:{get:function(){return new Vector3$1(0,0,-1)}},UP:{get:function(){return new Vector3$1(0,1,0)}},ZERO:{get:function(){return new Vector3$1}}});var vec4$1={};vec4$1.create=function(){var te=new GLMAT_ARRAY_TYPE(4);return te[0]=0,te[1]=0,te[2]=0,te[3]=0,te},vec4$1.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(4);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee},vec4$1.fromValues=function(te,ee,ne,xe){var it=new GLMAT_ARRAY_TYPE(4);return it[0]=te,it[1]=ee,it[2]=ne,it[3]=xe,it},vec4$1.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te},vec4$1.set=function(te,ee,ne,xe,it){return te[0]=ee,te[1]=ne,te[2]=xe,te[3]=it,te},vec4$1.add=function(te,ee,ne){return te[0]=ee[0]+ne[0],te[1]=ee[1]+ne[1],te[2]=ee[2]+ne[2],te[3]=ee[3]+ne[3],te},vec4$1.subtract=function(te,ee,ne){return te[0]=ee[0]-ne[0],te[1]=ee[1]-ne[1],te[2]=ee[2]-ne[2],te[3]=ee[3]-ne[3],te},vec4$1.sub=vec4$1.subtract,vec4$1.multiply=function(te,ee,ne){return te[0]=ee[0]*ne[0],te[1]=ee[1]*ne[1],te[2]=ee[2]*ne[2],te[3]=ee[3]*ne[3],te},vec4$1.mul=vec4$1.multiply,vec4$1.divide=function(te,ee,ne){return te[0]=ee[0]/ne[0],te[1]=ee[1]/ne[1],te[2]=ee[2]/ne[2],te[3]=ee[3]/ne[3],te},vec4$1.div=vec4$1.divide,vec4$1.min=function(te,ee,ne){return te[0]=Math.min(ee[0],ne[0]),te[1]=Math.min(ee[1],ne[1]),te[2]=Math.min(ee[2],ne[2]),te[3]=Math.min(ee[3],ne[3]),te},vec4$1.max=function(te,ee,ne){return te[0]=Math.max(ee[0],ne[0]),te[1]=Math.max(ee[1],ne[1]),te[2]=Math.max(ee[2],ne[2]),te[3]=Math.max(ee[3],ne[3]),te},vec4$1.scale=function(te,ee,ne){return te[0]=ee[0]*ne,te[1]=ee[1]*ne,te[2]=ee[2]*ne,te[3]=ee[3]*ne,te},vec4$1.scaleAndAdd=function(te,ee,ne,xe){return te[0]=ee[0]+ne[0]*xe,te[1]=ee[1]+ne[1]*xe,te[2]=ee[2]+ne[2]*xe,te[3]=ee[3]+ne[3]*xe,te},vec4$1.distance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2],ut=ee[3]-te[3];return Math.sqrt(ne*ne+xe*xe+it*it+ut*ut)},vec4$1.dist=vec4$1.distance,vec4$1.squaredDistance=function(te,ee){var ne=ee[0]-te[0],xe=ee[1]-te[1],it=ee[2]-te[2],ut=ee[3]-te[3];return ne*ne+xe*xe+it*it+ut*ut},vec4$1.sqrDist=vec4$1.squaredDistance,vec4$1.length=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3];return Math.sqrt(ee*ee+ne*ne+xe*xe+it*it)},vec4$1.len=vec4$1.length,vec4$1.squaredLength=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3];return ee*ee+ne*ne+xe*xe+it*it},vec4$1.sqrLen=vec4$1.squaredLength,vec4$1.negate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te[3]=-ee[3],te},vec4$1.inverse=function(te,ee){return te[0]=1/ee[0],te[1]=1/ee[1],te[2]=1/ee[2],te[3]=1/ee[3],te},vec4$1.normalize=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne*ne+xe*xe+it*it+ut*ut;return ht>0&&(ht=1/Math.sqrt(ht),te[0]=ee[0]*ht,te[1]=ee[1]*ht,te[2]=ee[2]*ht,te[3]=ee[3]*ht),te},vec4$1.dot=function(te,ee){return te[0]*ee[0]+te[1]*ee[1]+te[2]*ee[2]+te[3]*ee[3]},vec4$1.lerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3];return te[0]=it+xe*(ne[0]-it),te[1]=ut+xe*(ne[1]-ut),te[2]=ht+xe*(ne[2]-ht),te[3]=dt+xe*(ne[3]-dt),te},vec4$1.random=function(te,ee){return ee=ee||1,te[0]=GLMAT_RANDOM$1(),te[1]=GLMAT_RANDOM$1(),te[2]=GLMAT_RANDOM$1(),te[3]=GLMAT_RANDOM$1(),vec4$1.normalize(te,te),vec4$1.scale(te,te,ee),te},vec4$1.transformMat4=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3];return te[0]=ne[0]*xe+ne[4]*it+ne[8]*ut+ne[12]*ht,te[1]=ne[1]*xe+ne[5]*it+ne[9]*ut+ne[13]*ht,te[2]=ne[2]*xe+ne[6]*it+ne[10]*ut+ne[14]*ht,te[3]=ne[3]*xe+ne[7]*it+ne[11]*ut+ne[15]*ht,te},vec4$1.transformQuat=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ne[0],dt=ne[1],Mt=ne[2],ft=ne[3],gt=ft*xe+dt*ut-Mt*it,xt=ft*it+Mt*xe-ht*ut,mt=ft*ut+ht*it-dt*xe,Dt=-ht*xe-dt*it-Mt*ut;return te[0]=gt*ft+Dt*-ht+xt*-Mt-mt*-dt,te[1]=xt*ft+Dt*-dt+mt*-ht-gt*-Mt,te[2]=mt*ft+Dt*-Mt+gt*-dt-xt*-ht,te},vec4$1.forEach=function(){var te=vec4$1.create();return function(ee,ne,xe,it,ut,ht){var dt,Mt;for(ne||(ne=4),xe||(xe=0),it?Mt=Math.min(it*ne+xe,ee.length):Mt=ee.length,dt=xe;dt<Mt;dt+=ne)te[0]=ee[dt],te[1]=ee[dt+1],te[2]=ee[dt+2],te[3]=ee[dt+3],ut(te,te,ht),ee[dt]=te[0],ee[dt+1]=te[1],ee[dt+2]=te[2],ee[dt+3]=te[3];return ee}}();var mat3$1={};mat3$1.create=function(){var te=new GLMAT_ARRAY_TYPE(9);return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=1,te[5]=0,te[6]=0,te[7]=0,te[8]=1,te},mat3$1.fromMat4=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[4],te[4]=ee[5],te[5]=ee[6],te[6]=ee[8],te[7]=ee[9],te[8]=ee[10],te},mat3$1.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(9);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee[4]=te[4],ee[5]=te[5],ee[6]=te[6],ee[7]=te[7],ee[8]=te[8],ee},mat3$1.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te},mat3$1.identity=function(te){return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=1,te[5]=0,te[6]=0,te[7]=0,te[8]=1,te},mat3$1.transpose=function(te,ee){if(te===ee){var ne=ee[1],xe=ee[2],it=ee[5];te[1]=ee[3],te[2]=ee[6],te[3]=ne,te[5]=ee[7],te[6]=xe,te[7]=it}else te[0]=ee[0],te[1]=ee[3],te[2]=ee[6],te[3]=ee[1],te[4]=ee[4],te[5]=ee[7],te[6]=ee[2],te[7]=ee[5],te[8]=ee[8];return te},mat3$1.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=gt*ht-dt*ft,mt=-gt*ut+dt*Mt,Dt=ft*ut-ht*Mt,yt=ne*xt+xe*mt+it*Dt;return yt?(yt=1/yt,te[0]=xt*yt,te[1]=(-gt*xe+it*ft)*yt,te[2]=(dt*xe-it*ht)*yt,te[3]=mt*yt,te[4]=(gt*ne-it*Mt)*yt,te[5]=(-dt*ne+it*ut)*yt,te[6]=Dt*yt,te[7]=(-ft*ne+xe*Mt)*yt,te[8]=(ht*ne-xe*ut)*yt,te):null},mat3$1.adjoint=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8];return te[0]=ht*gt-dt*ft,te[1]=it*ft-xe*gt,te[2]=xe*dt-it*ht,te[3]=dt*Mt-ut*gt,te[4]=ne*gt-it*Mt,te[5]=it*ut-ne*dt,te[6]=ut*ft-ht*Mt,te[7]=xe*Mt-ne*ft,te[8]=ne*ht-xe*ut,te},mat3$1.determinant=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3],ut=te[4],ht=te[5],dt=te[6],Mt=te[7],ft=te[8];return ee*(ft*ut-ht*Mt)+ne*(-ft*it+ht*dt)+xe*(Mt*it-ut*dt)},mat3$1.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ne[0],Dt=ne[1],yt=ne[2],wt=ne[3],At=ne[4],Lt=ne[5],bt=ne[6],vt=ne[7],Qt=ne[8];return te[0]=mt*xe+Dt*ht+yt*ft,te[1]=mt*it+Dt*dt+yt*gt,te[2]=mt*ut+Dt*Mt+yt*xt,te[3]=wt*xe+At*ht+Lt*ft,te[4]=wt*it+At*dt+Lt*gt,te[5]=wt*ut+At*Mt+Lt*xt,te[6]=bt*xe+vt*ht+Qt*ft,te[7]=bt*it+vt*dt+Qt*gt,te[8]=bt*ut+vt*Mt+Qt*xt,te},mat3$1.mul=mat3$1.multiply,mat3$1.translate=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ne[0],Dt=ne[1];return te[0]=xe,te[1]=it,te[2]=ut,te[3]=ht,te[4]=dt,te[5]=Mt,te[6]=mt*xe+Dt*ht+ft,te[7]=mt*it+Dt*dt+gt,te[8]=mt*ut+Dt*Mt+xt,te},mat3$1.rotate=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=Math.sin(ne),Dt=Math.cos(ne);return te[0]=Dt*xe+mt*ht,te[1]=Dt*it+mt*dt,te[2]=Dt*ut+mt*Mt,te[3]=Dt*ht-mt*xe,te[4]=Dt*dt-mt*it,te[5]=Dt*Mt-mt*ut,te[6]=ft,te[7]=gt,te[8]=xt,te},mat3$1.scale=function(te,ee,ne){var xe=ne[0],it=ne[1];return te[0]=xe*ee[0],te[1]=xe*ee[1],te[2]=xe*ee[2],te[3]=it*ee[3],te[4]=it*ee[4],te[5]=it*ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te},mat3$1.fromMat2d=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=0,te[3]=ee[2],te[4]=ee[3],te[5]=0,te[6]=ee[4],te[7]=ee[5],te[8]=1,te},mat3$1.fromQuat=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne+ne,dt=xe+xe,Mt=it+it,ft=ne*ht,gt=xe*ht,xt=xe*dt,mt=it*ht,Dt=it*dt,yt=it*Mt,wt=ut*ht,At=ut*dt,Lt=ut*Mt;return te[0]=1-xt-yt,te[3]=gt-Lt,te[6]=mt+At,te[1]=gt+Lt,te[4]=1-ft-yt,te[7]=Dt-wt,te[2]=mt-At,te[5]=Dt+wt,te[8]=1-ft-xt,te},mat3$1.normalFromMat4=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15],bt=ne*dt-xe*ht,vt=ne*Mt-it*ht,Qt=ne*ft-ut*ht,Ct=xe*Mt-it*dt,Ut=xe*ft-ut*dt,Rt=it*ft-ut*Mt,Ft=gt*wt-xt*yt,Gt=gt*At-mt*yt,_t=gt*Lt-Dt*yt,kt=xt*At-mt*wt,Ot=xt*Lt-Dt*wt,zt=mt*Lt-Dt*At,Xt=bt*zt-vt*Ot+Qt*kt+Ct*_t-Ut*Gt+Rt*Ft;return Xt?(Xt=1/Xt,te[0]=(dt*zt-Mt*Ot+ft*kt)*Xt,te[1]=(Mt*_t-ht*zt-ft*Gt)*Xt,te[2]=(ht*Ot-dt*_t+ft*Ft)*Xt,te[3]=(it*Ot-xe*zt-ut*kt)*Xt,te[4]=(ne*zt-it*_t+ut*Gt)*Xt,te[5]=(xe*_t-ne*Ot-ut*Ft)*Xt,te[6]=(wt*Rt-At*Ut+Lt*Ct)*Xt,te[7]=(At*Qt-yt*Rt-Lt*vt)*Xt,te[8]=(yt*Ut-wt*Qt+Lt*bt)*Xt,te):null},mat3$1.frob=function(te){return Math.sqrt(Math.pow(te[0],2)+Math.pow(te[1],2)+Math.pow(te[2],2)+Math.pow(te[3],2)+Math.pow(te[4],2)+Math.pow(te[5],2)+Math.pow(te[6],2)+Math.pow(te[7],2)+Math.pow(te[8],2))};var quat={};quat.create=function(){var te=new GLMAT_ARRAY_TYPE(4);return te[0]=0,te[1]=0,te[2]=0,te[3]=1,te},quat.rotationTo=function(){var te=vec3$f.create(),ee=vec3$f.fromValues(1,0,0),ne=vec3$f.fromValues(0,1,0);return function(xe,it,ut){var ht=vec3$f.dot(it,ut);return ht<-.999999?(vec3$f.cross(te,ee,it),vec3$f.length(te)<1e-6&&vec3$f.cross(te,ne,it),vec3$f.normalize(te,te),quat.setAxisAngle(xe,te,Math.PI),xe):ht>.999999?(xe[0]=0,xe[1]=0,xe[2]=0,xe[3]=1,xe):(vec3$f.cross(te,it,ut),xe[0]=te[0],xe[1]=te[1],xe[2]=te[2],xe[3]=1+ht,quat.normalize(xe,xe))}}(),quat.setAxes=function(){var te=mat3$1.create();return function(ee,ne,xe,it){return te[0]=xe[0],te[3]=xe[1],te[6]=xe[2],te[1]=it[0],te[4]=it[1],te[7]=it[2],te[2]=-ne[0],te[5]=-ne[1],te[8]=-ne[2],quat.normalize(ee,quat.fromMat3(ee,te))}}(),quat.clone=vec4$1.clone,quat.fromValues=vec4$1.fromValues,quat.copy=vec4$1.copy,quat.set=vec4$1.set,quat.identity=function(te){return te[0]=0,te[1]=0,te[2]=0,te[3]=1,te},quat.setAxisAngle=function(te,ee,ne){ne=ne*.5;var xe=Math.sin(ne);return te[0]=xe*ee[0],te[1]=xe*ee[1],te[2]=xe*ee[2],te[3]=Math.cos(ne),te},quat.add=vec4$1.add,quat.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ne[0],Mt=ne[1],ft=ne[2],gt=ne[3];return te[0]=xe*gt+ht*dt+it*ft-ut*Mt,te[1]=it*gt+ht*Mt+ut*dt-xe*ft,te[2]=ut*gt+ht*ft+xe*Mt-it*dt,te[3]=ht*gt-xe*dt-it*Mt-ut*ft,te},quat.mul=quat.multiply,quat.scale=vec4$1.scale,quat.rotateX=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt+ht*dt,te[1]=it*Mt+ut*dt,te[2]=ut*Mt-it*dt,te[3]=ht*Mt-xe*dt,te},quat.rotateY=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt-ut*dt,te[1]=it*Mt+ht*dt,te[2]=ut*Mt+xe*dt,te[3]=ht*Mt-it*dt,te},quat.rotateZ=function(te,ee,ne){ne*=.5;var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=Math.sin(ne),Mt=Math.cos(ne);return te[0]=xe*Mt+it*dt,te[1]=it*Mt-xe*dt,te[2]=ut*Mt+ht*dt,te[3]=ht*Mt-ut*dt,te},quat.calculateW=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2];return te[0]=ne,te[1]=xe,te[2]=it,te[3]=Math.sqrt(Math.abs(1-ne*ne-xe*xe-it*it)),te},quat.dot=vec4$1.dot,quat.lerp=vec4$1.lerp,quat.slerp=function(te,ee,ne,xe){var it=ee[0],ut=ee[1],ht=ee[2],dt=ee[3],Mt=ne[0],ft=ne[1],gt=ne[2],xt=ne[3],mt,Dt,yt,wt,At;return Dt=it*Mt+ut*ft+ht*gt+dt*xt,Dt<0&&(Dt=-Dt,Mt=-Mt,ft=-ft,gt=-gt,xt=-xt),1-Dt>1e-6?(mt=Math.acos(Dt),yt=Math.sin(mt),wt=Math.sin((1-xe)*mt)/yt,At=Math.sin(xe*mt)/yt):(wt=1-xe,At=xe),te[0]=wt*it+At*Mt,te[1]=wt*ut+At*ft,te[2]=wt*ht+At*gt,te[3]=wt*dt+At*xt,te},quat.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne*ne+xe*xe+it*it+ut*ut,dt=ht?1/ht:0;return te[0]=-ne*dt,te[1]=-xe*dt,te[2]=-it*dt,te[3]=ut*dt,te},quat.conjugate=function(te,ee){return te[0]=-ee[0],te[1]=-ee[1],te[2]=-ee[2],te[3]=ee[3],te},quat.length=vec4$1.length,quat.len=quat.length,quat.squaredLength=vec4$1.squaredLength,quat.sqrLen=quat.squaredLength,quat.normalize=vec4$1.normalize,quat.fromMat3=function(te,ee){var ne=ee[0]+ee[4]+ee[8],xe;if(ne>0)xe=Math.sqrt(ne+1),te[3]=.5*xe,xe=.5/xe,te[0]=(ee[5]-ee[7])*xe,te[1]=(ee[6]-ee[2])*xe,te[2]=(ee[1]-ee[3])*xe;else{var it=0;ee[4]>ee[0]&&(it=1),ee[8]>ee[it*3+it]&&(it=2);var ut=(it+1)%3,ht=(it+2)%3;xe=Math.sqrt(ee[it*3+it]-ee[ut*3+ut]-ee[ht*3+ht]+1),te[it]=.5*xe,xe=.5/xe,te[3]=(ee[ut*3+ht]-ee[ht*3+ut])*xe,te[ut]=(ee[ut*3+it]+ee[it*3+ut])*xe,te[ht]=(ee[ht*3+it]+ee[it*3+ht])*xe}return te};var Quaternion$1=function(te,ee,ne,xe){te=te||0,ee=ee||0,ne=ne||0,xe=xe===void 0?1:xe,this.array=quat.fromValues(te,ee,ne,xe),this._dirty=!0};Quaternion$1.prototype={constructor:Quaternion$1,add:function(te){return quat.add(this.array,this.array,te.array),this._dirty=!0,this},calculateW:function(){return quat.calculateW(this.array,this.array),this._dirty=!0,this},set:function(te,ee,ne,xe){return this.array[0]=te,this.array[1]=ee,this.array[2]=ne,this.array[3]=xe,this._dirty=!0,this},setArray:function(te){return this.array[0]=te[0],this.array[1]=te[1],this.array[2]=te[2],this.array[3]=te[3],this._dirty=!0,this},clone:function(){return new Quaternion$1(this.x,this.y,this.z,this.w)},conjugate:function(){return quat.conjugate(this.array,this.array),this._dirty=!0,this},copy:function(te){return quat.copy(this.array,te.array),this._dirty=!0,this},dot:function(te){return quat.dot(this.array,te.array)},fromMat3:function(te){return quat.fromMat3(this.array,te.array),this._dirty=!0,this},fromMat4:function(){var te=mat3$1.create();return function(ee){return mat3$1.fromMat4(te,ee.array),mat3$1.transpose(te,te),quat.fromMat3(this.array,te),this._dirty=!0,this}}(),identity:function(){return quat.identity(this.array),this._dirty=!0,this},invert:function(){return quat.invert(this.array,this.array),this._dirty=!0,this},len:function(){return quat.len(this.array)},length:function(){return quat.length(this.array)},lerp:function(te,ee,ne){return quat.lerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},mul:function(te){return quat.mul(this.array,this.array,te.array),this._dirty=!0,this},mulLeft:function(te){return quat.multiply(this.array,te.array,this.array),this._dirty=!0,this},multiply:function(te){return quat.multiply(this.array,this.array,te.array),this._dirty=!0,this},multiplyLeft:function(te){return quat.multiply(this.array,te.array,this.array),this._dirty=!0,this},normalize:function(){return quat.normalize(this.array,this.array),this._dirty=!0,this},rotateX:function(te){return quat.rotateX(this.array,this.array,te),this._dirty=!0,this},rotateY:function(te){return quat.rotateY(this.array,this.array,te),this._dirty=!0,this},rotateZ:function(te){return quat.rotateZ(this.array,this.array,te),this._dirty=!0,this},rotationTo:function(te,ee){return quat.rotationTo(this.array,te.array,ee.array),this._dirty=!0,this},setAxes:function(te,ee,ne){return quat.setAxes(this.array,te.array,ee.array,ne.array),this._dirty=!0,this},setAxisAngle:function(te,ee){return quat.setAxisAngle(this.array,te.array,ee),this._dirty=!0,this},slerp:function(te,ee,ne){return quat.slerp(this.array,te.array,ee.array,ne),this._dirty=!0,this},sqrLen:function(){return quat.sqrLen(this.array)},squaredLength:function(){return quat.squaredLength(this.array)},fromEuler:function(te,ee){return Quaternion$1.fromEuler(this,te,ee)},toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$4=Object.defineProperty;if(defineProperty$4){var proto$3=Quaternion$1.prototype;defineProperty$4(proto$3,"x",{get:function(){return this.array[0]},set:function(te){this.array[0]=te,this._dirty=!0}}),defineProperty$4(proto$3,"y",{get:function(){return this.array[1]},set:function(te){this.array[1]=te,this._dirty=!0}}),defineProperty$4(proto$3,"z",{get:function(){return this.array[2]},set:function(te){this.array[2]=te,this._dirty=!0}}),defineProperty$4(proto$3,"w",{get:function(){return this.array[3]},set:function(te){this.array[3]=te,this._dirty=!0}})}Quaternion$1.add=function(te,ee,ne){return quat.add(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.set=function(te,ee,ne,xe,it){quat.set(te.array,ee,ne,xe,it),te._dirty=!0},Quaternion$1.copy=function(te,ee){return quat.copy(te.array,ee.array),te._dirty=!0,te},Quaternion$1.calculateW=function(te,ee){return quat.calculateW(te.array,ee.array),te._dirty=!0,te},Quaternion$1.conjugate=function(te,ee){return quat.conjugate(te.array,ee.array),te._dirty=!0,te},Quaternion$1.identity=function(te){return quat.identity(te.array),te._dirty=!0,te},Quaternion$1.invert=function(te,ee){return quat.invert(te.array,ee.array),te._dirty=!0,te},Quaternion$1.dot=function(te,ee){return quat.dot(te.array,ee.array)},Quaternion$1.len=function(te){return quat.length(te.array)},Quaternion$1.lerp=function(te,ee,ne,xe){return quat.lerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Quaternion$1.slerp=function(te,ee,ne,xe){return quat.slerp(te.array,ee.array,ne.array,xe),te._dirty=!0,te},Quaternion$1.mul=function(te,ee,ne){return quat.multiply(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.multiply=Quaternion$1.mul,Quaternion$1.rotateX=function(te,ee,ne){return quat.rotateX(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.rotateY=function(te,ee,ne){return quat.rotateY(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.rotateZ=function(te,ee,ne){return quat.rotateZ(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.setAxisAngle=function(te,ee,ne){return quat.setAxisAngle(te.array,ee.array,ne),te._dirty=!0,te},Quaternion$1.normalize=function(te,ee){return quat.normalize(te.array,ee.array),te._dirty=!0,te},Quaternion$1.sqrLen=function(te){return quat.sqrLen(te.array)},Quaternion$1.squaredLength=Quaternion$1.sqrLen,Quaternion$1.fromMat3=function(te,ee){return quat.fromMat3(te.array,ee.array),te._dirty=!0,te},Quaternion$1.setAxes=function(te,ee,ne,xe){return quat.setAxes(te.array,ee.array,ne.array,xe.array),te._dirty=!0,te},Quaternion$1.rotationTo=function(te,ee,ne){return quat.rotationTo(te.array,ee.array,ne.array),te._dirty=!0,te},Quaternion$1.fromEuler=function(te,ee,gt){te._dirty=!0,ee=ee.array;var xe=te.array,it=Math.cos(ee[0]/2),ut=Math.cos(ee[1]/2),ht=Math.cos(ee[2]/2),dt=Math.sin(ee[0]/2),Mt=Math.sin(ee[1]/2),ft=Math.sin(ee[2]/2),gt=(gt||"XYZ").toUpperCase();switch(gt){case"XYZ":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"YXZ":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break;case"ZXY":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"ZYX":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break;case"YZX":xe[0]=dt*ut*ht+it*Mt*ft,xe[1]=it*Mt*ht+dt*ut*ft,xe[2]=it*ut*ft-dt*Mt*ht,xe[3]=it*ut*ht-dt*Mt*ft;break;case"XZY":xe[0]=dt*ut*ht-it*Mt*ft,xe[1]=it*Mt*ht-dt*ut*ft,xe[2]=it*ut*ft+dt*Mt*ht,xe[3]=it*ut*ht+dt*Mt*ft;break}};var mat4$2={};mat4$2.create=function(){var te=new GLMAT_ARRAY_TYPE(16);return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=1,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=1,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.clone=function(te){var ee=new GLMAT_ARRAY_TYPE(16);return ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],ee[3]=te[3],ee[4]=te[4],ee[5]=te[5],ee[6]=te[6],ee[7]=te[7],ee[8]=te[8],ee[9]=te[9],ee[10]=te[10],ee[11]=te[11],ee[12]=te[12],ee[13]=te[13],ee[14]=te[14],ee[15]=te[15],ee},mat4$2.copy=function(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[8]=ee[8],te[9]=ee[9],te[10]=ee[10],te[11]=ee[11],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15],te},mat4$2.identity=function(te){return te[0]=1,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=1,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=1,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.transpose=function(te,ee){if(te===ee){var ne=ee[1],xe=ee[2],it=ee[3],ut=ee[6],ht=ee[7],dt=ee[11];te[1]=ee[4],te[2]=ee[8],te[3]=ee[12],te[4]=ne,te[6]=ee[9],te[7]=ee[13],te[8]=xe,te[9]=ut,te[11]=ee[14],te[12]=it,te[13]=ht,te[14]=dt}else te[0]=ee[0],te[1]=ee[4],te[2]=ee[8],te[3]=ee[12],te[4]=ee[1],te[5]=ee[5],te[6]=ee[9],te[7]=ee[13],te[8]=ee[2],te[9]=ee[6],te[10]=ee[10],te[11]=ee[14],te[12]=ee[3],te[13]=ee[7],te[14]=ee[11],te[15]=ee[15];return te},mat4$2.invert=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15],bt=ne*dt-xe*ht,vt=ne*Mt-it*ht,Qt=ne*ft-ut*ht,Ct=xe*Mt-it*dt,Ut=xe*ft-ut*dt,Rt=it*ft-ut*Mt,Ft=gt*wt-xt*yt,Gt=gt*At-mt*yt,_t=gt*Lt-Dt*yt,kt=xt*At-mt*wt,Ot=xt*Lt-Dt*wt,zt=mt*Lt-Dt*At,Xt=bt*zt-vt*Ot+Qt*kt+Ct*_t-Ut*Gt+Rt*Ft;return Xt?(Xt=1/Xt,te[0]=(dt*zt-Mt*Ot+ft*kt)*Xt,te[1]=(it*Ot-xe*zt-ut*kt)*Xt,te[2]=(wt*Rt-At*Ut+Lt*Ct)*Xt,te[3]=(mt*Ut-xt*Rt-Dt*Ct)*Xt,te[4]=(Mt*_t-ht*zt-ft*Gt)*Xt,te[5]=(ne*zt-it*_t+ut*Gt)*Xt,te[6]=(At*Qt-yt*Rt-Lt*vt)*Xt,te[7]=(gt*Rt-mt*Qt+Dt*vt)*Xt,te[8]=(ht*Ot-dt*_t+ft*Ft)*Xt,te[9]=(xe*_t-ne*Ot-ut*Ft)*Xt,te[10]=(yt*Ut-wt*Qt+Lt*bt)*Xt,te[11]=(xt*Qt-gt*Ut-Dt*bt)*Xt,te[12]=(dt*Gt-ht*kt-Mt*Ft)*Xt,te[13]=(ne*kt-xe*Gt+it*Ft)*Xt,te[14]=(wt*vt-yt*Ct-At*bt)*Xt,te[15]=(gt*Ct-xt*vt+mt*bt)*Xt,te):null},mat4$2.adjoint=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[7],gt=ee[8],xt=ee[9],mt=ee[10],Dt=ee[11],yt=ee[12],wt=ee[13],At=ee[14],Lt=ee[15];return te[0]=dt*(mt*Lt-Dt*At)-xt*(Mt*Lt-ft*At)+wt*(Mt*Dt-ft*mt),te[1]=-(xe*(mt*Lt-Dt*At)-xt*(it*Lt-ut*At)+wt*(it*Dt-ut*mt)),te[2]=xe*(Mt*Lt-ft*At)-dt*(it*Lt-ut*At)+wt*(it*ft-ut*Mt),te[3]=-(xe*(Mt*Dt-ft*mt)-dt*(it*Dt-ut*mt)+xt*(it*ft-ut*Mt)),te[4]=-(ht*(mt*Lt-Dt*At)-gt*(Mt*Lt-ft*At)+yt*(Mt*Dt-ft*mt)),te[5]=ne*(mt*Lt-Dt*At)-gt*(it*Lt-ut*At)+yt*(it*Dt-ut*mt),te[6]=-(ne*(Mt*Lt-ft*At)-ht*(it*Lt-ut*At)+yt*(it*ft-ut*Mt)),te[7]=ne*(Mt*Dt-ft*mt)-ht*(it*Dt-ut*mt)+gt*(it*ft-ut*Mt),te[8]=ht*(xt*Lt-Dt*wt)-gt*(dt*Lt-ft*wt)+yt*(dt*Dt-ft*xt),te[9]=-(ne*(xt*Lt-Dt*wt)-gt*(xe*Lt-ut*wt)+yt*(xe*Dt-ut*xt)),te[10]=ne*(dt*Lt-ft*wt)-ht*(xe*Lt-ut*wt)+yt*(xe*ft-ut*dt),te[11]=-(ne*(dt*Dt-ft*xt)-ht*(xe*Dt-ut*xt)+gt*(xe*ft-ut*dt)),te[12]=-(ht*(xt*At-mt*wt)-gt*(dt*At-Mt*wt)+yt*(dt*mt-Mt*xt)),te[13]=ne*(xt*At-mt*wt)-gt*(xe*At-it*wt)+yt*(xe*mt-it*xt),te[14]=-(ne*(dt*At-Mt*wt)-ht*(xe*At-it*wt)+yt*(xe*Mt-it*dt)),te[15]=ne*(dt*mt-Mt*xt)-ht*(xe*mt-it*xt)+gt*(xe*Mt-it*dt),te},mat4$2.determinant=function(te){var ee=te[0],ne=te[1],xe=te[2],it=te[3],ut=te[4],ht=te[5],dt=te[6],Mt=te[7],ft=te[8],gt=te[9],xt=te[10],mt=te[11],Dt=te[12],yt=te[13],wt=te[14],At=te[15],Lt=ee*ht-ne*ut,bt=ee*dt-xe*ut,vt=ee*Mt-it*ut,Qt=ne*dt-xe*ht,Ct=ne*Mt-it*ht,Ut=xe*Mt-it*dt,Rt=ft*yt-gt*Dt,Ft=ft*wt-xt*Dt,Gt=ft*At-mt*Dt,_t=gt*wt-xt*yt,kt=gt*At-mt*yt,Ot=xt*At-mt*wt;return Lt*Ot-bt*kt+vt*_t+Qt*Gt-Ct*Ft+Ut*Rt},mat4$2.multiply=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=ee[4],Mt=ee[5],ft=ee[6],gt=ee[7],xt=ee[8],mt=ee[9],Dt=ee[10],yt=ee[11],wt=ee[12],At=ee[13],Lt=ee[14],bt=ee[15],vt=ne[0],Qt=ne[1],Ct=ne[2],Ut=ne[3];return te[0]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[1]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[2]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[3]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[4],Qt=ne[5],Ct=ne[6],Ut=ne[7],te[4]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[5]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[6]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[7]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[8],Qt=ne[9],Ct=ne[10],Ut=ne[11],te[8]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[9]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[10]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[11]=vt*ht+Qt*gt+Ct*yt+Ut*bt,vt=ne[12],Qt=ne[13],Ct=ne[14],Ut=ne[15],te[12]=vt*xe+Qt*dt+Ct*xt+Ut*wt,te[13]=vt*it+Qt*Mt+Ct*mt+Ut*At,te[14]=vt*ut+Qt*ft+Ct*Dt+Ut*Lt,te[15]=vt*ht+Qt*gt+Ct*yt+Ut*bt,te},mat4$2.multiplyAffine=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[4],dt=ee[5],Mt=ee[6],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[12],Dt=ee[13],yt=ee[14],wt=ne[0],At=ne[1],Lt=ne[2];return te[0]=wt*xe+At*ht+Lt*ft,te[1]=wt*it+At*dt+Lt*gt,te[2]=wt*ut+At*Mt+Lt*xt,wt=ne[4],At=ne[5],Lt=ne[6],te[4]=wt*xe+At*ht+Lt*ft,te[5]=wt*it+At*dt+Lt*gt,te[6]=wt*ut+At*Mt+Lt*xt,wt=ne[8],At=ne[9],Lt=ne[10],te[8]=wt*xe+At*ht+Lt*ft,te[9]=wt*it+At*dt+Lt*gt,te[10]=wt*ut+At*Mt+Lt*xt,wt=ne[12],At=ne[13],Lt=ne[14],te[12]=wt*xe+At*ht+Lt*ft+mt,te[13]=wt*it+At*dt+Lt*gt+Dt,te[14]=wt*ut+At*Mt+Lt*xt+yt,te},mat4$2.mul=mat4$2.multiply,mat4$2.mulAffine=mat4$2.multiplyAffine,mat4$2.translate=function(te,ee,ne){var xe=ne[0],it=ne[1],ut=ne[2],ht,dt,Mt,ft,gt,xt,mt,Dt,yt,wt,At,Lt;return ee===te?(te[12]=ee[0]*xe+ee[4]*it+ee[8]*ut+ee[12],te[13]=ee[1]*xe+ee[5]*it+ee[9]*ut+ee[13],te[14]=ee[2]*xe+ee[6]*it+ee[10]*ut+ee[14],te[15]=ee[3]*xe+ee[7]*it+ee[11]*ut+ee[15]):(ht=ee[0],dt=ee[1],Mt=ee[2],ft=ee[3],gt=ee[4],xt=ee[5],mt=ee[6],Dt=ee[7],yt=ee[8],wt=ee[9],At=ee[10],Lt=ee[11],te[0]=ht,te[1]=dt,te[2]=Mt,te[3]=ft,te[4]=gt,te[5]=xt,te[6]=mt,te[7]=Dt,te[8]=yt,te[9]=wt,te[10]=At,te[11]=Lt,te[12]=ht*xe+gt*it+yt*ut+ee[12],te[13]=dt*xe+xt*it+wt*ut+ee[13],te[14]=Mt*xe+mt*it+At*ut+ee[14],te[15]=ft*xe+Dt*it+Lt*ut+ee[15]),te},mat4$2.scale=function(te,ee,ne){var xe=ne[0],it=ne[1],ut=ne[2];return te[0]=ee[0]*xe,te[1]=ee[1]*xe,te[2]=ee[2]*xe,te[3]=ee[3]*xe,te[4]=ee[4]*it,te[5]=ee[5]*it,te[6]=ee[6]*it,te[7]=ee[7]*it,te[8]=ee[8]*ut,te[9]=ee[9]*ut,te[10]=ee[10]*ut,te[11]=ee[11]*ut,te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15],te},mat4$2.rotate=function(te,ee,ne,xe){var it=xe[0],ut=xe[1],ht=xe[2],dt=Math.sqrt(it*it+ut*ut+ht*ht),Mt,ft,gt,xt,mt,Dt,yt,wt,At,Lt,bt,vt,Qt,Ct,Ut,Rt,Ft,Gt,_t,kt,Ot,zt,Xt,Zt;return Math.abs(dt)<GLMAT_EPSILON?null:(dt=1/dt,it*=dt,ut*=dt,ht*=dt,Mt=Math.sin(ne),ft=Math.cos(ne),gt=1-ft,xt=ee[0],mt=ee[1],Dt=ee[2],yt=ee[3],wt=ee[4],At=ee[5],Lt=ee[6],bt=ee[7],vt=ee[8],Qt=ee[9],Ct=ee[10],Ut=ee[11],Rt=it*it*gt+ft,Ft=ut*it*gt+ht*Mt,Gt=ht*it*gt-ut*Mt,_t=it*ut*gt-ht*Mt,kt=ut*ut*gt+ft,Ot=ht*ut*gt+it*Mt,zt=it*ht*gt+ut*Mt,Xt=ut*ht*gt-it*Mt,Zt=ht*ht*gt+ft,te[0]=xt*Rt+wt*Ft+vt*Gt,te[1]=mt*Rt+At*Ft+Qt*Gt,te[2]=Dt*Rt+Lt*Ft+Ct*Gt,te[3]=yt*Rt+bt*Ft+Ut*Gt,te[4]=xt*_t+wt*kt+vt*Ot,te[5]=mt*_t+At*kt+Qt*Ot,te[6]=Dt*_t+Lt*kt+Ct*Ot,te[7]=yt*_t+bt*kt+Ut*Ot,te[8]=xt*zt+wt*Xt+vt*Zt,te[9]=mt*zt+At*Xt+Qt*Zt,te[10]=Dt*zt+Lt*Xt+Ct*Zt,te[11]=yt*zt+bt*Xt+Ut*Zt,ee!==te&&(te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te)},mat4$2.rotateX=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[4],ht=ee[5],dt=ee[6],Mt=ee[7],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[11];return ee!==te&&(te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[4]=ut*it+ft*xe,te[5]=ht*it+gt*xe,te[6]=dt*it+xt*xe,te[7]=Mt*it+mt*xe,te[8]=ft*it-ut*xe,te[9]=gt*it-ht*xe,te[10]=xt*it-dt*xe,te[11]=mt*it-Mt*xe,te},mat4$2.rotateY=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[0],ht=ee[1],dt=ee[2],Mt=ee[3],ft=ee[8],gt=ee[9],xt=ee[10],mt=ee[11];return ee!==te&&(te[4]=ee[4],te[5]=ee[5],te[6]=ee[6],te[7]=ee[7],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[0]=ut*it-ft*xe,te[1]=ht*it-gt*xe,te[2]=dt*it-xt*xe,te[3]=Mt*it-mt*xe,te[8]=ut*xe+ft*it,te[9]=ht*xe+gt*it,te[10]=dt*xe+xt*it,te[11]=Mt*xe+mt*it,te},mat4$2.rotateZ=function(te,ee,ne){var xe=Math.sin(ne),it=Math.cos(ne),ut=ee[0],ht=ee[1],dt=ee[2],Mt=ee[3],ft=ee[4],gt=ee[5],xt=ee[6],mt=ee[7];return ee!==te&&(te[8]=ee[8],te[9]=ee[9],te[10]=ee[10],te[11]=ee[11],te[12]=ee[12],te[13]=ee[13],te[14]=ee[14],te[15]=ee[15]),te[0]=ut*it+ft*xe,te[1]=ht*it+gt*xe,te[2]=dt*it+xt*xe,te[3]=Mt*it+mt*xe,te[4]=ft*it-ut*xe,te[5]=gt*it-ht*xe,te[6]=xt*it-dt*xe,te[7]=mt*it-Mt*xe,te},mat4$2.fromRotationTranslation=function(te,ee,ne){var xe=ee[0],it=ee[1],ut=ee[2],ht=ee[3],dt=xe+xe,Mt=it+it,ft=ut+ut,gt=xe*dt,xt=xe*Mt,mt=xe*ft,Dt=it*Mt,yt=it*ft,wt=ut*ft,At=ht*dt,Lt=ht*Mt,bt=ht*ft;return te[0]=1-(Dt+wt),te[1]=xt+bt,te[2]=mt-Lt,te[3]=0,te[4]=xt-bt,te[5]=1-(gt+wt),te[6]=yt+At,te[7]=0,te[8]=mt+Lt,te[9]=yt-At,te[10]=1-(gt+Dt),te[11]=0,te[12]=ne[0],te[13]=ne[1],te[14]=ne[2],te[15]=1,te},mat4$2.fromQuat=function(te,ee){var ne=ee[0],xe=ee[1],it=ee[2],ut=ee[3],ht=ne+ne,dt=xe+xe,Mt=it+it,ft=ne*ht,gt=xe*ht,xt=xe*dt,mt=it*ht,Dt=it*dt,yt=it*Mt,wt=ut*ht,At=ut*dt,Lt=ut*Mt;return te[0]=1-xt-yt,te[1]=gt+Lt,te[2]=mt-At,te[3]=0,te[4]=gt-Lt,te[5]=1-ft-yt,te[6]=Dt+wt,te[7]=0,te[8]=mt+At,te[9]=Dt-wt,te[10]=1-ft-xt,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,te},mat4$2.frustum=function(te,ee,ne,xe,it,ut,ht){var dt=1/(ne-ee),Mt=1/(it-xe),ft=1/(ut-ht);return te[0]=ut*2*dt,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=ut*2*Mt,te[6]=0,te[7]=0,te[8]=(ne+ee)*dt,te[9]=(it+xe)*Mt,te[10]=(ht+ut)*ft,te[11]=-1,te[12]=0,te[13]=0,te[14]=ht*ut*2*ft,te[15]=0,te},mat4$2.perspective=function(te,ee,ne,xe,it){var ut=1/Math.tan(ee/2),ht=1/(xe-it);return te[0]=ut/ne,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=ut,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=(it+xe)*ht,te[11]=-1,te[12]=0,te[13]=0,te[14]=2*it*xe*ht,te[15]=0,te},mat4$2.ortho=function(te,ee,ne,xe,it,ut,ht){var dt=1/(ee-ne),Mt=1/(xe-it),ft=1/(ut-ht);return te[0]=-2*dt,te[1]=0,te[2]=0,te[3]=0,te[4]=0,te[5]=-2*Mt,te[6]=0,te[7]=0,te[8]=0,te[9]=0,te[10]=2*ft,te[11]=0,te[12]=(ee+ne)*dt,te[13]=(it+xe)*Mt,te[14]=(ht+ut)*ft,te[15]=1,te},mat4$2.lookAt=function(te,ee,ne,xe){var it,ut,ht,dt,Mt,ft,gt,xt,mt,Dt,yt=ee[0],wt=ee[1],At=ee[2],Lt=xe[0],bt=xe[1],vt=xe[2],Qt=ne[0],Ct=ne[1],Ut=ne[2];return Math.abs(yt-Qt)<GLMAT_EPSILON&&Math.abs(wt-Ct)<GLMAT_EPSILON&&Math.abs(At-Ut)<GLMAT_EPSILON?mat4$2.identity(te):(gt=yt-Qt,xt=wt-Ct,mt=At-Ut,Dt=1/Math.sqrt(gt*gt+xt*xt+mt*mt),gt*=Dt,xt*=Dt,mt*=Dt,it=bt*mt-vt*xt,ut=vt*gt-Lt*mt,ht=Lt*xt-bt*gt,Dt=Math.sqrt(it*it+ut*ut+ht*ht),Dt?(Dt=1/Dt,it*=Dt,ut*=Dt,ht*=Dt):(it=0,ut=0,ht=0),dt=xt*ht-mt*ut,Mt=mt*it-gt*ht,ft=gt*ut-xt*it,Dt=Math.sqrt(dt*dt+Mt*Mt+ft*ft),Dt?(Dt=1/Dt,dt*=Dt,Mt*=Dt,ft*=Dt):(dt=0,Mt=0,ft=0),te[0]=it,te[1]=dt,te[2]=gt,te[3]=0,te[4]=ut,te[5]=Mt,te[6]=xt,te[7]=0,te[8]=ht,te[9]=ft,te[10]=mt,te[11]=0,te[12]=-(it*yt+ut*wt+ht*At),te[13]=-(dt*yt+Mt*wt+ft*At),te[14]=-(gt*yt+xt*wt+mt*At),te[15]=1,te)},mat4$2.frob=function(te){return Math.sqrt(Math.pow(te[0],2)+Math.pow(te[1],2)+Math.pow(te[2],2)+Math.pow(te[3],2)+Math.pow(te[4],2)+Math.pow(te[5],2)+Math.pow(te[6],2)+Math.pow(te[7],2)+Math.pow(te[8],2)+Math.pow(te[9],2)+Math.pow(te[10],2)+Math.pow(te[11],2)+Math.pow(te[12],2)+Math.pow(te[13],2)+Math.pow(te[14],2)+Math.pow(te[15],2))};var Matrix4$1=function(){this._axisX=new Vector3$1,this._axisY=new Vector3$1,this._axisZ=new Vector3$1,this.array=mat4$2.create(),this._dirty=!0};Matrix4$1.prototype={constructor:Matrix4$1,setArray:function(te){for(var ee=0;ee<this.array.length;ee++)this.array[ee]=te[ee];return this._dirty=!0,this},adjoint:function(){return mat4$2.adjoint(this.array,this.array),this._dirty=!0,this},clone:function(){return new Matrix4$1().copy(this)},copy:function(te){return mat4$2.copy(this.array,te.array),this._dirty=!0,this},determinant:function(){return mat4$2.determinant(this.array)},fromQuat:function(te){return mat4$2.fromQuat(this.array,te.array),this._dirty=!0,this},fromRotationTranslation:function(te,ee){return mat4$2.fromRotationTranslation(this.array,te.array,ee.array),this._dirty=!0,this},fromMat2d:function(te){return Matrix4$1.fromMat2d(this,te),this},frustum:function(te,ee,ne,xe,it,ut){return mat4$2.frustum(this.array,te,ee,ne,xe,it,ut),this._dirty=!0,this},identity:function(){return mat4$2.identity(this.array),this._dirty=!0,this},invert:function(){return mat4$2.invert(this.array,this.array),this._dirty=!0,this},lookAt:function(te,ee,ne){return mat4$2.lookAt(this.array,te.array,ee.array,ne.array),this._dirty=!0,this},mul:function(te){return mat4$2.mul(this.array,this.array,te.array),this._dirty=!0,this},mulLeft:function(te){return mat4$2.mul(this.array,te.array,this.array),this._dirty=!0,this},multiply:function(te){return mat4$2.multiply(this.array,this.array,te.array),this._dirty=!0,this},multiplyLeft:function(te){return mat4$2.multiply(this.array,te.array,this.array),this._dirty=!0,this},ortho:function(te,ee,ne,xe,it,ut){return mat4$2.ortho(this.array,te,ee,ne,xe,it,ut),this._dirty=!0,this},perspective:function(te,ee,ne,xe){return mat4$2.perspective(this.array,te,ee,ne,xe),this._dirty=!0,this},rotate:function(te,ee){return mat4$2.rotate(this.array,this.array,te,ee.array),this._dirty=!0,this},rotateX:function(te){return mat4$2.rotateX(this.array,this.array,te),this._dirty=!0,this},rotateY:function(te){return mat4$2.rotateY(this.array,this.array,te),this._dirty=!0,this},rotateZ:function(te){return mat4$2.rotateZ(this.array,this.array,te),this._dirty=!0,this},scale:function(te){return mat4$2.scale(this.array,this.array,te.array),this._dirty=!0,this},translate:function(te){return mat4$2.translate(this.array,this.array,te.array),this._dirty=!0,this},transpose:function(){return mat4$2.transpose(this.array,this.array),this._dirty=!0,this},decomposeMatrix:function(){var te=vec3$f.create(),ee=vec3$f.create(),ne=vec3$f.create(),xe=mat3$1.create();return function(it,ut,ht){var dt=this.array;vec3$f.set(te,dt[0],dt[1],dt[2]),vec3$f.set(ee,dt[4],dt[5],dt[6]),vec3$f.set(ne,dt[8],dt[9],dt[10]);var Mt=vec3$f.length(te),ft=vec3$f.length(ee),gt=vec3$f.length(ne),xt=this.determinant();xt<0&&(Mt=-Mt),it&&it.set(Mt,ft,gt),ht.set(dt[12],dt[13],dt[14]),mat3$1.fromMat4(xe,dt),xe[0]/=Mt,xe[1]/=Mt,xe[2]/=Mt,xe[3]/=ft,xe[4]/=ft,xe[5]/=ft,xe[6]/=gt,xe[7]/=gt,xe[8]/=gt,quat.fromMat3(ut.array,xe),quat.normalize(ut.array,ut.array),ut._dirty=!0,ht._dirty=!0}}(),toString:function(){return"["+Array.prototype.join.call(this.array,",")+"]"},toArray:function(){return Array.prototype.slice.call(this.array)}};var defineProperty$3=Object.defineProperty;if(defineProperty$3){var proto$2=Matrix4$1.prototype;defineProperty$3(proto$2,"z",{get:function(){var te=this.array;return this._axisZ.set(te[8],te[9],te[10]),this._axisZ},set:function(te){var ee=this.array;te=te.array,ee[8]=te[0],ee[9]=te[1],ee[10]=te[2],this._dirty=!0}}),defineProperty$3(proto$2,"y",{get:function(){var te=this.array;return this._axisY.set(te[4],te[5],te[6]),this._axisY},set:function(te){var ee=this.array;te=te.array,ee[4]=te[0],ee[5]=te[1],ee[6]=te[2],this._dirty=!0}}),defineProperty$3(proto$2,"x",{get:function(){var te=this.array;return this._axisX.set(te[0],te[1],te[2]),this._axisX},set:function(te){var ee=this.array;te=te.array,ee[0]=te[0],ee[1]=te[1],ee[2]=te[2],this._dirty=!0}})}Matrix4$1.adjoint=function(te,ee){return mat4$2.adjoint(te.array,ee.array),te._dirty=!0,te},Matrix4$1.copy=function(te,ee){return mat4$2.copy(te.array,ee.array),te._dirty=!0,te},Matrix4$1.determinant=function(te){return mat4$2.determinant(te.array)},Matrix4$1.identity=function(te){return mat4$2.identity(te.array),te._dirty=!0,te},Matrix4$1.ortho=function(te,ee,ne,xe,it,ut,ht){return mat4$2.ortho(te.array,ee,ne,xe,it,ut,ht),te._dirty=!0,te},Matrix4$1.perspective=function(te,ee,ne,xe,it){return mat4$2.perspective(te.array,ee,ne,xe,it),te._dirty=!0,te},Matrix4$1.lookAt=function(te,ee,ne,xe){return mat4$2.lookAt(te.array,ee.array,ne.array,xe.array),te._dirty=!0,te},Matrix4$1.invert=function(te,ee){return mat4$2.invert(te.array,ee.array),te._dirty=!0,te},Matrix4$1.mul=function(te,ee,ne){return mat4$2.mul(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.multiply=Matrix4$1.mul,Matrix4$1.fromQuat=function(te,ee){return mat4$2.fromQuat(te.array,ee.array),te._dirty=!0,te},Matrix4$1.fromRotationTranslation=function(te,ee,ne){return mat4$2.fromRotationTranslation(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.fromMat2d=function(xe,ne){xe._dirty=!0;var ne=ne.array,xe=xe.array;return xe[0]=ne[0],xe[4]=ne[2],xe[12]=ne[4],xe[1]=ne[1],xe[5]=ne[3],xe[13]=ne[5],xe},Matrix4$1.rotate=function(te,ee,ne,xe){return mat4$2.rotate(te.array,ee.array,ne,xe.array),te._dirty=!0,te},Matrix4$1.rotateX=function(te,ee,ne){return mat4$2.rotateX(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.rotateY=function(te,ee,ne){return mat4$2.rotateY(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.rotateZ=function(te,ee,ne){return mat4$2.rotateZ(te.array,ee.array,ne),te._dirty=!0,te},Matrix4$1.scale=function(te,ee,ne){return mat4$2.scale(te.array,ee.array,ne.array),te._dirty=!0,te},Matrix4$1.transpose=function(te,ee){return mat4$2.transpose(te.array,ee.array),te._dirty=!0,te},Matrix4$1.translate=function(te,ee,ne){return mat4$2.translate(te.array,ee.array,ne.array),te._dirty=!0,te};var vec3Set$2=vec3$f.set,vec3Copy$1=vec3$f.copy,BoundingBox=function(te,ee){this.min=te||new Vector3$1(1/0,1/0,1/0),this.max=ee||new Vector3$1(-1/0,-1/0,-1/0),this.vertices=null};BoundingBox.prototype={constructor:BoundingBox,updateFromVertices:function(te){if(te.length>0){var ee=this.min,ne=this.max,xe=ee.array,it=ne.array;vec3Copy$1(xe,te[0]),vec3Copy$1(it,te[0]);for(var ut=1;ut<te.length;ut++){var ht=te[ut];ht[0]<xe[0]&&(xe[0]=ht[0]),ht[1]<xe[1]&&(xe[1]=ht[1]),ht[2]<xe[2]&&(xe[2]=ht[2]),ht[0]>it[0]&&(it[0]=ht[0]),ht[1]>it[1]&&(it[1]=ht[1]),ht[2]>it[2]&&(it[2]=ht[2])}ee._dirty=!0,ne._dirty=!0}},union:function(te){var ee=this.min,ne=this.max;return vec3$f.min(ee.array,ee.array,te.min.array),vec3$f.max(ne.array,ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},intersection:function(te){var ee=this.min,ne=this.max;return vec3$f.max(ee.array,ee.array,te.min.array),vec3$f.min(ne.array,ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},intersectBoundingBox:function(te){var ee=this.min.array,ne=this.max.array,xe=te.min.array,it=te.max.array;return!(ee[0]>it[0]||ee[1]>it[1]||ee[2]>it[2]||ne[0]<xe[0]||ne[1]<xe[1]||ne[2]<xe[2])},containBoundingBox:function(te){var ee=this.min.array,ne=this.max.array,xe=te.min.array,it=te.max.array;return ee[0]<=xe[0]&&ee[1]<=xe[1]&&ee[2]<=xe[2]&&ne[0]>=it[0]&&ne[1]>=it[1]&&ne[2]>=it[2]},containPoint:function(te){var ee=this.min.array,ne=this.max.array,xe=te.array;return ee[0]<=xe[0]&&ee[1]<=xe[1]&&ee[2]<=xe[2]&&ne[0]>=xe[0]&&ne[1]>=xe[1]&&ne[2]>=xe[2]},isFinite:function(){var te=this.min.array,ee=this.max.array;return isFinite(te[0])&&isFinite(te[1])&&isFinite(te[2])&&isFinite(ee[0])&&isFinite(ee[1])&&isFinite(ee[2])},applyTransform:function(te){this.transformFrom(this,te)},transformFrom:function(){var te=vec3$f.create(),ee=vec3$f.create(),ne=vec3$f.create(),xe=vec3$f.create(),it=vec3$f.create(),ut=vec3$f.create();return function(ht,dt){var Mt=ht.min.array,ft=ht.max.array,gt=dt.array;return te[0]=gt[0]*Mt[0],te[1]=gt[1]*Mt[0],te[2]=gt[2]*Mt[0],ee[0]=gt[0]*ft[0],ee[1]=gt[1]*ft[0],ee[2]=gt[2]*ft[0],ne[0]=gt[4]*Mt[1],ne[1]=gt[5]*Mt[1],ne[2]=gt[6]*Mt[1],xe[0]=gt[4]*ft[1],xe[1]=gt[5]*ft[1],xe[2]=gt[6]*ft[1],it[0]=gt[8]*Mt[2],it[1]=gt[9]*Mt[2],it[2]=gt[10]*Mt[2],ut[0]=gt[8]*ft[2],ut[1]=gt[9]*ft[2],ut[2]=gt[10]*ft[2],Mt=this.min.array,ft=this.max.array,Mt[0]=Math.min(te[0],ee[0])+Math.min(ne[0],xe[0])+Math.min(it[0],ut[0])+gt[12],Mt[1]=Math.min(te[1],ee[1])+Math.min(ne[1],xe[1])+Math.min(it[1],ut[1])+gt[13],Mt[2]=Math.min(te[2],ee[2])+Math.min(ne[2],xe[2])+Math.min(it[2],ut[2])+gt[14],ft[0]=Math.max(te[0],ee[0])+Math.max(ne[0],xe[0])+Math.max(it[0],ut[0])+gt[12],ft[1]=Math.max(te[1],ee[1])+Math.max(ne[1],xe[1])+Math.max(it[1],ut[1])+gt[13],ft[2]=Math.max(te[2],ee[2])+Math.max(ne[2],xe[2])+Math.max(it[2],ut[2])+gt[14],this.min._dirty=!0,this.max._dirty=!0,this}}(),applyProjection:function(te){var ee=this.min.array,ne=this.max.array,xe=te.array,it=ee[0],ut=ee[1],ht=ee[2],dt=ne[0],Mt=ne[1],ft=ee[2],gt=ne[0],xt=ne[1],mt=ne[2];if(xe[15]===1)ee[0]=xe[0]*it+xe[12],ee[1]=xe[5]*ut+xe[13],ne[2]=xe[10]*ht+xe[14],ne[0]=xe[0]*gt+xe[12],ne[1]=xe[5]*xt+xe[13],ee[2]=xe[10]*mt+xe[14];else{var Dt=-1/ht;ee[0]=xe[0]*it*Dt,ee[1]=xe[5]*ut*Dt,ne[2]=(xe[10]*ht+xe[14])*Dt,Dt=-1/ft,ne[0]=xe[0]*dt*Dt,ne[1]=xe[5]*Mt*Dt,Dt=-1/mt,ee[2]=(xe[10]*mt+xe[14])*Dt}return this.min._dirty=!0,this.max._dirty=!0,this},updateVertices:function(){var te=this.vertices;if(!te){te=[];for(var ee=0;ee<8;ee++)te[ee]=vec3$f.fromValues(0,0,0);this.vertices=te}var ne=this.min.array,xe=this.max.array;return vec3Set$2(te[0],ne[0],ne[1],ne[2]),vec3Set$2(te[1],ne[0],xe[1],ne[2]),vec3Set$2(te[2],xe[0],ne[1],ne[2]),vec3Set$2(te[3],xe[0],xe[1],ne[2]),vec3Set$2(te[4],ne[0],ne[1],xe[2]),vec3Set$2(te[5],ne[0],xe[1],xe[2]),vec3Set$2(te[6],xe[0],ne[1],xe[2]),vec3Set$2(te[7],xe[0],xe[1],xe[2]),this},copy:function(te){var ee=this.min,ne=this.max;return vec3Copy$1(ee.array,te.min.array),vec3Copy$1(ne.array,te.max.array),ee._dirty=!0,ne._dirty=!0,this},clone:function(){var te=new BoundingBox;return te.copy(this),te}};var nameId=0,Node$2=Base.extend({name:"",position:null,rotation:null,scale:null,worldTransform:null,localTransform:null,autoUpdateLocalTransform:!0,_parent:null,_scene:null,_needsUpdateWorldTransform:!0,_inIterating:!1,__depth:0},function(){this.name||(this.name=(this.type||"NODE")+"_"+nameId++),this.position||(this.position=new Vector3$1),this.rotation||(this.rotation=new Quaternion$1),this.scale||(this.scale=new Vector3$1(1,1,1)),this.worldTransform=new Matrix4$1,this.localTransform=new Matrix4$1,this._children=[]},{target:null,invisible:!1,isSkinnedMesh:function(){return!1},isRenderable:function(){return!1},setName:function(te){var ee=this._scene;if(ee){var ne=ee._nodeRepository;delete ne[this.name],ne[te]=this}this.name=te},add:function(te){var ee=te._parent;if(ee!==this){ee&&ee.remove(te),te._parent=this,this._children.push(te);var ne=this._scene;ne&&ne!==te.scene&&te.traverse(this._addSelfToScene,this),te._needsUpdateWorldTransform=!0}},remove:function(te){var ee=this._children,ne=ee.indexOf(te);ne<0||(ee.splice(ne,1),te._parent=null,this._scene&&te.traverse(this._removeSelfFromScene,this))},removeAll:function(){for(var te=this._children,ee=0;ee<te.length;ee++)te[ee]._parent=null,this._scene&&te[ee].traverse(this._removeSelfFromScene,this);this._children=[]},getScene:function(){return this._scene},getParent:function(){return this._parent},_removeSelfFromScene:function(te){te._scene.removeFromScene(te),te._scene=null},_addSelfToScene:function(te){this._scene.addToScene(te),te._scene=this._scene},isAncestor:function(te){for(var ee=te._parent;ee;){if(ee===this)return!0;ee=ee._parent}return!1},children:function(){return this._children.slice()},childAt:function(te){return this._children[te]},getChildByName:function(te){for(var ee=this._children,ne=0;ne<ee.length;ne++)if(ee[ne].name===te)return ee[ne]},getDescendantByName:function(te){for(var ee=this._children,ne=0;ne<ee.length;ne++){var xe=ee[ne];if(xe.name===te)return xe;var it=xe.getDescendantByName(te);if(it)return it}},queryNode:function(te){if(te){for(var ee=te.split("/"),ne=this,xe=0;xe<ee.length;xe++){var it=ee[xe];if(it){for(var ut=!1,ht=ne._children,dt=0;dt<ht.length;dt++){var Mt=ht[dt];if(Mt.name===it){ne=Mt,ut=!0;break}}if(!ut)return}}return ne}},getPath:function(te){if(!this._parent)return"/";for(var ee=this._parent,ne=this.name;ee._parent&&(ne=ee.name+"/"+ne,ee._parent!=te);)ee=ee._parent;return!ee._parent&&te?null:ne},traverse:function(te,ee){te.call(ee,this);for(var ne=this._children,xe=0,it=ne.length;xe<it;xe++)ne[xe].traverse(te,ee)},eachChild:function(te,ee){for(var ne=this._children,xe=0,it=ne.length;xe<it;xe++){var ut=ne[xe];te.call(ee,ut,xe)}},setLocalTransform:function(te){mat4$2.copy(this.localTransform.array,te.array),this.decomposeLocalTransform()},decomposeLocalTransform:function(te){var ee=te?null:this.scale;this.localTransform.decomposeMatrix(ee,this.rotation,this.position)},setWorldTransform:function(te){mat4$2.copy(this.worldTransform.array,te.array),this.decomposeWorldTransform()},decomposeWorldTransform:function(){var te=mat4$2.create();return function(ee){var ne=this.localTransform,xe=this.worldTransform;this._parent?(mat4$2.invert(te,this._parent.worldTransform.array),mat4$2.multiply(ne.array,te,xe.array)):mat4$2.copy(ne.array,xe.array);var it=ee?null:this.scale;ne.decomposeMatrix(it,this.rotation,this.position)}}(),transformNeedsUpdate:function(){return this.position._dirty||this.rotation._dirty||this.scale._dirty},updateLocalTransform:function(){var te=this.position,ee=this.rotation,ne=this.scale;if(this.transformNeedsUpdate()){var xe=this.localTransform.array;mat4$2.fromRotationTranslation(xe,ee.array,te.array),mat4$2.scale(xe,xe,ne.array),ee._dirty=!1,ne._dirty=!1,te._dirty=!1,this._needsUpdateWorldTransform=!0}},_updateWorldTransformTopDown:function(){var te=this.localTransform.array,ee=this.worldTransform.array;this._parent?mat4$2.multiplyAffine(ee,this._parent.worldTransform.array,te):mat4$2.copy(ee,te)},updateWorldTransform:function(){for(var te=this;te&&te.getParent()&&te.getParent().transformNeedsUpdate();)te=te.getParent();te.update()},update:function(te){this.autoUpdateLocalTransform?this.updateLocalTransform():te=!0,(te||this._needsUpdateWorldTransform)&&(this._updateWorldTransformTopDown(),te=!0,this._needsUpdateWorldTransform=!1);for(var ee=this._children,ne=0,xe=ee.length;ne<xe;ne++)ee[ne].update(te)},getBoundingBox:function(){function te(it){return!it.invisible&&it.geometry}var ee=new BoundingBox,ne=new Matrix4$1,xe=new Matrix4$1;return function(it,ut){return ut=ut||new BoundingBox,this._parent?Matrix4$1.invert(xe,this._parent.worldTransform):Matrix4$1.identity(xe),this.traverse(function(ht){ht.geometry&&ht.geometry.boundingBox&&(ee.copy(ht.geometry.boundingBox),Matrix4$1.multiply(ne,xe,ht.worldTransform),ee.applyTransform(ne),ut.union(ee))},this,te),ut}}(),getWorldPosition:function(te){this.transformNeedsUpdate()&&this.updateWorldTransform();var ee=this.worldTransform.array;if(te){var ne=te.array;return ne[0]=ee[12],ne[1]=ee[13],ne[2]=ee[14],te}else return new Vector3$1(ee[12],ee[13],ee[14])},clone:function(){var te=new this.constructor,ee=this._children;te.setName(this.name),te.position.copy(this.position),te.rotation.copy(this.rotation),te.scale.copy(this.scale);for(var ne=0;ne<ee.length;ne++)te.add(ee[ne].clone());return te},rotateAround:function(){var te=new Vector3$1,ee=new Matrix4$1;return function(ne,xe,it){te.copy(this.position).subtract(ne);var ut=this.localTransform;ut.identity(),ut.translate(ne),ut.rotate(it,xe),ee.fromRotationTranslation(this.rotation,te),ut.multiply(ee),ut.scale(this.scale),this.decomposeLocalTransform(),this._needsUpdateWorldTransform=!0}}(),lookAt:function(){var te=new Matrix4$1;return function(ee,ne){te.lookAt(this.position,ee,ne||this.localTransform.y).invert(),this.setLocalTransform(te),this.target=ee}}()});const glenum={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CW:2304,CCW:2305,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_2D:3553,TEXTURE_CUBE_MAP:34067,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FRAMEBUFFER:36160,RENDERBUFFER:36161,DEPTH_STENCIL:34041,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306};var Renderable=Node$2.extend({material:null,geometry:null,mode:glenum.TRIANGLES,_renderInfo:null},{__program:null,lightGroup:0,renderOrder:0,culling:!0,cullFace:glenum.BACK,frontFace:glenum.CCW,frustumCulling:!0,receiveShadow:!0,castShadow:!0,ignorePicking:!1,ignorePreZ:!1,ignoreGBuffer:!1,isRenderable:function(){return this.geometry&&this.material&&this.material.shader&&!this.invisible&&this.geometry.vertexCount>0},beforeRender:function(te){},afterRender:function(te,ee){},getBoundingBox:function(te,ee){return ee=Node$2.prototype.getBoundingBox.call(this,te,ee),this.geometry&&this.geometry.boundingBox&&ee.union(this.geometry.boundingBox),ee},clone:function(){var te=["castShadow","receiveShadow","mode","culling","cullFace","frontFace","frustumCulling","renderOrder","lineWidth","ignorePicking","ignorePreZ","ignoreGBuffer"];return function(){var ee=Node$2.prototype.clone.call(this);ee.geometry=this.geometry,ee.material=this.material;for(var ne=0;ne<te.length;ne++){var xe=te[ne];ee[xe]!==this[xe]&&(ee[xe]=this[xe])}return ee}}()});Renderable.POINTS=glenum.POINTS,Renderable.LINES=glenum.LINES,Renderable.LINE_LOOP=glenum.LINE_LOOP,Renderable.LINE_STRIP=glenum.LINE_STRIP,Renderable.TRIANGLES=glenum.TRIANGLES,Renderable.TRIANGLE_STRIP=glenum.TRIANGLE_STRIP,Renderable.TRIANGLE_FAN=glenum.TRIANGLE_FAN,Renderable.BACK=glenum.BACK,Renderable.FRONT=glenum.FRONT,Renderable.FRONT_AND_BACK=glenum.FRONT_AND_BACK,Renderable.CW=glenum.CW,Renderable.CCW=glenum.CCW;var Mesh$1=Renderable.extend({skeleton:null,joints:null},function(){this.joints||(this.joints=[])},{offsetMatrix:null,isInstancedMesh:function(){return!1},isSkinnedMesh:function(){return!!(this.skeleton&&this.joints&&this.joints.length>0)},clone:function(){var te=Renderable.prototype.clone.call(this);return te.skeleton=this.skeleton,this.joints&&(te.joints=this.joints.slice()),te}});Mesh$1.POINTS=glenum.POINTS,Mesh$1.LINES=glenum.LINES,Mesh$1.LINE_LOOP=glenum.LINE_LOOP,Mesh$1.LINE_STRIP=glenum.LINE_STRIP,Mesh$1.TRIANGLES=glenum.TRIANGLES,Mesh$1.TRIANGLE_STRIP=glenum.TRIANGLE_STRIP,Mesh$1.TRIANGLE_FAN=glenum.TRIANGLE_FAN,Mesh$1.BACK=glenum.BACK,Mesh$1.FRONT=glenum.FRONT,Mesh$1.FRONT_AND_BACK=glenum.FRONT_AND_BACK,Mesh$1.CW=glenum.CW,Mesh$1.CCW=glenum.CCW;var EXTENSION_LIST=["OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","OES_standard_derivatives","OES_vertex_array_object","OES_element_index_uint","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","EXT_texture_filter_anisotropic","EXT_shader_texture_lod","WEBGL_draw_buffers","EXT_frag_depth","EXT_sRGB","ANGLE_instanced_arrays"],PARAMETER_NAMES=["MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE"];function GLInfo(te){for(var ee={},ne={},xe=0;xe<EXTENSION_LIST.length;xe++){var it=EXTENSION_LIST[xe];ht(it)}for(var xe=0;xe<PARAMETER_NAMES.length;xe++){var ut=PARAMETER_NAMES[xe];ne[ut]=te.getParameter(te[ut])}this.getExtension=function(dt){return dt in ee||ht(dt),ee[dt]},this.getParameter=function(dt){return ne[dt]};function ht(dt){if(te.getExtension){var Mt=te.getExtension(dt);Mt||(Mt=te.getExtension("MOZ_"+dt)),Mt||(Mt=te.getExtension("WEBKIT_"+dt)),ee[dt]=Mt}}}function get$5(te){var ee=new XMLHttpRequest;ee.open("get",te.url),ee.responseType=te.responseType||"text",te.onprogress&&(ee.onprogress=function(ne){if(ne.lengthComputable){var xe=ne.loaded/ne.total;te.onprogress(xe,ne.loaded,ne.total)}else te.onprogress(null)}),ee.onload=function(ne){ee.status>=400?te.onerror&&te.onerror():te.onload&&te.onload(ee.response)},te.onerror&&(ee.onerror=te.onerror),ee.send(null)}const request={get:get$5};var supportWebGL,vendor={};vendor.supportWebGL=function(){if(supportWebGL==null)try{var te=document.createElement("canvas"),ee=te.getContext("webgl")||te.getContext("experimental-webgl");if(!ee)throw new Error}catch{supportWebGL=!1}return supportWebGL},vendor.Int8Array=typeof Int8Array>"u"?Array:Int8Array,vendor.Uint8Array=typeof Uint8Array>"u"?Array:Uint8Array,vendor.Uint16Array=typeof Uint16Array>"u"?Array:Uint16Array,vendor.Uint32Array=typeof Uint32Array>"u"?Array:Uint32Array,vendor.Int16Array=typeof Int16Array>"u"?Array:Int16Array,vendor.Float32Array=typeof Float32Array>"u"?Array:Float32Array,vendor.Float64Array=typeof Float64Array>"u"?Array:Float64Array;var g$1={};typeof window<"u"?g$1=window:typeof globalThis<"u"&&(g$1=globalThis),vendor.requestAnimationFrame=g$1.requestAnimationFrame||g$1.msRequestAnimationFrame||g$1.mozRequestAnimationFrame||g$1.webkitRequestAnimationFrame||function(te){setTimeout(te,16)},vendor.createCanvas=function(){return document.createElement("canvas")},vendor.createImage=function(){return new g$1.Image},vendor.request={get:request.get},vendor.addEventListener=function(te,ee,ne,xe){te.addEventListener(ee,ne,xe)},vendor.removeEventListener=function(te,ee,ne){te.removeEventListener(ee,ne)};var LinkedList=function(){this.head=null,this.tail=null,this._length=0};LinkedList.prototype.insert=function(te){var ee=new LinkedList.Entry(te);return this.insertEntry(ee),ee},LinkedList.prototype.insertAt=function(te,ee){if(!(te<0)){for(var ne=this.head,xe=0;ne&&xe!=te;)ne=ne.next,xe++;if(ne){var it=new LinkedList.Entry(ee),ut=ne.prev;ut?(ut.next=it,it.prev=ut):this.head=it,it.next=ne,ne.prev=it}else this.insert(ee)}},LinkedList.prototype.insertBeforeEntry=function(te,ee){var ne=new LinkedList.Entry(te),xe=ee.prev;xe?(xe.next=ne,ne.prev=xe):this.head=ne,ne.next=ee,ee.prev=ne,this._length++},LinkedList.prototype.insertEntry=function(te){this.head?(this.tail.next=te,te.prev=this.tail,this.tail=te):this.head=this.tail=te,this._length++},LinkedList.prototype.remove=function(te){var ee=te.prev,ne=te.next;ee?ee.next=ne:this.head=ne,ne?ne.prev=ee:this.tail=ee,te.next=te.prev=null,this._length--},LinkedList.prototype.removeAt=function(te){if(!(te<0)){for(var ee=this.head,ne=0;ee&&ne!=te;)ee=ee.next,ne++;if(ee)return this.remove(ee),ee.value}},LinkedList.prototype.getHead=function(){if(this.head)return this.head.value},LinkedList.prototype.getTail=function(){if(this.tail)return this.tail.value},LinkedList.prototype.getAt=function(te){if(!(te<0)){for(var ee=this.head,ne=0;ee&&ne!=te;)ee=ee.next,ne++;return ee.value}},LinkedList.prototype.indexOf=function(te){for(var ee=this.head,ne=0;ee;){if(ee.value===te)return ne;ee=ee.next,ne++}},LinkedList.prototype.length=function(){return this._length},LinkedList.prototype.isEmpty=function(){return this._length===0},LinkedList.prototype.forEach=function(te,ee){for(var ne=this.head,xe=0,it=typeof ee<"u";ne;)it?te.call(ee,ne.value,xe):te(ne.value,xe),ne=ne.next,xe++},LinkedList.prototype.clear=function(){this.tail=this.head=null,this._length=0},LinkedList.Entry=function(te){this.value=te,this.next=null,this.prev=null};var LRU=function(te){this._list=new LinkedList,this._map={},this._maxSize=te||10};LRU.prototype.setMaxSize=function(te){this._maxSize=te},LRU.prototype.put=function(te,ee){if(!this._map.hasOwnProperty(te)){var ne=this._list.length();if(ne>=this._maxSize&&ne>0){var xe=this._list.head;this._list.remove(xe),delete this._map[xe.key]}var it=this._list.insert(ee);it.key=te,this._map[te]=it}},LRU.prototype.get=function(te){var ee=this._map[te];if(this._map.hasOwnProperty(te))return ee!==this._list.tail&&(this._list.remove(ee),this._list.insertEntry(ee)),ee.value},LRU.prototype.remove=function(te){var ee=this._map[te];typeof ee<"u"&&(delete this._map[te],this._list.remove(ee))},LRU.prototype.clear=function(){this._list.clear(),this._map={}};var colorUtil={},kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function clampCssByte(te){return te=Math.round(te),te<0?0:te>255?255:te}function clampCssAngle(te){return te=Math.round(te),te<0?0:te>360?360:te}function clampCssFloat(te){return te<0?0:te>1?1:te}function parseCssInt(te){return te.length&&te.charAt(te.length-1)==="%"?clampCssByte(parseFloat(te)/100*255):clampCssByte(parseInt(te,10))}function parseCssFloat(te){return te.length&&te.charAt(te.length-1)==="%"?clampCssFloat(parseFloat(te)/100):clampCssFloat(parseFloat(te))}function cssHueToRgb(te,ee,ne){return ne<0?ne+=1:ne>1&&(ne-=1),ne*6<1?te+(ee-te)*ne*6:ne*2<1?ee:ne*3<2?te+(ee-te)*(2/3-ne)*6:te}function lerpNumber(te,ee,ne){return te+(ee-te)*ne}function setRgba(te,ee,ne,xe,it){return te[0]=ee,te[1]=ne,te[2]=xe,te[3]=it,te}function copyRgba(te,ee){return te[0]=ee[0],te[1]=ee[1],te[2]=ee[2],te[3]=ee[3],te}var colorCache=new LRU(20),lastRemovedArr=null;function putToCache(te,ee){lastRemovedArr&©Rgba(lastRemovedArr,ee),lastRemovedArr=colorCache.put(te,lastRemovedArr||ee.slice())}colorUtil.parse=function(te,ee){if(te){ee=ee||[];var ne=colorCache.get(te);if(ne)return copyRgba(ee,ne);te=te+"";var xe=te.replace(/ /g,"").toLowerCase();if(xe in kCSSColorTable)return copyRgba(ee,kCSSColorTable[xe]),putToCache(te,ee),ee;if(xe.charAt(0)==="#"){if(xe.length===4){var it=parseInt(xe.substr(1),16);if(!(it>=0&&it<=4095)){setRgba(ee,0,0,0,1);return}return setRgba(ee,(it&3840)>>4|(it&3840)>>8,it&240|(it&240)>>4,it&15|(it&15)<<4,1),putToCache(te,ee),ee}else if(xe.length===7){var it=parseInt(xe.substr(1),16);if(!(it>=0&&it<=16777215)){setRgba(ee,0,0,0,1);return}return setRgba(ee,(it&16711680)>>16,(it&65280)>>8,it&255,1),putToCache(te,ee),ee}return}var ut=xe.indexOf("("),ht=xe.indexOf(")");if(ut!==-1&&ht+1===xe.length){var dt=xe.substr(0,ut),Mt=xe.substr(ut+1,ht-(ut+1)).split(","),ft=1;switch(dt){case"rgba":if(Mt.length!==4){setRgba(ee,0,0,0,1);return}ft=parseCssFloat(Mt.pop());case"rgb":if(Mt.length!==3){setRgba(ee,0,0,0,1);return}return setRgba(ee,parseCssInt(Mt[0]),parseCssInt(Mt[1]),parseCssInt(Mt[2]),ft),putToCache(te,ee),ee;case"hsla":if(Mt.length!==4){setRgba(ee,0,0,0,1);return}return Mt[3]=parseCssFloat(Mt[3]),hsla2rgba(Mt,ee),putToCache(te,ee),ee;case"hsl":if(Mt.length!==3){setRgba(ee,0,0,0,1);return}return hsla2rgba(Mt,ee),putToCache(te,ee),ee;default:return}}setRgba(ee,0,0,0,1)}},colorUtil.parseToFloat=function(te,ee){if(ee=colorUtil.parse(te,ee),!!ee)return ee[0]/=255,ee[1]/=255,ee[2]/=255,ee};function hsla2rgba(te,ee){var ne=(parseFloat(te[0])%360+360)%360/360,xe=parseCssFloat(te[1]),it=parseCssFloat(te[2]),ut=it<=.5?it*(xe+1):it+xe-it*xe,ht=it*2-ut;return ee=ee||[],setRgba(ee,clampCssByte(cssHueToRgb(ht,ut,ne+1/3)*255),clampCssByte(cssHueToRgb(ht,ut,ne)*255),clampCssByte(cssHueToRgb(ht,ut,ne-1/3)*255),1),te.length===4&&(ee[3]=te[3]),ee}function rgba2hsla(te){if(te){var ee=te[0]/255,ne=te[1]/255,xe=te[2]/255,it=Math.min(ee,ne,xe),ut=Math.max(ee,ne,xe),ht=ut-it,dt=(ut+it)/2,Mt,ft;if(ht===0)Mt=0,ft=0;else{dt<.5?ft=ht/(ut+it):ft=ht/(2-ut-it);var gt=((ut-ee)/6+ht/2)/ht,xt=((ut-ne)/6+ht/2)/ht,mt=((ut-xe)/6+ht/2)/ht;ee===ut?Mt=mt-xt:ne===ut?Mt=1/3+gt-mt:xe===ut&&(Mt=2/3+xt-gt),Mt<0&&(Mt+=1),Mt>1&&(Mt-=1)}var Dt=[Mt*360,ft,dt];return te[3]!=null&&Dt.push(te[3]),Dt}}colorUtil.lift=function(te,ee){var ne=colorUtil.parse(te);if(ne){for(var xe=0;xe<3;xe++)ee<0?ne[xe]=ne[xe]*(1-ee)|0:ne[xe]=(255-ne[xe])*ee+ne[xe]|0;return colorUtil.stringify(ne,ne.length===4?"rgba":"rgb")}},colorUtil.toHex=function(te){var ee=colorUtil.parse(te);if(ee)return((1<<24)+(ee[0]<<16)+(ee[1]<<8)+ +ee[2]).toString(16).slice(1)},colorUtil.fastLerp=function(te,ee,ne){if(!(!(ee&&ee.length)||!(te>=0&&te<=1))){ne=ne||[];var xe=te*(ee.length-1),it=Math.floor(xe),ut=Math.ceil(xe),ht=ee[it],dt=ee[ut],Mt=xe-it;return ne[0]=clampCssByte(lerpNumber(ht[0],dt[0],Mt)),ne[1]=clampCssByte(lerpNumber(ht[1],dt[1],Mt)),ne[2]=clampCssByte(lerpNumber(ht[2],dt[2],Mt)),ne[3]=clampCssFloat(lerpNumber(ht[3],dt[3],Mt)),ne}},colorUtil.fastMapToColor=colorUtil.fastLerp,colorUtil.lerp=function(te,ee,ne){if(!(!(ee&&ee.length)||!(te>=0&&te<=1))){var xe=te*(ee.length-1),it=Math.floor(xe),ut=Math.ceil(xe),ht=colorUtil.parse(ee[it]),dt=colorUtil.parse(ee[ut]),Mt=xe-it,ft=colorUtil.stringify([clampCssByte(lerpNumber(ht[0],dt[0],Mt)),clampCssByte(lerpNumber(ht[1],dt[1],Mt)),clampCssByte(lerpNumber(ht[2],dt[2],Mt)),clampCssFloat(lerpNumber(ht[3],dt[3],Mt))],"rgba");return ne?{color:ft,leftIndex:it,rightIndex:ut,value:xe}:ft}},colorUtil.mapToColor=colorUtil.lerp,colorUtil.modifyHSL=function(te,ee,ne,xe){if(te=colorUtil.parse(te),te)return te=rgba2hsla(te),ee!=null&&(te[0]=clampCssAngle(ee)),ne!=null&&(te[1]=parseCssFloat(ne)),xe!=null&&(te[2]=parseCssFloat(xe)),colorUtil.stringify(hsla2rgba(te),"rgba")},colorUtil.modifyAlpha=function(te,ee){if(te=colorUtil.parse(te),te&&ee!=null)return te[3]=clampCssFloat(ee),colorUtil.stringify(te,"rgba")},colorUtil.stringify=function(te,ee){if(!(!te||!te.length)){var ne=te[0]+","+te[1]+","+te[2];return(ee==="rgba"||ee==="hsva"||ee==="hsla")&&(ne+=","+te[3]),ee+"("+ne+")"}};var parseColor=colorUtil.parseToFloat,programKeyCache$1={};function getDefineCode$1(te){var ee=Object.keys(te);ee.sort();for(var ne=[],xe=0;xe<ee.length;xe++){var it=ee[xe],ut=te[it];ut===null?ne.push(it):ne.push(it+" "+ut.toString())}return ne.join(`
|
|
736
736
|
`)}function getProgramKey$1(te,ee,ne){ne.sort();for(var xe=[],it=0;it<ne.length;it++){var ut=ne[it];xe.push(ut)}var ht=getDefineCode$1(te)+`
|
|
737
737
|
`+getDefineCode$1(ee)+`
|
|
738
738
|
`+xe.join(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-gui/image",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.1",
|
|
4
4
|
"description": "Render AIGUI markdown blocks (charts, diagrams, math, tables, cards) to PNG in a headless browser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"llm",
|
|
@@ -53,16 +53,16 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"echarts-gl": "^2.0.9",
|
|
55
55
|
"katex": "^0.16.9",
|
|
56
|
-
"@ai-gui/vanilla": "0.37.
|
|
57
|
-
"@ai-gui/
|
|
58
|
-
"@ai-gui/plugin-mermaid": "0.37.
|
|
59
|
-
"@ai-gui/plugin-
|
|
60
|
-
"@ai-gui/
|
|
61
|
-
"@ai-gui/plugin-
|
|
62
|
-
"@ai-gui/plugin-
|
|
63
|
-
"@ai-gui/plugin-
|
|
64
|
-
"@ai-gui/plugin-bigscreen": "0.37.
|
|
65
|
-
"@ai-gui/plugin-molecule": "0.37.
|
|
56
|
+
"@ai-gui/vanilla": "0.37.1",
|
|
57
|
+
"@ai-gui/core": "0.37.1",
|
|
58
|
+
"@ai-gui/plugin-mermaid": "0.37.1",
|
|
59
|
+
"@ai-gui/plugin-chart": "0.37.1",
|
|
60
|
+
"@ai-gui/plugin-katex": "0.37.1",
|
|
61
|
+
"@ai-gui/plugin-dashboard": "0.37.1",
|
|
62
|
+
"@ai-gui/plugin-gravity": "0.37.1",
|
|
63
|
+
"@ai-gui/plugin-scene": "0.37.1",
|
|
64
|
+
"@ai-gui/plugin-bigscreen": "0.37.1",
|
|
65
|
+
"@ai-gui/plugin-molecule": "0.37.1"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"playwright": "^1.48.0"
|