@tresjs/cientos 0.2.0 → 0.4.0

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.
@@ -1,11 +1,17 @@
1
1
  /**
2
2
  * name: @tresjs/cientos
3
- * version: v0.2.0
3
+ * version: v0.4.0
4
4
  * (c) 2022
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/)
7
7
  */
8
- (function(It,Rt){typeof exports=="object"&&typeof module<"u"?Rt(exports,require("vue"),require("@tresjs/core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","@tresjs/core","three"],Rt):(It=typeof globalThis<"u"?globalThis:It||self,Rt(It.trescientos={},It.Vue,It.core,It.Three))})(this,function(It,Rt,Ms,E){"use strict";function mr(Y,$){for(var T=0;T<$.length;T++){const u=$[T];if(typeof u!="string"&&!Array.isArray(u)){for(const F in u)if(F!=="default"&&!(F in Y)){const nt=Object.getOwnPropertyDescriptor(u,F);nt&&Object.defineProperty(Y,F,nt.get?nt:{enumerable:!0,get:()=>u[F]})}}}return Object.freeze(Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"}))}function k(Y,$,T){return $ in Y?Object.defineProperty(Y,$,{value:T,enumerable:!0,configurable:!0,writable:!0}):Y[$]=T,Y}const Ls=(Y,$)=>(Y%$+$)%$;class br extends E.EventDispatcher{constructor($,T){super(),k(this,"object",void 0),k(this,"domElement",void 0),k(this,"enabled",!0),k(this,"target",new E.Vector3),k(this,"minDistance",0),k(this,"maxDistance",1/0),k(this,"minZoom",0),k(this,"maxZoom",1/0),k(this,"minPolarAngle",0),k(this,"maxPolarAngle",Math.PI),k(this,"minAzimuthAngle",-1/0),k(this,"maxAzimuthAngle",1/0),k(this,"enableDamping",!1),k(this,"dampingFactor",.05),k(this,"enableZoom",!0),k(this,"zoomSpeed",1),k(this,"enableRotate",!0),k(this,"rotateSpeed",1),k(this,"enablePan",!0),k(this,"panSpeed",1),k(this,"screenSpacePanning",!0),k(this,"keyPanSpeed",7),k(this,"autoRotate",!1),k(this,"autoRotateSpeed",2),k(this,"reverseOrbit",!1),k(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),k(this,"mouseButtons",{LEFT:E.MOUSE.ROTATE,MIDDLE:E.MOUSE.DOLLY,RIGHT:E.MOUSE.PAN}),k(this,"touches",{ONE:E.TOUCH.ROTATE,TWO:E.TOUCH.DOLLY_PAN}),k(this,"target0",void 0),k(this,"position0",void 0),k(this,"zoom0",void 0),k(this,"_domElementKeyEvents",null),k(this,"getPolarAngle",void 0),k(this,"getAzimuthalAngle",void 0),k(this,"setPolarAngle",void 0),k(this,"setAzimuthalAngle",void 0),k(this,"getDistance",void 0),k(this,"listenToKeyEvents",void 0),k(this,"saveState",void 0),k(this,"reset",void 0),k(this,"update",void 0),k(this,"connect",void 0),k(this,"dispose",void 0),this.object=$,this.domElement=T,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object instanceof E.PerspectiveCamera?this.object.zoom:1,this.getPolarAngle=()=>D.phi,this.getAzimuthalAngle=()=>D.theta,this.setPolarAngle=v=>{let f=Ls(v,2*Math.PI),x=D.phi;x<0&&(x+=2*Math.PI),f<0&&(f+=2*Math.PI);let A=Math.abs(f-x);2*Math.PI-A<A&&(f<x?f+=2*Math.PI:x+=2*Math.PI),S.phi=f-x,u.update()},this.setAzimuthalAngle=v=>{let f=Ls(v,2*Math.PI),x=D.theta;x<0&&(x+=2*Math.PI),f<0&&(f+=2*Math.PI);let A=Math.abs(f-x);2*Math.PI-A<A&&(f<x?f+=2*Math.PI:x+=2*Math.PI),S.theta=f-x,u.update()},this.getDistance=()=>u.object.position.distanceTo(u.target),this.listenToKeyEvents=v=>{v.addEventListener("keydown",$t),this._domElementKeyEvents=v},this.saveState=()=>{u.target0.copy(u.target),u.position0.copy(u.object.position),u.zoom0=u.object instanceof E.PerspectiveCamera?u.object.zoom:1},this.reset=()=>{u.target.copy(u.target0),u.object.position.copy(u.position0),u.object instanceof E.PerspectiveCamera&&(u.object.zoom=u.zoom0,u.object.updateProjectionMatrix()),u.dispatchEvent(F),u.update(),B=y.NONE},this.update=(()=>{const v=new E.Vector3,f=new E.Quaternion().setFromUnitVectors($.up,new E.Vector3(0,1,0)),x=f.clone().invert(),A=new E.Vector3,W=new E.Quaternion,ft=2*Math.PI;return function(){const Xe=u.object.position;v.copy(Xe).sub(u.target),v.applyQuaternion(f),D.setFromVector3(v),u.autoRotate&&B===y.NONE&&Ce(G()),u.enableDamping?(D.theta+=S.theta*u.dampingFactor,D.phi+=S.phi*u.dampingFactor):(D.theta+=S.theta,D.phi+=S.phi);let pt=u.minAzimuthAngle,ct=u.maxAzimuthAngle;return isFinite(pt)&&isFinite(ct)&&(pt<-Math.PI?pt+=ft:pt>Math.PI&&(pt-=ft),ct<-Math.PI?ct+=ft:ct>Math.PI&&(ct-=ft),pt<=ct?D.theta=Math.max(pt,Math.min(ct,D.theta)):D.theta=D.theta>(pt+ct)/2?Math.max(pt,D.theta):Math.min(ct,D.theta)),D.phi=Math.max(u.minPolarAngle,Math.min(u.maxPolarAngle,D.phi)),D.makeSafe(),D.radius*=U,D.radius=Math.max(u.minDistance,Math.min(u.maxDistance,D.radius)),u.enableDamping===!0?u.target.addScaledVector(jt,u.dampingFactor):u.target.add(jt),v.setFromSpherical(D),v.applyQuaternion(x),Xe.copy(u.target).add(v),u.object.lookAt(u.target),u.enableDamping===!0?(S.theta*=1-u.dampingFactor,S.phi*=1-u.dampingFactor,jt.multiplyScalar(1-u.dampingFactor)):(S.set(0,0,0),jt.set(0,0,0)),U=1,L||A.distanceToSquared(u.object.position)>Mt||8*(1-W.dot(u.object.quaternion))>Mt?(u.dispatchEvent(F),A.copy(u.object.position),W.copy(u.object.quaternion),L=!1,!0):!1}})(),this.connect=v=>{v===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),u.domElement=v,u.domElement.style.touchAction="none",u.domElement.addEventListener("contextmenu",Pt),u.domElement.addEventListener("pointerdown",Me),u.domElement.addEventListener("pointercancel",Ft),u.domElement.addEventListener("wheel",yt)},this.dispose=()=>{var v,f,x,A,W,ft;(v=u.domElement)===null||v===void 0||v.removeEventListener("contextmenu",Pt),(f=u.domElement)===null||f===void 0||f.removeEventListener("pointerdown",Me),(x=u.domElement)===null||x===void 0||x.removeEventListener("pointercancel",Ft),(A=u.domElement)===null||A===void 0||A.removeEventListener("wheel",yt),(W=u.domElement)===null||W===void 0||W.ownerDocument.removeEventListener("pointermove",Kt),(ft=u.domElement)===null||ft===void 0||ft.ownerDocument.removeEventListener("pointerup",Wt),u._domElementKeyEvents!==null&&u._domElementKeyEvents.removeEventListener("keydown",$t)};const u=this,F={type:"change"},nt={type:"start"},Vt={type:"end"},y={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let B=y.NONE;const Mt=1e-6,D=new E.Spherical,S=new E.Spherical;let U=1;const jt=new E.Vector3;let L=!1;const it=new E.Vector2,tt=new E.Vector2,j=new E.Vector2,dt=new E.Vector2,V=new E.Vector2,Ct=new E.Vector2,Bt=new E.Vector2,at=new E.Vector2,X=new E.Vector2,O=[],Z={};function G(){return 2*Math.PI/60/60*u.autoRotateSpeed}function Ut(){return Math.pow(.95,u.zoomSpeed)}function Ce(v){u.reverseOrbit?S.theta+=v:S.theta-=v}function ye(v){u.reverseOrbit?S.phi+=v:S.phi-=v}const ht=(()=>{const v=new E.Vector3;return function(x,A){v.setFromMatrixColumn(A,0),v.multiplyScalar(-x),jt.add(v)}})(),Pe=(()=>{const v=new E.Vector3;return function(x,A){u.screenSpacePanning===!0?v.setFromMatrixColumn(A,1):(v.setFromMatrixColumn(A,0),v.crossVectors(u.object.up,v)),v.multiplyScalar(x),jt.add(v)}})(),z=(()=>{const v=new E.Vector3;return function(x,A){const W=u.domElement;if(W&&u.object instanceof E.PerspectiveCamera&&u.object.isPerspectiveCamera){const ft=u.object.position;v.copy(ft).sub(u.target);let le=v.length();le*=Math.tan(u.object.fov/2*Math.PI/180),ht(2*x*le/W.clientHeight,u.object.matrix),Pe(2*A*le/W.clientHeight,u.object.matrix)}else W&&u.object instanceof E.OrthographicCamera&&u.object.isOrthographicCamera?(ht(x*(u.object.right-u.object.left)/u.object.zoom/W.clientWidth,u.object.matrix),Pe(A*(u.object.top-u.object.bottom)/u.object.zoom/W.clientHeight,u.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),u.enablePan=!1)}})();function C(v){u.object instanceof E.PerspectiveCamera&&u.object.isPerspectiveCamera?U/=v:u.object instanceof E.OrthographicCamera&&u.object.isOrthographicCamera?(u.object.zoom=Math.max(u.minZoom,Math.min(u.maxZoom,u.object.zoom*v)),u.object.updateProjectionMatrix(),L=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),u.enableZoom=!1)}function Fe(v){u.object instanceof E.PerspectiveCamera&&u.object.isPerspectiveCamera?U*=v:u.object instanceof E.OrthographicCamera&&u.object.isOrthographicCamera?(u.object.zoom=Math.max(u.minZoom,Math.min(u.maxZoom,u.object.zoom/v)),u.object.updateProjectionMatrix(),L=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),u.enableZoom=!1)}function $e(v){it.set(v.clientX,v.clientY)}function He(v){Bt.set(v.clientX,v.clientY)}function lt(v){dt.set(v.clientX,v.clientY)}function Ee(v){tt.set(v.clientX,v.clientY),j.subVectors(tt,it).multiplyScalar(u.rotateSpeed);const f=u.domElement;f&&(Ce(2*Math.PI*j.x/f.clientHeight),ye(2*Math.PI*j.y/f.clientHeight)),it.copy(tt),u.update()}function M(v){at.set(v.clientX,v.clientY),X.subVectors(at,Bt),X.y>0?C(Ut()):X.y<0&&Fe(Ut()),Bt.copy(at),u.update()}function q(v){V.set(v.clientX,v.clientY),Ct.subVectors(V,dt).multiplyScalar(u.panSpeed),z(Ct.x,Ct.y),dt.copy(V),u.update()}function cn(v){v.deltaY<0?Fe(Ut()):v.deltaY>0&&C(Ut()),u.update()}function qe(v){let f=!1;switch(v.code){case u.keys.UP:z(0,u.keyPanSpeed),f=!0;break;case u.keys.BOTTOM:z(0,-u.keyPanSpeed),f=!0;break;case u.keys.LEFT:z(u.keyPanSpeed,0),f=!0;break;case u.keys.RIGHT:z(-u.keyPanSpeed,0),f=!0;break}f&&(v.preventDefault(),u.update())}function ke(){if(O.length==1)it.set(O[0].pageX,O[0].pageY);else{const v=.5*(O[0].pageX+O[1].pageX),f=.5*(O[0].pageY+O[1].pageY);it.set(v,f)}}function Ve(){if(O.length==1)dt.set(O[0].pageX,O[0].pageY);else{const v=.5*(O[0].pageX+O[1].pageX),f=.5*(O[0].pageY+O[1].pageY);dt.set(v,f)}}function vt(){const v=O[0].pageX-O[1].pageX,f=O[0].pageY-O[1].pageY,x=Math.sqrt(v*v+f*f);Bt.set(0,x)}function mt(){u.enableZoom&&vt(),u.enablePan&&Ve()}function Xt(){u.enableZoom&&vt(),u.enableRotate&&ke()}function Zt(v){if(O.length==1)tt.set(v.pageX,v.pageY);else{const x=St(v),A=.5*(v.pageX+x.x),W=.5*(v.pageY+x.y);tt.set(A,W)}j.subVectors(tt,it).multiplyScalar(u.rotateSpeed);const f=u.domElement;f&&(Ce(2*Math.PI*j.x/f.clientHeight),ye(2*Math.PI*j.y/f.clientHeight)),it.copy(tt)}function re(v){if(O.length==1)V.set(v.pageX,v.pageY);else{const f=St(v),x=.5*(v.pageX+f.x),A=.5*(v.pageY+f.y);V.set(x,A)}Ct.subVectors(V,dt).multiplyScalar(u.panSpeed),z(Ct.x,Ct.y),dt.copy(V)}function oe(v){const f=St(v),x=v.pageX-f.x,A=v.pageY-f.y,W=Math.sqrt(x*x+A*A);at.set(0,W),X.set(0,Math.pow(at.y/Bt.y,u.zoomSpeed)),C(X.y),Bt.copy(at)}function un(v){u.enableZoom&&oe(v),u.enablePan&&re(v)}function dn(v){u.enableZoom&&oe(v),u.enableRotate&&Zt(v)}function Me(v){if(u.enabled!==!1){if(O.length===0){var f,x;(f=u.domElement)===null||f===void 0||f.ownerDocument.addEventListener("pointermove",Kt),(x=u.domElement)===null||x===void 0||x.ownerDocument.addEventListener("pointerup",Wt)}ae(v),v.pointerType==="touch"?hn(v):Ge(v)}}function Kt(v){u.enabled!==!1&&(v.pointerType==="touch"?Le(v):Ye(v))}function Wt(v){if(bt(v),O.length===0){var f,x,A;(f=u.domElement)===null||f===void 0||f.releasePointerCapture(v.pointerId),(x=u.domElement)===null||x===void 0||x.ownerDocument.removeEventListener("pointermove",Kt),(A=u.domElement)===null||A===void 0||A.ownerDocument.removeEventListener("pointerup",Wt)}u.dispatchEvent(Vt),B=y.NONE}function Ft(v){bt(v)}function Ge(v){let f;switch(v.button){case 0:f=u.mouseButtons.LEFT;break;case 1:f=u.mouseButtons.MIDDLE;break;case 2:f=u.mouseButtons.RIGHT;break;default:f=-1}switch(f){case E.MOUSE.DOLLY:if(u.enableZoom===!1)return;He(v),B=y.DOLLY;break;case E.MOUSE.ROTATE:if(v.ctrlKey||v.metaKey||v.shiftKey){if(u.enablePan===!1)return;lt(v),B=y.PAN}else{if(u.enableRotate===!1)return;$e(v),B=y.ROTATE}break;case E.MOUSE.PAN:if(v.ctrlKey||v.metaKey||v.shiftKey){if(u.enableRotate===!1)return;$e(v),B=y.ROTATE}else{if(u.enablePan===!1)return;lt(v),B=y.PAN}break;default:B=y.NONE}B!==y.NONE&&u.dispatchEvent(nt)}function Ye(v){if(u.enabled!==!1)switch(B){case y.ROTATE:if(u.enableRotate===!1)return;Ee(v);break;case y.DOLLY:if(u.enableZoom===!1)return;M(v);break;case y.PAN:if(u.enablePan===!1)return;q(v);break}}function yt(v){u.enabled===!1||u.enableZoom===!1||B!==y.NONE&&B!==y.ROTATE||(v.preventDefault(),u.dispatchEvent(nt),cn(v),u.dispatchEvent(Vt))}function $t(v){u.enabled===!1||u.enablePan===!1||qe(v)}function hn(v){switch(Lt(v),O.length){case 1:switch(u.touches.ONE){case E.TOUCH.ROTATE:if(u.enableRotate===!1)return;ke(),B=y.TOUCH_ROTATE;break;case E.TOUCH.PAN:if(u.enablePan===!1)return;Ve(),B=y.TOUCH_PAN;break;default:B=y.NONE}break;case 2:switch(u.touches.TWO){case E.TOUCH.DOLLY_PAN:if(u.enableZoom===!1&&u.enablePan===!1)return;mt(),B=y.TOUCH_DOLLY_PAN;break;case E.TOUCH.DOLLY_ROTATE:if(u.enableZoom===!1&&u.enableRotate===!1)return;Xt(),B=y.TOUCH_DOLLY_ROTATE;break;default:B=y.NONE}break;default:B=y.NONE}B!==y.NONE&&u.dispatchEvent(nt)}function Le(v){switch(Lt(v),B){case y.TOUCH_ROTATE:if(u.enableRotate===!1)return;Zt(v),u.update();break;case y.TOUCH_PAN:if(u.enablePan===!1)return;re(v),u.update();break;case y.TOUCH_DOLLY_PAN:if(u.enableZoom===!1&&u.enablePan===!1)return;un(v),u.update();break;case y.TOUCH_DOLLY_ROTATE:if(u.enableZoom===!1&&u.enableRotate===!1)return;dn(v),u.update();break;default:B=y.NONE}}function Pt(v){u.enabled!==!1&&v.preventDefault()}function ae(v){O.push(v)}function bt(v){delete Z[v.pointerId];for(let f=0;f<O.length;f++)if(O[f].pointerId==v.pointerId){O.splice(f,1);return}}function Lt(v){let f=Z[v.pointerId];f===void 0&&(f=new E.Vector2,Z[v.pointerId]=f),f.set(v.pageX,v.pageY)}function St(v){const f=v.pointerId===O[0].pointerId?O[1]:O[0];return Z[f.pointerId]}T!==void 0&&this.connect(T),this.update()}}var Ss=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function fr(Y){return Y&&Y.__esModule&&Object.prototype.hasOwnProperty.call(Y,"default")?Y.default:Y}const _r=Rt.defineComponent({__name:"OrbitControls",setup(Y){let $;const T=Rt.inject("UseTresState");return Rt.watch(()=>T,u=>{if(u){const{camera:F,renderer:nt}=u;F&&nt&&($=new br(F,Rt.unref(nt).domElement),$.enableDamping=!0,Ms.useLoop(()=>{$&&$.update()}))}},{deep:!0}),()=>{}}});var bi={exports:{}};/*! Tweakpane 3.1.0 (c) 2016 cocopon, licensed under the MIT license. */(function(Y,$){(function(T,u){u($)})(Ss,function(T){class u{constructor(t){const[e,s]=t.split("-"),l=e.split(".");this.major=parseInt(l[0],10),this.minor=parseInt(l[1],10),this.patch=parseInt(l[2],10),this.prerelease=s!=null?s:null}toString(){const t=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[t,this.prerelease].join("-"):t}}class F{constructor(t){this.controller_=t}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(t){this.controller_.viewProps.set("disabled",t)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(t){this.controller_.viewProps.set("hidden",t)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class nt{constructor(t){this.target=t}}class Vt extends nt{constructor(t,e,s,l){super(t),this.value=e,this.presetKey=s,this.last=l!=null?l:!0}}class y extends nt{constructor(t,e,s){super(t),this.value=e,this.presetKey=s}}class B extends nt{constructor(t,e){super(t),this.expanded=e}}class Mt extends nt{constructor(t,e){super(t),this.index=e}}function D(n){return n}function S(n){return n==null}function U(n,t){if(n.length!==t.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==t[e])return!1;return!0}const jt={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 L{constructor(t){var e;this.message=(e=jt[t.type](t.context))!==null&&e!==void 0?e:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=t.type}static alreadyDisposed(){return new L({type:"alreadydisposed"})}static notBindable(){return new L({type:"notbindable"})}static propertyNotFound(t){return new L({type:"propertynotfound",context:{name:t}})}static shouldNeverHappen(){return new L({type:"shouldneverhappen"})}}class it{constructor(t,e,s){this.obj_=t,this.key_=e,this.presetKey_=s!=null?s:e}static isBindable(t){return!(t===null||typeof t!="object")}get key(){return this.key_}get presetKey(){return this.presetKey_}read(){return this.obj_[this.key_]}write(t){this.obj_[this.key_]=t}writeProperty(t,e){const s=this.read();if(!it.isBindable(s))throw L.notBindable();if(!(t in s))throw L.propertyNotFound(t);s[t]=e}}class tt extends F{get label(){return this.controller_.props.get("label")}set label(t){this.controller_.props.set("label",t)}get title(){var t;return(t=this.controller_.valueController.props.get("title"))!==null&&t!==void 0?t:""}set title(t){this.controller_.valueController.props.set("title",t)}on(t,e){const s=e.bind(this);return this.controller_.valueController.emitter.on(t,()=>{s(new nt(this))}),this}}class j{constructor(){this.observers_={}}on(t,e){let s=this.observers_[t];return s||(s=this.observers_[t]=[]),s.push({handler:e}),this}off(t,e){const s=this.observers_[t];return s&&(this.observers_[t]=s.filter(l=>l.handler!==e)),this}emit(t,e){const s=this.observers_[t];!s||s.forEach(l=>{l.handler(e)})}}const dt="tp";function V(n){return(e,s)=>[dt,"-",n,"v",e?`_${e}`:"",s?`-${s}`:""].join("")}function Ct(n,t){return e=>t(n(e))}function Bt(n){return n.rawValue}function at(n,t){n.emitter.on("change",Ct(Bt,t)),t(n.rawValue)}function X(n,t,e){at(n.value(t),e)}function O(n,t,e){e?n.classList.add(t):n.classList.remove(t)}function Z(n,t){return e=>{O(n,t,e)}}function G(n,t){at(n,e=>{t.textContent=e!=null?e:""})}const Ut=V("btn");class Ce{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ut()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("button");s.classList.add(Ut("b")),e.viewProps.bindDisabled(s),this.element.appendChild(s),this.buttonElement=s;const l=t.createElement("div");l.classList.add(Ut("t")),G(e.props.value("title"),l),this.buttonElement.appendChild(l)}}class ye{constructor(t,e){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new Ce(t,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ht{constructor(t,e){var s;this.constraint_=e==null?void 0:e.constraint,this.equals_=(s=e==null?void 0:e.equals)!==null&&s!==void 0?s:(l,c)=>l===c,this.emitter=new j,this.rawValue_=t}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(t){this.setRawValue(t,{forceEmit:!1,last:!0})}setRawValue(t,e){const s=e!=null?e:{forceEmit:!1,last:!0},l=this.constraint_?this.constraint_.constrain(t):t;!!this.equals_(this.rawValue_,l)&&!s.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=l,this.emitter.emit("change",{options:s,rawValue:l,sender:this}))}}class Pe{constructor(t){this.emitter=new j,this.value_=t}get rawValue(){return this.value_}set rawValue(t){this.setRawValue(t,{forceEmit:!1,last:!0})}setRawValue(t,e){const s=e!=null?e:{forceEmit:!1,last:!0};this.value_===t&&!s.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=t,this.emitter.emit("change",{options:s,rawValue:this.value_,sender:this}))}}function z(n,t){const e=t==null?void 0:t.constraint,s=t==null?void 0:t.equals;return!e&&!s?new Pe(n):new ht(n,t)}class C{constructor(t){this.emitter=new j,this.valMap_=t;for(const e in this.valMap_)this.valMap_[e].emitter.on("change",()=>{this.emitter.emit("change",{key:e,sender:this})})}static createCore(t){return Object.keys(t).reduce((s,l)=>Object.assign(s,{[l]:z(t[l])}),{})}static fromObject(t){const e=this.createCore(t);return new C(e)}get(t){return this.valMap_[t].rawValue}set(t,e){this.valMap_[t].rawValue=e}value(t){return this.valMap_[t]}}function Fe(n,t){const s=Object.keys(t).reduce((l,c)=>{if(l===void 0)return;const h=t[c],b=h(n[c]);return b.succeeded?Object.assign(Object.assign({},l),{[c]:b.value}):void 0},{});return s}function $e(n,t){return n.reduce((e,s)=>{if(e===void 0)return;const l=t(s);if(!(!l.succeeded||l.value===void 0))return[...e,l.value]},[])}function He(n){return n===null?!1:typeof n=="object"}function lt(n){return t=>e=>{if(!t&&e===void 0)return{succeeded:!1,value:void 0};if(t&&e===void 0)return{succeeded:!0,value:void 0};const s=n(e);return s!==void 0?{succeeded:!0,value:s}:{succeeded:!1,value:void 0}}}function Ee(n){return{custom:t=>lt(t)(n),boolean:lt(t=>typeof t=="boolean"?t:void 0)(n),number:lt(t=>typeof t=="number"?t:void 0)(n),string:lt(t=>typeof t=="string"?t:void 0)(n),function:lt(t=>typeof t=="function"?t:void 0)(n),constant:t=>lt(e=>e===t?t:void 0)(n),raw:lt(t=>t)(n),object:t=>lt(e=>{if(!!He(e))return Fe(e,t)})(n),array:t=>lt(e=>{if(!!Array.isArray(e))return $e(e,t)})(n)}}const M={optional:Ee(!0),required:Ee(!1)};function q(n,t){const e=M.required.object(t)(n);return e.succeeded?e.value:void 0}function cn(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}function qe(){return["veryfirst","first","last","verylast"]}const ke=V(""),Ve={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class vt{constructor(t){this.parent_=null,this.blade=t.blade,this.view=t.view,this.viewProps=t.viewProps;const e=this.view.element;this.blade.value("positions").emitter.on("change",()=>{qe().forEach(s=>{e.classList.remove(ke(void 0,Ve[s]))}),this.blade.get("positions").forEach(s=>{e.classList.add(ke(void 0,Ve[s]))})}),this.viewProps.handleDispose(()=>{cn(e)})}get parent(){return this.parent_}}const mt="http://www.w3.org/2000/svg";function Xt(n){n.offsetHeight}function Zt(n,t){const e=n.style.transition;n.style.transition="none",t(),n.style.transition=e}function re(n){return n.ontouchstart!==void 0}function oe(){return new Function("return this")()}function un(){return oe().document}function dn(n){const t=n.ownerDocument.defaultView;return t&&"document"in t?n.getContext("2d"):null}const Me={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 Kt(n,t){const e=n.createElementNS(mt,"svg");return e.innerHTML=Me[t],e}function Wt(n,t,e){n.insertBefore(t,n.children[e])}function Ft(n){n.parentElement&&n.parentElement.removeChild(n)}function Ge(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Ye(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function yt(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const $t=V("lbl");function hn(n,t){const e=n.createDocumentFragment();return t.split(`
9
- `).map(l=>n.createTextNode(l)).forEach((l,c)=>{c>0&&e.appendChild(n.createElement("br")),e.appendChild(l)}),e}class Le{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add($t()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("div");s.classList.add($t("l")),X(e.props,"label",c=>{S(c)?this.element.classList.add($t(void 0,"nol")):(this.element.classList.remove($t(void 0,"nol")),Ye(s),s.appendChild(hn(t,c)))}),this.element.appendChild(s),this.labelElement=s;const l=t.createElement("div");l.classList.add($t("v")),this.element.appendChild(l),this.valueElement=l}}class Pt extends vt{constructor(t,e){const s=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{view:new Le(t,{props:e.props,viewProps:s}),viewProps:s})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const ae={id:"button",type:"blade",accept(n){const t=M,e=q(n,{title:t.required.string,view:t.required.constant("button"),label:t.optional.string});return e?{params:e}:null},controller(n){return new Pt(n.document,{blade:n.blade,props:C.fromObject({label:n.params.label}),valueController:new ye(n.document,{props:C.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof Pt)||!(n.controller.valueController instanceof ye)?null:new tt(n.controller)}};class bt extends vt{constructor(t){super(t),this.value=t.value}}function Lt(){return new C({positions:z([],{equals:U})})}class St extends C{constructor(t){super(t)}static create(t){const e={completed:!0,expanded:t,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},s=C.createCore(e);return new St(s)}get styleExpanded(){var t;return(t=this.get("temporaryExpanded"))!==null&&t!==void 0?t:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const t=this.get("expandedHeight");return this.get("shouldFixHeight")&&!S(t)?`${t}px`:"auto"}bindExpandedClass(t,e){const s=()=>{this.styleExpanded?t.classList.add(e):t.classList.remove(e)};X(this,"expanded",s),X(this,"temporaryExpanded",s)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function v(n,t){let e=0;return Zt(t,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),Xt(t),e=t.clientHeight,n.set("temporaryExpanded",null),Xt(t)}),e}function f(n,t){t.style.height=n.styleHeight}function x(n,t){n.value("expanded").emitter.on("beforechange",()=>{n.set("completed",!1),S(n.get("expandedHeight"))&&n.set("expandedHeight",v(n,t)),n.set("shouldFixHeight",!0),Xt(t)}),n.emitter.on("change",()=>{f(n,t)}),f(n,t),t.addEventListener("transitionend",e=>{e.propertyName==="height"&&n.cleanUpTransition()})}class A extends F{constructor(t,e){super(t),this.rackApi_=e}}function W(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"button"}))}function ft(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"folder"}))}function le(n,t){const e=t!=null?t:{};return n.addBlade(Object.assign(Object.assign({},e),{view:"separator"}))}function Xe(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"tab"}))}class pt{constructor(t){this.emitter=new j,this.items_=[],this.cache_=new Set,this.onSubListAdd_=this.onSubListAdd_.bind(this),this.onSubListRemove_=this.onSubListRemove_.bind(this),this.extract_=t}get items(){return this.items_}allItems(){return Array.from(this.cache_)}find(t){for(const e of this.allItems())if(t(e))return e;return null}includes(t){return this.cache_.has(t)}add(t,e){if(this.includes(t))throw L.shouldNeverHappen();const s=e!==void 0?e:this.items_.length;this.items_.splice(s,0,t),this.cache_.add(t);const l=this.extract_(t);l&&(l.emitter.on("add",this.onSubListAdd_),l.emitter.on("remove",this.onSubListRemove_),l.allItems().forEach(c=>{this.cache_.add(c)})),this.emitter.emit("add",{index:s,item:t,root:this,target:this})}remove(t){const e=this.items_.indexOf(t);if(e<0)return;this.items_.splice(e,1),this.cache_.delete(t);const s=this.extract_(t);s&&(s.emitter.off("add",this.onSubListAdd_),s.emitter.off("remove",this.onSubListRemove_)),this.emitter.emit("remove",{index:e,item:t,root:this,target:this})}onSubListAdd_(t){this.cache_.add(t.item),this.emitter.emit("add",{index:t.index,item:t.item,root:this,target:t.target})}onSubListRemove_(t){this.cache_.delete(t.item),this.emitter.emit("remove",{index:t.index,item:t.item,root:this,target:t.target})}}class ct extends F{constructor(t){super(t),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(t){this.controller_.props.set("label",t)}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(t){const e=t.sender.target.read();this.emitter_.emit("change",{event:new Vt(this,e,this.controller_.binding.target.presetKey,t.options.last)})}}class _t extends Pt{constructor(t,e){super(t,e),this.binding=e.binding}}class Qt extends F{constructor(t){super(t),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(t){this.controller_.props.set("label",t)}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(t){const e=t.sender.target.read();this.emitter_.emit("update",{event:new y(this,e,this.controller_.binding.target.presetKey)})}}class Ht extends Pt{constructor(t,e){super(t,e),this.binding=e.binding,this.viewProps.bindDisabled(this.binding.ticker),this.viewProps.handleDispose(()=>{this.binding.dispose()})}}function Se(n){return n instanceof Te?n.apiSet_:n instanceof A?n.rackApi_.apiSet_:null}function Ae(n,t){const e=n.find(s=>s.controller_===t);if(!e)throw L.shouldNeverHappen();return e}function Ze(n,t,e){if(!it.isBindable(n))throw L.notBindable();return new it(n,t,e)}class Te extends F{constructor(t,e){super(t),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 pt(Se),this.pool_=e;const s=this.controller_.rack;s.emitter.on("add",this.onRackAdd_),s.emitter.on("remove",this.onRackRemove_),s.emitter.on("inputchange",this.onRackInputChange_),s.emitter.on("monitorupdate",this.onRackMonitorUpdate_),s.children.forEach(l=>{this.setUpApi_(l)})}get children(){return this.controller_.rack.children.map(t=>Ae(this.apiSet_,t))}addInput(t,e,s){const l=s!=null?s:{},c=this.controller_.view.element.ownerDocument,h=this.pool_.createInput(c,Ze(t,e,l.presetKey),l),b=new ct(h);return this.add(b,l.index)}addMonitor(t,e,s){const l=s!=null?s:{},c=this.controller_.view.element.ownerDocument,h=this.pool_.createMonitor(c,Ze(t,e),l),b=new Qt(h);return this.add(b,l.index)}addFolder(t){return ft(this,t)}addButton(t){return W(this,t)}addSeparator(t){return le(this,t)}addTab(t){return Xe(this,t)}add(t,e){this.controller_.rack.add(t.controller_,e);const s=this.apiSet_.find(l=>l.controller_===t.controller_);return s&&this.apiSet_.remove(s),this.apiSet_.add(t),t}remove(t){this.controller_.rack.remove(t.controller_)}addBlade(t){const e=this.controller_.view.element.ownerDocument,s=this.pool_.createBlade(e,t),l=this.pool_.createBladeApi(s);return this.add(l,t.index)}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}setUpApi_(t){this.apiSet_.find(s=>s.controller_===t)||this.apiSet_.add(this.pool_.createBladeApi(t))}onRackAdd_(t){this.setUpApi_(t.bladeController)}onRackRemove_(t){if(t.isRoot){const e=Ae(this.apiSet_,t.bladeController);this.apiSet_.remove(e)}}onRackInputChange_(t){const e=t.bladeController;if(e instanceof _t){const s=Ae(this.apiSet_,e),l=e.binding;this.emitter_.emit("change",{event:new Vt(s,l.target.read(),l.target.presetKey,t.options.last)})}else if(e instanceof bt){const s=Ae(this.apiSet_,e);this.emitter_.emit("change",{event:new Vt(s,e.value.rawValue,void 0,t.options.last)})}}onRackMonitorUpdate_(t){if(!(t.bladeController instanceof Ht))throw L.shouldNeverHappen();const e=Ae(this.apiSet_,t.bladeController),s=t.bladeController.binding;this.emitter_.emit("update",{event:new y(e,s.target.read(),s.target.presetKey)})}}class vn extends A{constructor(t,e){super(t,new Te(t.rackController,e)),this.emitter_=new j,this.controller_.foldable.value("expanded").emitter.on("change",s=>{this.emitter_.emit("fold",{event:new B(this,s.sender.rawValue)})}),this.rackApi_.on("change",s=>{this.emitter_.emit("change",{event:s})}),this.rackApi_.on("update",s=>{this.emitter_.emit("update",{event:s})})}get expanded(){return this.controller_.foldable.get("expanded")}set expanded(t){this.controller_.foldable.set("expanded",t)}get title(){return this.controller_.props.get("title")}set title(t){this.controller_.props.set("title",t)}get children(){return this.rackApi_.children}addInput(t,e,s){return this.rackApi_.addInput(t,e,s)}addMonitor(t,e,s){return this.rackApi_.addMonitor(t,e,s)}addFolder(t){return this.rackApi_.addFolder(t)}addButton(t){return this.rackApi_.addButton(t)}addSeparator(t){return this.rackApi_.addSeparator(t)}addTab(t){return this.rackApi_.addTab(t)}add(t,e){return this.rackApi_.add(t,e)}remove(t){this.rackApi_.remove(t)}addBlade(t){return this.rackApi_.addBlade(t)}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}}class mn extends vt{constructor(t){super({blade:t.blade,view:t.view,viewProps:t.rackController.viewProps}),this.rackController=t.rackController}}class fi{constructor(t,e){const s=V(e.viewName);this.element=t.createElement("div"),this.element.classList.add(s()),e.viewProps.bindClassModifiers(this.element)}}function _i(n,t){for(let e=0;e<n.length;e++){const s=n[e];if(s instanceof _t&&s.binding===t)return s}return null}function gi(n,t){for(let e=0;e<n.length;e++){const s=n[e];if(s instanceof Ht&&s.binding===t)return s}return null}function wi(n,t){for(let e=0;e<n.length;e++){const s=n[e];if(s instanceof bt&&s.value===t)return s}return null}function bn(n){return n instanceof Oe?n.rack:n instanceof mn?n.rackController.rack:null}function xi(n){const t=bn(n);return t?t.bcSet_:null}class Ci{constructor(t){var e;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!=null?t:null,(e=this.blade_)===null||e===void 0||e.value("positions").emitter.on("change",this.onBladePositionsChange_),this.bcSet_=new pt(xi),this.bcSet_.emitter.on("add",this.onSetAdd_),this.bcSet_.emitter.on("remove",this.onSetRemove_)}get children(){return this.bcSet_.items}add(t,e){t.parent&&t.parent.remove(t),t.parent_=this,this.bcSet_.add(t,e)}remove(t){t.parent_=null,this.bcSet_.remove(t)}find(t){return this.bcSet_.allItems().filter(e=>e instanceof t)}onSetAdd_(t){this.updatePositions_();const e=t.target===t.root;if(this.emitter.emit("add",{bladeController:t.item,index:t.index,isRoot:e,sender:this}),!e)return;const s=t.item;if(s.viewProps.emitter.on("change",this.onChildViewPropsChange_),s.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),s.viewProps.handleDispose(this.onChildDispose_),s instanceof _t)s.binding.emitter.on("change",this.onChildInputChange_);else if(s instanceof Ht)s.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(s instanceof bt)s.value.emitter.on("change",this.onChildValueChange_);else{const l=bn(s);if(l){const c=l.emitter;c.on("layout",this.onDescendantLayout_),c.on("inputchange",this.onDescendantInputChange_),c.on("monitorupdate",this.onDescendantMonitorUpdate_)}}}onSetRemove_(t){this.updatePositions_();const e=t.target===t.root;if(this.emitter.emit("remove",{bladeController:t.item,isRoot:e,sender:this}),!e)return;const s=t.item;if(s instanceof _t)s.binding.emitter.off("change",this.onChildInputChange_);else if(s instanceof Ht)s.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(s instanceof bt)s.value.emitter.off("change",this.onChildValueChange_);else{const l=bn(s);if(l){const c=l.emitter;c.off("layout",this.onDescendantLayout_),c.off("inputchange",this.onDescendantInputChange_),c.off("monitorupdate",this.onDescendantMonitorUpdate_)}}}updatePositions_(){const t=this.bcSet_.items.filter(l=>!l.viewProps.get("hidden")),e=t[0],s=t[t.length-1];this.bcSet_.items.forEach(l=>{const c=[];l===e&&(c.push("first"),(!this.blade_||this.blade_.get("positions").includes("veryfirst"))&&c.push("veryfirst")),l===s&&(c.push("last"),(!this.blade_||this.blade_.get("positions").includes("verylast"))&&c.push("verylast")),l.blade.set("positions",c)})}onChildPositionsChange_(){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildViewPropsChange_(t){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildDispose_(){this.bcSet_.items.filter(e=>e.viewProps.get("disposed")).forEach(e=>{this.bcSet_.remove(e)})}onChildInputChange_(t){const e=_i(this.find(_t),t.sender);if(!e)throw L.shouldNeverHappen();this.emitter.emit("inputchange",{bladeController:e,options:t.options,sender:this})}onChildMonitorUpdate_(t){const e=gi(this.find(Ht),t.sender);if(!e)throw L.shouldNeverHappen();this.emitter.emit("monitorupdate",{bladeController:e,sender:this})}onChildValueChange_(t){const e=wi(this.find(bt),t.sender);if(!e)throw L.shouldNeverHappen();this.emitter.emit("inputchange",{bladeController:e,options:t.options,sender:this})}onDescendantLayout_(t){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onDescendantInputChange_(t){this.emitter.emit("inputchange",{bladeController:t.bladeController,options:t.options,sender:this})}onDescendantMonitorUpdate_(t){this.emitter.emit("monitorupdate",{bladeController:t.bladeController,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class Oe extends vt{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new fi(t,{viewName:"brk",viewProps:e.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const s=new Ci(e.root?void 0:e.blade);s.emitter.on("add",this.onRackAdd_),s.emitter.on("remove",this.onRackRemove_),this.rack=s,this.viewProps.handleDispose(()=>{for(let l=this.rack.children.length-1;l>=0;l--)this.rack.children[l].viewProps.set("disposed",!0)})}onRackAdd_(t){!t.isRoot||Wt(this.view.element,t.bladeController.view.element,t.index)}onRackRemove_(t){!t.isRoot||Ft(t.bladeController.view.element)}}const $n=V("cnt");class yi{constructor(t,e){var s;this.className_=V((s=e.viewName)!==null&&s!==void 0?s:"fld"),this.element=t.createElement("div"),this.element.classList.add(this.className_(),$n()),e.viewProps.bindClassModifiers(this.element),this.foldable_=e.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),X(this.foldable_,"completed",Z(this.element,this.className_(void 0,"cpl")));const l=t.createElement("button");l.classList.add(this.className_("b")),X(e.props,"title",w=>{S(w)?this.element.classList.add(this.className_(void 0,"not")):this.element.classList.remove(this.className_(void 0,"not"))}),e.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const c=t.createElement("div");c.classList.add(this.className_("t")),G(e.props.value("title"),c),this.buttonElement.appendChild(c),this.titleElement=c;const h=t.createElement("div");h.classList.add(this.className_("m")),this.buttonElement.appendChild(h);const b=e.containerElement;b.classList.add(this.className_("c")),this.element.appendChild(b),this.containerElement=b}}class fn extends mn{constructor(t,e){var s;const l=St.create((s=e.expanded)!==null&&s!==void 0?s:!0),c=new Oe(t,{blade:e.blade,root:e.root,viewProps:e.viewProps});super(Object.assign(Object.assign({},e),{rackController:c,view:new yi(t,{containerElement:c.view.element,foldable:l,props:e.props,viewName:e.root?"rot":void 0,viewProps:e.viewProps})})),this.onTitleClick_=this.onTitleClick_.bind(this),this.props=e.props,this.foldable=l,x(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 Pi={id:"folder",type:"blade",accept(n){const t=M,e=q(n,{title:t.required.string,view:t.required.constant("folder"),expanded:t.optional.boolean});return e?{params:e}:null},controller(n){return new fn(n.document,{blade:n.blade,expanded:n.params.expanded,props:C.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof fn?new vn(n.controller,n.pool):null}};class pe extends bt{constructor(t,e){const s=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{value:e.valueController.value,view:new Le(t,{props:e.props,viewProps:s}),viewProps:s})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class _n extends F{}const Hn=V("spr");class Ei{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Hn()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("hr");s.classList.add(Hn("r")),this.element.appendChild(s)}}class qn extends vt{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new Ei(t,{viewProps:e.viewProps})}))}}const Gn={id:"separator",type:"blade",accept(n){const e=q(n,{view:M.required.constant("separator")});return e?{params:e}:null},controller(n){return new qn(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof qn?new _n(n.controller):null}},ki=V("");function De(n,t){return Z(n,ki(void 0,t))}class qt extends C{constructor(t){super(t)}static create(t){var e,s;const l=t!=null?t:{},c={disabled:(e=l.disabled)!==null&&e!==void 0?e:!1,disposed:!1,hidden:(s=l.hidden)!==null&&s!==void 0?s:!1},h=C.createCore(c);return new qt(h)}bindClassModifiers(t){X(this,"disabled",De(t,"disabled")),X(this,"hidden",De(t,"hidden"))}bindDisabled(t){X(this,"disabled",e=>{t.disabled=e})}bindTabIndex(t){X(this,"disabled",e=>{t.tabIndex=e?-1:0})}handleDispose(t){this.value("disposed").emitter.on("change",e=>{e&&t()})}}const et=V("tbi");class Vi{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(et()),e.viewProps.bindClassModifiers(this.element),X(e.props,"selected",c=>{c?this.element.classList.add(et(void 0,"sel")):this.element.classList.remove(et(void 0,"sel"))});const s=t.createElement("button");s.classList.add(et("b")),e.viewProps.bindDisabled(s),this.element.appendChild(s),this.buttonElement=s;const l=t.createElement("div");l.classList.add(et("t")),G(e.props.value("title"),l),this.buttonElement.appendChild(l),this.titleElement=l}}class We{constructor(t,e){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new Vi(t,{props:e.props,viewProps:e.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class Yn{constructor(t,e){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new We(t,{props:e.itemProps,viewProps:qt.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new Oe(t,{blade:Lt(),viewProps:qt.create()}),this.props=e.props,X(this.props,"selected",s=>{this.itemController.props.set("selected",s),this.contentController.viewProps.set("hidden",!s)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class gn{constructor(t,e){this.controller_=t,this.rackApi_=e}get title(){var t;return(t=this.controller_.itemController.props.get("title"))!==null&&t!==void 0?t:""}set title(t){this.controller_.itemController.props.set("title",t)}get selected(){return this.controller_.props.get("selected")}set selected(t){this.controller_.props.set("selected",t)}get children(){return this.rackApi_.children}addButton(t){return this.rackApi_.addButton(t)}addFolder(t){return this.rackApi_.addFolder(t)}addSeparator(t){return this.rackApi_.addSeparator(t)}addTab(t){return this.rackApi_.addTab(t)}add(t,e){this.rackApi_.add(t,e)}remove(t){this.rackApi_.remove(t)}addInput(t,e,s){return this.rackApi_.addInput(t,e,s)}addMonitor(t,e,s){return this.rackApi_.addMonitor(t,e,s)}addBlade(t){return this.rackApi_.addBlade(t)}}class Xn extends A{constructor(t,e){super(t,new Te(t.rackController,e)),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",s=>{this.emitter_.emit("change",{event:s})}),this.rackApi_.on("update",s=>{this.emitter_.emit("update",{event:s})}),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(s=>{this.setUpPageApi_(s)})}get pages(){return this.controller_.pageSet.items.map(t=>{const e=this.pageApiMap_.get(t);if(!e)throw L.shouldNeverHappen();return e})}addPage(t){const e=this.controller_.view.element.ownerDocument,s=new Yn(e,{itemProps:C.fromObject({selected:!1,title:t.title}),props:C.fromObject({selected:!1})});this.controller_.add(s,t.index);const l=this.pageApiMap_.get(s);if(!l)throw L.shouldNeverHappen();return l}removePage(t){this.controller_.remove(t)}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}setUpPageApi_(t){const e=this.rackApi_.apiSet_.find(l=>l.controller_===t.contentController);if(!e)throw L.shouldNeverHappen();const s=new gn(t,e);this.pageApiMap_.set(t,s)}onPageAdd_(t){this.setUpPageApi_(t.item)}onPageRemove_(t){if(!this.pageApiMap_.get(t.item))throw L.shouldNeverHappen();this.pageApiMap_.delete(t.item)}onSelect_(t){this.emitter_.emit("select",{event:new Mt(this,t.rawValue)})}}const Zn=-1;class Mi{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=z(!0),this.selectedIndex=z(Zn),this.items_=[]}add(t,e){const s=e!=null?e:this.items_.length;this.items_.splice(s,0,t),t.emitter.on("change",this.onItemSelectedChange_),this.keepSelection_()}remove(t){const e=this.items_.indexOf(t);e<0||(this.items_.splice(e,1),t.emitter.off("change",this.onItemSelectedChange_),this.keepSelection_())}keepSelection_(){if(this.items_.length===0){this.selectedIndex.rawValue=Zn,this.empty.rawValue=!0;return}const t=this.items_.findIndex(e=>e.rawValue);t<0?(this.items_.forEach((e,s)=>{e.rawValue=s===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((e,s)=>{e.rawValue=s===t}),this.selectedIndex.rawValue=t),this.empty.rawValue=!1}onItemSelectedChange_(t){if(t.rawValue){const e=this.items_.findIndex(s=>s===t.sender);this.items_.forEach((s,l)=>{s.rawValue=l===e}),this.selectedIndex.rawValue=e}else this.keepSelection_()}}const Ne=V("tab");class ce{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ne(),$n()),e.viewProps.bindClassModifiers(this.element),at(e.empty,Z(this.element,Ne(void 0,"nop")));const s=t.createElement("div");s.classList.add(Ne("i")),this.element.appendChild(s),this.itemsElement=s;const l=e.contentsElement;l.classList.add(Ne("c")),this.element.appendChild(l),this.contentsElement=l}}class ze extends mn{constructor(t,e){const s=new Oe(t,{blade:e.blade,viewProps:e.viewProps}),l=new Mi;super({blade:e.blade,rackController:s,view:new ce(t,{contentsElement:s.view.element,empty:l.empty,viewProps:e.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new pt(()=>null),this.pageSet_.emitter.on("add",this.onPageAdd_),this.pageSet_.emitter.on("remove",this.onPageRemove_),this.tab=l}get pageSet(){return this.pageSet_}add(t,e){this.pageSet_.add(t,e)}remove(t){this.pageSet_.remove(this.pageSet_.items[t])}onPageAdd_(t){const e=t.item;Wt(this.view.itemsElement,e.itemController.view.element,t.index),this.rackController.rack.add(e.contentController,t.index),this.tab.add(e.props.value("selected"))}onPageRemove_(t){const e=t.item;Ft(e.itemController.view.element),this.rackController.rack.remove(e.contentController),this.tab.remove(e.props.value("selected"))}}const wn={id:"tab",type:"blade",accept(n){const t=M,e=q(n,{pages:t.required.array(t.required.object({title:t.required.string})),view:t.required.constant("tab")});return!e||e.pages.length===0?null:{params:e}},controller(n){const t=new ze(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(e=>{const s=new Yn(n.document,{itemProps:C.fromObject({selected:!1,title:e.title}),props:C.fromObject({selected:!1})});t.add(s)}),t},api(n){return n.controller instanceof ze?new Xn(n.controller,n.pool):null}};function Li(n,t){const e=n.accept(t.params);if(!e)return null;const s=M.optional.boolean(t.params.disabled).value,l=M.optional.boolean(t.params.hidden).value;return n.controller({blade:Lt(),document:t.document,params:Object.assign(Object.assign({},e.params),{disabled:s,hidden:l}),viewProps:qt.create({disabled:s,hidden:l})})}class Wn{constructor(){this.disabled=!1,this.emitter=new j}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class xn{constructor(t,e){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=t,this.emitter=new j,this.interval_=e,this.setTimer_()}get disabled(){return this.disabled_}set disabled(t){this.disabled_=t,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const t=this.doc_.defaultView;t&&t.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const t=this.doc_.defaultView;t&&(this.timerId_=t.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Gt{constructor(t){this.constraints=t}constrain(t){return this.constraints.reduce((e,s)=>s.constrain(e),t)}}function R(n,t){if(n instanceof t)return n;if(n instanceof Gt){const e=n.constraints.reduce((s,l)=>s||(l instanceof t?l:null),null);if(e)return e}return null}class ue{constructor(t){this.options=t}constrain(t){const e=this.options;return e.length===0||e.filter(l=>l.value===t).length>0?t:e[0].value}}class xt{constructor(t){this.maxValue=t.max,this.minValue=t.min}constrain(t){let e=t;return S(this.minValue)||(e=Math.max(e,this.minValue)),S(this.maxValue)||(e=Math.min(e,this.maxValue)),e}}class st{constructor(t,e=0){this.step=t,this.origin=e}constrain(t){const e=this.origin%this.step,s=Math.round((t-e)/this.step);return e+s*this.step}}const Cn=V("lst");class Si{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.props_=e.props,this.element=t.createElement("div"),this.element.classList.add(Cn()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("select");s.classList.add(Cn("s")),X(this.props_,"options",c=>{Ge(s),c.forEach((h,b)=>{const w=t.createElement("option");w.dataset.index=String(b),w.textContent=h.text,w.value=String(h.value),s.appendChild(w)})}),e.viewProps.bindDisabled(s),this.element.appendChild(s),this.selectElement=s;const l=t.createElement("div");l.classList.add(Cn("m")),l.appendChild(Kt(t,"dropdown")),this.element.appendChild(l),e.value.emitter.on("change",this.onValueChange_),this.value_=e.value,this.update_()}update_(){this.selectElement.value=String(this.value_.rawValue)}onValueChange_(){this.update_()}}class Jt{constructor(t,e){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=e.props,this.value=e.value,this.viewProps=e.viewProps,this.view=new Si(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(t){const s=t.currentTarget.selectedOptions.item(0);if(!s)return;const l=Number(s.dataset.index);this.value.rawValue=this.props.get("options")[l].value}}const Qn=V("pop");class Ai{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Qn()),e.viewProps.bindClassModifiers(this.element),at(e.shows,Z(this.element,Qn(void 0,"v")))}}class yn{constructor(t,e){this.shows=z(!1),this.viewProps=e.viewProps,this.view=new Ai(t,{shows:this.shows,viewProps:this.viewProps})}}const Jn=V("txt");class Qe{constructor(t,e){this.onChange_=this.onChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Jn()),e.viewProps.bindClassModifiers(this.element),this.props_=e.props,this.props_.emitter.on("change",this.onChange_);const s=t.createElement("input");s.classList.add(Jn("i")),s.type="text",e.viewProps.bindDisabled(s),this.element.appendChild(s),this.inputElement=s,e.value.emitter.on("change",this.onChange_),this.value_=e.value,this.refresh()}refresh(){const t=this.props_.get("formatter");this.inputElement.value=t(this.value_.rawValue)}onChange_(){this.refresh()}}class Ie{constructor(t,e){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=e.parser,this.props=e.props,this.value=e.value,this.viewProps=e.viewProps,this.view=new Qe(t,{props:e.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(t){const s=t.currentTarget.value,l=this.parser_(s);S(l)||(this.value.rawValue=l),this.view.refresh()}}function Ti(n){return String(n)}function ti(n){return n==="false"?!1:!!n}function ei(n){return Ti(n)}class Oi{constructor(t){this.text=t}evaluate(){return Number(this.text)}toString(){return this.text}}const Di={"**":(n,t)=>Math.pow(n,t),"*":(n,t)=>n*t,"/":(n,t)=>n/t,"%":(n,t)=>n%t,"+":(n,t)=>n+t,"-":(n,t)=>n-t,"<<":(n,t)=>n<<t,">>":(n,t)=>n>>t,">>>":(n,t)=>n>>>t,"&":(n,t)=>n&t,"^":(n,t)=>n^t,"|":(n,t)=>n|t};class Ni{constructor(t,e,s){this.left=e,this.operator=t,this.right=s}evaluate(){const t=Di[this.operator];if(!t)throw new Error(`unexpected binary operator: '${this.operator}`);return t(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const zi={"+":n=>n,"-":n=>-n,"~":n=>~n};class Ii{constructor(t,e){this.operator=t,this.expression=e}evaluate(){const t=zi[this.operator];if(!t)throw new Error(`unexpected unary operator: '${this.operator}`);return t(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function Pn(n){return(t,e)=>{for(let s=0;s<n.length;s++){const l=n[s](t,e);if(l!=="")return l}return""}}function Re(n,t){var e;const s=n.substr(t).match(/^\s+/);return(e=s&&s[0])!==null&&e!==void 0?e:""}function Ri(n,t){const e=n.substr(t,1);return e.match(/^[1-9]$/)?e:""}function je(n,t){var e;const s=n.substr(t).match(/^[0-9]+/);return(e=s&&s[0])!==null&&e!==void 0?e:""}function ji(n,t){const e=je(n,t);if(e!=="")return e;const s=n.substr(t,1);if(t+=1,s!=="-"&&s!=="+")return"";const l=je(n,t);return l===""?"":s+l}function Je(n,t){const e=n.substr(t,1);if(t+=1,e.toLowerCase()!=="e")return"";const s=ji(n,t);return s===""?"":e+s}function ni(n,t){const e=n.substr(t,1);if(e==="0")return e;const s=Ri(n,t);return t+=s.length,s===""?"":s+je(n,t)}function Bi(n,t){const e=ni(n,t);if(t+=e.length,e==="")return"";const s=n.substr(t,1);if(t+=s.length,s!==".")return"";const l=je(n,t);return t+=l.length,e+s+l+Je(n,t)}function En(n,t){const e=n.substr(t,1);if(t+=e.length,e!==".")return"";const s=je(n,t);return t+=s.length,s===""?"":e+s+Je(n,t)}function Ui(n,t){const e=ni(n,t);return t+=e.length,e===""?"":e+Je(n,t)}const Ki=Pn([Bi,En,Ui]);function Fi(n,t){var e;const s=n.substr(t).match(/^[01]+/);return(e=s&&s[0])!==null&&e!==void 0?e:""}function Yt(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0b")return"";const s=Fi(n,t);return s===""?"":e+s}function $i(n,t){var e;const s=n.substr(t).match(/^[0-7]+/);return(e=s&&s[0])!==null&&e!==void 0?e:""}function Hi(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0o")return"";const s=$i(n,t);return s===""?"":e+s}function qi(n,t){var e;const s=n.substr(t).match(/^[0-9a-f]+/i);return(e=s&&s[0])!==null&&e!==void 0?e:""}function Gi(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0x")return"";const s=qi(n,t);return s===""?"":e+s}const Yi=Pn([Yt,Hi,Gi]),ii=Pn([Yi,Ki]);function Xi(n,t){const e=ii(n,t);return t+=e.length,e===""?null:{evaluable:new Oi(e),cursor:t}}function Zi(n,t){const e=n.substr(t,1);if(t+=e.length,e!=="(")return null;const s=At(n,t);if(!s)return null;t=s.cursor,t+=Re(n,t).length;const l=n.substr(t,1);return t+=l.length,l!==")"?null:{evaluable:s.evaluable,cursor:t}}function gt(n,t){var e;return(e=Xi(n,t))!==null&&e!==void 0?e:Zi(n,t)}function si(n,t){const e=gt(n,t);if(e)return e;const s=n.substr(t,1);if(t+=s.length,s!=="+"&&s!=="-"&&s!=="~")return null;const l=si(n,t);return l?(t=l.cursor,{cursor:t,evaluable:new Ii(s,l.evaluable)}):null}function Wi(n,t,e){e+=Re(t,e).length;const s=n.filter(l=>t.startsWith(l,e))[0];return s?(e+=s.length,e+=Re(t,e).length,{cursor:e,operator:s}):null}function kn(n,t){return(e,s)=>{const l=n(e,s);if(!l)return null;s=l.cursor;let c=l.evaluable;for(;;){const h=Wi(t,e,s);if(!h)break;s=h.cursor;const b=n(e,s);if(!b)return null;s=b.cursor,c=new Ni(h.operator,c,b.evaluable)}return c?{cursor:s,evaluable:c}:null}}const Qi=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,t)=>kn(n,t),si);function At(n,t){return t+=Re(n,t).length,Qi(n,t)}function ri(n){const t=At(n,0);return!t||t.cursor+Re(n,t.cursor).length!==n.length?null:t.evaluable}function Tt(n){var t;const e=ri(n);return(t=e==null?void 0:e.evaluate())!==null&&t!==void 0?t:null}function Vn(n){if(typeof n=="number")return n;if(typeof n=="string"){const t=Tt(n);if(!S(t))return t}return 0}function Ji(n){return String(n)}function H(n){return t=>t.toFixed(Math.max(Math.min(n,20),0))}const ts=H(0);function de(n){return ts(n)+"%"}function oi(n){return String(n)}function tn(n){return n}function Ot(n,t){for(;n.length<t;)n.push(void 0)}function es(n){const t=[];return Ot(t,n),z(t)}function ns(n){const t=n.indexOf(void 0);return t<0?n:n.slice(0,t)}function ai(n,t){const e=[...ns(n),t];return e.length>n.length?e.splice(0,e.length-n.length):Ot(e,n.length),e}function he({primary:n,secondary:t,forward:e,backward:s}){let l=!1;function c(h){l||(l=!0,h(),l=!1)}n.emitter.on("change",h=>{c(()=>{t.setRawValue(e(n,t),h.options)})}),t.emitter.on("change",h=>{c(()=>{n.setRawValue(s(n,t),h.options)}),c(()=>{t.setRawValue(e(n,t),h.options)})}),c(()=>{t.setRawValue(e(n,t),{forceEmit:!1,last:!0})})}function rt(n,t){const e=n*(t.altKey?.1:1)*(t.shiftKey?10:1);return t.upKey?+e:t.downKey?-e:0}function Et(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function Dt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function Mn(n){return n==="ArrowUp"||n==="ArrowDown"}function li(n){return Mn(n)||n==="ArrowLeft"||n==="ArrowRight"}function Ln(n,t){var e,s;const l=t.ownerDocument.defaultView,c=t.getBoundingClientRect();return{x:n.pageX-(((e=l&&l.scrollX)!==null&&e!==void 0?e:0)+c.left),y:n.pageY-(((s=l&&l.scrollY)!==null&&s!==void 0?s:0)+c.top)}}class te{constructor(t){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_=t,this.emitter=new j,t.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),t.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),t.addEventListener("touchend",this.onTouchEnd_),t.addEventListener("mousedown",this.onMouseDown_)}computePosition_(t){const e=this.elem_.getBoundingClientRect();return{bounds:{width:e.width,height:e.height},point:t?{x:t.x,y:t.y}:null}}onMouseDown_(t){var e;t.preventDefault(),(e=t.currentTarget)===null||e===void 0||e.focus();const s=this.elem_.ownerDocument;s.addEventListener("mousemove",this.onDocumentMouseMove_),s.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(Ln(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onDocumentMouseMove_(t){this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(Ln(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onDocumentMouseUp_(t){const e=this.elem_.ownerDocument;e.removeEventListener("mousemove",this.onDocumentMouseMove_),e.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:t.altKey,data:this.computePosition_(Ln(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onTouchStart_(t){t.preventDefault();const e=t.targetTouches.item(0),s=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-s.left,y:e.clientY-s.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchMove_(t){const e=t.targetTouches.item(0),s=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-s.left,y:e.clientY-s.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchEnd_(t){var e;const s=(e=t.targetTouches.item(0))!==null&&e!==void 0?e:this.lastTouch_,l=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:t.altKey,data:this.computePosition_(s?{x:s.clientX-l.left,y:s.clientY-l.top}:void 0),sender:this,shiftKey:t.shiftKey})}}function K(n,t,e,s,l){const c=(n-t)/(e-t);return s+c*(l-s)}function pi(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Q(n,t,e){return Math.min(Math.max(n,t),e)}function ci(n,t){return(n%t+t)%t}const ut=V("txt");class is{constructor(t,e){this.onChange_=this.onChange_.bind(this),this.props_=e.props,this.props_.emitter.on("change",this.onChange_),this.element=t.createElement("div"),this.element.classList.add(ut(),ut(void 0,"num")),e.arrayPosition&&this.element.classList.add(ut(void 0,e.arrayPosition)),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("input");s.classList.add(ut("i")),s.type="text",e.viewProps.bindDisabled(s),this.element.appendChild(s),this.inputElement=s,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=e.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(ut()),this.inputElement.classList.add(ut("i"));const l=t.createElement("div");l.classList.add(ut("k")),this.element.appendChild(l),this.knobElement=l;const c=t.createElementNS(mt,"svg");c.classList.add(ut("g")),this.knobElement.appendChild(c);const h=t.createElementNS(mt,"path");h.classList.add(ut("gb")),c.appendChild(h),this.guideBodyElem_=h;const b=t.createElementNS(mt,"path");b.classList.add(ut("gh")),c.appendChild(b),this.guideHeadElem_=b;const w=t.createElement("div");w.classList.add(V("tt")()),this.knobElement.appendChild(w),this.tooltipElem_=w,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.refresh()}onDraggingChange_(t){if(t.rawValue===null){this.element.classList.remove(ut(void 0,"drg"));return}this.element.classList.add(ut(void 0,"drg"));const e=t.rawValue/this.props_.get("draggingScale"),s=e+(e>0?-1:e<0?1:0),l=Q(-s,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${s+l},0 L${s},4 L${s+l},8`,`M ${e},-1 L${e},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${e},4`);const c=this.props_.get("formatter");this.tooltipElem_.textContent=c(this.value.rawValue),this.tooltipElem_.style.left=`${e}px`}refresh(){const t=this.props_.get("formatter");this.inputElement.value=t(this.value.rawValue)}onChange_(){this.refresh()}}class Nt{constructor(t,e){var s;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_=e.baseStep,this.parser_=e.parser,this.props=e.props,this.sliderProps_=(s=e.sliderProps)!==null&&s!==void 0?s:null,this.value=e.value,this.viewProps=e.viewProps,this.dragging_=z(null),this.view=new is(t,{arrayPosition:e.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 l=new te(this.view.knobElement);l.emitter.on("down",this.onPointerDown_),l.emitter.on("move",this.onPointerMove_),l.emitter.on("up",this.onPointerUp_)}constrainValue_(t){var e,s;const l=(e=this.sliderProps_)===null||e===void 0?void 0:e.get("minValue"),c=(s=this.sliderProps_)===null||s===void 0?void 0:s.get("maxValue");let h=t;return l!==void 0&&(h=Math.max(h,l)),c!==void 0&&(h=Math.min(h,c)),h}onInputChange_(t){const s=t.currentTarget.value,l=this.parser_(s);S(l)||(this.value.rawValue=this.constrainValue_(l)),this.view.refresh()}onInputKeyDown_(t){const e=rt(this.baseStep_,Et(t));e!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+e),{forceEmit:!1,last:!1})}onInputKeyUp_(t){rt(this.baseStep_,Et(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(t){if(!t.point)return null;const e=t.point.x-t.bounds.width/2;return this.constrainValue_(this.originRawValue_+e*this.props.get("draggingScale"))}onPointerMove_(t){const e=this.computeDraggingValue_(t.data);e!==null&&(this.value.setRawValue(e,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(t){const e=this.computeDraggingValue_(t.data);e!==null&&(this.value.setRawValue(e,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}const Sn=V("sld");class ui{constructor(t,e){this.onChange_=this.onChange_.bind(this),this.props_=e.props,this.props_.emitter.on("change",this.onChange_),this.element=t.createElement("div"),this.element.classList.add(Sn()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("div");s.classList.add(Sn("t")),e.viewProps.bindTabIndex(s),this.element.appendChild(s),this.trackElement=s;const l=t.createElement("div");l.classList.add(Sn("k")),this.trackElement.appendChild(l),this.knobElement=l,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.update_()}update_(){const t=Q(K(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${t}%`}onChange_(){this.update_()}}class ss{constructor(t,e){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_=e.baseStep,this.value=e.value,this.viewProps=e.viewProps,this.props=e.props,this.view=new ui(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new te(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_(t,e){!t.point||this.value.setRawValue(K(Q(t.point.x,0,t.bounds.width),0,t.bounds.width,this.props.get("minValue"),this.props.get("maxValue")),e)}onPointerDownOrMove_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerUp_(t){this.handlePointerEvent_(t.data,{forceEmit:!0,last:!0})}onKeyDown_(t){const e=rt(this.baseStep_,Dt(t));e!==0&&this.value.setRawValue(this.value.rawValue+e,{forceEmit:!1,last:!1})}onKeyUp_(t){rt(this.baseStep_,Dt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const An=V("sldtxt");class wt{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(An());const s=t.createElement("div");s.classList.add(An("s")),this.sliderView_=e.sliderView,s.appendChild(this.sliderView_.element),this.element.appendChild(s);const l=t.createElement("div");l.classList.add(An("t")),this.textView_=e.textView,l.appendChild(this.textView_.element),this.element.appendChild(l)}}class en{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.sliderC_=new ss(t,{baseStep:e.baseStep,props:e.sliderProps,value:e.value,viewProps:this.viewProps}),this.textC_=new Nt(t,{baseStep:e.baseStep,parser:e.parser,props:e.textProps,sliderProps:e.sliderProps,value:e.value,viewProps:e.viewProps}),this.view=new wt(t,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function ve(n,t){n.write(t)}function me(n){const t=M;if(Array.isArray(n))return t.required.array(t.required.object({text:t.required.string,value:t.required.raw}))(n).value;if(typeof n=="object")return t.required.raw(n).value}function di(n){if(n==="inline"||n==="popup")return n}function ot(n){const t=M;return t.required.object({max:t.optional.number,min:t.optional.number,step:t.optional.number})(n).value}function hi(n){if(Array.isArray(n))return n;const t=[];return Object.keys(n).forEach(e=>{t.push({text:e,value:n[e]})}),t}function Tn(n){return S(n)?null:new ue(hi(n))}function On(n){const t=n?R(n,ue):null;return t?t.options:null}function rs(n){const t=n?R(n,st):null;return t?t.step:null}function nn(n,t){const e=n&&R(n,st);return e?pi(e.step):Math.max(pi(t),2)}function be(n){const t=rs(n);return t!=null?t:1}function fe(n,t){var e;const s=n&&R(n,st),l=Math.abs((e=s==null?void 0:s.step)!==null&&e!==void 0?e:t);return l===0?.1:Math.pow(10,Math.floor(Math.log10(l))-1)}const sn=V("ckb");class os{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(sn()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("label");s.classList.add(sn("l")),this.element.appendChild(s);const l=t.createElement("input");l.classList.add(sn("i")),l.type="checkbox",s.appendChild(l),this.inputElement=l,e.viewProps.bindDisabled(this.inputElement);const c=t.createElement("div");c.classList.add(sn("w")),s.appendChild(c);const h=Kt(t,"check");c.appendChild(h),e.value.emitter.on("change",this.onValueChange_),this.value=e.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class as{constructor(t,e){this.onInputChange_=this.onInputChange_.bind(this),this.value=e.value,this.viewProps=e.viewProps,this.view=new os(t,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(t){const e=t.currentTarget;this.value.rawValue=e.checked}}function Be(n){const t=[],e=Tn(n.options);return e&&t.push(e),new Gt(t)}const ls={id:"input-bool",type:"input",accept:(n,t)=>{if(typeof n!="boolean")return null;const s=q(t,{options:M.optional.custom(me)});return s?{initialValue:n,params:s}:null},binding:{reader:n=>ti,constraint:n=>Be(n.params),writer:n=>ve},controller:n=>{var t;const e=n.document,s=n.value,l=n.constraint;return l&&R(l,ue)?new Jt(e,{props:C.fromObject({options:(t=On(l))!==null&&t!==void 0?t:[]}),value:s,viewProps:n.viewProps}):new as(e,{value:s,viewProps:n.viewProps})}},ee=V("col");class Dn{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(ee()),e.foldable.bindExpandedClass(this.element,ee(void 0,"expanded")),X(e.foldable,"completed",Z(this.element,ee(void 0,"cpl")));const s=t.createElement("div");s.classList.add(ee("h")),this.element.appendChild(s);const l=t.createElement("div");l.classList.add(ee("s")),s.appendChild(l),this.swatchElement=l;const c=t.createElement("div");if(c.classList.add(ee("t")),s.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const h=t.createElement("div");h.classList.add(ee("p")),this.element.appendChild(h),this.pickerElement=h}else this.pickerElement=null}}function ps(n,t,e){const s=Q(n/255,0,1),l=Q(t/255,0,1),c=Q(e/255,0,1),h=Math.max(s,l,c),b=Math.min(s,l,c),w=h-b;let P=0,N=0;const I=(b+h)/2;return w!==0&&(N=w/(1-Math.abs(h+b-1)),s===h?P=(l-c)/w:l===h?P=2+(c-s)/w:P=4+(s-l)/w,P=P/6+(P<0?1:0)),[P*360,N*100,I*100]}function Nn(n,t,e){const s=(n%360+360)%360,l=Q(t/100,0,1),c=Q(e/100,0,1),h=(1-Math.abs(2*c-1))*l,b=h*(1-Math.abs(s/60%2-1)),w=c-h/2;let P,N,I;return s>=0&&s<60?[P,N,I]=[h,b,0]:s>=60&&s<120?[P,N,I]=[b,h,0]:s>=120&&s<180?[P,N,I]=[0,h,b]:s>=180&&s<240?[P,N,I]=[0,b,h]:s>=240&&s<300?[P,N,I]=[b,0,h]:[P,N,I]=[h,0,b],[(P+w)*255,(N+w)*255,(I+w)*255]}function cs(n,t,e){const s=Q(n/255,0,1),l=Q(t/255,0,1),c=Q(e/255,0,1),h=Math.max(s,l,c),b=Math.min(s,l,c),w=h-b;let P;w===0?P=0:h===s?P=60*(((l-c)/w%6+6)%6):h===l?P=60*((c-s)/w+2):P=60*((s-l)/w+4);const N=h===0?0:w/h,I=h;return[P,N*100,I*100]}function vi(n,t,e){const s=ci(n,360),l=Q(t/100,0,1),c=Q(e/100,0,1),h=c*l,b=h*(1-Math.abs(s/60%2-1)),w=c-h;let P,N,I;return s>=0&&s<60?[P,N,I]=[h,b,0]:s>=60&&s<120?[P,N,I]=[b,h,0]:s>=120&&s<180?[P,N,I]=[0,h,b]:s>=180&&s<240?[P,N,I]=[0,b,h]:s>=240&&s<300?[P,N,I]=[b,0,h]:[P,N,I]=[h,0,b],[(P+w)*255,(N+w)*255,(I+w)*255]}function us(n,t,e){const s=e+t*(100-Math.abs(2*e-100))/200;return[n,s!==0?t*(100-Math.abs(2*e-100))/s:0,e+t*(100-Math.abs(2*e-100))/(2*100)]}function ds(n,t,e){const s=100-Math.abs(e*(200-t)/100-100);return[n,s!==0?t*e/s:0,e*(200-t)/(2*100)]}function o(n){return[n[0],n[1],n[2]]}function i(n,t){return[n[0],n[1],n[2],t]}const r={hsl:{hsl:(n,t,e)=>[n,t,e],hsv:us,rgb:Nn},hsv:{hsl:ds,hsv:(n,t,e)=>[n,t,e],rgb:vi},rgb:{hsl:ps,hsv:cs,rgb:(n,t,e)=>[n,t,e]}};function a(n,t){return[t==="float"?1:n==="rgb"?255:360,t==="float"?1:n==="rgb"?255:100,t==="float"?1:n==="rgb"?255:100]}function p(n,t,e){var s;const l=a(t,e);return[t==="rgb"?Q(n[0],0,l[0]):ci(n[0],l[0]),Q(n[1],0,l[1]),Q(n[2],0,l[2]),Q((s=n[3])!==null&&s!==void 0?s:1,0,1)]}function d(n,t,e,s){const l=a(t,e),c=a(t,s);return n.map((h,b)=>h/l[b]*c[b])}function m(n,t,e){const s=d(n,t.mode,t.type,"int"),l=r[t.mode][e.mode](...s);return d(l,e.mode,"int",e.type)}function _(n,t){return typeof n!="object"||S(n)?!1:t in n&&typeof n[t]=="number"}class g{constructor(t,e,s="int"){this.mode=e,this.type=s,this.comps_=p(t,e,s)}static black(t="int"){return new g([0,0,0],"rgb",t)}static fromObject(t,e="int"){const s="a"in t?[t.r,t.g,t.b,t.a]:[t.r,t.g,t.b];return new g(s,"rgb",e)}static toRgbaObject(t,e="int"){return t.toRgbaObject(e)}static isRgbColorObject(t){return _(t,"r")&&_(t,"g")&&_(t,"b")}static isRgbaColorObject(t){return this.isRgbColorObject(t)&&_(t,"a")}static isColorObject(t){return this.isRgbColorObject(t)}static equals(t,e){if(t.mode!==e.mode)return!1;const s=t.comps_,l=e.comps_;for(let c=0;c<s.length;c++)if(s[c]!==l[c])return!1;return!0}getComponents(t,e="int"){return i(m(o(this.comps_),{mode:this.mode,type:this.type},{mode:t!=null?t:this.mode,type:e}),this.comps_[3])}toRgbaObject(t="int"){const e=this.getComponents("rgb",t);return{r:e[0],g:e[1],b:e[2],a:e[3]}}}const J=V("colp");class zt{constructor(t,e){this.alphaViews_=null,this.element=t.createElement("div"),this.element.classList.add(J());const s=t.createElement("div");s.classList.add(J("hsv"));const l=t.createElement("div");l.classList.add(J("sv")),this.svPaletteView_=e.svPaletteView,l.appendChild(this.svPaletteView_.element),s.appendChild(l);const c=t.createElement("div");c.classList.add(J("h")),this.hPaletteView_=e.hPaletteView,c.appendChild(this.hPaletteView_.element),s.appendChild(c),this.element.appendChild(s);const h=t.createElement("div");if(h.classList.add(J("rgb")),this.textView_=e.textView,h.appendChild(this.textView_.element),this.element.appendChild(h),e.alphaViews){this.alphaViews_={palette:e.alphaViews.palette,text:e.alphaViews.text};const b=t.createElement("div");b.classList.add(J("a"));const w=t.createElement("div");w.classList.add(J("ap")),w.appendChild(this.alphaViews_.palette.element),b.appendChild(w);const P=t.createElement("div");P.classList.add(J("at")),P.appendChild(this.alphaViews_.text.element),b.appendChild(P),this.element.appendChild(b)}}get allFocusableElements(){const t=[this.svPaletteView_.element,this.hPaletteView_.element,this.textView_.modeSelectElement,...this.textView_.textViews.map(e=>e.inputElement)];return this.alphaViews_&&t.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement),t}}function zn(n){return n==="int"?"int":n==="float"?"float":void 0}function In(n){const t=M;return q(n,{alpha:t.optional.boolean,color:t.optional.object({alpha:t.optional.boolean,type:t.optional.custom(zn)}),expanded:t.optional.boolean,picker:t.optional.custom(di)})}function ne(n){return n?.1:1}function Ue(n){var t;return(t=n.color)===null||t===void 0?void 0:t.type}function Cr(n,t){return n.alpha===t.alpha&&n.mode===t.mode&&n.notation===t.notation&&n.type===t.type}function kt(n,t){const e=n.match(/^(.+)%$/);return Math.min(e?parseFloat(e[1])*.01*t:parseFloat(n),t)}const yr={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function As(n){const t=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!t)return parseFloat(n);const e=parseFloat(t[1]),s=t[2];return yr[s](e)}function Ts(n){const t=n.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!t)return null;const e=[kt(t[1],255),kt(t[2],255),kt(t[3],255)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function Os(n){return t=>{const e=Ts(t);return e?new g(e,"rgb",n):null}}function Ds(n){const t=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(!t)return null;const e=[kt(t[1],255),kt(t[2],255),kt(t[3],255),kt(t[4],1)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function Ns(n){return t=>{const e=Ds(t);return e?new g(e,"rgb",n):null}}function zs(n){const t=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(!t)return null;const e=[As(t[1]),kt(t[2],100),kt(t[3],100)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function Is(n){return t=>{const e=zs(t);return e?new g(e,"hsl",n):null}}function Rs(n){const t=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(!t)return null;const e=[As(t[1]),kt(t[2],100),kt(t[3],100),kt(t[4],1)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function js(n){return t=>{const e=Rs(t);return e?new g(e,"hsl",n):null}}function Bs(n){const t=n.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(t)return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];const e=n.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);return e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:null}function Pr(n){const t=Bs(n);return t?new g(t,"rgb","int"):null}function Us(n){const t=n.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(t)return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),K(parseInt(t[4]+t[4],16),0,255,0,1)];const e=n.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);return e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),K(parseInt(e[4],16),0,255,0,1)]:null}function Er(n){const t=Us(n);return t?new g(t,"rgb","int"):null}function Ks(n){const t=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(!t)return null;const e=[parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function Fs(n){return t=>{const e=Ks(t);return e?new g(e,"rgb",n):null}}function $s(n){const t=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(!t)return null;const e=[parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3]),parseFloat(t[4])];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function Hs(n){return t=>{const e=$s(t);return e?new g(e,"rgb",n):null}}const kr=[{parser:Bs,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:Us,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:Ts,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:Ds,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:zs,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:Rs,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:Ks,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:$s,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Vr(n){return kr.reduce((t,{parser:e,result:s})=>t||(e(n)?s:null),null)}function hs(n,t="int"){const e=Vr(n);return e?e.notation==="hex"&&t!=="float"?Object.assign(Object.assign({},e),{type:"int"}):e.notation==="func"?Object.assign(Object.assign({},e),{type:t}):null:null}const qs={int:[Pr,Er,Os("int"),Ns("int"),Is("int"),js("int"),Fs("int"),Hs("int")],float:[Os("float"),Ns("float"),Is("float"),js("float"),Fs("float"),Hs("float")]};function Mr(n){const t=qs[n];return e=>{if(typeof e!="string")return g.black(n);const s=t.reduce((l,c)=>l||c(e),null);return s!=null?s:g.black(n)}}function vs(n){const t=qs[n];return e=>t.reduce((s,l)=>s||l(e),null)}function Gs(n){const t=Q(Math.floor(n),0,255).toString(16);return t.length===1?`0${t}`:t}function Ys(n,t="#"){const e=o(n.getComponents("rgb")).map(Gs).join("");return`${t}${e}`}function ms(n,t="#"){const e=n.getComponents("rgb"),s=[e[0],e[1],e[2],e[3]*255].map(Gs).join("");return`${t}${s}`}function Xs(n,t){const e=H(t==="float"?2:0);return`rgb(${o(n.getComponents("rgb",t)).map(l=>e(l)).join(", ")})`}function Lr(n){return t=>Xs(t,n)}function mi(n,t){const e=H(2),s=H(t==="float"?2:0);return`rgba(${n.getComponents("rgb",t).map((c,h)=>(h===3?e:s)(c)).join(", ")})`}function Sr(n){return t=>mi(t,n)}function Ar(n){const t=[H(0),de,de];return`hsl(${o(n.getComponents("hsl")).map((s,l)=>t[l](s)).join(", ")})`}function Tr(n){const t=[H(0),de,de,H(2)];return`hsla(${n.getComponents("hsl").map((s,l)=>t[l](s)).join(", ")})`}function Zs(n,t){const e=H(t==="float"?2:0),s=["r","g","b"];return`{${o(n.getComponents("rgb",t)).map((c,h)=>`${s[h]}: ${e(c)}`).join(", ")}}`}function Or(n){return t=>Zs(t,n)}function Ws(n,t){const e=H(2),s=H(t==="float"?2:0),l=["r","g","b","a"];return`{${n.getComponents("rgb",t).map((h,b)=>{const w=b===3?e:s;return`${l[b]}: ${w(h)}`}).join(", ")}}`}function Dr(n){return t=>Ws(t,n)}const Nr=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:Ys},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:ms},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:Ar},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:Tr},...["int","float"].reduce((n,t)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:t},stringifier:Lr(t)},{format:{alpha:!0,mode:"rgb",notation:"func",type:t},stringifier:Sr(t)},{format:{alpha:!1,mode:"rgb",notation:"object",type:t},stringifier:Or(t)},{format:{alpha:!0,mode:"rgb",notation:"object",type:t},stringifier:Dr(t)}],[])];function bs(n){return Nr.reduce((t,e)=>t||(Cr(e.format,n)?e.stringifier:null),null)}const Rn=V("apl");class zr{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.value=e.value,this.value.emitter.on("change",this.onValueChange_),this.element=t.createElement("div"),this.element.classList.add(Rn()),e.viewProps.bindTabIndex(this.element);const s=t.createElement("div");s.classList.add(Rn("b")),this.element.appendChild(s);const l=t.createElement("div");l.classList.add(Rn("c")),s.appendChild(l),this.colorElem_=l;const c=t.createElement("div");c.classList.add(Rn("m")),this.element.appendChild(c),this.markerElem_=c;const h=t.createElement("div");h.classList.add(Rn("p")),this.markerElem_.appendChild(h),this.previewElem_=h,this.update_()}update_(){const t=this.value.rawValue,e=t.getComponents("rgb"),s=new g([e[0],e[1],e[2],0],"rgb"),l=new g([e[0],e[1],e[2],255],"rgb"),c=["to right",mi(s),mi(l)];this.colorElem_.style.background=`linear-gradient(${c.join(",")})`,this.previewElem_.style.backgroundColor=mi(t);const h=K(e[3],0,1,0,100);this.markerElem_.style.left=`${h}%`}onValueChange_(){this.update_()}}class Ir{constructor(t,e){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=e.value,this.viewProps=e.viewProps,this.view=new zr(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new te(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_(t,e){if(!t.point)return;const s=t.point.x/t.bounds.width,l=this.value.rawValue,[c,h,b]=l.getComponents("hsv");this.value.setRawValue(new g([c,h,b,s],"hsv"),e)}onPointerDown_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerMove_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerUp_(t){this.handlePointerEvent_(t.data,{forceEmit:!0,last:!0})}onKeyDown_(t){const e=rt(ne(!0),Dt(t));if(e===0)return;const s=this.value.rawValue,[l,c,h,b]=s.getComponents("hsv");this.value.setRawValue(new g([l,c,h,b+e],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){rt(ne(!0),Dt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const rn=V("coltxt");function Rr(n){const t=n.createElement("select"),e=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return t.appendChild(e.reduce((s,l)=>{const c=n.createElement("option");return c.textContent=l.text,c.value=l.value,s.appendChild(c),s},n.createDocumentFragment())),t}class jr{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(rn());const s=t.createElement("div");s.classList.add(rn("m")),this.modeElem_=Rr(t),this.modeElem_.classList.add(rn("ms")),s.appendChild(this.modeSelectElement);const l=t.createElement("div");l.classList.add(rn("mm")),l.appendChild(Kt(t,"dropdown")),s.appendChild(l),this.element.appendChild(s);const c=t.createElement("div");c.classList.add(rn("w")),this.element.appendChild(c),this.textsElem_=c,this.textViews_=e.textViews,this.applyTextViews_(),at(e.colorMode,h=>{this.modeElem_.value=h})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(t){this.textViews_=t,this.applyTextViews_()}applyTextViews_(){Ge(this.textsElem_);const t=this.element.ownerDocument;this.textViews_.forEach(e=>{const s=t.createElement("div");s.classList.add(rn("c")),s.appendChild(e.element),this.textsElem_.appendChild(s)})}}function Br(n){return H(n==="float"?2:0)}function Ur(n,t,e){const s=a(n,t)[e];return new xt({min:0,max:s})}function fs(n,t,e){return new Nt(n,{arrayPosition:e===0?"fst":e===3-1?"lst":"mid",baseStep:ne(!1),parser:t.parser,props:C.fromObject({draggingScale:t.colorType==="float"?.01:1,formatter:Br(t.colorType)}),value:z(0,{constraint:Ur(t.colorMode,t.colorType,e)}),viewProps:t.viewProps})}class Kr{constructor(t,e){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=e.colorType,this.parser_=e.parser,this.value=e.value,this.viewProps=e.viewProps,this.colorMode=z(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(t),this.view=new jr(t,{colorMode:this.colorMode,textViews:[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view]}),this.view.modeSelectElement.addEventListener("change",this.onModeSelectChange_)}createComponentControllers_(t){const e={colorMode:this.colorMode.rawValue,colorType:this.colorType_,parser:this.parser_,viewProps:this.viewProps},s=[fs(t,e,0),fs(t,e,1),fs(t,e,2)];return s.forEach((l,c)=>{he({primary:this.value,secondary:l.value,forward:h=>h.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[c],backward:(h,b)=>{const w=this.colorMode.rawValue,P=h.rawValue.getComponents(w,this.colorType_);return P[c]=b.rawValue,new g(i(o(P),P[3]),w,this.colorType_)}})}),s}onModeSelectChange_(t){const e=t.currentTarget;this.colorMode.rawValue=e.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 _s=V("hpl");class Fr{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.value=e.value,this.value.emitter.on("change",this.onValueChange_),this.element=t.createElement("div"),this.element.classList.add(_s()),e.viewProps.bindTabIndex(this.element);const s=t.createElement("div");s.classList.add(_s("c")),this.element.appendChild(s);const l=t.createElement("div");l.classList.add(_s("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=this.value.rawValue,[e]=t.getComponents("hsv");this.markerElem_.style.backgroundColor=Xs(new g([e,100,100],"hsv"));const s=K(e,0,360,0,100);this.markerElem_.style.left=`${s}%`}onValueChange_(){this.update_()}}class $r{constructor(t,e){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=e.value,this.viewProps=e.viewProps,this.view=new Fr(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new te(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_(t,e){if(!t.point)return;const s=K(Q(t.point.x,0,t.bounds.width),0,t.bounds.width,0,359),l=this.value.rawValue,[,c,h,b]=l.getComponents("hsv");this.value.setRawValue(new g([s,c,h,b],"hsv"),e)}onPointerDown_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerMove_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerUp_(t){this.handlePointerEvent_(t.data,{forceEmit:!0,last:!0})}onKeyDown_(t){const e=rt(ne(!1),Dt(t));if(e===0)return;const s=this.value.rawValue,[l,c,h,b]=s.getComponents("hsv");this.value.setRawValue(new g([l+e,c,h,b],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){rt(ne(!1),Dt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const gs=V("svp"),Qs=64;class Hr{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.value=e.value,this.value.emitter.on("change",this.onValueChange_),this.element=t.createElement("div"),this.element.classList.add(gs()),e.viewProps.bindTabIndex(this.element);const s=t.createElement("canvas");s.height=Qs,s.width=Qs,s.classList.add(gs("c")),this.element.appendChild(s),this.canvasElement=s;const l=t.createElement("div");l.classList.add(gs("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=dn(this.canvasElement);if(!t)return;const s=this.value.rawValue.getComponents("hsv"),l=this.canvasElement.width,c=this.canvasElement.height,h=t.getImageData(0,0,l,c),b=h.data;for(let N=0;N<c;N++)for(let I=0;I<l;I++){const se=K(I,0,l,0,100),Bn=K(N,0,c,100,0),Un=vi(s[0],se,Bn),pn=(N*l+I)*4;b[pn]=Un[0],b[pn+1]=Un[1],b[pn+2]=Un[2],b[pn+3]=255}t.putImageData(h,0,0);const w=K(s[1],0,100,0,100);this.markerElem_.style.left=`${w}%`;const P=K(s[2],0,100,100,0);this.markerElem_.style.top=`${P}%`}onValueChange_(){this.update_()}}class qr{constructor(t,e){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=e.value,this.viewProps=e.viewProps,this.view=new Hr(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new te(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_(t,e){if(!t.point)return;const s=K(t.point.x,0,t.bounds.width,0,100),l=K(t.point.y,0,t.bounds.height,100,0),[c,,,h]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new g([c,s,l,h],"hsv"),e)}onPointerDown_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerMove_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerUp_(t){this.handlePointerEvent_(t.data,{forceEmit:!0,last:!0})}onKeyDown_(t){li(t.key)&&t.preventDefault();const[e,s,l,c]=this.value.rawValue.getComponents("hsv"),h=ne(!1),b=rt(h,Dt(t)),w=rt(h,Et(t));b===0&&w===0||this.value.setRawValue(new g([e,s+b,l+w,c],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){const e=ne(!1),s=rt(e,Dt(t)),l=rt(e,Et(t));s===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Gr{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.hPaletteC_=new $r(t,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new qr(t,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=e.supportsAlpha?{palette:new Ir(t,{value:this.value,viewProps:this.viewProps}),text:new Nt(t,{parser:Tt,baseStep:.1,props:C.fromObject({draggingScale:.01,formatter:H(2)}),value:z(0,{constraint:new xt({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&he({primary:this.value,secondary:this.alphaIcs_.text.value,forward:s=>s.rawValue.getComponents()[3],backward:(s,l)=>{const c=s.rawValue.getComponents();return c[3]=l.rawValue,new g(c,s.rawValue.mode)}}),this.textC_=new Kr(t,{colorType:e.colorType,parser:Tt,value:this.value,viewProps:this.viewProps}),this.view=new zt(t,{alphaViews:this.alphaIcs_?{palette:this.alphaIcs_.palette.view,text:this.alphaIcs_.text.view}:null,hPaletteView:this.hPaletteC_.view,supportsAlpha:e.supportsAlpha,svPaletteView:this.svPaletteC_.view,textView:this.textC_.view})}get textController(){return this.textC_}}const ws=V("colsw");class Yr{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),e.value.emitter.on("change",this.onValueChange_),this.value=e.value,this.element=t.createElement("div"),this.element.classList.add(ws()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("div");s.classList.add(ws("sw")),this.element.appendChild(s),this.swatchElem_=s;const l=t.createElement("button");l.classList.add(ws("b")),e.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l,this.update_()}update_(){const t=this.value.rawValue;this.swatchElem_.style.backgroundColor=ms(t)}onValueChange_(){this.update_()}}class Xr{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new Yr(t,{value:this.value,viewProps:this.viewProps})}}class xs{constructor(t,e){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=e.value,this.viewProps=e.viewProps,this.foldable_=St.create(e.expanded),this.swatchC_=new Xr(t,{value:this.value,viewProps:this.viewProps});const s=this.swatchC_.view.buttonElement;s.addEventListener("blur",this.onButtonBlur_),s.addEventListener("click",this.onButtonClick_),this.textC_=new Ie(t,{parser:e.parser,props:C.fromObject({formatter:e.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new Dn(t,{foldable:this.foldable_,pickerLayout:e.pickerLayout}),this.view.swatchElement.appendChild(this.swatchC_.view.element),this.view.textElement.appendChild(this.textC_.view.element),this.popC_=e.pickerLayout==="popup"?new yn(t,{viewProps:this.viewProps}):null;const l=new Gr(t,{colorType:e.colorType,supportsAlpha:e.supportsAlpha,value:this.value,viewProps:this.viewProps});l.view.allFocusableElements.forEach(c=>{c.addEventListener("blur",this.onPopupChildBlur_),c.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=l,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(l.view.element),he({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:c=>c.rawValue,backward:(c,h)=>h.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),x(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,s=t.relatedTarget;(!s||!e.contains(s))&&(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_(t){if(!this.popC_)return;const e=this.popC_.view.element,s=yt(t);s&&e.contains(s)||s&&s===this.swatchC_.view.buttonElement&&!re(e.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(t){this.popC_?t.key==="Escape"&&(this.popC_.shows.rawValue=!1):this.view.pickerElement&&t.key==="Escape"&&this.swatchC_.view.buttonElement.focus()}}function Zr(n,t){return g.isColorObject(n)?g.fromObject(n,t):g.black(t)}function Wr(n){return o(n.getComponents("rgb")).reduce((t,e)=>t<<8|Math.floor(e)&255,0)}function Qr(n){return n.getComponents("rgb").reduce((t,e,s)=>{const l=Math.floor(s===3?e*255:e)&255;return t<<8|l},0)>>>0}function Jr(n){return new g([n>>16&255,n>>8&255,n&255],"rgb")}function to(n){return new g([n>>24&255,n>>16&255,n>>8&255,K(n&255,0,255,0,1)],"rgb")}function eo(n){return typeof n!="number"?g.black():Jr(n)}function no(n){return typeof n!="number"?g.black():to(n)}function io(n){const t=bs(n);return t?(e,s)=>{ve(e,t(s))}:null}function so(n){const t=n?Qr:Wr;return(e,s)=>{ve(e,t(s))}}function ro(n,t,e){const s=t.toRgbaObject(e);n.writeProperty("r",s.r),n.writeProperty("g",s.g),n.writeProperty("b",s.b),n.writeProperty("a",s.a)}function oo(n,t,e){const s=t.toRgbaObject(e);n.writeProperty("r",s.r),n.writeProperty("g",s.g),n.writeProperty("b",s.b)}function ao(n,t){return(e,s)=>{n?ro(e,s,t):oo(e,s,t)}}function Cs(n){var t;return!!((n==null?void 0:n.alpha)||((t=n==null?void 0:n.color)===null||t===void 0?void 0:t.alpha))}function lo(n){return n?t=>ms(t,"0x"):t=>Ys(t,"0x")}function po(n){return"color"in n||"view"in n&&n.view==="color"}const co={id:"input-color-number",type:"input",accept:(n,t)=>{if(typeof n!="number"||!po(t))return null;const e=In(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>Cs(n.params)?no:eo,equals:g.equals,writer:n=>so(Cs(n.params))},controller:n=>{const t=Cs(n.params),e="expanded"in n.params?n.params.expanded:void 0,s="picker"in n.params?n.params.picker:void 0;return new xs(n.document,{colorType:"int",expanded:e!=null?e:!1,formatter:lo(t),parser:vs("int"),pickerLayout:s!=null?s:"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}};function uo(n){return g.isRgbaColorObject(n)}function ho(n){return t=>Zr(t,n)}function vo(n,t){return e=>n?Ws(e,t):Zs(e,t)}const mo={id:"input-color-object",type:"input",accept:(n,t)=>{if(!g.isColorObject(n))return null;const e=In(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>ho(Ue(n.params)),equals:g.equals,writer:n=>ao(uo(n.initialValue),Ue(n.params))},controller:n=>{var t;const e=g.isRgbaColorObject(n.initialValue),s="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0,c=(t=Ue(n.params))!==null&&t!==void 0?t:"int";return new xs(n.document,{colorType:c,expanded:s!=null?s:!1,formatter:vo(e,c),parser:vs(c),pickerLayout:l!=null?l:"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}},bo={id:"input-color-string",type:"input",accept:(n,t)=>{if(typeof n!="string"||"view"in t&&t.view==="text")return null;const e=hs(n,Ue(t));if(!e||!bs(e))return null;const l=In(t);return l?{initialValue:n,params:l}:null},binding:{reader:n=>{var t;return Mr((t=Ue(n.params))!==null&&t!==void 0?t:"int")},equals:g.equals,writer:n=>{const t=hs(n.initialValue,Ue(n.params));if(!t)throw L.shouldNeverHappen();const e=io(t);if(!e)throw L.notBindable();return e}},controller:n=>{const t=hs(n.initialValue,Ue(n.params));if(!t)throw L.shouldNeverHappen();const e=bs(t);if(!e)throw L.shouldNeverHappen();const s="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0;return new xs(n.document,{colorType:t.type,expanded:s!=null?s:!1,formatter:e,parser:vs(t.type),pickerLayout:l!=null?l:"popup",supportsAlpha:t.alpha,value:n.value,viewProps:n.viewProps})}};class _e{constructor(t){this.components=t.components,this.asm_=t.assembly}constrain(t){const e=this.asm_.toComponents(t).map((s,l)=>{var c,h;return(h=(c=this.components[l])===null||c===void 0?void 0:c.constrain(s))!==null&&h!==void 0?h:s});return this.asm_.fromComponents(e)}}const Js=V("pndtxt");class fo{constructor(t,e){this.textViews=e.textViews,this.element=t.createElement("div"),this.element.classList.add(Js()),this.textViews.forEach(s=>{const l=t.createElement("div");l.classList.add(Js("a")),l.appendChild(s.element),this.element.appendChild(l)})}}function _o(n,t,e){return new Nt(n,{arrayPosition:e===0?"fst":e===t.axes.length-1?"lst":"mid",baseStep:t.axes[e].baseStep,parser:t.parser,props:t.axes[e].textProps,value:z(0,{constraint:t.axes[e].constraint}),viewProps:t.viewProps})}class ys{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.acs_=e.axes.map((s,l)=>_o(t,e,l)),this.acs_.forEach((s,l)=>{he({primary:this.value,secondary:s.value,forward:c=>e.assembly.toComponents(c.rawValue)[l],backward:(c,h)=>{const b=e.assembly.toComponents(c.rawValue);return b[l]=h.rawValue,e.assembly.fromComponents(b)}})}),this.view=new fo(t,{textViews:this.acs_.map(s=>s.view)})}}function tr(n,t){return"step"in n&&!S(n.step)?new st(n.step,t):null}function er(n){return"max"in n&&!S(n.max)||"min"in n&&!S(n.min)?new xt({max:n.max,min:n.min}):null}function go(n,t){const e=[],s=tr(n,t);s&&e.push(s);const l=er(n);l&&e.push(l);const c=Tn(n.options);return c&&e.push(c),new Gt(e)}function wo(n){const t=n?R(n,xt):null;return t?[t.minValue,t.maxValue]:[void 0,void 0]}function xo(n){const[t,e]=wo(n);return[t!=null?t:0,e!=null?e:100]}const Co={id:"input-number",type:"input",accept:(n,t)=>{if(typeof n!="number")return null;const e=M,s=q(t,{format:e.optional.function,max:e.optional.number,min:e.optional.number,options:e.optional.custom(me),step:e.optional.number});return s?{initialValue:n,params:s}:null},binding:{reader:n=>Vn,constraint:n=>go(n.params,n.initialValue),writer:n=>ve},controller:n=>{var t,e;const s=n.value,l=n.constraint;if(l&&R(l,ue))return new Jt(n.document,{props:C.fromObject({options:(t=On(l))!==null&&t!==void 0?t:[]}),value:s,viewProps:n.viewProps});const c=(e="format"in n.params?n.params.format:void 0)!==null&&e!==void 0?e:H(nn(l,s.rawValue));if(l&&R(l,xt)){const[h,b]=xo(l);return new en(n.document,{baseStep:be(l),parser:Tt,sliderProps:C.fromObject({maxValue:b,minValue:h}),textProps:C.fromObject({draggingScale:fe(l,s.rawValue),formatter:c}),value:s,viewProps:n.viewProps})}return new Nt(n.document,{baseStep:be(l),parser:Tt,props:C.fromObject({draggingScale:fe(l,s.rawValue),formatter:c}),value:s,viewProps:n.viewProps})}};class ge{constructor(t=0,e=0){this.x=t,this.y=e}getComponents(){return[this.x,this.y]}static isObject(t){if(S(t))return!1;const e=t.x,s=t.y;return!(typeof e!="number"||typeof s!="number")}static equals(t,e){return t.x===e.x&&t.y===e.y}toObject(){return{x:this.x,y:this.y}}}const nr={toComponents:n=>n.getComponents(),fromComponents:n=>new ge(...n)},on=V("p2d");class yo{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(on()),e.viewProps.bindClassModifiers(this.element),at(e.expanded,Z(this.element,on(void 0,"expanded")));const s=t.createElement("div");s.classList.add(on("h")),this.element.appendChild(s);const l=t.createElement("button");l.classList.add(on("b")),l.appendChild(Kt(t,"p2dpad")),e.viewProps.bindDisabled(l),s.appendChild(l),this.buttonElement=l;const c=t.createElement("div");if(c.classList.add(on("t")),s.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const h=t.createElement("div");h.classList.add(on("p")),this.element.appendChild(h),this.pickerElement=h}else this.pickerElement=null}}const we=V("p2dp");class Po{constructor(t,e){this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.invertsY_=e.invertsY,this.maxValue_=e.maxValue,this.element=t.createElement("div"),this.element.classList.add(we()),e.layout==="popup"&&this.element.classList.add(we(void 0,"p"));const s=t.createElement("div");s.classList.add(we("p")),e.viewProps.bindTabIndex(s),this.element.appendChild(s),this.padElement=s;const l=t.createElementNS(mt,"svg");l.classList.add(we("g")),this.padElement.appendChild(l),this.svgElem_=l;const c=t.createElementNS(mt,"line");c.classList.add(we("ax")),c.setAttributeNS(null,"x1","0"),c.setAttributeNS(null,"y1","50%"),c.setAttributeNS(null,"x2","100%"),c.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(c);const h=t.createElementNS(mt,"line");h.classList.add(we("ax")),h.setAttributeNS(null,"x1","50%"),h.setAttributeNS(null,"y1","0"),h.setAttributeNS(null,"x2","50%"),h.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(h);const b=t.createElementNS(mt,"line");b.classList.add(we("l")),b.setAttributeNS(null,"x1","50%"),b.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(b),this.lineElem_=b;const w=t.createElement("div");w.classList.add(we("m")),this.padElement.appendChild(w),this.markerElem_=w,e.value.emitter.on("change",this.onValueChange_),this.value=e.value,this.update_()}get allFocusableElements(){return[this.padElement]}update_(){const[t,e]=this.value.rawValue.getComponents(),s=this.maxValue_,l=K(t,-s,+s,0,100),c=K(e,-s,+s,0,100),h=this.invertsY_?100-c:c;this.lineElem_.setAttributeNS(null,"x2",`${l}%`),this.lineElem_.setAttributeNS(null,"y2",`${h}%`),this.markerElem_.style.left=`${l}%`,this.markerElem_.style.top=`${h}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function ir(n,t,e){return[rt(t[0],Dt(n)),rt(t[1],Et(n))*(e?1:-1)]}class Eo{constructor(t,e){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=e.value,this.viewProps=e.viewProps,this.baseSteps_=e.baseSteps,this.maxValue_=e.maxValue,this.invertsY_=e.invertsY,this.view=new Po(t,{invertsY:this.invertsY_,layout:e.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new te(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_(t,e){if(!t.point)return;const s=this.maxValue_,l=K(t.point.x,0,t.bounds.width,-s,+s),c=K(this.invertsY_?t.bounds.height-t.point.y:t.point.y,0,t.bounds.height,-s,+s);this.value.setRawValue(new ge(l,c),e)}onPointerDown_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerMove_(t){this.handlePointerEvent_(t.data,{forceEmit:!1,last:!1})}onPointerUp_(t){this.handlePointerEvent_(t.data,{forceEmit:!0,last:!0})}onPadKeyDown_(t){li(t.key)&&t.preventDefault();const[e,s]=ir(t,this.baseSteps_,this.invertsY_);e===0&&s===0||this.value.setRawValue(new ge(this.value.rawValue.x+e,this.value.rawValue.y+s),{forceEmit:!1,last:!1})}onPadKeyUp_(t){const[e,s]=ir(t,this.baseSteps_,this.invertsY_);e===0&&s===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class ko{constructor(t,e){var s,l;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=e.value,this.viewProps=e.viewProps,this.foldable_=St.create(e.expanded),this.popC_=e.pickerLayout==="popup"?new yn(t,{viewProps:this.viewProps}):null;const c=new Eo(t,{baseSteps:[e.axes[0].baseStep,e.axes[1].baseStep],invertsY:e.invertsY,layout:e.pickerLayout,maxValue:e.maxValue,value:this.value,viewProps:this.viewProps});c.view.allFocusableElements.forEach(h=>{h.addEventListener("blur",this.onPopupChildBlur_),h.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=c,this.textC_=new ys(t,{assembly:nr,axes:e.axes,parser:e.parser,value:this.value,viewProps:this.viewProps}),this.view=new yo(t,{expanded:this.foldable_.value("expanded"),pickerLayout:e.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(s=this.view.buttonElement)===null||s===void 0||s.addEventListener("blur",this.onPadButtonBlur_),(l=this.view.buttonElement)===null||l===void 0||l.addEventListener("click",this.onPadButtonClick_),this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),he({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:h=>h.rawValue,backward:(h,b)=>b.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),x(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,s=t.relatedTarget;(!s||!e.contains(s))&&(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_(t){if(!this.popC_)return;const e=this.popC_.view.element,s=yt(t);s&&e.contains(s)||s&&s===this.view.buttonElement&&!re(e.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(t){this.popC_?t.key==="Escape"&&(this.popC_.shows.rawValue=!1):this.view.pickerElement&&t.key==="Escape"&&this.view.buttonElement.focus()}}function Vo(n){return ge.isObject(n)?new ge(n.x,n.y):new ge}function Mo(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y)}function ie(n,t){if(!n)return;const e=[],s=tr(n,t);s&&e.push(s);const l=er(n);return l&&e.push(l),new Gt(e)}function Lo(n,t){return new _e({assembly:nr,components:[ie("x"in n?n.x:void 0,t.x),ie("y"in n?n.y:void 0,t.y)]})}function sr(n,t){var e,s;const l=n&&R(n,xt);if(l)return Math.max(Math.abs((e=l.minValue)!==null&&e!==void 0?e:0),Math.abs((s=l.maxValue)!==null&&s!==void 0?s:0));const c=be(n);return Math.max(Math.abs(c)*10,Math.abs(t)*10)}function So(n,t){const e=t instanceof _e?t.components[0]:void 0,s=t instanceof _e?t.components[1]:void 0,l=sr(e,n.x),c=sr(s,n.y);return Math.max(l,c)}function rr(n,t){return{baseStep:be(t),constraint:t,textProps:C.fromObject({draggingScale:fe(t,n),formatter:H(nn(t,n))})}}function Ao(n){if(!("y"in n))return!1;const t=n.y;return t&&"inverted"in t?!!t.inverted:!1}const To={id:"input-point2d",type:"input",accept:(n,t)=>{if(!ge.isObject(n))return null;const e=M,s=q(t,{expanded:e.optional.boolean,picker:e.optional.custom(di),x:e.optional.custom(ot),y:e.optional.object({inverted:e.optional.boolean,max:e.optional.number,min:e.optional.number,step:e.optional.number})});return s?{initialValue:n,params:s}:null},binding:{reader:n=>Vo,constraint:n=>Lo(n.params,n.initialValue),equals:ge.equals,writer:n=>Mo},controller:n=>{const t=n.document,e=n.value,s=n.constraint;if(!(s instanceof _e))throw L.shouldNeverHappen();const l="expanded"in n.params?n.params.expanded:void 0,c="picker"in n.params?n.params.picker:void 0;return new ko(t,{axes:[rr(e.rawValue.x,s.components[0]),rr(e.rawValue.y,s.components[1])],expanded:l!=null?l:!1,invertsY:Ao(n.params),maxValue:So(e.rawValue,s),parser:Tt,pickerLayout:c!=null?c:"popup",value:e,viewProps:n.viewProps})}};class an{constructor(t=0,e=0,s=0){this.x=t,this.y=e,this.z=s}getComponents(){return[this.x,this.y,this.z]}static isObject(t){if(S(t))return!1;const e=t.x,s=t.y,l=t.z;return!(typeof e!="number"||typeof s!="number"||typeof l!="number")}static equals(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z}toObject(){return{x:this.x,y:this.y,z:this.z}}}const or={toComponents:n=>n.getComponents(),fromComponents:n=>new an(...n)};function Oo(n){return an.isObject(n)?new an(n.x,n.y,n.z):new an}function Do(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z)}function No(n,t){return new _e({assembly:or,components:[ie("x"in n?n.x:void 0,t.x),ie("y"in n?n.y:void 0,t.y),ie("z"in n?n.z:void 0,t.z)]})}function Ps(n,t){return{baseStep:be(t),constraint:t,textProps:C.fromObject({draggingScale:fe(t,n),formatter:H(nn(t,n))})}}const zo={id:"input-point3d",type:"input",accept:(n,t)=>{if(!an.isObject(n))return null;const e=M,s=q(t,{x:e.optional.custom(ot),y:e.optional.custom(ot),z:e.optional.custom(ot)});return s?{initialValue:n,params:s}:null},binding:{reader:n=>Oo,constraint:n=>No(n.params,n.initialValue),equals:an.equals,writer:n=>Do},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof _e))throw L.shouldNeverHappen();return new ys(n.document,{assembly:or,axes:[Ps(t.rawValue.x,e.components[0]),Ps(t.rawValue.y,e.components[1]),Ps(t.rawValue.z,e.components[2])],parser:Tt,value:t,viewProps:n.viewProps})}};class ln{constructor(t=0,e=0,s=0,l=0){this.x=t,this.y=e,this.z=s,this.w=l}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(t){if(S(t))return!1;const e=t.x,s=t.y,l=t.z,c=t.w;return!(typeof e!="number"||typeof s!="number"||typeof l!="number"||typeof c!="number")}static equals(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w}toObject(){return{x:this.x,y:this.y,z:this.z,w:this.w}}}const ar={toComponents:n=>n.getComponents(),fromComponents:n=>new ln(...n)};function Io(n){return ln.isObject(n)?new ln(n.x,n.y,n.z,n.w):new ln}function Ro(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z),n.writeProperty("w",t.w)}function jo(n,t){return new _e({assembly:ar,components:[ie("x"in n?n.x:void 0,t.x),ie("y"in n?n.y:void 0,t.y),ie("z"in n?n.z:void 0,t.z),ie("w"in n?n.w:void 0,t.w)]})}function Bo(n,t){return{baseStep:be(t),constraint:t,textProps:C.fromObject({draggingScale:fe(t,n),formatter:H(nn(t,n))})}}const Uo={id:"input-point4d",type:"input",accept:(n,t)=>{if(!ln.isObject(n))return null;const e=M,s=q(t,{x:e.optional.custom(ot),y:e.optional.custom(ot),z:e.optional.custom(ot),w:e.optional.custom(ot)});return s?{initialValue:n,params:s}:null},binding:{reader:n=>Io,constraint:n=>jo(n.params,n.initialValue),equals:ln.equals,writer:n=>Ro},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof _e))throw L.shouldNeverHappen();return new ys(n.document,{assembly:ar,axes:t.rawValue.getComponents().map((s,l)=>Bo(s,e.components[l])),parser:Tt,value:t,viewProps:n.viewProps})}};function Ko(n){const t=[],e=Tn(n.options);return e&&t.push(e),new Gt(t)}const Fo={id:"input-string",type:"input",accept:(n,t)=>{if(typeof n!="string")return null;const s=q(t,{options:M.optional.custom(me)});return s?{initialValue:n,params:s}:null},binding:{reader:n=>oi,constraint:n=>Ko(n.params),writer:n=>ve},controller:n=>{var t;const e=n.document,s=n.value,l=n.constraint;return l&&R(l,ue)?new Jt(e,{props:C.fromObject({options:(t=On(l))!==null&&t!==void 0?t:[]}),value:s,viewProps:n.viewProps}):new Ie(e,{parser:c=>c,props:C.fromObject({formatter:tn}),value:s,viewProps:n.viewProps})}},jn={monitor:{defaultInterval:200,defaultLineCount:3}},lr=V("mll");class $o{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(lr()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("textarea");s.classList.add(lr("i")),s.style.height=`calc(var(--bld-us) * ${e.lineCount})`,s.readOnly=!0,e.viewProps.bindDisabled(s),this.element.appendChild(s),this.textareaElem_=s,e.value.emitter.on("change",this.onValueUpdate_),this.value=e.value,this.update_()}update_(){const t=this.textareaElem_,e=t.scrollTop===t.scrollHeight-t.clientHeight,s=[];this.value.rawValue.forEach(l=>{l!==void 0&&s.push(this.formatter_(l))}),t.textContent=s.join(`
10
- `),e&&(t.scrollTop=t.scrollHeight)}onValueUpdate_(){this.update_()}}class Es{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new $o(t,{formatter:e.formatter,lineCount:e.lineCount,value:this.value,viewProps:this.viewProps})}}const pr=V("sgl");class Ho{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(pr()),e.viewProps.bindClassModifiers(this.element);const s=t.createElement("input");s.classList.add(pr("i")),s.readOnly=!0,s.type="text",e.viewProps.bindDisabled(s),this.element.appendChild(s),this.inputElement=s,e.value.emitter.on("change",this.onValueUpdate_),this.value=e.value,this.update_()}update_(){const t=this.value.rawValue,e=t[t.length-1];this.inputElement.value=e!==void 0?this.formatter_(e):""}onValueUpdate_(){this.update_()}}class ks{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new Ho(t,{formatter:e.formatter,value:this.value,viewProps:this.viewProps})}}const qo={id:"monitor-bool",type:"monitor",accept:(n,t)=>{if(typeof n!="boolean")return null;const s=q(t,{lineCount:M.optional.number});return s?{initialValue:n,params:s}:null},binding:{reader:n=>ti},controller:n=>{var t;return n.value.rawValue.length===1?new ks(n.document,{formatter:ei,value:n.value,viewProps:n.viewProps}):new Es(n.document,{formatter:ei,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:jn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},xe=V("grl");class Go{constructor(t,e){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=t.createElement("div"),this.element.classList.add(xe()),e.viewProps.bindClassModifiers(this.element),this.formatter_=e.formatter,this.props_=e.props,this.cursor_=e.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const s=t.createElementNS(mt,"svg");s.classList.add(xe("g")),s.style.height=`calc(var(--bld-us) * ${e.lineCount})`,this.element.appendChild(s),this.svgElem_=s;const l=t.createElementNS(mt,"polyline");this.svgElem_.appendChild(l),this.lineElem_=l;const c=t.createElement("div");c.classList.add(xe("t"),V("tt")()),this.element.appendChild(c),this.tooltipElem_=c,e.value.emitter.on("change",this.onValueUpdate_),this.value=e.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const t=this.svgElem_.getBoundingClientRect(),e=this.value.rawValue.length-1,s=this.props_.get("minValue"),l=this.props_.get("maxValue"),c=[];this.value.rawValue.forEach((N,I)=>{if(N===void 0)return;const se=K(I,0,e,0,t.width),Bn=K(N,s,l,t.height,0);c.push([se,Bn].join(","))}),this.lineElem_.setAttributeNS(null,"points",c.join(" "));const h=this.tooltipElem_,b=this.value.rawValue[this.cursor_.rawValue];if(b===void 0){h.classList.remove(xe("t","a"));return}const w=K(this.cursor_.rawValue,0,e,0,t.width),P=K(b,s,l,t.height,0);h.style.left=`${w}px`,h.style.top=`${P}px`,h.textContent=`${this.formatter_(b)}`,h.classList.contains(xe("t","a"))||(h.classList.add(xe("t","a"),xe("t","in")),Xt(h),h.classList.remove(xe("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Yo{constructor(t,e){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_=e.props,this.value=e.value,this.viewProps=e.viewProps,this.cursor_=z(-1),this.view=new Go(t,{cursor:this.cursor_,formatter:e.formatter,lineCount:e.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!re(t))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const s=new te(this.view.element);s.emitter.on("down",this.onGraphPointerDown_),s.emitter.on("move",this.onGraphPointerMove_),s.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(t){const e=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(K(t.offsetX,0,e.width,0,this.value.rawValue.length))}onGraphPointerDown_(t){this.onGraphPointerMove_(t)}onGraphPointerMove_(t){if(!t.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(K(t.data.point.x,0,t.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function Vs(n){return"format"in n&&!S(n.format)?n.format:H(2)}function Xo(n){var t;return n.value.rawValue.length===1?new ks(n.document,{formatter:Vs(n.params),value:n.value,viewProps:n.viewProps}):new Es(n.document,{formatter:Vs(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:jn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function Zo(n){var t,e,s;return new Yo(n.document,{formatter:Vs(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:jn.monitor.defaultLineCount,props:C.fromObject({maxValue:(e="max"in n.params?n.params.max:null)!==null&&e!==void 0?e:100,minValue:(s="min"in n.params?n.params.min:null)!==null&&s!==void 0?s:0}),value:n.value,viewProps:n.viewProps})}function cr(n){return"view"in n&&n.view==="graph"}const Wo={id:"monitor-number",type:"monitor",accept:(n,t)=>{if(typeof n!="number")return null;const e=M,s=q(t,{format:e.optional.function,lineCount:e.optional.number,max:e.optional.number,min:e.optional.number,view:e.optional.string});return s?{initialValue:n,params:s}:null},binding:{defaultBufferSize:n=>cr(n)?64:1,reader:n=>Vn},controller:n=>cr(n.params)?Zo(n):Xo(n)},Qo={id:"monitor-string",type:"monitor",accept:(n,t)=>{if(typeof n!="string")return null;const e=M,s=q(t,{lineCount:e.optional.number,multiline:e.optional.boolean});return s?{initialValue:n,params:s}:null},binding:{reader:n=>oi},controller:n=>{var t;const e=n.value;return e.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new Es(n.document,{formatter:tn,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:jn.monitor.defaultLineCount,value:e,viewProps:n.viewProps}):new ks(n.document,{formatter:tn,value:e,viewProps:n.viewProps})}};class Jo{constructor(t){this.onValueChange_=this.onValueChange_.bind(this),this.reader=t.reader,this.writer=t.writer,this.emitter=new j,this.value=t.value,this.value.emitter.on("change",this.onValueChange_),this.target=t.target,this.read()}read(){const t=this.target.read();t!==void 0&&(this.value.rawValue=this.reader(t))}write_(t){this.writer(this.target,t)}onValueChange_(t){this.write_(t.rawValue),this.emitter.emit("change",{options:t.options,rawValue:t.rawValue,sender:this})}}function ta(n,t){const e=n.accept(t.target.read(),t.params);if(S(e))return null;const s=M,l={target:t.target,initialValue:e.initialValue,params:e.params},c=n.binding.reader(l),h=n.binding.constraint?n.binding.constraint(l):void 0,b=z(c(e.initialValue),{constraint:h,equals:n.binding.equals}),w=new Jo({reader:c,target:t.target,value:b,writer:n.binding.writer(l)}),P=s.optional.boolean(t.params.disabled).value,N=s.optional.boolean(t.params.hidden).value,I=n.controller({constraint:h,document:t.document,initialValue:e.initialValue,params:e.params,value:w.value,viewProps:qt.create({disabled:P,hidden:N})}),se=s.optional.string(t.params.label).value;return new _t(t.document,{binding:w,blade:Lt(),props:C.fromObject({label:se!=null?se:t.target.key}),valueController:I})}class ea{constructor(t){this.onTick_=this.onTick_.bind(this),this.reader_=t.reader,this.target=t.target,this.emitter=new j,this.value=t.value,this.ticker=t.ticker,this.ticker.emitter.on("tick",this.onTick_),this.read()}dispose(){this.ticker.dispose()}read(){const t=this.target.read();if(t===void 0)return;const e=this.value.rawValue,s=this.reader_(t);this.value.rawValue=ai(e,s),this.emitter.emit("update",{rawValue:s,sender:this})}onTick_(t){this.read()}}function na(n,t){return t===0?new Wn:new xn(n,t!=null?t:jn.monitor.defaultInterval)}function ia(n,t){var e,s,l;const c=M,h=n.accept(t.target.read(),t.params);if(S(h))return null;const b={target:t.target,initialValue:h.initialValue,params:h.params},w=n.binding.reader(b),P=(s=(e=c.optional.number(t.params.bufferSize).value)!==null&&e!==void 0?e:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(h.params))!==null&&s!==void 0?s:1,N=c.optional.number(t.params.interval).value,I=new ea({reader:w,target:t.target,ticker:na(t.document,N),value:es(P)}),se=c.optional.boolean(t.params.disabled).value,Bn=c.optional.boolean(t.params.hidden).value,Un=n.controller({document:t.document,params:h.params,value:I.value,viewProps:qt.create({disabled:se,hidden:Bn})}),pn=(l=c.optional.string(t.params.label).value)!==null&&l!==void 0?l:t.target.key;return new Ht(t.document,{binding:I,blade:Lt(),props:C.fromObject({label:pn}),valueController:Un})}class sa{constructor(){this.pluginsMap_={blades:[],inputs:[],monitors:[]}}getAll(){return[...this.pluginsMap_.blades,...this.pluginsMap_.inputs,...this.pluginsMap_.monitors]}register(t){t.type==="blade"?this.pluginsMap_.blades.unshift(t):t.type==="input"?this.pluginsMap_.inputs.unshift(t):t.type==="monitor"&&this.pluginsMap_.monitors.unshift(t)}createInput(t,e,s){const l=e.read();if(S(l))throw new L({context:{key:e.key},type:"nomatchingcontroller"});const c=this.pluginsMap_.inputs.reduce((h,b)=>h!=null?h:ta(b,{document:t,target:e,params:s}),null);if(c)return c;throw new L({context:{key:e.key},type:"nomatchingcontroller"})}createMonitor(t,e,s){const l=this.pluginsMap_.monitors.reduce((c,h)=>c!=null?c:ia(h,{document:t,params:s,target:e}),null);if(l)return l;throw new L({context:{key:e.key},type:"nomatchingcontroller"})}createBlade(t,e){const s=this.pluginsMap_.blades.reduce((l,c)=>l!=null?l:Li(c,{document:t,params:e}),null);if(!s)throw new L({type:"nomatchingview",context:{params:e}});return s}createBladeApi(t){if(t instanceof _t)return new ct(t);if(t instanceof Ht)return new Qt(t);if(t instanceof Oe)return new Te(t,this);const e=this.pluginsMap_.blades.reduce((s,l)=>s!=null?s:l.api({controller:t,pool:this}),null);if(!e)throw L.shouldNeverHappen();return e}}function ra(){const n=new sa;return[To,zo,Uo,Fo,Co,bo,mo,co,ls,qo,Qo,Wo,ae,Pi,Gn,wn].forEach(t=>{n.register(t)}),n}class ur extends F{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Vt(this,e.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(t){this.controller_.props.set("label",t)}get options(){return this.controller_.valueController.props.get("options")}set options(t){this.controller_.valueController.props.set("options",t)}get value(){return this.controller_.valueController.value.rawValue}set value(t){this.controller_.valueController.value.rawValue=t}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}}class dr extends F{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Vt(this,e.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(t){this.controller_.props.set("label",t)}get maxValue(){return this.controller_.valueController.sliderController.props.get("maxValue")}set maxValue(t){this.controller_.valueController.sliderController.props.set("maxValue",t)}get minValue(){return this.controller_.valueController.sliderController.props.get("minValue")}set minValue(t){this.controller_.valueController.sliderController.props.set("minValue",t)}get value(){return this.controller_.valueController.value.rawValue}set value(t){this.controller_.valueController.value.rawValue=t}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}}class hr extends F{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Vt(this,e.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(t){this.controller_.props.set("label",t)}get formatter(){return this.controller_.valueController.props.get("formatter")}set formatter(t){this.controller_.valueController.props.set("formatter",t)}get value(){return this.controller_.valueController.value.rawValue}set value(t){this.controller_.valueController.value.rawValue=t}on(t,e){const s=e.bind(this);return this.emitter_.on(t,l=>{s(l.event)}),this}}const oa=function(){return{id:"list",type:"blade",accept(n){const t=M,e=q(n,{options:t.required.custom(me),value:t.required.raw,view:t.required.constant("list"),label:t.optional.string});return e?{params:e}:null},controller(n){const t=new Jt(n.document,{props:C.fromObject({options:hi(n.params.options)}),value:z(n.params.value),viewProps:n.viewProps});return new pe(n.document,{blade:n.blade,props:C.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof pe)||!(n.controller.valueController instanceof Jt)?null:new ur(n.controller)}}}();function aa(n){return n.reduce((t,e)=>Object.assign(t,{[e.presetKey]:e.read()}),{})}function la(n,t){n.forEach(e=>{const s=t[e.presetKey];s!==void 0&&e.write(s)})}class pa extends vn{constructor(t,e){super(t,e)}get element(){return this.controller_.view.element}importPreset(t){const e=this.controller_.rackController.rack.find(_t).map(s=>s.binding.target);la(e,t),this.refresh()}exportPreset(){const t=this.controller_.rackController.rack.find(_t).map(e=>e.binding.target);return aa(t)}refresh(){this.controller_.rackController.rack.find(_t).forEach(t=>{t.binding.read()}),this.controller_.rackController.rack.find(Ht).forEach(t=>{t.binding.read()})}}class ca extends fn{constructor(t,e){super(t,{expanded:e.expanded,blade:e.blade,props:e.props,root:!0,viewProps:e.viewProps})}}const ua={id:"slider",type:"blade",accept(n){const t=M,e=q(n,{max:t.required.number,min:t.required.number,view:t.required.constant("slider"),format:t.optional.function,label:t.optional.string,value:t.optional.number});return e?{params:e}:null},controller(n){var t,e;const s=(t=n.params.value)!==null&&t!==void 0?t:0,l=new en(n.document,{baseStep:1,parser:Tt,sliderProps:C.fromObject({maxValue:n.params.max,minValue:n.params.min}),textProps:C.fromObject({draggingScale:fe(void 0,s),formatter:(e=n.params.format)!==null&&e!==void 0?e:Ji}),value:z(s),viewProps:n.viewProps});return new pe(n.document,{blade:n.blade,props:C.fromObject({label:n.params.label}),valueController:l})},api(n){return!(n.controller instanceof pe)||!(n.controller.valueController instanceof en)?null:new dr(n.controller)}},da=function(){return{id:"text",type:"blade",accept(n){const t=M,e=q(n,{parse:t.required.function,value:t.required.raw,view:t.required.constant("text"),format:t.optional.function,label:t.optional.string});return e?{params:e}:null},controller(n){var t;const e=new Ie(n.document,{parser:n.params.parse,props:C.fromObject({formatter:(t=n.params.format)!==null&&t!==void 0?t:s=>String(s)}),value:z(n.params.value),viewProps:n.viewProps});return new pe(n.document,{blade:n.blade,props:C.fromObject({label:n.params.label}),valueController:e})},api(n){return!(n.controller instanceof pe)||!(n.controller.valueController instanceof Ie)?null:new hr(n.controller)}}}();function ha(n){const t=n.createElement("div");return t.classList.add(V("dfw")()),n.body&&n.body.appendChild(t),t}function vr(n,t,e){if(n.querySelector(`style[data-tp-style=${t}]`))return;const s=n.createElement("style");s.dataset.tpStyle=t,s.textContent=e,n.head.appendChild(s)}class va extends pa{constructor(t){var e,s;const l=t!=null?t:{},c=(e=l.document)!==null&&e!==void 0?e:un(),h=ra(),b=new ca(c,{expanded:l.expanded,blade:Lt(),props:C.fromObject({title:l.title}),viewProps:qt.create()});super(b,h),this.pool_=h,this.containerElem_=(s=l.container)!==null&&s!==void 0?s:ha(c),this.containerElem_.appendChild(this.element),this.doc_=c,this.usesDefaultWrapper_=!l.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw L.alreadyDisposed();return this.doc_}dispose(){const t=this.containerElem_;if(!t)throw L.alreadyDisposed();if(this.usesDefaultWrapper_){const e=t.parentElement;e&&e.removeChild(t)}this.containerElem_=null,this.doc_=null,super.dispose()}registerPlugin(t){("plugin"in t?[t.plugin]:"plugins"in t?t.plugins:[]).forEach(s=>{this.pool_.register(s),this.embedPluginStyle_(s)})}embedPluginStyle_(t){t.css&&vr(this.document,`plugin-${t.id}`,t.css)}setUpDefaultPlugins_(){vr(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:transparent;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 transparent;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:transparent}.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:transparent 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, #28292e);--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, #adafb8);--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, #28292e);--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, #bbbcc4);--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, #bbbcc4);--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-tabv>.tp-tabv_i,.tp-fldv_c>.tp-tabv>.tp-tabv_i{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-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_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_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_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_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:transparent;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_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_c{border-left:var(--cnt-bg) solid 4px}.tp-fldv_b:hover+.tp-fldv_c{border-left-color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_c{border-left-color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_c{border-left-color:var(--cnt-bg-a)}.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;-ms-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_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-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.tp-v-disabled{opacity:.5}.tp-tabv_i{align-items:flex-end;display:flex;overflow:hidden}.tp-tabv.tp-tabv-nop .tp-tabv_i{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_i::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{border-left:var(--cnt-bg) solid 4px;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p)}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:-2px;position:absolute;width:2px}.tp-tbiv_b{background-color:var(--cnt-bg);display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);width:100%}.tp-tbiv_b:hover{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active{background-color:var(--cnt-bg-a)}.tp-tbiv_b:disabled{opacity:.5}.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) transparent transparent transparent;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_c>.tp-fldv.tp-v-lst>.tp-fldv_c,.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-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.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_i{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(t=>{this.embedPluginStyle_(t)}),this.registerPlugin({plugins:[ua,oa,wn,da]})}}const ma=new u("3.1.0");T.BladeApi=F,T.ButtonApi=tt,T.FolderApi=vn,T.InputBindingApi=ct,T.ListApi=ur,T.MonitorBindingApi=Qt,T.Pane=va,T.SeparatorApi=_n,T.SliderApi=dr,T.TabApi=Xn,T.TabPageApi=gn,T.TextApi=hr,T.TpChangeEvent=Vt,T.VERSION=ma,Object.defineProperty(T,"__esModule",{value:!0})})})(bi,bi.exports);var Kn={exports:{}};(function(Y,$){(function(T,u){u($)})(Ss,function(T){class u{constructor(i){this.controller_=i}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(i){this.controller_.viewProps.set("disabled",i)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(i){this.controller_.viewProps.set("hidden",i)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class F{constructor(i){this.target=i}}class nt extends F{constructor(i,r,a,p){super(i),this.value=r,this.presetKey=a,this.last=p!=null?p:!0}}function Vt(o){return o}function y(o){return o==null}const B={alreadydisposed:()=>"View has been already disposed",invalidparams:o=>`Invalid parameters for '${o.name}'`,nomatchingcontroller:o=>`No matching controller for '${o.key}'`,nomatchingview:o=>`No matching view for '${JSON.stringify(o.params)}'`,notbindable:()=>"Value is not bindable",propertynotfound:o=>`Property '${o.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class Mt{constructor(i){var r;this.message=(r=B[i.type](i.context))!==null&&r!==void 0?r:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=i.type}static alreadyDisposed(){return new Mt({type:"alreadydisposed"})}static notBindable(){return new Mt({type:"notbindable"})}static propertyNotFound(i){return new Mt({type:"propertynotfound",context:{name:i}})}static shouldNeverHappen(){return new Mt({type:"shouldneverhappen"})}}class D{constructor(){this.observers_={}}on(i,r){let a=this.observers_[i];return a||(a=this.observers_[i]=[]),a.push({handler:r}),this}off(i,r){const a=this.observers_[i];return a&&(this.observers_[i]=a.filter(p=>p.handler!==r)),this}emit(i,r){const a=this.observers_[i];!a||a.forEach(p=>{p.handler(r)})}}const S="tp";function U(o){return(r,a)=>[S,"-",o,"v",r?`_${r}`:"",a?`-${a}`:""].join("")}function jt(o,i){return r=>i(o(r))}function L(o){return o.rawValue}function it(o,i){o.emitter.on("change",jt(L,i)),i(o.rawValue)}function tt(o,i,r){it(o.value(i),r)}function j(o,i,r){r?o.classList.add(i):o.classList.remove(i)}function dt(o,i){return r=>{j(o,i,r)}}function V(o,i){it(o,r=>{i.textContent=r!=null?r:""})}const Ct=U("btn");class Bt{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Ct()),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("button");a.classList.add(Ct("b")),r.viewProps.bindDisabled(a),this.element.appendChild(a),this.buttonElement=a;const p=i.createElement("div");p.classList.add(Ct("t")),V(r.props.value("title"),p),this.buttonElement.appendChild(p)}}class at{constructor(i,r){this.emitter=new D,this.onClick_=this.onClick_.bind(this),this.props=r.props,this.viewProps=r.viewProps,this.view=new Bt(i,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class X{constructor(i,r){var a;this.constraint_=r==null?void 0:r.constraint,this.equals_=(a=r==null?void 0:r.equals)!==null&&a!==void 0?a:(p,d)=>p===d,this.emitter=new D,this.rawValue_=i}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(i){this.setRawValue(i,{forceEmit:!1,last:!0})}setRawValue(i,r){const a=r!=null?r:{forceEmit:!1,last:!0},p=this.constraint_?this.constraint_.constrain(i):i;!!this.equals_(this.rawValue_,p)&&!a.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=p,this.emitter.emit("change",{options:a,rawValue:p,sender:this}))}}class O{constructor(i){this.emitter=new D,this.value_=i}get rawValue(){return this.value_}set rawValue(i){this.setRawValue(i,{forceEmit:!1,last:!0})}setRawValue(i,r){const a=r!=null?r:{forceEmit:!1,last:!0};this.value_===i&&!a.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=i,this.emitter.emit("change",{options:a,rawValue:this.value_,sender:this}))}}function Z(o,i){const r=i==null?void 0:i.constraint,a=i==null?void 0:i.equals;return!r&&!a?new O(o):new X(o,i)}class G{constructor(i){this.emitter=new D,this.valMap_=i;for(const r in this.valMap_)this.valMap_[r].emitter.on("change",()=>{this.emitter.emit("change",{key:r,sender:this})})}static createCore(i){return Object.keys(i).reduce((a,p)=>Object.assign(a,{[p]:Z(i[p])}),{})}static fromObject(i){const r=this.createCore(i);return new G(r)}get(i){return this.valMap_[i].rawValue}set(i,r){this.valMap_[i].rawValue=r}value(i){return this.valMap_[i]}}function Ut(o,i){const a=Object.keys(i).reduce((p,d)=>{if(p===void 0)return;const m=i[d],_=m(o[d]);return _.succeeded?Object.assign(Object.assign({},p),{[d]:_.value}):void 0},{});return a}function Ce(o,i){return o.reduce((r,a)=>{if(r===void 0)return;const p=i(a);if(!(!p.succeeded||p.value===void 0))return[...r,p.value]},[])}function ye(o){return o===null?!1:typeof o=="object"}function ht(o){return i=>r=>{if(!i&&r===void 0)return{succeeded:!1,value:void 0};if(i&&r===void 0)return{succeeded:!0,value:void 0};const a=o(r);return a!==void 0?{succeeded:!0,value:a}:{succeeded:!1,value:void 0}}}function Pe(o){return{custom:i=>ht(i)(o),boolean:ht(i=>typeof i=="boolean"?i:void 0)(o),number:ht(i=>typeof i=="number"?i:void 0)(o),string:ht(i=>typeof i=="string"?i:void 0)(o),function:ht(i=>typeof i=="function"?i:void 0)(o),constant:i=>ht(r=>r===i?i:void 0)(o),raw:ht(i=>i)(o),object:i=>ht(r=>{if(!!ye(r))return Ut(r,i)})(o),array:i=>ht(r=>{if(!!Array.isArray(r))return Ce(r,i)})(o)}}const z={optional:Pe(!0),required:Pe(!1)};function C(o,i){const r=z.required.object(i)(o);return r.succeeded?r.value:void 0}function Fe(o){return o&&o.parentElement&&o.parentElement.removeChild(o),null}function $e(){return["veryfirst","first","last","verylast"]}const He=U(""),lt={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class Ee{constructor(i){this.parent_=null,this.blade=i.blade,this.view=i.view,this.viewProps=i.viewProps;const r=this.view.element;this.blade.value("positions").emitter.on("change",()=>{$e().forEach(a=>{r.classList.remove(He(void 0,lt[a]))}),this.blade.get("positions").forEach(a=>{r.classList.add(He(void 0,lt[a]))})}),this.viewProps.handleDispose(()=>{Fe(r)})}get parent(){return this.parent_}}const M="http://www.w3.org/2000/svg";function q(o){o.offsetHeight}function cn(o,i){const r=o.style.transition;o.style.transition="none",i(),o.style.transition=r}function qe(o){return o.ontouchstart!==void 0}function ke(o){for(;o.childNodes.length>0;)o.removeChild(o.childNodes[0])}function Ve(o){return o.relatedTarget?o.relatedTarget:"explicitOriginalTarget"in o?o.explicitOriginalTarget:null}const vt=U("lbl");function mt(o,i){const r=o.createDocumentFragment();return i.split(`
11
- `).map(p=>o.createTextNode(p)).forEach((p,d)=>{d>0&&r.appendChild(o.createElement("br")),r.appendChild(p)}),r}class Xt{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(vt()),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(vt("l")),tt(r.props,"label",d=>{y(d)?this.element.classList.add(vt(void 0,"nol")):(this.element.classList.remove(vt(void 0,"nol")),ke(a),a.appendChild(mt(i,d)))}),this.element.appendChild(a),this.labelElement=a;const p=i.createElement("div");p.classList.add(vt("v")),this.element.appendChild(p),this.valueElement=p}}class Zt extends Ee{constructor(i,r){const a=r.valueController.viewProps;super(Object.assign(Object.assign({},r),{view:new Xt(i,{props:r.props,viewProps:a}),viewProps:a})),this.props=r.props,this.valueController=r.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class re extends Ee{constructor(i){super(i),this.value=i.value}}class oe extends G{constructor(i){super(i)}static create(i){const r={completed:!0,expanded:i,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},a=G.createCore(r);return new oe(a)}get styleExpanded(){var i;return(i=this.get("temporaryExpanded"))!==null&&i!==void 0?i:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const i=this.get("expandedHeight");return this.get("shouldFixHeight")&&!y(i)?`${i}px`:"auto"}bindExpandedClass(i,r){const a=()=>{this.styleExpanded?i.classList.add(r):i.classList.remove(r)};tt(this,"expanded",a),tt(this,"temporaryExpanded",a)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function un(o){return oe.create(o)}function dn(o,i){let r=0;return cn(i,()=>{o.set("expandedHeight",null),o.set("temporaryExpanded",!0),q(i),r=i.clientHeight,o.set("temporaryExpanded",null),q(i)}),r}function Me(o,i){i.style.height=o.styleHeight}function Kt(o,i){o.value("expanded").emitter.on("beforechange",()=>{o.set("completed",!1),y(o.get("expandedHeight"))&&o.set("expandedHeight",dn(o,i)),o.set("shouldFixHeight",!0),q(i)}),o.emitter.on("change",()=>{Me(o,i)}),Me(o,i),i.addEventListener("transitionend",r=>{r.propertyName==="height"&&o.cleanUpTransition()})}class Wt{constructor(i,r){const a=U(r.viewName);this.element=i.createElement("div"),this.element.classList.add(a()),r.viewProps.bindClassModifiers(this.element)}}class Ft extends re{constructor(i,r){const a=r.valueController.viewProps;super(Object.assign(Object.assign({},r),{value:r.valueController.value,view:new Xt(i,{props:r.props,viewProps:a}),viewProps:a})),this.props=r.props,this.valueController=r.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const Ge=U("");function Ye(o,i){return dt(o,Ge(void 0,i))}class yt extends G{constructor(i){super(i)}static create(i){var r,a;const p=i!=null?i:{},d={disabled:(r=p.disabled)!==null&&r!==void 0?r:!1,disposed:!1,hidden:(a=p.hidden)!==null&&a!==void 0?a:!1},m=G.createCore(d);return new yt(m)}bindClassModifiers(i){tt(this,"disabled",Ye(i,"disabled")),tt(this,"hidden",Ye(i,"hidden"))}bindDisabled(i){tt(this,"disabled",r=>{i.disabled=r})}bindTabIndex(i){tt(this,"disabled",r=>{i.tabIndex=r?-1:0})}handleDispose(i){this.value("disposed").emitter.on("change",r=>{r&&i()})}}class $t{constructor(){this.disabled=!1,this.emitter=new D}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class hn{constructor(i,r){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=i,this.emitter=new D,this.interval_=r,this.setTimer_()}get disabled(){return this.disabled_}set disabled(i){this.disabled_=i,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const i=this.doc_.defaultView;i&&i.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const i=this.doc_.defaultView;i&&(this.timerId_=i.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Le{constructor(i){this.constraints=i}constrain(i){return this.constraints.reduce((r,a)=>a.constrain(r),i)}}function Pt(o,i){if(o instanceof i)return o;if(o instanceof Le){const r=o.constraints.reduce((a,p)=>a||(p instanceof i?p:null),null);if(r)return r}return null}class ae{constructor(i){this.maxValue=i.max,this.minValue=i.min}constrain(i){let r=i;return y(this.minValue)||(r=Math.max(r,this.minValue)),y(this.maxValue)||(r=Math.min(r,this.maxValue)),r}}class bt{constructor(i,r=0){this.step=i,this.origin=r}constrain(i){const r=this.origin%this.step,a=Math.round((i-r)/this.step);return r+a*this.step}}const Lt=U("pop");class St{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Lt()),r.viewProps.bindClassModifiers(this.element),it(r.shows,dt(this.element,Lt(void 0,"v")))}}class v{constructor(i,r){this.shows=Z(!1),this.viewProps=r.viewProps,this.view=new St(i,{shows:this.shows,viewProps:this.viewProps})}}const f=U("txt");class x{constructor(i,r){this.onChange_=this.onChange_.bind(this),this.element=i.createElement("div"),this.element.classList.add(f()),r.viewProps.bindClassModifiers(this.element),this.props_=r.props,this.props_.emitter.on("change",this.onChange_);const a=i.createElement("input");a.classList.add(f("i")),a.type="text",r.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,r.value.emitter.on("change",this.onChange_),this.value_=r.value,this.refresh()}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value_.rawValue)}onChange_(){this.refresh()}}class A{constructor(i,r){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=r.parser,this.props=r.props,this.value=r.value,this.viewProps=r.viewProps,this.view=new x(i,{props:r.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(i){const a=i.currentTarget.value,p=this.parser_(a);y(p)||(this.value.rawValue=p),this.view.refresh()}}function W(o){return o==="false"?!1:!!o}class ft{constructor(i){this.text=i}evaluate(){return Number(this.text)}toString(){return this.text}}const le={"**":(o,i)=>Math.pow(o,i),"*":(o,i)=>o*i,"/":(o,i)=>o/i,"%":(o,i)=>o%i,"+":(o,i)=>o+i,"-":(o,i)=>o-i,"<<":(o,i)=>o<<i,">>":(o,i)=>o>>i,">>>":(o,i)=>o>>>i,"&":(o,i)=>o&i,"^":(o,i)=>o^i,"|":(o,i)=>o|i};class Xe{constructor(i,r,a){this.left=r,this.operator=i,this.right=a}evaluate(){const i=le[this.operator];if(!i)throw new Error(`unexpected binary operator: '${this.operator}`);return i(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const pt={"+":o=>o,"-":o=>-o,"~":o=>~o};class ct{constructor(i,r){this.operator=i,this.expression=r}evaluate(){const i=pt[this.operator];if(!i)throw new Error(`unexpected unary operator: '${this.operator}`);return i(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function _t(o){return(i,r)=>{for(let a=0;a<o.length;a++){const p=o[a](i,r);if(p!=="")return p}return""}}function Qt(o,i){var r;const a=o.substr(i).match(/^\s+/);return(r=a&&a[0])!==null&&r!==void 0?r:""}function Ht(o,i){const r=o.substr(i,1);return r.match(/^[1-9]$/)?r:""}function Se(o,i){var r;const a=o.substr(i).match(/^[0-9]+/);return(r=a&&a[0])!==null&&r!==void 0?r:""}function Ae(o,i){const r=Se(o,i);if(r!=="")return r;const a=o.substr(i,1);if(i+=1,a!=="-"&&a!=="+")return"";const p=Se(o,i);return p===""?"":a+p}function Ze(o,i){const r=o.substr(i,1);if(i+=1,r.toLowerCase()!=="e")return"";const a=Ae(o,i);return a===""?"":r+a}function Te(o,i){const r=o.substr(i,1);if(r==="0")return r;const a=Ht(o,i);return i+=a.length,a===""?"":a+Se(o,i)}function vn(o,i){const r=Te(o,i);if(i+=r.length,r==="")return"";const a=o.substr(i,1);if(i+=a.length,a!==".")return"";const p=Se(o,i);return i+=p.length,r+a+p+Ze(o,i)}function mn(o,i){const r=o.substr(i,1);if(i+=r.length,r!==".")return"";const a=Se(o,i);return i+=a.length,a===""?"":r+a+Ze(o,i)}function fi(o,i){const r=Te(o,i);return i+=r.length,r===""?"":r+Ze(o,i)}const _i=_t([vn,mn,fi]);function gi(o,i){var r;const a=o.substr(i).match(/^[01]+/);return(r=a&&a[0])!==null&&r!==void 0?r:""}function wi(o,i){const r=o.substr(i,2);if(i+=r.length,r.toLowerCase()!=="0b")return"";const a=gi(o,i);return a===""?"":r+a}function bn(o,i){var r;const a=o.substr(i).match(/^[0-7]+/);return(r=a&&a[0])!==null&&r!==void 0?r:""}function xi(o,i){const r=o.substr(i,2);if(i+=r.length,r.toLowerCase()!=="0o")return"";const a=bn(o,i);return a===""?"":r+a}function Ci(o,i){var r;const a=o.substr(i).match(/^[0-9a-f]+/i);return(r=a&&a[0])!==null&&r!==void 0?r:""}function Oe(o,i){const r=o.substr(i,2);if(i+=r.length,r.toLowerCase()!=="0x")return"";const a=Ci(o,i);return a===""?"":r+a}const $n=_t([wi,xi,Oe]),yi=_t([$n,_i]);function fn(o,i){const r=yi(o,i);return i+=r.length,r===""?null:{evaluable:new ft(r),cursor:i}}function Pi(o,i){const r=o.substr(i,1);if(i+=r.length,r!=="(")return null;const a=Gn(o,i);if(!a)return null;i=a.cursor,i+=Qt(o,i).length;const p=o.substr(i,1);return i+=p.length,p!==")"?null:{evaluable:a.evaluable,cursor:i}}function pe(o,i){var r;return(r=fn(o,i))!==null&&r!==void 0?r:Pi(o,i)}function _n(o,i){const r=pe(o,i);if(r)return r;const a=o.substr(i,1);if(i+=a.length,a!=="+"&&a!=="-"&&a!=="~")return null;const p=_n(o,i);return p?(i=p.cursor,{cursor:i,evaluable:new ct(a,p.evaluable)}):null}function Hn(o,i,r){r+=Qt(i,r).length;const a=o.filter(p=>i.startsWith(p,r))[0];return a?(r+=a.length,r+=Qt(i,r).length,{cursor:r,operator:a}):null}function Ei(o,i){return(r,a)=>{const p=o(r,a);if(!p)return null;a=p.cursor;let d=p.evaluable;for(;;){const m=Hn(i,r,a);if(!m)break;a=m.cursor;const _=o(r,a);if(!_)return null;a=_.cursor,d=new Xe(m.operator,d,_.evaluable)}return d?{cursor:a,evaluable:d}:null}}const qn=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((o,i)=>Ei(o,i),_n);function Gn(o,i){return i+=Qt(o,i).length,qn(o,i)}function ki(o){const i=Gn(o,0);return!i||i.cursor+Qt(o,i.cursor).length!==o.length?null:i.evaluable}function De(o){var i;const r=ki(o);return(i=r==null?void 0:r.evaluate())!==null&&i!==void 0?i:null}function qt(o){if(typeof o=="number")return o;if(typeof o=="string"){const i=De(o);if(!y(i))return i}return 0}function et(o){return i=>i.toFixed(Math.max(Math.min(o,20),0))}const Vi=et(0);function We(o){return Vi(o)+"%"}function Yn(o){return String(o)}function gn(o,i){for(;o.length<i;)o.push(void 0)}function Xn(o){const i=[];return gn(i,o),Z(i)}function Zn(o){const i=o.indexOf(void 0);return i<0?o:o.slice(0,i)}function Mi(o,i){const r=[...Zn(o),i];return r.length>o.length?r.splice(0,r.length-o.length):gn(r,o.length),r}function Ne({primary:o,secondary:i,forward:r,backward:a}){let p=!1;function d(m){p||(p=!0,m(),p=!1)}o.emitter.on("change",m=>{d(()=>{i.setRawValue(r(o,i),m.options)})}),i.emitter.on("change",m=>{d(()=>{o.setRawValue(a(o,i),m.options)}),d(()=>{i.setRawValue(r(o,i),m.options)})}),d(()=>{i.setRawValue(r(o,i),{forceEmit:!1,last:!0})})}function ce(o,i){const r=o*(i.altKey?.1:1)*(i.shiftKey?10:1);return i.upKey?+r:i.downKey?-r:0}function ze(o){return{altKey:o.altKey,downKey:o.key==="ArrowDown",shiftKey:o.shiftKey,upKey:o.key==="ArrowUp"}}function wn(o){return{altKey:o.altKey,downKey:o.key==="ArrowLeft",shiftKey:o.shiftKey,upKey:o.key==="ArrowRight"}}function Li(o){return o==="ArrowUp"||o==="ArrowDown"}function Wn(o){return Li(o)||o==="ArrowLeft"||o==="ArrowRight"}function xn(o,i){var r,a;const p=i.ownerDocument.defaultView,d=i.getBoundingClientRect();return{x:o.pageX-(((r=p&&p.scrollX)!==null&&r!==void 0?r:0)+d.left),y:o.pageY-(((a=p&&p.scrollY)!==null&&a!==void 0?a:0)+d.top)}}class Gt{constructor(i){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_=i,this.emitter=new D,i.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),i.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),i.addEventListener("touchend",this.onTouchEnd_),i.addEventListener("mousedown",this.onMouseDown_)}computePosition_(i){const r=this.elem_.getBoundingClientRect();return{bounds:{width:r.width,height:r.height},point:i?{x:i.x,y:i.y}:null}}onMouseDown_(i){var r;i.preventDefault(),(r=i.currentTarget)===null||r===void 0||r.focus();const a=this.elem_.ownerDocument;a.addEventListener("mousemove",this.onDocumentMouseMove_),a.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:i.altKey,data:this.computePosition_(xn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseMove_(i){this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(xn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseUp_(i){const r=this.elem_.ownerDocument;r.removeEventListener("mousemove",this.onDocumentMouseMove_),r.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:i.altKey,data:this.computePosition_(xn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onTouchStart_(i){i.preventDefault();const r=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:i.altKey,data:this.computePosition_(r?{x:r.clientX-a.left,y:r.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=r}onTouchMove_(i){const r=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(r?{x:r.clientX-a.left,y:r.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=r}onTouchEnd_(i){var r;const a=(r=i.targetTouches.item(0))!==null&&r!==void 0?r:this.lastTouch_,p=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:i.altKey,data:this.computePosition_(a?{x:a.clientX-p.left,y:a.clientY-p.top}:void 0),sender:this,shiftKey:i.shiftKey})}}function R(o,i,r,a,p){const d=(o-i)/(r-i);return a+d*(p-a)}function ue(o){return String(o.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function xt(o,i,r){return Math.min(Math.max(o,i),r)}const st=U("txt");class Cn{constructor(i,r){this.onChange_=this.onChange_.bind(this),this.props_=r.props,this.props_.emitter.on("change",this.onChange_),this.element=i.createElement("div"),this.element.classList.add(st(),st(void 0,"num")),r.arrayPosition&&this.element.classList.add(st(void 0,r.arrayPosition)),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("input");a.classList.add(st("i")),a.type="text",r.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=r.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(st()),this.inputElement.classList.add(st("i"));const p=i.createElement("div");p.classList.add(st("k")),this.element.appendChild(p),this.knobElement=p;const d=i.createElementNS(M,"svg");d.classList.add(st("g")),this.knobElement.appendChild(d);const m=i.createElementNS(M,"path");m.classList.add(st("gb")),d.appendChild(m),this.guideBodyElem_=m;const _=i.createElementNS(M,"path");_.classList.add(st("gh")),d.appendChild(_),this.guideHeadElem_=_;const g=i.createElement("div");g.classList.add(U("tt")()),this.knobElement.appendChild(g),this.tooltipElem_=g,r.value.emitter.on("change",this.onChange_),this.value=r.value,this.refresh()}onDraggingChange_(i){if(i.rawValue===null){this.element.classList.remove(st(void 0,"drg"));return}this.element.classList.add(st(void 0,"drg"));const r=i.rawValue/this.props_.get("draggingScale"),a=r+(r>0?-1:r<0?1:0),p=xt(-a,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${a+p},0 L${a},4 L${a+p},8`,`M ${r},-1 L${r},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${r},4`);const d=this.props_.get("formatter");this.tooltipElem_.textContent=d(this.value.rawValue),this.tooltipElem_.style.left=`${r}px`}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value.rawValue)}onChange_(){this.refresh()}}class Si{constructor(i,r){var a;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_=r.baseStep,this.parser_=r.parser,this.props=r.props,this.sliderProps_=(a=r.sliderProps)!==null&&a!==void 0?a:null,this.value=r.value,this.viewProps=r.viewProps,this.dragging_=Z(null),this.view=new Cn(i,{arrayPosition:r.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 p=new Gt(this.view.knobElement);p.emitter.on("down",this.onPointerDown_),p.emitter.on("move",this.onPointerMove_),p.emitter.on("up",this.onPointerUp_)}constrainValue_(i){var r,a;const p=(r=this.sliderProps_)===null||r===void 0?void 0:r.get("minValue"),d=(a=this.sliderProps_)===null||a===void 0?void 0:a.get("maxValue");let m=i;return p!==void 0&&(m=Math.max(m,p)),d!==void 0&&(m=Math.min(m,d)),m}onInputChange_(i){const a=i.currentTarget.value,p=this.parser_(a);y(p)||(this.value.rawValue=this.constrainValue_(p)),this.view.refresh()}onInputKeyDown_(i){const r=ce(this.baseStep_,ze(i));r!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+r),{forceEmit:!1,last:!1})}onInputKeyUp_(i){ce(this.baseStep_,ze(i))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(i){if(!i.point)return null;const r=i.point.x-i.bounds.width/2;return this.constrainValue_(this.originRawValue_+r*this.props.get("draggingScale"))}onPointerMove_(i){const r=this.computeDraggingValue_(i.data);r!==null&&(this.value.setRawValue(r,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(i){const r=this.computeDraggingValue_(i.data);r!==null&&(this.value.setRawValue(r,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function Jt(o,i){o.write(i)}function Qn(o){const i=o?Pt(o,bt):null;return i?i.step:null}function Ai(o,i){const r=o&&Pt(o,bt);return r?ue(r.step):Math.max(ue(i),2)}function yn(o){const i=Qn(o);return i!=null?i:1}function Jn(o,i){var r;const a=o&&Pt(o,bt),p=Math.abs((r=a==null?void 0:a.step)!==null&&r!==void 0?r:i);return p===0?.1:Math.pow(10,Math.floor(Math.log10(p))-1)}function Qe(o){return[o[0],o[1],o[2]]}function Ie(o){const i=xt(Math.floor(o),0,255).toString(16);return i.length===1?`0${i}`:i}function Ti(o,i="#"){const r=Qe(o.getComponents("rgb")).map(Ie).join("");return`${i}${r}`}function ti(o,i="#"){const r=o.getComponents("rgb"),a=[r[0],r[1],r[2],r[3]*255].map(Ie).join("");return`${i}${a}`}function ei(o,i){const r=et(i==="float"?2:0);return`rgb(${Qe(o.getComponents("rgb",i)).map(p=>r(p)).join(", ")})`}function Oi(o){return i=>ei(i,o)}function Di(o,i){const r=et(2),a=et(i==="float"?2:0);return`rgba(${o.getComponents("rgb",i).map((d,m)=>(m===3?r:a)(d)).join(", ")})`}function Ni(o){return i=>Di(i,o)}function zi(o){const i=[et(0),We,We];return`hsl(${Qe(o.getComponents("hsl")).map((a,p)=>i[p](a)).join(", ")})`}function Ii(o){const i=[et(0),We,We,et(2)];return`hsla(${o.getComponents("hsl").map((a,p)=>i[p](a)).join(", ")})`}function Pn(o,i){const r=et(i==="float"?2:0),a=["r","g","b"];return`{${Qe(o.getComponents("rgb",i)).map((d,m)=>`${a[m]}: ${r(d)}`).join(", ")}}`}function Re(o){return i=>Pn(i,o)}function Ri(o,i){const r=et(2),a=et(i==="float"?2:0),p=["r","g","b","a"];return`{${o.getComponents("rgb",i).map((m,_)=>{const g=_===3?r:a;return`${p[_]}: ${g(m)}`}).join(", ")}}`}function je(o){return i=>Ri(i,o)}[...["int","float"].reduce((o,i)=>[...o,{format:{alpha:!1,mode:"rgb",notation:"func",type:i},stringifier:Oi(i)},{format:{alpha:!0,mode:"rgb",notation:"func",type:i},stringifier:Ni(i)},{format:{alpha:!1,mode:"rgb",notation:"object",type:i},stringifier:Re(i)},{format:{alpha:!0,mode:"rgb",notation:"object",type:i},stringifier:je(i)}],[])];class ji{constructor(i){this.components=i.components,this.asm_=i.assembly}constrain(i){const r=this.asm_.toComponents(i).map((a,p)=>{var d,m;return(m=(d=this.components[p])===null||d===void 0?void 0:d.constrain(a))!==null&&m!==void 0?m:a});return this.asm_.fromComponents(r)}}const Je=U("pndtxt");class ni{constructor(i,r){this.textViews=r.textViews,this.element=i.createElement("div"),this.element.classList.add(Je()),this.textViews.forEach(a=>{const p=i.createElement("div");p.classList.add(Je("a")),p.appendChild(a.element),this.element.appendChild(p)})}}function Bi(o,i,r){return new Si(o,{arrayPosition:r===0?"fst":r===i.axes.length-1?"lst":"mid",baseStep:i.axes[r].baseStep,parser:i.parser,props:i.axes[r].textProps,value:Z(0,{constraint:i.axes[r].constraint}),viewProps:i.viewProps})}class En{constructor(i,r){this.value=r.value,this.viewProps=r.viewProps,this.acs_=r.axes.map((a,p)=>Bi(i,r,p)),this.acs_.forEach((a,p)=>{Ne({primary:this.value,secondary:a.value,forward:d=>r.assembly.toComponents(d.rawValue)[p],backward:(d,m)=>{const _=r.assembly.toComponents(d.rawValue);return _[p]=m.rawValue,r.assembly.fromComponents(_)}})}),this.view=new ni(i,{textViews:this.acs_.map(a=>a.view)})}}function Ui(o,i){return"step"in o&&!y(o.step)?new bt(o.step,i):null}function Ki(o){return"max"in o&&!y(o.max)||"min"in o&&!y(o.min)?new ae({max:o.max,min:o.min}):null}const Fi={monitor:{defaultInterval:200,defaultLineCount:3}},Yt=U("grl");class $i{constructor(i,r){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=i.createElement("div"),this.element.classList.add(Yt()),r.viewProps.bindClassModifiers(this.element),this.formatter_=r.formatter,this.props_=r.props,this.cursor_=r.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const a=i.createElementNS(M,"svg");a.classList.add(Yt("g")),a.style.height=`calc(var(--bld-us) * ${r.lineCount})`,this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(M,"polyline");this.svgElem_.appendChild(p),this.lineElem_=p;const d=i.createElement("div");d.classList.add(Yt("t"),U("tt")()),this.element.appendChild(d),this.tooltipElem_=d,r.value.emitter.on("change",this.onValueUpdate_),this.value=r.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const i=this.svgElem_.getBoundingClientRect(),r=this.value.rawValue.length-1,a=this.props_.get("minValue"),p=this.props_.get("maxValue"),d=[];this.value.rawValue.forEach((zt,zn)=>{if(zt===void 0)return;const In=R(zn,0,r,0,i.width),ne=R(zt,a,p,i.height,0);d.push([In,ne].join(","))}),this.lineElem_.setAttributeNS(null,"points",d.join(" "));const m=this.tooltipElem_,_=this.value.rawValue[this.cursor_.rawValue];if(_===void 0){m.classList.remove(Yt("t","a"));return}const g=R(this.cursor_.rawValue,0,r,0,i.width),J=R(_,a,p,i.height,0);m.style.left=`${g}px`,m.style.top=`${J}px`,m.textContent=`${this.formatter_(_)}`,m.classList.contains(Yt("t","a"))||(m.classList.add(Yt("t","a"),Yt("t","in")),q(m),m.classList.remove(Yt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Hi{constructor(i,r){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_=r.props,this.value=r.value,this.viewProps=r.viewProps,this.cursor_=Z(-1),this.view=new $i(i,{cursor:this.cursor_,formatter:r.formatter,lineCount:r.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!qe(i))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const a=new Gt(this.view.element);a.emitter.on("down",this.onGraphPointerDown_),a.emitter.on("move",this.onGraphPointerMove_),a.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(i){const r=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(R(i.offsetX,0,r.width,0,this.value.rawValue.length))}onGraphPointerDown_(i){this.onGraphPointerMove_(i)}onGraphPointerMove_(i){if(!i.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(R(i.data.point.x,0,i.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class qi{constructor(i){this.controller_=i}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(i){this.controller_.viewProps.set("disabled",i)}get title(){var i;return(i=this.controller_.props.get("title"))!==null&&i!==void 0?i:""}set title(i){this.controller_.props.set("title",i)}on(i,r){const a=r.bind(this);return this.controller_.emitter.on(i,()=>{a(new F(this))}),this}}class Gi extends F{constructor(i,r,a){super(i),this.cell=r,this.index=a}}class Yi extends u{constructor(i){super(i),this.cellToApiMap_=new Map,this.emitter_=new D;const r=this.controller_.valueController;r.cellControllers.forEach((a,p)=>{const d=new qi(a);this.cellToApiMap_.set(a,d),a.emitter.on("click",()=>{const m=p%r.size[0],_=Math.floor(p/r.size[0]);this.emitter_.emit("click",{event:new Gi(this,d,[m,_])})})})}cell(i,r){const a=this.controller_.valueController,p=a.cellControllers[r*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,r){const a=r.bind(this);return this.emitter_.on(i,p=>{a(p.event)}),this}}class ii{constructor(i,r){this.size=r.size;const[a,p]=this.size,d=[];for(let m=0;m<p;m++)for(let _=0;_<a;_++){const g=new at(i,{props:G.fromObject(Object.assign({},r.cellConfig(_,m))),viewProps:yt.create()});d.push(g)}this.cellCs_=d,this.viewProps=yt.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(m=>{m.viewProps.set("disposed",!0)})}),this.view=new Wt(i,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(m=>{this.view.element.appendChild(m.view.element)})}get cellControllers(){return this.cellCs_}}const Xi={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(o){const i=z,r=C(o,{cells:i.required.function,size:i.required.array(i.required.number),view:i.required.constant("buttongrid"),label:i.optional.string});return r?{params:r}:null},controller(o){return new Zt(o.document,{blade:o.blade,props:G.fromObject({label:o.params.label}),valueController:new ii(o.document,{cellConfig:o.params.cells,size:o.params.size})})},api(o){return!(o.controller instanceof Zt)||!(o.controller.valueController instanceof ii)?null:new Yi(o.controller)}};class Zi extends u{get label(){return this.controller_.props.get("label")}set label(i){this.controller_.props.set("label",i)}get value(){return this.controller_.valueController.value.rawValue}set value(i){this.controller_.valueController.value.rawValue=i}on(i,r){const a=r.bind(this);return this.controller_.valueController.value.emitter.on(i,p=>{a(new nt(this,p.rawValue,void 0,p.options.last))}),this}}function gt(o,i,r){return o*(1-r)+i*r}const si=20,Wi=.001,kn=100;function Qi(o,i){let r=.25,a=.5,p=-1;for(let d=0;d<si;d++){const[m,_]=o.curve(a);if(a+=r*(m<i?1:-1),p=_,r*=.5,Math.abs(i-m)<Wi)break}return p}class At{constructor(i=0,r=0,a=1,p=1){this.cache_=[],this.comps_=[i,r,a,p]}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(i){return y(i)||!Array.isArray(i)?!1:typeof i[0]=="number"&&typeof i[1]=="number"&&typeof i[2]=="number"&&typeof i[3]=="number"}static equals(i,r){return i.x1===r.x1&&i.y1===r.y1&&i.x2===r.x2&&i.y2===r.y2}curve(i){const r=gt(0,this.x1,i),a=gt(0,this.y1,i),p=gt(this.x1,this.x2,i),d=gt(this.y1,this.y2,i),m=gt(this.x2,1,i),_=gt(this.y2,1,i),g=gt(r,p,i),J=gt(a,d,i),zt=gt(p,m,i),zn=gt(d,_,i);return[gt(g,zt,i),gt(J,zn,i)]}y(i){if(this.cache_.length===0){const r=[];for(let a=0;a<kn;a++)r.push(Qi(this,R(a,0,kn-1,0,1)));this.cache_=r}return this.cache_[Math.round(R(xt(i,0,1),0,1,0,kn-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const ri={toComponents:o=>o.toObject(),fromComponents:o=>new At(...o)};function Tt(o){const i=et(2);return`cubic-bezier(${o.toObject().map(a=>i(a)).join(", ")})`}const Vn=[0,.5,.5,1];function Ji(o){const i=o.match(/^cubic-bezier\s*\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*\)$/);if(!i)return new At(...Vn);const r=[i[1],i[2],i[3],i[4]].reduce((a,p)=>{if(!a)return null;const d=Number(p);return isNaN(d)?null:[...a,d]},[]);return new At(...r!=null?r:Vn)}const H=U("cbz");class ts{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(H()),r.viewProps.bindClassModifiers(this.element),r.foldable.bindExpandedClass(this.element,H(void 0,"expanded")),tt(r.foldable,"completed",dt(this.element,H(void 0,"cpl")));const a=i.createElement("div");a.classList.add(H("h")),this.element.appendChild(a);const p=i.createElement("button");p.classList.add(H("b")),r.viewProps.bindDisabled(p);const d=i.createElementNS(M,"svg");d.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',p.appendChild(d),a.appendChild(p),this.buttonElement=p;const m=i.createElement("div");if(m.classList.add(H("t")),a.appendChild(m),this.textElement=m,r.pickerLayout==="inline"){const _=i.createElement("div");_.classList.add(H("p")),this.element.appendChild(_),this.pickerElement=_}else this.pickerElement=null}}const de=U("cbzp");class oi{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(de()),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(de("g")),this.element.appendChild(a),this.graphElement=a;const p=i.createElement("div");p.classList.add(de("t")),this.element.appendChild(p),this.textElement=p}}function tn(o,i){const r=new MutationObserver(p=>{for(const d of p)d.type==="childList"&&d.addedNodes.forEach(m=>{!m.contains(m)||(i(),r.disconnect())})}),a=o.ownerDocument;r.observe(a.body,{attributes:!0,childList:!0,subtree:!0})}const Ot=U("cbzg");function es(o,i){return r=>i(o(r))}class ns{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Ot()),r.viewProps.bindClassModifiers(this.element),r.viewProps.bindTabIndex(this.element);const a=i.createElement("div");a.classList.add(Ot("p")),this.element.appendChild(a),this.previewElement=a;const p=i.createElementNS(M,"svg");p.classList.add(Ot("g")),this.element.appendChild(p),this.svgElem_=p;const d=i.createElementNS(M,"path");d.classList.add(Ot("u")),this.svgElem_.appendChild(d),this.guideElem_=d;const m=i.createElementNS(M,"polyline");m.classList.add(Ot("l")),this.svgElem_.appendChild(m),this.lineElem_=m,this.handleElems_=[i.createElement("div"),i.createElement("div")],this.handleElems_.forEach(_=>{_.classList.add(Ot("h")),this.element.appendChild(_)}),this.vectorElems_=[i.createElementNS(M,"line"),i.createElementNS(M,"line")],this.vectorElems_.forEach(_=>{_.classList.add(Ot("v")),this.svgElem_.appendChild(_)}),this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=r.selection,this.handleElems_.forEach((_,g)=>{it(this.sel_,es(J=>J===g,dt(_,Ot("h","sel"))))}),tn(this.element,()=>{this.refresh()})}getVertMargin_(i){return i*.25}valueToPosition(i,r){const a=this.element.getBoundingClientRect(),p=a.width,d=a.height,m=this.getVertMargin_(d);return{x:R(i,0,1,0,p),y:R(r,0,1,d-m,m)}}positionToValue(i,r){const a=this.element.getBoundingClientRect(),p=a.width,d=a.height,m=this.getVertMargin_(d);return{x:xt(R(i,0,p,0,1),0,1),y:R(r,d-m,m,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(d=>{const m=this.valueToPosition(0,d),_=this.valueToPosition(1,d);return[`M ${m.x},${m.y}`,`L ${_.x},${_.y}`].join(" ")}).join(" "));const i=this.value_.rawValue,r=[];let a=0;for(;;){const d=this.valueToPosition(...i.curve(a));if(r.push([d.x,d.y].join(",")),a>=1)break;a=Math.min(a+.05,1)}this.lineElem_.setAttributeNS(null,"points",r.join(" "));const p=i.toObject();[0,1].forEach(d=>{const m=this.valueToPosition(d,d),_=this.valueToPosition(p[d*2],p[d*2+1]),g=this.vectorElems_[d];g.setAttributeNS(null,"x1",String(m.x)),g.setAttributeNS(null,"y1",String(m.y)),g.setAttributeNS(null,"x2",String(_.x)),g.setAttributeNS(null,"y2",String(_.y));const J=this.handleElems_[d];J.style.left=`${_.x}px`,J.style.top=`${_.y}px`})}onValueChange_(){this.refresh()}}const ai=24,he=400,rt=1e3,Et=U("cbzprv");class Dt{constructor(i,r){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=i.createElement("div"),this.element.classList.add(Et()),r.viewProps.bindClassModifiers(this.element);const a=i.createElementNS(M,"svg");a.classList.add(Et("g")),this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(M,"path");p.classList.add(Et("t")),this.svgElem_.appendChild(p),this.ticksElem_=p;const d=i.createElement("div");d.classList.add(Et("m")),this.element.appendChild(d),this.markerElem_=d,this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_),r.viewProps.handleDispose(this.onDispose_),tn(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(Et("m","a")),this.startTime_=new Date().getTime()+he,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(Et("m","a"))}onDispose_(){this.stop()}updateMarker_(i){const r=this.value_.rawValue.y(xt(i,0,1));this.markerElem_.style.left=`${r*100}%`}refresh(){const i=this.svgElem_.getBoundingClientRect(),r=i.width,a=i.height,p=[],d=this.value_.rawValue;for(let m=0;m<ai;m++){const _=R(m,0,ai-1,0,1),g=R(d.y(_),0,1,0,r);p.push(`M ${g},0 v${a}`)}this.ticksElem_.setAttributeNS(null,"d",p.join(" "))}onTimer_(){if(this.startTime_===null)return;const i=new Date().getTime()-this.startTime_,r=i/rt;this.updateMarker_(r),i>rt+he&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function Mn(o,i,r,a){const p=r-o,d=a-i;return Math.sqrt(p*p+d*d)}function li(o,i,r,a){const p=Mn(o,i,r,a),d=Math.atan2(a-i,r-o),m=Math.round(d/(Math.PI/4))*Math.PI/4;return{x:o+Math.cos(m)*p,y:i+Math.sin(m)*p}}class Ln{constructor(i,r){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_=r.baseStep,this.value=r.value,this.sel_=Z(0),this.viewProps=r.viewProps,this.view=new ns(i,{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 Dt(i,{value:this.value,viewProps:this.viewProps}),this.prevView_.element.addEventListener("mousedown",p=>{p.stopImmediatePropagation(),p.preventDefault(),this.prevView_.play()}),this.view.previewElement.appendChild(this.prevView_.element);const a=new Gt(this.view.element);a.emitter.on("down",this.onPointerDown_),a.emitter.on("move",this.onPointerMove_),a.emitter.on("up",this.onPointerUp_)}refresh(){this.view.refresh(),this.prevView_.refresh(),this.prevView_.play()}updateValue_(i,r,a){const p=this.sel_.rawValue,d=this.value.rawValue.toObject(),m=this.view.positionToValue(i.x,i.y),_=r?li(p,p,m.x,m.y):m;d[p*2]=_.x,d[p*2+1]=_.y,this.value.setRawValue(new At(...d),a)}onPointerDown_(i){const r=i.data;if(!r.point)return;const a=this.value.rawValue,p=this.view.valueToPosition(a.x1,a.y1),d=Mn(r.point.x,r.point.y,p.x,p.y),m=this.view.valueToPosition(a.x2,a.y2),_=Mn(r.point.x,r.point.y,m.x,m.y);this.sel_.rawValue=d<=_?0:1,this.updateValue_(r.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(i){const r=i.data;!r.point||this.updateValue_(r.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(i){const r=i.data;!r.point||this.updateValue_(r.point,i.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(i){Wn(i.key)&&i.preventDefault();const r=this.sel_.rawValue,a=this.value.rawValue.toObject();a[r*2]+=ce(this.baseStep_,wn(i)),a[r*2+1]+=ce(this.baseStep_,ze(i)),this.value.setRawValue(new At(...a),{forceEmit:!1,last:!1})}onKeyUp_(i){Wn(i.key)&&i.preventDefault();const r=ce(this.baseStep_,wn(i)),a=ce(this.baseStep_,ze(i));r===0&&a===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class te{constructor(i,r){this.value=r.value,this.viewProps=r.viewProps,this.view=new oi(i,{viewProps:this.viewProps}),this.gc_=new Ln(i,{baseStep:r.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const a=Object.assign(Object.assign({},r.axis),{constraint:new ae({max:1,min:0})}),p=Object.assign(Object.assign({},r.axis),{constraint:void 0});this.tc_=new En(i,{assembly:ri,axes:[a,p,a,p],parser:De,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(i=>i.inputElement)]}refresh(){this.gc_.refresh()}}class K{constructor(i,r){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=r.value,this.viewProps=r.viewProps,this.foldable_=un(r.expanded),this.view=new ts(i,{foldable:this.foldable_,pickerLayout:r.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new A(i,{parser:Ji,props:G.fromObject({formatter:Tt}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=r.pickerLayout==="popup"?new v(i,{viewProps:this.viewProps}):null;const a=new te(i,{axis:r.axis,value:this.value,viewProps:this.viewProps});a.allFocusableElements.forEach(p=>{p.addEventListener("blur",this.onPopupChildBlur_),p.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=a,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),it(this.popC_.shows,p=>{p&&a.refresh()}),Ne({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:p=>p.rawValue,backward:(p,d)=>d.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),Kt(this.foldable_,this.view.pickerElement))}onButtonBlur_(i){if(!this.popC_)return;const r=i.relatedTarget;(!r||!this.popC_.view.element.contains(r))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.allFocusableElements[0].focus()}onPopupChildBlur_(i){if(!this.popC_)return;const r=this.popC_.view.element,a=Ve(i);a&&r.contains(a)||a&&a===this.view.buttonElement&&!qe(r.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(i){!this.popC_||i.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function pi(){return new ji({assembly:ri,components:[0,1,2,3].map(o=>o%2===0?new ae({min:0,max:1}):void 0)})}const Q={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(o){const i=z,r=C(o,{value:i.required.array(i.required.number),view:i.required.constant("cubicbezier"),expanded:i.optional.boolean,label:i.optional.string,picker:i.optional.custom(a=>a==="inline"||a==="popup"?a:void 0)});return r?{params:r}:null},controller(o){var i,r;const a=new At(...o.params.value),p=Z(a,{constraint:pi(),equals:At.equals}),d=new K(o.document,{axis:{baseStep:.1,textProps:G.fromObject({draggingScale:.01,formatter:et(2)})},expanded:(i=o.params.expanded)!==null&&i!==void 0?i:!1,pickerLayout:(r=o.params.picker)!==null&&r!==void 0?r:"popup",value:p,viewProps:o.viewProps});return new Ft(o.document,{blade:o.blade,props:G.fromObject({label:o.params.label}),valueController:d})},api(o){return!(o.controller instanceof Ft)||!(o.controller.valueController instanceof K)?null:new Zi(o.controller)}};class ci extends u{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const ut=20;class is{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(i){this.start_=i.getTime()}calculateFps_(i){if(this.timestamps_.length===0)return null;const r=this.timestamps_[0];return 1e3*(this.frameCount_-r.frameCount)/(i-r.time)}compactTimestamps_(){if(this.timestamps_.length<=ut)return;const i=this.timestamps_.length-ut;this.timestamps_.splice(0,i);const r=this.timestamps_[0].frameCount;this.timestamps_.forEach(a=>{a.frameCount-=r}),this.frameCount_-=r}end(i){if(this.start_===null)return;const r=i.getTime();this.duration_=r-this.start_,this.start_=null,this.fps_=this.calculateFps_(r),this.timestamps_.push({frameCount:this.frameCount_,time:r}),++this.frameCount_,this.compactTimestamps_()}}const Nt=U("fps");class Sn{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Nt()),r.viewProps.bindClassModifiers(this.element),this.graphElement=i.createElement("div"),this.graphElement.classList.add(Nt("g")),this.element.appendChild(this.graphElement);const a=i.createElement("div");a.classList.add(Nt("l")),this.element.appendChild(a);const p=i.createElement("span");p.classList.add(Nt("v")),p.textContent="--",a.appendChild(p),this.valueElement=p;const d=i.createElement("span");d.classList.add(Nt("u")),d.textContent="FPS",a.appendChild(d)}}class ui{constructor(i,r){this.stopwatch_=new is,this.onTick_=this.onTick_.bind(this),this.ticker_=r.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=r.value,this.viewProps=r.viewProps,this.view=new Sn(i,{viewProps:this.viewProps}),this.graphC_=new Hi(i,{formatter:et(0),lineCount:r.lineCount,props:G.fromObject({maxValue:r.maxValue,minValue:r.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 i=this.stopwatch_.fps;if(i!==null){const r=this.value_.rawValue;this.value_.rawValue=Mi(r,i),this.view.valueElement.textContent=i.toFixed(0)}}}function ss(o,i){return i===0?new $t:new hn(o,i!=null?i:Fi.monitor.defaultInterval)}const An={id:"fpsgraph",type:"blade",accept(o){const i=z,r=C(o,{view:i.required.constant("fpsgraph"),interval:i.optional.number,label:i.optional.string,lineCount:i.optional.number,max:i.optional.number,min:i.optional.number});return r?{params:r}:null},controller(o){var i,r,a,p;const d=(i=o.params.interval)!==null&&i!==void 0?i:500;return new Zt(o.document,{blade:o.blade,props:G.fromObject({label:o.params.label}),valueController:new ui(o.document,{lineCount:(r=o.params.lineCount)!==null&&r!==void 0?r:2,maxValue:(a=o.params.max)!==null&&a!==void 0?a:90,minValue:(p=o.params.min)!==null&&p!==void 0?p:0,ticker:ss(o.document,d),value:Xn(80),viewProps:o.viewProps})})},api(o){return!(o.controller instanceof Zt)||!(o.controller.valueController instanceof ui)?null:new ci(o.controller)}};class wt{constructor(i,r){this.min=i,this.max=r}static isObject(i){if(typeof i!="object"||i===null)return!1;const r=i.min,a=i.max;return!(typeof r!="number"||typeof a!="number")}static equals(i,r){return i.min===r.min&&i.max===r.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const en={fromComponents:o=>new wt(o[0],o[1]),toComponents:o=>[o.min,o.max]};class ve{constructor(i){this.edge=i}constrain(i){var r,a,p,d,m,_,g,J;if(i.min<=i.max)return new wt((a=(r=this.edge)===null||r===void 0?void 0:r.constrain(i.min))!==null&&a!==void 0?a:i.min,(d=(p=this.edge)===null||p===void 0?void 0:p.constrain(i.max))!==null&&d!==void 0?d:i.max);const zt=(i.min+i.max)/2;return new wt((_=(m=this.edge)===null||m===void 0?void 0:m.constrain(zt))!==null&&_!==void 0?_:zt,(J=(g=this.edge)===null||g===void 0?void 0:g.constrain(zt))!==null&&J!==void 0?J:zt)}}const me=U("rsltxt");class di{constructor(i,r){this.sliderView_=r.sliderView,this.textView_=r.textView,this.element=i.createElement("div"),this.element.classList.add(me());const a=i.createElement("div");a.classList.add(me("s")),a.appendChild(this.sliderView_.element),this.element.appendChild(a);const p=i.createElement("div");p.classList.add(me("t")),p.appendChild(this.textView_.element),this.element.appendChild(p)}}const ot=U("rsl");class hi{constructor(i,r){this.maxValue_=r.maxValue,this.minValue_=r.minValue,this.element=i.createElement("div"),this.element.classList.add(ot()),r.viewProps.bindClassModifiers(this.element),this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_.bind(this));const a=i.createElement("div");a.classList.add(ot("t")),this.element.appendChild(a),this.trackElement=a;const p=i.createElement("div");p.classList.add(ot("b")),a.appendChild(p),this.barElement=p;const d=["min","max"].map(m=>{const _=i.createElement("div");return _.classList.add(ot("k"),ot("k",m)),a.appendChild(_),_});this.knobElements=[d[0],d[1]],this.update()}valueToX_(i){return xt(R(i,this.minValue_,this.maxValue_,0,1),0,1)*100}update(){const i=this.value_.rawValue;i.length===0?this.element.classList.add(ot(void 0,"zero")):this.element.classList.remove(ot(void 0,"zero"));const r=[this.valueToX_(i.min),this.valueToX_(i.max)];this.barElement.style.left=`${r[0]}%`,this.barElement.style.right=`${100-r[1]}%`,this.knobElements.forEach((a,p)=>{a.style.left=`${r[p]}%`})}onValueChange_(){this.update()}}class Tn{constructor(i,r){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.maxValue_=r.maxValue,this.minValue_=r.minValue,this.viewProps=r.viewProps,this.value=r.value,this.view=new hi(i,{maxValue:r.maxValue,minValue:r.minValue,value:this.value,viewProps:r.viewProps});const a=new Gt(this.view.trackElement);a.emitter.on("down",this.onPointerDown_),a.emitter.on("move",this.onPointerMove_),a.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_(i){if(!i.point)return null;const r=(i.point.x+this.ofs_())/i.bounds.width;return R(r,0,1,this.minValue_,this.maxValue_)}onPointerDown_(i){if(!i.data.point)return;const r=i.data.point.x/i.data.bounds.width,a=this.value.rawValue,p=R(a.min,this.minValue_,this.maxValue_,0,1),d=R(a.max,this.minValue_,this.maxValue_,0,1);Math.abs(d-r)<=.025?this.grabbing_="max":Math.abs(p-r)<=.025?this.grabbing_="min":r>=p&&r<=d?(this.grabbing_="length",this.grabOffset_=R(r-p,0,1,0,this.maxValue_-this.minValue_)):r<p?(this.grabbing_="min",this.onPointerMove_(i)):r>d&&(this.grabbing_="max",this.onPointerMove_(i))}applyPointToValue_(i,r){const a=this.valueFromData_(i);if(a!==null){if(this.grabbing_==="min")this.value.setRawValue(new wt(a,this.value.rawValue.max),r);else if(this.grabbing_==="max")this.value.setRawValue(new wt(this.value.rawValue.min,a),r);else if(this.grabbing_==="length"){const p=this.value.rawValue.length;let d=a-this.grabOffset_,m=d+p;d<this.minValue_?(d=this.minValue_,m=this.minValue_+p):m>this.maxValue_&&(d=this.maxValue_-p,m=this.maxValue_),this.value.setRawValue(new wt(d,m),r)}}}onPointerMove_(i){this.applyPointToValue_(i.data,{forceEmit:!1,last:!1})}onPointerUp_(i){this.applyPointToValue_(i.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class On{constructor(i,r){this.value=r.value,this.viewProps=r.viewProps,this.sc_=new Tn(i,r);const a={baseStep:r.baseStep,constraint:r.constraint,textProps:G.fromObject({draggingScale:r.draggingScale,formatter:r.formatter})};this.tc_=new En(i,{assembly:en,axes:[a,a],parser:r.parser,value:this.value,viewProps:r.viewProps}),this.view=new di(i,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function rs(o){return wt.isObject(o)?new wt(o.min,o.max):new wt(0,0)}function nn(o,i){o.writeProperty("max",i.max),o.writeProperty("min",i.min)}function be(o){const i=[],r=Ki(o);r&&i.push(r);const a=Ui(o);return a&&i.push(a),new ve(new Le(i))}const fe={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:(o,i)=>{if(!wt.isObject(o))return null;const r=z,a=C(i,{format:r.optional.function,max:r.optional.number,min:r.optional.number,step:r.optional.number});return a?{initialValue:new wt(o.min,o.max),params:a}:null},binding:{reader:o=>rs,constraint:o=>be(o.params),equals:wt.equals,writer:o=>nn},controller(o){var i;const r=o.value,a=o.constraint;if(!(a instanceof ve))throw Mt.shouldNeverHappen();const p=(r.rawValue.min+r.rawValue.max)/2,d=(i=o.params.format)!==null&&i!==void 0?i:et(Ai(a.edge,p)),m=a.edge&&Pt(a.edge,ae);if((m==null?void 0:m.minValue)!==void 0&&(m==null?void 0:m.maxValue)!==void 0)return new On(o.document,{baseStep:yn(a.edge),constraint:a.edge,draggingScale:Jn(m,p),formatter:d,maxValue:m.maxValue,minValue:m.minValue,parser:De,value:r,viewProps:o.viewProps});const _={baseStep:yn(a.edge),constraint:a.edge,textProps:G.fromObject({draggingScale:p,formatter:d})};return new En(o.document,{assembly:en,axes:[_,_],parser:De,value:r,viewProps:o.viewProps})}};class sn{constructor(i){this.controller_=i}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(i){this.controller_.viewProps.set("disabled",i)}get title(){var i;return(i=this.controller_.props.get("title"))!==null&&i!==void 0?i:""}set title(i){this.controller_.props.set("title",i)}}class os extends nt{constructor(i,r,a,p,d){super(i,p,d),this.cell=r,this.index=a}}class as extends u{constructor(i){super(i),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(a=>{const p=new sn(a);this.cellToApiMap_.set(a,p)})}get value(){return this.controller_.value}cell(i,r){const a=this.controller_.valueController,p=a.cellControllers[r*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,r){const a=r.bind(this);this.controller_.value.emitter.on(i,p=>{const d=this.controller_.valueController,m=d.findCellByValue(p.rawValue);if(!m)return;const _=this.cellToApiMap_.get(m);if(!_)return;const g=d.cellControllers.indexOf(m);a(new os(this,_,[g%d.size[0],Math.floor(g/d.size[0])],p.rawValue,void 0))})}}const Be=U("rad");class ls{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Be()),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("label");a.classList.add(Be("l")),this.element.appendChild(a);const p=i.createElement("input");p.classList.add(Be("i")),p.name=r.name,p.type="radio",r.viewProps.bindDisabled(p),a.appendChild(p),this.inputElement=p;const d=i.createElement("div");d.classList.add(Be("b")),a.appendChild(d);const m=i.createElement("div");m.classList.add(Be("t")),d.appendChild(m),tt(r.props,"title",_=>{m.textContent=_})}}class ee{constructor(i,r){this.props=r.props,this.viewProps=r.viewProps,this.view=new ls(i,{name:r.name,props:this.props,viewProps:this.viewProps})}}class Dn{constructor(i,r){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=r.size;const[a,p]=this.size;for(let d=0;d<p;d++)for(let m=0;m<a;m++){const _=new ee(i,{name:r.groupName,props:G.fromObject(Object.assign({},r.cellConfig(m,d))),viewProps:yt.create()});this.cellCs_.push(_),this.cellValues_.push(r.cellConfig(m,d).value)}this.value=r.value,it(this.value,d=>{const m=this.findCellByValue(d);!m||(m.view.inputElement.checked=!0)}),this.viewProps=yt.create(),this.view=new Wt(i,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(d=>{d.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(d.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(i){const r=this.cellValues_.findIndex(a=>a===i);return r<0?null:this.cellCs_[r]}onCellInputChange_(i){const r=i.currentTarget,a=this.cellCs_.findIndex(p=>p.view.inputElement===r);a<0||(this.value.rawValue=this.cellValues_[a])}}const ps=function(){return{id:"radiogrid",type:"blade",accept(o){const i=z,r=C(o,{cells:i.required.function,groupName:i.required.string,size:i.required.array(i.required.number),value:i.required.raw,view:i.required.constant("radiogrid"),label:i.optional.string});return r?{params:r}:null},controller(o){return new Ft(o.document,{blade:o.blade,props:G.fromObject({label:o.params.label}),valueController:new Dn(o.document,{groupName:o.params.groupName,cellConfig:o.params.cells,size:o.params.size,value:Z(o.params.value)})})},api(o){return!(o.controller instanceof Ft)||!(o.controller.valueController instanceof Dn)?null:new as(o.controller)}}}();function Nn(o){return{id:"input-radiogrid",type:"input",accept(i,r){if(!o.isType(i))return null;const a=z,p=C(r,{cells:a.required.function,groupName:a.required.string,size:a.required.array(a.required.number),view:a.required.constant("radiogrid")});return p?{initialValue:i,params:p}:null},binding:o.binding,controller:i=>new Dn(i.document,{cellConfig:i.params.cells,groupName:i.params.groupName,size:i.params.size,value:i.value})}}const cs=Nn({isType:o=>typeof o=="number",binding:{reader:o=>qt,writer:o=>Jt}}),vi=Nn({isType:o=>typeof o=="string",binding:{reader:o=>Yn,writer:o=>Jt}}),us=Nn({isType:o=>typeof o=="boolean",binding:{reader:o=>W,writer:o=>Jt}}),ds=[Xi,Q,An,fe,ps,us,cs,vi];T.CubicBezier=At,T.plugins=ds,Object.defineProperty(T,"__esModule",{value:!0})})})(Kn,Kn.exports);const gr=fr(Kn.exports),wr=mr({__proto__:null,default:gr},[Kn.exports]);let Ke,Fn;const xr=(Y="tres-container")=>{Ke=new bi.exports.Pane({container:document.querySelector(Y)||void 0}),Ke.registerPlugin(wr),Fn=Ke.addBlade({view:"fpsgraph",label:"fpsgraph"});function $(){Ke&&Ke.dispose()}return Rt.onMounted(()=>{Ms.useLoop(()=>{},()=>{Fn.begin()},()=>{Fn.end()})}),Rt.onUnmounted(()=>{$()}),{pane:Ke,fpsGraph:Fn,disposeTweakPane:$}};It.OrbitControls=_r,It.useTweakPane=xr,Object.defineProperties(It,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
8
+ (function(Ne,Te){typeof exports=="object"&&typeof module<"u"?Te(exports,require("vue"),require("@tresjs/core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","@tresjs/core","three"],Te):(Ne=typeof globalThis<"u"?globalThis:Ne||self,Te(Ne.trescientos={},Ne.Vue,Ne.core,Ne.Three))})(this,function(Ne,Te,Cs,C){"use strict";function jr(L,u){for(var p=0;p<u.length;p++){const a=u[p];if(typeof a!="string"&&!Array.isArray(a)){for(const d in a)if(d!=="default"&&!(d in L)){const m=Object.getOwnPropertyDescriptor(a,d);m&&Object.defineProperty(L,d,m.get?m:{enumerable:!0,get:()=>a[d]})}}}return Object.freeze(Object.defineProperty(L,Symbol.toStringTag,{value:"Module"}))}function K(L,u,p){return u in L?Object.defineProperty(L,u,{value:p,enumerable:!0,configurable:!0,writable:!0}):L[u]=p,L}const zi=(L,u)=>(L%u+u)%u;class Br extends C.EventDispatcher{constructor(u,p){super(),K(this,"object",void 0),K(this,"domElement",void 0),K(this,"enabled",!0),K(this,"target",new C.Vector3),K(this,"minDistance",0),K(this,"maxDistance",1/0),K(this,"minZoom",0),K(this,"maxZoom",1/0),K(this,"minPolarAngle",0),K(this,"maxPolarAngle",Math.PI),K(this,"minAzimuthAngle",-1/0),K(this,"maxAzimuthAngle",1/0),K(this,"enableDamping",!1),K(this,"dampingFactor",.05),K(this,"enableZoom",!0),K(this,"zoomSpeed",1),K(this,"enableRotate",!0),K(this,"rotateSpeed",1),K(this,"enablePan",!0),K(this,"panSpeed",1),K(this,"screenSpacePanning",!0),K(this,"keyPanSpeed",7),K(this,"autoRotate",!1),K(this,"autoRotateSpeed",2),K(this,"reverseOrbit",!1),K(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),K(this,"mouseButtons",{LEFT:C.MOUSE.ROTATE,MIDDLE:C.MOUSE.DOLLY,RIGHT:C.MOUSE.PAN}),K(this,"touches",{ONE:C.TOUCH.ROTATE,TWO:C.TOUCH.DOLLY_PAN}),K(this,"target0",void 0),K(this,"position0",void 0),K(this,"zoom0",void 0),K(this,"_domElementKeyEvents",null),K(this,"getPolarAngle",void 0),K(this,"getAzimuthalAngle",void 0),K(this,"setPolarAngle",void 0),K(this,"setAzimuthalAngle",void 0),K(this,"getDistance",void 0),K(this,"listenToKeyEvents",void 0),K(this,"saveState",void 0),K(this,"reset",void 0),K(this,"update",void 0),K(this,"connect",void 0),K(this,"dispose",void 0),this.object=u,this.domElement=p,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object instanceof C.PerspectiveCamera?this.object.zoom:1,this.getPolarAngle=()=>E.phi,this.getAzimuthalAngle=()=>E.theta,this.setPolarAngle=P=>{let T=zi(P,2*Math.PI),U=E.phi;U<0&&(U+=2*Math.PI),T<0&&(T+=2*Math.PI);let H=Math.abs(T-U);2*Math.PI-H<H&&(T<U?T+=2*Math.PI:U+=2*Math.PI),g.phi=T-U,a.update()},this.setAzimuthalAngle=P=>{let T=zi(P,2*Math.PI),U=E.theta;U<0&&(U+=2*Math.PI),T<0&&(T+=2*Math.PI);let H=Math.abs(T-U);2*Math.PI-H<H&&(T<U?T+=2*Math.PI:U+=2*Math.PI),g.theta=T-U,a.update()},this.getDistance=()=>a.object.position.distanceTo(a.target),this.listenToKeyEvents=P=>{P.addEventListener("keydown",Ye),this._domElementKeyEvents=P},this.saveState=()=>{a.target0.copy(a.target),a.position0.copy(a.object.position),a.zoom0=a.object instanceof C.PerspectiveCamera?a.object.zoom:1},this.reset=()=>{a.target.copy(a.target0),a.object.position.copy(a.position0),a.object instanceof C.PerspectiveCamera&&(a.object.zoom=a.zoom0,a.object.updateProjectionMatrix()),a.dispatchEvent(d),a.update(),f=b.NONE},this.update=(()=>{const P=new C.Vector3,T=new C.Quaternion().setFromUnitVectors(u.up,new C.Vector3(0,1,0)),U=T.clone().invert(),H=new C.Vector3,ae=new C.Quaternion,Me=2*Math.PI;return function(){const Jt=a.object.position;P.copy(Jt).sub(a.target),P.applyQuaternion(T),E.setFromVector3(P),a.autoRotate&&f===b.NONE&&Ce(se()),a.enableDamping?(E.theta+=g.theta*a.dampingFactor,E.phi+=g.phi*a.dampingFactor):(E.theta+=g.theta,E.phi+=g.phi);let we=a.minAzimuthAngle,xe=a.maxAzimuthAngle;return isFinite(we)&&isFinite(xe)&&(we<-Math.PI?we+=Me:we>Math.PI&&(we-=Me),xe<-Math.PI?xe+=Me:xe>Math.PI&&(xe-=Me),we<=xe?E.theta=Math.max(we,Math.min(xe,E.theta)):E.theta=E.theta>(we+xe)/2?Math.max(we,E.theta):Math.min(xe,E.theta)),E.phi=Math.max(a.minPolarAngle,Math.min(a.maxPolarAngle,E.phi)),E.makeSafe(),E.radius*=M,E.radius=Math.max(a.minDistance,Math.min(a.maxDistance,E.radius)),a.enableDamping===!0?a.target.addScaledVector(N,a.dampingFactor):a.target.add(N),P.setFromSpherical(E),P.applyQuaternion(U),Jt.copy(a.target).add(P),a.object.lookAt(a.target),a.enableDamping===!0?(g.theta*=1-a.dampingFactor,g.phi*=1-a.dampingFactor,N.multiplyScalar(1-a.dampingFactor)):(g.set(0,0,0),N.set(0,0,0)),M=1,A||H.distanceToSquared(a.object.position)>x||8*(1-ae.dot(a.object.quaternion))>x?(a.dispatchEvent(d),H.copy(a.object.position),ae.copy(a.object.quaternion),A=!1,!0):!1}})(),this.connect=P=>{P===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),a.domElement=P,a.domElement.style.touchAction="none",a.domElement.addEventListener("contextmenu",Ie),a.domElement.addEventListener("pointerdown",Nt),a.domElement.addEventListener("pointercancel",He),a.domElement.addEventListener("wheel",Oe)},this.dispose=()=>{var P,T,U,H,ae,Me;(P=a.domElement)===null||P===void 0||P.removeEventListener("contextmenu",Ie),(T=a.domElement)===null||T===void 0||T.removeEventListener("pointerdown",Nt),(U=a.domElement)===null||U===void 0||U.removeEventListener("pointercancel",He),(H=a.domElement)===null||H===void 0||H.removeEventListener("wheel",Oe),(ae=a.domElement)===null||ae===void 0||ae.ownerDocument.removeEventListener("pointermove",qe),(Me=a.domElement)===null||Me===void 0||Me.ownerDocument.removeEventListener("pointerup",nt),a._domElementKeyEvents!==null&&a._domElementKeyEvents.removeEventListener("keydown",Ye)};const a=this,d={type:"change"},m={type:"start"},h={type:"end"},b={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let f=b.NONE;const x=1e-6,E=new C.Spherical,g=new C.Spherical;let M=1;const N=new C.Vector3;let A=!1;const F=new C.Vector2,I=new C.Vector2,O=new C.Vector2,Y=new C.Vector2,D=new C.Vector2,re=new C.Vector2,de=new C.Vector2,ne=new C.Vector2,X=new C.Vector2,G=[],ee={};function se(){return 2*Math.PI/60/60*a.autoRotateSpeed}function _e(){return Math.pow(.95,a.zoomSpeed)}function Ce(P){a.reverseOrbit?g.theta+=P:g.theta-=P}function he(P){a.reverseOrbit?g.phi+=P:g.phi-=P}const ue=(()=>{const P=new C.Vector3;return function(U,H){P.setFromMatrixColumn(H,0),P.multiplyScalar(-U),N.add(P)}})(),fe=(()=>{const P=new C.Vector3;return function(U,H){a.screenSpacePanning===!0?P.setFromMatrixColumn(H,1):(P.setFromMatrixColumn(H,0),P.crossVectors(a.object.up,P)),P.multiplyScalar(U),N.add(P)}})(),W=(()=>{const P=new C.Vector3;return function(U,H){const ae=a.domElement;if(ae&&a.object instanceof C.PerspectiveCamera&&a.object.isPerspectiveCamera){const Me=a.object.position;P.copy(Me).sub(a.target);let vt=P.length();vt*=Math.tan(a.object.fov/2*Math.PI/180),ue(2*U*vt/ae.clientHeight,a.object.matrix),fe(2*H*vt/ae.clientHeight,a.object.matrix)}else ae&&a.object instanceof C.OrthographicCamera&&a.object.isOrthographicCamera?(ue(U*(a.object.right-a.object.left)/a.object.zoom/ae.clientWidth,a.object.matrix),fe(H*(a.object.top-a.object.bottom)/a.object.zoom/ae.clientHeight,a.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),a.enablePan=!1)}})();function B(P){a.object instanceof C.PerspectiveCamera&&a.object.isPerspectiveCamera?M/=P:a.object instanceof C.OrthographicCamera&&a.object.isOrthographicCamera?(a.object.zoom=Math.max(a.minZoom,Math.min(a.maxZoom,a.object.zoom*P)),a.object.updateProjectionMatrix(),A=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),a.enableZoom=!1)}function ut(P){a.object instanceof C.PerspectiveCamera&&a.object.isPerspectiveCamera?M*=P:a.object instanceof C.OrthographicCamera&&a.object.isOrthographicCamera?(a.object.zoom=Math.max(a.minZoom,Math.min(a.maxZoom,a.object.zoom/P)),a.object.updateProjectionMatrix(),A=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),a.enableZoom=!1)}function Yt(P){F.set(P.clientX,P.clientY)}function Xt(P){de.set(P.clientX,P.clientY)}function ge(P){Y.set(P.clientX,P.clientY)}function At(P){I.set(P.clientX,P.clientY),O.subVectors(I,F).multiplyScalar(a.rotateSpeed);const T=a.domElement;T&&(Ce(2*Math.PI*O.x/T.clientHeight),he(2*Math.PI*O.y/T.clientHeight)),F.copy(I),a.update()}function $(P){ne.set(P.clientX,P.clientY),X.subVectors(ne,de),X.y>0?B(_e()):X.y<0&&ut(_e()),de.copy(ne),a.update()}function oe(P){D.set(P.clientX,P.clientY),re.subVectors(D,Y).multiplyScalar(a.panSpeed),W(re.x,re.y),Y.copy(D),a.update()}function bn(P){P.deltaY<0?ut(_e()):P.deltaY>0&&B(_e()),a.update()}function Wt(P){let T=!1;switch(P.code){case a.keys.UP:W(0,a.keyPanSpeed),T=!0;break;case a.keys.BOTTOM:W(0,-a.keyPanSpeed),T=!0;break;case a.keys.LEFT:W(a.keyPanSpeed,0),T=!0;break;case a.keys.RIGHT:W(-a.keyPanSpeed,0),T=!0;break}T&&(P.preventDefault(),a.update())}function Tt(){if(G.length==1)F.set(G[0].pageX,G[0].pageY);else{const P=.5*(G[0].pageX+G[1].pageX),T=.5*(G[0].pageY+G[1].pageY);F.set(P,T)}}function Vt(){if(G.length==1)Y.set(G[0].pageX,G[0].pageY);else{const P=.5*(G[0].pageX+G[1].pageX),T=.5*(G[0].pageY+G[1].pageY);Y.set(P,T)}}function Pe(){const P=G[0].pageX-G[1].pageX,T=G[0].pageY-G[1].pageY,U=Math.sqrt(P*P+T*T);de.set(0,U)}function Ee(){a.enableZoom&&Pe(),a.enablePan&&Vt()}function et(){a.enableZoom&&Pe(),a.enableRotate&&Tt()}function tt(P){if(G.length==1)I.set(P.pageX,P.pageY);else{const U=je(P),H=.5*(P.pageX+U.x),ae=.5*(P.pageY+U.y);I.set(H,ae)}O.subVectors(I,F).multiplyScalar(a.rotateSpeed);const T=a.domElement;T&&(Ce(2*Math.PI*O.x/T.clientHeight),he(2*Math.PI*O.y/T.clientHeight)),F.copy(I)}function dt(P){if(G.length==1)D.set(P.pageX,P.pageY);else{const T=je(P),U=.5*(P.pageX+T.x),H=.5*(P.pageY+T.y);D.set(U,H)}re.subVectors(D,Y).multiplyScalar(a.panSpeed),W(re.x,re.y),Y.copy(D)}function ht(P){const T=je(P),U=P.pageX-T.x,H=P.pageY-T.y,ae=Math.sqrt(U*U+H*H);ne.set(0,ae),X.set(0,Math.pow(ne.y/de.y,a.zoomSpeed)),B(X.y),de.copy(ne)}function _n(P){a.enableZoom&&ht(P),a.enablePan&&dt(P)}function gn(P){a.enableZoom&&ht(P),a.enableRotate&&tt(P)}function Nt(P){if(a.enabled!==!1){if(G.length===0){var T,U;(T=a.domElement)===null||T===void 0||T.ownerDocument.addEventListener("pointermove",qe),(U=a.domElement)===null||U===void 0||U.ownerDocument.addEventListener("pointerup",nt)}mt(P),P.pointerType==="touch"?wn(P):Zt(P)}}function qe(P){a.enabled!==!1&&(P.pointerType==="touch"?Ot(P):Qt(P))}function nt(P){if(ke(P),G.length===0){var T,U,H;(T=a.domElement)===null||T===void 0||T.releasePointerCapture(P.pointerId),(U=a.domElement)===null||U===void 0||U.ownerDocument.removeEventListener("pointermove",qe),(H=a.domElement)===null||H===void 0||H.ownerDocument.removeEventListener("pointerup",nt)}a.dispatchEvent(h),f=b.NONE}function He(P){ke(P)}function Zt(P){let T;switch(P.button){case 0:T=a.mouseButtons.LEFT;break;case 1:T=a.mouseButtons.MIDDLE;break;case 2:T=a.mouseButtons.RIGHT;break;default:T=-1}switch(T){case C.MOUSE.DOLLY:if(a.enableZoom===!1)return;Xt(P),f=b.DOLLY;break;case C.MOUSE.ROTATE:if(P.ctrlKey||P.metaKey||P.shiftKey){if(a.enablePan===!1)return;ge(P),f=b.PAN}else{if(a.enableRotate===!1)return;Yt(P),f=b.ROTATE}break;case C.MOUSE.PAN:if(P.ctrlKey||P.metaKey||P.shiftKey){if(a.enableRotate===!1)return;Yt(P),f=b.ROTATE}else{if(a.enablePan===!1)return;ge(P),f=b.PAN}break;default:f=b.NONE}f!==b.NONE&&a.dispatchEvent(m)}function Qt(P){if(a.enabled!==!1)switch(f){case b.ROTATE:if(a.enableRotate===!1)return;At(P);break;case b.DOLLY:if(a.enableZoom===!1)return;$(P);break;case b.PAN:if(a.enablePan===!1)return;oe(P);break}}function Oe(P){a.enabled===!1||a.enableZoom===!1||f!==b.NONE&&f!==b.ROTATE||(P.preventDefault(),a.dispatchEvent(m),bn(P),a.dispatchEvent(h))}function Ye(P){a.enabled===!1||a.enablePan===!1||Wt(P)}function wn(P){switch(Fe(P),G.length){case 1:switch(a.touches.ONE){case C.TOUCH.ROTATE:if(a.enableRotate===!1)return;Tt(),f=b.TOUCH_ROTATE;break;case C.TOUCH.PAN:if(a.enablePan===!1)return;Vt(),f=b.TOUCH_PAN;break;default:f=b.NONE}break;case 2:switch(a.touches.TWO){case C.TOUCH.DOLLY_PAN:if(a.enableZoom===!1&&a.enablePan===!1)return;Ee(),f=b.TOUCH_DOLLY_PAN;break;case C.TOUCH.DOLLY_ROTATE:if(a.enableZoom===!1&&a.enableRotate===!1)return;et(),f=b.TOUCH_DOLLY_ROTATE;break;default:f=b.NONE}break;default:f=b.NONE}f!==b.NONE&&a.dispatchEvent(m)}function Ot(P){switch(Fe(P),f){case b.TOUCH_ROTATE:if(a.enableRotate===!1)return;tt(P),a.update();break;case b.TOUCH_PAN:if(a.enablePan===!1)return;dt(P),a.update();break;case b.TOUCH_DOLLY_PAN:if(a.enableZoom===!1&&a.enablePan===!1)return;_n(P),a.update();break;case b.TOUCH_DOLLY_ROTATE:if(a.enableZoom===!1&&a.enableRotate===!1)return;gn(P),a.update();break;default:f=b.NONE}}function Ie(P){a.enabled!==!1&&P.preventDefault()}function mt(P){G.push(P)}function ke(P){delete ee[P.pointerId];for(let T=0;T<G.length;T++)if(G[T].pointerId==P.pointerId){G.splice(T,1);return}}function Fe(P){let T=ee[P.pointerId];T===void 0&&(T=new C.Vector2,ee[P.pointerId]=T),T.set(P.pageX,P.pageY)}function je(P){const T=P.pointerId===G[0].pointerId?G[1]:G[0];return ee[T.pointerId]}p!==void 0&&this.connect(p),this.update()}}class Ur extends C.Loader{constructor(u){super(u),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(p){return new qr(p)}),this.register(function(p){return new Jr(p)}),this.register(function(p){return new eo(p)}),this.register(function(p){return new Yr(p)}),this.register(function(p){return new Xr(p)}),this.register(function(p){return new Wr(p)}),this.register(function(p){return new Zr(p)}),this.register(function(p){return new $r(p)}),this.register(function(p){return new Qr(p)}),this.register(function(p){return new Hr(p)}),this.register(function(p){return new Kr(p)}),this.register(function(p){return new to(p)})}load(u,p,a,d){const m=this;let h;this.resourcePath!==""?h=this.resourcePath:this.path!==""?h=this.path:h=C.LoaderUtils.extractUrlBase(u),this.manager.itemStart(u);const b=function(x){d?d(x):console.error(x),m.manager.itemError(u),m.manager.itemEnd(u)},f=new C.FileLoader(this.manager);f.setPath(this.path),f.setResponseType("arraybuffer"),f.setRequestHeader(this.requestHeader),f.setWithCredentials(this.withCredentials),f.load(u,function(x){try{m.parse(x,h,function(E){p(E),m.manager.itemEnd(u)},b)}catch(E){b(E)}},a,b)}setDRACOLoader(u){return this.dracoLoader=u,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(u){return this.ktx2Loader=u,this}setMeshoptDecoder(u){return this.meshoptDecoder=u,this}register(u){return this.pluginCallbacks.indexOf(u)===-1&&this.pluginCallbacks.push(u),this}unregister(u){return this.pluginCallbacks.indexOf(u)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(u),1),this}parse(u,p,a,d){let m;const h={},b={};if(typeof u=="string")m=u;else if(C.LoaderUtils.decodeText(new Uint8Array(u,0,4))===Ki){try{h[q.KHR_BINARY_GLTF]=new no(u)}catch(g){d&&d(g);return}m=h[q.KHR_BINARY_GLTF].content}else m=C.LoaderUtils.decodeText(new Uint8Array(u));const f=JSON.parse(m);if(f.asset===void 0||f.asset.version[0]<2){d&&d(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const x=new fo(f,{path:p||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});x.fileLoader.setRequestHeader(this.requestHeader);for(let E=0;E<this.pluginCallbacks.length;E++){const g=this.pluginCallbacks[E](x);b[g.name]=g,h[g.name]=!0}if(f.extensionsUsed)for(let E=0;E<f.extensionsUsed.length;++E){const g=f.extensionsUsed[E],M=f.extensionsRequired||[];switch(g){case q.KHR_MATERIALS_UNLIT:h[g]=new Gr;break;case q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:h[g]=new ro;break;case q.KHR_DRACO_MESH_COMPRESSION:h[g]=new so(f,this.dracoLoader);break;case q.KHR_TEXTURE_TRANSFORM:h[g]=new io;break;case q.KHR_MESH_QUANTIZATION:h[g]=new oo;break;default:M.indexOf(g)>=0&&b[g]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+g+'".')}}x.setExtensions(h),x.setPlugins(b),x.parse(a,d)}parseAsync(u,p){const a=this;return new Promise(function(d,m){a.parse(u,p,d,m)})}}function zr(){let L={};return{get:function(u){return L[u]},add:function(u,p){L[u]=p},remove:function(u){delete L[u]},removeAll:function(){L={}}}}const q={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class Kr{constructor(u){this.parser=u,this.name=q.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const u=this.parser,p=this.parser.json.nodes||[];for(let a=0,d=p.length;a<d;a++){const m=p[a];m.extensions&&m.extensions[this.name]&&m.extensions[this.name].light!==void 0&&u._addNodeRef(this.cache,m.extensions[this.name].light)}}_loadLight(u){const p=this.parser,a="light:"+u;let d=p.cache.get(a);if(d)return d;const m=p.json,f=((m.extensions&&m.extensions[this.name]||{}).lights||[])[u];let x;const E=new C.Color(16777215);f.color!==void 0&&E.fromArray(f.color);const g=f.range!==void 0?f.range:0;switch(f.type){case"directional":x=new C.DirectionalLight(E),x.target.position.set(0,0,-1),x.add(x.target);break;case"point":x=new C.PointLight(E),x.distance=g;break;case"spot":x=new C.SpotLight(E),x.distance=g,f.spot=f.spot||{},f.spot.innerConeAngle=f.spot.innerConeAngle!==void 0?f.spot.innerConeAngle:0,f.spot.outerConeAngle=f.spot.outerConeAngle!==void 0?f.spot.outerConeAngle:Math.PI/4,x.angle=f.spot.outerConeAngle,x.penumbra=1-f.spot.innerConeAngle/f.spot.outerConeAngle,x.target.position.set(0,0,-1),x.add(x.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+f.type)}return x.position.set(0,0,0),x.decay=2,f.intensity!==void 0&&(x.intensity=f.intensity),x.name=p.createUniqueName(f.name||"light_"+u),d=Promise.resolve(x),p.cache.add(a,d),d}createNodeAttachment(u){const p=this,a=this.parser,m=a.json.nodes[u],b=(m.extensions&&m.extensions[this.name]||{}).light;return b===void 0?null:this._loadLight(b).then(function(f){return a._getNodeRef(p.cache,b,f)})}}class Gr{constructor(){this.name=q.KHR_MATERIALS_UNLIT}getMaterialType(){return C.MeshBasicMaterial}extendParams(u,p,a){const d=[];u.color=new C.Color(1,1,1),u.opacity=1;const m=p.pbrMetallicRoughness;if(m){if(Array.isArray(m.baseColorFactor)){const h=m.baseColorFactor;u.color.fromArray(h),u.opacity=h[3]}m.baseColorTexture!==void 0&&d.push(a.assignTexture(u,"map",m.baseColorTexture,C.sRGBEncoding))}return Promise.all(d)}}class $r{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(u,p){const d=this.parser.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=d.extensions[this.name].emissiveStrength;return m!==void 0&&(p.emissiveIntensity=m),Promise.resolve()}}class qr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_CLEARCOAT}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[],h=d.extensions[this.name];if(h.clearcoatFactor!==void 0&&(p.clearcoat=h.clearcoatFactor),h.clearcoatTexture!==void 0&&m.push(a.assignTexture(p,"clearcoatMap",h.clearcoatTexture)),h.clearcoatRoughnessFactor!==void 0&&(p.clearcoatRoughness=h.clearcoatRoughnessFactor),h.clearcoatRoughnessTexture!==void 0&&m.push(a.assignTexture(p,"clearcoatRoughnessMap",h.clearcoatRoughnessTexture)),h.clearcoatNormalTexture!==void 0&&(m.push(a.assignTexture(p,"clearcoatNormalMap",h.clearcoatNormalTexture)),h.clearcoatNormalTexture.scale!==void 0)){const b=h.clearcoatNormalTexture.scale;p.clearcoatNormalScale=new C.Vector2(b,b)}return Promise.all(m)}}class Hr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_IRIDESCENCE}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[],h=d.extensions[this.name];return h.iridescenceFactor!==void 0&&(p.iridescence=h.iridescenceFactor),h.iridescenceTexture!==void 0&&m.push(a.assignTexture(p,"iridescenceMap",h.iridescenceTexture)),h.iridescenceIor!==void 0&&(p.iridescenceIOR=h.iridescenceIor),p.iridescenceThicknessRange===void 0&&(p.iridescenceThicknessRange=[100,400]),h.iridescenceThicknessMinimum!==void 0&&(p.iridescenceThicknessRange[0]=h.iridescenceThicknessMinimum),h.iridescenceThicknessMaximum!==void 0&&(p.iridescenceThicknessRange[1]=h.iridescenceThicknessMaximum),h.iridescenceThicknessTexture!==void 0&&m.push(a.assignTexture(p,"iridescenceThicknessMap",h.iridescenceThicknessTexture)),Promise.all(m)}}class Yr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_SHEEN}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[];p.sheenColor=new C.Color(0,0,0),p.sheenRoughness=0,p.sheen=1;const h=d.extensions[this.name];return h.sheenColorFactor!==void 0&&p.sheenColor.fromArray(h.sheenColorFactor),h.sheenRoughnessFactor!==void 0&&(p.sheenRoughness=h.sheenRoughnessFactor),h.sheenColorTexture!==void 0&&m.push(a.assignTexture(p,"sheenColorMap",h.sheenColorTexture,C.sRGBEncoding)),h.sheenRoughnessTexture!==void 0&&m.push(a.assignTexture(p,"sheenRoughnessMap",h.sheenRoughnessTexture)),Promise.all(m)}}class Xr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_TRANSMISSION}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[],h=d.extensions[this.name];return h.transmissionFactor!==void 0&&(p.transmission=h.transmissionFactor),h.transmissionTexture!==void 0&&m.push(a.assignTexture(p,"transmissionMap",h.transmissionTexture)),Promise.all(m)}}class Wr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_VOLUME}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[],h=d.extensions[this.name];p.thickness=h.thicknessFactor!==void 0?h.thicknessFactor:0,h.thicknessTexture!==void 0&&m.push(a.assignTexture(p,"thicknessMap",h.thicknessTexture)),p.attenuationDistance=h.attenuationDistance||1/0;const b=h.attenuationColor||[1,1,1];return p.attenuationColor=new C.Color(b[0],b[1],b[2]),Promise.all(m)}}class Zr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_IOR}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const d=this.parser.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=d.extensions[this.name];return p.ior=m.ior!==void 0?m.ior:1.5,Promise.resolve()}}class Qr{constructor(u){this.parser=u,this.name=q.KHR_MATERIALS_SPECULAR}getMaterialType(u){const a=this.parser.json.materials[u];return!a.extensions||!a.extensions[this.name]?null:C.MeshPhysicalMaterial}extendMaterialParams(u,p){const a=this.parser,d=a.json.materials[u];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();const m=[],h=d.extensions[this.name];p.specularIntensity=h.specularFactor!==void 0?h.specularFactor:1,h.specularTexture!==void 0&&m.push(a.assignTexture(p,"specularIntensityMap",h.specularTexture));const b=h.specularColorFactor||[1,1,1];return p.specularColor=new C.Color(b[0],b[1],b[2]),h.specularColorTexture!==void 0&&m.push(a.assignTexture(p,"specularColorMap",h.specularColorTexture,C.sRGBEncoding)),Promise.all(m)}}class Jr{constructor(u){this.parser=u,this.name=q.KHR_TEXTURE_BASISU}loadTexture(u){const p=this.parser,a=p.json,d=a.textures[u];if(!d.extensions||!d.extensions[this.name])return null;const m=d.extensions[this.name],h=p.options.ktx2Loader;if(!h){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return p.loadTextureImage(u,m.source,h)}}class eo{constructor(u){this.parser=u,this.name=q.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(u){const p=this.name,a=this.parser,d=a.json,m=d.textures[u];if(!m.extensions||!m.extensions[p])return null;const h=m.extensions[p],b=d.images[h.source];let f=a.textureLoader;if(b.uri){const x=a.options.manager.getHandler(b.uri);x!==null&&(f=x)}return this.detectSupport().then(function(x){if(x)return a.loadTextureImage(u,h.source,f);if(d.extensionsRequired&&d.extensionsRequired.indexOf(p)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return a.loadTexture(u)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(u){const p=new Image;p.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",p.onload=p.onerror=function(){u(p.height===1)}})),this.isSupported}}class to{constructor(u){this.name=q.EXT_MESHOPT_COMPRESSION,this.parser=u}loadBufferView(u){const p=this.parser.json,a=p.bufferViews[u];if(a.extensions&&a.extensions[this.name]){const d=a.extensions[this.name],m=this.parser.getDependency("buffer",d.buffer),h=this.parser.options.meshoptDecoder;if(!h||!h.supported){if(p.extensionsRequired&&p.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return m.then(function(b){const f=d.byteOffset||0,x=d.byteLength||0,E=d.count,g=d.byteStride,M=new Uint8Array(b,f,x);return h.decodeGltfBufferAsync?h.decodeGltfBufferAsync(E,g,M,d.mode,d.filter).then(function(N){return N.buffer}):h.ready.then(function(){const N=new ArrayBuffer(E*g);return h.decodeGltfBuffer(new Uint8Array(N),E,g,M,d.mode,d.filter),N})})}else return null}}const Ki="glTF",mn=12,Gi={JSON:1313821514,BIN:5130562};class no{constructor(u){this.name=q.KHR_BINARY_GLTF,this.content=null,this.body=null;const p=new DataView(u,0,mn);if(this.header={magic:C.LoaderUtils.decodeText(new Uint8Array(u.slice(0,4))),version:p.getUint32(4,!0),length:p.getUint32(8,!0)},this.header.magic!==Ki)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const a=this.header.length-mn,d=new DataView(u,mn);let m=0;for(;m<a;){const h=d.getUint32(m,!0);m+=4;const b=d.getUint32(m,!0);if(m+=4,b===Gi.JSON){const f=new Uint8Array(u,mn+m,h);this.content=C.LoaderUtils.decodeText(f)}else if(b===Gi.BIN){const f=mn+m;this.body=u.slice(f,f+h)}m+=h}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class so{constructor(u,p){if(!p)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=q.KHR_DRACO_MESH_COMPRESSION,this.json=u,this.dracoLoader=p,this.dracoLoader.preload()}decodePrimitive(u,p){const a=this.json,d=this.dracoLoader,m=u.extensions[this.name].bufferView,h=u.extensions[this.name].attributes,b={},f={},x={};for(const E in h){const g=Es[E]||E.toLowerCase();b[g]=h[E]}for(const E in u.attributes){const g=Es[E]||E.toLowerCase();if(h[E]!==void 0){const M=a.accessors[u.attributes[E]],N=vn[M.componentType];x[g]=N.name,f[g]=M.normalized===!0}}return p.getDependency("bufferView",m).then(function(E){return new Promise(function(g){d.decodeDracoFile(E,function(M){for(const N in M.attributes){const A=M.attributes[N],F=f[N];F!==void 0&&(A.normalized=F)}g(M)},b,x)})})}}class io{constructor(){this.name=q.KHR_TEXTURE_TRANSFORM}extendTexture(u,p){return p.texCoord!==void 0&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),p.offset===void 0&&p.rotation===void 0&&p.scale===void 0||(u=u.clone(),p.offset!==void 0&&u.offset.fromArray(p.offset),p.rotation!==void 0&&(u.rotation=p.rotation),p.scale!==void 0&&u.repeat.fromArray(p.scale),u.needsUpdate=!0),u}}class Ps extends C.MeshStandardMaterial{constructor(u){super(),this.isGLTFSpecularGlossinessMaterial=!0;const p=["#ifdef USE_SPECULARMAP"," uniform sampler2D specularMap;","#endif"].join(`
9
+ `),a=["#ifdef USE_GLOSSINESSMAP"," uniform sampler2D glossinessMap;","#endif"].join(`
10
+ `),d=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP"," vec4 texelSpecular = texture2D( specularMap, vUv );"," // reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture"," specularFactor *= texelSpecular.rgb;","#endif"].join(`
11
+ `),m=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP"," vec4 texelGlossiness = texture2D( glossinessMap, vUv );"," // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture"," glossinessFactor *= texelGlossiness.a;","#endif"].join(`
12
+ `),h=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.specularColor = specularFactor;"].join(`
13
+ `),b={specular:{value:new C.Color().setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=b,this.onBeforeCompile=function(f){for(const x in b)f.uniforms[x]=b[x];f.fragmentShader=f.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",p).replace("#include <metalnessmap_pars_fragment>",a).replace("#include <roughnessmap_fragment>",d).replace("#include <metalnessmap_fragment>",m).replace("#include <lights_physical_fragment>",h)},Object.defineProperties(this,{specular:{get:function(){return b.specular.value},set:function(f){b.specular.value=f}},specularMap:{get:function(){return b.specularMap.value},set:function(f){b.specularMap.value=f,f?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return b.glossiness.value},set:function(f){b.glossiness.value=f}},glossinessMap:{get:function(){return b.glossinessMap.value},set:function(f){b.glossinessMap.value=f,f?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(u)}copy(u){return super.copy(u),this.specularMap=u.specularMap,this.specular.copy(u.specular),this.glossinessMap=u.glossinessMap,this.glossiness=u.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class ro{constructor(){this.name=q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return Ps}extendParams(u,p,a){const d=p.extensions[this.name];u.color=new C.Color(1,1,1),u.opacity=1;const m=[];if(Array.isArray(d.diffuseFactor)){const h=d.diffuseFactor;u.color.fromArray(h),u.opacity=h[3]}if(d.diffuseTexture!==void 0&&m.push(a.assignTexture(u,"map",d.diffuseTexture,C.sRGBEncoding)),u.emissive=new C.Color(0,0,0),u.glossiness=d.glossinessFactor!==void 0?d.glossinessFactor:1,u.specular=new C.Color(1,1,1),Array.isArray(d.specularFactor)&&u.specular.fromArray(d.specularFactor),d.specularGlossinessTexture!==void 0){const h=d.specularGlossinessTexture;m.push(a.assignTexture(u,"glossinessMap",h)),m.push(a.assignTexture(u,"specularMap",h,C.sRGBEncoding))}return Promise.all(m)}createMaterial(u){const p=new Ps(u);return p.fog=!0,p.color=u.color,p.map=u.map===void 0?null:u.map,p.lightMap=null,p.lightMapIntensity=1,p.aoMap=u.aoMap===void 0?null:u.aoMap,p.aoMapIntensity=1,p.emissive=u.emissive,p.emissiveIntensity=u.emissiveIntensity===void 0?1:u.emissiveIntensity,p.emissiveMap=u.emissiveMap===void 0?null:u.emissiveMap,p.bumpMap=u.bumpMap===void 0?null:u.bumpMap,p.bumpScale=1,p.normalMap=u.normalMap===void 0?null:u.normalMap,p.normalMapType=C.TangentSpaceNormalMap,u.normalScale&&(p.normalScale=u.normalScale),p.displacementMap=null,p.displacementScale=1,p.displacementBias=0,p.specularMap=u.specularMap===void 0?null:u.specularMap,p.specular=u.specular,p.glossinessMap=u.glossinessMap===void 0?null:u.glossinessMap,p.glossiness=u.glossiness,p.alphaMap=null,p.envMap=u.envMap===void 0?null:u.envMap,p.envMapIntensity=1,p.refractionRatio=.98,p}}class oo{constructor(){this.name=q.KHR_MESH_QUANTIZATION}}class $i extends C.Interpolant{constructor(u,p,a,d){super(u,p,a,d)}copySampleValue_(u){const p=this.resultBuffer,a=this.sampleValues,d=this.valueSize,m=u*d*3+d;for(let h=0;h!==d;h++)p[h]=a[m+h];return p}interpolate_(u,p,a,d){const m=this.resultBuffer,h=this.sampleValues,b=this.valueSize,f=b*2,x=b*3,E=d-p,g=(a-p)/E,M=g*g,N=M*g,A=u*x,F=A-x,I=-2*N+3*M,O=N-M,Y=1-I,D=O-M+g;for(let re=0;re!==b;re++){const de=h[F+re+b],ne=h[F+re+f]*E,X=h[A+re+b],G=h[A+re]*E;m[re]=Y*de+D*ne+I*X+O*G}return m}}const ao=new C.Quaternion;class lo extends $i{interpolate_(u,p,a,d){const m=super.interpolate_(u,p,a,d);return ao.fromArray(m).normalize().toArray(m),m}}const Je={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},vn={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},qi={9728:C.NearestFilter,9729:C.LinearFilter,9984:C.NearestMipmapNearestFilter,9985:C.LinearMipmapNearestFilter,9986:C.NearestMipmapLinearFilter,9987:C.LinearMipmapLinearFilter},Hi={33071:C.ClampToEdgeWrapping,33648:C.MirroredRepeatWrapping,10497:C.RepeatWrapping},Yi={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Es={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},pt={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},co={CUBICSPLINE:void 0,LINEAR:C.InterpolateLinear,STEP:C.InterpolateDiscrete},ks={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function po(L){return L.DefaultMaterial===void 0&&(L.DefaultMaterial=new C.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:C.FrontSide})),L.DefaultMaterial}function fn(L,u,p){for(const a in p.extensions)L[a]===void 0&&(u.userData.gltfExtensions=u.userData.gltfExtensions||{},u.userData.gltfExtensions[a]=p.extensions[a])}function St(L,u){u.extras!==void 0&&(typeof u.extras=="object"?Object.assign(L.userData,u.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+u.extras))}function uo(L,u,p){let a=!1,d=!1,m=!1;for(let x=0,E=u.length;x<E;x++){const g=u[x];if(g.POSITION!==void 0&&(a=!0),g.NORMAL!==void 0&&(d=!0),g.COLOR_0!==void 0&&(m=!0),a&&d&&m)break}if(!a&&!d&&!m)return Promise.resolve(L);const h=[],b=[],f=[];for(let x=0,E=u.length;x<E;x++){const g=u[x];if(a){const M=g.POSITION!==void 0?p.getDependency("accessor",g.POSITION):L.attributes.position;h.push(M)}if(d){const M=g.NORMAL!==void 0?p.getDependency("accessor",g.NORMAL):L.attributes.normal;b.push(M)}if(m){const M=g.COLOR_0!==void 0?p.getDependency("accessor",g.COLOR_0):L.attributes.color;f.push(M)}}return Promise.all([Promise.all(h),Promise.all(b),Promise.all(f)]).then(function(x){const E=x[0],g=x[1],M=x[2];return a&&(L.morphAttributes.position=E),d&&(L.morphAttributes.normal=g),m&&(L.morphAttributes.color=M),L.morphTargetsRelative=!0,L})}function ho(L,u){if(L.updateMorphTargets(),u.weights!==void 0)for(let p=0,a=u.weights.length;p<a;p++)L.morphTargetInfluences[p]=u.weights[p];if(u.extras&&Array.isArray(u.extras.targetNames)){const p=u.extras.targetNames;if(L.morphTargetInfluences.length===p.length){L.morphTargetDictionary={};for(let a=0,d=p.length;a<d;a++)L.morphTargetDictionary[p[a]]=a}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function mo(L){const u=L.extensions&&L.extensions[q.KHR_DRACO_MESH_COMPRESSION];let p;return u?p="draco:"+u.bufferView+":"+u.indices+":"+Xi(u.attributes):p=L.indices+":"+Xi(L.attributes)+":"+L.mode,p}function Xi(L){let u="";const p=Object.keys(L).sort();for(let a=0,d=p.length;a<d;a++)u+=p[a]+":"+L[p[a]]+";";return u}function Ms(L){switch(L){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function vo(L){return L.search(/\.jpe?g($|\?)/i)>0||L.search(/^data\:image\/jpeg/)===0?"image/jpeg":L.search(/\.webp($|\?)/i)>0||L.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}class fo{constructor(u={},p={}){var a,d;this.json=u,this.extensions={},this.plugins={},this.options=p,this.cache=new zr,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};const m=typeof navigator<"u"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,h=typeof navigator<"u"&&((a=navigator.userAgent)===null||a===void 0?void 0:a.indexOf("Firefox"))>-1,b=typeof navigator<"u"&&h?(d=navigator.userAgent)===null||d===void 0?void 0:d.match(/Firefox\/([0-9]+)\./)[1]:-1;typeof createImageBitmap>"u"||m||h&&b<98?this.textureLoader=new C.TextureLoader(this.options.manager):this.textureLoader=new C.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new C.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(u){this.extensions=u}setPlugins(u){this.plugins=u}parse(u,p){const a=this,d=this.json,m=this.extensions;this.cache.removeAll(),this._invokeAll(function(h){return h._markDefs&&h._markDefs()}),Promise.all(this._invokeAll(function(h){return h.beforeRoot&&h.beforeRoot()})).then(function(){return Promise.all([a.getDependencies("scene"),a.getDependencies("animation"),a.getDependencies("camera")])}).then(function(h){const b={scene:h[0][d.scene||0],scenes:h[0],animations:h[1],cameras:h[2],asset:d.asset,parser:a,userData:{}};fn(m,b,d),St(b,d),Promise.all(a._invokeAll(function(f){return f.afterRoot&&f.afterRoot(b)})).then(function(){u(b)})}).catch(p)}_markDefs(){const u=this.json.nodes||[],p=this.json.skins||[],a=this.json.meshes||[];for(let d=0,m=p.length;d<m;d++){const h=p[d].joints;for(let b=0,f=h.length;b<f;b++)u[h[b]].isBone=!0}for(let d=0,m=u.length;d<m;d++){const h=u[d];h.mesh!==void 0&&(this._addNodeRef(this.meshCache,h.mesh),h.skin!==void 0&&(a[h.mesh].isSkinnedMesh=!0)),h.camera!==void 0&&this._addNodeRef(this.cameraCache,h.camera)}}_addNodeRef(u,p){p!==void 0&&(u.refs[p]===void 0&&(u.refs[p]=u.uses[p]=0),u.refs[p]++)}_getNodeRef(u,p,a){if(u.refs[p]<=1)return a;const d=a.clone(),m=(h,b)=>{const f=this.associations.get(h);f!=null&&this.associations.set(b,f);for(const[x,E]of h.children.entries())m(E,b.children[x])};return m(a,d),d.name+="_instance_"+u.uses[p]++,d}_invokeOne(u){const p=Object.values(this.plugins);p.push(this);for(let a=0;a<p.length;a++){const d=u(p[a]);if(d)return d}return null}_invokeAll(u){const p=Object.values(this.plugins);p.unshift(this);const a=[];for(let d=0;d<p.length;d++){const m=u(p[d]);m&&a.push(m)}return a}getDependency(u,p){const a=u+":"+p;let d=this.cache.get(a);if(!d){switch(u){case"scene":d=this.loadScene(p);break;case"node":d=this.loadNode(p);break;case"mesh":d=this._invokeOne(function(m){return m.loadMesh&&m.loadMesh(p)});break;case"accessor":d=this.loadAccessor(p);break;case"bufferView":d=this._invokeOne(function(m){return m.loadBufferView&&m.loadBufferView(p)});break;case"buffer":d=this.loadBuffer(p);break;case"material":d=this._invokeOne(function(m){return m.loadMaterial&&m.loadMaterial(p)});break;case"texture":d=this._invokeOne(function(m){return m.loadTexture&&m.loadTexture(p)});break;case"skin":d=this.loadSkin(p);break;case"animation":d=this._invokeOne(function(m){return m.loadAnimation&&m.loadAnimation(p)});break;case"camera":d=this.loadCamera(p);break;default:throw new Error("Unknown type: "+u)}this.cache.add(a,d)}return d}getDependencies(u){let p=this.cache.get(u);if(!p){const a=this,d=this.json[u+(u==="mesh"?"es":"s")]||[];p=Promise.all(d.map(function(m,h){return a.getDependency(u,h)})),this.cache.add(u,p)}return p}loadBuffer(u){const p=this.json.buffers[u],a=this.fileLoader;if(p.type&&p.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+p.type+" buffer type is not supported.");if(p.uri===void 0&&u===0)return Promise.resolve(this.extensions[q.KHR_BINARY_GLTF].body);const d=this.options;return new Promise(function(m,h){a.load(C.LoaderUtils.resolveURL(p.uri,d.path),m,void 0,function(){h(new Error('THREE.GLTFLoader: Failed to load buffer "'+p.uri+'".'))})})}loadBufferView(u){const p=this.json.bufferViews[u];return this.getDependency("buffer",p.buffer).then(function(a){const d=p.byteLength||0,m=p.byteOffset||0;return a.slice(m,m+d)})}loadAccessor(u){const p=this,a=this.json,d=this.json.accessors[u];if(d.bufferView===void 0&&d.sparse===void 0)return Promise.resolve(null);const m=[];return d.bufferView!==void 0?m.push(this.getDependency("bufferView",d.bufferView)):m.push(null),d.sparse!==void 0&&(m.push(this.getDependency("bufferView",d.sparse.indices.bufferView)),m.push(this.getDependency("bufferView",d.sparse.values.bufferView))),Promise.all(m).then(function(h){const b=h[0],f=Yi[d.type],x=vn[d.componentType],E=x.BYTES_PER_ELEMENT,g=E*f,M=d.byteOffset||0,N=d.bufferView!==void 0?a.bufferViews[d.bufferView].byteStride:void 0,A=d.normalized===!0;let F,I;if(N&&N!==g){const O=Math.floor(M/N),Y="InterleavedBuffer:"+d.bufferView+":"+d.componentType+":"+O+":"+d.count;let D=p.cache.get(Y);D||(F=new x(b,O*N,d.count*N/E),D=new C.InterleavedBuffer(F,N/E),p.cache.add(Y,D)),I=new C.InterleavedBufferAttribute(D,f,M%N/E,A)}else b===null?F=new x(d.count*f):F=new x(b,M,d.count*f),I=new C.BufferAttribute(F,f,A);if(d.sparse!==void 0){const O=Yi.SCALAR,Y=vn[d.sparse.indices.componentType],D=d.sparse.indices.byteOffset||0,re=d.sparse.values.byteOffset||0,de=new Y(h[1],D,d.sparse.count*O),ne=new x(h[2],re,d.sparse.count*f);b!==null&&(I=new C.BufferAttribute(I.array.slice(),I.itemSize,I.normalized));for(let X=0,G=de.length;X<G;X++){const ee=de[X];if(I.setX(ee,ne[X*f]),f>=2&&I.setY(ee,ne[X*f+1]),f>=3&&I.setZ(ee,ne[X*f+2]),f>=4&&I.setW(ee,ne[X*f+3]),f>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return I})}loadTexture(u){const p=this.json,a=this.options,m=p.textures[u].source,h=p.images[m];let b=this.textureLoader;if(h.uri){const f=a.manager.getHandler(h.uri);f!==null&&(b=f)}return this.loadTextureImage(u,m,b)}loadTextureImage(u,p,a){const d=this,m=this.json,h=m.textures[u],b=m.images[p],f=(b.uri||b.bufferView)+":"+h.sampler;if(this.textureCache[f])return this.textureCache[f];const x=this.loadImageSource(p,a).then(function(E){E.flipY=!1,h.name&&(E.name=h.name);const M=(m.samplers||{})[h.sampler]||{};return E.magFilter=qi[M.magFilter]||C.LinearFilter,E.minFilter=qi[M.minFilter]||C.LinearMipmapLinearFilter,E.wrapS=Hi[M.wrapS]||C.RepeatWrapping,E.wrapT=Hi[M.wrapT]||C.RepeatWrapping,d.associations.set(E,{textures:u}),E}).catch(function(){return null});return this.textureCache[f]=x,x}loadImageSource(u,p){const a=this,d=this.json,m=this.options;if(this.sourceCache[u]!==void 0)return this.sourceCache[u].then(g=>g.clone());const h=d.images[u],b=self.URL||self.webkitURL;let f=h.uri||"",x=!1;if(h.bufferView!==void 0)f=a.getDependency("bufferView",h.bufferView).then(function(g){x=!0;const M=new Blob([g],{type:h.mimeType});return f=b.createObjectURL(M),f});else if(h.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+u+" is missing URI and bufferView");const E=Promise.resolve(f).then(function(g){return new Promise(function(M,N){let A=M;p.isImageBitmapLoader===!0&&(A=function(F){const I=new C.Texture(F);I.needsUpdate=!0,M(I)}),p.load(C.LoaderUtils.resolveURL(g,m.path),A,void 0,N)})}).then(function(g){return x===!0&&b.revokeObjectURL(f),g.userData.mimeType=h.mimeType||vo(h.uri),g}).catch(function(g){throw console.error("THREE.GLTFLoader: Couldn't load texture",f),g});return this.sourceCache[u]=E,E}assignTexture(u,p,a,d){const m=this;return this.getDependency("texture",a.index).then(function(h){if(a.texCoord!==void 0&&a.texCoord!=0&&!(p==="aoMap"&&a.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+a.texCoord+" for texture "+p+" not yet supported."),m.extensions[q.KHR_TEXTURE_TRANSFORM]){const b=a.extensions!==void 0?a.extensions[q.KHR_TEXTURE_TRANSFORM]:void 0;if(b){const f=m.associations.get(h);h=m.extensions[q.KHR_TEXTURE_TRANSFORM].extendTexture(h,b),m.associations.set(h,f)}}return d!==void 0&&(h.encoding=d),u[p]=h,h})}assignFinalMaterial(u){const p=u.geometry;let a=u.material;const d=p.attributes.tangent===void 0,m=p.attributes.color!==void 0,h=p.attributes.normal===void 0;if(u.isPoints){const b="PointsMaterial:"+a.uuid;let f=this.cache.get(b);f||(f=new C.PointsMaterial,C.Material.prototype.copy.call(f,a),f.color.copy(a.color),f.map=a.map,f.sizeAttenuation=!1,this.cache.add(b,f)),a=f}else if(u.isLine){const b="LineBasicMaterial:"+a.uuid;let f=this.cache.get(b);f||(f=new C.LineBasicMaterial,C.Material.prototype.copy.call(f,a),f.color.copy(a.color),this.cache.add(b,f)),a=f}if(d||m||h){let b="ClonedMaterial:"+a.uuid+":";a.isGLTFSpecularGlossinessMaterial&&(b+="specular-glossiness:"),d&&(b+="derivative-tangents:"),m&&(b+="vertex-colors:"),h&&(b+="flat-shading:");let f=this.cache.get(b);f||(f=a.clone(),m&&(f.vertexColors=!0),h&&(f.flatShading=!0),d&&(f.normalScale&&(f.normalScale.y*=-1),f.clearcoatNormalScale&&(f.clearcoatNormalScale.y*=-1)),this.cache.add(b,f),this.associations.set(f,this.associations.get(a))),a=f}a.aoMap&&p.attributes.uv2===void 0&&p.attributes.uv!==void 0&&p.setAttribute("uv2",p.attributes.uv),u.material=a}getMaterialType(){return C.MeshStandardMaterial}loadMaterial(u){const p=this,a=this.json,d=this.extensions,m=a.materials[u];let h;const b={},f=m.extensions||{},x=[];if(f[q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const g=d[q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];h=g.getMaterialType(),x.push(g.extendParams(b,m,p))}else if(f[q.KHR_MATERIALS_UNLIT]){const g=d[q.KHR_MATERIALS_UNLIT];h=g.getMaterialType(),x.push(g.extendParams(b,m,p))}else{const g=m.pbrMetallicRoughness||{};if(b.color=new C.Color(1,1,1),b.opacity=1,Array.isArray(g.baseColorFactor)){const M=g.baseColorFactor;b.color.fromArray(M),b.opacity=M[3]}g.baseColorTexture!==void 0&&x.push(p.assignTexture(b,"map",g.baseColorTexture,C.sRGBEncoding)),b.metalness=g.metallicFactor!==void 0?g.metallicFactor:1,b.roughness=g.roughnessFactor!==void 0?g.roughnessFactor:1,g.metallicRoughnessTexture!==void 0&&(x.push(p.assignTexture(b,"metalnessMap",g.metallicRoughnessTexture)),x.push(p.assignTexture(b,"roughnessMap",g.metallicRoughnessTexture))),h=this._invokeOne(function(M){return M.getMaterialType&&M.getMaterialType(u)}),x.push(Promise.all(this._invokeAll(function(M){return M.extendMaterialParams&&M.extendMaterialParams(u,b)})))}m.doubleSided===!0&&(b.side=C.DoubleSide);const E=m.alphaMode||ks.OPAQUE;if(E===ks.BLEND?(b.transparent=!0,b.depthWrite=!1):(b.transparent=!1,E===ks.MASK&&(b.alphaTest=m.alphaCutoff!==void 0?m.alphaCutoff:.5)),m.normalTexture!==void 0&&h!==C.MeshBasicMaterial&&(x.push(p.assignTexture(b,"normalMap",m.normalTexture)),b.normalScale=new C.Vector2(1,1),m.normalTexture.scale!==void 0)){const g=m.normalTexture.scale;b.normalScale.set(g,g)}return m.occlusionTexture!==void 0&&h!==C.MeshBasicMaterial&&(x.push(p.assignTexture(b,"aoMap",m.occlusionTexture)),m.occlusionTexture.strength!==void 0&&(b.aoMapIntensity=m.occlusionTexture.strength)),m.emissiveFactor!==void 0&&h!==C.MeshBasicMaterial&&(b.emissive=new C.Color().fromArray(m.emissiveFactor)),m.emissiveTexture!==void 0&&h!==C.MeshBasicMaterial&&x.push(p.assignTexture(b,"emissiveMap",m.emissiveTexture,C.sRGBEncoding)),Promise.all(x).then(function(){let g;return h===Ps?g=d[q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(b):g=new h(b),m.name&&(g.name=m.name),St(g,m),p.associations.set(g,{materials:u}),m.extensions&&fn(d,g,m),g})}createUniqueName(u){const p=C.PropertyBinding.sanitizeNodeName(u||"");let a=p;for(let d=1;this.nodeNamesUsed[a];++d)a=p+"_"+d;return this.nodeNamesUsed[a]=!0,a}loadGeometries(u){const p=this,a=this.extensions,d=this.primitiveCache;function m(b){return a[q.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(b,p).then(function(f){return Zi(f,b,p)})}const h=[];for(let b=0,f=u.length;b<f;b++){const x=u[b],E=mo(x),g=d[E];if(g)h.push(g.promise);else{let M;x.extensions&&x.extensions[q.KHR_DRACO_MESH_COMPRESSION]?M=m(x):M=Zi(new C.BufferGeometry,x,p),d[E]={primitive:x,promise:M},h.push(M)}}return Promise.all(h)}loadMesh(u){const p=this,a=this.json,d=this.extensions,m=a.meshes[u],h=m.primitives,b=[];for(let f=0,x=h.length;f<x;f++){const E=h[f].material===void 0?po(this.cache):this.getDependency("material",h[f].material);b.push(E)}return b.push(p.loadGeometries(h)),Promise.all(b).then(function(f){const x=f.slice(0,f.length-1),E=f[f.length-1],g=[];for(let N=0,A=E.length;N<A;N++){const F=E[N],I=h[N];let O;const Y=x[N];if(I.mode===Je.TRIANGLES||I.mode===Je.TRIANGLE_STRIP||I.mode===Je.TRIANGLE_FAN||I.mode===void 0)O=m.isSkinnedMesh===!0?new C.SkinnedMesh(F,Y):new C.Mesh(F,Y),O.isSkinnedMesh===!0&&!O.geometry.attributes.skinWeight.normalized&&O.normalizeSkinWeights(),I.mode===Je.TRIANGLE_STRIP?O.geometry=Qi(O.geometry,C.TriangleStripDrawMode):I.mode===Je.TRIANGLE_FAN&&(O.geometry=Qi(O.geometry,C.TriangleFanDrawMode));else if(I.mode===Je.LINES)O=new C.LineSegments(F,Y);else if(I.mode===Je.LINE_STRIP)O=new C.Line(F,Y);else if(I.mode===Je.LINE_LOOP)O=new C.LineLoop(F,Y);else if(I.mode===Je.POINTS)O=new C.Points(F,Y);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+I.mode);Object.keys(O.geometry.morphAttributes).length>0&&ho(O,m),O.name=p.createUniqueName(m.name||"mesh_"+u),St(O,m),I.extensions&&fn(d,O,I),p.assignFinalMaterial(O),g.push(O)}for(let N=0,A=g.length;N<A;N++)p.associations.set(g[N],{meshes:u,primitives:N});if(g.length===1)return g[0];const M=new C.Group;p.associations.set(M,{meshes:u});for(let N=0,A=g.length;N<A;N++)M.add(g[N]);return M})}loadCamera(u){let p;const a=this.json.cameras[u],d=a[a.type];if(!d){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return a.type==="perspective"?p=new C.PerspectiveCamera(C.MathUtils.radToDeg(d.yfov),d.aspectRatio||1,d.znear||1,d.zfar||2e6):a.type==="orthographic"&&(p=new C.OrthographicCamera(-d.xmag,d.xmag,d.ymag,-d.ymag,d.znear,d.zfar)),a.name&&(p.name=this.createUniqueName(a.name)),St(p,a),Promise.resolve(p)}loadSkin(u){const p=this.json.skins[u],a={joints:p.joints};return p.inverseBindMatrices===void 0?Promise.resolve(a):this.getDependency("accessor",p.inverseBindMatrices).then(function(d){return a.inverseBindMatrices=d,a})}loadAnimation(u){const a=this.json.animations[u],d=[],m=[],h=[],b=[],f=[];for(let x=0,E=a.channels.length;x<E;x++){const g=a.channels[x],M=a.samplers[g.sampler],N=g.target,A=N.node,F=a.parameters!==void 0?a.parameters[M.input]:M.input,I=a.parameters!==void 0?a.parameters[M.output]:M.output;d.push(this.getDependency("node",A)),m.push(this.getDependency("accessor",F)),h.push(this.getDependency("accessor",I)),b.push(M),f.push(N)}return Promise.all([Promise.all(d),Promise.all(m),Promise.all(h),Promise.all(b),Promise.all(f)]).then(function(x){const E=x[0],g=x[1],M=x[2],N=x[3],A=x[4],F=[];for(let O=0,Y=E.length;O<Y;O++){const D=E[O],re=g[O],de=M[O],ne=N[O],X=A[O];if(D===void 0)continue;D.updateMatrix();let G;switch(pt[X.path]){case pt.weights:G=C.NumberKeyframeTrack;break;case pt.rotation:G=C.QuaternionKeyframeTrack;break;case pt.position:case pt.scale:default:G=C.VectorKeyframeTrack;break}const ee=D.name?D.name:D.uuid,se=ne.interpolation!==void 0?co[ne.interpolation]:C.InterpolateLinear,_e=[];pt[X.path]===pt.weights?D.traverse(function(he){he.morphTargetInfluences&&_e.push(he.name?he.name:he.uuid)}):_e.push(ee);let Ce=de.array;if(de.normalized){const he=Ms(Ce.constructor),ue=new Float32Array(Ce.length);for(let fe=0,W=Ce.length;fe<W;fe++)ue[fe]=Ce[fe]*he;Ce=ue}for(let he=0,ue=_e.length;he<ue;he++){const fe=new G(_e[he]+"."+pt[X.path],re.array,Ce,se);ne.interpolation==="CUBICSPLINE"&&(fe.createInterpolant=function(B){const ut=this instanceof C.QuaternionKeyframeTrack?lo:$i;return new ut(this.times,this.values,this.getValueSize()/3,B)},fe.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),F.push(fe)}}const I=a.name?a.name:"animation_"+u;return new C.AnimationClip(I,void 0,F)})}createNodeMesh(u){const p=this.json,a=this,d=p.nodes[u];return d.mesh===void 0?null:a.getDependency("mesh",d.mesh).then(function(m){const h=a._getNodeRef(a.meshCache,d.mesh,m);return d.weights!==void 0&&h.traverse(function(b){if(!!b.isMesh)for(let f=0,x=d.weights.length;f<x;f++)b.morphTargetInfluences[f]=d.weights[f]}),h})}loadNode(u){const p=this.json,a=this.extensions,d=this,m=p.nodes[u],h=m.name?d.createUniqueName(m.name):"";return function(){const b=[],f=d._invokeOne(function(x){return x.createNodeMesh&&x.createNodeMesh(u)});return f&&b.push(f),m.camera!==void 0&&b.push(d.getDependency("camera",m.camera).then(function(x){return d._getNodeRef(d.cameraCache,m.camera,x)})),d._invokeAll(function(x){return x.createNodeAttachment&&x.createNodeAttachment(u)}).forEach(function(x){b.push(x)}),Promise.all(b)}().then(function(b){let f;if(m.isBone===!0?f=new C.Bone:b.length>1?f=new C.Group:b.length===1?f=b[0]:f=new C.Object3D,f!==b[0])for(let x=0,E=b.length;x<E;x++)f.add(b[x]);if(m.name&&(f.userData.name=m.name,f.name=h),St(f,m),m.extensions&&fn(a,f,m),m.matrix!==void 0){const x=new C.Matrix4;x.fromArray(m.matrix),f.applyMatrix4(x)}else m.translation!==void 0&&f.position.fromArray(m.translation),m.rotation!==void 0&&f.quaternion.fromArray(m.rotation),m.scale!==void 0&&f.scale.fromArray(m.scale);return d.associations.has(f)||d.associations.set(f,{}),d.associations.get(f).nodes=u,f})}loadScene(u){const p=this.json,a=this.extensions,d=this.json.scenes[u],m=this,h=new C.Group;d.name&&(h.name=m.createUniqueName(d.name)),St(h,d),d.extensions&&fn(a,h,d);const b=d.nodes||[],f=[];for(let x=0,E=b.length;x<E;x++)f.push(Wi(b[x],h,p,m));return Promise.all(f).then(function(){const x=E=>{const g=new Map;for(const[M,N]of m.associations)(M instanceof C.Material||M instanceof C.Texture)&&g.set(M,N);return E.traverse(M=>{const N=m.associations.get(M);N!=null&&g.set(M,N)}),g};return m.associations=x(h),h})}}function Wi(L,u,p,a){const d=p.nodes[L];return a.getDependency("node",L).then(function(m){if(d.skin===void 0)return m;let h;return a.getDependency("skin",d.skin).then(function(b){h=b;const f=[];for(let x=0,E=h.joints.length;x<E;x++)f.push(a.getDependency("node",h.joints[x]));return Promise.all(f)}).then(function(b){return m.traverse(function(f){if(!f.isMesh)return;const x=[],E=[];for(let g=0,M=b.length;g<M;g++){const N=b[g];if(N){x.push(N);const A=new C.Matrix4;h.inverseBindMatrices!==void 0&&A.fromArray(h.inverseBindMatrices.array,g*16),E.push(A)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',h.joints[g])}f.bind(new C.Skeleton(x,E),f.matrixWorld)}),m})}).then(function(m){u.add(m);const h=[];if(d.children){const b=d.children;for(let f=0,x=b.length;f<x;f++){const E=b[f];h.push(Wi(E,m,p,a))}}return Promise.all(h)})}function bo(L,u,p){const a=u.attributes,d=new C.Box3;if(a.POSITION!==void 0){const b=p.json.accessors[a.POSITION],f=b.min,x=b.max;if(f!==void 0&&x!==void 0){if(d.set(new C.Vector3(f[0],f[1],f[2]),new C.Vector3(x[0],x[1],x[2])),b.normalized){const E=Ms(vn[b.componentType]);d.min.multiplyScalar(E),d.max.multiplyScalar(E)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const m=u.targets;if(m!==void 0){const b=new C.Vector3,f=new C.Vector3;for(let x=0,E=m.length;x<E;x++){const g=m[x];if(g.POSITION!==void 0){const M=p.json.accessors[g.POSITION],N=M.min,A=M.max;if(N!==void 0&&A!==void 0){if(f.setX(Math.max(Math.abs(N[0]),Math.abs(A[0]))),f.setY(Math.max(Math.abs(N[1]),Math.abs(A[1]))),f.setZ(Math.max(Math.abs(N[2]),Math.abs(A[2]))),M.normalized){const F=Ms(vn[M.componentType]);f.multiplyScalar(F)}b.max(f)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}d.expandByVector(b)}L.boundingBox=d;const h=new C.Sphere;d.getCenter(h.center),h.radius=d.min.distanceTo(d.max)/2,L.boundingSphere=h}function Zi(L,u,p){const a=u.attributes,d=[];function m(h,b){return p.getDependency("accessor",h).then(function(f){L.setAttribute(b,f)})}for(const h in a){const b=Es[h]||h.toLowerCase();b in L.attributes||d.push(m(a[h],b))}if(u.indices!==void 0&&!L.index){const h=p.getDependency("accessor",u.indices).then(function(b){L.setIndex(b)});d.push(h)}return St(L,u),bo(L,u,p),Promise.all(d).then(function(){return u.targets!==void 0?uo(L,u.targets,p):L})}function Qi(L,u){let p=L.getIndex();if(p===null){const h=[],b=L.getAttribute("position");if(b!==void 0){for(let f=0;f<b.count;f++)h.push(f);L.setIndex(h),p=L.getIndex()}else return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),L}const a=p.count-2,d=[];if(u===C.TriangleFanDrawMode)for(let h=1;h<=a;h++)d.push(p.getX(0)),d.push(p.getX(h)),d.push(p.getX(h+1));else for(let h=0;h<a;h++)h%2===0?(d.push(p.getX(h)),d.push(p.getX(h+1)),d.push(p.getX(h+2))):(d.push(p.getX(h+2)),d.push(p.getX(h+1)),d.push(p.getX(h)));d.length/3!==a&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const m=L.clone();return m.setIndex(d),m}var Ji=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _o(L){return L&&L.__esModule&&Object.prototype.hasOwnProperty.call(L,"default")?L.default:L}const Ls=new WeakMap;class go extends C.Loader{constructor(u){super(u),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(u){return this.decoderPath=u,this}setDecoderConfig(u){return this.decoderConfig=u,this}setWorkerLimit(u){return this.workerLimit=u,this}load(u,p,a,d){const m=new C.FileLoader(this.manager);m.setPath(this.path),m.setResponseType("arraybuffer"),m.setRequestHeader(this.requestHeader),m.setWithCredentials(this.withCredentials),m.load(u,h=>{const b={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(h,b).then(p).catch(d)},a,d)}decodeDracoFile(u,p,a,d){const m={attributeIDs:a||this.defaultAttributeIDs,attributeTypes:d||this.defaultAttributeTypes,useUniqueIDs:!!a};this.decodeGeometry(u,m).then(p)}decodeGeometry(u,p){for(const f in p.attributeTypes){const x=p.attributeTypes[f];x.BYTES_PER_ELEMENT!==void 0&&(p.attributeTypes[f]=x.name)}const a=JSON.stringify(p);if(Ls.has(u)){const f=Ls.get(u);if(f.key===a)return f.promise;if(u.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let d;const m=this.workerNextTaskID++,h=u.byteLength,b=this._getWorker(m,h).then(f=>(d=f,new Promise((x,E)=>{d._callbacks[m]={resolve:x,reject:E},d.postMessage({type:"decode",id:m,taskConfig:p,buffer:u},[u])}))).then(f=>this._createGeometry(f.geometry));return b.catch(()=>!0).then(()=>{d&&m&&this._releaseTask(d,m)}),Ls.set(u,{key:a,promise:b}),b}_createGeometry(u){const p=new C.BufferGeometry;u.index&&p.setIndex(new C.BufferAttribute(u.index.array,1));for(let a=0;a<u.attributes.length;a++){const d=u.attributes[a],m=d.name,h=d.array,b=d.itemSize;p.setAttribute(m,new C.BufferAttribute(h,b))}return p}_loadLibrary(u,p){const a=new C.FileLoader(this.manager);return a.setPath(this.decoderPath),a.setResponseType(p),a.setWithCredentials(this.withCredentials),new Promise((d,m)=>{a.load(u,d,void 0,m)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const u=typeof WebAssembly!="object"||this.decoderConfig.type==="js",p=[];return u?p.push(this._loadLibrary("draco_decoder.js","text")):(p.push(this._loadLibrary("draco_wasm_wrapper.js","text")),p.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(p).then(a=>{const d=a[0];u||(this.decoderConfig.wasmBinary=a[1]);const m=wo.toString(),h=["/* draco decoder */",d,"","/* worker */",m.substring(m.indexOf("{")+1,m.lastIndexOf("}"))].join(`
14
+ `);this.workerSourceURL=URL.createObjectURL(new Blob([h]))}),this.decoderPending}_getWorker(u,p){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const d=new Worker(this.workerSourceURL);d._callbacks={},d._taskCosts={},d._taskLoad=0,d.postMessage({type:"init",decoderConfig:this.decoderConfig}),d.onmessage=function(m){const h=m.data;switch(h.type){case"decode":d._callbacks[h.id].resolve(h);break;case"error":d._callbacks[h.id].reject(h);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+h.type+'"')}},this.workerPool.push(d)}else this.workerPool.sort(function(d,m){return d._taskLoad>m._taskLoad?-1:1});const a=this.workerPool[this.workerPool.length-1];return a._taskCosts[u]=p,a._taskLoad+=p,a})}_releaseTask(u,p){u._taskLoad-=u._taskCosts[p],delete u._callbacks[p],delete u._taskCosts[p]}debug(){console.log("Task load: ",this.workerPool.map(u=>u._taskLoad))}dispose(){for(let u=0;u<this.workerPool.length;++u)this.workerPool[u].terminate();return this.workerPool.length=0,this}}function wo(){let L,u;onmessage=function(h){const b=h.data;switch(b.type){case"init":L=b.decoderConfig,u=new Promise(function(E){L.onModuleLoaded=function(g){E({draco:g})},DracoDecoderModule(L)});break;case"decode":const f=b.buffer,x=b.taskConfig;u.then(E=>{const g=E.draco,M=new g.Decoder,N=new g.DecoderBuffer;N.Init(new Int8Array(f),f.byteLength);try{const A=p(g,M,N,x),F=A.attributes.map(I=>I.array.buffer);A.index&&F.push(A.index.array.buffer),self.postMessage({type:"decode",id:b.id,geometry:A},F)}catch(A){console.error(A),self.postMessage({type:"error",id:b.id,error:A.message})}finally{g.destroy(N),g.destroy(M)}});break}};function p(h,b,f,x){const E=x.attributeIDs,g=x.attributeTypes;let M,N;const A=b.GetEncodedGeometryType(f);if(A===h.TRIANGULAR_MESH)M=new h.Mesh,N=b.DecodeBufferToMesh(f,M);else if(A===h.POINT_CLOUD)M=new h.PointCloud,N=b.DecodeBufferToPointCloud(f,M);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!N.ok()||M.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+N.error_msg());const F={index:null,attributes:[]};for(const I in E){const O=self[g[I]];let Y,D;if(x.useUniqueIDs)D=E[I],Y=b.GetAttributeByUniqueId(M,D);else{if(D=b.GetAttributeId(M,h[E[I]]),D===-1)continue;Y=b.GetAttribute(M,D)}F.attributes.push(d(h,b,M,I,O,Y))}return A===h.TRIANGULAR_MESH&&(F.index=a(h,b,M)),h.destroy(M),F}function a(h,b,f){const E=f.num_faces()*3,g=E*4,M=h._malloc(g);b.GetTrianglesUInt32Array(f,g,M);const N=new Uint32Array(h.HEAPF32.buffer,M,E).slice();return h._free(M),{array:N,itemSize:1}}function d(h,b,f,x,E,g){const M=g.num_components(),A=f.num_points()*M,F=A*E.BYTES_PER_ELEMENT,I=m(h,E),O=h._malloc(F);b.GetAttributeDataArrayForAllPoints(f,g,I,F,O);const Y=new E(h.HEAPF32.buffer,O,A).slice();return h._free(O),{name:x,array:Y,itemSize:M}}function m(h,b){switch(b){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}}}const xo=Te.defineComponent({__name:"OrbitControls",setup(L){let u;const p=Te.inject("camera"),a=Te.inject("renderer");return Te.watch([p,a],()=>{if((p==null?void 0:p.value)&&(a==null?void 0:a.value)){u=new Br(p.value,Te.unref(a).domElement),u.enableDamping=!0;const{onLoop:d}=Cs.useRenderLoop();d(()=>{u&&u.update()})}},{deep:!0}),()=>{}}});var Ss={exports:{}};/*! Tweakpane 3.1.0 (c) 2016 cocopon, licensed under the MIT license. */(function(L,u){(function(p,a){a(u)})(Ji,function(p){class a{constructor(e){const[t,i]=e.split("-"),c=t.split(".");this.major=parseInt(c[0],10),this.minor=parseInt(c[1],10),this.patch=parseInt(c[2],10),this.prerelease=i!=null?i:null}toString(){const e=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[e,this.prerelease].join("-"):e}}class d{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 m{constructor(e){this.target=e}}class h extends m{constructor(e,t,i,c){super(e),this.value=t,this.presetKey=i,this.last=c!=null?c:!0}}class b extends m{constructor(e,t,i){super(e),this.value=t,this.presetKey=i}}class f extends m{constructor(e,t){super(e),this.expanded=t}}class x extends m{constructor(e,t){super(e),this.index=t}}function E(n){return n}function g(n){return n==null}function M(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}const N={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 A{constructor(e){var t;this.message=(t=N[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}static alreadyDisposed(){return new A({type:"alreadydisposed"})}static notBindable(){return new A({type:"notbindable"})}static propertyNotFound(e){return new A({type:"propertynotfound",context:{name:e}})}static shouldNeverHappen(){return new A({type:"shouldneverhappen"})}}class F{constructor(e,t,i){this.obj_=e,this.key_=t,this.presetKey_=i!=null?i:t}static isBindable(e){return!(e===null||typeof e!="object")}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 i=this.read();if(!F.isBindable(i))throw A.notBindable();if(!(e in i))throw A.propertyNotFound(e);i[e]=t}}class I extends d{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 i=t.bind(this);return this.controller_.valueController.emitter.on(e,()=>{i(new m(this))}),this}}class O{constructor(){this.observers_={}}on(e,t){let i=this.observers_[e];return i||(i=this.observers_[e]=[]),i.push({handler:t}),this}off(e,t){const i=this.observers_[e];return i&&(this.observers_[e]=i.filter(c=>c.handler!==t)),this}emit(e,t){const i=this.observers_[e];!i||i.forEach(c=>{c.handler(t)})}}const Y="tp";function D(n){return(t,i)=>[Y,"-",n,"v",t?`_${t}`:"",i?`-${i}`:""].join("")}function re(n,e){return t=>e(n(t))}function de(n){return n.rawValue}function ne(n,e){n.emitter.on("change",re(de,e)),e(n.rawValue)}function X(n,e,t){ne(n.value(e),t)}function G(n,e,t){t?n.classList.add(e):n.classList.remove(e)}function ee(n,e){return t=>{G(n,e,t)}}function se(n,e){ne(n,t=>{e.textContent=t!=null?t:""})}const _e=D("btn");class Ce{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(_e()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("button");i.classList.add(_e("b")),t.viewProps.bindDisabled(i),this.element.appendChild(i),this.buttonElement=i;const c=e.createElement("div");c.classList.add(_e("t")),se(t.props.value("title"),c),this.buttonElement.appendChild(c)}}class he{constructor(e,t){this.emitter=new O,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Ce(e,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ue{constructor(e,t){var i;this.constraint_=t==null?void 0:t.constraint,this.equals_=(i=t==null?void 0:t.equals)!==null&&i!==void 0?i:(c,_)=>c===_,this.emitter=new O,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 i=t!=null?t:{forceEmit:!1,last:!0},c=this.constraint_?this.constraint_.constrain(e):e;!!this.equals_(this.rawValue_,c)&&!i.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=c,this.emitter.emit("change",{options:i,rawValue:c,sender:this}))}}class fe{constructor(e){this.emitter=new O,this.value_=e}get rawValue(){return this.value_}set rawValue(e){this.setRawValue(e,{forceEmit:!1,last:!0})}setRawValue(e,t){const i=t!=null?t:{forceEmit:!1,last:!0};this.value_===e&&!i.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=e,this.emitter.emit("change",{options:i,rawValue:this.value_,sender:this}))}}function W(n,e){const t=e==null?void 0:e.constraint,i=e==null?void 0:e.equals;return!t&&!i?new fe(n):new ue(n,e)}class B{constructor(e){this.emitter=new O,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((i,c)=>Object.assign(i,{[c]:W(e[c])}),{})}static fromObject(e){const t=this.createCore(e);return new B(t)}get(e){return this.valMap_[e].rawValue}set(e,t){this.valMap_[e].rawValue=t}value(e){return this.valMap_[e]}}function ut(n,e){const i=Object.keys(e).reduce((c,_)=>{if(c===void 0)return;const y=e[_],S=y(n[_]);return S.succeeded?Object.assign(Object.assign({},c),{[_]:S.value}):void 0},{});return i}function Yt(n,e){return n.reduce((t,i)=>{if(t===void 0)return;const c=e(i);if(!(!c.succeeded||c.value===void 0))return[...t,c.value]},[])}function Xt(n){return n===null?!1:typeof n=="object"}function ge(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 i=n(t);return i!==void 0?{succeeded:!0,value:i}:{succeeded:!1,value:void 0}}}function At(n){return{custom:e=>ge(e)(n),boolean:ge(e=>typeof e=="boolean"?e:void 0)(n),number:ge(e=>typeof e=="number"?e:void 0)(n),string:ge(e=>typeof e=="string"?e:void 0)(n),function:ge(e=>typeof e=="function"?e:void 0)(n),constant:e=>ge(t=>t===e?e:void 0)(n),raw:ge(e=>e)(n),object:e=>ge(t=>{if(!!Xt(t))return ut(t,e)})(n),array:e=>ge(t=>{if(!!Array.isArray(t))return Yt(t,e)})(n)}}const $={optional:At(!0),required:At(!1)};function oe(n,e){const t=$.required.object(e)(n);return t.succeeded?t.value:void 0}function bn(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}function Wt(){return["veryfirst","first","last","verylast"]}const Tt=D(""),Vt={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class Pe{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",()=>{Wt().forEach(i=>{t.classList.remove(Tt(void 0,Vt[i]))}),this.blade.get("positions").forEach(i=>{t.classList.add(Tt(void 0,Vt[i]))})}),this.viewProps.handleDispose(()=>{bn(t)})}get parent(){return this.parent_}}const Ee="http://www.w3.org/2000/svg";function et(n){n.offsetHeight}function tt(n,e){const t=n.style.transition;n.style.transition="none",e(),n.style.transition=t}function dt(n){return n.ontouchstart!==void 0}function ht(){return new Function("return this")()}function _n(){return ht().document}function gn(n){const e=n.ownerDocument.defaultView;return e&&"document"in e?n.getContext("2d"):null}const Nt={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 qe(n,e){const t=n.createElementNS(Ee,"svg");return t.innerHTML=Nt[e],t}function nt(n,e,t){n.insertBefore(e,n.children[t])}function He(n){n.parentElement&&n.parentElement.removeChild(n)}function Zt(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Qt(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function Oe(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const Ye=D("lbl");function wn(n,e){const t=n.createDocumentFragment();return e.split(`
15
+ `).map(c=>n.createTextNode(c)).forEach((c,_)=>{_>0&&t.appendChild(n.createElement("br")),t.appendChild(c)}),t}class Ot{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Ye()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("div");i.classList.add(Ye("l")),X(t.props,"label",_=>{g(_)?this.element.classList.add(Ye(void 0,"nol")):(this.element.classList.remove(Ye(void 0,"nol")),Qt(i),i.appendChild(wn(e,_)))}),this.element.appendChild(i),this.labelElement=i;const c=e.createElement("div");c.classList.add(Ye("v")),this.element.appendChild(c),this.valueElement=c}}class Ie extends Pe{constructor(e,t){const i=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{view:new Ot(e,{props:t.props,viewProps:i}),viewProps:i})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const mt={id:"button",type:"blade",accept(n){const e=$,t=oe(n,{title:e.required.string,view:e.required.constant("button"),label:e.optional.string});return t?{params:t}:null},controller(n){return new Ie(n.document,{blade:n.blade,props:B.fromObject({label:n.params.label}),valueController:new he(n.document,{props:B.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof Ie)||!(n.controller.valueController instanceof he)?null:new I(n.controller)}};class ke extends Pe{constructor(e){super(e),this.value=e.value}}function Fe(){return new B({positions:W([],{equals:M})})}class je extends B{constructor(e){super(e)}static create(e){const t={completed:!0,expanded:e,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},i=B.createCore(t);return new je(i)}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")&&!g(e)?`${e}px`:"auto"}bindExpandedClass(e,t){const i=()=>{this.styleExpanded?e.classList.add(t):e.classList.remove(t)};X(this,"expanded",i),X(this,"temporaryExpanded",i)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function P(n,e){let t=0;return tt(e,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),et(e),t=e.clientHeight,n.set("temporaryExpanded",null),et(e)}),t}function T(n,e){e.style.height=n.styleHeight}function U(n,e){n.value("expanded").emitter.on("beforechange",()=>{n.set("completed",!1),g(n.get("expandedHeight"))&&n.set("expandedHeight",P(n,e)),n.set("shouldFixHeight",!0),et(e)}),n.emitter.on("change",()=>{T(n,e)}),T(n,e),e.addEventListener("transitionend",t=>{t.propertyName==="height"&&n.cleanUpTransition()})}class H extends d{constructor(e,t){super(e),this.rackApi_=t}}function ae(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"button"}))}function Me(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"folder"}))}function vt(n,e){const t=e!=null?e:{};return n.addBlade(Object.assign(Object.assign({},t),{view:"separator"}))}function Jt(n,e){return n.addBlade(Object.assign(Object.assign({},e),{view:"tab"}))}class we{constructor(e){this.emitter=new O,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 A.shouldNeverHappen();const i=t!==void 0?t:this.items_.length;this.items_.splice(i,0,e),this.cache_.add(e);const c=this.extract_(e);c&&(c.emitter.on("add",this.onSubListAdd_),c.emitter.on("remove",this.onSubListRemove_),c.allItems().forEach(_=>{this.cache_.add(_)})),this.emitter.emit("add",{index:i,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 i=this.extract_(e);i&&(i.emitter.off("add",this.onSubListAdd_),i.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 xe extends d{constructor(e){super(e),this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new O,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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.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 Le extends Ie{constructor(e,t){super(e,t),this.binding=t.binding}}class st extends d{constructor(e){super(e),this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new O,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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(e){const t=e.sender.target.read();this.emitter_.emit("update",{event:new b(this,t,this.controller_.binding.target.presetKey)})}}class Xe extends Ie{constructor(e,t){super(e,t),this.binding=t.binding,this.viewProps.bindDisabled(this.binding.ticker),this.viewProps.handleDispose(()=>{this.binding.dispose()})}}function It(n){return n instanceof Rt?n.apiSet_:n instanceof H?n.rackApi_.apiSet_:null}function Dt(n,e){const t=n.find(i=>i.controller_===e);if(!t)throw A.shouldNeverHappen();return t}function en(n,e,t){if(!F.isBindable(n))throw A.notBindable();return new F(n,e,t)}class Rt extends d{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 O,this.apiSet_=new we(It),this.pool_=t;const i=this.controller_.rack;i.emitter.on("add",this.onRackAdd_),i.emitter.on("remove",this.onRackRemove_),i.emitter.on("inputchange",this.onRackInputChange_),i.emitter.on("monitorupdate",this.onRackMonitorUpdate_),i.children.forEach(c=>{this.setUpApi_(c)})}get children(){return this.controller_.rack.children.map(e=>Dt(this.apiSet_,e))}addInput(e,t,i){const c=i!=null?i:{},_=this.controller_.view.element.ownerDocument,y=this.pool_.createInput(_,en(e,t,c.presetKey),c),S=new xe(y);return this.add(S,c.index)}addMonitor(e,t,i){const c=i!=null?i:{},_=this.controller_.view.element.ownerDocument,y=this.pool_.createMonitor(_,en(e,t),c),S=new st(y);return this.add(S,c.index)}addFolder(e){return Me(this,e)}addButton(e){return ae(this,e)}addSeparator(e){return vt(this,e)}addTab(e){return Jt(this,e)}add(e,t){this.controller_.rack.add(e.controller_,t);const i=this.apiSet_.find(c=>c.controller_===e.controller_);return i&&this.apiSet_.remove(i),this.apiSet_.add(e),e}remove(e){this.controller_.rack.remove(e.controller_)}addBlade(e){const t=this.controller_.view.element.ownerDocument,i=this.pool_.createBlade(t,e),c=this.pool_.createBladeApi(i);return this.add(c,e.index)}on(e,t){const i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}setUpApi_(e){this.apiSet_.find(i=>i.controller_===e)||this.apiSet_.add(this.pool_.createBladeApi(e))}onRackAdd_(e){this.setUpApi_(e.bladeController)}onRackRemove_(e){if(e.isRoot){const t=Dt(this.apiSet_,e.bladeController);this.apiSet_.remove(t)}}onRackInputChange_(e){const t=e.bladeController;if(t instanceof Le){const i=Dt(this.apiSet_,t),c=t.binding;this.emitter_.emit("change",{event:new h(i,c.target.read(),c.target.presetKey,e.options.last)})}else if(t instanceof ke){const i=Dt(this.apiSet_,t);this.emitter_.emit("change",{event:new h(i,t.value.rawValue,void 0,e.options.last)})}}onRackMonitorUpdate_(e){if(!(e.bladeController instanceof Xe))throw A.shouldNeverHappen();const t=Dt(this.apiSet_,e.bladeController),i=e.bladeController.binding;this.emitter_.emit("update",{event:new b(t,i.target.read(),i.target.presetKey)})}}class xn extends H{constructor(e,t){super(e,new Rt(e.rackController,t)),this.emitter_=new O,this.controller_.foldable.value("expanded").emitter.on("change",i=>{this.emitter_.emit("fold",{event:new f(this,i.sender.rawValue)})}),this.rackApi_.on("change",i=>{this.emitter_.emit("change",{event:i})}),this.rackApi_.on("update",i=>{this.emitter_.emit("update",{event:i})})}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,i){return this.rackApi_.addInput(e,t,i)}addMonitor(e,t,i){return this.rackApi_.addMonitor(e,t,i)}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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}}class yn extends Pe{constructor(e){super({blade:e.blade,view:e.view,viewProps:e.rackController.viewProps}),this.rackController=e.rackController}}class Ts{constructor(e,t){const i=D(t.viewName);this.element=e.createElement("div"),this.element.classList.add(i()),t.viewProps.bindClassModifiers(this.element)}}function Vs(n,e){for(let t=0;t<n.length;t++){const i=n[t];if(i instanceof Le&&i.binding===e)return i}return null}function Ns(n,e){for(let t=0;t<n.length;t++){const i=n[t];if(i instanceof Xe&&i.binding===e)return i}return null}function Os(n,e){for(let t=0;t<n.length;t++){const i=n[t];if(i instanceof ke&&i.value===e)return i}return null}function Cn(n){return n instanceof Ft?n.rack:n instanceof yn?n.rackController.rack:null}function Is(n){const e=Cn(n);return e?e.bcSet_:null}class Ds{constructor(e){var t;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 O,this.blade_=e!=null?e:null,(t=this.blade_)===null||t===void 0||t.value("positions").emitter.on("change",this.onBladePositionsChange_),this.bcSet_=new we(Is),this.bcSet_.emitter.on("add",this.onSetAdd_),this.bcSet_.emitter.on("remove",this.onSetRemove_)}get children(){return this.bcSet_.items}add(e,t){e.parent&&e.parent.remove(e),e.parent_=this,this.bcSet_.add(e,t)}remove(e){e.parent_=null,this.bcSet_.remove(e)}find(e){return this.bcSet_.allItems().filter(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 i=e.item;if(i.viewProps.emitter.on("change",this.onChildViewPropsChange_),i.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),i.viewProps.handleDispose(this.onChildDispose_),i instanceof Le)i.binding.emitter.on("change",this.onChildInputChange_);else if(i instanceof Xe)i.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(i instanceof ke)i.value.emitter.on("change",this.onChildValueChange_);else{const c=Cn(i);if(c){const _=c.emitter;_.on("layout",this.onDescendantLayout_),_.on("inputchange",this.onDescendantInputChange_),_.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 i=e.item;if(i instanceof Le)i.binding.emitter.off("change",this.onChildInputChange_);else if(i instanceof Xe)i.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(i instanceof ke)i.value.emitter.off("change",this.onChildValueChange_);else{const c=Cn(i);if(c){const _=c.emitter;_.off("layout",this.onDescendantLayout_),_.off("inputchange",this.onDescendantInputChange_),_.off("monitorupdate",this.onDescendantMonitorUpdate_)}}}updatePositions_(){const e=this.bcSet_.items.filter(c=>!c.viewProps.get("hidden")),t=e[0],i=e[e.length-1];this.bcSet_.items.forEach(c=>{const _=[];c===t&&(_.push("first"),(!this.blade_||this.blade_.get("positions").includes("veryfirst"))&&_.push("veryfirst")),c===i&&(_.push("last"),(!this.blade_||this.blade_.get("positions").includes("verylast"))&&_.push("verylast")),c.blade.set("positions",_)})}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=Vs(this.find(Le),e.sender);if(!t)throw A.shouldNeverHappen();this.emitter.emit("inputchange",{bladeController:t,options:e.options,sender:this})}onChildMonitorUpdate_(e){const t=Ns(this.find(Xe),e.sender);if(!t)throw A.shouldNeverHappen();this.emitter.emit("monitorupdate",{bladeController:t,sender:this})}onChildValueChange_(e){const t=Os(this.find(ke),e.sender);if(!t)throw A.shouldNeverHappen();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 Ft extends Pe{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new Ts(e,{viewName:"brk",viewProps:t.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const i=new Ds(t.root?void 0:t.blade);i.emitter.on("add",this.onRackAdd_),i.emitter.on("remove",this.onRackRemove_),this.rack=i,this.viewProps.handleDispose(()=>{for(let c=this.rack.children.length-1;c>=0;c--)this.rack.children[c].viewProps.set("disposed",!0)})}onRackAdd_(e){!e.isRoot||nt(this.view.element,e.bladeController.view.element,e.index)}onRackRemove_(e){!e.isRoot||He(e.bladeController.view.element)}}const Zn=D("cnt");class Rs{constructor(e,t){var i;this.className_=D((i=t.viewName)!==null&&i!==void 0?i:"fld"),this.element=e.createElement("div"),this.element.classList.add(this.className_(),Zn()),t.viewProps.bindClassModifiers(this.element),this.foldable_=t.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),X(this.foldable_,"completed",ee(this.element,this.className_(void 0,"cpl")));const c=e.createElement("button");c.classList.add(this.className_("b")),X(t.props,"title",j=>{g(j)?this.element.classList.add(this.className_(void 0,"not")):this.element.classList.remove(this.className_(void 0,"not"))}),t.viewProps.bindDisabled(c),this.element.appendChild(c),this.buttonElement=c;const _=e.createElement("div");_.classList.add(this.className_("t")),se(t.props.value("title"),_),this.buttonElement.appendChild(_),this.titleElement=_;const y=e.createElement("div");y.classList.add(this.className_("m")),this.buttonElement.appendChild(y);const S=t.containerElement;S.classList.add(this.className_("c")),this.element.appendChild(S),this.containerElement=S}}class Pn extends yn{constructor(e,t){var i;const c=je.create((i=t.expanded)!==null&&i!==void 0?i:!0),_=new Ft(e,{blade:t.blade,root:t.root,viewProps:t.viewProps});super(Object.assign(Object.assign({},t),{rackController:_,view:new Rs(e,{containerElement:_.view.element,foldable:c,props:t.props,viewName:t.root?"rot":void 0,viewProps:t.viewProps})})),this.onTitleClick_=this.onTitleClick_.bind(this),this.props=t.props,this.foldable=c,U(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 Fs={id:"folder",type:"blade",accept(n){const e=$,t=oe(n,{title:e.required.string,view:e.required.constant("folder"),expanded:e.optional.boolean});return t?{params:t}:null},controller(n){return new Pn(n.document,{blade:n.blade,expanded:n.params.expanded,props:B.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof Pn?new xn(n.controller,n.pool):null}};class ft extends ke{constructor(e,t){const i=t.valueController.viewProps;super(Object.assign(Object.assign({},t),{value:t.valueController.value,view:new Ot(e,{props:t.props,viewProps:i}),viewProps:i})),this.props=t.props,this.valueController=t.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class En extends d{}const Qn=D("spr");class js{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Qn()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("hr");i.classList.add(Qn("r")),this.element.appendChild(i)}}class Jn extends Pe{constructor(e,t){super(Object.assign(Object.assign({},t),{view:new js(e,{viewProps:t.viewProps})}))}}const es={id:"separator",type:"blade",accept(n){const t=oe(n,{view:$.required.constant("separator")});return t?{params:t}:null},controller(n){return new Jn(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof Jn?new En(n.controller):null}},Bs=D("");function jt(n,e){return ee(n,Bs(void 0,e))}class We extends B{constructor(e){super(e)}static create(e){var t,i;const c=e!=null?e:{},_={disabled:(t=c.disabled)!==null&&t!==void 0?t:!1,disposed:!1,hidden:(i=c.hidden)!==null&&i!==void 0?i:!1},y=B.createCore(_);return new We(y)}bindClassModifiers(e){X(this,"disabled",jt(e,"disabled")),X(this,"hidden",jt(e,"hidden"))}bindDisabled(e){X(this,"disabled",t=>{e.disabled=t})}bindTabIndex(e){X(this,"disabled",t=>{e.tabIndex=t?-1:0})}handleDispose(e){this.value("disposed").emitter.on("change",t=>{t&&e()})}}const pe=D("tbi");class Us{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(pe()),t.viewProps.bindClassModifiers(this.element),X(t.props,"selected",_=>{_?this.element.classList.add(pe(void 0,"sel")):this.element.classList.remove(pe(void 0,"sel"))});const i=e.createElement("button");i.classList.add(pe("b")),t.viewProps.bindDisabled(i),this.element.appendChild(i),this.buttonElement=i;const c=e.createElement("div");c.classList.add(pe("t")),se(t.props.value("title"),c),this.buttonElement.appendChild(c),this.titleElement=c}}class tn{constructor(e,t){this.emitter=new O,this.onClick_=this.onClick_.bind(this),this.props=t.props,this.viewProps=t.viewProps,this.view=new Us(e,{props:t.props,viewProps:t.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ts{constructor(e,t){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new tn(e,{props:t.itemProps,viewProps:We.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new Ft(e,{blade:Fe(),viewProps:We.create()}),this.props=t.props,X(this.props,"selected",i=>{this.itemController.props.set("selected",i),this.contentController.viewProps.set("hidden",!i)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class kn{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,i){return this.rackApi_.addInput(e,t,i)}addMonitor(e,t,i){return this.rackApi_.addMonitor(e,t,i)}addBlade(e){return this.rackApi_.addBlade(e)}}class ns extends H{constructor(e,t){super(e,new Rt(e.rackController,t)),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new O,this.pageApiMap_=new Map,this.rackApi_.on("change",i=>{this.emitter_.emit("change",{event:i})}),this.rackApi_.on("update",i=>{this.emitter_.emit("update",{event:i})}),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(i=>{this.setUpPageApi_(i)})}get pages(){return this.controller_.pageSet.items.map(e=>{const t=this.pageApiMap_.get(e);if(!t)throw A.shouldNeverHappen();return t})}addPage(e){const t=this.controller_.view.element.ownerDocument,i=new ts(t,{itemProps:B.fromObject({selected:!1,title:e.title}),props:B.fromObject({selected:!1})});this.controller_.add(i,e.index);const c=this.pageApiMap_.get(i);if(!c)throw A.shouldNeverHappen();return c}removePage(e){this.controller_.remove(e)}on(e,t){const i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}setUpPageApi_(e){const t=this.rackApi_.apiSet_.find(c=>c.controller_===e.contentController);if(!t)throw A.shouldNeverHappen();const i=new kn(e,t);this.pageApiMap_.set(e,i)}onPageAdd_(e){this.setUpPageApi_(e.item)}onPageRemove_(e){if(!this.pageApiMap_.get(e.item))throw A.shouldNeverHappen();this.pageApiMap_.delete(e.item)}onSelect_(e){this.emitter_.emit("select",{event:new x(this,e.rawValue)})}}const ss=-1;class zs{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=W(!0),this.selectedIndex=W(ss),this.items_=[]}add(e,t){const i=t!=null?t:this.items_.length;this.items_.splice(i,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=ss,this.empty.rawValue=!0;return}const e=this.items_.findIndex(t=>t.rawValue);e<0?(this.items_.forEach((t,i)=>{t.rawValue=i===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((t,i)=>{t.rawValue=i===e}),this.selectedIndex.rawValue=e),this.empty.rawValue=!1}onItemSelectedChange_(e){if(e.rawValue){const t=this.items_.findIndex(i=>i===e.sender);this.items_.forEach((i,c)=>{i.rawValue=c===t}),this.selectedIndex.rawValue=t}else this.keepSelection_()}}const Bt=D("tab");class bt{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Bt(),Zn()),t.viewProps.bindClassModifiers(this.element),ne(t.empty,ee(this.element,Bt(void 0,"nop")));const i=e.createElement("div");i.classList.add(Bt("i")),this.element.appendChild(i),this.itemsElement=i;const c=t.contentsElement;c.classList.add(Bt("c")),this.element.appendChild(c),this.contentsElement=c}}class Ut extends yn{constructor(e,t){const i=new Ft(e,{blade:t.blade,viewProps:t.viewProps}),c=new zs;super({blade:t.blade,rackController:i,view:new bt(e,{contentsElement:i.view.element,empty:c.empty,viewProps:t.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new we(()=>null),this.pageSet_.emitter.on("add",this.onPageAdd_),this.pageSet_.emitter.on("remove",this.onPageRemove_),this.tab=c}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;nt(this.view.itemsElement,t.itemController.view.element,e.index),this.rackController.rack.add(t.contentController,e.index),this.tab.add(t.props.value("selected"))}onPageRemove_(e){const t=e.item;He(t.itemController.view.element),this.rackController.rack.remove(t.contentController),this.tab.remove(t.props.value("selected"))}}const Mn={id:"tab",type:"blade",accept(n){const e=$,t=oe(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 Ut(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(t=>{const i=new ts(n.document,{itemProps:B.fromObject({selected:!1,title:t.title}),props:B.fromObject({selected:!1})});e.add(i)}),e},api(n){return n.controller instanceof Ut?new ns(n.controller,n.pool):null}};function Ks(n,e){const t=n.accept(e.params);if(!t)return null;const i=$.optional.boolean(e.params.disabled).value,c=$.optional.boolean(e.params.hidden).value;return n.controller({blade:Fe(),document:e.document,params:Object.assign(Object.assign({},t.params),{disabled:i,hidden:c}),viewProps:We.create({disabled:i,hidden:c})})}class is{constructor(){this.disabled=!1,this.emitter=new O}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class Ln{constructor(e,t){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=e,this.emitter=new O,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 Ze{constructor(e){this.constraints=e}constrain(e){return this.constraints.reduce((t,i)=>i.constrain(t),e)}}function J(n,e){if(n instanceof e)return n;if(n instanceof Ze){const t=n.constraints.reduce((i,c)=>i||(c instanceof e?c:null),null);if(t)return t}return null}class _t{constructor(e){this.options=e}constrain(e){const t=this.options;return t.length===0||t.filter(c=>c.value===e).length>0?e:t[0].value}}class Ve{constructor(e){this.maxValue=e.max,this.minValue=e.min}constrain(e){let t=e;return g(this.minValue)||(t=Math.max(t,this.minValue)),g(this.maxValue)||(t=Math.min(t,this.maxValue)),t}}class me{constructor(e,t=0){this.step=e,this.origin=t}constrain(e){const t=this.origin%this.step,i=Math.round((e-t)/this.step);return t+i*this.step}}const Sn=D("lst");class Gs{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.props_=t.props,this.element=e.createElement("div"),this.element.classList.add(Sn()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("select");i.classList.add(Sn("s")),X(this.props_,"options",_=>{Zt(i),_.forEach((y,S)=>{const j=e.createElement("option");j.dataset.index=String(S),j.textContent=y.text,j.value=String(y.value),i.appendChild(j)})}),t.viewProps.bindDisabled(i),this.element.appendChild(i),this.selectElement=i;const c=e.createElement("div");c.classList.add(Sn("m")),c.appendChild(qe(e,"dropdown")),this.element.appendChild(c),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 it{constructor(e,t){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=t.props,this.value=t.value,this.viewProps=t.viewProps,this.view=new Gs(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(e){const i=e.currentTarget.selectedOptions.item(0);if(!i)return;const c=Number(i.dataset.index);this.value.rawValue=this.props.get("options")[c].value}}const rs=D("pop");class $s{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(rs()),t.viewProps.bindClassModifiers(this.element),ne(t.shows,ee(this.element,rs(void 0,"v")))}}class An{constructor(e,t){this.shows=W(!1),this.viewProps=t.viewProps,this.view=new $s(e,{shows:this.shows,viewProps:this.viewProps})}}const os=D("txt");class nn{constructor(e,t){this.onChange_=this.onChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(os()),t.viewProps.bindClassModifiers(this.element),this.props_=t.props,this.props_.emitter.on("change",this.onChange_);const i=e.createElement("input");i.classList.add(os("i")),i.type="text",t.viewProps.bindDisabled(i),this.element.appendChild(i),this.inputElement=i,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 zt{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 nn(e,{props:t.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(e){const i=e.currentTarget.value,c=this.parser_(i);g(c)||(this.value.rawValue=c),this.view.refresh()}}function qs(n){return String(n)}function as(n){return n==="false"?!1:!!n}function ls(n){return qs(n)}class Hs{constructor(e){this.text=e}evaluate(){return Number(this.text)}toString(){return this.text}}const Ys={"**":(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 Xs{constructor(e,t,i){this.left=t,this.operator=e,this.right=i}evaluate(){const e=Ys[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 Ws={"+":n=>n,"-":n=>-n,"~":n=>~n};class Zs{constructor(e,t){this.operator=e,this.expression=t}evaluate(){const e=Ws[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 Tn(n){return(e,t)=>{for(let i=0;i<n.length;i++){const c=n[i](e,t);if(c!=="")return c}return""}}function Kt(n,e){var t;const i=n.substr(e).match(/^\s+/);return(t=i&&i[0])!==null&&t!==void 0?t:""}function Qs(n,e){const t=n.substr(e,1);return t.match(/^[1-9]$/)?t:""}function Gt(n,e){var t;const i=n.substr(e).match(/^[0-9]+/);return(t=i&&i[0])!==null&&t!==void 0?t:""}function Js(n,e){const t=Gt(n,e);if(t!=="")return t;const i=n.substr(e,1);if(e+=1,i!=="-"&&i!=="+")return"";const c=Gt(n,e);return c===""?"":i+c}function sn(n,e){const t=n.substr(e,1);if(e+=1,t.toLowerCase()!=="e")return"";const i=Js(n,e);return i===""?"":t+i}function cs(n,e){const t=n.substr(e,1);if(t==="0")return t;const i=Qs(n,e);return e+=i.length,i===""?"":i+Gt(n,e)}function ei(n,e){const t=cs(n,e);if(e+=t.length,t==="")return"";const i=n.substr(e,1);if(e+=i.length,i!==".")return"";const c=Gt(n,e);return e+=c.length,t+i+c+sn(n,e)}function Vn(n,e){const t=n.substr(e,1);if(e+=t.length,t!==".")return"";const i=Gt(n,e);return e+=i.length,i===""?"":t+i+sn(n,e)}function ti(n,e){const t=cs(n,e);return e+=t.length,t===""?"":t+sn(n,e)}const ni=Tn([ei,Vn,ti]);function si(n,e){var t;const i=n.substr(e).match(/^[01]+/);return(t=i&&i[0])!==null&&t!==void 0?t:""}function Qe(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0b")return"";const i=si(n,e);return i===""?"":t+i}function ii(n,e){var t;const i=n.substr(e).match(/^[0-7]+/);return(t=i&&i[0])!==null&&t!==void 0?t:""}function ri(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0o")return"";const i=ii(n,e);return i===""?"":t+i}function oi(n,e){var t;const i=n.substr(e).match(/^[0-9a-f]+/i);return(t=i&&i[0])!==null&&t!==void 0?t:""}function ai(n,e){const t=n.substr(e,2);if(e+=t.length,t.toLowerCase()!=="0x")return"";const i=oi(n,e);return i===""?"":t+i}const li=Tn([Qe,ri,ai]),ps=Tn([li,ni]);function ci(n,e){const t=ps(n,e);return e+=t.length,t===""?null:{evaluable:new Hs(t),cursor:e}}function pi(n,e){const t=n.substr(e,1);if(e+=t.length,t!=="(")return null;const i=Be(n,e);if(!i)return null;e=i.cursor,e+=Kt(n,e).length;const c=n.substr(e,1);return e+=c.length,c!==")"?null:{evaluable:i.evaluable,cursor:e}}function Se(n,e){var t;return(t=ci(n,e))!==null&&t!==void 0?t:pi(n,e)}function us(n,e){const t=Se(n,e);if(t)return t;const i=n.substr(e,1);if(e+=i.length,i!=="+"&&i!=="-"&&i!=="~")return null;const c=us(n,e);return c?(e=c.cursor,{cursor:e,evaluable:new Zs(i,c.evaluable)}):null}function ui(n,e,t){t+=Kt(e,t).length;const i=n.filter(c=>e.startsWith(c,t))[0];return i?(t+=i.length,t+=Kt(e,t).length,{cursor:t,operator:i}):null}function Nn(n,e){return(t,i)=>{const c=n(t,i);if(!c)return null;i=c.cursor;let _=c.evaluable;for(;;){const y=ui(e,t,i);if(!y)break;i=y.cursor;const S=n(t,i);if(!S)return null;i=S.cursor,_=new Xs(y.operator,_,S.evaluable)}return _?{cursor:i,evaluable:_}:null}}const di=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,e)=>Nn(n,e),us);function Be(n,e){return e+=Kt(n,e).length,di(n,e)}function ds(n){const e=Be(n,0);return!e||e.cursor+Kt(n,e.cursor).length!==n.length?null:e.evaluable}function Ue(n){var e;const t=ds(n);return(e=t==null?void 0:t.evaluate())!==null&&e!==void 0?e:null}function On(n){if(typeof n=="number")return n;if(typeof n=="string"){const e=Ue(n);if(!g(e))return e}return 0}function hi(n){return String(n)}function ie(n){return e=>e.toFixed(Math.max(Math.min(n,20),0))}const mi=ie(0);function gt(n){return mi(n)+"%"}function hs(n){return String(n)}function rn(n){return n}function ze(n,e){for(;n.length<e;)n.push(void 0)}function vi(n){const e=[];return ze(e,n),W(e)}function fi(n){const e=n.indexOf(void 0);return e<0?n:n.slice(0,e)}function ms(n,e){const t=[...fi(n),e];return t.length>n.length?t.splice(0,t.length-n.length):ze(t,n.length),t}function wt({primary:n,secondary:e,forward:t,backward:i}){let c=!1;function _(y){c||(c=!0,y(),c=!1)}n.emitter.on("change",y=>{_(()=>{e.setRawValue(t(n,e),y.options)})}),e.emitter.on("change",y=>{_(()=>{n.setRawValue(i(n,e),y.options)}),_(()=>{e.setRawValue(t(n,e),y.options)})}),_(()=>{e.setRawValue(t(n,e),{forceEmit:!1,last:!0})})}function ve(n,e){const t=n*(e.altKey?.1:1)*(e.shiftKey?10:1);return e.upKey?+t:e.downKey?-t:0}function De(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function Ke(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function In(n){return n==="ArrowUp"||n==="ArrowDown"}function vs(n){return In(n)||n==="ArrowLeft"||n==="ArrowRight"}function Dn(n,e){var t,i;const c=e.ownerDocument.defaultView,_=e.getBoundingClientRect();return{x:n.pageX-(((t=c&&c.scrollX)!==null&&t!==void 0?t:0)+_.left),y:n.pageY-(((i=c&&c.scrollY)!==null&&i!==void 0?i:0)+_.top)}}class rt{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 O,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 i=this.elem_.ownerDocument;i.addEventListener("mousemove",this.onDocumentMouseMove_),i.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(Dn(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onDocumentMouseMove_(e){this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(Dn(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_(Dn(e,this.elem_)),sender:this,shiftKey:e.shiftKey})}onTouchStart_(e){e.preventDefault();const t=e.targetTouches.item(0),i=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-i.left,y:t.clientY-i.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchMove_(e){const t=e.targetTouches.item(0),i=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:e.altKey,data:this.computePosition_(t?{x:t.clientX-i.left,y:t.clientY-i.top}:void 0),sender:this,shiftKey:e.shiftKey}),this.lastTouch_=t}onTouchEnd_(e){var t;const i=(t=e.targetTouches.item(0))!==null&&t!==void 0?t:this.lastTouch_,c=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:e.altKey,data:this.computePosition_(i?{x:i.clientX-c.left,y:i.clientY-c.top}:void 0),sender:this,shiftKey:e.shiftKey})}}function te(n,e,t,i,c){const _=(n-e)/(t-e);return i+_*(c-i)}function fs(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function le(n,e,t){return Math.min(Math.max(n,e),t)}function bs(n,e){return(n%e+e)%e}const ye=D("txt");class bi{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(ye(),ye(void 0,"num")),t.arrayPosition&&this.element.classList.add(ye(void 0,t.arrayPosition)),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("input");i.classList.add(ye("i")),i.type="text",t.viewProps.bindDisabled(i),this.element.appendChild(i),this.inputElement=i,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=t.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(ye()),this.inputElement.classList.add(ye("i"));const c=e.createElement("div");c.classList.add(ye("k")),this.element.appendChild(c),this.knobElement=c;const _=e.createElementNS(Ee,"svg");_.classList.add(ye("g")),this.knobElement.appendChild(_);const y=e.createElementNS(Ee,"path");y.classList.add(ye("gb")),_.appendChild(y),this.guideBodyElem_=y;const S=e.createElementNS(Ee,"path");S.classList.add(ye("gh")),_.appendChild(S),this.guideHeadElem_=S;const j=e.createElement("div");j.classList.add(D("tt")()),this.knobElement.appendChild(j),this.tooltipElem_=j,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.refresh()}onDraggingChange_(e){if(e.rawValue===null){this.element.classList.remove(ye(void 0,"drg"));return}this.element.classList.add(ye(void 0,"drg"));const t=e.rawValue/this.props_.get("draggingScale"),i=t+(t>0?-1:t<0?1:0),c=le(-i,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${i+c},0 L${i},4 L${i+c},8`,`M ${t},-1 L${t},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${t},4`);const _=this.props_.get("formatter");this.tooltipElem_.textContent=_(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 Ge{constructor(e,t){var i;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_=(i=t.sliderProps)!==null&&i!==void 0?i:null,this.value=t.value,this.viewProps=t.viewProps,this.dragging_=W(null),this.view=new bi(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 c=new rt(this.view.knobElement);c.emitter.on("down",this.onPointerDown_),c.emitter.on("move",this.onPointerMove_),c.emitter.on("up",this.onPointerUp_)}constrainValue_(e){var t,i;const c=(t=this.sliderProps_)===null||t===void 0?void 0:t.get("minValue"),_=(i=this.sliderProps_)===null||i===void 0?void 0:i.get("maxValue");let y=e;return c!==void 0&&(y=Math.max(y,c)),_!==void 0&&(y=Math.min(y,_)),y}onInputChange_(e){const i=e.currentTarget.value,c=this.parser_(i);g(c)||(this.value.rawValue=this.constrainValue_(c)),this.view.refresh()}onInputKeyDown_(e){const t=ve(this.baseStep_,De(e));t!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+t),{forceEmit:!1,last:!1})}onInputKeyUp_(e){ve(this.baseStep_,De(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 Rn=D("sld");class _s{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(Rn()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("div");i.classList.add(Rn("t")),t.viewProps.bindTabIndex(i),this.element.appendChild(i),this.trackElement=i;const c=e.createElement("div");c.classList.add(Rn("k")),this.trackElement.appendChild(c),this.knobElement=c,t.value.emitter.on("change",this.onChange_),this.value=t.value,this.update_()}update_(){const e=le(te(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${e}%`}onChange_(){this.update_()}}class _i{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 _s(e,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new rt(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(te(le(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=ve(this.baseStep_,Ke(e));t!==0&&this.value.setRawValue(this.value.rawValue+t,{forceEmit:!1,last:!1})}onKeyUp_(e){ve(this.baseStep_,Ke(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Fn=D("sldtxt");class Ae{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(Fn());const i=e.createElement("div");i.classList.add(Fn("s")),this.sliderView_=t.sliderView,i.appendChild(this.sliderView_.element),this.element.appendChild(i);const c=e.createElement("div");c.classList.add(Fn("t")),this.textView_=t.textView,c.appendChild(this.textView_.element),this.element.appendChild(c)}}class on{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.sliderC_=new _i(e,{baseStep:t.baseStep,props:t.sliderProps,value:t.value,viewProps:this.viewProps}),this.textC_=new Ge(e,{baseStep:t.baseStep,parser:t.parser,props:t.textProps,sliderProps:t.sliderProps,value:t.value,viewProps:t.viewProps}),this.view=new Ae(e,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function xt(n,e){n.write(e)}function yt(n){const e=$;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 gs(n){if(n==="inline"||n==="popup")return n}function be(n){const e=$;return e.required.object({max:e.optional.number,min:e.optional.number,step:e.optional.number})(n).value}function ws(n){if(Array.isArray(n))return n;const e=[];return Object.keys(n).forEach(t=>{e.push({text:t,value:n[t]})}),e}function jn(n){return g(n)?null:new _t(ws(n))}function Bn(n){const e=n?J(n,_t):null;return e?e.options:null}function gi(n){const e=n?J(n,me):null;return e?e.step:null}function an(n,e){const t=n&&J(n,me);return t?fs(t.step):Math.max(fs(e),2)}function Ct(n){const e=gi(n);return e!=null?e:1}function Pt(n,e){var t;const i=n&&J(n,me),c=Math.abs((t=i==null?void 0:i.step)!==null&&t!==void 0?t:e);return c===0?.1:Math.pow(10,Math.floor(Math.log10(c))-1)}const ln=D("ckb");class wi{constructor(e,t){this.onValueChange_=this.onValueChange_.bind(this),this.element=e.createElement("div"),this.element.classList.add(ln()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("label");i.classList.add(ln("l")),this.element.appendChild(i);const c=e.createElement("input");c.classList.add(ln("i")),c.type="checkbox",i.appendChild(c),this.inputElement=c,t.viewProps.bindDisabled(this.inputElement);const _=e.createElement("div");_.classList.add(ln("w")),i.appendChild(_);const y=qe(e,"check");_.appendChild(y),t.value.emitter.on("change",this.onValueChange_),this.value=t.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class xi{constructor(e,t){this.onInputChange_=this.onInputChange_.bind(this),this.value=t.value,this.viewProps=t.viewProps,this.view=new wi(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 $t(n){const e=[],t=jn(n.options);return t&&e.push(t),new Ze(e)}const yi={id:"input-bool",type:"input",accept:(n,e)=>{if(typeof n!="boolean")return null;const i=oe(e,{options:$.optional.custom(yt)});return i?{initialValue:n,params:i}:null},binding:{reader:n=>as,constraint:n=>$t(n.params),writer:n=>xt},controller:n=>{var e;const t=n.document,i=n.value,c=n.constraint;return c&&J(c,_t)?new it(t,{props:B.fromObject({options:(e=Bn(c))!==null&&e!==void 0?e:[]}),value:i,viewProps:n.viewProps}):new xi(t,{value:i,viewProps:n.viewProps})}},ot=D("col");class Un{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(ot()),t.foldable.bindExpandedClass(this.element,ot(void 0,"expanded")),X(t.foldable,"completed",ee(this.element,ot(void 0,"cpl")));const i=e.createElement("div");i.classList.add(ot("h")),this.element.appendChild(i);const c=e.createElement("div");c.classList.add(ot("s")),i.appendChild(c),this.swatchElement=c;const _=e.createElement("div");if(_.classList.add(ot("t")),i.appendChild(_),this.textElement=_,t.pickerLayout==="inline"){const y=e.createElement("div");y.classList.add(ot("p")),this.element.appendChild(y),this.pickerElement=y}else this.pickerElement=null}}function Ci(n,e,t){const i=le(n/255,0,1),c=le(e/255,0,1),_=le(t/255,0,1),y=Math.max(i,c,_),S=Math.min(i,c,_),j=y-S;let z=0,Z=0;const Q=(S+y)/2;return j!==0&&(Z=j/(1-Math.abs(y+S-1)),i===y?z=(c-_)/j:c===y?z=2+(_-i)/j:z=4+(i-c)/j,z=z/6+(z<0?1:0)),[z*360,Z*100,Q*100]}function zn(n,e,t){const i=(n%360+360)%360,c=le(e/100,0,1),_=le(t/100,0,1),y=(1-Math.abs(2*_-1))*c,S=y*(1-Math.abs(i/60%2-1)),j=_-y/2;let z,Z,Q;return i>=0&&i<60?[z,Z,Q]=[y,S,0]:i>=60&&i<120?[z,Z,Q]=[S,y,0]:i>=120&&i<180?[z,Z,Q]=[0,y,S]:i>=180&&i<240?[z,Z,Q]=[0,S,y]:i>=240&&i<300?[z,Z,Q]=[S,0,y]:[z,Z,Q]=[y,0,S],[(z+j)*255,(Z+j)*255,(Q+j)*255]}function Pi(n,e,t){const i=le(n/255,0,1),c=le(e/255,0,1),_=le(t/255,0,1),y=Math.max(i,c,_),S=Math.min(i,c,_),j=y-S;let z;j===0?z=0:y===i?z=60*(((c-_)/j%6+6)%6):y===c?z=60*((_-i)/j+2):z=60*((i-c)/j+4);const Z=y===0?0:j/y,Q=y;return[z,Z*100,Q*100]}function xs(n,e,t){const i=bs(n,360),c=le(e/100,0,1),_=le(t/100,0,1),y=_*c,S=y*(1-Math.abs(i/60%2-1)),j=_-y;let z,Z,Q;return i>=0&&i<60?[z,Z,Q]=[y,S,0]:i>=60&&i<120?[z,Z,Q]=[S,y,0]:i>=120&&i<180?[z,Z,Q]=[0,y,S]:i>=180&&i<240?[z,Z,Q]=[0,S,y]:i>=240&&i<300?[z,Z,Q]=[S,0,y]:[z,Z,Q]=[y,0,S],[(z+j)*255,(Z+j)*255,(Q+j)*255]}function Ei(n,e,t){const i=t+e*(100-Math.abs(2*t-100))/200;return[n,i!==0?e*(100-Math.abs(2*t-100))/i:0,t+e*(100-Math.abs(2*t-100))/(2*100)]}function ki(n,e,t){const i=100-Math.abs(t*(200-e)/100-100);return[n,i!==0?e*t/i:0,t*(200-e)/(2*100)]}function o(n){return[n[0],n[1],n[2]]}function s(n,e){return[n[0],n[1],n[2],e]}const r={hsl:{hsl:(n,e,t)=>[n,e,t],hsv:Ei,rgb:zn},hsv:{hsl:ki,hsv:(n,e,t)=>[n,e,t],rgb:xs},rgb:{hsl:Ci,hsv:Pi,rgb:(n,e,t)=>[n,e,t]}};function l(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 v(n,e,t){var i;const c=l(e,t);return[e==="rgb"?le(n[0],0,c[0]):bs(n[0],c[0]),le(n[1],0,c[1]),le(n[2],0,c[2]),le((i=n[3])!==null&&i!==void 0?i:1,0,1)]}function w(n,e,t,i){const c=l(e,t),_=l(e,i);return n.map((y,S)=>y/c[S]*_[S])}function k(n,e,t){const i=w(n,e.mode,e.type,"int"),c=r[e.mode][t.mode](...i);return w(c,t.mode,"int",t.type)}function V(n,e){return typeof n!="object"||g(n)?!1:e in n&&typeof n[e]=="number"}class R{constructor(e,t,i="int"){this.mode=t,this.type=i,this.comps_=v(e,t,i)}static black(e="int"){return new R([0,0,0],"rgb",e)}static fromObject(e,t="int"){const i="a"in e?[e.r,e.g,e.b,e.a]:[e.r,e.g,e.b];return new R(i,"rgb",t)}static toRgbaObject(e,t="int"){return e.toRgbaObject(t)}static isRgbColorObject(e){return V(e,"r")&&V(e,"g")&&V(e,"b")}static isRgbaColorObject(e){return this.isRgbColorObject(e)&&V(e,"a")}static isColorObject(e){return this.isRgbColorObject(e)}static equals(e,t){if(e.mode!==t.mode)return!1;const i=e.comps_,c=t.comps_;for(let _=0;_<i.length;_++)if(i[_]!==c[_])return!1;return!0}getComponents(e,t="int"){return s(k(o(this.comps_),{mode:this.mode,type:this.type},{mode:e!=null?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 ce=D("colp");class $e{constructor(e,t){this.alphaViews_=null,this.element=e.createElement("div"),this.element.classList.add(ce());const i=e.createElement("div");i.classList.add(ce("hsv"));const c=e.createElement("div");c.classList.add(ce("sv")),this.svPaletteView_=t.svPaletteView,c.appendChild(this.svPaletteView_.element),i.appendChild(c);const _=e.createElement("div");_.classList.add(ce("h")),this.hPaletteView_=t.hPaletteView,_.appendChild(this.hPaletteView_.element),i.appendChild(_),this.element.appendChild(i);const y=e.createElement("div");if(y.classList.add(ce("rgb")),this.textView_=t.textView,y.appendChild(this.textView_.element),this.element.appendChild(y),t.alphaViews){this.alphaViews_={palette:t.alphaViews.palette,text:t.alphaViews.text};const S=e.createElement("div");S.classList.add(ce("a"));const j=e.createElement("div");j.classList.add(ce("ap")),j.appendChild(this.alphaViews_.palette.element),S.appendChild(j);const z=e.createElement("div");z.classList.add(ce("at")),z.appendChild(this.alphaViews_.text.element),S.appendChild(z),this.element.appendChild(S)}}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 Kn(n){return n==="int"?"int":n==="float"?"float":void 0}function Gn(n){const e=$;return oe(n,{alpha:e.optional.boolean,color:e.optional.object({alpha:e.optional.boolean,type:e.optional.custom(Kn)}),expanded:e.optional.boolean,picker:e.optional.custom(gs)})}function at(n){return n?.1:1}function qt(n){var e;return(e=n.color)===null||e===void 0?void 0:e.type}function Mo(n,e){return n.alpha===e.alpha&&n.mode===e.mode&&n.notation===e.notation&&n.type===e.type}function Re(n,e){const t=n.match(/^(.+)%$/);return Math.min(t?parseFloat(t[1])*.01*e:parseFloat(n),e)}const Lo={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function tr(n){const e=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!e)return parseFloat(n);const t=parseFloat(e[1]),i=e[2];return Lo[i](t)}function nr(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=[Re(e[1],255),Re(e[2],255),Re(e[3],255)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function sr(n){return e=>{const t=nr(e);return t?new R(t,"rgb",n):null}}function ir(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=[Re(e[1],255),Re(e[2],255),Re(e[3],255),Re(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function rr(n){return e=>{const t=ir(e);return t?new R(t,"rgb",n):null}}function or(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=[tr(e[1]),Re(e[2],100),Re(e[3],100)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])?null:t}function ar(n){return e=>{const t=or(e);return t?new R(t,"hsl",n):null}}function lr(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=[tr(e[1]),Re(e[2],100),Re(e[3],100),Re(e[4],1)];return isNaN(t[0])||isNaN(t[1])||isNaN(t[2])||isNaN(t[3])?null:t}function cr(n){return e=>{const t=lr(e);return t?new R(t,"hsl",n):null}}function pr(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 So(n){const e=pr(n);return e?new R(e,"rgb","int"):null}function ur(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),te(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),te(parseInt(t[4],16),0,255,0,1)]:null}function Ao(n){const e=ur(n);return e?new R(e,"rgb","int"):null}function dr(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 hr(n){return e=>{const t=dr(e);return t?new R(t,"rgb",n):null}}function mr(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 vr(n){return e=>{const t=mr(e);return t?new R(t,"rgb",n):null}}const To=[{parser:pr,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:ur,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:nr,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:ir,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:or,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:lr,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:dr,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:mr,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Vo(n){return To.reduce((e,{parser:t,result:i})=>e||(t(n)?i:null),null)}function Mi(n,e="int"){const t=Vo(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 fr={int:[So,Ao,sr("int"),rr("int"),ar("int"),cr("int"),hr("int"),vr("int")],float:[sr("float"),rr("float"),ar("float"),cr("float"),hr("float"),vr("float")]};function No(n){const e=fr[n];return t=>{if(typeof t!="string")return R.black(n);const i=e.reduce((c,_)=>c||_(t),null);return i!=null?i:R.black(n)}}function Li(n){const e=fr[n];return t=>e.reduce((i,c)=>i||c(t),null)}function br(n){const e=le(Math.floor(n),0,255).toString(16);return e.length===1?`0${e}`:e}function _r(n,e="#"){const t=o(n.getComponents("rgb")).map(br).join("");return`${e}${t}`}function Si(n,e="#"){const t=n.getComponents("rgb"),i=[t[0],t[1],t[2],t[3]*255].map(br).join("");return`${e}${i}`}function gr(n,e){const t=ie(e==="float"?2:0);return`rgb(${o(n.getComponents("rgb",e)).map(c=>t(c)).join(", ")})`}function Oo(n){return e=>gr(e,n)}function ys(n,e){const t=ie(2),i=ie(e==="float"?2:0);return`rgba(${n.getComponents("rgb",e).map((_,y)=>(y===3?t:i)(_)).join(", ")})`}function Io(n){return e=>ys(e,n)}function Do(n){const e=[ie(0),gt,gt];return`hsl(${o(n.getComponents("hsl")).map((i,c)=>e[c](i)).join(", ")})`}function Ro(n){const e=[ie(0),gt,gt,ie(2)];return`hsla(${n.getComponents("hsl").map((i,c)=>e[c](i)).join(", ")})`}function wr(n,e){const t=ie(e==="float"?2:0),i=["r","g","b"];return`{${o(n.getComponents("rgb",e)).map((_,y)=>`${i[y]}: ${t(_)}`).join(", ")}}`}function Fo(n){return e=>wr(e,n)}function xr(n,e){const t=ie(2),i=ie(e==="float"?2:0),c=["r","g","b","a"];return`{${n.getComponents("rgb",e).map((y,S)=>{const j=S===3?t:i;return`${c[S]}: ${j(y)}`}).join(", ")}}`}function jo(n){return e=>xr(e,n)}const Bo=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:_r},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:Si},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:Do},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:Ro},...["int","float"].reduce((n,e)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:e},stringifier:Oo(e)},{format:{alpha:!0,mode:"rgb",notation:"func",type:e},stringifier:Io(e)},{format:{alpha:!1,mode:"rgb",notation:"object",type:e},stringifier:Fo(e)},{format:{alpha:!0,mode:"rgb",notation:"object",type:e},stringifier:jo(e)}],[])];function Ai(n){return Bo.reduce((e,t)=>e||(Mo(t.format,n)?t.stringifier:null),null)}const $n=D("apl");class Uo{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($n()),t.viewProps.bindTabIndex(this.element);const i=e.createElement("div");i.classList.add($n("b")),this.element.appendChild(i);const c=e.createElement("div");c.classList.add($n("c")),i.appendChild(c),this.colorElem_=c;const _=e.createElement("div");_.classList.add($n("m")),this.element.appendChild(_),this.markerElem_=_;const y=e.createElement("div");y.classList.add($n("p")),this.markerElem_.appendChild(y),this.previewElem_=y,this.update_()}update_(){const e=this.value.rawValue,t=e.getComponents("rgb"),i=new R([t[0],t[1],t[2],0],"rgb"),c=new R([t[0],t[1],t[2],255],"rgb"),_=["to right",ys(i),ys(c)];this.colorElem_.style.background=`linear-gradient(${_.join(",")})`,this.previewElem_.style.backgroundColor=ys(e);const y=te(t[3],0,1,0,100);this.markerElem_.style.left=`${y}%`}onValueChange_(){this.update_()}}class zo{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 Uo(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new rt(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 i=e.point.x/e.bounds.width,c=this.value.rawValue,[_,y,S]=c.getComponents("hsv");this.value.setRawValue(new R([_,y,S,i],"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=ve(at(!0),Ke(e));if(t===0)return;const i=this.value.rawValue,[c,_,y,S]=i.getComponents("hsv");this.value.setRawValue(new R([c,_,y,S+t],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){ve(at(!0),Ke(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const cn=D("coltxt");function Ko(n){const e=n.createElement("select"),t=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return e.appendChild(t.reduce((i,c)=>{const _=n.createElement("option");return _.textContent=c.text,_.value=c.value,i.appendChild(_),i},n.createDocumentFragment())),e}class Go{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(cn());const i=e.createElement("div");i.classList.add(cn("m")),this.modeElem_=Ko(e),this.modeElem_.classList.add(cn("ms")),i.appendChild(this.modeSelectElement);const c=e.createElement("div");c.classList.add(cn("mm")),c.appendChild(qe(e,"dropdown")),i.appendChild(c),this.element.appendChild(i);const _=e.createElement("div");_.classList.add(cn("w")),this.element.appendChild(_),this.textsElem_=_,this.textViews_=t.textViews,this.applyTextViews_(),ne(t.colorMode,y=>{this.modeElem_.value=y})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(e){this.textViews_=e,this.applyTextViews_()}applyTextViews_(){Zt(this.textsElem_);const e=this.element.ownerDocument;this.textViews_.forEach(t=>{const i=e.createElement("div");i.classList.add(cn("c")),i.appendChild(t.element),this.textsElem_.appendChild(i)})}}function $o(n){return ie(n==="float"?2:0)}function qo(n,e,t){const i=l(n,e)[t];return new Ve({min:0,max:i})}function Ti(n,e,t){return new Ge(n,{arrayPosition:t===0?"fst":t===3-1?"lst":"mid",baseStep:at(!1),parser:e.parser,props:B.fromObject({draggingScale:e.colorType==="float"?.01:1,formatter:$o(e.colorType)}),value:W(0,{constraint:qo(e.colorMode,e.colorType,t)}),viewProps:e.viewProps})}class Ho{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=W(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(e),this.view=new Go(e,{colorMode:this.colorMode,textViews:[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view]}),this.view.modeSelectElement.addEventListener("change",this.onModeSelectChange_)}createComponentControllers_(e){const t={colorMode:this.colorMode.rawValue,colorType:this.colorType_,parser:this.parser_,viewProps:this.viewProps},i=[Ti(e,t,0),Ti(e,t,1),Ti(e,t,2)];return i.forEach((c,_)=>{wt({primary:this.value,secondary:c.value,forward:y=>y.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[_],backward:(y,S)=>{const j=this.colorMode.rawValue,z=y.rawValue.getComponents(j,this.colorType_);return z[_]=S.rawValue,new R(s(o(z),z[3]),j,this.colorType_)}})}),i}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 Vi=D("hpl");class Yo{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(Vi()),t.viewProps.bindTabIndex(this.element);const i=e.createElement("div");i.classList.add(Vi("c")),this.element.appendChild(i);const c=e.createElement("div");c.classList.add(Vi("m")),this.element.appendChild(c),this.markerElem_=c,this.update_()}update_(){const e=this.value.rawValue,[t]=e.getComponents("hsv");this.markerElem_.style.backgroundColor=gr(new R([t,100,100],"hsv"));const i=te(t,0,360,0,100);this.markerElem_.style.left=`${i}%`}onValueChange_(){this.update_()}}class Xo{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 Yo(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new rt(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 i=te(le(e.point.x,0,e.bounds.width),0,e.bounds.width,0,359),c=this.value.rawValue,[,_,y,S]=c.getComponents("hsv");this.value.setRawValue(new R([i,_,y,S],"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=ve(at(!1),Ke(e));if(t===0)return;const i=this.value.rawValue,[c,_,y,S]=i.getComponents("hsv");this.value.setRawValue(new R([c+t,_,y,S],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){ve(at(!1),Ke(e))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Ni=D("svp"),yr=64;class Wo{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(Ni()),t.viewProps.bindTabIndex(this.element);const i=e.createElement("canvas");i.height=yr,i.width=yr,i.classList.add(Ni("c")),this.element.appendChild(i),this.canvasElement=i;const c=e.createElement("div");c.classList.add(Ni("m")),this.element.appendChild(c),this.markerElem_=c,this.update_()}update_(){const e=gn(this.canvasElement);if(!e)return;const i=this.value.rawValue.getComponents("hsv"),c=this.canvasElement.width,_=this.canvasElement.height,y=e.getImageData(0,0,c,_),S=y.data;for(let Z=0;Z<_;Z++)for(let Q=0;Q<c;Q++){const ct=te(Q,0,c,0,100),Hn=te(Z,0,_,100,0),Yn=xs(i[0],ct,Hn),hn=(Z*c+Q)*4;S[hn]=Yn[0],S[hn+1]=Yn[1],S[hn+2]=Yn[2],S[hn+3]=255}e.putImageData(y,0,0);const j=te(i[1],0,100,0,100);this.markerElem_.style.left=`${j}%`;const z=te(i[2],0,100,100,0);this.markerElem_.style.top=`${z}%`}onValueChange_(){this.update_()}}class Zo{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 Wo(e,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new rt(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 i=te(e.point.x,0,e.bounds.width,0,100),c=te(e.point.y,0,e.bounds.height,100,0),[_,,,y]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new R([_,i,c,y],"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){vs(e.key)&&e.preventDefault();const[t,i,c,_]=this.value.rawValue.getComponents("hsv"),y=at(!1),S=ve(y,Ke(e)),j=ve(y,De(e));S===0&&j===0||this.value.setRawValue(new R([t,i+S,c+j,_],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(e){const t=at(!1),i=ve(t,Ke(e)),c=ve(t,De(e));i===0&&c===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Qo{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.hPaletteC_=new Xo(e,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new Zo(e,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=t.supportsAlpha?{palette:new zo(e,{value:this.value,viewProps:this.viewProps}),text:new Ge(e,{parser:Ue,baseStep:.1,props:B.fromObject({draggingScale:.01,formatter:ie(2)}),value:W(0,{constraint:new Ve({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&wt({primary:this.value,secondary:this.alphaIcs_.text.value,forward:i=>i.rawValue.getComponents()[3],backward:(i,c)=>{const _=i.rawValue.getComponents();return _[3]=c.rawValue,new R(_,i.rawValue.mode)}}),this.textC_=new Ho(e,{colorType:t.colorType,parser:Ue,value:this.value,viewProps:this.viewProps}),this.view=new $e(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})}get textController(){return this.textC_}}const Oi=D("colsw");class Jo{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(Oi()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("div");i.classList.add(Oi("sw")),this.element.appendChild(i),this.swatchElem_=i;const c=e.createElement("button");c.classList.add(Oi("b")),t.viewProps.bindDisabled(c),this.element.appendChild(c),this.buttonElement=c,this.update_()}update_(){const e=this.value.rawValue;this.swatchElem_.style.backgroundColor=Si(e)}onValueChange_(){this.update_()}}class ea{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new Jo(e,{value:this.value,viewProps:this.viewProps})}}class Ii{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_=je.create(t.expanded),this.swatchC_=new ea(e,{value:this.value,viewProps:this.viewProps});const i=this.swatchC_.view.buttonElement;i.addEventListener("blur",this.onButtonBlur_),i.addEventListener("click",this.onButtonClick_),this.textC_=new zt(e,{parser:t.parser,props:B.fromObject({formatter:t.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new Un(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 An(e,{viewProps:this.viewProps}):null;const c=new Qo(e,{colorType:t.colorType,supportsAlpha:t.supportsAlpha,value:this.value,viewProps:this.viewProps});c.view.allFocusableElements.forEach(_=>{_.addEventListener("blur",this.onPopupChildBlur_),_.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=c,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(c.view.element),wt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:_=>_.rawValue,backward:(_,y)=>y.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),U(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,i=e.relatedTarget;(!i||!t.contains(i))&&(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,i=Oe(e);i&&t.contains(i)||i&&i===this.swatchC_.view.buttonElement&&!dt(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 ta(n,e){return R.isColorObject(n)?R.fromObject(n,e):R.black(e)}function na(n){return o(n.getComponents("rgb")).reduce((e,t)=>e<<8|Math.floor(t)&255,0)}function sa(n){return n.getComponents("rgb").reduce((e,t,i)=>{const c=Math.floor(i===3?t*255:t)&255;return e<<8|c},0)>>>0}function ia(n){return new R([n>>16&255,n>>8&255,n&255],"rgb")}function ra(n){return new R([n>>24&255,n>>16&255,n>>8&255,te(n&255,0,255,0,1)],"rgb")}function oa(n){return typeof n!="number"?R.black():ia(n)}function aa(n){return typeof n!="number"?R.black():ra(n)}function la(n){const e=Ai(n);return e?(t,i)=>{xt(t,e(i))}:null}function ca(n){const e=n?sa:na;return(t,i)=>{xt(t,e(i))}}function pa(n,e,t){const i=e.toRgbaObject(t);n.writeProperty("r",i.r),n.writeProperty("g",i.g),n.writeProperty("b",i.b),n.writeProperty("a",i.a)}function ua(n,e,t){const i=e.toRgbaObject(t);n.writeProperty("r",i.r),n.writeProperty("g",i.g),n.writeProperty("b",i.b)}function da(n,e){return(t,i)=>{n?pa(t,i,e):ua(t,i,e)}}function Di(n){var e;return!!((n==null?void 0:n.alpha)||((e=n==null?void 0:n.color)===null||e===void 0?void 0:e.alpha))}function ha(n){return n?e=>Si(e,"0x"):e=>_r(e,"0x")}function ma(n){return"color"in n||"view"in n&&n.view==="color"}const va={id:"input-color-number",type:"input",accept:(n,e)=>{if(typeof n!="number"||!ma(e))return null;const t=Gn(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>Di(n.params)?aa:oa,equals:R.equals,writer:n=>ca(Di(n.params))},controller:n=>{const e=Di(n.params),t="expanded"in n.params?n.params.expanded:void 0,i="picker"in n.params?n.params.picker:void 0;return new Ii(n.document,{colorType:"int",expanded:t!=null?t:!1,formatter:ha(e),parser:Li("int"),pickerLayout:i!=null?i:"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}};function fa(n){return R.isRgbaColorObject(n)}function ba(n){return e=>ta(e,n)}function _a(n,e){return t=>n?xr(t,e):wr(t,e)}const ga={id:"input-color-object",type:"input",accept:(n,e)=>{if(!R.isColorObject(n))return null;const t=Gn(e);return t?{initialValue:n,params:t}:null},binding:{reader:n=>ba(qt(n.params)),equals:R.equals,writer:n=>da(fa(n.initialValue),qt(n.params))},controller:n=>{var e;const t=R.isRgbaColorObject(n.initialValue),i="expanded"in n.params?n.params.expanded:void 0,c="picker"in n.params?n.params.picker:void 0,_=(e=qt(n.params))!==null&&e!==void 0?e:"int";return new Ii(n.document,{colorType:_,expanded:i!=null?i:!1,formatter:_a(t,_),parser:Li(_),pickerLayout:c!=null?c:"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}},wa={id:"input-color-string",type:"input",accept:(n,e)=>{if(typeof n!="string"||"view"in e&&e.view==="text")return null;const t=Mi(n,qt(e));if(!t||!Ai(t))return null;const c=Gn(e);return c?{initialValue:n,params:c}:null},binding:{reader:n=>{var e;return No((e=qt(n.params))!==null&&e!==void 0?e:"int")},equals:R.equals,writer:n=>{const e=Mi(n.initialValue,qt(n.params));if(!e)throw A.shouldNeverHappen();const t=la(e);if(!t)throw A.notBindable();return t}},controller:n=>{const e=Mi(n.initialValue,qt(n.params));if(!e)throw A.shouldNeverHappen();const t=Ai(e);if(!t)throw A.shouldNeverHappen();const i="expanded"in n.params?n.params.expanded:void 0,c="picker"in n.params?n.params.picker:void 0;return new Ii(n.document,{colorType:e.type,expanded:i!=null?i:!1,formatter:t,parser:Li(e.type),pickerLayout:c!=null?c:"popup",supportsAlpha:e.alpha,value:n.value,viewProps:n.viewProps})}};class Et{constructor(e){this.components=e.components,this.asm_=e.assembly}constrain(e){const t=this.asm_.toComponents(e).map((i,c)=>{var _,y;return(y=(_=this.components[c])===null||_===void 0?void 0:_.constrain(i))!==null&&y!==void 0?y:i});return this.asm_.fromComponents(t)}}const Cr=D("pndtxt");class xa{constructor(e,t){this.textViews=t.textViews,this.element=e.createElement("div"),this.element.classList.add(Cr()),this.textViews.forEach(i=>{const c=e.createElement("div");c.classList.add(Cr("a")),c.appendChild(i.element),this.element.appendChild(c)})}}function ya(n,e,t){return new Ge(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:W(0,{constraint:e.axes[t].constraint}),viewProps:e.viewProps})}class Ri{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.acs_=t.axes.map((i,c)=>ya(e,t,c)),this.acs_.forEach((i,c)=>{wt({primary:this.value,secondary:i.value,forward:_=>t.assembly.toComponents(_.rawValue)[c],backward:(_,y)=>{const S=t.assembly.toComponents(_.rawValue);return S[c]=y.rawValue,t.assembly.fromComponents(S)}})}),this.view=new xa(e,{textViews:this.acs_.map(i=>i.view)})}}function Pr(n,e){return"step"in n&&!g(n.step)?new me(n.step,e):null}function Er(n){return"max"in n&&!g(n.max)||"min"in n&&!g(n.min)?new Ve({max:n.max,min:n.min}):null}function Ca(n,e){const t=[],i=Pr(n,e);i&&t.push(i);const c=Er(n);c&&t.push(c);const _=jn(n.options);return _&&t.push(_),new Ze(t)}function Pa(n){const e=n?J(n,Ve):null;return e?[e.minValue,e.maxValue]:[void 0,void 0]}function Ea(n){const[e,t]=Pa(n);return[e!=null?e:0,t!=null?t:100]}const ka={id:"input-number",type:"input",accept:(n,e)=>{if(typeof n!="number")return null;const t=$,i=oe(e,{format:t.optional.function,max:t.optional.number,min:t.optional.number,options:t.optional.custom(yt),step:t.optional.number});return i?{initialValue:n,params:i}:null},binding:{reader:n=>On,constraint:n=>Ca(n.params,n.initialValue),writer:n=>xt},controller:n=>{var e,t;const i=n.value,c=n.constraint;if(c&&J(c,_t))return new it(n.document,{props:B.fromObject({options:(e=Bn(c))!==null&&e!==void 0?e:[]}),value:i,viewProps:n.viewProps});const _=(t="format"in n.params?n.params.format:void 0)!==null&&t!==void 0?t:ie(an(c,i.rawValue));if(c&&J(c,Ve)){const[y,S]=Ea(c);return new on(n.document,{baseStep:Ct(c),parser:Ue,sliderProps:B.fromObject({maxValue:S,minValue:y}),textProps:B.fromObject({draggingScale:Pt(c,i.rawValue),formatter:_}),value:i,viewProps:n.viewProps})}return new Ge(n.document,{baseStep:Ct(c),parser:Ue,props:B.fromObject({draggingScale:Pt(c,i.rawValue),formatter:_}),value:i,viewProps:n.viewProps})}};class kt{constructor(e=0,t=0){this.x=e,this.y=t}getComponents(){return[this.x,this.y]}static isObject(e){if(g(e))return!1;const t=e.x,i=e.y;return!(typeof t!="number"||typeof i!="number")}static equals(e,t){return e.x===t.x&&e.y===t.y}toObject(){return{x:this.x,y:this.y}}}const kr={toComponents:n=>n.getComponents(),fromComponents:n=>new kt(...n)},pn=D("p2d");class Ma{constructor(e,t){this.element=e.createElement("div"),this.element.classList.add(pn()),t.viewProps.bindClassModifiers(this.element),ne(t.expanded,ee(this.element,pn(void 0,"expanded")));const i=e.createElement("div");i.classList.add(pn("h")),this.element.appendChild(i);const c=e.createElement("button");c.classList.add(pn("b")),c.appendChild(qe(e,"p2dpad")),t.viewProps.bindDisabled(c),i.appendChild(c),this.buttonElement=c;const _=e.createElement("div");if(_.classList.add(pn("t")),i.appendChild(_),this.textElement=_,t.pickerLayout==="inline"){const y=e.createElement("div");y.classList.add(pn("p")),this.element.appendChild(y),this.pickerElement=y}else this.pickerElement=null}}const Mt=D("p2dp");class La{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(Mt()),t.layout==="popup"&&this.element.classList.add(Mt(void 0,"p"));const i=e.createElement("div");i.classList.add(Mt("p")),t.viewProps.bindTabIndex(i),this.element.appendChild(i),this.padElement=i;const c=e.createElementNS(Ee,"svg");c.classList.add(Mt("g")),this.padElement.appendChild(c),this.svgElem_=c;const _=e.createElementNS(Ee,"line");_.classList.add(Mt("ax")),_.setAttributeNS(null,"x1","0"),_.setAttributeNS(null,"y1","50%"),_.setAttributeNS(null,"x2","100%"),_.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(_);const y=e.createElementNS(Ee,"line");y.classList.add(Mt("ax")),y.setAttributeNS(null,"x1","50%"),y.setAttributeNS(null,"y1","0"),y.setAttributeNS(null,"x2","50%"),y.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(y);const S=e.createElementNS(Ee,"line");S.classList.add(Mt("l")),S.setAttributeNS(null,"x1","50%"),S.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(S),this.lineElem_=S;const j=e.createElement("div");j.classList.add(Mt("m")),this.padElement.appendChild(j),this.markerElem_=j,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(),i=this.maxValue_,c=te(e,-i,+i,0,100),_=te(t,-i,+i,0,100),y=this.invertsY_?100-_:_;this.lineElem_.setAttributeNS(null,"x2",`${c}%`),this.lineElem_.setAttributeNS(null,"y2",`${y}%`),this.markerElem_.style.left=`${c}%`,this.markerElem_.style.top=`${y}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Mr(n,e,t){return[ve(e[0],Ke(n)),ve(e[1],De(n))*(t?1:-1)]}class Sa{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 La(e,{invertsY:this.invertsY_,layout:t.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new rt(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 i=this.maxValue_,c=te(e.point.x,0,e.bounds.width,-i,+i),_=te(this.invertsY_?e.bounds.height-e.point.y:e.point.y,0,e.bounds.height,-i,+i);this.value.setRawValue(new kt(c,_),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){vs(e.key)&&e.preventDefault();const[t,i]=Mr(e,this.baseSteps_,this.invertsY_);t===0&&i===0||this.value.setRawValue(new kt(this.value.rawValue.x+t,this.value.rawValue.y+i),{forceEmit:!1,last:!1})}onPadKeyUp_(e){const[t,i]=Mr(e,this.baseSteps_,this.invertsY_);t===0&&i===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Aa{constructor(e,t){var i,c;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_=je.create(t.expanded),this.popC_=t.pickerLayout==="popup"?new An(e,{viewProps:this.viewProps}):null;const _=new Sa(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});_.view.allFocusableElements.forEach(y=>{y.addEventListener("blur",this.onPopupChildBlur_),y.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=_,this.textC_=new Ri(e,{assembly:kr,axes:t.axes,parser:t.parser,value:this.value,viewProps:this.viewProps}),this.view=new Ma(e,{expanded:this.foldable_.value("expanded"),pickerLayout:t.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(i=this.view.buttonElement)===null||i===void 0||i.addEventListener("blur",this.onPadButtonBlur_),(c=this.view.buttonElement)===null||c===void 0||c.addEventListener("click",this.onPadButtonClick_),this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),wt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:y=>y.rawValue,backward:(y,S)=>S.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),U(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(e){if(!this.popC_)return;const t=this.view.element,i=e.relatedTarget;(!i||!t.contains(i))&&(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,i=Oe(e);i&&t.contains(i)||i&&i===this.view.buttonElement&&!dt(t.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(e){this.popC_?e.key==="Escape"&&(this.popC_.shows.rawValue=!1):this.view.pickerElement&&e.key==="Escape"&&this.view.buttonElement.focus()}}function Ta(n){return kt.isObject(n)?new kt(n.x,n.y):new kt}function Va(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y)}function lt(n,e){if(!n)return;const t=[],i=Pr(n,e);i&&t.push(i);const c=Er(n);return c&&t.push(c),new Ze(t)}function Na(n,e){return new Et({assembly:kr,components:[lt("x"in n?n.x:void 0,e.x),lt("y"in n?n.y:void 0,e.y)]})}function Lr(n,e){var t,i;const c=n&&J(n,Ve);if(c)return Math.max(Math.abs((t=c.minValue)!==null&&t!==void 0?t:0),Math.abs((i=c.maxValue)!==null&&i!==void 0?i:0));const _=Ct(n);return Math.max(Math.abs(_)*10,Math.abs(e)*10)}function Oa(n,e){const t=e instanceof Et?e.components[0]:void 0,i=e instanceof Et?e.components[1]:void 0,c=Lr(t,n.x),_=Lr(i,n.y);return Math.max(c,_)}function Sr(n,e){return{baseStep:Ct(e),constraint:e,textProps:B.fromObject({draggingScale:Pt(e,n),formatter:ie(an(e,n))})}}function Ia(n){if(!("y"in n))return!1;const e=n.y;return e&&"inverted"in e?!!e.inverted:!1}const Da={id:"input-point2d",type:"input",accept:(n,e)=>{if(!kt.isObject(n))return null;const t=$,i=oe(e,{expanded:t.optional.boolean,picker:t.optional.custom(gs),x:t.optional.custom(be),y:t.optional.object({inverted:t.optional.boolean,max:t.optional.number,min:t.optional.number,step:t.optional.number})});return i?{initialValue:n,params:i}:null},binding:{reader:n=>Ta,constraint:n=>Na(n.params,n.initialValue),equals:kt.equals,writer:n=>Va},controller:n=>{const e=n.document,t=n.value,i=n.constraint;if(!(i instanceof Et))throw A.shouldNeverHappen();const c="expanded"in n.params?n.params.expanded:void 0,_="picker"in n.params?n.params.picker:void 0;return new Aa(e,{axes:[Sr(t.rawValue.x,i.components[0]),Sr(t.rawValue.y,i.components[1])],expanded:c!=null?c:!1,invertsY:Ia(n.params),maxValue:Oa(t.rawValue,i),parser:Ue,pickerLayout:_!=null?_:"popup",value:t,viewProps:n.viewProps})}};class un{constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.z=i}getComponents(){return[this.x,this.y,this.z]}static isObject(e){if(g(e))return!1;const t=e.x,i=e.y,c=e.z;return!(typeof t!="number"||typeof i!="number"||typeof c!="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 Ar={toComponents:n=>n.getComponents(),fromComponents:n=>new un(...n)};function Ra(n){return un.isObject(n)?new un(n.x,n.y,n.z):new un}function Fa(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z)}function ja(n,e){return new Et({assembly:Ar,components:[lt("x"in n?n.x:void 0,e.x),lt("y"in n?n.y:void 0,e.y),lt("z"in n?n.z:void 0,e.z)]})}function Fi(n,e){return{baseStep:Ct(e),constraint:e,textProps:B.fromObject({draggingScale:Pt(e,n),formatter:ie(an(e,n))})}}const Ba={id:"input-point3d",type:"input",accept:(n,e)=>{if(!un.isObject(n))return null;const t=$,i=oe(e,{x:t.optional.custom(be),y:t.optional.custom(be),z:t.optional.custom(be)});return i?{initialValue:n,params:i}:null},binding:{reader:n=>Ra,constraint:n=>ja(n.params,n.initialValue),equals:un.equals,writer:n=>Fa},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof Et))throw A.shouldNeverHappen();return new Ri(n.document,{assembly:Ar,axes:[Fi(e.rawValue.x,t.components[0]),Fi(e.rawValue.y,t.components[1]),Fi(e.rawValue.z,t.components[2])],parser:Ue,value:e,viewProps:n.viewProps})}};class dn{constructor(e=0,t=0,i=0,c=0){this.x=e,this.y=t,this.z=i,this.w=c}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(e){if(g(e))return!1;const t=e.x,i=e.y,c=e.z,_=e.w;return!(typeof t!="number"||typeof i!="number"||typeof c!="number"||typeof _!="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 Tr={toComponents:n=>n.getComponents(),fromComponents:n=>new dn(...n)};function Ua(n){return dn.isObject(n)?new dn(n.x,n.y,n.z,n.w):new dn}function za(n,e){n.writeProperty("x",e.x),n.writeProperty("y",e.y),n.writeProperty("z",e.z),n.writeProperty("w",e.w)}function Ka(n,e){return new Et({assembly:Tr,components:[lt("x"in n?n.x:void 0,e.x),lt("y"in n?n.y:void 0,e.y),lt("z"in n?n.z:void 0,e.z),lt("w"in n?n.w:void 0,e.w)]})}function Ga(n,e){return{baseStep:Ct(e),constraint:e,textProps:B.fromObject({draggingScale:Pt(e,n),formatter:ie(an(e,n))})}}const $a={id:"input-point4d",type:"input",accept:(n,e)=>{if(!dn.isObject(n))return null;const t=$,i=oe(e,{x:t.optional.custom(be),y:t.optional.custom(be),z:t.optional.custom(be),w:t.optional.custom(be)});return i?{initialValue:n,params:i}:null},binding:{reader:n=>Ua,constraint:n=>Ka(n.params,n.initialValue),equals:dn.equals,writer:n=>za},controller:n=>{const e=n.value,t=n.constraint;if(!(t instanceof Et))throw A.shouldNeverHappen();return new Ri(n.document,{assembly:Tr,axes:e.rawValue.getComponents().map((i,c)=>Ga(i,t.components[c])),parser:Ue,value:e,viewProps:n.viewProps})}};function qa(n){const e=[],t=jn(n.options);return t&&e.push(t),new Ze(e)}const Ha={id:"input-string",type:"input",accept:(n,e)=>{if(typeof n!="string")return null;const i=oe(e,{options:$.optional.custom(yt)});return i?{initialValue:n,params:i}:null},binding:{reader:n=>hs,constraint:n=>qa(n.params),writer:n=>xt},controller:n=>{var e;const t=n.document,i=n.value,c=n.constraint;return c&&J(c,_t)?new it(t,{props:B.fromObject({options:(e=Bn(c))!==null&&e!==void 0?e:[]}),value:i,viewProps:n.viewProps}):new zt(t,{parser:_=>_,props:B.fromObject({formatter:rn}),value:i,viewProps:n.viewProps})}},qn={monitor:{defaultInterval:200,defaultLineCount:3}},Vr=D("mll");class Ya{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Vr()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("textarea");i.classList.add(Vr("i")),i.style.height=`calc(var(--bld-us) * ${t.lineCount})`,i.readOnly=!0,t.viewProps.bindDisabled(i),this.element.appendChild(i),this.textareaElem_=i,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,i=[];this.value.rawValue.forEach(c=>{c!==void 0&&i.push(this.formatter_(c))}),e.textContent=i.join(`
16
+ `),t&&(e.scrollTop=e.scrollHeight)}onValueUpdate_(){this.update_()}}class ji{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new Ya(e,{formatter:t.formatter,lineCount:t.lineCount,value:this.value,viewProps:this.viewProps})}}const Nr=D("sgl");class Xa{constructor(e,t){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=t.formatter,this.element=e.createElement("div"),this.element.classList.add(Nr()),t.viewProps.bindClassModifiers(this.element);const i=e.createElement("input");i.classList.add(Nr("i")),i.readOnly=!0,i.type="text",t.viewProps.bindDisabled(i),this.element.appendChild(i),this.inputElement=i,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 Bi{constructor(e,t){this.value=t.value,this.viewProps=t.viewProps,this.view=new Xa(e,{formatter:t.formatter,value:this.value,viewProps:this.viewProps})}}const Wa={id:"monitor-bool",type:"monitor",accept:(n,e)=>{if(typeof n!="boolean")return null;const i=oe(e,{lineCount:$.optional.number});return i?{initialValue:n,params:i}:null},binding:{reader:n=>as},controller:n=>{var e;return n.value.rawValue.length===1?new Bi(n.document,{formatter:ls,value:n.value,viewProps:n.viewProps}):new ji(n.document,{formatter:ls,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:qn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},Lt=D("grl");class Za{constructor(e,t){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=e.createElement("div"),this.element.classList.add(Lt()),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 i=e.createElementNS(Ee,"svg");i.classList.add(Lt("g")),i.style.height=`calc(var(--bld-us) * ${t.lineCount})`,this.element.appendChild(i),this.svgElem_=i;const c=e.createElementNS(Ee,"polyline");this.svgElem_.appendChild(c),this.lineElem_=c;const _=e.createElement("div");_.classList.add(Lt("t"),D("tt")()),this.element.appendChild(_),this.tooltipElem_=_,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,i=this.props_.get("minValue"),c=this.props_.get("maxValue"),_=[];this.value.rawValue.forEach((Z,Q)=>{if(Z===void 0)return;const ct=te(Q,0,t,0,e.width),Hn=te(Z,i,c,e.height,0);_.push([ct,Hn].join(","))}),this.lineElem_.setAttributeNS(null,"points",_.join(" "));const y=this.tooltipElem_,S=this.value.rawValue[this.cursor_.rawValue];if(S===void 0){y.classList.remove(Lt("t","a"));return}const j=te(this.cursor_.rawValue,0,t,0,e.width),z=te(S,i,c,e.height,0);y.style.left=`${j}px`,y.style.top=`${z}px`,y.textContent=`${this.formatter_(S)}`,y.classList.contains(Lt("t","a"))||(y.classList.add(Lt("t","a"),Lt("t","in")),et(y),y.classList.remove(Lt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class Qa{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_=W(-1),this.view=new Za(e,{cursor:this.cursor_,formatter:t.formatter,lineCount:t.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!dt(e))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const i=new rt(this.view.element);i.emitter.on("down",this.onGraphPointerDown_),i.emitter.on("move",this.onGraphPointerMove_),i.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(e){const t=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(te(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(te(e.data.point.x,0,e.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function Ui(n){return"format"in n&&!g(n.format)?n.format:ie(2)}function Ja(n){var e;return n.value.rawValue.length===1?new Bi(n.document,{formatter:Ui(n.params),value:n.value,viewProps:n.viewProps}):new ji(n.document,{formatter:Ui(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:qn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function el(n){var e,t,i;return new Qa(n.document,{formatter:Ui(n.params),lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:qn.monitor.defaultLineCount,props:B.fromObject({maxValue:(t="max"in n.params?n.params.max:null)!==null&&t!==void 0?t:100,minValue:(i="min"in n.params?n.params.min:null)!==null&&i!==void 0?i:0}),value:n.value,viewProps:n.viewProps})}function Or(n){return"view"in n&&n.view==="graph"}const tl={id:"monitor-number",type:"monitor",accept:(n,e)=>{if(typeof n!="number")return null;const t=$,i=oe(e,{format:t.optional.function,lineCount:t.optional.number,max:t.optional.number,min:t.optional.number,view:t.optional.string});return i?{initialValue:n,params:i}:null},binding:{defaultBufferSize:n=>Or(n)?64:1,reader:n=>On},controller:n=>Or(n.params)?el(n):Ja(n)},nl={id:"monitor-string",type:"monitor",accept:(n,e)=>{if(typeof n!="string")return null;const t=$,i=oe(e,{lineCount:t.optional.number,multiline:t.optional.boolean});return i?{initialValue:n,params:i}:null},binding:{reader:n=>hs},controller:n=>{var e;const t=n.value;return t.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new ji(n.document,{formatter:rn,lineCount:(e=n.params.lineCount)!==null&&e!==void 0?e:qn.monitor.defaultLineCount,value:t,viewProps:n.viewProps}):new Bi(n.document,{formatter:rn,value:t,viewProps:n.viewProps})}};class sl{constructor(e){this.onValueChange_=this.onValueChange_.bind(this),this.reader=e.reader,this.writer=e.writer,this.emitter=new O,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 il(n,e){const t=n.accept(e.target.read(),e.params);if(g(t))return null;const i=$,c={target:e.target,initialValue:t.initialValue,params:t.params},_=n.binding.reader(c),y=n.binding.constraint?n.binding.constraint(c):void 0,S=W(_(t.initialValue),{constraint:y,equals:n.binding.equals}),j=new sl({reader:_,target:e.target,value:S,writer:n.binding.writer(c)}),z=i.optional.boolean(e.params.disabled).value,Z=i.optional.boolean(e.params.hidden).value,Q=n.controller({constraint:y,document:e.document,initialValue:t.initialValue,params:t.params,value:j.value,viewProps:We.create({disabled:z,hidden:Z})}),ct=i.optional.string(e.params.label).value;return new Le(e.document,{binding:j,blade:Fe(),props:B.fromObject({label:ct!=null?ct:e.target.key}),valueController:Q})}class rl{constructor(e){this.onTick_=this.onTick_.bind(this),this.reader_=e.reader,this.target=e.target,this.emitter=new O,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,i=this.reader_(e);this.value.rawValue=ms(t,i),this.emitter.emit("update",{rawValue:i,sender:this})}onTick_(e){this.read()}}function ol(n,e){return e===0?new is:new Ln(n,e!=null?e:qn.monitor.defaultInterval)}function al(n,e){var t,i,c;const _=$,y=n.accept(e.target.read(),e.params);if(g(y))return null;const S={target:e.target,initialValue:y.initialValue,params:y.params},j=n.binding.reader(S),z=(i=(t=_.optional.number(e.params.bufferSize).value)!==null&&t!==void 0?t:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(y.params))!==null&&i!==void 0?i:1,Z=_.optional.number(e.params.interval).value,Q=new rl({reader:j,target:e.target,ticker:ol(e.document,Z),value:vi(z)}),ct=_.optional.boolean(e.params.disabled).value,Hn=_.optional.boolean(e.params.hidden).value,Yn=n.controller({document:e.document,params:y.params,value:Q.value,viewProps:We.create({disabled:ct,hidden:Hn})}),hn=(c=_.optional.string(e.params.label).value)!==null&&c!==void 0?c:e.target.key;return new Xe(e.document,{binding:Q,blade:Fe(),props:B.fromObject({label:hn}),valueController:Yn})}class ll{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,i){const c=t.read();if(g(c))throw new A({context:{key:t.key},type:"nomatchingcontroller"});const _=this.pluginsMap_.inputs.reduce((y,S)=>y!=null?y:il(S,{document:e,target:t,params:i}),null);if(_)return _;throw new A({context:{key:t.key},type:"nomatchingcontroller"})}createMonitor(e,t,i){const c=this.pluginsMap_.monitors.reduce((_,y)=>_!=null?_:al(y,{document:e,params:i,target:t}),null);if(c)return c;throw new A({context:{key:t.key},type:"nomatchingcontroller"})}createBlade(e,t){const i=this.pluginsMap_.blades.reduce((c,_)=>c!=null?c:Ks(_,{document:e,params:t}),null);if(!i)throw new A({type:"nomatchingview",context:{params:t}});return i}createBladeApi(e){if(e instanceof Le)return new xe(e);if(e instanceof Xe)return new st(e);if(e instanceof Ft)return new Rt(e,this);const t=this.pluginsMap_.blades.reduce((i,c)=>i!=null?i:c.api({controller:e,pool:this}),null);if(!t)throw A.shouldNeverHappen();return t}}function cl(){const n=new ll;return[Da,Ba,$a,Ha,ka,wa,ga,va,yi,Wa,nl,tl,mt,Fs,es,Mn].forEach(e=>{n.register(e)}),n}class Ir extends d{constructor(e){super(e),this.emitter_=new O,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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}}class Dr extends d{constructor(e){super(e),this.emitter_=new O,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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}}class Rr extends d{constructor(e){super(e),this.emitter_=new O,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 i=t.bind(this);return this.emitter_.on(e,c=>{i(c.event)}),this}}const pl=function(){return{id:"list",type:"blade",accept(n){const e=$,t=oe(n,{options:e.required.custom(yt),value:e.required.raw,view:e.required.constant("list"),label:e.optional.string});return t?{params:t}:null},controller(n){const e=new it(n.document,{props:B.fromObject({options:ws(n.params.options)}),value:W(n.params.value),viewProps:n.viewProps});return new ft(n.document,{blade:n.blade,props:B.fromObject({label:n.params.label}),valueController:e})},api(n){return!(n.controller instanceof ft)||!(n.controller.valueController instanceof it)?null:new Ir(n.controller)}}}();function ul(n){return n.reduce((e,t)=>Object.assign(e,{[t.presetKey]:t.read()}),{})}function dl(n,e){n.forEach(t=>{const i=e[t.presetKey];i!==void 0&&t.write(i)})}class hl extends xn{constructor(e,t){super(e,t)}get element(){return this.controller_.view.element}importPreset(e){const t=this.controller_.rackController.rack.find(Le).map(i=>i.binding.target);dl(t,e),this.refresh()}exportPreset(){const e=this.controller_.rackController.rack.find(Le).map(t=>t.binding.target);return ul(e)}refresh(){this.controller_.rackController.rack.find(Le).forEach(e=>{e.binding.read()}),this.controller_.rackController.rack.find(Xe).forEach(e=>{e.binding.read()})}}class ml extends Pn{constructor(e,t){super(e,{expanded:t.expanded,blade:t.blade,props:t.props,root:!0,viewProps:t.viewProps})}}const vl={id:"slider",type:"blade",accept(n){const e=$,t=oe(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 i=(e=n.params.value)!==null&&e!==void 0?e:0,c=new on(n.document,{baseStep:1,parser:Ue,sliderProps:B.fromObject({maxValue:n.params.max,minValue:n.params.min}),textProps:B.fromObject({draggingScale:Pt(void 0,i),formatter:(t=n.params.format)!==null&&t!==void 0?t:hi}),value:W(i),viewProps:n.viewProps});return new ft(n.document,{blade:n.blade,props:B.fromObject({label:n.params.label}),valueController:c})},api(n){return!(n.controller instanceof ft)||!(n.controller.valueController instanceof on)?null:new Dr(n.controller)}},fl=function(){return{id:"text",type:"blade",accept(n){const e=$,t=oe(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 zt(n.document,{parser:n.params.parse,props:B.fromObject({formatter:(e=n.params.format)!==null&&e!==void 0?e:i=>String(i)}),value:W(n.params.value),viewProps:n.viewProps});return new ft(n.document,{blade:n.blade,props:B.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof ft)||!(n.controller.valueController instanceof zt)?null:new Rr(n.controller)}}}();function bl(n){const e=n.createElement("div");return e.classList.add(D("dfw")()),n.body&&n.body.appendChild(e),e}function Fr(n,e,t){if(n.querySelector(`style[data-tp-style=${e}]`))return;const i=n.createElement("style");i.dataset.tpStyle=e,i.textContent=t,n.head.appendChild(i)}class _l extends hl{constructor(e){var t,i;const c=e!=null?e:{},_=(t=c.document)!==null&&t!==void 0?t:_n(),y=cl(),S=new ml(_,{expanded:c.expanded,blade:Fe(),props:B.fromObject({title:c.title}),viewProps:We.create()});super(S,y),this.pool_=y,this.containerElem_=(i=c.container)!==null&&i!==void 0?i:bl(_),this.containerElem_.appendChild(this.element),this.doc_=_,this.usesDefaultWrapper_=!c.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw A.alreadyDisposed();return this.doc_}dispose(){const e=this.containerElem_;if(!e)throw A.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(i=>{this.pool_.register(i),this.embedPluginStyle_(i)})}embedPluginStyle_(e){e.css&&Fr(this.document,`plugin-${e.id}`,e.css)}setUpDefaultPlugins_(){Fr(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:transparent;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 transparent;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:transparent}.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:transparent 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, #28292e);--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, #adafb8);--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, #28292e);--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, #bbbcc4);--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, #bbbcc4);--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-tabv>.tp-tabv_i,.tp-fldv_c>.tp-tabv>.tp-tabv_i{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-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_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_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_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_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:transparent;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_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_c{border-left:var(--cnt-bg) solid 4px}.tp-fldv_b:hover+.tp-fldv_c{border-left-color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_c{border-left-color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_c{border-left-color:var(--cnt-bg-a)}.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;-ms-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_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-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.tp-v-disabled{opacity:.5}.tp-tabv_i{align-items:flex-end;display:flex;overflow:hidden}.tp-tabv.tp-tabv-nop .tp-tabv_i{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_i::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{border-left:var(--cnt-bg) solid 4px;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p)}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv::before{background-color:var(--cnt-bg);bottom:0;content:"";height:2px;left:-2px;position:absolute;width:2px}.tp-tbiv_b{background-color:var(--cnt-bg);display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);width:100%}.tp-tbiv_b:hover{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active{background-color:var(--cnt-bg-a)}.tp-tbiv_b:disabled{opacity:.5}.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) transparent transparent transparent;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_c>.tp-fldv.tp-v-lst>.tp-fldv_c,.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-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.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_i{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:[vl,pl,Mn,fl]})}}const gl=new a("3.1.0");p.BladeApi=d,p.ButtonApi=I,p.FolderApi=xn,p.InputBindingApi=xe,p.ListApi=Ir,p.MonitorBindingApi=st,p.Pane=_l,p.SeparatorApi=En,p.SliderApi=Dr,p.TabApi=ns,p.TabPageApi=kn,p.TextApi=Rr,p.TpChangeEvent=h,p.VERSION=gl,Object.defineProperty(p,"__esModule",{value:!0})})})(Ss,Ss.exports);var Xn={exports:{}};(function(L,u){(function(p,a){a(u)})(Ji,function(p){class a{constructor(s){this.controller_=s}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(s){this.controller_.viewProps.set("disabled",s)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(s){this.controller_.viewProps.set("hidden",s)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class d{constructor(s){this.target=s}}class m extends d{constructor(s,r,l,v){super(s),this.value=r,this.presetKey=l,this.last=v!=null?v:!0}}function h(o){return o}function b(o){return o==null}const f={alreadydisposed:()=>"View has been already disposed",invalidparams:o=>`Invalid parameters for '${o.name}'`,nomatchingcontroller:o=>`No matching controller for '${o.key}'`,nomatchingview:o=>`No matching view for '${JSON.stringify(o.params)}'`,notbindable:()=>"Value is not bindable",propertynotfound:o=>`Property '${o.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class x{constructor(s){var r;this.message=(r=f[s.type](s.context))!==null&&r!==void 0?r:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=s.type}static alreadyDisposed(){return new x({type:"alreadydisposed"})}static notBindable(){return new x({type:"notbindable"})}static propertyNotFound(s){return new x({type:"propertynotfound",context:{name:s}})}static shouldNeverHappen(){return new x({type:"shouldneverhappen"})}}class E{constructor(){this.observers_={}}on(s,r){let l=this.observers_[s];return l||(l=this.observers_[s]=[]),l.push({handler:r}),this}off(s,r){const l=this.observers_[s];return l&&(this.observers_[s]=l.filter(v=>v.handler!==r)),this}emit(s,r){const l=this.observers_[s];!l||l.forEach(v=>{v.handler(r)})}}const g="tp";function M(o){return(r,l)=>[g,"-",o,"v",r?`_${r}`:"",l?`-${l}`:""].join("")}function N(o,s){return r=>s(o(r))}function A(o){return o.rawValue}function F(o,s){o.emitter.on("change",N(A,s)),s(o.rawValue)}function I(o,s,r){F(o.value(s),r)}function O(o,s,r){r?o.classList.add(s):o.classList.remove(s)}function Y(o,s){return r=>{O(o,s,r)}}function D(o,s){F(o,r=>{s.textContent=r!=null?r:""})}const re=M("btn");class de{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(re()),r.viewProps.bindClassModifiers(this.element);const l=s.createElement("button");l.classList.add(re("b")),r.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l;const v=s.createElement("div");v.classList.add(re("t")),D(r.props.value("title"),v),this.buttonElement.appendChild(v)}}class ne{constructor(s,r){this.emitter=new E,this.onClick_=this.onClick_.bind(this),this.props=r.props,this.viewProps=r.viewProps,this.view=new de(s,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class X{constructor(s,r){var l;this.constraint_=r==null?void 0:r.constraint,this.equals_=(l=r==null?void 0:r.equals)!==null&&l!==void 0?l:(v,w)=>v===w,this.emitter=new E,this.rawValue_=s}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(s){this.setRawValue(s,{forceEmit:!1,last:!0})}setRawValue(s,r){const l=r!=null?r:{forceEmit:!1,last:!0},v=this.constraint_?this.constraint_.constrain(s):s;!!this.equals_(this.rawValue_,v)&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=v,this.emitter.emit("change",{options:l,rawValue:v,sender:this}))}}class G{constructor(s){this.emitter=new E,this.value_=s}get rawValue(){return this.value_}set rawValue(s){this.setRawValue(s,{forceEmit:!1,last:!0})}setRawValue(s,r){const l=r!=null?r:{forceEmit:!1,last:!0};this.value_===s&&!l.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=s,this.emitter.emit("change",{options:l,rawValue:this.value_,sender:this}))}}function ee(o,s){const r=s==null?void 0:s.constraint,l=s==null?void 0:s.equals;return!r&&!l?new G(o):new X(o,s)}class se{constructor(s){this.emitter=new E,this.valMap_=s;for(const r in this.valMap_)this.valMap_[r].emitter.on("change",()=>{this.emitter.emit("change",{key:r,sender:this})})}static createCore(s){return Object.keys(s).reduce((l,v)=>Object.assign(l,{[v]:ee(s[v])}),{})}static fromObject(s){const r=this.createCore(s);return new se(r)}get(s){return this.valMap_[s].rawValue}set(s,r){this.valMap_[s].rawValue=r}value(s){return this.valMap_[s]}}function _e(o,s){const l=Object.keys(s).reduce((v,w)=>{if(v===void 0)return;const k=s[w],V=k(o[w]);return V.succeeded?Object.assign(Object.assign({},v),{[w]:V.value}):void 0},{});return l}function Ce(o,s){return o.reduce((r,l)=>{if(r===void 0)return;const v=s(l);if(!(!v.succeeded||v.value===void 0))return[...r,v.value]},[])}function he(o){return o===null?!1:typeof o=="object"}function ue(o){return s=>r=>{if(!s&&r===void 0)return{succeeded:!1,value:void 0};if(s&&r===void 0)return{succeeded:!0,value:void 0};const l=o(r);return l!==void 0?{succeeded:!0,value:l}:{succeeded:!1,value:void 0}}}function fe(o){return{custom:s=>ue(s)(o),boolean:ue(s=>typeof s=="boolean"?s:void 0)(o),number:ue(s=>typeof s=="number"?s:void 0)(o),string:ue(s=>typeof s=="string"?s:void 0)(o),function:ue(s=>typeof s=="function"?s:void 0)(o),constant:s=>ue(r=>r===s?s:void 0)(o),raw:ue(s=>s)(o),object:s=>ue(r=>{if(!!he(r))return _e(r,s)})(o),array:s=>ue(r=>{if(!!Array.isArray(r))return Ce(r,s)})(o)}}const W={optional:fe(!0),required:fe(!1)};function B(o,s){const r=W.required.object(s)(o);return r.succeeded?r.value:void 0}function ut(o){return o&&o.parentElement&&o.parentElement.removeChild(o),null}function Yt(){return["veryfirst","first","last","verylast"]}const Xt=M(""),ge={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class At{constructor(s){this.parent_=null,this.blade=s.blade,this.view=s.view,this.viewProps=s.viewProps;const r=this.view.element;this.blade.value("positions").emitter.on("change",()=>{Yt().forEach(l=>{r.classList.remove(Xt(void 0,ge[l]))}),this.blade.get("positions").forEach(l=>{r.classList.add(Xt(void 0,ge[l]))})}),this.viewProps.handleDispose(()=>{ut(r)})}get parent(){return this.parent_}}const $="http://www.w3.org/2000/svg";function oe(o){o.offsetHeight}function bn(o,s){const r=o.style.transition;o.style.transition="none",s(),o.style.transition=r}function Wt(o){return o.ontouchstart!==void 0}function Tt(o){for(;o.childNodes.length>0;)o.removeChild(o.childNodes[0])}function Vt(o){return o.relatedTarget?o.relatedTarget:"explicitOriginalTarget"in o?o.explicitOriginalTarget:null}const Pe=M("lbl");function Ee(o,s){const r=o.createDocumentFragment();return s.split(`
17
+ `).map(v=>o.createTextNode(v)).forEach((v,w)=>{w>0&&r.appendChild(o.createElement("br")),r.appendChild(v)}),r}class et{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(Pe()),r.viewProps.bindClassModifiers(this.element);const l=s.createElement("div");l.classList.add(Pe("l")),I(r.props,"label",w=>{b(w)?this.element.classList.add(Pe(void 0,"nol")):(this.element.classList.remove(Pe(void 0,"nol")),Tt(l),l.appendChild(Ee(s,w)))}),this.element.appendChild(l),this.labelElement=l;const v=s.createElement("div");v.classList.add(Pe("v")),this.element.appendChild(v),this.valueElement=v}}class tt extends At{constructor(s,r){const l=r.valueController.viewProps;super(Object.assign(Object.assign({},r),{view:new et(s,{props:r.props,viewProps:l}),viewProps:l})),this.props=r.props,this.valueController=r.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class dt extends At{constructor(s){super(s),this.value=s.value}}class ht extends se{constructor(s){super(s)}static create(s){const r={completed:!0,expanded:s,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},l=se.createCore(r);return new ht(l)}get styleExpanded(){var s;return(s=this.get("temporaryExpanded"))!==null&&s!==void 0?s:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";const s=this.get("expandedHeight");return this.get("shouldFixHeight")&&!b(s)?`${s}px`:"auto"}bindExpandedClass(s,r){const l=()=>{this.styleExpanded?s.classList.add(r):s.classList.remove(r)};I(this,"expanded",l),I(this,"temporaryExpanded",l)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function _n(o){return ht.create(o)}function gn(o,s){let r=0;return bn(s,()=>{o.set("expandedHeight",null),o.set("temporaryExpanded",!0),oe(s),r=s.clientHeight,o.set("temporaryExpanded",null),oe(s)}),r}function Nt(o,s){s.style.height=o.styleHeight}function qe(o,s){o.value("expanded").emitter.on("beforechange",()=>{o.set("completed",!1),b(o.get("expandedHeight"))&&o.set("expandedHeight",gn(o,s)),o.set("shouldFixHeight",!0),oe(s)}),o.emitter.on("change",()=>{Nt(o,s)}),Nt(o,s),s.addEventListener("transitionend",r=>{r.propertyName==="height"&&o.cleanUpTransition()})}class nt{constructor(s,r){const l=M(r.viewName);this.element=s.createElement("div"),this.element.classList.add(l()),r.viewProps.bindClassModifiers(this.element)}}class He extends dt{constructor(s,r){const l=r.valueController.viewProps;super(Object.assign(Object.assign({},r),{value:r.valueController.value,view:new et(s,{props:r.props,viewProps:l}),viewProps:l})),this.props=r.props,this.valueController=r.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const Zt=M("");function Qt(o,s){return Y(o,Zt(void 0,s))}class Oe extends se{constructor(s){super(s)}static create(s){var r,l;const v=s!=null?s:{},w={disabled:(r=v.disabled)!==null&&r!==void 0?r:!1,disposed:!1,hidden:(l=v.hidden)!==null&&l!==void 0?l:!1},k=se.createCore(w);return new Oe(k)}bindClassModifiers(s){I(this,"disabled",Qt(s,"disabled")),I(this,"hidden",Qt(s,"hidden"))}bindDisabled(s){I(this,"disabled",r=>{s.disabled=r})}bindTabIndex(s){I(this,"disabled",r=>{s.tabIndex=r?-1:0})}handleDispose(s){this.value("disposed").emitter.on("change",r=>{r&&s()})}}class Ye{constructor(){this.disabled=!1,this.emitter=new E}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class wn{constructor(s,r){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=s,this.emitter=new E,this.interval_=r,this.setTimer_()}get disabled(){return this.disabled_}set disabled(s){this.disabled_=s,this.disabled_?this.clearTimer_():this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;const s=this.doc_.defaultView;s&&s.clearInterval(this.timerId_),this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;const s=this.doc_.defaultView;s&&(this.timerId_=s.setInterval(this.onTick_,this.interval_))}onTick_(){this.disabled_||this.emitter.emit("tick",{sender:this})}}class Ot{constructor(s){this.constraints=s}constrain(s){return this.constraints.reduce((r,l)=>l.constrain(r),s)}}function Ie(o,s){if(o instanceof s)return o;if(o instanceof Ot){const r=o.constraints.reduce((l,v)=>l||(v instanceof s?v:null),null);if(r)return r}return null}class mt{constructor(s){this.maxValue=s.max,this.minValue=s.min}constrain(s){let r=s;return b(this.minValue)||(r=Math.max(r,this.minValue)),b(this.maxValue)||(r=Math.min(r,this.maxValue)),r}}class ke{constructor(s,r=0){this.step=s,this.origin=r}constrain(s){const r=this.origin%this.step,l=Math.round((s-r)/this.step);return r+l*this.step}}const Fe=M("pop");class je{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(Fe()),r.viewProps.bindClassModifiers(this.element),F(r.shows,Y(this.element,Fe(void 0,"v")))}}class P{constructor(s,r){this.shows=ee(!1),this.viewProps=r.viewProps,this.view=new je(s,{shows:this.shows,viewProps:this.viewProps})}}const T=M("txt");class U{constructor(s,r){this.onChange_=this.onChange_.bind(this),this.element=s.createElement("div"),this.element.classList.add(T()),r.viewProps.bindClassModifiers(this.element),this.props_=r.props,this.props_.emitter.on("change",this.onChange_);const l=s.createElement("input");l.classList.add(T("i")),l.type="text",r.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,r.value.emitter.on("change",this.onChange_),this.value_=r.value,this.refresh()}refresh(){const s=this.props_.get("formatter");this.inputElement.value=s(this.value_.rawValue)}onChange_(){this.refresh()}}class H{constructor(s,r){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=r.parser,this.props=r.props,this.value=r.value,this.viewProps=r.viewProps,this.view=new U(s,{props:r.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(s){const l=s.currentTarget.value,v=this.parser_(l);b(v)||(this.value.rawValue=v),this.view.refresh()}}function ae(o){return o==="false"?!1:!!o}class Me{constructor(s){this.text=s}evaluate(){return Number(this.text)}toString(){return this.text}}const vt={"**":(o,s)=>Math.pow(o,s),"*":(o,s)=>o*s,"/":(o,s)=>o/s,"%":(o,s)=>o%s,"+":(o,s)=>o+s,"-":(o,s)=>o-s,"<<":(o,s)=>o<<s,">>":(o,s)=>o>>s,">>>":(o,s)=>o>>>s,"&":(o,s)=>o&s,"^":(o,s)=>o^s,"|":(o,s)=>o|s};class Jt{constructor(s,r,l){this.left=r,this.operator=s,this.right=l}evaluate(){const s=vt[this.operator];if(!s)throw new Error(`unexpected binary operator: '${this.operator}`);return s(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}const we={"+":o=>o,"-":o=>-o,"~":o=>~o};class xe{constructor(s,r){this.operator=s,this.expression=r}evaluate(){const s=we[this.operator];if(!s)throw new Error(`unexpected unary operator: '${this.operator}`);return s(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function Le(o){return(s,r)=>{for(let l=0;l<o.length;l++){const v=o[l](s,r);if(v!=="")return v}return""}}function st(o,s){var r;const l=o.substr(s).match(/^\s+/);return(r=l&&l[0])!==null&&r!==void 0?r:""}function Xe(o,s){const r=o.substr(s,1);return r.match(/^[1-9]$/)?r:""}function It(o,s){var r;const l=o.substr(s).match(/^[0-9]+/);return(r=l&&l[0])!==null&&r!==void 0?r:""}function Dt(o,s){const r=It(o,s);if(r!=="")return r;const l=o.substr(s,1);if(s+=1,l!=="-"&&l!=="+")return"";const v=It(o,s);return v===""?"":l+v}function en(o,s){const r=o.substr(s,1);if(s+=1,r.toLowerCase()!=="e")return"";const l=Dt(o,s);return l===""?"":r+l}function Rt(o,s){const r=o.substr(s,1);if(r==="0")return r;const l=Xe(o,s);return s+=l.length,l===""?"":l+It(o,s)}function xn(o,s){const r=Rt(o,s);if(s+=r.length,r==="")return"";const l=o.substr(s,1);if(s+=l.length,l!==".")return"";const v=It(o,s);return s+=v.length,r+l+v+en(o,s)}function yn(o,s){const r=o.substr(s,1);if(s+=r.length,r!==".")return"";const l=It(o,s);return s+=l.length,l===""?"":r+l+en(o,s)}function Ts(o,s){const r=Rt(o,s);return s+=r.length,r===""?"":r+en(o,s)}const Vs=Le([xn,yn,Ts]);function Ns(o,s){var r;const l=o.substr(s).match(/^[01]+/);return(r=l&&l[0])!==null&&r!==void 0?r:""}function Os(o,s){const r=o.substr(s,2);if(s+=r.length,r.toLowerCase()!=="0b")return"";const l=Ns(o,s);return l===""?"":r+l}function Cn(o,s){var r;const l=o.substr(s).match(/^[0-7]+/);return(r=l&&l[0])!==null&&r!==void 0?r:""}function Is(o,s){const r=o.substr(s,2);if(s+=r.length,r.toLowerCase()!=="0o")return"";const l=Cn(o,s);return l===""?"":r+l}function Ds(o,s){var r;const l=o.substr(s).match(/^[0-9a-f]+/i);return(r=l&&l[0])!==null&&r!==void 0?r:""}function Ft(o,s){const r=o.substr(s,2);if(s+=r.length,r.toLowerCase()!=="0x")return"";const l=Ds(o,s);return l===""?"":r+l}const Zn=Le([Os,Is,Ft]),Rs=Le([Zn,Vs]);function Pn(o,s){const r=Rs(o,s);return s+=r.length,r===""?null:{evaluable:new Me(r),cursor:s}}function Fs(o,s){const r=o.substr(s,1);if(s+=r.length,r!=="(")return null;const l=es(o,s);if(!l)return null;s=l.cursor,s+=st(o,s).length;const v=o.substr(s,1);return s+=v.length,v!==")"?null:{evaluable:l.evaluable,cursor:s}}function ft(o,s){var r;return(r=Pn(o,s))!==null&&r!==void 0?r:Fs(o,s)}function En(o,s){const r=ft(o,s);if(r)return r;const l=o.substr(s,1);if(s+=l.length,l!=="+"&&l!=="-"&&l!=="~")return null;const v=En(o,s);return v?(s=v.cursor,{cursor:s,evaluable:new xe(l,v.evaluable)}):null}function Qn(o,s,r){r+=st(s,r).length;const l=o.filter(v=>s.startsWith(v,r))[0];return l?(r+=l.length,r+=st(s,r).length,{cursor:r,operator:l}):null}function js(o,s){return(r,l)=>{const v=o(r,l);if(!v)return null;l=v.cursor;let w=v.evaluable;for(;;){const k=Qn(s,r,l);if(!k)break;l=k.cursor;const V=o(r,l);if(!V)return null;l=V.cursor,w=new Jt(k.operator,w,V.evaluable)}return w?{cursor:l,evaluable:w}:null}}const Jn=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((o,s)=>js(o,s),En);function es(o,s){return s+=st(o,s).length,Jn(o,s)}function Bs(o){const s=es(o,0);return!s||s.cursor+st(o,s.cursor).length!==o.length?null:s.evaluable}function jt(o){var s;const r=Bs(o);return(s=r==null?void 0:r.evaluate())!==null&&s!==void 0?s:null}function We(o){if(typeof o=="number")return o;if(typeof o=="string"){const s=jt(o);if(!b(s))return s}return 0}function pe(o){return s=>s.toFixed(Math.max(Math.min(o,20),0))}const Us=pe(0);function tn(o){return Us(o)+"%"}function ts(o){return String(o)}function kn(o,s){for(;o.length<s;)o.push(void 0)}function ns(o){const s=[];return kn(s,o),ee(s)}function ss(o){const s=o.indexOf(void 0);return s<0?o:o.slice(0,s)}function zs(o,s){const r=[...ss(o),s];return r.length>o.length?r.splice(0,r.length-o.length):kn(r,o.length),r}function Bt({primary:o,secondary:s,forward:r,backward:l}){let v=!1;function w(k){v||(v=!0,k(),v=!1)}o.emitter.on("change",k=>{w(()=>{s.setRawValue(r(o,s),k.options)})}),s.emitter.on("change",k=>{w(()=>{o.setRawValue(l(o,s),k.options)}),w(()=>{s.setRawValue(r(o,s),k.options)})}),w(()=>{s.setRawValue(r(o,s),{forceEmit:!1,last:!0})})}function bt(o,s){const r=o*(s.altKey?.1:1)*(s.shiftKey?10:1);return s.upKey?+r:s.downKey?-r:0}function Ut(o){return{altKey:o.altKey,downKey:o.key==="ArrowDown",shiftKey:o.shiftKey,upKey:o.key==="ArrowUp"}}function Mn(o){return{altKey:o.altKey,downKey:o.key==="ArrowLeft",shiftKey:o.shiftKey,upKey:o.key==="ArrowRight"}}function Ks(o){return o==="ArrowUp"||o==="ArrowDown"}function is(o){return Ks(o)||o==="ArrowLeft"||o==="ArrowRight"}function Ln(o,s){var r,l;const v=s.ownerDocument.defaultView,w=s.getBoundingClientRect();return{x:o.pageX-(((r=v&&v.scrollX)!==null&&r!==void 0?r:0)+w.left),y:o.pageY-(((l=v&&v.scrollY)!==null&&l!==void 0?l:0)+w.top)}}class Ze{constructor(s){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_=s,this.emitter=new E,s.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),s.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),s.addEventListener("touchend",this.onTouchEnd_),s.addEventListener("mousedown",this.onMouseDown_)}computePosition_(s){const r=this.elem_.getBoundingClientRect();return{bounds:{width:r.width,height:r.height},point:s?{x:s.x,y:s.y}:null}}onMouseDown_(s){var r;s.preventDefault(),(r=s.currentTarget)===null||r===void 0||r.focus();const l=this.elem_.ownerDocument;l.addEventListener("mousemove",this.onDocumentMouseMove_),l.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:s.altKey,data:this.computePosition_(Ln(s,this.elem_)),sender:this,shiftKey:s.shiftKey})}onDocumentMouseMove_(s){this.emitter.emit("move",{altKey:s.altKey,data:this.computePosition_(Ln(s,this.elem_)),sender:this,shiftKey:s.shiftKey})}onDocumentMouseUp_(s){const r=this.elem_.ownerDocument;r.removeEventListener("mousemove",this.onDocumentMouseMove_),r.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:s.altKey,data:this.computePosition_(Ln(s,this.elem_)),sender:this,shiftKey:s.shiftKey})}onTouchStart_(s){s.preventDefault();const r=s.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:s.altKey,data:this.computePosition_(r?{x:r.clientX-l.left,y:r.clientY-l.top}:void 0),sender:this,shiftKey:s.shiftKey}),this.lastTouch_=r}onTouchMove_(s){const r=s.targetTouches.item(0),l=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:s.altKey,data:this.computePosition_(r?{x:r.clientX-l.left,y:r.clientY-l.top}:void 0),sender:this,shiftKey:s.shiftKey}),this.lastTouch_=r}onTouchEnd_(s){var r;const l=(r=s.targetTouches.item(0))!==null&&r!==void 0?r:this.lastTouch_,v=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:s.altKey,data:this.computePosition_(l?{x:l.clientX-v.left,y:l.clientY-v.top}:void 0),sender:this,shiftKey:s.shiftKey})}}function J(o,s,r,l,v){const w=(o-s)/(r-s);return l+w*(v-l)}function _t(o){return String(o.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Ve(o,s,r){return Math.min(Math.max(o,s),r)}const me=M("txt");class Sn{constructor(s,r){this.onChange_=this.onChange_.bind(this),this.props_=r.props,this.props_.emitter.on("change",this.onChange_),this.element=s.createElement("div"),this.element.classList.add(me(),me(void 0,"num")),r.arrayPosition&&this.element.classList.add(me(void 0,r.arrayPosition)),r.viewProps.bindClassModifiers(this.element);const l=s.createElement("input");l.classList.add(me("i")),l.type="text",r.viewProps.bindDisabled(l),this.element.appendChild(l),this.inputElement=l,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=r.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(me()),this.inputElement.classList.add(me("i"));const v=s.createElement("div");v.classList.add(me("k")),this.element.appendChild(v),this.knobElement=v;const w=s.createElementNS($,"svg");w.classList.add(me("g")),this.knobElement.appendChild(w);const k=s.createElementNS($,"path");k.classList.add(me("gb")),w.appendChild(k),this.guideBodyElem_=k;const V=s.createElementNS($,"path");V.classList.add(me("gh")),w.appendChild(V),this.guideHeadElem_=V;const R=s.createElement("div");R.classList.add(M("tt")()),this.knobElement.appendChild(R),this.tooltipElem_=R,r.value.emitter.on("change",this.onChange_),this.value=r.value,this.refresh()}onDraggingChange_(s){if(s.rawValue===null){this.element.classList.remove(me(void 0,"drg"));return}this.element.classList.add(me(void 0,"drg"));const r=s.rawValue/this.props_.get("draggingScale"),l=r+(r>0?-1:r<0?1:0),v=Ve(-l,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${l+v},0 L${l},4 L${l+v},8`,`M ${r},-1 L${r},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${r},4`);const w=this.props_.get("formatter");this.tooltipElem_.textContent=w(this.value.rawValue),this.tooltipElem_.style.left=`${r}px`}refresh(){const s=this.props_.get("formatter");this.inputElement.value=s(this.value.rawValue)}onChange_(){this.refresh()}}class Gs{constructor(s,r){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_=r.baseStep,this.parser_=r.parser,this.props=r.props,this.sliderProps_=(l=r.sliderProps)!==null&&l!==void 0?l:null,this.value=r.value,this.viewProps=r.viewProps,this.dragging_=ee(null),this.view=new Sn(s,{arrayPosition:r.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 v=new Ze(this.view.knobElement);v.emitter.on("down",this.onPointerDown_),v.emitter.on("move",this.onPointerMove_),v.emitter.on("up",this.onPointerUp_)}constrainValue_(s){var r,l;const v=(r=this.sliderProps_)===null||r===void 0?void 0:r.get("minValue"),w=(l=this.sliderProps_)===null||l===void 0?void 0:l.get("maxValue");let k=s;return v!==void 0&&(k=Math.max(k,v)),w!==void 0&&(k=Math.min(k,w)),k}onInputChange_(s){const l=s.currentTarget.value,v=this.parser_(l);b(v)||(this.value.rawValue=this.constrainValue_(v)),this.view.refresh()}onInputKeyDown_(s){const r=bt(this.baseStep_,Ut(s));r!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+r),{forceEmit:!1,last:!1})}onInputKeyUp_(s){bt(this.baseStep_,Ut(s))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(s){if(!s.point)return null;const r=s.point.x-s.bounds.width/2;return this.constrainValue_(this.originRawValue_+r*this.props.get("draggingScale"))}onPointerMove_(s){const r=this.computeDraggingValue_(s.data);r!==null&&(this.value.setRawValue(r,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(s){const r=this.computeDraggingValue_(s.data);r!==null&&(this.value.setRawValue(r,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function it(o,s){o.write(s)}function rs(o){const s=o?Ie(o,ke):null;return s?s.step:null}function $s(o,s){const r=o&&Ie(o,ke);return r?_t(r.step):Math.max(_t(s),2)}function An(o){const s=rs(o);return s!=null?s:1}function os(o,s){var r;const l=o&&Ie(o,ke),v=Math.abs((r=l==null?void 0:l.step)!==null&&r!==void 0?r:s);return v===0?.1:Math.pow(10,Math.floor(Math.log10(v))-1)}function nn(o){return[o[0],o[1],o[2]]}function zt(o){const s=Ve(Math.floor(o),0,255).toString(16);return s.length===1?`0${s}`:s}function qs(o,s="#"){const r=nn(o.getComponents("rgb")).map(zt).join("");return`${s}${r}`}function as(o,s="#"){const r=o.getComponents("rgb"),l=[r[0],r[1],r[2],r[3]*255].map(zt).join("");return`${s}${l}`}function ls(o,s){const r=pe(s==="float"?2:0);return`rgb(${nn(o.getComponents("rgb",s)).map(v=>r(v)).join(", ")})`}function Hs(o){return s=>ls(s,o)}function Ys(o,s){const r=pe(2),l=pe(s==="float"?2:0);return`rgba(${o.getComponents("rgb",s).map((w,k)=>(k===3?r:l)(w)).join(", ")})`}function Xs(o){return s=>Ys(s,o)}function Ws(o){const s=[pe(0),tn,tn];return`hsl(${nn(o.getComponents("hsl")).map((l,v)=>s[v](l)).join(", ")})`}function Zs(o){const s=[pe(0),tn,tn,pe(2)];return`hsla(${o.getComponents("hsl").map((l,v)=>s[v](l)).join(", ")})`}function Tn(o,s){const r=pe(s==="float"?2:0),l=["r","g","b"];return`{${nn(o.getComponents("rgb",s)).map((w,k)=>`${l[k]}: ${r(w)}`).join(", ")}}`}function Kt(o){return s=>Tn(s,o)}function Qs(o,s){const r=pe(2),l=pe(s==="float"?2:0),v=["r","g","b","a"];return`{${o.getComponents("rgb",s).map((k,V)=>{const R=V===3?r:l;return`${v[V]}: ${R(k)}`}).join(", ")}}`}function Gt(o){return s=>Qs(s,o)}[...["int","float"].reduce((o,s)=>[...o,{format:{alpha:!1,mode:"rgb",notation:"func",type:s},stringifier:Hs(s)},{format:{alpha:!0,mode:"rgb",notation:"func",type:s},stringifier:Xs(s)},{format:{alpha:!1,mode:"rgb",notation:"object",type:s},stringifier:Kt(s)},{format:{alpha:!0,mode:"rgb",notation:"object",type:s},stringifier:Gt(s)}],[])];class Js{constructor(s){this.components=s.components,this.asm_=s.assembly}constrain(s){const r=this.asm_.toComponents(s).map((l,v)=>{var w,k;return(k=(w=this.components[v])===null||w===void 0?void 0:w.constrain(l))!==null&&k!==void 0?k:l});return this.asm_.fromComponents(r)}}const sn=M("pndtxt");class cs{constructor(s,r){this.textViews=r.textViews,this.element=s.createElement("div"),this.element.classList.add(sn()),this.textViews.forEach(l=>{const v=s.createElement("div");v.classList.add(sn("a")),v.appendChild(l.element),this.element.appendChild(v)})}}function ei(o,s,r){return new Gs(o,{arrayPosition:r===0?"fst":r===s.axes.length-1?"lst":"mid",baseStep:s.axes[r].baseStep,parser:s.parser,props:s.axes[r].textProps,value:ee(0,{constraint:s.axes[r].constraint}),viewProps:s.viewProps})}class Vn{constructor(s,r){this.value=r.value,this.viewProps=r.viewProps,this.acs_=r.axes.map((l,v)=>ei(s,r,v)),this.acs_.forEach((l,v)=>{Bt({primary:this.value,secondary:l.value,forward:w=>r.assembly.toComponents(w.rawValue)[v],backward:(w,k)=>{const V=r.assembly.toComponents(w.rawValue);return V[v]=k.rawValue,r.assembly.fromComponents(V)}})}),this.view=new cs(s,{textViews:this.acs_.map(l=>l.view)})}}function ti(o,s){return"step"in o&&!b(o.step)?new ke(o.step,s):null}function ni(o){return"max"in o&&!b(o.max)||"min"in o&&!b(o.min)?new mt({max:o.max,min:o.min}):null}const si={monitor:{defaultInterval:200,defaultLineCount:3}},Qe=M("grl");class ii{constructor(s,r){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=s.createElement("div"),this.element.classList.add(Qe()),r.viewProps.bindClassModifiers(this.element),this.formatter_=r.formatter,this.props_=r.props,this.cursor_=r.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const l=s.createElementNS($,"svg");l.classList.add(Qe("g")),l.style.height=`calc(var(--bld-us) * ${r.lineCount})`,this.element.appendChild(l),this.svgElem_=l;const v=s.createElementNS($,"polyline");this.svgElem_.appendChild(v),this.lineElem_=v;const w=s.createElement("div");w.classList.add(Qe("t"),M("tt")()),this.element.appendChild(w),this.tooltipElem_=w,r.value.emitter.on("change",this.onValueUpdate_),this.value=r.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const s=this.svgElem_.getBoundingClientRect(),r=this.value.rawValue.length-1,l=this.props_.get("minValue"),v=this.props_.get("maxValue"),w=[];this.value.rawValue.forEach(($e,Kn)=>{if($e===void 0)return;const Gn=J(Kn,0,r,0,s.width),at=J($e,l,v,s.height,0);w.push([Gn,at].join(","))}),this.lineElem_.setAttributeNS(null,"points",w.join(" "));const k=this.tooltipElem_,V=this.value.rawValue[this.cursor_.rawValue];if(V===void 0){k.classList.remove(Qe("t","a"));return}const R=J(this.cursor_.rawValue,0,r,0,s.width),ce=J(V,l,v,s.height,0);k.style.left=`${R}px`,k.style.top=`${ce}px`,k.textContent=`${this.formatter_(V)}`,k.classList.contains(Qe("t","a"))||(k.classList.add(Qe("t","a"),Qe("t","in")),oe(k),k.classList.remove(Qe("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ri{constructor(s,r){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_=r.props,this.value=r.value,this.viewProps=r.viewProps,this.cursor_=ee(-1),this.view=new ii(s,{cursor:this.cursor_,formatter:r.formatter,lineCount:r.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Wt(s))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const l=new Ze(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_(s){const r=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(J(s.offsetX,0,r.width,0,this.value.rawValue.length))}onGraphPointerDown_(s){this.onGraphPointerMove_(s)}onGraphPointerMove_(s){if(!s.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(J(s.data.point.x,0,s.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class oi{constructor(s){this.controller_=s}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(s){this.controller_.viewProps.set("disabled",s)}get title(){var s;return(s=this.controller_.props.get("title"))!==null&&s!==void 0?s:""}set title(s){this.controller_.props.set("title",s)}on(s,r){const l=r.bind(this);return this.controller_.emitter.on(s,()=>{l(new d(this))}),this}}class ai extends d{constructor(s,r,l){super(s),this.cell=r,this.index=l}}class li extends a{constructor(s){super(s),this.cellToApiMap_=new Map,this.emitter_=new E;const r=this.controller_.valueController;r.cellControllers.forEach((l,v)=>{const w=new oi(l);this.cellToApiMap_.set(l,w),l.emitter.on("click",()=>{const k=v%r.size[0],V=Math.floor(v/r.size[0]);this.emitter_.emit("click",{event:new ai(this,w,[k,V])})})})}cell(s,r){const l=this.controller_.valueController,v=l.cellControllers[r*l.size[0]+s];return this.cellToApiMap_.get(v)}on(s,r){const l=r.bind(this);return this.emitter_.on(s,v=>{l(v.event)}),this}}class ps{constructor(s,r){this.size=r.size;const[l,v]=this.size,w=[];for(let k=0;k<v;k++)for(let V=0;V<l;V++){const R=new ne(s,{props:se.fromObject(Object.assign({},r.cellConfig(V,k))),viewProps:Oe.create()});w.push(R)}this.cellCs_=w,this.viewProps=Oe.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(k=>{k.viewProps.set("disposed",!0)})}),this.view=new nt(s,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${l}, 1fr)`,this.cellCs_.forEach(k=>{this.view.element.appendChild(k.view.element)})}get cellControllers(){return this.cellCs_}}const ci={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(o){const s=W,r=B(o,{cells:s.required.function,size:s.required.array(s.required.number),view:s.required.constant("buttongrid"),label:s.optional.string});return r?{params:r}:null},controller(o){return new tt(o.document,{blade:o.blade,props:se.fromObject({label:o.params.label}),valueController:new ps(o.document,{cellConfig:o.params.cells,size:o.params.size})})},api(o){return!(o.controller instanceof tt)||!(o.controller.valueController instanceof ps)?null:new li(o.controller)}};class pi extends a{get label(){return this.controller_.props.get("label")}set label(s){this.controller_.props.set("label",s)}get value(){return this.controller_.valueController.value.rawValue}set value(s){this.controller_.valueController.value.rawValue=s}on(s,r){const l=r.bind(this);return this.controller_.valueController.value.emitter.on(s,v=>{l(new m(this,v.rawValue,void 0,v.options.last))}),this}}function Se(o,s,r){return o*(1-r)+s*r}const us=20,ui=.001,Nn=100;function di(o,s){let r=.25,l=.5,v=-1;for(let w=0;w<us;w++){const[k,V]=o.curve(l);if(l+=r*(k<s?1:-1),v=V,r*=.5,Math.abs(s-k)<ui)break}return v}class Be{constructor(s=0,r=0,l=1,v=1){this.cache_=[],this.comps_=[s,r,l,v]}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(s){return b(s)||!Array.isArray(s)?!1:typeof s[0]=="number"&&typeof s[1]=="number"&&typeof s[2]=="number"&&typeof s[3]=="number"}static equals(s,r){return s.x1===r.x1&&s.y1===r.y1&&s.x2===r.x2&&s.y2===r.y2}curve(s){const r=Se(0,this.x1,s),l=Se(0,this.y1,s),v=Se(this.x1,this.x2,s),w=Se(this.y1,this.y2,s),k=Se(this.x2,1,s),V=Se(this.y2,1,s),R=Se(r,v,s),ce=Se(l,w,s),$e=Se(v,k,s),Kn=Se(w,V,s);return[Se(R,$e,s),Se(ce,Kn,s)]}y(s){if(this.cache_.length===0){const r=[];for(let l=0;l<Nn;l++)r.push(di(this,J(l,0,Nn-1,0,1)));this.cache_=r}return this.cache_[Math.round(J(Ve(s,0,1),0,1,0,Nn-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const ds={toComponents:o=>o.toObject(),fromComponents:o=>new Be(...o)};function Ue(o){const s=pe(2);return`cubic-bezier(${o.toObject().map(l=>s(l)).join(", ")})`}const On=[0,.5,.5,1];function hi(o){const s=o.match(/^cubic-bezier\s*\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)\s*\)$/);if(!s)return new Be(...On);const r=[s[1],s[2],s[3],s[4]].reduce((l,v)=>{if(!l)return null;const w=Number(v);return isNaN(w)?null:[...l,w]},[]);return new Be(...r!=null?r:On)}const ie=M("cbz");class mi{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(ie()),r.viewProps.bindClassModifiers(this.element),r.foldable.bindExpandedClass(this.element,ie(void 0,"expanded")),I(r.foldable,"completed",Y(this.element,ie(void 0,"cpl")));const l=s.createElement("div");l.classList.add(ie("h")),this.element.appendChild(l);const v=s.createElement("button");v.classList.add(ie("b")),r.viewProps.bindDisabled(v);const w=s.createElementNS($,"svg");w.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',v.appendChild(w),l.appendChild(v),this.buttonElement=v;const k=s.createElement("div");if(k.classList.add(ie("t")),l.appendChild(k),this.textElement=k,r.pickerLayout==="inline"){const V=s.createElement("div");V.classList.add(ie("p")),this.element.appendChild(V),this.pickerElement=V}else this.pickerElement=null}}const gt=M("cbzp");class hs{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(gt()),r.viewProps.bindClassModifiers(this.element);const l=s.createElement("div");l.classList.add(gt("g")),this.element.appendChild(l),this.graphElement=l;const v=s.createElement("div");v.classList.add(gt("t")),this.element.appendChild(v),this.textElement=v}}function rn(o,s){const r=new MutationObserver(v=>{for(const w of v)w.type==="childList"&&w.addedNodes.forEach(k=>{!k.contains(k)||(s(),r.disconnect())})}),l=o.ownerDocument;r.observe(l.body,{attributes:!0,childList:!0,subtree:!0})}const ze=M("cbzg");function vi(o,s){return r=>s(o(r))}class fi{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(ze()),r.viewProps.bindClassModifiers(this.element),r.viewProps.bindTabIndex(this.element);const l=s.createElement("div");l.classList.add(ze("p")),this.element.appendChild(l),this.previewElement=l;const v=s.createElementNS($,"svg");v.classList.add(ze("g")),this.element.appendChild(v),this.svgElem_=v;const w=s.createElementNS($,"path");w.classList.add(ze("u")),this.svgElem_.appendChild(w),this.guideElem_=w;const k=s.createElementNS($,"polyline");k.classList.add(ze("l")),this.svgElem_.appendChild(k),this.lineElem_=k,this.handleElems_=[s.createElement("div"),s.createElement("div")],this.handleElems_.forEach(V=>{V.classList.add(ze("h")),this.element.appendChild(V)}),this.vectorElems_=[s.createElementNS($,"line"),s.createElementNS($,"line")],this.vectorElems_.forEach(V=>{V.classList.add(ze("v")),this.svgElem_.appendChild(V)}),this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=r.selection,this.handleElems_.forEach((V,R)=>{F(this.sel_,vi(ce=>ce===R,Y(V,ze("h","sel"))))}),rn(this.element,()=>{this.refresh()})}getVertMargin_(s){return s*.25}valueToPosition(s,r){const l=this.element.getBoundingClientRect(),v=l.width,w=l.height,k=this.getVertMargin_(w);return{x:J(s,0,1,0,v),y:J(r,0,1,w-k,k)}}positionToValue(s,r){const l=this.element.getBoundingClientRect(),v=l.width,w=l.height,k=this.getVertMargin_(w);return{x:Ve(J(s,0,v,0,1),0,1),y:J(r,w-k,k,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(w=>{const k=this.valueToPosition(0,w),V=this.valueToPosition(1,w);return[`M ${k.x},${k.y}`,`L ${V.x},${V.y}`].join(" ")}).join(" "));const s=this.value_.rawValue,r=[];let l=0;for(;;){const w=this.valueToPosition(...s.curve(l));if(r.push([w.x,w.y].join(",")),l>=1)break;l=Math.min(l+.05,1)}this.lineElem_.setAttributeNS(null,"points",r.join(" "));const v=s.toObject();[0,1].forEach(w=>{const k=this.valueToPosition(w,w),V=this.valueToPosition(v[w*2],v[w*2+1]),R=this.vectorElems_[w];R.setAttributeNS(null,"x1",String(k.x)),R.setAttributeNS(null,"y1",String(k.y)),R.setAttributeNS(null,"x2",String(V.x)),R.setAttributeNS(null,"y2",String(V.y));const ce=this.handleElems_[w];ce.style.left=`${V.x}px`,ce.style.top=`${V.y}px`})}onValueChange_(){this.refresh()}}const ms=24,wt=400,ve=1e3,De=M("cbzprv");class Ke{constructor(s,r){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=s.createElement("div"),this.element.classList.add(De()),r.viewProps.bindClassModifiers(this.element);const l=s.createElementNS($,"svg");l.classList.add(De("g")),this.element.appendChild(l),this.svgElem_=l;const v=s.createElementNS($,"path");v.classList.add(De("t")),this.svgElem_.appendChild(v),this.ticksElem_=v;const w=s.createElement("div");w.classList.add(De("m")),this.element.appendChild(w),this.markerElem_=w,this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_),r.viewProps.handleDispose(this.onDispose_),rn(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(De("m","a")),this.startTime_=new Date().getTime()+wt,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(De("m","a"))}onDispose_(){this.stop()}updateMarker_(s){const r=this.value_.rawValue.y(Ve(s,0,1));this.markerElem_.style.left=`${r*100}%`}refresh(){const s=this.svgElem_.getBoundingClientRect(),r=s.width,l=s.height,v=[],w=this.value_.rawValue;for(let k=0;k<ms;k++){const V=J(k,0,ms-1,0,1),R=J(w.y(V),0,1,0,r);v.push(`M ${R},0 v${l}`)}this.ticksElem_.setAttributeNS(null,"d",v.join(" "))}onTimer_(){if(this.startTime_===null)return;const s=new Date().getTime()-this.startTime_,r=s/ve;this.updateMarker_(r),s>ve+wt&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function In(o,s,r,l){const v=r-o,w=l-s;return Math.sqrt(v*v+w*w)}function vs(o,s,r,l){const v=In(o,s,r,l),w=Math.atan2(l-s,r-o),k=Math.round(w/(Math.PI/4))*Math.PI/4;return{x:o+Math.cos(k)*v,y:s+Math.sin(k)*v}}class Dn{constructor(s,r){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_=r.baseStep,this.value=r.value,this.sel_=ee(0),this.viewProps=r.viewProps,this.view=new fi(s,{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 Ke(s,{value:this.value,viewProps:this.viewProps}),this.prevView_.element.addEventListener("mousedown",v=>{v.stopImmediatePropagation(),v.preventDefault(),this.prevView_.play()}),this.view.previewElement.appendChild(this.prevView_.element);const l=new Ze(this.view.element);l.emitter.on("down",this.onPointerDown_),l.emitter.on("move",this.onPointerMove_),l.emitter.on("up",this.onPointerUp_)}refresh(){this.view.refresh(),this.prevView_.refresh(),this.prevView_.play()}updateValue_(s,r,l){const v=this.sel_.rawValue,w=this.value.rawValue.toObject(),k=this.view.positionToValue(s.x,s.y),V=r?vs(v,v,k.x,k.y):k;w[v*2]=V.x,w[v*2+1]=V.y,this.value.setRawValue(new Be(...w),l)}onPointerDown_(s){const r=s.data;if(!r.point)return;const l=this.value.rawValue,v=this.view.valueToPosition(l.x1,l.y1),w=In(r.point.x,r.point.y,v.x,v.y),k=this.view.valueToPosition(l.x2,l.y2),V=In(r.point.x,r.point.y,k.x,k.y);this.sel_.rawValue=w<=V?0:1,this.updateValue_(r.point,s.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(s){const r=s.data;!r.point||this.updateValue_(r.point,s.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(s){const r=s.data;!r.point||this.updateValue_(r.point,s.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(s){is(s.key)&&s.preventDefault();const r=this.sel_.rawValue,l=this.value.rawValue.toObject();l[r*2]+=bt(this.baseStep_,Mn(s)),l[r*2+1]+=bt(this.baseStep_,Ut(s)),this.value.setRawValue(new Be(...l),{forceEmit:!1,last:!1})}onKeyUp_(s){is(s.key)&&s.preventDefault();const r=bt(this.baseStep_,Mn(s)),l=bt(this.baseStep_,Ut(s));r===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class rt{constructor(s,r){this.value=r.value,this.viewProps=r.viewProps,this.view=new hs(s,{viewProps:this.viewProps}),this.gc_=new Dn(s,{baseStep:r.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const l=Object.assign(Object.assign({},r.axis),{constraint:new mt({max:1,min:0})}),v=Object.assign(Object.assign({},r.axis),{constraint:void 0});this.tc_=new Vn(s,{assembly:ds,axes:[l,v,l,v],parser:jt,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(s=>s.inputElement)]}refresh(){this.gc_.refresh()}}class te{constructor(s,r){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=r.value,this.viewProps=r.viewProps,this.foldable_=_n(r.expanded),this.view=new mi(s,{foldable:this.foldable_,pickerLayout:r.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new H(s,{parser:hi,props:se.fromObject({formatter:Ue}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=r.pickerLayout==="popup"?new P(s,{viewProps:this.viewProps}):null;const l=new rt(s,{axis:r.axis,value:this.value,viewProps:this.viewProps});l.allFocusableElements.forEach(v=>{v.addEventListener("blur",this.onPopupChildBlur_),v.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=l,this.popC_?(this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),F(this.popC_.shows,v=>{v&&l.refresh()}),Bt({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:v=>v.rawValue,backward:(v,w)=>w.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),qe(this.foldable_,this.view.pickerElement))}onButtonBlur_(s){if(!this.popC_)return;const r=s.relatedTarget;(!r||!this.popC_.view.element.contains(r))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.allFocusableElements[0].focus()}onPopupChildBlur_(s){if(!this.popC_)return;const r=this.popC_.view.element,l=Vt(s);l&&r.contains(l)||l&&l===this.view.buttonElement&&!Wt(r.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(s){!this.popC_||s.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function fs(){return new Js({assembly:ds,components:[0,1,2,3].map(o=>o%2===0?new mt({min:0,max:1}):void 0)})}const le={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(o){const s=W,r=B(o,{value:s.required.array(s.required.number),view:s.required.constant("cubicbezier"),expanded:s.optional.boolean,label:s.optional.string,picker:s.optional.custom(l=>l==="inline"||l==="popup"?l:void 0)});return r?{params:r}:null},controller(o){var s,r;const l=new Be(...o.params.value),v=ee(l,{constraint:fs(),equals:Be.equals}),w=new te(o.document,{axis:{baseStep:.1,textProps:se.fromObject({draggingScale:.01,formatter:pe(2)})},expanded:(s=o.params.expanded)!==null&&s!==void 0?s:!1,pickerLayout:(r=o.params.picker)!==null&&r!==void 0?r:"popup",value:v,viewProps:o.viewProps});return new He(o.document,{blade:o.blade,props:se.fromObject({label:o.params.label}),valueController:w})},api(o){return!(o.controller instanceof He)||!(o.controller.valueController instanceof te)?null:new pi(o.controller)}};class bs extends a{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const ye=20;class bi{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(s){this.start_=s.getTime()}calculateFps_(s){if(this.timestamps_.length===0)return null;const r=this.timestamps_[0];return 1e3*(this.frameCount_-r.frameCount)/(s-r.time)}compactTimestamps_(){if(this.timestamps_.length<=ye)return;const s=this.timestamps_.length-ye;this.timestamps_.splice(0,s);const r=this.timestamps_[0].frameCount;this.timestamps_.forEach(l=>{l.frameCount-=r}),this.frameCount_-=r}end(s){if(this.start_===null)return;const r=s.getTime();this.duration_=r-this.start_,this.start_=null,this.fps_=this.calculateFps_(r),this.timestamps_.push({frameCount:this.frameCount_,time:r}),++this.frameCount_,this.compactTimestamps_()}}const Ge=M("fps");class Rn{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add(Ge()),r.viewProps.bindClassModifiers(this.element),this.graphElement=s.createElement("div"),this.graphElement.classList.add(Ge("g")),this.element.appendChild(this.graphElement);const l=s.createElement("div");l.classList.add(Ge("l")),this.element.appendChild(l);const v=s.createElement("span");v.classList.add(Ge("v")),v.textContent="--",l.appendChild(v),this.valueElement=v;const w=s.createElement("span");w.classList.add(Ge("u")),w.textContent="FPS",l.appendChild(w)}}class _s{constructor(s,r){this.stopwatch_=new bi,this.onTick_=this.onTick_.bind(this),this.ticker_=r.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=r.value,this.viewProps=r.viewProps,this.view=new Rn(s,{viewProps:this.viewProps}),this.graphC_=new ri(s,{formatter:pe(0),lineCount:r.lineCount,props:se.fromObject({maxValue:r.maxValue,minValue:r.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 s=this.stopwatch_.fps;if(s!==null){const r=this.value_.rawValue;this.value_.rawValue=zs(r,s),this.view.valueElement.textContent=s.toFixed(0)}}}function _i(o,s){return s===0?new Ye:new wn(o,s!=null?s:si.monitor.defaultInterval)}const Fn={id:"fpsgraph",type:"blade",accept(o){const s=W,r=B(o,{view:s.required.constant("fpsgraph"),interval:s.optional.number,label:s.optional.string,lineCount:s.optional.number,max:s.optional.number,min:s.optional.number});return r?{params:r}:null},controller(o){var s,r,l,v;const w=(s=o.params.interval)!==null&&s!==void 0?s:500;return new tt(o.document,{blade:o.blade,props:se.fromObject({label:o.params.label}),valueController:new _s(o.document,{lineCount:(r=o.params.lineCount)!==null&&r!==void 0?r:2,maxValue:(l=o.params.max)!==null&&l!==void 0?l:90,minValue:(v=o.params.min)!==null&&v!==void 0?v:0,ticker:_i(o.document,w),value:ns(80),viewProps:o.viewProps})})},api(o){return!(o.controller instanceof tt)||!(o.controller.valueController instanceof _s)?null:new bs(o.controller)}};class Ae{constructor(s,r){this.min=s,this.max=r}static isObject(s){if(typeof s!="object"||s===null)return!1;const r=s.min,l=s.max;return!(typeof r!="number"||typeof l!="number")}static equals(s,r){return s.min===r.min&&s.max===r.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const on={fromComponents:o=>new Ae(o[0],o[1]),toComponents:o=>[o.min,o.max]};class xt{constructor(s){this.edge=s}constrain(s){var r,l,v,w,k,V,R,ce;if(s.min<=s.max)return new Ae((l=(r=this.edge)===null||r===void 0?void 0:r.constrain(s.min))!==null&&l!==void 0?l:s.min,(w=(v=this.edge)===null||v===void 0?void 0:v.constrain(s.max))!==null&&w!==void 0?w:s.max);const $e=(s.min+s.max)/2;return new Ae((V=(k=this.edge)===null||k===void 0?void 0:k.constrain($e))!==null&&V!==void 0?V:$e,(ce=(R=this.edge)===null||R===void 0?void 0:R.constrain($e))!==null&&ce!==void 0?ce:$e)}}const yt=M("rsltxt");class gs{constructor(s,r){this.sliderView_=r.sliderView,this.textView_=r.textView,this.element=s.createElement("div"),this.element.classList.add(yt());const l=s.createElement("div");l.classList.add(yt("s")),l.appendChild(this.sliderView_.element),this.element.appendChild(l);const v=s.createElement("div");v.classList.add(yt("t")),v.appendChild(this.textView_.element),this.element.appendChild(v)}}const be=M("rsl");class ws{constructor(s,r){this.maxValue_=r.maxValue,this.minValue_=r.minValue,this.element=s.createElement("div"),this.element.classList.add(be()),r.viewProps.bindClassModifiers(this.element),this.value_=r.value,this.value_.emitter.on("change",this.onValueChange_.bind(this));const l=s.createElement("div");l.classList.add(be("t")),this.element.appendChild(l),this.trackElement=l;const v=s.createElement("div");v.classList.add(be("b")),l.appendChild(v),this.barElement=v;const w=["min","max"].map(k=>{const V=s.createElement("div");return V.classList.add(be("k"),be("k",k)),l.appendChild(V),V});this.knobElements=[w[0],w[1]],this.update()}valueToX_(s){return Ve(J(s,this.minValue_,this.maxValue_,0,1),0,1)*100}update(){const s=this.value_.rawValue;s.length===0?this.element.classList.add(be(void 0,"zero")):this.element.classList.remove(be(void 0,"zero"));const r=[this.valueToX_(s.min),this.valueToX_(s.max)];this.barElement.style.left=`${r[0]}%`,this.barElement.style.right=`${100-r[1]}%`,this.knobElements.forEach((l,v)=>{l.style.left=`${r[v]}%`})}onValueChange_(){this.update()}}class jn{constructor(s,r){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.maxValue_=r.maxValue,this.minValue_=r.minValue,this.viewProps=r.viewProps,this.value=r.value,this.view=new ws(s,{maxValue:r.maxValue,minValue:r.minValue,value:this.value,viewProps:r.viewProps});const l=new Ze(this.view.trackElement);l.emitter.on("down",this.onPointerDown_),l.emitter.on("move",this.onPointerMove_),l.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_(s){if(!s.point)return null;const r=(s.point.x+this.ofs_())/s.bounds.width;return J(r,0,1,this.minValue_,this.maxValue_)}onPointerDown_(s){if(!s.data.point)return;const r=s.data.point.x/s.data.bounds.width,l=this.value.rawValue,v=J(l.min,this.minValue_,this.maxValue_,0,1),w=J(l.max,this.minValue_,this.maxValue_,0,1);Math.abs(w-r)<=.025?this.grabbing_="max":Math.abs(v-r)<=.025?this.grabbing_="min":r>=v&&r<=w?(this.grabbing_="length",this.grabOffset_=J(r-v,0,1,0,this.maxValue_-this.minValue_)):r<v?(this.grabbing_="min",this.onPointerMove_(s)):r>w&&(this.grabbing_="max",this.onPointerMove_(s))}applyPointToValue_(s,r){const l=this.valueFromData_(s);if(l!==null){if(this.grabbing_==="min")this.value.setRawValue(new Ae(l,this.value.rawValue.max),r);else if(this.grabbing_==="max")this.value.setRawValue(new Ae(this.value.rawValue.min,l),r);else if(this.grabbing_==="length"){const v=this.value.rawValue.length;let w=l-this.grabOffset_,k=w+v;w<this.minValue_?(w=this.minValue_,k=this.minValue_+v):k>this.maxValue_&&(w=this.maxValue_-v,k=this.maxValue_),this.value.setRawValue(new Ae(w,k),r)}}}onPointerMove_(s){this.applyPointToValue_(s.data,{forceEmit:!1,last:!1})}onPointerUp_(s){this.applyPointToValue_(s.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class Bn{constructor(s,r){this.value=r.value,this.viewProps=r.viewProps,this.sc_=new jn(s,r);const l={baseStep:r.baseStep,constraint:r.constraint,textProps:se.fromObject({draggingScale:r.draggingScale,formatter:r.formatter})};this.tc_=new Vn(s,{assembly:on,axes:[l,l],parser:r.parser,value:this.value,viewProps:r.viewProps}),this.view=new gs(s,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function gi(o){return Ae.isObject(o)?new Ae(o.min,o.max):new Ae(0,0)}function an(o,s){o.writeProperty("max",s.max),o.writeProperty("min",s.min)}function Ct(o){const s=[],r=ni(o);r&&s.push(r);const l=ti(o);return l&&s.push(l),new xt(new Ot(s))}const Pt={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:(o,s)=>{if(!Ae.isObject(o))return null;const r=W,l=B(s,{format:r.optional.function,max:r.optional.number,min:r.optional.number,step:r.optional.number});return l?{initialValue:new Ae(o.min,o.max),params:l}:null},binding:{reader:o=>gi,constraint:o=>Ct(o.params),equals:Ae.equals,writer:o=>an},controller(o){var s;const r=o.value,l=o.constraint;if(!(l instanceof xt))throw x.shouldNeverHappen();const v=(r.rawValue.min+r.rawValue.max)/2,w=(s=o.params.format)!==null&&s!==void 0?s:pe($s(l.edge,v)),k=l.edge&&Ie(l.edge,mt);if((k==null?void 0:k.minValue)!==void 0&&(k==null?void 0:k.maxValue)!==void 0)return new Bn(o.document,{baseStep:An(l.edge),constraint:l.edge,draggingScale:os(k,v),formatter:w,maxValue:k.maxValue,minValue:k.minValue,parser:jt,value:r,viewProps:o.viewProps});const V={baseStep:An(l.edge),constraint:l.edge,textProps:se.fromObject({draggingScale:v,formatter:w})};return new Vn(o.document,{assembly:on,axes:[V,V],parser:jt,value:r,viewProps:o.viewProps})}};class ln{constructor(s){this.controller_=s}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(s){this.controller_.viewProps.set("disabled",s)}get title(){var s;return(s=this.controller_.props.get("title"))!==null&&s!==void 0?s:""}set title(s){this.controller_.props.set("title",s)}}class wi extends m{constructor(s,r,l,v,w){super(s,v,w),this.cell=r,this.index=l}}class xi extends a{constructor(s){super(s),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(l=>{const v=new ln(l);this.cellToApiMap_.set(l,v)})}get value(){return this.controller_.value}cell(s,r){const l=this.controller_.valueController,v=l.cellControllers[r*l.size[0]+s];return this.cellToApiMap_.get(v)}on(s,r){const l=r.bind(this);this.controller_.value.emitter.on(s,v=>{const w=this.controller_.valueController,k=w.findCellByValue(v.rawValue);if(!k)return;const V=this.cellToApiMap_.get(k);if(!V)return;const R=w.cellControllers.indexOf(k);l(new wi(this,V,[R%w.size[0],Math.floor(R/w.size[0])],v.rawValue,void 0))})}}const $t=M("rad");class yi{constructor(s,r){this.element=s.createElement("div"),this.element.classList.add($t()),r.viewProps.bindClassModifiers(this.element);const l=s.createElement("label");l.classList.add($t("l")),this.element.appendChild(l);const v=s.createElement("input");v.classList.add($t("i")),v.name=r.name,v.type="radio",r.viewProps.bindDisabled(v),l.appendChild(v),this.inputElement=v;const w=s.createElement("div");w.classList.add($t("b")),l.appendChild(w);const k=s.createElement("div");k.classList.add($t("t")),w.appendChild(k),I(r.props,"title",V=>{k.textContent=V})}}class ot{constructor(s,r){this.props=r.props,this.viewProps=r.viewProps,this.view=new yi(s,{name:r.name,props:this.props,viewProps:this.viewProps})}}class Un{constructor(s,r){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=r.size;const[l,v]=this.size;for(let w=0;w<v;w++)for(let k=0;k<l;k++){const V=new ot(s,{name:r.groupName,props:se.fromObject(Object.assign({},r.cellConfig(k,w))),viewProps:Oe.create()});this.cellCs_.push(V),this.cellValues_.push(r.cellConfig(k,w).value)}this.value=r.value,F(this.value,w=>{const k=this.findCellByValue(w);!k||(k.view.inputElement.checked=!0)}),this.viewProps=Oe.create(),this.view=new nt(s,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${l}, 1fr)`,this.cellCs_.forEach(w=>{w.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(w.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(s){const r=this.cellValues_.findIndex(l=>l===s);return r<0?null:this.cellCs_[r]}onCellInputChange_(s){const r=s.currentTarget,l=this.cellCs_.findIndex(v=>v.view.inputElement===r);l<0||(this.value.rawValue=this.cellValues_[l])}}const Ci=function(){return{id:"radiogrid",type:"blade",accept(o){const s=W,r=B(o,{cells:s.required.function,groupName:s.required.string,size:s.required.array(s.required.number),value:s.required.raw,view:s.required.constant("radiogrid"),label:s.optional.string});return r?{params:r}:null},controller(o){return new He(o.document,{blade:o.blade,props:se.fromObject({label:o.params.label}),valueController:new Un(o.document,{groupName:o.params.groupName,cellConfig:o.params.cells,size:o.params.size,value:ee(o.params.value)})})},api(o){return!(o.controller instanceof He)||!(o.controller.valueController instanceof Un)?null:new xi(o.controller)}}}();function zn(o){return{id:"input-radiogrid",type:"input",accept(s,r){if(!o.isType(s))return null;const l=W,v=B(r,{cells:l.required.function,groupName:l.required.string,size:l.required.array(l.required.number),view:l.required.constant("radiogrid")});return v?{initialValue:s,params:v}:null},binding:o.binding,controller:s=>new Un(s.document,{cellConfig:s.params.cells,groupName:s.params.groupName,size:s.params.size,value:s.value})}}const Pi=zn({isType:o=>typeof o=="number",binding:{reader:o=>We,writer:o=>it}}),xs=zn({isType:o=>typeof o=="string",binding:{reader:o=>ts,writer:o=>it}}),Ei=zn({isType:o=>typeof o=="boolean",binding:{reader:o=>ae,writer:o=>it}}),ki=[ci,le,Fn,Pt,Ci,Ei,Pi,xs];p.CubicBezier=Be,p.plugins=ki,Object.defineProperty(p,"__esModule",{value:!0})})})(Xn,Xn.exports);const yo=_o(Xn.exports),Co=jr({__proto__:null,default:yo},[Xn.exports]);let Ht,Wn;const Po=(L="tres-container")=>{Ht=new Ss.exports.Pane({container:document.querySelector(L)||void 0}),Ht.registerPlugin(Co),Wn=Ht.addBlade({view:"fpsgraph",label:"fpsgraph"});function u(){Ht&&Ht.dispose()}return Te.onMounted(()=>{const{onBeforeLoop:p,onAfterLoop:a,resume:d}=Cs.useRenderLoop();d(),p(()=>Wn.begin()),a(()=>Wn.end())}),Te.onUnmounted(()=>{u()}),{pane:Ht,fpsGraph:Wn,disposeTweakPane:u}};let As=null;function Eo(L,u){return p=>{u&&u(p),As||(As=new go),As.setDecoderPath(L.decoderPath||"https://www.gstatic.com/draco/versioned/decoders/1.4.3/")}}async function er(L,u={draco:!1},p){return await Cs.useLoader(Ur,L,Eo(u,p))}const ko=Te.defineComponent({name:"GLTFModel",props:{path:String,draco:Boolean},async setup(L){const u=Te.inject("local-scene"),{scene:p}=await er(L.path,{draco:L.draco});return u!=null&&u.value&&u.value.add(p),()=>null}});Ne.GLTFModel=ko,Ne.OrbitControls=xo,Ne.useGLTF=er,Ne.useTweakPane=Po,Object.defineProperties(Ne,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});