1import{o as Ie,f as $t,aq as Ha,C as vt,D as Jt,E as Me,h as z,i as q,k as Ze,u as O,aA as $a,aB as Ka,aF as Wa,G as W,aI as qa,aL as Xa,aG as ps,aC as dr,a9 as Ya,ac as eo,y as Ce,j as F,aH as Za,aO as Qa,w as ke,q as ee,aP as Ja,z as et,l as pe,az as el,e as ue,t as fs,F as st,A as Re,S as kt,n as en,v as bn,B as tl,_ as Kt,I as xe,J as _n,H as it,M as ei,O as to,Q as Nt,K as nl,T as zn,ap as rl,U as sl,R as il}from"./BW8Z-FKZ.js";import{u as he,p as _t,aT as ti,aV as ol,aW as al,aX as ll,z as tt,w as pt,a_ as rr,a3 as hr,au as pr,av as Jr,Y as Je,aO as fr,a$ as ms,at as yn,b0 as sr,b1 as no,aw as cl,k as ir,aN as Rt,aa as nt,K as Dt,b2 as ul,b3 as dl,b4 as hl,b5 as pl,ak as xn,L as vs,b6 as fl,b7 as ni,S as sn,F as Cn,b8 as ml,V as H,b9 as vl,ba as gl,bb as wl,B as Ee,bc as bl,h as Bt,W as Ln,i as It,j as ot,C as Pe,l as _l,P as yl,D as xl,m as gt,I as Cl,Q as ro,O as so,o as io,q as Pl,r as oo,s as gs,N as ao,t as lo,v as co,x as uo,R as Pn,y as ho,A as Tl,E as Pr,G as El,H as po,J as mr,U as Tn,X as Ml,Z as Al,_ as Sl,$ as kl,a0 as Ll,a1 as Tr,a2 as Rn,M as fe,a4 as Rl,a7 as fo,a8 as ws,a5 as Il,a6 as Ol,a9 as es,ab as Fl,ad as ri,ac as Vl,af as Nl,T as Dl,b as ts,f as mo,ag as Ul,ah as bs,ai as vo,bd as go,be as Bl,aM as wo,bf as jl,bg as bo,bh as gn,bi as zl,bj as _s,aH as jt,bk as Gl,bl as si,bm as Er,bn as Hl,bo as $l,bp as Kl,bq as Wl,am as Mr,aR as ql,br as Xl,bs as Yl,a as Ke,aI as Zl,aP as Ar,bt as _o,c as Zn,g as ii,d as Sr,e as kr,aU as Ql,aY as zt,aZ as Jl}from"./Duyjjrp8.js";import{u as Ve,M as ec,m as oi,c as ai,b as tc}from"./CIVwTKha.js";import"./BVkfsgqd.js";const nc={__name:"GlobeGlCustomRaycaster",setup(n){const{dynamicValues:e,sizes:t}=he("globe"),{raycaster:r,camera:s,renderer:i}=_t(),o=(l,c=!0)=>{const d=Ha(i.value.domElement),u=l.clientX,g=l.clientY-d.top;e.mouse.default.x=u,e.mouse.default.y=g,e.mouse.normalized.x=u/t.w*2-1,e.mouse.normalized.y=-(g/t.h)*2+1,c&&ti.onPointerMove(e.mouse.normalized,s.value)},a=l=>{o(l,!1),ti.onClick(e.mouse.normalized,s.value)};return Ie(()=>{r.value.layers.set(9),i.value.domElement.addEventListener("pointermove",o),i.value.domElement.addEventListener("click",a)}),$t(()=>{i.value.domElement.removeEventListener("pointermove",o),i.value.domElement.removeEventListener("click",a)}),(l,c)=>null}},rc={__name:"GlobeGlGestures",setup(n){const e=vt(),{$event:t,$device:r}=e;let s,i,o;const a=d=>{t.emit(Me.WEBGL_DRAG,d)},l=d=>{t.emit(Me.WEBGL_WHEEL,d)},c=d=>{t.emit(Me.WEBGL_PINCH,d)};return Ie(()=>{const d=Jt(".js-globe-wrap");i=new ol(d,a,{filterTaps:!1,threshold:10,preventScroll:!0}),s=new al(d,l,{event:{passive:!0}}),o=new ll(d,c,{pointer:{touch:!0},event:{passive:!1}})}),$t(()=>{i?.destroy(),s?.destroy(),o?.destroy()}),(d,u)=>null}},sc={__name:"GlobeGlCamera",setup(n){const e=Ze(null),{sizes:t}=_t();return Ie(()=>{}),(r,s)=>(z(),q("TresPerspectiveCamera",{ref_key:"camera",ref:e,position:[0,0,3],fov:15},null,512))}},yo=(n,e,t)=>{let r;switch(n){case xn:r=new Uint8ClampedArray(e*t*4);break;case pr:r=new Uint16Array(e*t*4);break;case pl:r=new Uint32Array(e*t*4);break;case hl:r=new Int8Array(e*t*4);break;case dl:r=new Int16Array(e*t*4);break;case ul:r=new Int32Array(e*t*4);break;case Jr:r=new Float32Array(e*t*4);break;default:throw new Error("Unsupported data type")}return r};let Gn;const ic=(n,e,t,r)=>{if(Gn!==void 0)return Gn;const s=new ms(1,1,r);e.setRenderTarget(s);const i=new Je(new fr,new Dt({color:16777215}));e.render(i,t),e.setRenderTarget(null);const o=yo(n,s.width,s.height);return e.readRenderTargetPixels(s,0,0,s.width,s.height,o),s.dispose(),i.geometry.dispose(),i.material.dispose(),Gn=o[0]!==0,Gn};class ys{_renderer;_rendererIsDisposable=!1;_material;_scene;_camera;_quad;_renderTarget;_width;_height;_type;_colorSpace;_supportsReadPixels=!0;constructor(e){this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace
vendor: 9,444 bytes, lines 1-6
1=e.colorSpace;const t={format:yn,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:e.renderTargetOptions?.anisotropy!==void 0?e.renderTargetOptions?.anisotropy:1,generateMipmaps:e.renderTargetOptions?.generateMipmaps!==void 0?e.renderTargetOptions?.generateMipmaps:!1,magFilter:e.renderTargetOptions?.magFilter!==void 0?e.renderTargetOptions?.magFilter:pt,minFilter:e.renderTargetOptions?.minFilter!==void 0?e.renderTargetOptions?.minFilter:pt,samples:e.renderTargetOptions?.samples!==void 0?e.renderTargetOptions?.samples:void 0,wrapS:e.renderTargetOptions?.wrapS!==void 0?e.renderTargetOptions?.wrapS:tt,wrapT:e.renderTargetOptions?.wrapT!==void 0?e.renderTargetOptions?.wrapT:tt};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=ys.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new rr,this._camera=new hr,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!ic(this._type,this._renderer,this._camera,t)){let r;this._type===pr&&(r=this._renderer.extensions.has("EXT_color_buffer_float")?Jr:void 0),r!==void 0?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${Jr}`),this._type=r):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new Je(new fr,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new ms(this.width,this.height,t),this._renderTarget.texture.mapping=e.renderTargetOptions?.mapping!==void 0?e.renderTargetOptions?.mapping:sr}static instantiateRenderer(){const e=new no;return e.setSize(128,128),e}render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)};toArray(){if(!this._supportsReadPixels)throw new Error("Can't read pixels in this browser");const e=yo(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){const t=new cl(this.toArray(),this.width,this.height,yn,this._type,e?.mapping||sr,e?.wrapS||tt,e?.wrapT||tt,e?.magFilter||pt,e?.minFilter||pt,e?.anisotropy||1,ir);return t.generateMipmaps=e?.generateMipmaps!==void 0?e?.generateMipmaps:!1,t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof Rt&&Object.values(this.material.uniforms).forEach(t=>{t.value instanceof nt&&t.value.dispose()}),Object.values(this.material).forEach(t=>{t instanceof nt&&t.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}class xo extends Error{}class Co extends Error{}const un=(n,e,t)=>{const r=new RegExp(`${e}="([^"]*)"`,"i").exec(n);if(r)return r[1];const s=new RegExp(`<${e}[^>]*>([\\s\\S]*?)</${e}>`,"i").exec(n);if(s){const i=s[1].match(/<rdf:li>([^<]*)<\/rdf:li>/g);return i&&i.length===3?i.map(o=>o.replace(/<\/?rdf:li>/g,"")):s[1].trim()}if(t!==void 0)return t;throw new Error(`Can't find ${e} in gainmap metadata`)},oc=n=>{let e;typeof TextDecoder<"u"?e=new TextDecoder().decode(n):e=n.toString();let t=e.indexOf("<x:xmpmeta");for(;t!==-1;){const r=e.indexOf("x:xmpmeta>",t),s=e.slice(t,r+10);try{const i=un(s,"hdrgm:GainMapMin","0"),o=un(s,"hdrgm:GainMapMax"),a=un(s,"hdrgm:Gamma","1"),l=un(s,"hdrgm:OffsetSDR","0.015625"),c=un(s,"hdrgm:OffsetHDR","0.015625"),d=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(s),u=d?d[1]:"0",g=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(s);if(!g)throw new Error("Incomplete gainmap metadata");const _=g[1];return{gainMapMin:Array.isArray(i)?i.map(m=>parseFloat(m)):[parseFloat(i),parseFloat(i),parseFloat(i)],gainMapMax:Array.isArray(o)?o.map(m=>parseFloat(m)):[parseFloat(o),parseFloat(o),parseFloat(o)],gamma:Array.isArray(a)?a.map(m=>parseFloat(m)):[parseFloat(a),parseFloat(a),parseFloat(a)],offsetSdr:Array.isArray(l)?l.map(m=>parseFloat(m)):[parseFloat(l),parseFloat(l),parseFloat(l)],offsetHdr:Array.isArray(c)?c.map(m=>parseFloat(m)):[parseFloat(c),parseFloat(c),parseFloat(c)],hdrCapacityMin:parseFloat(u),hdrCapacityMax:parseFloat(_)}}catch{}t=e.indexOf("<x:xmpmeta",r)}};class ac{options;constructor(e){this.options={debug:e&&e.debug!==void 0?e.debug:!1,extractFII:e&&e.extractFII!==void 0?e.extractFII:!0,extractNonFII:e&&e.extractNonFII!==void 0?e.extractNonFII:!0}}extract(e){return new Promise((t,r)=>{const s=this.options.debug,i=new DataView(e.buffer);if(i.getUint16(0)!==65496){r(new Error("Not a valid jpeg"));return}const o=i.byteLength;let a=2,l=0,c;for(;a<o;){if(++l>250){r(new Error(`Found no marker after ${l} loops ðµ`));return}if(i.getUint8(a)!==255){r(new Error(`Not a valid marker at offset 0x${a.toString(16)}, found: 0x${i.getUint8(a).toString(16)}`));return}if(c=i.getUint8(a+1),s&&console.log(`Marker: ${c.toString(16)}`),c===226){s&&console.log("Found APP2 marker (0xffe2)");const d=a+4;if(i.getUint32(d)===1297106432){const u=d+4;let g;if(i.getUint16(u)===18761)g=!1;else if(i.getUint16(u)===19789)g=!0;else{r(new Error("No valid endianness marker found in TIFF header"));return}if(i.getUint16(u+2,!g)!==42){r(new Error("Not valid TIFF data! (no 0x002A marker)"));return}const _=i.getUint32(u+4,!g);if(_<8){r(new Error("Not valid TIFF data! (First offset less than 8)"));return}const m=u+_,C=i.getUint16(m,!g),v=m+2;let E=0;for(let L=v;L<v+12*C;L+=12)i.getUint16(L,!g)===45057&&(E=i.getUint32(L+8,!g));const x=m+2+C*12+4,M=[];for(let L=x;L<x+E*16;L+=16){const y={MPType:i.getUint32(L,!g),size:i.getUint32(L+4,!g),dataOffset:i.getUint32(L+8,!g),dependantImages:i.getUint32(L+12,!g),start:-1,end:-1,isFII:!1};y.dataOffset?(y.start=u+y.dataOffset,y.isFII=!1):(y.start=0,y.isFII=!0),y.end=y.start+y.size,M.push(y)}if(this.options.extractNonFII&&M.length){const L=new Blob([i]),y=[];for(const A of M){if(A.isFII&&!this.options.extractFII)continue;const h=L.slice(A.start,A.end+1,"image/jpeg");y.push(h)}t(y)}}}a+=2+i.getUint16(a+2)}})}}const lc=async n=>{const e=oc(n);if(!e)throw new Co("Gain map XMP metadata not found");const r=await new ac({extractFII:!0,extractNonFII:!0}).extract(n);if(r.length!==2)throw new xo("Gain map recovery image not found");return{sdr:new Uint8Array(await r[0].arrayBuffer()),gainMap:new Uint8Array(await r[1].arrayBuffer()),metadata:e}},li=n=>new Promise((e,t)=>{const r=document.createElement("img");r.onload=()=>{e(r)},r.onerror=s=>{t(s)},r.src=URL.createObjectURL(n)});class cc extends vs{_renderer;_renderTargetOptions;_internalLoadingManager;_config;constructor(e,t){super(t),this._config=e,e.renderer&&(this._renderer=e.renderer),this._internalLoadingManager=new fl}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: A Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");const e=this._config.createMaterial({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new nt,sdr:new nt});return this._config.createQuadRenderer({width:16,height:16,type:pr,colorSpace:ir,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async processImages(e,t,r){const s=t?new Blob([t],{type:"image/jpeg"}):void 0,i=new Blob([e],{type:"image/jpeg"});let o,a,l=!1;if(typeof createImageBitmap>"u"){const c=await Promise.all([s?li(s):Promise.resolve(void 0),li(i)]);a=c[0],o=c[1],l=r==="flipY"}else{const c=await Promise.all([s?createImageBitmap(s,{imageOrientation:r||"flipY"}):Promise.resolve(void 0),createImageBitmap(i,{imageOrientation:r||"flipY"})]);a=c[0],o=c[1]}return{sdrImage:o,gainMapImage:a,needsFlip:l}}createTextures(e,t,r){const s=new nt(t||new ImageData(2,2),sr,tt,tt,pt,ni,yn,xn,1,ir);s.flipY=r,s.needsUpdate=!0;const i=new nt(e,sr,tt,tt,pt,ni,yn,xn,1,sn);return i.flipY=r,i.needsUpdate=!0,{gainMap:s,sdr:i}}updateQuadRenderer(e,t,r,s,i){e.width=t.width,e.height=t.height,e.material.gainMap=r,e.material.sdr=s,e.material.gainMapMin=i.gainMapMin,e.material.gainMapMax=i.gainMapMax,e.material.offsetHdr=i.offsetHdr,e.material.offsetSdr=i.offsetSdr,e.material.gamma=i.gamma,e.material.hdrCapacityMin=i.hdrCapacityMin,e.material.hdrCapacityMax=i.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,i.hdrCapacityMax),e.material.needsUpdate=!0}}const uc=` 2varying vec2 vUv; 3 4void main() { 5 vUv = uv; 6 gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0
6); 7} 8`,dc=` 9// min half float value 10#define HALF_FLOAT_MIN vec3( -65504, -65504, -65504 ) 11// max half float value 12#define HALF_FLOAT_MAX vec3( 65504, 65504, 65504 ) 13 14uniform sampler2D sdr; 15uniform sampler2D gainMap; 16uniform vec3 gamma; 17uniform vec3 offsetHdr; 18uniform vec3 offsetSdr; 19uniform vec3 gainMapMin; 20uniform vec3 gainMapMax; 21uniform float weightFactor; 22 23varying vec2 vUv; 24 25void main() { 26 vec3 rgb = texture2D( sdr, vUv ).rgb; 27 vec3 recovery = texture2D( gainMap, vUv ).rgb; 28 vec3 logRecovery = pow( recovery, gamma ); 29 vec3 logBoost = gainMapMin * ( 1.0 - logRecovery ) + gainMapMax * logRecovery; 30 vec3 hdrColor = (rgb + offsetSdr) * exp2( logBoost * weightFactor ) - offsetHdr; 31 vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor )); 32 gl_FragColor = vec4( clampedHdrColor , 1.0 ); 33} 34`;class hc extends Rt{_maxDisplayBoost;_hdrCapacityMin;_hdrCapacityMax;constructor({gamma:e,offsetHdr:t,offsetSdr:r,gainMapMin:s,gainMapMax:i,maxDisplayBoost:o,hdrCapacityMin:a,hdrCapacityMax:l,sdr:c,gainMap:d}){super({name:"GainMapDecoderMaterial",vertexShader:uc,fragmentShader:dc,uniforms:{sdr:{value:c},gainMap:{value:d},gamma:{value:new H(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new H().fromArray(t)},offsetSdr:{value:new H().fromArray(r)},gainMapMin:{value:new H().fromArray(s)},gainMapMax:{value:new H().fromArray(i)},weightFactor:{value:(Math.log2(o)-a)/(l-a)}},blending:ml,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=o,this._hdrCapacityMin=a,this._hdrCapacityMax=l,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){const e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){const t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){const e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}class pc extends cc{constructor(e,t){super({renderer:e,createMaterial:r=>new hc(r),createQuadRenderer:r=>new ys(r)},t)}async render(e,t,r,s){const{sdrImage:i,gainMapImage:o,needsFlip:a}=await this.processImages(r,s,"flipY"),{gainMap:l,sdr:c}=this.createTextures(i,o,a);this.updateQuadRenderer(e,i,l,c,t),e.render()}}class fc extends pc{load(e,t,r,s){const i=this.prepareQuadRenderer(),o=new Cn(this._internalLoadingManager);return o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setPath(this.path),o.setWithCredentials(this.withCredentials),this.manager.itemStart(e),o.load(e,async a=>{if(typeof a=="string")throw new Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");const l=new Uint8Array(a);let c,d,u;try{const g=await lc(l);c=g.sdr,d=g.gainMap,u=g.metadata}catch(g){if(g instanceof Co||g instanceof xo)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),u={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},c=l;else throw g}try{await this.render(i,u,c.buffer,d?.buffer)}catch(g){this.manager.itemError(e),typeof s=="function"&&s(g),i.disposeOnDemandRenderer();return}typeof t=="function"&&t(i),this.manager.itemEnd(e),i.disposeOnDemandRenderer()},r,a=>{this.manager.itemError(e),typeof s=="function"&&s(a)}),i}}const mc=["intensity"],vc={__name:"GlobeGlSceneLights",setup(n){const{config:e}=he("globe"),{scene:t,renderer:r}=_t();return r.value.toneMapping=vl,r.value.toneMappingExposure=5,Ie(()=>{const s=new gl(r.value);s.compileEquirectangularShader(),new fc(r.value).loadAsync("/images/globe/lighting.jpg").then(o=>{const a=s.fromEquirectangular(o.renderTarget.texture).texture;t.value.environment=a,t.value.environmentRotation.x=.2})}),(s,i)=>(z(),q("TresAmbientLight",{intensity:O(e).globe.lights.ambient},null,8,mc))}};function Po(n){return $a()?(Ka(n),!0):!1}function xs(){const n=new Set,e=s=>{n.delete(s)};return{on:s=>
34{n.add(s);const i=()=>e(s);return Po(i),{off:i}},off:e,trigger:(...s)=>Promise.all(Array.from(n).map(i=>i(...s)))}}const gc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const wc=gc?window:void 0;function bc(n,e={}){const{immediate:t=!0,fpsLimit:r=void 0,window:s=wc}=e,i=W(!1),o=r?1e3/r:null;let a=0,l=null;function c(g){if(!i.value||!s)return;a||(a=g);const _=g-a;if(o&&_<o){l=s.requestAnimationFrame(c);return}a=g,n({delta:_,timestamp:g}),l=s.requestAnimationFrame(c)}function d(){!i.value&&s&&(i.value=!0,a=0,l=s.requestAnimationFrame(c))}function u(){i.value=!1,l!=null&&s&&(s.cancelAnimationFrame(l),l=null)}return t&&d(),Po(u),{isActive:Wa(i),pause:u,resume:d}}const To=xs(),Eo=xs(),Cs=xs(),wn=new wl;let Qn=0,Jn=0;const{pause:_c,resume:yc,isActive:xc}=bc(()=>{To.trigger({delta:Qn,elapsed:Jn,clock:wn}),Eo.trigger({delta:Qn,elapsed:Jn,clock:wn}),Cs.trigger({delta:Qn,elapsed:Jn,clock:wn})},{immediate:!1});Cs.on(()=>{Qn=wn.getDelta(),Jn=wn.getElapsedTime()});const Cc=()=>({onBeforeLoop:To.on,onLoop:Eo.on,onAfterLoop:Cs.on,pause:_c,resume:yc,isActive:xc}),Hn="[TresJS â² â â] ";function Mo(){function n(...r){typeof r[0]=="string"?r[0]=Hn+r[0]:r.unshift(Hn),console.error(...r)}function e(...r){typeof r[0]=="string"?r[0]=Hn+r[0]:r.unshift(Hn),console.warn(...r)}function t(r,s){}return{logError:n,logWarning:e,logMessage:t}}const Pc="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",Tc=Ec(Pc);function ci(n){return n&&n.nodeType===1}function $n(n){return n.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function Ec(n,e){const t=Object.create(null),r=n.split(",");for(let s=0;s<r.length;s++)t[r[s]]=!0;return s=>!!t[s]}function Ao(n,e){if(ci(n)&&ci(e)){const s=n.attributes,i=e.attributes;return s.length!==i.length?!1:Array.from(s).every(({name:o,value:a})=>e.getAttribute(o)===a)}if(n===e)return!0;if(n===null||typeof n!="object"||e===null||typeof e!="object")return!1;const t=Object.keys(n),r=Object.keys(e);if(t.length!==r.length)return!1;for(const s of t)if(!r.includes(s)||!Ao(n[s],e[s]))return!1;return!0}function Mc(n,e){if(!Array.isArray(n)||!Array.isArray(e)||n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!Ao(n[t],e[t]))return!1;return!0}const ui=n=>typeof n=="function",Ac=n=>!!n&&n.constructor===Array;function Sc(n){const e={nodes:{},materials:{}};return n&&n.traverse(t=>{t.name&&(e.nodes[t.name]=t),t.material&&!e.materials[t.material.name]&&(e.materials[t.material.name]=t.material)}),e}async function kc(n,e,t,r,s){const{logError:i}=Mo(),o=new n;t&&t(o);const a=(Array.isArray(e)?e:[e]).map(l=>new Promise((c,d)=>{o.load(l,u=>{u.scene&&Object.assign(u,Sc(u.scene)),c(u)},r,u=>d(i("[useLoader] - Failed to load resource",u)))}));return Ac(e)?await Promise.all(a):await a[0]}const ns=W({}),Lc=n=>Object.assign(ns.value,n);function So(){const n=Xa("useTres");if(!n)throw new Error("useTresContext must be used together with useTresContextProvider");return n}let be=null;const{logError:di}=Mo(),Lr=["onClick","onPointerMove","onPointerEnter","onPointerLeave"],Rc={createElement(n,e,t,r){var s,i;if(r||(r={}),r.args||(r.args=[]),n==="template"||Tc(n))return null;let o=n.replace("Tres",""),a;if(n==="primitive"){r?.object===void 0&&di("Tres primitives need a prop 'object'");const l=r.object;o=l.type,a=Object.assign(l,{type:o,attach:r.attach,primitive:!0})}else{const l=ns.value[o];l||di(`${o} is not defined on the THREE namespace. Use extend to add it to the catalog.`),a=new l(...r.args)}return a.isCamera&&(r!=null&&r.position||a.position.set(3,3,3),r!=null&&r.lookAt||a.lookAt(0,0,0)),r?.attach===void 0&&(a.isMaterial?a.attach="material":a.isBufferGeometry&&(a.attach="geometry")),a.isObject3D&&((s=r?.material)!=null&&s.isMaterial&&(a.userData.tres__materialViaProp=!0),(i=r?.geometry)!=null&&i.isBufferGeometry&&(a.userData.tres__geometryViaProp=!0)),a.userData={...a.userData,tres__name:o},a},insert(n,e){var t,r,s,i;e&&e.isScene&&(be=e);const o=e||be;if(n!=null&&n.isObject3D){if(n!=null&&n.isCamera){if(!(be!=null&&be.userData.tres__registerCamera))throw new Error("could not find tres__registerCamera on scene's userData");(r=be==null?void 0:(t=be.userData).tres__registerCamera)==null||r.call(t,n)}if(n&&Lr.some(a=>n[a])){if(!(be!=null&&be.userData.tres__registerAtPointerEventHandler))throw new Error("could not find tres__registerAtPointerEventHandler on sce
34ne's userData");(i=be==null?void 0:(s=be.userData).tres__registerAtPointerEventHandler)==null||i.call(s,n)}}n!=null&&n.isObject3D&&o!=null&&o.isObject3D?(o.add(n),n.dispatchEvent({type:"added"})):n!=null&&n.isFog?o.fog=n:typeof n?.attach=="string"&&(n.__previousAttach=n[o?.attach],o&&(o[n.attach]=n))},remove(n){var e,t;if(n){if(n.isObject3D){const r=n,s=c=>{var d,u;const g=c;c.userData.tres__materialViaProp||((d=g.material)==null||d.dispose(),g.material=void 0),c.userData.tres__geometryViaProp||((u=g.geometry)==null||u.dispose(),g.geometry=void 0)},i=be?.userData.tres__deregisterAtPointerEventHandler,o=be?.userData.tres__deregisterBlockingObjectAtPointerEventHandler,a=c=>{var d,u;if(!o)throw new Error("could not find tres__deregisterBlockingObjectAtPointerEventHandler on scene's userData");if((u=be==null?void 0:(d=be.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||u.call(d,c),!i)throw new Error("could not find tres__deregisterAtPointerEventHandler on scene's userData");c&&Lr.some(g=>c[g])&&i?.(c)},l=c=>{const d=be?.userData.tres__deregisterCamera;if(!d)throw new Error("could not find tres__deregisterCamera on scene's userData");c.isCamera&&d?.(c)};(e=n.removeFromParent)==null||e.call(n),r.traverse(c=>{s(c),l(c),a?.(c)}),s(r),l(r),a?.(r)}(t=n.dispose)==null||t.call(n)}},patchProp(n,e,t,r){var s,i,o,a;if(n){let l=n,c=e;if(n.isObject3D&&c==="blocks-pointer-events"){r||r===""?(i=be==null?void 0:(s=be.userData).tres__registerBlockingObjectAtPointerEventHandler)==null||i.call(s,n):(a=be==null?void 0:(o=be.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||a.call(o,n);return}let d=$n(c),u=l?.[d];if(c==="args"){const _=n,m=t??[],C=r??[],v=n.userData.tres__name||n.type;v&&m.length&&!Mc(m,C)&&(l=Object.assign(_,new ns.value[v](...r)));return}if(l.type==="BufferGeometry"){if(c==="args")return;l.setAttribute($n(c),new Ee(...r));return}if(c.includes("-")&&u===void 0){const _=c.split("-");u=_.reduce((m,C)=>m[$n(C)],l),c=_.pop(),d=c.toLowerCase(),u!=null&&u.set||(l=_.reduce((m,C)=>m[$n(C)],l))}let g=r;if(g===""&&(g=!0),ui(u)){Lr.includes(e)||(Array.isArray(g)?n[d](...g):n[d](g));return}!(u!=null&&u.set)&&!ui(u)?l[d]=g:u.constructor===g.constructor&&u!=null&&u.copy?u?.copy(g):Array.isArray(g)?u.set(...g):!u.isColor&&u.setScalar?u.setScalar(g):u.set(g)}},parentNode(n){return n?.parent||null},createText:()=>{},createComment:()=>{},setText:()=>{},setElementText:()=>{},nextSibling:()=>{},querySelector:()=>{},setScopeId:()=>{},cloneNode:()=>{},insertStaticContent:()=>{}},{render:dg}=qa(Rc);Lc(bl);function me(n){return n==null}function Ps(n){return n!==null&&typeof n=="object"}function rs(n){return n!==null&&typeof n=="object"}function Ic(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}function Gt(n,e){return Array.from(new Set([...Object.keys(n),...Object.keys(e)])).reduce((r,s)=>{const i=n[s],o=e[s];return rs(i)&&rs(o)?Object.assign(Object.assign({},r),{[s]:Gt(i,o)}):Object.assign(Object.assign({},r),{[s]:s in e?o:i})},{})}function Oc(n){return Ps(n)?"target"in n:!1}const Fc={alreadydisposed:()=>"View has been already disposed",invalidparams:n=>`Invalid parameters for '${n.name}'`,nomatchingcontroller:n=>`No matching controller for '${n.key}'`,nomatchingview:n=>`No matching view for '${JSON.stringify(n.params)}'`,notbindable:()=>"Value is not bindable",notcompatible:n=>`Not compatible with plugin '${n.id}'`,propertynotfound:n=>`Property '${n.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class $e{static alreadyDisposed(){return new $e({type:"alreadydisposed"})}static notBindable(){return new $e({type:"notbindable"})}static notCompatible(e,t){return new $e({type:"notcompatible",context:{id:`${e}.${t}`}})}static propertyNotFound(e){return new $e({type:"propertynotfound",context:{name:e}})}static shouldNeverHappen(){return new $e({type:"shouldneverhappen"})}constructor(e){var t;this.message=(t=Fc[e.type](e.context))!==null&&t!==void 0?t:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=e.type}toString(){return this.message}}class or{constructor(e,t){this.obj_=e,this.key=t}static isBindable(e){return!(e===null||typeof e!="object"&&typeof e!="function")}read(){return this.obj_[this.key]}write(e){this.obj_[this.key]=e}writeProperty(e,t){const r=this.read();if(!or.isBindable(r))throw $e.notBindable();if(!(e in r))throw $e.propertyNotFound(e);r[e]=t}}class qe{constructor(){this.observers_={}}on(e,t,r){var s;let i=this.observers_[e];
34return i||(i=this.observers_[e]=[]),i.push({handler:t,key:(s=r?.key)!==null&&s!==void 0?s:t}),this}off(e,t){const r=this.observers_[e];return r&&(this.observers_[e]=r.filter(s=>s.key!==t)),this}emit(e,t){const r=this.observers_[e];r&&r.forEach(s=>{s.handler(t)})}}class Vc{constructor(e,t){var r;this.constraint_=t?.constraint,this.equals_=(r=t?.equals)!==null&&r!==void 0?r:((s,i)=>s===i),this.emitter=new qe,this.rawValue_=e}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(e){this.setRawValue(e,{forceEmit:!1,last:!0})}setRawValue(e,t){const r=t??{forceEmit:!1,last:!0},s=this.constraint_?this.constraint_.constrain(e):e,i=this.rawValue_;this.equals_(i,s)&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=s,this.emitter.emit("change",{options:r,previousRawValue:i,rawValue:s,sender:this}))}}class Nc{constructor(e){this.emitter=new qe,this.value_=e}get rawValue(){return this.value_}set rawValue(e){this.setRawValue(e,{forceEmit:!1,last:!0})}setRawValue(e,t){const r=t??{forceEmit:!1,last:!0},s=this.value_;s===e&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=e,this.emitter.emit("change",{options:r,previousRawValue:s,rawValue:this.value_,sender:this}))}}class Dc{constructor(e){this.emitter=new qe,this.onValueBeforeChange_=this.onValueBeforeChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.value_=e,this.value_.emitter.on("beforechange",this.onValueBeforeChange_),this.value_.emitter.on("change",this.onValueChange_)}get rawValue(){return this.value_.rawValue}onValueBeforeChange_(e){this.emitter.emit("beforechange",Object.assign(Object.assign({},e),{sender:this}))}onValueChange_(e){this.emitter.emit("change",Object.assign(Object.assign({},e),{sender:this}))}}function Ae(n,e){const t=e?.constraint,r=e?.equals;return!t&&!r?new Nc(n):new Vc(n,e)}function Uc(n){return[new Dc(n),(e,t)=>{n.setRawValue(e,t)}]}class ie{constructor(e){this.emitter=new qe,this.valMap_=e;for(const t in this.valMap_)this.valMap_[t].emitter.on("change",()=>{this.emitter.emit("change",{key:t,sender:this})})}static createCore(e){return Object.keys(e).reduce((r,s)=>Object.assign(r,{[s]:Ae(e[s])}),{})}static fromObject(e){const t=this.createCore(e);return new ie(t)}get(e){return this.valMap_[e].rawValue}set(e,t){this.valMap_[e].rawValue=t}value(e){return this.valMap_[e]}}class vr{constructor(e){this.values=ie.fromObject({max:e.max,min:e.min})}constrain(e){const t=this.values.get("max"),r=this.values.get("min");return Math.min(Math.max(e,r),t)}}class Bc{constructor(e){this.values=ie.fromObject({max:e.max,min:e.min})}constrain(e){const t=this.values.get("max"),r=this.values.get("min");let s=e;return me(r)||(s=Math.max(s,r)),me(t)||(s=Math.min(s,t)),s}}class jc{constructor(e,t=0){this.step=e,this.origin=t}constrain(e){const t=this.origin%this.step,r=Math.round((e-t)/this.step);return t+r*this.step}}class zc{constructor(e){this.text=e}evaluate(){return Number(this.text)}toString(){return this.text}}const Gc={"**":(n,e)=>Math.pow(n,e),"*":(n,e)=>n*e,"/":(n,e)=>n/e,"%":(n,e)=>n%e,"+":(n,e)=>n+e,"-":(n,e)=>n-e,"<<":(n,e)=>n<<e,">>":(n,e)=>n>>e,">>>":(n,e)=>n>>>e,"&":(n,e)=>n&e,"^":(n,e)=>n^e,"|":(n,e)=>n|e};class Hc{constructor(e,t,r){this.left=t,this.operator=e,this.right=r}evaluate(){const e=Gc[this.operator];if(!e)throw new Error(`unexpected binary operator: '${this.operator}`);return e(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const $c={"+":n=>n,"-":n=>-n,"~":n=>~n};class Kc{constructor(e,t){this.operator=e,this.expression=t}evaluate(){const e=$c[this.operator];if(!e)throw new Error(`unexpected unary operator: '${this.operator}`);return e(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function Ts(n){return(e,t)=>{for(let r=0;r<n.length;r++){const s=n[r](e,t);if(s!=="")return s}return""}}function En(n,e){var t;const r=n.substr(e).match(/^\s+/);return(t=r&&r[0])!==null&&t!==void 0?t:""}function Wc(n,e){const t=n.substr(e,1);return t.match(/^[1-9]$/)?t:""}function Mn(n,e){var t;const r=n.substr(e).match(/^[0-9]+/);return(t=r&&r[0])!==null&&t!==void 0?t:""}function qc(n,e){const t=Mn(n,e);if(t!=="")return t;const r=n.substr(e,1);if(e+=1,r!=="-"&&r!=="+")return"";const s=Mn(n,e);return s===""?"":r+s}function Es(n,e){const t=n.substr(e,1);if(e+=1,t.toLowerCase()!=="e")return"";const r=qc(n,e);return r===""?"":t+r}function ko(n,e){const t=n.substr(e,1);if(t==="0")return t;const r=Wc(n,e);return e+=r.length,r===""?"":r+Mn(n,e)}function Xc(n,e){const t=ko(n,e);if(e+=t.length,t==="")return"";const r=n.substr(e,1);if(e+=r.length,r!==".")return"";const s=Mn(n,e);return e+=s.length,t+r+s+Es(n,e)}function Yc(n,e){const t=n.substr(e,1);if(e+=t.length,t!==".")return"";const r=Mn(n,e);return e+=r.length,r===""?"":t+r+Es(n,e)}function Zc(n,e){const t=ko(n,e);return e+=t.length,t===""?"":t+Es(n,e)}const Qc=Ts([Xc,Yc,Zc]);
34function Jc(n,e){var t;const r=n.substr(e).match(/^[01]+/);return(t=r&&r[0])!==null&&t!==void 0?t:""}function eu(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0b")return"";const r=Jc(n,e);return r===""?"":t+r}function tu(n,e){var t;const r=n.substr(e).match(/^[0-7]+/);return(t=r&&r[0])!==null&&t!==void 0?t:""}function nu(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0o")return"";const r=tu(n,e);return r===""?"":t+r}function ru(n,e){var t;const r=n.substr(e).match(/^[0-9a-f]+/i);return(t=r&&r[0])!==null&&t!==void 0?t:""}function su(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0x")return"";const r=ru(n,e);return r===""?"":t+r}const iu=Ts([eu,nu,su]),ou=Ts([iu,Qc]);function au(n,e){const t=ou(n,e);return e+=t.length,t===""?null:{evaluable:new zc(t),cursor:e}}function lu(n,e){const t=n.substr(e,1);if(e+=t.length,t!=="(")return null;const r=Ro(n,e);if(!r)return null;e=r.cursor,e+=En(n,e).length;const s=n.substr(e,1);return e+=s.length,s!==")"?null:{evaluable:r.evaluable,cursor:e}}function cu(n,e){var t;return(t=au(n,e))!==null&&t!==void 0?t:lu(n,e)}function Lo(n,e){const t=cu(n,e);if(t)return t;const r=n.substr(e,1);if(e+=r.length,r!=="+"&&r!=="-"&&r!=="~")return null;const s=Lo(n,e);return s?(e=s.cursor,{cursor:e,evaluable:new Kc(r,s.evaluable)}):null}function uu(n,e,t){t+=En(e,t).length;const r=n.filter(s=>e.startsWith(s,t))[0];return r?(t+=r.length,t+=En(e,t).length,{cursor:t,operator:r}):null}function du(n,e){return(t,r)=>{const s=n(t,r);if(!s)return null;r=s.cursor;let i=s.evaluable;for(;;){const o=uu(e,t,r);if(!o)break;r=o.cursor;const a=n(t,r);if(!a)return null;r=a.cursor,i=new Hc(o.operator,i,a.evaluable)}return i?{cursor:r,evaluable:i}:null}}const hu=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,e)=>du(n,e),Lo);function Ro(n,e){return e+=En(n,e).length,hu(n,e)}function pu(n){const e=Ro(n,0);return!e||e.cursor+En(n,e.cursor).length!==n.length?null:e.evaluable}function Lt(n){var e;const t=pu(n);return(e=t?.evaluate())!==null&&e!==void 0?e:null}function Io(n){if(typeof n=="number")return n;if(typeof n=="string"){const e=Lt(n);if(!me(e))return e}return 0}function ze(n){return e=>e.toFixed(Math.max(Math.min(n,20),0))}function ae(n,e,t,r,s){const i=(n-e)/(t-e);return r+i*(s-r)}function hi(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Te(n,e,t){return Math.min(Math.max(n,e),t)}function Oo(n,e){return(n%e+e)%e}function fu(n,e){return me(n.step)?Math.max(hi(e),2):hi(n.step)}function Fo(n){var e;return(e=n.step)!==null&&e!==void 0?e:1}function mu(n,e){var t;const r=Math.abs((t=n.step)!==null&&t!==void 0?t:e);return r===0?.1:Math.pow(10,Math.floor(Math.log10(r))-1)}function Vo(n,e){return me(n.step)?null:new jc(n.step,e)}function No(n){return!me(n.max)&&!me(n.min)?new vr({max:n.max,min:n.min}):!me(n.max)||!me(n.min)?new Bc({max:n.max,min:n.min}):null}function Do(n,e){var t,r,s;return{formatter:(t=n.format)!==null&&t!==void 0?t:ze(fu(n,e)),keyScale:(r=n.keyScale)!==null&&r!==void 0?r:Fo(n),pointerScale:(s=n.pointerScale)!==null&&s!==void 0?s:mu(n,e)}}function Uo(n){return{format:n.optional.function,keyScale:n.optional.number,max:n.optional.number,min:n.optional.number,pointerScale:n.optional.number,step:n.optional.number}}function Ms(n){return{constraint:n.constraint,textProps:ie.fromObject(Do(n.params,n.initialValue))}}class As{constructor(e){this.controller=e}get element(){return this.controller.view.element}get disabled(){return this.controller.viewProps.get("disabled")}set disabled(e){this.controller.viewProps.set("disabled",e)}get hidden(){return this.controller.viewProps.get("hidden")}set hidden(e){this.controller.viewProps.set("hidden",e)}dispose(){this.controller.viewProps.set("disposed",!0)}importState(e){return this.controller.importState(e)}exportState(){return this.controller.exportState()}}class gr{constructor(e){this.target=e}}class Bo extends gr{constructor(e,t,r){super(e),this.value=t,this.last=r??!0}}class vu extends gr{constructor(e,t){super(e),this.expanded=t}}class gu extends gr{constructor(e,t){super(e),this.index=t}}class wu extends gr{constructor(e,t){super(e),this.native=t}}class Ss extends As{constructor(e){super(e),this.onValueChange_=this.onValueChange_.bind(this),this.emitter_=new qe,this.controller.value.emitter.on("change",this.onValueChange_)}get label(){return this.controller.labelController.props.get("label")}set label(e){this.controller.labelController.props.set("label",e)}get key(){return this.controller.value.binding.target.key}get tag(){return this.controller.tag}set tag(e){this.controller.tag=e}on(e,t){const r=t.bind(this);return this.emitter_.on(e,s=>{r(s)},{key:t}),this}off(e,t){return this.emitter_.off(e,t),this}refresh(){this.controller.value.fetch()}onValueChange_(e){const t=this.controller.value;this.emitter_.emit("change",new Bo(this,t.binding.target.read(),e.options.last))}}function bu(n,e){const r=Object.keys(e).reduce((s,i)=>{if(s===void 0)return;const o=e[i],a=o(n[i]);return a.succeeded?Object.assign(Object.assign({},s),{[i]:a.value}):void 0},{});return r}function _u(n,e){return n.reduce((t,r)=>{if(t===void 0)return;const s=e(r);if(!(!s.succeeded||s.value===void 0))return[...t,s.value]},[])}function yu(n){return n===null?!1:typeof n=="object"}function ht(n){return e=>t=>{if(!e&&t===void 0)return{succeeded:!1,value:void 0};if(e&&t===void 0)return{succeeded:!0,value:void 0};const r=n(t);return r!==void 0?{succeeded:!0,value:r}:{succeeded:!1,value:void 0}}}function pi(n){return{custom:e=>ht(e)(n),boolean:ht(e=>typeof e=="boolean"?e:void 0)(n),number:ht(e=>typeof e=="number"?e:void 0)(n),string:ht(e=>typeof e=="string"?e:void 0)(n),function:ht(e=>typeof e=="function"?e:void 0)(n),constant:e=>ht(t=>t===e?e:void 0)(n),raw:ht(e=>e)(n),object:e=>ht(t=>{if(yu(t))return bu(t,e)})(n),array:e=>ht(t=>{if(Array.isArray(t))return _u(t,e)})(n)}}const ss={optional:pi(!0),required:pi(!1)};function Oe(n,e){const t=e(ss),r=ss.required.object(t)(n);return r.succeeded?r.value:void 0}function ct(n,e,t,r){if(e&&!e(n))return!1;const s=Oe(n,t);return s?r(s):!1}function ut(n,e){var t;return Gt((t=n?.())!==null&&t!==void 0?t:{},e)}function er(n){return"value"in n}function xu(n){if(!Ps(n)||!("binding"in n))return!1;const e=n.binding;return Oc(e)}const rt="http://www.w3.org/2000/svg";function ar(n){n.offsetHeight}function Cu(n,e){const t=n.style.transition;n.style.transition="none",e(),n.style.transition=t}function ks(n){return n.ontouchstart!==void 0}function Pu(n){const e=n.ownerDocument.defaultView;return e&&"document"in e?n.getContext("2d",{willReadFrequently:!0}):null}const Tu={check:'<path d="M2 8l4 4l8 -8"/>',dropdown:'<path d="M5 7h6l-3 3 z"/>',p2dpad:'<path d="M8 4v8"/><path d="M4 8h8"/><circle cx="12" cy="12" r="1.2"/>'};function wr(n,e){const t=n.createElementNS(rt,"svg");return t.innerHTML=Tu[e],t}function jo(n,e,t){n.insertBefore(e,n.children[t])}function Ls(n){n.parentElement&&n.parentElement.removeChild(n)}function zo(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Eu(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function Go(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"
34in n?n.explicitOriginalTarget:null}function mt(n,e){n.emitter.on("change",t=>{e(t.rawValue)}),e(n.rawValue)}function at(n,e,t){mt(n.value(e),t)}const Mu="tp";function oe(n){return(t,r)=>[Mu,"-",n,"v",t?`_${t}`:"",r?`-${r}`:""].join("")}const dn=oe("lbl");function Au(n,e){const t=n.createDocumentFragment();return e.split(` 35`).map(s=>n.createTextNode(s)).forEach((s,i)=>{i>0&&t.appendChild(n.createElement("br")),t.appendChild(s)}),t}class Su{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(dn()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(dn("l")),at(t.props,"label",i=>{me(i)?this.element.classList.add(dn(void 0,"nol")):(this.element.classList.remove(dn(void 0,"nol")),Eu(r),r.appendChild(Au(e,i)))}),this.element.appendChild(r),this.labelElement=r;const s=e.createElement("div");s.classList.add(dn("v")),this.element.appendChild(s),this.valueElement=s}}class ku{constructor(e,t){this.props=t.props,this.valueController=t.valueController,this.viewProps=t.valueController.viewProps,this.view=new Su(e,{props:t.props,viewProps:this.viewProps}),this.view.valueElement.appendChild(this.valueController.view.element)}importProps(e){return ct(e,null,t=>({label:t.optional.string}),t=>(this.props.set("label",t.label),!0))}exportProps(){return ut(null,{label:this.props.get("label")})}}function Lu(){return["veryfirst","first","last","verylast"]}const fi=oe(""),mi={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class Ho{constructor(e){this.parent_=null,this.blade=e.blade,this.view=e.view,this.viewProps=e.viewProps;const t=this.view.element;this.blade.value("positions").emitter.on("change",()=>{Lu().forEach(r=>{t.classList.remove(fi(void 0,mi[r]))}),this.blade.get("positions").forEach(r=>{t.classList.add(fi(void 0,mi[r]))})}),this.viewProps.handleDispose(()=>{Ls(t)})}get parent(){return this.parent_}set parent(e){this.parent_=e,this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}importState(e){return ct(e,null,t=>({disabled:t.required.boolean,hidden:t.required.boolean}),t=>(this.viewProps.importState(t),!0))}exportState(){return ut(null,Object.assign({},this.viewProps.exportState()))}}class Ru extends As{get label(){return this.controller.labelController.props.get("label")}set label(e){this.controller.labelController.props.set("label",e)}get title(){var e;return(e=this.controller.buttonController.props.get("title"))!==null&&e!==void 0?e:""}set title(e){this.controller.buttonController.props.set("title",e)}on(e,t){const r=t.bind(this);return this.controller.buttonController.emitter.on(e,i=>{r(new wu(this,i.nativeEvent))}),this}off(e,t){return this.controller.buttonController.emitter.off(e,t),this}}function Iu(n,e,t){t?n.classList.add(e):n.classList.remove(e)}function ln(n,e){return t=>{Iu(n,e,t)}}function Rs(n,e){mt(n,t=>{e.textContent=t??""})}const Rr=oe("btn");class Ou{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Rr()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("button");r.classList.add(Rr("b")),t.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const s=e.createElement("div");s.classList.add(Rr("t")),Rs(t.props.value("title"),s),this.buttonElement.appendChild(s)}}class Fu{constructor(e,t){this.emitter=new qe,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Ou(e,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}importProps(e){return ct(e,null,t=>({title:t.optional.string}),t=>(this.props.set("title",t.title),!0))}exportProps(){return ut(null,{title:this.props.get("title")})}onClick_(e){this.emitter.emit("click",{nativeEvent:e,sender:this})}}class vi extends Ho{constructor(e,t){const r=new Fu(e,{props:t.buttonProps,viewProps:t.viewProps}),s=new ku(e,{blade:t.blade,props:t.labelProps,valueController:r});super({blade:t.blade,view:s.view,viewProps:t.viewProps}),this.buttonController=r,this.labelController=s}importState(e){return ct(e,t=>super.importState(t)&&this.buttonController.importProps(t)&&this.labelController.importProps(t),()=>({}),()=>!0)}exportState(){return ut(()=>super.exportState(),Object.assign(Object.assign({},this.buttonController.exportProps()),this.labelController.exportProps()))}}class $o{constructor(e){const[t,r]=e.split("-"),s=t.split(".");this.major=parseInt(s[0],10),this.minor=parseInt(s[1],10),this.patch=parseInt(s[2],10),this.prerelease=r??null}toString(){const e=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[e,this.prerelease].join("-"):e}}const Vu=new $o("2.0.5");function Ne(n){return Object.assign({core:Vu},n)}Ne({id:"button",type:"blade",accept(n){const e=Oe(n,t=>({title:t.required.string,view:t.required.constant("button"),label:t.optional.string}));return e?{params:e}:null},controller(n){return new vi(n.document,{blade:n.blade,buttonProps:ie.fromObject({title:n.params.title}),labelProps:ie.fromObject({label:n.params.label}),viewProps:n.viewProps})},api(n){return n.controller instanceof vi?new Ru(n.controller):null}});function Nu(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"button"}))}function Du(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"folder"}))}function Uu(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"tab"}))}function Bu(n){return Ps(n)?"refresh"in n&&typeof n.refresh=="function":!1}function ju(n,e){if(!or.isBindable(n))throw $e.notBindable();return new or(n,e)}class zu{constructor(e,t){this.onRackValueChange_=this.onRackValueChange_.bind(this),this.controller_=e,this.emitter_=new qe,this.pool_=t,this.controller_.rack.emitter.on("valuechange",this.onRackValueChange_)}get children(){return this.controller_.rack.children.map(e=>this.pool_.createApi(e))}addBinding(e,t,r){const s=r??{},i=this.controller_.element.ownerDocument,o=this.pool_.createBinding(i,ju(e,t),s),a=this.pool_.createBindingApi(o);return this.add(a,s.index)}addFolder(e){return Du(this,e)}addButton(e){return Nu(this,e)}addTab(e){return Uu(this,e)}add(e,t){const r=e.controller;return this.controller_.rack.add(r,t),e}remove(e){this.controller_.rack.remove(e.controller)}addBlade(e){const t=this.controller_.element.ownerDocument,r=this.pool_.createBlade(t,e),s=this.pool_.createApi(r);return this.add(s,e.index)}on(e,t){const r=t.bind(this);return this.emitter_.on(e,s=>{r(s)},{key:t}),this}off(e,t){return this.emitter_.off(e,t),this}
35refresh(){this.children.forEach(e=>{Bu(e)&&e.refresh()})}onRackValueChange_(e){const t=e.bladeController,r=this.pool_.createApi(t),s=xu(t.value)?t.value.binding:null;this.emitter_.emit("change",new Bo(r,s?s.target.read():t.value.rawValue,e.options.last))}}class Is extends As{constructor(e,t){super(e),this.rackApi_=new zu(e.rackController,t)}refresh(){this.rackApi_.refresh()}}class Os extends Ho{constructor(e){super({blade:e.blade,view:e.view,viewProps:e.rackController.viewProps}),this.rackController=e.rackController}importState(e){return ct(e,t=>super.importState(t),t=>({children:t.required.array(t.required.raw)}),t=>this.rackController.rack.children.every((r,s)=>r.importState(t.children[s])))}exportState(){return ut(()=>super.exportState(),{children:this.rackController.rack.children.map(e=>e.exportState())})}}function is(n){return"rackController"in n}class Gu{constructor(e){this.emitter=new qe,this.items_=[],this.cache_=new Set,this.onSubListAdd_=this.onSubListAdd_.bind(this),this.onSubListRemove_=this.onSubListRemove_.bind(this),this.extract_=e}get items(){return this.items_}allItems(){return Array.from(this.cache_)}find(e){for(const t of this.allItems())if(e(t))return t;return null}includes(e){return this.cache_.has(e)}add(e,t){if(this.includes(e))throw $e.shouldNeverHappen();const r=t!==void 0?t:this.items_.length;this.items_.splice(r,0,e),this.cache_.add(e);const s=this.extract_(e);s&&(s.emitter.on("add",this.onSubListAdd_),s.emitter.on("remove",this.onSubListRemove_),s.allItems().forEac
35h(i=>{this.cache_.add(i)})),this.emitter.emit("add",{index:r,item:e,root:this,target:this})}remove(e){const t=this.items_.indexOf(e);if(t<0)return;this.items_.splice(t,1),this.cache_.delete(e);const r=this.extract_(e);r&&(r.allItems().forEach(s=>{this.cache_.delete(s)}),r.emitter.off("add",this.onSubListAdd_),r.emitter.off("remove",this.onSubListRemove_)),this.emitter.emit("remove",{index:t,item:e,root:this,target:this})}onSubListAdd_(e){this.cache_.add(e.item),this.emitter.emit("add",{index:e.index,item:e.item,root:this,target:e.target})}onSubListRemove_(e){this.cache_.delete(e.item),this.emitter.emit("remove",{index:e.index,item:e.item,root:this,target:e.target})}}function Hu(n,e){for(let t=0;t<n.length;t++){const r=n[t];if(er(r)&&r.value===e)return r}return null}function $u(n){return is(n)?n.rackController.rack.bcSet_:null}class Ku{constructor(e){var t,r;this.emitter=new qe,this.onBladePositionsChange_=this.onBladePositionsChange_.bind(this),this.onSetAdd_=this.onSetAdd_.bind(this),this.onSetRemove_=this.onSetRemove_.bind(this),this.onChildDispose_=this.onChildDispose_.bind(this),this.onChildPositionsChange_=this.onChildPositionsChange_.bind(this),this.onChildValueChange_=this.onChildValueChange_.bind(this),this.onChildViewPropsChange_=this.onChildViewPropsChange_.bind(this),this.onRackLayout_=this.onRackLayout_.bind(this),this.onRackValueChange_=this.onRackValueChange_.bind(this),this.blade_=(t=e.blade)!==null&&t!==void 0?t:null,(r=this.blade_)===null||r===void 0||r.value("positions").emitter.on("change",this.onBladePositionsChange_),this.viewProps=e.viewProps,this.bcSet_=ne
35w Gu($u),this.bcSet_.emitter.on("add",this.onSetAdd_),this.bcSet_.emitter.on("remove",this.onSetRemove_)}get children(){return this.bcSet_.items}add(e,t){var r;(r=e.parent)===null||r===void 0||r.remove(e),e.parent=this,this.bcSet_.add(e,t)}remove(e){e.parent=null,this.bcSet_.remove(e)}find(e){return this.bcSet_.allItems().filter(e)}onSetAdd_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("add",{bladeController:e.item,index:e.index,root:t,sender:this}),!t)return;const r=e.item;if(r.viewProps.emitter.on("change",this.onChildViewPropsChange_),r.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),r.viewProps.handleDispose(this.onChildDispose_),er(r))r.value.emitter.on("change",this.onChildValueChange_);else if(is(r)){const s=r.rackController.rack;if(s){const i=s.emitter;i.on("layout",this.onRackLayout_),i.on("valuechange",this.onRackValueChange_)}}}onSetRemove_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("remove",{bladeController:e.item,root:t,sender:this}),!t)return;const r=e.item;if(er(r))r.value.emitter.off("change",this.onChildValueChange_);else if(is(r)){const s=r.rackController.rack;if(s){const i=s.emitter;i.off("layout",this.onRackLayout_),i.off("valuechange",this.onRackValueChange_)}}}updatePositions_(){const e=this.bcSet_.items.filter(s=>!s.viewProps.get("hidden")),t=e[0],r=e[e.length-1];this.bcSet_.items.forEach(s=>{const i=[];s===t&&(i.push("first"),(!this.blade_||this.blade_.get("positions").includes("veryfirst"))&&i.push("veryfirst")),s===r&&(i.push("last"),(!this.blade_||this.blade_.get("positions").includes("verylast"))&&i.push("verylast")),s.blade.set("positions",i)})}onChildPositionsChange_(){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildViewPropsChange_(e){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildDispose_(){this.bcSet_.items.filter(t=>t.viewProps.get("disposed")).forEach(t=>{this.bcSet_.remove(t)})}onChildValueChange_(e){const t=Hu(this.find(er),e.sender);if(!t)throw $e.alreadyDisposed();this.emitter.emit("valuechange",{bladeController:t,options:e.options,sender:this})}onRackLayout_(e){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onRackValueChange_(e){this.emitter.emit("valuechange",{bladeController:e.bladeController,options:e.options,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class Fs{constructor(e){this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this),this.element=e.element,this.viewProps=e.viewProps;const t=new Ku({blade:e.root?void 0:e.blade,viewProps:e.viewProps});t.emitter.on("add",this.onRackAdd_),t.emitter.on("remove",this.onRackRemove_),this.rack=t,this.viewProps.handleDispose(()=>{for(let r=this.rack.children.length-1;r>=0;r--)this.rack.children[r].viewProps.set("disposed",!0)})}onRackAdd_(e){e.root&&jo(this.element,e.bladeController.view.element,e.index)}onRackRemove_(e){e.root&&Ls(e.bladeController.view.element)}}function Ko(){return new ie({positions:Ae([],{equals:Ic})})}class In extends ie{constructor(e){super(e)}static create(e){const t={completed:!0,expanded:e,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},r=ie.createCore(t);return new In(r)}get styleExpanded(){var e;return(e=this.get("temporaryExpanded"))!==null&&e!==void 0?e:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const e=this.get("expandedHeight");return this.get("shouldFixHeight")&&!me(e)?`${e}px`:"auto"}bindExpandedClass(e,t){const r=()=>{this.styleExpanded?e.classList.add(t):e.classList.remove(t)};at(this,"expanded",r),at(this,"temporaryExpanded",r)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function Wu(n,e){let t=0;return Cu(e,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),ar(e),t=e.clientHeight,n.set("temporaryExpanded",null),ar(e)}),t}function gi(n,e){e.style.height=n.styleHeight}function Vs(n,e){n.value("expanded").emitter.on("beforechange",()=>{if(n.set("completed",!1),me(n.get("expandedHeight"))){const t=Wu(n,e);t>0&&n.set("expandedHeight",t)}n.set("shouldFixHeight",!0),ar(e)}),n.emitter.on("change",()=>{gi(n,e)}),gi(n,e),e.addEventListener("transitionend",t=>{t.propertyName==="height"&&n.cleanUpTransition()})}class qu extends Is{constructor(e,t){super(e,t),this.emitter_=new qe,this.controller.foldable.value("expanded").emitter.on("change",r=>{this.emitter_.emit("fold",new vu(this,r.sender.rawValue))}),this.rackApi_.on("change",r=>{this.emitter_.emit("change",r)})}get expanded(){return this.controller.foldable.get("expanded")}set expanded(e){this.controller.foldable.set("expanded",e)}get title(){return this.controller.props.get("title")}set title(e){this.controller.props.set("title",e)}get children(){return this.rackApi_.children}addBinding(e,t,r){return this.rackApi_.addBinding(e,t,r)}addFolder(e){return this.rackApi_.addFolder(e)}addButton(e){return this.rackApi_.addButton(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){return this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}
35addBlade(e){return this.rackApi_.addBlade(e)}on(e,t){const r=t.bind(this);return this.emitter_.on(e,s=>{r(s)},{key:t}),this}off(e,t){return this.emitter_.off(e,t),this}}const Wo=oe("cnt");class Xu{constructor(e,t){var r;this.className_=oe((r=t.viewName)!==null&&r!==void 0?r:"fld"),this.element=e.createElement("div"),this.element.classList.add(this.className_(),Wo()),t.viewProps.bindClassModifiers(this.element),this.foldable_=t.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),at(this.foldable_,"completed",ln(this.element,this.className_(void 0,"cpl")));const s=e.createElement("button");s.classList.add(this.className_("b")),at(t.props,"title",c=>{me(c)?this.element.classList.add(this.className_(void 0,"not")):this.element.classList.remove(this.className_(void 0,"not"))}),t.viewProps.bindDisabled(s),this.element.appendChild(s),this.buttonElement=s;const i=e.createElement("div");i.classList.add(this.className_("i")),this.element.appendChild(i);const o=e.createElement("div");o.classList.add(this.className_("t")),Rs(t.props.value("title"),o),this.buttonElement.appendChild(o),this.titleElement=o;const a=e.createElement("div");a.classList.add(this.className_("m")),this.buttonElement.appendChild(a);const l=e.createElement("div");l.classList.add(this.className_("c")),this.element.appendChild(l),this.containerElement=l}}class wi extends Os{constructor(e,t){var r;const s=In.create((r=t.expanded)!==null&&r!==void 0?r:!0),i=new Xu(e,{foldable:s,props:t.props,viewName:t.root?"rot":void 0,viewProps:t.viewProps});super(Object.assign(Object.assign({},t),{rackController:new Fs({blade:t.blade,element:i.containerElement,root:t.root,viewProps:t.viewProps}),view:i})),this.onTitleClick_=this.onTitleClick_.bind(this),this.props=t.props,this.foldable=s,Vs(this.foldable,this.view.containerElement),this.rackController.rack.emitter.on("add",()=>{this.foldable.cleanUpTransition()}),this.rackController.rack.emitter.on("remove",()=>{this.foldable.cleanUpTransition()}),this.view.buttonElement.addEventListener("click",this.onTitleClick_)}get document(){return this.view.element.ownerDocument}importState(e){return ct(e,t=>super.importState(t),t=>({expanded:t.required.boolean,title:t.optional.string}),t=>(this.foldable.set("expanded",t.expanded),this.props.set("title",t.title),!0))}exportState(){return ut(()=>super.exportState(),{expanded:this.foldable.get("expanded"),title:this.props.get("title")})}onTitleClick_(){this.foldable.set("expanded",!this.foldable.get("expanded"))}}Ne({id:"folder",type:"blade",accept(n){const e=Oe(n,t=>({title:t.required.string,view:t.required.constant("folder"),expanded:t.optional.boolean}));return e?{params:e}:null},controller(n){return new wi(n.document,{blade:n.blade,expanded:n.params.expanded,props:ie.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof wi?new qu(n.controller,n.pool):null}});const Yu=oe("");function bi(n,e){return ln(n,Yu(void 0,e))}class On extends ie{constructor(e){var t;super(e),this.onDisabledChange_=this.onDisabledChange_.bind(this),this.onParentChange_=this.onParentChange_.bind(this),this.onParentGlobalDisabledChange_=this.onParentGlobalDisabledChange_.bind(this),[this.globalDisabled_,this.setGlobalDisabled_]=Uc(Ae(this.getGlobalDisabled_())),this.value("disabled").emitter.on("change",this.onDisabledChange_),this.value("parent").emitter.on("change",this.onParentChange_),(t=this.get("parent"))===null||t===void 0||t.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_)}static create(e){var t,r,s;const i=e??{};return new On(ie.createCore({disabled:(t=i.disabled)!==null&&t!==void 0?t:!1,disposed:!1,hidden:(r=i.hidden)!==null&&r!==void 0?r:!1,parent:(s=i.parent)!==null&&s!==void 0?s:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(e){mt(this.globalDisabled_,bi(e,"disabled")),at(this,"hidden",bi(e,"hidden"))}bindDisabled(e){mt(this.globalDisabled_,t=>{e.disabled=t})}bindTabIndex(e){mt(this.globalDisabled_,t=>{e.tabIndex=t?-1:0})}handleDispose(e){this.value("disposed").emitter.on("change",t=>{t&&e()})}importState(e){this.set("disabled",e.disabled),this.set("hidden",e.hidden)}exportState(){return{disabled:this.get("disabled"),hidden:this.get("hidden")}}getGlobalDisabled_(){const e=this.get("parent");return(e?e.globalDisabled.rawValue:!1)||this.get("disabled")}updateGlobalDisabled_(){this.setGlobalDisabled_(this.getGlobalDisabled_())}onDisabledChange_(){this.updateGlobalDisabled_()}onParentGlobalDisabledChange_(){this.updateGlobalDisabled_()}onParentChange_(e){var t;const r=e.previousRawValue;r?.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(t=this.get("parent"))===null||t===void 0||t.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}const _i=oe("tbp");class Zu{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(_i()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(_i("c")),this.element.appendChild(r),this.containerElement=r}}const hn=oe("tbi");class Qu{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(hn()),t.viewProps.bindClassModifiers(this.element),at(t.props,"selected",i=>{i?this.element.classList.add(hn(void 0,"sel")):this.element.classList.remove(hn(void 0,"sel"))});const r=e.createElement("button");r.classList.add(hn("b")),t.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const s=e.createElement("div");s.classList.add(hn("t")),Rs(t.props.value("title"),s),this.buttonElement.appendChild(s),this.titleElement=s}}class Ju{constructor(e,t){this.emitter=new qe,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Qu(e,{props:t.props,viewProps:t.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class os extends Os{constructor(e,t){const r=new Zu(e,{viewProps:t.viewProps});super(Object.assign(Object.assign({},t),{rackController:new Fs({blade:t.blade,element:r.containerElement,viewProps:t.viewProps}),view:r})),this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new Ju(e,{props:t.itemProps,viewProps:On.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.props=t.props,at(this.props,"selected",s=>{this.itemController.props.set("selected",s),this.viewProps.set("hidden",!s)})}get itemController(){return this.ic_}importState(e){return ct(e,t=>super.importState(t),t=>({selected:t.required.boolean,title:t.required.string}),t=>(this.ic_.props.set("selected",t.selected),this.ic_.props.set("title",t.title),!0))}exportState(){return ut(()=>super.exportState(),{selected:this.ic_.props.get("selected"),title:this.ic_.props.get("title")})}onItemClick_(){this.props.set("selected",!0)}}class ed extends Is{constructor(e,t){super(e,t),this.emitter_=new qe,this.onSelect_=this.onSelect_.bind(this),this.pool_=t,this.rackApi_.on("change",r=>{this.emitter_.emit("change",r)}),this.controller.tab.selectedIndex.emitter.on("change",this.onSelect_)}get pages(){return this.rackApi_.children}addPage(e){const t=this.controller.view.element.ownerDocument,r=new os(t,{blade:Ko(),itemProps:ie.fromObject({selected:!1,title:e.title}),props:ie.fromObject({selected:!1}),viewProps:On.create()}),s=this.pool_.createApi(r);return this.rackApi_.add(s,e.index)}removePage(e){this.rackApi_.remove(this.rackApi_.children[e])}on(e,t){const r=t.bind(this);return this.emitter_.on(e,s=>{r(s)},{key:t}),this}off(e,t){return this.emitter_.off(e,t),this}onSelect_(e){this.emitter_.emit("select",new gu(this,e.rawValue))}}class td extends Is{get title(){var e;return(e=this.controller.itemController.props.get("title"))!==null&&e!==void 0?e:""}set title(e){this.controller.itemController.props.set("title",e)}get selected(){return this.controller.props.get("selected")}set selected(e){this.controller.props.set("selected",e)}get children(){return this.rackApi_.children}addButton(e){return this.rackApi_.addButton(e)}addFolder(e){return this.rackApi_.addFolder(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}
35addBinding(e,t,r){return this.rackApi_.addBinding(e,t,r)}addBlade(e){return this.rackApi_.addBlade(e)}}const yi=-1;class nd{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=Ae(!0),this.selectedIndex=Ae(yi),this.items_=[]}add(e,t){const r=t??this.items_.length;this.items_.splice(r,0,e),e.emitter.on("change",this.onItemSelectedChange_),this.keepSelection_()}remove(e){const t=this.items_.indexOf(e);t<0||(this.items_.splice(t,1),e.emitter.off("change",this.onItemSelectedChange_),this.keepSelection_())}keepSelection_(){if(this.items_.length===0){this.selectedIndex.rawValue=yi,this.empty.rawValue=!0;return}const e=this.items_.findIndex(t=>t.rawValue);e<0?(this.items_.forEach((t,r)=>{t.rawValue=r===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((t,r)=>{t.rawValue=r===e}),this.selectedIndex.rawValue=e),this.empty.rawValue=!1}onItemSelectedChange_(e){if(e.rawValue){const t=this.items_.findIndex(r=>r===e.sender);this.items_.forEach((r,s)=>{r.rawValue=s===t}),this.selectedIndex.rawValue=t}else this.keepSelection_()}}const pn=oe("tab");class rd{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(pn(),Wo()),t.viewProps.bindClassModifiers(this.element),mt(t.empty,ln(this.element,pn(void 0,"nop")));const r=e.createElement("div");r.classList.add(pn("t")),this.element.appendChild(r),this.itemsElement=r;const s=e.createElement("div");s.classList.add(pn("i")),this.element.appendChild(s);const i=e.createElement("div");i.classList.add(pn("c")),this.element.appendChild(i),this.contentsElement=i}}class xi extends Os{constructor(e,t){const r=new nd,s=new rd(e,{empty:r.empty,viewProps:t.viewProps});super({blade:t.blade,rackController:new Fs({blade:t.blade,element:s.contentsElement,viewProps:t.viewProps}),view:s}),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const i=this.rackController.rack;i.emitter.on("add",this.onRackAdd_),i.emitter.on("remove",this.onRackRemove_),this.tab=r}add(e,t){this.rackController.rack.add(e,t)}remove(e){this.rackController.rack.remove(this.rackController.rack.children[e])}onRackAdd_(e){if(!e.root)return;const t=e.bladeController;jo(this.view.itemsElement,t.itemController.view.element,e.index),t.itemController.viewProps.set("parent",this.viewProps),this.tab.add(t.props.value("selected"))}onRackRemove_(e){if(!e.root)return;const t=e.bladeController;Ls(t.itemController.view.element),t.itemController.viewProps.set("parent",null),this.tab.remove(t.props.value("selected"))}}Ne({id:"tab",type:"blade",accept(n){const e=Oe(n,t=>({pages:t.required.array(t.required.object({title:t.required.string})),view:t.required.constant("tab")}));return!e||e.pages.length===0?null:{params:e}},controller(n){const e=new xi(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(t=>{const r=new os(n.document,{blade:Ko(),itemProps:ie.fromObject({selected:!1,title:t.title}),props:ie.fromObject({selected:!1}),viewProps:On.create()});e.add(r)}),e},api(n){return n.controller instanceof xi?new ed(n.controller,n.pool):n.controller instanceof os?new td(n.controller,n.pool):null}});class Ns extends Ss{get options(){return this.controller.valueController.props.get("options")}set options(e){this.controller.valueController.props.set("options",e)}}class Fn{constructor(e){this.constraints=e}constrain(e){return this.constraints.reduce((t,r)=>r.constrain(t),e)}}function lr(n,e){if(n instanceof e)return n;if(n instanceof Fn){const t=n.constraints.reduce((r,s)=>r||(s instanceof e?s:null),null);if(t)return t}return null}class br{constructor(e){this.values=ie.fromObject({options:e})}constrain(e){const t=this.values.get("options");return t.length===0||t.filter(s=>s.value===e).length>0?e:t[0].value}}function _r(n){var e;const t=ss;if(Array.isArray(n))return(e=Oe({items:n},r=>({items:r.required.array(r.required.object({text:r.required.string,value:r.required.raw}))})))===null||e===void 0?void 0:e.items;if(typeof n=="object")return t.required.raw(n).value}function qo(n){if(Array.isArray(n))return n;const e=[];
35return Object.keys(n).forEach(t=>{e.push({text:t,value:n[t]})}),e}function Ds(n){return me(n)?null:new br(qo(n))}const Ir=oe("lst");class sd{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.props_=t.props,this.element=e.createElement("div"),this.element.classList.add(Ir()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("select");r.classList.add(Ir("s")),t.viewProps.bindDisabled(r),this.element.appendChild(r),this.selectElement=r;const s=e.createElement("div");s.classList.add(Ir("m")),s.appendChild(wr(e,"dropdown")),this.element.appendChild(s),t.value.emitter.on("change",this.onValueChange_),this.value_=t.value,at(this.props_,"options",i=>{zo(this.selectElement),i.forEach(o=>{const a=e.createElement("option");a.textContent=o.text,this.selectElement.appendChild(a)}),this.update_()})}update_(){const e=this.props_.get("options").map(t=>t.value);this.selectElement.selectedIndex=e.indexOf(this.value_.rawValue)}onValueChange_(){this.update_()}}class on{constructor(e,t){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new sd(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(e){const t=e.currentTarget;this.value.rawValue=this.props.get("options")[t.selectedIndex].value}importProps(e){return ct(e,null,t=>({options:t.required.custom(_r)}),t=>(this.props.set("options",qo(t.options)),!0))}exportProps(){return ut(null,{options:this.props.get("options")})}}const Ci=oe("pop");class id{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Ci()),t.viewProps.bindClassModifiers(this.element),mt(t.shows,ln(this.element,Ci(void 0,"v")))}}class Xo{constructor(e,t){this.shows=Ae(!1),this.viewProps=t.viewProps,this.view=new id(e,{shows:this.shows,viewProps:this.viewProps})}}const Pi=oe("txt");class od{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Pi()),t.viewProps.bindClassModifiers(this.element),this.props_=t.props,this.props_.emitter.on("change",this.onChange_);const r=e.createElement("input");r.classList.add(Pi("i")),r.type="text",t.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,t.value.emitter.on("change",this.onChange_),this.value_=t.value,this.refresh()}refresh(){const e=this.props_.get("formatter");this.inputElement.value=e(this.value_.rawValue)}onChange_(){this.refresh()}}class Us{constructor(e,t){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=t.parser,this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new od(e,{props:t.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const r=e.currentTarget.value,s=this.parser_(r);me(s)||(this.value.rawValue=s),this.view.refresh()}}function ad(n){return String(n)}function Yo(n){return n==="false"?!1:!!n}function Ti(n){return ad(n)}function ld(n){return e=>n.reduce((t,r)=>t!==null?t:r(e),null)}const cd=ze(0);function cr(n){return cd(n)+"%"}function Zo(n){return String(n)}function as(n){return n}function cn({primary:n,secondary:e,forward:t,backward:r}){let s=!1;function i(o){s||(s=!0,o(),s=!1)}n.emitter.on("change",o=>{i(()=>{e.setRawValue(t(n.rawValue,e.rawValue),o.options)})}),e.emitter.on("change",o=>{i(()=>{n.setRawValue(r(n.rawValue,e.rawValue),o.options)}),i(()=>{e.setRawValue(t(n.rawValue,e.rawValue),o.options)})}),i(()=>{e.setRawValue(t(n.rawValue,e.rawValue),{forceEmit:!1,last:!0})})}function je(n,e){const t=n*(e.altKey?.1:1)*(e.shiftKey?10:1);return e.upKey?+t:e.downKey?-t:0}function An(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function wt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function ud(n){return n==="ArrowUp"||n==="ArrowDown"}function Qo(n){return ud(n)||n==="ArrowLeft"||n==="ArrowRight"}function Or(n,e){var t,r;const s=e.ownerDocument.defaultView,i=e.getBoundingClientRect();return{x:n.pageX-(((t=s&&s.scrollX)!==null&&t!==void 0?t:0)+i.left),y:n.pageY-(((r=s&&s.scrollY)!==null&&r!==void 0?r:0)+i.top)}}class Wt{constructor(e){this.lastTouch_=null,this.onDocumentMouseMove_=this.onDocumentMouseMove_.bind(this),this.onDocumentMouseUp_=this.onDocumentMouseUp_.bind(this),this.onMouseDown_=this.onMouseDown_.bind(this),this.onTouchEnd_=this.onTouchEnd_.bind(this),this.onTouchMove_=this.onTouchMove_.bind(this),this.onTouchStart_=this.onTouchStart_.bind(this),this.elem_=e,this.emitter=new qe,e.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),e.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),e.addEventListener("touchend",this.onTouchEnd_),e.addEventListener("mousedown",this.onMouseDown_)}computePosition_(e){const t=this.elem_.getBoundingClientRect();return{bounds:{width:t.width,height:t.height},point:e?{x:e.x,y:e.y}:null}}onMouseDown_(e){var t;e.preventDefault(),(t=e.currentTarget)===null||t===void 0||t.focu
35s();const r=this.elem_.ownerDocument;r.addEventListener("mousemove",this.onDocumentMouseMove_),r.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(Or(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onDocumentMouseMove_(e){this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(Or(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onDocumentMouseUp_(e){const t=this.elem_.ownerDocument;t.removeEventListener("mousemove",this.onDocumentMouseMove_),t.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:e.altKey,data:this.computePosition_(Or(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onTouchStart_(e){e.preventDefault();const t=e.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-r.left,y:t.clientY-r.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchMove_(e){const t=e.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-r.left,y:t.clientY-r.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchEnd_(e){var t;const r=(t=e.targetTouches.item(0))!==null&&t!==void 0?t:this.lastTouch_,s=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:e.altKey,data:this.computePosition_(r?{x:r.clientX-s.left,y:r.clientY-s.top}:void 0),sender:this,shiftKey:e.shiftKey})}}const Xe=oe("txt");class dd{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.props_=t.props,this.props_.emitter.on("change",this.onChange_),this.element=e.createElement("div"),this.element.classList.add(Xe(),Xe(void 0,"num")),t.arrayPosition&&this.element.classList.add(Xe(void 0,t.arrayPosition)),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("input");r.classList.add(Xe("i")),r.type="text",t.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=t.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(Xe()),this.inputElement.classList.add(Xe("i"));const s=e.createElement("div");s.classList.add(Xe("k")),this.element.appendChild(s),this.knobElement=s;const i=e.createElementNS(rt,"svg");i.classList.add(Xe("g")),this.knobElement.appendChild(i);const o=e.createElementNS(rt,"path");o.classList.add(Xe("gb")),i.appendChild(o),this.guideBodyElem_=o;const a=e.createElementNS(rt,"path");a.classList.add(Xe("gh")),i.appendChild(a),this.guideHeadElem_=a;const l=e.createElement("div");l.classList.add(oe("tt")()),this.knobElement.appendChild(l),this.tooltipElem_=l,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.refresh()}onDraggingChange_(e){if(e.rawValue===null){this.element.classList.remove(Xe(void 0,"drg"));return}this.element.classList.add(Xe(void 0,"drg"));const t=e.rawValue/this.props_.get("pointerScale"),r=t+(t>0?-1:t<0?1:0),s=Te(-r,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${r+s},0 L${r},4 L${r+s},8`,`M ${t},-1 L${t},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${t},4`);const i=this.props_.get("formatter");this.tooltipElem_.textContent=i(this.value.rawValue),this.tooltipElem_.style.left=`${t}px`}refresh(){const e=this.props_.get("formatter");this.inputElement.value=e(this.value.rawValue)}onChange_(){this.refresh()}}class Vn{constructor(e,t){var r;this.originRawValue_=0,this.onInputChange_=this.onInputChange_.bind(this),this.onInputKeyDown_=this.onInputKeyDown_.bind(this),this.onInputKeyUp_=this.onInputKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.parser_=t.parser,this.props=t.props,this.sliderProps_=(r=t.sliderProps)!==null&&r!==void 0?r:null,this.value=t.value,this.viewProps=t.viewProps,this.dragging_=Ae(null),this.view=new dd(e,{arrayPosition:t.arrayPosition,dragging:this.dragging_,props:this.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_),this.view.inputElement.addEventListener("keydown",this.onInputKeyDown_),this.view.inputElement.addEventListener("keyup",this.onInputKeyUp_);const s=new Wt(this.view.knobElement);s.emitter.on("down",this.onPointerDown_),s.emitter.on("move",this.onPointerMove_),s.emitter.on("up",this.onPointerUp_)}constrainValue_(e){var t,r;const s=(t=this.sliderProps_)===null||t===void 0?void 0:t.get("min"),i=(r=this.sliderProps_)===null||r===void 0?void 0:r.get("max");let o=e;
35return s!==void 0&&(o=Math.max(o,s)),i!==void 0&&(o=Math.min(o,i)),o}onInputChange_(e){const r=e.currentTarget.value,s=this.parser_(r);me(s)||(this.value.rawValue=this.constrainValue_(s)),this.view.refresh()}onInputKeyDown_(e){const t=je(this.props.get("keyScale"),An(e));t!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+t),{forceEmit:!1,last:!1})}onInputKeyUp_(e){je(this.props.get("keyScale"),An(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(e){if(!e.point)return null;const t=e.point.x-e.bounds.width/2;return this.constrainValue_(this.originRawValue_+t*this.props.get("pointerScale"))}onPointerMove_(e){const t=this.computeDraggingValue_(e.data);t!==null&&(this.value.setRawValue(t,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(e){const t=this.computeDraggingValue_(e.data);t!==null&&(this.value.setRawValue(t,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}const Fr=oe("sld");class hd{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.props_=t.props,this.props_.emitter.on("change",this.onChange_),this.element=e.createElement("div"),this.element.classList.add(Fr()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(Fr("t")),t.viewProps.bindTabIndex(r),this.element.appendChild(r),this.trackElement=r;const s=e.createElement("div");s.classList.add(Fr("k")),this.trackElement.appendChild(s),this.knobElement=s,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.update_()}update_(){const e=Te(ae(this.value.rawValue,this.props_.get("min"),this.props_.get("max"),0,100),0,100);this.knobElement.style.width=`${e}%`}onChange_(){this.update_()}}class pd{constructor(e,t){this.onKeyDown_=this.onKeyDown_.bind(this),this.onKeyUp_=this.onKeyUp_.bind(this),this.onPointerDownOrMove_=this.onPointerDownOrMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.props=t.props,this.view=new hd(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Wt(this.view.trackElement),this.ptHandler_.emitter.on("down",this.onPointerDownOrMove_),this.ptHandler_.emitter.on("move",this.onPointerDownOrMove_),this.ptHandler_.emitter.on("up",this.onPointerUp_),this.view.trackElement.addEventListener("keydown",this.onKeyDown_),this.view.trackElement.addEventListener("keyup",this.onKeyUp_)}handlePointerEvent_(e,t){e.point&&this.value.setRawValue(ae(Te(e.point.x,0,e.bounds.width),0,e.bounds.width,this.props.get("min"),this.props.get("max")),t)}onPointerDownOrMove_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerUp_(e){this.handlePointerEvent_(e.data,{forceEmit:!0,last:!0})}onKeyDown_(e){const t=je(this.props.get("keyScale"),wt(e));t!==0&&this.value.setRawValue(this.value.rawValue+t,{forceEmit:!1,last:!1})}onKeyUp_(e){je(this.props.get("keyScale"),wt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Vr=oe("sldtxt");class fd{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Vr());const r=e.createElement("div");r.classList.add(Vr("s")),this.sliderView_=t.sliderView,r.appendChild(this.sliderView_.element),this.element.appendChild(r);const s=e.createElement("div");s.classList.add(Vr("t")),this.textView_=t.textView,s.appendChild(this.textView_.element),this.element.appendChild(s)}}class Ei{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.sliderC_=new pd(e,{props:t.sliderProps,value:t.value,viewProps:this.viewProps}),this.textC_=new Vn(e,{parser:t.parser,props:t.textProps,sliderProps:t.sliderProps,value:t.value,viewProps:t.viewProps}),this.view=new fd(e,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}importProps(e){return ct(e,null,t=>({max:t.required.number,min:t.required.number}),t=>{const r=this.sliderC_.props;return r.set("max",t.max),r.set("min",t.min),!0})}exportProps(){const e=this.sliderC_.props;return ut(null,{max:e.get("max"),min:e.get("min")})}}function md(n){return{sliderProps:new ie({keyScale:n.keyScale,max:n.max,min:n.min}),textProps:new ie({formatter:Ae(n.formatter),keyScale:n.keyScale,pointerScale:Ae(n.pointerScale)})}}const vd={containerUnitSize:"cnt-usz"};function Jo(n){return`--${vd[n]}`}function Sn(n){return Uo(n)}function At(n){if(rs(n))return Oe(n,Sn)}function ft(n,e){if(!n)return;const t=[],r=Vo(n,e);r&&t.push(r);const s=No(n);
35return s&&t.push(s),new Fn(t)}function ea(n){if(n==="inline"||n==="popup")return n}function Nn(n,e){n.write(e)}const Kn=oe("ckb");class gd{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Kn()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("label");r.classList.add(Kn("l")),this.element.appendChild(r),this.labelElement=r;const s=e.createElement("input");s.classList.add(Kn("i")),s.type="checkbox",this.labelElement.appendChild(s),this.inputElement=s,t.viewProps.bindDisabled(this.inputElement);const i=e.createElement("div");i.classList.add(Kn("w")),this.labelElement.appendChild(i);const o=wr(e,"check");i.appendChild(o),t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class wd{constructor(e,t){this.onInputChange_=this.onInputChange_.bind(this),this.onLabelMouseDown_=this.onLabelMouseDown_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new gd(e,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_),this.view.labelElement.addEventListener("mousedown",this.onLabelMouseDown_)}onInputChange_(e){const t=e.currentTarget;this.value.rawValue=t.checked,e.preventDefault(),e.stopPropagation()}onLabelMouseDown_(e){e.preventDefault()}}function bd(n){const e=[],t=Ds(n.options);return t&&e.push(t),new Fn(e)}Ne({id:"input-bool",type:"input",accept:(n,e)=>{if(typeof n!="boolean")return null;const t=Oe(e,r=>({options:r.optional.custom(_r),readonly:r.optional.constant(!1)}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Yo,constraint:n=>bd(n.params),writer:n=>Nn},controller:n=>{const e=n.document,t=n.value,r=n.constraint,s=r&&lr(r,br);return s?new on(e,{props:new ie({options:s.values.value("options")}),value:t,viewProps:n.viewProps}):new wd(e,{value:t,viewProps:n.viewProps})},api(n){return typeof n.controller.value.rawValue!="boolean"?null:n.controller.valueController instanceof on?new Ns(n.controller):null}});const Ft=oe("col");class _d{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Ft()),t.foldable.bindExpandedClass(this.element,Ft(void 0,"expanded")),at(t.foldable,"completed",ln(this.element,Ft(void 0,"cpl")));const r=e.createElement("div");r.classList.add(Ft("h")),this.element.appendChild(r);const s=e.createElement("div");s.classList.add(Ft("s")),r.appendChild(s),this.swatchElement=s;const i=e.createElement("div");if(i.classList.add(Ft("t")),r.appendChild(i),this.textElement=i,t.pickerLayout==="inline"){const o=e.createElement("div");o.classList.add(Ft("p")),this.element.appendChild(o),this.pickerElement=o}else this.pickerElement=null}}function yd(n,e,t){const r=Te(n/255,0,1),s=Te(e/255,0,1),i=Te(t/255,0,1),o=Math.max(r,s,i),a=Math.min(r,s,i),l=o-a;let c=0,d=0;const u=(a+o)/2;return l!==0&&(d=l/(1-Math.abs(o+a-1)),r===o?c=(s-i)/l:s===o?c=2+(i-r)/l:c=4+(r-s)/l,c=c/6+(c<0?1:0)),[c*360,d*100,u*100]}function xd(n,e,t){const r=(n%360+360)%360,s=Te(e/100,0,1),i=Te(t/100,0,1),o=(1-Math.abs(2*i-1))*s,a=o*(1-Math.abs(r/60%2-1)),l=i-o/2;let c,d,u;return r>=0&&r<60?[c,d,u]=[o,a,0]:r>=60&&r<120?[c,d,u]=[a,o,0]:r>=120&&r<180?[c,d,u]=[0,o,a]:r>=180&&r<240?[c,d,u]=[0,a,o]:r>=240&&r<300?[c,d,u]=[a,0,o]:[c,d,u]=[o,0,a],[(c+l)*255,(d+l)*255,(u+l)*255]}function Cd(n,e,t){const r=Te(n/255,0,1),s=Te(e/255,0,1),i=Te(t/255,0,1),o=Math.max(r,s,i),a=Math.min(r,s,i),l=o-a;let c;l===0?c=0:o===r?c=60*(((s-i)/l%6+6)%6):o===s?c=60*((i-r)/l+2):c=60*((r-s)/l+4);const d=o===0?0:l/o,u=o;return[c,d*100,u*100]}function ta(n,e,t){const r=Oo(n,360),s=Te(e/100,0,1),i=Te(t/100,0,1),o=i*s,a=o*(1-Math.abs(r/60%2-1)),l=i-o;let c,d,u;return r>=0&&r<60?[c,d,u]=[o,a,0]:r>=60&&r<120?[c,d,u]=[a,o,0]:r>=120&&r<180?[c,d,u]=[0,o,a]:r>=180&&r<240?[c,d,u]=[0,a,o]:r>=240&&r<300?[c,d,u]=[a,0,o]:[c,d,u]=[o,0,a],[(c+l)*255,(d+l)*255,(u+l)*255]}function Pd(n,e,t){const r=t+e*(100-Math.abs(2*t-100))/200;return[n,r!==0?e*(100-Math.abs(2*t-100))/r:0,t+e*(100-Math.abs(2*t-100))/200]}function Td(n,e,t){const r=100-Math.abs(t*(200-e)/100-100);return[n,r!==0?e*t/r:0,t*(200-e)/200]}function lt(n){return[n[0],n[1],n[2]]}function yr(n,e){return[n[0],n[1],n[2],e]}const Ed={hsl:{hsl:(n,e,t)=>[n,e,t],hsv:Pd,rgb:xd},hsv:{hsl:Td,hsv:(n,e,t)=>
35[n,e,t],rgb:ta},rgb:{hsl:yd,hsv:Cd,rgb:(n,e,t)=>[n,e,t]}};function an(n,e){return[e==="float"?1:n==="rgb"?255:360,e==="float"?1:n==="rgb"?255:100,e==="float"?1:n==="rgb"?255:100]}function Md(n,e){return n===e?e:Oo(n,e)}function na(n,e,t){var r;const s=an(e,t);return[e==="rgb"?Te(n[0],0,s[0]):Md(n[0],s[0]),Te(n[1],0,s[1]),Te(n[2],0,s[2]),Te((r=n[3])!==null&&r!==void 0?r:1,0,1)]}function Mi(n,e,t,r){const s=an(e,t),i=an(e,r);return n.map((o,a)=>o/s[a]*i[a])}function ra(n,e,t){const r=Mi(n,e.mode,e.type,"int"),s=Ed[e.mode][t.mode](...r);return Mi(s,t.mode,"int",t.type)}class re{static black(){return new re([0,0,0],"rgb")}constructor(e,t){this.type="int",this.mode=t,this.comps_=na(e,t,this.type)}getComponents(e){return yr(ra(lt(this.comps_),{mode:this.mode,type:this.type},{mode:e??this.mode,type:this.type}),this.comps_[3])}toRgbaObject(){const e=this.getComponents("rgb");return{r:e[0],g:e[1],b:e[2],a:e[3]}}}const xt=oe("colp");class Ad{constructor(e,t){this.alphaViews_=null,this.element=e.createElement("div"),this.element.classList.add(xt()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(xt("hsv"));const s=e.createElement("div");s.classList.add(xt("sv")),this.svPaletteView_=t.svPaletteView,s.appendChild(this.svPaletteView_.element),r.appendChild(s);const i=e.createElement("div");i.classList.add(xt("h")),this.hPaletteView_=t.hPaletteView,i.appendChild(this.hPaletteView_.element),r.appendChild(i),this.element.appendChild(r);const o=e.createElement("div");if(o.classList.add(xt("rgb")),this.textsView_=t.textsView,o.appendChild(this.textsView_.element),this.element.appendChild(o),t.alphaViews){this.alphaViews_={palette:t.alphaViews.palette,text:t.alphaViews.text};const a=e.createElement("div");a.classList.add(xt("a"));const l=e.createElement("div");l.classList.add(xt("ap")),l.appendChild(this.alphaViews_.palette.element),a.appendChild(l);const c=e.createElement("div");c.classList.add(xt("at")),c.appendChild(this.alphaViews_.text.element),a.appendChild(c),this.element.appendChild(a)}}get allFocusableElements(){const e=[this.svPaletteView_.element,this.hPaletteView_.element,this.textsView_.modeSelectElement,...this.textsView_.inputViews.map(t=>t.inputElement)];return this.alphaViews_&&e.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement),e}}function Sd(n){return n==="int"?"int":n==="float"?"float":void 0}function Bs(n){return Oe(n,e=>({color:e.optional.object({alpha:e.optional.boolean,type:e.optional.custom(Sd)}),expanded:e.optional.boolean,picker:e.optional.custom(ea),readonly:e.optional.constant(!1)}))}function Ht(n){return n?.1:1}function sa(n){var e;return(e=n.color)===null||e===void 0?void 0:e.type}class js{constructor(e,t){this.type="float",this.mode=t,this.comps_=na(e,t,this.type)}getComponents(e){return yr(ra(lt(this.comps_),{mode:this.mode,type:this.type},{mode:e??this.mode,type:this.type}),this.comps_[3])}toRgbaObject(){const e=this.getComponents("rgb");return{r:e[0],g:e[1],b:e[2],a:e[3]}}}const kd={int:(n,e)=>new re(n,e),float:(n,e)=>new js(n,e)};function zs(n,e,t){return kd[t](n,e)}function Ld(n){return n.type==="float"}function Rd(n){return n.type==="int"}function Id(n){const e=n.getComponents(),t=an(n.mode,"int");return new re([Math.round(ae(e[0],0,1,0,t[0])),Math.round(ae(e[1],0,1,0,t[1])),Math.round(ae(e[2],0,1,0,t[2])),e[3]],n.mode)}function Od(n){const e=n.getComponents(),t=an(n.mode,"int");return new js([ae(e[0],0,t[0],0,1),ae(e[1],0,t[1],0,1),ae(e[2],0,t[2],0,1),e[3]],n.mode)}function Fe(n,e){if(n.type===e)return n;if(Rd(n)&&e==="float")return Od(n);if(Ld(n)&&e==="int")return Id(n);throw $e.shouldNeverHappen()}function Fd(n,e){return n.alpha===e.alpha&&n.mode===e.mode&&n.notation===e.notation&&n.type===e.type}function Qe(n,e){const t=n.match(/^(.+)%$/);return Math.min(t?parseFloat(t[1])*.01*e:parseFloat(n),e)}const Vd={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function ia(n){const e=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!e)return parseFloat(n);const t=parseFloat(e[1]),r=e[2];return Vd[r](t)}function oa(n){const e=n.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!e)return null;const t=[Qe(e[1],255),Qe(e[2],255),Qe(e[3],255)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function Nd(n){const e=oa(n);return e?new re(e,"rgb"):null}function aa(n){const e=n.match(/^rgba\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!e)return null;const t=[Qe(e[1],255),Qe(e[2],255),Qe(e[3],255),Qe(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}
35function Dd(n){const e=aa(n);return e?new re(e,"rgb"):null}function la(n){const e=n.match(/^hsl\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!e)return null;const t=[ia(e[1]),Qe(e[2],100),Qe(e[3],100)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function Ud(n){const e=la(n);return e?new re(e,"hsl"):null}function ca(n){const e=n.match(/^hsla\(\s*([0-9A-Fa-f.]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!e)return null;const t=[ia(e[1]),Qe(e[2],100),Qe(e[3],100),Qe(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function Bd(n){const e=ca(n);return e?new re(e,"hsl"):null}function ua(n){const e=n.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(e)return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)];const t=n.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);return t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:null}function jd(n){const e=ua(n);return e?new re(e,"rgb"):null}function da(n){const e=n.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(e)return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16),ae(parseInt(e[4]+e[4],16),0,255,0,1)];const t=n.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);return t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),ae(parseInt(t[4],16),0,255,0,1)]:null}function zd(n){const e=da(n);return e?new re(e,"rgb"):null}function ha(n){const e=n.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/);if(!e)return null;const t=[parseFloat(e[1]),parseFloat(e[2]),parseFloat(e[3])];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function Gd(n){return e=>{const t=ha(e);return t?zs(t,"rgb",n):null}}function pa(n){const e=n.match(/^\{\s*r\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*g\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*b\s*:\s*([0-9A-Fa-f.]+%?)\s*,\s*a\s*:\s*([0-9A-Fa-f.]+%?)\s*\}$/);if(!e)return null;const t=[parseFloat(e[1]),parseFloat(e[2]),parseFloat(e[3]),parseFloat(e[4])];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function Hd(n){return e=>{const t=pa(e);return t?zs(t,"rgb",n):null}}const $d=[{parser:ua,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:da,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:oa,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:aa,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:la,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:ca,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:ha,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:pa,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Kd(n){return $d.reduce((e,{parser:t,result:r})=>e||(t(n)?r:null),null)}function Wd(n,e="int"){const t=Kd(n);return t?t.notation==="hex"&&e!=="float"?Object.assign(Object.assign({},t),{type:"int"}):t.notation==="func"?Object.assign(Object.assign({},t),{type:e}):null:null}function Dn(n){const e=[jd,zd,Nd,Dd,Ud,Bd];e.push(Gd("int"),Hd("int"));const t=ld(e);return r=>{const s=t(r);return s?Fe(s,n):null}}function qd(n){const e=Dn("int");if(typeof n!="string")return re.black();const t=e(n);return t??re.black()}function fa(n){const e=Te(Math.floor(n),0,255).toString(16);return e.length===1?`0${e}`:e}function Gs(n,e="#"){const t=lt(n.getComponents("rgb")).map(fa).join("");return`${e}${t}`}function Hs(n,e="#"){const t=n.getComponents("rgb"),r=[t[0],t[1],t[2],t[3]*255].map(fa).join("");return`${e}${r}`}function ma(n){const e=ze(0),t=Fe(n,"int");return`rgb(${lt(t.getComponents("rgb")).map(s=>e(s)).join(", ")})`}function tr(n){const e=ze(2),t=ze(0);return`rgba(${Fe(n,"int").getComponents("rgb").map((i,o)=>(o===3?e:t)(i)).join(", ")})`}function Xd(n){const e=[ze(0),cr,cr],t=Fe(n,"int");return`hsl(${lt(t.getComponents("hsl")).map((s,i)=>e[i](s)).join(", ")})`}function Yd(n){const e=[ze(0),cr,cr,ze(2)];return`hsla(${Fe(n,"int").getComponents("hsl").map((s,i)=>e[i](s)).join(", ")})`}function va(n,e){const t=ze(e==="float"?2:0),r=["r","g","b"],s=Fe(n,e);return`{${lt(s.getComponents("rgb")).map((o,a)=>`${r[a]}: ${t(o)}`).join(", ")}}`}function Zd(n){return e=>va(e,n)}function ga(n,e){const t=ze(2),r=ze(e==="float"?2:0),s=["r","g","b","a"];return`{${Fe(n,e).getComponents("rgb").map((a,l)=>{const c=l===3?t:r;return`${s[l]}: ${c(a)}`}).join(", ")}}`}function Qd(n){return e=>ga(e,n)}const Jd=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:Gs},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:Hs},{format:{alpha:!1,mode:"rgb",notation:"func",type:"int"},stringifier:ma},{format:{alpha:!0,mode:"rgb",notation:"func",type:"int"},stringifier:tr},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:Xd},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:Yd},...["int","float"].reduce((n,e)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"object",type:e},stringifier:Zd(e)},{format:{alpha:!0,mode:"rgb",notation:"object",type:e},stringifier:Qd(e)}],[])];function wa(n){return Jd.reduce((e,t)=>
35e||(Fd(t.format,n)?t.stringifier:null),null)}const fn=oe("apl");class eh{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.value=t.value,this.value.emitter.on("change",this.onValueChange_),this.element=e.createElement("div"),this.element.classList.add(fn()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const r=e.createElement("div");r.classList.add(fn("b")),this.element.appendChild(r);const s=e.createElement("div");s.classList.add(fn("c")),r.appendChild(s),this.colorElem_=s;const i=e.createElement("div");i.classList.add(fn("m")),this.element.appendChild(i),this.markerElem_=i;const o=e.createElement("div");o.classList.add(fn("p")),this.markerElem_.appendChild(o),this.previewElem_=o,this.update_()}update_(){const e=this.value.rawValue,t=e.getComponents("rgb"),r=new re([t[0],t[1],t[2],0],"rgb"),s=new re([t[0],t[1],t[2],255],"rgb"),i=["to right",tr(r),tr(s)];this.colorElem_.style.background=`linear-gradient(${i.join(",")})`,this.previewElem_.style.backgroundColor=tr(e);const o=ae(t[3],0,1,0,100);this.markerElem_.style.left=`${o}%`}onValueChange_(){this.update_()}}class th{constructor(e,t){this.onKeyDown_=this.onKeyDown_.bind(this),this.onKeyUp_=this.onKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new eh(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Wt(this.view.element),this.ptHandler_.emitter.on("down",this.onPointerDown_),this.ptHandler_.emitter.on("move",this.onPointerMove_),this.ptHandler_.emitter.on("up",this.onPointerUp_),this.view.element.addEventListener("keydown",this.onKeyDown_),this.view.element.addEventListener("keyup",this.onKeyUp_)}handlePointerEvent_(e,t){if(!e.point)return;const r=e.point.x/e.bounds.width,s=this.value.rawValue,[i,o,a]=s.getComponents("hsv");this.value.setRawValue(new re([i,o,a,r],"hsv"),t)}onPointerDown_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerMove_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerUp_(e){this.handlePointerEvent_(e.data,{forceEmit:!0,last:!0})}onKeyDown_(e){const t=je(Ht(!0),wt(e));if(t===0)return;const r=this.value.rawValue,[s,i,o,a]=r.getComponents("hsv");this.value.setRawValue(new re([s,i,o,a+t],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){je(Ht(!0),wt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Xt=oe("coltxt");function nh(n){const e=n.createElement("select"),t=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"},{text:"HEX",value:"hex"}];return e.appendChild(t.reduce((r,s)=>{const i=n.createElement("option");return i.textContent=s.text,i.value=s.value,r.appendChild(i),r},n.createDocumentFragment())),e}class rh{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Xt()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(Xt("m")),this.modeElem_=nh(e),this.modeElem_.classList.add(Xt("ms")),r.appendChild(this.modeSelectElement),t.viewProps.bindDisabled(this.modeElem_);const s=e.createElement("div");s.classList.add(Xt("mm")),s.appendChild(wr(e,"dropdown")),r.appendChild(s),this.element.appendChild(r);const i=e.createElement("div");i.classList.add(Xt("w")),this.element.appendChild(i),this.inputsElem_=i,this.inputViews_=t.inputViews,this.applyInputViews_(),mt(t.mode,o=>{this.modeElem_.value=o})}get modeSelectElement(){return this.modeElem_}get inputViews(){return this.inputViews_}set inputViews(e){this.inputViews_=e,this.applyInputViews_()}applyInputViews_(){zo(this.inputsElem_);const e=this.element.ownerDocument;this.inputViews_.forEach(t=>{const r=e.createElement("div");r.classList.add(Xt("c")),r.appendChild(t.element),this.inputsElem_.appendChild(r)})}}function sh(n){return ze(n==="float"?2:0)}function ih(n,e,t){const r=an(n,e)[t];return new vr({min:0,max:r})}function oh(n,e,t){return new Vn(n,{arrayPosition:t===0?"fst":t===2?"lst":"mid",parser:e.parser,props:ie.fromObject({formatter:sh(e.colorType),keyScale:Ht
35(!1),pointerScale:e.colorType==="float"?.01:1}),value:Ae(0,{constraint:ih(e.colorMode,e.colorType,t)}),viewProps:e.viewProps})}function ah(n,e){const t={colorMode:e.colorMode,colorType:e.colorType,parser:Lt,viewProps:e.viewProps};return[0,1,2].map(r=>{const s=oh(n,t,r);return cn({primary:e.value,secondary:s.value,forward(i){return Fe(i,e.colorType).getComponents(e.colorMode)[r]},backward(i,o){const a=e.colorMode,c=Fe(i,e.colorType).getComponents(a);c[r]=o;const d=zs(yr(lt(c),c[3]),a,e.colorType);return Fe(d,"int")}}),s})}function lh(n,e){const t=new Us(n,{parser:Dn("int"),props:ie.fromObject({formatter:Gs}),value:Ae(re.black()),viewProps:e.viewProps});return cn({primary:e.value,secondary:t.value,forward:r=>new re(lt(r.getComponents()),r.mode),backward:(r,s)=>new re(yr(lt(s.getComponents(r.mode)),r.getComponents()[3]),r.mode)}),[t]}function ch(n){return n!=="hex"}class uh{constructor(e,t){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=t.colorType,this.value=t.value,this.viewProps=t.viewProps,this.colorMode=Ae(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(e),this.view=new rh(e,{mode:this.colorMode,inputViews:[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view],viewProps:this.viewProps}),this.view.modeSelectElement.addEventListener("change",this.onModeSelectChange_)}createComponentControllers_(e){const t=this.colorMode.rawValue;return ch(t)?ah(e,{colorMode:t,colorType:this.colorType_,value:this.value,viewProps:this.viewProps}):lh(e,{value:this.value,viewProps:this.viewProps})}onModeSelectChange_(e){const t=e.currentTarget;this.colorMode.rawValue=t.value,this.ccs_=this.createComponentControllers_(this.view.element.ownerDocument),this.view.inputViews=this.ccs_.map(r=>r.view)}}const Nr=oe("hpl");class dh{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.value=t.value,this.value.emitter.on("change",this.onValueChange_),this.element=e.createElement("div"),this.element.classList.add(Nr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const r=e.createElement("div");r.classList.add(Nr("c")),this.element.appendChild(r);const s=e.createElement("div");s.classList.add(Nr("m")),this.element.appendChild(s),this.markerElem_=s,this.update_()}update_(){const e=this.value.rawValue,[t]=e.getComponents("hsv");this.markerElem_.style.backgroundColor=ma(new re([t,100,100],"hsv"));const r=ae(t,0,360,0,100);this.markerElem_.style.left=`${r}%`}onValueChange_(){this.update_()}}class hh{constructor(e,t){this.onKeyDown_=this.onKeyDown_.bind(this),this.onKeyUp_=this.onKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new dh(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Wt(this.view.element),this.ptHandler_.emitter.on("down",this.onPointerDown_),this.ptHandler_.emitter.on("move",this.onPointerMove_),this.ptHandler_.emitter.on("up",this.onPointerUp_),this.view.element.addEventListener("keydown",this.onKeyDown_),this.view.element.addEventListener("keyup",this.onKeyUp_)}handlePointerEvent_(e,t){if(!e.point)return;const r=ae(Te(e.point.x,0,e.bounds.width),0,e.bounds.width,0,360),s=this.value.rawValue,[,i,o,a]=s.getComponents("hsv");this.value.setRawValue(new re([r,i,o,a],"hsv"),t)}onPointerDown_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerMove_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerUp_(e){this.handlePointerEvent_(e.data,{forceEmit:!0,last:!0})}onKeyDown_(e){const t=je(Ht(!1),wt(e));if(t===0)return;const r=this.value.rawValue,[s,i,o,a]=r.getComponents("hsv");this.value.setRawValue(new re([s+t,i,o,a],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){je(Ht(!1),wt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Dr=oe("svp"),Ai=64;class ph{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.value=t.value,this.value.emitter.on("change",this.onValueChange_),this.element=e.createElement("div"),this.element.classList.add(Dr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const r=e.createElement("canvas");r.height=Ai,r.width=Ai,r.classList.add(Dr("c")),this.element.appendChild(r),this.canvasElement=r;const s=e.createElement("div");s.classList.add(Dr("m")),this.element.appendChild(s),this.markerElem_=s,this.update_()}update_(){const e=Pu(this.canvasElement);if(!e)return;const r=this.value.rawValue.getComponents("hsv"),s=this.canvasElement.width,i=this.canvasElement.height,o=e.getImageData(0,0,s,i),a=o.data;for(let d=0;d<i;d++)for(let u=0;u<s;u++){const g=ae(u,0,s,0,100),_=ae(d,0,i,100,0),m=ta(r[0],g,_),C=(d*s+u)*4;a[C]=m[0],a[C+1]=m[1],a[C+2]=m[2],a[C+3]=255}e.putImageData(o,0,0);const l=ae(r[1],0,100,0,100);this.markerElem_.style.left=`${l}%`;const c=ae(r[2],0,100,100,0);this.markerElem_.style.top=`${c}%`}onValueChange_(){this.update_()}}class fh{constructor(e,t){this.onKeyDown_=this.onKeyDown_.bind(this),this.onKeyUp_=this.onKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new ph(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Wt(this.view.element),this.ptHandler_.emitter.on("down",this.onPointerDown_),this.ptHandler_.emitter.on("move",this.onPointerMove_),this.ptHandler_.emitter.on("up",this.onPointerUp_),this.view.element.addEventListener("keydown",this.onKeyDown_),this.view.element.addEventListener("keyup",this.onKeyUp_)}handlePointerEvent_(e,t){if(!e.point)return;const r=ae(e.point.x,0,e.bounds.width,0,100),s=ae(e.point.y,0,e.bounds.height,100,0),[i,,,o]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new re([i,r,s,o],"hsv"),t)}onPointerDown_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerMove_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerUp_(e){this.handlePointerEvent_(e.data,{forceEmit:!0,last:!0})}onKeyDown_(e){Qo(e.key)&&e.preventDefault();const[t,r,s,i]=this.value.rawValue.getComponents("hsv"),o=Ht(!1),a=je(o,wt(e)),l=je(o,An(e));a===0&&l===0||this.value.setRawValue(new re([t,r+a,s+l,i],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){const t=Ht(!1),r=je(t,wt(e)),s=je(t,An(e));r===0&&s===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class mh{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.hPaletteC_=new hh(e,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new fh(e,{value:this.value,viewProps:this.viewProps}
35),this.alphaIcs_=t.supportsAlpha?{palette:new th(e,{value:this.value,viewProps:this.viewProps}),text:new Vn(e,{parser:Lt,props:ie.fromObject({pointerScale:.01,keyScale:.1,formatter:ze(2)}),value:Ae(0,{constraint:new vr({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&cn({primary:this.value,secondary:this.alphaIcs_.text.value,forward:r=>r.getComponents()[3],backward:(r,s)=>{const i=r.getComponents();return i[3]=s,new re(i,r.mode)}}),this.textsC_=new uh(e,{colorType:t.colorType,value:this.value,viewProps:this.viewProps}),this.view=new Ad(e,{alphaViews:this.alphaIcs_?{palette:this.alphaIcs_.palette.view,text:this.alphaIcs_.text.view}:null,hPaletteView:this.hPaletteC_.view,supportsAlpha:t.supportsAlpha,svPaletteView:this.svPaletteC_.view,textsView:this.textsC_.view,viewProps:this.viewProps})}get textsController(){return this.textsC_}}const Ur=oe("colsw");class vh{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.element=e.createElement("div"),this.element.classList.add(Ur()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(Ur("sw")),this.element.appendChild(r),this.swatchElem_=r;const s=e.createElement("button");s.classList.add(Ur("b")),t.viewProps.bindDisabled(s),this.element.appendChild(s),this.buttonElement=s,this.update_()}update_(){const e=this.value.rawValue;this.swatchElem_.style.backgroundColor=Hs(e)}onValueChange_(){this.update_()}}class gh{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new vh(e,{value:this.value,viewProps:this.viewProps})}}class $s{constructor(e,t){this.onButtonBlur_=this.onButtonBlur_.bind(this),this.onButtonClick_=this.onButtonClick_.bind(this),this.onPopupChildBlur_=this.onPopupChildBlur_.bind(this),this.onPopupChildKeydown_=this.onPopupChildKeydown_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.foldable_=In.create(t.expanded),this.swatchC_=new gh(e,{value:this.value,viewProps:this.viewProps});const r=this.swatchC_.view.buttonElement;r.addEventListener("blur",this.onButtonBlur_),r.addEventListener("click",this.onButtonClick_),this.textC_=new Us(e,{parser:t.parser,props:ie.fromObject({formatter:t.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new _d(e,{foldable:this.foldable_,pickerLayout:t.pickerLayout}),this.view.swatchElement.appendChild(this.swatchC_.view.element),this.view.textElement.appendChild(this.textC_.view.element),this.popC_=t.pickerLayout==="popup"?new Xo(e,{viewProps:this.viewProps}):null;const s=new mh(e,{colorType:t.colorType,supportsAlpha:t.supportsAlpha,value:this.value,viewProps:this.viewProps});s.view.allFocusableElements.forEach(i=>{i.addEventListener("blur",this.onPopupChildBlur_),i.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=s,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(s.view.element),cn({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:i=>i,backward:(i,o)=>o})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Vs(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,r=e.relatedTarget;(!r||!t.contains(r))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(e){if(!this.popC_)return;const t=this.popC_.view.element,r=Go(e);r&&t.contains(r)||r&&r===this.swatchC_.view.buttonElement&&!ks(t.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(e){this.popC_?e.key==="Escape"&&(this.popC_.shows.rawValue=!1):this.view.pickerElement&&e.key==="Escape"&&this.swatchC_.view.buttonElement.focus()}}function wh(n){return lt(n.getComponents("rgb")).reduce((e,t)=>e<<8|Math.floor(t)&255,0)}function bh(n){return n.getComponents("rgb").reduce((e,t,r)=>{const s=Math.floor(r===3?t*255:t)&255;return e<<8|s},0)>>>0}function _h(n){return new re([n>>16&255,n>>8&255,n&255],"rgb")}function yh(n){return new re([n>>24&255,n>>16&255,n>>8&255,ae(n&255,0,255,0,1)],"rgb")}function xh(n){return typeof n!="number"?re.black():_h(n)}
35function Ch(n){return typeof n!="number"?re.black():yh(n)}function nr(n,e){return typeof n!="object"||me(n)?!1:e in n&&typeof n[e]=="number"}function ba(n){return nr(n,"r")&&nr(n,"g")&&nr(n,"b")}function _a(n){return ba(n)&&nr(n,"a")}function ya(n){return ba(n)}function Ks(n,e){if(n.mode!==e.mode||n.type!==e.type)return!1;const t=n.getComponents(),r=e.getComponents();for(let s=0;s<t.length;s++)if(t[s]!==r[s])return!1;return!0}function Si(n){return"a"in n?[n.r,n.g,n.b,n.a]:[n.r,n.g,n.b]}function Ph(n){const e=wa(n);return e?(t,r)=>{Nn(t,e(r))}:null}function Th(n){const e=n?bh:wh;return(t,r)=>{Nn(t,e(r))}}function Eh(n,e,t){const s=Fe(e,t).toRgbaObject();n.writeProperty("r",s.r),n.writeProperty("g",s.g),n.writeProperty("b",s.b),n.writeProperty("a",s.a)}function Mh(n,e,t){const s=Fe(e,t).toRgbaObject();n.writeProperty("r",s.r),n.writeProperty("g",s.g),n.writeProperty("b",s.b)}function Ah(n,e){return(t,r)=>{n?Eh(t,r,e):Mh(t,r,e)}}function Sh(n){var e;return!!(!((e=n?.color)===null||e===void 0)&&e.alpha)}function kh(n){return n?e=>Hs(e,"0x"):e=>Gs(e,"0x")}function Lh(n){return"color"in n||n.view==="color"}Ne({id:"input-color-number",type:"input",accept:(n,e)=>{if(typeof n!="number"||!Lh(e))return null;const t=Bs(e);return t?{initialValue:n,params:Object.assign(Object.assign({},t),{supportsAlpha:Sh(e)})}:null},binding:{reader:n=>n.params.supportsAlpha?Ch:xh,equals:Ks,writer:n=>Th(n.params.supportsAlpha)},controller:n=>{var e,t;return new $s(n.document,{colorType:"int",expanded:(e=n.params.expanded)!==null&&e!==void 0?e:!1,formatter:kh(n.params.supportsAlpha),parser:Dn("int"),pickerLayout:(t=n.params.picker)!==null&&t!==void 0?t:"popup",supportsAlpha:n.params.supportsAlpha,value:n.value,viewProps:n.viewProps})}});function Rh(n,e){if(!ya(n))return Fe(re.black(),e);if(e==="int"){const t=Si(n);return new re(t,"rgb")}if(e==="float"){const t=Si(n);return new js(t,"rgb")}return Fe(re.black(),"int")}function Ih(n){return _a(n)}function Oh(n){return e=>{const t=Rh(e,n);return Fe(t,"int")}}function Fh(n,e){return t=>n?ga(t,e):va(t,e)}Ne({id:"input-color-object",type:"input",accept:(n,e)=>{var t;if(!ya(n))return null;const r=Bs(e);return r?{initialValue:n,params:Object.assign(Object.assign({},r),{colorType:(t=sa(e))!==null&&t!==void 0?t:"int"})}:null},binding:{reader:n=>Oh(n.params.colorType),equals:Ks,writer:n=>Ah(Ih(n.initialValue),n.params.colorType)},controller:n=>{var e,t;const r=_a(n.initialValue);return new $s(n.document,{colorType:n.params.colorType,expanded:(e=n.params.expanded)!==null&&e!==void 0?e:!1,formatter:Fh(r,n.params.colorType),parser:Dn("int"),pickerLayout:(t=n.params.picker)!==null&&t!==void 0?t:"popup",supportsAlpha:r,value:n.value,viewProps:n.viewProps})}});Ne({id:"input-color-string",type:"input",accept:(n,e)=>{if(typeof n!="string"||e.view==="text")return null;const t=Wd(n,sa(e));if(!t)return null;const r=wa(t);if(!r)return null;const s=Bs(e);return s?{initialValue:n,params:Object.assign(Object.assign({},s),{format:t,stringifier:r})}:null},binding:{reader:()=>qd,equals:Ks,writer:n=>{const e=Ph(n.params.format);if(!e)throw $e.notBindable();return e}},controller:n=>{var e,t;return new $s(n.document,{colorType:n.params.format.type,expanded:(e=n.params.expanded)!==null&&e!==void 0?e:!1,formatter:n.params.stringifier,parser:Dn("int"),pickerLayout:(t=n.params.picker)!==null&&t!==void 0?t:"popup",supportsAlpha:n.params.format.alpha,value:n.value,viewProps:n.viewProps})}});class Ws{constructor(e){this.components=e.components,this.asm_=e.assembly}constrain(e){const t=this.asm_.toComponents(e).map((r,s)=>{var i,o;return(o=(i=this.components[s])===null||i===void 0?void 0:i.constrain(r))!==null&&o!==void 0?o:r});return this.asm_.fromComponents(t)}}const ki=oe("pndtxt");class Vh{constructor(e,t){this.textViews=t.textViews,this.element=e.createElement("div"),this.element.classList.add(ki()),this.textViews.forEach(r=>{const s=e.createElement("div");s.classList.add(ki("a")),s.appendChild(r.element),this.element.appendChild(s)})}}function Nh(n,e,t){return new Vn(n,{arrayPosition:t===0?"fst":t===e.axes.length-1?"lst":"mid",parser:e.parser,props:e.axes[t].textProps,value:Ae(0,{constraint:e.axes[t].constraint}),viewProps:e.viewProps})}class qs{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.acs_=t.axes.map((r,s)=>Nh(e,t,s)),this.acs_.forEach((r,s)=>{cn({primary:this.value,secondary:r.value,forward:i=>t.assembly.toComponents(i)[s],backward:(i,o)=>{const a=t.assembly.toComponents(i);return a[s]=o,t.assembly.fromComponents(a)}})}),this.view=new Vh(e,{textViews:this.acs_.map(r=>r.view)})}get textControllers(){return this.acs_}}class Dh extends Ss{get max(){return this.controller.valueController.sliderController.props.get("max")}
35set max(e){this.controller.valueController.sliderController.props.set("max",e)}get min(){return this.controller.valueController.sliderController.props.get("min")}set min(e){this.controller.valueController.sliderController.props.set("min",e)}}function Uh(n,e){const t=[],r=Vo(n,e);r&&t.push(r);const s=No(n);s&&t.push(s);const i=Ds(n.options);return i&&t.push(i),new Fn(t)}Ne({id:"input-number",type:"input",accept:(n,e)=>{if(typeof n!="number")return null;const t=Oe(e,r=>Object.assign(Object.assign({},Uo(r)),{options:r.optional.custom(_r),readonly:r.optional.constant(!1)}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Io,constraint:n=>Uh(n.params,n.initialValue),writer:n=>Nn},controller:n=>{const e=n.value,t=n.constraint,r=t&&lr(t,br);if(r)return new on(n.document,{props:new ie({options:r.values.value("options")}),value:e,viewProps:n.viewProps});const s=Do(n.params,e.rawValue),i=t&&lr(t,vr);return i?new Ei(n.document,Object.assign(Object.assign({},md(Object.assign(Object.assign({},s),{keyScale:Ae(s.keyScale),max:i.values.value("max"),min:i.values.value("min")}))),{parser:Lt,value:e,viewProps:n.viewProps})):new Vn(n.document,{parser:Lt,props:ie.fromObject(s),value:e,viewProps:n.viewProps})},api(n){return typeof n.controller.value.rawValue!="number"?null:n.controller.valueController instanceof Ei?new Dh(n.controller):n.controller.valueController instanceof on?new Ns(n.controller):null}});class St{constructor(e=0,t=0){this.x=e,this.y=t}getComponents(){return[this.x,this.y]}static isObject(e){if(me(e))return!1;const t=e.x,r=e.y;return!(typeof t!="number"||typeof r!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y}toObject(){return{x:this.x,y:this.y}}}const xa={toComponents:n=>n.getComponents(),fromComponents:n=>new St(...n)},Yt=oe("p2d");class Bh{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Yt()),t.viewProps.bindClassModifiers(this.element),mt(t.expanded,ln(this.element,Yt(void 0,"expanded")));const r=e.createElement("div");r.classList.add(Yt("h")),this.element.appendChild(r);const s=e.createElement("button");s.classList.add(Yt("b")),s.appendChild(wr(e,"p2dpad")),t.viewProps.bindDisabled(s),r.appendChild(s),this.buttonElement=s;const i=e.createElement("div");if(i.classList.add(Yt("t")),r.appendChild(i),this.textElement=i,t.pickerLayout==="inline"){const o=e.createElement("div");o.classList.add(Yt("p")),this.element.appendChild(o),this.pickerElement=o}else this.pickerElement=null}}const Ct=oe("p2dp");class jh{constructor(e,t){this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onPropsChange_=this.onPropsChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.props_=t.props,this.props_.emitter.on("change",this.onPropsChange_),this.element=e.createElement("div"),this.element.classList.add(Ct()),t.layout==="popup"&&this.element.classList.add(Ct(void 0,"p")),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("div");r.classList.add(Ct("p")),t.viewProps.bindTabIndex(r),this.element.appendChild(r),this.padElement=r;const s=e.createElementNS(rt,"svg");s.classList.add(Ct("g")),this.padElement.appendChild(s),this.svgElem_=s;const i=e.createElementNS(rt,"line");i.classList.add(Ct("ax")),i.setAttributeNS(null,"x1","0"),i.setAttributeNS(null,"y1","50%"),i.setAttributeNS(null,"x2","100%"),i.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(i);const o=e.createElementNS(rt,"line");o.classList.add(Ct("ax")),o.setAttributeNS(null,"x1","50%"),o.setAttributeNS(null,"y1","0"),o.setAttributeNS(null,"x2","50%"),o.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(o);const a=e.createElementNS(rt,"line");a.classList.add(Ct("l")),a.setAttributeNS(null,"x1","50%"),a.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(a),this.lineElem_=a;const l=e.createElement("div");l.classList.add(Ct("m")),this.padElement.appendChild(l),this.markerElem_=l,t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.update_()}get allFocusableElements(){return[this.padElement]}update_(){const[e,t]=this.value.rawValue.getComponents(),r=this.props_.get("max"),s=ae(e,-r,+r,0,100),i=ae(t,-r,+r,0,100),o=this.props_.get("invertsY")?100-i:i;this.lineElem_.setAttributeNS(null,"x2",`${s}%`),this.lineElem_.setAttributeNS(null,"y2",`${o}%`),this.markerElem_.style.left=`${s}%`,this.markerElem_.style.top=`${o}%`}onValueChange_(){this.update_()}onPropsChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Li(n,e,t){return[je(e[0],wt(n)),je(e[1],An(n))*(t?1:-1)]}class zh{constructor(e,t){this.onPadKeyDown_=this.onPadKeyDown_.bind(this),this.onPadKeyUp_=this.onPadKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new jh(e,{layout:t.layout,props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Wt(this.view.padElement),this.ptHandler_.emitter.on("down",this.onPointerDown_),this.ptHandler_.emitter.on("move",this.onPointerMove_),this.ptHandler_.emitter.on("up",this.onPointerUp_),this.view.padElement.addEventListener("keydown",this.onPadKeyDown_),this.view.padElement.addEventListener("keyup",this.onPadKeyUp_)}handlePointerEvent_(e,t){if(!e.point)return;const r=this.props.get("max"),s=ae(e.point.x,0,e.bounds.width,-r,+r),i=ae(this.props.get("invertsY")?e.bounds.height-e.point.y:e.point.y,0,e.bounds.height,-r,+r);this.value.setRawValue(new St(s,i),t)}onPointerDown_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerMove_(e){this.handlePointerEvent_(e.data,{forceEmit:!1,last:!1})}onPointerUp_(e){this.handlePointerEvent_(e.data,{forceEmit:!0,last:!0})}onPadKeyDown_(e){Qo(e.key)&&e.preventDefault();const[t,r]=Li(e,[this.props.get("xKeyScale"),this.props.get("yKeyScale")],this.props.get("invertsY"));t===0&&r===0||this.value.setRawValue(new St(this.value.rawValue.x+t,this.value.rawValue.y+r),{forceEmit:!1,last:!1})}onPadKeyUp_(e){const[t,r]=Li(e,[this.props.get("xKeyScale"),this.props.get("yKeyScale")],this.props.get("invertsY"));t===0&&r===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Gh{constructor(e,t){var r,s;this.onPopupChildBlur_=this.onPopupChildBlur_.bind(this),this.onPopupChildKeydown_=this.onPopupChildKeydown_.bind(this),this.onPadButtonBlur_=this.onPadButtonBlur_.bind(this),this.onPadButtonClick_=this.onPadButtonClick_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.foldable_=In.create(t.expanded),this.popC_=t.pickerLayout==="popup"?new Xo(e,{viewProps:this.viewProps}):null;const i=new zh(e,{layout:t.pickerLayout,props:new ie({invertsY:Ae(t.invertsY),max:Ae(t.max),xKeyScale:t.axes[0].textProps.value("keyScale"),yKeyScale:t.axes[1].textProps.value("keyScale")}
35),value:this.value,viewProps:this.viewProps});i.view.allFocusableElements.forEach(o=>{o.addEventListener("blur",this.onPopupChildBlur_),o.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=i,this.textC_=new qs(e,{assembly:xa,axes:t.axes,parser:t.parser,value:this.value,viewProps:this.viewProps}),this.view=new Bh(e,{expanded:this.foldable_.value("expanded"),pickerLayout:t.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(r=this.view.buttonElement)===null||r===void 0||r.addEventListener("blur",this.onPadButtonBlur_),(s=this.view.buttonElement)===null||s===void 0||s.addEventListener("click",this.onPadButtonClick_),this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),cn({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:o=>o,backward:(o,a)=>a})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Vs(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onPadButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,r=e.relatedTarget;(!r||!t.contains(r))&&(this.popC_.shows.rawValue=!1)}onPadButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(e){if(!this.popC_)return;const t=this.popC_.view.element,r=Go(e);r&&t.contains(r)||r&&r===this.view.buttonElement&&!ks(t.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(e){this.popC_?e.key==="Escape"&&(this.popC_.shows.rawValue=!1):this.view.pickerElement&&e.key==="Escape"&&this.view.buttonElement.focus()}}function Hh(n){return St.isObject(n)?new St(n.x,n.y):new St}function $h(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y)}function Kh(n,e){return new Ws({assembly:xa,components:[ft(Object.assign(Object.assign({},n),n.x),e.x),ft(Object.assign(Object.assign({},n),n.y),e.y)]})}function Ri(n,e){var t,r;if(!me(n.min)||!me(n.max))return Math.max(Math.abs((t=n.min)!==null&&t!==void 0?t:0),Math.abs((r=n.max)!==null&&r!==void 0?r:0));const s=Fo(n);return Math.max(Math.abs(s)*10,Math.abs(e)*10)}function Wh(n,e){var t,r;const s=Ri(Gt(n,(t=n.x)!==null&&t!==void 0?t:{}),e.x),i=Ri(Gt(n,(r=n.y)!==null&&r!==void 0?r:{}),e.y);return Math.max(s,i)}function qh(n){if(!("y"in n))return!1;const e=n.y;return e&&"inverted"in e?!!e.inverted:!1}Ne({id:"input-point2d",type:"input",accept:(n,e)=>{if(!St.isObject(n))return null;const t=Oe(e,r=>Object.assign(Object.assign({},Sn(r)),{expanded:r.optional.boolean,picker:r.optional.custom(ea),readonly:r.optional.constant(!1),x:r.optional.custom(At),y:r.optional.object(Object.assign(Object.assign({},Sn(r)),{inverted:r.optional.boolean}))}));return t?{initialValue:n,params:t}:null},binding:{reader:()=>Hh,constraint:n=>Kh(n.params,n.initialValue),equals:St.equals,writer:()=>$h},controller:n=>{var e,t;const r=n.document,s=n.value,i=n.constraint,o=[n.params.x,n.params.y];return new Gh(r,{axes:s.rawValue.getComponents().map((a,l)=>{var c;return Ms({constraint:i.components[l],initialValue:a,params:Gt(n.params,(c=o[l])!==null&&c!==void 0?c:{})})}),expanded:(e=n.params.expanded)!==null&&e!==void 0?e:!1,invertsY:qh(n.params),max:Wh(n.params,s.rawValue),parser:Lt,pickerLayout:(t=n.params.picker)!==null&&t!==void 0?t:"popup",value:s,viewProps:n.viewProps})}});class tn{constructor(e=0,t=0,r=0){this.x=e,this.y=t,this.z=r}getComponents(){return[this.x,this.y,this.z]}static isObject(e){if(me(e))return!1;const t=e.x,r=e.y,s=e.z;return!(typeof t!="number"||typeof r!="number"||typeof s!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y&&e.z===t.z}toObject(){return{x:this.x,y:this.y,z:this.z}}}const Ca={toComponents:n=>n.getComponents(),fromComponents:n=>new tn(...n)};function Xh(n){return tn.isObject(n)?new tn(n.x,n.y,n.z):new tn}function Yh(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z)}function Zh(n,e){return new Ws({assembly:Ca,components:[ft(Object.assign(Object.assign({},n),n.x),e.x),ft(Object.assign(Object.assign({},n),n.y),e.y),ft(Object.assign(Object.assign({},n),n.z),e.z)]})}Ne({id:"input-point3d",type:"input",accept:(n,e)=>{if(!tn.isObject(n))return null;const t=Oe(e,r=>Object.assign(Object.assign({},Sn(r)),{readonly:r.optional.constant(!1),x:r.optional.custom(At),y:r.optional.custom(At),z:r.optional.custom(At)}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Xh,constraint:n=>
35Zh(n.params,n.initialValue),equals:tn.equals,writer:n=>Yh},controller:n=>{const e=n.value,t=n.constraint,r=[n.params.x,n.params.y,n.params.z];return new qs(n.document,{assembly:Ca,axes:e.rawValue.getComponents().map((s,i)=>{var o;return Ms({constraint:t.components[i],initialValue:s,params:Gt(n.params,(o=r[i])!==null&&o!==void 0?o:{})})}),parser:Lt,value:e,viewProps:n.viewProps})}});class nn{constructor(e=0,t=0,r=0,s=0){this.x=e,this.y=t,this.z=r,this.w=s}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(e){if(me(e))return!1;const t=e.x,r=e.y,s=e.z,i=e.w;return!(typeof t!="number"||typeof r!="number"||typeof s!="number"||typeof i!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w}toObject(){return{x:this.x,y:this.y,z:this.z,w:this.w}}}const Pa={toComponents:n=>n.getComponents(),fromComponents:n=>new nn(...n)};function Qh(n){return nn.isObject(n)?new nn(n.x,n.y,n.z,n.w):new nn}function Jh(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z),n.writeProperty("w",e.w)}function ep(n,e){return new Ws({assembly:Pa,components:[ft(Object.assign(Object.assign({},n),n.x),e.x),ft(Object.assign(Object.assign({},n),n.y),e.y),ft(Object.assign(Object.assign({},n),n.z),e.z),ft(Object.assign(Object.assign({},n),n.w),e.w)]})}Ne({id:"input-point4d",type:"input",accept:(n,e)=>{if(!nn.isObject(n))return null;const t=Oe(e,r=>Object.assign(Object.assign({},Sn(r)),{readonly:r.optional.constant(!1),w:r.optional.custom(At),x:r.optional.custom(At),y:r.optional.custom(At),z:r.optional.custom(At)}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Qh,constraint:n=>ep(n.params,n.initialValue),equals:nn.equals,writer:n=>Jh},controller:n=>{const e=n.value,t=n.constraint,r=[n.params.x,n.params.y,n.params.z,n.params.w];return new qs(n.document,{assembly:Pa,axes:e.rawValue.getComponents().map((s,i)=>{var o;return Ms({constraint:t.components[i],initialValue:s,params:Gt(n.params,(o=r[i])!==null&&o!==void 0?o:{})})}),parser:Lt,value:e,viewProps:n.viewProps})}});function tp(n){const e=[],t=Ds(n.options);return t&&e.push(t),new Fn(e)}Ne({id:"input-string",type:"input",accept:(n,e)=>{if(typeof n!="string")return null;const t=Oe(e,r=>({readonly:r.optional.constant(!1),options:r.optional.custom(_r)}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Zo,constraint:n=>tp(n.params),writer:n=>Nn},controller:n=>{const e=n.document,t=n.value,r=n.constraint,s=r&&lr(r,br);return s?new on(e,{props:new ie({options:s.values.value("options")}),value:t,viewProps:n.viewProps}):new Us(e,{parser:i=>i,props:ie.fromObject({formatter:as}),value:t,viewProps:n.viewProps})},api(n){return typeof n.controller.value.rawValue!="string"?null:n.controller.valueController instanceof on?new Ns(n.controller):null}});const xr={monitor:{defaultRows:3}},Ii=oe("mll");class np{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Ii()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("textarea");r.classList.add(Ii("i")),r.style.height=`calc(var(${Jo("containerUnitSize")}) * ${t.rows})`,r.readOnly=!0,t.viewProps.bindDisabled(r),this.element.appendChild(r),this.textareaElem_=r,t.value.emitter.on("change",this.onValueUpdate_),this.value=t.value,this.update_()}update_(){const e=this.textareaElem_,t=e.scrollTop===e.scrollHeight-e.clientHeight,r=[];this.value.rawValue.forEach(s=>{s!==void 0&&r.push(this.formatter_(s))}),e.textContent=r.join(` 36`),t&&(e.scrollTop=e.scrollHeight)}onValueUpdate_(){this.update_()}}class Xs{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new np(e,{formatter:t.formatter,rows:t.rows,value:this.value,viewProps:this.viewProps})}}const Oi=oe("sgl");class rp{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Oi()),t.viewProps.bindClassModifiers(this.element);const r=e.createElement("input");r.classList.add(Oi("i")),r.readOnly=!0,r.type="text",t.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,t.value.emitter.on("change",this.onValueUpdate_),this.value=t.value,this.update_()}update_(){const e=this.value.rawValue,t=e[e.length-1];this.inputElement.value=t!==void 0?this.formatter_(t):""}onValueUpdate_(){this.update_()}}class Ys{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new rp(e,{formatter:t.formatter,value:this.value,viewProps:this.viewProps})}}Ne({id:"monitor-bool",type:"monitor",accept:(n,e)=>{if(typeof n!="boolean")return null;const t=Oe(e,r=>({readonly:r.required.constant(!0),rows:r.optional.number}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Yo},controller:n=>{var e;return n.value.rawValue.length===1?new Ys(n.document,{formatter:Ti,value:n.value,viewProps:n.viewProps}):new Xs(n.document,{formatter:Ti,rows:(e=n.params.rows)!==null&&e!==void 0?e:xr.monitor.defaultRows,value:n.value,viewProps:n.viewProps})}});class sp extends Ss{get max(){return this.controller.valueController.props.get("max")}
36set max(e){this.controller.valueController.props.set("max",e)}get min(){return this.controller.valueController.props.get("min")}set min(e){this.controller.valueController.props.set("min",e)}}const Pt=oe("grl");class ip{constructor(e,t){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Pt()),t.viewProps.bindClassModifiers(this.element),this.formatter_=t.formatter,this.props_=t.props,this.cursor_=t.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const r=e.createElementNS(rt,"svg");r.classList.add(Pt("g")),r.style.height=`calc(var(${Jo("containerUnitSize")}) * ${t.rows})`,this.element.appendChild(r),this.svgElem_=r;const s=e.createElementNS(rt,"polyline");this.svgElem_.appendChild(s),this.lineElem_=s;const i=e.createElement("div");i.classList.add(Pt("t"),oe("tt")()),this.element.appendChild(i),this.tooltipElem_=i,t.value.emitter.on("change",this.onValueUpdate_),this.value=t.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const{clientWidth:e,clientHeight:t}=this.element,r=this.value.rawValue.length-1,s=this.props_.get("min"),i=this.props_.get("max"),o=[];this.value.rawValue.forEach((u,g)=>{if(u===void 0)return;const _=ae(g,0,r,0,e),m=ae(u,s,i,t,0);o.push([_,m].join(","))}),this.lineElem_.setAttributeNS(null,"points",o.join(" "));const a=this.tooltipElem_,l=this.value.rawValue[this.cursor_.rawValue];if(l===void 0){a.classList.remove(Pt("t","a"));return}const c=ae(this.cursor_.rawValue,0,r,0,e),d=ae(l,s,i,t,0);a.style.left=`${c}px`,a.style.top=`${d}px`,a.textContent=`${this.formatter_(l)}`,a.classList.contains(Pt("t","a"))||(a.classList.add(Pt("t","a"),Pt("t","in")),ar(a),a.classList.remove(Pt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Ta{constructor(e,t){if(this.onGraphMouseMove_=this.onGraphMouseMove_.bind(this),this.onGraphMouseLeave_=this.onGraphMouseLeave_.bind(this),this.onGraphPointerDown_=this.onGraphPointerDown_.bind(this),this.onGraphPointerMove_=this.onGraphPointerMove_.bind(this),this.onGraphPointerUp_=this.onGraphPointerUp_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.cursor_=Ae(-1),this.view=new ip(e,{cursor:this.cursor_,formatter:t.formatter,rows:t.rows,props:this.props,value:this.value,viewProps:this.viewProps}),!ks(e))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const r=new Wt(this.view.element);r.emitter.on("down",this.onGraphPointerDown_),r.emitter.on("move",this.onGraphPointerMove_),r.emitter.on("up",this.onGraphPointerUp_)}}importProps(e){return ct(e,null,t=>({max:t.required.number,min:t.required.number}),t=>(this.props.set("max",t.max),this.props.set("min",t.min),!0))}exportProps(){return ut(null,{max:this.props.get("max"),min:this.props.get("min")})}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(e){const{clientWidth:t}=this.view.element;this.cursor_.rawValue=Math.floor(ae(e.offsetX,0,t,0,this.value.rawValue.length))}onGraphPointerDown_(e){this.onGraphPointerMove_(e)}onGraphPointerMove_(e){if(!e.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(ae(e.data.point.x,0,e.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function ls(n){return me(n.format)?ze(2):n.format}function op(n){var e;return n.value.rawValue.length===1?new Ys(n.document,{formatter:ls(n.params),value:n.value,viewProps:n.viewProps}):new Xs(n.document,{formatter:ls(n.params),rows:(e=n.params.rows)!==null&&e!==void 0?e:xr.monitor.defaultRows,value:n.value,viewProps:n.viewProps})}function ap(n){var e,t,r;return new Ta(n.document,{formatter:ls(n.params),rows:(e=n.params.rows)!==null&&e!==void 0?e:xr.monitor.defaultRows,props:ie.fromObject({max:(t=n.params.max)!==null&&t!==void 0?t:100,min:(r=n.params.min)!==null&&r!==void 0?r:0}),value:n.value,viewProps:n.viewProps})}function Fi(n){return n.view==="graph"}Ne({id:"monitor-number",type:"monitor",accept:(n,e)=>{if(typeof n!="number")return null;const t=Oe(e,r=>({format:r.optional.function,max:r.optional.number,min:r.optional.number,readonly:r.required.constant(!0),rows:r.optional.number,view:r.optional.string}));return t?{initialValue:n,params:t}:null},binding:{defaultBufferSize:n=>Fi(n)?64:1,reader:n=>Io},controller:n=>Fi(n.params)?ap(n):op(n),api:n=>n.controller.valueController instanceof Ta?new sp(n.controller):null});Ne({id:"monitor-string",type:"monitor",accept:(n,e)=>
36{if(typeof n!="string")return null;const t=Oe(e,r=>({multiline:r.optional.boolean,readonly:r.required.constant(!0),rows:r.optional.number}));return t?{initialValue:n,params:t}:null},binding:{reader:n=>Zo},controller:n=>{var e;const t=n.value;return t.rawValue.length>1||n.params.multiline?new Xs(n.document,{formatter:as,rows:(e=n.params.rows)!==null&&e!==void 0?e:xr.monitor.defaultRows,value:t,viewProps:n.viewProps}):new Ys(n.document,{formatter:as,value:t,viewProps:n.viewProps})}});new $o("4.0.5");function Vi(n,e){if(e===Dl)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(e===ts||e===mo){let t=n.getIndex();if(t===null){const o=[],a=n.getAttribute("position");if(a!==void 0){for(let l=0;l<a.count;l++)o.push(l);n.setIndex(o),t=n.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}const r=t.count-2,s=[];if(t)if(e===ts)for(let o=1;o<=r;o++)s.push(t.getX(0)),s.push(t.getX(o)),s.push(t.getX(o+1));else for(let o=0;o<r;o++)o%2===0?(s.push(t.getX(o)),s.push(t.getX(o+1)),s.push(t.getX(o+2))):(s.push(t.getX(o+2)),s.push(t.getX(o+1)),s.push(t.getX(o)));s.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=n.clone();return i.setIndex(s),i.clearGroups(),i}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),n}const Ea=parseInt(go.replace(/\D+/g,""));var lp=Object.defineProperty,cp=(n,e,t)=>e in n?lp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,up=(n,e,t)=>(cp(n,e+"",t),t);async function Ni(n){const e=await n.arrayBuffer(),t=btoa(String.fromCharCode(...new Uint8Array(e)));return`data:${n.type||""};base64,${t}`}let Wn,Br,Zt,qn;function jr(n,e=1/0,t=null){Br||(Br=new fr(2,2,1,1)),Zt||(Zt=new Rt({uniforms:{blitTexture:new ql(n)},vertexShader:` 37 varying vec2 vUv; 38 void main(){ 39 vUv = uv; 40 gl_Position = vec4(position.xy * 1.0,0.,.999999); 41 } 42 `,fragmentShader:` 43 uniform sampler2D blitTexture; 44 varying vec2 vUv; 45 46 void main(){ 47 gl_FragColor = vec4(vUv.xy, 0, 1); 48 49 #ifdef IS_SRGB 50 gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) ); 51 #else 52 gl_FragColor = texture2D( blitTexture, vUv); 53 #endif 54 } 55 `})),Zt.uniforms.blitTexture.value=n,Zt.defines.IS_SRGB="colorSpace"in n?n.colorSpace
vendor: 4,182 bytes, line 55
55==="srgb":n.encoding===3001,Zt.needsUpdate=!0,qn||(qn=new Je(Br,Zt),qn.frustrumCulled=!1);const r=new Rn,s=new rr;s.add(qn),t||(t=Wn=new no({antialias:!1})),t.setSize(Math.min(n.image.width,e),Math.min(n.image.height,e)),t.clear(),t.render(s,r);const i=new nt(t.domElement);return i.minFilter=n.minFilter,i.magFilter=n.magFilter,i.wrapS=n.wrapS,i.wrapT=n.wrapT,i.name=n.name,Wn&&(Wn.dispose(),Wn=null),i}const Di={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]};class Ma{constructor(){this.pluginCallbacks=[],this.register(function(e){return new _p(e)}),this.register(function(e){return new yp(e)}),this.register(function(e){return new Pp(e)}),this.register(function(e){return new Tp(e)}),this.register(function(e){return new Ep(e)}),this.register(function(e){return new Mp(e)}),this.register(function(e){return new xp(e)}),this.register(function(e){return new Cp(e)}),this.register(function(e){return new Ap(e)}),this.register(function(e){return new Sp(e)}),this.register(function(e){return new kp(e)})}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,r,s){const i=new bp,o=[];for(let a=0,l=this.pluginCallbacks.length;a<l;a++)o.push(this.pluginCallbacks[a](i));i.setPlugins(o),i.write(e,t,s).catch(r)}parseAsync(e,t){const r=this;return new Promise(function(s,i){r.parse(e,s,i,t)})}}up(Ma,"Utils",{insertKeyframe:function(n,e){const t=n.getValueSize(),r=new n.TimeBufferType(n.times.length+1),s=new n.ValueBufferType(n.values.length+t),i=n.createInterpolant(new n.ValueBufferType(t));let o;if(n.times.length===0){r[0]=e;for(let a=0;a<t;a++)s[a]=0;o=0}else if(e<n.times[0]){if(Math.abs(n.times[0]-e)<.001)return 0;r[0]=e,r.set(n.times,1),s.set(i.evaluate(e),0),s.set(n.values,t),o=0}else if(e>n.times[n.times.length-1]){if(Math.abs(n.times[n.times.length-1]-e)<.001)return n.times.length-1;r[r.length-1]=e,r.set(n.times,0),s.set(n.values,0),s.set(i.evaluate(e),n.values.length),o=r.length-1}else for(let a=0;a<n.times.length;a++){if(Math.abs(n.times[a]-e)<.001)return a;if(n.times[a]<e&&n.times[a+1]>e){r.set(n.times.slice(0,a+1),0),r[a+1]=e,r.set(n.times.slice(a+1),a+2),s.set(n.values.slice(0,(a+1)*t),0),s.set(i.evaluate(e),(a+1)*t),s.set(n.values.slice((a+1)*t),(a+2)*t),o=a+1;break}}return n.times=r,n.values=s,o},mergeMorphTargetTracks:function(n,e){const t=[],r={},s=n.tracks;for(let i=0;i<s.length;++i){let o=s[i];const a=Tn.parseTrackName(o.name),l=Tn.findNode(e,a.nodeName);if(a.propertyName!=="morphTargetInfluences"||a.propertyIndex===void 0){t.push(o);continue}if(o.createInterpolant!==o.InterpolantFactoryMethodDiscrete&&o.createInterpolant!==o.InterpolantFactoryMethodLinear){if(o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."),o=o.clone(),o.setInterpolation(ws)}const c=l.morphTargetInfluences.length,d=l.morphTargetDictionary[a.propertyIndex];if(d===void 0)throw new Error("THREE.GLTFExporter: Morph target name not found: "+a.propertyIndex);let u;if(r[l.uuid]===void 0){u=o.clone();const _=new u.ValueBufferType(c*u.times.length);for(let m=0;m<u.times.length;m++)_[m*c+d]=u.values[m];u.name=(a.nodeName||"")+".morphTargetInfluences",u.values=_,r[l.uuid]=u,t.push(u);continue}const g=o.createInterpolant(new o.ValueBufferType(1));u=r[l.uuid];for(let _=0;_<u.times.length;_++)u.values[_*c+d]=g.evaluate(u.times[_]);for(let _=0;_<o.times.length;_++){const m=this.insertKeyframe(u,o.times[_]);u.values[m*c+d]=o.values[_]}}return n.tracks=t,n}});const Q={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,
55UNSIGNED_INT:5125,FLOAT:5126,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},zr="KHR_mesh_quantization",We={};We[uo]=Q.NEAREST;We[co]=Q.NEAREST_MIPMAP_NEAREST;We[ao]=Q.NEAREST_MIPMAP_LINEAR;We[pt]=Q.LINEAR;We[lo]=Q.LINEAR_MIPMAP_NEAREST;We[gs]=Q.LINEAR_MIPMAP_LINEAR;We[tt]=Q.CLAMP_TO_EDGE;We[Pn]=Q.REPEAT;We[ho]=Q.MIRRORED_REPEAT;const Ui={scale:"scale",position:"translation",quaternion:"rotation",morphTargetInfluences:"weights"},dp=new Pe,Bi=12,hp=1179937895,pp=2,ji=8,fp=1313821514,mp=5130562;function vn(n,e){return n.length===e.length&&n.every(function(t,r){return t===e[r]})}function vp(n){return new TextEncoder().encode(n).buffer}function gp(n){return vn(n.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}function wp(n,e,t){const r={min:new Array(n.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(n.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let s=e;s<e+t;s++)for(let i=0;i<n.itemSize;i++){let o;n.itemSize>4?o=n.array[s*n.itemSize+i]:(i===0?o=n.getX(s):i===1?o=n.getY(s):i===2?o=n.getZ(s):i===3&&(o=n.getW(s)),n.normalized===!0&&(o=fe.normalize(o,n.array))),r.min[i]=Math.min(r.min[i],o),r.max[i]=Math.max(r.max[i],o)}return r}function Aa(n){return Math.ceil(n/4)*4}function Gr(n,e=0){const t=Aa(n.byteLength);if(t!==n.byteLength){const r=new Uint8Array(t);if(r.set(new Uint8Array(n)),e!==0)for(let s=n.byteLength;s<t;s++)r[s]=e;return r.buffer}return n}function zi(){return typeof document>"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}function Gi(n,e){if(n.toBlob!==void 0)return new Promise(r=>n.toBlob(r,e));let t;return e==="image/jpeg"?t=.92:e==="image/webp"&&(t=.8),n.convertToBlob({type:e,quality:t})}class bp{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}async write(e,t,r={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},r),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),await Promise.all(this.pending);const s=this,i=s.buffers,o=s.json;r=s.options;const a=s.extensionsUsed,l=s.extensionsRequired,c=new Blob(i,{type:"application/octet-stream"}),d=Object.keys(a),u=Object.keys(l);d.length>0&&(o.extensionsUsed=d),u.length>0&&(o.extensionsRequired=u),o.buffers&&o.buffers.length>0&&(o.buffers[0].byteLength=c.size),r.binary===!0?c.arrayBuffer().then(g=>{const _=Gr(g),m=new DataView(new ArrayBuffer(ji));m.setUint32(0,_.byteLength,!0),m.setUint32(4,mp,!0);const C=Gr(vp(JSON.stringify(o)),32),v=new DataView(new ArrayBuffer(ji));v.setUint32(0,C.byteLength,!0),v.setUint32(4,fp,!0);const E=new ArrayBuffer(Bi),S=new DataView(E);S.setUint32(0,hp,!0),S.setUint32(4,pp,!0);const x=Bi+v.byteLength+C.byteLength+m.byteLength+_.byteLength;S.setUint32(8,x,!0),new Blob([E,v,C,m,_],{type:"application/octet-stream"}).arrayBuffer().then(t)}):o.buffers&&o.buffers.length>0?Ni(c).then(g=>{o.buffers[0].uri=g,t(o)}):t(o)}serializeUserData(e,t){if(Object.keys(e.userData).length===0)return;const r=this.options,s=this.extensionsUsed;try{const i=JSON.parse(JSON.stringify(e.userData));if(r.includeCustomExtensions&&i.gltfExtensions){t.extensions===void 0&&(t.extensions={});for(const o in i.gltfExtensions)t.extensions[o]=i.gltfExtensions[o],s[o]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(t.extras=i)}
vendor: 23,657 bytes, line 55
55catch(i){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+i.message)}}getUID(e,t=!1){if(this.uids.has(e)===!1){const r=new Map;r.set(!0,this.uid++),r.set(!1,this.uid++),this.uids.set(e,r)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const t=new H;for(let r=0,s=e.count;r<s;r++)if(Math.abs(t.fromBufferAttribute(e,r).length()-1)>5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);const r=e.clone(),s=new H;for(let i=0,o=r.count;i<o;i++)s.fromBufferAttribute(r,i),s.x===0&&s.y===0&&s.z===0?s.setX(1):s.normalize(),r.setXYZ(i,s.x,s.y,s.z);return t.attributesNormalized.set(e,r),r}applyTextureTransform(e,t){let r=!1;const s={};(t.offset.x!==0||t.offset.y!==0)&&(s.offset=t.offset.toArray(),r=!0),t.rotation!==0&&(s.rotation=t.rotation,r=!0),(t.repeat.x!==1||t.repeat.y!==1)&&(s.scale=t.repeat.toArray(),r=!0),r&&(e.extensions=e.extensions||{},e.extensions.KHR_texture_transform=s,this.extensionsUsed.KHR_texture_transform=!0)}buildMetalRoughTexture(e,t){if(e===t)return e;function r(g){return("colorSpace"in g?g.colorSpace==="srgb":g.encoding===3001)?function(_){return _<.04045?_*.0773993808:Math.pow(_*.9478672986+.0521327014,2.4)}:function(_){return _}}console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."),e instanceof Mr&&(e=jr(e)),t instanceof Mr&&(t=jr(t));const s=e?e.image:null,i=t?t.image:null,o=Math.max(s?s.width:0,i?i.width:0),a=Math.max(s?s.height:0,i?i.height:0),l=zi();l.width=o,l.height=a;const c=l.getContext("2d");c.fillStyle="#00ffff",c.fillRect(0,0,o,a);const d=c.getImageData(0,0,o,a);if(s){c.drawImage(s,0,0,o,a);const g=r(e),_=c.getImageData(0,0,o,a).data;for(let m=2;m<_.length;m+=4)d.data[m]=g(_[m]/256)*256}if(i){c.drawImage(i,0,0,o,a);const g=r(t),_=c.getImageData(0,0,o,a).data;for(let m=1;m<_.length;m+=4)d.data[m]=g(_[m]/256)*256}c.putImageData(d,0,0);const u=(e||t).clone();return u.source=new nt(l).source,"colorSpace"in u?u.colorSpace="":u.encoding=3e3,u.channel=(e||t).channel,e&&t&&e.channel!==t.channel&&console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."),u}processBuffer(e){const t=this.json,r=this.buffers;return t.buffers||(t.buffers=[{byteLength:0}]),r.push(e),0}processBufferView(e,t,r,s,i){const o=this.json;o.bufferViews||(o.bufferViews=[]);let a;switch(t){case Q.BYTE:case Q.UNSIGNED_BYTE:a=1;break;case Q.SHORT:case Q.UNSIGNED_SHORT:a=2;break;default:a=4}const l=Aa(s*e.itemSize*a),c=new DataView(new ArrayBuffer(l));let d=0;for(let g=r;g<r+s;g++)for(let _=0;_<e.itemSize;_++){let m;e.itemSize>4?m=e.array[g*e.itemSize+_]:(_===0?m=e.getX(g):_===1?m=e.getY(g):_===2?m=e.getZ(g):_===3&&(m=e.getW(g)),e.normalized===!0&&(m=fe.normalize(m,e.array))),t===Q.FLOAT?c.setFloat32(d,m,!0):t===Q.INT?c.setInt32(d,m,!0):t===Q.UNSIGNED_INT?c.setUint32(d,m,!0):t===Q.SHORT?c.setInt16(d,m,!0):t===Q.UNSIGNED_SHORT?c.setUint16(d,m,!0):t===Q.BYTE?c.setInt8(d,m):t===Q.UNSIGNED_BYTE&&c.setUint8(d,m),d+=a}const u={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:l};return i!==void 0&&(u.target=i),i===Q.ARRAY_BUFFER&&(u.byteStride=e.itemSize*a),this.byteOffset+=l,o.bufferViews.push(u),{id:o.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const t=this,r=t.json;return r.bufferViews||(r.bufferViews=[]),e.arrayBuffer().then(s=>{const i=Gr(s),o={buffer:t.processBuffer(i),byteOffset:t.byteOffset,byteLength:i.byteLength};return t.byteOffset+=i.byteLength,r.bufferViews.push(o)-1})}processAccessor(e,t,r,s){const i=this.json,o={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"};let a;if(e.array.constructor===Float32Array)a=Q.FLOAT;else if(e.array.constructor===Int32Array)a=Q.INT;else if(e.array.constructor===Uint32Array)a=Q.UNSIGNED_INT;else if(e.array.constructor===Int16Array)a=Q.SHORT;else if(e.array.constructor===Uint16Array)a=Q.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)a=Q.BYTE;else if(e.array.constructor===Uint8Array)a=Q.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);if(r===void 0&&(r=0),s===void 0&&(s=e.count),s===0)return null;const l=wp(e,r,s);let c;t!==void 0&&(c=e===t.index?Q.ELEMENT_ARRAY_BUFFER:Q.ARRAY_BUFFER);const d=this.processBufferView(e,a,r,s,c),u={bufferView:d.id,byteOffset:d.byteOffset,componentType:a,count:s,max:l.max,min:l.min,type:o[e.itemSize]};return e.normalized===!0&&(u.normalized=!0),i.accessors||(i.accessors=[]),i.accessors.push(u)-1}processImage(e,t,r,s="image/png"){if(e!==null){const i=this,o=i.cache,a=i.json,l=i.options,c=i.pending;o.images.has(e)||o.images.set(e,{});const d=o.images.get(e),u=s+":flipY/"+r.toString();if(d[u]!==void 0)return d[u];a.images||(a.images=[]);const g={mimeType:s},_=zi();_.width=Math.min(e.width,l.maxTextureSize),_.height=Math.min(e.height,l.maxTextureSize);const m=_.getContext("2d");if(r===!0&&(m.translate(0,_.height),m.scale(1,-1)),e.data!==void 0){t!==yn&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>l.maxTextureSize||e.height>l.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const v=new Uint8ClampedArray(e.height*e.width*4);for(let E=0;E<v.length;E+=4)v[E+0]=e.data[E+0],v[E+1]=e.data[E+1],v[E+2]=e.data[E+2],v[E+3]=e.data[E+3];m.putImageData(new ImageData(v,e.width,e.height),0,0)}else m.drawImage(e,0,0,_.width,_.height);l.binary===!0?c.push(Gi(_,s).then(v=>i.processBufferViewImage(v)).then(v=>{g.bufferView=v})):_.toDataURL!==void 0?g.uri=_.toDataURL(s):c.push(Gi(_,s).then(Ni).then(v=>{g.uri=v}));const C=a.images.push(g)-1;return d[u]=C,C}else throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const t=this.json;t.samplers||(t.samplers=[]);const r={magFilter:We[e.magFilter],minFilter:We[e.minFilter],wrapS:We[e.wrapS],wrapT:We[e.wrapT]};return t.samplers.push(r)-1}processTexture(e){const t=this.options,r=this.cache,s=this.json;if(r.textures.has(e))return r.textures.get(e);s.textures||(s.textures=[]),e instanceof Mr&&(e=jr(e,t.maxTextureSize));let i=e.userData.mimeType;i==="image/webp"&&(i="image/png");const o={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,i)};e.name&&(o.name=e.name),this._invokeAll(function(l){l.writeTexture&&l.writeTexture(e,o)});const a=s.textures.push(o)-1;return r.textures.set(e,a),a}processMaterial(e){const t=this.cache,r=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;r.materials||(r.materials=[]);const s={pbrMetallicRoughness:{}};e.isMeshStandardMaterial!==!0&&e.isMeshBasicMaterial!==!0&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const i=e.color.toArray().concat([e.opacity]);if(vn(i,[1,1,1,1])||(s.pbrMetallicRoughness.baseColorFactor=i),e.isMeshStandardMaterial?(s.pbrMetallicRoughness.metallicFactor=e.metalness,s.pbrMetallicRoughness.roughnessFactor=e.roughness):(s.pbrMetallicRoughness.metallicFactor=.5,s.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const a=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),l={index:this.processTexture(a),channel:a.channel};this.applyTextureTransform(l,a),s.pbrMetallicRoughness.metallicRoughnessTexture=l}if(e.map){const a={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(a,e.map),s.pbrMetallicRoughness.baseColorTexture=a}if(e.emissive){const a=e.emissive;if(Math.max(a.r,a.g,a.b)>0&&(s.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const l={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(l,e.emissiveMap),s.emissiveTexture=l}}if(e.normalMap){const a={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&e.normalScale.x!==1&&(a.scale=e.normalScale.x),this.applyTextureTransform(a,e.normalMap),s.normalTexture=a}if(e.aoMap){const a={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};e.aoMapIntensity!==1&&(a.strength=e.aoMapIntensity),this.applyTextureTransform(a,e.aoMap),s.occlusionTexture=a}e.transparent?s.alphaMode="BLEND":e.alphaTest>0&&(s.alphaMode="MASK",s.alphaCutoff=e.alphaTest),e.side===mr&&(s.doubleSided=!0),e.name!==""&&(s.name=e.name),this.serializeUserData(e,s),this._invokeAll(function(a){a.writeMaterial&&a.writeMaterial(e,s)});const o=r.materials.push(s)-1;return t.materials.set(e,o),o}processMesh(e){const t=this.cache,r=this.json,s=[e.geometry.uuid];if(Array.isArray(e.material))for(let x=0,M=e.material.length;x<M;x++)s.push(e.material[x].uuid);else s.push(e.material.uuid);const i=s.join(":");if(t.meshes.has(i))return t.meshes.get(i);const o=e.geometry;let a;e.isLineSegments?a=Q.LINES:e.isLineLoop?a=Q.LINE_LOOP:e.isLine?a=Q.LINE_STRIP:e.isPoints?a=Q.POINTS:a=e.material.wireframe?Q.LINES:Q.TRIANGLES;const l={},c={},d=[],u=[],g={...Ea>=152?{uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3"}:{uv:"TEXCOORD_0",uv2:"TEXCOORD_1"},color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},_=o.getAttribute("normal");_!==void 0&&!this.isNormalizedNormalAttribute(_)&&(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),o.setAttribute("normal",this.createNormalizedNormalAttribute(_)));let m=null;for(let x in o.attributes){if(x.slice(0,5)==="morph")continue;const M=o.attributes[x];if(x=g[x]||x.toUpperCase(),/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(x)||(x="_"+x),t.attributes.has(this.getUID(M))){c[x]=t.attributes.get(this.getUID(M));continue}m=null;const L=M.array;x==="JOINTS_0"&&!(L instanceof Uint16Array)&&!(L instanceof Uint8Array)&&(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),m=new Ee(new Uint16Array(L),M.itemSize,M.normalized));const y=this.processAccessor(m||M,o);y!==null&&(x.startsWith("_")||this.detectMeshQuantization(x,M),c[x]=y,t.attributes.set(this.getUID(M),y))}if(_!==void 0&&o.setAttribute("normal",_),Object.keys(c).length===0)return null;if(e.morphTargetInfluences!==void 0&&e.morphTargetInfluences.length>0){const x=[],M=[],L={};if(e.morphTargetDictionary!==void 0)for(const y in e.morphTargetDictionary)L[e.morphTargetDictionary[y]]=y;for(let y=0;y<e.morphTargetInfluences.length;++y){const A={};let h=!1;for(const b in o.morphAttributes){if(b!=="position"&&b!=="normal"){h||(console.warn("GLTFExporter: Only POSITION and NORMAL morph are supported."),h=!0);continue}const f=o.morphAttributes[b][y],P=b.toUpperCase(),k=o.attributes[b];if(t.attributes.has(this.getUID(f,!0))){A[P]=t.attributes.get(this.getUID(f,!0));continue}const B=f.clone();if(!o.morphTargetsRelative)for(let V=0,j=f.count;V<j;V++)for(let N=0;N<f.itemSize;N++)N===0&&B.setX(V,f.getX(V)-k.getX(V)),N===1&&B.setY(V,f.getY(V)-k.getY(V)),N===2&&B.setZ(V,f.getZ(V)-k.getZ(V)),N===3&&B.setW(V,f.getW(V)-k.getW(V));A[P]=this.processAccessor(B,o),t.attributes.set(this.getUID(k,!0),A[P])}u.push(A),x.push(e.morphTargetInfluences[y]),e.morphTargetDictionary!==void 0&&M.push(L[y])}l.weights=x,M.length>0&&(l.extras={},l.extras.targetNames=M)}const C=Array.isArray(e.material);if(C&&o.groups.length===0)return null;const v=C?e.material:[e.material],E=C?o.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let x=0,M=E.length;x<M;x++){const L={mode:a,attributes:c};if(this.serializeUserData(o,L),u.length>0&&(L.targets=u),o.index!==null){let A=this.getUID(o.index);(E[x].start!==void 0||E[x].count!==void 0)&&(A+=":"+E[x].start+":"+E[x].count),t.attributes.has(A)?L.indices=t.attributes.get(A):(L.indices=this.processAccessor(o.index,o,E[x].start,E[x].count),t.attributes.set(A,L.indices)),L.indices===null&&delete L.indices}const y=this.processMaterial(v[E[x].materialIndex]);y!==null&&(L.material=y),d.push(L)}l.primitives=d,r.meshes||(r.meshes=[]),this._invokeAll(function(x){x.writeMesh&&x.writeMesh(e,l)});const S=r.meshes.push(l)-1;return t.meshes.set(i,S),S}detectMeshQuantization(e,t){if(this.extensionsUsed[zr])return;let r;switch(t.array.constructor){case Int8Array:r="byte";break;case Uint8Array:r="unsigned byte";break;case Int16Array:r="short";break;case Uint16Array:r="unsigned short";break;default:return}t.normalized&&(r+=" normalized");const s=e.split("_",1)[0];Di[s]&&Di[s].includes(r)&&(this.extensionsUsed[zr]=!0,this.extensionsRequired[zr]=!0)}processCamera(e){const t=this.json;t.cameras||(t.cameras=[]);const r=e.isOrthographicCamera,s={type:r?"orthographic":"perspective"};return r?s.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:s.perspective={aspectRatio:e.aspect,yfov:fe.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==""&&(s.name=e.type),t.cameras.push(s)-1}processAnimation(e,t){const r=this.json,s=this.nodeMap;r.animations||(r.animations=[]),e=Ma.Utils.mergeMorphTargetTracks(e.clone(),t);const i=e.tracks,o=[],a=[];for(let l=0;l<i.length;++l){const c=i[l],d=Tn.parseTrackName(c.name);let u=Tn.findNode(t,d.nodeName);const g=Ui[d.propertyName];if(d.objectName==="bones"&&(u.isSkinnedMesh===!0?u=u.skeleton.getBoneByName(d.objectIndex):u=void 0),!u||!g)return console.warn('THREE.GLTFExporter: Could not export animation track "%s".',c.name),null;const _=1;let m=c.values.length/c.times.length;g===Ui.morphTargetInfluences&&(m/=u.morphTargetInfluences.length);let C;c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline===!0?(C="CUBICSPLINE",m/=3):c.getInterpolation()===fo?C="STEP":C="LINEAR",a.push({input:this.processAccessor(new Ee(c.times,_)),output:this.processAccessor(new Ee(c.values,m)),interpolation:C}),o.push({sampler:a.length-1,target:{node:s.get(u),path:g}})}return r.animations.push({name:e.name||"clip_"+r.animations.length,samplers:a,channels:o}),r.animations.length-1}processSkin(e){const t=this.json,r=this.nodeMap,s=t.nodes[r.get(e)],i=e.skeleton;if(i===void 0)return null;const o=e.skeleton.bones[0];if(o===void 0)return null;const a=[],l=new Float32Array(i.bones.length*16),c=new gt;for(let d=0;d<i.bones.length;++d)a.push(r.get(i.bones[d])),c.copy(i.boneInverses[d]),c.multiply(e.bindMatrix).toArray(l,d*16);return t.skins===void 0&&(t.skins=[]),t.skins.push({inverseBindMatrices:this.processAccessor(new Ee(l,16)),joints:a,skeleton:r.get(o)}),s.skin=t.skins.length-1}processNode(e){const t=this.json,r=this.options,s=this.nodeMap;t.nodes||(t.nodes=[]);const i={};if(r.trs){const a=e.quaternion.toArray(),l=e.position.toArray(),c=e.scale.toArray();vn(a,[0,0,0,1])||(i.rotation=a),vn(l,[0,0,0])||(i.translation=l),vn(c,[1,1,1])||(i.scale=c)}else e.matrixAutoUpdate&&e.updateMatrix(),gp(e.matrix)===!1&&(i.matrix=e.matrix.elements);if(e.name!==""&&(i.name=String(e.name)),this.serializeUserData(e,i),e.isMesh||e.isLine||e.isPoints){const a=this.processMesh(e);a!==null&&(i.mesh=a)}else e.isCamera&&(i.camera=this.processCamera(e));if(e.isSkinnedMesh&&this.skins.push(e),e.children.length>0){const a=[];for(let l=0,c=e.children.length;l<c;l++){const d=e.children[l];if(d.visible||r.onlyVisible===!1){const u=this.processNode(d);u!==null&&a.push(u)}}a.length>0&&(i.children=a)}this._invokeAll(function(a){a.writeNode&&a.writeNode(e,i)});const o=t.nodes.push(i)-1;return s.set(e,o),o}processScene(e){const t=this.json,r=this.options;t.scenes||(t.scenes=[],t.scene=0);const s={};e.name!==""&&(s.name=e.name),t.scenes.push(s);const i=[];for(let o=0,a=e.children.length;o<a;o++){const l=e.children[o];if(l.visible||r.onlyVisible===!1){const c=this.processNode(l);c!==null&&i.push(c)}}i.length>0&&(s.nodes=i),this.serializeUserData(e,s)}processObjects(e){const t=new rr;t.name="AuxScene";for(let r=0;r<e.length;r++)t.children.push(e[r]);this.processScene(t)}processInput(e){const t=this.options;e=e instanceof Array?e:[e],this._invokeAll(function(s){s.beforeParse&&s.beforeParse(e)});const r=[];for(let s=0;s<e.length;s++)e[s]instanceof rr?this.processScene(e[s]):r.push(e[s]);r.length>0&&this.processObjects(r);for(let s=0;s<this.skins.length;++s)this.processSkin(this.skins[s]);for(let s=0;s<t.animations.length;++s)this.processAnimation(t.animations[s],e[0]);this._invokeAll(function(s){s.afterParse&&s.afterParse(e)})}_invokeAll(e){for(let t=0,r=this.plugins.length;t<r;t++)e(this.plugins[t])}}class _p{constructor(e){this.writer=e,this.name="KHR_lights_punctual"}writeNode(e,t){if(!e.isLight)return;if(!e.isDirectionalLight&&!e.isPointLight&&!e.isSpotLight){console.warn("THREE.GLTFExporter: Only directional, point, and spot lights are supported.",e);return}const r=this.writer,s=r.json,i=r.extensionsUsed,o={};e.name&&(o.name=e.name),o.color=e.color.toArray(),o.intensity=e.intensity,e.isDirectionalLight?o.type="directional":e.isPointLight?(o.type="point",e.distance>0&&(o.range=e.distance)):e.isSpotLight&&(o.type="spot",e.distance>0&&(o.range=e.distance),o.spot={},o.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,o.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),i[this.name]||(s.extensions=s.extensions||{},s.extensions[this.name]={lights:[]},i[this.name]=!0);const a=s.extensions[this.name].lights;a.push(o),t.extensions=t.extensions||{},t.extensions[this.name]={light:a.length-1}}}let yp=class{constructor(n){this.writer=n,this.name="KHR_materials_unlit"}writeMaterial(n,e){if(!n.isMeshBasicMaterial)return;const t=this.writer.extensionsUsed;e.extensions=e.extensions||{},e.extensions[this.name]={},t[this.name]=!0,e.pbrMetallicRoughness.metallicFactor=0,e.pbrMetallicRoughness.roughnessFactor=.9}},xp=class{constructor(n){this.writer=n,this.name="KHR_materials_clearcoat"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.clearcoat===0)return;const t=this.writer,r=t.extensionsUsed,s={};if(s.clearcoatFactor=n.clearcoat,n.clearcoatMap){const i={index:t.processTexture(n.clearcoatMap),texCoord:n.clearcoatMap.channel};t.applyTextureTransform(i,n.clearcoatMap),s.clearcoatTexture=i}if(s.clearcoatRoughnessFactor=n.clearcoatRoughness,n.clearcoatRoughnessMap){const i={index:t.processTexture(n.clearcoatRoughnessMap),texCoord:n.clearcoatRoughnessMap.channel};t.applyTextureTransform(i,n.clearcoatRoughnessMap),s.clearcoatRoughnessTexture=i}if(n.clearcoatNormalMap){const i={index:t.processTexture(n.clearcoatNormalMap),texCoord:n.clearcoatNormalMap.channel};t.applyTextureTransform(i,n.clearcoatNormalMap),s.clearcoatNormalTexture=i}e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Cp=class{constructor(n){this.writer=n,this.name="KHR_materials_iridescence"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.iridescence===0)return;const t=this.writer,r=t.extensionsUsed,s={};if(s.iridescenceFactor=n.iridescence,n.iridescenceMap){const i={index:t.processTexture(n.iridescenceMap),texCoord:n.iridescenceMap.channel};t.applyTextureTransform(i,n.iridescenceMap),s.iridescenceTexture=i}if(s.iridescenceIor=n.iridescenceIOR,s.iridescenceThicknessMinimum=n.iridescenceThicknessRange[0],s.iridescenceThicknessMaximum=n.iridescenceThicknessRange[1],n.iridescenceThicknessMap){const i={index:t.processTexture(n.iridescenceThicknessMap),texCoord:n.iridescenceThicknessMap.channel};t.applyTextureTransform(i,n.iridescenceThicknessMap),s.iridescenceThicknessTexture=i}e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Pp=class{constructor(n){this.writer=n,this.name="KHR_materials_transmission"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.transmission===0)return;const t=this.writer,r=t.extensionsUsed,s={};if(s.transmissionFactor=n.transmission,n.transmissionMap){const i={index:t.processTexture(n.transmissionMap),texCoord:n.transmissionMap.channel};t.applyTextureTransform(i,n.transmissionMap),s.transmissionTexture=i}e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Tp=class{constructor(n){this.writer=n,this.name="KHR_materials_volume"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.transmission===0)return;const t=this.writer,r=t.extensionsUsed,s={};if(s.thicknessFactor=n.thickness,n.thicknessMap){const i={index:t.processTexture(n.thicknessMap),texCoord:n.thicknessMap.channel};t.applyTextureTransform(i,n.thicknessMap),s.thicknessTexture=i}s.attenuationDistance=n.attenuationDistance,s.attenuationColor=n.attenuationColor.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Ep=class{constructor(n){this.writer=n,this.name="KHR_materials_ior"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.ior===1.5)return;const t=this.writer.extensionsUsed,r={};r.ior=n.ior,e.extensions=e.extensions||{},e.extensions[this.name]=r,t[this.name]=!0}},Mp=class{constructor(n){this.writer=n,this.name="KHR_materials_specular"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.specularIntensity===1&&n.specularColor.equals(dp)&&!n.specularIntensityMap&&!n.specularColorTexture)return;const t=this.writer,r=t.extensionsUsed,s={};if(n.specularIntensityMap){const i={index:t.processTexture(n.specularIntensityMap),texCoord:n.specularIntensityMap.channel};t.applyTextureTransform(i,n.specularIntensityMap),s.specularTexture=i}if(n.specularColorMap){const i={index:t.processTexture(n.specularColorMap),texCoord:n.specularColorMap.channel};t.applyTextureTransform(i,n.specularColorMap),s.specularColorTexture=i}s.specularFactor=n.specularIntensity,s.specularColorFactor=n.specularColor.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Ap=class{constructor(n){this.writer=n,this.name="KHR_materials_sheen"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.sheen==0)return;const t=this.writer,r=t.extensionsUsed,s={};if(n.sheenRoughnessMap){const i={index:t.processTexture(n.sheenRoughnessMap),texCoord:n.sheenRoughnessMap.channel};t.applyTextureTransform(i,n.sheenRoughnessMap),s.sheenRoughnessTexture=i}if(n.sheenColorMap){const i={index:t.processTexture(n.sheenColorMap),texCoord:n.sheenColorMap.channel};t.applyTextureTransform(i,n.sheenColorMap),s.sheenColorTexture=i}s.sheenRoughnessFactor=n.sheenRoughness,s.sheenColorFactor=n.sheenColor.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},Sp=class{constructor(n){this.writer=n,this.name="KHR_materials_anisotropy"}writeMaterial(n,e){if(!n.isMeshPhysicalMaterial||n.anisotropy==0)return;const t=this.writer,r=t.extensionsUsed,s={};if(n.anisotropyMap){const i={index:t.processTexture(n.anisotropyMap)};t.applyTextureTransform(i,n.anisotropyMap),s.anisotropyTexture=i}s.anisotropyStrength=n.anisotropy,s.anisotropyRotation=n.anisotropyRotation,e.extensions=e.extensions||{},e.extensions[this.name]=s,r[this.name]=!0}},kp=class{constructor(n){this.writer=n,this.name="KHR_materials_emissive_strength"}writeMaterial(n,e){if(!n.isMeshStandardMaterial||n.emissiveIntensity===1)return;const t=this.writer.extensionsUsed,r={};r.emissiveStrength=n.emissiveIntensity,e.extensions=e.extensions||{},e.extensions[this.name]=r,t[this.name]=!0}};var Un=Uint8Array,Sa=Uint16Array,Lp=Uint32Array,Rp=new Un([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ip=new Un([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ka=function(n,e){for(var t=new Sa(31),r=0;r<31;++r)t[r]=e+=1<<n[r-1];
55for(var s=new Lp(t[30]),r=1;r<30;++r)for(var i=t[r];i<t[r+1];++i)s[i]=i-t[r]<<5|r;return[t,s]},La=ka(Rp,2),Op=La[0],Fp=La[1];Op[28]=258,Fp[258]=28;ka(Ip,0);var Vp=new Sa(32768);for(var de=0;de<32768;++de){var Tt=(de&43690)>>>1|(de&21845)<<1;Tt=(Tt&52428)>>>2|(Tt&13107)<<2,Tt=(Tt&61680)>>>4|(Tt&3855)<<4,Vp[de]=((Tt&65280)>>>8|(Tt&255)<<8)>>>1}var Cr=new Un(288);for(var de=0;de<144;++de)Cr[de]=8;for(var de=144;de<256;++de)Cr[de]=9;for(var de=256;de<280;++de)Cr[de]=7;for(var de=280;de<288;++de)Cr[de]=8;var Np=new Un(32);for(var de=0;de<32;++de)Np[de]=5;var Dp=new Un(0),Up=typeof TextDecoder<"u"&&new TextDecoder,Bp=0;try{Up.decode(Dp,{stream:!0}),Bp=1}catch{}new Bl;new H;new wo(0,0,0,"YXZ");new H;new jl;new bo;class jp extends vs{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new Kp(t)}),this.register(function(t){return new ef(t)}),this.register(function(t){return new tf(t)}),this.register(function(t){return new nf(t)}),this.register(function(t){return new qp(t)}),this.register(function(t){return new Xp(t)}),this.register(function(t){return new Yp(t)}),this.register(function(t){return new Zp(t)}),this.register(function(t){return new $p(t)}),this.register(function(t){return new Qp(t)}),this.register(function(t){return new Wp(t)}),this.register(function(t){return new Jp(t)}),this.register(function(t){return new Gp(t)}),this.register(function(t){return new rf(t)}),this.register(function(t){return new sf(t)})}load(e,t,r,s){const i=this;let o;this.resourcePath!==""?o=this.resourcePath:this.path!==""?o=this.path:o=Bt.extractUrlBase(e),this.manager.itemStart(e);const a=function(c){s?s(c):console.error(c),i.manager.itemError(e),i.manager.itemEnd(e)},l=new Cn(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{i.parse(c,o,function(d){t(d),i.manager.itemEnd(e)},a)}catch(d){a(d)}},r,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,r,s){let i;const o={},a={};if(typeof e=="string")i=JSON.parse(e);else if(e instanceof ArrayBuffer)if(Bt.decodeText(new Uint8Array(e.slice(0,4)))===Ra){try{o[J.KHR_BINARY_GLTF]=new of(e)}catch(c){s&&s(c);return}i=JSON.parse(o[J.KHR_BINARY_GLTF].content)}else i=JSON.parse(Bt.decodeText(new Uint8Array(e)));else i=e;if(i.asset===void 0||i.asset.version[0]<2){s&&s(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const l=new bf(i,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c<this.pluginCallbacks.length;c++){const d=this.pluginCallbacks[c](l);a[d.name]=d,o[d.name]=!0}if(i.extensionsUsed)for(let c=0;c<i.extensionsUsed.length;++c){const d=i.extensionsUsed[c],u=i.extensionsRequired||[];switch(d){case J.KHR_MATERIALS_UNLIT:o[d]=new Hp;break;case J.KHR_DRACO_MESH_COMPRESSION:o[d]=new af(i,this.dracoLoader);break;case J.KHR_TEXTURE_TRANSFORM:o[d]=new lf;break;case J.KHR_MESH_QUANTIZATION:o[d]=new cf;break;default:u.indexOf(d)>=0&&a[d]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+d+'".')}}l.setExtensions(o),l.setPlugins(a),l.parse(r,s)}parseAsync(e,t){const r=this;return new Promise(function(s,i){r.parse(e,t,s,i)})}}function zp(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}const J={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Gp{constructor(e){this.parser=e,this.name=J.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let r=0,s=t.length;r<s;r++){const i=t[r];
vendor: 10,211 bytes, line 55
55i.extensions&&i.extensions[this.name]&&i.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(e){const t=this.parser,r="light:"+e;let s=t.cache.get(r);if(s)return s;const i=t.json,o=((i.extensions&&i.extensions[this.name]||{}).lights||[])[e];let a;const l=new Pe(16777215);o.color!==void 0&&l.fromArray(o.color);const c=o.range!==void 0?o.range:0;switch(o.type){case"directional":a=new xl(l),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new yl(l),a.distance=c;break;case"spot":a=new _l(l),a.distance=c,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,a.angle=o.spot.outerConeAngle,a.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return a.position.set(0,0,0),a.decay=2,Mt(a,o),o.intensity!==void 0&&(a.intensity=o.intensity),a.name=t.createUniqueName(o.name||"light_"+e),s=Promise.resolve(a),t.cache.add(r,s),s}getDependency(e,t){if(e==="light")return this._loadLight(t)}createNodeAttachment(e){const t=this,r=this.parser,s=r.json.nodes[e],i=(s.extensions&&s.extensions[this.name]||{}).light;return i===void 0?null:this._loadLight(i).then(function(o){return r._getNodeRef(t.cache,i,o)})}}class Hp{constructor(){this.name=J.KHR_MATERIALS_UNLIT}getMaterialType(){return Dt}extendParams(e,t,r){const s=[];e.color=new Pe(1,1,1),e.opacity=1;const i=t.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){const o=i.baseColorFactor;e.color.fromArray(o),e.opacity=o[3]}i.baseColorTexture!==void 0&&s.push(r.assignTexture(e,"map",i.baseColorTexture,3001))}return Promise.all(s)}}class $p{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const s=r.extensions[this.name].emissiveStrength;return s!==void 0&&(t.emissiveIntensity=s),Promise.resolve()}}class Kp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];if(o.clearcoatFactor!==void 0&&(t.clearcoat=o.clearcoatFactor),o.clearcoatTexture!==void 0&&i.push(r.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),o.clearcoatRoughnessFactor!==void 0&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),o.clearcoatRoughnessTexture!==void 0&&i.push(r.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),o.clearcoatNormalTexture!==void 0&&(i.push(r.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),o.clearcoatNormalTexture.scale!==void 0)){const a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new ot(a,a)}return Promise.all(i)}}class Wp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];return o.iridescenceFactor!==void 0&&(t.iridescence=o.iridescenceFactor),o.iridescenceTexture!==void 0&&i.push(r.assignTexture(t,"iridescenceMap",o.iridescenceTexture)),o.iridescenceIor!==void 0&&(t.iridescenceIOR=o.iridescenceIor),t.iridescenceThicknessRange===void 0&&(t.iridescenceThicknessRange=[100,400]),o.iridescenceThicknessMinimum!==void 0&&(t.iridescenceThicknessRange[0]=o.iridescenceThicknessMinimum),o.iridescenceThicknessMaximum!==void 0&&(t.iridescenceThicknessRange[1]=o.iridescenceThicknessMaximum),o.iridescenceThicknessTexture!==void 0&&i.push(r.assignTexture(t,"iridescenceThicknessMap",o.iridescenceThicknessTexture)),Promise.all(i)}}class qp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[];t.sheenColor=new Pe(0,0,0),t.sheenRoughness=0,t.sheen=1;const o=s.extensions[this.name];return o.sheenColorFactor!==void 0&&t.sheenColor.fromArray(o.sheenColorFactor),o.sheenRoughnessFactor!==void 0&&(t.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&i.push(r.assignTexture(t,"sheenColorMap",o.sheenColorTexture,3001)),o.sheenRoughnessTexture!==void 0&&i.push(r.assignTexture(t,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(i)}}class Xp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];return o.transmissionFactor!==void 0&&(t.transmission=o.transmissionFactor),o.transmissionTexture!==void 0&&i.push(r.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(i)}}class Yp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];t.thickness=o.thicknessFactor!==void 0?o.thicknessFactor:0,o.thicknessTexture!==void 0&&i.push(r.assignTexture(t,"thicknessMap",o.thicknessTexture)),t.attenuationDistance=o.attenuationDistance||1/0;const a=o.attenuationColor||[1,1,1];return t.attenuationColor=new Pe(a[0],a[1],a[2]),Promise.all(i)}}class Zp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const s=r.extensions[this.name];return t.ior=s.ior!==void 0?s.ior:1.5,Promise.resolve()}}class Qp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];t.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&i.push(r.assignTexture(t,"specularIntensityMap",o.specularTexture));const a=o.specularColorFactor||[1,1,1];return t.specularColor=new Pe(a[0],a[1],a[2]),o.specularColorTexture!==void 0&&i.push(r.assignTexture(t,"specularColorMap",o.specularColorTexture,3001)),Promise.all(i)}}class Jp{constructor(e){this.parser=e,this.name=J.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:It}extendMaterialParams(e,t){const r=this.parser,s=r.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=[],o=s.extensions[this.name];return o.anisotropyStrength!==void 0&&(t.anisotropy=o.anisotropyStrength),o.anisotropyRotation!==void 0&&(t.anisotropyRotation=o.anisotropyRotation),o.anisotropyTexture!==void 0&&i.push(r.assignTexture(t,"anisotropyMap",o.anisotropyTexture)),Promise.all(i)}}class ef{constructor(e){this.parser=e,this.name=J.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,r=t.json,s=r.textures[e];if(!s.extensions||!s.extensions[this.name])return null;const i=s.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(r.extensionsRequired&&r.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,i.source,o)}}class tf{constructor(e){this.parser=e,this.name=J.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,s=r.json,i=s.textures[e];if(!i.extensions||!i.extensions[t])return null;const o=i.extensions[t],a=s.images[o.source];let l=r.textureLoader;if(a.uri){const c=r.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return r.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}}class nf{constructor(e){this.parser=e,this.name=J.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,s=r.json,i=s.textures[e];if(!i.extensions||!i.extensions[t])return null;const o=i.extensions[t],a=s.images[o.source];let l=r.textureLoader;if(a.uri){const c=r.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return r.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdj
55FDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}}class rf{constructor(e){this.name=J.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,r=t.bufferViews[e];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],i=this.parser.getDependency("buffer",s.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(a){const l=s.byteOffset||0,c=s.byteLength||0,d=s.count,u=s.byteStride,g=new Uint8Array(a,l,c);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(d,u,g,s.mode,s.filter).then(function(_){return _.buffer}):o.ready.then(function(){const _=new ArrayBuffer(d*u);return o.decodeGltfBuffer(new Uint8Array(_),d,u,g,s.mode,s.filter),_})})}else return null}}class sf{constructor(e){this.name=J.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=t.meshes[r.mesh];for(const l of s.primitives)if(l.mode!==Ye.TRIANGLES&&l.mode!==Ye.TRIANGLE_STRIP&&l.mode!==Ye.TRIANGLE_FAN&&l.mode!==void 0)return null;const i=r.extensions[this.name].attributes,o=[],a={};for(const l in i)o.push(this.parser.getDependency("accessor",i[l]).then(c=>(a[l]=c,a[l])));return o.length<1?null:(o.push(this.parser.createNodeMesh(e)),Promise.all(o).then(l=>{const c=l.pop(),d=c.isGroup?c.children:[c],u=l[0].count,g=[];for(const _ of d){const m=new gt,C=new H,v=new ro,E=new H(1,1,1),S=new Cl(_.geometry,_.material,u);for(let x=0;x<u;x++)a.TRANSLATION&&C.fromBufferAttribute(a.TRANSLATION,x),a.ROTATION&&v.fromBufferAttribute(a.ROTATION,x),a.SCALE&&E.fromBufferAttribute(a.SCALE,x),S.setMatrixAt(x,m.compose(C,v,E));for(const x in a)x!=="TRANSLATION"&&x!=="ROTATION"&&x!=="SCALE"&&_.geometry.setAttribute(x,a[x]);so.prototype.copy.call(S,_),this.parser.assignFinalMaterial(S),g.push(S)}return c.isGroup?(c.clear(),c.add(...g),c):g[0]}))}}const Ra="glTF",mn=12,Hi={JSON:1313821514,BIN:5130562};class of{constructor(e){this.name=J.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,mn);if(this.header={magic:Bt.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==Ra)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const r=this.header.length-mn,s=new DataView(e,mn);let i=0;for(;i<r;){const o=s.getUint32(i,!0);i+=4;const a=s.getUint32(i,!0);if(i+=4,a===Hi.JSON){const l=new Uint8Array(e,mn+i,o);this.content=Bt.decodeText(l)}else if(a===Hi.BIN){const l=mn+i;this.body=e.slice(l,l+o)}i+=o}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class af{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=J.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const r=this.json,s=this.dracoLoader,i=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},l={},c={};for(const d in o){const u=cs[d]||d.toLowerCase();a[u]=o[d]}for(const d in e.attributes){const u=cs[d]||d.toLowerCase();if(o[d]!==void 0){const g=r.accessors[e.attributes[d]],_=rn[g.componentType];c[u]=_.name,l[u]=g.normalized===!0}}return t.getDependency("bufferView",i).then(function(d){return new Promise(function(u){s.decodeDracoFile(d,function(g){for(const _ in g.attributes){const m=g.attributes[_],C=l[_];C!==void 0&&(m.normalized=C)}u(g)},a,c)})})}}class lf{constructor(){this.name=J.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(t.texCoord===void 0||t.texCoord===e.channel)&&t.offset===void 0&&t.rotation===void 0&&t.scale===void 0||(e=e.clone(),t.texCoord!==void 0&&(e.channel=t.texCoord),t.offset!==void 0&&e.offset.fromArray(t.offset),t.rotation!==void 0&&(e.rotation=t.rotation),t.scale!==void 0&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}class cf{constructor(){this.name=J.KHR_MESH_QUANTIZATION}}class Ia extends Ul{constructor(e,t,r,s){super(e,t,r,s)}copySampleValue_(e){const t=this.resultBuffer,r=this.sampleValues,s=this.valueSize,i=e*s*3+s;for(let o=0;o!==s;o++)t[o]=r[i+o];return t}interpolate_(e,t,r,s){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=a*2,c=a*3,d=s-t,u=(r-t)/d,g=u*u,_=g*u,m=e*c,C=m-c,v=-2*_+3*g,E=_-g,S=1-v,x=E-g+u;for(let M=0;M!==a;M++){const L=o[C+M+a],y=o[C+M+l]*d,A=o[m+M+a],h=o[m+M]*d;i[M]=S*L+x*y+v*A+E*h}return i}}const uf=new ro;class df extends Ia{interpolate_(e,t,r,s){const i=super.interpolate_(e,t,r,s);return uf.fromArray(i).normalize().toArray(i),i}}const Ye={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},rn={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},$i={9728:uo,9729:pt,9984:co,9985:lo,9986:ao,9987:gs},Ki={33071:tt,33648:ho,10497:Pn},Hr={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},cs={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",...Ea>=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Et={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},hf={CUBICSPLINE:void 0,LINEAR:ws,STEP:fo},$r={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function pf(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new po({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Nl})),n.DefaultMaterial}function Vt(n,e,t){for(const r in t.extensions)n[r]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[r]=t.extensions[r])}function Mt(n,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(n.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function ff(n,e,t){let r=!1,s=!1,i=!1;for(let c=0,d=e.length;c<d;c++){const u=e[c];if(u.POSITION!==void 0&&(r=!0),u.NORMAL!==void 0&&(s=!0),u.COLOR_0!==void 0&&(i=!0),r&&s&&i)break}if(!r&&!s&&!i)return Promise.resolve(n);const o=[],a=[],l=[];for(let c=0,d=e.length;c<d;c++){const u=e[c];if(r){const g=u.POSITION!==void 0?t.getDependency("accessor",u.POSITION):n.attributes.position;o.push(g)}if(s){const g=u.NORMAL!==void 0?t.getDependency("accessor",u.NORMAL):n.attributes.normal;a.push(g)}if(i){const g=u.COLOR_0!==void 0?t.getDependency("accessor",u.COLOR_0):n.attributes.color;l.push(g)}}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l)]).then(function(c){const d=c[0],u=c[1],g=c[2];return r&&(n.morphAttributes.position=d),s&&(n.morphAttributes.normal=u),i&&(n.morphAttributes.color=g),n.morphTargetsRelative=!0,n})}function mf(n,e){if(n.updateMorphTargets(),e.weights!==void 0)for(let t=0,r=e.weights.length;t<r;t++)n.morphTargetInfluences[t]=e.weights[t];if(e.extras&&Array.isArray(e.extras.targetNames)){const t=e.extras.targetNames;if(n.morphTargetInfluences.length===t.length){n.morphTargetDictionary={};for(let r=0,s=t.length;r<s;r++)n.morphTargetDictionary[t[r]]=r}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function vf(n){let e;const t=n.extensions&&n.extensions[J.KHR_DRACO_MESH_COMPRESSION];if(t?e="draco:"+t.bufferView+":"+t.indices+":"+Kr(t.attributes):e=n.indices+":"+Kr(n.attributes)+":"+n.mode,n.targets!==void 0)for(let r=0,s=n.targets.length;r<s;r++)e+=":"+Kr(n.targets[r]);return e}function Kr(n){let e="";const t=Object.keys(n).sort();for(let r=0,s=t.length;r<s;r++)e+=t[r]+":"+n[t[r]]+";";return e}function us(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function gf(n){return n.search(/\.jpe?g($|\?)/i)>0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const wf=new gt;class bf{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new zp,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,i=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,i=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||r||s&&i<98?this.textureLoader=new io(this.options.manager):this.textureLoader=new Pl(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Cn(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const r=this,s=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()}
vendor: 5,477 bytes, line 55
55)).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(o){const a={scene:o[0][s.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:s.asset,parser:r,userData:{}};Vt(i,a,s),Mt(a,s),Promise.all(r._invokeAll(function(l){return l.afterRoot&&l.afterRoot(a)})).then(function(){e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[];for(let s=0,i=t.length;s<i;s++){const o=t[s].joints;for(let a=0,l=o.length;a<l;a++)e[o[a]].isBone=!0}for(let s=0,i=e.length;s<i;s++){const o=e[s];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(r[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,r){if(e.refs[t]<=1)return r;const s=r.clone(),i=(o,a)=>{const l=this.associations.get(o);l!=null&&this.associations.set(a,l);for(const[c,d]of o.children.entries())i(d,a.children[c])};return i(r,s),s.name+="_instance_"+e.uses[t]++,s}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let r=0;r<t.length;r++){const s=e(t[r]);if(s)return s}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const r=[];for(let s=0;s<t.length;s++){const i=e(t[s]);i&&r.push(i)}return r}getDependency(e,t){const r=e+":"+t;let s=this.cache.get(r);if(!s){switch(e){case"scene":s=this.loadScene(t);break;case"node":s=this._invokeOne(function(i){return i.loadNode&&i.loadNode(t)});break;case"mesh":s=this._invokeOne(function(i){return i.loadMesh&&i.loadMesh(t)});break;case"accessor":s=this.loadAccessor(t);break;case"bufferView":s=this._invokeOne(function(i){return i.loadBufferView&&i.loadBufferView(t)});break;case"buffer":s=this.loadBuffer(t);break;case"material":s=this._invokeOne(function(i){return i.loadMaterial&&i.loadMaterial(t)});break;case"texture":s=this._invokeOne(function(i){return i.loadTexture&&i.loadTexture(t)});break;case"skin":s=this.loadSkin(t);break;case"animation":s=this._invokeOne(function(i){return i.loadAnimation&&i.loadAnimation(t)});break;case"camera":s=this.loadCamera(t);break;default:if(s=this._invokeOne(function(i){return i!=this&&i.getDependency&&i.getDependency(e,t)}),!s)throw new Error("Unknown type: "+e);break}this.cache.add(r,s)}return s}getDependencies(e){let t=this.cache.get(e);if(!t){const r=this,s=this.json[e+(e==="mesh"?"es":"s")]||[];t=Promise.all(s.map(function(i,o){return r.getDependency(e,o)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],r=this.fileLoader;if(t.type&&t.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[J.KHR_BINARY_GLTF].body);const s=this.options;return new Promise(function(i,o){r.load(Bt.resolveURL(t.uri,s.path),i,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(r){const s=t.byteLength||0,i=t.byteOffset||0;return r.slice(i,i+s)})}loadAccessor(e){const t=this,r=this.json,s=this.json.accessors[e];if(s.bufferView===void 0&&s.sparse===void 0){const o=Hr[s.type],a=rn[s.componentType],l=s.normalized===!0,c=new a(s.count*o);return Promise.resolve(new Ee(c,o,l))}const i=[];return s.bufferView!==void 0?i.push(this.getDependency("bufferView",s.bufferView)):i.push(null),s.sparse!==void 0&&(i.push(this.getDependency("bufferView",s.sparse.indices.bufferView)),i.push(this.getDependency("bufferView",s.sparse.values.bufferView))),Promise.all(i).then(function(o){const a=o[0],l=Hr[s.type],c=rn[s.componentType],d=c.BYTES_PER_ELEMENT,u=d*l,g=s.byteOffset||0,_=s.bufferView!==void 0?r.bufferViews[s.bufferView].byteStride:void 0,m=s.normalized===!0;let C,v;if(_&&_!==u){const E=Math.floor(g/_),S="InterleavedBuffer:"+s.bufferView+":"+s.componentType+":"+E+":"+s.count;let x=t.cache.get(S);x||(C=new c(a,E*_,s.count*_/d),x=new oo(C,_/d),t.cache.add(S,x)),v=new es(x,l,g%_/d,m)}else a===null?C=new c(s.count*l):C=new c(a,g,s.count*l),v=new Ee(C,l,m);if(s.sparse!==void 0){const E=Hr.SCALAR,S=rn[s.sparse.indices.componentType],x=s.sparse.indices.byteOffset||0,M=s.sparse.values.byteOffset||0,L=new S(o[1],x,s.sparse.count*E),y=new c(o[2],M,s.sparse.count*l);a!==null&&(v=new Ee(v.array.slice(),v.itemSize,v.normalized));for(let A=0,h=L.length;A<h;A++){const b=L[A];if(v.setX(b,y[A*l]),l>=2&&v.setY(b,y[A*l+1]),l>=3&&v.setZ(b,y[A*l+2]),l>=4&&v.setW(b,y[A*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return v})}loadTexture(e){const t=this.json,r=this.options,s=t.textures[e].source,i=t.images[s];let o=this.textureLoader;if(i.uri){const a=r.manager.getHandler(i.uri);a!==null&&(o=a)}return this.loadTextureImage(e,s,o)}loadTextureImage(e,t,r){const s=this,i=this.json,o=i.textures[e],a=i.images[t],l=(a.uri||a.bufferView)+":"+o.sampler;if(this.textureCache[l])return this.textureCache[l];const c=this.loadImageSource(t,r).then(function(d){d.flipY=!1,d.name=o.name||a.name||"",d.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(d.name=a.uri);const u=(i.samplers||{})[o.sampler]||{};return d.magFilter=$i[u.magFilter]||pt,d.minFilter=$i[u.minFilter]||gs,d.wrapS=Ki[u.wrapS]||Pn,d.wrapT=Ki[u.wrapT]||Pn,s.associations.set(d,{textures:e}),d}
vendor: 8,968 bytes, line 55
55).catch(function(){return null});return this.textureCache[l]=c,c}loadImageSource(e,t){const r=this,s=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(u=>u.clone());const o=s.images[e],a=self.URL||self.webkitURL;let l=o.uri||"",c=!1;if(o.bufferView!==void 0)l=r.getDependency("bufferView",o.bufferView).then(function(u){c=!0;const g=new Blob([u],{type:o.mimeType});return l=a.createObjectURL(g),l});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(l).then(function(u){return new Promise(function(g,_){let m=g;t.isImageBitmapLoader===!0&&(m=function(C){const v=new nt(C);v.needsUpdate=!0,g(v)}),t.load(Bt.resolveURL(u,i.path),m,void 0,_)})}).then(function(u){return c===!0&&a.revokeObjectURL(l),u.userData.mimeType=o.mimeType||gf(o.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),u});return this.sourceCache[e]=d,d}assignTexture(e,t,r,s){const i=this;return this.getDependency("texture",r.index).then(function(o){if(!o)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(o=o.clone(),o.channel=r.texCoord),i.extensions[J.KHR_TEXTURE_TRANSFORM]){const a=r.extensions!==void 0?r.extensions[J.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const l=i.associations.get(o);o=i.extensions[J.KHR_TEXTURE_TRANSFORM].extendTexture(o,a),i.associations.set(o,l)}}return s!==void 0&&("colorSpace"in o?o.colorSpace=s===3001?"srgb":"srgb-linear":o.encoding=s),e[t]=o,o})}assignFinalMaterial(e){const t=e.geometry;let r=e.material;const s=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,o=t.attributes.normal===void 0;if(e.isPoints){const a="PointsMaterial:"+r.uuid;let l=this.cache.get(a);l||(l=new Tl,Pr.prototype.copy.call(l,r),l.color.copy(r.color),l.map=r.map,l.sizeAttenuation=!1,this.cache.add(a,l)),r=l}else if(e.isLine){const a="LineBasicMaterial:"+r.uuid;let l=this.cache.get(a);l||(l=new El,Pr.prototype.copy.call(l,r),l.color.copy(r.color),l.map=r.map,this.cache.add(a,l)),r=l}if(s||i||o){let a="ClonedMaterial:"+r.uuid+":";s&&(a+="derivative-tangents:"),i&&(a+="vertex-colors:"),o&&(a+="flat-shading:");let l=this.cache.get(a);l||(l=r.clone(),i&&(l.vertexColors=!0),o&&(l.flatShading=!0),s&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(a,l),this.associations.set(l,this.associations.get(r))),r=l}e.material=r}getMaterialType(){return po}loadMaterial(e){const t=this,r=this.json,s=this.extensions,i=r.materials[e];let o;const a={},l=i.extensions||{},c=[];if(l[J.KHR_MATERIALS_UNLIT]){const u=s[J.KHR_MATERIALS_UNLIT];o=u.getMaterialType(),c.push(u.extendParams(a,i,t))}else{const u=i.pbrMetallicRoughness||{};if(a.color=new Pe(1,1,1),a.opacity=1,Array.isArray(u.baseColorFactor)){const g=u.baseColorFactor;a.color.fromArray(g),a.opacity=g[3]}u.baseColorTexture!==void 0&&c.push(t.assignTexture(a,"map",u.baseColorTexture,3001)),a.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,a.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(a,"metalnessMap",u.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",u.metallicRoughnessTexture))),o=this._invokeOne(function(g){return g.getMaterialType&&g.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(g){return g.extendMaterialParams&&g.extendMaterialParams(e,a)})))}i.doubleSided===!0&&(a.side=mr);const d=i.alphaMode||$r.OPAQUE;if(d===$r.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,d===$r.MASK&&(a.alphaTest=i.alphaCutoff!==void 0?i.alphaCutoff:.5)),i.normalTexture!==void 0&&o!==Dt&&(c.push(t.assignTexture(a,"normalMap",i.normalTexture)),a.normalScale=new ot(1,1),i.normalTexture.scale!==void 0)){const u=i.normalTexture.scale;a.normalScale.set(u,u)}return i.occlusionTexture!==void 0&&o!==Dt&&(c.push(t.assignTexture(a,"aoMap",i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&o!==Dt&&(a.emissive=new Pe().fromArray(i.emissiveFactor)),i.emissiveTexture!==void 0&&o!==Dt&&c.push(t.assignTexture(a,"emissiveMap",i.emissiveTexture,3001)),Promise.all(c).then(function(){const u=new o(a);return i.name&&(u.name=i.name),Mt(u,i),t.associations.set(u,{materials:e}),i.extensions&&Vt(s,u,i),u})}createUniqueName(e){const t=Tn.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,r=this.extensions,s=this.primitiveCache;function i(a){return r[J.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,t).then(function(l){return Wi(l,a,t)})}const o=[];for(let a=0,l=e.length;a<l;a++){const c=e[a],d=vf(c),u=s[d];if(u)o.push(u.promise);else{let g;c.extensions&&c.extensions[J.KHR_DRACO_MESH_COMPRESSION]?g=i(c):g=Wi(new Ln,c,t),s[d]={primitive:c,promise:g},o.push(g)}}return Promise.all(o)}loadMesh(e){const t=this,r=this.json,s=this.extensions,i=r.meshes[e],o=i.primitives,a=[];for(let l=0,c=o.length;l<c;l++){const d=o[l].material===void 0?pf(this.cache):this.getDependency("material",o[l].material);a.push(d)}return a.push(t.loadGeometries(o)),Promise.all(a).then(function(l){const c=l.slice(0,l.length-1),d=l[l.length-1],u=[];for(let _=0,m=d.length;_<m;_++){const C=d[_],v=o[_];let E;const S=c[_];if(v.mode===Ye.TRIANGLES||v.mode===Ye.TRIANGLE_STRIP||v.mode===Ye.TRIANGLE_FAN||v.mode===void 0)E=i.isSkinnedMesh===!0?new Ml(C,S):new Je(C,S),E.isSkinnedMesh===!0&&E.normalizeSkinWeights(),v.mode===Ye.TRIANGLE_STRIP?E.geometry=Vi(E.geometry,mo):v.mode===Ye.TRIANGLE_FAN&&(E.geometry=Vi(E.geometry,ts));else if(v.mode===Ye.LINES)E=new Al(C,S);else if(v.mode===Ye.LINE_STRIP)E=new Sl(C,S);else if(v.mode===Ye.LINE_LOOP)E=new kl(C,S);else if(v.mode===Ye.POINTS)E=new Ll(C,S);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+v.mode);Object.keys(E.geometry.morphAttributes).length>0&&mf(E,i),E.name=t.createUniqueName(i.name||"mesh_"+e),Mt(E,i),v.extensions&&Vt(s,E,v),t.assignFinalMaterial(E),u.push(E)}for(let _=0,m=u.length;_<m;_++)t.associations.set(u[_],{meshes:e,primitives:_});if(u.length===1)return i.extensions&&Vt(s,u[0],i),u[0];const g=new Tr;i.extensions&&Vt(s,g,i),t.associations.set(g,{meshes:e});for(let _=0,m=u.length;_<m;_++)g.add(u[_]);return g})}loadCamera(e){let t;const r=this.json.cameras[e],s=r[r.type];if(!s){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return r.type==="perspective"?t=new Rn(fe.radToDeg(s.yfov),s.aspectRatio||1,s.znear||1,s.zfar||2e6):r.type==="orthographic"&&(t=new hr(-s.xmag,s.xmag,s.ymag,-s.ymag,s.znear,s.zfar)),r.name&&(t.name=this.createUniqueName(r.name)),Mt(t,r),Promise.resolve(t)}loadSkin(e){const t=this.json.skins[e],r=[];for(let s=0,i=t.joints.length;s<i;s++)r.push(this._loadNodeShallow(t.joints[s]));return t.inverseBindMatrices!==void 0?r.push(this.getDependency("accessor",t.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(s){const i=s.pop(),o=s,a=[],l=[];for(let c=0,d=o.length;c<d;c++){const u=o[c];if(u){a.push(u);const g=new gt;i!==null&&g.fromArray(i.array,c*16),l.push(g)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[c])}return new Rl(a,l)})}loadAnimation(e){const t=this.json.animations[e],r=t.name?t.name:"animation_"+e,s=[],i=[],o=[],a=[],l=[];for(let c=0,d=t.channels.length;c<d;c++){const u=t.channels[c],g=t.samplers[u.sampler],_=u.target,m=_.node,C=t.parameters!==void 0?t.parameters[g.input]:g.input,v=t.parameters!==void 0?t.parameters[g.output]:g.output;_.node!==void 0&&(s.push(this.getDependency("node",m)),i.push(this.getDependency("accessor",C)),o.push(this.getDependency("accessor",v)),a.push(g),l.push(_))}return Promise.all([Promise.all(s),Promise.all(i),Promise.all(o),Promise.all(a),Promise.all(l)]).then(function(c){const d=c[0],u=c[1],g=c[2],_=c[3],m=c[4],C=[];for(let v=0,E=d.length;v<E;v++){const S=d[v],x=u[v],M=g[v],L=_[v],y=m[v];if(S===void 0)continue;S.updateMatrix();let A;switch(Et[y.path]){case Et.weights:A=Vl;break;case Et.rotation:A=ri;break;case Et.position:case Et.scale:default:A=Fl;break}const h=S.name?S.name:S.uuid,b=L.interpolation!==void 0?hf[L.interpolation]:ws,f=[];Et[y.path]===Et.weights?S.traverse(function(k){k.morphTargetInfluences&&f.push(k.name?k.name:k.uuid)}):f.push(h);let P=M.array;if(M.normalized){const k=us(P.constructor),B=new Float32Array(P.length);for(let V=0,j=P.length;V<j;V++)B[V]=P[V]*k;P=B}for(let k=0,B=f.length;k<B;k++){const V=new A(f[k]+"."+Et[y.path],x.array,P,b);L.interpolation==="CUBICSPLINE"&&(V.createInterpolant=function(j){const N=this instanceof ri?df:Ia;return new N(this.times,this.values,this.getValueSize()/3,j)},V.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),C.push(V)}}return new Il(r,void 0,C)})}createNodeMesh(e){const t=this.json,r=this,s=t.nodes[e];return s.mesh===void 0?null:r.getDependency("mesh",s.mesh).then(function(i){const o=r._getNodeRef(r.meshCache,s.mesh,i);
55return s.weights!==void 0&&o.traverse(function(a){if(a.isMesh)for(let l=0,c=s.weights.length;l<c;l++)a.morphTargetInfluences[l]=s.weights[l]}),o})}loadNode(e){const t=this.json,r=this,s=t.nodes[e],i=r._loadNodeShallow(e),o=[],a=s.children||[];for(let c=0,d=a.length;c<d;c++)o.push(r.getDependency("node",a[c]));const l=s.skin===void 0?Promise.resolve(null):r.getDependency("skin",s.skin);return Promise.all([i,Promise.all(o),l]).then(function(c){const d=c[0],u=c[1],g=c[2];g!==null&&d.traverse(function(_){_.isSkinnedMesh&&_.bind(g,wf)});for(let _=0,m=u.length;_<m;_++)d.add(u[_]);return d})}_loadNodeShallow(e){const t=this.json,r=this.extensions,s=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];const i=t.nodes[e],o=i.name?s.createUniqueName(i.name):"",a=[],l=s._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(e)});return l&&a.push(l),i.camera!==void 0&&a.push(s.getDependency("camera",i.camera).then(function(c){return s._getNodeRef(s.cameraCache,i.camera,c)})),s._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(e)}).forEach(function(c){a.push(c)}),this.nodeCache[e]=Promise.all(a).then(function(c){let d;if(i.isBone===!0?d=new Ol:c.length>1?d=new Tr:c.length===1?d=c[0]:d=new so,d!==c[0])for(let u=0,g=c.length;u<g;u++)d.add(c[u]);if(i.name&&(d.userData.name=i.name,d.name=o),Mt(d,i),i.extensions&&Vt(r,d,i),i.matrix!==void 0){const u=new gt;u.fromArray(i.matrix),d.applyMatrix4(u)}else i.translation!==void 0&&d.position.fromArray(i.translation),i.rotation!==void 0&&d.quaternion.fromArray(i.rotation),i.scale!==void 0&&d.scale.fromArray(i.scale);return s.associations.has(d)||s.associations.set(d,{}),s.associations.get(d).nodes=e,d}),this.nodeCache[e]}loadScene(e){const t=this.extensions,r=this.json.scenes[e],s=this,i=new Tr;r.name&&(i.name=s.createUniqueName(r.name)),Mt(i,r),r.extensions&&Vt(t,i,r);const o=r.nodes||[],a=[];for(let l=0,c=o.length;l<c;l++)a.push(s.getDependency("node",o[l]));return Promise.all(a).then(function(l){for(let d=0,u=l.length;d<u;d++)i.add(l[d]);const c=d=>{const u=new Map;for(const[g,_]of s.associations)(g instanceof Pr||g instanceof nt)&&u.set(g,_);return d.traverse(g=>{const _=s.associations.get(g);_!=null&&u.set(g,_)}),u};return s.associations=c(i),i})}}function _f(n,e,t){const r=e.attributes,s=new bs;if(r.POSITION!==void 0){const a=t.json.accessors[r.POSITION],l=a.min,c=a.max;if(l!==void 0&&c!==void 0){if(s.set(new H(l[0],l[1],l[2]),new H(c[0],c[1],c[2])),a.normalized){const d=us(rn[a.componentType]);s.min.multiplyScalar(d),s.max.multiplyScalar(d)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const i=e.targets;if(i!==void 0){const a=new H,l=new H;for(let c=0,d=i.length;c<d;c++){const u=i[c];if(u.POSITION!==void 0){const g=t.json.accessors[u.POSITION],_=g.min,m=g.max;if(_!==void 0&&m!==void 0){if(l.setX(Math.max(Math.abs(_[0]),Math.abs(m[0]))),l.setY(Math.max(Math.abs(_[1]),Math.abs(m[1]))),l.setZ(Math.max(Math.abs(_[2]),Math.abs(m[2]))),g.normalized){const C=us(rn[g.componentType]);l.multiplyScalar(C)}a.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}s.expandByVector(a)}n.boundingBox=s;const o=new vo;s.getCenter(o.center),o.radius=s.min.distanceTo(s.max)/2,n.boundingSphere=o}function Wi(n,e,t){const r=e.attributes,s=[];function i(o,a){return t.getDependency("accessor",o).then(function(l){n.setAttribute(a,l)})}for(const o in r){const a=cs[o]||o.toLowerCase();a in n.attributes||s.push(i(r[o],a))}if(e.indices!==void 0&&!n.index){const o=t.getDependency("accessor",e.indices).then(function(a){n.setIndex(a)});s.push(o)}return Mt(n,e),_f(n,e,t),Promise.all(s).then(function(){return e.targets!==void 0?ff(n,e.targets,t):n})}new H;new wo;new H;var yf=Object.defineProperty,xf=(n,e,t)=>e in n?yf(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Zs=(n,e,t)=>(xf(n,typeof e!="symbol"?e+"":e,t),t);class Oa{constructor(e){Zs(this,"data"),this.data=e}generateShapes(e,t=100,r){const s=[],i={letterSpacing:0,lineHeight:1,...r},o=Cf(e,t,this.data,i);for(let a=0,l=o.length;a<l;a++)Array.prototype.push.apply(s,o[a].toShapes(!1));return s}}Zs(Oa,"isFont");Zs(Oa,"type");function Cf(n,e,t,r){const s=Array.from(n),i=e/t.resolution,o=(t.boundingBox.yMax-t.boundingBox.yMin+t.underlineThickness)*i,a=[];let l=0,c=0;for(let d=0;d<s.length;d++){const u=s[d];if(u===` 56`)l=0,c-=o*r.lineHeight;else{const g=Pf(u,i,l,c,t);g&&(l+=g.offsetX+r.letterSpacing,a.push(g.path))}}return a}function Pf(n,e,t,r,s){const i=s.glyphs[n]||s.glyphs["?"];if(!i){console.error('THREE.Font: character "'+n+'" does not exists in font family '+s.familyName+".");return}const o=new Xl;let a,l,c,d,u,g,_,m;if(i.o){const C=i._cachedOutline||(i._cachedOutline=i.o.split(" "));for(let v=0,E=C.length;v<E;)switch(C[v++]){case"m":a=parseInt(C[v++])*e+t,l=parseInt(C[v++])*e+r,o.moveTo(a,l);break;case"l":a=parseInt(C[v++])*e+t,l=parseInt(C[v++])*e+r,o.lineTo(a,l);break;case"q":c=parseInt(C[v++])*e+t,d=parseInt(C[v++])*e+r,u=parseInt(C[v++])*e+t,g=parseInt(C[v++])*e+r,o.quadraticCurveTo(u,g,c,d);break;case"b":c=parseInt(C[v++])*e+t,d=parseInt(C[v++])*e+r,u=parseInt(C[v++])*e+t,g=parseInt(C[v++])*e+r,_=parseInt(C[v++])*e+t,m=parseInt(C[v++])*e+r,o.bezierCurveTo(u,g,_,m,c,d);break}}return{offsetX:i.ha*e,path:o}}const Wr=new WeakMap;class Tf extends vs{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,r,s){const i=new Cn(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,o=>{const a={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};
vendor: 5,149 bytes, lines 56-57
56this.decodeGeometry(o,a).then(t).catch(s)},r,s)}decodeDracoFile(e,t,r,s){const i={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(const l in t.attributeTypes){const c=t.attributeTypes[l];c.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[l]=c.name)}const r=JSON.stringify(t);if(Wr.has(e)){const l=Wr.get(e);if(l.key===r)return l.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const i=this.workerNextTaskID++,o=e.byteLength,a=this._getWorker(i,o).then(l=>(s=l,new Promise((c,d)=>{s._callbacks[i]={resolve:c,reject:d},s.postMessage({type:"decode",id:i,taskConfig:t,buffer:e},[e])}))).then(l=>this._createGeometry(l.geometry));return a.catch(()=>!0).then(()=>{s&&i&&this._releaseTask(s,i)}),Wr.set(e,{key:r,promise:a}),a}_createGeometry(e){const t=new Ln;e.index&&t.setIndex(new Ee(e.index.array,1));for(let r=0;r<e.attributes.length;r++){const s=e.attributes[r],i=s.name,o=s.array,a=s.itemSize;t.setAttribute(i,new Ee(o,a))}return t}_loadLibrary(e,t){const r=new Cn(this.manager);return r.setPath(this.decoderPath),r.setResponseType(t),r.setWithCredentials(this.withCredentials),new Promise((s,i)=>{r.load(e,s,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(r=>{const s=r[0];e||(this.decoderConfig.wasmBinary=r[1]);const i=Ef.toString(),o=["/* draco decoder */",s,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join(` 57`);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const s=new Worker(this.workerSourceURL);s._callbacks={},s._taskCosts={},s._taskLoad=0,s.postMessage({type:"init",decoderConfig:this.decoderConfig}),s.onmessage=function(i){const o=i.data;switch(o.type){case"decode":s._callbacks[o.id].resolve(o);break;case"error":s._callbacks[o.id].reject(o);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+o.type+'"')}},this.workerPool.push(s)}else this.workerPool.sort(function(s,i){return s._taskLoad>i._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}function Ef(){let n,e;onmessage=function(o){const a=o.data;switch(a.type){case"init":n=a.decoderConfig,e=new Promise(function(d){n.onModuleLoaded=function(u){d({draco:u})},DracoDecoderModule(n)});break;case"decode":const l=a.buffer,c=a.taskConfig;e.then(d=>{const u=d.draco,g=new u.Decoder,_=new u.DecoderBuffer;_.Init(new Int8Array(l),l.byteLength);try{const m=t(u,g,_,c),C=m.attributes.map(v=>v.array.buffer);m.index&&C.push(m.index.array.buffer),self.postMessage({type:"decode",id:a.id,geometry:m},C)}catch(m){console.error(m),self.postMessage({type:"error",id:a.id,error:m.message})}finally{u.destroy(_),u.destroy(g)}});break}};function t(o,a,l,c){const d=c.attributeIDs,u=c.attributeTypes;let g,_;const m=a.GetEncodedGeometryType(l);if(m===o.TRIANGULAR_MESH)g=new o.Mesh,_=a.DecodeBufferToMesh(l,g);else if(m===o.POINT_CLOUD)g=new o.PointCloud,_=a.DecodeBufferToPointCloud(l,g);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!_.ok()||g.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+_.error_msg());const C={index:null,attributes:[]};for(const v in d){const E=self[u[v]];let S,x;if(c.useUniqueIDs)x=d[v],S=a.GetAttributeByUniqueId(g,x);else{if(x=a.GetAttributeId(g,o[d[v]]),x===-1)continue;S=a.GetAttribute(g,x)}C.attributes.push(s(o,a,g,v,E,S))}return m===o.TRIANGULAR_MESH&&(C.index=r(o,a,g)),o.destroy(g),C}function r(o,a,l){const c=l.num_faces()*3,d=c*4,u=o._malloc(d);a.GetTrianglesUInt32Array(l,d,u);const g=new Uint32Array(o.HEAPF32.buffer,u,c).slice();return o._free(u),{array:g,itemSize:1}}function s(o,a,l,c,d,u){const g=u.num_components(),_=l.num_points()*g,m=_*d.BYTES_PER_ELEMENT,C=i(o,d),v=o._malloc(m);a.GetAttributeDataArrayForAllPoints(l,u,C,m,v);const E=new d(o.HEAPF32.buffer,v,_).slice();return o._free(v),{name:c,array:E,itemSize:g}}function i(o,a){switch(a){case Float32Array:return o.DT_FLOAT32;case Int8Array:return o.DT_INT8;case Int16Array:return o.DT_INT16;case Int32Array:return o.DT_INT32;case Uint8Array:return o.DT_UINT8;case Uint16Array:return o.DT_UINT16;case Uint32Array:return o.DT_UINT32}}}class kn extends Je{constructor(e,t={}){super(e),this.isReflector=!0,this.type="Reflector",this.camera=new Rn;
57const r=this,s=t.color!==void 0?new Pe(t.color):new Pe(8355711),i=t.textureWidth||512,o=t.textureHeight||512,a=t.clipBias||0,l=t.shader||kn.ReflectorShader,c=t.multisample!==void 0?t.multisample:4,d=new bo,u=new H,g=new H,_=new H,m=new gt,C=new H(0,0,-1),v=new jt,E=new H,S=new H,x=new jt,M=new gt,L=this.camera,y=new ms(i,o,{samples:c,type:pr}),A=new Rt({name:l.name!==void 0?l.name:"unspecified",uniforms:_s.clone(l.uniforms),fragmentShader:l.fragmentShader,vertexShader:l.vertexShader});A.uniforms.tDiffuse.value=y.texture,A.uniforms.color.value=s,A.uniforms.textureMatrix.value=M,this.material=A,this.onBeforeRender=function(h,b,f){if(g.setFromMatrixPosition(r.matrixWorld),_.setFromMatrixPosition(f.matrixWorld),m.extractRotation(r.matrixWorld),u.set(0,0,1),u.applyMatrix4(m),E.subVectors(g,_),E.dot(u)>0)return;E.reflect(u).negate(),E.add(g),m.extractRotation(f.matrixWorld),C.set(0,0,-1),C.applyMatrix4(m),C.add(_),S.subVectors(g,C),S.reflect(u).negate(),S.add(g),L.position.copy(E),L.up.set(0,1,0),L.up.applyMatrix4(m),L.up.reflect(u),L.lookAt(S),L.far=f.far,L.updateMatrixWorld(),L.projectionMatrix.copy(f.projectionMatrix),M.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),M.multiply(L.projectionMatrix),M.multiply(L.matrixWorldInverse),M.multiply(r.matrixWorld),d.setFromNormalAndCoplanarPoint(u,g),d.applyMatrix4(L.matrixWorldInverse),v.set(d.normal.x,d.normal.y,d.normal.z,d.constant);const P=L.projectionMatrix;x.x=(Math.sign(v.x)+P.elements[8])/P.elements[0],x.y=(Math.sign(v.y)+P.elements[9])/P.elements[5],x.z=-1,x.w=(1+P.elements[10])/P.elements[14],v.multiplyScalar(2/v.dot(x)),P.elements[2]=v.x,P.elements[6]=v.y,P.elements[10]=v.z+1-a,P.elements[14]=v.w,r.visible=!1;const k=h.getRenderTarget(),B=h.xr.enabled,V=h.shadowMap.autoUpdate;h.xr.enabled=!1,h.shadowMap.autoUpdate=!1,h.setRenderTarget(y),h.state.buffers.depth.setMask(!0),h.autoClear===!1&&h.clear(),h.render(b,L),h.xr.enabled=B,h.shadowMap.autoUpdate=V,h.setRenderTarget(k);const j=f.viewport;j!==void 0&&h.state.viewport(j),r.visible=!0},this.getRenderTarget=function(){return y},this.dispose=function(){y.dispose(),r.material.dispose()}}}kn.ReflectorShader={name:"ReflectorShader",uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:` 58 uniform mat4 textureMatrix; 59 varying vec4 vUv; 60 61 #include <common> 62 #include <logdepthbuf_pars_vertex> 63 64 void main() { 65 66 vUv = textureMatrix * vec4( position, 1.0 ); 67 68 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 69 70 #include <logdepthbuf_vertex> 71 72 }`,fragmentShader:` 73 uniform vec3 color; 74 uniform sampler2D tDiffuse; 75 varying vec4 vUv; 76 77 #include <logdepthbuf_pars_fragment> 78 79 float blendOverlay( float base, float blend ) { 80 81 return( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) ); 82 83 } 84 85 vec3 blendOverlay( vec3 base, vec3 blend ) { 86 87 return vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) ); 88 89 } 90 91 void main() { 92 93 #include <logdepthbuf_fragment> 94 95 vec4 base = texture2DProj( tDiffuse, vUv ); 96 gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 ); 97 98 #include <tonemapping_fragment> 99 #include <colorspace_fragment> 100 101 }`};const Mf=["args","material-uniforms-color-value"],Af=F("TresPlaneGeometry",{args:[5,5]},null,-1);kn.ReflectorShader;typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;class ur extends Je{constructor(){super(ur.Geometry,new Dt({opacity:0,transparent:!0})),this.isLensflare=!0,this.type="Lensflare",this.frustumCulled=!1,this.renderOrder=1/0;const e=new H,t=new H,r=new si(16,16),s=new si(16,16);let i=xn;const o=ur.Geometry,a=new Er({uniforms:{scale:{value:null},screenPosition:{value:null}},vertexShader:` 102 103 precision highp float; 104 105 uniform vec3 screenPosition; 106 uniform vec2 scale; 107 108 attribute vec3 position; 109 110 void main() { 111 112 gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 ); 113 114 }`,fragmentShader:` 115 116 precision highp float; 117 118 void main() { 119 120 gl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 ); 121 122 }`,depthTest:!0,depthWrite:!1,transparent:!1}),l=new Er({uniforms:{map:{value:r},scale:{value:null},screenPosition:{value:null}},vertexShader:` 123 124 precision highp float; 125 126 uniform vec3 screenPosition; 127 uniform vec2 scale; 128 129 attribute vec3 position; 130 attribute vec2 uv; 131 132 varying vec2 vUV; 133 134 void main() { 135 136 vUV = uv; 137 138 gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 ); 139 140 }`,fragmentShader:` 141 142 precision highp float; 143 144 uniform sampler2D map; 145 146 varying vec2 vUV; 147 148 void main() { 149 150 gl_FragColor = texture2D( map, vUV ); 151 152 }`,depthTest:!1,depthWrite:!1,transparent:!1}),c=new Je(o,a),d=[],u=Fa.Shader,g=new Er({name:u.name,uniforms:{map:{value:null},occlusionMap:{value:s},color:{value:new Pe(16777215)},scale:{value:new ot},screenPosition:{value:new H}},vertexShader:u.vertexShader,fragmentShader:u.fragmentShader,blending:Hl,transparent:!0,depthWrite:!1}),_=new Je(o,g);this.addElement=function(S){d.push(S)};const m=new ot,C=new ot,v=new $l,E=new jt;this.onBeforeRender=function(S,x,M){S.getCurrentViewport(E);const L=S.getRenderTarget(),y=L!==null?L.texture.type:xn;i!==y&&(r.dispose(),s.dispose(),r.type=s.type=y,i=y);const A=E.w/E.z,h=E.z/2,b=E.w/2;let f=16/E.w;if(m.set(f*A,f),v.min.set(E.x,E.y),v.max.set(E.x+(E.z-16),E.y+(E.w-16)),t.setFromMatrixPosition(this.matrixWorld),t.applyM
152atrix4(M.matrixWorldInverse),!(t.z>0)&&(e.copy(t).applyMatrix4(M.projectionMatrix),C.x=E.x+e.x*h+h-8,C.y=E.y+e.y*b+b-8,v.containsPoint(C))){S.copyFramebufferToTexture(C,r);let P=a.uniforms;P.scale.value=m,P.screenPosition.value=e,S.renderBufferDirect(M,null,o,a,c,null),S.copyFramebufferToTexture(C,s),P=l.uniforms,P.scale.value=m,P.screenPosition.value=e,S.renderBufferDirect(M,null,o,l,c,null);const k=-e.x*2,B=-e.y*2;for(let V=0,j=d.length;V<j;V++){const N=d[V],K=g.uniforms;K.color.value.copy(N.color),K.map.value=N.texture,K.screenPosition.value.x=e.x+k*N.distance,K.screenPosition.value.y=e.y+B*N.distance,f=N.size/E.w;const le=E.w/E.z;K.scale.value.set(f*le,f),g.uniformsNeedUpdate=!0,S.renderBufferDirect(M,null,o,g,_,null)}}},this.dispose=function(){a.dispose(),l.dispose(),g.dispose(),r.dispose(),s.dispose();for(let S=0,x=d.length;S<x;S++)d[S].texture.dispose()}}}class Fa{constructor(e,t=1,r=0,s=new Pe(16777215)){this.texture=e,this.size=t,this.distance=r,this.color=s}}Fa.Shader={name:"LensflareElementShader",uniforms:{map:{value:null},occlusionMap:{value:null},color:{value:null},scale:{value:null},screenPosition:{value:null}},vertexShader:` 153 154 precision highp float; 155 156 uniform vec3 screenPosition; 157 uniform vec2 scale; 158 159 uniform sampler2D occlusionMap; 160 161 attribute vec3 position; 162 attribute vec2 uv; 163 164 varying vec2 vUV; 165 varying float vVisibility; 166 167 void main() { 168 169 vUV = uv; 170 171 vec2 pos = position.xy; 172 173 vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) ); 174 visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) ); 175 visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) ); 176 visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) ); 177 visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) ); 178 visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) ); 179 visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) ); 180 visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) ); 181 visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) ); 182 183 vVisibility = visibility.r / 9.0; 184 vVisibility *= 1.0 - visibility.g / 9.0; 185 vVisibility *= visibility.b / 9.0; 186 187 gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 ); 188 189 }`,fragmentShader:` 190 191 precision highp float; 192 193 uniform sampler2D map; 194 uniform vec3 color; 195 196 varying vec2 vUV; 197 varying float vVisibility; 198 199 void main() { 200 201 vec4 texture = texture2D( map, vUV ); 202 texture.a *= vVisibility; 203 gl_FragColor = texture; 204 gl_FragColor.rgb *= color; 205 206 }`};ur.Geometry=(function(){const n=new Ln,e=new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,1,1,0,1,1,-1,1,0,0,1]),t=new oo(e,5);return n.setIndex([0,1,2,0,2,3]),n.setAttribute("position",new es(t,3,0,!1)),n.setAttribute("uv",new es(t,2,3,!1)),n})();fe.clamp;fe.lerp;let Ut=null;function Sf(n,e){return t=>{e&&e(t),n.draco&&(Ut||(Ut=new Tf),Ut.setDecoderPath(n.decoderPath||"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),t.setDRACOLoader(Ut))}}async function Va(n,e={draco:!1},t){const r=await kc(jp,n,Sf(e,t));return Ut?.dispose(),Ut=null,r}var qr;/Mac/.test((qr=globalThis?.navigator)===null||qr===void 0?void 0:qr.platform);var kf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xn(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Lf={exports:{}};(function(n,e){(function(t){n.exports=t()})(function(){return(function t(r,s,i){function o(c,d){if(!s[c]){if(!r[c]){var u=typeof Xn=="function"&&Xn;if(!d&&u)return u(c,!0);if(a)return a(c,!0);throw new Error("Cannot find module '"+c+"'")}d=s[c]={exports:{}},r[c][0].call(d.exports,function(g){var _=r[c][1][g];return o(_||g)},d,d.exports,t,r,s,i)}return s[c].exports}for(var a=typeof Xn=="function"&&Xn,l=0;l<i.length;l++)o(i[l]);return o}
vendor: 42,471 bytes, lines 206-264
206)({1:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){var m=t("crypto");function C(y,A){A=S(y,A);var h;return(h=A.algorithm!=="passthrough"?m.createHash(A.algorithm):new L).write===void 0&&(h.write=h.update,h.end=h.update),M(A,h).dispatch(y),h.update||h.end(""),h.digest?h.digest(A.encoding==="buffer"?void 0:A.encoding):(y=h.read(),A.encoding!=="buffer"?y.toString(A.encoding):y)}(s=r.exports=C).sha1=function(y){return C(y)},s.keys=function(y){return C(y,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},s.MD5=function(y){return C(y,{algorithm:"md5",encoding:"hex"})},s.keysMD5=function(y){return C(y,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var v=m.getHashes?m.getHashes().slice():["sha1","md5"],E=(v.push("passthrough"),["buffer","hex","binary","base64"]);function S(y,A){var h={};if(h.algorithm=(A=A||{}).algorithm||"sha1",h.encoding=A.encoding||"hex",h.excludeValues=!!A.excludeValues,h.algorithm=h.algorithm.toLowerCase(),h.encoding=h.encoding.toLowerCase(),h.ignoreUnknown=A.ignoreUnknown===!0,h.respectType=A.respectType!==!1,h.respectFunctionNames=A.respectFunctionNames!==!1,h.respectFunctionProperties=A.respectFunctionProperties!==!1,h.unorderedArrays=A.unorderedArrays===!0,h.unorderedSets=A.unorderedSets!==!1,h.unorderedObjects=A.unorderedObjects!==!1,h.replacer=A.replacer||void 0,h.excludeKeys=A.excludeKeys||void 0,y===void 0)throw new Error("Object argument required.");for(var b=0;b<v.length;++b)v[b].toLowerCase()===h.algorithm.toLowerCase()&&(h.algorithm=v[b]);if(v.indexOf(h.algorithm)===-1)throw new Error('Algorithm "'+h.algorithm+'" not supported. supported values: '+v.join(", "));if(E.indexOf(h.encoding)===-1&&h.algorithm!=="passthrough")throw new Error('Encoding "'+h.encoding+'" not supported. supported values: '+E.join(", "));return h}function x(y){if(typeof y=="function")return/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(y))!=null}function M(y,A,h){h=h||[];function b(f){return A.update?A.update(f,"utf8"):A.write(f,"utf8")}return{dispatch:function(f){return this["_"+((f=y.replacer?y.replacer(f):f)===null?"null":typeof f)](f)},_object:function(f){var P,k=Object.prototype.toString.call(f),B=/\[object (.*)\]/i.exec(k);if(B=(B=B?B[1]:"unknown:["+k+"]").toLowerCase(),0<=(k=h.indexOf(f)))return this.dispatch("[CIRCULAR:"+k+"]");if(h.push(f),a!==void 0&&a.isBuffer&&a.isBuffer(f))return b("buffer:"),b(f);if(B==="object"||B==="function"||B==="asyncfunction")return k=Object.keys(f),y.unorderedObjects&&(k=k.sort()),y.respectType===!1||x(f)||k.splice(0,0,"prototype","__proto__","constructor"),y.excludeKeys&&(k=k.filter(function(V){return!y.excludeKeys(V)})),b("object:"+k.length+":"),P=this,k.forEach(function(V){P.dispatch(V),b(":"),y.excludeValues||P.dispatch(f[V]),b(",")});if(!this["_"+B]){if(y.ignoreUnknown)return b("["+B+"]");throw new Error('Unknown object type "'+B+'"')}this["_"+B](f)},_array:function(f,V){V=V!==void 0?V:y.unorderedArrays!==!1;var k=this;if(b("array:"+f.length+":"),!V||f.length<=1)return f.forEach(function(j){return k.dispatch(j)});var B=[],V=f.map(function(j){var N=new L,K=h.slice();return M(y,N,K).dispatch(j),B=B.concat(K.slice(h.length)),N.read().toString()});return h=h.concat(B),V.sort(),this._array(V,!1)},_date:function(f){return b("date:"+f.toJSON())},_symbol:function(f){return b("symbol:"+f.toString())},_error:function(f){return b("error:"+f.toString())},_boolean:function(f){return b("bool:"+f.toString())},_string:function(f){b("string:"+f.length+":"),b(f.toString())},_function:function(f){b("fn:"),x(f)?this.dispatch("[native]"):this.dispatch(f.toString()),y.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(f.name)),y.respectFunctionProperties&&this._object(f)},_number:function(f){return b("number:"+f.toString())},_xml:function(f){return b("xml:"+f.toString())},_null:function(){return b("Null")},_undefined:function(){return b("Undefined")},_regexp:function(f){return b("regex:"+f.toString())},_uint8array:function(f){return b("uint8array:"),this.dispatch(Array.prototype.slice.call(f))},_uint8clampedarray:function(f){return b("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(f))},_int8array:function(f){return b("int8array:"),this.dispatch(Array.prototype.slice.call(f))},_uint16array:function(f){return b("uint16array:"),this.dispatch(Array.prototype.slice.call(f))},_int16array:function(f){return b("int16array:"),this.dispatch(Array.prototype.slice.call(f))},_uint32array:function(f){return b("uint32array:"),this.dispatch(Array.prototype.slice.call(f))},_int32array:function(f){return b("int32array:"),this.dispatch(Array.prototype.slice.call(f))},_float32array:function(f){return b("float32array:"),this.dispatch(Array.prototype.slice.call(f))},_float64array:function(f){return b("float64array:"),this.dispatch(Array.prototype.slice.call(f))},_arraybuffer:function(f){return b("arraybuffer:"),this.dispatch(new Uint8Array(f))},_url:function(f){return b("url:"+f.toString())},_map:function(f){return b("map:"),f=Array.from(f),this._array(f,y.unorderedSets!==!1)},_set:function(f){return b("set:"),f=Array.from(f),this._array(f,y.unorderedSets!==!1)},_file:function(f){return b("file:"),this.dispatch([f.name,f.size,f.type,f.lastModfied])},_blob:function(){if(y.ignoreUnknown)return b("[blob]");throw Error(`Hashing Blob objects is currently not supported 207(see https://github.com/puleos/object-hash/issues/26) 208Use "options.replacer" or "options.ignoreUnknown" 209`)},_domwindow:function(){return b("domwindow")},_bigint:function(f){return b("bigint:"+f.toString())},_process:function(){return b("process")},_timer:function(){return b("timer")},_pipe:function(){return b("pipe")},_tcp:function(){return b("tcp")},_udp:function(){return b("udp")},_tty:function(){return b("tty")},_statwatcher:function(){return b("statwatcher")},_securecontext:function(){return b("securecontext")},_connection:function(){return b("connection")},_zlib:function(){return b("zlib")},_context:function(){return b("context")},_nodescript:function(){return b("nodescript")},_httpparser:function(){return b("httpparser")},_dataview:function(){return b("dataview")},_signal:function(){return b("signal")},_fsevent:function(){return b("fsevent")},_tlswrap:function(){return b("tlswrap")}}}function L(){return{buf:"",write:function(y){this.buf+=y},end:function(y){this.buf+=y},read:function(){return this.buf}}}s.writeToStream=function(y,A,h){return h===void 0&&(h=A,A={}),M(A=S(y,A),h).dispatch(y)}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){(function(m){var C=typeof Uint8Array<"u"?Uint8Array:Array,v=43,E=47,S=48,x=97,M=65,L=45,y=95;function A(h){return h=h.charCodeAt(0),h===v||h===L?62:h===E||h===y?63:h<S?-1:h<S+10?h-S+26+26:h<M+26?h-M:h<x+26?h-x+26:void 0}m.toByteArray=function(h){var b,f;if(0<h.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var P=h.length,P=h.charAt(P-2)==="="?2:h.charAt(P-1)==="="?1:0,k=new C(3*h.length/4-P),B=0<P?h.length-4:h.length,V=0;function j(N){k[V++]=N}for(b=0;b<B;b+=4,0)j((16711680&(f=A(h.charAt(b))<<18|A(h.charAt(b+1))<<12|A(h.charAt(b+2))<<6|A(h.charAt(b+3))))>>16),j((65280&f)>>8),j(255&f);return P==2?j(255&(f=A(h.charAt(b))<<2|A(h.charAt(b+1))>>4)):P==1&&(j((f=A(h.charAt(b))<<10|A(h.charAt(b+1))<<4|A(h.charAt(b+2))>>2)>>8&255),j(255&f)),k},m.fromByteArray=function(h){var b,f,P,k,B=h.length%3,V="";function j(N){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(N)}for(b=0,P=h.length-B;b<P;b+=3)f=(h[b]<<16)+(h[b+1]<<8)+h[b+2],V+=j((k=f)>>18&63)+j(k>>12&63)+j(k>>6&63)+j(63&k);switch(B){case 1:V=(V+=j((f=h[h.length-1])>>2))+j(f<<4&63)+"==";break;case 2:V=(V=(V+=j((f=(h[h.length-2]<<8)+h[h.length-1])>>10))+j(f>>4&63))+j(f<<2&63)+"="}return V}})(s===void 0?this.base64js={}:s)}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(t,r,s){(function(i,o,v,l,c,d,u,g,_){var m=t("base64-js"),C=t("ieee754");function v(p,w,T){if(!(this instanceof v))return new v(p,w,T);var R,I,D,G,Z=typeof p;if(w==="base64"&&Z=="string")for(p=(G=p).trim?G.trim():G.replace(/^\s+|\s+$/g,"");p.length%4!=0;)p+="=";if(Z=="number")R=le(p);else if(Z=="string")R=v.byteLength(p,w);else{if(Z!="object")throw new Error("First argument needs to be a number, array or string.");R=le(p.length)}if(v._useTypedArrays?I=v._augment(new Uint8Array(R)):((I=this).length=R,I._isBuffer=!0),v._useTypedArrays&&typeof p.byteLength=="number")I._set(p);else if(te(G=p)||v.isBuffer(G)||G&&typeof G=="object"&&typeof G.length=="number")for(D=0;D<R;D++)v.isBuffer(p)?I[D]=p.readUInt8(D):I[D]=p[D];else if(Z=="string")I.write(p,0,w);else if(Z=="number"&&!v._useTypedArrays&&!T)for(D=0;D<R;D++)I[D]=0;return I}function E(p,w,T,R){return v._charsWritten=De((function(I){for(var D=[],G=0;G<I.length;G++)D.push(255&I.charCodeAt(G));return D})(w),p,T,R)}function S(p,w,T,R){return v._charsWritten=De((function(I){for(var D,G,Z=[],X=0;X<I.length;X++)G=I.charCodeAt(X),D=G>>8,G=G%256,Z.push(G),Z.push(D);return Z})(w),p,T,R)}function x(p,w,T){var R="";T=Math.min(p.length,T);for(var I=w;I<T;I++)R+=String.fromCharCode(p[I]);return R}function M(p,w,T,D){D||(U(typeof T=="boolean","missing or invalid endian"),U(w!=null,"missing offset"),U(w+1<p.length,"Trying to read beyond buffer length"));var I,D=p.length;if(!(D<=w))return T?(I=p[w],w+1<D&&(I|=p[w+1]<<8)):(I=p[w]<<8,w+1<D&&(I|=p[w+1])),I}function L(p,w,T,D){D||(U(typeof T=="boolean","missing or invalid endian"),U(w!=null,"missing offset"),U(w+3<p.length,"Trying to read beyond buffer length"));var I,D=p.length;if(!(D<=w))return T?(w+2<D&&(I=p[w+2]<<16),w+1<D&&(I|=p[w+1]<<8),I|=p[w],w+3<D&&(I+=p[w+3]<<24>>>0)):(w+1<D&&(I=p[w+1]<<16),w+2<D&&(I|=p[w+2]<<8),w+3<D&&(I|=p[w+3]),I+=p[w]<<24>>>0),I}function y(p,w,T,R){if(R||(U(typeof T=="boolean","missing or invalid endian"),U(w!=null,"missing offset"),U(w+1<p.length,"Trying to read beyond buffer length")),!(p.length<=w))return R=M(p,w,T,!0),32768&R?-1*(65535-R+1):R}function A(p,w,T,R){if(R||(U(typeof T=="boolean","missing or invalid endian"),U(w!=null,"missing offset"),U(w+3<p.length,"Trying to read beyond buffer length")),!(p.length<=w))return R=L(p,w,T,!0),2147483648&R?-1*(4294967295-R+1):R}function h(p,w,T,R){return R||(U(typeof T=="boolean","missing or invalid endian"),U(w+3<p.length,"Trying to read beyond buffer length")),C.read(p,w,T,23,4)}function b(p,w,T,R){return R||(U(typeof T=="boolean","missing or invalid endian"),U(w+7<p.length,"Trying to read beyond buffer length")),C.read(p,w,T,52,8)}function f(p,w,T,R,I){if(I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+1<p.length,"trying to write beyond buffer length"),Ge(w,65535)),I=p.length,!(I<=T))for(var D=0,G=Math.min(I-T,2);D<G;D++)p[T+D]=(w&255<<8*(R?D:1-D))>>>8*(R?D:1-D)}function P(p,w,T,R,I){if(I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+3<p.length,"trying to write beyond buffer length"),Ge(w,4294967295)),I=p.length,!(I<=T))for(var D=0,G=Math.min(I-T,4);D<G;D++)p[T+D]=w>>>8*(R?D:3-D)&255}function k(p,w,T,R,I){I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+1<p.length,"Trying to write beyond buffer length"),He(w,32767,-32768)),p.length<=T||f(p,0<=w?w:65535+w+1,T,R,I)}function B(p,w,T,R,I){I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+3<p.length,"Trying to write beyond buffer length"),He(w,2147483647,-2147483648)),p.length<=T||P(p,0<=w?w:4294967295+w+1,T,R,I)}function V(p,w,T,R,I){I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+3<p.length,"Trying to write beyond buffer length"),ne(w,34028234663852886e22,-34028234663852886e22)),p.length<=T||C.write(p,w,T,R,23,4)}function j(p,w,T,R,I){I||(U(w!=null,"missing value"),U(typeof R=="boolean","missing or invalid endian"),U(T!=null,"missing offset"),U(T+7<p.length,"Trying to write beyond buffer length"),ne(w,17976931348623157e292,-17976931348623157e292)),p.length<=T||C.write(p,w,T,R,52,8)}s.Buffer=v,s.SlowBuffer=v,s.INSPECT_MAX_BYTES=50,v.poolSize=8192,v._useTypedArrays=(function(){try{var p=new ArrayBuffer(0),w=new Uint8Array(p);return w.foo=function(){return 42},w.foo()===42&&typeof w.subarray=="function"}catch{return!1}})(),v.isEncoding=function(p){switch(String(p).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},v.isBuffer=function(p){return!(p==null||!p._isBuffer)},v.byteLength=function(p,w){var T;switch(p+="",w||"utf8"){case"hex":T=p.length/2;break;case"utf8":case"utf-8":T=Le(p).length;break;case"ascii":case"binary":case"raw":T=p.length;break;case"base64":T=dt(p).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":T=2*p.length;break;default:throw new Error("Unknown encoding")}return T},v.concat=function(p,w){if(U(te(p),`Usage: Buffer.concat(list, [totalLength]) 210list should be an Array.`),p.length===0)return new v(0);if(p.length===1)return p[0];if(typeof w!="number")for(I=w=0;I<p.length;I++)w+=p[I].length;for(var T=new v(w),R=0,I=0;I<p.length;I++){var D=p[I];D.copy(T,R),R+=D.length}return T},v.prototype.write=function(p,w,T,R){isFinite(w)?isFinite(T)||(R=T,T=void 0):(X=R,R=w,w=T,T=X),w=Number(w)||0;var I,D,G,Z,X=this.length-w;switch((!T||X<(T=Number(T)))&&(T=X),R=String(R||"utf8").toLowerCase()){case"hex":I=(function(ge,_e,Se,ye){Se=Number(Se)||0;var we=ge.length-Se;(!ye||we<(ye=Number(ye)))&&(ye=we),U((we=_e.length)%2==0,"Invalid hex string"),we/2<ye&&(ye=we/2);for(var yt=0;yt<ye;yt++){var jn=parseInt(_e.substr(2*yt,2),16);U(!isNaN(jn),"Invalid hex string"),ge[Se+yt]=jn}return v._charsWritten=2*yt,yt})(this,p,w,T);break;case"utf8":case"utf-8":D=this,G=w,Z=T,I=v._charsWritten=De(Le(p),D,G,Z);break;case"ascii":case"binary":I=E(this,p,w,T);break;case"base64":D=this,G=w,Z=T,I=v._charsWritten=De(dt(p),D,G,Z);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":I=S(this,p,w,T);break;default:throw new Error("Unknown encoding")}return I},v.prototype.toString=function(p,w,T){var R,I,D,G,Z=this;if(p=String(p||"utf8").toLowerCase(),w=Number(w)||0,(T=T!==void 0?Number(T):Z.length)===w)return"";switch(p){case"hex":R=(function(X,ge,_e){var Se=X.length;(!ge||ge<0)&&(ge=0),(!_e||_e<0||Se<_e)&&(_e=Se);for(var ye="",we=ge;we<_e;we++)ye+=Y(X[we]);return ye})(Z,w,T);break;case"utf8":case"utf-8":R=(function(X,ge,_e){var Se="",ye="";_e=Math.min(X.length,_e);for(var we=ge;we<_e;we++)X[we]<=127?(Se+=ve(ye)+String.fromCharCode(X[we]),ye=""):ye+="%"+X[we].toString(16);return Se+ve(ye)})(Z,w,T);break;case"ascii":case"binary":R=x(Z,w,T);break;case"base64":I=Z,G=T,R=(D=w)===0&&G===I.length?m.fromByteArray(I):m.fromByteArray(I.slice(D,G));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":R=(function(X,ge,_e){for(var Se=X.slice(ge,_e),ye="",we=0;we<Se.length;we+=2)ye+=String.fromCharCode(Se[we]+256*Se[we+1]);return ye})(Z,w,T);break;default:throw new Error("Unknown encoding")}return R},v.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},v.prototype.copy=function(p,w,T,R){if(w=w||0,(R=R||R===0?R:this.length)!==(T=T||0)&&p.length!==0&&this.length!==0){U(T<=R,"sourceEnd < sourceStart"),U(0<=w&&w<p.length,"targetStart out of bounds"),U(0<=T&&T<this.length,"sourceStart out of bounds"),U(0<=R&&R<=this.length,"sourceEnd out of bounds"),R>this.length&&(R=this.length);var I=(R=p.length-w<R-T?p.length-w+T:R)-T;if(I<100||!v._useTypedArrays)for(var D=0;D<I;D++)p[D+w]=this[D+T];else p._set(this.subarray(T,T+I),w)}},v.prototype.slice=function(p,w){var T=this.length;if(p=K(p,T,0),w=K(w,T,T),v._useTypedArrays)return v._augment(this.subarray(p,w));for(var R=w-p,I=new v(R,void 0,!0),D=0;D<R;D++)I[D]=this[D+p];return I},v.prototype.get=function(p){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(p)},v.prototype.set=function(p,w){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(p,w)},v.prototype.readUInt8=function(p,w){if(w||(U(p!=null,"missing offset"),U(p<this.length,"Trying to read beyond buffer length")),!(p>=this.length))return this[p]},v.prototype.readUInt16LE=function(p,w){return M(this,p,!0,w)},v.prototype.readUInt16BE=function(p,w){return M(this,p,!1,w)},v.prototype.readUInt32LE=function(p,w){return L(this,p,!0,w)},v.prototype.readUInt32BE=function(p,w){return L(this,p,!1,w)},v.prototype.readInt8=function(p,w){if(w||(U(p!=null,"missing offset"),U(p<this.length,"Trying to read beyond buffer length")),!(p>=this.length))return 128&this[p]?-1*(255-this[p]+1):this[p]},v.prototype.readInt16LE=function(p,w){return y(this,p,!0,w)},v.prototype.readInt16BE=function(p,w){return y(this,p,!1,w)},v.prototype.readInt32LE=function(p,w){return A(this,p,!0,w)},v.prototype.readInt32BE=function(p,w){return A(this,p,!1,w)},v.prototype.readFloatLE=function(p,w){return h(this,p,!0,w)},v.prototype.readFloatBE=function(p,w){return h(this,p,!1,w)},v.prototype.readDoubleLE=function(p,w){return b(this,p,!0,w)},v.prototype.readDoubleBE=function(p,w){return b(this,p,!1,w)},v.prototype.writeUInt8=function(p,w,T){T||(U(p!=null,"missing value"),U(w!=null,"missing offset"),U(w<this.length,"trying to write beyond buffer length"),Ge(p,255)),w>=this.length||(this[w]=p)},v.prototype.writeUInt16LE=function(p,w,T){f(this,p,w,!0,T)},v.prototype.writeUInt16BE=function(p,w,T){f(this,p,w,!1,T)},v.prototype.writeUInt32LE=function(p,w,T){P(this,p,w,!0,T)},v.prototype.writeUInt32BE=function(p,w,T){P(this,p,w,!1,T)},v.prototype.writeInt8=function(p,w,T){T||(U(p!=null,"missing value"),U(w!=null,"missing offset"),U(w<this.length,"Trying to write beyond buffer length"),He(p,127,-128)),w>=this.length||(0<=p?this.writeUInt8(p,w,T):this.writeUInt8(255+p+1,w,T))},v.prototype.writeInt16LE=function(p,w,T){k(this,p,w,!0,T)},v.prototype.writeInt16BE=function(p,w,T){k(this,p,w,!1,T)},v.prototype.writeInt32LE=function(p,w,T){B(this,p,w,!0,T)},v.prototype.writeInt32BE=function(p,w,T){B(this,p,w,!1,T)},v.prototype.writeFloatLE=function(p,w,T){V(this,p,w,!0,T)},v.prototype.writeFloatBE=function(p,w,T){V(this,p,w,!1,T)},v.prototype.writeDoubleLE=function(p,w,T){j(this,p,w,!0,T)},v.prototype.writeDoubleBE=function(p,w,T){j(this,p,w,!1,T)},v.prototype.fill=function(p,w,T){if(w=w||0,T=T||this.length,U(typeof(p=typeof(p=p||0)=="string"?p.charCodeAt(0):p)=="number"&&!isNaN(p),"value is not a number"),U(w<=T,"end < start"),T!==w&&this.length!==0){U(0<=w&&w<this.length,"start out of bounds"),U(0<=T&&T<=this.length,"end out of bounds");for(var R=w;R<T;R++)this[R]=p}},v.prototype.inspect=function(){for(var p=[],w=this.length,T=0;T<w;T++)if(p[T]=Y(this[T]),T===s.INSPECT_MAX_BYTES){p[T+1]="...";break}return"<Buffer "+p.join(" ")+">"},v.prototype.toArrayBuffer=function(){if(typeof Uint8Array>"u")throw new Error("Buffer.toArrayBuffer not supported in this browser");if(v._useTypedArrays)return new v(this).buffer;for(var p=new Uint8Array(this.length),w=0,T=p.length;w<T;w+=1)p[w]=this[w];return p.buffer};var N=v.prototype;function K(p,w,T){return typeof p!="number"?T:w<=(p=~~p)?w:0<=p||0<=(p+=w)?p:0}function le(p){return(p=~~Math.ceil(+p))<0?0:p}function te(p){return(Array.isArray||function(w){return Object.prototype.toString.call(w)==="[object Array]"})(p)}function Y(p){return p<16?"0"+p.toString(16):p.toString(16)}function Le(p){for(var w=[],T=0;T<p.length;T++){var R=p.charCodeAt(T);if(R<=127)w.push(p.charCodeAt(T));else for(var I=T,D=(55296<=R&&R<=57343&&T++,encodeURIComponent(p.slice(I,T+1)).substr(1).split("%")),G=0;G<D.length;G++)w.push(parseInt(D[G],16))}return w}function dt(p){return m.toByteArray(p)}function De(p,w,T,R){for(var I=0;I<R&&!(I+T>=w.length||I>=p.length);I++)w[I+T]=p[I];return I}function ve(p){try{return decodeURIComponent(p)}catch{return"�"}}function Ge(p,w){U(typeof p=="number","cannot write a non-number as a number"),U(0<=p,"specified a negative value for writing an unsigned value"),U(p<=w,"value is larger than maximum value for type"),U(Math.floor(p)===p,"value has a fractional component")}function He(p,w,T){U(typeof p=="number","cannot write a non-number as a number"),U(p<=w,"value larger than maximum allowed value"),U(T<=p,"value smaller than minimum allowed value"),U(Math.floor(p)===p,"value has a fractional component")}function ne(p,w,T){U(typeof p=="number","cannot write a non-number as a number"),U(p<=w,"value larger than maximum allowed value"),U(T<=p,"value smaller than minimum allowed value")}function U(p,w){if(!p)throw new Error(w||"Failed assertion")}v._augment=function(p){return p._isBuffer=!0,p._get=p.get,p._set=p.set,p.get=N.get,p.set=N.set,p.write=N.write,p.toString=N.toString,p.toLocaleString=N.toString,p.toJSON=N.toJSON,p.copy=N.copy,p.slice=N.slice,p.readUInt8=N.readUInt8,p.readUInt16LE=N.readUInt16LE,p.readUInt16BE=N.readUInt16BE,p.readUInt32LE=N.readUInt32LE,p.readUInt32BE=N.readUInt32BE,p.readInt8=N.readInt8,p.readInt16LE=N.readInt16LE,p.readInt16BE=N.readInt16BE,p.readInt32LE=N.readInt32LE,p.readInt32BE=N.readInt32BE,p.readFloatLE=N.readFloatLE,p.readFloatBE=N.readFloatBE,p.readDoubleLE=N.readDoubleLE,p.readDoubleBE=N.readDoubleBE,p.writeUInt8=N.writeUInt8,p.writeUInt16LE=N.writeUInt16LE,p.writeUInt16BE=N.writeUInt16BE,p.writeUInt32LE=N.writeUInt32LE,p.writeUInt32BE=N.writeUInt32BE,p.writeInt8=N.writeInt8,p.writeInt16LE=N.writeInt16LE,p.writeInt16BE=N.writeInt16BE,p.writeInt32LE=N.writeInt32LE,p.writeInt32BE=N.writeInt32BE,p.writeFloatLE=N.writeFloatLE,p.writeFloatBE=N.writeFloatBE,p.writeDoubleLE=N.writeDoubleLE,p.writeDoubleBE=N.writeDoubleBE,p.fill=N.fill,p.inspect=N.inspect,p.toArrayBuffer=N.toArrayBuffer,p}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(t,r,s){(function(i,o,m,l,c,d,u,g,_){var m=t("buffer").Buffer,C=4,v=new m(C);v.fill(0),r.exports={hash:function(E,S,x,M){for(var L=S((function(f,P){f.length%C!=0&&(k=f.length+(C-f.length%C),f=m.concat([f,v],k));for(var k,B=[],V=P?f.readInt32BE:f.readInt32LE,j=0;j<f.length;j+=C)B.push(V.call(f,j));return B})(E=m.isBuffer(E)?E:new m(E),M),8*E.length),S=M,y=new m(x),A=S?y.writeInt32BE:y.writeInt32LE,h=0;h<L.length;h++)A.call(y,L[h],4*h,!0);return y}}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],5:[function(t,r,s){(function(i,o,m,l,c,d,u,g,_){var m=t("buffer").Buffer,C=t("./sha"),v=t("./sha256"),E=t("./rng"),S={sha1:C,sha256:v,md5:t("./md5")},x=64,M=new m(x);function L(f,P){var k=S[f=f||"sha1"],B=[];return k||y("algorithm:",f,"is not yet supported"),{update:function(V){return m.isBuffer(V)||(V=new m(V)),B.push(V),V.length,this},digest:function(V){var j=m.concat(B),j=P?(function(N,K,le){m.isBuffer(K)||(K=new m(K)),m.isBuffer(le)||(le=new m(le)),K.length>x?K=N(K):K.length<x&&(K=m.concat([K,M],x));for(var te=new m(x),Y=new m(x),Le=0;Le<x;Le++)te[Le]=54^K[Le],Y[Le]=92^K[Le];return le=N(m.concat([te,le])),N(m.concat([Y,le]))})(k,P,j):k(j);return B=null,V?j.toString(V):j}}}function y(){var f=[].slice.call(arguments).join(" ");throw new Error([f,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join(` 211`))}M.fill(0),s.createHash=function(f){return L(f)},s.createHmac=L,s.randomBytes=function(f,P){if(!P||!P.call)return new m(E(f));try{P.call(this,void 0,new m(E(f)))}catch(k){P(k)}};var A,h=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],b=function(f){s[f]=function(){y("sorry,",f,"is not implemented yet")}};for(A in h)b(h[A])}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:11}],6:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){var m=t("./helpers");function C(y,A){y[A>>5]|=128<<A%32,y[14+(A+64>>>9<<4)]=A;for(var h=1732584193,b=-271733879,f=-1732584194,P=271733878,k=0;k<y.length;k+=16){var B=h,V=b,j=f,N=P,h=E(h,b,f,P,y[k+0],7,-680876936),P=E(P,h,b,f,y[k+1],12,-389564586),f=E(f,P,h,b,y[k+2],17,606105819),b=E(b,f,P,h,y[k+3],22,-1044525330);h=E(h,b,f,P,y[k+4],7,-176418897),P=E(P,h,b,f,y[k+5],12,1200080426),f=E(f,P,h,b,y[k+6],17,-1473231341),b=E(b,f,P,h,y[k+7],22,-45705983),h=E(h,b,f,P,y[k+8],7,1770035416),P=E(P,h,b,f,y[k+9],12,-1958414417),f=E(f,P,h,b,y[k+10],17,-42063),b=E(b,f,P,h,y[k+11],22,-1990404162),h=E(h,b,f,P,y[k+12],7,1804603682),P=E(P,h,b,f,y[k+13],12,-40341101),f=E(f,P,h,b,y[k+14],17,-1502002290),h=S(h,b=E(b,f,P,h,y[k+15],22,1236535329),f,P,y[k+1],5,-165796510),P=S(P,h,b,f,y[k+6],9,-1069501632),f=S(f,P,h,b,y[k+11],14,643717713),b=S(b,f,P,h,y[k+0],20,-373897302),h=S(h,b,f,P,y[k+5],5,-701558691),P=S(P,h,b,f,y[k+10],9,38016083),f=S(f,P,h,b,y[k+15],14,-660478335),b=S(b,f,P,h,y[k+4],20,-405537848),h=S(h,b,f,P,y[k+9],5,568446438),P=S(P,h,b,f,y[k+14],9,-1019803690),f=S(f,P,h,b,y[k+3],14,-187363961),b=S(b,f,P,h,y[k+8],20,1163531501),h=S(h,b,f,P,y[k+13],5,-1444681467),P=S(P,h,b,f,y[k+2],9,-51403784),f=S(f,P,h,b,y[k+7],14,1735328473),h=x(h,b=S(b,f,P,h,y[k+12],20,-1926607734),f,P,y[k+5],4,-378558),P=x(P,h,b,f,y[k+8],11,-2022574463),f=x(f,P,h,b,y[k+11],16,1839030562),b=x(b,f,P,h,y[k+14],23,-35309556),h=x(h,b,f,P,y[k+1],4,-1530992060),P=x(P,h,b,f,y[k+4],11,1272893353),f=x(f,P,h,b,y[k+7],16,-155497632),b=x(b,f,P,h,y[k+10],23,-1094730640),h=x(h,b,f,P,y[k+13],4,681279174),P=x(P,h,b,f,y[k+0],11,-358537222),f=x(f,P,h,b,y[k+3],16,-722521979),b=x(b,f,P,h,y[k+6],23,76029189),h=x(h,b,f,P,y[k+9],4,-640364487),P=x(P,h,b,f,y[k+12],11,-421815835),f=x(f,P,h,b,y[k+15],16,530742520),h=M(h,b=x(b,f,P,h,y[k+2],23,-995338651),f,P,y[k+0],6,-198630844),P=M(P,h,b,f,y[k+7],10,1126891415),f=M(f,P,h,b,y[k+14],15,-1416354905),b=M(b,f,P,h,y[k+5],21,-57434055),h=M(h,b,f,P,y[k+12],6,1700485571),P=M(P,h,b,f,y[k+3],10,-1894986606),f=M(f,P,h,b,y[k+10],15,-1051523),b=M(b,f,P,h,y[k+1],21,-2054922799),h=M(h,b,f,P,y[k+8],6,1873313359),P=M(P,h,b,f,y[k+15],10,-30611744),f=M(f,P,h,b,y[k+6],15,-1560198380),b=M(b,f,P,h,y[k+13],21,1309151649),h=M(h,b,f,P,y[k+4],6,-145523070),P=M(P,h,b,f,y[k+11],10,-1120210379),f=M(f,P,h,b,y[k+2],15,718787259),b=M(b,f,P,h,y[k+9],21,-343485551),h=L(h,B),b=L(b,V),f=L(f,j),P=L(P,N)}return Array(h,b,f,P)}function v(y,A,h,b,f,P){return L((A=L(L(A,y),L(b,P)))<<f|A>>>32-f,h)}function E(y,A,h,b,f,P,k){return v(A&h|~A&b,y,A,f,P,k)}function S(y,A,h,b,f,P,k){return v(A&b|h&~b,y,A,f,P,k)}function x(y,A,h,b,f,P,k){return v(A^h^b,y,A,f,P,k)}function M(y,A,h,b,f,P,k){return v(h^(A|~b),y,A,f,P,k)}function L(y,A){var h=(65535&y)+(65535&A);return(y>>16)+(A>>16)+(h>>16)<<16|65535&h}r.exports=function(y){return m.hash(y,C,16)}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){r.exports=function(m){for(var C,v=new Array(m),E=0;E<m;E++)!(3&E)&&(C=4294967296*Math.random()),v[E]=C>>>((3&E)<<3)&255;return v}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){var m=t("./helpers");function C(S,x){S[x>>5]|=128<<24-x%32,S[15+(x+64>>9<<4)]=x;for(var M,L,y,A=Array(80),h=1732584193,b=-271733879,f=-1732584194,P=271733878,k=-1009589776,B=0;B<S.length;B+=16){for(var V=h,j=b,N=f,K=P,le=k,te=0;te<80;te++){A[te]=te<16?S[B+te]:E(A[te-3]^A[te-8]^A[te-14]^A[te-16],1);var Y=v(v(E(h,5),(Y=b,L=f,y=P,(M=te)<20?Y&L|~Y&y:!(M<40)&&M<60?Y&L|Y&y|L&y:Y^L^y)),v(v(k,A[te]),(M=te)<20?1518500249:M<40?1859775393:M<60?-1894007588:-899497514)),k=P,P=f,f=E(b,30),b=h,h=Y}h=v(h,V),b=v(b,j),f=v(f,N),P=v(P,K),k=v(k,le)}return Array(h,b,f,P,k)}function v(S,x){var M=(65535&S)+(65535&x);return(S>>16)+(x>>16)+(M>>16)<<16|65535&M}function E(S,x){return S<<x|S>>>32-x}r.exports=function(S){return m.hash(S,C,20,!0)}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){function m(x,M){var L=(65535&x)+(65535&M);return(x>>16)+(M>>16)+(L>>16)<<16|65535&L}function C(x,M){var L,y=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),A=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),h=new Array(64);x[M>>5]|=128<<24-M%32,x[15+(M+64>>9<<4)]=M;for(var b,f,P=0;P<x.length;P+=16){for(var k=A[0],B=A[1],V=A[2],j=A[3],N=A[4],K=A[5],le=A[6],te=A[7],Y=0;Y<64;Y++)h[Y]=Y<16?x[Y+P]:m(m(m((f=h[Y-2],E(f,17)^E(f,19)^S(f,10)),h[Y-7]),(f=h[Y-15],E(f,7)^E(f,18)^S(f,3))),h[Y-16]),L=m(m(m(m(te,E(f=N,6)^E(f,11)^E(f,25)),N&K^~N&le),y[Y]),h[Y]),b=m(E(b=k,2)^E(b,13)^E(b,22),k&B^k&V^B&V),te=le,le=K,K=N,N=m(j,L),j=V,V=B,B=k,k=m(L,b);A[0]=m(k,A[0]),A[1]=m(B,A[1]),A[2]=m(V,A[2]),A[3]=m(j,A[3]),A[4]=m(N,A[4]),A[5]=m(K,A[5]),A[6]=m(le,A[6]),A[7]=m(te,A[7])}return A}var v=t("./helpers"),E=function(x,M){return x>>>M|x<<32-M},S=function(x,M){return x>>>M};r.exports=function(x){return v.hash(x,C,32,!0)}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){s.read=function(m,C,v,E,P){var x,M,L=8*P-E-1,y=(1<<L)-1,A=y>>1,h=-7,b=v?P-1:0,f=v?-1:1,P=m[C+b];for(b+=f,x=P&(1<<-h)-1,P>>=-h,h+=L;0<h;x=256*x+m[C+b],b+=f,h-=8);for(M=x&(1<<-h)-1,x>>=-h,h+=E;0<h;M=256*M+m[C+b],b+=f,h-=8);if(x===0)x=1-A;else{if(x===y)return M?NaN:1/0*(P?-1:1);M+=Math.pow(2,E),x-=A}return(P?-1:1)*M*Math.pow(2,x-E)},s.write=function(m,C,v,E,S,k){var M,L,y=8*k-S-1,A=(1<<y)-1,h=A>>1,b=S===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=E?0:k-1,P=E?1:-1,k=C<0||C===0&&1/C<0?1:0;for(C=Math.abs(C),isNaN(C)||C===1/0?(L=isNaN(C)?1:0,M=A):(M=Math.floor(Math.log(C)/Math.LN2),C*(E=Math.pow(2,-M))<1&&(M--,E*=2),2<=(C+=1<=M+h?b/E:b*Math.pow(2,1-h))*E&&(M++,E/=2),A<=M+h?(L=0,M=A):1<=M+h?(L=(C*E-1)*Math.pow(2,S),M+=h):(L=C*Math.pow(2,h-1)*Math.pow(2,S),M=0));8<=S;m[v+f]=255&L,f+=P,L/=256,S-=8);for(M=M<<S|L,y+=S;0<y;m[v+f]=255&M,f+=P,M/=256,y-=8);m[v+f-P]|=128*k}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(t,r,s){(function(i,o,a,l,c,d,u,g,_){var m,C,v;function E(){}(i=r.exports={}).nextTick=(C=typeof window<"u"&&window.setImmediate,v=typeof window<"u"&&window.postMessage&&window.addEventListener,C?function(S){return window.setImmediate(S)}:v?(m=[],window.addEventListener("message",function(S){var x=S.source;x!==window&&x!==null||S.data!=="process-tick"||(S.stopPropagation(),0<m.length&&m.shift()())},!0),function(S){m.push(S),window.postMessage("process-tick","*")}):function(S){setTimeout(S,0)}),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=E,i.addListener=E,i.once=E,i.off=E,i.removeListener=E,i.removeAllListeners=E,i.emit=E,i.binding=function(S){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(S){throw new Error("process.chdir is not supported")}}).call(this,t("lYpoI2"),typeof self<"u"?self:typeof window<"u"?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:11}]},{},[1])(1)})})(Lf);var Rf=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"],ds=Rf;ds=ds.slice().filter(function(n){return!/^(gl\_|texture)/.test(n)});ds.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"]);function If(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Of(n){var e=If(n,"string");return typeof e=="symbol"?e:String(e)}function ce(n,e,t){return e=Of(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}var $={position:"csm_Position",positionRaw:"csm_PositionRaw",pointSize:"csm_PointSize",fragColor:"csm_FragColor",diffuseColor:"csm_DiffuseColor",normal:"csm_Normal",roughness:"csm_Roughness",metalness:"csm_Metalness",emissive:"csm_Emissive",ao:"csm_AO",bump:"csm_Bump",depthAlpha:"csm_DepthAlpha"},Ue,Qt;Ue={},ce(Ue,"".concat($.normal),{"#include <beginnormal_vertex>":` 212 vec3 objectNormal = `.concat($.normal,`; 213 #ifdef USE_TANGENT 214 vec3 objectTangent = vec3( tangent.xyz ); 215 #endif 216 `)}),ce(Ue,"".concat($.position),{"#include <begin_vertex>":` 217 vec3 transformed = `.concat($.position,`; 218 `)}),ce(Ue,"".concat($.positionRaw),{"#include <begin_vertex>":` 219 vec4 csm_internal_positionUnprojected = `.concat($.positionRaw,`; 220 mat4x4 csm_internal_unprojectMatrix = projectionMatrix * modelViewMatrix; 221 #ifdef USE_INSTANCING 222 csm_internal_unprojectMatrix = csm_internal_unprojectMatrix * instanceMatrix; 223 #endif 224 csm_internal_positionUnprojected = inverse(csm_internal_unprojectMatrix) * csm_internal_positionUnprojected; 225 vec3 transformed = csm_internal_positionUnprojected.xyz; 226 `)}),ce(Ue,"".concat($.pointSize),{"gl_PointSize = size;":` 227 gl_PointSize = `.concat($.pointSize,`; 228 `)}),ce(Ue,"".concat($.diffuseColor),{"#include <color_fragment>":` 229 #include <color_fragment> 230 diffuseColor = `.concat($.diffuseColor,`; 231 `)}),ce(Ue,"".concat($.fragColor),{"#include <dithering_fragment>":` 232 #include <dithering_fragment> 233 gl_FragColor = `.concat($.fragColor,`; 234 `)}),ce(Ue,"".concat($.emissive),{"vec3 totalEmissiveRadiance = emissive;":` 235 vec3 totalEmissiveRadiance = `.concat($.emissive,`; 236 `)}),ce(Ue,"".concat($.roughness),{"#include <roughnessmap_fragment>":` 237 #include <roughnessmap_fragment> 238 roughnessFactor = `.concat($.roughness,`; 239 `)}),ce(Ue,"".concat($.metalness),{"#include <metalnessmap_fragment>":` 240 #include <metalnessmap_fragment> 241 metalnessFactor = `.concat($.metalness,`; 242 `)}),ce(Ue,"".concat($.ao),{"#include <aomap_fragment>":` 243 #include <aomap_fragment> 244 reflectedLight.indirectDiffuse *= 1. - `.concat($.ao,`; 245 `)}),ce(Ue,"".concat($.bump),{"#include <normal_fragment_maps>":` 246 #include <normal_fragment_maps> 247 248 vec3 csm_internal_orthogonal = `.concat($.bump," - (dot(").concat($.bump,`, normal) * normal); 249 vec3 csm_internal_projectedbump = mat3(csm_internal_vModelViewMatrix) * csm_internal_orthogonal; 250 normal = normalize(normal - csm_internal_projectedbump); 251 `)}),ce(Ue,"".concat($.depthAlpha),{"gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );":` 252 gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity * `.concat($.depthAlpha,` ); 253 `),"gl_FragColor = packDepthToRGBA( fragCoordZ );":` 254 gl_FragColor = packDepthToRGBA( fragCoordZ ); 255 gl_FragColor.a *= `.concat($.depthAlpha,`; 256 `)});Qt={},ce(Qt,"".concat($.position),{"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );":` 257 gl_Position = projectionMatrix * modelViewMatrix * vec4( `.concat($.position,`, 1.0 ); 258 `)}),ce(Qt,"".concat($.positionRaw),{"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );":` 259 gl_Position = `.concat($.position,`; 260 `)}),ce(Qt,"".concat($.diffuseColor),{"gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );":` 261 gl_FragColor = `.concat($.diffuseColor,`; 262 `)}),ce(Qt,"".concat($.fragColor),{"gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );":` 263 gl_FragColor = `.concat($.fragColor,`; 264 `)});var Be;Be={},ce(Be,"".concat($.position),"*"),ce(Be,"".concat($.positionRaw),"*"),ce(Be,"".concat($.normal),"*"),ce(Be,"".concat($.pointSize),["PointsMaterial"]),ce(Be,"".concat($.diffuseColor),"*"),ce(Be,"".concat($.fragColor),"*"),ce(Be,"".concat($.emissive),["MeshStandardMaterial","MeshPhysicalMaterial"]),ce(Be,"".concat($.roughness),["MeshStandardMaterial","MeshPhysicalMaterial"]),ce(Be,"".concat($.metalness),["MeshStandardMaterial","MeshPhysicalMaterial"]),ce(Be,"".concat($.ao),["MeshStandardMaterial","MeshPhysicalMaterial","MeshBasicMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial"]),ce(Be,"".concat($.bump),["MeshLambertMaterial","MeshMatcapMaterial","MeshNormalMaterial","MeshPhongMaterial","MeshPhysicalMaterial","MeshStandardMaterial","MeshToonMaterial","ShadowMaterial"]),ce(Be,"".concat($.depthAlpha),"*");new bs;new H;gn.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new ot(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}};
264zl.line={uniforms:_s.merge([gn.common,gn.fog,gn.line]),vertexShader:` 265 #include <common> 266 #include <color_pars_vertex> 267 #include <fog_pars_vertex> 268 #include <logdepthbuf_pars_vertex> 269 #include <clipping_planes_pars_vertex> 270 271 uniform float linewidth; 272 uniform vec2 resolution; 273 274 attribute vec3 instanceStart; 275 attribute vec3 instanceEnd; 276 277 attribute vec3 instanceColorStart; 278 attribute vec3 instanceColorEnd; 279 280 #ifdef WORLD_UNITS 281 282 varying vec4 worldPos; 283 varying vec3 worldStart; 284 varying vec3 worldEnd; 285 286 #ifdef USE_DASH 287 288 varying vec2 vUv; 289 290 #endif 291 292 #else 293 294 varying vec2 vUv; 295 296 #endif 297 298 #ifdef USE_DASH 299 300 uniform float dashScale; 301 attribute float instanceDistanceStart; 302 attribute float instanceDistanceEnd; 303 varying float vLineDistance; 304 305 #endif 306 307 void trimSegment( const in vec4 start, inout vec4 end ) { 308 309 // trim end segment so it terminates between the camera plane and the near plane 310 311 // conservative estimate of the near plane 312 float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column 313 float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column 314 float nearEstimate = - 0.5 * b / a; 315 316 float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); 317 318 end.xyz = mix( start.xyz, end.xyz, alpha ); 319 320 } 321 322 void main() { 323 324 #ifdef USE_COLOR 325 326 vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; 327 328 #endif 329 330 #ifdef USE_DASH 331 332 vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; 333 vUv = uv; 334 335 #endif 336 337 float aspect = resolution.x / resolution.y; 338 339 // camera space 340 vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); 341 vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); 342 343 #ifdef WORLD_UNITS 344 345 worldStart = start.xyz; 346 worldEnd = end.xyz; 347 348 #else 349 350 vUv = uv; 351 352 #endif 353 354 // special case for perspective projection, and segments that terminate either in, or behind, the camera plane 355 // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space 356 // but we need to perform ndc-space calculations in the shader, so we must address this issue directly 357 // perhaps there is a more elegant solution -- WestLangley 358 359 bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column 360 361 if ( perspective ) { 362 363 if ( start.z < 0.0 && end.z >= 0.0 ) { 364 365 trimSegment( start, end ); 366 367 } else if ( end.z < 0.0 && start.z >= 0.0 ) { 368 369 trimSegment( end, start ); 370 371 } 372 373 } 374 375 // clip space 376 vec4 clipStart = projectionMatrix * start; 377 vec4 clipEnd = projectionMatrix * end; 378 379 // ndc space 380 vec3 ndcStart = clipStart.xyz / clipStart.w; 381 vec3 ndcEnd = clipEnd.xyz / clipEnd.w; 382 383 // direction 384 vec2 dir = ndcEnd.xy - ndcStart.xy; 385 386 // account for clip-space aspect ratio 387 dir.x *= aspect; 388 dir = normalize( dir ); 389 390 #ifdef WORLD_UNITS 391 392 vec3 worldDir = normalize( end.xyz - start.xyz ); 393 vec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) ); 394 vec3 worldUp = normalize( cross( worldDir, tmpFwd ) ); 395 vec3 worldFwd = cross( worldDir, worldUp ); 396 worldPos = position.y < 0.5 ? start: end; 397 398 // height offset 399 float hw = linewidth * 0.5; 400 worldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp; 401 402 // don't extend the line if we're rendering dashes because we 403 // won't be rendering the endcaps 404 #ifndef USE_DASH 405 406 // cap extension 407 worldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir; 408 409 // add width to the box 410 worldPos.xyz += worldFwd * hw; 411 412 // endcaps 413 if ( position.y > 1.0 || position.y < 0.0 ) { 414 415 worldPos.xyz -= worldFwd * 2.0 * hw; 416 417 } 418 419 #endif 420 421 // project the worldpos 422 vec4 clip = projectionMatrix * worldPos; 423 424 // shift the depth of the projected points so the line 425 // segments overlap neatly 426 vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; 427 clip.z = clipPose.z * clip.w; 428 429 #else 430 431 vec2 offset = vec2( dir.y, - dir.x ); 432 // undo aspect ratio adjustment 433 dir.x /= aspect; 434 offset.x /= aspect; 435 436 // sign flip 437 if ( position.x < 0.0 ) offset *= - 1.0; 438 439 // endcaps 440 if ( position.y < 0.0 ) { 441 442 offset += - dir; 443 444 } else if ( position.y > 1.0 ) { 445 446 offset += dir; 447 448 } 449 450 // adjust for linewidth 451 offset *= linewidth; 452 453 // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... 454 offset /= resolution.y; 455 456 // select end 457 vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; 458 459 // back to clip space 460 offset *= clip.w; 461 462 clip.xy += offset; 463 464 #endif 465 466 gl_Position = clip; 467 468 vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation 469 470 #include <logdepthbuf_vertex> 471 #include <clipping_planes_vertex> 472 #include <fog_vertex> 473 474 } 475 `,fragmentShader:` 476 uniform vec3 diffuse; 477 uniform float opacity; 478 uniform float linewidth; 479 480 #ifdef USE_DASH 481 482 uniform float dashOffset; 483 uniform float dashSize; 484 uniform float gapSize; 485 486 #endif 487 488 varying float vLineDistance; 489 490 #ifdef WORLD_UNITS 491 492 varying vec4 worldPos; 493 varying vec3 worldStart; 494 varying vec3 worldEnd; 495 496 #ifdef USE_DASH 497 498 varying vec2 vUv; 499 500 #endif 501 502 #else 503 504 varying vec2 vUv; 505 506 #endif 507 508 #include <common> 509 #include <color_pars_fragment> 510 #include <fog_pars_fragment> 511 #include <logdepthbuf_pars_fragment> 512 #include <clipping_planes_pars_fragment> 513 514 vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { 515 516 float mua; 517 float mub; 518 519 vec3 p13 = p1 - p3; 520 vec3 p43 = p4 - p3; 521 522 vec3 p21 = p2 - p1; 523 524 float d1343 = dot( p13, p43 );
525 float d4321 = dot( p43, p21 ); 526 float d1321 = dot( p13, p21 ); 527 float d4343 = dot( p43, p43 ); 528 float d2121 = dot( p21, p21 ); 529 530 float denom = d2121 * d4343 - d4321 * d4321; 531 532 float numer = d1343 * d4321 - d1321 * d4343; 533 534 mua = numer / denom; 535 mua = clamp( mua, 0.0, 1.0 ); 536 mub = ( d1343 + d4321 * ( mua ) ) / d4343; 537 mub = clamp( mub, 0.0, 1.0 ); 538 539 return vec2( mua, mub ); 540 541 } 542 543 void main() { 544 545 #include <clipping_planes_fragment> 546 547 #ifdef USE_DASH 548 549 if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps 550 551 if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX 552 553 #endif 554 555 float alpha = opacity; 556 557 #ifdef WORLD_UNITS 558 559 // Find the closest points on the view ray and the line segment 560 vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; 561 vec3 lineDir = worldEnd - worldStart; 562 vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); 563 564 vec3 p1 = worldStart + lineDir * params.x; 565 vec3 p2 = rayEnd * params.y; 566 vec3 delta = p1 - p2; 567 float len = length( delta ); 568 float norm = len / linewidth; 569 570 #ifndef USE_DASH 571 572 #ifdef USE_ALPHA_TO_COVERAGE 573 574 float dnorm = fwidth( norm ); 575 alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); 576 577 #else 578 579 if ( norm > 0.5 ) { 580 581 discard; 582 583 } 584 585 #endif 586 587 #endif 588 589 #else 590 591 #ifdef USE_ALPHA_TO_COVERAGE 592 593 // artifacts appear on some hardware if a derivative is taken within a conditional 594 float a = vUv.x; 595 float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; 596 float len2 = a * a + b * b; 597 float dlen = fwidth( len2 ); 598 599 if ( abs( vUv.y ) > 1.0 ) { 600 601 alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); 602 603 } 604 605 #else 606 607 if ( abs( vUv.y ) > 1.0 ) { 608 609 float a = vUv.x; 610 float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; 611 float len2 = a * a + b * b; 612 613 if ( len2 > 1.0 ) discard; 614 615 } 616 617 #endif 618 619 #endif 620 621 vec4 diffuseColor = vec4( diffuse, alpha ); 622 623 #include <logdepthbuf_fragment> 624 #include <color_fragment> 625 626 gl_FragColor = vec4( diffuseColor.rgb, alpha ); 627 628 #include <tonemapping_fragment> 629 #include <colorspace_fragment> 630 #include <fog_fragment> 631 #include <premultiplied_alpha_fragment> 632 633 } 634 `};new H;new H;new jt;new jt;new jt;new H;new gt;new Gl;new H;new bs;new vo;new jt;const Ff={key:0,args:[0,1,64]},Vf={key:1,args:[.5,1,64]},Nf={key:2},Df=["tone-mapped","map","side","color"];new Pe(16777215);class Qs extends Je{constructor(){const e=Qs.SkyShader,t=new Rt({name:e.name,uniforms:_s.clone(e.uniforms),vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,side:Kl,depthWrite:!1});super(new Wl(1,1,1),t),this.isSky=!0}}Qs.SkyShader={name:"SkyShader",uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new H},up:{value:new H(0,1,0)}},vertexShader:` 635 uniform vec3 sunPosition; 636 uniform float rayleigh; 637 uniform float turbidity; 638 uniform float mieCoefficient; 639 uniform vec3 up; 640 641 varying vec3 vWorldPosition; 642 varying vec3 vSunDirection; 643 varying float vSunfade; 644 varying vec3 vBetaR; 645 varying vec3 vBetaM; 646 varying float vSunE; 647 648 // constants for atmospheric scattering 649 const float e = 2.71828182845904523536028747135266249775724709369995957; 650 const float pi = 3.141592653589793238462643383279502884197169; 651 652 // wavelength of used primaries, according to preetham 653 const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 ); 654 // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function: 655 // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn)) 656 const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 ); 657 658 // mie stuff 659 // K coefficient for the primaries 660 const float v = 4.0; 661 const vec3 K = vec3( 0.686, 0.678, 0.666 ); 662 // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K 663 const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 ); 664 665 // earth shadow hack 666 // cutoffAngle = pi / 1.95; 667 const float cutoffAngle = 1.6110731556870734; 668 const float steepness = 1.5; 669 const float EE = 1000.0; 670 671 float sunIntensity( float zenithAngleCos ) { 672 zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 ); 673 return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepne
673ss ) ) ); 674 } 675 676 vec3 totalMie( float T ) { 677 float c = ( 0.2 * T ) * 10E-18; 678 return 0.434 * c * MieConst; 679 } 680 681 void main() { 682 683 vec4 worldPosition = modelMatrix * vec4( position, 1.0 ); 684 vWorldPosition = worldPosition.xyz; 685 686 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 687 gl_Position.z = gl_Position.w; // set z to camera.far 688 689 vSunDirection = normalize( sunPosition ); 690 691 vSunE = sunIntensity( dot( vSunDirection, up ) ); 692 693 vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 ); 694 695 float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) ); 696 697 // extinction (absorbtion + out scattering) 698 // rayleigh coefficients 699 vBetaR = totalRayleigh * rayleighCoefficient; 700 701 // mie coefficients 702 vBetaM = totalMie( turbidity ) * mieCoefficient; 703 704 }`,fragmentShader:` 705 varying vec3 vWorldPosition; 706 varying vec3 vSunDirection; 707 varying float vSunfade; 708 varying vec3 vBetaR; 709 varying vec3 vBetaM; 710 varying float vSunE; 711 712 uniform float mieDirectionalG; 713 uniform vec3 up; 714 715 // constants for atmospheric scattering 716 const float pi = 3.141592653589793238462643383279502884197169; 717 718 const float n = 1.0003; // refractive index of air 719 const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius) 720 721 // optical length at zenith for molecules 722 const float rayleighZenithLength = 8.4E3; 723 const float mieZenithLength = 1.25E3; 724 // 66 arc seconds -> degrees, and the cosine of that 725 const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324; 726 727 // 3.0 / ( 16.0 * pi ) 728 const float THREE_OVER_SIXTEENPI = 0.05968310365946075; 729 // 1.0 / ( 4.0 * pi ) 730 const float ONE_OVER_FOURPI = 0.07957747154594767; 731 732 float rayleighPhase( float cosTheta ) { 733 return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) ); 734 } 735 736 float hgPhase( float cosTheta, float g ) { 737 float g2 = pow( g, 2.0 ); 738 float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 ); 739 return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse ); 740 } 741 742 void main() { 743 744 vec3 direction = normalize( vWorldPosition - cameraPosition ); 745 746 // optical length 747 // cutoff angle at 90 to avoid singularity in next formula. 748 float zenithAngle = acos( max( 0.0, dot( up, direction ) ) ); 749 float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) ); 750 float sR = rayleighZenithLength * inverse; 751 float sM = mieZenithLength * inverse; 752 753 // combined extinction factor 754 vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) ); 755 756 // in scattering 757 float cosTheta = dot( direction, vSunDirection ); 758 759 float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 ); 760 vec3 betaRTheta = vBetaR * rPhase; 761 762 float mPhase = hgPhase( cosTheta, mieDirectionalG ); 763 vec3 betaMTheta = vBetaM * mPhase; 764 765 vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) ); 766 Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) ); 767 768 // nightsky 769 float theta = acos( direction.y ); // elevation --> y-axis, [-pi/2, pi/2] 770 float phi = atan( direction.z, direction.x ); // azimuth --> x-axis [-pi/2, pi/2] 771 vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 ); 772 vec3 L0 = vec3( 0.1 ) * Fex; 773 774 // composition + solar disc 775 float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta ); 776 L0 += ( vSunE * 19000.0 * Fex ) * sundisk; 777 778 vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 ); 779 780 vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) ); 781 782 gl_FragColor = vec4( retColor, 1.0 ); 783 784 #include <tonemapping_fragment> 785 #include <colorspace_fragment> 786 787 }`};var Uf={exports:{}};(function(n,e){(function(t,r){n.exports=r()})(kf,function(){var t=function(){function r(_){return o.appendChild(_.dom),_}function s(_){for(var m=0;m<o.children.length;m++)o.children[m].style.display=m===_?"block":"none";i=_}var i=0,o=document.createElement("div");o.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",o.addEventListener("click",function(_){_.preventDefault(),s(++i%o.children.length)},!1);var a=(performance||Date).now(),l=a,c=0,d=r(new t.Panel("FPS","#0ff","#002")),u=r(new t.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var g=r(new t.Panel("MB","#f08","#201"));return s(0),{REVISION:16,dom:o,addPanel:r,showPanel:s,begin:function(){a=(performance||Date).now()},end:function(){c++;var _=(performance||Date).now();if(u.update(_-a,200),_>l+1e3&&(d.update(1e3*c/(_-l),100),l=_,c=0,g)){var m=performance.memory;g.update(m.usedJSHeapSize/1048576,m.jsHeapSizeLimit/1048576)}return _},update:function(){a=this.end()},domElement:o,setMode:s}};return t.Panel=function(r,s,i){var o=1/0,a=0,l=Math.round,c=l(window.devicePixelRatio||1),d=80*c,u=48*c,g=3*c,_=2*c,m=3*c,C=15*c,v=74*c,E=30*c,S=document.createElement("canvas");S.width=d,S.height=u,S.style.cssText="width:80px;height:48px";var x=S.getContext("2d");return x.font="bold "+9*c+"px Helvetica,Arial,sans-serif",x.textBaseline="top",x.fillStyle=i,x.fillRect(0,0,d,u),x.fillStyle=s,x.fillText(r,g,_),x.fillRect(m,C,v,E),x.fillStyle=i,x.globalAlpha=.9,x.fillRect(m,C,v,E),{dom:S,update:function(M,L){o=Math.min(o,M),a=Math.max(a,M),x.fillStyle=i,x.globalAlpha=1,x.fillRect(0,0,d,C
787),x.fillStyle=s,x.fillText(l(M)+" "+r+" ("+l(o)+"-"+l(a)+")",g,_),x.drawImage(S,m+c,C,v-c,E,m,C,v-c,E),x.fillRect(m+v-c,C,c,E),x.fillStyle=i,x.globalAlpha=.9,x.fillRect(m+v-c,C,c,l((1-M/L)*E))}}},t})})(Uf);var Bf=`#include <common> 788 789void main() { 790 vec2 center = vec2(0., 1.); 791 float rotation = 0.0; 792 793 794 795 float size = 0.03; 796 797 vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); 798 vec2 scale; 799 scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); 800 scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); 801 802 bool isPerspective = isPerspectiveMatrix( projectionMatrix ); 803 if ( isPerspective ) scale *= - mvPosition.z; 804 805 vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; 806 vec2 rotatedPosition; 807 rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; 808 rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; 809 mvPosition.xy += rotatedPosition; 810 811 gl_Position = projectionMatrix * mvPosition; 812}`,jf=`void main() { 813 gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); 814}`;const Bn=new H(0,0,0),Js=new H(0,0,0),zf=new H(0,0,0);function qi(n,e,t){const r=Bn.setFromMatrixPosition(n.matrixWorld);r.project(e);const s=t.width/2,i=t.height/2;return[(Number.isNaN(r.x)?0:r.x)*s+s,-(r.y*i)+i]}function Gf(n,e){const t=Bn.setFromMatrixPosition(n.matrixWorld),r=Js.setFromMatrixPosition(e.matrixWorld),s=t.sub(r),i=e.getWorldDirection(zf);return s.angleTo(i)>Math.PI/2}function Hf(n,e,t,r){const s=Bn.setFromMatrixPosition(n.matrixWorld),i=s.clone();i.project(e),t.setFromCamera(new ot(i.x,i.y),e);const o=t.intersectObjects(r,!0);if(o.length>0){const a=o[0].distance;return s.distanceTo(t.ray.origin)<a}return!0}function $f(n,e){if(e instanceof hr)return e.zoom;if(e instanceof Rn){const t=Bn.setFromMatrixPosition(n.matrixWorld),r=Js.setFromMatrixPosition(e.matrixWorld),s=e.fov*Math.PI/180,i=t.distanceTo(r);return 1/(2*Math.tan(s/2)*i)}else return 1}function Kf(n,e,t){if(e instanceof Rn||e instanceof hr){const r=Bn.setFromMatrixPosition(n.matrixWorld),s=Js.setFromMatrixPosition(e.matrixWorld),i=r.distanceTo(s),o=(t[1]-t[0])/(e.far-e.near),a=t[1]-o*e.far;return Math.round(o*i+a)}}const hs=n=>Math.abs(n)<1e-10?0:n;function Na(n,e,t=""){let r="matrix3d(";for(let s=0;s!==16;s++)r+=hs(e[s]*n.elements[s])+(s!==15?",":")");return t+r}const Wf=(n=>e=>Na(e,n))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),qf=(n=>(e,t)=>Na(e,n(t),"translate(-50%,-50%)"))(n=>[1/n,1/n,1/n,1,-1/n,-1/n,-1/n,-1,1/n,1/n,1/n,1,1,1,1,1]),Xf=["geometry","material"];new fr;var Yf=`varying vec2 vUv; 815 816void main(){ 817 gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); 818 vUv = uv; 819}`,Zf=`uniform vec3 uColor; 820uniform float uOpacity; 821 822varying vec2 vUv; 823 824void main(){ 825 float outerGlow = distance(vUv, vec2(0.5)); 826 outerGlow = smoothstep(0.435, 0.385, outerGlow); 827 outerGlow = pow(outerGlow, 3.0); 828 829 float center = smoothstep(0.80, 1.0, outerGlow); 830 float alpha = (outerGlow * uOpacity) - center; 831 alpha = clamp(alpha, 0.0, 1.0); 832 833 gl_FragColor = vec4(uColor, alpha); 834 835 #include <colorspace_fragment> 836}`;const bt={renderOrder:{ozone:-1,globe:5,route:20,mainLocation:90,airport:30,onboarding:100}},qt=n=>{const{onLoop:e,resume:t}=Yl();e(r=>{n(r)}),t()},Qf=["scale","render-order"],Jf=["args"],em={__name:"GlobeGlSceneModelOzone",setup(n,{expose:e}){const{camera:t}=_t(),{config:r}=he("globe"),{globe:s}=r,{ozoneConfig:i}=s,o=s.radius*2+.32,a=i.opacity,l=Ze(null),c=bt.renderOrder.ozone,d=ue.timeline(),u={name:"ozone",vertexShader:Yf,fragmentShader:Zf,uniforms:{uColor:{value:new Pe(i.color)},uOpacity:{value:0}},depthWrite:!1,transparent:!0},g=()=>(d.fromTo(u.uniforms.uOpacity,{value:0},{duration:2,value:a,ease:"power1.out"}).set(l.value,{visible:!0},"<"),d);return qt(()=>{l.value&&(l.value.lookAt(t.value.position),l.value.updateMatrix())}),e({root:l,getEnterTimeline:g}),(_,m)=>(z(),q("TresMesh",{ref_key:"meshRef",ref:l,scale:[o,o,o],"matrix-auto-update":!1,"render-order":O(c),visible:!1},[m[0]||(m[0]=F("TresPlaneGeometry",{args:[1,1,1,1]},null,-1)),F("TresShaderMaterial",{args:[u]},null,8,Jf)],8,Qf))}};var tm=`#ifdef USE_FRESNEL 837 varying vec3 vViewPosition; 838 varying vec3 vNormal; 839#endif 840varying vec2 vUv; 841 842void main() { 843 gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0
843); 844 845 #ifdef USE_FRESNEL 846 vViewPosition = - (modelViewMatrix * vec4(position, 1.0)).xyz; 847 vNormal = normalize(normalMatrix * normal); 848 #endif 849 850 vUv = uv; 851}`,nm=`uniform float uOpacity; 852uniform vec3 uColorA; 853uniform vec3 uColorB; 854uniform sampler2D uTexture; 855 856#ifdef USE_FRESNEL 857 uniform float uFresnelOpacity; 858 uniform float uFresnelPowerFactor; 859 uniform vec3 uFresnelColor; 860 varying vec3 vViewPosition; 861 varying vec3 vNormal; 862#endif 863 864varying vec2 vUv; 865 866void main() { 867 vec2 flippedUV = vec2(vUv.x, 1.0 - vUv.y); 868 869 float textureValue = 1.0 - (texture2D(uTexture, flippedUV).r); 870 vec3 finalColor = mix(uColorA, uColorB, textureValue); 871 872 gl_FragColor = vec4(finalColor, uOpacity); 873 874 #ifdef USE_FRESNEL 875 vec3 viewDirection = normalize( cameraPosition - (-vViewPosition)); 876 float fresnelFactor = clamp(1.0 - dot(vNormal, viewDirection), 0., 1.); 877 fresnelFactor = pow(fresnelFactor, uFresnelPowerFactor); 878 879 gl_FragColor.rgb += fresnelFactor * uFresnelColor * uFresnelOpacity; 880 #endif 881 #include <colorspace_fragment> 882}`;const Xr=new Pe;class rm extends Rt{constructor({map:e,colorA:t,colorB:r,fresnelConfig:s}){super(),this.name="flat-globe",this._map={value:e},this._colorA={value:Xr.set(t).clone()},this._colorB={value:Xr.set(r).clone()},this._opacity={value:0},this._hasFresnel=!!s,this._fresnelConfig=s,this._fresnelOpacity={value:s?.opacity},this._fresnelColor={value:Xr.set(s?.color).clone()},this._fresnelPowerFactor={value:s?.powerFactor},this._init()}_init(){this.vertexShader=tm,this.fragmentShader=nm,this.uniforms.uTexture=this._map,this.uniforms.uColorA=this._colorA,this.uniforms.uColorB=this._colorB,this.uniforms.uOpacity=this._opacity,this.defines.USE_FRESNEL=this._hasFresnel,this._hasFresnel&&(this.uniforms.uFresnelOpacity=this._fresnelOpacity,this.uniforms.uFresnelColor=this._fresnelColor,this.uniforms.uFresnelPowerFactor=this._fresnelPowerFactor)}}const sm=["object"],im="/models/globe/textures/Image_2.jpg",om="/models/globe/textures/Image_1.jpg",am="/models/globe/textures/Image_3.png",lm="/models/globe/textures/L_clouds_Tileable.png",cm="/models/globe/textures/L_Mask3.jpg",um="/models/globe/textures/L_Mask4.jpg",dm={__name:"GlobeGlSceneModel",async setup(n){let e,t;const{scene:r}=([e,t]=fs(()=>Va("/models/globe/model.glb")),e=await e,t(),e),{config:s,responsiveVersion:i}=he("globe"),{type:o}=s.globe,{renderer:a}=_t(),l=a.value.capabilities.getMaxAnisotropy(),c=!!s.globe.ozoneConfig,d=!!s.globe.fresnelConfig,u=new io,g=new Pe,_=r.getObjectByName("clouds"),m=r.getObjectByName("globe"),C=W(null),v=ue.timeline(),E=h=>h.replace("/textures/",`/textures/${i}/`),S=(h="realistic")=>{if(h==="realistic")m.material.map=u.load(E(im)),m.material.map.flipY=!1,m.material.map.colorSpace
882=sn,m.material.map.anisotropy=l,m.material.map.needsUpdate=!0,_.material.map=u.load(E(lm)),_.material.map.wrapS=_.material.map.wrapT=Pn,_.material.map.flipY=!0,_.material.map.anisotropy=l,_.material.map.needsUpdate=!0;else if(h==="detailed"){const b=u.load(E(um));b.colorSpace=ir,b.anisotropy=l,b.flipY=!1,b.needsUpdate=!0,m.material.map=b}if(["realistic","detailed"].includes(h)){m.material.normalMap=u.load(E(om)),m.material.normalMap.flipY=!1;const b=u.load(E(am));b.flipY=!1,m.material.roughnessMap=b,m.material.metalnessMap=b}},x=h=>{h.onBeforeCompile=b=>{b.uniforms.uFresnelColor={value:new Pe(s.globe.fresnelConfig.color)},b.uniforms.uFresnelOpacity={value:s.globe.fresnelConfig.opacity},b.uniforms.uFresnelPowerFactor={value:s.globe.fresnelConfig.powerFactor},b.fragmentShader=b.fragmentShader.replace("#include <common>",` 883 #include <common> 884 uniform float uFresnelOpacity; 885 uniform float uFresnelPowerFactor; 886 uniform vec3 uFresnelColor; 887 `),b.fragmentShader=b.fragmentShader.replace("#include <opaque_fragment>",` 888 #include <opaque_fragment> 889 890 vec3 viewDirection = normalize( cameraPosition - (-vViewPosition)); // vViewPosition is negative from three 891 float fresnelFactor = clamp(1.0 - dot(vNormal, viewDirection), 0., 1.); 892 fresnelFactor = pow(fresnelFactor, uFresnelPowerFactor); 893 894 gl_FragColor.rgb += fresnelFactor * uFresnelColor * uFresnelOpacity; 895 `)}},M=()=>{_&&(_.visible=!1);const{colors:h}=s.globe.flatConfig,b=u.load(E(cm));b.anisotropy=l,b.needsUpdate=!0;const f=new rm({map:b,colorA:h[0],colorB:h[1],fresnelConfig:s.globe?.fresnelConfig});m.material=f},L=()=>{_&&(_.visible=!1);const h=g.set(s.globe.detailedConfig.color).clone();m.material.color=h},y=()=>{const h=_.material,b=m.material,f=.3;if(["realistic","detailed"].includes(o)?v.fromTo(h,{opacity:0},{duration:3.5,opacity:1,ease:"power1.out"},f).fromTo(b,{opacity:0},{duration:3.5,opacity:1,ease:"power1.out"},f):o==="flat"&&v.fromTo(b.uniforms.uOpacity,{value:0},{duration:3.5,value:1,ease:"power1.out"},f),c){const P=C.value.getEnterTimeline();v.add(P,f+1)}v.restart(0)};return m.material.transparent=!0,_.material.transparent=!0,m.renderOrder=bt.renderOrder.globe,_.renderOrder=bt.renderOrder.globe+1,o==="realistic"?(S("realistic"),d&&x(m.material),_.material.opacity=0,m.material.opacity=0):o==="detailed"?(S("detailed"),L(),_.material.opacity=0,m.material.opacity=0,d&&x(m.material)):o==="flat"&&M(),Ke(Me.WEBGL_ENTER,y),qt(({delta:h})=>{_&&(_.rotation.y+=h*.0095)}),(h,b)=>(z(),q(st,null,[F("primitive",{object:O(r)},null,8,sm),c?(z(),Ce(O(em),{key:0,ref_key:"ozoneRef",ref:C},null,512)):et("",!0)],64))}},Yr=new H,Xi=({start:n,end:e,radius:t,bendFactor:r=0})=>{const s=Yr.clone().setFromSphericalCoords(t,fe.degToRad(90-n[0]),fe.degToRad(n[1])),i=Yr.clone().setFromSphericalCoords(t,fe.degToRad(90-e[0]),fe.degToRad(e[1])),o=(d,u)=>1+Math.sin(d*3.14)*r*u,a=(d,u)=>{const g=d.angleTo(u),_=fe.clamp(g,.1,.9),m=fe.mapLinear(_,.1,.9,.3,.4);return v=>Yr.clone().addVectors(d.clone().multiplyScalar(Math.sin((1-v)*g)),u.clone().multiplyScalar(Math.sin(v*g))).divideScalar(Math.sin(g)).multiplyScalar(o(v,m))};return((d,u)=>{const g=new Zl;return g.getPoint=a(d,u),g})(s,i)},hm=["scale"],pm=["object"],fm={__name:"GlobeGlSceneAirportsItemRouteAirplane",props:["curve"],setup(n,{expose:e}){const t={desktop:{scale:.27},mobile:{scale:.52}},r=new H,s=new H(0,0,1),i=new H,o=r.clone(),a=r.clone(),l=n,{curve:c}=dr(l),{resources:d}=he("globe"),{responsiveVersion:u}=Ve("globe"),g=d.get("airplane").scene.clone(),_=W(),m=t[u.value].scale,C=ue.timeline(),v=ue.timeline();return e({getEnterTl:()=>{C?.kill(),C?.clear();const x={prog:0},M=()=>{const L=x.prog;o.copy(c.value.getPoint(L)),_.value.position.copy(o),c.value.getTangent(L,a),i.crossVectors(s,a).normalize();const y=Math.acos(s.dot(a));_.value.quaternion.setFromAxisAngle(i,y)};return C.set(_.value,{visible:!0}).set(_.value.scale,{x:m,y:m,z:m}).from(_.value.scale,{duration:.4,x:0,y:0,z:0,ease:"power1.out"},0).fromTo(x,{prog:0},{duration:1,prog:1,ease:"power1.inOut",onUpdate:M},0).to(_.value.scale,{duration:.4,x:0,y:0,z:0,ease:"power1.in"},.6).set(_.value,{visible:!1}).restart(0),C},getLeaveTl:()=>(v?.kill(),v?.clear(),v.to(_.value.scale,{duration:.4,x:0,y:0,z:0,ease:"power1.in",overwrite:"auto"}),v)}),(x,M)=>(z(),q("TresGroup",{ref_key:"groupRef",ref:_,scale:[O(m),O(m),O(m)]},[F("primitive",{object:O(g)},null,8,pm)],8,hm))}};var mm=Object.defineProperty,vm=(n,e,t)=>e in n?mm(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,se=(n,e,t)=>(vm(n,typeof e!="symbol"?e+"":e,t),t);function Zr(n,e,t,r,s){let i;if(n=n.subarray||n.slice?n:n.buffer,t=t.subarray||t.slice?t:t.buffer,n=e?n.subarray?n.subarray(e,s&&e+s):n.slice(e,s&&e+s):n,t.set)t.set(n,r);else for(i=0;i<n.length;i++)t[i+r]=n[i];return t}function gm(n){return n instanceof Float32Array?n:n instanceof Ln?n.getAttribute("position").array:n.map(e=>{const t=Array.isArray(e);return e instanceof H?[e.x,e.y,e.z]:e instanceof ot?[e.x,e.y,0]:t&&e.length===3?[e[0],e[1],e[2]]:t&&e.length===2?[e[0],e[1],0]:e}).flat()}class Da extends Ln{constructor(){super(),se(this,"type","MeshLine"),se(this,"isMeshLine",!0),se(this,"positions",[]),se(this,"previous",[]),se(this,"next",[]),se(this,"side",[]),se(this,"width",[]),se(this,"indices_array",[]),se(this,"uvs",[]),se(this,"counters",[]),se(this,"widthCallback",null),se(this,"_attributes"),se(this,"_points",[]),se(this,"points"),se(this,"matrixWorld",new gt),Object.defineProperties(this,{points:{enumerable:!0,get(){return this._points},set(e){this.setPoints(e,this.widthCallback)}}})}setMatrixWorld(e){this.matrixWorld=e}setPoints(e,t){if(e=gm(e),this._points=e,this.widthCallback=t??null,this.positions=[],this.counters=[],e.length&&e[0]instanceof H)for(let r=0;r<e.length;r++){const s=e[r],i=r/(e.length-1);this.positions.push(s.x,s.y,s.z),this.positions.push(s.x,s.y,s.z),this.counters.push(i),this.counters.push(i)}else for(let r=0;r<e.length;r+=3){const s=r/(e.length-1);this.positions.push(e[r],e[r+1],e[r+2]),this.positions.push(e[r],e[r+1],e[r+2]),this.counters.push(s),this.counters.push(s)}this.process()}compareV3(e,t){const r=e*6,s=t*6;return this.positions[r]===this.positions[s]&&this.positions[r+1]===this.positions[s+1]&&this.positions[r+2]===this.positions[s+2]}copyV3(e){const t=e*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]}process(){const e=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];let t,r;this.compareV3(0,e-1)?r=this.copyV3(e-2):r=this.copyV3(0),this.previous.push(r[0],r[1],r[2]),this.previous.push(r[0],r[1],r[2]);for(let s=0;s<e;s++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(s/(e-1)):t=1,this.width.push(t),this.width.push(t),this.uvs.push(s/(e-1),0),this.uvs.push(s/(e-1),1),s<e-1){r=this.copyV3(s),this.previous.push(r[0],r[1],r[2]),this.previous.push(r[0],r[1],r[2]);const i=s*2;this.indices_array.push(i,i+1,i+2),this.indices_array.push(i+2,i+1,i+3)}s>0&&(r=this.copyV3(s),this.next.push(r[0],r[1],r[2]),this.next.push(r[0],r[1],r[2]))}this.compareV3(e-1,0)?r=this.copyV3(1):r=this.copyV3(e-1),this.next.push(r[0],r[1],r[2]),this.next.push(r[0],r[1],r[2]),!this._attributes||this._attributes.position.count!==this.counters.length?this._attributes={position:new Ee(ne
895w Float32Array(this.positions),3),previous:new Ee(new Float32Array(this.previous),3),next:new Ee(new Float32Array(this.next),3),side:new Ee(new Float32Array(this.side),1),width:new Ee(new Float32Array(this.width),1),uv:new Ee(new Float32Array(this.uvs),2),index:new Ee(new Uint16Array(this.indices_array),1),counters:new Ee(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()}advance({x:e,y:t,z:r}){const s=this._attributes.position.array,i=this._attributes.previous.array,o=this._attributes.next.array,a=s.length;Zr(s,0,i,0,a),Zr(s,6,s,0,a-6),s[a-6]=e,s[a-5]=t,s[a-4]=r,s[a-3]=e,s[a-2]=t,s[a-1]=r,Zr(s,6,o,0,a-6),o[a-6]=e,o[a-5]=t,o[a-4]=r,o[a-3]=e,o[a-2]=t,o[a-1]=r,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0}}const wm=` 896 #include <common> 897 #include <logdepthbuf_pars_vertex> 898 #include <fog_pars_vertex> 899 #include <clipping_planes_pars_vertex> 900 901 attribute vec3 previous; 902 attribute vec3 next; 903 attribute float side; 904 attribute float width; 905 attribute float counters; 906 907 uniform vec2 resolution; 908 uniform float lineWidth; 909 uniform vec3 color; 910 uniform float opacity; 911 uniform float sizeAttenuation; 912 913 varying vec2 vUV; 914 varying vec4 vColor; 915 varying float vCounters; 916 917 vec2 fix(vec4 i, float aspect) { 918 vec2 res = i.xy / i.w; 919 res.x *= aspect; 920 return res; 921 } 922 923 void main() { 924 float aspect = resolution.x / resolution.y; 925 vColor = vec4(color, opacity); 926 vUV = uv; 927 vCounters = counters; 928 929 mat4 m = projectionMatrix * modelViewMatrix; 930 vec4 finalPosition = m * vec4(position, 1.0) * aspect; 931 vec4 prevPos = m * vec4(previous, 1.0); 932 vec4 nextPos = m * vec4(next, 1.0); 933 934 vec2 currentP = fix(finalPosition, aspect); 935 vec2 prevP = fix(prevPos, aspect); 936 vec2 nextP = fix(nextPos, aspect); 937 938 float w = lineWidth * width; 939 940 vec2 dir; 941 if (nextP == currentP) dir = normalize(currentP - prevP); 942 else if (prevP == currentP) dir = normalize(nextP - currentP); 943 else { 944 vec2 dir1 = normalize(currentP - prevP); 945 vec2 dir2 = normalize(nextP - currentP); 946 dir = normalize(dir1 + dir2); 947 948 vec2 perp = vec2(-dir1.y, dir1.x); 949 vec2 miter = vec2(-dir.y, dir.x); 950 //w = clamp(w / dot(miter, perp), 0., 4. * lineWidth * width); 951 } 952 953 //vec2 normal = (cross(vec3(dir, 0.), vec3(0., 0., 1.))).xy; 954 vec4 normal = vec4(-dir.y, dir.x, 0., 1.); 955 normal.xy *= .5 * w; 956 //normal *= projectionMatrix; 957 if (sizeAttenuation == 0.) { 958 normal.xy *= finalPosition.w; 959 normal.xy /= (vec4(resolution, 0., 1.) * projectionMatrix).xy * aspect; 960 } 961 962 finalPosition.xy += normal.xy * side; 963 gl_Position = finalPosition; 964 #include <logdepthbuf_vertex> 965 #include <fog_vertex>
966 vec4 mvPosition = modelViewMatrix * vec4(position, 1.0); 967 #include <clipping_planes_vertex> 968 #include <fog_vertex> 969 } 970`,bm=parseInt(go.replace(/\D+/g,"")),_m=bm>=154?"colorspace_fragment":"encodings_fragment",ym=` 971 #include <fog_pars_fragment> 972 #include <logdepthbuf_pars_fragment> 973 #include <clipping_planes_pars_fragment> 974 975 uniform sampler2D map; 976 uniform sampler2D alphaMap; 977 uniform float useGradient; 978 uniform float useMap; 979 uniform float useAlphaMap; 980 uniform float useDash; 981 uniform float dashArray; 982 uniform float dashOffset; 983 uniform float dashRatio; 984 uniform float visibility; 985 uniform float alphaTest; 986 uniform vec2 repeat; 987 uniform vec3 gradient[2]; 988 989 varying vec2 vUV; 990 varying vec4 vColor; 991 varying float vCounters; 992 993 void main() { 994 #include <logdepthbuf_fragment> 995 vec4 diffuseColor = vColor; 996 if (useGradient == 1.) diffuseColor = vec4(mix(gradient[0], gradient[1], vCounters), 1.0); 997 if (useMap == 1.) diffuseColor *= texture2D(map, vUV * repeat); 998 if (useAlphaMap == 1.) diffuseColor.a *= texture2D(alphaMap, vUV * repeat).a; 999 if (diffuseColor.a < alphaTest) discard; 1000 if (useDash == 1.) diffuseColor.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio)); 1001 diffuseColor.a *= step(vCounters, visibility); 1002 #include <clipping_planes_fragment> 1003 gl_FragColor = diffuseColor; 1004 #include <fog_fragment> 1005 #include <tonemapping_fragment> 1006 #include <${_m}> 1007 } 1008`;class Ua extends Rt{constructor(e){super({uniforms:{...gn.fog,lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new Pe(16777215)}
1008,gradient:{value:[new Pe(16711680),new Pe(65280)]},opacity:{value:1},resolution:{value:new ot(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},useGradient:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new ot(1,1)}},vertexShader:wm,fragmentShader:ym}),se(this,"lineWidth"),se(this,"map"),se(this,"useMap"),se(this,"alphaMap"),se(this,"useAlphaMap"),se(this,"color"),se(this,"gradient"),se(this,"resolution"),se(this,"sizeAttenuation"),se(this,"dashArray"),se(this,"dashOffset"),se(this,"dashRatio"),se(this,"useDash"),se(this,"useGradient"),se(this,"visibility"),se(this,"repeat"),this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get(){return this.uniforms.lineWidth.value},set(t){this.uniforms.lineWidth.value=t}},map:{enumerable:!0,get(){return this.uniforms.map.value},set(t){this.uniforms.map.value=t}},useMap:{enumerable:!0,get(){return this.uniforms.useMap.value},set(t){this.uniforms.useMap.value=t}},alphaMap:{enumerable:!0,get(){return this.uniforms.alphaMap.value},set(t){this.uniforms.alphaMap.value=t}},useAlphaMap:{enumerable:!0,get(){return this.uniforms.useAlphaMap.value},set(t){this.uniforms.useAlphaMap.value=t}},color:{enumerable:!0,get(){return this.uniforms.color.value},set(t){this.uniforms.color.value=t}},gradient:{enumerable:!0,get(){return this.uniforms.gradient.value},set(t){this.uniforms.gradient.value=t}},opacity:{enumerable:!0,get(){return this.uniforms.opacity.value},set(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get(){return this.uniforms.resolution.value},set(t){this.uniforms.resolution.value.copy(t)}},sizeAttenuation:{enumerable:!0,get(){return this.uniforms.sizeAttenuation.value},set(t){this.uniforms.sizeAttenuation.value=t}},dashArray:{enumerable:!0,get(){return this.uniforms.dashArray.value},set(t){this.uniforms.dashArray.value=t,this.useDash=t!==0?1:0}},dashOffset:{enumerable:!0,get(){return this.uniforms.dashOffset.value},set(t){this.uniforms.dashOffset.value=t}},dashRatio:{enumerable:!0,get(){return this.uniforms.dashRatio.value},set(t){this.uniforms.dashRatio.value=t}},useDash:{enumerable:!0,get(){return this.uniforms.useDash.value},set(t){this.uniforms.useDash.value=t}},useGradient:{enumerable:!0,get(){return this.uniforms.useGradient.value},set(t){this.uniforms.useGradient.value=t}},visibility:{enumerable:!0,get(){return this.uniforms.visibility.value},set(t){this.uniforms.visibility.value=t}},alphaTest:{enumerable:!0,get(){return this.uniforms.alphaTest.value},set(t){this.uniforms.alphaTest.value=t}},repeat:{enumerable:!0,get(){return this.uniforms.repeat.value},set(t){this.uniforms.repeat.value.copy(t)}}}),this.setValues(e)}copy(e){return super.copy(e),this.lineWidth=e.lineWidth,this.map=e.map,this.useMap=e.useMap,this.alphaMap=e.alphaMap,this.useAlphaMap=e.useAlphaMap,this.color.copy(e.color),this.gradient=e.gradient,this.opacity=e.opacity,this.resolution.copy(e.resolution),this.sizeAttenuation=e.sizeAttenuation,this.dashArray=e.dashArray,this.dashOffset=e.dashOffset,this.dashRatio=e.dashRatio,this.useDash=e.useDash,this.useGradient=e.useGradient,this.visibility=e.visibility,this.alphaTest=e.alphaTest,this.repeat.copy(e.repeat),this}}class Yi extends Je{constructor({points:e,color:t,opacity:r=1,lineWidth:s=.018,isBlurred:i=!1}){super(),this._points=e,this._color=t,this._isBlurred=i,this._opacity=r,this._lineWidth=s,this._init()}_init(){const e=new Da;e.setPoints(this._points),this.geometry=e;const t=new Ua({name:"route-line",color:this._color,sizeAttenuation:1,lineWidth:this._lineWidth,transparent:!0,depthWrite:!1,visibility:0,opacity:this._opacity,toneMapped:!1});t.onBeforeCompile=r=>{r.defines.USE_UV="",r.uniforms.uIsBlurred={value:this._isBlurred},r.fragmentShader=r.fragmentShader.replace("uniform float alphaTest;",` 1009 uniform float alphaTest; 1010 uniform bool uIsBlurred; 1011 `),r.fragmentShader=r.fragmentShader.replace("diffuseColor.a *= step(vCounters, visibility);",` 1012 diffuseColor.a *= step(vCounters, visibility); 1013 1014 // SMOOTH EDGES 1015 float threshold = 0.02; 1016 float maxV = 0.99; 1017 float edges = min(smoothstep(0.0, threshold, vUV.x), smoothstep(maxV, maxV - threshold, vUV.x)); 1018 diffuseColor.a *= edges; 1019 1020 if(uIsBlurred){ 1021 diffuseColor.a *= sin(vUV.y * 3.14); 1022 } 1023 `)},this.material=t}}const xm=["object"],Cm=["object"],Pm={__name:"GlobeGlSceneAirportsItemRoute",props:["start","end","data"],setup(n){const{config:e}=he("globe"),{selectedAirport:t,responsiveVersion:r}=Ve("globe"),{globe:s,airports:i}=e,{main:o,shadow:a}=i.routes,l=W(!1),c=W(null),d=W(),u=ue.timeline(),g=ue.timeline(),_=o.lineWidth[r.value],m=a.lineWidth[r.value],C=Xi({start:n.start,end:n.end,radius:s.radius-0,bendFactor:.075}),v=C.getPoints(30),E=C.getLength(),S=ec.mapLinear(E,0,2,1.8,7),x=new Yi({points:v,color:o.color,opacity:o.opacity,lineWidth:_,isBlurred:!0}
1023);x.renderOrder=bt.renderOrder.route;const L=Xi({start:n.start,end:n.end,radius:s.radius-0,bendFactor:.01}).getPoints(30),y=new Yi({points:L,color:a.color,opacity:a.opacity,lineWidth:m,isBlurred:!0});y.renderOrder=bt.renderOrder.route;const A=()=>{u?.kill(),u?.clear();const b=c.value.getEnterTl();b.duration(S*1.2);const f=x.material,P=y.material;u.set(d.value,{visible:!0}).set(f,{opacity:o.opacity,visibility:0}).set(P,{opacity:a.opacity,visibility:0}).to([f.uniforms.visibility,P.uniforms.visibility],{duration:S,value:1,ease:"power1.inOut"},0).add(b,0).restart(0)},h=()=>{g?.kill(),g?.clear();const b=c.value.getLeaveTl(),f=x.material,P=y.material;g.add(b,0).to([f,P],{opacity:0},0).set(d.value,{visible:!1}).call(()=>{u?.kill()})};return ke(t,b=>l.value=b.key===n.data.key),ke(l,b=>{b?A():h()}),Ie(()=>{}),(b,f)=>(z(),q("TresGroup",{ref_key:"groupRef",ref:d,visible:!1},[F("primitive",{object:O(x)},null,8,xm),F("primitive",{object:O(y)},null,8,Cm),(z(),Ce(kt,null,{default:Re(()=>[ee(O(fm),{ref_key:"airplaneRef",ref:c,curve:O(C)},null,8,["curve"])]),_:1}))],512))}},Tm=new H,Ba=(n,e,t)=>(e=fe.degToRad(90-e),t=fe.degToRad(t),Tm.clone().setFromSphericalCoords(n,e,t)),Yn=new H,Zi=(n,e)=>(Yn.copy(n),Yn.project(e),{x:Yn.x*window.innerWidth*.5+window.innerWidth*.5,y:-Yn.y*window.innerHeight*.5+window.innerHeight*.5}),Em=["position"],Mm=["render-order"],Am=["map"],Sm=["render-order","scale"],km=0,ja={__name:"GlobeGlGlobePin",props:{data:{type:Object,required:!0},textures:{type:Object,required:!0},isSelected:{type:Boolean,default:!1},isActiveType:{type:Boolean,default:!1},renderOrder:{type:Number,default:0}},emits:["click","clear","loop"],setup(n,{emit:e}){const t=new H,{camera:r}=_t(),s={desktop:{scale:{initial:.028,final:.034},trackerScale:1},mobile:{scale:{initial:.071,final:.078},trackerScale:1.5}},i=n,o=e,{data:a,renderOrder:l,textures:c}=i,{isSelected:d,isActiveType:u}=dr(i),{coords:g}=a,{config:_,resources:m,dynamicValues:C}=he("globe"),{globe:v}=_,{responsiveVersion:E}=Ve("globe"),S=s[E.value],x=E.value==="desktop",M=fe.randFloat(.05,.25),L=Ze(null),y=Ze(null),A=Ze(null),h=Ze(null),b=Ze(null),f=Ba(v.radius,g[0],g[1]),P=S.scale.initial,k=S.scale.final,B={value:0},V=m.get(c.default),j=m.get(c.selected);
1023V.colorSpace=sn,j.colorSpace=sn;let N=ue.timeline(),K=ue.timeline();const le=ne=>{h.value.layers.set(ne?0:1)},te=()=>{K?.kill(),K?.clear();const ne=M+.3;K=ue.timeline({delay:ne}),K.call(()=>{le(!0)}).set(L.value,{visible:!0}).set(L.value.scale,{x:0,y:0,z:0}).to(L.value.scale,{duration:.45,x:1,y:1,z:1,ease:"back.out(3.5)"},0)},Y=()=>{K?.kill(),K?.clear();const ne=M;K=ue.timeline({delay:ne}),K.to(L.value.scale,{duration:.45,x:0,y:0,z:0,ease:"back.in(3.5)"},0).set(L.value,{visible:!1}).call(()=>{le(!1)})},Le=(ne=!0)=>{N?.kill(),ne&&(document.body.style.cursor="pointer"),N=ue.timeline(),N.to(y.value.scale,{duration:.25,x:k,y:k,z:k},0).to(B,{duration:.25,value:1},0)},dt=()=>{N?.kill(),document.body.style.cursor="default",N=ue.timeline(),N.to(y.value.scale,{duration:.25,x:P,y:P,z:P},0).to(B,{duration:.25,value:0},0)},De=ne=>{u.value&&Le()},ve=()=>{u.value&&(d.value||dt())};Ar("click",h,()=>{u.value&&(A.value.getWorldPosition(t),o("click",{position:Zi(t,r.value),worldPosition:t}))}),Ar("pointerEnter",h,De),Ar("pointerLeave",h,ve);const He=()=>{u.value&&ue.delayedCall(1.85,te)};return Ke(Me.WEBGL_ENTER,He),ke(d,ne=>{ne===!1?dt():Le(!1)}),ke(u,ne=>{ne?te():Y()}),Ie(()=>{le(!1),y.value.scale.setScalar(P),h.value.updateMatrix(),b.value.onBeforeCompile=ne=>{ne.uniforms.uDefaultTxt={value:V},ne.uniforms.uSelectedTxt={value:j},ne.uniforms.uProgress=B,ne.fragmentShader=ne.fragmentShader.replace("#include <common>",` 1024 #include <common> 1025 uniform float uProgress; 1026 uniform sampler2D uDefaultTxt; 1027 uniform sampler2D uSelectedTxt; 1028 `),ne.fragmentShader=ne.fragmentShader.replace("#include <map_fragment>",` 1029 vec4 txtA = texture2D( uDefaultTxt, vMapUv ); 1030 vec4 txtB = texture2D( uSelectedTxt, vMapUv ); 1031 diffuseColor = mix( txtA, txtB, uProgress ); 1032 `)}}),$t(()=>{N?.kill(),K?.kill()}),qt(()=>{h.value&&C.frames%20===0&&(h.value.lookAt(r.value.position),h.value.updateMatrix()),x&&d.value&&A.value&&(A.value.getWorldPosition(t),o("loop",{position:Zi(t,r.value),worldPosition:t,isVisible:t.z>km}))}),(ne,U)=>(z(),q("TresGroup",{ref_key:"groupRef",ref:L,visible:!1,position:O(f)},[F("TresGroup",{ref_key:"childGroupRef",ref:y},[F("TresSprite",{ref_key:"spriteRef",ref:A,"render-order":O(l),"matrix-auto-update":!1},[F("TresSpriteMaterial",{ref_key:"materialRef",ref:b,name:"globe-pin",transparent:!0,map:O(V),"depth-write":!1,"polygon-offset":!0,"polygon-offset-units":-3e3,"polygon-offset-factor":-2e4,"tone-mapped":!1},null,8,Am)],8,Mm),F("TresMesh",{ref_key:"raycastMeshRef",ref:h,"render-order":O(l),visible:!1,"matrix-auto-update":!1,scale:[O(S).trackerScale,O(S).trackerScale,O(S).trackerScale]},[...U[0]||(U[0]=[F("TresPlaneGeometry",{args:[1,1,1,1]},null,-1),F("TresMeshBasicMaterial",{side:2},null,-1)])],8,Sm)],512)],8,Em))}},Lm={__name:"GlobeGlSceneAirportsItem",props:["data"],setup(n){const{coords:e}=n.data,{config:t,setSelectedAirport:r}=he("globe"),{location:s}=t,{selectedAirport:i,currentType:o}=Ve("globe"),a=W(i.key===n.data.key),l=bt.renderOrder.airport,c={default:"airport-pin-default",selected:"airport-pin-selected"},d=e,u=s.coords,g=m=>{i.value.key!==n.data.key&&r({...n.data,position:m.position,worldPosition:m.worldPosition})},_=m=>{i.value.position=m.position,i.value.worldPosition=m.worldPosition,i.value.isVisible=m.isVisible};return ke(i,m=>{a.value=m.key===n.data.key}),(m,C)=>(z(),q(st,null,[(z(),Ce(kt,null,{default:Re(()=>[ee(O(ja),{data:n.data,"is-selected":O(a),"is-active-type":O(o)==="airports","render-order":O(l),textures:c,onLoop:_,onClick:g},null,8,["data","is-selected","is-active-type","render-order"])]),_:1})),ee(O(Pm),{start:O(d),end:O(u),data:n.data},null,8,["start","end","data"])],64))}},Rm={__name:"GlobeGlSceneAirports",setup(n){const{config:e}=he("globe"),{items:t}=e.airports;return(r,s)=>(z(),q("TresGroup",null,[(z(),Ce(kt,null,{default:Re(()=>[(z(!0),q(st,null,en(O(t),(i,o)=>(z(),Ce(O(Lm),{key:{i:o},data:i},null,8,["data"]))),128))]),_:1}))]))}},Im={__name:"GlobeGlSceneCommunitiesItem",props:["data"],setup(n){const{$event:e}=vt(),{setSelectedCommunity:t}=he("globe"),{selectedCommunity:r,currentType:s}=Ve("globe"),i=W(r.key===n.data.key),o=bt.renderOrder.airport,a={default:"community-pin-default",selected:"community-pin-selected"},l=d=>
1032{r.value.key!==n.data.key&&(e.emit("pin:click",n.data.key),console.log("onPinClick",n.data.key),t({...n.data,position:d.position,worldPosition:d.worldPosition}))},c=d=>{r.value.position=d.position,r.value.worldPosition=d.worldPosition,r.value.isVisible=d.isVisible};return ke(r,d=>{i.value=d.key===n.data.key}),(d,u)=>(z(),Ce(kt,null,{default:Re(()=>[ee(O(ja),{data:n.data,"is-selected":O(i),"is-active-type":O(s)==="communities","render-order":O(o),textures:a,onLoop:c,onClick:l},null,8,["data","is-selected","is-active-type","render-order"])]),_:1}))}},Om={__name:"GlobeGlSceneCommunities",setup(n){const{config:e}=he("globe"),{items:t}=e.communities;return(r,s)=>(z(),q("TresGroup",null,[(z(),Ce(kt,null,{default:Re(()=>[(z(!0),q(st,null,en(O(t),(i,o)=>(z(),Ce(O(Im),{key:{i:o},data:i},null,8,["data"]))),128))]),_:1}))]))}},Fm=["position","render-order"],Vm=["map"],Nm={__name:"GlobeGlSceneMainLocation",async setup(n){let e,t;const r={desktop:{scale:.056},mobile:{scale:.09}},{config:s}=he("globe"),{responsiveVersion:i}=Ve("globe"),{location:o,globe:a}=s,{camera:l}=_t(),c=bt.renderOrder.mainLocation,d=Ze(null),u=Ze(null),g=r[i.value].scale,_=Ba(a.radius-.001,o.coords[0],o.coords[1]);_.y+=g*0;const m=([e,t]=fs(()=>_o([o.texture])),e=await e,t(),e);m.colorSpace=sn;const C=()=>{ue.to(d.value.scale,{duration:.7,x:g,y:g,z:g,delay:1.85,ease:"back.out(2.5)"})};return Ke(Me.WEBGL_ENTER,C),Ie(()=>{d.value.scale.setScalar(0),d.value.geometry.translate(0,.5,0)}),qt(()=>{d.value&&d.value.lookAt(l.value.position)}),(v,E)=>(z(),q("TresMesh",{ref_key:"mesh",ref:d,position:O(_),"render-order":O(c)},[E[0]||(E[0]=F("TresPlaneGeometry",{args:[1,1,1,1]},null,-1)),F("TresMeshBasicMaterial",{ref_key:"material",ref:u,map:O(m),transparent:!0,"alpha-test":.2,"depth-write":!1,"polygon-offset":!0,"polygon-offset-units":-300,"polygon-offset-factor":-2e3,"tone-mapped":!1,name:"main-pin"},null,8,Vm)],8,Fm))}},Dm=["object","rotation-y","render-order"],Um=["render-order"],Bm=["map"],Qi=90,Qr=.15,jm={__name:"GlobeGlSceneOnboarding",setup(n,{expose:e}){const t=new H,{config:r,setIsOnboardingVisible:s,resources:i}=he("globe"),{selectedAirport:o,selectedCommunity:a,currentSidebar:l}=Ve("globe"),c=W(null),d=W(null),u=W(null),g=ue.timeline(),_=[],m=r.globe.radius*.9,C=m*1.02,v=i.get("onboarding-icon");v.colorSpace=sn;const E=bt.renderOrder.onboarding;for(let h=0;h<=Qi;h++){const b=Math.PI*2*(h/Qi),f=Math.cos(b)*m,P=-Math.sin(b)*m;_.push(t.set(f,0,P).clone())}const S=new Da;S.setPoints(_);const x=new Ua({name:"onboarding-line",color:16777215,sizeAttenuation:0,lineWidth:.045,transparent:!0,depthWrite:!1,visibility:.5,toneMapped:!1,dashRatio:.7,dashArray:.02,dashOffset:0}),M=new Je(S,x),L=h=>{g?.kill(),g?.clear(),g.fromTo(M.material,{visibility:0},{duration:2.6,visibility:1,ease:"power2.inOut"},0).addLabel("icon",1.3).fromTo(u.value.scale,{x:0,y:0,z:0},{duration:.6,x:Qr,y:Qr,z:Qr,ease:"back.out(0.6.7)"},"icon").fromTo(u.value.rotation,{z:.5},{duration:.6,z:0,ease:"back.out(1.7)"},"icon").call(h).restart(0)},y=(h=()=>{})=>{g?.kill(),L(h)},A=(h=()=>{})=>{g?.kill(),g?.clear();const b=()=>{c.value.removeFromParent(),h()};g.to(u.value.scale,{duration:.6,x:0,y:0,z:0,ease:"back.in(0.6.7)"},0).to([M.material,u.value.material],{duration:.7,opacity:0,ease:"power2.out"},.2).call(b).restart(0)};return ke([o,a,l],()=>{s(!1)}),Ke(Me.WEBGL_DRAG,({offset:h})=>{(Math.abs(h[0])>40||Math.abs(h[1])>40)&&s(!1)}),qt(h=>{c.value&&(c.value.rotation.y=Math.sin(h.elapsed*2)*.02)}),Ie(()=>{y()}),e({enter:y,leave:A}),(h,b)=>(z(),q("TresGroup",{ref_key:"groupRef",ref:c,"position-y":-.6},[F("primitive",{ref_key:"meshRef",ref:d,object:O(M),"rotation-y":Math.PI*.5,"render-order":O(E)},null,8,Dm),F("TresMesh",{ref_key:"iconRef",ref:u,"position-z":C,scale:[0,0,0],"render-order":O(E)},[b[0]||(b[0]=F("TresPlaneGeometry",null,null,-1)),F("TresMeshBasicMaterial",{map:O(v),transparent:!0,"depth-test":!1,"tone-mapped":!1},null,8,Bm)],8,Um)],512))}},zm=({scaleGroupRef:n,rotationGroupRef:e})=>{const t=vt(),{$event:r}=t,s=new H,i={rotation:{maxAngle:.9,minAngle:-.2},desktop:{dragFactor:1,dampFactor:{rotate:.15,scale:.25},full:{position:s.clone(),scale:{min:1,max:1}},focus:{position:s.clone(),scale:{min:1,max:1}}},mobile:{dragFactor:1.75,dampFactor:{rotate:.2,scale:.28},full:{position:s.clone(),scale:{min:1,max:1}},focus:{position:s.clone(),scale:{min:1,max:1}}}},{$resize:o}=vt(),{camera:a,sizes:l}=_t(),c=he("globe"),{config:d,dynamicValues:u,setIsIntroDone:g,setIsOnboardingVisible:_}=c,{currentSidebar:m,selectedAirport:C,selectedCommunity:v,responsiveVersion:E,isIntroDone:S}=Ve("globe"),x=u.zoom,M=u.rotation,L=u.zoom,y=u.rotation.x,A=u.rotation.y;let h;const b=pe(()=>o.medium&&!o.landscape),f=pe(()=>o.small),P=pe(()=>E.value==="desktop"&&!b.value),k=pe(()=>P.value?"desktop":"mobile"),B=pe(()=>i[k.value]),V=ue.timeline();let j,N;const K=()=>{p();const w=()=>{g(!0)};j=ue.timeline({paused:!0,onComplete:w}),j.from(n.value.position,{duration:1.75,z:-3,y:-.6,ease:"power3.inOut"},0).from(e.value.rotation,{duration:1.75,y:A.static-3.9,x:y.static+.4,ease:"power3.inOut"},0).call(()=>_(k.value==="mobile"),[],1)},le=()=>{j.play(0)},te=()=>{V.isActive()&&(V?.kill(),V?.clear())},Y=w=>Zn(w,i.rotation.minAngle,i.rotation.maxAngle),Le=()=>{const w=ii(a.value,a.value.position.z),R=Math.min(w.width,w.height)/(d.globe.radius*2);if(i.desktop.full.scale.min=R*.6,i.desktop.full.scale.max=R*.9,!m.value)return;const I=(m.value==="airports",.485),D={width:w.width*I,height:w.height},Z=Math.min(D.width,D.height)/(d.globe.radius*2);i.desktop.focus.scale.min=Z*.95,i.desktop.focus.scale.max=Z*.95;const X=-(w.width*.5)+D.width*.525;i.desktop.focus.position.set(X,0,0)},dt=()=>{const w=ii(a.value,a.value.position.z),R=Math.min(w.width,w.height)/(d.globe.radius*2);if(i.mobile.full.scale.min=f.value?R*.95:R*.65,i.mobile.full.scale.max=f.value?R*1.3:R*1.03,!m.value)return;const I=m.value==="communities",D=I?.88:.5,G={width:w.width,height:w.height*D},X=Math.min(G.width,G.height)/(d.globe.radius*2);i.mobile.focus.scale.min=f.value?X*.93:I?X*.75:X*.85,i.mobile.focus.scale.max=f.value?X*1.28:I?X*1:X*1.18;const ge=w.height*.5-G.height*.5;i.mobile.focus.position.set(0,ge,0)},De=()=>{k.value==="desktop"?Le():dt(),p()},ve=w=>{Sr(y,"smooth",y.static,B.value.dampFactor.rotate,w,1/0,kr),Sr(A,"smooth",A.static,B.value.dampFactor.rotate,w,1/0,kr),Sr(L,"smooth",L.static,B.value.dampFactor.scale,w,1/0,kr)},Ge=({delta:w,active:T,first:R})=>{S.value&&(u.state.isPinching||(T&&!R&&te(),A.static+=w[0]*.003*B.value.dragFactor,y.static+=w[1]*.003*B.value.dragFactor,y.static=Y(y.static),u.state.isDragging=T))},He=({delta:w,shiftKey:T,metaKey:R,altKey:I,ctrlKey:D})=>{S.value&&(T||R||I||D?(L.static-=w[1]*.01,L.static=Zn(L.static,0,1),r.emit(Me.WEBGL_WHEEL_FOCUS,!0)):r.emit(Me.WEBGL_WHEEL_FOCUS,!1))},ne=w=>{if(!S.value||u.state.isDragging)return;u.state.isPinching=w.pinching;const T=R=>{if(!R.event.touches||!R.event.touches[0]||!R.event.touches[1])return 0;const I=(R.event.touches[0].clientX-R.event.touches[1].clientX)**2,D=(R.event.touches[0].clientY-R.event.touches[1].clientY)**2;return I+D};if(w.first&&(h=T(w)),w.pinching){const R=T(w),I=(R-h)*.01;h=R,L.static+=I*.003,L.static=Zn(L.static,0,1)}},U=(w,T=!1)=>{const{rotation:R}=u;te();function I(G,Z){return fe.euclideanModulo(Z-G+Math.PI,Math.PI*2)-Math.PI}const D=G=>{const Z=R.y.static;let X=fe.degToRad(-G[0]),ge=fe.degToRad(-G[1]),_e=fe.euclideanModulo(ge-Z+Math.PI,Math.PI*2)-Math.PI;return ge=Z+_e,X=Y(-X/2),[X,ge]};if(w){const G=D(w.coords),Z=D(d.location.coords),X=T?(G[0]+Z[0])*.5+.25:G[0],ge=T?G[1]+I(G[1],Z[1])*.5:G[1];V.to(R.y,{duration:1,static:ge,ease:"power1.out"},0).to(R.x,{duration:1,static:X,ease:"power1.out"},0).restart(0)}},p=(w=0)=>
1032{if(ve(w),C.value||v.value||(u.rotation.y.static+=2e-4),n.value){s.lerpVectors(B.value.full.position,B.value.focus.position,u.fullFocusFactor);const T=fe.lerp(B.value.full.scale.min,B.value.full.scale.max,x.smooth),R=fe.lerp(B.value.focus.scale.min,B.value.focus.scale.max,x.smooth),I=fe.lerp(T,R,u.fullFocusFactor);n.value.position.copy(s),n.value.scale.setScalar(I),e.value.rotation.y=M.y.smooth,e.value.rotation.x=M.x.smooth}};Ke(Me.WEBGL_DRAG,Ge),Ke(Me.WEBGL_WHEEL,He),Ke(Me.WEBGL_PINCH,ne),Ke(Me.WEBGL_ENTER,le),Ie(()=>{De(),K()}),$t(()=>{te(),N?.kill()}),ke(m,w=>{De(),N?.kill(),w?N=ue.to(u,{fullFocusFactor:1,duration:1.125,ease:"expo.inOut"}):N=ue.to(u,{fullFocusFactor:0,duration:1.125,ease:"expo.inOut"})}),o.add(()=>De()),ke(C,w=>{U(w,!0)}),ke(v,w=>{U(w,!1)}),qt(({delta:w})=>{S.value&&p(w)})};async function Gm(){const{config:n,resources:e}=he("globe"),t=[{key:"airplane",type:"model",path:n.airports.airplane.model},{key:"airport-pin-default",type:"texture",path:n.airports.textures.default},{key:"airport-pin-selected",type:"texture",path:n.airports.textures.selected},{key:"community-pin-default",type:"texture",path:n.communities.textures.default},{key:"community-pin-selected",type:"texture",path:n.communities.textures.selected},{key:"onboarding-icon",type:"texture",path:n.onboarding.texture}],r={model:Va,texture:_o},s=t.map(i=>r[i.type](i.type==="texture"?[i.path]:i.path));await Promise.all(s).then(i=>{i.forEach((o,a)=>e.set(t[a].key,o))})}const Hm={__name:"GlobeGlScene",async setup(n){let e,t;const r=vt(),{$event:s}=r,i=Ze(null),o=Ze(null),{renderer:a,sizes:l}=_t(),{dynamicValues:c,config:d,setSizes:u}=he("globe"),{isOnboardingVisible:g}=Ve("globe"),_=W(null),m=W(null);return[e,t]=fs(()=>Gm()),await e,t(),Ie(()=>{const C=fe.clamp(window.devicePixelRatio,1,1.5);a.value.setPixelRatio(C),a.value.setClearColor(d.globe.clearColor),a.value.setClearAlpha(0),setTimeout(()=>{s.emit(Me.WEBGL_ENTER)},1e3)}),ke(l.aspectRatio,async()=>{await bn();const C=l.width.value,v=l.height.value;u(C,v)},{immediate:!0}),ke(g,C=>{C?_.value=!0:m.value?.leave(()=>_.value=!1)},{immediate:!0}),zm({scaleGroupRef:i,rotationGroupRef:o}),qt(C=>{c.frames+=1,s.emit(Me.WEBGL_TICK,C)}),(C,v)=>(z(),q("TresGroup",{ref_key:"scaleGroupRef",ref:i},[F("TresGroup",{ref_key:"rotationGroupRef",ref:o},[ee(O(vc)),(z(),Ce(kt,null,{default:Re(()=>[ee(O(dm))]),_:1})),ee(O(Rm)),ee(O(Om)),(z(),Ce(kt,null,{default:Re(()=>[ee(O(Nm))]),_:1})),O(_)?(z(),Ce(O(jm),{key:0,ref_key:"onboardingRef",ref:m},null,512)):et("",!0)],512)],512))}},$m=tl(Ql),Km={__name:"GlobeGl",setup(n){return(e,t)=>{const r=$m;return z(),q(st,null,[ee(r,{antialias:!1,stencil:!1,alpha:!0,premultipliedAlpha:!0},{default:Re(()=>[ee(O(sc)),(z(),Ce(kt,null,{default:Re(()=>[ee(O(Hm))]),_:1})),ee(O(nc))]),_:1}),ee(O(rc))],64)}}},Wm={class:"flex flex-col items-start px-20 pb-15 gap-y-8"},qm={class:"label-m !text-14 text-highlight"},Xm={class:"flex items-center gap-x-10"},Ym={class:"label-s !text-14 text-black"},Zm={__name:"GlobeUiAirportModal",props:["data","isDesktop"],setup(n){const{setSelectedAirport:e}=he("globe"),t=W(),r=W(),s=W(!1),i=W(),o=W();Ie(()=>{i.value=ue.quickSetter(t.value,"x","px"),o.value=ue.quickSetter(t.value,"y","px")});const a=()=>{e(!1)},l=()=>{!n.data.position||!n.isDesktop||(i.value(n.data.position.x+10),o.value(n.data.position.y+10),s.value=n.data.isVisible)};return ke(s,c=>{ue.set(r.value,{opacity:c?1:0})}),Ke(Me.WEBGL_TICK,l),(c,d)=>(z(),q("div",{ref_key:"rootRef",ref:t,class:"ap-modal-root absolute w-full max-w-[calc(100%-8rem)] s:max-w-[33.5rem] max-s:bottom-150 max-s:left-40"},[F("button",{ref:"close",type:"button","aria-label":"Close",class:"s:hidden rounded-full bg-white text-main absolute -top-60 right-1/2 translate-x-1/2 pointer-events-auto z-2",onClick:a},[...d[0]||(d[0]=[F("svg",{class:"relative z-2 h-40 w-40",viewBox:"0 0 44 44",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M15.707 15L29.1421 28.435L28.435 29.1421L14.9999 15.7071L15.707 15Z",class:"fill-current"}),F("path",{d:"M15 28.4351L28.435 15L29.1421 15.7071L15.7071 29.1422L15 28.4351Z",class:"fill-current"})],-1)])],512),F("div",{ref_key:"contentRef",ref:r,class:"bg-highlight-subtle rounded-[.4rem] flex items-end justify-between p-3 transition-opacity duration-300 ease-out"},[F("div",Wm,[F("h3",qm,xe(n.data.key),1),F("div",Xm,[d[1]||(d[1]=_n('<svg class="h-18 w-auto" viewB
1032ox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-6e803f46><g clip-path="url(#clip0_82_34876)" data-v-6e803f46><path d="M9 0C4.03541 0 0 4.0374 0 9C0 13.9626 4.03541 18 9 18C13.9646 18 18 13.9626 18 9C18 4.0374 13.9646 0 9 0ZM9 17.28C4.43265 17.28 0.720288 13.5655 0.720288 9C0.720288 4.43448 4.43265 0.72 9 0.72C13.5673 0.72 17.2797 4.43448 17.2797 9C17.2797 13.5655 13.5673 17.28 9 17.28ZM9 9.36H4.31813V10.08H9.72029V2.52H9V9.36Z" fill="#2B2B2D" data-v-6e803f46></path></g><defs data-v-6e803f46><clipPath id="clip0_82_34876" data-v-6e803f46><rect width="18" height="18" rx="4" fill="white" data-v-6e803f46></rect></clipPath></defs></svg>',1)),F("span",Ym,xe(n.data.time),1)])]),ee(O(zt),{image:"/airport-modal-image.jpg",class:"h-135 w-130 relative media-fill rounded-[.2rem] overflow-hidden radius-fix"}),ee(O(zt),{image:"/plane.png",class:"w-175 absolute right-0 rtl:left-0 rtl:right-auto top-1/2 -translate-y-1/2 z-2"})],512)],512))}},Qm=Kt(Zm,[["__scopeId","data-v-6e803f46"]]),Jm={class:"flex flex-col items-start justify-between px-15 s:px-20 py-15"},ev={class:"flex flex-col items-start gap-y-8"},tv={class:"label-m !text-14 text-highlight"},nv={class:"label-s !text-12 text-black !leading-[1.3]"},rv={__name:"GlobeUiCommunityModal",props:["data","isDesktop"],setup(n){const{setSelectedCommunity:e}=he("globe"),t=W(),r=W(),s=W(!1),i=W(),o=W();Ie(()=>{i.value=ue.quickSetter(t.value,"x","px"),o.value=ue.quickSetter(t.value,"y","px")});const a=()=>{e(!1)},l=()=>{!n.data.position||!n.isDesktop||(i.value(n.data.position.x+10),o.value(n.data.position.y+10),s.value=n.data.isVisible)};return ke(s,c=>{ue.set(r.value,{opacity:c?1:0})}),Ke(Me.WEBGL_TICK,l),(c,d)=>(z(),q("div",{ref_key:"rootRef",ref:t,class:"com-modal-root absolute w-full max-w-[calc(100%-4rem)] s:max-w-[35rem] max-s:bottom-150 max-s:left-20"},[F("button",{ref:"close",type:"button","aria-label":"Close",class:"s:hidden rounded-full bg-white text-main absolute -top-60 right-1/2 translate-x-1/2 pointer-events-auto z-2",onClick:a},[...d[0]||(d[0]=[F("svg",{class:"relative z-2 h-40 w-40",viewBox:"0 0 44 44",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M15.707 15L29.1421 28.435L28.435 29.1421L14.9999 15.7071L15.707 15Z",class:"fill-current"}),F("path",{d:"M15 28.4351L28.435 15L29.1421 15.7071L15.7071 29.1422L15 28.4351Z",class:"fill-current"})],-1)])],512),F("div",{ref_key:"contentRef",ref:r,class:"bg-highlight-subtle rounded-[.4rem] flex justify-between p-3 transition-opacity duration-300 ease-out"},[F("div",Jm,[ee(O(zt),{image:n.data.logo?.url,class:"h-40 w-40 relative media-fill rounded-full overflow-hidden radius-fix"},null,8,["image"]),F("div",ev,[F("h3",tv,xe(n.data.key),1),F("div",nv,xe(n.data.location),1)])]),ee(O(zt),{image:n.data.image?.src,class:"h-160 w-145 relative media-fill rounded-[.2rem] overflow-hidden radius-fix"},null,8,["image"])],512)],512))}},sv=Kt(rv,[["__scopeId","data-v-be406e96"]]),iv={__name:"GlobeUiSeeAllSwitcher",setup(n){const{setCurrentSidebar:e}=he("globe"),{config:t,currentType:r}=Ve("globe"),s=()=>{e(r.value)};return(i,o)=>(z(),q("button",{type:"button",class:"see-all-root group font-bold pointer-events-auto l:-translate-x-0 z-2 justify-start w-auto max-l:border-transparent ml-6 mr-2",onClick:s},[...o[0]||(o[0]=[_n('<div class="relative h-40 w-40 s:h-40 s:w-40 l:h-40 l:w-40 bg-white rounded-full after:absolute after:inset-0 after:bg-main after:rounded-full after:scale-0 after:transition-transform after:duration-700 after:ease-out-expo has-hover:group-hover:after:scale-110"><svg class="absolute top-0 left-0 w-full h-full text-main has-hover:group-hover:text-white transition-colors duration-500 ease-out z-2" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="20" cy="20" r="19.5" class="stroke-current [stroke-dasharray:2,2] has-hover:group-hover:[stroke-dasharray:0,0] has-hover:group-hover:stroke-white"></circle><path class="fill-current" d="M20.0733 26.0714C16.9092 26.0714 13.8831 24.1055 11.076 20.2251C11.0282 20.1591 11.0017 20.08 11.0001 19.9985C10.9985 19.9169 11.0218 19.8369 11.067 19.769C11.2201 19.5388 14.8778 14.127 20.1518 14.0027C23.3831 13.9175 26.4691 15.8613 29.3306 19.7535C29.3789 19.8192 29.406 19.8981 29.4082 19.9797C29.4105 20.0612 29.3878 20.1414 29.3431 20.2097C29.1899 20.4438 25.531 25.9453 20.2529 26.0692C20.1931 26.0706 20.1331 26.0714 20.0733 26.0714ZM11.8939 19.9873C14.5395 23.5585 17.3495 25.3363 20.2306 25.2691C24.5073 25.1708 27.7726 21.0221 28.5145 19.9976C25.8683 16.4835 23.056 14.7432 20.1745 14.8028C15.9009 14.9013 12.6387 18.9757 11.8939 19.9873Z"></path><path class="fill-current" d="M20.2034 23.325C19.5528 23.325 18.9168 23.132 18.3758 22.7706C17.8348 22.4091 17.4132 21.8954 17.1642 21.2943C16.9152 20.6932 16.8501 20.0318 16.977 19.3936C17.104 18.7555 17.4173 18.1694 17.8773 17.7093C18.3374 17.2493 18.9235 16.936 19.5616 16.8091C20.1997 16.6821 20.8611 16.7473 21.4622 16.9963C22.0633 17.2452 22.5771 17.6669 22.9385 18.2078C23.3 18.7488 23.4929 19.3848 23.4929 20.0354C23.4919 20.9075 23.145 21.7437 22.5283 22.3604C21.9116 22.9771 21.0755 23.324 20.2034 23.325ZM20.2034 17.5464C19.7111 17.5464 19.2299 17.6923 18.8205 17.9658C18.4112 18.2393 18.0922 18.6281 17.9038 19.0829C17.7154 19.5377 17.6661 20.0382 17.7621 20.521C17.8582 21.0038 18.0952 21.4473 18.4433 21.7954C18.7914 22.1435 19.235 22.3806 19.7178 22.4766C20.2006 22.5727 20.7011 22.5234 21.1559 22.335C21.6107 22.1466 21.9994 21.8276 22.273 21.4183C22.5465 21.0089 22.6924 20.5277 22.6924 20.0354C22.6917 19.3755 22.4292 18.7428 21.9626 18.2762C21.496 17.8095 20.8633 17.5471 20.2034 17.5464Z"></path></svg></div>',1)])]))}},ov={class:"flex items-center justify-between h-full relative"},av={class:"relative w-full"},lv={class:"relative flex h-44 s:h-48 l:h-46 text-black"},cv={class:"switch__mask absolute inset-0 flex pointer-events-none bg-main text-white rounded-full overflow-hidden","aria-hidden":"true"},uv={class:"flex-1 shrink-0 flex items-center justify-center eyebrow font-[600] l:font-[400]"},dv={class:"flex-1 shrink-0 flex items-center justify-center eyebrow font-[600] l:font-[400]"},hv={__name:"GlobeUiSwitcher",setup(n){const{setCurrentType:e}=he("globe"),{config:t,currentType:r,currentSidebar:s}=Ve("globe");return(i,o)=>(z(),q("div",{class:it(["switch absolute bottom-65 s:bottom-44 l:bottom-56 left-20 right-20 s:right-auto s:left-1/2 s:-translate-x-1/2 roun
1032ded-full bg-white s:w-full l:w-full s:max-w-[45vw] l:max-w-[34.3rem] text-13 l:text-13 border-[.2rem] border-white pointer-events-auto z-2 tracking-[-0.01em] leading-[1]",{"is-toggled":O(r)==="communities"}])},[F("div",ov,[F("div",av,[F("div",lv,[F("button",{type:"button",class:"flex-1 shrink-0 flex items-center justify-center eyebrow font-[600] l:font-[400]",onClick:o[0]||(o[0]=a=>O(e)("airports"))},xe(O(t).item.airportsLabel||"Airports"),1),F("button",{type:"button",class:"flex-1 shrink-0 flex items-center justify-center eyebrow font-[600] l:font-[400]",onClick:o[1]||(o[1]=a=>O(e)("communities"))},xe(O(t).item.communitiesLabel||"Communities"),1)]),F("div",cv,[F("div",uv,xe(O(t).item.airportsLabel||"Airports"),1),F("div",dv,xe(O(t).item.communitiesLabel||"Communities"),1)])]),ee(O(iv),{class:it([O(s)&&"opacity-0","fade-hide"])},null,8,["class"])])],2))}},pv=Kt(hv,[["__scopeId","data-v-ef4a1445"]]),fv={class:"sidebar-root flex absolute max-l:w-full top-[52.5%] s:top-[47.7%] l:top-0 right-0 bottom-0 pointer-events-auto z-10","data-lenis-prevent":""},mv={class:"relative flex h-full w-full js-mask"},vv={class:"sidebar__content flex h-full w-full overflow-y-auto overflow-x-hidden"},gv={key:0,class:"pt-34 s:pt-32 l:pt-[10.4rem] px-20 s:px-50 l:px-[10.4rem] w-full l:w-[74rem]"},wv={class:"flex flex-col"},bv=["onClick"],_v={class:"flex items-center gap-x-20"},yv=["src"],xv={class:"relative overflow-hidden h-0 w-[calc(100%+4rem)] s:w-[calc(100%+16rem)] l:w-[calc(100%+22rem)] -mx-20 s:-mx-80 l:-mx-100 js-dd"},Cv={class:"relative w-full"},Pv=["onClick"],Tv={class:"text-16 flex flex-col items-start relative mt-[-.5em]"},Ev={class:"flex items-center gap-x-6"},Mv={class:"text-14 opacity-60"},Av={key:1,class:"pt-20 s:pt-40 s:pt-[10.4rem] px-20 s:px-[10.4rem] w-full l:w-[74rem]"},Sv={class:"h3 mb-20 s:mb-30 js-sidebar-elem !tracking-[0em] !text-30 text-black-pure"},kv={class:"flex flex-col gap-y-20 pt-20 s:pt-30"},Lv=["onClick"],Rv={class:"flex rounded-[.4rem] overflow-hidden radius-fix transition-colors duration-500 ease-out has-hover:group-hover:bg-white-pure"},Iv={class:"flex-1 flex flex-col justify-center px-20 s:px-40 max-s:leading-[1.3]"},Ov={class:"text-15 s:text-16 font-sans tracking-[-.05em] text-black-pure"},Fv={class:"text-12 s:text-14 font-sans tracking-[-.05em] text-black"},Vv={__name:"GlobeUiSidebar",setup(n){const e=W(),{setCurrentSidebar:t,config:r,setSelectedAirport:s,setSelectedCommunity:i}=he("globe"),{currentSidebar:o,selectedAirport:a,selectedCommunity:l}=Ve("globe"),c=r.airportsGrouped.items,d=r.communities.items,u=()=>{t(!1)},g=S=>{s({...S})},_=S=>{i({...S})},m=W(-1),C=W(0);let v;const E=(S,x)=>{v||(v=to(".js-dd",e.value).map((M,L)=>{const y=Jt(".js-dd-icon",M.parentNode);return{dd:M,icon:y,active:!1,i:L}})),bn(()=>{m.value=C.value,C.value=x;const M=v[m.value],L=v[C.value];M&&M.active&&M!==L&&(M.active=!1,!M.tl&&(M.tl=Nt.timeline({paused:!0,defaults:{duration:.65,ease:"snappy"}})),M.tl.clear().to(M.dd,{height:0}).to(M.icon,{rotate:0},0).restart()),L&&(L.active=!L.active,!L.tl&&(L.tl=Nt.timeline({paused:!0,defaults:{duration:.65,ease:"snappy"}})),L.tl.clear().to(L.dd,{height:L.active?"auto":0}).to(L.icon,{rotate:L.active?45:0},0).restart())})};return Ie(async()=>{await bn(),o.value==="airports"?s({...c[0].items[0]}):i({...d[0]})}),$t(()=>{s(!1),i(!1)}),(S,x)=>(z(),q("div",fv,[F("button",{type:"button","aria-label":"Close",class:"l:hidden rounded-full bg-white text-main absolute -top-60 right-1/2 translate-x-1/2 z-2 js-close",onClick:u},[...x[0]||(x[0]=[F("svg",{class:"relative z-2 h-40 w-40",viewBox:"0 0 44 44",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M15.707 15L29.1421 28.435L28.435 29.1421L14.9999 15.7071L15.707 15Z",class:"fill-current"}),F("path",{d:"M15 28.4351L28.435 15L29.1421 15.7071L15.7071 29.1422L15 28.4351Z",class:"fill-current"})],-1)])]),F("div",{ref_key:"el",ref:e,class:"relative flex w-full overflow-hidden bg-white before:absolute before:top-0 before:left-0 before:w-full before:opacity-20 before:border-t before:border-highlight"},[F("div",mv,[F("button",{type:"button","aria-label":"Close",class:"group rounded-[.3rem] transition-colors duration-500 ease-out text-main absolute right-40 top-40 z-2 max-l:hidden",onClick:u},[...x[1]||(x[1]=[_n('<svg class="relative z-2 h-40 w-40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-2fdcfd61><rect x="0.5" y="0.5" width="39" height="39" rx="2.5" stroke="currentColor" data-v-2fdcfd61></rect><g class="origin-center group-hover:opacity-100 transition-transform duration-500 ease-out group-hover:rotate-90" data-v-2fdcfd61><path d="M15.9341 15.2364L24.5961 23.8984L23.7299 24.7647L15.0679 16.1026L15.9341 15.2364Z" class="fill-current" data-v-2fdcfd61></path><path d="M24.5962 16.1025L15.9341 24.7646L15.0679 23.8984L23.73 15.2363L24.5962 16.1025Z" class="fill-current" data-v-2fdcfd61></path></g></svg>',1)])]),F("div",vv,[O(o)==="airports"?(z(),q("div",gv,[F("h3",{ref:"elem",class:"h3 mb-20 s:mb-30 js-sidebar-elem !tracking-[0em] !text-30 text-black-pure"},xe(O(r).item.airportsLabel||"Airports"),513),F("div",wv,[(z(!0),q(st,null,en(O(c),(M,L)=>(z(),q("div",{key:M.country,class:"w-full js-sidebar-elem"},[x[6]||(x[6]=F("hr",{class:"relative border-offset opacity-50"},null,-1)),F("button",{type:"button",class:"flex items-center justify-between w-full py-28 s:py-32 text-16 s:text-18 tracking-[-.05em] text-black-pure",onClick:y=>E(y,L)},[F("div",_v,[F("img",{src:M.flag.src,class:"h-25 w-32 relative"},null,8,yv),ei(" "+xe(M.country),1)]),x[2]||(x[2]=F("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",class:"h-16 w-16 transition-transform duration-700 ease-out-expo js-dd-icon"},[F("path",{d:"M8.36328 7.63696H16V8.36353H8.36328V16.0002H7.63672V8.36353H0L0 7.63696H7.63672V0.000244141L8.36328 0.000244141V7.63696Z",fill:"black"})],-1))],8,bv),F("div",xv,[F("nav",Cv,[(z(!0),q(st,null,en(M.items,(y,A)=>(z(),q("button",{type:"button",key:y.key,class:it(["sidebar-ap flex items-start gap-x-20 w-full px-20 s:px-80 l:px-100 text-left py-25 pb-15 s:py-35 s:pb-25 relative transition-colors duration-500 ease-out has-hover:hover:bg-[#C4A97C]/10",O(a).key===y.key&&"bg-[#C4A97C]/10"]),onClick:()=>g(y)},[x[4]||(x[4]=F("svg",{class:"h-20 w-auto",viewBox:"0 0 33 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M32.6131 1.56829C31.8392 0.156925 30.0151 -0.365802 28.5226 0.366016L20.0653 4.49556L9.39699 0.313744L5.96985 1.98647L13.3216 7.78874L7.57287 10.6115L2.8191 8.8342L0 10.1933L5.19598 15.1592L16.3065 12.8592L31.397 5.48874C32.8342 4.70465 33.3869 2.97965 32.6131 1.56829ZM30.8442 4.49556L15.9196 11.8137L5.52764 14.0092
1032L1.82412 10.4547L2.87437 9.93193L7.62814 11.7092L15.3116 7.94556L7.9598 2.19556L9.45226 1.46374L20.1206 5.64556L29.0201 1.25465C29.9598 0.784198 31.1206 1.15011 31.6181 2.03874C32.1709 2.92738 31.7839 4.02511 30.8442 4.49556ZM1.49246 23.0001H31.3417V21.9547H1.49246V23.0001Z",fill:"#081E37"})],-1)),F("div",Tv,[ei(xe(y.key)+" ",1),F("div",Ev,[x[3]||(x[3]=_n('<svg class="h-16 w-auto" viewBox="0 0 18.5 18.5" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-2fdcfd61><g clip-path="url(#clip0_82_34876)" data-v-2fdcfd61><path d="M9 0C4.03541 0 0 4.0374 0 9C0 13.9626 4.03541 18 9 18C13.9646 18 18 13.9626 18 9C18 4.0374 13.9646 0 9 0ZM9 17.28C4.43265 17.28 0.720288 13.5655 0.720288 9C0.720288 4.43448 4.43265 0.72 9 0.72C13.5673 0.72 17.2797 4.43448 17.2797 9C17.2797 13.5655 13.5673 17.28 9 17.28ZM9 9.36H4.31813V10.08H9.72029V2.52H9V9.36Z" fill="#2B2B2D" data-v-2fdcfd61></path></g><defs data-v-2fdcfd61><clipPath id="clip0_82_34876" data-v-2fdcfd61><rect width="18" height="18" rx="4" data-v-2fdcfd61></rect></clipPath></defs></svg>',1)),F("span",Mv,xe(y.time),1)])]),x[5]||(x[5]=F("hr",{class:"absolute inset-x-0 s:inset-x-80 top-0 border-offset opacity-50"},null,-1))],10,Pv))),128))])])]))),128))]),x[7]||(x[7]=F("div",{class:"h-110"},null,-1))])):et("",!0),O(o)==="communities"?(z(),q("div",Av,[F("h3",Sv,xe(O(r).item.communitiesLabel||"Communities"),1),x[9]||(x[9]=F("hr",{class:"border-[#A8A98F80] origin-left js-scale-x"},null,-1)),F("div",kv,[(z(!0),q(st,null,en(O(d),M=>(z(),q("article",{key:M.key,class:it(["group cursor-pointer sidebar-loc before:absolute before:inset-[-1px] before:opacity-100 has-hover:hover:before:opacity-100 before:border before:border-[#A8A98F80] before:rounded-[.4rem] before:transition-opacity before:duration-500 before:ease-out js-sidebar-elem",O(l).key===M.key&&"before:opacity-100"]),onClick:()=>_(M)},[F("div",Rv,[ee(O(zt),{image:M.image?.src,class:"relative media-fill w-full max-w-[13rem] s:max-w-[20rem]"},{default:Re(()=>[...x[8]||(x[8]=[F("div",{class:"pt-[56.25%]"},null,-1)])]),_:1},8,["image"]),F("div",Iv,[F("h2",Ov,xe(M.key),1),F("h3",Fv,xe(M.location),1)])])],10,Lv))),128))]),x[10]||(x[10]=F("div",{class:"h-110"},null,-1))])):et("",!0)])])],512)]))}},Nv=Kt(Vv,[["__scopeId","data-v-2fdcfd61"]]),Dv={class:"zoom-root absolute top-auto l:top-1/2 bottom-50 l:bottom-auto left-60 l:-translate-y-1/2 pointer-events-auto"},Uv={__name:"GlobeUiZoomControls",setup(n){const{dynamicValues:e}=he("globe"),t=W(!0),r=W(!1),s=o=>{e.zoom.static+=.33*o,e.zoom.static=Zn(e.zoom.static,0,1)},i=()=>{e.frames%20===0&&(t.value=e.zoom.static<.99,r.value=e.zoom.static>.01)};return Ke(Me.WEBGL_TICK,i),(o,a)=>(z(),q("div",Dv,[F("button",{type:"button",class:it(["relative h-40 w-40 bg-white text-main rounded-full flex items-center justify-center mb-10 transition-colors duration-500 ease-out group has-hover:hover:text-white after:absolute after:inset-0 after:bg-main after:rounded-full after:scale-0 after:transition-transform after:duration-700 after:ease-out-expo has-hover:hover:after:scale-100",{"is-active":O(t)}]),"aria-label":"Zoom in",onClick:a[0]||(a[0]=()=>s(1))},[...a[2]||(a[2]=[F("svg",{class:"relative h-11 w-auto z-2",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{class:"fill-current","fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.36523 0H4.86523V4.86548H0V6.36548H4.86523V11H6.36523V6.36548H11V4.86548H6.36523V0Z"})],-1)])],2),F("button",{type:"button",class:it(["relative h-40 w-40 bg-white text-main rounded-full flex items-center justify-center transition-colors duration-500 ease-out group has-hover:hover:text-white after:absolute after:inset-0 after:bg-main after:rounded-full after:scale-0 after:transition-transform after:duration-700 after:ease-out-expo has-hover:hover:after:scale-100",{"is-active":O(r)}]),"aria-label":"Zoom out",onClick:a[1]||(a[1]=()=>s(-1))},[...a[3]||(a[3]=[F("svg",{class:"relative h-2 w-auto z-2",viewBox:"0 0 11 2",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{class:"fill-current",d:"M11 0V1.5H0V0H11Z"})],-1)])],2)]))}},Bv=Kt(Uv,[["__scopeId","data-v-569c0e2f"]]),jv={class:"title-l mb-5 s:mb-10 l:mb-20"},zv={class:"text-15 s:text-16 opacity-80 leading-[1.5] block"},Gv={class:"text-15 s:text-16 opacity-80 leading-[1.5]"},Hv={__name:"GlobeUiInfo",setup(n){const e=vt(),{$scroll:t}
1032=e,{config:r,currentSidebar:s}=Ve("globe"),i=()=>{t.to(".button-skip")};return(o,a)=>(z(),q(st,null,[F("div",nl({class:"info-root absolute top-35 s:top-56 l:top-auto l:bottom-56 left-20 s:left-50 l:left-60 right-20 s:right-50 l:right-auto l:w-full l:max-w-[37.5rem] text-white pointer-events-auto has-hover:pointer-events-none"},o.$attrs),[F("h2",jv,xe(O(r).item.title||"Getting to Discovery Maverick"),1),F("p",zv,xe(O(r).item.subtitle||"Discover our communities across the world"),1),F("p",Gv,xe(O(r).item.subtitle2||"Select a point to learn more."),1)],16),F("div",{class:it(["button-skip absolute bottom-0 w-full h-0 fade-hide text-white-pure",O(s)&&"opacity-0"])},[F("button",{type:"button",class:"group flex items-center justify-center s:justify-between w-33 s:w-fit h-33 s:h-40 z-10 pointer-events-auto z-2 absolute bottom-17 s:bottom-44 l:bottom-56 right-20 s:right-50 l:right-58 rounded-[0.3rem] max-s:left-1/2 max-s:-translate-x-1/2 s:left-auto gap-12",onClick:a[0]||(a[0]=()=>i()),"aria-label":"Skip",role:"button",tabindex:"0"},[...a[1]||(a[1]=[_n('<span class="eyebrow font-[600] l:font-[400] max-s:hidden">Skip</span><span class="h-33 s:h-40 w-33 s:w-40"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none" class="fill-transparent has-hover:group-hover:fill-main transition-fill duration-500 ease-out h-full w-full"><rect width="39" height="39" x=".5" y=".5" stroke="currentColor" rx="2.5"></rect><path class="text-white-pure has-hover:group-hover:text-white-pure transition-colors duration-500 ease-out" fill="currentColor" fill-rule="evenodd" d="m20 24.518 4.315-4.198.736.716L20 25.95l-5.051-4.914.736-.716L20 24.518Z" clip-rule="evenodd"></path><path class="text-white-pure has-hover:group-hover:text-white-pure transition-colors duration-500 ease-out" fill="currentColor" fill-rule="evenodd" d="M20.52 13.59v11.644h-1.04V13.591h1.04Z" clip-rule="evenodd"></path></svg></span>',2)])])],2)],64))}},$v={class:"flex relative z-1 w-full s:min-h-[18.5rem] max-w-[28.5rem] s:max-w-[42.5rem] mx-auto js-slides"},Kv=["data-key"],Wv={class:"flex-1 flex flex-col items-start justify-between px-15 s:px-20 py-15"},qv={class:"flex flex-col items-start gap-y-8"},Xv={class:"label-m !text-14 text-highlight"},Yv={class:"label-s !text-12 text-black !leading-[1.3]"},Zv={__name:"GlobeUiCarousel",setup(n){const{$event:e}=vt(),{setCurrentSidebar:t,config:r,setSelectedCommunity:s,setSelectedAirport:i}=he("globe"),{currentSidebar:o}=Ve("globe"),a=pe(()=>r.communities.items),l=W(null),c=_=>{const m=a.value.find(C=>C.key===_);s({...m})},d=()=>{t(!1),s(!1)},u=_=>{const m=a.value.findIndex(C=>C.key===_);l.value?.goto(m)},g=_=>{const m=a.value[_];s({...m})};return Ie(async()=>{await bn(),s({...a.value[0]}),e.on("slide:click",c),e.on("carousel:snap",g),e.on("pin:click",u)}),$t(()=>{e.off("slide:click",c),e.off("carousel:snap",g),e.off("pin:click",u),t(!1),s(!1)}),(_,m)=>{const C=Jl;return z(),Ce(C,{ref_key:"carousel",ref:l,toggle:!0,class:"site-max absolute bottom-30 s:bottom-50 left-0 w-full pointer-events-auto z-4"},{default:Re(()=>[F("button",{ref:"close",type:"button","aria-label":"Close",class:"rounded-full bg-white text-main absolute -top-50 s:-top-60 right-1/2 translate-x-1/2 z-2",onClick:d},[...m[0]||(m[0]=[F("svg",{class:"relative z-2 h-40 w-40",viewBox:"0 0 44 44",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M15.707 15L29.1421 28.435L28.435 29.1421L14.9999 15.7071L15.707 15Z",class:"fill-current"}),F("path",{d:"M15 28.4351L28.435 15L29.1421 15.7071L15.7071 29.1422L15 28.4351Z",class:"fill-current"})],-1)])],512),F("div",$v,[(z(!0),q(st,null,en(O(a),v=>(z(),q("article",{key:v.id,class:"flex relative media-fill min-h-[12.5rem] s:min-h-[15rem] min-w-[100%] max-w-[100%] bg-offset-3 rounded-[.6rem] mr-15 s:mr-25 p-2 s:p-3 js-slide","data-key":v.key},[F("div",Wv,[ee(zt,{image:v.logo?.url,class:"size-30 s:size-40 relative media-fill rounded-full overflow-hidden radius-fix"},null,8,["image"]),F("div",qv,[F("h3",Xv,xe(v.key),1),F("div",Yv,xe(v.location),1)])]),ee(zt,{image:v.image?.src,class:"min-w-[10rem] max-w-[10rem] s:min-w-[14rem] s:max-w-[14rem] relative media-fill rounded-[.3rem] overflow-hidden radiu
1032s-fix"},null,8,["image"])],8,Kv))),128))])]),_:1},512)}}},Qv={class:"absolute inset-0 h-dvh pointer-events-none overflow-hidden z-10"},Jv={__name:"GlobeUi",setup(n){const{$resize:e}=vt(),{config:t,currentSidebar:r,selectedCommunity:s,selectedAirport:i}=Ve("globe"),o=pe(()=>e.small),a=pe(()=>!o.value),l=pe(()=>a.value||!a.value&&r.value===!1),c=pe(()=>e.medium??!1),d=pe(()=>e.landscape??!0),u=pe(()=>c.value&&!d.value&&r.value==="communities"),g=pe(()=>c.value&&!d.value?r.value==="airports":r.value);let _;const m=(v,E)=>{E(),document.body.classList.add("overflow-hidden");const S=Jt(".js-scale-x",v),x=Jt(".js-mask",v),M=to(".js-sidebar-elem",v);!_&&(_=Nt.timeline({paused:!0,defaults:{duration:1.25,ease:"power3.inOut"}})),_.clear().fromTo([v,x],{xPercent:c.value?0:Nt.utils.wrap([100,-100]),yPercent:c.value?Nt.utils.wrap([100,-100]):0},{xPercent:0,yPercent:0}),M.length&&_.fromTo(M,{alpha:0,xPercent:25},{alpha:1,xPercent:0,stagger:.075,ease:"expo"},.45),S&&_.fromTo(S,{scaleX:0},{scaleX:1,ease:"expo.inOut",duration:1.5},.45),c.value&&_.from(close,{scale:0,duration:1,ease:"expo"},.25),_.restart()},C=(v,E)=>{document.body.classList.remove("overflow-hidden");const S=Jt(".js-mask",v),x=Jt(".js-close",v);_?.clear(),_.to([v,S],{xPercent:c.value?0:Nt.utils.wrap([100,-100]),yPercent:c.value?Nt.utils.wrap([100,-100]):0}).add(()=>E()),c.value&&_.to(x,{scale:0,duration:.75,ease:"expo.inOut"},0),_.restart()};return(v,E)=>(z(),q("div",Qv,[F("div",null,[ee(zn,null,{default:Re(()=>
1032[O(i).key&&O(l)&&!O(r)?(z(),Ce(O(Qm),{key:O(i).key,data:O(i),"is-desktop":O(a)},null,8,["data","is-desktop"])):et("",!0)]),_:1}),ee(zn,null,{default:Re(()=>[O(s).key&&O(l)&&!O(r)?(z(),Ce(O(sv),{key:O(s).key,data:O(s),"is-desktop":O(a)},null,8,["data","is-desktop"])):et("",!0)]),_:1})]),ee(O(Hv),{class:it([O(r)&&"opacity-0","fade-hide-text"])},null,8,["class"]),O(a)?(z(),Ce(O(Bv),{key:0,class:it([O(r)&&"opacity-0","fade-hide"])},null,8,["class"])):et("",!0),ee(O(pv),{class:it([O(r)&&"opacity-0","fade-hide"])},null,8,["class"]),ee(zn,{css:!1,onEnter:m,onLeave:C},{default:Re(()=>[O(g)?(z(),Ce(O(Nv),{key:0})):et("",!0)]),_:1}),ee(zn,{name:"fade"},{default:Re(()=>[O(u)?(z(),Ce(O(Zv),{key:0})):et("",!0)]),_:1})]))}},eg=Kt(Jv,[["__scopeId","data-v-952b916e"]]),Ji={globe:{radius:.648,type:"detailed",background:"#081E37",clearColor:"#081E37",gradientColor:"rgb(0, 0, 0, .5)",lights:{ambient:.8},flatConfig:{colors:["#306BA3","#B2CEDF"]},detailedConfig:{color:"#9CB5A5"},ozoneConfig:{color:"#fff",opacity:.1},fresnelConfig:{color:"#fff",opacity:.05,powerFactor:10}},onboarding:{color:"#ffffff",texture:"/images/globe/detailed/mobile-onboarding-icon.png"},location:{coords:[25.217118,55.249461],texture:"/images/globe/main-location.png"},airports:{textures:{default:"/images/globe/airport-pin.png",selected:"/images/globe/airport-pin-active.png"},airplane:{model:"/models/airplane.glb"},routes:{main:{color:"#EFEAE6",opacity:1,lineWidth:{desktop:.018,mobile:.038}},shadow:{color:"#000000",opacity:.15,lineWidth:{desktop:.048,mobile:.068}}},items:[{key:"Nyc",coords:[40.71270381245624,-74.01352706000687]},{key:"Paris",coords:[48.864716,2.349014]},{key:"Rome",coords:[41.902782,12.496366]},{key:"San Diego",coords:[32.71764227816949,-117.16267289358328]}]},communities:{textures:{default:"/images/globe/community-pin.png",selected:"/images/globe/community-pin-active.png"},items:[{key:"Lisbon",coords:[38.7222318313828,-9.139497075296303]},{key:"Berlin",coords:[52.52293788639916,13.407618675801553]},{key:"Nashville",coords:[36.16092339614342,-86.78735858870378]}]}},tg={class:"globe"},ng={class:"globe__content"},rg={class:"globe__wrap absolute inset-0 h-dvh js-globe-wrap"},sg={__name:"Globe",props:["config"],setup(n){const{setConfig:e,setResponsiveVersion:t}=he("globe"),r=oi(ai(Ji),n.config);return e(r),ke(()=>n.config,(s,i)=>{const o=oi(ai(Ji),s);e(o)},{deep:!0}),Ie(()=>{const s=window.innerWidth>768?"desktop":"mobile";t(s)}),(s,i)=>(z(),q("div",tg,[F("div",ng,[F("div",rg,[ee(O(Km))]),ee(O(eg))])]))}},ig=Kt(sg,[["__scopeId","data-v-9241f963"]]),og=50,hg={__name:"BlockGlobe",props:{item:{type:Object,required:!0,default:()=>({})}},setup(n){const e=vt(),{$event:t,$scroll:r,$resize:s}=e,i=W(null);tc().$reset();const a=he("globe"),{dynamicValues:l}=a,c=n,d=pe(()=>({items:c.item.airports.flatMap(A=>A.items).map(A=>({key:A.title,coords:[A.lat,A.lng],time:A.time}))})),u=pe(()=>({items:c.item.airports.map(y=>({country:y.country,flag:y.flag,items:y.items.map(A=>({key:A.title,coords:[A.lat,A.lng],time:A.time}))}))})),g=pe(()=>({items:c.item.communities.map(y=>({key:y.title,coords:[y.lat,y.lng],location:y.location,image:y.image,logo:y.logo}))})),_={globe:{type:"realistic",background:"#081E37",clearColor:"#081E37",ozoneConfig:{color:"#bafeff",opacity:.75}},onboarding:{texture:"/images/globe/detailed/mobile-onboarding-icon.png"},location:{coords:[20.6539,-156.4403],texture:"/images/globe/main-location.png"},airports:{routes:{shadow:{color:"#000000",opacity:.15,lineWidth:{desktop:.048,mobile:.068}}}},airportsGrouped:{},communities:{},item:c.item},m=pe(()=>(_.item=c.item,{..._,airports:{..._.airports,...d.value},airportsGrouped:{...u.value},communities:{...g.value}})),C=W(!1),v=W(0),E=W(!1),S=W(null),x=()=>{E.value=!0,S.value&&clearTimeout(S.value),S.value=setTimeout(()=>{E.value=!1},og)},M=()=>{!E.value&&v.value>.3&&v.value<.7?C.value||(C.value=!0,r.to(i.value.$el.offsetTop)):C.value&&(C.value=!1)};let L;return Ie(async()=>{await bn();const y=s.small;l.zoom.static=y?-.33:.33,l.zoom.smooth=y?-.33:.33,L=rl.create({trigger:i.value.$el,onUpdate:A=>v.value=A.progress,onToggle:({isActive:A})=>{A?document.body.classList.add("is-globe"):document.body.classList.remove("is-globe")}})}),sl(()=>{L?.kill(),S.value&&clearTimeout(S.value)}),Ke("scroll",x),Ke("tick",M),(y,A)=>{const h=ig,b=il;return z(),Ce(b,null,{default:Re(()=>[ee(h,{ref_key:"el",ref:i,config:O(m)},null,8,["config"])]),_:1})}}};export{hg as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.