@tresjs/cientos 2.0.0-rc.2 → 2.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/abstractions/index.d.ts +10 -0
- package/dist/core/controls/index.d.ts +5 -0
- package/dist/core/loaders/index.d.ts +5 -0
- package/dist/core/materials/index.d.ts +2 -0
- package/dist/core/misc/index.d.ts +2 -0
- package/dist/core/shapes/index.d.ts +14 -0
- package/dist/index.d.ts +6 -33
- package/dist/trescientos.js +8662 -8662
- package/dist/trescientos.umd.cjs +6 -6
- package/package.json +1 -1
- package/dist/core/{Levioso.vue.d.ts → abstractions/Levioso.vue.d.ts} +0 -0
- package/dist/core/{Smoke.vue.d.ts → abstractions/Smoke.vue.d.ts} +0 -0
- package/dist/core/{Stars.vue.d.ts → abstractions/Stars.vue.d.ts} +1 -1
- /package/dist/core/{Text3D.vue.d.ts → abstractions/Text3D.vue.d.ts} +0 -0
- /package/dist/core/{useAnimations.d.ts → abstractions/useAnimations.d.ts} +0 -0
- /package/dist/core/{useEnvironment → abstractions/useEnvironment}/component.d.ts +0 -0
- /package/dist/core/{useEnvironment → abstractions/useEnvironment}/const.d.ts +0 -0
- /package/dist/core/{useEnvironment → abstractions/useEnvironment}/index.d.ts +0 -0
- /package/dist/core/{usePamCameraMouse → abstractions/usePamCameraMouse}/component.d.ts +0 -0
- /package/dist/core/{usePamCameraMouse → abstractions/usePamCameraMouse}/index.d.ts +0 -0
- /package/dist/core/{useFBX → loaders/useFBX}/component.vue.d.ts +0 -0
- /package/dist/core/{useFBX → loaders/useFBX}/index.d.ts +0 -0
- /package/dist/core/{useGLTF → loaders/useGLTF}/component.vue.d.ts +0 -0
- /package/dist/core/{useGLTF → loaders/useGLTF}/index.d.ts +0 -0
- /package/dist/core/{meshWobbleMaterial → materials/meshWobbleMaterial}/index.vue.d.ts +0 -0
- /package/dist/core/{meshWobbleMaterial → materials/meshWobbleMaterial}/material.d.ts +0 -0
- /package/dist/core/{useTweakPane → misc/useTweakPane}/index.d.ts +0 -0
- /package/dist/core/{Box.vue.d.ts → shapes/Box.vue.d.ts} +0 -0
- /package/dist/core/{Circle.vue.d.ts → shapes/Circle.vue.d.ts} +0 -0
- /package/dist/core/{Cone.vue.d.ts → shapes/Cone.vue.d.ts} +0 -0
- /package/dist/core/{Dodecahedron.vue.d.ts → shapes/Dodecahedron.vue.d.ts} +0 -0
- /package/dist/core/{Icosahedron.vue.d.ts → shapes/Icosahedron.vue.d.ts} +0 -0
- /package/dist/core/{Octahedron.vue.d.ts → shapes/Octahedron.vue.d.ts} +0 -0
- /package/dist/core/{Plane.vue.d.ts → shapes/Plane.vue.d.ts} +0 -0
- /package/dist/core/{Ring.vue.d.ts → shapes/Ring.vue.d.ts} +0 -0
- /package/dist/core/{Sphere.vue.d.ts → shapes/Sphere.vue.d.ts} +0 -0
- /package/dist/core/{Tetrahedron.vue.d.ts → shapes/Tetrahedron.vue.d.ts} +0 -0
- /package/dist/core/{Torus.vue.d.ts → shapes/Torus.vue.d.ts} +0 -0
- /package/dist/core/{TorusKnot.vue.d.ts → shapes/TorusKnot.vue.d.ts} +0 -0
- /package/dist/core/{Tube.vue.d.ts → shapes/Tube.vue.d.ts} +0 -0
package/dist/trescientos.umd.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/cientos
|
|
3
|
-
* version: v2.0.0-rc.
|
|
3
|
+
* version: v2.0.0-rc.3
|
|
4
4
|
* (c) 2023
|
|
5
5
|
* description: Collection of useful helpers and fully functional, ready-made abstractions for Tres
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
@@ -11,10 +11,7 @@
|
|
|
11
11
|
`;Y=x(B),Y!==!1;){if(X.string+=Y+`
|
|
12
12
|
`,Y.charAt(0)==="#"){X.comments+=Y+`
|
|
13
13
|
`;continue}if((Z=Y.match(Q))&&(X.gamma=parseFloat(Z[1])),(Z=Y.match($))&&(X.exposure=parseFloat(Z[1])),(Z=Y.match(U))&&(X.valid|=2,X.format=Z[1]),(Z=Y.match(z))&&(X.valid|=4,X.height=parseInt(Z[1],10),X.width=parseInt(Z[2],10)),X.valid&2&&X.valid&4)break}return X.valid&2?X.valid&4?X:u(3,"missing image size specifier"):u(3,"missing format specifier")},E=function(B,N,Q){const $=N;if($<8||$>32767||B[0]!==2||B[1]!==2||B[2]&128)return new Uint8Array(B);if($!==(B[2]<<8|B[3]))return u(3,"wrong scanline width");const U=new Uint8Array(4*N*Q);if(!U.length)return u(4,"unable to allocate buffer space");let z=0,X=0;const Y=4*$,Z=new Uint8Array(4),he=new Uint8Array(Y);let ge=Q;for(;ge>0&&X<B.byteLength;){if(X+4>B.byteLength)return u(1);if(Z[0]=B[X++],Z[1]=B[X++],Z[2]=B[X++],Z[3]=B[X++],Z[0]!=2||Z[1]!=2||(Z[2]<<8|Z[3])!=$)return u(3,"bad rgbe scanline format");let pe=0,me;for(;pe<Y&&X<B.byteLength;){me=B[X++];const te=me>128;if(te&&(me-=128),me===0||pe+me>Y)return u(3,"bad scanline data");if(te){const q=B[X++];for(let Ce=0;Ce<me;Ce++)he[pe++]=q}else he.set(B.subarray(X,X+me),pe),pe+=me,X+=me}const ue=$;for(let te=0;te<ue;te++){let q=0;U[z]=he[te+q],q+=$,U[z+1]=he[te+q],q+=$,U[z+2]=he[te+q],q+=$,U[z+3]=he[te+q],z+=4}ge--}return U},I=function(B,N,Q,$){const U=B[N+3],z=Math.pow(2,U-128)/255;Q[$+0]=B[N+0]*z,Q[$+1]=B[N+1]*z,Q[$+2]=B[N+2]*z,Q[$+3]=1},T=function(B,N,Q,$){const U=B[N+3],z=Math.pow(2,U-128)/255;Q[$+0]=f.DataUtils.toHalfFloat(Math.min(B[N+0]*z,65504)),Q[$+1]=f.DataUtils.toHalfFloat(Math.min(B[N+1]*z,65504)),Q[$+2]=f.DataUtils.toHalfFloat(Math.min(B[N+2]*z,65504)),Q[$+3]=f.DataUtils.toHalfFloat(1)},F=new Uint8Array(i);F.pos=0;const j=M(F);if(j!==-1){const B=j.width,N=j.height,Q=E(F.subarray(F.pos),B,N);if(Q!==-1){let $,U,z;switch(this.type){case f.FloatType:z=Q.length/4;const X=new Float32Array(z*4);for(let Z=0;Z<z;Z++)I(Q,Z*4,X,Z*4);$=X,U=f.FloatType;break;case f.HalfFloatType:z=Q.length/4;const Y=new Uint16Array(z*4);for(let Z=0;Z<z;Z++)T(Q,Z*4,Y,Z*4);$=Y,U=f.HalfFloatType;break;default:console.error("THREE.RGBELoader: unsupported type: ",this.type);break}return{width:B,height:N,data:$,header:j.string,gamma:j.gamma,exposure:j.exposure,type:U}}}return null}setDataType(i){return this.type=i,this}load(i,r,s,o){function c(h,u){switch(h.type){case f.FloatType:case f.HalfFloatType:h.encoding=f.LinearEncoding,h.minFilter=f.LinearFilter,h.magFilter=f.LinearFilter,h.generateMipmaps=!1,h.flipY=!0;break}r&&r(h,u)}return super.load(i,c,s,o)}}const ds=new WeakMap;class ml extends f.Loader{constructor(i){super(i),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(i){return this.decoderPath=i,this}setDecoderConfig(i){return this.decoderConfig=i,this}setWorkerLimit(i){return this.workerLimit=i,this}load(i,r,s,o){const c=new f.FileLoader(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(i,h=>{const u={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(h,u).then(r).catch(o)},s,o)}decodeDracoFile(i,r,s,o){const c={attributeIDs:s||this.defaultAttributeIDs,attributeTypes:o||this.defaultAttributeTypes,useUniqueIDs:!!s};this.decodeGeometry(i,c).then(r)}decodeGeometry(i,r){for(const m in r.attributeTypes){const _=r.attributeTypes[m];_.BYTES_PER_ELEMENT!==void 0&&(r.attributeTypes[m]=_.name)}const s=JSON.stringify(r);if(ds.has(i)){const m=ds.get(i);if(m.key===s)return m.promise;if(i.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let o;const c=this.workerNextTaskID++,h=i.byteLength,u=this._getWorker(c,h).then(m=>(o=m,new Promise((_,w)=>{o._callbacks[c]={resolve:_,reject:w},o.postMessage({type:"decode",id:c,taskConfig:r,buffer:i},[i])}))).then(m=>this._createGeometry(m.geometry));return u.catch(()=>!0).then(()=>{o&&c&&this._releaseTask(o,c)}),ds.set(i,{key:s,promise:u}),u}_createGeometry(i){const r=new f.BufferGeometry;i.index&&r.setIndex(new f.BufferAttribute(i.index.array,1));for(let s=0;s<i.attributes.length;s++){const o=i.attributes[s],c=o.name,h=o.array,u=o.itemSize;r.setAttribute(c,new f.BufferAttribute(h,u))}return r}_loadLibrary(i,r){const s=new f.FileLoader(this.manager);return s.setPath(this.decoderPath),s.setResponseType(r),s.setWithCredentials(this.withCredentials),new Promise((o,c)=>{s.load(i,o,void 0,c)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const i=typeof WebAssembly!="object"||this.decoderConfig.type==="js",r=[];return i?r.push(this._loadLibrary("draco_decoder.js","text")):(r.push(this._loadLibrary("draco_wasm_wrapper.js","text")),r.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(r).then(s=>{const o=s[0];i||(this.decoderConfig.wasmBinary=s[1]);const c=fl.toString(),h=["/* draco decoder */",o,"","/* worker */",c.substring(c.indexOf("{")+1,c.lastIndexOf("}"))].join(`
|
|
14
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([h]))}),this.decoderPending}_getWorker(i,r){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const o=new Worker(this.workerSourceURL);o._callbacks={},o._taskCosts={},o._taskLoad=0,o.postMessage({type:"init",decoderConfig:this.decoderConfig}),o.onmessage=function(c){const h=c.data;switch(h.type){case"decode":o._callbacks[h.id].resolve(h);break;case"error":o._callbacks[h.id].reject(h);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+h.type+'"')}},this.workerPool.push(o)}else this.workerPool.sort(function(o,c){return o._taskLoad>c._taskLoad?-1:1});const s=this.workerPool[this.workerPool.length-1];return s._taskCosts[i]=r,s._taskLoad+=r,s})}_releaseTask(i,r){i._taskLoad-=i._taskCosts[r],delete i._callbacks[r],delete i._taskCosts[r]}debug(){console.log("Task load: ",this.workerPool.map(i=>i._taskLoad))}dispose(){for(let i=0;i<this.workerPool.length;++i)this.workerPool[i].terminate();return this.workerPool.length=0,this}}function fl(){let v,i;onmessage=function(h){const u=h.data;switch(u.type){case"init":v=u.decoderConfig,i=new Promise(function(w){v.onModuleLoaded=function(y){w({draco:y})},DracoDecoderModule(v)});break;case"decode":const m=u.buffer,_=u.taskConfig;i.then(w=>{const y=w.draco,x=new y.Decoder,M=new y.DecoderBuffer;M.Init(new Int8Array(m),m.byteLength);try{const E=r(y,x,M,_),I=E.attributes.map(T=>T.array.buffer);E.index&&I.push(E.index.array.buffer),self.postMessage({type:"decode",id:u.id,geometry:E},I)}catch(E){console.error(E),self.postMessage({type:"error",id:u.id,error:E.message})}finally{y.destroy(M),y.destroy(x)}});break}};function r(h,u,m,_){const w=_.attributeIDs,y=_.attributeTypes;let x,M;const E=u.GetEncodedGeometryType(m);if(E===h.TRIANGULAR_MESH)x=new h.Mesh,M=u.DecodeBufferToMesh(m,x);else if(E===h.POINT_CLOUD)x=new h.PointCloud,M=u.DecodeBufferToPointCloud(m,x);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!M.ok()||x.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+M.error_msg());const I={index:null,attributes:[]};for(const T in w){const F=self[y[T]];let j,B;if(_.useUniqueIDs)B=w[T],j=u.GetAttributeByUniqueId(x,B);else{if(B=u.GetAttributeId(x,h[w[T]]),B===-1)continue;j=u.GetAttribute(x,B)}I.attributes.push(o(h,u,x,T,F,j))}return E===h.TRIANGULAR_MESH&&(I.index=s(h,u,x)),h.destroy(x),I}function s(h,u,m){const w=m.num_faces()*3,y=w*4,x=h._malloc(y);u.GetTrianglesUInt32Array(m,y,x);const M=new Uint32Array(h.HEAPF32.buffer,x,w).slice();return h._free(x),{array:M,itemSize:1}}function o(h,u,m,_,w,y){const x=y.num_components(),E=m.num_points()*x,I=E*w.BYTES_PER_ELEMENT,T=c(h,w),F=h._malloc(I);u.GetAttributeDataArrayForAllPoints(m,y,T,I,F);const j=new w(h.HEAPF32.buffer,F,E).slice();return h._free(F),{name:_,array:j,itemSize:x}}function c(h,u){switch(u){case Float32Array:return h.DT_FLOAT32;case Int8Array:return h.DT_INT8;case Int16Array:return h.DT_INT16;case Int32Array:return h.DT_INT32;case Uint8Array:return h.DT_UINT8;case Uint16Array:return h.DT_UINT16;case Uint32Array:return h.DT_UINT32}}}function mt(){const{state:v,setState:i}=P.inject("useTres",Ie.useTres()),r=P.inject("extend")||(()=>{});return{state:v,setState:i,extend:r}}const vl=["args"],bl=P.defineComponent({__name:"OrbitControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null,target:null,enableDamping:{type:Boolean}},setup(v){const i=v,{state:r,setState:s,extend:o}=mt(),c=P.ref(null);return o({OrbitControls:Lr}),P.watch(c,h=>{h&&i.makeDefault?s("controls",h):s("controls",null)}),(h,u)=>{var m;return P.unref(r).camera&&P.unref(r).renderer?(P.openBlock(),P.createElementBlock("TresOrbitControls",{key:0,ref_key:"controls",ref:c,args:[P.unref(r).camera||v.camera,((m=P.unref(r).renderer)==null?void 0:m.domElement)||v.domElement]},null,8,vl)):P.createCommentVNode("",!0)}}}),gl=["args"],_l=P.defineComponent({__name:"MapControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null},setup(v){const i=v,{state:r,setState:s,extend:o}=mt(),c=P.ref(null);return o({MapControls:ha}),P.watch(c,h=>{h&&i.makeDefault?s("controls",h):s("controls",null)}),(h,u)=>{var m;return P.unref(r).camera&&P.unref(r).renderer?(P.openBlock(),P.createElementBlock("TresMapControls",{key:0,ref_key:"controls",ref:c,args:[P.unref(r).camera||v.camera,((m=P.unref(r).renderer)==null?void 0:m.domElement)||v.domElement]},null,8,gl)):P.createCommentVNode("",!0)}}});function qr(v){return P.getCurrentScope()?(P.onScopeDispose(v),!0):!1}function Qr(v){return typeof v=="function"?v():P.unref(v)}const wl=typeof window<"u",Zr=()=>{};function yl(...v){if(v.length!==1)return P.toRef(...v);const i=v[0];return typeof i=="function"?P.readonly(P.customRef(()=>({get:i,set:Zr}))):P.ref(i)}function xl(v,i=!0){P.getCurrentInstance()?P.onMounted(v):i?v():P.nextTick(v)}function Cl(v){var i;const r=Qr(v);return(i=r==null?void 0:r.$el)!=null?i:r}const Ci=wl?window:void 0;function Gt(...v){let i,r,s,o;if(typeof v[0]=="string"||Array.isArray(v[0])?([r,s,o]=v,i=Ci):[i,r,s,o]=v,!i)return Zr;Array.isArray(r)||(r=[r]),Array.isArray(s)||(s=[s]);const c=[],h=()=>{c.forEach(w=>w()),c.length=0},u=(w,y,x,M)=>(w.addEventListener(y,x,M),()=>w.removeEventListener(y,x,M)),m=P.watch(()=>[Cl(i),Qr(o)],([w,y])=>{h(),w&&c.push(...r.flatMap(x=>s.map(M=>u(w,x,M,y))))},{immediate:!0,flush:"post"}),_=()=>{m(),h()};return qr(_),_}function Pl(){const v=P.ref(!1);return P.getCurrentInstance()&&P.onMounted(()=>{v.value=!0}),v}function kl(v){const i=Pl();return P.computed(()=>(i.value,!!v()))}function Ml(v,i={}){const{window:r=Ci}=i,s=kl(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let o;const c=P.ref(!1),h=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",u):o.removeListener(u))},u=()=>{s.value&&(h(),o=r.matchMedia(yl(v).value),c.value=!!(o!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",u):o.addListener(u)))};return P.watchEffect(u),qr(()=>h()),c}const Al={page:v=>[v.pageX,v.pageY],client:v=>[v.clientX,v.clientY],screen:v=>[v.screenX,v.screenY],movement:v=>v instanceof Touch?null:[v.movementX,v.movementY]};function Sl(v={}){const{type:i="page",touch:r=!0,resetOnTouchEnds:s=!1,initialValue:o={x:0,y:0},window:c=Ci,target:h=c,eventFilter:u}=v,m=P.ref(o.x),_=P.ref(o.y),w=P.ref(null),y=typeof i=="function"?i:Al[i],x=F=>{const j=y(F);j&&([m.value,_.value]=j,w.value="mouse")},M=F=>{if(F.touches.length>0){const j=y(F.touches[0]);j&&([m.value,_.value]=j,w.value="touch")}},E=()=>{m.value=o.x,_.value=o.y},I=u?F=>u(()=>x(F),{}):F=>x(F),T=u?F=>u(()=>M(F),{}):F=>M(F);return h&&(Gt(h,"mousemove",I,{passive:!0}),Gt(h,"dragover",I,{passive:!0}),r&&i!=="movement"&&(Gt(h,"touchstart",T,{passive:!0}),Gt(h,"touchmove",T,{passive:!0}),s&&Gt(h,"touchend",E,{passive:!0}))),{x:m,y:_,sourceType:w}}function Ll(v={}){const{window:i=Ci,initialWidth:r=1/0,initialHeight:s=1/0,listenOrientation:o=!0,includeScrollbar:c=!0}=v,h=P.ref(r),u=P.ref(s),m=()=>{i&&(c?(h.value=i.innerWidth,u.value=i.innerHeight):(h.value=i.document.documentElement.clientWidth,u.value=i.document.documentElement.clientHeight))};if(m(),xl(m),Gt("resize",m,{passive:!0}),o){const _=Ml("(orientation: portrait)");P.watch(_,()=>m())}return{width:h,height:u}}const Vl=["args"],Dl=P.defineComponent({__name:"PointerLockControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null,selector:null},setup(v,{expose:i}){const r=v,{state:s,setState:o,extend:c}=mt(),h=P.ref(null);let u;return c({PointerLockControls:pa}),P.watch(h,m=>{var w;m&&r.makeDefault?o("controls",m):o("controls",null);const _=document.getElementById(r.selector||"");u=_||((w=s.renderer)==null?void 0:w.domElement),Gt(u,"click",()=>{var y;(y=h.value)==null||y.lock()})}),i({value:h}),(m,_)=>{var w;return P.unref(s).camera&&P.unref(s).renderer?(P.openBlock(),P.createElementBlock("TresPointerLockControls",{key:0,ref_key:"controls",ref:h,args:[P.unref(s).camera||v.camera,((w=P.unref(s).renderer)==null?void 0:w.domElement)||v.domElement]},null,8,Vl)):P.createCommentVNode("",!0)}}});function Il(v,i){const r={};for(const s of i)Object.prototype.hasOwnProperty.call(v,s)&&(r[s]=v[s]);return r}function El(v,i){const r=`set${i[0].toUpperCase()}${i.slice(1)}`;return v[r]!==void 0}const Tl=P.defineComponent({__name:"TransformControls",props:{object:null,mode:null,enabled:{type:Boolean,default:!0},axis:null,translationSnap:null,rotationSnap:null,scaleSnap:null,space:null,size:null,showX:{type:Boolean},showY:{type:Boolean},showZ:{type:Boolean}},emits:["dragging","change","mouseDown","mouseUp","objectChange"],setup(v,{emit:i}){const r=v;let s=P.shallowRef();const{state:o}=mt(),c=P.computed(()=>Il(r,["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"])),h=()=>i("change",s.value),u=()=>i("mouseDown",s.value),m=()=>i("mouseUp",s.value),_=()=>i("objectChange",s.value),w=x=>{o.controls&&(o.controls.enabled=!x.value),i("dragging",x.value)};function y(x){x.addEventListener("dragging-changed",w),x.addEventListener("change",h),x.addEventListener("mouseDown",u),x.addEventListener("mouseUp",m),x.addEventListener("objectChange",_)}return P.watchEffect(()=>{o.camera&&o.renderer&&o.scene&&r.object&&(s.value=new sa(o.camera,o.renderer.domElement),s.value.attach(r.object),o.scene.add(s.value),y(s.value))}),P.watch([c,s],([x,M])=>{if(x&&M)for(const E in x)if(!El(M,E))M[E]=x[E];else{const I=`set${E[0].toUpperCase()}${E.slice(1)}`;typeof M[I]=="function"&&x[E]!==void 0&&M[I](x[E])}},{immediate:!0}),P.onUnmounted(()=>{s.value&&(s.value.removeEventListener("dragging-changed",w),s.value.removeEventListener("change",h),s.value.removeEventListener("mouseDown",u),s.value.removeEventListener("mouseUp",m),s.value.removeEventListener("objectChange",_))}),(x,M)=>P.renderSlot(x.$slots,"default")}});function Wr(v=!1,i=5,r){const{x:s,y:o}=Sl(),{logWarning:c}=Ie.useLogger(),{width:h,height:u}=Ll(),m=P.computed(()=>(s.value/h.value-.5)*i),_=P.computed(()=>-(o.value/u.value-.5)*i);if(r){const{x:w,y}=r.position;P.watchEffect(()=>{v||r&&(r.position.x=w+m.value,r.position.y=y+_.value)})}else c("Scene must contain a Camera component to use this composable")}const Ol=P.defineComponent({name:"PamCameraMouse",props:["disabled","factor"],setup(v){const{state:i}=mt();return P.watchEffect(()=>{if(i!=null&&i.camera){const r=i==null?void 0:i.camera;Wr(v.disabled,v.factor,r)}}),()=>{}}});var ms={exports:{}};/*! Tweakpane 3.1.9 (c) 2016 cocopon, licensed under the MIT license. */(function(v,i){(function(r,s){s(i)})(Yr,function(r){class s{constructor(e){const[t,l]=e.split("-"),g=t.split(".");this.major=parseInt(g[0],10),this.minor=parseInt(g[1],10),this.patch=parseInt(g[2],10),this.prerelease=l??null}toString(){const e=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[e,this.prerelease].join("-"):e}}class o{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)}}class c{constructor(e){this.target=e}}class h extends c{constructor(e,t,l,g){super(e),this.value=t,this.presetKey=l,this.last=g??!0}}class u extends c{constructor(e,t,l){super(e),this.value=t,this.presetKey=l}}class m extends c{constructor(e,t){super(e),this.expanded=t}}class _ extends c{constructor(e,t){super(e),this.index=t}}function w(n){return n}function y(n){return n==null}function x(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 M(n,e){let t=n;do{const l=Object.getOwnPropertyDescriptor(t,e);if(l&&(l.set!==void 0||l.writable===!0))return!0;t=Object.getPrototypeOf(t)}while(t!==null);return!1}const E={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",propertynotfound:n=>`Property '${n.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class I{static alreadyDisposed(){return new I({type:"alreadydisposed"})}static notBindable(){return new I({type:"notbindable"})}static propertyNotFound(e){return new I({type:"propertynotfound",context:{name:e}})}static shouldNeverHappen(){return new I({type:"shouldneverhappen"})}constructor(e){var t;this.message=(t=E[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}}class T{constructor(e,t,l){this.obj_=e,this.key_=t,this.presetKey_=l??t}static isBindable(e){return!(e===null||typeof e!="object"&&typeof e!="function")}get key(){return this.key_}get presetKey(){return this.presetKey_}read(){return this.obj_[this.key_]}write(e){this.obj_[this.key_]=e}writeProperty(e,t){const l=this.read();if(!T.isBindable(l))throw I.notBindable();if(!(e in l))throw I.propertyNotFound(e);l[e]=t}}class F extends o{get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get title(){var e;return(e=this.controller_.valueController.props.get("title"))!==null&&e!==void 0?e:""}set title(e){this.controller_.valueController.props.set("title",e)}on(e,t){const l=t.bind(this);return this.controller_.valueController.emitter.on(e,()=>{l(new c(this))}),this}}class j{constructor(){this.observers_={}}on(e,t){let l=this.observers_[e];return l||(l=this.observers_[e]=[]),l.push({handler:t}),this}off(e,t){const l=this.observers_[e];return l&&(this.observers_[e]=l.filter(g=>g.handler!==t)),this}emit(e,t){const l=this.observers_[e];l&&l.forEach(g=>{g.handler(t)})}}const B="tp";function N(n){return(t,l)=>[B,"-",n,"v",t?`_${t}`:"",l?`-${l}`:""].join("")}function Q(n,e){return t=>e(n(t))}function $(n){return n.rawValue}function U(n,e){n.emitter.on("change",Q($,e)),e(n.rawValue)}function z(n,e,t){U(n.value(e),t)}function X(n,e,t){t?n.classList.add(e):n.classList.remove(e)}function Y(n,e){return t=>{X(n,e,t)}}function Z(n,e){U(n,t=>{e.textContent=t??""})}const he=N("btn");class ge{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(he()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("button");l.classList.add(he("b")),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const g=e.createElement("div");g.classList.add(he("t")),Z(t.props.value("title"),g),this.buttonElement.appendChild(g)}}class pe{constructor(e,t){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new ge(e,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class me{constructor(e,t){var l;this.constraint_=t==null?void 0:t.constraint,this.equals_=(l=t==null?void 0:t.equals)!==null&&l!==void 0?l:(g,k)=>g===k,this.emitter=new j,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 l=t??{forceEmit:!1,last:!0},g=this.constraint_?this.constraint_.constrain(e):e,k=this.rawValue_;this.equals_(k,g)&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=g,this.emitter.emit("change",{options:l,previousRawValue:k,rawValue:g,sender:this}))}}class ue{constructor(e){this.emitter=new j,this.value_=e}get rawValue(){return this.value_}set rawValue(e){this.setRawValue(e,{forceEmit:!1,last:!0})}setRawValue(e,t){const l=t??{forceEmit:!1,last:!0},g=this.value_;g===e&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=e,this.emitter.emit("change",{options:l,previousRawValue:g,rawValue:this.value_,sender:this}))}}function te(n,e){const t=e==null?void 0:e.constraint,l=e==null?void 0:e.equals;return!t&&!l?new ue(n):new me(n,e)}class q{constructor(e){this.emitter=new j,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((l,g)=>Object.assign(l,{[g]:te(e[g])}),{})}static fromObject(e){const t=this.createCore(e);return new q(t)}get(e){return this.valMap_[e].rawValue}set(e,t){this.valMap_[e].rawValue=t}value(e){return this.valMap_[e]}}function Ce(n,e){const l=Object.keys(e).reduce((g,k)=>{if(g===void 0)return;const L=e[k],R=L(n[k]);return R.succeeded?Object.assign(Object.assign({},g),{[k]:R.value}):void 0},{});return l}function fe(n,e){return n.reduce((t,l)=>{if(t===void 0)return;const g=e(l);if(!(!g.succeeded||g.value===void 0))return[...t,g.value]},[])}function le(n){return n===null?!1:typeof n=="object"}function ie(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 l=n(t);return l!==void 0?{succeeded:!0,value:l}:{succeeded:!1,value:void 0}}}function be(n){return{custom:e=>ie(e)(n),boolean:ie(e=>typeof e=="boolean"?e:void 0)(n),number:ie(e=>typeof e=="number"?e:void 0)(n),string:ie(e=>typeof e=="string"?e:void 0)(n),function:ie(e=>typeof e=="function"?e:void 0)(n),constant:e=>ie(t=>t===e?e:void 0)(n),raw:ie(e=>e)(n),object:e=>ie(t=>{if(le(t))return Ce(t,e)})(n),array:e=>ie(t=>{if(Array.isArray(t))return fe(t,e)})(n)}}const V={optional:be(!0),required:be(!1)};function ce(n,e){const t=V.required.object(e)(n);return t.succeeded?t.value:void 0}function Le(n){console.warn([`Missing '${n.key}' of ${n.target} in ${n.place}.`,"Please rebuild plugins with the latest core package."].join(" "))}function Ee(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}class we{constructor(e){this.value_=e}static create(e){return[new we(e),(t,l)=>{e.setRawValue(t,l)}]}get emitter(){return this.value_.emitter}get rawValue(){return this.value_.rawValue}}const Ze=N("");function gn(n,e){return Y(n,Ze(void 0,e))}class Ue extends q{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_]=we.create(te(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,l,g;const k=e??{};return new Ue(q.createCore({disabled:(t=k.disabled)!==null&&t!==void 0?t:!1,disposed:!1,hidden:(l=k.hidden)!==null&&l!==void 0?l:!1,parent:(g=k.parent)!==null&&g!==void 0?g:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(e){U(this.globalDisabled_,gn(e,"disabled")),z(this,"hidden",gn(e,"hidden"))}bindDisabled(e){U(this.globalDisabled_,t=>{e.disabled=t})}bindTabIndex(e){U(this.globalDisabled_,t=>{e.tabIndex=t?-1:0})}handleDispose(e){this.value("disposed").emitter.on("change",t=>{t&&e()})}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 l=e.previousRawValue;l==null||l.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(t=this.get("parent"))===null||t===void 0||t.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}function _n(){return["veryfirst","first","last","verylast"]}const $t=N(""),st={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class ft{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",()=>{_n().forEach(l=>{t.classList.remove($t(void 0,st[l]))}),this.blade.get("positions").forEach(l=>{t.classList.add($t(void 0,st[l]))})}),this.viewProps.handleDispose(()=>{Ee(t)})}get parent(){return this.parent_}set parent(e){if(this.parent_=e,!("parent"in this.viewProps.valMap_)){Le({key:"parent",target:Ue.name,place:"BladeController.parent"});return}this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}}const Oe="http://www.w3.org/2000/svg";function We(n){n.offsetHeight}function Xt(n,e){const t=n.style.transition;n.style.transition="none",e(),n.style.transition=t}function rt(n){return n.ontouchstart!==void 0}function wn(){return globalThis}function $n(){return wn().document}function yn(n){const e=n.ownerDocument.defaultView;return e&&"document"in e?n.getContext("2d",{willReadFrequently:!0}):null}const xn={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 ct(n,e){const t=n.createElementNS(Oe,"svg");return t.innerHTML=xn[e],t}function vt(n,e,t){n.insertBefore(e,n.children[t])}function Cn(n){n.parentElement&&n.parentElement.removeChild(n)}function Yt(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Pn(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function pt(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const ot=N("lbl");function bt(n,e){const t=n.createDocumentFragment();return e.split(`
|
|
15
|
-
`).map(g=>n.createTextNode(g)).forEach((g,k)=>{k>0&&t.appendChild(n.createElement("br")),t.appendChild(g)}),t}class D{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(ot()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(ot("l")),z(t.props,"label",k=>{y(k)?this.element.classList.add(ot(void 0,"nol")):(this.element.classList.remove(ot(void 0,"nol")),Pn(l),l.appendChild(bt(e,k)))}),this.element.appendChild(l),this.labelElement=l;const g=e.createElement("div");g.classList.add(ot("v")),this.element.appendChild(g),this.valueElement=g}}class K extends ft{constructor(e,t){const l=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{view:new D(e,{props:t.props,viewProps:l}),viewProps:l})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const J={id:"button",type:"blade",accept(n){const e=V,t=ce(n,{title:e.required.string,view:e.required.constant("button"),label:e.optional.string});return t?{params:t}:null},controller(n){return new K(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:new pe(n.document,{props:q.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof K)||!(n.controller.valueController instanceof pe)?null:new F(n.controller)}};class se extends ft{constructor(e){super(e),this.value=e.value}}function ye(){return new q({positions:te([],{equals:x})})}class Ve extends q{constructor(e){super(e)}static create(e){const t={completed:!0,expanded:e,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},l=q.createCore(t);return new Ve(l)}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")&&!y(e)?`${e}px`:"auto"}bindExpandedClass(e,t){const l=()=>{this.styleExpanded?e.classList.add(t):e.classList.remove(t)};z(this,"expanded",l),z(this,"temporaryExpanded",l)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function Vt(n,e){let t=0;return Xt(e,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),We(e),t=e.clientHeight,n.set("temporaryExpanded",null),We(e)}),t}function qt(n,e){e.style.height=n.styleHeight}function Be(n,e){n.value("expanded").emitter.on("beforechange",()=>{if(n.set("completed",!1),y(n.get("expandedHeight"))){const t=Vt(n,e);t>0&&n.set("expandedHeight",t)}n.set("shouldFixHeight",!0),We(e)}),n.emitter.on("change",()=>{qt(n,e)}),qt(n,e),e.addEventListener("transitionend",t=>{t.propertyName==="height"&&n.cleanUpTransition()})}class Ne extends o{constructor(e,t){super(e),this.rackApi_=t}}function bs(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"button"}))}function gs(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"folder"}))}function _s(n,e){const t=e??{};return n.addBlade(Object.assign(Object.assign({},t),{view:"separator"}))}function Xn(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"tab"}))}class gt{constructor(e){this.emitter=new j,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 I.shouldNeverHappen();const l=t!==void 0?t:this.items_.length;this.items_.splice(l,0,e),this.cache_.add(e);const g=this.extract_(e);g&&(g.emitter.on("add",this.onSubListAdd_),g.emitter.on("remove",this.onSubListRemove_),g.allItems().forEach(k=>{this.cache_.add(k)})),this.emitter.emit("add",{index:l,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 l=this.extract_(e);l&&(l.emitter.off("add",this.onSubListAdd_),l.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})}}class Yn extends o{constructor(e){super(e),this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("change",this.onBindingChange_)}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(e){const t=e.sender.target.read();this.emitter_.emit("change",{event:new h(this,t,this.controller_.binding.target.presetKey,e.options.last)})}}class Te extends K{constructor(e,t){super(e,t),this.binding=t.binding}}class qn extends o{constructor(e){super(e),this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("update",this.onBindingUpdate_)}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(e){const t=e.sender.target.read();this.emitter_.emit("update",{event:new u(this,t,this.controller_.binding.target.presetKey)})}}class Je extends K{constructor(e,t){super(e,t),this.binding=t.binding,this.viewProps.bindDisabled(this.binding.ticker),this.viewProps.handleDispose(()=>{this.binding.dispose()})}}function Mi(n){return n instanceof kn?n.apiSet_:n instanceof Ne?n.rackApi_.apiSet_:null}function Qt(n,e){const t=n.find(l=>l.controller_===e);if(!t)throw I.shouldNeverHappen();return t}function Ai(n,e,t){if(!T.isBindable(n))throw I.notBindable();return new T(n,e,t)}class kn extends o{constructor(e,t){super(e),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this),this.onRackInputChange_=this.onRackInputChange_.bind(this),this.onRackMonitorUpdate_=this.onRackMonitorUpdate_.bind(this),this.emitter_=new j,this.apiSet_=new gt(Mi),this.pool_=t;const l=this.controller_.rack;l.emitter.on("add",this.onRackAdd_),l.emitter.on("remove",this.onRackRemove_),l.emitter.on("inputchange",this.onRackInputChange_),l.emitter.on("monitorupdate",this.onRackMonitorUpdate_),l.children.forEach(g=>{this.setUpApi_(g)})}get children(){return this.controller_.rack.children.map(e=>Qt(this.apiSet_,e))}addInput(e,t,l){const g=l??{},k=this.controller_.view.element.ownerDocument,L=this.pool_.createInput(k,Ai(e,t,g.presetKey),g),R=new Yn(L);return this.add(R,g.index)}addMonitor(e,t,l){const g=l??{},k=this.controller_.view.element.ownerDocument,L=this.pool_.createMonitor(k,Ai(e,t),g),R=new qn(L);return this.add(R,g.index)}addFolder(e){return gs(this,e)}addButton(e){return bs(this,e)}addSeparator(e){return _s(this,e)}addTab(e){return Xn(this,e)}add(e,t){this.controller_.rack.add(e.controller_,t);const l=this.apiSet_.find(g=>g.controller_===e.controller_);return l&&this.apiSet_.remove(l),this.apiSet_.add(e),e}remove(e){this.controller_.rack.remove(e.controller_)}addBlade(e){const t=this.controller_.view.element.ownerDocument,l=this.pool_.createBlade(t,e),g=this.pool_.createBladeApi(l);return this.add(g,e.index)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}setUpApi_(e){this.apiSet_.find(l=>l.controller_===e)||this.apiSet_.add(this.pool_.createBladeApi(e))}onRackAdd_(e){this.setUpApi_(e.bladeController)}onRackRemove_(e){if(e.isRoot){const t=Qt(this.apiSet_,e.bladeController);this.apiSet_.remove(t)}}onRackInputChange_(e){const t=e.bladeController;if(t instanceof Te){const l=Qt(this.apiSet_,t),g=t.binding;this.emitter_.emit("change",{event:new h(l,g.target.read(),g.target.presetKey,e.options.last)})}else if(t instanceof se){const l=Qt(this.apiSet_,t);this.emitter_.emit("change",{event:new h(l,t.value.rawValue,void 0,e.options.last)})}}onRackMonitorUpdate_(e){if(!(e.bladeController instanceof Je))throw I.shouldNeverHappen();const t=Qt(this.apiSet_,e.bladeController),l=e.bladeController.binding;this.emitter_.emit("update",{event:new u(t,l.target.read(),l.target.presetKey)})}}class Qn extends Ne{constructor(e,t){super(e,new kn(e.rackController,t)),this.emitter_=new j,this.controller_.foldable.value("expanded").emitter.on("change",l=>{this.emitter_.emit("fold",{event:new m(this,l.sender.rawValue)})}),this.rackApi_.on("change",l=>{this.emitter_.emit("change",{event:l})}),this.rackApi_.on("update",l=>{this.emitter_.emit("update",{event:l})})}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}addInput(e,t,l){return this.rackApi_.addInput(e,t,l)}addMonitor(e,t,l){return this.rackApi_.addMonitor(e,t,l)}addFolder(e){return this.rackApi_.addFolder(e)}addButton(e){return this.rackApi_.addButton(e)}addSeparator(e){return this.rackApi_.addSeparator(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){return this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}addBlade(e){return this.rackApi_.addBlade(e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class Zn extends ft{constructor(e){super({blade:e.blade,view:e.view,viewProps:e.rackController.viewProps}),this.rackController=e.rackController}}class ws{constructor(e,t){const l=N(t.viewName);this.element=e.createElement("div"),this.element.classList.add(l()),t.viewProps.bindClassModifiers(this.element)}}function ys(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof Te&&l.binding===e)return l}return null}function xs(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof Je&&l.binding===e)return l}return null}function Cs(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof se&&l.value===e)return l}return null}function Wn(n){return n instanceof Zt?n.rack:n instanceof Zn?n.rackController.rack:null}function Ps(n){const e=Wn(n);return e?e.bcSet_:null}class ks{constructor(e){var t,l;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.onChildInputChange_=this.onChildInputChange_.bind(this),this.onChildMonitorUpdate_=this.onChildMonitorUpdate_.bind(this),this.onChildValueChange_=this.onChildValueChange_.bind(this),this.onChildViewPropsChange_=this.onChildViewPropsChange_.bind(this),this.onDescendantLayout_=this.onDescendantLayout_.bind(this),this.onDescendantInputChange_=this.onDescendantInputChange_.bind(this),this.onDescendantMonitorUpdate_=this.onDescendantMonitorUpdate_.bind(this),this.emitter=new j,this.blade_=(t=e.blade)!==null&&t!==void 0?t:null,(l=this.blade_)===null||l===void 0||l.value("positions").emitter.on("change",this.onBladePositionsChange_),this.viewProps=e.viewProps,this.bcSet_=new gt(Ps),this.bcSet_.emitter.on("add",this.onSetAdd_),this.bcSet_.emitter.on("remove",this.onSetRemove_)}get children(){return this.bcSet_.items}add(e,t){var l;(l=e.parent)===null||l===void 0||l.remove(e),M(e,"parent")?e.parent=this:(e.parent_=this,Le({key:"parent",target:"BladeController",place:"BladeRack.add"})),this.bcSet_.add(e,t)}remove(e){M(e,"parent")?e.parent=null:(e.parent_=null,Le({key:"parent",target:"BladeController",place:"BladeRack.remove"})),this.bcSet_.remove(e)}find(e){return this.bcSet_.allItems().filter(t=>t instanceof e)}onSetAdd_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("add",{bladeController:e.item,index:e.index,isRoot:t,sender:this}),!t)return;const l=e.item;if(l.viewProps.emitter.on("change",this.onChildViewPropsChange_),l.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),l.viewProps.handleDispose(this.onChildDispose_),l instanceof Te)l.binding.emitter.on("change",this.onChildInputChange_);else if(l instanceof Je)l.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(l instanceof se)l.value.emitter.on("change",this.onChildValueChange_);else{const g=Wn(l);if(g){const k=g.emitter;k.on("layout",this.onDescendantLayout_),k.on("inputchange",this.onDescendantInputChange_),k.on("monitorupdate",this.onDescendantMonitorUpdate_)}}}onSetRemove_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("remove",{bladeController:e.item,isRoot:t,sender:this}),!t)return;const l=e.item;if(l instanceof Te)l.binding.emitter.off("change",this.onChildInputChange_);else if(l instanceof Je)l.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(l instanceof se)l.value.emitter.off("change",this.onChildValueChange_);else{const g=Wn(l);if(g){const k=g.emitter;k.off("layout",this.onDescendantLayout_),k.off("inputchange",this.onDescendantInputChange_),k.off("monitorupdate",this.onDescendantMonitorUpdate_)}}}updatePositions_(){const e=this.bcSet_.items.filter(g=>!g.viewProps.get("hidden")),t=e[0],l=e[e.length-1];this.bcSet_.items.forEach(g=>{const k=[];g===t&&(k.push("first"),(!this.blade_||this.blade_.get("positions").includes("veryfirst"))&&k.push("veryfirst")),g===l&&(k.push("last"),(!this.blade_||this.blade_.get("positions").includes("verylast"))&&k.push("verylast")),g.blade.set("positions",k)})}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)})}onChildInputChange_(e){const t=ys(this.find(Te),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:t,options:e.options,sender:this})}onChildMonitorUpdate_(e){const t=xs(this.find(Je),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("monitorupdate",{bladeController:t,sender:this})}onChildValueChange_(e){const t=Cs(this.find(se),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:t,options:e.options,sender:this})}onDescendantLayout_(e){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onDescendantInputChange_(e){this.emitter.emit("inputchange",{bladeController:e.bladeController,options:e.options,sender:this})}onDescendantMonitorUpdate_(e){this.emitter.emit("monitorupdate",{bladeController:e.bladeController,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class Zt extends ft{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new ws(e,{viewName:"brk",viewProps:t.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const l=new ks({blade:t.root?void 0:t.blade,viewProps:t.viewProps});l.emitter.on("add",this.onRackAdd_),l.emitter.on("remove",this.onRackRemove_),this.rack=l,this.viewProps.handleDispose(()=>{for(let g=this.rack.children.length-1;g>=0;g--)this.rack.children[g].viewProps.set("disposed",!0)})}onRackAdd_(e){e.isRoot&&vt(this.view.element,e.bladeController.view.element,e.index)}onRackRemove_(e){e.isRoot&&Cn(e.bladeController.view.element)}}const Si=N("cnt");class Ms{constructor(e,t){var l;this.className_=N((l=t.viewName)!==null&&l!==void 0?l:"fld"),this.element=e.createElement("div"),this.element.classList.add(this.className_(),Si()),t.viewProps.bindClassModifiers(this.element),this.foldable_=t.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),z(this.foldable_,"completed",Y(this.element,this.className_(void 0,"cpl")));const g=e.createElement("button");g.classList.add(this.className_("b")),z(t.props,"title",H=>{y(H)?this.element.classList.add(this.className_(void 0,"not")):this.element.classList.remove(this.className_(void 0,"not"))}),t.viewProps.bindDisabled(g),this.element.appendChild(g),this.buttonElement=g;const k=e.createElement("div");k.classList.add(this.className_("i")),this.element.appendChild(k);const L=e.createElement("div");L.classList.add(this.className_("t")),Z(t.props.value("title"),L),this.buttonElement.appendChild(L),this.titleElement=L;const R=e.createElement("div");R.classList.add(this.className_("m")),this.buttonElement.appendChild(R);const W=t.containerElement;W.classList.add(this.className_("c")),this.element.appendChild(W),this.containerElement=W}}class Mn extends Zn{constructor(e,t){var l;const g=Ve.create((l=t.expanded)!==null&&l!==void 0?l:!0),k=new Zt(e,{blade:t.blade,root:t.root,viewProps:t.viewProps});super(Object.assign(Object.assign({},t),{rackController:k,view:new Ms(e,{containerElement:k.view.element,foldable:g,props:t.props,viewName:t.root?"rot":void 0,viewProps:t.viewProps})})),this.onTitleClick_=this.onTitleClick_.bind(this),this.props=t.props,this.foldable=g,Be(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}onTitleClick_(){this.foldable.set("expanded",!this.foldable.get("expanded"))}}const As={id:"folder",type:"blade",accept(n){const e=V,t=ce(n,{title:e.required.string,view:e.required.constant("folder"),expanded:e.optional.boolean});return t?{params:t}:null},controller(n){return new Mn(n.document,{blade:n.blade,expanded:n.params.expanded,props:q.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof Mn?new Qn(n.controller,n.pool):null}};class Dt extends se{constructor(e,t){const l=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{value:t.valueController.value,view:new D(e,{props:t.props,viewProps:l}),viewProps:l})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Li extends o{}const Jn=N("spr");class Ss{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Jn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("hr");l.classList.add(Jn("r")),this.element.appendChild(l)}}class Wt extends ft{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new Ss(e,{viewProps:t.viewProps})}))}}const Ls={id:"separator",type:"blade",accept(n){const t=ce(n,{view:V.required.constant("separator")});return t?{params:t}:null},controller(n){return new Wt(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof Wt?new Li(n.controller):null}},Ae=N("tbi");class Vs{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Ae()),t.viewProps.bindClassModifiers(this.element),z(t.props,"selected",k=>{k?this.element.classList.add(Ae(void 0,"sel")):this.element.classList.remove(Ae(void 0,"sel"))});const l=e.createElement("button");l.classList.add(Ae("b")),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const g=e.createElement("div");g.classList.add(Ae("t")),Z(t.props.value("title"),g),this.buttonElement.appendChild(g),this.titleElement=g}}class An{constructor(e,t){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Vs(e,{props:t.props,viewProps:t.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class Vi{constructor(e,t){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new An(e,{props:t.itemProps,viewProps:Ue.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new Zt(e,{blade:ye(),viewProps:Ue.create()}),this.props=t.props,z(this.props,"selected",l=>{this.itemController.props.set("selected",l),this.contentController.viewProps.set("hidden",!l)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class Hn{constructor(e,t){this.controller_=e,this.rackApi_=t}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)}addSeparator(e){return this.rackApi_.addSeparator(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}addInput(e,t,l){return this.rackApi_.addInput(e,t,l)}addMonitor(e,t,l){return this.rackApi_.addMonitor(e,t,l)}addBlade(e){return this.rackApi_.addBlade(e)}}class Di extends Ne{constructor(e,t){super(e,new kn(e.rackController,t)),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new j,this.pageApiMap_=new Map,this.rackApi_.on("change",l=>{this.emitter_.emit("change",{event:l})}),this.rackApi_.on("update",l=>{this.emitter_.emit("update",{event:l})}),this.controller_.tab.selectedIndex.emitter.on("change",this.onSelect_),this.controller_.pageSet.emitter.on("add",this.onPageAdd_),this.controller_.pageSet.emitter.on("remove",this.onPageRemove_),this.controller_.pageSet.items.forEach(l=>{this.setUpPageApi_(l)})}get pages(){return this.controller_.pageSet.items.map(e=>{const t=this.pageApiMap_.get(e);if(!t)throw I.shouldNeverHappen();return t})}addPage(e){const t=this.controller_.view.element.ownerDocument,l=new Vi(t,{itemProps:q.fromObject({selected:!1,title:e.title}),props:q.fromObject({selected:!1})});this.controller_.add(l,e.index);const g=this.pageApiMap_.get(l);if(!g)throw I.shouldNeverHappen();return g}removePage(e){this.controller_.remove(e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}setUpPageApi_(e){const t=this.rackApi_.apiSet_.find(g=>g.controller_===e.contentController);if(!t)throw I.shouldNeverHappen();const l=new Hn(e,t);this.pageApiMap_.set(e,l)}onPageAdd_(e){this.setUpPageApi_(e.item)}onPageRemove_(e){if(!this.pageApiMap_.get(e.item))throw I.shouldNeverHappen();this.pageApiMap_.delete(e.item)}onSelect_(e){this.emitter_.emit("select",{event:new _(this,e.rawValue)})}}const Ii=-1;class Ds{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=te(!0),this.selectedIndex=te(Ii),this.items_=[]}add(e,t){const l=t??this.items_.length;this.items_.splice(l,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=Ii,this.empty.rawValue=!0;return}const e=this.items_.findIndex(t=>t.rawValue);e<0?(this.items_.forEach((t,l)=>{t.rawValue=l===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((t,l)=>{t.rawValue=l===e}),this.selectedIndex.rawValue=e),this.empty.rawValue=!1}onItemSelectedChange_(e){if(e.rawValue){const t=this.items_.findIndex(l=>l===e.sender);this.items_.forEach((l,g)=>{l.rawValue=g===t}),this.selectedIndex.rawValue=t}else this.keepSelection_()}}const It=N("tab");class Et{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(It(),Si()),t.viewProps.bindClassModifiers(this.element),U(t.empty,Y(this.element,It(void 0,"nop")));const l=e.createElement("div");l.classList.add(It("t")),this.element.appendChild(l),this.itemsElement=l;const g=e.createElement("div");g.classList.add(It("i")),this.element.appendChild(g);const k=t.contentsElement;k.classList.add(It("c")),this.element.appendChild(k),this.contentsElement=k}}class Jt extends Zn{constructor(e,t){const l=new Zt(e,{blade:t.blade,viewProps:t.viewProps}),g=new Ds;super({blade:t.blade,rackController:l,view:new Et(e,{contentsElement:l.view.element,empty:g.empty,viewProps:t.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new gt(()=>null),this.pageSet_.emitter.on("add",this.onPageAdd_),this.pageSet_.emitter.on("remove",this.onPageRemove_),this.tab=g}get pageSet(){return this.pageSet_}add(e,t){this.pageSet_.add(e,t)}remove(e){this.pageSet_.remove(this.pageSet_.items[e])}onPageAdd_(e){const t=e.item;vt(this.view.itemsElement,t.itemController.view.element,e.index),t.itemController.viewProps.set("parent",this.viewProps),this.rackController.rack.add(t.contentController,e.index),this.tab.add(t.props.value("selected"))}onPageRemove_(e){const t=e.item;Cn(t.itemController.view.element),t.itemController.viewProps.set("parent",null),this.rackController.rack.remove(t.contentController),this.tab.remove(t.props.value("selected"))}}const ei={id:"tab",type:"blade",accept(n){const e=V,t=ce(n,{pages:e.required.array(e.required.object({title:e.required.string})),view:e.required.constant("tab")});return!t||t.pages.length===0?null:{params:t}},controller(n){const e=new Jt(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(t=>{const l=new Vi(n.document,{itemProps:q.fromObject({selected:!1,title:t.title}),props:q.fromObject({selected:!1})});e.add(l)}),e},api(n){return n.controller instanceof Jt?new Di(n.controller,n.pool):null}};function Is(n,e){const t=n.accept(e.params);if(!t)return null;const l=V.optional.boolean(e.params.disabled).value,g=V.optional.boolean(e.params.hidden).value;return n.controller({blade:ye(),document:e.document,params:Object.assign(Object.assign({},t.params),{disabled:l,hidden:g}),viewProps:Ue.create({disabled:l,hidden:g})})}class Ei{constructor(){this.disabled=!1,this.emitter=new j}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class ti{constructor(e,t){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=e,this.emitter=new j,this.interval_=t,this.setTimer_()}get disabled(){return this.disabled_}set disabled(e){this.disabled_=e,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const e=this.doc_.defaultView;e&&e.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const e=this.doc_.defaultView;e&&(this.timerId_=e.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Sn{constructor(e){this.onValueChange_=this.onValueChange_.bind(this),this.reader=e.reader,this.writer=e.writer,this.emitter=new j,this.value=e.value,this.value.emitter.on("change",this.onValueChange_),this.target=e.target,this.read()}read(){const e=this.target.read();e!==void 0&&(this.value.rawValue=this.reader(e))}write_(e){this.writer(this.target,e)}onValueChange_(e){this.write_(e.rawValue),this.emitter.emit("change",{options:e.options,rawValue:e.rawValue,sender:this})}}function Pe(n,e){for(;n.length<e;)n.push(void 0)}function Ti(n){const e=[];return Pe(e,n),te(e)}function Tt(n){const e=n.indexOf(void 0);return e<0?n:n.slice(0,e)}function Re(n,e){const t=[...Tt(n),e];return t.length>n.length?t.splice(0,t.length-n.length):Pe(t,n.length),t}class Es{constructor(e){this.onTick_=this.onTick_.bind(this),this.reader_=e.reader,this.target=e.target,this.emitter=new j,this.value=e.value,this.ticker=e.ticker,this.ticker.emitter.on("tick",this.onTick_),this.read()}dispose(){this.ticker.dispose()}read(){const e=this.target.read();if(e===void 0)return;const t=this.value.rawValue,l=this.reader_(e);this.value.rawValue=Re(t,l),this.emitter.emit("update",{rawValue:l,sender:this})}onTick_(e){this.read()}}class Ht{constructor(e){this.constraints=e}constrain(e){return this.constraints.reduce((t,l)=>l.constrain(t),e)}}function Xe(n,e){if(n instanceof e)return n;if(n instanceof Ht){const t=n.constraints.reduce((l,g)=>l||(g instanceof e?g:null),null);if(t)return t}return null}class Ot{constructor(e){this.values=q.fromObject({max:e.max,min:e.min})}constrain(e){const t=this.values.get("max"),l=this.values.get("min");return Math.min(Math.max(e,l),t)}}class en{constructor(e){this.values=q.fromObject({options:e})}get options(){return this.values.get("options")}constrain(e){const t=this.values.get("options");return t.length===0||t.filter(g=>g.value===e).length>0?e:t[0].value}}class ni{constructor(e){this.values=q.fromObject({max:e.max,min:e.min})}get maxValue(){return this.values.get("max")}get minValue(){return this.values.get("min")}constrain(e){const t=this.values.get("max"),l=this.values.get("min");let g=e;return y(l)||(g=Math.max(g,l)),y(t)||(g=Math.min(g,t)),g}}class Ln{constructor(e,t=0){this.step=e,this.origin=t}constrain(e){const t=this.origin%this.step,l=Math.round((e-t)/this.step);return t+l*this.step}}const Bt=N("lst");class Oi{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.props_=t.props,this.element=e.createElement("div"),this.element.classList.add(Bt()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("select");l.classList.add(Bt("s")),z(this.props_,"options",k=>{Yt(l),k.forEach((L,R)=>{const W=e.createElement("option");W.dataset.index=String(R),W.textContent=L.text,W.value=String(L.value),l.appendChild(W)})}),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.selectElement=l;const g=e.createElement("div");g.classList.add(Bt("m")),g.appendChild(ct(e,"dropdown")),this.element.appendChild(g),t.value.emitter.on("change",this.onValueChange_),this.value_=t.value,this.update_()}update_(){this.selectElement.value=String(this.value_.rawValue)}onValueChange_(){this.update_()}}class tn{constructor(e,t){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new Oi(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(e){const l=e.currentTarget.selectedOptions.item(0);if(!l)return;const g=Number(l.dataset.index);this.value.rawValue=this.props.get("options")[g].value}}const Bi=N("pop");class Ts{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Bi()),t.viewProps.bindClassModifiers(this.element),U(t.shows,Y(this.element,Bi(void 0,"v")))}}class Ni{constructor(e,t){this.shows=te(!1),this.viewProps=t.viewProps,this.view=new Ts(e,{shows:this.shows,viewProps:this.viewProps})}}const Fi=N("txt");class Os{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Fi()),t.viewProps.bindClassModifiers(this.element),this.props_=t.props,this.props_.emitter.on("change",this.onChange_);const l=e.createElement("input");l.classList.add(Fi("i")),l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,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 Vn{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 Os(e,{props:t.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const l=e.currentTarget.value,g=this.parser_(l);y(g)||(this.value.rawValue=g),this.view.refresh()}}function Bs(n){return String(n)}function ji(n){return n==="false"?!1:!!n}function zi(n){return Bs(n)}class Ns{constructor(e){this.text=e}evaluate(){return Number(this.text)}toString(){return this.text}}const Fs={"**":(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 js{constructor(e,t,l){this.left=t,this.operator=e,this.right=l}evaluate(){const e=Fs[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 Ui={"+":n=>n,"-":n=>-n,"~":n=>~n};class zs{constructor(e,t){this.operator=e,this.expression=t}evaluate(){const e=Ui[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 ii(n){return(e,t)=>{for(let l=0;l<n.length;l++){const g=n[l](e,t);if(g!=="")return g}return""}}function _t(n,e){var t;const l=n.substr(e).match(/^\s+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Us(n,e){const t=n.substr(e,1);return t.match(/^[1-9]$/)?t:""}function nn(n,e){var t;const l=n.substr(e).match(/^[0-9]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Rs(n,e){const t=nn(n,e);if(t!=="")return t;const l=n.substr(e,1);if(e+=1,l!=="-"&&l!=="+")return"";const g=nn(n,e);return g===""?"":l+g}function He(n,e){const t=n.substr(e,1);if(e+=1,t.toLowerCase()!=="e")return"";const l=Rs(n,e);return l===""?"":t+l}function Ri(n,e){const t=n.substr(e,1);if(t==="0")return t;const l=Us(n,e);return e+=l.length,l===""?"":l+nn(n,e)}function Gs(n,e){const t=Ri(n,e);if(e+=t.length,t==="")return"";const l=n.substr(e,1);if(e+=l.length,l!==".")return"";const g=nn(n,e);return e+=g.length,t+l+g+He(n,e)}function Gi(n,e){const t=n.substr(e,1);if(e+=t.length,t!==".")return"";const l=nn(n,e);return e+=l.length,l===""?"":t+l+He(n,e)}function Ks(n,e){const t=Ri(n,e);return e+=t.length,t===""?"":t+He(n,e)}const Ki=ii([Gs,Gi,Ks]);function si(n,e){var t;const l=n.substr(e).match(/^[01]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function $s(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0b")return"";const l=si(n,e);return l===""?"":t+l}function $i(n,e){var t;const l=n.substr(e).match(/^[0-7]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Ge(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0o")return"";const l=$i(n,e);return l===""?"":t+l}function Xs(n,e){var t;const l=n.substr(e).match(/^[0-9a-f]+/i);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Ys(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0x")return"";const l=Xs(n,e);return l===""?"":t+l}const ri=ii([$s,Ge,Ys]),qs=ii([ri,Ki]);function ht(n,e){const t=qs(n,e);return e+=t.length,t===""?null:{evaluable:new Ns(t),cursor:e}}function oi(n,e){const t=n.substr(e,1);if(e+=t.length,t!=="(")return null;const l=Dn(n,e);if(!l)return null;e=l.cursor,e+=_t(n,e).length;const g=n.substr(e,1);return e+=g.length,g!==")"?null:{evaluable:l.evaluable,cursor:e}}function Qs(n,e){var t;return(t=ht(n,e))!==null&&t!==void 0?t:oi(n,e)}function ai(n,e){const t=Qs(n,e);if(t)return t;const l=n.substr(e,1);if(e+=l.length,l!=="+"&&l!=="-"&&l!=="~")return null;const g=ai(n,e);return g?(e=g.cursor,{cursor:e,evaluable:new zs(l,g.evaluable)}):null}function Zs(n,e,t){t+=_t(e,t).length;const l=n.filter(g=>e.startsWith(g,t))[0];return l?(t+=l.length,t+=_t(e,t).length,{cursor:t,operator:l}):null}function wt(n,e){return(t,l)=>{const g=n(t,l);if(!g)return null;l=g.cursor;let k=g.evaluable;for(;;){const L=Zs(e,t,l);if(!L)break;l=L.cursor;const R=n(t,l);if(!R)return null;l=R.cursor,k=new js(L.operator,k,R.evaluable)}return k?{cursor:l,evaluable:k}:null}}const Xi=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,e)=>wt(n,e),ai);function Dn(n,e){return e+=_t(n,e).length,Xi(n,e)}function Yi(n){const e=Dn(n,0);return!e||e.cursor+_t(n,e.cursor).length!==n.length?null:e.evaluable}function et(n){var e;const t=Yi(n);return(e=t==null?void 0:t.evaluate())!==null&&e!==void 0?e:null}function at(n){if(typeof n=="number")return n;if(typeof n=="string"){const e=et(n);if(!y(e))return e}return 0}function Ws(n){return String(n)}function Se(n){return e=>e.toFixed(Math.max(Math.min(n,20),0))}const qi=Se(0);function sn(n){return qi(n)+"%"}function li(n){return String(n)}function ut(n){return n}function Nt({primary:n,secondary:e,forward:t,backward:l}){let g=!1;function k(L){g||(g=!0,L(),g=!1)}n.emitter.on("change",L=>{k(()=>{e.setRawValue(t(n,e),L.options)})}),e.emitter.on("change",L=>{k(()=>{n.setRawValue(l(n,e),L.options)}),k(()=>{e.setRawValue(t(n,e),L.options)})}),k(()=>{e.setRawValue(t(n,e),{forceEmit:!1,last:!0})})}function De(n,e){const t=n*(e.altKey?.1:1)*(e.shiftKey?10:1);return e.upKey?+t:e.downKey?-t:0}function rn(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function tt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function Qi(n){return n==="ArrowUp"||n==="ArrowDown"}function In(n){return Qi(n)||n==="ArrowLeft"||n==="ArrowRight"}function ci(n,e){var t,l;const g=e.ownerDocument.defaultView,k=e.getBoundingClientRect();return{x:n.pageX-(((t=g&&g.scrollX)!==null&&t!==void 0?t:0)+k.left),y:n.pageY-(((l=g&&g.scrollY)!==null&&l!==void 0?l:0)+k.top)}}class yt{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 j,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.focus();const l=this.elem_.ownerDocument;l.addEventListener("mousemove",this.onDocumentMouseMove_),l.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(ci(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onDocumentMouseMove_(e){this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(ci(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_(ci(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onTouchStart_(e){e.preventDefault();const t=e.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-l.left,y:t.clientY-l.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchMove_(e){const t=e.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-l.left,y:t.clientY-l.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchEnd_(e){var t;const l=(t=e.targetTouches.item(0))!==null&&t!==void 0?t:this.lastTouch_,g=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:e.altKey,data:this.computePosition_(l?{x:l.clientX-g.left,y:l.clientY-g.top}:void 0),sender:this,shiftKey:e.shiftKey})}}function _e(n,e,t,l,g){const k=(n-e)/(t-e);return l+k*(g-l)}function pi(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function ke(n,e,t){return Math.min(Math.max(n,e),t)}function Ft(n,e){return(n%e+e)%e}const Fe=N("txt");class hi{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(Fe(),Fe(void 0,"num")),t.arrayPosition&&this.element.classList.add(Fe(void 0,t.arrayPosition)),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("input");l.classList.add(Fe("i")),l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=t.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(Fe()),this.inputElement.classList.add(Fe("i"));const g=e.createElement("div");g.classList.add(Fe("k")),this.element.appendChild(g),this.knobElement=g;const k=e.createElementNS(Oe,"svg");k.classList.add(Fe("g")),this.knobElement.appendChild(k);const L=e.createElementNS(Oe,"path");L.classList.add(Fe("gb")),k.appendChild(L),this.guideBodyElem_=L;const R=e.createElementNS(Oe,"path");R.classList.add(Fe("gh")),k.appendChild(R),this.guideHeadElem_=R;const W=e.createElement("div");W.classList.add(N("tt")()),this.knobElement.appendChild(W),this.tooltipElem_=W,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.refresh()}onDraggingChange_(e){if(e.rawValue===null){this.element.classList.remove(Fe(void 0,"drg"));return}this.element.classList.add(Fe(void 0,"drg"));const t=e.rawValue/this.props_.get("draggingScale"),l=t+(t>0?-1:t<0?1:0),g=ke(-l,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${l+g},0 L${l},4 L${l+g},8`,`M ${t},-1 L${t},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${t},4`);const k=this.props_.get("formatter");this.tooltipElem_.textContent=k(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 on{constructor(e,t){var l;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.baseStep_=t.baseStep,this.parser_=t.parser,this.props=t.props,this.sliderProps_=(l=t.sliderProps)!==null&&l!==void 0?l:null,this.value=t.value,this.viewProps=t.viewProps,this.dragging_=te(null),this.view=new hi(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 g=new yt(this.view.knobElement);g.emitter.on("down",this.onPointerDown_),g.emitter.on("move",this.onPointerMove_),g.emitter.on("up",this.onPointerUp_)}constrainValue_(e){var t,l;const g=(t=this.sliderProps_)===null||t===void 0?void 0:t.get("minValue"),k=(l=this.sliderProps_)===null||l===void 0?void 0:l.get("maxValue");let L=e;return g!==void 0&&(L=Math.max(L,g)),k!==void 0&&(L=Math.min(L,k)),L}onInputChange_(e){const l=e.currentTarget.value,g=this.parser_(l);y(g)||(this.value.rawValue=this.constrainValue_(g)),this.view.refresh()}onInputKeyDown_(e){const t=De(this.baseStep_,rn(e));t!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+t),{forceEmit:!1,last:!1})}onInputKeyUp_(e){De(this.baseStep_,rn(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("draggingScale"))}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 ui=N("sld");class je{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(ui()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(ui("t")),t.viewProps.bindTabIndex(l),this.element.appendChild(l),this.trackElement=l;const g=e.createElement("div");g.classList.add(ui("k")),this.trackElement.appendChild(g),this.knobElement=g,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.update_()}update_(){const e=ke(_e(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${e}%`}onChange_(){this.update_()}}class di{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.baseStep_=t.baseStep,this.value=t.value,this.viewProps=t.viewProps,this.props=t.props,this.view=new je(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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(_e(ke(e.point.x,0,e.bounds.width),0,e.bounds.width,this.props.get("minValue"),this.props.get("maxValue")),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=De(this.baseStep_,tt(e));t!==0&&this.value.setRawValue(this.value.rawValue+t,{forceEmit:!1,last:!1})}onKeyUp_(e){De(this.baseStep_,tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const an=N("sldtxt");class mi{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(an());const l=e.createElement("div");l.classList.add(an("s")),this.sliderView_=t.sliderView,l.appendChild(this.sliderView_.element),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(an("t")),this.textView_=t.textView,g.appendChild(this.textView_.element),this.element.appendChild(g)}}class En{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.sliderC_=new di(e,{baseStep:t.baseStep,props:t.sliderProps,value:t.value,viewProps:this.viewProps}),this.textC_=new on(e,{baseStep:t.baseStep,parser:t.parser,props:t.textProps,sliderProps:t.sliderProps,value:t.value,viewProps:t.viewProps}),this.view=new mi(e,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function Ye(n,e){n.write(e)}function ln(n){const e=V;if(Array.isArray(n))return e.required.array(e.required.object({text:e.required.string,value:e.required.raw}))(n).value;if(typeof n=="object")return e.required.raw(n).value}function fi(n){if(n==="inline"||n==="popup")return n}function lt(n){const e=V;return e.required.object({max:e.optional.number,min:e.optional.number,step:e.optional.number})(n).value}function Zi(n){if(Array.isArray(n))return n;const e=[];return Object.keys(n).forEach(t=>{e.push({text:t,value:n[t]})}),e}function vi(n){return y(n)?null:new en(Zi(n))}function Js(n){const e=n?Xe(n,Ln):null;return e?e.step:null}function Tn(n,e){const t=n&&Xe(n,Ln);return t?pi(t.step):Math.max(pi(e),2)}function xt(n){const e=Js(n);return e??1}function Ct(n,e){var t;const l=n&&Xe(n,Ln),g=Math.abs((t=l==null?void 0:l.step)!==null&&t!==void 0?t:e);return g===0?.1:Math.pow(10,Math.floor(Math.log10(g))-1)}const cn=N("ckb");class pn{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(cn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("label");l.classList.add(cn("l")),this.element.appendChild(l);const g=e.createElement("input");g.classList.add(cn("i")),g.type="checkbox",l.appendChild(g),this.inputElement=g,t.viewProps.bindDisabled(this.inputElement);const k=e.createElement("div");k.classList.add(cn("w")),l.appendChild(k);const L=ct(e,"check");k.appendChild(L),t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class Wi{constructor(e,t){this.onInputChange_=this.onInputChange_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new pn(e,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const t=e.currentTarget;this.value.rawValue=t.checked}}function Ji(n){const e=[],t=vi(n.options);return t&&e.push(t),new Ht(e)}const On={id:"input-bool",type:"input",accept:(n,e)=>{if(typeof n!="boolean")return null;const l=ce(e,{options:V.optional.custom(ln)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>ji,constraint:n=>Ji(n.params),writer:n=>Ye},controller:n=>{const e=n.document,t=n.value,l=n.constraint,g=l&&Xe(l,en);return g?new tn(e,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps}):new Wi(e,{value:t,viewProps:n.viewProps})}},Pt=N("col");class bi{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Pt()),t.foldable.bindExpandedClass(this.element,Pt(void 0,"expanded")),z(t.foldable,"completed",Y(this.element,Pt(void 0,"cpl")));const l=e.createElement("div");l.classList.add(Pt("h")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(Pt("s")),l.appendChild(g),this.swatchElement=g;const k=e.createElement("div");if(k.classList.add(Pt("t")),l.appendChild(k),this.textElement=k,t.pickerLayout==="inline"){const L=e.createElement("div");L.classList.add(Pt("p")),this.element.appendChild(L),this.pickerElement=L}else this.pickerElement=null}}function Hs(n,e,t){const l=ke(n/255,0,1),g=ke(e/255,0,1),k=ke(t/255,0,1),L=Math.max(l,g,k),R=Math.min(l,g,k),W=L-R;let H=0,de=0;const ve=(R+L)/2;return W!==0&&(de=W/(1-Math.abs(L+R-1)),l===L?H=(g-k)/W:g===L?H=2+(k-l)/W:H=4+(l-g)/W,H=H/6+(H<0?1:0)),[H*360,de*100,ve*100]}function er(n,e,t){const l=(n%360+360)%360,g=ke(e/100,0,1),k=ke(t/100,0,1),L=(1-Math.abs(2*k-1))*g,R=L*(1-Math.abs(l/60%2-1)),W=k-L/2;let H,de,ve;return l>=0&&l<60?[H,de,ve]=[L,R,0]:l>=60&&l<120?[H,de,ve]=[R,L,0]:l>=120&&l<180?[H,de,ve]=[0,L,R]:l>=180&&l<240?[H,de,ve]=[0,R,L]:l>=240&&l<300?[H,de,ve]=[R,0,L]:[H,de,ve]=[L,0,R],[(H+W)*255,(de+W)*255,(ve+W)*255]}function tr(n,e,t){const l=ke(n/255,0,1),g=ke(e/255,0,1),k=ke(t/255,0,1),L=Math.max(l,g,k),R=Math.min(l,g,k),W=L-R;let H;W===0?H=0:L===l?H=60*(((g-k)/W%6+6)%6):L===g?H=60*((k-l)/W+2):H=60*((l-g)/W+4);const de=L===0?0:W/L,ve=L;return[H,de*100,ve*100]}function Hi(n,e,t){const l=Ft(n,360),g=ke(e/100,0,1),k=ke(t/100,0,1),L=k*g,R=L*(1-Math.abs(l/60%2-1)),W=k-L;let H,de,ve;return l>=0&&l<60?[H,de,ve]=[L,R,0]:l>=60&&l<120?[H,de,ve]=[R,L,0]:l>=120&&l<180?[H,de,ve]=[0,L,R]:l>=180&&l<240?[H,de,ve]=[0,R,L]:l>=240&&l<300?[H,de,ve]=[R,0,L]:[H,de,ve]=[L,0,R],[(H+W)*255,(de+W)*255,(ve+W)*255]}function d(n,e,t){const l=t+e*(100-Math.abs(2*t-100))/200;return[n,l!==0?e*(100-Math.abs(2*t-100))/l:0,t+e*(100-Math.abs(2*t-100))/(2*100)]}function a(n,e,t){const l=100-Math.abs(t*(200-e)/100-100);return[n,l!==0?e*t/l:0,t*(200-e)/(2*100)]}function p(n){return[n[0],n[1],n[2]]}function b(n,e){return[n[0],n[1],n[2],e]}const C={hsl:{hsl:(n,e,t)=>[n,e,t],hsv:d,rgb:er},hsv:{hsl:a,hsv:(n,e,t)=>[n,e,t],rgb:Hi},rgb:{hsl:Hs,hsv:tr,rgb:(n,e,t)=>[n,e,t]}};function S(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 O(n,e){return n===e?e:Ft(n,e)}function G(n,e,t){var l;const g=S(e,t);return[e==="rgb"?ke(n[0],0,g[0]):O(n[0],g[0]),ke(n[1],0,g[1]),ke(n[2],0,g[2]),ke((l=n[3])!==null&&l!==void 0?l:1,0,1)]}function oe(n,e,t,l){const g=S(e,t),k=S(e,l);return n.map((L,R)=>L/g[R]*k[R])}function Ke(n,e,t){const l=oe(n,e.mode,e.type,"int"),g=C[e.mode][t.mode](...l);return oe(g,t.mode,"int",t.type)}function $e(n,e){return typeof n!="object"||y(n)?!1:e in n&&typeof n[e]=="number"}class ne{static black(e="int"){return new ne([0,0,0],"rgb",e)}static fromObject(e,t="int"){const l="a"in e?[e.r,e.g,e.b,e.a]:[e.r,e.g,e.b];return new ne(l,"rgb",t)}static toRgbaObject(e,t="int"){return e.toRgbaObject(t)}static isRgbColorObject(e){return $e(e,"r")&&$e(e,"g")&&$e(e,"b")}static isRgbaColorObject(e){return this.isRgbColorObject(e)&&$e(e,"a")}static isColorObject(e){return this.isRgbColorObject(e)}static equals(e,t){if(e.mode!==t.mode)return!1;const l=e.comps_,g=t.comps_;for(let k=0;k<l.length;k++)if(l[k]!==g[k])return!1;return!0}constructor(e,t,l="int"){this.mode=t,this.type=l,this.comps_=G(e,t,l)}getComponents(e,t="int"){return b(Ke(p(this.comps_),{mode:this.mode,type:this.type},{mode:e??this.mode,type:t}),this.comps_[3])}toRgbaObject(e="int"){const t=this.getComponents("rgb",e);return{r:t[0],g:t[1],b:t[2],a:t[3]}}}const dt=N("colp");class nr{constructor(e,t){this.alphaViews_=null,this.element=e.createElement("div"),this.element.classList.add(dt()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(dt("hsv"));const g=e.createElement("div");g.classList.add(dt("sv")),this.svPaletteView_=t.svPaletteView,g.appendChild(this.svPaletteView_.element),l.appendChild(g);const k=e.createElement("div");k.classList.add(dt("h")),this.hPaletteView_=t.hPaletteView,k.appendChild(this.hPaletteView_.element),l.appendChild(k),this.element.appendChild(l);const L=e.createElement("div");if(L.classList.add(dt("rgb")),this.textView_=t.textView,L.appendChild(this.textView_.element),this.element.appendChild(L),t.alphaViews){this.alphaViews_={palette:t.alphaViews.palette,text:t.alphaViews.text};const R=e.createElement("div");R.classList.add(dt("a"));const W=e.createElement("div");W.classList.add(dt("ap")),W.appendChild(this.alphaViews_.palette.element),R.appendChild(W);const H=e.createElement("div");H.classList.add(dt("at")),H.appendChild(this.alphaViews_.text.element),R.appendChild(H),this.element.appendChild(R)}}get allFocusableElements(){const e=[this.svPaletteView_.element,this.hPaletteView_.element,this.textView_.modeSelectElement,...this.textView_.textViews.map(t=>t.inputElement)];return this.alphaViews_&&e.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement),e}}function Kc(n){return n==="int"?"int":n==="float"?"float":void 0}function ir(n){const e=V;return ce(n,{alpha:e.optional.boolean,color:e.optional.object({alpha:e.optional.boolean,type:e.optional.custom(Kc)}),expanded:e.optional.boolean,picker:e.optional.custom(fi)})}function hn(n){return n?.1:1}function un(n){var e;return(e=n.color)===null||e===void 0?void 0:e.type}function $c(n,e){return n.alpha===e.alpha&&n.mode===e.mode&&n.notation===e.notation&&n.type===e.type}function nt(n,e){const t=n.match(/^(.+)%$/);return Math.min(t?parseFloat(t[1])*.01*e:parseFloat(n),e)}const Xc={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function no(n){const e=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!e)return parseFloat(n);const t=parseFloat(e[1]),l=e[2];return Xc[l](t)}function io(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=[nt(e[1],255),nt(e[2],255),nt(e[3],255)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function so(n){return e=>{const t=io(e);return t?new ne(t,"rgb",n):null}}function ro(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=[nt(e[1],255),nt(e[2],255),nt(e[3],255),nt(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function oo(n){return e=>{const t=ro(e);return t?new ne(t,"rgb",n):null}}function ao(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=[no(e[1]),nt(e[2],100),nt(e[3],100)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function lo(n){return e=>{const t=ao(e);return t?new ne(t,"hsl",n):null}}function co(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=[no(e[1]),nt(e[2],100),nt(e[3],100),nt(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function po(n){return e=>{const t=co(e);return t?new ne(t,"hsl",n):null}}function ho(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 Yc(n){const e=ho(n);return e?new ne(e,"rgb","int"):null}function uo(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),_e(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),_e(parseInt(t[4],16),0,255,0,1)]:null}function qc(n){const e=uo(n);return e?new ne(e,"rgb","int"):null}function mo(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 fo(n){return e=>{const t=mo(e);return t?new ne(t,"rgb",n):null}}function vo(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 bo(n){return e=>{const t=vo(e);return t?new ne(t,"rgb",n):null}}const Qc=[{parser:ho,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:uo,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:io,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:ro,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:ao,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:co,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:mo,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:vo,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Zc(n){return Qc.reduce((e,{parser:t,result:l})=>e||(t(n)?l:null),null)}function sr(n,e="int"){const t=Zc(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}const go={int:[Yc,qc,so("int"),oo("int"),lo("int"),po("int"),fo("int"),bo("int")],float:[so("float"),oo("float"),lo("float"),po("float"),fo("float"),bo("float")]};function Wc(n){const e=go[n];return t=>{if(typeof t!="string")return ne.black(n);const l=e.reduce((g,k)=>g||k(t),null);return l??ne.black(n)}}function rr(n){const e=go[n];return t=>e.reduce((l,g)=>l||g(t),null)}function _o(n){const e=ke(Math.floor(n),0,255).toString(16);return e.length===1?`0${e}`:e}function wo(n,e="#"){const t=p(n.getComponents("rgb")).map(_o).join("");return`${e}${t}`}function or(n,e="#"){const t=n.getComponents("rgb"),l=[t[0],t[1],t[2],t[3]*255].map(_o).join("");return`${e}${l}`}function yo(n,e){const t=Se(e==="float"?2:0);return`rgb(${p(n.getComponents("rgb",e)).map(g=>t(g)).join(", ")})`}function Jc(n){return e=>yo(e,n)}function es(n,e){const t=Se(2),l=Se(e==="float"?2:0);return`rgba(${n.getComponents("rgb",e).map((k,L)=>(L===3?t:l)(k)).join(", ")})`}function Hc(n){return e=>es(e,n)}function ep(n){const e=[Se(0),sn,sn];return`hsl(${p(n.getComponents("hsl")).map((l,g)=>e[g](l)).join(", ")})`}function tp(n){const e=[Se(0),sn,sn,Se(2)];return`hsla(${n.getComponents("hsl").map((l,g)=>e[g](l)).join(", ")})`}function xo(n,e){const t=Se(e==="float"?2:0),l=["r","g","b"];return`{${p(n.getComponents("rgb",e)).map((k,L)=>`${l[L]}: ${t(k)}`).join(", ")}}`}function np(n){return e=>xo(e,n)}function Co(n,e){const t=Se(2),l=Se(e==="float"?2:0),g=["r","g","b","a"];return`{${n.getComponents("rgb",e).map((L,R)=>{const W=R===3?t:l;return`${g[R]}: ${W(L)}`}).join(", ")}}`}function ip(n){return e=>Co(e,n)}const sp=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:wo},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:or},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:ep},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:tp},...["int","float"].reduce((n,e)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:e},stringifier:Jc(e)},{format:{alpha:!0,mode:"rgb",notation:"func",type:e},stringifier:Hc(e)},{format:{alpha:!1,mode:"rgb",notation:"object",type:e},stringifier:np(e)},{format:{alpha:!0,mode:"rgb",notation:"object",type:e},stringifier:ip(e)}],[])];function ar(n){return sp.reduce((e,t)=>e||($c(t.format,n)?t.stringifier:null),null)}const gi=N("apl");class rp{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(gi()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("div");l.classList.add(gi("b")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(gi("c")),l.appendChild(g),this.colorElem_=g;const k=e.createElement("div");k.classList.add(gi("m")),this.element.appendChild(k),this.markerElem_=k;const L=e.createElement("div");L.classList.add(gi("p")),this.markerElem_.appendChild(L),this.previewElem_=L,this.update_()}update_(){const e=this.value.rawValue,t=e.getComponents("rgb"),l=new ne([t[0],t[1],t[2],0],"rgb"),g=new ne([t[0],t[1],t[2],255],"rgb"),k=["to right",es(l),es(g)];this.colorElem_.style.background=`linear-gradient(${k.join(",")})`,this.previewElem_.style.backgroundColor=es(e);const L=_e(t[3],0,1,0,100);this.markerElem_.style.left=`${L}%`}onValueChange_(){this.update_()}}class op{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 rp(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=e.point.x/e.bounds.width,g=this.value.rawValue,[k,L,R]=g.getComponents("hsv");this.value.setRawValue(new ne([k,L,R,l],"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=De(hn(!0),tt(e));if(t===0)return;const l=this.value.rawValue,[g,k,L,R]=l.getComponents("hsv");this.value.setRawValue(new ne([g,k,L,R+t],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){De(hn(!0),tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Bn=N("coltxt");function ap(n){const e=n.createElement("select"),t=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return e.appendChild(t.reduce((l,g)=>{const k=n.createElement("option");return k.textContent=g.text,k.value=g.value,l.appendChild(k),l},n.createDocumentFragment())),e}class lp{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Bn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(Bn("m")),this.modeElem_=ap(e),this.modeElem_.classList.add(Bn("ms")),l.appendChild(this.modeSelectElement),t.viewProps.bindDisabled(this.modeElem_);const g=e.createElement("div");g.classList.add(Bn("mm")),g.appendChild(ct(e,"dropdown")),l.appendChild(g),this.element.appendChild(l);const k=e.createElement("div");k.classList.add(Bn("w")),this.element.appendChild(k),this.textsElem_=k,this.textViews_=t.textViews,this.applyTextViews_(),U(t.colorMode,L=>{this.modeElem_.value=L})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(e){this.textViews_=e,this.applyTextViews_()}applyTextViews_(){Yt(this.textsElem_);const e=this.element.ownerDocument;this.textViews_.forEach(t=>{const l=e.createElement("div");l.classList.add(Bn("c")),l.appendChild(t.element),this.textsElem_.appendChild(l)})}}function cp(n){return Se(n==="float"?2:0)}function pp(n,e,t){const l=S(n,e)[t];return new Ot({min:0,max:l})}function lr(n,e,t){return new on(n,{arrayPosition:t===0?"fst":t===3-1?"lst":"mid",baseStep:hn(!1),parser:e.parser,props:q.fromObject({draggingScale:e.colorType==="float"?.01:1,formatter:cp(e.colorType)}),value:te(0,{constraint:pp(e.colorMode,e.colorType,t)}),viewProps:e.viewProps})}class hp{constructor(e,t){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=t.colorType,this.parser_=t.parser,this.value=t.value,this.viewProps=t.viewProps,this.colorMode=te(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(e),this.view=new lp(e,{colorMode:this.colorMode,textViews:[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={colorMode:this.colorMode.rawValue,colorType:this.colorType_,parser:this.parser_,viewProps:this.viewProps},l=[lr(e,t,0),lr(e,t,1),lr(e,t,2)];return l.forEach((g,k)=>{Nt({primary:this.value,secondary:g.value,forward:L=>L.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[k],backward:(L,R)=>{const W=this.colorMode.rawValue,H=L.rawValue.getComponents(W,this.colorType_);return H[k]=R.rawValue,new ne(b(p(H),H[3]),W,this.colorType_)}})}),l}onModeSelectChange_(e){const t=e.currentTarget;this.colorMode.rawValue=t.value,this.ccs_=this.createComponentControllers_(this.view.element.ownerDocument),this.view.textViews=[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view]}}const cr=N("hpl");class up{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(cr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("div");l.classList.add(cr("c")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(cr("m")),this.element.appendChild(g),this.markerElem_=g,this.update_()}update_(){const e=this.value.rawValue,[t]=e.getComponents("hsv");this.markerElem_.style.backgroundColor=yo(new ne([t,100,100],"hsv"));const l=_e(t,0,360,0,100);this.markerElem_.style.left=`${l}%`}onValueChange_(){this.update_()}}class dp{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 up(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=_e(ke(e.point.x,0,e.bounds.width),0,e.bounds.width,0,360),g=this.value.rawValue,[,k,L,R]=g.getComponents("hsv");this.value.setRawValue(new ne([l,k,L,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=De(hn(!1),tt(e));if(t===0)return;const l=this.value.rawValue,[g,k,L,R]=l.getComponents("hsv");this.value.setRawValue(new ne([g+t,k,L,R],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){De(hn(!1),tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const pr=N("svp"),Po=64;class mp{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(pr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("canvas");l.height=Po,l.width=Po,l.classList.add(pr("c")),this.element.appendChild(l),this.canvasElement=l;const g=e.createElement("div");g.classList.add(pr("m")),this.element.appendChild(g),this.markerElem_=g,this.update_()}update_(){const e=yn(this.canvasElement);if(!e)return;const l=this.value.rawValue.getComponents("hsv"),g=this.canvasElement.width,k=this.canvasElement.height,L=e.getImageData(0,0,g,k),R=L.data;for(let de=0;de<k;de++)for(let ve=0;ve<g;ve++){const dn=_e(ve,0,g,0,100),wi=_e(de,0,k,100,0),yi=Hi(l[0],dn,wi),ts=(de*g+ve)*4;R[ts]=yi[0],R[ts+1]=yi[1],R[ts+2]=yi[2],R[ts+3]=255}e.putImageData(L,0,0);const W=_e(l[1],0,100,0,100);this.markerElem_.style.left=`${W}%`;const H=_e(l[2],0,100,100,0);this.markerElem_.style.top=`${H}%`}onValueChange_(){this.update_()}}class fp{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 mp(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=_e(e.point.x,0,e.bounds.width,0,100),g=_e(e.point.y,0,e.bounds.height,100,0),[k,,,L]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new ne([k,l,g,L],"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){In(e.key)&&e.preventDefault();const[t,l,g,k]=this.value.rawValue.getComponents("hsv"),L=hn(!1),R=De(L,tt(e)),W=De(L,rn(e));R===0&&W===0||this.value.setRawValue(new ne([t,l+R,g+W,k],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){const t=hn(!1),l=De(t,tt(e)),g=De(t,rn(e));l===0&&g===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class vp{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.hPaletteC_=new dp(e,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new fp(e,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=t.supportsAlpha?{palette:new op(e,{value:this.value,viewProps:this.viewProps}),text:new on(e,{parser:et,baseStep:.1,props:q.fromObject({draggingScale:.01,formatter:Se(2)}),value:te(0,{constraint:new Ot({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&Nt({primary:this.value,secondary:this.alphaIcs_.text.value,forward:l=>l.rawValue.getComponents()[3],backward:(l,g)=>{const k=l.rawValue.getComponents();return k[3]=g.rawValue,new ne(k,l.rawValue.mode)}}),this.textC_=new hp(e,{colorType:t.colorType,parser:et,value:this.value,viewProps:this.viewProps}),this.view=new nr(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,textView:this.textC_.view,viewProps:this.viewProps})}get textController(){return this.textC_}}const hr=N("colsw");class bp{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(hr()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(hr("sw")),this.element.appendChild(l),this.swatchElem_=l;const g=e.createElement("button");g.classList.add(hr("b")),t.viewProps.bindDisabled(g),this.element.appendChild(g),this.buttonElement=g,this.update_()}update_(){const e=this.value.rawValue;this.swatchElem_.style.backgroundColor=or(e)}onValueChange_(){this.update_()}}class gp{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new bp(e,{value:this.value,viewProps:this.viewProps})}}class ur{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_=Ve.create(t.expanded),this.swatchC_=new gp(e,{value:this.value,viewProps:this.viewProps});const l=this.swatchC_.view.buttonElement;l.addEventListener("blur",this.onButtonBlur_),l.addEventListener("click",this.onButtonClick_),this.textC_=new Vn(e,{parser:t.parser,props:q.fromObject({formatter:t.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new bi(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 Ni(e,{viewProps:this.viewProps}):null;const g=new vp(e,{colorType:t.colorType,supportsAlpha:t.supportsAlpha,value:this.value,viewProps:this.viewProps});g.view.allFocusableElements.forEach(k=>{k.addEventListener("blur",this.onPopupChildBlur_),k.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=g,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(g.view.element),Nt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:k=>k.rawValue,backward:(k,L)=>L.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Be(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,l=e.relatedTarget;(!l||!t.contains(l))&&(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,l=pt(e);l&&t.contains(l)||l&&l===this.swatchC_.view.buttonElement&&!rt(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 _p(n,e){return ne.isColorObject(n)?ne.fromObject(n,e):ne.black(e)}function wp(n){return p(n.getComponents("rgb")).reduce((e,t)=>e<<8|Math.floor(t)&255,0)}function yp(n){return n.getComponents("rgb").reduce((e,t,l)=>{const g=Math.floor(l===3?t*255:t)&255;return e<<8|g},0)>>>0}function xp(n){return new ne([n>>16&255,n>>8&255,n&255],"rgb")}function Cp(n){return new ne([n>>24&255,n>>16&255,n>>8&255,_e(n&255,0,255,0,1)],"rgb")}function Pp(n){return typeof n!="number"?ne.black():xp(n)}function kp(n){return typeof n!="number"?ne.black():Cp(n)}function Mp(n){const e=ar(n);return e?(t,l)=>{Ye(t,e(l))}:null}function Ap(n){const e=n?yp:wp;return(t,l)=>{Ye(t,e(l))}}function Sp(n,e,t){const l=e.toRgbaObject(t);n.writeProperty("r",l.r),n.writeProperty("g",l.g),n.writeProperty("b",l.b),n.writeProperty("a",l.a)}function Lp(n,e,t){const l=e.toRgbaObject(t);n.writeProperty("r",l.r),n.writeProperty("g",l.g),n.writeProperty("b",l.b)}function Vp(n,e){return(t,l)=>{n?Sp(t,l,e):Lp(t,l,e)}}function dr(n){var e;return!!(n!=null&&n.alpha||!((e=n==null?void 0:n.color)===null||e===void 0)&&e.alpha)}function Dp(n){return n?e=>or(e,"0x"):e=>wo(e,"0x")}function Ip(n){return"color"in n||"view"in n&&n.view==="color"}const Ep={id:"input-color-number",type:"input",accept:(n,e)=>{if(typeof n!="number"||!Ip(e))return null;const t=ir(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>dr(n.params)?kp:Pp,equals:ne.equals,writer:n=>Ap(dr(n.params))},controller:n=>{const e=dr(n.params),t="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0;return new ur(n.document,{colorType:"int",expanded:t??!1,formatter:Dp(e),parser:rr("int"),pickerLayout:l??"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}};function Tp(n){return ne.isRgbaColorObject(n)}function Op(n){return e=>_p(e,n)}function Bp(n,e){return t=>n?Co(t,e):xo(t,e)}const Np={id:"input-color-object",type:"input",accept:(n,e)=>{if(!ne.isColorObject(n))return null;const t=ir(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>Op(un(n.params)),equals:ne.equals,writer:n=>Vp(Tp(n.initialValue),un(n.params))},controller:n=>{var e;const t=ne.isRgbaColorObject(n.initialValue),l="expanded"in n.params?n.params.expanded:void 0,g="picker"in n.params?n.params.picker:void 0,k=(e=un(n.params))!==null&&e!==void 0?e:"int";return new ur(n.document,{colorType:k,expanded:l??!1,formatter:Bp(t,k),parser:rr(k),pickerLayout:g??"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}},Fp={id:"input-color-string",type:"input",accept:(n,e)=>{if(typeof n!="string"||"view"in e&&e.view==="text")return null;const t=sr(n,un(e));if(!t||!ar(t))return null;const g=ir(e);return g?{initialValue:n,params:g}:null},binding:{reader:n=>{var e;return Wc((e=un(n.params))!==null&&e!==void 0?e:"int")},equals:ne.equals,writer:n=>{const e=sr(n.initialValue,un(n.params));if(!e)throw I.shouldNeverHappen();const t=Mp(e);if(!t)throw I.notBindable();return t}},controller:n=>{const e=sr(n.initialValue,un(n.params));if(!e)throw I.shouldNeverHappen();const t=ar(e);if(!t)throw I.shouldNeverHappen();const l="expanded"in n.params?n.params.expanded:void 0,g="picker"in n.params?n.params.picker:void 0;return new ur(n.document,{colorType:e.type,expanded:l??!1,formatter:t,parser:rr(e.type),pickerLayout:g??"popup",supportsAlpha:e.alpha,value:n.value,viewProps:n.viewProps})}};class jt{constructor(e){this.components=e.components,this.asm_=e.assembly}constrain(e){const t=this.asm_.toComponents(e).map((l,g)=>{var k,L;return(L=(k=this.components[g])===null||k===void 0?void 0:k.constrain(l))!==null&&L!==void 0?L:l});return this.asm_.fromComponents(t)}}const ko=N("pndtxt");class jp{constructor(e,t){this.textViews=t.textViews,this.element=e.createElement("div"),this.element.classList.add(ko()),this.textViews.forEach(l=>{const g=e.createElement("div");g.classList.add(ko("a")),g.appendChild(l.element),this.element.appendChild(g)})}}function zp(n,e,t){return new on(n,{arrayPosition:t===0?"fst":t===e.axes.length-1?"lst":"mid",baseStep:e.axes[t].baseStep,parser:e.parser,props:e.axes[t].textProps,value:te(0,{constraint:e.axes[t].constraint}),viewProps:e.viewProps})}class mr{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.acs_=t.axes.map((l,g)=>zp(e,t,g)),this.acs_.forEach((l,g)=>{Nt({primary:this.value,secondary:l.value,forward:k=>t.assembly.toComponents(k.rawValue)[g],backward:(k,L)=>{const R=t.assembly.toComponents(k.rawValue);return R[g]=L.rawValue,t.assembly.fromComponents(R)}})}),this.view=new jp(e,{textViews:this.acs_.map(l=>l.view)})}}function Mo(n,e){return"step"in n&&!y(n.step)?new Ln(n.step,e):null}function Ao(n){return!y(n.max)&&!y(n.min)?new Ot({max:n.max,min:n.min}):!y(n.max)||!y(n.min)?new ni({max:n.max,min:n.min}):null}function Up(n){const e=Xe(n,Ot);if(e)return[e.values.get("min"),e.values.get("max")];const t=Xe(n,ni);return t?[t.minValue,t.maxValue]:[void 0,void 0]}function Rp(n,e){const t=[],l=Mo(n,e);l&&t.push(l);const g=Ao(n);g&&t.push(g);const k=vi(n.options);return k&&t.push(k),new Ht(t)}const Gp={id:"input-number",type:"input",accept:(n,e)=>{if(typeof n!="number")return null;const t=V,l=ce(e,{format:t.optional.function,max:t.optional.number,min:t.optional.number,options:t.optional.custom(ln),step:t.optional.number});return l?{initialValue:n,params:l}:null},binding:{reader:n=>at,constraint:n=>Rp(n.params,n.initialValue),writer:n=>Ye},controller:n=>{var e;const t=n.value,l=n.constraint,g=l&&Xe(l,en);if(g)return new tn(n.document,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps});const k=(e="format"in n.params?n.params.format:void 0)!==null&&e!==void 0?e:Se(Tn(l,t.rawValue)),L=l&&Xe(l,Ot);return L?new En(n.document,{baseStep:xt(l),parser:et,sliderProps:new q({maxValue:L.values.value("max"),minValue:L.values.value("min")}),textProps:q.fromObject({draggingScale:Ct(l,t.rawValue),formatter:k}),value:t,viewProps:n.viewProps}):new on(n.document,{baseStep:xt(l),parser:et,props:q.fromObject({draggingScale:Ct(l,t.rawValue),formatter:k}),value:t,viewProps:n.viewProps})}};class zt{constructor(e=0,t=0){this.x=e,this.y=t}getComponents(){return[this.x,this.y]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y;return!(typeof t!="number"||typeof l!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y}toObject(){return{x:this.x,y:this.y}}}const So={toComponents:n=>n.getComponents(),fromComponents:n=>new zt(...n)},Nn=N("p2d");class Kp{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Nn()),t.viewProps.bindClassModifiers(this.element),U(t.expanded,Y(this.element,Nn(void 0,"expanded")));const l=e.createElement("div");l.classList.add(Nn("h")),this.element.appendChild(l);const g=e.createElement("button");g.classList.add(Nn("b")),g.appendChild(ct(e,"p2dpad")),t.viewProps.bindDisabled(g),l.appendChild(g),this.buttonElement=g;const k=e.createElement("div");if(k.classList.add(Nn("t")),l.appendChild(k),this.textElement=k,t.pickerLayout==="inline"){const L=e.createElement("div");L.classList.add(Nn("p")),this.element.appendChild(L),this.pickerElement=L}else this.pickerElement=null}}const Ut=N("p2dp");class $p{constructor(e,t){this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.invertsY_=t.invertsY,this.maxValue_=t.maxValue,this.element=e.createElement("div"),this.element.classList.add(Ut()),t.layout==="popup"&&this.element.classList.add(Ut(void 0,"p")),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(Ut("p")),t.viewProps.bindTabIndex(l),this.element.appendChild(l),this.padElement=l;const g=e.createElementNS(Oe,"svg");g.classList.add(Ut("g")),this.padElement.appendChild(g),this.svgElem_=g;const k=e.createElementNS(Oe,"line");k.classList.add(Ut("ax")),k.setAttributeNS(null,"x1","0"),k.setAttributeNS(null,"y1","50%"),k.setAttributeNS(null,"x2","100%"),k.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(k);const L=e.createElementNS(Oe,"line");L.classList.add(Ut("ax")),L.setAttributeNS(null,"x1","50%"),L.setAttributeNS(null,"y1","0"),L.setAttributeNS(null,"x2","50%"),L.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(L);const R=e.createElementNS(Oe,"line");R.classList.add(Ut("l")),R.setAttributeNS(null,"x1","50%"),R.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(R),this.lineElem_=R;const W=e.createElement("div");W.classList.add(Ut("m")),this.padElement.appendChild(W),this.markerElem_=W,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(),l=this.maxValue_,g=_e(e,-l,+l,0,100),k=_e(t,-l,+l,0,100),L=this.invertsY_?100-k:k;this.lineElem_.setAttributeNS(null,"x2",`${g}%`),this.lineElem_.setAttributeNS(null,"y2",`${L}%`),this.markerElem_.style.left=`${g}%`,this.markerElem_.style.top=`${L}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Lo(n,e,t){return[De(e[0],tt(n)),De(e[1],rn(n))*(t?1:-1)]}class Xp{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.value=t.value,this.viewProps=t.viewProps,this.baseSteps_=t.baseSteps,this.maxValue_=t.maxValue,this.invertsY_=t.invertsY,this.view=new $p(e,{invertsY:this.invertsY_,layout:t.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=this.maxValue_,g=_e(e.point.x,0,e.bounds.width,-l,+l),k=_e(this.invertsY_?e.bounds.height-e.point.y:e.point.y,0,e.bounds.height,-l,+l);this.value.setRawValue(new zt(g,k),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){In(e.key)&&e.preventDefault();const[t,l]=Lo(e,this.baseSteps_,this.invertsY_);t===0&&l===0||this.value.setRawValue(new zt(this.value.rawValue.x+t,this.value.rawValue.y+l),{forceEmit:!1,last:!1})}onPadKeyUp_(e){const[t,l]=Lo(e,this.baseSteps_,this.invertsY_);t===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Yp{constructor(e,t){var l,g;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_=Ve.create(t.expanded),this.popC_=t.pickerLayout==="popup"?new Ni(e,{viewProps:this.viewProps}):null;const k=new Xp(e,{baseSteps:[t.axes[0].baseStep,t.axes[1].baseStep],invertsY:t.invertsY,layout:t.pickerLayout,maxValue:t.maxValue,value:this.value,viewProps:this.viewProps});k.view.allFocusableElements.forEach(L=>{L.addEventListener("blur",this.onPopupChildBlur_),L.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=k,this.textC_=new mr(e,{assembly:So,axes:t.axes,parser:t.parser,value:this.value,viewProps:this.viewProps}),this.view=new Kp(e,{expanded:this.foldable_.value("expanded"),pickerLayout:t.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(l=this.view.buttonElement)===null||l===void 0||l.addEventListener("blur",this.onPadButtonBlur_),(g=this.view.buttonElement)===null||g===void 0||g.addEventListener("click",this.onPadButtonClick_),this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),Nt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:L=>L.rawValue,backward:(L,R)=>R.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Be(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,l=e.relatedTarget;(!l||!t.contains(l))&&(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,l=pt(e);l&&t.contains(l)||l&&l===this.view.buttonElement&&!rt(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()}}class Fn{constructor(e=0,t=0,l=0){this.x=e,this.y=t,this.z=l}getComponents(){return[this.x,this.y,this.z]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y,g=e.z;return!(typeof t!="number"||typeof l!="number"||typeof g!="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 Vo={toComponents:n=>n.getComponents(),fromComponents:n=>new Fn(...n)};function qp(n){return Fn.isObject(n)?new Fn(n.x,n.y,n.z):new Fn}function Qp(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z)}function Zp(n,e){return new jt({assembly:Vo,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y),kt("z"in n?n.z:void 0,e.z)]})}function fr(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}const Wp={id:"input-point3d",type:"input",accept:(n,e)=>{if(!Fn.isObject(n))return null;const t=V,l=ce(e,{x:t.optional.custom(lt),y:t.optional.custom(lt),z:t.optional.custom(lt)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>qp,constraint:n=>Zp(n.params,n.initialValue),equals:Fn.equals,writer:n=>Qp},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof jt))throw I.shouldNeverHappen();return new mr(n.document,{assembly:Vo,axes:[fr(e.rawValue.x,t.components[0]),fr(e.rawValue.y,t.components[1]),fr(e.rawValue.z,t.components[2])],parser:et,value:e,viewProps:n.viewProps})}};class jn{constructor(e=0,t=0,l=0,g=0){this.x=e,this.y=t,this.z=l,this.w=g}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y,g=e.z,k=e.w;return!(typeof t!="number"||typeof l!="number"||typeof g!="number"||typeof k!="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 Do={toComponents:n=>n.getComponents(),fromComponents:n=>new jn(...n)};function Jp(n){return jn.isObject(n)?new jn(n.x,n.y,n.z,n.w):new jn}function Hp(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z),n.writeProperty("w",e.w)}function eh(n,e){return new jt({assembly:Do,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y),kt("z"in n?n.z:void 0,e.z),kt("w"in n?n.w:void 0,e.w)]})}function th(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}const nh={id:"input-point4d",type:"input",accept:(n,e)=>{if(!jn.isObject(n))return null;const t=V,l=ce(e,{x:t.optional.custom(lt),y:t.optional.custom(lt),z:t.optional.custom(lt),w:t.optional.custom(lt)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>Jp,constraint:n=>eh(n.params,n.initialValue),equals:jn.equals,writer:n=>Hp},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof jt))throw I.shouldNeverHappen();return new mr(n.document,{assembly:Do,axes:e.rawValue.getComponents().map((l,g)=>th(l,t.components[g])),parser:et,value:e,viewProps:n.viewProps})}};function ih(n){const e=[],t=vi(n.options);return t&&e.push(t),new Ht(e)}const sh={id:"input-string",type:"input",accept:(n,e)=>{if(typeof n!="string")return null;const l=ce(e,{options:V.optional.custom(ln)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>li,constraint:n=>ih(n.params),writer:n=>Ye},controller:n=>{const e=n.document,t=n.value,l=n.constraint,g=l&&Xe(l,en);return g?new tn(e,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps}):new Vn(e,{parser:k=>k,props:q.fromObject({formatter:ut}),value:t,viewProps:n.viewProps})}},_i={monitor:{defaultInterval:200,defaultLineCount:3}},Io=N("mll");class rh{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Io()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("textarea");l.classList.add(Io("i")),l.style.height=`calc(var(--bld-us) * ${t.lineCount})`,l.readOnly=!0,t.viewProps.bindDisabled(l),this.element.appendChild(l),this.textareaElem_=l,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,l=[];this.value.rawValue.forEach(g=>{g!==void 0&&l.push(this.formatter_(g))}),e.textContent=l.join(`
|
|
16
|
-
`),t&&(e.scrollTop=e.scrollHeight)}onValueUpdate_(){this.update_()}}class vr{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new rh(e,{formatter:t.formatter,lineCount:t.lineCount,value:this.value,viewProps:this.viewProps})}}const Eo=N("sgl");class oh{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Eo()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("input");l.classList.add(Eo("i")),l.readOnly=!0,l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,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 br{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new oh(e,{formatter:t.formatter,value:this.value,viewProps:this.viewProps})}}const ah={id:"monitor-bool",type:"monitor",accept:(n,e)=>{if(typeof n!="boolean")return null;const l=ce(e,{lineCount:V.optional.number});return l?{initialValue:n,params:l}:null},binding:{reader:n=>ji},controller:n=>{var e;return n.value.rawValue.length===1?new br(n.document,{formatter:zi,value:n.value,viewProps:n.viewProps}):new vr(n.document,{formatter:zi,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},Rt=N("grl");class lh{constructor(e,t){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Rt()),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 l=e.createElementNS(Oe,"svg");l.classList.add(Rt("g")),l.style.height=`calc(var(--bld-us) * ${t.lineCount})`,this.element.appendChild(l),this.svgElem_=l;const g=e.createElementNS(Oe,"polyline");this.svgElem_.appendChild(g),this.lineElem_=g;const k=e.createElement("div");k.classList.add(Rt("t"),N("tt")()),this.element.appendChild(k),this.tooltipElem_=k,t.value.emitter.on("change",this.onValueUpdate_),this.value=t.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const e=this.svgElem_.getBoundingClientRect(),t=this.value.rawValue.length-1,l=this.props_.get("minValue"),g=this.props_.get("maxValue"),k=[];this.value.rawValue.forEach((de,ve)=>{if(de===void 0)return;const dn=_e(ve,0,t,0,e.width),wi=_e(de,l,g,e.height,0);k.push([dn,wi].join(","))}),this.lineElem_.setAttributeNS(null,"points",k.join(" "));const L=this.tooltipElem_,R=this.value.rawValue[this.cursor_.rawValue];if(R===void 0){L.classList.remove(Rt("t","a"));return}const W=_e(this.cursor_.rawValue,0,t,0,e.width),H=_e(R,l,g,e.height,0);L.style.left=`${W}px`,L.style.top=`${H}px`,L.textContent=`${this.formatter_(R)}`,L.classList.contains(Rt("t","a"))||(L.classList.add(Rt("t","a"),Rt("t","in")),We(L),L.classList.remove(Rt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ch{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_=te(-1),this.view=new lh(e,{cursor:this.cursor_,formatter:t.formatter,lineCount:t.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!rt(e))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const l=new yt(this.view.element);l.emitter.on("down",this.onGraphPointerDown_),l.emitter.on("move",this.onGraphPointerMove_),l.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(e){const t=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(_e(e.offsetX,0,t.width,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(_e(e.data.point.x,0,e.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function gr(n){return"format"in n&&!y(n.format)?n.format:Se(2)}function ph(n){var e;return n.value.rawValue.length===1?new br(n.document,{formatter:gr(n.params),value:n.value,viewProps:n.viewProps}):new vr(n.document,{formatter:gr(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function hh(n){var e,t,l;return new ch(n.document,{formatter:gr(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,props:q.fromObject({maxValue:(t="max"in n.params?n.params.max:null)!==null&&t!==void 0?t:100,minValue:(l="min"in n.params?n.params.min:null)!==null&&l!==void 0?l:0}),value:n.value,viewProps:n.viewProps})}function To(n){return"view"in n&&n.view==="graph"}const uh={id:"monitor-number",type:"monitor",accept:(n,e)=>{if(typeof n!="number")return null;const t=V,l=ce(e,{format:t.optional.function,lineCount:t.optional.number,max:t.optional.number,min:t.optional.number,view:t.optional.string});return l?{initialValue:n,params:l}:null},binding:{defaultBufferSize:n=>To(n)?64:1,reader:n=>at},controller:n=>To(n.params)?hh(n):ph(n)},dh={id:"monitor-string",type:"monitor",accept:(n,e)=>{if(typeof n!="string")return null;const t=V,l=ce(e,{lineCount:t.optional.number,multiline:t.optional.boolean});return l?{initialValue:n,params:l}:null},binding:{reader:n=>li},controller:n=>{var e;const t=n.value;return t.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new vr(n.document,{formatter:ut,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:t,viewProps:n.viewProps}):new br(n.document,{formatter:ut,value:t,viewProps:n.viewProps})}};function mh(n,e){var t;const l=n.accept(e.target.read(),e.params);if(y(l))return null;const g=V,k={target:e.target,initialValue:l.initialValue,params:l.params},L=n.binding.reader(k),R=n.binding.constraint?n.binding.constraint(k):void 0,W=te(L(l.initialValue),{constraint:R,equals:n.binding.equals}),H=new Sn({reader:L,target:e.target,value:W,writer:n.binding.writer(k)}),de=g.optional.boolean(e.params.disabled).value,ve=g.optional.boolean(e.params.hidden).value,dn=n.controller({constraint:R,document:e.document,initialValue:l.initialValue,params:l.params,value:H.value,viewProps:Ue.create({disabled:de,hidden:ve})});return new Te(e.document,{binding:H,blade:ye(),props:q.fromObject({label:"label"in e.params?(t=g.optional.string(e.params.label).value)!==null&&t!==void 0?t:null:e.target.key}),valueController:dn})}function fh(n,e){return e===0?new Ei:new ti(n,e??_i.monitor.defaultInterval)}function vh(n,e){var t,l,g;const k=V,L=n.accept(e.target.read(),e.params);if(y(L))return null;const R={target:e.target,initialValue:L.initialValue,params:L.params},W=n.binding.reader(R),H=(l=(t=k.optional.number(e.params.bufferSize).value)!==null&&t!==void 0?t:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(L.params))!==null&&l!==void 0?l:1,de=k.optional.number(e.params.interval).value,ve=new Es({reader:W,target:e.target,ticker:fh(e.document,de),value:Ti(H)}),dn=k.optional.boolean(e.params.disabled).value,wi=k.optional.boolean(e.params.hidden).value,yi=n.controller({document:e.document,params:L.params,value:ve.value,viewProps:Ue.create({disabled:dn,hidden:wi})});return new Je(e.document,{binding:ve,blade:ye(),props:q.fromObject({label:"label"in e.params?(g=k.optional.string(e.params.label).value)!==null&&g!==void 0?g:null:e.target.key}),valueController:yi})}class bh{constructor(){this.pluginsMap_={blades:[],inputs:[],monitors:[]}}getAll(){return[...this.pluginsMap_.blades,...this.pluginsMap_.inputs,...this.pluginsMap_.monitors]}register(e){e.type==="blade"?this.pluginsMap_.blades.unshift(e):e.type==="input"?this.pluginsMap_.inputs.unshift(e):e.type==="monitor"&&this.pluginsMap_.monitors.unshift(e)}createInput(e,t,l){const g=t.read();if(y(g))throw new I({context:{key:t.key},type:"nomatchingcontroller"});const k=this.pluginsMap_.inputs.reduce((L,R)=>L??mh(R,{document:e,target:t,params:l}),null);if(k)return k;throw new I({context:{key:t.key},type:"nomatchingcontroller"})}createMonitor(e,t,l){const g=this.pluginsMap_.monitors.reduce((k,L)=>k??vh(L,{document:e,params:l,target:t}),null);if(g)return g;throw new I({context:{key:t.key},type:"nomatchingcontroller"})}createBlade(e,t){const l=this.pluginsMap_.blades.reduce((g,k)=>g??Is(k,{document:e,params:t}),null);if(!l)throw new I({type:"nomatchingview",context:{params:t}});return l}createBladeApi(e){if(e instanceof Te)return new Yn(e);if(e instanceof Je)return new qn(e);if(e instanceof Zt)return new kn(e,this);const t=this.pluginsMap_.blades.reduce((l,g)=>l??g.api({controller:e,pool:this}),null);if(!t)throw I.shouldNeverHappen();return t}}function gh(){const n=new bh;return[Ph,Wp,nh,sh,Gp,Fp,Np,Ep,On,ah,dh,uh,J,As,Ls,ei].forEach(e=>{n.register(e)}),n}function _h(n){return zt.isObject(n)?new zt(n.x,n.y):new zt}function wh(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y)}function kt(n,e){if(!n)return;const t=[],l=Mo(n,e);l&&t.push(l);const g=Ao(n);return g&&t.push(g),new Ht(t)}function yh(n,e){return new jt({assembly:So,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y)]})}function Oo(n,e){const[t,l]=n?Up(n):[];if(!y(t)||!y(l))return Math.max(Math.abs(t??0),Math.abs(l??0));const g=xt(n);return Math.max(Math.abs(g)*10,Math.abs(e)*10)}function xh(n,e){const t=e instanceof jt?e.components[0]:void 0,l=e instanceof jt?e.components[1]:void 0,g=Oo(t,n.x),k=Oo(l,n.y);return Math.max(g,k)}function Bo(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}function Ch(n){if(!("y"in n))return!1;const e=n.y;return e&&"inverted"in e?!!e.inverted:!1}const Ph={id:"input-point2d",type:"input",accept:(n,e)=>{if(!zt.isObject(n))return null;const t=V,l=ce(e,{expanded:t.optional.boolean,picker:t.optional.custom(fi),x:t.optional.custom(lt),y:t.optional.object({inverted:t.optional.boolean,max:t.optional.number,min:t.optional.number,step:t.optional.number})});return l?{initialValue:n,params:l}:null},binding:{reader:n=>_h,constraint:n=>yh(n.params,n.initialValue),equals:zt.equals,writer:n=>wh},controller:n=>{const e=n.document,t=n.value,l=n.constraint;if(!(l instanceof jt))throw I.shouldNeverHappen();const g="expanded"in n.params?n.params.expanded:void 0,k="picker"in n.params?n.params.picker:void 0;return new Yp(e,{axes:[Bo(t.rawValue.x,l.components[0]),Bo(t.rawValue.y,l.components[1])],expanded:g??!1,invertsY:Ch(n.params),maxValue:xh(t.rawValue,l),parser:et,pickerLayout:k??"popup",value:t,viewProps:n.viewProps})}};class No extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get options(){return this.controller_.valueController.props.get("options")}set options(e){this.controller_.valueController.props.set("options",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class Fo extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get maxValue(){return this.controller_.valueController.sliderController.props.get("maxValue")}set maxValue(e){this.controller_.valueController.sliderController.props.set("maxValue",e)}get minValue(){return this.controller_.valueController.sliderController.props.get("minValue")}set minValue(e){this.controller_.valueController.sliderController.props.set("minValue",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class jo extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get formatter(){return this.controller_.valueController.props.get("formatter")}set formatter(e){this.controller_.valueController.props.set("formatter",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}const kh=function(){return{id:"list",type:"blade",accept(n){const e=V,t=ce(n,{options:e.required.custom(ln),value:e.required.raw,view:e.required.constant("list"),label:e.optional.string});return t?{params:t}:null},controller(n){const e=new en(Zi(n.params.options)),t=te(n.params.value,{constraint:e}),l=new tn(n.document,{props:new q({options:e.values.value("options")}),value:t,viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:l})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof tn)?null:new No(n.controller)}}}();function Mh(n){return n.reduce((e,t)=>Object.assign(e,{[t.presetKey]:t.read()}),{})}function Ah(n,e){n.forEach(t=>{const l=e[t.target.presetKey];l!==void 0&&t.writer(t.target,t.reader(l))})}class Sh extends Qn{constructor(e,t){super(e,t)}get element(){return this.controller_.view.element}importPreset(e){const t=this.controller_.rackController.rack.find(Te).map(l=>l.binding);Ah(t,e),this.refresh()}exportPreset(){const e=this.controller_.rackController.rack.find(Te).map(t=>t.binding.target);return Mh(e)}refresh(){this.controller_.rackController.rack.find(Te).forEach(e=>{e.binding.read()}),this.controller_.rackController.rack.find(Je).forEach(e=>{e.binding.read()})}}class Lh extends Mn{constructor(e,t){super(e,{expanded:t.expanded,blade:t.blade,props:t.props,root:!0,viewProps:t.viewProps})}}const Vh={id:"slider",type:"blade",accept(n){const e=V,t=ce(n,{max:e.required.number,min:e.required.number,view:e.required.constant("slider"),format:e.optional.function,label:e.optional.string,value:e.optional.number});return t?{params:t}:null},controller(n){var e,t;const l=(e=n.params.value)!==null&&e!==void 0?e:0,g=new Ot({max:n.params.max,min:n.params.min}),k=new En(n.document,{baseStep:1,parser:et,sliderProps:new q({maxValue:g.values.value("max"),minValue:g.values.value("min")}),textProps:q.fromObject({draggingScale:Ct(void 0,l),formatter:(t=n.params.format)!==null&&t!==void 0?t:Ws}),value:te(l,{constraint:g}),viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:k})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof En)?null:new Fo(n.controller)}},Dh=function(){return{id:"text",type:"blade",accept(n){const e=V,t=ce(n,{parse:e.required.function,value:e.required.raw,view:e.required.constant("text"),format:e.optional.function,label:e.optional.string});return t?{params:t}:null},controller(n){var e;const t=new Vn(n.document,{parser:n.params.parse,props:q.fromObject({formatter:(e=n.params.format)!==null&&e!==void 0?e:l=>String(l)}),value:te(n.params.value),viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof Vn)?null:new jo(n.controller)}}}();function Ih(n){const e=n.createElement("div");return e.classList.add(N("dfw")()),n.body&&n.body.appendChild(e),e}function zo(n,e,t){if(n.querySelector(`style[data-tp-style=${e}]`))return;const l=n.createElement("style");l.dataset.tpStyle=e,l.textContent=t,n.head.appendChild(l)}class Eh extends Sh{constructor(e){var t,l;const g=e??{},k=(t=g.document)!==null&&t!==void 0?t:$n(),L=gh(),R=new Lh(k,{expanded:g.expanded,blade:ye(),props:q.fromObject({title:g.title}),viewProps:Ue.create()});super(R,L),this.pool_=L,this.containerElem_=(l=g.container)!==null&&l!==void 0?l:Ih(k),this.containerElem_.appendChild(this.element),this.doc_=k,this.usesDefaultWrapper_=!g.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw I.alreadyDisposed();return this.doc_}dispose(){const e=this.containerElem_;if(!e)throw I.alreadyDisposed();if(this.usesDefaultWrapper_){const t=e.parentElement;t&&t.removeChild(e)}this.containerElem_=null,this.doc_=null,super.dispose()}registerPlugin(e){("plugin"in e?[e.plugin]:"plugins"in e?e.plugins:[]).forEach(l=>{this.pool_.register(l),this.embedPluginStyle_(l)})}embedPluginStyle_(e){e.css&&zo(this.document,`plugin-${e.id}`,e.css)}setUpDefaultPlugins_(){zo(this.document,"default",'.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:"";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-expanded.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:"";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:"";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:"";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:"";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'),this.pool_.getAll().forEach(e=>{this.embedPluginStyle_(e)}),this.registerPlugin({plugins:[Vh,kh,ei,Dh]})}}const Th=new s("3.1.9");r.BladeApi=o,r.ButtonApi=F,r.FolderApi=Qn,r.InputBindingApi=Yn,r.ListApi=No,r.MonitorBindingApi=qn,r.Pane=Eh,r.SeparatorApi=Li,r.SliderApi=Fo,r.TabApi=Di,r.TabPageApi=Hn,r.TextApi=jo,r.TpChangeEvent=h,r.VERSION=Th,Object.defineProperty(r,"__esModule",{value:!0})})})(ms,ms.exports);var Bl=ms.exports,fs={exports:{}};(function(v,i){(function(r,s){s(i)})(Yr,function(r){class s{constructor(a){this.controller_=a}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(a){this.controller_.viewProps.set("hidden",a)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class o{constructor(a){this.target=a}}class c extends o{constructor(a,p,b,C){super(a),this.value=p,this.presetKey=b,this.last=C??!0}}function h(d){return d}function u(d){return d==null}const m={alreadydisposed:()=>"View has been already disposed",invalidparams:d=>`Invalid parameters for '${d.name}'`,nomatchingcontroller:d=>`No matching controller for '${d.key}'`,nomatchingview:d=>`No matching view for '${JSON.stringify(d.params)}'`,notbindable:()=>"Value is not bindable",propertynotfound:d=>`Property '${d.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class _{constructor(a){var p;this.message=(p=m[a.type](a.context))!==null&&p!==void 0?p:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=a.type}static alreadyDisposed(){return new _({type:"alreadydisposed"})}static notBindable(){return new _({type:"notbindable"})}static propertyNotFound(a){return new _({type:"propertynotfound",context:{name:a}})}static shouldNeverHappen(){return new _({type:"shouldneverhappen"})}}class w{constructor(){this.observers_={}}on(a,p){let b=this.observers_[a];return b||(b=this.observers_[a]=[]),b.push({handler:p}),this}off(a,p){const b=this.observers_[a];return b&&(this.observers_[a]=b.filter(C=>C.handler!==p)),this}emit(a,p){const b=this.observers_[a];b&&b.forEach(C=>{C.handler(p)})}}const y="tp";function x(d){return(p,b)=>[y,"-",d,"v",p?`_${p}`:"",b?`-${b}`:""].join("")}function M(d,a){return p=>a(d(p))}function E(d){return d.rawValue}function I(d,a){d.emitter.on("change",M(E,a)),a(d.rawValue)}function T(d,a,p){I(d.value(a),p)}function F(d,a,p){p?d.classList.add(a):d.classList.remove(a)}function j(d,a){return p=>{F(d,a,p)}}function B(d,a){I(d,p=>{a.textContent=p??""})}const N=x("btn");class Q{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(N()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("button");b.classList.add(N("b")),p.viewProps.bindDisabled(b),this.element.appendChild(b),this.buttonElement=b;const C=a.createElement("div");C.classList.add(N("t")),B(p.props.value("title"),C),this.buttonElement.appendChild(C)}}class ${constructor(a,p){this.emitter=new w,this.onClick_=this.onClick_.bind(this),this.props=p.props,this.viewProps=p.viewProps,this.view=new Q(a,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class U{constructor(a,p){var b;this.constraint_=p==null?void 0:p.constraint,this.equals_=(b=p==null?void 0:p.equals)!==null&&b!==void 0?b:(C,S)=>C===S,this.emitter=new w,this.rawValue_=a}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(a){this.setRawValue(a,{forceEmit:!1,last:!0})}setRawValue(a,p){const b=p??{forceEmit:!1,last:!0},C=this.constraint_?this.constraint_.constrain(a):a,S=this.rawValue_;this.equals_(S,C)&&!b.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=C,this.emitter.emit("change",{options:b,previousRawValue:S,rawValue:C,sender:this}))}}class z{constructor(a){this.emitter=new w,this.value_=a}get rawValue(){return this.value_}set rawValue(a){this.setRawValue(a,{forceEmit:!1,last:!0})}setRawValue(a,p){const b=p??{forceEmit:!1,last:!0},C=this.value_;C===a&&!b.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=a,this.emitter.emit("change",{options:b,previousRawValue:C,rawValue:this.value_,sender:this}))}}function X(d,a){const p=a==null?void 0:a.constraint,b=a==null?void 0:a.equals;return!p&&!b?new z(d):new U(d,a)}class Y{constructor(a){this.emitter=new w,this.valMap_=a;for(const p in this.valMap_)this.valMap_[p].emitter.on("change",()=>{this.emitter.emit("change",{key:p,sender:this})})}static createCore(a){return Object.keys(a).reduce((b,C)=>Object.assign(b,{[C]:X(a[C])}),{})}static fromObject(a){const p=this.createCore(a);return new Y(p)}get(a){return this.valMap_[a].rawValue}set(a,p){this.valMap_[a].rawValue=p}value(a){return this.valMap_[a]}}function Z(d,a){const b=Object.keys(a).reduce((C,S)=>{if(C===void 0)return;const O=a[S],G=O(d[S]);return G.succeeded?Object.assign(Object.assign({},C),{[S]:G.value}):void 0},{});return b}function he(d,a){return d.reduce((p,b)=>{if(p===void 0)return;const C=a(b);if(!(!C.succeeded||C.value===void 0))return[...p,C.value]},[])}function ge(d){return d===null?!1:typeof d=="object"}function pe(d){return a=>p=>{if(!a&&p===void 0)return{succeeded:!1,value:void 0};if(a&&p===void 0)return{succeeded:!0,value:void 0};const b=d(p);return b!==void 0?{succeeded:!0,value:b}:{succeeded:!1,value:void 0}}}function me(d){return{custom:a=>pe(a)(d),boolean:pe(a=>typeof a=="boolean"?a:void 0)(d),number:pe(a=>typeof a=="number"?a:void 0)(d),string:pe(a=>typeof a=="string"?a:void 0)(d),function:pe(a=>typeof a=="function"?a:void 0)(d),constant:a=>pe(p=>p===a?a:void 0)(d),raw:pe(a=>a)(d),object:a=>pe(p=>{if(ge(p))return Z(p,a)})(d),array:a=>pe(p=>{if(Array.isArray(p))return he(p,a)})(d)}}const ue={optional:me(!0),required:me(!1)};function te(d,a){const p=ue.required.object(a)(d);return p.succeeded?p.value:void 0}function q(d){console.warn([`Missing '${d.key}' of ${d.target} in ${d.place}.`,"Please rebuild plugins with the latest core package."].join(" "))}function Ce(d){return d&&d.parentElement&&d.parentElement.removeChild(d),null}class fe{constructor(a){this.value_=a}static create(a){return[new fe(a),(p,b)=>{a.setRawValue(p,b)}]}get emitter(){return this.value_.emitter}get rawValue(){return this.value_.rawValue}}const le=x("");function ie(d,a){return j(d,le(void 0,a))}class be extends Y{constructor(a){var p;super(a),this.onDisabledChange_=this.onDisabledChange_.bind(this),this.onParentChange_=this.onParentChange_.bind(this),this.onParentGlobalDisabledChange_=this.onParentGlobalDisabledChange_.bind(this),[this.globalDisabled_,this.setGlobalDisabled_]=fe.create(X(this.getGlobalDisabled_())),this.value("disabled").emitter.on("change",this.onDisabledChange_),this.value("parent").emitter.on("change",this.onParentChange_),(p=this.get("parent"))===null||p===void 0||p.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_)}static create(a){var p,b,C;const S=a??{};return new be(Y.createCore({disabled:(p=S.disabled)!==null&&p!==void 0?p:!1,disposed:!1,hidden:(b=S.hidden)!==null&&b!==void 0?b:!1,parent:(C=S.parent)!==null&&C!==void 0?C:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(a){I(this.globalDisabled_,ie(a,"disabled")),T(this,"hidden",ie(a,"hidden"))}bindDisabled(a){I(this.globalDisabled_,p=>{a.disabled=p})}bindTabIndex(a){I(this.globalDisabled_,p=>{a.tabIndex=p?-1:0})}handleDispose(a){this.value("disposed").emitter.on("change",p=>{p&&a()})}getGlobalDisabled_(){const a=this.get("parent");return(a?a.globalDisabled.rawValue:!1)||this.get("disabled")}updateGlobalDisabled_(){this.setGlobalDisabled_(this.getGlobalDisabled_())}onDisabledChange_(){this.updateGlobalDisabled_()}onParentGlobalDisabledChange_(){this.updateGlobalDisabled_()}onParentChange_(a){var p;const b=a.previousRawValue;b==null||b.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(p=this.get("parent"))===null||p===void 0||p.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}function V(){return["veryfirst","first","last","verylast"]}const ce=x(""),Le={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class Ee{constructor(a){this.parent_=null,this.blade=a.blade,this.view=a.view,this.viewProps=a.viewProps;const p=this.view.element;this.blade.value("positions").emitter.on("change",()=>{V().forEach(b=>{p.classList.remove(ce(void 0,Le[b]))}),this.blade.get("positions").forEach(b=>{p.classList.add(ce(void 0,Le[b]))})}),this.viewProps.handleDispose(()=>{Ce(p)})}get parent(){return this.parent_}set parent(a){if(this.parent_=a,!("parent"in this.viewProps.valMap_)){q({key:"parent",target:be.name,place:"BladeController.parent"});return}this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}}const we="http://www.w3.org/2000/svg";function Ze(d){d.offsetHeight}function gn(d,a){const p=d.style.transition;d.style.transition="none",a(),d.style.transition=p}function Ue(d){return d.ontouchstart!==void 0}function _n(d){for(;d.childNodes.length>0;)d.removeChild(d.childNodes[0])}function $t(d){return d.relatedTarget?d.relatedTarget:"explicitOriginalTarget"in d?d.explicitOriginalTarget:null}const st=x("lbl");function ft(d,a){const p=d.createDocumentFragment();return a.split(`
|
|
17
|
-
`).map(C=>d.createTextNode(C)).forEach((C,S)=>{S>0&&p.appendChild(d.createElement("br")),p.appendChild(C)}),p}class Oe{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(st()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("div");b.classList.add(st("l")),T(p.props,"label",S=>{u(S)?this.element.classList.add(st(void 0,"nol")):(this.element.classList.remove(st(void 0,"nol")),_n(b),b.appendChild(ft(a,S)))}),this.element.appendChild(b),this.labelElement=b;const C=a.createElement("div");C.classList.add(st("v")),this.element.appendChild(C),this.valueElement=C}}class We extends Ee{constructor(a,p){const b=p.valueController.viewProps;super(Object.assign(Object.assign({},p),{view:new Oe(a,{props:p.props,viewProps:b}),viewProps:b})),this.props=p.props,this.valueController=p.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Xt extends Ee{constructor(a){super(a),this.value=a.value}}class rt extends Y{constructor(a){super(a)}static create(a){const p={completed:!0,expanded:a,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},b=Y.createCore(p);return new rt(b)}get styleExpanded(){var a;return(a=this.get("temporaryExpanded"))!==null&&a!==void 0?a:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const a=this.get("expandedHeight");return this.get("shouldFixHeight")&&!u(a)?`${a}px`:"auto"}bindExpandedClass(a,p){const b=()=>{this.styleExpanded?a.classList.add(p):a.classList.remove(p)};T(this,"expanded",b),T(this,"temporaryExpanded",b)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function wn(d){return rt.create(d)}function $n(d,a){let p=0;return gn(a,()=>{d.set("expandedHeight",null),d.set("temporaryExpanded",!0),Ze(a),p=a.clientHeight,d.set("temporaryExpanded",null),Ze(a)}),p}function yn(d,a){a.style.height=d.styleHeight}function xn(d,a){d.value("expanded").emitter.on("beforechange",()=>{d.set("completed",!1),u(d.get("expandedHeight"))&&d.set("expandedHeight",$n(d,a)),d.set("shouldFixHeight",!0),Ze(a)}),d.emitter.on("change",()=>{yn(d,a)}),yn(d,a),a.addEventListener("transitionend",p=>{p.propertyName==="height"&&d.cleanUpTransition()})}class ct{constructor(a,p){const b=x(p.viewName);this.element=a.createElement("div"),this.element.classList.add(b()),p.viewProps.bindClassModifiers(this.element)}}class vt extends Xt{constructor(a,p){const b=p.valueController.viewProps;super(Object.assign(Object.assign({},p),{value:p.valueController.value,view:new Oe(a,{props:p.props,viewProps:b}),viewProps:b})),this.props=p.props,this.valueController=p.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Cn{constructor(){this.disabled=!1,this.emitter=new w}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class Yt{constructor(a,p){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=a,this.emitter=new w,this.interval_=p,this.setTimer_()}get disabled(){return this.disabled_}set disabled(a){this.disabled_=a,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const a=this.doc_.defaultView;a&&a.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const a=this.doc_.defaultView;a&&(this.timerId_=a.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Pn{constructor(a){this.constraints=a}constrain(a){return this.constraints.reduce((p,b)=>b.constrain(p),a)}}function pt(d,a){if(d instanceof a)return d;if(d instanceof Pn){const p=d.constraints.reduce((b,C)=>b||(C instanceof a?C:null),null);if(p)return p}return null}class ot{constructor(a){this.values=Y.fromObject({max:a.max,min:a.min})}constrain(a){const p=this.values.get("max"),b=this.values.get("min");return Math.min(Math.max(a,b),p)}}class bt{constructor(a){this.values=Y.fromObject({max:a.max,min:a.min})}get maxValue(){return this.values.get("max")}get minValue(){return this.values.get("min")}constrain(a){const p=this.values.get("max"),b=this.values.get("min");let C=a;return u(b)||(C=Math.max(C,b)),u(p)||(C=Math.min(C,p)),C}}class D{constructor(a,p=0){this.step=a,this.origin=p}constrain(a){const p=this.origin%this.step,b=Math.round((a-p)/this.step);return p+b*this.step}}const K=x("pop");class J{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(K()),p.viewProps.bindClassModifiers(this.element),I(p.shows,j(this.element,K(void 0,"v")))}}class se{constructor(a,p){this.shows=X(!1),this.viewProps=p.viewProps,this.view=new J(a,{shows:this.shows,viewProps:this.viewProps})}}const ye=x("txt");class Ve{constructor(a,p){this.onChange_=this.onChange_.bind(this),this.element=a.createElement("div"),this.element.classList.add(ye()),p.viewProps.bindClassModifiers(this.element),this.props_=p.props,this.props_.emitter.on("change",this.onChange_);const b=a.createElement("input");b.classList.add(ye("i")),b.type="text",p.viewProps.bindDisabled(b),this.element.appendChild(b),this.inputElement=b,p.value.emitter.on("change",this.onChange_),this.value_=p.value,this.refresh()}refresh(){const a=this.props_.get("formatter");this.inputElement.value=a(this.value_.rawValue)}onChange_(){this.refresh()}}class Vt{constructor(a,p){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=p.parser,this.props=p.props,this.value=p.value,this.viewProps=p.viewProps,this.view=new Ve(a,{props:p.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(a){const b=a.currentTarget.value,C=this.parser_(b);u(C)||(this.value.rawValue=C),this.view.refresh()}}function qt(d){return d==="false"?!1:!!d}class Be{constructor(a){this.text=a}evaluate(){return Number(this.text)}toString(){return this.text}}const Ne={"**":(d,a)=>Math.pow(d,a),"*":(d,a)=>d*a,"/":(d,a)=>d/a,"%":(d,a)=>d%a,"+":(d,a)=>d+a,"-":(d,a)=>d-a,"<<":(d,a)=>d<<a,">>":(d,a)=>d>>a,">>>":(d,a)=>d>>>a,"&":(d,a)=>d&a,"^":(d,a)=>d^a,"|":(d,a)=>d|a};class bs{constructor(a,p,b){this.left=p,this.operator=a,this.right=b}evaluate(){const a=Ne[this.operator];if(!a)throw new Error(`unexpected binary operator: '${this.operator}`);return a(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const gs={"+":d=>d,"-":d=>-d,"~":d=>~d};class _s{constructor(a,p){this.operator=a,this.expression=p}evaluate(){const a=gs[this.operator];if(!a)throw new Error(`unexpected unary operator: '${this.operator}`);return a(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function Xn(d){return(a,p)=>{for(let b=0;b<d.length;b++){const C=d[b](a,p);if(C!=="")return C}return""}}function gt(d,a){var p;const b=d.substr(a).match(/^\s+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function Yn(d,a){const p=d.substr(a,1);return p.match(/^[1-9]$/)?p:""}function Te(d,a){var p;const b=d.substr(a).match(/^[0-9]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function qn(d,a){const p=Te(d,a);if(p!=="")return p;const b=d.substr(a,1);if(a+=1,b!=="-"&&b!=="+")return"";const C=Te(d,a);return C===""?"":b+C}function Je(d,a){const p=d.substr(a,1);if(a+=1,p.toLowerCase()!=="e")return"";const b=qn(d,a);return b===""?"":p+b}function Mi(d,a){const p=d.substr(a,1);if(p==="0")return p;const b=Yn(d,a);return a+=b.length,b===""?"":b+Te(d,a)}function Qt(d,a){const p=Mi(d,a);if(a+=p.length,p==="")return"";const b=d.substr(a,1);if(a+=b.length,b!==".")return"";const C=Te(d,a);return a+=C.length,p+b+C+Je(d,a)}function Ai(d,a){const p=d.substr(a,1);if(a+=p.length,p!==".")return"";const b=Te(d,a);return a+=b.length,b===""?"":p+b+Je(d,a)}function kn(d,a){const p=Mi(d,a);return a+=p.length,p===""?"":p+Je(d,a)}const Qn=Xn([Qt,Ai,kn]);function Zn(d,a){var p;const b=d.substr(a).match(/^[01]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function ws(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0b")return"";const b=Zn(d,a);return b===""?"":p+b}function ys(d,a){var p;const b=d.substr(a).match(/^[0-7]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function xs(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0o")return"";const b=ys(d,a);return b===""?"":p+b}function Cs(d,a){var p;const b=d.substr(a).match(/^[0-9a-f]+/i);return(p=b&&b[0])!==null&&p!==void 0?p:""}function Wn(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0x")return"";const b=Cs(d,a);return b===""?"":p+b}const Ps=Xn([ws,xs,Wn]),ks=Xn([Ps,Qn]);function Zt(d,a){const p=ks(d,a);return a+=p.length,p===""?null:{evaluable:new Be(p),cursor:a}}function Si(d,a){const p=d.substr(a,1);if(a+=p.length,p!=="(")return null;const b=Jn(d,a);if(!b)return null;a=b.cursor,a+=gt(d,a).length;const C=d.substr(a,1);return a+=C.length,C!==")"?null:{evaluable:b.evaluable,cursor:a}}function Ms(d,a){var p;return(p=Zt(d,a))!==null&&p!==void 0?p:Si(d,a)}function Mn(d,a){const p=Ms(d,a);if(p)return p;const b=d.substr(a,1);if(a+=b.length,b!=="+"&&b!=="-"&&b!=="~")return null;const C=Mn(d,a);return C?(a=C.cursor,{cursor:a,evaluable:new _s(b,C.evaluable)}):null}function As(d,a,p){p+=gt(a,p).length;const b=d.filter(C=>a.startsWith(C,p))[0];return b?(p+=b.length,p+=gt(a,p).length,{cursor:p,operator:b}):null}function Dt(d,a){return(p,b)=>{const C=d(p,b);if(!C)return null;b=C.cursor;let S=C.evaluable;for(;;){const O=As(a,p,b);if(!O)break;b=O.cursor;const G=d(p,b);if(!G)return null;b=G.cursor,S=new bs(O.operator,S,G.evaluable)}return S?{cursor:b,evaluable:S}:null}}const Li=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((d,a)=>Dt(d,a),Mn);function Jn(d,a){return a+=gt(d,a).length,Li(d,a)}function Ss(d){const a=Jn(d,0);return!a||a.cursor+gt(d,a.cursor).length!==d.length?null:a.evaluable}function Wt(d){var a;const p=Ss(d);return(a=p==null?void 0:p.evaluate())!==null&&a!==void 0?a:null}function Ls(d){if(typeof d=="number")return d;if(typeof d=="string"){const a=Wt(d);if(!u(a))return a}return 0}function Ae(d){return a=>a.toFixed(Math.max(Math.min(d,20),0))}const Vs=Ae(0);function An(d){return Vs(d)+"%"}function Vi(d){return String(d)}function Hn(d,a){for(;d.length<a;)d.push(void 0)}function Di(d){const a=[];return Hn(a,d),X(a)}function Ii(d){const a=d.indexOf(void 0);return a<0?d:d.slice(0,a)}function Ds(d,a){const p=[...Ii(d),a];return p.length>d.length?p.splice(0,p.length-d.length):Hn(p,d.length),p}function It({primary:d,secondary:a,forward:p,backward:b}){let C=!1;function S(O){C||(C=!0,O(),C=!1)}d.emitter.on("change",O=>{S(()=>{a.setRawValue(p(d,a),O.options)})}),a.emitter.on("change",O=>{S(()=>{d.setRawValue(b(d,a),O.options)}),S(()=>{a.setRawValue(p(d,a),O.options)})}),S(()=>{a.setRawValue(p(d,a),{forceEmit:!1,last:!0})})}function Et(d,a){const p=d*(a.altKey?.1:1)*(a.shiftKey?10:1);return a.upKey?+p:a.downKey?-p:0}function Jt(d){return{altKey:d.altKey,downKey:d.key==="ArrowDown",shiftKey:d.shiftKey,upKey:d.key==="ArrowUp"}}function ei(d){return{altKey:d.altKey,downKey:d.key==="ArrowLeft",shiftKey:d.shiftKey,upKey:d.key==="ArrowRight"}}function Is(d){return d==="ArrowUp"||d==="ArrowDown"}function Ei(d){return Is(d)||d==="ArrowLeft"||d==="ArrowRight"}function ti(d,a){var p,b;const C=a.ownerDocument.defaultView,S=a.getBoundingClientRect();return{x:d.pageX-(((p=C&&C.scrollX)!==null&&p!==void 0?p:0)+S.left),y:d.pageY-(((b=C&&C.scrollY)!==null&&b!==void 0?b:0)+S.top)}}class Sn{constructor(a){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_=a,this.emitter=new w,a.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),a.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),a.addEventListener("touchend",this.onTouchEnd_),a.addEventListener("mousedown",this.onMouseDown_)}computePosition_(a){const p=this.elem_.getBoundingClientRect();return{bounds:{width:p.width,height:p.height},point:a?{x:a.x,y:a.y}:null}}onMouseDown_(a){var p;a.preventDefault(),(p=a.currentTarget)===null||p===void 0||p.focus();const b=this.elem_.ownerDocument;b.addEventListener("mousemove",this.onDocumentMouseMove_),b.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onDocumentMouseMove_(a){this.emitter.emit("move",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onDocumentMouseUp_(a){const p=this.elem_.ownerDocument;p.removeEventListener("mousemove",this.onDocumentMouseMove_),p.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onTouchStart_(a){a.preventDefault();const p=a.targetTouches.item(0),b=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:a.altKey,data:this.computePosition_(p?{x:p.clientX-b.left,y:p.clientY-b.top}:void 0),sender:this,shiftKey:a.shiftKey}),this.lastTouch_=p}onTouchMove_(a){const p=a.targetTouches.item(0),b=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:a.altKey,data:this.computePosition_(p?{x:p.clientX-b.left,y:p.clientY-b.top}:void 0),sender:this,shiftKey:a.shiftKey}),this.lastTouch_=p}onTouchEnd_(a){var p;const b=(p=a.targetTouches.item(0))!==null&&p!==void 0?p:this.lastTouch_,C=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:a.altKey,data:this.computePosition_(b?{x:b.clientX-C.left,y:b.clientY-C.top}:void 0),sender:this,shiftKey:a.shiftKey})}}function Pe(d,a,p,b,C){const S=(d-a)/(p-a);return b+S*(C-b)}function Ti(d){return String(d.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Tt(d,a,p){return Math.min(Math.max(d,a),p)}const Re=x("txt");class Es{constructor(a,p){this.onChange_=this.onChange_.bind(this),this.props_=p.props,this.props_.emitter.on("change",this.onChange_),this.element=a.createElement("div"),this.element.classList.add(Re(),Re(void 0,"num")),p.arrayPosition&&this.element.classList.add(Re(void 0,p.arrayPosition)),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("input");b.classList.add(Re("i")),b.type="text",p.viewProps.bindDisabled(b),this.element.appendChild(b),this.inputElement=b,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=p.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(Re()),this.inputElement.classList.add(Re("i"));const C=a.createElement("div");C.classList.add(Re("k")),this.element.appendChild(C),this.knobElement=C;const S=a.createElementNS(we,"svg");S.classList.add(Re("g")),this.knobElement.appendChild(S);const O=a.createElementNS(we,"path");O.classList.add(Re("gb")),S.appendChild(O),this.guideBodyElem_=O;const G=a.createElementNS(we,"path");G.classList.add(Re("gh")),S.appendChild(G),this.guideHeadElem_=G;const oe=a.createElement("div");oe.classList.add(x("tt")()),this.knobElement.appendChild(oe),this.tooltipElem_=oe,p.value.emitter.on("change",this.onChange_),this.value=p.value,this.refresh()}onDraggingChange_(a){if(a.rawValue===null){this.element.classList.remove(Re(void 0,"drg"));return}this.element.classList.add(Re(void 0,"drg"));const p=a.rawValue/this.props_.get("draggingScale"),b=p+(p>0?-1:p<0?1:0),C=Tt(-b,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${b+C},0 L${b},4 L${b+C},8`,`M ${p},-1 L${p},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${p},4`);const S=this.props_.get("formatter");this.tooltipElem_.textContent=S(this.value.rawValue),this.tooltipElem_.style.left=`${p}px`}refresh(){const a=this.props_.get("formatter");this.inputElement.value=a(this.value.rawValue)}onChange_(){this.refresh()}}class Ht{constructor(a,p){var b;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.baseStep_=p.baseStep,this.parser_=p.parser,this.props=p.props,this.sliderProps_=(b=p.sliderProps)!==null&&b!==void 0?b:null,this.value=p.value,this.viewProps=p.viewProps,this.dragging_=X(null),this.view=new Es(a,{arrayPosition:p.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 C=new Sn(this.view.knobElement);C.emitter.on("down",this.onPointerDown_),C.emitter.on("move",this.onPointerMove_),C.emitter.on("up",this.onPointerUp_)}constrainValue_(a){var p,b;const C=(p=this.sliderProps_)===null||p===void 0?void 0:p.get("minValue"),S=(b=this.sliderProps_)===null||b===void 0?void 0:b.get("maxValue");let O=a;return C!==void 0&&(O=Math.max(O,C)),S!==void 0&&(O=Math.min(O,S)),O}onInputChange_(a){const b=a.currentTarget.value,C=this.parser_(b);u(C)||(this.value.rawValue=this.constrainValue_(C)),this.view.refresh()}onInputKeyDown_(a){const p=Et(this.baseStep_,Jt(a));p!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+p),{forceEmit:!1,last:!1})}onInputKeyUp_(a){Et(this.baseStep_,Jt(a))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(a){if(!a.point)return null;const p=a.point.x-a.bounds.width/2;return this.constrainValue_(this.originRawValue_+p*this.props.get("draggingScale"))}onPointerMove_(a){const p=this.computeDraggingValue_(a.data);p!==null&&(this.value.setRawValue(p,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(a){const p=this.computeDraggingValue_(a.data);p!==null&&(this.value.setRawValue(p,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function Xe(d,a){d.write(a)}function Ot(d){const a=d?pt(d,D):null;return a?a.step:null}function en(d,a){const p=d&&pt(d,D);return p?Ti(p.step):Math.max(Ti(a),2)}function ni(d){const a=Ot(d);return a??1}function Ln(d,a){var p;const b=d&&pt(d,D),C=Math.abs((p=b==null?void 0:b.step)!==null&&p!==void 0?p:a);return C===0?.1:Math.pow(10,Math.floor(Math.log10(C))-1)}function Bt(d){return[d[0],d[1],d[2]]}function Oi(d){const a=Tt(Math.floor(d),0,255).toString(16);return a.length===1?`0${a}`:a}function tn(d,a="#"){const p=Bt(d.getComponents("rgb")).map(Oi).join("");return`${a}${p}`}function Bi(d,a="#"){const p=d.getComponents("rgb"),b=[p[0],p[1],p[2],p[3]*255].map(Oi).join("");return`${a}${b}`}function Ts(d,a){const p=Ae(a==="float"?2:0);return`rgb(${Bt(d.getComponents("rgb",a)).map(C=>p(C)).join(", ")})`}function Ni(d){return a=>Ts(a,d)}function Fi(d,a){const p=Ae(2),b=Ae(a==="float"?2:0);return`rgba(${d.getComponents("rgb",a).map((S,O)=>(O===3?p:b)(S)).join(", ")})`}function Os(d){return a=>Fi(a,d)}function Vn(d){const a=[Ae(0),An,An];return`hsl(${Bt(d.getComponents("hsl")).map((b,C)=>a[C](b)).join(", ")})`}function Bs(d){const a=[Ae(0),An,An,Ae(2)];return`hsla(${d.getComponents("hsl").map((b,C)=>a[C](b)).join(", ")})`}function ji(d,a){const p=Ae(a==="float"?2:0),b=["r","g","b"];return`{${Bt(d.getComponents("rgb",a)).map((S,O)=>`${b[O]}: ${p(S)}`).join(", ")}}`}function zi(d){return a=>ji(a,d)}function Ns(d,a){const p=Ae(2),b=Ae(a==="float"?2:0),C=["r","g","b","a"];return`{${d.getComponents("rgb",a).map((O,G)=>{const oe=G===3?p:b;return`${C[G]}: ${oe(O)}`}).join(", ")}}`}function Fs(d){return a=>Ns(a,d)}[...["int","float"].reduce((d,a)=>[...d,{format:{alpha:!1,mode:"rgb",notation:"func",type:a},stringifier:Ni(a)},{format:{alpha:!0,mode:"rgb",notation:"func",type:a},stringifier:Os(a)},{format:{alpha:!1,mode:"rgb",notation:"object",type:a},stringifier:zi(a)},{format:{alpha:!0,mode:"rgb",notation:"object",type:a},stringifier:Fs(a)}],[])];class js{constructor(a){this.components=a.components,this.asm_=a.assembly}constrain(a){const p=this.asm_.toComponents(a).map((b,C)=>{var S,O;return(O=(S=this.components[C])===null||S===void 0?void 0:S.constrain(b))!==null&&O!==void 0?O:b});return this.asm_.fromComponents(p)}}const Ui=x("pndtxt");class zs{constructor(a,p){this.textViews=p.textViews,this.element=a.createElement("div"),this.element.classList.add(Ui()),this.textViews.forEach(b=>{const C=a.createElement("div");C.classList.add(Ui("a")),C.appendChild(b.element),this.element.appendChild(C)})}}function ii(d,a,p){return new Ht(d,{arrayPosition:p===0?"fst":p===a.axes.length-1?"lst":"mid",baseStep:a.axes[p].baseStep,parser:a.parser,props:a.axes[p].textProps,value:X(0,{constraint:a.axes[p].constraint}),viewProps:a.viewProps})}class _t{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.acs_=p.axes.map((b,C)=>ii(a,p,C)),this.acs_.forEach((b,C)=>{It({primary:this.value,secondary:b.value,forward:S=>p.assembly.toComponents(S.rawValue)[C],backward:(S,O)=>{const G=p.assembly.toComponents(S.rawValue);return G[C]=O.rawValue,p.assembly.fromComponents(G)}})}),this.view=new zs(a,{textViews:this.acs_.map(b=>b.view)})}}function Us(d,a){return"step"in d&&!u(d.step)?new D(d.step,a):null}function nn(d){return!u(d.max)&&!u(d.min)?new ot({max:d.max,min:d.min}):!u(d.max)||!u(d.min)?new bt({max:d.max,min:d.min}):null}const Rs={monitor:{defaultInterval:200,defaultLineCount:3}},He=x("grl");class Ri{constructor(a,p){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=a.createElement("div"),this.element.classList.add(He()),p.viewProps.bindClassModifiers(this.element),this.formatter_=p.formatter,this.props_=p.props,this.cursor_=p.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const b=a.createElementNS(we,"svg");b.classList.add(He("g")),b.style.height=`calc(var(--bld-us) * ${p.lineCount})`,this.element.appendChild(b),this.svgElem_=b;const C=a.createElementNS(we,"polyline");this.svgElem_.appendChild(C),this.lineElem_=C;const S=a.createElement("div");S.classList.add(He("t"),x("tt")()),this.element.appendChild(S),this.tooltipElem_=S,p.value.emitter.on("change",this.onValueUpdate_),this.value=p.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const a=this.svgElem_.getBoundingClientRect(),p=this.value.rawValue.length-1,b=this.props_.get("minValue"),C=this.props_.get("maxValue"),S=[];this.value.rawValue.forEach(($e,ne)=>{if($e===void 0)return;const dt=Pe(ne,0,p,0,a.width),nr=Pe($e,b,C,a.height,0);S.push([dt,nr].join(","))}),this.lineElem_.setAttributeNS(null,"points",S.join(" "));const O=this.tooltipElem_,G=this.value.rawValue[this.cursor_.rawValue];if(G===void 0){O.classList.remove(He("t","a"));return}const oe=Pe(this.cursor_.rawValue,0,p,0,a.width),Ke=Pe(G,b,C,a.height,0);O.style.left=`${oe}px`,O.style.top=`${Ke}px`,O.textContent=`${this.formatter_(G)}`,O.classList.contains(He("t","a"))||(O.classList.add(He("t","a"),He("t","in")),Ze(O),O.classList.remove(He("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Gs{constructor(a,p){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_=p.props,this.value=p.value,this.viewProps=p.viewProps,this.cursor_=X(-1),this.view=new Ri(a,{cursor:this.cursor_,formatter:p.formatter,lineCount:p.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Ue(a))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const b=new Sn(this.view.element);b.emitter.on("down",this.onGraphPointerDown_),b.emitter.on("move",this.onGraphPointerMove_),b.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(a){const p=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(Pe(a.offsetX,0,p.width,0,this.value.rawValue.length))}onGraphPointerDown_(a){this.onGraphPointerMove_(a)}onGraphPointerMove_(a){if(!a.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(Pe(a.data.point.x,0,a.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class Gi{constructor(a){this.controller_=a}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get title(){var a;return(a=this.controller_.props.get("title"))!==null&&a!==void 0?a:""}set title(a){this.controller_.props.set("title",a)}on(a,p){const b=p.bind(this);return this.controller_.emitter.on(a,()=>{b(new o(this))}),this}}class Ks extends o{constructor(a,p,b){super(a),this.cell=p,this.index=b}}class Ki extends s{constructor(a){super(a),this.cellToApiMap_=new Map,this.emitter_=new w;const p=this.controller_.valueController;p.cellControllers.forEach((b,C)=>{const S=new Gi(b);this.cellToApiMap_.set(b,S),b.emitter.on("click",()=>{const O=C%p.size[0],G=Math.floor(C/p.size[0]);this.emitter_.emit("click",{event:new Ks(this,S,[O,G])})})})}cell(a,p){const b=this.controller_.valueController,C=b.cellControllers[p*b.size[0]+a];return this.cellToApiMap_.get(C)}on(a,p){const b=p.bind(this);return this.emitter_.on(a,C=>{b(C.event)}),this}}class si{constructor(a,p){this.size=p.size;const[b,C]=this.size,S=[];for(let O=0;O<C;O++)for(let G=0;G<b;G++){const oe=new $(a,{props:Y.fromObject(Object.assign({},p.cellConfig(G,O))),viewProps:be.create()});S.push(oe)}this.cellCs_=S,this.viewProps=be.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(O=>{O.viewProps.set("disposed",!0)})}),this.view=new ct(a,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${b}, 1fr)`,this.cellCs_.forEach(O=>{this.view.element.appendChild(O.view.element)})}get cellControllers(){return this.cellCs_}}const $s={id:"buttongrid",type:"blade",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept(d){const a=ue,p=te(d,{cells:a.required.function,size:a.required.array(a.required.number),view:a.required.constant("buttongrid"),label:a.optional.string});return p?{params:p}:null},controller(d){return new We(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new si(d.document,{cellConfig:d.params.cells,size:d.params.size})})},api(d){return!(d.controller instanceof We)||!(d.controller.valueController instanceof si)?null:new Ki(d.controller)}};class $i extends s{get label(){return this.controller_.props.get("label")}set label(a){this.controller_.props.set("label",a)}get value(){return this.controller_.valueController.value.rawValue}set value(a){this.controller_.valueController.value.rawValue=a}on(a,p){const b=p.bind(this);return this.controller_.valueController.value.emitter.on(a,C=>{b(new c(this,C.rawValue,void 0,C.options.last))}),this}}function Ge(d,a,p){return d*(1-p)+a*p}const Xs=20,Ys=.001,ri=100;function qs(d,a){let p=.25,b=.5,C=-1;for(let S=0;S<Xs;S++){const[O,G]=d.curve(b);if(b+=p*(O<a?1:-1),C=G,p*=.5,Math.abs(a-O)<Ys)break}return C}class ht{constructor(a=0,p=0,b=1,C=1){this.cache_=[],this.comps_=[a,p,b,C]}get x1(){return this.comps_[0]}get y1(){return this.comps_[1]}get x2(){return this.comps_[2]}get y2(){return this.comps_[3]}static isObject(a){return u(a)||!Array.isArray(a)?!1:typeof a[0]=="number"&&typeof a[1]=="number"&&typeof a[2]=="number"&&typeof a[3]=="number"}static equals(a,p){return a.x1===p.x1&&a.y1===p.y1&&a.x2===p.x2&&a.y2===p.y2}curve(a){const p=Ge(0,this.x1,a),b=Ge(0,this.y1,a),C=Ge(this.x1,this.x2,a),S=Ge(this.y1,this.y2,a),O=Ge(this.x2,1,a),G=Ge(this.y2,1,a),oe=Ge(p,C,a),Ke=Ge(b,S,a),$e=Ge(C,O,a),ne=Ge(S,G,a);return[Ge(oe,$e,a),Ge(Ke,ne,a)]}y(a){if(this.cache_.length===0){const p=[];for(let b=0;b<ri;b++)p.push(qs(this,Pe(b,0,ri-1,0,1)));this.cache_=p}return this.cache_[Math.round(Pe(Tt(a,0,1),0,1,0,ri-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const oi={toComponents:d=>d.toObject(),fromComponents:d=>new ht(...d)};function Qs(d){const a=Ae(2);return`cubic-bezier(${d.toObject().map(b=>a(b)).join(", ")})`}const ai=[0,.5,.5,1];function Zs(d){const a=d.match(/^cubic-bezier\s*\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*\)$/);if(!a)return new ht(...ai);const p=[a[1],a[2],a[3],a[4]].reduce((b,C)=>{if(!b)return null;const S=Number(C);return isNaN(S)?null:[...b,S]},[]);return new ht(...p??ai)}const wt=x("cbz");class Xi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(wt()),p.viewProps.bindClassModifiers(this.element),p.foldable.bindExpandedClass(this.element,wt(void 0,"expanded")),T(p.foldable,"completed",j(this.element,wt(void 0,"cpl")));const b=a.createElement("div");b.classList.add(wt("h")),this.element.appendChild(b);const C=a.createElement("button");C.classList.add(wt("b")),p.viewProps.bindDisabled(C);const S=a.createElementNS(we,"svg");S.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',C.appendChild(S),b.appendChild(C),this.buttonElement=C;const O=a.createElement("div");if(O.classList.add(wt("t")),b.appendChild(O),this.textElement=O,p.pickerLayout==="inline"){const G=a.createElement("div");G.classList.add(wt("p")),this.element.appendChild(G),this.pickerElement=G}else this.pickerElement=null}}const Dn=x("cbzp");class Yi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(Dn()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("div");b.classList.add(Dn("g")),this.element.appendChild(b),this.graphElement=b;const C=a.createElement("div");C.classList.add(Dn("t")),this.element.appendChild(C),this.textElement=C}}function et(d,a){const p=new MutationObserver(C=>{for(const S of C)S.type==="childList"&&S.addedNodes.forEach(O=>{O.contains(O)&&(a(),p.disconnect())})}),b=d.ownerDocument;p.observe(b.body,{attributes:!0,childList:!0,subtree:!0})}const at=x("cbzg");function Ws(d,a){return p=>a(d(p))}class Se{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(at()),p.viewProps.bindClassModifiers(this.element),p.viewProps.bindTabIndex(this.element);const b=a.createElement("div");b.classList.add(at("p")),this.element.appendChild(b),this.previewElement=b;const C=a.createElementNS(we,"svg");C.classList.add(at("g")),this.element.appendChild(C),this.svgElem_=C;const S=a.createElementNS(we,"path");S.classList.add(at("u")),this.svgElem_.appendChild(S),this.guideElem_=S;const O=a.createElementNS(we,"polyline");O.classList.add(at("l")),this.svgElem_.appendChild(O),this.lineElem_=O,this.handleElems_=[a.createElement("div"),a.createElement("div")],this.handleElems_.forEach(G=>{G.classList.add(at("h")),this.element.appendChild(G)}),this.vectorElems_=[a.createElementNS(we,"line"),a.createElementNS(we,"line")],this.vectorElems_.forEach(G=>{G.classList.add(at("v")),this.svgElem_.appendChild(G)}),this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=p.selection,this.handleElems_.forEach((G,oe)=>{I(this.sel_,Ws(Ke=>Ke===oe,j(G,at("h","sel"))))}),et(this.element,()=>{this.refresh()})}getVertMargin_(a){return a*.25}valueToPosition(a,p){const b=this.element.getBoundingClientRect(),C=b.width,S=b.height,O=this.getVertMargin_(S);return{x:Pe(a,0,1,0,C),y:Pe(p,0,1,S-O,O)}}positionToValue(a,p){const b=this.element.getBoundingClientRect(),C=b.width,S=b.height,O=this.getVertMargin_(S);return{x:Tt(Pe(a,0,C,0,1),0,1),y:Pe(p,S-O,O,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(S=>{const O=this.valueToPosition(0,S),G=this.valueToPosition(1,S);return[`M ${O.x},${O.y}`,`L ${G.x},${G.y}`].join(" ")}).join(" "));const a=this.value_.rawValue,p=[];let b=0;for(;;){const S=this.valueToPosition(...a.curve(b));if(p.push([S.x,S.y].join(",")),b>=1)break;b=Math.min(b+.05,1)}this.lineElem_.setAttributeNS(null,"points",p.join(" "));const C=a.toObject();[0,1].forEach(S=>{const O=this.valueToPosition(S,S),G=this.valueToPosition(C[S*2],C[S*2+1]),oe=this.vectorElems_[S];oe.setAttributeNS(null,"x1",String(O.x)),oe.setAttributeNS(null,"y1",String(O.y)),oe.setAttributeNS(null,"x2",String(G.x)),oe.setAttributeNS(null,"y2",String(G.y));const Ke=this.handleElems_[S];Ke.style.left=`${G.x}px`,Ke.style.top=`${G.y}px`})}onValueChange_(){this.refresh()}}const qi=24,sn=400,li=1e3,ut=x("cbzprv");class Nt{constructor(a,p){this.stopped_=!0,this.startTime_=-1,this.onDispose_=this.onDispose_.bind(this),this.onTimer_=this.onTimer_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.element=a.createElement("div"),this.element.classList.add(ut()),p.viewProps.bindClassModifiers(this.element);const b=a.createElementNS(we,"svg");b.classList.add(ut("g")),this.element.appendChild(b),this.svgElem_=b;const C=a.createElementNS(we,"path");C.classList.add(ut("t")),this.svgElem_.appendChild(C),this.ticksElem_=C;const S=a.createElement("div");S.classList.add(ut("m")),this.element.appendChild(S),this.markerElem_=S,this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_),p.viewProps.handleDispose(this.onDispose_),et(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(ut("m","a")),this.startTime_=new Date().getTime()+sn,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(ut("m","a"))}onDispose_(){this.stop()}updateMarker_(a){const p=this.value_.rawValue.y(Tt(a,0,1));this.markerElem_.style.left=`${p*100}%`}refresh(){const a=this.svgElem_.getBoundingClientRect(),p=a.width,b=a.height,C=[],S=this.value_.rawValue;for(let O=0;O<qi;O++){const G=Pe(O,0,qi-1,0,1),oe=Pe(S.y(G),0,1,0,p);C.push(`M ${oe},0 v${b}`)}this.ticksElem_.setAttributeNS(null,"d",C.join(" "))}onTimer_(){if(this.startTime_===null)return;const a=new Date().getTime()-this.startTime_,p=a/li;this.updateMarker_(p),a>li+sn&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function De(d,a,p,b){const C=p-d,S=b-a;return Math.sqrt(C*C+S*S)}function rn(d,a,p,b){const C=De(d,a,p,b),S=Math.atan2(b-a,p-d),O=Math.round(S/(Math.PI/4))*Math.PI/4;return{x:d+Math.cos(O)*C,y:a+Math.sin(O)*C}}class tt{constructor(a,p){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.baseStep_=p.baseStep,this.value=p.value,this.sel_=X(0),this.viewProps=p.viewProps,this.view=new Se(a,{selection:this.sel_,value:this.value,viewProps:this.viewProps}),this.view.element.addEventListener("keydown",this.onKeyDown_),this.view.element.addEventListener("keyup",this.onKeyUp_),this.prevView_=new Nt(a,{value:this.value,viewProps:this.viewProps}),this.prevView_.element.addEventListener("mousedown",C=>{C.stopImmediatePropagation(),C.preventDefault(),this.prevView_.play()}),this.view.previewElement.appendChild(this.prevView_.element);const b=new Sn(this.view.element);b.emitter.on("down",this.onPointerDown_),b.emitter.on("move",this.onPointerMove_),b.emitter.on("up",this.onPointerUp_)}refresh(){this.view.refresh(),this.prevView_.refresh(),this.prevView_.play()}updateValue_(a,p,b){const C=this.sel_.rawValue,S=this.value.rawValue.toObject(),O=this.view.positionToValue(a.x,a.y),G=p?rn(C,C,O.x,O.y):O;S[C*2]=G.x,S[C*2+1]=G.y,this.value.setRawValue(new ht(...S),b)}onPointerDown_(a){const p=a.data;if(!p.point)return;const b=this.value.rawValue,C=this.view.valueToPosition(b.x1,b.y1),S=De(p.point.x,p.point.y,C.x,C.y),O=this.view.valueToPosition(b.x2,b.y2),G=De(p.point.x,p.point.y,O.x,O.y);this.sel_.rawValue=S<=G?0:1,this.updateValue_(p.point,a.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(a){const p=a.data;p.point&&this.updateValue_(p.point,a.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(a){const p=a.data;p.point&&this.updateValue_(p.point,a.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(a){Ei(a.key)&&a.preventDefault();const p=this.sel_.rawValue,b=this.value.rawValue.toObject();b[p*2]+=Et(this.baseStep_,ei(a)),b[p*2+1]+=Et(this.baseStep_,Jt(a)),this.value.setRawValue(new ht(...b),{forceEmit:!1,last:!1})}onKeyUp_(a){Ei(a.key)&&a.preventDefault();const p=Et(this.baseStep_,ei(a)),b=Et(this.baseStep_,Jt(a));p===0&&b===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Qi{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.view=new Yi(a,{viewProps:this.viewProps}),this.gc_=new tt(a,{baseStep:p.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const b=Object.assign(Object.assign({},p.axis),{constraint:new bt({max:1,min:0})}),C=Object.assign(Object.assign({},p.axis),{constraint:void 0});this.tc_=new _t(a,{assembly:oi,axes:[b,C,b,C],parser:Wt,value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element)}get allFocusableElements(){return[this.gc_.view.element,...this.tc_.view.textViews.map(a=>a.inputElement)]}refresh(){this.gc_.refresh()}}class In{constructor(a,p){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=p.value,this.viewProps=p.viewProps,this.foldable_=wn(p.expanded),this.view=new Xi(a,{foldable:this.foldable_,pickerLayout:p.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new Vt(a,{parser:Zs,props:Y.fromObject({formatter:Qs}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=p.pickerLayout==="popup"?new se(a,{viewProps:this.viewProps}):null;const b=new Qi(a,{axis:p.axis,value:this.value,viewProps:this.viewProps});b.allFocusableElements.forEach(C=>{C.addEventListener("blur",this.onPopupChildBlur_),C.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=b,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),I(this.popC_.shows,C=>{C&&b.refresh()}),It({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:C=>C.rawValue,backward:(C,S)=>S.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),xn(this.foldable_,this.view.pickerElement))}onButtonBlur_(a){if(!this.popC_)return;const p=a.relatedTarget;(!p||!this.popC_.view.element.contains(p))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.allFocusableElements[0].focus()}onPopupChildBlur_(a){if(!this.popC_)return;const p=this.popC_.view.element,b=$t(a);b&&p.contains(b)||b&&b===this.view.buttonElement&&!Ue(p.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(a){this.popC_&&a.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function ci(){return new js({assembly:oi,components:[0,1,2,3].map(d=>d%2===0?new bt({min:0,max:1}):void 0)})}const yt={id:"cubic-bezier",type:"blade",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept(d){const a=ue,p=te(d,{value:a.required.array(a.required.number),view:a.required.constant("cubicbezier"),expanded:a.optional.boolean,label:a.optional.string,picker:a.optional.custom(b=>b==="inline"||b==="popup"?b:void 0)});return p?{params:p}:null},controller(d){var a,p;const b=new ht(...d.params.value),C=X(b,{constraint:ci(),equals:ht.equals}),S=new In(d.document,{axis:{baseStep:.1,textProps:Y.fromObject({draggingScale:.01,formatter:Ae(2)})},expanded:(a=d.params.expanded)!==null&&a!==void 0?a:!1,pickerLayout:(p=d.params.picker)!==null&&p!==void 0?p:"popup",value:C,viewProps:d.viewProps});return new vt(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:S})},api(d){return!(d.controller instanceof vt)||!(d.controller.valueController instanceof In)?null:new $i(d.controller)}};class _e extends s{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const pi=20;class ke{constructor(){this.start_=null,this.duration_=0,this.fps_=null,this.frameCount_=0,this.timestamps_=[]}get duration(){return this.duration_}get fps(){return this.fps_}begin(a){this.start_=a.getTime()}calculateFps_(a){if(this.timestamps_.length===0)return null;const p=this.timestamps_[0];return 1e3*(this.frameCount_-p.frameCount)/(a-p.time)}compactTimestamps_(){if(this.timestamps_.length<=pi)return;const a=this.timestamps_.length-pi;this.timestamps_.splice(0,a);const p=this.timestamps_[0].frameCount;this.timestamps_.forEach(b=>{b.frameCount-=p}),this.frameCount_-=p}end(a){if(this.start_===null)return;const p=a.getTime();this.duration_=p-this.start_,this.start_=null,this.fps_=this.calculateFps_(p),this.timestamps_.push({frameCount:this.frameCount_,time:p}),++this.frameCount_,this.compactTimestamps_()}}const Ft=x("fps");class Fe{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(Ft()),p.viewProps.bindClassModifiers(this.element),this.graphElement=a.createElement("div"),this.graphElement.classList.add(Ft("g")),this.element.appendChild(this.graphElement);const b=a.createElement("div");b.classList.add(Ft("l")),this.element.appendChild(b);const C=a.createElement("span");C.classList.add(Ft("v")),C.textContent="--",b.appendChild(C),this.valueElement=C;const S=a.createElement("span");S.classList.add(Ft("u")),S.textContent="FPS",b.appendChild(S)}}class hi{constructor(a,p){this.stopwatch_=new ke,this.onTick_=this.onTick_.bind(this),this.ticker_=p.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=p.value,this.viewProps=p.viewProps,this.view=new Fe(a,{viewProps:this.viewProps}),this.graphC_=new Gs(a,{formatter:Ae(0),lineCount:p.lineCount,props:Y.fromObject({maxValue:p.maxValue,minValue:p.minValue}),value:this.value_,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.graphC_.view.element),this.viewProps.handleDispose(()=>{this.graphC_.viewProps.set("disposed",!0),this.ticker_.dispose()})}begin(){this.stopwatch_.begin(new Date)}end(){this.stopwatch_.end(new Date)}onTick_(){const a=this.stopwatch_.fps;if(a!==null){const p=this.value_.rawValue;this.value_.rawValue=Ds(p,a),this.view.valueElement.textContent=a.toFixed(0)}}}function on(d,a){return a===0?new Cn:new Yt(d,a??Rs.monitor.defaultInterval)}const ui={id:"fpsgraph",type:"blade",accept(d){const a=ue,p=te(d,{view:a.required.constant("fpsgraph"),interval:a.optional.number,label:a.optional.string,lineCount:a.optional.number,max:a.optional.number,min:a.optional.number});return p?{params:p}:null},controller(d){var a,p,b,C;const S=(a=d.params.interval)!==null&&a!==void 0?a:500;return new We(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new hi(d.document,{lineCount:(p=d.params.lineCount)!==null&&p!==void 0?p:2,maxValue:(b=d.params.max)!==null&&b!==void 0?b:90,minValue:(C=d.params.min)!==null&&C!==void 0?C:0,ticker:on(d.document,S),value:Di(80),viewProps:d.viewProps})})},api(d){return!(d.controller instanceof We)||!(d.controller.valueController instanceof hi)?null:new _e(d.controller)}};class je{constructor(a,p){this.min=a,this.max=p}static isObject(a){if(typeof a!="object"||a===null)return!1;const p=a.min,b=a.max;return!(typeof p!="number"||typeof b!="number")}static equals(a,p){return a.min===p.min&&a.max===p.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const di={fromComponents:d=>new je(d[0],d[1]),toComponents:d=>[d.min,d.max]};class an{constructor(a){this.edge=a}constrain(a){var p,b,C,S,O,G,oe,Ke;if(a.min<=a.max)return new je((b=(p=this.edge)===null||p===void 0?void 0:p.constrain(a.min))!==null&&b!==void 0?b:a.min,(S=(C=this.edge)===null||C===void 0?void 0:C.constrain(a.max))!==null&&S!==void 0?S:a.max);const $e=(a.min+a.max)/2;return new je((G=(O=this.edge)===null||O===void 0?void 0:O.constrain($e))!==null&&G!==void 0?G:$e,(Ke=(oe=this.edge)===null||oe===void 0?void 0:oe.constrain($e))!==null&&Ke!==void 0?Ke:$e)}}const mi=x("rsltxt");class En{constructor(a,p){this.sliderView_=p.sliderView,this.textView_=p.textView,this.element=a.createElement("div"),this.element.classList.add(mi());const b=a.createElement("div");b.classList.add(mi("s")),b.appendChild(this.sliderView_.element),this.element.appendChild(b);const C=a.createElement("div");C.classList.add(mi("t")),C.appendChild(this.textView_.element),this.element.appendChild(C)}}const Ye=x("rsl");class ln{constructor(a,p){this.onSliderPropsChange_=this.onSliderPropsChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.sliderProps_=p.sliderProps,this.sliderProps_.emitter.on("change",this.onSliderPropsChange_),this.element=a.createElement("div"),this.element.classList.add(Ye()),p.viewProps.bindClassModifiers(this.element),this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_);const b=a.createElement("div");b.classList.add(Ye("t")),this.element.appendChild(b),this.trackElement=b;const C=a.createElement("div");C.classList.add(Ye("b")),b.appendChild(C),this.barElement=C;const S=["min","max"].map(O=>{const G=a.createElement("div");return G.classList.add(Ye("k"),Ye("k",O)),b.appendChild(G),G});this.knobElements=[S[0],S[1]],this.update_()}valueToX_(a){const p=this.sliderProps_.get("minValue"),b=this.sliderProps_.get("maxValue");return Tt(Pe(a,p,b,0,1),0,1)*100}update_(){const a=this.value_.rawValue;a.length===0?this.element.classList.add(Ye(void 0,"zero")):this.element.classList.remove(Ye(void 0,"zero"));const p=[this.valueToX_(a.min),this.valueToX_(a.max)];this.barElement.style.left=`${p[0]}%`,this.barElement.style.right=`${100-p[1]}%`,this.knobElements.forEach((b,C)=>{b.style.left=`${p[C]}%`})}onSliderPropsChange_(){this.update_()}onValueChange_(){this.update_()}}class fi{constructor(a,p){this.grabbing_=null,this.grabOffset_=0,this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.sliderProps=p.sliderProps,this.viewProps=p.viewProps,this.value=p.value,this.view=new ln(a,{sliderProps:this.sliderProps,value:this.value,viewProps:p.viewProps});const b=new Sn(this.view.trackElement);b.emitter.on("down",this.onPointerDown_),b.emitter.on("move",this.onPointerMove_),b.emitter.on("up",this.onPointerUp_)}ofs_(){return this.grabbing_==="min"?this.view.knobElements[0].getBoundingClientRect().width/2:this.grabbing_==="max"?-this.view.knobElements[1].getBoundingClientRect().width/2:0}valueFromData_(a){if(!a.point)return null;const p=(a.point.x+this.ofs_())/a.bounds.width,b=this.sliderProps.get("minValue"),C=this.sliderProps.get("maxValue");return Pe(p,0,1,b,C)}onPointerDown_(a){if(!a.data.point)return;const p=a.data.point.x/a.data.bounds.width,b=this.value.rawValue,C=this.sliderProps.get("minValue"),S=this.sliderProps.get("maxValue"),O=Pe(b.min,C,S,0,1),G=Pe(b.max,C,S,0,1);Math.abs(G-p)<=.025?this.grabbing_="max":Math.abs(O-p)<=.025?this.grabbing_="min":p>=O&&p<=G?(this.grabbing_="length",this.grabOffset_=Pe(p-O,0,1,0,S-C)):p<O?(this.grabbing_="min",this.onPointerMove_(a)):p>G&&(this.grabbing_="max",this.onPointerMove_(a))}applyPointToValue_(a,p){const b=this.valueFromData_(a);if(b===null)return;const C=this.sliderProps.get("minValue"),S=this.sliderProps.get("maxValue");if(this.grabbing_==="min")this.value.setRawValue(new je(b,this.value.rawValue.max),p);else if(this.grabbing_==="max")this.value.setRawValue(new je(this.value.rawValue.min,b),p);else if(this.grabbing_==="length"){const O=this.value.rawValue.length;let G=b-this.grabOffset_,oe=G+O;G<C?(G=C,oe=C+O):oe>S&&(G=S-O,oe=S),this.value.setRawValue(new je(G,oe),p)}}onPointerMove_(a){this.applyPointToValue_(a.data,{forceEmit:!1,last:!1})}onPointerUp_(a){this.applyPointToValue_(a.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class lt{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.sc_=new fi(a,p);const b={baseStep:p.baseStep,constraint:p.constraint,textProps:Y.fromObject({draggingScale:p.draggingScale,formatter:p.formatter})};this.tc_=new _t(a,{assembly:di,axes:[b,b],parser:p.parser,value:this.value,viewProps:p.viewProps}),this.view=new En(a,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function Zi(d){return je.isObject(d)?new je(d.min,d.max):new je(0,0)}function vi(d,a){d.writeProperty("max",a.max),d.writeProperty("min",a.min)}function Js(d){const a=[],p=nn(d);p&&a.push(p);const b=Us(d);return b&&a.push(b),new an(new Pn(a))}const Tn={id:"input-interval",type:"input",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept:(d,a)=>{if(!je.isObject(d))return null;const p=ue,b=te(a,{format:p.optional.function,max:p.optional.number,min:p.optional.number,step:p.optional.number});return b?{initialValue:new je(d.min,d.max),params:b}:null},binding:{reader:d=>Zi,constraint:d=>Js(d.params),equals:je.equals,writer:d=>vi},controller(d){var a;const p=d.value,b=d.constraint;if(!(b instanceof an))throw _.shouldNeverHappen();const C=(p.rawValue.min+p.rawValue.max)/2,S=(a=d.params.format)!==null&&a!==void 0?a:Ae(en(b.edge,C)),O=b.edge&&pt(b.edge,ot);if(O)return new lt(d.document,{baseStep:ni(b.edge),constraint:b.edge,draggingScale:Ln(b.edge,C),formatter:S,parser:Wt,sliderProps:new Y({maxValue:O.values.value("max"),minValue:O.values.value("min")}),value:p,viewProps:d.viewProps});const G={baseStep:ni(b.edge),constraint:b.edge,textProps:Y.fromObject({draggingScale:C,formatter:S})};return new _t(d.document,{assembly:di,axes:[G,G],parser:Wt,value:p,viewProps:d.viewProps})}};class xt{constructor(a){this.controller_=a}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get title(){var a;return(a=this.controller_.props.get("title"))!==null&&a!==void 0?a:""}set title(a){this.controller_.props.set("title",a)}}class Ct extends c{constructor(a,p,b,C,S){super(a,C,S),this.cell=p,this.index=b}}class cn extends s{constructor(a){super(a),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(b=>{const C=new xt(b);this.cellToApiMap_.set(b,C)})}get value(){return this.controller_.value}cell(a,p){const b=this.controller_.valueController,C=b.cellControllers[p*b.size[0]+a];return this.cellToApiMap_.get(C)}on(a,p){const b=p.bind(this);this.controller_.value.emitter.on(a,C=>{const S=this.controller_.valueController,O=S.findCellByValue(C.rawValue);if(!O)return;const G=this.cellToApiMap_.get(O);if(!G)return;const oe=S.cellControllers.indexOf(O);b(new Ct(this,G,[oe%S.size[0],Math.floor(oe/S.size[0])],C.rawValue,void 0))})}}const pn=x("rad");class Wi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(pn()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("label");b.classList.add(pn("l")),this.element.appendChild(b);const C=a.createElement("input");C.classList.add(pn("i")),C.name=p.name,C.type="radio",p.viewProps.bindDisabled(C),b.appendChild(C),this.inputElement=C;const S=a.createElement("div");S.classList.add(pn("b")),b.appendChild(S);const O=a.createElement("div");O.classList.add(pn("t")),S.appendChild(O),T(p.props,"title",G=>{O.textContent=G})}}class Ji{constructor(a,p){this.props=p.props,this.viewProps=p.viewProps,this.view=new Wi(a,{name:p.name,props:this.props,viewProps:this.viewProps})}}class On{constructor(a,p){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=p.size;const[b,C]=this.size;for(let S=0;S<C;S++)for(let O=0;O<b;O++){const G=new Ji(a,{name:p.groupName,props:Y.fromObject(Object.assign({},p.cellConfig(O,S))),viewProps:be.create()});this.cellCs_.push(G),this.cellValues_.push(p.cellConfig(O,S).value)}this.value=p.value,I(this.value,S=>{const O=this.findCellByValue(S);O&&(O.view.inputElement.checked=!0)}),this.viewProps=be.create(),this.view=new ct(a,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${b}, 1fr)`,this.cellCs_.forEach(S=>{S.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(S.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(a){const p=this.cellValues_.findIndex(b=>b===a);return p<0?null:this.cellCs_[p]}onCellInputChange_(a){const p=a.currentTarget,b=this.cellCs_.findIndex(C=>C.view.inputElement===p);b<0||(this.value.rawValue=this.cellValues_[b])}}const Pt=function(){return{id:"radiogrid",type:"blade",accept(d){const a=ue,p=te(d,{cells:a.required.function,groupName:a.required.string,size:a.required.array(a.required.number),value:a.required.raw,view:a.required.constant("radiogrid"),label:a.optional.string});return p?{params:p}:null},controller(d){return new vt(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new On(d.document,{groupName:d.params.groupName,cellConfig:d.params.cells,size:d.params.size,value:X(d.params.value)})})},api(d){return!(d.controller instanceof vt)||!(d.controller.valueController instanceof On)?null:new cn(d.controller)}}}();function bi(d){return{id:"input-radiogrid",type:"input",accept(a,p){if(!d.isType(a))return null;const b=ue,C=te(p,{cells:b.required.function,groupName:b.required.string,size:b.required.array(b.required.number),view:b.required.constant("radiogrid")});return C?{initialValue:a,params:C}:null},binding:d.binding,controller:a=>new On(a.document,{cellConfig:a.params.cells,groupName:a.params.groupName,size:a.params.size,value:a.value})}}const Hs=bi({isType:d=>typeof d=="number",binding:{reader:d=>Ls,writer:d=>Xe}}),er=bi({isType:d=>typeof d=="string",binding:{reader:d=>Vi,writer:d=>Xe}}),tr=bi({isType:d=>typeof d=="boolean",binding:{reader:d=>qt,writer:d=>Xe}}),Hi=[$s,yt,ui,Tn,Pt,tr,Hs,er];r.ButtonCellApi=Gi,r.ButtonGridApi=Ki,r.ButtonGridController=si,r.CubicBezier=ht,r.CubicBezierApi=$i,r.CubicBezierAssembly=oi,r.CubicBezierController=In,r.CubicBezierGraphController=tt,r.CubicBezierGraphView=Se,r.CubicBezierPickerController=Qi,r.CubicBezierPickerView=Yi,r.CubicBezierPreviewView=Nt,r.CubicBezierView=Xi,r.FpsGraphBladeApi=_e,r.FpsGraphController=hi,r.FpsView=Fe,r.Fpswatch=ke,r.Interval=je,r.IntervalAssembly=di,r.IntervalConstraint=an,r.RadioCellApi=xt,r.RadioController=Ji,r.RadioGridApi=cn,r.RadioGridController=On,r.RadioView=Wi,r.RangeSliderController=fi,r.RangeSliderTextController=lt,r.RangeSliderTextView=En,r.RangeSliderView=ln,r.TpRadioGridChangeEvent=Ct,r.plugins=Hi,Object.defineProperty(r,"__esModule",{value:!0})})})(fs,fs.exports);var Jr=fs.exports;const Nl=Uo({__proto__:null,default:ul(Jr)},[Jr]);let Kt,Pi;const Fl=(v="tres-container")=>{Kt||(Kt=new Bl.Pane({container:document.querySelector(v)||void 0}),Kt.registerPlugin(Nl),Pi=Kt.addBlade({view:"fpsgraph",label:"fpsgraph"}));function i(){Kt&&Kt.dispose()}return P.onMounted(()=>{const{onBeforeLoop:r,onAfterLoop:s,resume:o}=Ie.useRenderLoop();o(),r(()=>Pi.begin()),s(()=>Pi.end())}),P.onUnmounted(()=>{i()}),{pane:Kt,fpsGraph:Pi,disposeTweakPane:i}};function jl(v,i){const r=P.ref(i),s=new f.AnimationMixer(r.value),o=P.shallowReactive({});v.forEach(h=>{const u=s.clipAction(h,r.value);o[h.name]=u});const{onLoop:c}=Ie.useRenderLoop();return c(({delta:h})=>{s.update(h)}),{actions:o,mixer:s}}let ki=null;function zl(v,i){return r=>{i&&i(r),v.draco&&(ki||(ki=new ml),ki.setDecoderPath(v.decoderPath||"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),r.setDRACOLoader(ki))}}async function Hr(v,i={draco:!1},r){return await Ie.useLoader(ua,v,zl(i,r))}const Ul=P.defineComponent({__name:"component",props:{path:null,draco:{type:Boolean,default:!1},decoderPath:{default:"https://www.gstatic.com/draco/versioned/decoders/1.4.1/"}},async setup(v,{expose:i}){let r,s;const o=v,c=P.ref();i({value:c});const{scene:h}=([r,s]=P.withAsyncContext(()=>Hr(o.path,{draco:o.draco,decoderPath:o.decoderPath})),r=await r,s(),r);return(u,m)=>{const _=P.resolveComponent("primitive");return P.openBlock(),P.createBlock(_,P.mergeProps({ref_key:"modelRef",ref:c,object:P.unref(h)},u.$attrs),null,16,["object"])}}});async function eo(v){return await Ie.useLoader(Wa,v)}const Rl=P.defineComponent({__name:"component",props:{path:null},async setup(v,{expose:i}){let r,s;const o=v,c=P.ref();i({value:c});const h=([r,s]=P.withAsyncContext(()=>eo(o.path)),r=await r,s(),r);return(u,m)=>{const _=P.resolveComponent("primitive");return P.openBlock(),P.createBlock(_,P.mergeProps({ref_key:"modelRef",ref:c,object:P.unref(h)},u.$attrs),null,16,["object"])}}}),Gl=["position","a-scale"],Kl=P.defineComponent({__name:"Stars",props:{size:{default:.1},sizeAttenuation:{type:Boolean,default:!0},transparent:{type:Boolean,default:!0},alphaTest:{default:.01},count:{default:5e3},depth:{default:50},radius:{default:100},factor:{default:4},alphaMap:{default:null}},setup(v,{expose:i}){const r=v;let s=r.radius+r.depth;const o=r.depth/r.count,c=[],h=Array.from({length:r.count},()=>(.5+.5*Math.random())*r.factor),u=x=>new f.Vector3().setFromSpherical(new f.Spherical(x,Math.acos(1-Math.random()*2),Math.random()*2*Math.PI));for(let x=0;x<r.count;x++)s-=o*Math.random(),c.push(...u(s).toArray());const m=new Float32Array(c),_=new Float32Array(h),w=P.computed(()=>({size:r.size,sizeAttenuation:r.sizeAttenuation,transparent:r.transparent,alphaTest:r.alphaTest,alphaMap:r.alphaMap})),y=P.shallowRef();return i({value:y}),(x,M)=>(P.openBlock(),P.createElementBlock("TresPoints",{ref_key:"starsRef",ref:y},[P.createElementVNode("TresBufferGeometry",{position:[P.unref(m),3],"a-scale":[P.unref(_),1]},null,8,Gl),P.createElementVNode("TresPointsMaterial",P.normalizeProps(P.guardReactiveProps(P.unref(w))),null,16)],512))}}),$l=["args","center"],Xl=P.defineComponent({__name:"Text3D",props:{font:null,text:null,size:{default:.5},height:{default:.2},curveSegments:{default:5},bevelEnabled:{type:Boolean,default:!0},bevelThickness:{default:.05},bevelSize:{default:.02},bevelOffset:{default:0},bevelSegments:{default:4},center:{type:Boolean,default:!1},needUpdates:{type:Boolean,default:!1}},async setup(v,{expose:i}){let r,s;const o=v,{extend:c}=mt();c({TextGeometry:Nr});const h=new cl,u=P.useSlots(),m=P.computed(()=>{var x;return o.text?o.text:u.default?(x=u.default()[0].children)==null?void 0:x.trim():o.needUpdates?"":"TresJS"}),_=P.shallowRef();i({value:_});const w=([r,s]=P.withAsyncContext(()=>new Promise((x,M)=>{try{typeof o.font=="string"?h.load(o.font,E=>{x(E)}):x(o.font)}catch(E){M(console.error("cientos",E))}})),r=await r,s(),r),y=P.computed(()=>({font:w,size:o.size,height:o.height,curveSegments:o.curveSegments,bevelEnabled:o.bevelEnabled,bevelThickness:o.bevelThickness,bevelSize:o.bevelSize,bevelOffset:o.bevelOffset,bevelSegments:o.bevelSegments}));return P.watchEffect(()=>{_.value&&o.needUpdates&&(_.value.geometry.dispose(),_.value.geometry=new Nr(m.value,y.value),o.center&&_.value.geometry.center())}),(x,M)=>P.unref(w)?(P.openBlock(),P.createElementBlock("TresMesh",{key:0,ref_key:"text3DRef",ref:_},[P.unref(m)?(P.openBlock(),P.createElementBlock("TresTextGeometry",{key:0,args:[P.unref(m),P.unref(y)],center:v.center},null,8,$l)):P.createCommentVNode("",!0),P.renderSlot(x.$slots,"default")],512)):P.createCommentVNode("",!0)}}),Yl=["rotation"],ql=["args"],Ql=["color"],Zl=P.defineComponent({__name:"Plane",props:{args:{default:()=>[1,1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"planeRef",ref:r,rotation:[-Math.PI/2,0,0]},s.$attrs),[P.createElementVNode("TresPlaneGeometry",{args:v.args},null,8,ql),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Ql)])],16,Yl))}}),Wl=["args"],Jl=["color"],Hl=P.defineComponent({__name:"Box",props:{args:{default:()=>[1,1,1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"boxRef",ref:r},s.$attrs),[P.createElementVNode("TresBoxGeometry",{args:v.args},null,8,Wl),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Jl)])],16))}}),ec=["args"],tc=["color"],nc=P.defineComponent({__name:"Sphere",props:{args:{default:()=>[2,32,16]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"sphereRef",ref:r},s.$attrs),[P.createElementVNode("TresSphereGeometry",{args:v.args},null,8,ec),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,tc)])],16))}}),ic=["args"],sc=["color"],rc=P.defineComponent({__name:"Torus",props:{args:{default:()=>[1,1,16,80]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"torusRef",ref:r},s.$attrs),[P.createElementVNode("TresTorusGeometry",{args:v.args},null,8,ic),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,sc)])],16))}}),oc=["args"],ac=["color"],lc=P.defineComponent({__name:"TorusKnot",props:{args:{default:()=>[1,.4,64,8]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"torusKnotRef",ref:r},s.$attrs),[P.createElementVNode("TresTorusKnotGeometry",{args:v.args},null,8,oc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,ac)])],16))}}),cc=["args"],pc=["color"],hc=P.defineComponent({__name:"Circle",props:{args:{default:()=>[1,32,0,Math.PI*2]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"circleRef",ref:r},s.$attrs),[P.createElementVNode("TresCircleGeometry",{args:v.args},null,8,cc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,pc)])],16))}}),uc=["args"],dc=["color"],mc=P.defineComponent({__name:"Cone",props:{args:{default:()=>[1,1,12,!1,0,Math.PI*2]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"coneRef",ref:r},s.$attrs),[P.createElementVNode("TresConeGeometry",{args:v.args},null,8,uc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,dc)])],16))}}),fc=["args"],vc=["color"],bc=P.defineComponent({__name:"Tube",props:{args:{default:()=>[new f.QuadraticBezierCurve3(new f.Vector3(-1,0,0),new f.Vector3(0,1,0),new f.Vector3(1,0,0)),20,.2,8,!1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"tubeRef",ref:r},s.$attrs),[P.createElementVNode("TresTubeGeometry",{args:v.args},null,8,fc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,vc)])],16))}}),gc=["args"],_c=["color"],wc=P.defineComponent({__name:"Ring",props:{args:{default:()=>[.5,1,32]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"ringRef",ref:r},s.$attrs),[P.createElementVNode("TresRingGeometry",{args:v.args},null,8,gc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,_c)])],16))}}),yc=["rotation"],xc=["args"],Cc=["color"],Pc=P.defineComponent({__name:"Tetrahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"tetrahedronRef",ref:r,rotation:[-Math.PI/2,0,0]},s.$attrs),[P.createElementVNode("TresTetrahedronGeometry",{args:v.args},null,8,xc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Cc)])],16,yc))}}),kc=["args"],Mc=["color"],Ac=P.defineComponent({__name:"Icosahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"icosahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresIcosahedronGeometry",{args:v.args},null,8,kc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Mc)])],16))}}),Sc=["args"],Lc=["color"],Vc=P.defineComponent({__name:"Octahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"octahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresOctahedronGeometry",{args:v.args},null,8,Sc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Lc)])],16))}}),Dc=["args"],Ic=["color"],Ec=P.defineComponent({__name:"Dodecahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"dodecahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresDodecahedronGeometry",{args:v.args},null,8,Dc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Ic)])],16))}}),vs={sunset:"venice/venice_sunset_4k.hdr"};async function to({files:v=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],blur:i=0,background:r=!1,path:s="/",preset:o=void 0,colorSpace:c=void 0}){const{state:h}=mt();if(o){if(!(o in vs))throw new Error("Preset must be one of: "+Object.keys(vs).join(", "));v=vs[o],s="https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/"}const u=Array.isArray(v),m=u?f.CubeTextureLoader:dl,_=await Ie.useLoader(m,u?[v]:v,y=>{s&&y.setPath(s),c&&(y.colorSpace=c)}),w=u?_[0]:_;return w&&(w.mapping=u?f.CubeReflectionMapping:f.EquirectangularReflectionMapping,w.colorSpace=c??u?f.SRGBColorSpace:f.LinearEncoding),h.scene&&(h.scene.environment=w,r!==void 0&&(h.scene.background=w),i&&(h.scene.backgroundBlurriness=i|0)),w}const Tc=P.defineComponent({name:"Environment",props:["background","blur","files","encoding","path","preset"],async setup(v,{expose:i}){let r=null;return i({getTexture:()=>r}),r=await to(v),()=>{}}}),Oc=["position"],Bc=["position"],Nc=["scale"],Fc=["map","map-encoding","depth-test","color","opacity"],jc=P.defineComponent({__name:"Smoke",props:{color:{default:"#ffffff"},opacity:{default:.5},speed:{default:.4},width:{default:10},depth:{default:1.5},segments:{default:20},texture:{default:"https://raw.githubusercontent.com/Tresjs/assets/main/textures/clouds/defaultCloud.png"},depthTest:{type:Boolean,default:!0}},async setup(v,{expose:i}){let r,s;const o=v,c=P.shallowRef(),h=P.shallowRef();i({value:c});const u=[...new Array(o.segments)].map((M,E)=>({x:o.width/2-Math.random()*o.width,y:o.width/2-Math.random()*o.width,scale:.4+Math.sin((E+1)/o.segments*Math.PI)*((.2+Math.random())*10),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*o.speed})),m=(M,E)=>M/6*E*o.opacity,{map:_}=([r,s]=P.withAsyncContext(()=>Ie.useTexture({map:o.texture})),r=await r,s(),r),{state:w}=mt(),y=P.computed(()=>{var M;return(M=w.renderer)==null?void 0:M.outputColorSpace}),{onLoop:x}=Ie.useRenderLoop();return x(()=>{var M,E;c.value&&w.camera&&h.value&&((M=h.value)==null||M.children.forEach((I,T)=>{I.rotation.z+=u[T].rotation}),c.value.lookAt((E=w.camera)==null?void 0:E.position))}),(M,E)=>(P.openBlock(),P.createElementBlock("TresGroup",P.mergeProps({ref_key:"smokeRef",ref:c},M.$attrs),[P.createElementVNode("TresGroup",{ref_key:"groupRef",ref:h,position:[0,0,v.segments/2*v.depth]},[(P.openBlock(!0),P.createElementBlock(P.Fragment,null,P.renderList(P.unref(u),({scale:I,x:T,y:F,density:j},B)=>(P.openBlock(),P.createElementBlock("TresMesh",{key:B,position:[T,F,-B*v.depth]},[P.createElementVNode("TresPlaneGeometry",{scale:[I,I,I],rotation:[0,0,0]},null,8,Nc),P.createElementVNode("TresMeshStandardMaterial",{map:P.unref(_),"map-encoding":P.unref(y),"depth-test":v.depthTest,color:v.color,"depth-write":!1,transparent:"",opacity:m(I,j)},null,8,Fc)],8,Bc))),128))],8,Oc)],16))}}),zc=P.defineComponent({__name:"Levioso",props:{speed:{default:1},rotationFactor:{default:1},floatFactor:{default:1},range:{default:()=>[-.1,.1]}},setup(v,{expose:i}){const r=v,s=P.shallowRef();i({value:s});const{onLoop:o}=Ie.useRenderLoop(),c=P.ref(Math.random()*1e4);return o(({elapsed:h})=>{var _,w;if(!s.value)return;const u=c.value+h;s.value.rotation.x=Math.cos(u/4*r.speed)/8*r.rotationFactor,s.value.rotation.y=Math.sin(u/4*r.speed)/8*r.rotationFactor,s.value.rotation.z=Math.sin(u/4*r.speed)/20*r.rotationFactor;let m=Math.sin(u/4*r.speed)/10;m=f.MathUtils.mapLinear(m,-.1,.1,((_=r.range)==null?void 0:_[0])??-.1,((w=r.range)==null?void 0:w[1])??.1),s.value.position.y=m*r.floatFactor}),(h,u)=>(P.openBlock(),P.createElementBlock("TresGroup",P.mergeProps(h.$attrs,{ref_key:"groupRef",ref:s}),[P.renderSlot(h.$slots,"default")],16))}});class Uc extends f.MeshStandardMaterial{constructor(r={}){super(r);_r(this,"_time");_r(this,"_factor");this.setValues(r),this._time={value:0},this._factor={value:1}}onBeforeCompile(r){r.uniforms||(r.uniforms={}),r.uniforms.time=this._time,r.uniforms.factor=this._factor,r.vertexShader=`
|
|
14
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([h]))}),this.decoderPending}_getWorker(i,r){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const o=new Worker(this.workerSourceURL);o._callbacks={},o._taskCosts={},o._taskLoad=0,o.postMessage({type:"init",decoderConfig:this.decoderConfig}),o.onmessage=function(c){const h=c.data;switch(h.type){case"decode":o._callbacks[h.id].resolve(h);break;case"error":o._callbacks[h.id].reject(h);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+h.type+'"')}},this.workerPool.push(o)}else this.workerPool.sort(function(o,c){return o._taskLoad>c._taskLoad?-1:1});const s=this.workerPool[this.workerPool.length-1];return s._taskCosts[i]=r,s._taskLoad+=r,s})}_releaseTask(i,r){i._taskLoad-=i._taskCosts[r],delete i._callbacks[r],delete i._taskCosts[r]}debug(){console.log("Task load: ",this.workerPool.map(i=>i._taskLoad))}dispose(){for(let i=0;i<this.workerPool.length;++i)this.workerPool[i].terminate();return this.workerPool.length=0,this}}function fl(){let v,i;onmessage=function(h){const u=h.data;switch(u.type){case"init":v=u.decoderConfig,i=new Promise(function(w){v.onModuleLoaded=function(y){w({draco:y})},DracoDecoderModule(v)});break;case"decode":const m=u.buffer,_=u.taskConfig;i.then(w=>{const y=w.draco,x=new y.Decoder,M=new y.DecoderBuffer;M.Init(new Int8Array(m),m.byteLength);try{const E=r(y,x,M,_),I=E.attributes.map(T=>T.array.buffer);E.index&&I.push(E.index.array.buffer),self.postMessage({type:"decode",id:u.id,geometry:E},I)}catch(E){console.error(E),self.postMessage({type:"error",id:u.id,error:E.message})}finally{y.destroy(M),y.destroy(x)}});break}};function r(h,u,m,_){const w=_.attributeIDs,y=_.attributeTypes;let x,M;const E=u.GetEncodedGeometryType(m);if(E===h.TRIANGULAR_MESH)x=new h.Mesh,M=u.DecodeBufferToMesh(m,x);else if(E===h.POINT_CLOUD)x=new h.PointCloud,M=u.DecodeBufferToPointCloud(m,x);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!M.ok()||x.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+M.error_msg());const I={index:null,attributes:[]};for(const T in w){const F=self[y[T]];let j,B;if(_.useUniqueIDs)B=w[T],j=u.GetAttributeByUniqueId(x,B);else{if(B=u.GetAttributeId(x,h[w[T]]),B===-1)continue;j=u.GetAttribute(x,B)}I.attributes.push(o(h,u,x,T,F,j))}return E===h.TRIANGULAR_MESH&&(I.index=s(h,u,x)),h.destroy(x),I}function s(h,u,m){const w=m.num_faces()*3,y=w*4,x=h._malloc(y);u.GetTrianglesUInt32Array(m,y,x);const M=new Uint32Array(h.HEAPF32.buffer,x,w).slice();return h._free(x),{array:M,itemSize:1}}function o(h,u,m,_,w,y){const x=y.num_components(),E=m.num_points()*x,I=E*w.BYTES_PER_ELEMENT,T=c(h,w),F=h._malloc(I);u.GetAttributeDataArrayForAllPoints(m,y,T,I,F);const j=new w(h.HEAPF32.buffer,F,E).slice();return h._free(F),{name:_,array:j,itemSize:x}}function c(h,u){switch(u){case Float32Array:return h.DT_FLOAT32;case Int8Array:return h.DT_INT8;case Int16Array:return h.DT_INT16;case Int32Array:return h.DT_INT32;case Uint8Array:return h.DT_UINT8;case Uint16Array:return h.DT_UINT16;case Uint32Array:return h.DT_UINT32}}}function mt(){const{state:v,setState:i}=P.inject("useTres",Ie.useTres()),r=P.inject("extend")||(()=>{});return{state:v,setState:i,extend:r}}const vl=["args","center"],bl=P.defineComponent({__name:"Text3D",props:{font:null,text:null,size:{default:.5},height:{default:.2},curveSegments:{default:5},bevelEnabled:{type:Boolean,default:!0},bevelThickness:{default:.05},bevelSize:{default:.02},bevelOffset:{default:0},bevelSegments:{default:4},center:{type:Boolean,default:!1},needUpdates:{type:Boolean,default:!1}},async setup(v,{expose:i}){let r,s;const o=v,{extend:c}=mt();c({TextGeometry:Nr});const h=new cl,u=P.useSlots(),m=P.computed(()=>{var x;return o.text?o.text:u.default?(x=u.default()[0].children)==null?void 0:x.trim():o.needUpdates?"":"TresJS"}),_=P.shallowRef();i({value:_});const w=([r,s]=P.withAsyncContext(()=>new Promise((x,M)=>{try{typeof o.font=="string"?h.load(o.font,E=>{x(E)}):x(o.font)}catch(E){M(console.error("cientos",E))}})),r=await r,s(),r),y=P.computed(()=>({font:w,size:o.size,height:o.height,curveSegments:o.curveSegments,bevelEnabled:o.bevelEnabled,bevelThickness:o.bevelThickness,bevelSize:o.bevelSize,bevelOffset:o.bevelOffset,bevelSegments:o.bevelSegments}));return P.watchEffect(()=>{_.value&&o.needUpdates&&(_.value.geometry.dispose(),_.value.geometry=new Nr(m.value,y.value),o.center&&_.value.geometry.center())}),(x,M)=>P.unref(w)?(P.openBlock(),P.createElementBlock("TresMesh",{key:0,ref_key:"text3DRef",ref:_},[P.unref(m)?(P.openBlock(),P.createElementBlock("TresTextGeometry",{key:0,args:[P.unref(m),P.unref(y)],center:v.center},null,8,vl)):P.createCommentVNode("",!0),P.renderSlot(x.$slots,"default")],512)):P.createCommentVNode("",!0)}});function gl(v,i){const r=P.ref(i),s=new f.AnimationMixer(r.value),o=P.shallowReactive({});v.forEach(h=>{const u=s.clipAction(h,r.value);o[h.name]=u});const{onLoop:c}=Ie.useRenderLoop();return c(({delta:h})=>{s.update(h)}),{actions:o,mixer:s}}const ms={sunset:"venice/venice_sunset_4k.hdr"};async function qr({files:v=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],blur:i=0,background:r=!1,path:s="/",preset:o=void 0,colorSpace:c=void 0}){const{state:h}=mt();if(o){if(!(o in ms))throw new Error("Preset must be one of: "+Object.keys(ms).join(", "));v=ms[o],s="https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/"}const u=Array.isArray(v),m=u?f.CubeTextureLoader:dl,_=await Ie.useLoader(m,u?[v]:v,y=>{s&&y.setPath(s),c&&(y.colorSpace=c)}),w=u?_[0]:_;return w&&(w.mapping=u?f.CubeReflectionMapping:f.EquirectangularReflectionMapping,w.colorSpace=c??u?f.SRGBColorSpace:f.LinearEncoding),h.scene&&(h.scene.environment=w,r!==void 0&&(h.scene.background=w),i&&(h.scene.backgroundBlurriness=i|0)),w}const _l=P.defineComponent({name:"Environment",props:["background","blur","files","encoding","path","preset"],async setup(v,{expose:i}){let r=null;return i({getTexture:()=>r}),r=await qr(v),()=>{}}});function Qr(v){return P.getCurrentScope()?(P.onScopeDispose(v),!0):!1}function Zr(v){return typeof v=="function"?v():P.unref(v)}const wl=typeof window<"u",Wr=()=>{};function yl(...v){if(v.length!==1)return P.toRef(...v);const i=v[0];return typeof i=="function"?P.readonly(P.customRef(()=>({get:i,set:Wr}))):P.ref(i)}function xl(v,i=!0){P.getCurrentInstance()?P.onMounted(v):i?v():P.nextTick(v)}function Cl(v){var i;const r=Zr(v);return(i=r==null?void 0:r.$el)!=null?i:r}const Ci=wl?window:void 0;function Gt(...v){let i,r,s,o;if(typeof v[0]=="string"||Array.isArray(v[0])?([r,s,o]=v,i=Ci):[i,r,s,o]=v,!i)return Wr;Array.isArray(r)||(r=[r]),Array.isArray(s)||(s=[s]);const c=[],h=()=>{c.forEach(w=>w()),c.length=0},u=(w,y,x,M)=>(w.addEventListener(y,x,M),()=>w.removeEventListener(y,x,M)),m=P.watch(()=>[Cl(i),Zr(o)],([w,y])=>{h(),w&&c.push(...r.flatMap(x=>s.map(M=>u(w,x,M,y))))},{immediate:!0,flush:"post"}),_=()=>{m(),h()};return Qr(_),_}function Pl(){const v=P.ref(!1);return P.getCurrentInstance()&&P.onMounted(()=>{v.value=!0}),v}function kl(v){const i=Pl();return P.computed(()=>(i.value,!!v()))}function Ml(v,i={}){const{window:r=Ci}=i,s=kl(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let o;const c=P.ref(!1),h=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",u):o.removeListener(u))},u=()=>{s.value&&(h(),o=r.matchMedia(yl(v).value),c.value=!!(o!=null&&o.matches),o&&("addEventListener"in o?o.addEventListener("change",u):o.addListener(u)))};return P.watchEffect(u),Qr(()=>h()),c}const Al={page:v=>[v.pageX,v.pageY],client:v=>[v.clientX,v.clientY],screen:v=>[v.screenX,v.screenY],movement:v=>v instanceof Touch?null:[v.movementX,v.movementY]};function Sl(v={}){const{type:i="page",touch:r=!0,resetOnTouchEnds:s=!1,initialValue:o={x:0,y:0},window:c=Ci,target:h=c,eventFilter:u}=v,m=P.ref(o.x),_=P.ref(o.y),w=P.ref(null),y=typeof i=="function"?i:Al[i],x=F=>{const j=y(F);j&&([m.value,_.value]=j,w.value="mouse")},M=F=>{if(F.touches.length>0){const j=y(F.touches[0]);j&&([m.value,_.value]=j,w.value="touch")}},E=()=>{m.value=o.x,_.value=o.y},I=u?F=>u(()=>x(F),{}):F=>x(F),T=u?F=>u(()=>M(F),{}):F=>M(F);return h&&(Gt(h,"mousemove",I,{passive:!0}),Gt(h,"dragover",I,{passive:!0}),r&&i!=="movement"&&(Gt(h,"touchstart",T,{passive:!0}),Gt(h,"touchmove",T,{passive:!0}),s&&Gt(h,"touchend",E,{passive:!0}))),{x:m,y:_,sourceType:w}}function Ll(v={}){const{window:i=Ci,initialWidth:r=1/0,initialHeight:s=1/0,listenOrientation:o=!0,includeScrollbar:c=!0}=v,h=P.ref(r),u=P.ref(s),m=()=>{i&&(c?(h.value=i.innerWidth,u.value=i.innerHeight):(h.value=i.document.documentElement.clientWidth,u.value=i.document.documentElement.clientHeight))};if(m(),xl(m),Gt("resize",m,{passive:!0}),o){const _=Ml("(orientation: portrait)");P.watch(_,()=>m())}return{width:h,height:u}}function Jr(v=!1,i=5,r){const{x:s,y:o}=Sl(),{logWarning:c}=Ie.useLogger(),{width:h,height:u}=Ll(),m=P.computed(()=>(s.value/h.value-.5)*i),_=P.computed(()=>-(o.value/u.value-.5)*i);if(r){const{x:w,y}=r.position;P.watchEffect(()=>{v||r&&(r.position.x=w+m.value,r.position.y=y+_.value)})}else c("Scene must contain a Camera component to use this composable")}const Vl=P.defineComponent({name:"PamCameraMouse",props:["disabled","factor"],setup(v){const{state:i}=mt();return P.watchEffect(()=>{if(i!=null&&i.camera){const r=i==null?void 0:i.camera;Jr(v.disabled,v.factor,r)}}),()=>{}}}),Dl=["position","a-scale"],Il=P.defineComponent({__name:"Stars",props:{size:{default:.1},sizeAttenuation:{type:Boolean,default:!0},transparent:{type:Boolean,default:!0},alphaTest:{default:.01},count:{default:5e3},depth:{default:50},radius:{default:100},factor:{default:4},alphaMap:{default:null}},setup(v,{expose:i}){const r=v;let s=r.radius+r.depth;const o=r.depth/r.count,c=[],h=Array.from({length:r.count},()=>(.5+.5*Math.random())*r.factor),u=x=>new f.Vector3().setFromSpherical(new f.Spherical(x,Math.acos(1-Math.random()*2),Math.random()*2*Math.PI));for(let x=0;x<r.count;x++)s-=o*Math.random(),c.push(...u(s).toArray());const m=new Float32Array(c),_=new Float32Array(h),w=P.computed(()=>({size:r.size,sizeAttenuation:r.sizeAttenuation,transparent:r.transparent,alphaTest:r.alphaTest,alphaMap:r.alphaMap})),y=P.shallowRef();return i({value:y}),(x,M)=>(P.openBlock(),P.createElementBlock("TresPoints",{ref_key:"starsRef",ref:y},[P.createElementVNode("TresBufferGeometry",{position:[P.unref(m),3],"a-scale":[P.unref(_),1]},null,8,Dl),P.createElementVNode("TresPointsMaterial",P.normalizeProps(P.guardReactiveProps(P.unref(w))),null,16)],512))}}),El=["position"],Tl=["position"],Ol=["scale"],Bl=["map","map-encoding","depth-test","color","opacity"],Nl=P.defineComponent({__name:"Smoke",props:{color:{default:"#ffffff"},opacity:{default:.5},speed:{default:.4},width:{default:10},depth:{default:1.5},segments:{default:20},texture:{default:"https://raw.githubusercontent.com/Tresjs/assets/main/textures/clouds/defaultCloud.png"},depthTest:{type:Boolean,default:!0}},async setup(v,{expose:i}){let r,s;const o=v,c=P.shallowRef(),h=P.shallowRef();i({value:c});const u=[...new Array(o.segments)].map((M,E)=>({x:o.width/2-Math.random()*o.width,y:o.width/2-Math.random()*o.width,scale:.4+Math.sin((E+1)/o.segments*Math.PI)*((.2+Math.random())*10),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*o.speed})),m=(M,E)=>M/6*E*o.opacity,{map:_}=([r,s]=P.withAsyncContext(()=>Ie.useTexture({map:o.texture})),r=await r,s(),r),{state:w}=mt(),y=P.computed(()=>{var M;return(M=w.renderer)==null?void 0:M.outputColorSpace}),{onLoop:x}=Ie.useRenderLoop();return x(()=>{var M,E;c.value&&w.camera&&h.value&&((M=h.value)==null||M.children.forEach((I,T)=>{I.rotation.z+=u[T].rotation}),c.value.lookAt((E=w.camera)==null?void 0:E.position))}),(M,E)=>(P.openBlock(),P.createElementBlock("TresGroup",P.mergeProps({ref_key:"smokeRef",ref:c},M.$attrs),[P.createElementVNode("TresGroup",{ref_key:"groupRef",ref:h,position:[0,0,v.segments/2*v.depth]},[(P.openBlock(!0),P.createElementBlock(P.Fragment,null,P.renderList(P.unref(u),({scale:I,x:T,y:F,density:j},B)=>(P.openBlock(),P.createElementBlock("TresMesh",{key:B,position:[T,F,-B*v.depth]},[P.createElementVNode("TresPlaneGeometry",{scale:[I,I,I],rotation:[0,0,0]},null,8,Ol),P.createElementVNode("TresMeshStandardMaterial",{map:P.unref(_),"map-encoding":P.unref(y),"depth-test":v.depthTest,color:v.color,"depth-write":!1,transparent:"",opacity:m(I,j)},null,8,Bl)],8,Tl))),128))],8,El)],16))}}),Fl=P.defineComponent({__name:"Levioso",props:{speed:{default:1},rotationFactor:{default:1},floatFactor:{default:1},range:{default:()=>[-.1,.1]}},setup(v,{expose:i}){const r=v,s=P.shallowRef();i({value:s});const{onLoop:o}=Ie.useRenderLoop(),c=P.ref(Math.random()*1e4);return o(({elapsed:h})=>{var _,w;if(!s.value)return;const u=c.value+h;s.value.rotation.x=Math.cos(u/4*r.speed)/8*r.rotationFactor,s.value.rotation.y=Math.sin(u/4*r.speed)/8*r.rotationFactor,s.value.rotation.z=Math.sin(u/4*r.speed)/20*r.rotationFactor;let m=Math.sin(u/4*r.speed)/10;m=f.MathUtils.mapLinear(m,-.1,.1,((_=r.range)==null?void 0:_[0])??-.1,((w=r.range)==null?void 0:w[1])??.1),s.value.position.y=m*r.floatFactor}),(h,u)=>(P.openBlock(),P.createElementBlock("TresGroup",P.mergeProps(h.$attrs,{ref_key:"groupRef",ref:s}),[P.renderSlot(h.$slots,"default")],16))}});let Pi=null;function jl(v,i){return r=>{i&&i(r),v.draco&&(Pi||(Pi=new ml),Pi.setDecoderPath(v.decoderPath||"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),r.setDRACOLoader(Pi))}}async function Hr(v,i={draco:!1},r){return await Ie.useLoader(ua,v,jl(i,r))}const zl=P.defineComponent({__name:"component",props:{path:null,draco:{type:Boolean,default:!1},decoderPath:{default:"https://www.gstatic.com/draco/versioned/decoders/1.4.1/"}},async setup(v,{expose:i}){let r,s;const o=v,c=P.ref();i({value:c});const{scene:h}=([r,s]=P.withAsyncContext(()=>Hr(o.path,{draco:o.draco,decoderPath:o.decoderPath})),r=await r,s(),r);return(u,m)=>{const _=P.resolveComponent("primitive");return P.openBlock(),P.createBlock(_,P.mergeProps({ref_key:"modelRef",ref:c,object:P.unref(h)},u.$attrs),null,16,["object"])}}});async function eo(v){return await Ie.useLoader(Wa,v)}const Ul=P.defineComponent({__name:"component",props:{path:null},async setup(v,{expose:i}){let r,s;const o=v,c=P.ref();i({value:c});const h=([r,s]=P.withAsyncContext(()=>eo(o.path)),r=await r,s(),r);return(u,m)=>{const _=P.resolveComponent("primitive");return P.openBlock(),P.createBlock(_,P.mergeProps({ref_key:"modelRef",ref:c,object:P.unref(h)},u.$attrs),null,16,["object"])}}}),Rl=["args"],Gl=P.defineComponent({__name:"OrbitControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null,target:null,enableDamping:{type:Boolean}},setup(v){const i=v,{state:r,setState:s,extend:o}=mt(),c=P.ref(null);return o({OrbitControls:Lr}),P.watch(c,h=>{h&&i.makeDefault?s("controls",h):s("controls",null)}),(h,u)=>{var m;return P.unref(r).camera&&P.unref(r).renderer?(P.openBlock(),P.createElementBlock("TresOrbitControls",{key:0,ref_key:"controls",ref:c,args:[P.unref(r).camera||v.camera,((m=P.unref(r).renderer)==null?void 0:m.domElement)||v.domElement]},null,8,Rl)):P.createCommentVNode("",!0)}}});function Kl(v,i){const r={};for(const s of i)Object.prototype.hasOwnProperty.call(v,s)&&(r[s]=v[s]);return r}function $l(v,i){const r=`set${i[0].toUpperCase()}${i.slice(1)}`;return v[r]!==void 0}const Xl=P.defineComponent({__name:"TransformControls",props:{object:null,mode:null,enabled:{type:Boolean,default:!0},axis:null,translationSnap:null,rotationSnap:null,scaleSnap:null,space:null,size:null,showX:{type:Boolean},showY:{type:Boolean},showZ:{type:Boolean}},emits:["dragging","change","mouseDown","mouseUp","objectChange"],setup(v,{emit:i}){const r=v;let s=P.shallowRef();const{state:o}=mt(),c=P.computed(()=>Kl(r,["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"])),h=()=>i("change",s.value),u=()=>i("mouseDown",s.value),m=()=>i("mouseUp",s.value),_=()=>i("objectChange",s.value),w=x=>{o.controls&&(o.controls.enabled=!x.value),i("dragging",x.value)};function y(x){x.addEventListener("dragging-changed",w),x.addEventListener("change",h),x.addEventListener("mouseDown",u),x.addEventListener("mouseUp",m),x.addEventListener("objectChange",_)}return P.watchEffect(()=>{o.camera&&o.renderer&&o.scene&&r.object&&(s.value=new sa(o.camera,o.renderer.domElement),s.value.attach(r.object),o.scene.add(s.value),y(s.value))}),P.watch([c,s],([x,M])=>{if(x&&M)for(const E in x)if(!$l(M,E))M[E]=x[E];else{const I=`set${E[0].toUpperCase()}${E.slice(1)}`;typeof M[I]=="function"&&x[E]!==void 0&&M[I](x[E])}},{immediate:!0}),P.onUnmounted(()=>{s.value&&(s.value.removeEventListener("dragging-changed",w),s.value.removeEventListener("change",h),s.value.removeEventListener("mouseDown",u),s.value.removeEventListener("mouseUp",m),s.value.removeEventListener("objectChange",_))}),(x,M)=>P.renderSlot(x.$slots,"default")}}),Yl=["args"],ql=P.defineComponent({__name:"PointerLockControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null,selector:null},setup(v,{expose:i}){const r=v,{state:s,setState:o,extend:c}=mt(),h=P.ref(null);let u;return c({PointerLockControls:pa}),P.watch(h,m=>{var w;m&&r.makeDefault?o("controls",m):o("controls",null);const _=document.getElementById(r.selector||"");u=_||((w=s.renderer)==null?void 0:w.domElement),Gt(u,"click",()=>{var y;(y=h.value)==null||y.lock()})}),i({value:h}),(m,_)=>{var w;return P.unref(s).camera&&P.unref(s).renderer?(P.openBlock(),P.createElementBlock("TresPointerLockControls",{key:0,ref_key:"controls",ref:h,args:[P.unref(s).camera||v.camera,((w=P.unref(s).renderer)==null?void 0:w.domElement)||v.domElement]},null,8,Yl)):P.createCommentVNode("",!0)}}}),Ql=["args"],Zl=P.defineComponent({__name:"MapControls",props:{makeDefault:{type:Boolean,default:!1},camera:null,domElement:null},setup(v){const i=v,{state:r,setState:s,extend:o}=mt(),c=P.ref(null);return o({MapControls:ha}),P.watch(c,h=>{h&&i.makeDefault?s("controls",h):s("controls",null)}),(h,u)=>{var m;return P.unref(r).camera&&P.unref(r).renderer?(P.openBlock(),P.createElementBlock("TresMapControls",{key:0,ref_key:"controls",ref:c,args:[P.unref(r).camera||v.camera,((m=P.unref(r).renderer)==null?void 0:m.domElement)||v.domElement]},null,8,Ql)):P.createCommentVNode("",!0)}}});class Wl extends f.MeshStandardMaterial{constructor(r={}){super(r);_r(this,"_time");_r(this,"_factor");this.setValues(r),this._time={value:0},this._factor={value:1}}onBeforeCompile(r){r.uniforms||(r.uniforms={}),r.uniforms.time=this._time,r.uniforms.factor=this._factor,r.vertexShader=`
|
|
18
15
|
uniform float time;
|
|
19
16
|
uniform float factor;
|
|
20
17
|
${r.vertexShader}
|
|
@@ -23,4 +20,7 @@
|
|
|
23
20
|
float s = sin( theta );
|
|
24
21
|
mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );
|
|
25
22
|
vec3 transformed = vec3( position ) * m;
|
|
26
|
-
vNormal = vNormal * m;`)}get time(){return this._time.value}set time(r){this._time.value=r}get factor(){return this._factor.value}set factor(r){this._factor.value=r}}const Rc=["factor"],Gc=P.defineComponent({__name:"index",props:{speed:{default:1},factor:{default:1}},setup(v){const i=v,r=P.shallowRef(),{extend:s}=mt();s({MeshWobbleMaterial:Uc});const{onLoop:o}=Ie.useRenderLoop();return o(({elapsed:c})=>{r.value&&(r.value.time=c*(i==null?void 0:i.speed))}),(c,h)=>(P.openBlock(),P.createElementBlock("TresMeshWobbleMaterial",P.mergeProps({ref_key:"materialRef",ref:r,factor:v.factor},c.$attrs),null,16,Rc))}});ee.Box=Hl,ee.Circle=hc,ee.Cone=mc,ee.Dodecahedron=Ec,ee.Environment=Tc,ee.FBXModel=Rl,ee.GLTFModel=Ul,ee.Icosahedron=Ac,ee.Levioso=zc,ee.MapControls=_l,ee.MeshWobbleMaterial=Gc,ee.Octahedron=Vc,ee.OrbitControls=bl,ee.PamCameraMouse=Ol,ee.Plane=Zl,ee.PointerLockControls=Dl,ee.Ring=wc,ee.Smoke=jc,ee.Sphere=nc,ee.Stars=Kl,ee.Tetrahedron=Pc,ee.Text3D=Xl,ee.Torus=rc,ee.TorusKnot=lc,ee.TransformControls=Tl,ee.Tube=bc,ee.useAnimations=jl,ee.useEnvironment=to,ee.useFBX=eo,ee.useGLTF=Hr,ee.usePamCameraMouse=Wr,ee.useTweakPane=Fl,Object.defineProperty(ee,Symbol.toStringTag,{value:"Module"})});
|
|
23
|
+
vNormal = vNormal * m;`)}get time(){return this._time.value}set time(r){this._time.value=r}get factor(){return this._factor.value}set factor(r){this._factor.value=r}}const Jl=["factor"],Hl=P.defineComponent({__name:"index",props:{speed:{default:1},factor:{default:1}},setup(v){const i=v,r=P.shallowRef(),{extend:s}=mt();s({MeshWobbleMaterial:Wl});const{onLoop:o}=Ie.useRenderLoop();return o(({elapsed:c})=>{r.value&&(r.value.time=c*(i==null?void 0:i.speed))}),(c,h)=>(P.openBlock(),P.createElementBlock("TresMeshWobbleMaterial",P.mergeProps({ref_key:"materialRef",ref:r,factor:v.factor},c.$attrs),null,16,Jl))}}),ec=["args"],tc=["color"],nc=P.defineComponent({__name:"Box",props:{args:{default:()=>[1,1,1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"boxRef",ref:r},s.$attrs),[P.createElementVNode("TresBoxGeometry",{args:v.args},null,8,ec),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,tc)])],16))}}),ic=["args"],sc=["color"],rc=P.defineComponent({__name:"Circle",props:{args:{default:()=>[1,32,0,Math.PI*2]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"circleRef",ref:r},s.$attrs),[P.createElementVNode("TresCircleGeometry",{args:v.args},null,8,ic),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,sc)])],16))}}),oc=["args"],ac=["color"],lc=P.defineComponent({__name:"Cone",props:{args:{default:()=>[1,1,12,!1,0,Math.PI*2]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"coneRef",ref:r},s.$attrs),[P.createElementVNode("TresConeGeometry",{args:v.args},null,8,oc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,ac)])],16))}}),cc=["args"],pc=["color"],hc=P.defineComponent({__name:"Dodecahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"dodecahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresDodecahedronGeometry",{args:v.args},null,8,cc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,pc)])],16))}}),uc=["args"],dc=["color"],mc=P.defineComponent({__name:"Icosahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"icosahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresIcosahedronGeometry",{args:v.args},null,8,uc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,dc)])],16))}}),fc=["args"],vc=["color"],bc=P.defineComponent({__name:"Octahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"octahedronRef",ref:r},s.$attrs),[P.createElementVNode("TresOctahedronGeometry",{args:v.args},null,8,fc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,vc)])],16))}}),gc=["rotation"],_c=["args"],wc=["color"],yc=P.defineComponent({__name:"Plane",props:{args:{default:()=>[1,1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"planeRef",ref:r,rotation:[-Math.PI/2,0,0]},s.$attrs),[P.createElementVNode("TresPlaneGeometry",{args:v.args},null,8,_c),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,wc)])],16,gc))}}),xc=["args"],Cc=["color"],Pc=P.defineComponent({__name:"Ring",props:{args:{default:()=>[.5,1,32]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"ringRef",ref:r},s.$attrs),[P.createElementVNode("TresRingGeometry",{args:v.args},null,8,xc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Cc)])],16))}}),kc=["args"],Mc=["color"],Ac=P.defineComponent({__name:"Sphere",props:{args:{default:()=>[2,32,16]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"sphereRef",ref:r},s.$attrs),[P.createElementVNode("TresSphereGeometry",{args:v.args},null,8,kc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Mc)])],16))}}),Sc=["rotation"],Lc=["args"],Vc=["color"],Dc=P.defineComponent({__name:"Tetrahedron",props:{args:{default:()=>[1,0]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"tetrahedronRef",ref:r,rotation:[-Math.PI/2,0,0]},s.$attrs),[P.createElementVNode("TresTetrahedronGeometry",{args:v.args},null,8,Lc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Vc)])],16,Sc))}}),Ic=["args"],Ec=["color"],Tc=P.defineComponent({__name:"Torus",props:{args:{default:()=>[1,1,16,80]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"torusRef",ref:r},s.$attrs),[P.createElementVNode("TresTorusGeometry",{args:v.args},null,8,Ic),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Ec)])],16))}}),Oc=["args"],Bc=["color"],Nc=P.defineComponent({__name:"TorusKnot",props:{args:{default:()=>[1,.4,64,8]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"torusKnotRef",ref:r},s.$attrs),[P.createElementVNode("TresTorusKnotGeometry",{args:v.args},null,8,Oc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,Bc)])],16))}}),Fc=["args"],jc=["color"],zc=P.defineComponent({__name:"Tube",props:{args:{default:()=>[new f.QuadraticBezierCurve3(new f.Vector3(-1,0,0),new f.Vector3(0,1,0),new f.Vector3(1,0,0)),20,.2,8,!1]},color:{default:"0xffffff"}},setup(v,{expose:i}){const r=P.shallowRef();return i({value:r}),(s,o)=>(P.openBlock(),P.createElementBlock("TresMesh",P.mergeProps({ref_key:"tubeRef",ref:r},s.$attrs),[P.createElementVNode("TresTubeGeometry",{args:v.args},null,8,Fc),P.renderSlot(s.$slots,"default",{},()=>[P.createElementVNode("TresMeshBasicMaterial",{color:v.color},null,8,jc)])],16))}});var fs={exports:{}};/*! Tweakpane 3.1.9 (c) 2016 cocopon, licensed under the MIT license. */(function(v,i){(function(r,s){s(i)})(Yr,function(r){class s{constructor(e){const[t,l]=e.split("-"),g=t.split(".");this.major=parseInt(g[0],10),this.minor=parseInt(g[1],10),this.patch=parseInt(g[2],10),this.prerelease=l??null}toString(){const e=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[e,this.prerelease].join("-"):e}}class o{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)}}class c{constructor(e){this.target=e}}class h extends c{constructor(e,t,l,g){super(e),this.value=t,this.presetKey=l,this.last=g??!0}}class u extends c{constructor(e,t,l){super(e),this.value=t,this.presetKey=l}}class m extends c{constructor(e,t){super(e),this.expanded=t}}class _ extends c{constructor(e,t){super(e),this.index=t}}function w(n){return n}function y(n){return n==null}function x(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 M(n,e){let t=n;do{const l=Object.getOwnPropertyDescriptor(t,e);if(l&&(l.set!==void 0||l.writable===!0))return!0;t=Object.getPrototypeOf(t)}while(t!==null);return!1}const E={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",propertynotfound:n=>`Property '${n.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class I{static alreadyDisposed(){return new I({type:"alreadydisposed"})}static notBindable(){return new I({type:"notbindable"})}static propertyNotFound(e){return new I({type:"propertynotfound",context:{name:e}})}static shouldNeverHappen(){return new I({type:"shouldneverhappen"})}constructor(e){var t;this.message=(t=E[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}}class T{constructor(e,t,l){this.obj_=e,this.key_=t,this.presetKey_=l??t}static isBindable(e){return!(e===null||typeof e!="object"&&typeof e!="function")}get key(){return this.key_}get presetKey(){return this.presetKey_}read(){return this.obj_[this.key_]}write(e){this.obj_[this.key_]=e}writeProperty(e,t){const l=this.read();if(!T.isBindable(l))throw I.notBindable();if(!(e in l))throw I.propertyNotFound(e);l[e]=t}}class F extends o{get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get title(){var e;return(e=this.controller_.valueController.props.get("title"))!==null&&e!==void 0?e:""}set title(e){this.controller_.valueController.props.set("title",e)}on(e,t){const l=t.bind(this);return this.controller_.valueController.emitter.on(e,()=>{l(new c(this))}),this}}class j{constructor(){this.observers_={}}on(e,t){let l=this.observers_[e];return l||(l=this.observers_[e]=[]),l.push({handler:t}),this}off(e,t){const l=this.observers_[e];return l&&(this.observers_[e]=l.filter(g=>g.handler!==t)),this}emit(e,t){const l=this.observers_[e];l&&l.forEach(g=>{g.handler(t)})}}const B="tp";function N(n){return(t,l)=>[B,"-",n,"v",t?`_${t}`:"",l?`-${l}`:""].join("")}function Q(n,e){return t=>e(n(t))}function $(n){return n.rawValue}function U(n,e){n.emitter.on("change",Q($,e)),e(n.rawValue)}function z(n,e,t){U(n.value(e),t)}function X(n,e,t){t?n.classList.add(e):n.classList.remove(e)}function Y(n,e){return t=>{X(n,e,t)}}function Z(n,e){U(n,t=>{e.textContent=t??""})}const he=N("btn");class ge{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(he()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("button");l.classList.add(he("b")),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const g=e.createElement("div");g.classList.add(he("t")),Z(t.props.value("title"),g),this.buttonElement.appendChild(g)}}class pe{constructor(e,t){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new ge(e,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class me{constructor(e,t){var l;this.constraint_=t==null?void 0:t.constraint,this.equals_=(l=t==null?void 0:t.equals)!==null&&l!==void 0?l:(g,k)=>g===k,this.emitter=new j,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 l=t??{forceEmit:!1,last:!0},g=this.constraint_?this.constraint_.constrain(e):e,k=this.rawValue_;this.equals_(k,g)&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=g,this.emitter.emit("change",{options:l,previousRawValue:k,rawValue:g,sender:this}))}}class ue{constructor(e){this.emitter=new j,this.value_=e}get rawValue(){return this.value_}set rawValue(e){this.setRawValue(e,{forceEmit:!1,last:!0})}setRawValue(e,t){const l=t??{forceEmit:!1,last:!0},g=this.value_;g===e&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=e,this.emitter.emit("change",{options:l,previousRawValue:g,rawValue:this.value_,sender:this}))}}function te(n,e){const t=e==null?void 0:e.constraint,l=e==null?void 0:e.equals;return!t&&!l?new ue(n):new me(n,e)}class q{constructor(e){this.emitter=new j,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((l,g)=>Object.assign(l,{[g]:te(e[g])}),{})}static fromObject(e){const t=this.createCore(e);return new q(t)}get(e){return this.valMap_[e].rawValue}set(e,t){this.valMap_[e].rawValue=t}value(e){return this.valMap_[e]}}function Ce(n,e){const l=Object.keys(e).reduce((g,k)=>{if(g===void 0)return;const L=e[k],R=L(n[k]);return R.succeeded?Object.assign(Object.assign({},g),{[k]:R.value}):void 0},{});return l}function fe(n,e){return n.reduce((t,l)=>{if(t===void 0)return;const g=e(l);if(!(!g.succeeded||g.value===void 0))return[...t,g.value]},[])}function le(n){return n===null?!1:typeof n=="object"}function ie(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 l=n(t);return l!==void 0?{succeeded:!0,value:l}:{succeeded:!1,value:void 0}}}function be(n){return{custom:e=>ie(e)(n),boolean:ie(e=>typeof e=="boolean"?e:void 0)(n),number:ie(e=>typeof e=="number"?e:void 0)(n),string:ie(e=>typeof e=="string"?e:void 0)(n),function:ie(e=>typeof e=="function"?e:void 0)(n),constant:e=>ie(t=>t===e?e:void 0)(n),raw:ie(e=>e)(n),object:e=>ie(t=>{if(le(t))return Ce(t,e)})(n),array:e=>ie(t=>{if(Array.isArray(t))return fe(t,e)})(n)}}const V={optional:be(!0),required:be(!1)};function ce(n,e){const t=V.required.object(e)(n);return t.succeeded?t.value:void 0}function Le(n){console.warn([`Missing '${n.key}' of ${n.target} in ${n.place}.`,"Please rebuild plugins with the latest core package."].join(" "))}function Ee(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}class we{constructor(e){this.value_=e}static create(e){return[new we(e),(t,l)=>{e.setRawValue(t,l)}]}get emitter(){return this.value_.emitter}get rawValue(){return this.value_.rawValue}}const Ze=N("");function gn(n,e){return Y(n,Ze(void 0,e))}class Ue extends q{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_]=we.create(te(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,l,g;const k=e??{};return new Ue(q.createCore({disabled:(t=k.disabled)!==null&&t!==void 0?t:!1,disposed:!1,hidden:(l=k.hidden)!==null&&l!==void 0?l:!1,parent:(g=k.parent)!==null&&g!==void 0?g:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(e){U(this.globalDisabled_,gn(e,"disabled")),z(this,"hidden",gn(e,"hidden"))}bindDisabled(e){U(this.globalDisabled_,t=>{e.disabled=t})}bindTabIndex(e){U(this.globalDisabled_,t=>{e.tabIndex=t?-1:0})}handleDispose(e){this.value("disposed").emitter.on("change",t=>{t&&e()})}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 l=e.previousRawValue;l==null||l.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(t=this.get("parent"))===null||t===void 0||t.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}function _n(){return["veryfirst","first","last","verylast"]}const $t=N(""),st={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class ft{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",()=>{_n().forEach(l=>{t.classList.remove($t(void 0,st[l]))}),this.blade.get("positions").forEach(l=>{t.classList.add($t(void 0,st[l]))})}),this.viewProps.handleDispose(()=>{Ee(t)})}get parent(){return this.parent_}set parent(e){if(this.parent_=e,!("parent"in this.viewProps.valMap_)){Le({key:"parent",target:Ue.name,place:"BladeController.parent"});return}this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}}const Oe="http://www.w3.org/2000/svg";function We(n){n.offsetHeight}function Xt(n,e){const t=n.style.transition;n.style.transition="none",e(),n.style.transition=t}function rt(n){return n.ontouchstart!==void 0}function wn(){return globalThis}function $n(){return wn().document}function yn(n){const e=n.ownerDocument.defaultView;return e&&"document"in e?n.getContext("2d",{willReadFrequently:!0}):null}const xn={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 ct(n,e){const t=n.createElementNS(Oe,"svg");return t.innerHTML=xn[e],t}function vt(n,e,t){n.insertBefore(e,n.children[t])}function Cn(n){n.parentElement&&n.parentElement.removeChild(n)}function Yt(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Pn(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function pt(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const ot=N("lbl");function bt(n,e){const t=n.createDocumentFragment();return e.split(`
|
|
24
|
+
`).map(g=>n.createTextNode(g)).forEach((g,k)=>{k>0&&t.appendChild(n.createElement("br")),t.appendChild(g)}),t}class D{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(ot()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(ot("l")),z(t.props,"label",k=>{y(k)?this.element.classList.add(ot(void 0,"nol")):(this.element.classList.remove(ot(void 0,"nol")),Pn(l),l.appendChild(bt(e,k)))}),this.element.appendChild(l),this.labelElement=l;const g=e.createElement("div");g.classList.add(ot("v")),this.element.appendChild(g),this.valueElement=g}}class K extends ft{constructor(e,t){const l=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{view:new D(e,{props:t.props,viewProps:l}),viewProps:l})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const J={id:"button",type:"blade",accept(n){const e=V,t=ce(n,{title:e.required.string,view:e.required.constant("button"),label:e.optional.string});return t?{params:t}:null},controller(n){return new K(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:new pe(n.document,{props:q.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof K)||!(n.controller.valueController instanceof pe)?null:new F(n.controller)}};class se extends ft{constructor(e){super(e),this.value=e.value}}function ye(){return new q({positions:te([],{equals:x})})}class Ve extends q{constructor(e){super(e)}static create(e){const t={completed:!0,expanded:e,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},l=q.createCore(t);return new Ve(l)}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")&&!y(e)?`${e}px`:"auto"}bindExpandedClass(e,t){const l=()=>{this.styleExpanded?e.classList.add(t):e.classList.remove(t)};z(this,"expanded",l),z(this,"temporaryExpanded",l)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function Vt(n,e){let t=0;return Xt(e,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),We(e),t=e.clientHeight,n.set("temporaryExpanded",null),We(e)}),t}function qt(n,e){e.style.height=n.styleHeight}function Be(n,e){n.value("expanded").emitter.on("beforechange",()=>{if(n.set("completed",!1),y(n.get("expandedHeight"))){const t=Vt(n,e);t>0&&n.set("expandedHeight",t)}n.set("shouldFixHeight",!0),We(e)}),n.emitter.on("change",()=>{qt(n,e)}),qt(n,e),e.addEventListener("transitionend",t=>{t.propertyName==="height"&&n.cleanUpTransition()})}class Ne extends o{constructor(e,t){super(e),this.rackApi_=t}}function bs(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"button"}))}function gs(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"folder"}))}function _s(n,e){const t=e??{};return n.addBlade(Object.assign(Object.assign({},t),{view:"separator"}))}function Xn(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"tab"}))}class gt{constructor(e){this.emitter=new j,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 I.shouldNeverHappen();const l=t!==void 0?t:this.items_.length;this.items_.splice(l,0,e),this.cache_.add(e);const g=this.extract_(e);g&&(g.emitter.on("add",this.onSubListAdd_),g.emitter.on("remove",this.onSubListRemove_),g.allItems().forEach(k=>{this.cache_.add(k)})),this.emitter.emit("add",{index:l,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 l=this.extract_(e);l&&(l.emitter.off("add",this.onSubListAdd_),l.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})}}class Yn extends o{constructor(e){super(e),this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("change",this.onBindingChange_)}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(e){const t=e.sender.target.read();this.emitter_.emit("change",{event:new h(this,t,this.controller_.binding.target.presetKey,e.options.last)})}}class Te extends K{constructor(e,t){super(e,t),this.binding=t.binding}}class qn extends o{constructor(e){super(e),this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("update",this.onBindingUpdate_)}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(e){const t=e.sender.target.read();this.emitter_.emit("update",{event:new u(this,t,this.controller_.binding.target.presetKey)})}}class Je extends K{constructor(e,t){super(e,t),this.binding=t.binding,this.viewProps.bindDisabled(this.binding.ticker),this.viewProps.handleDispose(()=>{this.binding.dispose()})}}function Mi(n){return n instanceof kn?n.apiSet_:n instanceof Ne?n.rackApi_.apiSet_:null}function Qt(n,e){const t=n.find(l=>l.controller_===e);if(!t)throw I.shouldNeverHappen();return t}function Ai(n,e,t){if(!T.isBindable(n))throw I.notBindable();return new T(n,e,t)}class kn extends o{constructor(e,t){super(e),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this),this.onRackInputChange_=this.onRackInputChange_.bind(this),this.onRackMonitorUpdate_=this.onRackMonitorUpdate_.bind(this),this.emitter_=new j,this.apiSet_=new gt(Mi),this.pool_=t;const l=this.controller_.rack;l.emitter.on("add",this.onRackAdd_),l.emitter.on("remove",this.onRackRemove_),l.emitter.on("inputchange",this.onRackInputChange_),l.emitter.on("monitorupdate",this.onRackMonitorUpdate_),l.children.forEach(g=>{this.setUpApi_(g)})}get children(){return this.controller_.rack.children.map(e=>Qt(this.apiSet_,e))}addInput(e,t,l){const g=l??{},k=this.controller_.view.element.ownerDocument,L=this.pool_.createInput(k,Ai(e,t,g.presetKey),g),R=new Yn(L);return this.add(R,g.index)}addMonitor(e,t,l){const g=l??{},k=this.controller_.view.element.ownerDocument,L=this.pool_.createMonitor(k,Ai(e,t),g),R=new qn(L);return this.add(R,g.index)}addFolder(e){return gs(this,e)}addButton(e){return bs(this,e)}addSeparator(e){return _s(this,e)}addTab(e){return Xn(this,e)}add(e,t){this.controller_.rack.add(e.controller_,t);const l=this.apiSet_.find(g=>g.controller_===e.controller_);return l&&this.apiSet_.remove(l),this.apiSet_.add(e),e}remove(e){this.controller_.rack.remove(e.controller_)}addBlade(e){const t=this.controller_.view.element.ownerDocument,l=this.pool_.createBlade(t,e),g=this.pool_.createBladeApi(l);return this.add(g,e.index)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}setUpApi_(e){this.apiSet_.find(l=>l.controller_===e)||this.apiSet_.add(this.pool_.createBladeApi(e))}onRackAdd_(e){this.setUpApi_(e.bladeController)}onRackRemove_(e){if(e.isRoot){const t=Qt(this.apiSet_,e.bladeController);this.apiSet_.remove(t)}}onRackInputChange_(e){const t=e.bladeController;if(t instanceof Te){const l=Qt(this.apiSet_,t),g=t.binding;this.emitter_.emit("change",{event:new h(l,g.target.read(),g.target.presetKey,e.options.last)})}else if(t instanceof se){const l=Qt(this.apiSet_,t);this.emitter_.emit("change",{event:new h(l,t.value.rawValue,void 0,e.options.last)})}}onRackMonitorUpdate_(e){if(!(e.bladeController instanceof Je))throw I.shouldNeverHappen();const t=Qt(this.apiSet_,e.bladeController),l=e.bladeController.binding;this.emitter_.emit("update",{event:new u(t,l.target.read(),l.target.presetKey)})}}class Qn extends Ne{constructor(e,t){super(e,new kn(e.rackController,t)),this.emitter_=new j,this.controller_.foldable.value("expanded").emitter.on("change",l=>{this.emitter_.emit("fold",{event:new m(this,l.sender.rawValue)})}),this.rackApi_.on("change",l=>{this.emitter_.emit("change",{event:l})}),this.rackApi_.on("update",l=>{this.emitter_.emit("update",{event:l})})}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}addInput(e,t,l){return this.rackApi_.addInput(e,t,l)}addMonitor(e,t,l){return this.rackApi_.addMonitor(e,t,l)}addFolder(e){return this.rackApi_.addFolder(e)}addButton(e){return this.rackApi_.addButton(e)}addSeparator(e){return this.rackApi_.addSeparator(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){return this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}addBlade(e){return this.rackApi_.addBlade(e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class Zn extends ft{constructor(e){super({blade:e.blade,view:e.view,viewProps:e.rackController.viewProps}),this.rackController=e.rackController}}class ws{constructor(e,t){const l=N(t.viewName);this.element=e.createElement("div"),this.element.classList.add(l()),t.viewProps.bindClassModifiers(this.element)}}function ys(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof Te&&l.binding===e)return l}return null}function xs(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof Je&&l.binding===e)return l}return null}function Cs(n,e){for(let t=0;t<n.length;t++){const l=n[t];if(l instanceof se&&l.value===e)return l}return null}function Wn(n){return n instanceof Zt?n.rack:n instanceof Zn?n.rackController.rack:null}function Ps(n){const e=Wn(n);return e?e.bcSet_:null}class ks{constructor(e){var t,l;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.onChildInputChange_=this.onChildInputChange_.bind(this),this.onChildMonitorUpdate_=this.onChildMonitorUpdate_.bind(this),this.onChildValueChange_=this.onChildValueChange_.bind(this),this.onChildViewPropsChange_=this.onChildViewPropsChange_.bind(this),this.onDescendantLayout_=this.onDescendantLayout_.bind(this),this.onDescendantInputChange_=this.onDescendantInputChange_.bind(this),this.onDescendantMonitorUpdate_=this.onDescendantMonitorUpdate_.bind(this),this.emitter=new j,this.blade_=(t=e.blade)!==null&&t!==void 0?t:null,(l=this.blade_)===null||l===void 0||l.value("positions").emitter.on("change",this.onBladePositionsChange_),this.viewProps=e.viewProps,this.bcSet_=new gt(Ps),this.bcSet_.emitter.on("add",this.onSetAdd_),this.bcSet_.emitter.on("remove",this.onSetRemove_)}get children(){return this.bcSet_.items}add(e,t){var l;(l=e.parent)===null||l===void 0||l.remove(e),M(e,"parent")?e.parent=this:(e.parent_=this,Le({key:"parent",target:"BladeController",place:"BladeRack.add"})),this.bcSet_.add(e,t)}remove(e){M(e,"parent")?e.parent=null:(e.parent_=null,Le({key:"parent",target:"BladeController",place:"BladeRack.remove"})),this.bcSet_.remove(e)}find(e){return this.bcSet_.allItems().filter(t=>t instanceof e)}onSetAdd_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("add",{bladeController:e.item,index:e.index,isRoot:t,sender:this}),!t)return;const l=e.item;if(l.viewProps.emitter.on("change",this.onChildViewPropsChange_),l.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),l.viewProps.handleDispose(this.onChildDispose_),l instanceof Te)l.binding.emitter.on("change",this.onChildInputChange_);else if(l instanceof Je)l.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(l instanceof se)l.value.emitter.on("change",this.onChildValueChange_);else{const g=Wn(l);if(g){const k=g.emitter;k.on("layout",this.onDescendantLayout_),k.on("inputchange",this.onDescendantInputChange_),k.on("monitorupdate",this.onDescendantMonitorUpdate_)}}}onSetRemove_(e){this.updatePositions_();const t=e.target===e.root;if(this.emitter.emit("remove",{bladeController:e.item,isRoot:t,sender:this}),!t)return;const l=e.item;if(l instanceof Te)l.binding.emitter.off("change",this.onChildInputChange_);else if(l instanceof Je)l.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(l instanceof se)l.value.emitter.off("change",this.onChildValueChange_);else{const g=Wn(l);if(g){const k=g.emitter;k.off("layout",this.onDescendantLayout_),k.off("inputchange",this.onDescendantInputChange_),k.off("monitorupdate",this.onDescendantMonitorUpdate_)}}}updatePositions_(){const e=this.bcSet_.items.filter(g=>!g.viewProps.get("hidden")),t=e[0],l=e[e.length-1];this.bcSet_.items.forEach(g=>{const k=[];g===t&&(k.push("first"),(!this.blade_||this.blade_.get("positions").includes("veryfirst"))&&k.push("veryfirst")),g===l&&(k.push("last"),(!this.blade_||this.blade_.get("positions").includes("verylast"))&&k.push("verylast")),g.blade.set("positions",k)})}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)})}onChildInputChange_(e){const t=ys(this.find(Te),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:t,options:e.options,sender:this})}onChildMonitorUpdate_(e){const t=xs(this.find(Je),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("monitorupdate",{bladeController:t,sender:this})}onChildValueChange_(e){const t=Cs(this.find(se),e.sender);if(!t)throw I.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:t,options:e.options,sender:this})}onDescendantLayout_(e){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onDescendantInputChange_(e){this.emitter.emit("inputchange",{bladeController:e.bladeController,options:e.options,sender:this})}onDescendantMonitorUpdate_(e){this.emitter.emit("monitorupdate",{bladeController:e.bladeController,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class Zt extends ft{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new ws(e,{viewName:"brk",viewProps:t.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const l=new ks({blade:t.root?void 0:t.blade,viewProps:t.viewProps});l.emitter.on("add",this.onRackAdd_),l.emitter.on("remove",this.onRackRemove_),this.rack=l,this.viewProps.handleDispose(()=>{for(let g=this.rack.children.length-1;g>=0;g--)this.rack.children[g].viewProps.set("disposed",!0)})}onRackAdd_(e){e.isRoot&&vt(this.view.element,e.bladeController.view.element,e.index)}onRackRemove_(e){e.isRoot&&Cn(e.bladeController.view.element)}}const Si=N("cnt");class Ms{constructor(e,t){var l;this.className_=N((l=t.viewName)!==null&&l!==void 0?l:"fld"),this.element=e.createElement("div"),this.element.classList.add(this.className_(),Si()),t.viewProps.bindClassModifiers(this.element),this.foldable_=t.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),z(this.foldable_,"completed",Y(this.element,this.className_(void 0,"cpl")));const g=e.createElement("button");g.classList.add(this.className_("b")),z(t.props,"title",H=>{y(H)?this.element.classList.add(this.className_(void 0,"not")):this.element.classList.remove(this.className_(void 0,"not"))}),t.viewProps.bindDisabled(g),this.element.appendChild(g),this.buttonElement=g;const k=e.createElement("div");k.classList.add(this.className_("i")),this.element.appendChild(k);const L=e.createElement("div");L.classList.add(this.className_("t")),Z(t.props.value("title"),L),this.buttonElement.appendChild(L),this.titleElement=L;const R=e.createElement("div");R.classList.add(this.className_("m")),this.buttonElement.appendChild(R);const W=t.containerElement;W.classList.add(this.className_("c")),this.element.appendChild(W),this.containerElement=W}}class Mn extends Zn{constructor(e,t){var l;const g=Ve.create((l=t.expanded)!==null&&l!==void 0?l:!0),k=new Zt(e,{blade:t.blade,root:t.root,viewProps:t.viewProps});super(Object.assign(Object.assign({},t),{rackController:k,view:new Ms(e,{containerElement:k.view.element,foldable:g,props:t.props,viewName:t.root?"rot":void 0,viewProps:t.viewProps})})),this.onTitleClick_=this.onTitleClick_.bind(this),this.props=t.props,this.foldable=g,Be(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}onTitleClick_(){this.foldable.set("expanded",!this.foldable.get("expanded"))}}const As={id:"folder",type:"blade",accept(n){const e=V,t=ce(n,{title:e.required.string,view:e.required.constant("folder"),expanded:e.optional.boolean});return t?{params:t}:null},controller(n){return new Mn(n.document,{blade:n.blade,expanded:n.params.expanded,props:q.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof Mn?new Qn(n.controller,n.pool):null}};class Dt extends se{constructor(e,t){const l=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{value:t.valueController.value,view:new D(e,{props:t.props,viewProps:l}),viewProps:l})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Li extends o{}const Jn=N("spr");class Ss{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Jn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("hr");l.classList.add(Jn("r")),this.element.appendChild(l)}}class Wt extends ft{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new Ss(e,{viewProps:t.viewProps})}))}}const Ls={id:"separator",type:"blade",accept(n){const t=ce(n,{view:V.required.constant("separator")});return t?{params:t}:null},controller(n){return new Wt(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof Wt?new Li(n.controller):null}},Ae=N("tbi");class Vs{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Ae()),t.viewProps.bindClassModifiers(this.element),z(t.props,"selected",k=>{k?this.element.classList.add(Ae(void 0,"sel")):this.element.classList.remove(Ae(void 0,"sel"))});const l=e.createElement("button");l.classList.add(Ae("b")),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const g=e.createElement("div");g.classList.add(Ae("t")),Z(t.props.value("title"),g),this.buttonElement.appendChild(g),this.titleElement=g}}class An{constructor(e,t){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Vs(e,{props:t.props,viewProps:t.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class Vi{constructor(e,t){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new An(e,{props:t.itemProps,viewProps:Ue.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new Zt(e,{blade:ye(),viewProps:Ue.create()}),this.props=t.props,z(this.props,"selected",l=>{this.itemController.props.set("selected",l),this.contentController.viewProps.set("hidden",!l)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class Hn{constructor(e,t){this.controller_=e,this.rackApi_=t}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)}addSeparator(e){return this.rackApi_.addSeparator(e)}addTab(e){return this.rackApi_.addTab(e)}add(e,t){this.rackApi_.add(e,t)}remove(e){this.rackApi_.remove(e)}addInput(e,t,l){return this.rackApi_.addInput(e,t,l)}addMonitor(e,t,l){return this.rackApi_.addMonitor(e,t,l)}addBlade(e){return this.rackApi_.addBlade(e)}}class Di extends Ne{constructor(e,t){super(e,new kn(e.rackController,t)),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new j,this.pageApiMap_=new Map,this.rackApi_.on("change",l=>{this.emitter_.emit("change",{event:l})}),this.rackApi_.on("update",l=>{this.emitter_.emit("update",{event:l})}),this.controller_.tab.selectedIndex.emitter.on("change",this.onSelect_),this.controller_.pageSet.emitter.on("add",this.onPageAdd_),this.controller_.pageSet.emitter.on("remove",this.onPageRemove_),this.controller_.pageSet.items.forEach(l=>{this.setUpPageApi_(l)})}get pages(){return this.controller_.pageSet.items.map(e=>{const t=this.pageApiMap_.get(e);if(!t)throw I.shouldNeverHappen();return t})}addPage(e){const t=this.controller_.view.element.ownerDocument,l=new Vi(t,{itemProps:q.fromObject({selected:!1,title:e.title}),props:q.fromObject({selected:!1})});this.controller_.add(l,e.index);const g=this.pageApiMap_.get(l);if(!g)throw I.shouldNeverHappen();return g}removePage(e){this.controller_.remove(e)}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}setUpPageApi_(e){const t=this.rackApi_.apiSet_.find(g=>g.controller_===e.contentController);if(!t)throw I.shouldNeverHappen();const l=new Hn(e,t);this.pageApiMap_.set(e,l)}onPageAdd_(e){this.setUpPageApi_(e.item)}onPageRemove_(e){if(!this.pageApiMap_.get(e.item))throw I.shouldNeverHappen();this.pageApiMap_.delete(e.item)}onSelect_(e){this.emitter_.emit("select",{event:new _(this,e.rawValue)})}}const Ii=-1;class Ds{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=te(!0),this.selectedIndex=te(Ii),this.items_=[]}add(e,t){const l=t??this.items_.length;this.items_.splice(l,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=Ii,this.empty.rawValue=!0;return}const e=this.items_.findIndex(t=>t.rawValue);e<0?(this.items_.forEach((t,l)=>{t.rawValue=l===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((t,l)=>{t.rawValue=l===e}),this.selectedIndex.rawValue=e),this.empty.rawValue=!1}onItemSelectedChange_(e){if(e.rawValue){const t=this.items_.findIndex(l=>l===e.sender);this.items_.forEach((l,g)=>{l.rawValue=g===t}),this.selectedIndex.rawValue=t}else this.keepSelection_()}}const It=N("tab");class Et{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(It(),Si()),t.viewProps.bindClassModifiers(this.element),U(t.empty,Y(this.element,It(void 0,"nop")));const l=e.createElement("div");l.classList.add(It("t")),this.element.appendChild(l),this.itemsElement=l;const g=e.createElement("div");g.classList.add(It("i")),this.element.appendChild(g);const k=t.contentsElement;k.classList.add(It("c")),this.element.appendChild(k),this.contentsElement=k}}class Jt extends Zn{constructor(e,t){const l=new Zt(e,{blade:t.blade,viewProps:t.viewProps}),g=new Ds;super({blade:t.blade,rackController:l,view:new Et(e,{contentsElement:l.view.element,empty:g.empty,viewProps:t.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new gt(()=>null),this.pageSet_.emitter.on("add",this.onPageAdd_),this.pageSet_.emitter.on("remove",this.onPageRemove_),this.tab=g}get pageSet(){return this.pageSet_}add(e,t){this.pageSet_.add(e,t)}remove(e){this.pageSet_.remove(this.pageSet_.items[e])}onPageAdd_(e){const t=e.item;vt(this.view.itemsElement,t.itemController.view.element,e.index),t.itemController.viewProps.set("parent",this.viewProps),this.rackController.rack.add(t.contentController,e.index),this.tab.add(t.props.value("selected"))}onPageRemove_(e){const t=e.item;Cn(t.itemController.view.element),t.itemController.viewProps.set("parent",null),this.rackController.rack.remove(t.contentController),this.tab.remove(t.props.value("selected"))}}const ei={id:"tab",type:"blade",accept(n){const e=V,t=ce(n,{pages:e.required.array(e.required.object({title:e.required.string})),view:e.required.constant("tab")});return!t||t.pages.length===0?null:{params:t}},controller(n){const e=new Jt(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(t=>{const l=new Vi(n.document,{itemProps:q.fromObject({selected:!1,title:t.title}),props:q.fromObject({selected:!1})});e.add(l)}),e},api(n){return n.controller instanceof Jt?new Di(n.controller,n.pool):null}};function Is(n,e){const t=n.accept(e.params);if(!t)return null;const l=V.optional.boolean(e.params.disabled).value,g=V.optional.boolean(e.params.hidden).value;return n.controller({blade:ye(),document:e.document,params:Object.assign(Object.assign({},t.params),{disabled:l,hidden:g}),viewProps:Ue.create({disabled:l,hidden:g})})}class Ei{constructor(){this.disabled=!1,this.emitter=new j}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class ti{constructor(e,t){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=e,this.emitter=new j,this.interval_=t,this.setTimer_()}get disabled(){return this.disabled_}set disabled(e){this.disabled_=e,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const e=this.doc_.defaultView;e&&e.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const e=this.doc_.defaultView;e&&(this.timerId_=e.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Sn{constructor(e){this.onValueChange_=this.onValueChange_.bind(this),this.reader=e.reader,this.writer=e.writer,this.emitter=new j,this.value=e.value,this.value.emitter.on("change",this.onValueChange_),this.target=e.target,this.read()}read(){const e=this.target.read();e!==void 0&&(this.value.rawValue=this.reader(e))}write_(e){this.writer(this.target,e)}onValueChange_(e){this.write_(e.rawValue),this.emitter.emit("change",{options:e.options,rawValue:e.rawValue,sender:this})}}function Pe(n,e){for(;n.length<e;)n.push(void 0)}function Ti(n){const e=[];return Pe(e,n),te(e)}function Tt(n){const e=n.indexOf(void 0);return e<0?n:n.slice(0,e)}function Re(n,e){const t=[...Tt(n),e];return t.length>n.length?t.splice(0,t.length-n.length):Pe(t,n.length),t}class Es{constructor(e){this.onTick_=this.onTick_.bind(this),this.reader_=e.reader,this.target=e.target,this.emitter=new j,this.value=e.value,this.ticker=e.ticker,this.ticker.emitter.on("tick",this.onTick_),this.read()}dispose(){this.ticker.dispose()}read(){const e=this.target.read();if(e===void 0)return;const t=this.value.rawValue,l=this.reader_(e);this.value.rawValue=Re(t,l),this.emitter.emit("update",{rawValue:l,sender:this})}onTick_(e){this.read()}}class Ht{constructor(e){this.constraints=e}constrain(e){return this.constraints.reduce((t,l)=>l.constrain(t),e)}}function Xe(n,e){if(n instanceof e)return n;if(n instanceof Ht){const t=n.constraints.reduce((l,g)=>l||(g instanceof e?g:null),null);if(t)return t}return null}class Ot{constructor(e){this.values=q.fromObject({max:e.max,min:e.min})}constrain(e){const t=this.values.get("max"),l=this.values.get("min");return Math.min(Math.max(e,l),t)}}class en{constructor(e){this.values=q.fromObject({options:e})}get options(){return this.values.get("options")}constrain(e){const t=this.values.get("options");return t.length===0||t.filter(g=>g.value===e).length>0?e:t[0].value}}class ni{constructor(e){this.values=q.fromObject({max:e.max,min:e.min})}get maxValue(){return this.values.get("max")}get minValue(){return this.values.get("min")}constrain(e){const t=this.values.get("max"),l=this.values.get("min");let g=e;return y(l)||(g=Math.max(g,l)),y(t)||(g=Math.min(g,t)),g}}class Ln{constructor(e,t=0){this.step=e,this.origin=t}constrain(e){const t=this.origin%this.step,l=Math.round((e-t)/this.step);return t+l*this.step}}const Bt=N("lst");class Oi{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.props_=t.props,this.element=e.createElement("div"),this.element.classList.add(Bt()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("select");l.classList.add(Bt("s")),z(this.props_,"options",k=>{Yt(l),k.forEach((L,R)=>{const W=e.createElement("option");W.dataset.index=String(R),W.textContent=L.text,W.value=String(L.value),l.appendChild(W)})}),t.viewProps.bindDisabled(l),this.element.appendChild(l),this.selectElement=l;const g=e.createElement("div");g.classList.add(Bt("m")),g.appendChild(ct(e,"dropdown")),this.element.appendChild(g),t.value.emitter.on("change",this.onValueChange_),this.value_=t.value,this.update_()}update_(){this.selectElement.value=String(this.value_.rawValue)}onValueChange_(){this.update_()}}class tn{constructor(e,t){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new Oi(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(e){const l=e.currentTarget.selectedOptions.item(0);if(!l)return;const g=Number(l.dataset.index);this.value.rawValue=this.props.get("options")[g].value}}const Bi=N("pop");class Ts{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Bi()),t.viewProps.bindClassModifiers(this.element),U(t.shows,Y(this.element,Bi(void 0,"v")))}}class Ni{constructor(e,t){this.shows=te(!1),this.viewProps=t.viewProps,this.view=new Ts(e,{shows:this.shows,viewProps:this.viewProps})}}const Fi=N("txt");class Os{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Fi()),t.viewProps.bindClassModifiers(this.element),this.props_=t.props,this.props_.emitter.on("change",this.onChange_);const l=e.createElement("input");l.classList.add(Fi("i")),l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,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 Vn{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 Os(e,{props:t.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const l=e.currentTarget.value,g=this.parser_(l);y(g)||(this.value.rawValue=g),this.view.refresh()}}function Bs(n){return String(n)}function ji(n){return n==="false"?!1:!!n}function zi(n){return Bs(n)}class Ns{constructor(e){this.text=e}evaluate(){return Number(this.text)}toString(){return this.text}}const Fs={"**":(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 js{constructor(e,t,l){this.left=t,this.operator=e,this.right=l}evaluate(){const e=Fs[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 Ui={"+":n=>n,"-":n=>-n,"~":n=>~n};class zs{constructor(e,t){this.operator=e,this.expression=t}evaluate(){const e=Ui[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 ii(n){return(e,t)=>{for(let l=0;l<n.length;l++){const g=n[l](e,t);if(g!=="")return g}return""}}function _t(n,e){var t;const l=n.substr(e).match(/^\s+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Us(n,e){const t=n.substr(e,1);return t.match(/^[1-9]$/)?t:""}function nn(n,e){var t;const l=n.substr(e).match(/^[0-9]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Rs(n,e){const t=nn(n,e);if(t!=="")return t;const l=n.substr(e,1);if(e+=1,l!=="-"&&l!=="+")return"";const g=nn(n,e);return g===""?"":l+g}function He(n,e){const t=n.substr(e,1);if(e+=1,t.toLowerCase()!=="e")return"";const l=Rs(n,e);return l===""?"":t+l}function Ri(n,e){const t=n.substr(e,1);if(t==="0")return t;const l=Us(n,e);return e+=l.length,l===""?"":l+nn(n,e)}function Gs(n,e){const t=Ri(n,e);if(e+=t.length,t==="")return"";const l=n.substr(e,1);if(e+=l.length,l!==".")return"";const g=nn(n,e);return e+=g.length,t+l+g+He(n,e)}function Gi(n,e){const t=n.substr(e,1);if(e+=t.length,t!==".")return"";const l=nn(n,e);return e+=l.length,l===""?"":t+l+He(n,e)}function Ks(n,e){const t=Ri(n,e);return e+=t.length,t===""?"":t+He(n,e)}const Ki=ii([Gs,Gi,Ks]);function si(n,e){var t;const l=n.substr(e).match(/^[01]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function $s(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0b")return"";const l=si(n,e);return l===""?"":t+l}function $i(n,e){var t;const l=n.substr(e).match(/^[0-7]+/);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Ge(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0o")return"";const l=$i(n,e);return l===""?"":t+l}function Xs(n,e){var t;const l=n.substr(e).match(/^[0-9a-f]+/i);return(t=l&&l[0])!==null&&t!==void 0?t:""}function Ys(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0x")return"";const l=Xs(n,e);return l===""?"":t+l}const ri=ii([$s,Ge,Ys]),qs=ii([ri,Ki]);function ht(n,e){const t=qs(n,e);return e+=t.length,t===""?null:{evaluable:new Ns(t),cursor:e}}function oi(n,e){const t=n.substr(e,1);if(e+=t.length,t!=="(")return null;const l=Dn(n,e);if(!l)return null;e=l.cursor,e+=_t(n,e).length;const g=n.substr(e,1);return e+=g.length,g!==")"?null:{evaluable:l.evaluable,cursor:e}}function Qs(n,e){var t;return(t=ht(n,e))!==null&&t!==void 0?t:oi(n,e)}function ai(n,e){const t=Qs(n,e);if(t)return t;const l=n.substr(e,1);if(e+=l.length,l!=="+"&&l!=="-"&&l!=="~")return null;const g=ai(n,e);return g?(e=g.cursor,{cursor:e,evaluable:new zs(l,g.evaluable)}):null}function Zs(n,e,t){t+=_t(e,t).length;const l=n.filter(g=>e.startsWith(g,t))[0];return l?(t+=l.length,t+=_t(e,t).length,{cursor:t,operator:l}):null}function wt(n,e){return(t,l)=>{const g=n(t,l);if(!g)return null;l=g.cursor;let k=g.evaluable;for(;;){const L=Zs(e,t,l);if(!L)break;l=L.cursor;const R=n(t,l);if(!R)return null;l=R.cursor,k=new js(L.operator,k,R.evaluable)}return k?{cursor:l,evaluable:k}:null}}const Xi=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,e)=>wt(n,e),ai);function Dn(n,e){return e+=_t(n,e).length,Xi(n,e)}function Yi(n){const e=Dn(n,0);return!e||e.cursor+_t(n,e.cursor).length!==n.length?null:e.evaluable}function et(n){var e;const t=Yi(n);return(e=t==null?void 0:t.evaluate())!==null&&e!==void 0?e:null}function at(n){if(typeof n=="number")return n;if(typeof n=="string"){const e=et(n);if(!y(e))return e}return 0}function Ws(n){return String(n)}function Se(n){return e=>e.toFixed(Math.max(Math.min(n,20),0))}const qi=Se(0);function sn(n){return qi(n)+"%"}function li(n){return String(n)}function ut(n){return n}function Nt({primary:n,secondary:e,forward:t,backward:l}){let g=!1;function k(L){g||(g=!0,L(),g=!1)}n.emitter.on("change",L=>{k(()=>{e.setRawValue(t(n,e),L.options)})}),e.emitter.on("change",L=>{k(()=>{n.setRawValue(l(n,e),L.options)}),k(()=>{e.setRawValue(t(n,e),L.options)})}),k(()=>{e.setRawValue(t(n,e),{forceEmit:!1,last:!0})})}function De(n,e){const t=n*(e.altKey?.1:1)*(e.shiftKey?10:1);return e.upKey?+t:e.downKey?-t:0}function rn(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function tt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function Qi(n){return n==="ArrowUp"||n==="ArrowDown"}function In(n){return Qi(n)||n==="ArrowLeft"||n==="ArrowRight"}function ci(n,e){var t,l;const g=e.ownerDocument.defaultView,k=e.getBoundingClientRect();return{x:n.pageX-(((t=g&&g.scrollX)!==null&&t!==void 0?t:0)+k.left),y:n.pageY-(((l=g&&g.scrollY)!==null&&l!==void 0?l:0)+k.top)}}class yt{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 j,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.focus();const l=this.elem_.ownerDocument;l.addEventListener("mousemove",this.onDocumentMouseMove_),l.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(ci(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onDocumentMouseMove_(e){this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(ci(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_(ci(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onTouchStart_(e){e.preventDefault();const t=e.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-l.left,y:t.clientY-l.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchMove_(e){const t=e.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-l.left,y:t.clientY-l.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchEnd_(e){var t;const l=(t=e.targetTouches.item(0))!==null&&t!==void 0?t:this.lastTouch_,g=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:e.altKey,data:this.computePosition_(l?{x:l.clientX-g.left,y:l.clientY-g.top}:void 0),sender:this,shiftKey:e.shiftKey})}}function _e(n,e,t,l,g){const k=(n-e)/(t-e);return l+k*(g-l)}function pi(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function ke(n,e,t){return Math.min(Math.max(n,e),t)}function Ft(n,e){return(n%e+e)%e}const Fe=N("txt");class hi{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(Fe(),Fe(void 0,"num")),t.arrayPosition&&this.element.classList.add(Fe(void 0,t.arrayPosition)),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("input");l.classList.add(Fe("i")),l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=t.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(Fe()),this.inputElement.classList.add(Fe("i"));const g=e.createElement("div");g.classList.add(Fe("k")),this.element.appendChild(g),this.knobElement=g;const k=e.createElementNS(Oe,"svg");k.classList.add(Fe("g")),this.knobElement.appendChild(k);const L=e.createElementNS(Oe,"path");L.classList.add(Fe("gb")),k.appendChild(L),this.guideBodyElem_=L;const R=e.createElementNS(Oe,"path");R.classList.add(Fe("gh")),k.appendChild(R),this.guideHeadElem_=R;const W=e.createElement("div");W.classList.add(N("tt")()),this.knobElement.appendChild(W),this.tooltipElem_=W,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.refresh()}onDraggingChange_(e){if(e.rawValue===null){this.element.classList.remove(Fe(void 0,"drg"));return}this.element.classList.add(Fe(void 0,"drg"));const t=e.rawValue/this.props_.get("draggingScale"),l=t+(t>0?-1:t<0?1:0),g=ke(-l,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${l+g},0 L${l},4 L${l+g},8`,`M ${t},-1 L${t},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${t},4`);const k=this.props_.get("formatter");this.tooltipElem_.textContent=k(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 on{constructor(e,t){var l;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.baseStep_=t.baseStep,this.parser_=t.parser,this.props=t.props,this.sliderProps_=(l=t.sliderProps)!==null&&l!==void 0?l:null,this.value=t.value,this.viewProps=t.viewProps,this.dragging_=te(null),this.view=new hi(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 g=new yt(this.view.knobElement);g.emitter.on("down",this.onPointerDown_),g.emitter.on("move",this.onPointerMove_),g.emitter.on("up",this.onPointerUp_)}constrainValue_(e){var t,l;const g=(t=this.sliderProps_)===null||t===void 0?void 0:t.get("minValue"),k=(l=this.sliderProps_)===null||l===void 0?void 0:l.get("maxValue");let L=e;return g!==void 0&&(L=Math.max(L,g)),k!==void 0&&(L=Math.min(L,k)),L}onInputChange_(e){const l=e.currentTarget.value,g=this.parser_(l);y(g)||(this.value.rawValue=this.constrainValue_(g)),this.view.refresh()}onInputKeyDown_(e){const t=De(this.baseStep_,rn(e));t!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+t),{forceEmit:!1,last:!1})}onInputKeyUp_(e){De(this.baseStep_,rn(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("draggingScale"))}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 ui=N("sld");class je{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(ui()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(ui("t")),t.viewProps.bindTabIndex(l),this.element.appendChild(l),this.trackElement=l;const g=e.createElement("div");g.classList.add(ui("k")),this.trackElement.appendChild(g),this.knobElement=g,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.update_()}update_(){const e=ke(_e(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${e}%`}onChange_(){this.update_()}}class di{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.baseStep_=t.baseStep,this.value=t.value,this.viewProps=t.viewProps,this.props=t.props,this.view=new je(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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(_e(ke(e.point.x,0,e.bounds.width),0,e.bounds.width,this.props.get("minValue"),this.props.get("maxValue")),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=De(this.baseStep_,tt(e));t!==0&&this.value.setRawValue(this.value.rawValue+t,{forceEmit:!1,last:!1})}onKeyUp_(e){De(this.baseStep_,tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const an=N("sldtxt");class mi{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(an());const l=e.createElement("div");l.classList.add(an("s")),this.sliderView_=t.sliderView,l.appendChild(this.sliderView_.element),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(an("t")),this.textView_=t.textView,g.appendChild(this.textView_.element),this.element.appendChild(g)}}class En{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.sliderC_=new di(e,{baseStep:t.baseStep,props:t.sliderProps,value:t.value,viewProps:this.viewProps}),this.textC_=new on(e,{baseStep:t.baseStep,parser:t.parser,props:t.textProps,sliderProps:t.sliderProps,value:t.value,viewProps:t.viewProps}),this.view=new mi(e,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function Ye(n,e){n.write(e)}function ln(n){const e=V;if(Array.isArray(n))return e.required.array(e.required.object({text:e.required.string,value:e.required.raw}))(n).value;if(typeof n=="object")return e.required.raw(n).value}function fi(n){if(n==="inline"||n==="popup")return n}function lt(n){const e=V;return e.required.object({max:e.optional.number,min:e.optional.number,step:e.optional.number})(n).value}function Zi(n){if(Array.isArray(n))return n;const e=[];return Object.keys(n).forEach(t=>{e.push({text:t,value:n[t]})}),e}function vi(n){return y(n)?null:new en(Zi(n))}function Js(n){const e=n?Xe(n,Ln):null;return e?e.step:null}function Tn(n,e){const t=n&&Xe(n,Ln);return t?pi(t.step):Math.max(pi(e),2)}function xt(n){const e=Js(n);return e??1}function Ct(n,e){var t;const l=n&&Xe(n,Ln),g=Math.abs((t=l==null?void 0:l.step)!==null&&t!==void 0?t:e);return g===0?.1:Math.pow(10,Math.floor(Math.log10(g))-1)}const cn=N("ckb");class pn{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(cn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("label");l.classList.add(cn("l")),this.element.appendChild(l);const g=e.createElement("input");g.classList.add(cn("i")),g.type="checkbox",l.appendChild(g),this.inputElement=g,t.viewProps.bindDisabled(this.inputElement);const k=e.createElement("div");k.classList.add(cn("w")),l.appendChild(k);const L=ct(e,"check");k.appendChild(L),t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class Wi{constructor(e,t){this.onInputChange_=this.onInputChange_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new pn(e,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const t=e.currentTarget;this.value.rawValue=t.checked}}function Ji(n){const e=[],t=vi(n.options);return t&&e.push(t),new Ht(e)}const On={id:"input-bool",type:"input",accept:(n,e)=>{if(typeof n!="boolean")return null;const l=ce(e,{options:V.optional.custom(ln)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>ji,constraint:n=>Ji(n.params),writer:n=>Ye},controller:n=>{const e=n.document,t=n.value,l=n.constraint,g=l&&Xe(l,en);return g?new tn(e,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps}):new Wi(e,{value:t,viewProps:n.viewProps})}},Pt=N("col");class bi{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Pt()),t.foldable.bindExpandedClass(this.element,Pt(void 0,"expanded")),z(t.foldable,"completed",Y(this.element,Pt(void 0,"cpl")));const l=e.createElement("div");l.classList.add(Pt("h")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(Pt("s")),l.appendChild(g),this.swatchElement=g;const k=e.createElement("div");if(k.classList.add(Pt("t")),l.appendChild(k),this.textElement=k,t.pickerLayout==="inline"){const L=e.createElement("div");L.classList.add(Pt("p")),this.element.appendChild(L),this.pickerElement=L}else this.pickerElement=null}}function Hs(n,e,t){const l=ke(n/255,0,1),g=ke(e/255,0,1),k=ke(t/255,0,1),L=Math.max(l,g,k),R=Math.min(l,g,k),W=L-R;let H=0,de=0;const ve=(R+L)/2;return W!==0&&(de=W/(1-Math.abs(L+R-1)),l===L?H=(g-k)/W:g===L?H=2+(k-l)/W:H=4+(l-g)/W,H=H/6+(H<0?1:0)),[H*360,de*100,ve*100]}function er(n,e,t){const l=(n%360+360)%360,g=ke(e/100,0,1),k=ke(t/100,0,1),L=(1-Math.abs(2*k-1))*g,R=L*(1-Math.abs(l/60%2-1)),W=k-L/2;let H,de,ve;return l>=0&&l<60?[H,de,ve]=[L,R,0]:l>=60&&l<120?[H,de,ve]=[R,L,0]:l>=120&&l<180?[H,de,ve]=[0,L,R]:l>=180&&l<240?[H,de,ve]=[0,R,L]:l>=240&&l<300?[H,de,ve]=[R,0,L]:[H,de,ve]=[L,0,R],[(H+W)*255,(de+W)*255,(ve+W)*255]}function tr(n,e,t){const l=ke(n/255,0,1),g=ke(e/255,0,1),k=ke(t/255,0,1),L=Math.max(l,g,k),R=Math.min(l,g,k),W=L-R;let H;W===0?H=0:L===l?H=60*(((g-k)/W%6+6)%6):L===g?H=60*((k-l)/W+2):H=60*((l-g)/W+4);const de=L===0?0:W/L,ve=L;return[H,de*100,ve*100]}function Hi(n,e,t){const l=Ft(n,360),g=ke(e/100,0,1),k=ke(t/100,0,1),L=k*g,R=L*(1-Math.abs(l/60%2-1)),W=k-L;let H,de,ve;return l>=0&&l<60?[H,de,ve]=[L,R,0]:l>=60&&l<120?[H,de,ve]=[R,L,0]:l>=120&&l<180?[H,de,ve]=[0,L,R]:l>=180&&l<240?[H,de,ve]=[0,R,L]:l>=240&&l<300?[H,de,ve]=[R,0,L]:[H,de,ve]=[L,0,R],[(H+W)*255,(de+W)*255,(ve+W)*255]}function d(n,e,t){const l=t+e*(100-Math.abs(2*t-100))/200;return[n,l!==0?e*(100-Math.abs(2*t-100))/l:0,t+e*(100-Math.abs(2*t-100))/(2*100)]}function a(n,e,t){const l=100-Math.abs(t*(200-e)/100-100);return[n,l!==0?e*t/l:0,t*(200-e)/(2*100)]}function p(n){return[n[0],n[1],n[2]]}function b(n,e){return[n[0],n[1],n[2],e]}const C={hsl:{hsl:(n,e,t)=>[n,e,t],hsv:d,rgb:er},hsv:{hsl:a,hsv:(n,e,t)=>[n,e,t],rgb:Hi},rgb:{hsl:Hs,hsv:tr,rgb:(n,e,t)=>[n,e,t]}};function S(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 O(n,e){return n===e?e:Ft(n,e)}function G(n,e,t){var l;const g=S(e,t);return[e==="rgb"?ke(n[0],0,g[0]):O(n[0],g[0]),ke(n[1],0,g[1]),ke(n[2],0,g[2]),ke((l=n[3])!==null&&l!==void 0?l:1,0,1)]}function oe(n,e,t,l){const g=S(e,t),k=S(e,l);return n.map((L,R)=>L/g[R]*k[R])}function Ke(n,e,t){const l=oe(n,e.mode,e.type,"int"),g=C[e.mode][t.mode](...l);return oe(g,t.mode,"int",t.type)}function $e(n,e){return typeof n!="object"||y(n)?!1:e in n&&typeof n[e]=="number"}class ne{static black(e="int"){return new ne([0,0,0],"rgb",e)}static fromObject(e,t="int"){const l="a"in e?[e.r,e.g,e.b,e.a]:[e.r,e.g,e.b];return new ne(l,"rgb",t)}static toRgbaObject(e,t="int"){return e.toRgbaObject(t)}static isRgbColorObject(e){return $e(e,"r")&&$e(e,"g")&&$e(e,"b")}static isRgbaColorObject(e){return this.isRgbColorObject(e)&&$e(e,"a")}static isColorObject(e){return this.isRgbColorObject(e)}static equals(e,t){if(e.mode!==t.mode)return!1;const l=e.comps_,g=t.comps_;for(let k=0;k<l.length;k++)if(l[k]!==g[k])return!1;return!0}constructor(e,t,l="int"){this.mode=t,this.type=l,this.comps_=G(e,t,l)}getComponents(e,t="int"){return b(Ke(p(this.comps_),{mode:this.mode,type:this.type},{mode:e??this.mode,type:t}),this.comps_[3])}toRgbaObject(e="int"){const t=this.getComponents("rgb",e);return{r:t[0],g:t[1],b:t[2],a:t[3]}}}const dt=N("colp");class nr{constructor(e,t){this.alphaViews_=null,this.element=e.createElement("div"),this.element.classList.add(dt()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(dt("hsv"));const g=e.createElement("div");g.classList.add(dt("sv")),this.svPaletteView_=t.svPaletteView,g.appendChild(this.svPaletteView_.element),l.appendChild(g);const k=e.createElement("div");k.classList.add(dt("h")),this.hPaletteView_=t.hPaletteView,k.appendChild(this.hPaletteView_.element),l.appendChild(k),this.element.appendChild(l);const L=e.createElement("div");if(L.classList.add(dt("rgb")),this.textView_=t.textView,L.appendChild(this.textView_.element),this.element.appendChild(L),t.alphaViews){this.alphaViews_={palette:t.alphaViews.palette,text:t.alphaViews.text};const R=e.createElement("div");R.classList.add(dt("a"));const W=e.createElement("div");W.classList.add(dt("ap")),W.appendChild(this.alphaViews_.palette.element),R.appendChild(W);const H=e.createElement("div");H.classList.add(dt("at")),H.appendChild(this.alphaViews_.text.element),R.appendChild(H),this.element.appendChild(R)}}get allFocusableElements(){const e=[this.svPaletteView_.element,this.hPaletteView_.element,this.textView_.modeSelectElement,...this.textView_.textViews.map(t=>t.inputElement)];return this.alphaViews_&&e.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement),e}}function Kc(n){return n==="int"?"int":n==="float"?"float":void 0}function ir(n){const e=V;return ce(n,{alpha:e.optional.boolean,color:e.optional.object({alpha:e.optional.boolean,type:e.optional.custom(Kc)}),expanded:e.optional.boolean,picker:e.optional.custom(fi)})}function hn(n){return n?.1:1}function un(n){var e;return(e=n.color)===null||e===void 0?void 0:e.type}function $c(n,e){return n.alpha===e.alpha&&n.mode===e.mode&&n.notation===e.notation&&n.type===e.type}function nt(n,e){const t=n.match(/^(.+)%$/);return Math.min(t?parseFloat(t[1])*.01*e:parseFloat(n),e)}const Xc={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function no(n){const e=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!e)return parseFloat(n);const t=parseFloat(e[1]),l=e[2];return Xc[l](t)}function io(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=[nt(e[1],255),nt(e[2],255),nt(e[3],255)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function so(n){return e=>{const t=io(e);return t?new ne(t,"rgb",n):null}}function ro(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=[nt(e[1],255),nt(e[2],255),nt(e[3],255),nt(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function oo(n){return e=>{const t=ro(e);return t?new ne(t,"rgb",n):null}}function ao(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=[no(e[1]),nt(e[2],100),nt(e[3],100)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function lo(n){return e=>{const t=ao(e);return t?new ne(t,"hsl",n):null}}function co(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=[no(e[1]),nt(e[2],100),nt(e[3],100),nt(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function po(n){return e=>{const t=co(e);return t?new ne(t,"hsl",n):null}}function ho(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 Yc(n){const e=ho(n);return e?new ne(e,"rgb","int"):null}function uo(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),_e(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),_e(parseInt(t[4],16),0,255,0,1)]:null}function qc(n){const e=uo(n);return e?new ne(e,"rgb","int"):null}function mo(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 fo(n){return e=>{const t=mo(e);return t?new ne(t,"rgb",n):null}}function vo(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 bo(n){return e=>{const t=vo(e);return t?new ne(t,"rgb",n):null}}const Qc=[{parser:ho,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:uo,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:io,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:ro,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:ao,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:co,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:mo,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:vo,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Zc(n){return Qc.reduce((e,{parser:t,result:l})=>e||(t(n)?l:null),null)}function sr(n,e="int"){const t=Zc(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}const go={int:[Yc,qc,so("int"),oo("int"),lo("int"),po("int"),fo("int"),bo("int")],float:[so("float"),oo("float"),lo("float"),po("float"),fo("float"),bo("float")]};function Wc(n){const e=go[n];return t=>{if(typeof t!="string")return ne.black(n);const l=e.reduce((g,k)=>g||k(t),null);return l??ne.black(n)}}function rr(n){const e=go[n];return t=>e.reduce((l,g)=>l||g(t),null)}function _o(n){const e=ke(Math.floor(n),0,255).toString(16);return e.length===1?`0${e}`:e}function wo(n,e="#"){const t=p(n.getComponents("rgb")).map(_o).join("");return`${e}${t}`}function or(n,e="#"){const t=n.getComponents("rgb"),l=[t[0],t[1],t[2],t[3]*255].map(_o).join("");return`${e}${l}`}function yo(n,e){const t=Se(e==="float"?2:0);return`rgb(${p(n.getComponents("rgb",e)).map(g=>t(g)).join(", ")})`}function Jc(n){return e=>yo(e,n)}function es(n,e){const t=Se(2),l=Se(e==="float"?2:0);return`rgba(${n.getComponents("rgb",e).map((k,L)=>(L===3?t:l)(k)).join(", ")})`}function Hc(n){return e=>es(e,n)}function ep(n){const e=[Se(0),sn,sn];return`hsl(${p(n.getComponents("hsl")).map((l,g)=>e[g](l)).join(", ")})`}function tp(n){const e=[Se(0),sn,sn,Se(2)];return`hsla(${n.getComponents("hsl").map((l,g)=>e[g](l)).join(", ")})`}function xo(n,e){const t=Se(e==="float"?2:0),l=["r","g","b"];return`{${p(n.getComponents("rgb",e)).map((k,L)=>`${l[L]}: ${t(k)}`).join(", ")}}`}function np(n){return e=>xo(e,n)}function Co(n,e){const t=Se(2),l=Se(e==="float"?2:0),g=["r","g","b","a"];return`{${n.getComponents("rgb",e).map((L,R)=>{const W=R===3?t:l;return`${g[R]}: ${W(L)}`}).join(", ")}}`}function ip(n){return e=>Co(e,n)}const sp=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:wo},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:or},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:ep},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:tp},...["int","float"].reduce((n,e)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:e},stringifier:Jc(e)},{format:{alpha:!0,mode:"rgb",notation:"func",type:e},stringifier:Hc(e)},{format:{alpha:!1,mode:"rgb",notation:"object",type:e},stringifier:np(e)},{format:{alpha:!0,mode:"rgb",notation:"object",type:e},stringifier:ip(e)}],[])];function ar(n){return sp.reduce((e,t)=>e||($c(t.format,n)?t.stringifier:null),null)}const gi=N("apl");class rp{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(gi()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("div");l.classList.add(gi("b")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(gi("c")),l.appendChild(g),this.colorElem_=g;const k=e.createElement("div");k.classList.add(gi("m")),this.element.appendChild(k),this.markerElem_=k;const L=e.createElement("div");L.classList.add(gi("p")),this.markerElem_.appendChild(L),this.previewElem_=L,this.update_()}update_(){const e=this.value.rawValue,t=e.getComponents("rgb"),l=new ne([t[0],t[1],t[2],0],"rgb"),g=new ne([t[0],t[1],t[2],255],"rgb"),k=["to right",es(l),es(g)];this.colorElem_.style.background=`linear-gradient(${k.join(",")})`,this.previewElem_.style.backgroundColor=es(e);const L=_e(t[3],0,1,0,100);this.markerElem_.style.left=`${L}%`}onValueChange_(){this.update_()}}class op{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 rp(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=e.point.x/e.bounds.width,g=this.value.rawValue,[k,L,R]=g.getComponents("hsv");this.value.setRawValue(new ne([k,L,R,l],"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=De(hn(!0),tt(e));if(t===0)return;const l=this.value.rawValue,[g,k,L,R]=l.getComponents("hsv");this.value.setRawValue(new ne([g,k,L,R+t],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){De(hn(!0),tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Bn=N("coltxt");function ap(n){const e=n.createElement("select"),t=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return e.appendChild(t.reduce((l,g)=>{const k=n.createElement("option");return k.textContent=g.text,k.value=g.value,l.appendChild(k),l},n.createDocumentFragment())),e}class lp{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Bn()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(Bn("m")),this.modeElem_=ap(e),this.modeElem_.classList.add(Bn("ms")),l.appendChild(this.modeSelectElement),t.viewProps.bindDisabled(this.modeElem_);const g=e.createElement("div");g.classList.add(Bn("mm")),g.appendChild(ct(e,"dropdown")),l.appendChild(g),this.element.appendChild(l);const k=e.createElement("div");k.classList.add(Bn("w")),this.element.appendChild(k),this.textsElem_=k,this.textViews_=t.textViews,this.applyTextViews_(),U(t.colorMode,L=>{this.modeElem_.value=L})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(e){this.textViews_=e,this.applyTextViews_()}applyTextViews_(){Yt(this.textsElem_);const e=this.element.ownerDocument;this.textViews_.forEach(t=>{const l=e.createElement("div");l.classList.add(Bn("c")),l.appendChild(t.element),this.textsElem_.appendChild(l)})}}function cp(n){return Se(n==="float"?2:0)}function pp(n,e,t){const l=S(n,e)[t];return new Ot({min:0,max:l})}function lr(n,e,t){return new on(n,{arrayPosition:t===0?"fst":t===3-1?"lst":"mid",baseStep:hn(!1),parser:e.parser,props:q.fromObject({draggingScale:e.colorType==="float"?.01:1,formatter:cp(e.colorType)}),value:te(0,{constraint:pp(e.colorMode,e.colorType,t)}),viewProps:e.viewProps})}class hp{constructor(e,t){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=t.colorType,this.parser_=t.parser,this.value=t.value,this.viewProps=t.viewProps,this.colorMode=te(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(e),this.view=new lp(e,{colorMode:this.colorMode,textViews:[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={colorMode:this.colorMode.rawValue,colorType:this.colorType_,parser:this.parser_,viewProps:this.viewProps},l=[lr(e,t,0),lr(e,t,1),lr(e,t,2)];return l.forEach((g,k)=>{Nt({primary:this.value,secondary:g.value,forward:L=>L.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[k],backward:(L,R)=>{const W=this.colorMode.rawValue,H=L.rawValue.getComponents(W,this.colorType_);return H[k]=R.rawValue,new ne(b(p(H),H[3]),W,this.colorType_)}})}),l}onModeSelectChange_(e){const t=e.currentTarget;this.colorMode.rawValue=t.value,this.ccs_=this.createComponentControllers_(this.view.element.ownerDocument),this.view.textViews=[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view]}}const cr=N("hpl");class up{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(cr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("div");l.classList.add(cr("c")),this.element.appendChild(l);const g=e.createElement("div");g.classList.add(cr("m")),this.element.appendChild(g),this.markerElem_=g,this.update_()}update_(){const e=this.value.rawValue,[t]=e.getComponents("hsv");this.markerElem_.style.backgroundColor=yo(new ne([t,100,100],"hsv"));const l=_e(t,0,360,0,100);this.markerElem_.style.left=`${l}%`}onValueChange_(){this.update_()}}class dp{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 up(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=_e(ke(e.point.x,0,e.bounds.width),0,e.bounds.width,0,360),g=this.value.rawValue,[,k,L,R]=g.getComponents("hsv");this.value.setRawValue(new ne([l,k,L,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=De(hn(!1),tt(e));if(t===0)return;const l=this.value.rawValue,[g,k,L,R]=l.getComponents("hsv");this.value.setRawValue(new ne([g+t,k,L,R],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){De(hn(!1),tt(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const pr=N("svp"),Po=64;class mp{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(pr()),t.viewProps.bindClassModifiers(this.element),t.viewProps.bindTabIndex(this.element);const l=e.createElement("canvas");l.height=Po,l.width=Po,l.classList.add(pr("c")),this.element.appendChild(l),this.canvasElement=l;const g=e.createElement("div");g.classList.add(pr("m")),this.element.appendChild(g),this.markerElem_=g,this.update_()}update_(){const e=yn(this.canvasElement);if(!e)return;const l=this.value.rawValue.getComponents("hsv"),g=this.canvasElement.width,k=this.canvasElement.height,L=e.getImageData(0,0,g,k),R=L.data;for(let de=0;de<k;de++)for(let ve=0;ve<g;ve++){const dn=_e(ve,0,g,0,100),wi=_e(de,0,k,100,0),yi=Hi(l[0],dn,wi),ts=(de*g+ve)*4;R[ts]=yi[0],R[ts+1]=yi[1],R[ts+2]=yi[2],R[ts+3]=255}e.putImageData(L,0,0);const W=_e(l[1],0,100,0,100);this.markerElem_.style.left=`${W}%`;const H=_e(l[2],0,100,100,0);this.markerElem_.style.top=`${H}%`}onValueChange_(){this.update_()}}class fp{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 mp(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=_e(e.point.x,0,e.bounds.width,0,100),g=_e(e.point.y,0,e.bounds.height,100,0),[k,,,L]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new ne([k,l,g,L],"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){In(e.key)&&e.preventDefault();const[t,l,g,k]=this.value.rawValue.getComponents("hsv"),L=hn(!1),R=De(L,tt(e)),W=De(L,rn(e));R===0&&W===0||this.value.setRawValue(new ne([t,l+R,g+W,k],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){const t=hn(!1),l=De(t,tt(e)),g=De(t,rn(e));l===0&&g===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class vp{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.hPaletteC_=new dp(e,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new fp(e,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=t.supportsAlpha?{palette:new op(e,{value:this.value,viewProps:this.viewProps}),text:new on(e,{parser:et,baseStep:.1,props:q.fromObject({draggingScale:.01,formatter:Se(2)}),value:te(0,{constraint:new Ot({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&Nt({primary:this.value,secondary:this.alphaIcs_.text.value,forward:l=>l.rawValue.getComponents()[3],backward:(l,g)=>{const k=l.rawValue.getComponents();return k[3]=g.rawValue,new ne(k,l.rawValue.mode)}}),this.textC_=new hp(e,{colorType:t.colorType,parser:et,value:this.value,viewProps:this.viewProps}),this.view=new nr(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,textView:this.textC_.view,viewProps:this.viewProps})}get textController(){return this.textC_}}const hr=N("colsw");class bp{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(hr()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(hr("sw")),this.element.appendChild(l),this.swatchElem_=l;const g=e.createElement("button");g.classList.add(hr("b")),t.viewProps.bindDisabled(g),this.element.appendChild(g),this.buttonElement=g,this.update_()}update_(){const e=this.value.rawValue;this.swatchElem_.style.backgroundColor=or(e)}onValueChange_(){this.update_()}}class gp{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new bp(e,{value:this.value,viewProps:this.viewProps})}}class ur{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_=Ve.create(t.expanded),this.swatchC_=new gp(e,{value:this.value,viewProps:this.viewProps});const l=this.swatchC_.view.buttonElement;l.addEventListener("blur",this.onButtonBlur_),l.addEventListener("click",this.onButtonClick_),this.textC_=new Vn(e,{parser:t.parser,props:q.fromObject({formatter:t.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new bi(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 Ni(e,{viewProps:this.viewProps}):null;const g=new vp(e,{colorType:t.colorType,supportsAlpha:t.supportsAlpha,value:this.value,viewProps:this.viewProps});g.view.allFocusableElements.forEach(k=>{k.addEventListener("blur",this.onPopupChildBlur_),k.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=g,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(g.view.element),Nt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:k=>k.rawValue,backward:(k,L)=>L.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Be(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,l=e.relatedTarget;(!l||!t.contains(l))&&(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,l=pt(e);l&&t.contains(l)||l&&l===this.swatchC_.view.buttonElement&&!rt(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 _p(n,e){return ne.isColorObject(n)?ne.fromObject(n,e):ne.black(e)}function wp(n){return p(n.getComponents("rgb")).reduce((e,t)=>e<<8|Math.floor(t)&255,0)}function yp(n){return n.getComponents("rgb").reduce((e,t,l)=>{const g=Math.floor(l===3?t*255:t)&255;return e<<8|g},0)>>>0}function xp(n){return new ne([n>>16&255,n>>8&255,n&255],"rgb")}function Cp(n){return new ne([n>>24&255,n>>16&255,n>>8&255,_e(n&255,0,255,0,1)],"rgb")}function Pp(n){return typeof n!="number"?ne.black():xp(n)}function kp(n){return typeof n!="number"?ne.black():Cp(n)}function Mp(n){const e=ar(n);return e?(t,l)=>{Ye(t,e(l))}:null}function Ap(n){const e=n?yp:wp;return(t,l)=>{Ye(t,e(l))}}function Sp(n,e,t){const l=e.toRgbaObject(t);n.writeProperty("r",l.r),n.writeProperty("g",l.g),n.writeProperty("b",l.b),n.writeProperty("a",l.a)}function Lp(n,e,t){const l=e.toRgbaObject(t);n.writeProperty("r",l.r),n.writeProperty("g",l.g),n.writeProperty("b",l.b)}function Vp(n,e){return(t,l)=>{n?Sp(t,l,e):Lp(t,l,e)}}function dr(n){var e;return!!(n!=null&&n.alpha||!((e=n==null?void 0:n.color)===null||e===void 0)&&e.alpha)}function Dp(n){return n?e=>or(e,"0x"):e=>wo(e,"0x")}function Ip(n){return"color"in n||"view"in n&&n.view==="color"}const Ep={id:"input-color-number",type:"input",accept:(n,e)=>{if(typeof n!="number"||!Ip(e))return null;const t=ir(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>dr(n.params)?kp:Pp,equals:ne.equals,writer:n=>Ap(dr(n.params))},controller:n=>{const e=dr(n.params),t="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0;return new ur(n.document,{colorType:"int",expanded:t??!1,formatter:Dp(e),parser:rr("int"),pickerLayout:l??"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}};function Tp(n){return ne.isRgbaColorObject(n)}function Op(n){return e=>_p(e,n)}function Bp(n,e){return t=>n?Co(t,e):xo(t,e)}const Np={id:"input-color-object",type:"input",accept:(n,e)=>{if(!ne.isColorObject(n))return null;const t=ir(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>Op(un(n.params)),equals:ne.equals,writer:n=>Vp(Tp(n.initialValue),un(n.params))},controller:n=>{var e;const t=ne.isRgbaColorObject(n.initialValue),l="expanded"in n.params?n.params.expanded:void 0,g="picker"in n.params?n.params.picker:void 0,k=(e=un(n.params))!==null&&e!==void 0?e:"int";return new ur(n.document,{colorType:k,expanded:l??!1,formatter:Bp(t,k),parser:rr(k),pickerLayout:g??"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}},Fp={id:"input-color-string",type:"input",accept:(n,e)=>{if(typeof n!="string"||"view"in e&&e.view==="text")return null;const t=sr(n,un(e));if(!t||!ar(t))return null;const g=ir(e);return g?{initialValue:n,params:g}:null},binding:{reader:n=>{var e;return Wc((e=un(n.params))!==null&&e!==void 0?e:"int")},equals:ne.equals,writer:n=>{const e=sr(n.initialValue,un(n.params));if(!e)throw I.shouldNeverHappen();const t=Mp(e);if(!t)throw I.notBindable();return t}},controller:n=>{const e=sr(n.initialValue,un(n.params));if(!e)throw I.shouldNeverHappen();const t=ar(e);if(!t)throw I.shouldNeverHappen();const l="expanded"in n.params?n.params.expanded:void 0,g="picker"in n.params?n.params.picker:void 0;return new ur(n.document,{colorType:e.type,expanded:l??!1,formatter:t,parser:rr(e.type),pickerLayout:g??"popup",supportsAlpha:e.alpha,value:n.value,viewProps:n.viewProps})}};class jt{constructor(e){this.components=e.components,this.asm_=e.assembly}constrain(e){const t=this.asm_.toComponents(e).map((l,g)=>{var k,L;return(L=(k=this.components[g])===null||k===void 0?void 0:k.constrain(l))!==null&&L!==void 0?L:l});return this.asm_.fromComponents(t)}}const ko=N("pndtxt");class jp{constructor(e,t){this.textViews=t.textViews,this.element=e.createElement("div"),this.element.classList.add(ko()),this.textViews.forEach(l=>{const g=e.createElement("div");g.classList.add(ko("a")),g.appendChild(l.element),this.element.appendChild(g)})}}function zp(n,e,t){return new on(n,{arrayPosition:t===0?"fst":t===e.axes.length-1?"lst":"mid",baseStep:e.axes[t].baseStep,parser:e.parser,props:e.axes[t].textProps,value:te(0,{constraint:e.axes[t].constraint}),viewProps:e.viewProps})}class mr{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.acs_=t.axes.map((l,g)=>zp(e,t,g)),this.acs_.forEach((l,g)=>{Nt({primary:this.value,secondary:l.value,forward:k=>t.assembly.toComponents(k.rawValue)[g],backward:(k,L)=>{const R=t.assembly.toComponents(k.rawValue);return R[g]=L.rawValue,t.assembly.fromComponents(R)}})}),this.view=new jp(e,{textViews:this.acs_.map(l=>l.view)})}}function Mo(n,e){return"step"in n&&!y(n.step)?new Ln(n.step,e):null}function Ao(n){return!y(n.max)&&!y(n.min)?new Ot({max:n.max,min:n.min}):!y(n.max)||!y(n.min)?new ni({max:n.max,min:n.min}):null}function Up(n){const e=Xe(n,Ot);if(e)return[e.values.get("min"),e.values.get("max")];const t=Xe(n,ni);return t?[t.minValue,t.maxValue]:[void 0,void 0]}function Rp(n,e){const t=[],l=Mo(n,e);l&&t.push(l);const g=Ao(n);g&&t.push(g);const k=vi(n.options);return k&&t.push(k),new Ht(t)}const Gp={id:"input-number",type:"input",accept:(n,e)=>{if(typeof n!="number")return null;const t=V,l=ce(e,{format:t.optional.function,max:t.optional.number,min:t.optional.number,options:t.optional.custom(ln),step:t.optional.number});return l?{initialValue:n,params:l}:null},binding:{reader:n=>at,constraint:n=>Rp(n.params,n.initialValue),writer:n=>Ye},controller:n=>{var e;const t=n.value,l=n.constraint,g=l&&Xe(l,en);if(g)return new tn(n.document,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps});const k=(e="format"in n.params?n.params.format:void 0)!==null&&e!==void 0?e:Se(Tn(l,t.rawValue)),L=l&&Xe(l,Ot);return L?new En(n.document,{baseStep:xt(l),parser:et,sliderProps:new q({maxValue:L.values.value("max"),minValue:L.values.value("min")}),textProps:q.fromObject({draggingScale:Ct(l,t.rawValue),formatter:k}),value:t,viewProps:n.viewProps}):new on(n.document,{baseStep:xt(l),parser:et,props:q.fromObject({draggingScale:Ct(l,t.rawValue),formatter:k}),value:t,viewProps:n.viewProps})}};class zt{constructor(e=0,t=0){this.x=e,this.y=t}getComponents(){return[this.x,this.y]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y;return!(typeof t!="number"||typeof l!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y}toObject(){return{x:this.x,y:this.y}}}const So={toComponents:n=>n.getComponents(),fromComponents:n=>new zt(...n)},Nn=N("p2d");class Kp{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Nn()),t.viewProps.bindClassModifiers(this.element),U(t.expanded,Y(this.element,Nn(void 0,"expanded")));const l=e.createElement("div");l.classList.add(Nn("h")),this.element.appendChild(l);const g=e.createElement("button");g.classList.add(Nn("b")),g.appendChild(ct(e,"p2dpad")),t.viewProps.bindDisabled(g),l.appendChild(g),this.buttonElement=g;const k=e.createElement("div");if(k.classList.add(Nn("t")),l.appendChild(k),this.textElement=k,t.pickerLayout==="inline"){const L=e.createElement("div");L.classList.add(Nn("p")),this.element.appendChild(L),this.pickerElement=L}else this.pickerElement=null}}const Ut=N("p2dp");class $p{constructor(e,t){this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.invertsY_=t.invertsY,this.maxValue_=t.maxValue,this.element=e.createElement("div"),this.element.classList.add(Ut()),t.layout==="popup"&&this.element.classList.add(Ut(void 0,"p")),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("div");l.classList.add(Ut("p")),t.viewProps.bindTabIndex(l),this.element.appendChild(l),this.padElement=l;const g=e.createElementNS(Oe,"svg");g.classList.add(Ut("g")),this.padElement.appendChild(g),this.svgElem_=g;const k=e.createElementNS(Oe,"line");k.classList.add(Ut("ax")),k.setAttributeNS(null,"x1","0"),k.setAttributeNS(null,"y1","50%"),k.setAttributeNS(null,"x2","100%"),k.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(k);const L=e.createElementNS(Oe,"line");L.classList.add(Ut("ax")),L.setAttributeNS(null,"x1","50%"),L.setAttributeNS(null,"y1","0"),L.setAttributeNS(null,"x2","50%"),L.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(L);const R=e.createElementNS(Oe,"line");R.classList.add(Ut("l")),R.setAttributeNS(null,"x1","50%"),R.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(R),this.lineElem_=R;const W=e.createElement("div");W.classList.add(Ut("m")),this.padElement.appendChild(W),this.markerElem_=W,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(),l=this.maxValue_,g=_e(e,-l,+l,0,100),k=_e(t,-l,+l,0,100),L=this.invertsY_?100-k:k;this.lineElem_.setAttributeNS(null,"x2",`${g}%`),this.lineElem_.setAttributeNS(null,"y2",`${L}%`),this.markerElem_.style.left=`${g}%`,this.markerElem_.style.top=`${L}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Lo(n,e,t){return[De(e[0],tt(n)),De(e[1],rn(n))*(t?1:-1)]}class Xp{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.value=t.value,this.viewProps=t.viewProps,this.baseSteps_=t.baseSteps,this.maxValue_=t.maxValue,this.invertsY_=t.invertsY,this.view=new $p(e,{invertsY:this.invertsY_,layout:t.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new yt(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 l=this.maxValue_,g=_e(e.point.x,0,e.bounds.width,-l,+l),k=_e(this.invertsY_?e.bounds.height-e.point.y:e.point.y,0,e.bounds.height,-l,+l);this.value.setRawValue(new zt(g,k),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){In(e.key)&&e.preventDefault();const[t,l]=Lo(e,this.baseSteps_,this.invertsY_);t===0&&l===0||this.value.setRawValue(new zt(this.value.rawValue.x+t,this.value.rawValue.y+l),{forceEmit:!1,last:!1})}onPadKeyUp_(e){const[t,l]=Lo(e,this.baseSteps_,this.invertsY_);t===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Yp{constructor(e,t){var l,g;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_=Ve.create(t.expanded),this.popC_=t.pickerLayout==="popup"?new Ni(e,{viewProps:this.viewProps}):null;const k=new Xp(e,{baseSteps:[t.axes[0].baseStep,t.axes[1].baseStep],invertsY:t.invertsY,layout:t.pickerLayout,maxValue:t.maxValue,value:this.value,viewProps:this.viewProps});k.view.allFocusableElements.forEach(L=>{L.addEventListener("blur",this.onPopupChildBlur_),L.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=k,this.textC_=new mr(e,{assembly:So,axes:t.axes,parser:t.parser,value:this.value,viewProps:this.viewProps}),this.view=new Kp(e,{expanded:this.foldable_.value("expanded"),pickerLayout:t.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(l=this.view.buttonElement)===null||l===void 0||l.addEventListener("blur",this.onPadButtonBlur_),(g=this.view.buttonElement)===null||g===void 0||g.addEventListener("click",this.onPadButtonClick_),this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),Nt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:L=>L.rawValue,backward:(L,R)=>R.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Be(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,l=e.relatedTarget;(!l||!t.contains(l))&&(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,l=pt(e);l&&t.contains(l)||l&&l===this.view.buttonElement&&!rt(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()}}class Fn{constructor(e=0,t=0,l=0){this.x=e,this.y=t,this.z=l}getComponents(){return[this.x,this.y,this.z]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y,g=e.z;return!(typeof t!="number"||typeof l!="number"||typeof g!="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 Vo={toComponents:n=>n.getComponents(),fromComponents:n=>new Fn(...n)};function qp(n){return Fn.isObject(n)?new Fn(n.x,n.y,n.z):new Fn}function Qp(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z)}function Zp(n,e){return new jt({assembly:Vo,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y),kt("z"in n?n.z:void 0,e.z)]})}function fr(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}const Wp={id:"input-point3d",type:"input",accept:(n,e)=>{if(!Fn.isObject(n))return null;const t=V,l=ce(e,{x:t.optional.custom(lt),y:t.optional.custom(lt),z:t.optional.custom(lt)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>qp,constraint:n=>Zp(n.params,n.initialValue),equals:Fn.equals,writer:n=>Qp},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof jt))throw I.shouldNeverHappen();return new mr(n.document,{assembly:Vo,axes:[fr(e.rawValue.x,t.components[0]),fr(e.rawValue.y,t.components[1]),fr(e.rawValue.z,t.components[2])],parser:et,value:e,viewProps:n.viewProps})}};class jn{constructor(e=0,t=0,l=0,g=0){this.x=e,this.y=t,this.z=l,this.w=g}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(e){if(y(e))return!1;const t=e.x,l=e.y,g=e.z,k=e.w;return!(typeof t!="number"||typeof l!="number"||typeof g!="number"||typeof k!="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 Do={toComponents:n=>n.getComponents(),fromComponents:n=>new jn(...n)};function Jp(n){return jn.isObject(n)?new jn(n.x,n.y,n.z,n.w):new jn}function Hp(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z),n.writeProperty("w",e.w)}function eh(n,e){return new jt({assembly:Do,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y),kt("z"in n?n.z:void 0,e.z),kt("w"in n?n.w:void 0,e.w)]})}function th(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}const nh={id:"input-point4d",type:"input",accept:(n,e)=>{if(!jn.isObject(n))return null;const t=V,l=ce(e,{x:t.optional.custom(lt),y:t.optional.custom(lt),z:t.optional.custom(lt),w:t.optional.custom(lt)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>Jp,constraint:n=>eh(n.params,n.initialValue),equals:jn.equals,writer:n=>Hp},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof jt))throw I.shouldNeverHappen();return new mr(n.document,{assembly:Do,axes:e.rawValue.getComponents().map((l,g)=>th(l,t.components[g])),parser:et,value:e,viewProps:n.viewProps})}};function ih(n){const e=[],t=vi(n.options);return t&&e.push(t),new Ht(e)}const sh={id:"input-string",type:"input",accept:(n,e)=>{if(typeof n!="string")return null;const l=ce(e,{options:V.optional.custom(ln)});return l?{initialValue:n,params:l}:null},binding:{reader:n=>li,constraint:n=>ih(n.params),writer:n=>Ye},controller:n=>{const e=n.document,t=n.value,l=n.constraint,g=l&&Xe(l,en);return g?new tn(e,{props:new q({options:g.values.value("options")}),value:t,viewProps:n.viewProps}):new Vn(e,{parser:k=>k,props:q.fromObject({formatter:ut}),value:t,viewProps:n.viewProps})}},_i={monitor:{defaultInterval:200,defaultLineCount:3}},Io=N("mll");class rh{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Io()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("textarea");l.classList.add(Io("i")),l.style.height=`calc(var(--bld-us) * ${t.lineCount})`,l.readOnly=!0,t.viewProps.bindDisabled(l),this.element.appendChild(l),this.textareaElem_=l,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,l=[];this.value.rawValue.forEach(g=>{g!==void 0&&l.push(this.formatter_(g))}),e.textContent=l.join(`
|
|
25
|
+
`),t&&(e.scrollTop=e.scrollHeight)}onValueUpdate_(){this.update_()}}class vr{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new rh(e,{formatter:t.formatter,lineCount:t.lineCount,value:this.value,viewProps:this.viewProps})}}const Eo=N("sgl");class oh{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Eo()),t.viewProps.bindClassModifiers(this.element);const l=e.createElement("input");l.classList.add(Eo("i")),l.readOnly=!0,l.type="text",t.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,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 br{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new oh(e,{formatter:t.formatter,value:this.value,viewProps:this.viewProps})}}const ah={id:"monitor-bool",type:"monitor",accept:(n,e)=>{if(typeof n!="boolean")return null;const l=ce(e,{lineCount:V.optional.number});return l?{initialValue:n,params:l}:null},binding:{reader:n=>ji},controller:n=>{var e;return n.value.rawValue.length===1?new br(n.document,{formatter:zi,value:n.value,viewProps:n.viewProps}):new vr(n.document,{formatter:zi,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},Rt=N("grl");class lh{constructor(e,t){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Rt()),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 l=e.createElementNS(Oe,"svg");l.classList.add(Rt("g")),l.style.height=`calc(var(--bld-us) * ${t.lineCount})`,this.element.appendChild(l),this.svgElem_=l;const g=e.createElementNS(Oe,"polyline");this.svgElem_.appendChild(g),this.lineElem_=g;const k=e.createElement("div");k.classList.add(Rt("t"),N("tt")()),this.element.appendChild(k),this.tooltipElem_=k,t.value.emitter.on("change",this.onValueUpdate_),this.value=t.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const e=this.svgElem_.getBoundingClientRect(),t=this.value.rawValue.length-1,l=this.props_.get("minValue"),g=this.props_.get("maxValue"),k=[];this.value.rawValue.forEach((de,ve)=>{if(de===void 0)return;const dn=_e(ve,0,t,0,e.width),wi=_e(de,l,g,e.height,0);k.push([dn,wi].join(","))}),this.lineElem_.setAttributeNS(null,"points",k.join(" "));const L=this.tooltipElem_,R=this.value.rawValue[this.cursor_.rawValue];if(R===void 0){L.classList.remove(Rt("t","a"));return}const W=_e(this.cursor_.rawValue,0,t,0,e.width),H=_e(R,l,g,e.height,0);L.style.left=`${W}px`,L.style.top=`${H}px`,L.textContent=`${this.formatter_(R)}`,L.classList.contains(Rt("t","a"))||(L.classList.add(Rt("t","a"),Rt("t","in")),We(L),L.classList.remove(Rt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ch{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_=te(-1),this.view=new lh(e,{cursor:this.cursor_,formatter:t.formatter,lineCount:t.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!rt(e))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const l=new yt(this.view.element);l.emitter.on("down",this.onGraphPointerDown_),l.emitter.on("move",this.onGraphPointerMove_),l.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(e){const t=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(_e(e.offsetX,0,t.width,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(_e(e.data.point.x,0,e.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function gr(n){return"format"in n&&!y(n.format)?n.format:Se(2)}function ph(n){var e;return n.value.rawValue.length===1?new br(n.document,{formatter:gr(n.params),value:n.value,viewProps:n.viewProps}):new vr(n.document,{formatter:gr(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function hh(n){var e,t,l;return new ch(n.document,{formatter:gr(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,props:q.fromObject({maxValue:(t="max"in n.params?n.params.max:null)!==null&&t!==void 0?t:100,minValue:(l="min"in n.params?n.params.min:null)!==null&&l!==void 0?l:0}),value:n.value,viewProps:n.viewProps})}function To(n){return"view"in n&&n.view==="graph"}const uh={id:"monitor-number",type:"monitor",accept:(n,e)=>{if(typeof n!="number")return null;const t=V,l=ce(e,{format:t.optional.function,lineCount:t.optional.number,max:t.optional.number,min:t.optional.number,view:t.optional.string});return l?{initialValue:n,params:l}:null},binding:{defaultBufferSize:n=>To(n)?64:1,reader:n=>at},controller:n=>To(n.params)?hh(n):ph(n)},dh={id:"monitor-string",type:"monitor",accept:(n,e)=>{if(typeof n!="string")return null;const t=V,l=ce(e,{lineCount:t.optional.number,multiline:t.optional.boolean});return l?{initialValue:n,params:l}:null},binding:{reader:n=>li},controller:n=>{var e;const t=n.value;return t.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new vr(n.document,{formatter:ut,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:_i.monitor.defaultLineCount,value:t,viewProps:n.viewProps}):new br(n.document,{formatter:ut,value:t,viewProps:n.viewProps})}};function mh(n,e){var t;const l=n.accept(e.target.read(),e.params);if(y(l))return null;const g=V,k={target:e.target,initialValue:l.initialValue,params:l.params},L=n.binding.reader(k),R=n.binding.constraint?n.binding.constraint(k):void 0,W=te(L(l.initialValue),{constraint:R,equals:n.binding.equals}),H=new Sn({reader:L,target:e.target,value:W,writer:n.binding.writer(k)}),de=g.optional.boolean(e.params.disabled).value,ve=g.optional.boolean(e.params.hidden).value,dn=n.controller({constraint:R,document:e.document,initialValue:l.initialValue,params:l.params,value:H.value,viewProps:Ue.create({disabled:de,hidden:ve})});return new Te(e.document,{binding:H,blade:ye(),props:q.fromObject({label:"label"in e.params?(t=g.optional.string(e.params.label).value)!==null&&t!==void 0?t:null:e.target.key}),valueController:dn})}function fh(n,e){return e===0?new Ei:new ti(n,e??_i.monitor.defaultInterval)}function vh(n,e){var t,l,g;const k=V,L=n.accept(e.target.read(),e.params);if(y(L))return null;const R={target:e.target,initialValue:L.initialValue,params:L.params},W=n.binding.reader(R),H=(l=(t=k.optional.number(e.params.bufferSize).value)!==null&&t!==void 0?t:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(L.params))!==null&&l!==void 0?l:1,de=k.optional.number(e.params.interval).value,ve=new Es({reader:W,target:e.target,ticker:fh(e.document,de),value:Ti(H)}),dn=k.optional.boolean(e.params.disabled).value,wi=k.optional.boolean(e.params.hidden).value,yi=n.controller({document:e.document,params:L.params,value:ve.value,viewProps:Ue.create({disabled:dn,hidden:wi})});return new Je(e.document,{binding:ve,blade:ye(),props:q.fromObject({label:"label"in e.params?(g=k.optional.string(e.params.label).value)!==null&&g!==void 0?g:null:e.target.key}),valueController:yi})}class bh{constructor(){this.pluginsMap_={blades:[],inputs:[],monitors:[]}}getAll(){return[...this.pluginsMap_.blades,...this.pluginsMap_.inputs,...this.pluginsMap_.monitors]}register(e){e.type==="blade"?this.pluginsMap_.blades.unshift(e):e.type==="input"?this.pluginsMap_.inputs.unshift(e):e.type==="monitor"&&this.pluginsMap_.monitors.unshift(e)}createInput(e,t,l){const g=t.read();if(y(g))throw new I({context:{key:t.key},type:"nomatchingcontroller"});const k=this.pluginsMap_.inputs.reduce((L,R)=>L??mh(R,{document:e,target:t,params:l}),null);if(k)return k;throw new I({context:{key:t.key},type:"nomatchingcontroller"})}createMonitor(e,t,l){const g=this.pluginsMap_.monitors.reduce((k,L)=>k??vh(L,{document:e,params:l,target:t}),null);if(g)return g;throw new I({context:{key:t.key},type:"nomatchingcontroller"})}createBlade(e,t){const l=this.pluginsMap_.blades.reduce((g,k)=>g??Is(k,{document:e,params:t}),null);if(!l)throw new I({type:"nomatchingview",context:{params:t}});return l}createBladeApi(e){if(e instanceof Te)return new Yn(e);if(e instanceof Je)return new qn(e);if(e instanceof Zt)return new kn(e,this);const t=this.pluginsMap_.blades.reduce((l,g)=>l??g.api({controller:e,pool:this}),null);if(!t)throw I.shouldNeverHappen();return t}}function gh(){const n=new bh;return[Ph,Wp,nh,sh,Gp,Fp,Np,Ep,On,ah,dh,uh,J,As,Ls,ei].forEach(e=>{n.register(e)}),n}function _h(n){return zt.isObject(n)?new zt(n.x,n.y):new zt}function wh(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y)}function kt(n,e){if(!n)return;const t=[],l=Mo(n,e);l&&t.push(l);const g=Ao(n);return g&&t.push(g),new Ht(t)}function yh(n,e){return new jt({assembly:So,components:[kt("x"in n?n.x:void 0,e.x),kt("y"in n?n.y:void 0,e.y)]})}function Oo(n,e){const[t,l]=n?Up(n):[];if(!y(t)||!y(l))return Math.max(Math.abs(t??0),Math.abs(l??0));const g=xt(n);return Math.max(Math.abs(g)*10,Math.abs(e)*10)}function xh(n,e){const t=e instanceof jt?e.components[0]:void 0,l=e instanceof jt?e.components[1]:void 0,g=Oo(t,n.x),k=Oo(l,n.y);return Math.max(g,k)}function Bo(n,e){return{baseStep:xt(e),constraint:e,textProps:q.fromObject({draggingScale:Ct(e,n),formatter:Se(Tn(e,n))})}}function Ch(n){if(!("y"in n))return!1;const e=n.y;return e&&"inverted"in e?!!e.inverted:!1}const Ph={id:"input-point2d",type:"input",accept:(n,e)=>{if(!zt.isObject(n))return null;const t=V,l=ce(e,{expanded:t.optional.boolean,picker:t.optional.custom(fi),x:t.optional.custom(lt),y:t.optional.object({inverted:t.optional.boolean,max:t.optional.number,min:t.optional.number,step:t.optional.number})});return l?{initialValue:n,params:l}:null},binding:{reader:n=>_h,constraint:n=>yh(n.params,n.initialValue),equals:zt.equals,writer:n=>wh},controller:n=>{const e=n.document,t=n.value,l=n.constraint;if(!(l instanceof jt))throw I.shouldNeverHappen();const g="expanded"in n.params?n.params.expanded:void 0,k="picker"in n.params?n.params.picker:void 0;return new Yp(e,{axes:[Bo(t.rawValue.x,l.components[0]),Bo(t.rawValue.y,l.components[1])],expanded:g??!1,invertsY:Ch(n.params),maxValue:xh(t.rawValue,l),parser:et,pickerLayout:k??"popup",value:t,viewProps:n.viewProps})}};class No extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get options(){return this.controller_.valueController.props.get("options")}set options(e){this.controller_.valueController.props.set("options",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class Fo extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get maxValue(){return this.controller_.valueController.sliderController.props.get("maxValue")}set maxValue(e){this.controller_.valueController.sliderController.props.set("maxValue",e)}get minValue(){return this.controller_.valueController.sliderController.props.get("minValue")}set minValue(e){this.controller_.valueController.sliderController.props.set("minValue",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}class jo extends o{constructor(e){super(e),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",t=>{this.emitter_.emit("change",{event:new h(this,t.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(e){this.controller_.props.set("label",e)}get formatter(){return this.controller_.valueController.props.get("formatter")}set formatter(e){this.controller_.valueController.props.set("formatter",e)}get value(){return this.controller_.valueController.value.rawValue}set value(e){this.controller_.valueController.value.rawValue=e}on(e,t){const l=t.bind(this);return this.emitter_.on(e,g=>{l(g.event)}),this}}const kh=function(){return{id:"list",type:"blade",accept(n){const e=V,t=ce(n,{options:e.required.custom(ln),value:e.required.raw,view:e.required.constant("list"),label:e.optional.string});return t?{params:t}:null},controller(n){const e=new en(Zi(n.params.options)),t=te(n.params.value,{constraint:e}),l=new tn(n.document,{props:new q({options:e.values.value("options")}),value:t,viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:l})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof tn)?null:new No(n.controller)}}}();function Mh(n){return n.reduce((e,t)=>Object.assign(e,{[t.presetKey]:t.read()}),{})}function Ah(n,e){n.forEach(t=>{const l=e[t.target.presetKey];l!==void 0&&t.writer(t.target,t.reader(l))})}class Sh extends Qn{constructor(e,t){super(e,t)}get element(){return this.controller_.view.element}importPreset(e){const t=this.controller_.rackController.rack.find(Te).map(l=>l.binding);Ah(t,e),this.refresh()}exportPreset(){const e=this.controller_.rackController.rack.find(Te).map(t=>t.binding.target);return Mh(e)}refresh(){this.controller_.rackController.rack.find(Te).forEach(e=>{e.binding.read()}),this.controller_.rackController.rack.find(Je).forEach(e=>{e.binding.read()})}}class Lh extends Mn{constructor(e,t){super(e,{expanded:t.expanded,blade:t.blade,props:t.props,root:!0,viewProps:t.viewProps})}}const Vh={id:"slider",type:"blade",accept(n){const e=V,t=ce(n,{max:e.required.number,min:e.required.number,view:e.required.constant("slider"),format:e.optional.function,label:e.optional.string,value:e.optional.number});return t?{params:t}:null},controller(n){var e,t;const l=(e=n.params.value)!==null&&e!==void 0?e:0,g=new Ot({max:n.params.max,min:n.params.min}),k=new En(n.document,{baseStep:1,parser:et,sliderProps:new q({maxValue:g.values.value("max"),minValue:g.values.value("min")}),textProps:q.fromObject({draggingScale:Ct(void 0,l),formatter:(t=n.params.format)!==null&&t!==void 0?t:Ws}),value:te(l,{constraint:g}),viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:k})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof En)?null:new Fo(n.controller)}},Dh=function(){return{id:"text",type:"blade",accept(n){const e=V,t=ce(n,{parse:e.required.function,value:e.required.raw,view:e.required.constant("text"),format:e.optional.function,label:e.optional.string});return t?{params:t}:null},controller(n){var e;const t=new Vn(n.document,{parser:n.params.parse,props:q.fromObject({formatter:(e=n.params.format)!==null&&e!==void 0?e:l=>String(l)}),value:te(n.params.value),viewProps:n.viewProps});return new Dt(n.document,{blade:n.blade,props:q.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof Dt)||!(n.controller.valueController instanceof Vn)?null:new jo(n.controller)}}}();function Ih(n){const e=n.createElement("div");return e.classList.add(N("dfw")()),n.body&&n.body.appendChild(e),e}function zo(n,e,t){if(n.querySelector(`style[data-tp-style=${e}]`))return;const l=n.createElement("style");l.dataset.tpStyle=e,l.textContent=t,n.head.appendChild(l)}class Eh extends Sh{constructor(e){var t,l;const g=e??{},k=(t=g.document)!==null&&t!==void 0?t:$n(),L=gh(),R=new Lh(k,{expanded:g.expanded,blade:ye(),props:q.fromObject({title:g.title}),viewProps:Ue.create()});super(R,L),this.pool_=L,this.containerElem_=(l=g.container)!==null&&l!==void 0?l:Ih(k),this.containerElem_.appendChild(this.element),this.doc_=k,this.usesDefaultWrapper_=!g.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw I.alreadyDisposed();return this.doc_}dispose(){const e=this.containerElem_;if(!e)throw I.alreadyDisposed();if(this.usesDefaultWrapper_){const t=e.parentElement;t&&t.removeChild(e)}this.containerElem_=null,this.doc_=null,super.dispose()}registerPlugin(e){("plugin"in e?[e.plugin]:"plugins"in e?e.plugins:[]).forEach(l=>{this.pool_.register(l),this.embedPluginStyle_(l)})}embedPluginStyle_(e){e.css&&zo(this.document,`plugin-${e.id}`,e.css)}setUpDefaultPlugins_(){zo(this.document,"default",'.tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:"";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-expanded.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:"";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:"";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:"";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:"";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:"";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}'),this.pool_.getAll().forEach(e=>{this.embedPluginStyle_(e)}),this.registerPlugin({plugins:[Vh,kh,ei,Dh]})}}const Th=new s("3.1.9");r.BladeApi=o,r.ButtonApi=F,r.FolderApi=Qn,r.InputBindingApi=Yn,r.ListApi=No,r.MonitorBindingApi=qn,r.Pane=Eh,r.SeparatorApi=Li,r.SliderApi=Fo,r.TabApi=Di,r.TabPageApi=Hn,r.TextApi=jo,r.TpChangeEvent=h,r.VERSION=Th,Object.defineProperty(r,"__esModule",{value:!0})})})(fs,fs.exports);var Uc=fs.exports,vs={exports:{}};(function(v,i){(function(r,s){s(i)})(Yr,function(r){class s{constructor(a){this.controller_=a}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(a){this.controller_.viewProps.set("hidden",a)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class o{constructor(a){this.target=a}}class c extends o{constructor(a,p,b,C){super(a),this.value=p,this.presetKey=b,this.last=C??!0}}function h(d){return d}function u(d){return d==null}const m={alreadydisposed:()=>"View has been already disposed",invalidparams:d=>`Invalid parameters for '${d.name}'`,nomatchingcontroller:d=>`No matching controller for '${d.key}'`,nomatchingview:d=>`No matching view for '${JSON.stringify(d.params)}'`,notbindable:()=>"Value is not bindable",propertynotfound:d=>`Property '${d.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class _{constructor(a){var p;this.message=(p=m[a.type](a.context))!==null&&p!==void 0?p:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=a.type}static alreadyDisposed(){return new _({type:"alreadydisposed"})}static notBindable(){return new _({type:"notbindable"})}static propertyNotFound(a){return new _({type:"propertynotfound",context:{name:a}})}static shouldNeverHappen(){return new _({type:"shouldneverhappen"})}}class w{constructor(){this.observers_={}}on(a,p){let b=this.observers_[a];return b||(b=this.observers_[a]=[]),b.push({handler:p}),this}off(a,p){const b=this.observers_[a];return b&&(this.observers_[a]=b.filter(C=>C.handler!==p)),this}emit(a,p){const b=this.observers_[a];b&&b.forEach(C=>{C.handler(p)})}}const y="tp";function x(d){return(p,b)=>[y,"-",d,"v",p?`_${p}`:"",b?`-${b}`:""].join("")}function M(d,a){return p=>a(d(p))}function E(d){return d.rawValue}function I(d,a){d.emitter.on("change",M(E,a)),a(d.rawValue)}function T(d,a,p){I(d.value(a),p)}function F(d,a,p){p?d.classList.add(a):d.classList.remove(a)}function j(d,a){return p=>{F(d,a,p)}}function B(d,a){I(d,p=>{a.textContent=p??""})}const N=x("btn");class Q{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(N()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("button");b.classList.add(N("b")),p.viewProps.bindDisabled(b),this.element.appendChild(b),this.buttonElement=b;const C=a.createElement("div");C.classList.add(N("t")),B(p.props.value("title"),C),this.buttonElement.appendChild(C)}}class ${constructor(a,p){this.emitter=new w,this.onClick_=this.onClick_.bind(this),this.props=p.props,this.viewProps=p.viewProps,this.view=new Q(a,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class U{constructor(a,p){var b;this.constraint_=p==null?void 0:p.constraint,this.equals_=(b=p==null?void 0:p.equals)!==null&&b!==void 0?b:(C,S)=>C===S,this.emitter=new w,this.rawValue_=a}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(a){this.setRawValue(a,{forceEmit:!1,last:!0})}setRawValue(a,p){const b=p??{forceEmit:!1,last:!0},C=this.constraint_?this.constraint_.constrain(a):a,S=this.rawValue_;this.equals_(S,C)&&!b.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=C,this.emitter.emit("change",{options:b,previousRawValue:S,rawValue:C,sender:this}))}}class z{constructor(a){this.emitter=new w,this.value_=a}get rawValue(){return this.value_}set rawValue(a){this.setRawValue(a,{forceEmit:!1,last:!0})}setRawValue(a,p){const b=p??{forceEmit:!1,last:!0},C=this.value_;C===a&&!b.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=a,this.emitter.emit("change",{options:b,previousRawValue:C,rawValue:this.value_,sender:this}))}}function X(d,a){const p=a==null?void 0:a.constraint,b=a==null?void 0:a.equals;return!p&&!b?new z(d):new U(d,a)}class Y{constructor(a){this.emitter=new w,this.valMap_=a;for(const p in this.valMap_)this.valMap_[p].emitter.on("change",()=>{this.emitter.emit("change",{key:p,sender:this})})}static createCore(a){return Object.keys(a).reduce((b,C)=>Object.assign(b,{[C]:X(a[C])}),{})}static fromObject(a){const p=this.createCore(a);return new Y(p)}get(a){return this.valMap_[a].rawValue}set(a,p){this.valMap_[a].rawValue=p}value(a){return this.valMap_[a]}}function Z(d,a){const b=Object.keys(a).reduce((C,S)=>{if(C===void 0)return;const O=a[S],G=O(d[S]);return G.succeeded?Object.assign(Object.assign({},C),{[S]:G.value}):void 0},{});return b}function he(d,a){return d.reduce((p,b)=>{if(p===void 0)return;const C=a(b);if(!(!C.succeeded||C.value===void 0))return[...p,C.value]},[])}function ge(d){return d===null?!1:typeof d=="object"}function pe(d){return a=>p=>{if(!a&&p===void 0)return{succeeded:!1,value:void 0};if(a&&p===void 0)return{succeeded:!0,value:void 0};const b=d(p);return b!==void 0?{succeeded:!0,value:b}:{succeeded:!1,value:void 0}}}function me(d){return{custom:a=>pe(a)(d),boolean:pe(a=>typeof a=="boolean"?a:void 0)(d),number:pe(a=>typeof a=="number"?a:void 0)(d),string:pe(a=>typeof a=="string"?a:void 0)(d),function:pe(a=>typeof a=="function"?a:void 0)(d),constant:a=>pe(p=>p===a?a:void 0)(d),raw:pe(a=>a)(d),object:a=>pe(p=>{if(ge(p))return Z(p,a)})(d),array:a=>pe(p=>{if(Array.isArray(p))return he(p,a)})(d)}}const ue={optional:me(!0),required:me(!1)};function te(d,a){const p=ue.required.object(a)(d);return p.succeeded?p.value:void 0}function q(d){console.warn([`Missing '${d.key}' of ${d.target} in ${d.place}.`,"Please rebuild plugins with the latest core package."].join(" "))}function Ce(d){return d&&d.parentElement&&d.parentElement.removeChild(d),null}class fe{constructor(a){this.value_=a}static create(a){return[new fe(a),(p,b)=>{a.setRawValue(p,b)}]}get emitter(){return this.value_.emitter}get rawValue(){return this.value_.rawValue}}const le=x("");function ie(d,a){return j(d,le(void 0,a))}class be extends Y{constructor(a){var p;super(a),this.onDisabledChange_=this.onDisabledChange_.bind(this),this.onParentChange_=this.onParentChange_.bind(this),this.onParentGlobalDisabledChange_=this.onParentGlobalDisabledChange_.bind(this),[this.globalDisabled_,this.setGlobalDisabled_]=fe.create(X(this.getGlobalDisabled_())),this.value("disabled").emitter.on("change",this.onDisabledChange_),this.value("parent").emitter.on("change",this.onParentChange_),(p=this.get("parent"))===null||p===void 0||p.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_)}static create(a){var p,b,C;const S=a??{};return new be(Y.createCore({disabled:(p=S.disabled)!==null&&p!==void 0?p:!1,disposed:!1,hidden:(b=S.hidden)!==null&&b!==void 0?b:!1,parent:(C=S.parent)!==null&&C!==void 0?C:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(a){I(this.globalDisabled_,ie(a,"disabled")),T(this,"hidden",ie(a,"hidden"))}bindDisabled(a){I(this.globalDisabled_,p=>{a.disabled=p})}bindTabIndex(a){I(this.globalDisabled_,p=>{a.tabIndex=p?-1:0})}handleDispose(a){this.value("disposed").emitter.on("change",p=>{p&&a()})}getGlobalDisabled_(){const a=this.get("parent");return(a?a.globalDisabled.rawValue:!1)||this.get("disabled")}updateGlobalDisabled_(){this.setGlobalDisabled_(this.getGlobalDisabled_())}onDisabledChange_(){this.updateGlobalDisabled_()}onParentGlobalDisabledChange_(){this.updateGlobalDisabled_()}onParentChange_(a){var p;const b=a.previousRawValue;b==null||b.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(p=this.get("parent"))===null||p===void 0||p.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}function V(){return["veryfirst","first","last","verylast"]}const ce=x(""),Le={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class Ee{constructor(a){this.parent_=null,this.blade=a.blade,this.view=a.view,this.viewProps=a.viewProps;const p=this.view.element;this.blade.value("positions").emitter.on("change",()=>{V().forEach(b=>{p.classList.remove(ce(void 0,Le[b]))}),this.blade.get("positions").forEach(b=>{p.classList.add(ce(void 0,Le[b]))})}),this.viewProps.handleDispose(()=>{Ce(p)})}get parent(){return this.parent_}set parent(a){if(this.parent_=a,!("parent"in this.viewProps.valMap_)){q({key:"parent",target:be.name,place:"BladeController.parent"});return}this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}}const we="http://www.w3.org/2000/svg";function Ze(d){d.offsetHeight}function gn(d,a){const p=d.style.transition;d.style.transition="none",a(),d.style.transition=p}function Ue(d){return d.ontouchstart!==void 0}function _n(d){for(;d.childNodes.length>0;)d.removeChild(d.childNodes[0])}function $t(d){return d.relatedTarget?d.relatedTarget:"explicitOriginalTarget"in d?d.explicitOriginalTarget:null}const st=x("lbl");function ft(d,a){const p=d.createDocumentFragment();return a.split(`
|
|
26
|
+
`).map(C=>d.createTextNode(C)).forEach((C,S)=>{S>0&&p.appendChild(d.createElement("br")),p.appendChild(C)}),p}class Oe{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(st()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("div");b.classList.add(st("l")),T(p.props,"label",S=>{u(S)?this.element.classList.add(st(void 0,"nol")):(this.element.classList.remove(st(void 0,"nol")),_n(b),b.appendChild(ft(a,S)))}),this.element.appendChild(b),this.labelElement=b;const C=a.createElement("div");C.classList.add(st("v")),this.element.appendChild(C),this.valueElement=C}}class We extends Ee{constructor(a,p){const b=p.valueController.viewProps;super(Object.assign(Object.assign({},p),{view:new Oe(a,{props:p.props,viewProps:b}),viewProps:b})),this.props=p.props,this.valueController=p.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Xt extends Ee{constructor(a){super(a),this.value=a.value}}class rt extends Y{constructor(a){super(a)}static create(a){const p={completed:!0,expanded:a,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},b=Y.createCore(p);return new rt(b)}get styleExpanded(){var a;return(a=this.get("temporaryExpanded"))!==null&&a!==void 0?a:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const a=this.get("expandedHeight");return this.get("shouldFixHeight")&&!u(a)?`${a}px`:"auto"}bindExpandedClass(a,p){const b=()=>{this.styleExpanded?a.classList.add(p):a.classList.remove(p)};T(this,"expanded",b),T(this,"temporaryExpanded",b)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function wn(d){return rt.create(d)}function $n(d,a){let p=0;return gn(a,()=>{d.set("expandedHeight",null),d.set("temporaryExpanded",!0),Ze(a),p=a.clientHeight,d.set("temporaryExpanded",null),Ze(a)}),p}function yn(d,a){a.style.height=d.styleHeight}function xn(d,a){d.value("expanded").emitter.on("beforechange",()=>{d.set("completed",!1),u(d.get("expandedHeight"))&&d.set("expandedHeight",$n(d,a)),d.set("shouldFixHeight",!0),Ze(a)}),d.emitter.on("change",()=>{yn(d,a)}),yn(d,a),a.addEventListener("transitionend",p=>{p.propertyName==="height"&&d.cleanUpTransition()})}class ct{constructor(a,p){const b=x(p.viewName);this.element=a.createElement("div"),this.element.classList.add(b()),p.viewProps.bindClassModifiers(this.element)}}class vt extends Xt{constructor(a,p){const b=p.valueController.viewProps;super(Object.assign(Object.assign({},p),{value:p.valueController.value,view:new Oe(a,{props:p.props,viewProps:b}),viewProps:b})),this.props=p.props,this.valueController=p.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Cn{constructor(){this.disabled=!1,this.emitter=new w}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class Yt{constructor(a,p){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=a,this.emitter=new w,this.interval_=p,this.setTimer_()}get disabled(){return this.disabled_}set disabled(a){this.disabled_=a,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const a=this.doc_.defaultView;a&&a.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const a=this.doc_.defaultView;a&&(this.timerId_=a.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Pn{constructor(a){this.constraints=a}constrain(a){return this.constraints.reduce((p,b)=>b.constrain(p),a)}}function pt(d,a){if(d instanceof a)return d;if(d instanceof Pn){const p=d.constraints.reduce((b,C)=>b||(C instanceof a?C:null),null);if(p)return p}return null}class ot{constructor(a){this.values=Y.fromObject({max:a.max,min:a.min})}constrain(a){const p=this.values.get("max"),b=this.values.get("min");return Math.min(Math.max(a,b),p)}}class bt{constructor(a){this.values=Y.fromObject({max:a.max,min:a.min})}get maxValue(){return this.values.get("max")}get minValue(){return this.values.get("min")}constrain(a){const p=this.values.get("max"),b=this.values.get("min");let C=a;return u(b)||(C=Math.max(C,b)),u(p)||(C=Math.min(C,p)),C}}class D{constructor(a,p=0){this.step=a,this.origin=p}constrain(a){const p=this.origin%this.step,b=Math.round((a-p)/this.step);return p+b*this.step}}const K=x("pop");class J{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(K()),p.viewProps.bindClassModifiers(this.element),I(p.shows,j(this.element,K(void 0,"v")))}}class se{constructor(a,p){this.shows=X(!1),this.viewProps=p.viewProps,this.view=new J(a,{shows:this.shows,viewProps:this.viewProps})}}const ye=x("txt");class Ve{constructor(a,p){this.onChange_=this.onChange_.bind(this),this.element=a.createElement("div"),this.element.classList.add(ye()),p.viewProps.bindClassModifiers(this.element),this.props_=p.props,this.props_.emitter.on("change",this.onChange_);const b=a.createElement("input");b.classList.add(ye("i")),b.type="text",p.viewProps.bindDisabled(b),this.element.appendChild(b),this.inputElement=b,p.value.emitter.on("change",this.onChange_),this.value_=p.value,this.refresh()}refresh(){const a=this.props_.get("formatter");this.inputElement.value=a(this.value_.rawValue)}onChange_(){this.refresh()}}class Vt{constructor(a,p){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=p.parser,this.props=p.props,this.value=p.value,this.viewProps=p.viewProps,this.view=new Ve(a,{props:p.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(a){const b=a.currentTarget.value,C=this.parser_(b);u(C)||(this.value.rawValue=C),this.view.refresh()}}function qt(d){return d==="false"?!1:!!d}class Be{constructor(a){this.text=a}evaluate(){return Number(this.text)}toString(){return this.text}}const Ne={"**":(d,a)=>Math.pow(d,a),"*":(d,a)=>d*a,"/":(d,a)=>d/a,"%":(d,a)=>d%a,"+":(d,a)=>d+a,"-":(d,a)=>d-a,"<<":(d,a)=>d<<a,">>":(d,a)=>d>>a,">>>":(d,a)=>d>>>a,"&":(d,a)=>d&a,"^":(d,a)=>d^a,"|":(d,a)=>d|a};class bs{constructor(a,p,b){this.left=p,this.operator=a,this.right=b}evaluate(){const a=Ne[this.operator];if(!a)throw new Error(`unexpected binary operator: '${this.operator}`);return a(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const gs={"+":d=>d,"-":d=>-d,"~":d=>~d};class _s{constructor(a,p){this.operator=a,this.expression=p}evaluate(){const a=gs[this.operator];if(!a)throw new Error(`unexpected unary operator: '${this.operator}`);return a(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function Xn(d){return(a,p)=>{for(let b=0;b<d.length;b++){const C=d[b](a,p);if(C!=="")return C}return""}}function gt(d,a){var p;const b=d.substr(a).match(/^\s+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function Yn(d,a){const p=d.substr(a,1);return p.match(/^[1-9]$/)?p:""}function Te(d,a){var p;const b=d.substr(a).match(/^[0-9]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function qn(d,a){const p=Te(d,a);if(p!=="")return p;const b=d.substr(a,1);if(a+=1,b!=="-"&&b!=="+")return"";const C=Te(d,a);return C===""?"":b+C}function Je(d,a){const p=d.substr(a,1);if(a+=1,p.toLowerCase()!=="e")return"";const b=qn(d,a);return b===""?"":p+b}function Mi(d,a){const p=d.substr(a,1);if(p==="0")return p;const b=Yn(d,a);return a+=b.length,b===""?"":b+Te(d,a)}function Qt(d,a){const p=Mi(d,a);if(a+=p.length,p==="")return"";const b=d.substr(a,1);if(a+=b.length,b!==".")return"";const C=Te(d,a);return a+=C.length,p+b+C+Je(d,a)}function Ai(d,a){const p=d.substr(a,1);if(a+=p.length,p!==".")return"";const b=Te(d,a);return a+=b.length,b===""?"":p+b+Je(d,a)}function kn(d,a){const p=Mi(d,a);return a+=p.length,p===""?"":p+Je(d,a)}const Qn=Xn([Qt,Ai,kn]);function Zn(d,a){var p;const b=d.substr(a).match(/^[01]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function ws(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0b")return"";const b=Zn(d,a);return b===""?"":p+b}function ys(d,a){var p;const b=d.substr(a).match(/^[0-7]+/);return(p=b&&b[0])!==null&&p!==void 0?p:""}function xs(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0o")return"";const b=ys(d,a);return b===""?"":p+b}function Cs(d,a){var p;const b=d.substr(a).match(/^[0-9a-f]+/i);return(p=b&&b[0])!==null&&p!==void 0?p:""}function Wn(d,a){const p=d.substr(a,2);if(a+=p.length,p.toLowerCase()!=="0x")return"";const b=Cs(d,a);return b===""?"":p+b}const Ps=Xn([ws,xs,Wn]),ks=Xn([Ps,Qn]);function Zt(d,a){const p=ks(d,a);return a+=p.length,p===""?null:{evaluable:new Be(p),cursor:a}}function Si(d,a){const p=d.substr(a,1);if(a+=p.length,p!=="(")return null;const b=Jn(d,a);if(!b)return null;a=b.cursor,a+=gt(d,a).length;const C=d.substr(a,1);return a+=C.length,C!==")"?null:{evaluable:b.evaluable,cursor:a}}function Ms(d,a){var p;return(p=Zt(d,a))!==null&&p!==void 0?p:Si(d,a)}function Mn(d,a){const p=Ms(d,a);if(p)return p;const b=d.substr(a,1);if(a+=b.length,b!=="+"&&b!=="-"&&b!=="~")return null;const C=Mn(d,a);return C?(a=C.cursor,{cursor:a,evaluable:new _s(b,C.evaluable)}):null}function As(d,a,p){p+=gt(a,p).length;const b=d.filter(C=>a.startsWith(C,p))[0];return b?(p+=b.length,p+=gt(a,p).length,{cursor:p,operator:b}):null}function Dt(d,a){return(p,b)=>{const C=d(p,b);if(!C)return null;b=C.cursor;let S=C.evaluable;for(;;){const O=As(a,p,b);if(!O)break;b=O.cursor;const G=d(p,b);if(!G)return null;b=G.cursor,S=new bs(O.operator,S,G.evaluable)}return S?{cursor:b,evaluable:S}:null}}const Li=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((d,a)=>Dt(d,a),Mn);function Jn(d,a){return a+=gt(d,a).length,Li(d,a)}function Ss(d){const a=Jn(d,0);return!a||a.cursor+gt(d,a.cursor).length!==d.length?null:a.evaluable}function Wt(d){var a;const p=Ss(d);return(a=p==null?void 0:p.evaluate())!==null&&a!==void 0?a:null}function Ls(d){if(typeof d=="number")return d;if(typeof d=="string"){const a=Wt(d);if(!u(a))return a}return 0}function Ae(d){return a=>a.toFixed(Math.max(Math.min(d,20),0))}const Vs=Ae(0);function An(d){return Vs(d)+"%"}function Vi(d){return String(d)}function Hn(d,a){for(;d.length<a;)d.push(void 0)}function Di(d){const a=[];return Hn(a,d),X(a)}function Ii(d){const a=d.indexOf(void 0);return a<0?d:d.slice(0,a)}function Ds(d,a){const p=[...Ii(d),a];return p.length>d.length?p.splice(0,p.length-d.length):Hn(p,d.length),p}function It({primary:d,secondary:a,forward:p,backward:b}){let C=!1;function S(O){C||(C=!0,O(),C=!1)}d.emitter.on("change",O=>{S(()=>{a.setRawValue(p(d,a),O.options)})}),a.emitter.on("change",O=>{S(()=>{d.setRawValue(b(d,a),O.options)}),S(()=>{a.setRawValue(p(d,a),O.options)})}),S(()=>{a.setRawValue(p(d,a),{forceEmit:!1,last:!0})})}function Et(d,a){const p=d*(a.altKey?.1:1)*(a.shiftKey?10:1);return a.upKey?+p:a.downKey?-p:0}function Jt(d){return{altKey:d.altKey,downKey:d.key==="ArrowDown",shiftKey:d.shiftKey,upKey:d.key==="ArrowUp"}}function ei(d){return{altKey:d.altKey,downKey:d.key==="ArrowLeft",shiftKey:d.shiftKey,upKey:d.key==="ArrowRight"}}function Is(d){return d==="ArrowUp"||d==="ArrowDown"}function Ei(d){return Is(d)||d==="ArrowLeft"||d==="ArrowRight"}function ti(d,a){var p,b;const C=a.ownerDocument.defaultView,S=a.getBoundingClientRect();return{x:d.pageX-(((p=C&&C.scrollX)!==null&&p!==void 0?p:0)+S.left),y:d.pageY-(((b=C&&C.scrollY)!==null&&b!==void 0?b:0)+S.top)}}class Sn{constructor(a){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_=a,this.emitter=new w,a.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),a.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),a.addEventListener("touchend",this.onTouchEnd_),a.addEventListener("mousedown",this.onMouseDown_)}computePosition_(a){const p=this.elem_.getBoundingClientRect();return{bounds:{width:p.width,height:p.height},point:a?{x:a.x,y:a.y}:null}}onMouseDown_(a){var p;a.preventDefault(),(p=a.currentTarget)===null||p===void 0||p.focus();const b=this.elem_.ownerDocument;b.addEventListener("mousemove",this.onDocumentMouseMove_),b.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onDocumentMouseMove_(a){this.emitter.emit("move",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onDocumentMouseUp_(a){const p=this.elem_.ownerDocument;p.removeEventListener("mousemove",this.onDocumentMouseMove_),p.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:a.altKey,data:this.computePosition_(ti(a,this.elem_)),sender:this,shiftKey:a.shiftKey})}onTouchStart_(a){a.preventDefault();const p=a.targetTouches.item(0),b=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:a.altKey,data:this.computePosition_(p?{x:p.clientX-b.left,y:p.clientY-b.top}:void 0),sender:this,shiftKey:a.shiftKey}),this.lastTouch_=p}onTouchMove_(a){const p=a.targetTouches.item(0),b=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:a.altKey,data:this.computePosition_(p?{x:p.clientX-b.left,y:p.clientY-b.top}:void 0),sender:this,shiftKey:a.shiftKey}),this.lastTouch_=p}onTouchEnd_(a){var p;const b=(p=a.targetTouches.item(0))!==null&&p!==void 0?p:this.lastTouch_,C=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:a.altKey,data:this.computePosition_(b?{x:b.clientX-C.left,y:b.clientY-C.top}:void 0),sender:this,shiftKey:a.shiftKey})}}function Pe(d,a,p,b,C){const S=(d-a)/(p-a);return b+S*(C-b)}function Ti(d){return String(d.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Tt(d,a,p){return Math.min(Math.max(d,a),p)}const Re=x("txt");class Es{constructor(a,p){this.onChange_=this.onChange_.bind(this),this.props_=p.props,this.props_.emitter.on("change",this.onChange_),this.element=a.createElement("div"),this.element.classList.add(Re(),Re(void 0,"num")),p.arrayPosition&&this.element.classList.add(Re(void 0,p.arrayPosition)),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("input");b.classList.add(Re("i")),b.type="text",p.viewProps.bindDisabled(b),this.element.appendChild(b),this.inputElement=b,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=p.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(Re()),this.inputElement.classList.add(Re("i"));const C=a.createElement("div");C.classList.add(Re("k")),this.element.appendChild(C),this.knobElement=C;const S=a.createElementNS(we,"svg");S.classList.add(Re("g")),this.knobElement.appendChild(S);const O=a.createElementNS(we,"path");O.classList.add(Re("gb")),S.appendChild(O),this.guideBodyElem_=O;const G=a.createElementNS(we,"path");G.classList.add(Re("gh")),S.appendChild(G),this.guideHeadElem_=G;const oe=a.createElement("div");oe.classList.add(x("tt")()),this.knobElement.appendChild(oe),this.tooltipElem_=oe,p.value.emitter.on("change",this.onChange_),this.value=p.value,this.refresh()}onDraggingChange_(a){if(a.rawValue===null){this.element.classList.remove(Re(void 0,"drg"));return}this.element.classList.add(Re(void 0,"drg"));const p=a.rawValue/this.props_.get("draggingScale"),b=p+(p>0?-1:p<0?1:0),C=Tt(-b,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${b+C},0 L${b},4 L${b+C},8`,`M ${p},-1 L${p},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${p},4`);const S=this.props_.get("formatter");this.tooltipElem_.textContent=S(this.value.rawValue),this.tooltipElem_.style.left=`${p}px`}refresh(){const a=this.props_.get("formatter");this.inputElement.value=a(this.value.rawValue)}onChange_(){this.refresh()}}class Ht{constructor(a,p){var b;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.baseStep_=p.baseStep,this.parser_=p.parser,this.props=p.props,this.sliderProps_=(b=p.sliderProps)!==null&&b!==void 0?b:null,this.value=p.value,this.viewProps=p.viewProps,this.dragging_=X(null),this.view=new Es(a,{arrayPosition:p.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 C=new Sn(this.view.knobElement);C.emitter.on("down",this.onPointerDown_),C.emitter.on("move",this.onPointerMove_),C.emitter.on("up",this.onPointerUp_)}constrainValue_(a){var p,b;const C=(p=this.sliderProps_)===null||p===void 0?void 0:p.get("minValue"),S=(b=this.sliderProps_)===null||b===void 0?void 0:b.get("maxValue");let O=a;return C!==void 0&&(O=Math.max(O,C)),S!==void 0&&(O=Math.min(O,S)),O}onInputChange_(a){const b=a.currentTarget.value,C=this.parser_(b);u(C)||(this.value.rawValue=this.constrainValue_(C)),this.view.refresh()}onInputKeyDown_(a){const p=Et(this.baseStep_,Jt(a));p!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+p),{forceEmit:!1,last:!1})}onInputKeyUp_(a){Et(this.baseStep_,Jt(a))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(a){if(!a.point)return null;const p=a.point.x-a.bounds.width/2;return this.constrainValue_(this.originRawValue_+p*this.props.get("draggingScale"))}onPointerMove_(a){const p=this.computeDraggingValue_(a.data);p!==null&&(this.value.setRawValue(p,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(a){const p=this.computeDraggingValue_(a.data);p!==null&&(this.value.setRawValue(p,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function Xe(d,a){d.write(a)}function Ot(d){const a=d?pt(d,D):null;return a?a.step:null}function en(d,a){const p=d&&pt(d,D);return p?Ti(p.step):Math.max(Ti(a),2)}function ni(d){const a=Ot(d);return a??1}function Ln(d,a){var p;const b=d&&pt(d,D),C=Math.abs((p=b==null?void 0:b.step)!==null&&p!==void 0?p:a);return C===0?.1:Math.pow(10,Math.floor(Math.log10(C))-1)}function Bt(d){return[d[0],d[1],d[2]]}function Oi(d){const a=Tt(Math.floor(d),0,255).toString(16);return a.length===1?`0${a}`:a}function tn(d,a="#"){const p=Bt(d.getComponents("rgb")).map(Oi).join("");return`${a}${p}`}function Bi(d,a="#"){const p=d.getComponents("rgb"),b=[p[0],p[1],p[2],p[3]*255].map(Oi).join("");return`${a}${b}`}function Ts(d,a){const p=Ae(a==="float"?2:0);return`rgb(${Bt(d.getComponents("rgb",a)).map(C=>p(C)).join(", ")})`}function Ni(d){return a=>Ts(a,d)}function Fi(d,a){const p=Ae(2),b=Ae(a==="float"?2:0);return`rgba(${d.getComponents("rgb",a).map((S,O)=>(O===3?p:b)(S)).join(", ")})`}function Os(d){return a=>Fi(a,d)}function Vn(d){const a=[Ae(0),An,An];return`hsl(${Bt(d.getComponents("hsl")).map((b,C)=>a[C](b)).join(", ")})`}function Bs(d){const a=[Ae(0),An,An,Ae(2)];return`hsla(${d.getComponents("hsl").map((b,C)=>a[C](b)).join(", ")})`}function ji(d,a){const p=Ae(a==="float"?2:0),b=["r","g","b"];return`{${Bt(d.getComponents("rgb",a)).map((S,O)=>`${b[O]}: ${p(S)}`).join(", ")}}`}function zi(d){return a=>ji(a,d)}function Ns(d,a){const p=Ae(2),b=Ae(a==="float"?2:0),C=["r","g","b","a"];return`{${d.getComponents("rgb",a).map((O,G)=>{const oe=G===3?p:b;return`${C[G]}: ${oe(O)}`}).join(", ")}}`}function Fs(d){return a=>Ns(a,d)}[...["int","float"].reduce((d,a)=>[...d,{format:{alpha:!1,mode:"rgb",notation:"func",type:a},stringifier:Ni(a)},{format:{alpha:!0,mode:"rgb",notation:"func",type:a},stringifier:Os(a)},{format:{alpha:!1,mode:"rgb",notation:"object",type:a},stringifier:zi(a)},{format:{alpha:!0,mode:"rgb",notation:"object",type:a},stringifier:Fs(a)}],[])];class js{constructor(a){this.components=a.components,this.asm_=a.assembly}constrain(a){const p=this.asm_.toComponents(a).map((b,C)=>{var S,O;return(O=(S=this.components[C])===null||S===void 0?void 0:S.constrain(b))!==null&&O!==void 0?O:b});return this.asm_.fromComponents(p)}}const Ui=x("pndtxt");class zs{constructor(a,p){this.textViews=p.textViews,this.element=a.createElement("div"),this.element.classList.add(Ui()),this.textViews.forEach(b=>{const C=a.createElement("div");C.classList.add(Ui("a")),C.appendChild(b.element),this.element.appendChild(C)})}}function ii(d,a,p){return new Ht(d,{arrayPosition:p===0?"fst":p===a.axes.length-1?"lst":"mid",baseStep:a.axes[p].baseStep,parser:a.parser,props:a.axes[p].textProps,value:X(0,{constraint:a.axes[p].constraint}),viewProps:a.viewProps})}class _t{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.acs_=p.axes.map((b,C)=>ii(a,p,C)),this.acs_.forEach((b,C)=>{It({primary:this.value,secondary:b.value,forward:S=>p.assembly.toComponents(S.rawValue)[C],backward:(S,O)=>{const G=p.assembly.toComponents(S.rawValue);return G[C]=O.rawValue,p.assembly.fromComponents(G)}})}),this.view=new zs(a,{textViews:this.acs_.map(b=>b.view)})}}function Us(d,a){return"step"in d&&!u(d.step)?new D(d.step,a):null}function nn(d){return!u(d.max)&&!u(d.min)?new ot({max:d.max,min:d.min}):!u(d.max)||!u(d.min)?new bt({max:d.max,min:d.min}):null}const Rs={monitor:{defaultInterval:200,defaultLineCount:3}},He=x("grl");class Ri{constructor(a,p){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=a.createElement("div"),this.element.classList.add(He()),p.viewProps.bindClassModifiers(this.element),this.formatter_=p.formatter,this.props_=p.props,this.cursor_=p.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const b=a.createElementNS(we,"svg");b.classList.add(He("g")),b.style.height=`calc(var(--bld-us) * ${p.lineCount})`,this.element.appendChild(b),this.svgElem_=b;const C=a.createElementNS(we,"polyline");this.svgElem_.appendChild(C),this.lineElem_=C;const S=a.createElement("div");S.classList.add(He("t"),x("tt")()),this.element.appendChild(S),this.tooltipElem_=S,p.value.emitter.on("change",this.onValueUpdate_),this.value=p.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const a=this.svgElem_.getBoundingClientRect(),p=this.value.rawValue.length-1,b=this.props_.get("minValue"),C=this.props_.get("maxValue"),S=[];this.value.rawValue.forEach(($e,ne)=>{if($e===void 0)return;const dt=Pe(ne,0,p,0,a.width),nr=Pe($e,b,C,a.height,0);S.push([dt,nr].join(","))}),this.lineElem_.setAttributeNS(null,"points",S.join(" "));const O=this.tooltipElem_,G=this.value.rawValue[this.cursor_.rawValue];if(G===void 0){O.classList.remove(He("t","a"));return}const oe=Pe(this.cursor_.rawValue,0,p,0,a.width),Ke=Pe(G,b,C,a.height,0);O.style.left=`${oe}px`,O.style.top=`${Ke}px`,O.textContent=`${this.formatter_(G)}`,O.classList.contains(He("t","a"))||(O.classList.add(He("t","a"),He("t","in")),Ze(O),O.classList.remove(He("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Gs{constructor(a,p){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_=p.props,this.value=p.value,this.viewProps=p.viewProps,this.cursor_=X(-1),this.view=new Ri(a,{cursor:this.cursor_,formatter:p.formatter,lineCount:p.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Ue(a))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const b=new Sn(this.view.element);b.emitter.on("down",this.onGraphPointerDown_),b.emitter.on("move",this.onGraphPointerMove_),b.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(a){const p=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(Pe(a.offsetX,0,p.width,0,this.value.rawValue.length))}onGraphPointerDown_(a){this.onGraphPointerMove_(a)}onGraphPointerMove_(a){if(!a.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(Pe(a.data.point.x,0,a.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class Gi{constructor(a){this.controller_=a}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get title(){var a;return(a=this.controller_.props.get("title"))!==null&&a!==void 0?a:""}set title(a){this.controller_.props.set("title",a)}on(a,p){const b=p.bind(this);return this.controller_.emitter.on(a,()=>{b(new o(this))}),this}}class Ks extends o{constructor(a,p,b){super(a),this.cell=p,this.index=b}}class Ki extends s{constructor(a){super(a),this.cellToApiMap_=new Map,this.emitter_=new w;const p=this.controller_.valueController;p.cellControllers.forEach((b,C)=>{const S=new Gi(b);this.cellToApiMap_.set(b,S),b.emitter.on("click",()=>{const O=C%p.size[0],G=Math.floor(C/p.size[0]);this.emitter_.emit("click",{event:new Ks(this,S,[O,G])})})})}cell(a,p){const b=this.controller_.valueController,C=b.cellControllers[p*b.size[0]+a];return this.cellToApiMap_.get(C)}on(a,p){const b=p.bind(this);return this.emitter_.on(a,C=>{b(C.event)}),this}}class si{constructor(a,p){this.size=p.size;const[b,C]=this.size,S=[];for(let O=0;O<C;O++)for(let G=0;G<b;G++){const oe=new $(a,{props:Y.fromObject(Object.assign({},p.cellConfig(G,O))),viewProps:be.create()});S.push(oe)}this.cellCs_=S,this.viewProps=be.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(O=>{O.viewProps.set("disposed",!0)})}),this.view=new ct(a,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${b}, 1fr)`,this.cellCs_.forEach(O=>{this.view.element.appendChild(O.view.element)})}get cellControllers(){return this.cellCs_}}const $s={id:"buttongrid",type:"blade",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept(d){const a=ue,p=te(d,{cells:a.required.function,size:a.required.array(a.required.number),view:a.required.constant("buttongrid"),label:a.optional.string});return p?{params:p}:null},controller(d){return new We(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new si(d.document,{cellConfig:d.params.cells,size:d.params.size})})},api(d){return!(d.controller instanceof We)||!(d.controller.valueController instanceof si)?null:new Ki(d.controller)}};class $i extends s{get label(){return this.controller_.props.get("label")}set label(a){this.controller_.props.set("label",a)}get value(){return this.controller_.valueController.value.rawValue}set value(a){this.controller_.valueController.value.rawValue=a}on(a,p){const b=p.bind(this);return this.controller_.valueController.value.emitter.on(a,C=>{b(new c(this,C.rawValue,void 0,C.options.last))}),this}}function Ge(d,a,p){return d*(1-p)+a*p}const Xs=20,Ys=.001,ri=100;function qs(d,a){let p=.25,b=.5,C=-1;for(let S=0;S<Xs;S++){const[O,G]=d.curve(b);if(b+=p*(O<a?1:-1),C=G,p*=.5,Math.abs(a-O)<Ys)break}return C}class ht{constructor(a=0,p=0,b=1,C=1){this.cache_=[],this.comps_=[a,p,b,C]}get x1(){return this.comps_[0]}get y1(){return this.comps_[1]}get x2(){return this.comps_[2]}get y2(){return this.comps_[3]}static isObject(a){return u(a)||!Array.isArray(a)?!1:typeof a[0]=="number"&&typeof a[1]=="number"&&typeof a[2]=="number"&&typeof a[3]=="number"}static equals(a,p){return a.x1===p.x1&&a.y1===p.y1&&a.x2===p.x2&&a.y2===p.y2}curve(a){const p=Ge(0,this.x1,a),b=Ge(0,this.y1,a),C=Ge(this.x1,this.x2,a),S=Ge(this.y1,this.y2,a),O=Ge(this.x2,1,a),G=Ge(this.y2,1,a),oe=Ge(p,C,a),Ke=Ge(b,S,a),$e=Ge(C,O,a),ne=Ge(S,G,a);return[Ge(oe,$e,a),Ge(Ke,ne,a)]}y(a){if(this.cache_.length===0){const p=[];for(let b=0;b<ri;b++)p.push(qs(this,Pe(b,0,ri-1,0,1)));this.cache_=p}return this.cache_[Math.round(Pe(Tt(a,0,1),0,1,0,ri-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const oi={toComponents:d=>d.toObject(),fromComponents:d=>new ht(...d)};function Qs(d){const a=Ae(2);return`cubic-bezier(${d.toObject().map(b=>a(b)).join(", ")})`}const ai=[0,.5,.5,1];function Zs(d){const a=d.match(/^cubic-bezier\s*\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*\)$/);if(!a)return new ht(...ai);const p=[a[1],a[2],a[3],a[4]].reduce((b,C)=>{if(!b)return null;const S=Number(C);return isNaN(S)?null:[...b,S]},[]);return new ht(...p??ai)}const wt=x("cbz");class Xi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(wt()),p.viewProps.bindClassModifiers(this.element),p.foldable.bindExpandedClass(this.element,wt(void 0,"expanded")),T(p.foldable,"completed",j(this.element,wt(void 0,"cpl")));const b=a.createElement("div");b.classList.add(wt("h")),this.element.appendChild(b);const C=a.createElement("button");C.classList.add(wt("b")),p.viewProps.bindDisabled(C);const S=a.createElementNS(we,"svg");S.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',C.appendChild(S),b.appendChild(C),this.buttonElement=C;const O=a.createElement("div");if(O.classList.add(wt("t")),b.appendChild(O),this.textElement=O,p.pickerLayout==="inline"){const G=a.createElement("div");G.classList.add(wt("p")),this.element.appendChild(G),this.pickerElement=G}else this.pickerElement=null}}const Dn=x("cbzp");class Yi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(Dn()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("div");b.classList.add(Dn("g")),this.element.appendChild(b),this.graphElement=b;const C=a.createElement("div");C.classList.add(Dn("t")),this.element.appendChild(C),this.textElement=C}}function et(d,a){const p=new MutationObserver(C=>{for(const S of C)S.type==="childList"&&S.addedNodes.forEach(O=>{O.contains(O)&&(a(),p.disconnect())})}),b=d.ownerDocument;p.observe(b.body,{attributes:!0,childList:!0,subtree:!0})}const at=x("cbzg");function Ws(d,a){return p=>a(d(p))}class Se{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(at()),p.viewProps.bindClassModifiers(this.element),p.viewProps.bindTabIndex(this.element);const b=a.createElement("div");b.classList.add(at("p")),this.element.appendChild(b),this.previewElement=b;const C=a.createElementNS(we,"svg");C.classList.add(at("g")),this.element.appendChild(C),this.svgElem_=C;const S=a.createElementNS(we,"path");S.classList.add(at("u")),this.svgElem_.appendChild(S),this.guideElem_=S;const O=a.createElementNS(we,"polyline");O.classList.add(at("l")),this.svgElem_.appendChild(O),this.lineElem_=O,this.handleElems_=[a.createElement("div"),a.createElement("div")],this.handleElems_.forEach(G=>{G.classList.add(at("h")),this.element.appendChild(G)}),this.vectorElems_=[a.createElementNS(we,"line"),a.createElementNS(we,"line")],this.vectorElems_.forEach(G=>{G.classList.add(at("v")),this.svgElem_.appendChild(G)}),this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=p.selection,this.handleElems_.forEach((G,oe)=>{I(this.sel_,Ws(Ke=>Ke===oe,j(G,at("h","sel"))))}),et(this.element,()=>{this.refresh()})}getVertMargin_(a){return a*.25}valueToPosition(a,p){const b=this.element.getBoundingClientRect(),C=b.width,S=b.height,O=this.getVertMargin_(S);return{x:Pe(a,0,1,0,C),y:Pe(p,0,1,S-O,O)}}positionToValue(a,p){const b=this.element.getBoundingClientRect(),C=b.width,S=b.height,O=this.getVertMargin_(S);return{x:Tt(Pe(a,0,C,0,1),0,1),y:Pe(p,S-O,O,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(S=>{const O=this.valueToPosition(0,S),G=this.valueToPosition(1,S);return[`M ${O.x},${O.y}`,`L ${G.x},${G.y}`].join(" ")}).join(" "));const a=this.value_.rawValue,p=[];let b=0;for(;;){const S=this.valueToPosition(...a.curve(b));if(p.push([S.x,S.y].join(",")),b>=1)break;b=Math.min(b+.05,1)}this.lineElem_.setAttributeNS(null,"points",p.join(" "));const C=a.toObject();[0,1].forEach(S=>{const O=this.valueToPosition(S,S),G=this.valueToPosition(C[S*2],C[S*2+1]),oe=this.vectorElems_[S];oe.setAttributeNS(null,"x1",String(O.x)),oe.setAttributeNS(null,"y1",String(O.y)),oe.setAttributeNS(null,"x2",String(G.x)),oe.setAttributeNS(null,"y2",String(G.y));const Ke=this.handleElems_[S];Ke.style.left=`${G.x}px`,Ke.style.top=`${G.y}px`})}onValueChange_(){this.refresh()}}const qi=24,sn=400,li=1e3,ut=x("cbzprv");class Nt{constructor(a,p){this.stopped_=!0,this.startTime_=-1,this.onDispose_=this.onDispose_.bind(this),this.onTimer_=this.onTimer_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.element=a.createElement("div"),this.element.classList.add(ut()),p.viewProps.bindClassModifiers(this.element);const b=a.createElementNS(we,"svg");b.classList.add(ut("g")),this.element.appendChild(b),this.svgElem_=b;const C=a.createElementNS(we,"path");C.classList.add(ut("t")),this.svgElem_.appendChild(C),this.ticksElem_=C;const S=a.createElement("div");S.classList.add(ut("m")),this.element.appendChild(S),this.markerElem_=S,this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_),p.viewProps.handleDispose(this.onDispose_),et(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(ut("m","a")),this.startTime_=new Date().getTime()+sn,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(ut("m","a"))}onDispose_(){this.stop()}updateMarker_(a){const p=this.value_.rawValue.y(Tt(a,0,1));this.markerElem_.style.left=`${p*100}%`}refresh(){const a=this.svgElem_.getBoundingClientRect(),p=a.width,b=a.height,C=[],S=this.value_.rawValue;for(let O=0;O<qi;O++){const G=Pe(O,0,qi-1,0,1),oe=Pe(S.y(G),0,1,0,p);C.push(`M ${oe},0 v${b}`)}this.ticksElem_.setAttributeNS(null,"d",C.join(" "))}onTimer_(){if(this.startTime_===null)return;const a=new Date().getTime()-this.startTime_,p=a/li;this.updateMarker_(p),a>li+sn&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function De(d,a,p,b){const C=p-d,S=b-a;return Math.sqrt(C*C+S*S)}function rn(d,a,p,b){const C=De(d,a,p,b),S=Math.atan2(b-a,p-d),O=Math.round(S/(Math.PI/4))*Math.PI/4;return{x:d+Math.cos(O)*C,y:a+Math.sin(O)*C}}class tt{constructor(a,p){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.baseStep_=p.baseStep,this.value=p.value,this.sel_=X(0),this.viewProps=p.viewProps,this.view=new Se(a,{selection:this.sel_,value:this.value,viewProps:this.viewProps}),this.view.element.addEventListener("keydown",this.onKeyDown_),this.view.element.addEventListener("keyup",this.onKeyUp_),this.prevView_=new Nt(a,{value:this.value,viewProps:this.viewProps}),this.prevView_.element.addEventListener("mousedown",C=>{C.stopImmediatePropagation(),C.preventDefault(),this.prevView_.play()}),this.view.previewElement.appendChild(this.prevView_.element);const b=new Sn(this.view.element);b.emitter.on("down",this.onPointerDown_),b.emitter.on("move",this.onPointerMove_),b.emitter.on("up",this.onPointerUp_)}refresh(){this.view.refresh(),this.prevView_.refresh(),this.prevView_.play()}updateValue_(a,p,b){const C=this.sel_.rawValue,S=this.value.rawValue.toObject(),O=this.view.positionToValue(a.x,a.y),G=p?rn(C,C,O.x,O.y):O;S[C*2]=G.x,S[C*2+1]=G.y,this.value.setRawValue(new ht(...S),b)}onPointerDown_(a){const p=a.data;if(!p.point)return;const b=this.value.rawValue,C=this.view.valueToPosition(b.x1,b.y1),S=De(p.point.x,p.point.y,C.x,C.y),O=this.view.valueToPosition(b.x2,b.y2),G=De(p.point.x,p.point.y,O.x,O.y);this.sel_.rawValue=S<=G?0:1,this.updateValue_(p.point,a.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(a){const p=a.data;p.point&&this.updateValue_(p.point,a.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(a){const p=a.data;p.point&&this.updateValue_(p.point,a.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(a){Ei(a.key)&&a.preventDefault();const p=this.sel_.rawValue,b=this.value.rawValue.toObject();b[p*2]+=Et(this.baseStep_,ei(a)),b[p*2+1]+=Et(this.baseStep_,Jt(a)),this.value.setRawValue(new ht(...b),{forceEmit:!1,last:!1})}onKeyUp_(a){Ei(a.key)&&a.preventDefault();const p=Et(this.baseStep_,ei(a)),b=Et(this.baseStep_,Jt(a));p===0&&b===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Qi{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.view=new Yi(a,{viewProps:this.viewProps}),this.gc_=new tt(a,{baseStep:p.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const b=Object.assign(Object.assign({},p.axis),{constraint:new bt({max:1,min:0})}),C=Object.assign(Object.assign({},p.axis),{constraint:void 0});this.tc_=new _t(a,{assembly:oi,axes:[b,C,b,C],parser:Wt,value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element)}get allFocusableElements(){return[this.gc_.view.element,...this.tc_.view.textViews.map(a=>a.inputElement)]}refresh(){this.gc_.refresh()}}class In{constructor(a,p){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=p.value,this.viewProps=p.viewProps,this.foldable_=wn(p.expanded),this.view=new Xi(a,{foldable:this.foldable_,pickerLayout:p.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new Vt(a,{parser:Zs,props:Y.fromObject({formatter:Qs}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=p.pickerLayout==="popup"?new se(a,{viewProps:this.viewProps}):null;const b=new Qi(a,{axis:p.axis,value:this.value,viewProps:this.viewProps});b.allFocusableElements.forEach(C=>{C.addEventListener("blur",this.onPopupChildBlur_),C.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=b,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),I(this.popC_.shows,C=>{C&&b.refresh()}),It({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:C=>C.rawValue,backward:(C,S)=>S.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),xn(this.foldable_,this.view.pickerElement))}onButtonBlur_(a){if(!this.popC_)return;const p=a.relatedTarget;(!p||!this.popC_.view.element.contains(p))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.allFocusableElements[0].focus()}onPopupChildBlur_(a){if(!this.popC_)return;const p=this.popC_.view.element,b=$t(a);b&&p.contains(b)||b&&b===this.view.buttonElement&&!Ue(p.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(a){this.popC_&&a.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function ci(){return new js({assembly:oi,components:[0,1,2,3].map(d=>d%2===0?new bt({min:0,max:1}):void 0)})}const yt={id:"cubic-bezier",type:"blade",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept(d){const a=ue,p=te(d,{value:a.required.array(a.required.number),view:a.required.constant("cubicbezier"),expanded:a.optional.boolean,label:a.optional.string,picker:a.optional.custom(b=>b==="inline"||b==="popup"?b:void 0)});return p?{params:p}:null},controller(d){var a,p;const b=new ht(...d.params.value),C=X(b,{constraint:ci(),equals:ht.equals}),S=new In(d.document,{axis:{baseStep:.1,textProps:Y.fromObject({draggingScale:.01,formatter:Ae(2)})},expanded:(a=d.params.expanded)!==null&&a!==void 0?a:!1,pickerLayout:(p=d.params.picker)!==null&&p!==void 0?p:"popup",value:C,viewProps:d.viewProps});return new vt(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:S})},api(d){return!(d.controller instanceof vt)||!(d.controller.valueController instanceof In)?null:new $i(d.controller)}};class _e extends s{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const pi=20;class ke{constructor(){this.start_=null,this.duration_=0,this.fps_=null,this.frameCount_=0,this.timestamps_=[]}get duration(){return this.duration_}get fps(){return this.fps_}begin(a){this.start_=a.getTime()}calculateFps_(a){if(this.timestamps_.length===0)return null;const p=this.timestamps_[0];return 1e3*(this.frameCount_-p.frameCount)/(a-p.time)}compactTimestamps_(){if(this.timestamps_.length<=pi)return;const a=this.timestamps_.length-pi;this.timestamps_.splice(0,a);const p=this.timestamps_[0].frameCount;this.timestamps_.forEach(b=>{b.frameCount-=p}),this.frameCount_-=p}end(a){if(this.start_===null)return;const p=a.getTime();this.duration_=p-this.start_,this.start_=null,this.fps_=this.calculateFps_(p),this.timestamps_.push({frameCount:this.frameCount_,time:p}),++this.frameCount_,this.compactTimestamps_()}}const Ft=x("fps");class Fe{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(Ft()),p.viewProps.bindClassModifiers(this.element),this.graphElement=a.createElement("div"),this.graphElement.classList.add(Ft("g")),this.element.appendChild(this.graphElement);const b=a.createElement("div");b.classList.add(Ft("l")),this.element.appendChild(b);const C=a.createElement("span");C.classList.add(Ft("v")),C.textContent="--",b.appendChild(C),this.valueElement=C;const S=a.createElement("span");S.classList.add(Ft("u")),S.textContent="FPS",b.appendChild(S)}}class hi{constructor(a,p){this.stopwatch_=new ke,this.onTick_=this.onTick_.bind(this),this.ticker_=p.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=p.value,this.viewProps=p.viewProps,this.view=new Fe(a,{viewProps:this.viewProps}),this.graphC_=new Gs(a,{formatter:Ae(0),lineCount:p.lineCount,props:Y.fromObject({maxValue:p.maxValue,minValue:p.minValue}),value:this.value_,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.graphC_.view.element),this.viewProps.handleDispose(()=>{this.graphC_.viewProps.set("disposed",!0),this.ticker_.dispose()})}begin(){this.stopwatch_.begin(new Date)}end(){this.stopwatch_.end(new Date)}onTick_(){const a=this.stopwatch_.fps;if(a!==null){const p=this.value_.rawValue;this.value_.rawValue=Ds(p,a),this.view.valueElement.textContent=a.toFixed(0)}}}function on(d,a){return a===0?new Cn:new Yt(d,a??Rs.monitor.defaultInterval)}const ui={id:"fpsgraph",type:"blade",accept(d){const a=ue,p=te(d,{view:a.required.constant("fpsgraph"),interval:a.optional.number,label:a.optional.string,lineCount:a.optional.number,max:a.optional.number,min:a.optional.number});return p?{params:p}:null},controller(d){var a,p,b,C;const S=(a=d.params.interval)!==null&&a!==void 0?a:500;return new We(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new hi(d.document,{lineCount:(p=d.params.lineCount)!==null&&p!==void 0?p:2,maxValue:(b=d.params.max)!==null&&b!==void 0?b:90,minValue:(C=d.params.min)!==null&&C!==void 0?C:0,ticker:on(d.document,S),value:Di(80),viewProps:d.viewProps})})},api(d){return!(d.controller instanceof We)||!(d.controller.valueController instanceof hi)?null:new _e(d.controller)}};class je{constructor(a,p){this.min=a,this.max=p}static isObject(a){if(typeof a!="object"||a===null)return!1;const p=a.min,b=a.max;return!(typeof p!="number"||typeof b!="number")}static equals(a,p){return a.min===p.min&&a.max===p.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const di={fromComponents:d=>new je(d[0],d[1]),toComponents:d=>[d.min,d.max]};class an{constructor(a){this.edge=a}constrain(a){var p,b,C,S,O,G,oe,Ke;if(a.min<=a.max)return new je((b=(p=this.edge)===null||p===void 0?void 0:p.constrain(a.min))!==null&&b!==void 0?b:a.min,(S=(C=this.edge)===null||C===void 0?void 0:C.constrain(a.max))!==null&&S!==void 0?S:a.max);const $e=(a.min+a.max)/2;return new je((G=(O=this.edge)===null||O===void 0?void 0:O.constrain($e))!==null&&G!==void 0?G:$e,(Ke=(oe=this.edge)===null||oe===void 0?void 0:oe.constrain($e))!==null&&Ke!==void 0?Ke:$e)}}const mi=x("rsltxt");class En{constructor(a,p){this.sliderView_=p.sliderView,this.textView_=p.textView,this.element=a.createElement("div"),this.element.classList.add(mi());const b=a.createElement("div");b.classList.add(mi("s")),b.appendChild(this.sliderView_.element),this.element.appendChild(b);const C=a.createElement("div");C.classList.add(mi("t")),C.appendChild(this.textView_.element),this.element.appendChild(C)}}const Ye=x("rsl");class ln{constructor(a,p){this.onSliderPropsChange_=this.onSliderPropsChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.sliderProps_=p.sliderProps,this.sliderProps_.emitter.on("change",this.onSliderPropsChange_),this.element=a.createElement("div"),this.element.classList.add(Ye()),p.viewProps.bindClassModifiers(this.element),this.value_=p.value,this.value_.emitter.on("change",this.onValueChange_);const b=a.createElement("div");b.classList.add(Ye("t")),this.element.appendChild(b),this.trackElement=b;const C=a.createElement("div");C.classList.add(Ye("b")),b.appendChild(C),this.barElement=C;const S=["min","max"].map(O=>{const G=a.createElement("div");return G.classList.add(Ye("k"),Ye("k",O)),b.appendChild(G),G});this.knobElements=[S[0],S[1]],this.update_()}valueToX_(a){const p=this.sliderProps_.get("minValue"),b=this.sliderProps_.get("maxValue");return Tt(Pe(a,p,b,0,1),0,1)*100}update_(){const a=this.value_.rawValue;a.length===0?this.element.classList.add(Ye(void 0,"zero")):this.element.classList.remove(Ye(void 0,"zero"));const p=[this.valueToX_(a.min),this.valueToX_(a.max)];this.barElement.style.left=`${p[0]}%`,this.barElement.style.right=`${100-p[1]}%`,this.knobElements.forEach((b,C)=>{b.style.left=`${p[C]}%`})}onSliderPropsChange_(){this.update_()}onValueChange_(){this.update_()}}class fi{constructor(a,p){this.grabbing_=null,this.grabOffset_=0,this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.sliderProps=p.sliderProps,this.viewProps=p.viewProps,this.value=p.value,this.view=new ln(a,{sliderProps:this.sliderProps,value:this.value,viewProps:p.viewProps});const b=new Sn(this.view.trackElement);b.emitter.on("down",this.onPointerDown_),b.emitter.on("move",this.onPointerMove_),b.emitter.on("up",this.onPointerUp_)}ofs_(){return this.grabbing_==="min"?this.view.knobElements[0].getBoundingClientRect().width/2:this.grabbing_==="max"?-this.view.knobElements[1].getBoundingClientRect().width/2:0}valueFromData_(a){if(!a.point)return null;const p=(a.point.x+this.ofs_())/a.bounds.width,b=this.sliderProps.get("minValue"),C=this.sliderProps.get("maxValue");return Pe(p,0,1,b,C)}onPointerDown_(a){if(!a.data.point)return;const p=a.data.point.x/a.data.bounds.width,b=this.value.rawValue,C=this.sliderProps.get("minValue"),S=this.sliderProps.get("maxValue"),O=Pe(b.min,C,S,0,1),G=Pe(b.max,C,S,0,1);Math.abs(G-p)<=.025?this.grabbing_="max":Math.abs(O-p)<=.025?this.grabbing_="min":p>=O&&p<=G?(this.grabbing_="length",this.grabOffset_=Pe(p-O,0,1,0,S-C)):p<O?(this.grabbing_="min",this.onPointerMove_(a)):p>G&&(this.grabbing_="max",this.onPointerMove_(a))}applyPointToValue_(a,p){const b=this.valueFromData_(a);if(b===null)return;const C=this.sliderProps.get("minValue"),S=this.sliderProps.get("maxValue");if(this.grabbing_==="min")this.value.setRawValue(new je(b,this.value.rawValue.max),p);else if(this.grabbing_==="max")this.value.setRawValue(new je(this.value.rawValue.min,b),p);else if(this.grabbing_==="length"){const O=this.value.rawValue.length;let G=b-this.grabOffset_,oe=G+O;G<C?(G=C,oe=C+O):oe>S&&(G=S-O,oe=S),this.value.setRawValue(new je(G,oe),p)}}onPointerMove_(a){this.applyPointToValue_(a.data,{forceEmit:!1,last:!1})}onPointerUp_(a){this.applyPointToValue_(a.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class lt{constructor(a,p){this.value=p.value,this.viewProps=p.viewProps,this.sc_=new fi(a,p);const b={baseStep:p.baseStep,constraint:p.constraint,textProps:Y.fromObject({draggingScale:p.draggingScale,formatter:p.formatter})};this.tc_=new _t(a,{assembly:di,axes:[b,b],parser:p.parser,value:this.value,viewProps:p.viewProps}),this.view=new En(a,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function Zi(d){return je.isObject(d)?new je(d.min,d.max):new je(0,0)}function vi(d,a){d.writeProperty("max",a.max),d.writeProperty("min",a.min)}function Js(d){const a=[],p=nn(d);p&&a.push(p);const b=Us(d);return b&&a.push(b),new an(new Pn(a))}const Tn={id:"input-interval",type:"input",css:'.tp-cbzgv,.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-radv_b,.tp-rslv_k,.tp-cbzv_b{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-radv_b:hover,.tp-rslv_k:hover,.tp-cbzv_b:hover{background-color:var(--btn-bg-h)}.tp-radv_b:focus,.tp-rslv_k:focus,.tp-cbzv_b:focus{background-color:var(--btn-bg-f)}.tp-radv_b:active,.tp-rslv_k:active,.tp-cbzv_b:active{background-color:var(--btn-bg-a)}.tp-radv_b:disabled,.tp-rslv_k:disabled,.tp-cbzv_b:disabled{opacity:.5}.tp-cbzgv{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-cbzgv:hover{background-color:var(--in-bg-h)}.tp-cbzgv:focus{background-color:var(--in-bg-f)}.tp-cbzgv:active{background-color:var(--in-bg-a)}.tp-cbzgv:disabled{opacity:.5}.tp-btngridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-btngridv.tp-v-disabled{opacity:.5}.tp-btngridv .tp-btnv_b:disabled{opacity:1}.tp-btngridv .tp-btnv_b:disabled .tp-btnv_t{opacity:.5}.tp-btngridv .tp-btnv_b{border-radius:0}.tp-cbzv{position:relative}.tp-cbzv_h{display:flex}.tp-cbzv_b{margin-right:4px;position:relative;width:var(--bld-us)}.tp-cbzv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-cbzv_b svg path{stroke:var(--bs-bg);stroke-width:2}.tp-cbzv_t{flex:1}.tp-cbzv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-cbzv.tp-cbzv-expanded .tp-cbzv_p{margin-top:var(--bld-s);opacity:1}.tp-cbzv.tp-cbzv-cpl .tp-cbzv_p{overflow:visible}.tp-cbzv .tp-popv{left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-cbzpv_t{margin-top:var(--bld-s)}.tp-cbzgv{height:auto;overflow:hidden;position:relative}.tp-cbzgv.tp-v-disabled{opacity:.5}.tp-cbzgv_p{left:16px;position:absolute;right:16px;top:0}.tp-cbzgv_g{cursor:pointer;display:block;height:calc(var(--bld-us)*5);width:100%}.tp-cbzgv_u{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_l{fill:rgba(0,0,0,0);stroke:var(--in-fg)}.tp-cbzgv_v{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-cbzgv_h{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;pointer-events:none;position:absolute;width:4px}.tp-cbzgv:focus .tp-cbzgv_h-sel{background-color:var(--in-fg);border-width:0}.tp-cbzprvv{cursor:pointer;height:4px;padding:4px 0;position:relative}.tp-cbzprvv_g{display:block;height:100%;overflow:visible;width:100%}.tp-cbzprvv_t{opacity:.5;stroke:var(--mo-fg)}.tp-cbzprvv_m{background-color:var(--mo-fg);border-radius:50%;height:4px;margin-left:-2px;margin-top:-2px;opacity:0;position:absolute;top:50%;transition:opacity .2s ease-out;width:4px}.tp-cbzprvv_m.tp-cbzprvv_m-a{opacity:1}.tp-fpsv{position:relative}.tp-fpsv_l{bottom:4px;color:var(--mo-fg);line-height:1;right:4px;pointer-events:none;position:absolute}.tp-fpsv_u{margin-left:.2em;opacity:.7}.tp-rslv{cursor:pointer;padding-left:8px;padding-right:8px}.tp-rslv.tp-v-disabled{opacity:.5}.tp-rslv_t{height:calc(var(--bld-us));position:relative}.tp-rslv_t::before{background-color:var(--in-bg);border-radius:1px;content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:-4px;right:-4px}.tp-rslv_b{bottom:0;top:0;position:absolute}.tp-rslv_b::before{background-color:var(--in-fg);content:"";height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.tp-rslv_k{height:calc(var(--bld-us) - 8px);margin-top:calc((var(--bld-us) - 8px)/-2);position:absolute;top:50%;width:8px}.tp-rslv_k.tp-rslv_k-min{margin-left:-8px}.tp-rslv_k.tp-rslv_k-max{margin-left:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-min{border-bottom-right-radius:0;border-top-right-radius:0}.tp-rslv.tp-rslv-zero .tp-rslv_k.tp-rslv_k-max{border-bottom-left-radius:0;border-top-left-radius:0}.tp-rsltxtv{display:flex}.tp-rsltxtv_s{flex:1}.tp-rsltxtv_t{flex:1;margin-left:4px}.tp-radv_l{display:block;position:relative}.tp-radv_i{left:0;opacity:0;position:absolute;top:0}.tp-radv_b{opacity:.5}.tp-radv_i:hover+.tp-radv_b{background-color:var(--btn-bg-h)}.tp-radv_i:focus+.tp-radv_b{background-color:var(--btn-bg-f)}.tp-radv_i:active+.tp-radv_b{background-color:var(--btn-bg-a)}.tp-radv_i:checked+.tp-radv_b{opacity:1}.tp-radv_t{bottom:0;color:inherit;left:0;overflow:hidden;position:absolute;right:0;text-align:center;text-overflow:ellipsis;top:0}.tp-radv_i:disabled+.tp-radv_b>.tp-radv_t{opacity:.5}.tp-radgridv{border-radius:var(--elm-br);display:grid;overflow:hidden;gap:2px}.tp-radgridv.tp-v-disabled{opacity:.5}.tp-radgridv .tp-radv_b{border-radius:0}',accept:(d,a)=>{if(!je.isObject(d))return null;const p=ue,b=te(a,{format:p.optional.function,max:p.optional.number,min:p.optional.number,step:p.optional.number});return b?{initialValue:new je(d.min,d.max),params:b}:null},binding:{reader:d=>Zi,constraint:d=>Js(d.params),equals:je.equals,writer:d=>vi},controller(d){var a;const p=d.value,b=d.constraint;if(!(b instanceof an))throw _.shouldNeverHappen();const C=(p.rawValue.min+p.rawValue.max)/2,S=(a=d.params.format)!==null&&a!==void 0?a:Ae(en(b.edge,C)),O=b.edge&&pt(b.edge,ot);if(O)return new lt(d.document,{baseStep:ni(b.edge),constraint:b.edge,draggingScale:Ln(b.edge,C),formatter:S,parser:Wt,sliderProps:new Y({maxValue:O.values.value("max"),minValue:O.values.value("min")}),value:p,viewProps:d.viewProps});const G={baseStep:ni(b.edge),constraint:b.edge,textProps:Y.fromObject({draggingScale:C,formatter:S})};return new _t(d.document,{assembly:di,axes:[G,G],parser:Wt,value:p,viewProps:d.viewProps})}};class xt{constructor(a){this.controller_=a}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(a){this.controller_.viewProps.set("disabled",a)}get title(){var a;return(a=this.controller_.props.get("title"))!==null&&a!==void 0?a:""}set title(a){this.controller_.props.set("title",a)}}class Ct extends c{constructor(a,p,b,C,S){super(a,C,S),this.cell=p,this.index=b}}class cn extends s{constructor(a){super(a),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(b=>{const C=new xt(b);this.cellToApiMap_.set(b,C)})}get value(){return this.controller_.value}cell(a,p){const b=this.controller_.valueController,C=b.cellControllers[p*b.size[0]+a];return this.cellToApiMap_.get(C)}on(a,p){const b=p.bind(this);this.controller_.value.emitter.on(a,C=>{const S=this.controller_.valueController,O=S.findCellByValue(C.rawValue);if(!O)return;const G=this.cellToApiMap_.get(O);if(!G)return;const oe=S.cellControllers.indexOf(O);b(new Ct(this,G,[oe%S.size[0],Math.floor(oe/S.size[0])],C.rawValue,void 0))})}}const pn=x("rad");class Wi{constructor(a,p){this.element=a.createElement("div"),this.element.classList.add(pn()),p.viewProps.bindClassModifiers(this.element);const b=a.createElement("label");b.classList.add(pn("l")),this.element.appendChild(b);const C=a.createElement("input");C.classList.add(pn("i")),C.name=p.name,C.type="radio",p.viewProps.bindDisabled(C),b.appendChild(C),this.inputElement=C;const S=a.createElement("div");S.classList.add(pn("b")),b.appendChild(S);const O=a.createElement("div");O.classList.add(pn("t")),S.appendChild(O),T(p.props,"title",G=>{O.textContent=G})}}class Ji{constructor(a,p){this.props=p.props,this.viewProps=p.viewProps,this.view=new Wi(a,{name:p.name,props:this.props,viewProps:this.viewProps})}}class On{constructor(a,p){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=p.size;const[b,C]=this.size;for(let S=0;S<C;S++)for(let O=0;O<b;O++){const G=new Ji(a,{name:p.groupName,props:Y.fromObject(Object.assign({},p.cellConfig(O,S))),viewProps:be.create()});this.cellCs_.push(G),this.cellValues_.push(p.cellConfig(O,S).value)}this.value=p.value,I(this.value,S=>{const O=this.findCellByValue(S);O&&(O.view.inputElement.checked=!0)}),this.viewProps=be.create(),this.view=new ct(a,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${b}, 1fr)`,this.cellCs_.forEach(S=>{S.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(S.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(a){const p=this.cellValues_.findIndex(b=>b===a);return p<0?null:this.cellCs_[p]}onCellInputChange_(a){const p=a.currentTarget,b=this.cellCs_.findIndex(C=>C.view.inputElement===p);b<0||(this.value.rawValue=this.cellValues_[b])}}const Pt=function(){return{id:"radiogrid",type:"blade",accept(d){const a=ue,p=te(d,{cells:a.required.function,groupName:a.required.string,size:a.required.array(a.required.number),value:a.required.raw,view:a.required.constant("radiogrid"),label:a.optional.string});return p?{params:p}:null},controller(d){return new vt(d.document,{blade:d.blade,props:Y.fromObject({label:d.params.label}),valueController:new On(d.document,{groupName:d.params.groupName,cellConfig:d.params.cells,size:d.params.size,value:X(d.params.value)})})},api(d){return!(d.controller instanceof vt)||!(d.controller.valueController instanceof On)?null:new cn(d.controller)}}}();function bi(d){return{id:"input-radiogrid",type:"input",accept(a,p){if(!d.isType(a))return null;const b=ue,C=te(p,{cells:b.required.function,groupName:b.required.string,size:b.required.array(b.required.number),view:b.required.constant("radiogrid")});return C?{initialValue:a,params:C}:null},binding:d.binding,controller:a=>new On(a.document,{cellConfig:a.params.cells,groupName:a.params.groupName,size:a.params.size,value:a.value})}}const Hs=bi({isType:d=>typeof d=="number",binding:{reader:d=>Ls,writer:d=>Xe}}),er=bi({isType:d=>typeof d=="string",binding:{reader:d=>Vi,writer:d=>Xe}}),tr=bi({isType:d=>typeof d=="boolean",binding:{reader:d=>qt,writer:d=>Xe}}),Hi=[$s,yt,ui,Tn,Pt,tr,Hs,er];r.ButtonCellApi=Gi,r.ButtonGridApi=Ki,r.ButtonGridController=si,r.CubicBezier=ht,r.CubicBezierApi=$i,r.CubicBezierAssembly=oi,r.CubicBezierController=In,r.CubicBezierGraphController=tt,r.CubicBezierGraphView=Se,r.CubicBezierPickerController=Qi,r.CubicBezierPickerView=Yi,r.CubicBezierPreviewView=Nt,r.CubicBezierView=Xi,r.FpsGraphBladeApi=_e,r.FpsGraphController=hi,r.FpsView=Fe,r.Fpswatch=ke,r.Interval=je,r.IntervalAssembly=di,r.IntervalConstraint=an,r.RadioCellApi=xt,r.RadioController=Ji,r.RadioGridApi=cn,r.RadioGridController=On,r.RadioView=Wi,r.RangeSliderController=fi,r.RangeSliderTextController=lt,r.RangeSliderTextView=En,r.RangeSliderView=ln,r.TpRadioGridChangeEvent=Ct,r.plugins=Hi,Object.defineProperty(r,"__esModule",{value:!0})})})(vs,vs.exports);var to=vs.exports;const Rc=Uo({__proto__:null,default:ul(to)},[to]);let Kt,ki;const Gc=(v="tres-container")=>{Kt||(Kt=new Uc.Pane({container:document.querySelector(v)||void 0}),Kt.registerPlugin(Rc),ki=Kt.addBlade({view:"fpsgraph",label:"fpsgraph"}));function i(){Kt&&Kt.dispose()}return P.onMounted(()=>{const{onBeforeLoop:r,onAfterLoop:s,resume:o}=Ie.useRenderLoop();o(),r(()=>ki.begin()),s(()=>ki.end())}),P.onUnmounted(()=>{i()}),{pane:Kt,fpsGraph:ki,disposeTweakPane:i}};ee.Box=nc,ee.Circle=rc,ee.Cone=lc,ee.Dodecahedron=hc,ee.Environment=_l,ee.FBXModel=Ul,ee.GLTFModel=zl,ee.Icosahedron=mc,ee.Levioso=Fl,ee.MapControls=Zl,ee.MeshWobbleMaterial=Hl,ee.Octahedron=bc,ee.OrbitControls=Gl,ee.PamCameraMouse=Vl,ee.Plane=yc,ee.PointerLockControls=ql,ee.Ring=Pc,ee.Smoke=Nl,ee.Sphere=Ac,ee.Stars=Il,ee.Tetrahedron=Dc,ee.Text3D=bl,ee.Torus=Tc,ee.TorusKnot=Nc,ee.TransformControls=Xl,ee.Tube=zc,ee.useAnimations=gl,ee.useEnvironment=qr,ee.useFBX=eo,ee.useGLTF=Hr,ee.usePamCameraMouse=Jr,ee.useTweakPane=Gc,Object.defineProperty(ee,Symbol.toStringTag,{value:"Module"})});
|