@tresjs/cientos 0.2.0 → 0.3.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.
- package/dist/core/OrbitControls.vue.d.ts +8 -4
- package/dist/trescientos.js +496 -503
- package/dist/trescientos.umd.cjs +5 -5
- package/package.json +3 -3
package/dist/trescientos.umd.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/cientos
|
|
3
|
-
* version: v0.
|
|
3
|
+
* version: v0.3.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(Rt,Vt){typeof exports=="object"&&typeof module<"u"?Vt(exports,require("vue"),require("@tresjs/core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","@tresjs/core","three"],Vt):(Rt=typeof globalThis<"u"?globalThis:Rt||self,Vt(Rt.trescientos={},Rt.Vue,Rt.core,Rt.Three))})(this,function(Rt,Vt,Ls,E){"use strict";function mr(Y,$){for(var L=0;L<$.length;L++){const u=$[L];if(typeof u!="string"&&!Array.isArray(u)){for(const B in u)if(B!=="default"&&!(B in Y)){const rt=Object.getOwnPropertyDescriptor(u,B);rt&&Object.defineProperty(Y,B,rt.get?rt:{enumerable:!0,get:()=>u[B]})}}}return Object.freeze(Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"}))}function k(Y,$,L){return $ in Y?Object.defineProperty(Y,$,{value:L,enumerable:!0,configurable:!0,writable:!0}):Y[$]=L,Y}const Ms=(Y,$)=>(Y%$+$)%$;class br extends E.EventDispatcher{constructor($,L){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=L,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=Ms(v,2*Math.PI),x=D.phi;x<0&&(x+=2*Math.PI),f<0&&(f+=2*Math.PI);let T=Math.abs(f-x);2*Math.PI-T<T&&(f<x?f+=2*Math.PI:x+=2*Math.PI),A.phi=f-x,u.update()},this.setAzimuthalAngle=v=>{let f=Ms(v,2*Math.PI),x=D.theta;x<0&&(x+=2*Math.PI),f<0&&(f+=2*Math.PI);let T=Math.abs(f-x);2*Math.PI-T<T&&(f<x?f+=2*Math.PI:x+=2*Math.PI),A.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(B),u.update(),U=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(),T=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&&U===y.NONE&&Ce(G()),u.enableDamping?(D.theta+=A.theta*u.dampingFactor,D.phi+=A.phi*u.dampingFactor):(D.theta+=A.theta,D.phi+=A.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*=K,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?(A.theta*=1-u.dampingFactor,A.phi*=1-u.dampingFactor,jt.multiplyScalar(1-u.dampingFactor)):(A.set(0,0,0),jt.set(0,0,0)),K=1,S||T.distanceToSquared(u.object.position)>Mt||8*(1-W.dot(u.object.quaternion))>Mt?(u.dispatchEvent(B),T.copy(u.object.position),W.copy(u.object.quaternion),S=!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",Le),u.domElement.addEventListener("pointercancel",Ft),u.domElement.addEventListener("wheel",yt)},this.dispose=()=>{var v,f,x,T,W,ft;(v=u.domElement)===null||v===void 0||v.removeEventListener("contextmenu",Pt),(f=u.domElement)===null||f===void 0||f.removeEventListener("pointerdown",Le),(x=u.domElement)===null||x===void 0||x.removeEventListener("pointercancel",Ft),(T=u.domElement)===null||T===void 0||T.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,B={type:"change"},rt={type:"start"},Lt={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 U=y.NONE;const Mt=1e-6,D=new E.Spherical,A=new E.Spherical;let K=1;const jt=new E.Vector3;let S=!1;const nt=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?A.theta+=v:A.theta-=v}function ye(v){u.reverseOrbit?A.phi+=v:A.phi-=v}const ht=(()=>{const v=new E.Vector3;return function(x,T){v.setFromMatrixColumn(T,0),v.multiplyScalar(-x),jt.add(v)}})(),Pe=(()=>{const v=new E.Vector3;return function(x,T){u.screenSpacePanning===!0?v.setFromMatrixColumn(T,1):(v.setFromMatrixColumn(T,0),v.crossVectors(u.object.up,v)),v.multiplyScalar(x),jt.add(v)}})(),z=(()=>{const v=new E.Vector3;return function(x,T){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*T*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(T*(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?K/=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(),S=!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?K*=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(),S=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),u.enableZoom=!1)}function $e(v){nt.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,nt).multiplyScalar(u.rotateSpeed);const f=u.domElement;f&&(Ce(2*Math.PI*j.x/f.clientHeight),ye(2*Math.PI*j.y/f.clientHeight)),nt.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)nt.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);nt.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=At(v),T=.5*(v.pageX+x.x),W=.5*(v.pageY+x.y);tt.set(T,W)}j.subVectors(tt,nt).multiplyScalar(u.rotateSpeed);const f=u.domElement;f&&(Ce(2*Math.PI*j.x/f.clientHeight),ye(2*Math.PI*j.y/f.clientHeight)),nt.copy(tt)}function re(v){if(O.length==1)V.set(v.pageX,v.pageY);else{const f=At(v),x=.5*(v.pageX+f.x),T=.5*(v.pageY+f.y);V.set(x,T)}Ct.subVectors(V,dt).multiplyScalar(u.panSpeed),z(Ct.x,Ct.y),dt.copy(V)}function oe(v){const f=At(v),x=v.pageX-f.x,T=v.pageY-f.y,W=Math.sqrt(x*x+T*T);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 Le(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"?Me(v):Ye(v))}function Wt(v){if(bt(v),O.length===0){var f,x,T;(f=u.domElement)===null||f===void 0||f.releasePointerCapture(v.pointerId),(x=u.domElement)===null||x===void 0||x.ownerDocument.removeEventListener("pointermove",Kt),(T=u.domElement)===null||T===void 0||T.ownerDocument.removeEventListener("pointerup",Wt)}u.dispatchEvent(Lt),U=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),U=y.DOLLY;break;case E.MOUSE.ROTATE:if(v.ctrlKey||v.metaKey||v.shiftKey){if(u.enablePan===!1)return;lt(v),U=y.PAN}else{if(u.enableRotate===!1)return;$e(v),U=y.ROTATE}break;case E.MOUSE.PAN:if(v.ctrlKey||v.metaKey||v.shiftKey){if(u.enableRotate===!1)return;$e(v),U=y.ROTATE}else{if(u.enablePan===!1)return;lt(v),U=y.PAN}break;default:U=y.NONE}U!==y.NONE&&u.dispatchEvent(rt)}function Ye(v){if(u.enabled!==!1)switch(U){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||U!==y.NONE&&U!==y.ROTATE||(v.preventDefault(),u.dispatchEvent(rt),cn(v),u.dispatchEvent(Lt))}function $t(v){u.enabled===!1||u.enablePan===!1||qe(v)}function hn(v){switch(St(v),O.length){case 1:switch(u.touches.ONE){case E.TOUCH.ROTATE:if(u.enableRotate===!1)return;ke(),U=y.TOUCH_ROTATE;break;case E.TOUCH.PAN:if(u.enablePan===!1)return;Ve(),U=y.TOUCH_PAN;break;default:U=y.NONE}break;case 2:switch(u.touches.TWO){case E.TOUCH.DOLLY_PAN:if(u.enableZoom===!1&&u.enablePan===!1)return;mt(),U=y.TOUCH_DOLLY_PAN;break;case E.TOUCH.DOLLY_ROTATE:if(u.enableZoom===!1&&u.enableRotate===!1)return;Xt(),U=y.TOUCH_DOLLY_ROTATE;break;default:U=y.NONE}break;default:U=y.NONE}U!==y.NONE&&u.dispatchEvent(rt)}function Me(v){switch(St(v),U){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:U=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 St(v){let f=Z[v.pointerId];f===void 0&&(f=new E.Vector2,Z[v.pointerId]=f),f.set(v.pageX,v.pageY)}function At(v){const f=v.pointerId===O[0].pointerId?O[1]:O[0];return Z[f.pointerId]}L!==void 0&&this.connect(L),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=Vt.defineComponent({__name:"OrbitControls",setup(Y){let $;const L=Vt.inject("camera"),u=Vt.inject("renderer");return Vt.watch([L,u],()=>{if((L==null?void 0:L.value)&&(u==null?void 0:u.value)){$=new br(L.value,Vt.unref(u).domElement),$.enableDamping=!0;const{onLoop:B}=Ls.useRenderLoop();B(()=>{$&&$.update()})}},{deep:!0}),()=>{}}});var bi={exports:{}};/*! Tweakpane 3.1.0 (c) 2016 cocopon, licensed under the MIT license. */(function(Y,$){(function(L,u){u($)})(Ss,function(L){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 B{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 rt{constructor(t){this.target=t}}class Lt extends rt{constructor(t,e,s,l){super(t),this.value=e,this.presetKey=s,this.last=l!=null?l:!0}}class y extends rt{constructor(t,e,s){super(t),this.value=e,this.presetKey=s}}class U extends rt{constructor(t,e){super(t),this.expanded=e}}class Mt extends rt{constructor(t,e){super(t),this.index=e}}function D(n){return n}function A(n){return n==null}function K(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 S{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 S({type:"alreadydisposed"})}static notBindable(){return new S({type:"notbindable"})}static propertyNotFound(t){return new S({type:"propertynotfound",context:{name:t}})}static shouldNeverHappen(){return new S({type:"shouldneverhappen"})}}class nt{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(!nt.isBindable(s))throw S.notBindable();if(!(t in s))throw S.propertyNotFound(t);s[t]=e}}class tt extends B{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 rt(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 Le={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=Le[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 Me{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=>{A(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 Me(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 St(){return new C({positions:z([],{equals:K})})}class At 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 At(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")&&!A(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),A(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 T extends B{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 S.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 B{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 Lt(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 B{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 T?n.rackApi_.apiSet_:null}function Ae(n,t){const e=n.find(s=>s.controller_===t);if(!e)throw S.shouldNeverHappen();return e}function Ze(n,t,e){if(!nt.isBindable(n))throw S.notBindable();return new nt(n,t,e)}class Te extends B{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 Lt(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 Lt(s,e.value.rawValue,void 0,t.options.last)})}}onRackMonitorUpdate_(t){if(!(t.bladeController instanceof Ht))throw S.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 T{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 U(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 S.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 S.shouldNeverHappen();this.emitter.emit("monitorupdate",{bladeController:e,sender:this})}onChildValueChange_(t){const e=wi(this.find(bt),t.sender);if(!e)throw S.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=>{A(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=At.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 Me(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 B{}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:St(),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 T{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 S.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 S.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 S.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 S.shouldNeverHappen();this.pageApiMap_.delete(t.item)}onSelect_(t){this.emitter_.emit("select",{event:new Mt(this,t.rawValue)})}}const Zn=-1;class Li{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 Li;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 Mi(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:St(),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 A(this.minValue)||(e=Math.max(e,this.minValue)),A(this.maxValue)||(e=Math.min(e,this.maxValue)),e}}class it{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);A(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=Tt(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 Tt(n,t){return t+=Re(n,t).length,Qi(n,t)}function ri(n){const t=Tt(n,0);return!t||t.cursor+Re(n,t.cursor).length!==n.length?null:t.evaluable}function Ot(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=Ot(n);if(!A(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 Dt(n,t){for(;n.length<t;)n.push(void 0)}function es(n){const t=[];return Dt(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):Dt(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 st(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 Nt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function Ln(n){return n==="ArrowUp"||n==="ArrowDown"}function li(n){return Ln(n)||n==="ArrowLeft"||n==="ArrowRight"}function Mn(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_(Mn(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onDocumentMouseMove_(t){this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(Mn(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_(Mn(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 F(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 zt{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);A(l)||(this.value.rawValue=this.constrainValue_(l)),this.view.refresh()}onInputKeyDown_(t){const e=st(this.baseStep_,Et(t));e!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+e),{forceEmit:!1,last:!1})}onInputKeyUp_(t){st(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(F(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(F(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=st(this.baseStep_,Nt(t));e!==0&&this.value.setRawValue(this.value.rawValue+e,{forceEmit:!1,last:!1})}onKeyUp_(t){st(this.baseStep_,Nt(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 zt(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 A(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,it):null;return t?t.step:null}function nn(n,t){const e=n&&R(n,it);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,it),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"||A(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 It{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),F(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),F(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 Lr(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 Mr(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:Mr(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=F(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=st(ne(!0),Nt(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){st(ne(!0),Nt(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 zt(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=F(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=F(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=st(ne(!1),Nt(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){st(ne(!1),Nt(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=F(I,0,l,0,100),Bn=F(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=F(s[1],0,100,0,100);this.markerElem_.style.left=`${w}%`;const P=F(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=F(t.point.x,0,t.bounds.width,0,100),l=F(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=st(h,Nt(t)),w=st(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=st(e,Nt(t)),l=st(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 zt(t,{parser:Ot,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:Ot,value:this.value,viewProps:this.viewProps}),this.view=new It(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_=At.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,F(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 Lr((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 S.shouldNeverHappen();const e=io(t);if(!e)throw S.notBindable();return e}},controller:n=>{const t=hs(n.initialValue,Ue(n.params));if(!t)throw S.shouldNeverHappen();const e=bs(t);if(!e)throw S.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 zt(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&&!A(n.step)?new it(n.step,t):null}function er(n){return"max"in n&&!A(n.max)||"min"in n&&!A(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:Ot,sliderProps:C.fromObject({maxValue:b,minValue:h}),textProps:C.fromObject({draggingScale:fe(l,s.rawValue),formatter:c}),value:s,viewProps:n.viewProps})}return new zt(n.document,{baseStep:be(l),parser:Ot,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(A(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=F(t,-s,+s,0,100),c=F(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[st(t[0],Nt(n)),st(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=F(t.point.x,0,t.bounds.width,-s,+s),c=F(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_=At.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 Lo(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 Mo(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=>Mo(n.params,n.initialValue),equals:ge.equals,writer:n=>Lo},controller:n=>{const t=n.document,e=n.value,s=n.constraint;if(!(s instanceof _e))throw S.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:Ot,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(A(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 S.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:Ot,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(A(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 S.shouldNeverHappen();return new ys(n.document,{assembly:ar,axes:t.rawValue.getComponents().map((s,l)=>Bo(s,e.components[l])),parser:Ot,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=F(I,0,e,0,t.width),Bn=F(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=F(this.cursor_.rawValue,0,e,0,t.width),P=F(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(F(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(F(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&&!A(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(A(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:St(),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(A(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:St(),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(A(l))throw new S({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 S({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 S({context:{key:e.key},type:"nomatchingcontroller"})}createBlade(t,e){const s=this.pluginsMap_.blades.reduce((l,c)=>l!=null?l:Mi(c,{document:t,params:e}),null);if(!s)throw new S({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 S.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 B{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Lt(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 B{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Lt(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 B{constructor(t){super(t),this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new Lt(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:Ot,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:St(),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 S.alreadyDisposed();return this.doc_}dispose(){const t=this.containerElem_;if(!t)throw S.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");L.BladeApi=B,L.ButtonApi=tt,L.FolderApi=vn,L.InputBindingApi=ct,L.ListApi=ur,L.MonitorBindingApi=Qt,L.Pane=va,L.SeparatorApi=_n,L.SliderApi=dr,L.TabApi=Xn,L.TabPageApi=gn,L.TextApi=hr,L.TpChangeEvent=Lt,L.VERSION=ma,Object.defineProperty(L,"__esModule",{value:!0})})})(bi,bi.exports);var Kn={exports:{}};(function(Y,$){(function(L,u){u($)})(Ss,function(L){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 B{constructor(i){this.target=i}}class rt extends B{constructor(i,r,a,p){super(i),this.value=r,this.presetKey=a,this.last=p!=null?p:!0}}function Lt(o){return o}function y(o){return o==null}const U={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=U[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 A="tp";function K(o){return(r,a)=>[A,"-",o,"v",r?`_${r}`:"",a?`-${a}`:""].join("")}function jt(o,i){return r=>i(o(r))}function S(o){return o.rawValue}function nt(o,i){o.emitter.on("change",jt(S,i)),i(o.rawValue)}function tt(o,i,r){nt(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){nt(o,r=>{i.textContent=r!=null?r:""})}const Ct=K("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=K(""),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=K("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 Le(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",()=>{Le(o,i)}),Le(o,i),i.addEventListener("transitionend",r=>{r.propertyName==="height"&&o.cleanUpTransition()})}class Wt{constructor(i,r){const a=K(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=K("");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 Me{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 Me){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 St=K("pop");class At{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(St()),r.viewProps.bindClassModifiers(this.element),nt(r.shows,dt(this.element,St(void 0,"v")))}}class v{constructor(i,r){this.shows=Z(!1),this.viewProps=r.viewProps,this.view=new At(i,{shows:this.shows,viewProps:this.viewProps})}}const f=K("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 T{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 Li(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 Mi(o){return o==="ArrowUp"||o==="ArrowDown"}function Wn(o){return Mi(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 it=K("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(it(),it(void 0,"num")),r.arrayPosition&&this.element.classList.add(it(void 0,r.arrayPosition)),r.viewProps.bindClassModifiers(this.element);const a=i.createElement("input");a.classList.add(it("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(it()),this.inputElement.classList.add(it("i"));const p=i.createElement("div");p.classList.add(it("k")),this.element.appendChild(p),this.knobElement=p;const d=i.createElementNS(M,"svg");d.classList.add(it("g")),this.knobElement.appendChild(d);const m=i.createElementNS(M,"path");m.classList.add(it("gb")),d.appendChild(m),this.guideBodyElem_=m;const _=i.createElementNS(M,"path");_.classList.add(it("gh")),d.appendChild(_),this.guideHeadElem_=_;const g=i.createElement("div");g.classList.add(K("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(it(void 0,"drg"));return}this.element.classList.add(it(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=K("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=K("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"),K("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((It,zn)=>{if(It===void 0)return;const In=R(zn,0,r,0,i.width),ne=R(It,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 B(this))}),this}}class Gi extends B{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 rt(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 Tt{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),It=gt(p,m,i),zn=gt(d,_,i);return[gt(g,It,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 Tt(...o)};function Ot(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 Tt(...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 Tt(...r!=null?r:Vn)}const H=K("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=K("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 Dt=K("cbzg");function es(o,i){return r=>i(o(r))}class ns{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(Dt()),r.viewProps.bindClassModifiers(this.element),r.viewProps.bindTabIndex(this.element);const a=i.createElement("div");a.classList.add(Dt("p")),this.element.appendChild(a),this.previewElement=a;const p=i.createElementNS(M,"svg");p.classList.add(Dt("g")),this.element.appendChild(p),this.svgElem_=p;const d=i.createElementNS(M,"path");d.classList.add(Dt("u")),this.svgElem_.appendChild(d),this.guideElem_=d;const m=i.createElementNS(M,"polyline");m.classList.add(Dt("l")),this.svgElem_.appendChild(m),this.lineElem_=m,this.handleElems_=[i.createElement("div"),i.createElement("div")],this.handleElems_.forEach(_=>{_.classList.add(Dt("h")),this.element.appendChild(_)}),this.vectorElems_=[i.createElementNS(M,"line"),i.createElementNS(M,"line")],this.vectorElems_.forEach(_=>{_.classList.add(Dt("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)=>{nt(this.sel_,es(J=>J===g,dt(_,Dt("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,st=1e3,Et=K("cbzprv");class Nt{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/st;this.updateMarker_(r),i>st+he&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function Ln(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=Ln(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 Mn{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 Nt(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 Tt(...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=Ln(r.point.x,r.point.y,p.x,p.y),m=this.view.valueToPosition(a.x2,a.y2),_=Ln(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 Tt(...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 Mn(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 F{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 T(i,{parser:Ji,props:G.fromObject({formatter:Ot}),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),nt(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 Tt(...o.params.value),p=Z(a,{constraint:pi(),equals:Tt.equals}),d=new F(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 F)?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 zt=K("fps");class Sn{constructor(i,r){this.element=i.createElement("div"),this.element.classList.add(zt()),r.viewProps.bindClassModifiers(this.element),this.graphElement=i.createElement("div"),this.graphElement.classList.add(zt("g")),this.element.appendChild(this.graphElement);const a=i.createElement("div");a.classList.add(zt("l")),this.element.appendChild(a);const p=i.createElement("span");p.classList.add(zt("v")),p.textContent="--",a.appendChild(p),this.valueElement=p;const d=i.createElement("span");d.classList.add(zt("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=Li(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 It=(i.min+i.max)/2;return new wt((_=(m=this.edge)===null||m===void 0?void 0:m.constrain(It))!==null&&_!==void 0?_:It,(J=(g=this.edge)===null||g===void 0?void 0:g.constrain(It))!==null&&J!==void 0?J:It)}}const me=K("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=K("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 Me(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 rt{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=K("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,nt(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];L.CubicBezier=Tt,L.plugins=ds,Object.defineProperty(L,"__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 Vt.onMounted(()=>{const{onBeforeLoop:L,onAfterLoop:u,resume:B}=Ls.useRenderLoop();B(),L(()=>Fn.begin()),u(()=>Fn.end())}),Vt.onUnmounted(()=>{$()}),{pane:Ke,fpsGraph:Fn,disposeTweakPane:$}};Rt.OrbitControls=_r,Rt.useTweakPane=xr,Object.defineProperties(Rt,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|