@tresjs/core 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/tres.umd.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * name: @tresjs/core
3
- * version: v0.2.0
3
+ * version: v0.2.1
4
4
  * (c) 2022
5
5
  * description: Declarative ThreeJS using Vue Components
6
6
  * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
7
  */
8
- (function(q,L){typeof exports=="object"&&typeof module<"u"?L(exports,require("vue"),require("three"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","three","@vueuse/core"],L):(q=typeof globalThis<"u"?globalThis:q||self,L(q.tres={},q.Vue,q.Three,q.VueUseCore))})(this,function(q,L,nt,jr){"use strict";function Os(m){if(m&&m.__esModule)return m;const _=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(m){for(const C in m)if(C!=="default"){const w=Object.getOwnPropertyDescriptor(m,C);Object.defineProperty(_,C,w.get?w:{enumerable:!0,get:()=>m[C]})}}return _.default=m,Object.freeze(_)}function Bs(m,_){for(var C=0;C<_.length;C++){const w=_[C];if(typeof w!="string"&&!Array.isArray(w)){for(const x in w)if(x!=="default"&&!(x in m)){const T=Object.getOwnPropertyDescriptor(w,x);T&&Object.defineProperty(m,x,T.get?T:{enumerable:!0,get:()=>w[x]})}}}return Object.freeze(Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}))}const Is=Os(nt);var fe=(m=>(m.Perspective="Perspective",m.Orthographic="Orthographic",m))(fe||{});const Re={cameras:[]},js=45;let _e;function En(){const{width:m,height:_}=jr.useWindowSize();function C(M="Perspective",z){if(M==="Perspective"){const{near:F,far:H,fov:S}=z||{near:.1,far:1e3,fov:js};_e=new nt.PerspectiveCamera(S,w.value,F,H),Re.cameras.push(_e)}else{const{left:F,right:H,top:S,bottom:D,near:bt,far:P}=z||{left:-100,right:100,top:100,bottom:-100,near:.1,far:1e3};_e=new nt.OrthographicCamera(F,H,S,D,bt,P),Re.cameras.push(_e)}return Re.cameras.push(_e),_e}const w=L.computed(()=>m.value/_.value),x=L.computed(()=>Re.cameras[0]);function T(){x.value instanceof nt.PerspectiveCamera&&(x.value.aspect=w.value),x.value.updateProjectionMatrix()}function N(M){Re.cameras.push(M),M instanceof nt.PerspectiveCamera&&(M.aspect=w.value),M.updateProjectionMatrix()}return L.watch(w,T),{activeCamera:x,createCamera:C,updateCamera:T,pushCamera:N}}let ui={...Is};function Fr(){return{extend:_=>{ui=Object.assign(ui,_)},catalogue:ui}}const Fs=m=>typeof m<"u",Kr=m=>!!m&&m.constructor===Array;function $r(m){return typeof m=="number"?[m,m,m]:m instanceof nt.Vector3?[m.x,m.y,m.z]:m}function Ks(m){return m instanceof nt.Color?m:Array.isArray(m)?new nt.Color(...m):new nt.Color(m)}const Ur="[TresJS \u25B2 \u25A0 \u25CF] ";function di(){function m(w,x){console.error(`${Ur} ${w}`,x)}function _(w){console.warn(`${Ur} ${w}`)}function C(w,x){}return{logError:m,logWarning:_,logMessage:C}}const Oe=new nt.Scene,hi=L.ref(!1);function Be(){const{logMessage:m}=di();function _(){Oe==null||Oe.clear(),hi.value=!hi.value,m("clear Scene",Oe)}return{isSceneReset:hi,clearScene:_,scene:Oe}}const $s=["rotation","scale","position"];function Hr(){const{catalogue:m}=Fr(),{logMessage:_,logError:C}=di();function w(){return Object.entries(m).filter(([x,T])=>{var N,M;return(M=(N=T==null?void 0:T.prototype)==null?void 0:N.constructor)==null?void 0:M.toString().includes("class")}).map(([x,T])=>{const N=L.defineComponent({name:x,setup(M,{slots:z,attrs:F,...H}){_(x,{props:M,slots:z,attrs:F,ctx:H});let S;const{scene:D}=Be(),{pushCamera:bt}=En();function P(){if((z==null?void 0:z.default)&&(z==null?void 0:z.default())){const Y=z.default().map(E=>{var y;let Z;return(y=E==null?void 0:E.props)!=null&&y.args?Z=new m[E.type.name](...E.props.args):Z=new m[E.type.name],E!=null&&E.props&&I(E.props,Z),Z});S=new T(...Y)}else F.args?S=new T(...F.args):S=new T;I(F,S),x==="PerspectiveCamera"||x==="OrtographicCamera"?bt(S):D==null||D.add(S),_("Instance added",D),H.expose(S)}function I(Y,E){Object.entries(Y).forEach(([Z,y])=>{const it=Z.replace(/(-\w)/g,te=>te[1].toUpperCase());if(!(it==="args"||y===void 0)){$s.includes(Z)&&y&&(y=$r(y));try{E[it]&&Fs(E[it].set)?Kr(y)?E[it].set(...y):E[it].set(y):(y===""&&(y=!0),E[it]=y)}catch(te){C(`There was an error setting ${it} property`,te)}}}),Y.ref&&(Y.ref=E)}return P(),()=>{}}});return[x,N]})}return{createComponentInstances:w}}let qr;function kn(m,_,C){const w=new nt.Clock,{scene:x}=Be(),T=()=>{const M=w.getElapsedTime(),z=w.getDelta();x&&(_&&_(z,M),m(z,M),C&&C(z,M)),qr=requestAnimationFrame(T)};T();function N(){cancelAnimationFrame(qr)}return{disposeLoop:N}}function Gr(){const m=new nt.LoadingManager,_=L.ref(m);return{loadingManager:m,loadingManagerRef:_}}async function Us(m){const{loadingManager:_}=Gr(),C=new nt.TextureLoader(_),w=x=>new Promise((T,N)=>{C.load(x,M=>T(M),()=>null,()=>{N(new Error("[useTextures] - Failed to load texture"))})});if(Kr(m)){const x=await Promise.all(m.map(T=>w(T)));return m.length>1?x:x[0]}else{const{map:x,displacementMap:T,normalMap:N,roughnessMap:M,metalnessMap:z,aoMap:F}=m;return{map:x?await w(x):null,displacementMap:T?await w(T):null,normalMap:N?await w(N):null,roughnessMap:M?await w(M):null,metalnessMap:z?await w(z):null,aoMap:F?await w(F):null}}}const Vn=L.reactive({});function vi(){function m(C){return Vn[C]}function _(C,w){Vn[C]=w}return{state:Vn,...L.toRefs(Vn),getState:m,setState:_}}var Yr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Hs(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var mi={exports:{}};/*! Tweakpane 3.1.0 (c) 2016 cocopon, licensed under the MIT license. */(function(m,_){(function(C,w){w(_)})(Yr,function(C){class w{constructor(t){const[e,r]=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=r!=null?r:null}toString(){const t=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[t,this.prerelease].join("-"):t}}class x{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 T{constructor(t){this.target=t}}class N extends T{constructor(t,e,r,l){super(t),this.value=e,this.presetKey=r,this.last=l!=null?l:!0}}class M extends T{constructor(t,e,r){super(t),this.value=e,this.presetKey=r}}class z extends T{constructor(t,e){super(t),this.expanded=e}}class F extends T{constructor(t,e){super(t),this.index=e}}function H(n){return n}function S(n){return n==null}function D(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 bt={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 P{constructor(t){var e;this.message=(e=bt[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 P({type:"alreadydisposed"})}static notBindable(){return new P({type:"notbindable"})}static propertyNotFound(t){return new P({type:"propertynotfound",context:{name:t}})}static shouldNeverHappen(){return new P({type:"shouldneverhappen"})}}class I{constructor(t,e,r){this.obj_=t,this.key_=e,this.presetKey_=r!=null?r: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 r=this.read();if(!I.isBindable(r))throw P.notBindable();if(!(t in r))throw P.propertyNotFound(t);r[t]=e}}class Y extends x{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 r=e.bind(this);return this.controller_.valueController.emitter.on(t,()=>{r(new T(this))}),this}}class E{constructor(){this.observers_={}}on(t,e){let r=this.observers_[t];return r||(r=this.observers_[t]=[]),r.push({handler:e}),this}off(t,e){const r=this.observers_[t];return r&&(this.observers_[t]=r.filter(l=>l.handler!==e)),this}emit(t,e){const r=this.observers_[t];!r||r.forEach(l=>{l.handler(e)})}}const Z="tp";function y(n){return(e,r)=>[Z,"-",n,"v",e?`_${e}`:"",r?`-${r}`:""].join("")}function it(n,t){return e=>t(n(e))}function te(n){return n.rawValue}function It(n,t){n.emitter.on("change",it(te,t)),t(n.rawValue)}function ot(n,t,e){It(n.value(t),e)}function bi(n,t,e){e?n.classList.add(t):n.classList.remove(t)}function rt(n,t){return e=>{bi(n,t,e)}}function X(n,t){It(n,e=>{t.textContent=e!=null?e:""})}const Ie=y("btn");class fi{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ie()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("button");r.classList.add(Ie("b")),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const l=t.createElement("div");l.classList.add(Ie("t")),X(e.props.value("title"),l),this.buttonElement.appendChild(l)}}class Mn{constructor(t,e){this.emitter=new E,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new fi(t,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ft{constructor(t,e){var r;this.constraint_=e==null?void 0:e.constraint,this.equals_=(r=e==null?void 0:e.equals)!==null&&r!==void 0?r:(l,c)=>l===c,this.emitter=new E,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 r=e!=null?e:{forceEmit:!1,last:!0},l=this.constraint_?this.constraint_.constrain(t):t;!!this.equals_(this.rawValue_,l)&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=l,this.emitter.emit("change",{options:r,rawValue:l,sender:this}))}}class Tn{constructor(t){this.emitter=new E,this.value_=t}get rawValue(){return this.value_}set rawValue(t){this.setRawValue(t,{forceEmit:!1,last:!0})}setRawValue(t,e){const r=e!=null?e:{forceEmit:!1,last:!0};this.value_===t&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=t,this.emitter.emit("change",{options:r,rawValue:this.value_,sender:this}))}}function U(n,t){const e=t==null?void 0:t.constraint,r=t==null?void 0:t.equals;return!e&&!r?new Tn(n):new ft(n,t)}class k{constructor(t){this.emitter=new E,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((r,l)=>Object.assign(r,{[l]:U(t[l])}),{})}static fromObject(t){const e=this.createCore(t);return new k(e)}get(t){return this.valMap_[t].rawValue}set(t,e){this.valMap_[t].rawValue=e}value(t){return this.valMap_[t]}}function _i(n,t){const r=Object.keys(t).reduce((l,c)=>{if(l===void 0)return;const d=t[c],v=d(n[c]);return v.succeeded?Object.assign(Object.assign({},l),{[c]:v.value}):void 0},{});return r}function gi(n,t){return n.reduce((e,r)=>{if(e===void 0)return;const l=t(r);if(!(!l.succeeded||l.value===void 0))return[...e,l.value]},[])}function An(n){return n===null?!1:typeof n=="object"}function dt(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 r=n(e);return r!==void 0?{succeeded:!0,value:r}:{succeeded:!1,value:void 0}}}function je(n){return{custom:t=>dt(t)(n),boolean:dt(t=>typeof t=="boolean"?t:void 0)(n),number:dt(t=>typeof t=="number"?t:void 0)(n),string:dt(t=>typeof t=="string"?t:void 0)(n),function:dt(t=>typeof t=="function"?t:void 0)(n),constant:t=>dt(e=>e===t?t:void 0)(n),raw:dt(t=>t)(n),object:t=>dt(e=>{if(!!An(e))return _i(e,t)})(n),array:t=>dt(e=>{if(!!Array.isArray(e))return gi(e,t)})(n)}}const A={optional:je(!0),required:je(!1)};function G(n,t){const e=A.required.object(t)(n);return e.succeeded?e.value:void 0}function wi(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}function Nn(){return["veryfirst","first","last","verylast"]}const Dn=y(""),zn={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class _t{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",()=>{Nn().forEach(r=>{e.classList.remove(Dn(void 0,zn[r]))}),this.blade.get("positions").forEach(r=>{e.classList.add(Dn(void 0,zn[r]))})}),this.viewProps.handleDispose(()=>{wi(e)})}get parent(){return this.parent_}}const ht="http://www.w3.org/2000/svg";function ee(n){n.offsetHeight}function we(n,t){const e=n.style.transition;n.style.transition="none",t(),n.style.transition=e}function Fe(n){return n.ontouchstart!==void 0}function Ke(){return new Function("return this")()}function xi(){return Ke().document}function Ci(n){const t=n.ownerDocument.defaultView;return t&&"document"in t?n.getContext("2d"):null}const Rn={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 xe(n,t){const e=n.createElementNS(ht,"svg");return e.innerHTML=Rn[t],e}function $e(n,t,e){n.insertBefore(t,n.children[e])}function ne(n){n.parentElement&&n.parentElement.removeChild(n)}function On(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Bn(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function Mt(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const ie=y("lbl");function yi(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 Ue{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(ie()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(ie("l")),ot(e.props,"label",c=>{S(c)?this.element.classList.add(ie(void 0,"nol")):(this.element.classList.remove(ie(void 0,"nol")),Bn(r),r.appendChild(yi(t,c)))}),this.element.appendChild(r),this.labelElement=r;const l=t.createElement("div");l.classList.add(ie("v")),this.element.appendChild(l),this.valueElement=l}}class Tt extends _t{constructor(t,e){const r=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{view:new Ue(t,{props:e.props,viewProps:r}),viewProps:r})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const Ce={id:"button",type:"blade",accept(n){const t=A,e=G(n,{title:t.required.string,view:t.required.constant("button"),label:t.optional.string});return e?{params:e}:null},controller(n){return new Tt(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:new Mn(n.document,{props:k.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof Tt)||!(n.controller.valueController instanceof Mn)?null:new Y(n.controller)}};class gt extends _t{constructor(t){super(t),this.value=t.value}}function jt(){return new k({positions:U([],{equals:D})})}class re extends k{constructor(t){super(t)}static create(t){const e={completed:!0,expanded:t,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},r=k.createCore(e);return new re(r)}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 r=()=>{this.styleExpanded?t.classList.add(e):t.classList.remove(e)};ot(this,"expanded",r),ot(this,"temporaryExpanded",r)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function Pi(n,t){let e=0;return we(t,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),ee(t),e=t.clientHeight,n.set("temporaryExpanded",null),ee(t)}),e}function He(n,t){t.style.height=n.styleHeight}function qe(n,t){n.value("expanded").emitter.on("beforechange",()=>{n.set("completed",!1),S(n.get("expandedHeight"))&&n.set("expandedHeight",Pi(n,t)),n.set("shouldFixHeight",!0),ee(t)}),n.emitter.on("change",()=>{He(n,t)}),He(n,t),t.addEventListener("transitionend",e=>{e.propertyName==="height"&&n.cleanUpTransition()})}class Ge extends x{constructor(t,e){super(t),this.rackApi_=e}}function Ei(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"button"}))}function ki(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"folder"}))}function Vi(n,t){const e=t!=null?t:{};return n.addBlade(Object.assign(Object.assign({},e),{view:"separator"}))}function Si(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"tab"}))}class Ye{constructor(t){this.emitter=new E,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 P.shouldNeverHappen();const r=e!==void 0?e:this.items_.length;this.items_.splice(r,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:r,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 r=this.extract_(t);r&&(r.emitter.off("add",this.onSubListAdd_),r.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 Xe extends x{constructor(t){super(t),this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new E,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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(t){const e=t.sender.target.read();this.emitter_.emit("change",{event:new N(this,e,this.controller_.binding.target.presetKey,t.options.last)})}}class lt extends Tt{constructor(t,e){super(t,e),this.binding=e.binding}}class At extends x{constructor(t){super(t),this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new E,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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(t){const e=t.sender.target.read();this.emitter_.emit("update",{event:new M(this,e,this.controller_.binding.target.presetKey)})}}class kt extends Tt{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 ae?n.apiSet_:n instanceof Ge?n.rackApi_.apiSet_:null}function oe(n,t){const e=n.find(r=>r.controller_===t);if(!e)throw P.shouldNeverHappen();return e}function ye(n,t,e){if(!I.isBindable(n))throw P.notBindable();return new I(n,t,e)}class ae extends x{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 E,this.apiSet_=new Ye(se),this.pool_=e;const r=this.controller_.rack;r.emitter.on("add",this.onRackAdd_),r.emitter.on("remove",this.onRackRemove_),r.emitter.on("inputchange",this.onRackInputChange_),r.emitter.on("monitorupdate",this.onRackMonitorUpdate_),r.children.forEach(l=>{this.setUpApi_(l)})}get children(){return this.controller_.rack.children.map(t=>oe(this.apiSet_,t))}addInput(t,e,r){const l=r!=null?r:{},c=this.controller_.view.element.ownerDocument,d=this.pool_.createInput(c,ye(t,e,l.presetKey),l),v=new Xe(d);return this.add(v,l.index)}addMonitor(t,e,r){const l=r!=null?r:{},c=this.controller_.view.element.ownerDocument,d=this.pool_.createMonitor(c,ye(t,e),l),v=new At(d);return this.add(v,l.index)}addFolder(t){return ki(this,t)}addButton(t){return Ei(this,t)}addSeparator(t){return Vi(this,t)}addTab(t){return Si(this,t)}add(t,e){this.controller_.rack.add(t.controller_,e);const r=this.apiSet_.find(l=>l.controller_===t.controller_);return r&&this.apiSet_.remove(r),this.apiSet_.add(t),t}remove(t){this.controller_.rack.remove(t.controller_)}addBlade(t){const e=this.controller_.view.element.ownerDocument,r=this.pool_.createBlade(e,t),l=this.pool_.createBladeApi(r);return this.add(l,t.index)}on(t,e){const r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}setUpApi_(t){this.apiSet_.find(r=>r.controller_===t)||this.apiSet_.add(this.pool_.createBladeApi(t))}onRackAdd_(t){this.setUpApi_(t.bladeController)}onRackRemove_(t){if(t.isRoot){const e=oe(this.apiSet_,t.bladeController);this.apiSet_.remove(e)}}onRackInputChange_(t){const e=t.bladeController;if(e instanceof lt){const r=oe(this.apiSet_,e),l=e.binding;this.emitter_.emit("change",{event:new N(r,l.target.read(),l.target.presetKey,t.options.last)})}else if(e instanceof gt){const r=oe(this.apiSet_,e);this.emitter_.emit("change",{event:new N(r,e.value.rawValue,void 0,t.options.last)})}}onRackMonitorUpdate_(t){if(!(t.bladeController instanceof kt))throw P.shouldNeverHappen();const e=oe(this.apiSet_,t.bladeController),r=t.bladeController.binding;this.emitter_.emit("update",{event:new M(e,r.target.read(),r.target.presetKey)})}}class We extends Ge{constructor(t,e){super(t,new ae(t.rackController,e)),this.emitter_=new E,this.controller_.foldable.value("expanded").emitter.on("change",r=>{this.emitter_.emit("fold",{event:new z(this,r.sender.rawValue)})}),this.rackApi_.on("change",r=>{this.emitter_.emit("change",{event:r})}),this.rackApi_.on("update",r=>{this.emitter_.emit("update",{event:r})})}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,r){return this.rackApi_.addInput(t,e,r)}addMonitor(t,e,r){return this.rackApi_.addMonitor(t,e,r)}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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class Je extends _t{constructor(t){super({blade:t.blade,view:t.view,viewProps:t.rackController.viewProps}),this.rackController=t.rackController}}class Li{constructor(t,e){const r=y(e.viewName);this.element=t.createElement("div"),this.element.classList.add(r()),e.viewProps.bindClassModifiers(this.element)}}function Mi(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof lt&&r.binding===t)return r}return null}function Ti(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof kt&&r.binding===t)return r}return null}function Ai(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof gt&&r.value===t)return r}return null}function Qe(n){return n instanceof le?n.rack:n instanceof Je?n.rackController.rack:null}function Ni(n){const t=Qe(n);return t?t.bcSet_:null}class Di{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 E,this.blade_=t!=null?t:null,(e=this.blade_)===null||e===void 0||e.value("positions").emitter.on("change",this.onBladePositionsChange_),this.bcSet_=new Ye(Ni),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 r=t.item;if(r.viewProps.emitter.on("change",this.onChildViewPropsChange_),r.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),r.viewProps.handleDispose(this.onChildDispose_),r instanceof lt)r.binding.emitter.on("change",this.onChildInputChange_);else if(r instanceof kt)r.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(r instanceof gt)r.value.emitter.on("change",this.onChildValueChange_);else{const l=Qe(r);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 r=t.item;if(r instanceof lt)r.binding.emitter.off("change",this.onChildInputChange_);else if(r instanceof kt)r.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(r instanceof gt)r.value.emitter.off("change",this.onChildValueChange_);else{const l=Qe(r);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],r=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===r&&(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=Mi(this.find(lt),t.sender);if(!e)throw P.shouldNeverHappen();this.emitter.emit("inputchange",{bladeController:e,options:t.options,sender:this})}onChildMonitorUpdate_(t){const e=Ti(this.find(kt),t.sender);if(!e)throw P.shouldNeverHappen();this.emitter.emit("monitorupdate",{bladeController:e,sender:this})}onChildValueChange_(t){const e=Ai(this.find(gt),t.sender);if(!e)throw P.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 le extends _t{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new Li(t,{viewName:"brk",viewProps:e.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const r=new Di(e.root?void 0:e.blade);r.emitter.on("add",this.onRackAdd_),r.emitter.on("remove",this.onRackRemove_),this.rack=r,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||$e(this.view.element,t.bladeController.view.element,t.index)}onRackRemove_(t){!t.isRoot||ne(t.bladeController.view.element)}}const In=y("cnt");class zi{constructor(t,e){var r;this.className_=y((r=e.viewName)!==null&&r!==void 0?r:"fld"),this.element=t.createElement("div"),this.element.classList.add(this.className_(),In()),e.viewProps.bindClassModifiers(this.element),this.foldable_=e.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),ot(this.foldable_,"completed",rt(this.element,this.className_(void 0,"cpl")));const l=t.createElement("button");l.classList.add(this.className_("b")),ot(e.props,"title",g=>{S(g)?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")),X(e.props.value("title"),c),this.buttonElement.appendChild(c),this.titleElement=c;const d=t.createElement("div");d.classList.add(this.className_("m")),this.buttonElement.appendChild(d);const v=e.containerElement;v.classList.add(this.className_("c")),this.element.appendChild(v),this.containerElement=v}}class Ze extends Je{constructor(t,e){var r;const l=re.create((r=e.expanded)!==null&&r!==void 0?r:!0),c=new le(t,{blade:e.blade,root:e.root,viewProps:e.viewProps});super(Object.assign(Object.assign({},e),{rackController:c,view:new zi(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,qe(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 Ri={id:"folder",type:"blade",accept(n){const t=A,e=G(n,{title:t.required.string,view:t.required.constant("folder"),expanded:t.optional.boolean});return e?{params:e}:null},controller(n){return new Ze(n.document,{blade:n.blade,expanded:n.params.expanded,props:k.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof Ze?new We(n.controller,n.pool):null}};class Ft extends gt{constructor(t,e){const r=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{value:e.valueController.value,view:new Ue(t,{props:e.props,viewProps:r}),viewProps:r})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class tn extends x{}const jn=y("spr");class Oi{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(jn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("hr");r.classList.add(jn("r")),this.element.appendChild(r)}}class Fn extends _t{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new Oi(t,{viewProps:e.viewProps})}))}}const Kn={id:"separator",type:"blade",accept(n){const e=G(n,{view:A.required.constant("separator")});return e?{params:e}:null},controller(n){return new Fn(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof Fn?new tn(n.controller):null}},Bi=y("");function pe(n,t){return rt(n,Bi(void 0,t))}class Vt extends k{constructor(t){super(t)}static create(t){var e,r;const l=t!=null?t:{},c={disabled:(e=l.disabled)!==null&&e!==void 0?e:!1,disposed:!1,hidden:(r=l.hidden)!==null&&r!==void 0?r:!1},d=k.createCore(c);return new Vt(d)}bindClassModifiers(t){ot(this,"disabled",pe(t,"disabled")),ot(this,"hidden",pe(t,"hidden"))}bindDisabled(t){ot(this,"disabled",e=>{t.disabled=e})}bindTabIndex(t){ot(this,"disabled",e=>{t.tabIndex=e?-1:0})}handleDispose(t){this.value("disposed").emitter.on("change",e=>{e&&t()})}}const Q=y("tbi");class Ii{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Q()),e.viewProps.bindClassModifiers(this.element),ot(e.props,"selected",c=>{c?this.element.classList.add(Q(void 0,"sel")):this.element.classList.remove(Q(void 0,"sel"))});const r=t.createElement("button");r.classList.add(Q("b")),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const l=t.createElement("div");l.classList.add(Q("t")),X(e.props.value("title"),l),this.buttonElement.appendChild(l),this.titleElement=l}}class Pe{constructor(t,e){this.emitter=new E,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new Ii(t,{props:e.props,viewProps:e.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class $n{constructor(t,e){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new Pe(t,{props:e.itemProps,viewProps:Vt.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new le(t,{blade:jt(),viewProps:Vt.create()}),this.props=e.props,ot(this.props,"selected",r=>{this.itemController.props.set("selected",r),this.contentController.viewProps.set("hidden",!r)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class en{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,r){return this.rackApi_.addInput(t,e,r)}addMonitor(t,e,r){return this.rackApi_.addMonitor(t,e,r)}addBlade(t){return this.rackApi_.addBlade(t)}}class Un extends Ge{constructor(t,e){super(t,new ae(t.rackController,e)),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new E,this.pageApiMap_=new Map,this.rackApi_.on("change",r=>{this.emitter_.emit("change",{event:r})}),this.rackApi_.on("update",r=>{this.emitter_.emit("update",{event:r})}),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(r=>{this.setUpPageApi_(r)})}get pages(){return this.controller_.pageSet.items.map(t=>{const e=this.pageApiMap_.get(t);if(!e)throw P.shouldNeverHappen();return e})}addPage(t){const e=this.controller_.view.element.ownerDocument,r=new $n(e,{itemProps:k.fromObject({selected:!1,title:t.title}),props:k.fromObject({selected:!1})});this.controller_.add(r,t.index);const l=this.pageApiMap_.get(r);if(!l)throw P.shouldNeverHappen();return l}removePage(t){this.controller_.remove(t)}on(t,e){const r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}setUpPageApi_(t){const e=this.rackApi_.apiSet_.find(l=>l.controller_===t.contentController);if(!e)throw P.shouldNeverHappen();const r=new en(t,e);this.pageApiMap_.set(t,r)}onPageAdd_(t){this.setUpPageApi_(t.item)}onPageRemove_(t){if(!this.pageApiMap_.get(t.item))throw P.shouldNeverHappen();this.pageApiMap_.delete(t.item)}onSelect_(t){this.emitter_.emit("select",{event:new F(this,t.rawValue)})}}const Hn=-1;class ji{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=U(!0),this.selectedIndex=U(Hn),this.items_=[]}add(t,e){const r=e!=null?e:this.items_.length;this.items_.splice(r,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=Hn,this.empty.rawValue=!0;return}const t=this.items_.findIndex(e=>e.rawValue);t<0?(this.items_.forEach((e,r)=>{e.rawValue=r===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((e,r)=>{e.rawValue=r===t}),this.selectedIndex.rawValue=t),this.empty.rawValue=!1}onItemSelectedChange_(t){if(t.rawValue){const e=this.items_.findIndex(r=>r===t.sender);this.items_.forEach((r,l)=>{r.rawValue=l===e}),this.selectedIndex.rawValue=e}else this.keepSelection_()}}const ce=y("tab");class Kt{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(ce(),In()),e.viewProps.bindClassModifiers(this.element),It(e.empty,rt(this.element,ce(void 0,"nop")));const r=t.createElement("div");r.classList.add(ce("i")),this.element.appendChild(r),this.itemsElement=r;const l=e.contentsElement;l.classList.add(ce("c")),this.element.appendChild(l),this.contentsElement=l}}class ue extends Je{constructor(t,e){const r=new le(t,{blade:e.blade,viewProps:e.viewProps}),l=new ji;super({blade:e.blade,rackController:r,view:new Kt(t,{contentsElement:r.view.element,empty:l.empty,viewProps:e.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new Ye(()=>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;$e(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;ne(e.itemController.view.element),this.rackController.rack.remove(e.contentController),this.tab.remove(e.props.value("selected"))}}const nn={id:"tab",type:"blade",accept(n){const t=A,e=G(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 ue(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(e=>{const r=new $n(n.document,{itemProps:k.fromObject({selected:!1,title:e.title}),props:k.fromObject({selected:!1})});t.add(r)}),t},api(n){return n.controller instanceof ue?new Un(n.controller,n.pool):null}};function Fi(n,t){const e=n.accept(t.params);if(!e)return null;const r=A.optional.boolean(t.params.disabled).value,l=A.optional.boolean(t.params.hidden).value;return n.controller({blade:jt(),document:t.document,params:Object.assign(Object.assign({},e.params),{disabled:r,hidden:l}),viewProps:Vt.create({disabled:r,hidden:l})})}class qn{constructor(){this.disabled=!1,this.emitter=new E}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class rn{constructor(t,e){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=t,this.emitter=new E,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 St{constructor(t){this.constraints=t}constrain(t){return this.constraints.reduce((e,r)=>r.constrain(e),t)}}function B(n,t){if(n instanceof t)return n;if(n instanceof St){const e=n.constraints.reduce((r,l)=>r||(l instanceof t?l:null),null);if(e)return e}return null}class $t{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 ut{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 tt{constructor(t,e=0){this.step=t,this.origin=e}constrain(t){const e=this.origin%this.step,r=Math.round((t-e)/this.step);return e+r*this.step}}const sn=y("lst");class Ki{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.props_=e.props,this.element=t.createElement("div"),this.element.classList.add(sn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("select");r.classList.add(sn("s")),ot(this.props_,"options",c=>{On(r),c.forEach((d,v)=>{const g=t.createElement("option");g.dataset.index=String(v),g.textContent=d.text,g.value=String(d.value),r.appendChild(g)})}),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.selectElement=r;const l=t.createElement("div");l.classList.add(sn("m")),l.appendChild(xe(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 Nt{constructor(t,e){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=e.props,this.value=e.value,this.viewProps=e.viewProps,this.view=new Ki(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(t){const r=t.currentTarget.selectedOptions.item(0);if(!r)return;const l=Number(r.dataset.index);this.value.rawValue=this.props.get("options")[l].value}}const Gn=y("pop");class $i{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Gn()),e.viewProps.bindClassModifiers(this.element),It(e.shows,rt(this.element,Gn(void 0,"v")))}}class on{constructor(t,e){this.shows=U(!1),this.viewProps=e.viewProps,this.view=new $i(t,{shows:this.shows,viewProps:this.viewProps})}}const Yn=y("txt");class Ee{constructor(t,e){this.onChange_=this.onChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Yn()),e.viewProps.bindClassModifiers(this.element),this.props_=e.props,this.props_.emitter.on("change",this.onChange_);const r=t.createElement("input");r.classList.add(Yn("i")),r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,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 de{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 Ee(t,{props:e.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(t){const r=t.currentTarget.value,l=this.parser_(r);S(l)||(this.value.rawValue=l),this.view.refresh()}}function Ui(n){return String(n)}function Xn(n){return n==="false"?!1:!!n}function Wn(n){return Ui(n)}class Hi{constructor(t){this.text=t}evaluate(){return Number(this.text)}toString(){return this.text}}const qi={"**":(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 Gi{constructor(t,e,r){this.left=e,this.operator=t,this.right=r}evaluate(){const t=qi[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 Yi={"+":n=>n,"-":n=>-n,"~":n=>~n};class Xi{constructor(t,e){this.operator=t,this.expression=e}evaluate(){const t=Yi[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 an(n){return(t,e)=>{for(let r=0;r<n.length;r++){const l=n[r](t,e);if(l!=="")return l}return""}}function he(n,t){var e;const r=n.substr(t).match(/^\s+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Wi(n,t){const e=n.substr(t,1);return e.match(/^[1-9]$/)?e:""}function ve(n,t){var e;const r=n.substr(t).match(/^[0-9]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Ji(n,t){const e=ve(n,t);if(e!=="")return e;const r=n.substr(t,1);if(t+=1,r!=="-"&&r!=="+")return"";const l=ve(n,t);return l===""?"":r+l}function ke(n,t){const e=n.substr(t,1);if(t+=1,e.toLowerCase()!=="e")return"";const r=Ji(n,t);return r===""?"":e+r}function Jn(n,t){const e=n.substr(t,1);if(e==="0")return e;const r=Wi(n,t);return t+=r.length,r===""?"":r+ve(n,t)}function Qi(n,t){const e=Jn(n,t);if(t+=e.length,e==="")return"";const r=n.substr(t,1);if(t+=r.length,r!==".")return"";const l=ve(n,t);return t+=l.length,e+r+l+ke(n,t)}function ln(n,t){const e=n.substr(t,1);if(t+=e.length,e!==".")return"";const r=ve(n,t);return t+=r.length,r===""?"":e+r+ke(n,t)}function Zi(n,t){const e=Jn(n,t);return t+=e.length,e===""?"":e+ke(n,t)}const tr=an([Qi,ln,Zi]);function er(n,t){var e;const r=n.substr(t).match(/^[01]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Lt(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0b")return"";const r=er(n,t);return r===""?"":e+r}function nr(n,t){var e;const r=n.substr(t).match(/^[0-7]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function ir(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0o")return"";const r=nr(n,t);return r===""?"":e+r}function rr(n,t){var e;const r=n.substr(t).match(/^[0-9a-f]+/i);return(e=r&&r[0])!==null&&e!==void 0?e:""}function sr(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0x")return"";const r=rr(n,t);return r===""?"":e+r}const or=an([Lt,ir,sr]),Qn=an([or,tr]);function ar(n,t){const e=Qn(n,t);return t+=e.length,e===""?null:{evaluable:new Hi(e),cursor:t}}function lr(n,t){const e=n.substr(t,1);if(t+=e.length,e!=="(")return null;const r=wt(n,t);if(!r)return null;t=r.cursor,t+=he(n,t).length;const l=n.substr(t,1);return t+=l.length,l!==")"?null:{evaluable:r.evaluable,cursor:t}}function pt(n,t){var e;return(e=ar(n,t))!==null&&e!==void 0?e:lr(n,t)}function Zn(n,t){const e=pt(n,t);if(e)return e;const r=n.substr(t,1);if(t+=r.length,r!=="+"&&r!=="-"&&r!=="~")return null;const l=Zn(n,t);return l?(t=l.cursor,{cursor:t,evaluable:new Xi(r,l.evaluable)}):null}function pr(n,t,e){e+=he(t,e).length;const r=n.filter(l=>t.startsWith(l,e))[0];return r?(e+=r.length,e+=he(t,e).length,{cursor:e,operator:r}):null}function pn(n,t){return(e,r)=>{const l=n(e,r);if(!l)return null;r=l.cursor;let c=l.evaluable;for(;;){const d=pr(t,e,r);if(!d)break;r=d.cursor;const v=n(e,r);if(!v)return null;r=v.cursor,c=new Gi(d.operator,c,v.evaluable)}return c?{cursor:r,evaluable:c}:null}}const cr=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,t)=>pn(n,t),Zn);function wt(n,t){return t+=he(n,t).length,cr(n,t)}function ti(n){const t=wt(n,0);return!t||t.cursor+he(n,t.cursor).length!==n.length?null:t.evaluable}function xt(n){var t;const e=ti(n);return(t=e==null?void 0:e.evaluate())!==null&&t!==void 0?t:null}function cn(n){if(typeof n=="number")return n;if(typeof n=="string"){const t=xt(n);if(!S(t))return t}return 0}function ur(n){return String(n)}function K(n){return t=>t.toFixed(Math.max(Math.min(n,20),0))}const dr=K(0);function Ut(n){return dr(n)+"%"}function ei(n){return String(n)}function Ve(n){return n}function Ct(n,t){for(;n.length<t;)n.push(void 0)}function hr(n){const t=[];return Ct(t,n),U(t)}function vr(n){const t=n.indexOf(void 0);return t<0?n:n.slice(0,t)}function ni(n,t){const e=[...vr(n),t];return e.length>n.length?e.splice(0,e.length-n.length):Ct(e,n.length),e}function Ht({primary:n,secondary:t,forward:e,backward:r}){let l=!1;function c(d){l||(l=!0,d(),l=!1)}n.emitter.on("change",d=>{c(()=>{t.setRawValue(e(n,t),d.options)})}),t.emitter.on("change",d=>{c(()=>{n.setRawValue(r(n,t),d.options)}),c(()=>{t.setRawValue(e(n,t),d.options)})}),c(()=>{t.setRawValue(e(n,t),{forceEmit:!1,last:!0})})}function et(n,t){const e=n*(t.altKey?.1:1)*(t.shiftKey?10:1);return t.upKey?+e:t.downKey?-e:0}function vt(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function yt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function un(n){return n==="ArrowUp"||n==="ArrowDown"}function ii(n){return un(n)||n==="ArrowLeft"||n==="ArrowRight"}function dn(n,t){var e,r;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-(((r=l&&l.scrollY)!==null&&r!==void 0?r:0)+c.top)}}class Dt{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 E,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 r=this.elem_.ownerDocument;r.addEventListener("mousemove",this.onDocumentMouseMove_),r.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(dn(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onDocumentMouseMove_(t){this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(dn(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_(dn(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onTouchStart_(t){t.preventDefault();const e=t.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-r.left,y:e.clientY-r.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchMove_(t){const e=t.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-r.left,y:e.clientY-r.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchEnd_(t){var e;const r=(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_(r?{x:r.clientX-l.left,y:r.clientY-l.top}:void 0),sender:this,shiftKey:t.shiftKey})}}function j(n,t,e,r,l){const c=(n-t)/(e-t);return r+c*(l-r)}function ri(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function W(n,t,e){return Math.min(Math.max(n,t),e)}function si(n,t){return(n%t+t)%t}const at=y("txt");class mr{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(at(),at(void 0,"num")),e.arrayPosition&&this.element.classList.add(at(void 0,e.arrayPosition)),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("input");r.classList.add(at("i")),r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=e.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(at()),this.inputElement.classList.add(at("i"));const l=t.createElement("div");l.classList.add(at("k")),this.element.appendChild(l),this.knobElement=l;const c=t.createElementNS(ht,"svg");c.classList.add(at("g")),this.knobElement.appendChild(c);const d=t.createElementNS(ht,"path");d.classList.add(at("gb")),c.appendChild(d),this.guideBodyElem_=d;const v=t.createElementNS(ht,"path");v.classList.add(at("gh")),c.appendChild(v),this.guideHeadElem_=v;const g=t.createElement("div");g.classList.add(y("tt")()),this.knobElement.appendChild(g),this.tooltipElem_=g,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.refresh()}onDraggingChange_(t){if(t.rawValue===null){this.element.classList.remove(at(void 0,"drg"));return}this.element.classList.add(at(void 0,"drg"));const e=t.rawValue/this.props_.get("draggingScale"),r=e+(e>0?-1:e<0?1:0),l=W(-r,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${r+l},0 L${r},4 L${r+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 Pt{constructor(t,e){var r;this.originRawValue_=0,this.onInputChange_=this.onInputChange_.bind(this),this.onInputKeyDown_=this.onInputKeyDown_.bind(this),this.onInputKeyUp_=this.onInputKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.baseStep_=e.baseStep,this.parser_=e.parser,this.props=e.props,this.sliderProps_=(r=e.sliderProps)!==null&&r!==void 0?r:null,this.value=e.value,this.viewProps=e.viewProps,this.dragging_=U(null),this.view=new mr(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 Dt(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,r;const l=(e=this.sliderProps_)===null||e===void 0?void 0:e.get("minValue"),c=(r=this.sliderProps_)===null||r===void 0?void 0:r.get("maxValue");let d=t;return l!==void 0&&(d=Math.max(d,l)),c!==void 0&&(d=Math.min(d,c)),d}onInputChange_(t){const r=t.currentTarget.value,l=this.parser_(r);S(l)||(this.value.rawValue=this.constrainValue_(l)),this.view.refresh()}onInputKeyDown_(t){const e=et(this.baseStep_,vt(t));e!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+e),{forceEmit:!1,last:!1})}onInputKeyUp_(t){et(this.baseStep_,vt(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 hn=y("sld");class oi{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(hn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(hn("t")),e.viewProps.bindTabIndex(r),this.element.appendChild(r),this.trackElement=r;const l=t.createElement("div");l.classList.add(hn("k")),this.trackElement.appendChild(l),this.knobElement=l,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.update_()}update_(){const t=W(j(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${t}%`}onChange_(){this.update_()}}class br{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 oi(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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(j(W(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=et(this.baseStep_,yt(t));e!==0&&this.value.setRawValue(this.value.rawValue+e,{forceEmit:!1,last:!1})}onKeyUp_(t){et(this.baseStep_,yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const vn=y("sldtxt");class ct{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(vn());const r=t.createElement("div");r.classList.add(vn("s")),this.sliderView_=e.sliderView,r.appendChild(this.sliderView_.element),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(vn("t")),this.textView_=e.textView,l.appendChild(this.textView_.element),this.element.appendChild(l)}}class Se{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.sliderC_=new br(t,{baseStep:e.baseStep,props:e.sliderProps,value:e.value,viewProps:this.viewProps}),this.textC_=new Pt(t,{baseStep:e.baseStep,parser:e.parser,props:e.textProps,sliderProps:e.sliderProps,value:e.value,viewProps:e.viewProps}),this.view=new ct(t,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function qt(n,t){n.write(t)}function Gt(n){const t=A;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 ai(n){if(n==="inline"||n==="popup")return n}function st(n){const t=A;return t.required.object({max:t.optional.number,min:t.optional.number,step:t.optional.number})(n).value}function li(n){if(Array.isArray(n))return n;const t=[];return Object.keys(n).forEach(e=>{t.push({text:e,value:n[e]})}),t}function mn(n){return S(n)?null:new $t(li(n))}function bn(n){const t=n?B(n,$t):null;return t?t.options:null}function fr(n){const t=n?B(n,tt):null;return t?t.step:null}function Le(n,t){const e=n&&B(n,tt);return e?ri(e.step):Math.max(ri(t),2)}function Yt(n){const t=fr(n);return t!=null?t:1}function Xt(n,t){var e;const r=n&&B(n,tt),l=Math.abs((e=r==null?void 0:r.step)!==null&&e!==void 0?e:t);return l===0?.1:Math.pow(10,Math.floor(Math.log10(l))-1)}const Me=y("ckb");class _r{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Me()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("label");r.classList.add(Me("l")),this.element.appendChild(r);const l=t.createElement("input");l.classList.add(Me("i")),l.type="checkbox",r.appendChild(l),this.inputElement=l,e.viewProps.bindDisabled(this.inputElement);const c=t.createElement("div");c.classList.add(Me("w")),r.appendChild(c);const d=xe(t,"check");c.appendChild(d),e.value.emitter.on("change",this.onValueChange_),this.value=e.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class gr{constructor(t,e){this.onInputChange_=this.onInputChange_.bind(this),this.value=e.value,this.viewProps=e.viewProps,this.view=new _r(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 me(n){const t=[],e=mn(n.options);return e&&t.push(e),new St(t)}const wr={id:"input-bool",type:"input",accept:(n,t)=>{if(typeof n!="boolean")return null;const r=G(t,{options:A.optional.custom(Gt)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>Xn,constraint:n=>me(n.params),writer:n=>qt},controller:n=>{var t;const e=n.document,r=n.value,l=n.constraint;return l&&B(l,$t)?new Nt(e,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps}):new gr(e,{value:r,viewProps:n.viewProps})}},zt=y("col");class fn{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(zt()),e.foldable.bindExpandedClass(this.element,zt(void 0,"expanded")),ot(e.foldable,"completed",rt(this.element,zt(void 0,"cpl")));const r=t.createElement("div");r.classList.add(zt("h")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(zt("s")),r.appendChild(l),this.swatchElement=l;const c=t.createElement("div");if(c.classList.add(zt("t")),r.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const d=t.createElement("div");d.classList.add(zt("p")),this.element.appendChild(d),this.pickerElement=d}else this.pickerElement=null}}function xr(n,t,e){const r=W(n/255,0,1),l=W(t/255,0,1),c=W(e/255,0,1),d=Math.max(r,l,c),v=Math.min(r,l,c),g=d-v;let V=0,R=0;const O=(v+d)/2;return g!==0&&(R=g/(1-Math.abs(d+v-1)),r===d?V=(l-c)/g:l===d?V=2+(c-r)/g:V=4+(r-l)/g,V=V/6+(V<0?1:0)),[V*360,R*100,O*100]}function _n(n,t,e){const r=(n%360+360)%360,l=W(t/100,0,1),c=W(e/100,0,1),d=(1-Math.abs(2*c-1))*l,v=d*(1-Math.abs(r/60%2-1)),g=c-d/2;let V,R,O;return r>=0&&r<60?[V,R,O]=[d,v,0]:r>=60&&r<120?[V,R,O]=[v,d,0]:r>=120&&r<180?[V,R,O]=[0,d,v]:r>=180&&r<240?[V,R,O]=[0,v,d]:r>=240&&r<300?[V,R,O]=[v,0,d]:[V,R,O]=[d,0,v],[(V+g)*255,(R+g)*255,(O+g)*255]}function Cr(n,t,e){const r=W(n/255,0,1),l=W(t/255,0,1),c=W(e/255,0,1),d=Math.max(r,l,c),v=Math.min(r,l,c),g=d-v;let V;g===0?V=0:d===r?V=60*(((l-c)/g%6+6)%6):d===l?V=60*((c-r)/g+2):V=60*((r-l)/g+4);const R=d===0?0:g/d,O=d;return[V,R*100,O*100]}function pi(n,t,e){const r=si(n,360),l=W(t/100,0,1),c=W(e/100,0,1),d=c*l,v=d*(1-Math.abs(r/60%2-1)),g=c-d;let V,R,O;return r>=0&&r<60?[V,R,O]=[d,v,0]:r>=60&&r<120?[V,R,O]=[v,d,0]:r>=120&&r<180?[V,R,O]=[0,d,v]:r>=180&&r<240?[V,R,O]=[0,v,d]:r>=240&&r<300?[V,R,O]=[v,0,d]:[V,R,O]=[d,0,v],[(V+g)*255,(R+g)*255,(O+g)*255]}function yr(n,t,e){const r=e+t*(100-Math.abs(2*e-100))/200;return[n,r!==0?t*(100-Math.abs(2*e-100))/r:0,e+t*(100-Math.abs(2*e-100))/(2*100)]}function Pr(n,t,e){const r=100-Math.abs(e*(200-t)/100-100);return[n,r!==0?t*e/r: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 s={hsl:{hsl:(n,t,e)=>[n,t,e],hsv:yr,rgb:_n},hsv:{hsl:Pr,hsv:(n,t,e)=>[n,t,e],rgb:pi},rgb:{hsl:xr,hsv:Cr,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 r;const l=a(t,e);return[t==="rgb"?W(n[0],0,l[0]):si(n[0],l[0]),W(n[1],0,l[1]),W(n[2],0,l[2]),W((r=n[3])!==null&&r!==void 0?r:1,0,1)]}function u(n,t,e,r){const l=a(t,e),c=a(t,r);return n.map((d,v)=>d/l[v]*c[v])}function h(n,t,e){const r=u(n,t.mode,t.type,"int"),l=s[t.mode][e.mode](...r);return u(l,e.mode,"int",e.type)}function b(n,t){return typeof n!="object"||S(n)?!1:t in n&&typeof n[t]=="number"}class f{constructor(t,e,r="int"){this.mode=e,this.type=r,this.comps_=p(t,e,r)}static black(t="int"){return new f([0,0,0],"rgb",t)}static fromObject(t,e="int"){const r="a"in t?[t.r,t.g,t.b,t.a]:[t.r,t.g,t.b];return new f(r,"rgb",e)}static toRgbaObject(t,e="int"){return t.toRgbaObject(e)}static isRgbColorObject(t){return b(t,"r")&&b(t,"g")&&b(t,"b")}static isRgbaColorObject(t){return this.isRgbColorObject(t)&&b(t,"a")}static isColorObject(t){return this.isRgbColorObject(t)}static equals(t,e){if(t.mode!==e.mode)return!1;const r=t.comps_,l=e.comps_;for(let c=0;c<r.length;c++)if(r[c]!==l[c])return!1;return!0}getComponents(t,e="int"){return i(h(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=y("colp");class Et{constructor(t,e){this.alphaViews_=null,this.element=t.createElement("div"),this.element.classList.add(J());const r=t.createElement("div");r.classList.add(J("hsv"));const l=t.createElement("div");l.classList.add(J("sv")),this.svPaletteView_=e.svPaletteView,l.appendChild(this.svPaletteView_.element),r.appendChild(l);const c=t.createElement("div");c.classList.add(J("h")),this.hPaletteView_=e.hPaletteView,c.appendChild(this.hPaletteView_.element),r.appendChild(c),this.element.appendChild(r);const d=t.createElement("div");if(d.classList.add(J("rgb")),this.textView_=e.textView,d.appendChild(this.textView_.element),this.element.appendChild(d),e.alphaViews){this.alphaViews_={palette:e.alphaViews.palette,text:e.alphaViews.text};const v=t.createElement("div");v.classList.add(J("a"));const g=t.createElement("div");g.classList.add(J("ap")),g.appendChild(this.alphaViews_.palette.element),v.appendChild(g);const V=t.createElement("div");V.classList.add(J("at")),V.appendChild(this.alphaViews_.text.element),v.appendChild(V),this.element.appendChild(v)}}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 gn(n){return n==="int"?"int":n==="float"?"float":void 0}function wn(n){const t=A;return G(n,{alpha:t.optional.boolean,color:t.optional.object({alpha:t.optional.boolean,type:t.optional.custom(gn)}),expanded:t.optional.boolean,picker:t.optional.custom(ai)})}function Rt(n){return n?.1:1}function be(n){var t;return(t=n.color)===null||t===void 0?void 0:t.type}function Js(n,t){return n.alpha===t.alpha&&n.mode===t.mode&&n.notation===t.notation&&n.type===t.type}function mt(n,t){const e=n.match(/^(.+)%$/);return Math.min(e?parseFloat(e[1])*.01*t:parseFloat(n),t)}const Qs={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function Zr(n){const t=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!t)return parseFloat(n);const e=parseFloat(t[1]),r=t[2];return Qs[r](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=[mt(t[1],255),mt(t[2],255),mt(t[3],255)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function es(n){return t=>{const e=ts(t);return e?new f(e,"rgb",n):null}}function ns(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=[mt(t[1],255),mt(t[2],255),mt(t[3],255),mt(t[4],1)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function is(n){return t=>{const e=ns(t);return e?new f(e,"rgb",n):null}}function rs(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=[Zr(t[1]),mt(t[2],100),mt(t[3],100)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function ss(n){return t=>{const e=rs(t);return e?new f(e,"hsl",n):null}}function os(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=[Zr(t[1]),mt(t[2],100),mt(t[3],100),mt(t[4],1)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function as(n){return t=>{const e=os(t);return e?new f(e,"hsl",n):null}}function ls(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 Zs(n){const t=ls(n);return t?new f(t,"rgb","int"):null}function ps(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),j(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),j(parseInt(e[4],16),0,255,0,1)]:null}function to(n){const t=ps(n);return t?new f(t,"rgb","int"):null}function cs(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 us(n){return t=>{const e=cs(t);return e?new f(e,"rgb",n):null}}function ds(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=ds(t);return e?new f(e,"rgb",n):null}}const eo=[{parser:ls,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:ps,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:ts,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:ns,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:rs,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:os,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:cs,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:ds,result:{alpha:!0,mode:"rgb",notation:"object"}}];function no(n){return eo.reduce((t,{parser:e,result:r})=>t||(e(n)?r:null),null)}function Er(n,t="int"){const e=no(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 vs={int:[Zs,to,es("int"),is("int"),ss("int"),as("int"),us("int"),hs("int")],float:[es("float"),is("float"),ss("float"),as("float"),us("float"),hs("float")]};function io(n){const t=vs[n];return e=>{if(typeof e!="string")return f.black(n);const r=t.reduce((l,c)=>l||c(e),null);return r!=null?r:f.black(n)}}function kr(n){const t=vs[n];return e=>t.reduce((r,l)=>r||l(e),null)}function ms(n){const t=W(Math.floor(n),0,255).toString(16);return t.length===1?`0${t}`:t}function bs(n,t="#"){const e=o(n.getComponents("rgb")).map(ms).join("");return`${t}${e}`}function Vr(n,t="#"){const e=n.getComponents("rgb"),r=[e[0],e[1],e[2],e[3]*255].map(ms).join("");return`${t}${r}`}function fs(n,t){const e=K(t==="float"?2:0);return`rgb(${o(n.getComponents("rgb",t)).map(l=>e(l)).join(", ")})`}function ro(n){return t=>fs(t,n)}function ci(n,t){const e=K(2),r=K(t==="float"?2:0);return`rgba(${n.getComponents("rgb",t).map((c,d)=>(d===3?e:r)(c)).join(", ")})`}function so(n){return t=>ci(t,n)}function oo(n){const t=[K(0),Ut,Ut];return`hsl(${o(n.getComponents("hsl")).map((r,l)=>t[l](r)).join(", ")})`}function ao(n){const t=[K(0),Ut,Ut,K(2)];return`hsla(${n.getComponents("hsl").map((r,l)=>t[l](r)).join(", ")})`}function _s(n,t){const e=K(t==="float"?2:0),r=["r","g","b"];return`{${o(n.getComponents("rgb",t)).map((c,d)=>`${r[d]}: ${e(c)}`).join(", ")}}`}function lo(n){return t=>_s(t,n)}function gs(n,t){const e=K(2),r=K(t==="float"?2:0),l=["r","g","b","a"];return`{${n.getComponents("rgb",t).map((d,v)=>{const g=v===3?e:r;return`${l[v]}: ${g(d)}`}).join(", ")}}`}function po(n){return t=>gs(t,n)}const co=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:bs},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:Vr},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:oo},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:ao},...["int","float"].reduce((n,t)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:t},stringifier:ro(t)},{format:{alpha:!0,mode:"rgb",notation:"func",type:t},stringifier:so(t)},{format:{alpha:!1,mode:"rgb",notation:"object",type:t},stringifier:lo(t)},{format:{alpha:!0,mode:"rgb",notation:"object",type:t},stringifier:po(t)}],[])];function Sr(n){return co.reduce((t,e)=>t||(Js(e.format,n)?e.stringifier:null),null)}const xn=y("apl");class uo{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(xn()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("div");r.classList.add(xn("b")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(xn("c")),r.appendChild(l),this.colorElem_=l;const c=t.createElement("div");c.classList.add(xn("m")),this.element.appendChild(c),this.markerElem_=c;const d=t.createElement("div");d.classList.add(xn("p")),this.markerElem_.appendChild(d),this.previewElem_=d,this.update_()}update_(){const t=this.value.rawValue,e=t.getComponents("rgb"),r=new f([e[0],e[1],e[2],0],"rgb"),l=new f([e[0],e[1],e[2],255],"rgb"),c=["to right",ci(r),ci(l)];this.colorElem_.style.background=`linear-gradient(${c.join(",")})`,this.previewElem_.style.backgroundColor=ci(t);const d=j(e[3],0,1,0,100);this.markerElem_.style.left=`${d}%`}onValueChange_(){this.update_()}}class ho{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 uo(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=t.point.x/t.bounds.width,l=this.value.rawValue,[c,d,v]=l.getComponents("hsv");this.value.setRawValue(new f([c,d,v,r],"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=et(Rt(!0),yt(t));if(e===0)return;const r=this.value.rawValue,[l,c,d,v]=r.getComponents("hsv");this.value.setRawValue(new f([l,c,d,v+e],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){et(Rt(!0),yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Te=y("coltxt");function vo(n){const t=n.createElement("select"),e=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return t.appendChild(e.reduce((r,l)=>{const c=n.createElement("option");return c.textContent=l.text,c.value=l.value,r.appendChild(c),r},n.createDocumentFragment())),t}class mo{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Te());const r=t.createElement("div");r.classList.add(Te("m")),this.modeElem_=vo(t),this.modeElem_.classList.add(Te("ms")),r.appendChild(this.modeSelectElement);const l=t.createElement("div");l.classList.add(Te("mm")),l.appendChild(xe(t,"dropdown")),r.appendChild(l),this.element.appendChild(r);const c=t.createElement("div");c.classList.add(Te("w")),this.element.appendChild(c),this.textsElem_=c,this.textViews_=e.textViews,this.applyTextViews_(),It(e.colorMode,d=>{this.modeElem_.value=d})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(t){this.textViews_=t,this.applyTextViews_()}applyTextViews_(){On(this.textsElem_);const t=this.element.ownerDocument;this.textViews_.forEach(e=>{const r=t.createElement("div");r.classList.add(Te("c")),r.appendChild(e.element),this.textsElem_.appendChild(r)})}}function bo(n){return K(n==="float"?2:0)}function fo(n,t,e){const r=a(n,t)[e];return new ut({min:0,max:r})}function Lr(n,t,e){return new Pt(n,{arrayPosition:e===0?"fst":e===3-1?"lst":"mid",baseStep:Rt(!1),parser:t.parser,props:k.fromObject({draggingScale:t.colorType==="float"?.01:1,formatter:bo(t.colorType)}),value:U(0,{constraint:fo(t.colorMode,t.colorType,e)}),viewProps:t.viewProps})}class _o{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=U(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(t),this.view=new mo(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},r=[Lr(t,e,0),Lr(t,e,1),Lr(t,e,2)];return r.forEach((l,c)=>{Ht({primary:this.value,secondary:l.value,forward:d=>d.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[c],backward:(d,v)=>{const g=this.colorMode.rawValue,V=d.rawValue.getComponents(g,this.colorType_);return V[c]=v.rawValue,new f(i(o(V),V[3]),g,this.colorType_)}})}),r}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 Mr=y("hpl");class go{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(Mr()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("div");r.classList.add(Mr("c")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(Mr("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=this.value.rawValue,[e]=t.getComponents("hsv");this.markerElem_.style.backgroundColor=fs(new f([e,100,100],"hsv"));const r=j(e,0,360,0,100);this.markerElem_.style.left=`${r}%`}onValueChange_(){this.update_()}}class wo{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 go(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=j(W(t.point.x,0,t.bounds.width),0,t.bounds.width,0,359),l=this.value.rawValue,[,c,d,v]=l.getComponents("hsv");this.value.setRawValue(new f([r,c,d,v],"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=et(Rt(!1),yt(t));if(e===0)return;const r=this.value.rawValue,[l,c,d,v]=r.getComponents("hsv");this.value.setRawValue(new f([l+e,c,d,v],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){et(Rt(!1),yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Tr=y("svp"),ws=64;class xo{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(Tr()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("canvas");r.height=ws,r.width=ws,r.classList.add(Tr("c")),this.element.appendChild(r),this.canvasElement=r;const l=t.createElement("div");l.classList.add(Tr("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=Ci(this.canvasElement);if(!t)return;const r=this.value.rawValue.getComponents("hsv"),l=this.canvasElement.width,c=this.canvasElement.height,d=t.getImageData(0,0,l,c),v=d.data;for(let R=0;R<c;R++)for(let O=0;O<l;O++){const Bt=j(O,0,l,0,100),yn=j(R,0,c,100,0),Pn=pi(r[0],Bt,yn),ze=(R*l+O)*4;v[ze]=Pn[0],v[ze+1]=Pn[1],v[ze+2]=Pn[2],v[ze+3]=255}t.putImageData(d,0,0);const g=j(r[1],0,100,0,100);this.markerElem_.style.left=`${g}%`;const V=j(r[2],0,100,100,0);this.markerElem_.style.top=`${V}%`}onValueChange_(){this.update_()}}class Co{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 xo(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=j(t.point.x,0,t.bounds.width,0,100),l=j(t.point.y,0,t.bounds.height,100,0),[c,,,d]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new f([c,r,l,d],"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){ii(t.key)&&t.preventDefault();const[e,r,l,c]=this.value.rawValue.getComponents("hsv"),d=Rt(!1),v=et(d,yt(t)),g=et(d,vt(t));v===0&&g===0||this.value.setRawValue(new f([e,r+v,l+g,c],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){const e=Rt(!1),r=et(e,yt(t)),l=et(e,vt(t));r===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class yo{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.hPaletteC_=new wo(t,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new Co(t,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=e.supportsAlpha?{palette:new ho(t,{value:this.value,viewProps:this.viewProps}),text:new Pt(t,{parser:xt,baseStep:.1,props:k.fromObject({draggingScale:.01,formatter:K(2)}),value:U(0,{constraint:new ut({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&Ht({primary:this.value,secondary:this.alphaIcs_.text.value,forward:r=>r.rawValue.getComponents()[3],backward:(r,l)=>{const c=r.rawValue.getComponents();return c[3]=l.rawValue,new f(c,r.rawValue.mode)}}),this.textC_=new _o(t,{colorType:e.colorType,parser:xt,value:this.value,viewProps:this.viewProps}),this.view=new Et(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 Ar=y("colsw");class Po{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(Ar()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(Ar("sw")),this.element.appendChild(r),this.swatchElem_=r;const l=t.createElement("button");l.classList.add(Ar("b")),e.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l,this.update_()}update_(){const t=this.value.rawValue;this.swatchElem_.style.backgroundColor=Vr(t)}onValueChange_(){this.update_()}}class Eo{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new Po(t,{value:this.value,viewProps:this.viewProps})}}class Nr{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_=re.create(e.expanded),this.swatchC_=new Eo(t,{value:this.value,viewProps:this.viewProps});const r=this.swatchC_.view.buttonElement;r.addEventListener("blur",this.onButtonBlur_),r.addEventListener("click",this.onButtonClick_),this.textC_=new de(t,{parser:e.parser,props:k.fromObject({formatter:e.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new fn(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 on(t,{viewProps:this.viewProps}):null;const l=new yo(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),Ht({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:c=>c.rawValue,backward:(c,d)=>d.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),qe(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,r=t.relatedTarget;(!r||!e.contains(r))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(t){if(!this.popC_)return;const e=this.popC_.view.element,r=Mt(t);r&&e.contains(r)||r&&r===this.swatchC_.view.buttonElement&&!Fe(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 ko(n,t){return f.isColorObject(n)?f.fromObject(n,t):f.black(t)}function Vo(n){return o(n.getComponents("rgb")).reduce((t,e)=>t<<8|Math.floor(e)&255,0)}function So(n){return n.getComponents("rgb").reduce((t,e,r)=>{const l=Math.floor(r===3?e*255:e)&255;return t<<8|l},0)>>>0}function Lo(n){return new f([n>>16&255,n>>8&255,n&255],"rgb")}function Mo(n){return new f([n>>24&255,n>>16&255,n>>8&255,j(n&255,0,255,0,1)],"rgb")}function To(n){return typeof n!="number"?f.black():Lo(n)}function Ao(n){return typeof n!="number"?f.black():Mo(n)}function No(n){const t=Sr(n);return t?(e,r)=>{qt(e,t(r))}:null}function Do(n){const t=n?So:Vo;return(e,r)=>{qt(e,t(r))}}function zo(n,t,e){const r=t.toRgbaObject(e);n.writeProperty("r",r.r),n.writeProperty("g",r.g),n.writeProperty("b",r.b),n.writeProperty("a",r.a)}function Ro(n,t,e){const r=t.toRgbaObject(e);n.writeProperty("r",r.r),n.writeProperty("g",r.g),n.writeProperty("b",r.b)}function Oo(n,t){return(e,r)=>{n?zo(e,r,t):Ro(e,r,t)}}function Dr(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 Bo(n){return n?t=>Vr(t,"0x"):t=>bs(t,"0x")}function Io(n){return"color"in n||"view"in n&&n.view==="color"}const jo={id:"input-color-number",type:"input",accept:(n,t)=>{if(typeof n!="number"||!Io(t))return null;const e=wn(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>Dr(n.params)?Ao:To,equals:f.equals,writer:n=>Do(Dr(n.params))},controller:n=>{const t=Dr(n.params),e="expanded"in n.params?n.params.expanded:void 0,r="picker"in n.params?n.params.picker:void 0;return new Nr(n.document,{colorType:"int",expanded:e!=null?e:!1,formatter:Bo(t),parser:kr("int"),pickerLayout:r!=null?r:"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}};function Fo(n){return f.isRgbaColorObject(n)}function Ko(n){return t=>ko(t,n)}function $o(n,t){return e=>n?gs(e,t):_s(e,t)}const Uo={id:"input-color-object",type:"input",accept:(n,t)=>{if(!f.isColorObject(n))return null;const e=wn(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>Ko(be(n.params)),equals:f.equals,writer:n=>Oo(Fo(n.initialValue),be(n.params))},controller:n=>{var t;const e=f.isRgbaColorObject(n.initialValue),r="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0,c=(t=be(n.params))!==null&&t!==void 0?t:"int";return new Nr(n.document,{colorType:c,expanded:r!=null?r:!1,formatter:$o(e,c),parser:kr(c),pickerLayout:l!=null?l:"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}},Ho={id:"input-color-string",type:"input",accept:(n,t)=>{if(typeof n!="string"||"view"in t&&t.view==="text")return null;const e=Er(n,be(t));if(!e||!Sr(e))return null;const l=wn(t);return l?{initialValue:n,params:l}:null},binding:{reader:n=>{var t;return io((t=be(n.params))!==null&&t!==void 0?t:"int")},equals:f.equals,writer:n=>{const t=Er(n.initialValue,be(n.params));if(!t)throw P.shouldNeverHappen();const e=No(t);if(!e)throw P.notBindable();return e}},controller:n=>{const t=Er(n.initialValue,be(n.params));if(!t)throw P.shouldNeverHappen();const e=Sr(t);if(!e)throw P.shouldNeverHappen();const r="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0;return new Nr(n.document,{colorType:t.type,expanded:r!=null?r:!1,formatter:e,parser:kr(t.type),pickerLayout:l!=null?l:"popup",supportsAlpha:t.alpha,value:n.value,viewProps:n.viewProps})}};class Wt{constructor(t){this.components=t.components,this.asm_=t.assembly}constrain(t){const e=this.asm_.toComponents(t).map((r,l)=>{var c,d;return(d=(c=this.components[l])===null||c===void 0?void 0:c.constrain(r))!==null&&d!==void 0?d:r});return this.asm_.fromComponents(e)}}const xs=y("pndtxt");class qo{constructor(t,e){this.textViews=e.textViews,this.element=t.createElement("div"),this.element.classList.add(xs()),this.textViews.forEach(r=>{const l=t.createElement("div");l.classList.add(xs("a")),l.appendChild(r.element),this.element.appendChild(l)})}}function Go(n,t,e){return new Pt(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:U(0,{constraint:t.axes[e].constraint}),viewProps:t.viewProps})}class zr{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.acs_=e.axes.map((r,l)=>Go(t,e,l)),this.acs_.forEach((r,l)=>{Ht({primary:this.value,secondary:r.value,forward:c=>e.assembly.toComponents(c.rawValue)[l],backward:(c,d)=>{const v=e.assembly.toComponents(c.rawValue);return v[l]=d.rawValue,e.assembly.fromComponents(v)}})}),this.view=new qo(t,{textViews:this.acs_.map(r=>r.view)})}}function Cs(n,t){return"step"in n&&!S(n.step)?new tt(n.step,t):null}function ys(n){return"max"in n&&!S(n.max)||"min"in n&&!S(n.min)?new ut({max:n.max,min:n.min}):null}function Yo(n,t){const e=[],r=Cs(n,t);r&&e.push(r);const l=ys(n);l&&e.push(l);const c=mn(n.options);return c&&e.push(c),new St(e)}function Xo(n){const t=n?B(n,ut):null;return t?[t.minValue,t.maxValue]:[void 0,void 0]}function Wo(n){const[t,e]=Xo(n);return[t!=null?t:0,e!=null?e:100]}const Jo={id:"input-number",type:"input",accept:(n,t)=>{if(typeof n!="number")return null;const e=A,r=G(t,{format:e.optional.function,max:e.optional.number,min:e.optional.number,options:e.optional.custom(Gt),step:e.optional.number});return r?{initialValue:n,params:r}:null},binding:{reader:n=>cn,constraint:n=>Yo(n.params,n.initialValue),writer:n=>qt},controller:n=>{var t,e;const r=n.value,l=n.constraint;if(l&&B(l,$t))return new Nt(n.document,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps});const c=(e="format"in n.params?n.params.format:void 0)!==null&&e!==void 0?e:K(Le(l,r.rawValue));if(l&&B(l,ut)){const[d,v]=Wo(l);return new Se(n.document,{baseStep:Yt(l),parser:xt,sliderProps:k.fromObject({maxValue:v,minValue:d}),textProps:k.fromObject({draggingScale:Xt(l,r.rawValue),formatter:c}),value:r,viewProps:n.viewProps})}return new Pt(n.document,{baseStep:Yt(l),parser:xt,props:k.fromObject({draggingScale:Xt(l,r.rawValue),formatter:c}),value:r,viewProps:n.viewProps})}};class Jt{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,r=t.y;return!(typeof e!="number"||typeof r!="number")}static equals(t,e){return t.x===e.x&&t.y===e.y}toObject(){return{x:this.x,y:this.y}}}const Ps={toComponents:n=>n.getComponents(),fromComponents:n=>new Jt(...n)},Ae=y("p2d");class Qo{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ae()),e.viewProps.bindClassModifiers(this.element),It(e.expanded,rt(this.element,Ae(void 0,"expanded")));const r=t.createElement("div");r.classList.add(Ae("h")),this.element.appendChild(r);const l=t.createElement("button");l.classList.add(Ae("b")),l.appendChild(xe(t,"p2dpad")),e.viewProps.bindDisabled(l),r.appendChild(l),this.buttonElement=l;const c=t.createElement("div");if(c.classList.add(Ae("t")),r.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const d=t.createElement("div");d.classList.add(Ae("p")),this.element.appendChild(d),this.pickerElement=d}else this.pickerElement=null}}const Qt=y("p2dp");class Zo{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(Qt()),e.layout==="popup"&&this.element.classList.add(Qt(void 0,"p"));const r=t.createElement("div");r.classList.add(Qt("p")),e.viewProps.bindTabIndex(r),this.element.appendChild(r),this.padElement=r;const l=t.createElementNS(ht,"svg");l.classList.add(Qt("g")),this.padElement.appendChild(l),this.svgElem_=l;const c=t.createElementNS(ht,"line");c.classList.add(Qt("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 d=t.createElementNS(ht,"line");d.classList.add(Qt("ax")),d.setAttributeNS(null,"x1","50%"),d.setAttributeNS(null,"y1","0"),d.setAttributeNS(null,"x2","50%"),d.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(d);const v=t.createElementNS(ht,"line");v.classList.add(Qt("l")),v.setAttributeNS(null,"x1","50%"),v.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(v),this.lineElem_=v;const g=t.createElement("div");g.classList.add(Qt("m")),this.padElement.appendChild(g),this.markerElem_=g,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(),r=this.maxValue_,l=j(t,-r,+r,0,100),c=j(e,-r,+r,0,100),d=this.invertsY_?100-c:c;this.lineElem_.setAttributeNS(null,"x2",`${l}%`),this.lineElem_.setAttributeNS(null,"y2",`${d}%`),this.markerElem_.style.left=`${l}%`,this.markerElem_.style.top=`${d}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Es(n,t,e){return[et(t[0],yt(n)),et(t[1],vt(n))*(e?1:-1)]}class ta{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 Zo(t,{invertsY:this.invertsY_,layout:e.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=this.maxValue_,l=j(t.point.x,0,t.bounds.width,-r,+r),c=j(this.invertsY_?t.bounds.height-t.point.y:t.point.y,0,t.bounds.height,-r,+r);this.value.setRawValue(new Jt(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){ii(t.key)&&t.preventDefault();const[e,r]=Es(t,this.baseSteps_,this.invertsY_);e===0&&r===0||this.value.setRawValue(new Jt(this.value.rawValue.x+e,this.value.rawValue.y+r),{forceEmit:!1,last:!1})}onPadKeyUp_(t){const[e,r]=Es(t,this.baseSteps_,this.invertsY_);e===0&&r===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class ea{constructor(t,e){var r,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_=re.create(e.expanded),this.popC_=e.pickerLayout==="popup"?new on(t,{viewProps:this.viewProps}):null;const c=new ta(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(d=>{d.addEventListener("blur",this.onPopupChildBlur_),d.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=c,this.textC_=new zr(t,{assembly:Ps,axes:e.axes,parser:e.parser,value:this.value,viewProps:this.viewProps}),this.view=new Qo(t,{expanded:this.foldable_.value("expanded"),pickerLayout:e.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(r=this.view.buttonElement)===null||r===void 0||r.addEventListener("blur",this.onPadButtonBlur_),(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),Ht({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:d=>d.rawValue,backward:(d,v)=>v.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),qe(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,r=t.relatedTarget;(!r||!e.contains(r))&&(this.popC_.shows.rawValue=!1)}onPadButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(t){if(!this.popC_)return;const e=this.popC_.view.element,r=Mt(t);r&&e.contains(r)||r&&r===this.view.buttonElement&&!Fe(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 na(n){return Jt.isObject(n)?new Jt(n.x,n.y):new Jt}function ia(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y)}function Ot(n,t){if(!n)return;const e=[],r=Cs(n,t);r&&e.push(r);const l=ys(n);return l&&e.push(l),new St(e)}function ra(n,t){return new Wt({assembly:Ps,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y)]})}function ks(n,t){var e,r;const l=n&&B(n,ut);if(l)return Math.max(Math.abs((e=l.minValue)!==null&&e!==void 0?e:0),Math.abs((r=l.maxValue)!==null&&r!==void 0?r:0));const c=Yt(n);return Math.max(Math.abs(c)*10,Math.abs(t)*10)}function sa(n,t){const e=t instanceof Wt?t.components[0]:void 0,r=t instanceof Wt?t.components[1]:void 0,l=ks(e,n.x),c=ks(r,n.y);return Math.max(l,c)}function Vs(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}function oa(n){if(!("y"in n))return!1;const t=n.y;return t&&"inverted"in t?!!t.inverted:!1}const aa={id:"input-point2d",type:"input",accept:(n,t)=>{if(!Jt.isObject(n))return null;const e=A,r=G(t,{expanded:e.optional.boolean,picker:e.optional.custom(ai),x:e.optional.custom(st),y:e.optional.object({inverted:e.optional.boolean,max:e.optional.number,min:e.optional.number,step:e.optional.number})});return r?{initialValue:n,params:r}:null},binding:{reader:n=>na,constraint:n=>ra(n.params,n.initialValue),equals:Jt.equals,writer:n=>ia},controller:n=>{const t=n.document,e=n.value,r=n.constraint;if(!(r instanceof Wt))throw P.shouldNeverHappen();const l="expanded"in n.params?n.params.expanded:void 0,c="picker"in n.params?n.params.picker:void 0;return new ea(t,{axes:[Vs(e.rawValue.x,r.components[0]),Vs(e.rawValue.y,r.components[1])],expanded:l!=null?l:!1,invertsY:oa(n.params),maxValue:sa(e.rawValue,r),parser:xt,pickerLayout:c!=null?c:"popup",value:e,viewProps:n.viewProps})}};class Ne{constructor(t=0,e=0,r=0){this.x=t,this.y=e,this.z=r}getComponents(){return[this.x,this.y,this.z]}static isObject(t){if(S(t))return!1;const e=t.x,r=t.y,l=t.z;return!(typeof e!="number"||typeof r!="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 Ss={toComponents:n=>n.getComponents(),fromComponents:n=>new Ne(...n)};function la(n){return Ne.isObject(n)?new Ne(n.x,n.y,n.z):new Ne}function pa(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z)}function ca(n,t){return new Wt({assembly:Ss,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y),Ot("z"in n?n.z:void 0,t.z)]})}function Rr(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}const ua={id:"input-point3d",type:"input",accept:(n,t)=>{if(!Ne.isObject(n))return null;const e=A,r=G(t,{x:e.optional.custom(st),y:e.optional.custom(st),z:e.optional.custom(st)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>la,constraint:n=>ca(n.params,n.initialValue),equals:Ne.equals,writer:n=>pa},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof Wt))throw P.shouldNeverHappen();return new zr(n.document,{assembly:Ss,axes:[Rr(t.rawValue.x,e.components[0]),Rr(t.rawValue.y,e.components[1]),Rr(t.rawValue.z,e.components[2])],parser:xt,value:t,viewProps:n.viewProps})}};class De{constructor(t=0,e=0,r=0,l=0){this.x=t,this.y=e,this.z=r,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,r=t.y,l=t.z,c=t.w;return!(typeof e!="number"||typeof r!="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 Ls={toComponents:n=>n.getComponents(),fromComponents:n=>new De(...n)};function da(n){return De.isObject(n)?new De(n.x,n.y,n.z,n.w):new De}function ha(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z),n.writeProperty("w",t.w)}function va(n,t){return new Wt({assembly:Ls,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y),Ot("z"in n?n.z:void 0,t.z),Ot("w"in n?n.w:void 0,t.w)]})}function ma(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}const ba={id:"input-point4d",type:"input",accept:(n,t)=>{if(!De.isObject(n))return null;const e=A,r=G(t,{x:e.optional.custom(st),y:e.optional.custom(st),z:e.optional.custom(st),w:e.optional.custom(st)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>da,constraint:n=>va(n.params,n.initialValue),equals:De.equals,writer:n=>ha},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof Wt))throw P.shouldNeverHappen();return new zr(n.document,{assembly:Ls,axes:t.rawValue.getComponents().map((r,l)=>ma(r,e.components[l])),parser:xt,value:t,viewProps:n.viewProps})}};function fa(n){const t=[],e=mn(n.options);return e&&t.push(e),new St(t)}const _a={id:"input-string",type:"input",accept:(n,t)=>{if(typeof n!="string")return null;const r=G(t,{options:A.optional.custom(Gt)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>ei,constraint:n=>fa(n.params),writer:n=>qt},controller:n=>{var t;const e=n.document,r=n.value,l=n.constraint;return l&&B(l,$t)?new Nt(e,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps}):new de(e,{parser:c=>c,props:k.fromObject({formatter:Ve}),value:r,viewProps:n.viewProps})}},Cn={monitor:{defaultInterval:200,defaultLineCount:3}},Ms=y("mll");class ga{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(Ms()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("textarea");r.classList.add(Ms("i")),r.style.height=`calc(var(--bld-us) * ${e.lineCount})`,r.readOnly=!0,e.viewProps.bindDisabled(r),this.element.appendChild(r),this.textareaElem_=r,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,r=[];this.value.rawValue.forEach(l=>{l!==void 0&&r.push(this.formatter_(l))}),t.textContent=r.join(`
10
- `),e&&(t.scrollTop=t.scrollHeight)}onValueUpdate_(){this.update_()}}class Or{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new ga(t,{formatter:e.formatter,lineCount:e.lineCount,value:this.value,viewProps:this.viewProps})}}const Ts=y("sgl");class wa{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(Ts()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("input");r.classList.add(Ts("i")),r.readOnly=!0,r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,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 Br{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new wa(t,{formatter:e.formatter,value:this.value,viewProps:this.viewProps})}}const xa={id:"monitor-bool",type:"monitor",accept:(n,t)=>{if(typeof n!="boolean")return null;const r=G(t,{lineCount:A.optional.number});return r?{initialValue:n,params:r}:null},binding:{reader:n=>Xn},controller:n=>{var t;return n.value.rawValue.length===1?new Br(n.document,{formatter:Wn,value:n.value,viewProps:n.viewProps}):new Or(n.document,{formatter:Wn,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},Zt=y("grl");class Ca{constructor(t,e){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Zt()),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 r=t.createElementNS(ht,"svg");r.classList.add(Zt("g")),r.style.height=`calc(var(--bld-us) * ${e.lineCount})`,this.element.appendChild(r),this.svgElem_=r;const l=t.createElementNS(ht,"polyline");this.svgElem_.appendChild(l),this.lineElem_=l;const c=t.createElement("div");c.classList.add(Zt("t"),y("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,r=this.props_.get("minValue"),l=this.props_.get("maxValue"),c=[];this.value.rawValue.forEach((R,O)=>{if(R===void 0)return;const Bt=j(O,0,e,0,t.width),yn=j(R,r,l,t.height,0);c.push([Bt,yn].join(","))}),this.lineElem_.setAttributeNS(null,"points",c.join(" "));const d=this.tooltipElem_,v=this.value.rawValue[this.cursor_.rawValue];if(v===void 0){d.classList.remove(Zt("t","a"));return}const g=j(this.cursor_.rawValue,0,e,0,t.width),V=j(v,r,l,t.height,0);d.style.left=`${g}px`,d.style.top=`${V}px`,d.textContent=`${this.formatter_(v)}`,d.classList.contains(Zt("t","a"))||(d.classList.add(Zt("t","a"),Zt("t","in")),ee(d),d.classList.remove(Zt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ya{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_=U(-1),this.view=new Ca(t,{cursor:this.cursor_,formatter:e.formatter,lineCount:e.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Fe(t))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const r=new Dt(this.view.element);r.emitter.on("down",this.onGraphPointerDown_),r.emitter.on("move",this.onGraphPointerMove_),r.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(t){const e=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(j(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(j(t.data.point.x,0,t.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function Ir(n){return"format"in n&&!S(n.format)?n.format:K(2)}function Pa(n){var t;return n.value.rawValue.length===1?new Br(n.document,{formatter:Ir(n.params),value:n.value,viewProps:n.viewProps}):new Or(n.document,{formatter:Ir(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function Ea(n){var t,e,r;return new ya(n.document,{formatter:Ir(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,props:k.fromObject({maxValue:(e="max"in n.params?n.params.max:null)!==null&&e!==void 0?e:100,minValue:(r="min"in n.params?n.params.min:null)!==null&&r!==void 0?r:0}),value:n.value,viewProps:n.viewProps})}function As(n){return"view"in n&&n.view==="graph"}const ka={id:"monitor-number",type:"monitor",accept:(n,t)=>{if(typeof n!="number")return null;const e=A,r=G(t,{format:e.optional.function,lineCount:e.optional.number,max:e.optional.number,min:e.optional.number,view:e.optional.string});return r?{initialValue:n,params:r}:null},binding:{defaultBufferSize:n=>As(n)?64:1,reader:n=>cn},controller:n=>As(n.params)?Ea(n):Pa(n)},Va={id:"monitor-string",type:"monitor",accept:(n,t)=>{if(typeof n!="string")return null;const e=A,r=G(t,{lineCount:e.optional.number,multiline:e.optional.boolean});return r?{initialValue:n,params:r}:null},binding:{reader:n=>ei},controller:n=>{var t;const e=n.value;return e.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new Or(n.document,{formatter:Ve,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:e,viewProps:n.viewProps}):new Br(n.document,{formatter:Ve,value:e,viewProps:n.viewProps})}};class Sa{constructor(t){this.onValueChange_=this.onValueChange_.bind(this),this.reader=t.reader,this.writer=t.writer,this.emitter=new E,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 La(n,t){const e=n.accept(t.target.read(),t.params);if(S(e))return null;const r=A,l={target:t.target,initialValue:e.initialValue,params:e.params},c=n.binding.reader(l),d=n.binding.constraint?n.binding.constraint(l):void 0,v=U(c(e.initialValue),{constraint:d,equals:n.binding.equals}),g=new Sa({reader:c,target:t.target,value:v,writer:n.binding.writer(l)}),V=r.optional.boolean(t.params.disabled).value,R=r.optional.boolean(t.params.hidden).value,O=n.controller({constraint:d,document:t.document,initialValue:e.initialValue,params:e.params,value:g.value,viewProps:Vt.create({disabled:V,hidden:R})}),Bt=r.optional.string(t.params.label).value;return new lt(t.document,{binding:g,blade:jt(),props:k.fromObject({label:Bt!=null?Bt:t.target.key}),valueController:O})}class Ma{constructor(t){this.onTick_=this.onTick_.bind(this),this.reader_=t.reader,this.target=t.target,this.emitter=new E,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,r=this.reader_(t);this.value.rawValue=ni(e,r),this.emitter.emit("update",{rawValue:r,sender:this})}onTick_(t){this.read()}}function Ta(n,t){return t===0?new qn:new rn(n,t!=null?t:Cn.monitor.defaultInterval)}function Aa(n,t){var e,r,l;const c=A,d=n.accept(t.target.read(),t.params);if(S(d))return null;const v={target:t.target,initialValue:d.initialValue,params:d.params},g=n.binding.reader(v),V=(r=(e=c.optional.number(t.params.bufferSize).value)!==null&&e!==void 0?e:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(d.params))!==null&&r!==void 0?r:1,R=c.optional.number(t.params.interval).value,O=new Ma({reader:g,target:t.target,ticker:Ta(t.document,R),value:hr(V)}),Bt=c.optional.boolean(t.params.disabled).value,yn=c.optional.boolean(t.params.hidden).value,Pn=n.controller({document:t.document,params:d.params,value:O.value,viewProps:Vt.create({disabled:Bt,hidden:yn})}),ze=(l=c.optional.string(t.params.label).value)!==null&&l!==void 0?l:t.target.key;return new kt(t.document,{binding:O,blade:jt(),props:k.fromObject({label:ze}),valueController:Pn})}class Na{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,r){const l=e.read();if(S(l))throw new P({context:{key:e.key},type:"nomatchingcontroller"});const c=this.pluginsMap_.inputs.reduce((d,v)=>d!=null?d:La(v,{document:t,target:e,params:r}),null);if(c)return c;throw new P({context:{key:e.key},type:"nomatchingcontroller"})}createMonitor(t,e,r){const l=this.pluginsMap_.monitors.reduce((c,d)=>c!=null?c:Aa(d,{document:t,params:r,target:e}),null);if(l)return l;throw new P({context:{key:e.key},type:"nomatchingcontroller"})}createBlade(t,e){const r=this.pluginsMap_.blades.reduce((l,c)=>l!=null?l:Fi(c,{document:t,params:e}),null);if(!r)throw new P({type:"nomatchingview",context:{params:e}});return r}createBladeApi(t){if(t instanceof lt)return new Xe(t);if(t instanceof kt)return new At(t);if(t instanceof le)return new ae(t,this);const e=this.pluginsMap_.blades.reduce((r,l)=>r!=null?r:l.api({controller:t,pool:this}),null);if(!e)throw P.shouldNeverHappen();return e}}function Da(){const n=new Na;return[aa,ua,ba,_a,Jo,Ho,Uo,jo,wr,xa,Va,ka,Ce,Ri,Kn,nn].forEach(t=>{n.register(t)}),n}class Ns extends x{constructor(t){super(t),this.emitter_=new E,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class Ds extends x{constructor(t){super(t),this.emitter_=new E,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class zs extends x{constructor(t){super(t),this.emitter_=new E,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}const za=function(){return{id:"list",type:"blade",accept(n){const t=A,e=G(n,{options:t.required.custom(Gt),value:t.required.raw,view:t.required.constant("list"),label:t.optional.string});return e?{params:e}:null},controller(n){const t=new Nt(n.document,{props:k.fromObject({options:li(n.params.options)}),value:U(n.params.value),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof Nt)?null:new Ns(n.controller)}}}();function Ra(n){return n.reduce((t,e)=>Object.assign(t,{[e.presetKey]:e.read()}),{})}function Oa(n,t){n.forEach(e=>{const r=t[e.presetKey];r!==void 0&&e.write(r)})}class Ba extends We{constructor(t,e){super(t,e)}get element(){return this.controller_.view.element}importPreset(t){const e=this.controller_.rackController.rack.find(lt).map(r=>r.binding.target);Oa(e,t),this.refresh()}exportPreset(){const t=this.controller_.rackController.rack.find(lt).map(e=>e.binding.target);return Ra(t)}refresh(){this.controller_.rackController.rack.find(lt).forEach(t=>{t.binding.read()}),this.controller_.rackController.rack.find(kt).forEach(t=>{t.binding.read()})}}class Ia extends Ze{constructor(t,e){super(t,{expanded:e.expanded,blade:e.blade,props:e.props,root:!0,viewProps:e.viewProps})}}const ja={id:"slider",type:"blade",accept(n){const t=A,e=G(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 r=(t=n.params.value)!==null&&t!==void 0?t:0,l=new Se(n.document,{baseStep:1,parser:xt,sliderProps:k.fromObject({maxValue:n.params.max,minValue:n.params.min}),textProps:k.fromObject({draggingScale:Xt(void 0,r),formatter:(e=n.params.format)!==null&&e!==void 0?e:ur}),value:U(r),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:l})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof Se)?null:new Ds(n.controller)}},Fa=function(){return{id:"text",type:"blade",accept(n){const t=A,e=G(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 de(n.document,{parser:n.params.parse,props:k.fromObject({formatter:(t=n.params.format)!==null&&t!==void 0?t:r=>String(r)}),value:U(n.params.value),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:e})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof de)?null:new zs(n.controller)}}}();function Ka(n){const t=n.createElement("div");return t.classList.add(y("dfw")()),n.body&&n.body.appendChild(t),t}function Rs(n,t,e){if(n.querySelector(`style[data-tp-style=${t}]`))return;const r=n.createElement("style");r.dataset.tpStyle=t,r.textContent=e,n.head.appendChild(r)}class $a extends Ba{constructor(t){var e,r;const l=t!=null?t:{},c=(e=l.document)!==null&&e!==void 0?e:xi(),d=Da(),v=new Ia(c,{expanded:l.expanded,blade:jt(),props:k.fromObject({title:l.title}),viewProps:Vt.create()});super(v,d),this.pool_=d,this.containerElem_=(r=l.container)!==null&&r!==void 0?r:Ka(c),this.containerElem_.appendChild(this.element),this.doc_=c,this.usesDefaultWrapper_=!l.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw P.alreadyDisposed();return this.doc_}dispose(){const t=this.containerElem_;if(!t)throw P.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(r=>{this.pool_.register(r),this.embedPluginStyle_(r)})}embedPluginStyle_(t){t.css&&Rs(this.document,`plugin-${t.id}`,t.css)}setUpDefaultPlugins_(){Rs(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:[ja,za,nn,Fa]})}}const Ua=new w("3.1.0");C.BladeApi=x,C.ButtonApi=Y,C.FolderApi=We,C.InputBindingApi=Xe,C.ListApi=Ns,C.MonitorBindingApi=At,C.Pane=$a,C.SeparatorApi=tn,C.SliderApi=Ds,C.TabApi=Un,C.TabPageApi=en,C.TextApi=zs,C.TpChangeEvent=N,C.VERSION=Ua,Object.defineProperty(C,"__esModule",{value:!0})})})(mi,mi.exports);var Sn={exports:{}};(function(m,_){(function(C,w){w(_)})(Yr,function(C){class w{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 x{constructor(i){this.target=i}}class T extends x{constructor(i,s,a,p){super(i),this.value=s,this.presetKey=a,this.last=p!=null?p:!0}}function N(o){return o}function M(o){return o==null}const z={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 F{constructor(i){var s;this.message=(s=z[i.type](i.context))!==null&&s!==void 0?s:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=i.type}static alreadyDisposed(){return new F({type:"alreadydisposed"})}static notBindable(){return new F({type:"notbindable"})}static propertyNotFound(i){return new F({type:"propertynotfound",context:{name:i}})}static shouldNeverHappen(){return new F({type:"shouldneverhappen"})}}class H{constructor(){this.observers_={}}on(i,s){let a=this.observers_[i];return a||(a=this.observers_[i]=[]),a.push({handler:s}),this}off(i,s){const a=this.observers_[i];return a&&(this.observers_[i]=a.filter(p=>p.handler!==s)),this}emit(i,s){const a=this.observers_[i];!a||a.forEach(p=>{p.handler(s)})}}const S="tp";function D(o){return(s,a)=>[S,"-",o,"v",s?`_${s}`:"",a?`-${a}`:""].join("")}function bt(o,i){return s=>i(o(s))}function P(o){return o.rawValue}function I(o,i){o.emitter.on("change",bt(P,i)),i(o.rawValue)}function Y(o,i,s){I(o.value(i),s)}function E(o,i,s){s?o.classList.add(i):o.classList.remove(i)}function Z(o,i){return s=>{E(o,i,s)}}function y(o,i){I(o,s=>{i.textContent=s!=null?s:""})}const it=D("btn");class te{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(it()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("button");a.classList.add(it("b")),s.viewProps.bindDisabled(a),this.element.appendChild(a),this.buttonElement=a;const p=i.createElement("div");p.classList.add(it("t")),y(s.props.value("title"),p),this.buttonElement.appendChild(p)}}class It{constructor(i,s){this.emitter=new H,this.onClick_=this.onClick_.bind(this),this.props=s.props,this.viewProps=s.viewProps,this.view=new te(i,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ot{constructor(i,s){var a;this.constraint_=s==null?void 0:s.constraint,this.equals_=(a=s==null?void 0:s.equals)!==null&&a!==void 0?a:(p,u)=>p===u,this.emitter=new H,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,s){const a=s!=null?s:{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 bi{constructor(i){this.emitter=new H,this.value_=i}get rawValue(){return this.value_}set rawValue(i){this.setRawValue(i,{forceEmit:!1,last:!0})}setRawValue(i,s){const a=s!=null?s:{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 rt(o,i){const s=i==null?void 0:i.constraint,a=i==null?void 0:i.equals;return!s&&!a?new bi(o):new ot(o,i)}class X{constructor(i){this.emitter=new H,this.valMap_=i;for(const s in this.valMap_)this.valMap_[s].emitter.on("change",()=>{this.emitter.emit("change",{key:s,sender:this})})}static createCore(i){return Object.keys(i).reduce((a,p)=>Object.assign(a,{[p]:rt(i[p])}),{})}static fromObject(i){const s=this.createCore(i);return new X(s)}get(i){return this.valMap_[i].rawValue}set(i,s){this.valMap_[i].rawValue=s}value(i){return this.valMap_[i]}}function Ie(o,i){const a=Object.keys(i).reduce((p,u)=>{if(p===void 0)return;const h=i[u],b=h(o[u]);return b.succeeded?Object.assign(Object.assign({},p),{[u]:b.value}):void 0},{});return a}function fi(o,i){return o.reduce((s,a)=>{if(s===void 0)return;const p=i(a);if(!(!p.succeeded||p.value===void 0))return[...s,p.value]},[])}function Mn(o){return o===null?!1:typeof o=="object"}function ft(o){return i=>s=>{if(!i&&s===void 0)return{succeeded:!1,value:void 0};if(i&&s===void 0)return{succeeded:!0,value:void 0};const a=o(s);return a!==void 0?{succeeded:!0,value:a}:{succeeded:!1,value:void 0}}}function Tn(o){return{custom:i=>ft(i)(o),boolean:ft(i=>typeof i=="boolean"?i:void 0)(o),number:ft(i=>typeof i=="number"?i:void 0)(o),string:ft(i=>typeof i=="string"?i:void 0)(o),function:ft(i=>typeof i=="function"?i:void 0)(o),constant:i=>ft(s=>s===i?i:void 0)(o),raw:ft(i=>i)(o),object:i=>ft(s=>{if(!!Mn(s))return Ie(s,i)})(o),array:i=>ft(s=>{if(!!Array.isArray(s))return fi(s,i)})(o)}}const U={optional:Tn(!0),required:Tn(!1)};function k(o,i){const s=U.required.object(i)(o);return s.succeeded?s.value:void 0}function _i(o){return o&&o.parentElement&&o.parentElement.removeChild(o),null}function gi(){return["veryfirst","first","last","verylast"]}const An=D(""),dt={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class je{constructor(i){this.parent_=null,this.blade=i.blade,this.view=i.view,this.viewProps=i.viewProps;const s=this.view.element;this.blade.value("positions").emitter.on("change",()=>{gi().forEach(a=>{s.classList.remove(An(void 0,dt[a]))}),this.blade.get("positions").forEach(a=>{s.classList.add(An(void 0,dt[a]))})}),this.viewProps.handleDispose(()=>{_i(s)})}get parent(){return this.parent_}}const A="http://www.w3.org/2000/svg";function G(o){o.offsetHeight}function wi(o,i){const s=o.style.transition;o.style.transition="none",i(),o.style.transition=s}function Nn(o){return o.ontouchstart!==void 0}function Dn(o){for(;o.childNodes.length>0;)o.removeChild(o.childNodes[0])}function zn(o){return o.relatedTarget?o.relatedTarget:"explicitOriginalTarget"in o?o.explicitOriginalTarget:null}const _t=D("lbl");function ht(o,i){const s=o.createDocumentFragment();return i.split(`
11
- `).map(p=>o.createTextNode(p)).forEach((p,u)=>{u>0&&s.appendChild(o.createElement("br")),s.appendChild(p)}),s}class ee{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(_t()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(_t("l")),Y(s.props,"label",u=>{M(u)?this.element.classList.add(_t(void 0,"nol")):(this.element.classList.remove(_t(void 0,"nol")),Dn(a),a.appendChild(ht(i,u)))}),this.element.appendChild(a),this.labelElement=a;const p=i.createElement("div");p.classList.add(_t("v")),this.element.appendChild(p),this.valueElement=p}}class we extends je{constructor(i,s){const a=s.valueController.viewProps;super(Object.assign(Object.assign({},s),{view:new ee(i,{props:s.props,viewProps:a}),viewProps:a})),this.props=s.props,this.valueController=s.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Fe extends je{constructor(i){super(i),this.value=i.value}}class Ke extends X{constructor(i){super(i)}static create(i){const s={completed:!0,expanded:i,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},a=X.createCore(s);return new Ke(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")&&!M(i)?`${i}px`:"auto"}bindExpandedClass(i,s){const a=()=>{this.styleExpanded?i.classList.add(s):i.classList.remove(s)};Y(this,"expanded",a),Y(this,"temporaryExpanded",a)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function xi(o){return Ke.create(o)}function Ci(o,i){let s=0;return wi(i,()=>{o.set("expandedHeight",null),o.set("temporaryExpanded",!0),G(i),s=i.clientHeight,o.set("temporaryExpanded",null),G(i)}),s}function Rn(o,i){i.style.height=o.styleHeight}function xe(o,i){o.value("expanded").emitter.on("beforechange",()=>{o.set("completed",!1),M(o.get("expandedHeight"))&&o.set("expandedHeight",Ci(o,i)),o.set("shouldFixHeight",!0),G(i)}),o.emitter.on("change",()=>{Rn(o,i)}),Rn(o,i),i.addEventListener("transitionend",s=>{s.propertyName==="height"&&o.cleanUpTransition()})}class $e{constructor(i,s){const a=D(s.viewName);this.element=i.createElement("div"),this.element.classList.add(a()),s.viewProps.bindClassModifiers(this.element)}}class ne extends Fe{constructor(i,s){const a=s.valueController.viewProps;super(Object.assign(Object.assign({},s),{value:s.valueController.value,view:new ee(i,{props:s.props,viewProps:a}),viewProps:a})),this.props=s.props,this.valueController=s.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const On=D("");function Bn(o,i){return Z(o,On(void 0,i))}class Mt extends X{constructor(i){super(i)}static create(i){var s,a;const p=i!=null?i:{},u={disabled:(s=p.disabled)!==null&&s!==void 0?s:!1,disposed:!1,hidden:(a=p.hidden)!==null&&a!==void 0?a:!1},h=X.createCore(u);return new Mt(h)}bindClassModifiers(i){Y(this,"disabled",Bn(i,"disabled")),Y(this,"hidden",Bn(i,"hidden"))}bindDisabled(i){Y(this,"disabled",s=>{i.disabled=s})}bindTabIndex(i){Y(this,"disabled",s=>{i.tabIndex=s?-1:0})}handleDispose(i){this.value("disposed").emitter.on("change",s=>{s&&i()})}}class ie{constructor(){this.disabled=!1,this.emitter=new H}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class yi{constructor(i,s){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=i,this.emitter=new H,this.interval_=s,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 Ue{constructor(i){this.constraints=i}constrain(i){return this.constraints.reduce((s,a)=>a.constrain(s),i)}}function Tt(o,i){if(o instanceof i)return o;if(o instanceof Ue){const s=o.constraints.reduce((a,p)=>a||(p instanceof i?p:null),null);if(s)return s}return null}class Ce{constructor(i){this.maxValue=i.max,this.minValue=i.min}constrain(i){let s=i;return M(this.minValue)||(s=Math.max(s,this.minValue)),M(this.maxValue)||(s=Math.min(s,this.maxValue)),s}}class gt{constructor(i,s=0){this.step=i,this.origin=s}constrain(i){const s=this.origin%this.step,a=Math.round((i-s)/this.step);return s+a*this.step}}const jt=D("pop");class re{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(jt()),s.viewProps.bindClassModifiers(this.element),I(s.shows,Z(this.element,jt(void 0,"v")))}}class Pi{constructor(i,s){this.shows=rt(!1),this.viewProps=s.viewProps,this.view=new re(i,{shows:this.shows,viewProps:this.viewProps})}}const He=D("txt");class qe{constructor(i,s){this.onChange_=this.onChange_.bind(this),this.element=i.createElement("div"),this.element.classList.add(He()),s.viewProps.bindClassModifiers(this.element),this.props_=s.props,this.props_.emitter.on("change",this.onChange_);const a=i.createElement("input");a.classList.add(He("i")),a.type="text",s.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,s.value.emitter.on("change",this.onChange_),this.value_=s.value,this.refresh()}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value_.rawValue)}onChange_(){this.refresh()}}class Ge{constructor(i,s){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=s.parser,this.props=s.props,this.value=s.value,this.viewProps=s.viewProps,this.view=new qe(i,{props:s.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);M(p)||(this.value.rawValue=p),this.view.refresh()}}function Ei(o){return o==="false"?!1:!!o}class ki{constructor(i){this.text=i}evaluate(){return Number(this.text)}toString(){return this.text}}const Vi={"**":(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 Si{constructor(i,s,a){this.left=s,this.operator=i,this.right=a}evaluate(){const i=Vi[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 Ye={"+":o=>o,"-":o=>-o,"~":o=>~o};class Xe{constructor(i,s){this.operator=i,this.expression=s}evaluate(){const i=Ye[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 lt(o){return(i,s)=>{for(let a=0;a<o.length;a++){const p=o[a](i,s);if(p!=="")return p}return""}}function At(o,i){var s;const a=o.substr(i).match(/^\s+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function kt(o,i){const s=o.substr(i,1);return s.match(/^[1-9]$/)?s:""}function se(o,i){var s;const a=o.substr(i).match(/^[0-9]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function oe(o,i){const s=se(o,i);if(s!=="")return s;const a=o.substr(i,1);if(i+=1,a!=="-"&&a!=="+")return"";const p=se(o,i);return p===""?"":a+p}function ye(o,i){const s=o.substr(i,1);if(i+=1,s.toLowerCase()!=="e")return"";const a=oe(o,i);return a===""?"":s+a}function ae(o,i){const s=o.substr(i,1);if(s==="0")return s;const a=kt(o,i);return i+=a.length,a===""?"":a+se(o,i)}function We(o,i){const s=ae(o,i);if(i+=s.length,s==="")return"";const a=o.substr(i,1);if(i+=a.length,a!==".")return"";const p=se(o,i);return i+=p.length,s+a+p+ye(o,i)}function Je(o,i){const s=o.substr(i,1);if(i+=s.length,s!==".")return"";const a=se(o,i);return i+=a.length,a===""?"":s+a+ye(o,i)}function Li(o,i){const s=ae(o,i);return i+=s.length,s===""?"":s+ye(o,i)}const Mi=lt([We,Je,Li]);function Ti(o,i){var s;const a=o.substr(i).match(/^[01]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function Ai(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0b")return"";const a=Ti(o,i);return a===""?"":s+a}function Qe(o,i){var s;const a=o.substr(i).match(/^[0-7]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function Ni(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0o")return"";const a=Qe(o,i);return a===""?"":s+a}function Di(o,i){var s;const a=o.substr(i).match(/^[0-9a-f]+/i);return(s=a&&a[0])!==null&&s!==void 0?s:""}function le(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0x")return"";const a=Di(o,i);return a===""?"":s+a}const In=lt([Ai,Ni,le]),zi=lt([In,Mi]);function Ze(o,i){const s=zi(o,i);return i+=s.length,s===""?null:{evaluable:new ki(s),cursor:i}}function Ri(o,i){const s=o.substr(i,1);if(i+=s.length,s!=="(")return null;const a=Kn(o,i);if(!a)return null;i=a.cursor,i+=At(o,i).length;const p=o.substr(i,1);return i+=p.length,p!==")"?null:{evaluable:a.evaluable,cursor:i}}function Ft(o,i){var s;return(s=Ze(o,i))!==null&&s!==void 0?s:Ri(o,i)}function tn(o,i){const s=Ft(o,i);if(s)return s;const a=o.substr(i,1);if(i+=a.length,a!=="+"&&a!=="-"&&a!=="~")return null;const p=tn(o,i);return p?(i=p.cursor,{cursor:i,evaluable:new Xe(a,p.evaluable)}):null}function jn(o,i,s){s+=At(i,s).length;const a=o.filter(p=>i.startsWith(p,s))[0];return a?(s+=a.length,s+=At(i,s).length,{cursor:s,operator:a}):null}function Oi(o,i){return(s,a)=>{const p=o(s,a);if(!p)return null;a=p.cursor;let u=p.evaluable;for(;;){const h=jn(i,s,a);if(!h)break;a=h.cursor;const b=o(s,a);if(!b)return null;a=b.cursor,u=new Si(h.operator,u,b.evaluable)}return u?{cursor:a,evaluable:u}:null}}const Fn=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((o,i)=>Oi(o,i),tn);function Kn(o,i){return i+=At(o,i).length,Fn(o,i)}function Bi(o){const i=Kn(o,0);return!i||i.cursor+At(o,i.cursor).length!==o.length?null:i.evaluable}function pe(o){var i;const s=Bi(o);return(i=s==null?void 0:s.evaluate())!==null&&i!==void 0?i:null}function Vt(o){if(typeof o=="number")return o;if(typeof o=="string"){const i=pe(o);if(!M(i))return i}return 0}function Q(o){return i=>i.toFixed(Math.max(Math.min(o,20),0))}const Ii=Q(0);function Pe(o){return Ii(o)+"%"}function $n(o){return String(o)}function en(o,i){for(;o.length<i;)o.push(void 0)}function Un(o){const i=[];return en(i,o),rt(i)}function Hn(o){const i=o.indexOf(void 0);return i<0?o:o.slice(0,i)}function ji(o,i){const s=[...Hn(o),i];return s.length>o.length?s.splice(0,s.length-o.length):en(s,o.length),s}function ce({primary:o,secondary:i,forward:s,backward:a}){let p=!1;function u(h){p||(p=!0,h(),p=!1)}o.emitter.on("change",h=>{u(()=>{i.setRawValue(s(o,i),h.options)})}),i.emitter.on("change",h=>{u(()=>{o.setRawValue(a(o,i),h.options)}),u(()=>{i.setRawValue(s(o,i),h.options)})}),u(()=>{i.setRawValue(s(o,i),{forceEmit:!1,last:!0})})}function Kt(o,i){const s=o*(i.altKey?.1:1)*(i.shiftKey?10:1);return i.upKey?+s:i.downKey?-s:0}function ue(o){return{altKey:o.altKey,downKey:o.key==="ArrowDown",shiftKey:o.shiftKey,upKey:o.key==="ArrowUp"}}function nn(o){return{altKey:o.altKey,downKey:o.key==="ArrowLeft",shiftKey:o.shiftKey,upKey:o.key==="ArrowRight"}}function Fi(o){return o==="ArrowUp"||o==="ArrowDown"}function qn(o){return Fi(o)||o==="ArrowLeft"||o==="ArrowRight"}function rn(o,i){var s,a;const p=i.ownerDocument.defaultView,u=i.getBoundingClientRect();return{x:o.pageX-(((s=p&&p.scrollX)!==null&&s!==void 0?s:0)+u.left),y:o.pageY-(((a=p&&p.scrollY)!==null&&a!==void 0?a:0)+u.top)}}class St{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 H,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 s=this.elem_.getBoundingClientRect();return{bounds:{width:s.width,height:s.height},point:i?{x:i.x,y:i.y}:null}}onMouseDown_(i){var s;i.preventDefault(),(s=i.currentTarget)===null||s===void 0||s.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_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseMove_(i){this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseUp_(i){const s=this.elem_.ownerDocument;s.removeEventListener("mousemove",this.onDocumentMouseMove_),s.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:i.altKey,data:this.computePosition_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onTouchStart_(i){i.preventDefault();const s=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:i.altKey,data:this.computePosition_(s?{x:s.clientX-a.left,y:s.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=s}onTouchMove_(i){const s=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(s?{x:s.clientX-a.left,y:s.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=s}onTouchEnd_(i){var s;const a=(s=i.targetTouches.item(0))!==null&&s!==void 0?s: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 B(o,i,s,a,p){const u=(o-i)/(s-i);return a+u*(p-a)}function $t(o){return String(o.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function ut(o,i,s){return Math.min(Math.max(o,i),s)}const tt=D("txt");class sn{constructor(i,s){this.onChange_=this.onChange_.bind(this),this.props_=s.props,this.props_.emitter.on("change",this.onChange_),this.element=i.createElement("div"),this.element.classList.add(tt(),tt(void 0,"num")),s.arrayPosition&&this.element.classList.add(tt(void 0,s.arrayPosition)),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("input");a.classList.add(tt("i")),a.type="text",s.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=s.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(tt()),this.inputElement.classList.add(tt("i"));const p=i.createElement("div");p.classList.add(tt("k")),this.element.appendChild(p),this.knobElement=p;const u=i.createElementNS(A,"svg");u.classList.add(tt("g")),this.knobElement.appendChild(u);const h=i.createElementNS(A,"path");h.classList.add(tt("gb")),u.appendChild(h),this.guideBodyElem_=h;const b=i.createElementNS(A,"path");b.classList.add(tt("gh")),u.appendChild(b),this.guideHeadElem_=b;const f=i.createElement("div");f.classList.add(D("tt")()),this.knobElement.appendChild(f),this.tooltipElem_=f,s.value.emitter.on("change",this.onChange_),this.value=s.value,this.refresh()}onDraggingChange_(i){if(i.rawValue===null){this.element.classList.remove(tt(void 0,"drg"));return}this.element.classList.add(tt(void 0,"drg"));const s=i.rawValue/this.props_.get("draggingScale"),a=s+(s>0?-1:s<0?1:0),p=ut(-a,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${a+p},0 L${a},4 L${a+p},8`,`M ${s},-1 L${s},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${s},4`);const u=this.props_.get("formatter");this.tooltipElem_.textContent=u(this.value.rawValue),this.tooltipElem_.style.left=`${s}px`}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value.rawValue)}onChange_(){this.refresh()}}class Ki{constructor(i,s){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_=s.baseStep,this.parser_=s.parser,this.props=s.props,this.sliderProps_=(a=s.sliderProps)!==null&&a!==void 0?a:null,this.value=s.value,this.viewProps=s.viewProps,this.dragging_=rt(null),this.view=new sn(i,{arrayPosition:s.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 St(this.view.knobElement);p.emitter.on("down",this.onPointerDown_),p.emitter.on("move",this.onPointerMove_),p.emitter.on("up",this.onPointerUp_)}constrainValue_(i){var s,a;const p=(s=this.sliderProps_)===null||s===void 0?void 0:s.get("minValue"),u=(a=this.sliderProps_)===null||a===void 0?void 0:a.get("maxValue");let h=i;return p!==void 0&&(h=Math.max(h,p)),u!==void 0&&(h=Math.min(h,u)),h}onInputChange_(i){const a=i.currentTarget.value,p=this.parser_(a);M(p)||(this.value.rawValue=this.constrainValue_(p)),this.view.refresh()}onInputKeyDown_(i){const s=Kt(this.baseStep_,ue(i));s!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+s),{forceEmit:!1,last:!1})}onInputKeyUp_(i){Kt(this.baseStep_,ue(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 s=i.point.x-i.bounds.width/2;return this.constrainValue_(this.originRawValue_+s*this.props.get("draggingScale"))}onPointerMove_(i){const s=this.computeDraggingValue_(i.data);s!==null&&(this.value.setRawValue(s,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(i){const s=this.computeDraggingValue_(i.data);s!==null&&(this.value.setRawValue(s,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function Nt(o,i){o.write(i)}function Gn(o){const i=o?Tt(o,gt):null;return i?i.step:null}function $i(o,i){const s=o&&Tt(o,gt);return s?$t(s.step):Math.max($t(i),2)}function on(o){const i=Gn(o);return i!=null?i:1}function Yn(o,i){var s;const a=o&&Tt(o,gt),p=Math.abs((s=a==null?void 0:a.step)!==null&&s!==void 0?s:i);return p===0?.1:Math.pow(10,Math.floor(Math.log10(p))-1)}function Ee(o){return[o[0],o[1],o[2]]}function de(o){const i=ut(Math.floor(o),0,255).toString(16);return i.length===1?`0${i}`:i}function Ui(o,i="#"){const s=Ee(o.getComponents("rgb")).map(de).join("");return`${i}${s}`}function Xn(o,i="#"){const s=o.getComponents("rgb"),a=[s[0],s[1],s[2],s[3]*255].map(de).join("");return`${i}${a}`}function Wn(o,i){const s=Q(i==="float"?2:0);return`rgb(${Ee(o.getComponents("rgb",i)).map(p=>s(p)).join(", ")})`}function Hi(o){return i=>Wn(i,o)}function qi(o,i){const s=Q(2),a=Q(i==="float"?2:0);return`rgba(${o.getComponents("rgb",i).map((u,h)=>(h===3?s:a)(u)).join(", ")})`}function Gi(o){return i=>qi(i,o)}function Yi(o){const i=[Q(0),Pe,Pe];return`hsl(${Ee(o.getComponents("hsl")).map((a,p)=>i[p](a)).join(", ")})`}function Xi(o){const i=[Q(0),Pe,Pe,Q(2)];return`hsla(${o.getComponents("hsl").map((a,p)=>i[p](a)).join(", ")})`}function an(o,i){const s=Q(i==="float"?2:0),a=["r","g","b"];return`{${Ee(o.getComponents("rgb",i)).map((u,h)=>`${a[h]}: ${s(u)}`).join(", ")}}`}function he(o){return i=>an(i,o)}function Wi(o,i){const s=Q(2),a=Q(i==="float"?2:0),p=["r","g","b","a"];return`{${o.getComponents("rgb",i).map((h,b)=>{const f=b===3?s:a;return`${p[b]}: ${f(h)}`}).join(", ")}}`}function ve(o){return i=>Wi(i,o)}[...["int","float"].reduce((o,i)=>[...o,{format:{alpha:!1,mode:"rgb",notation:"func",type:i},stringifier:Hi(i)},{format:{alpha:!0,mode:"rgb",notation:"func",type:i},stringifier:Gi(i)},{format:{alpha:!1,mode:"rgb",notation:"object",type:i},stringifier:he(i)},{format:{alpha:!0,mode:"rgb",notation:"object",type:i},stringifier:ve(i)}],[])];class Ji{constructor(i){this.components=i.components,this.asm_=i.assembly}constrain(i){const s=this.asm_.toComponents(i).map((a,p)=>{var u,h;return(h=(u=this.components[p])===null||u===void 0?void 0:u.constrain(a))!==null&&h!==void 0?h:a});return this.asm_.fromComponents(s)}}const ke=D("pndtxt");class Jn{constructor(i,s){this.textViews=s.textViews,this.element=i.createElement("div"),this.element.classList.add(ke()),this.textViews.forEach(a=>{const p=i.createElement("div");p.classList.add(ke("a")),p.appendChild(a.element),this.element.appendChild(p)})}}function Qi(o,i,s){return new Ki(o,{arrayPosition:s===0?"fst":s===i.axes.length-1?"lst":"mid",baseStep:i.axes[s].baseStep,parser:i.parser,props:i.axes[s].textProps,value:rt(0,{constraint:i.axes[s].constraint}),viewProps:i.viewProps})}class ln{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.acs_=s.axes.map((a,p)=>Qi(i,s,p)),this.acs_.forEach((a,p)=>{ce({primary:this.value,secondary:a.value,forward:u=>s.assembly.toComponents(u.rawValue)[p],backward:(u,h)=>{const b=s.assembly.toComponents(u.rawValue);return b[p]=h.rawValue,s.assembly.fromComponents(b)}})}),this.view=new Jn(i,{textViews:this.acs_.map(a=>a.view)})}}function Zi(o,i){return"step"in o&&!M(o.step)?new gt(o.step,i):null}function tr(o){return"max"in o&&!M(o.max)||"min"in o&&!M(o.min)?new Ce({max:o.max,min:o.min}):null}const er={monitor:{defaultInterval:200,defaultLineCount:3}},Lt=D("grl");class nr{constructor(i,s){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=i.createElement("div"),this.element.classList.add(Lt()),s.viewProps.bindClassModifiers(this.element),this.formatter_=s.formatter,this.props_=s.props,this.cursor_=s.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const a=i.createElementNS(A,"svg");a.classList.add(Lt("g")),a.style.height=`calc(var(--bld-us) * ${s.lineCount})`,this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(A,"polyline");this.svgElem_.appendChild(p),this.lineElem_=p;const u=i.createElement("div");u.classList.add(Lt("t"),D("tt")()),this.element.appendChild(u),this.tooltipElem_=u,s.value.emitter.on("change",this.onValueUpdate_),this.value=s.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const i=this.svgElem_.getBoundingClientRect(),s=this.value.rawValue.length-1,a=this.props_.get("minValue"),p=this.props_.get("maxValue"),u=[];this.value.rawValue.forEach((Et,gn)=>{if(Et===void 0)return;const wn=B(gn,0,s,0,i.width),Rt=B(Et,a,p,i.height,0);u.push([wn,Rt].join(","))}),this.lineElem_.setAttributeNS(null,"points",u.join(" "));const h=this.tooltipElem_,b=this.value.rawValue[this.cursor_.rawValue];if(b===void 0){h.classList.remove(Lt("t","a"));return}const f=B(this.cursor_.rawValue,0,s,0,i.width),J=B(b,a,p,i.height,0);h.style.left=`${f}px`,h.style.top=`${J}px`,h.textContent=`${this.formatter_(b)}`,h.classList.contains(Lt("t","a"))||(h.classList.add(Lt("t","a"),Lt("t","in")),G(h),h.classList.remove(Lt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ir{constructor(i,s){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_=s.props,this.value=s.value,this.viewProps=s.viewProps,this.cursor_=rt(-1),this.view=new nr(i,{cursor:this.cursor_,formatter:s.formatter,lineCount:s.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Nn(i))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const a=new St(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 s=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(B(i.offsetX,0,s.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(B(i.data.point.x,0,i.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class rr{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,s){const a=s.bind(this);return this.controller_.emitter.on(i,()=>{a(new x(this))}),this}}class sr extends x{constructor(i,s,a){super(i),this.cell=s,this.index=a}}class or extends w{constructor(i){super(i),this.cellToApiMap_=new Map,this.emitter_=new H;const s=this.controller_.valueController;s.cellControllers.forEach((a,p)=>{const u=new rr(a);this.cellToApiMap_.set(a,u),a.emitter.on("click",()=>{const h=p%s.size[0],b=Math.floor(p/s.size[0]);this.emitter_.emit("click",{event:new sr(this,u,[h,b])})})})}cell(i,s){const a=this.controller_.valueController,p=a.cellControllers[s*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,s){const a=s.bind(this);return this.emitter_.on(i,p=>{a(p.event)}),this}}class Qn{constructor(i,s){this.size=s.size;const[a,p]=this.size,u=[];for(let h=0;h<p;h++)for(let b=0;b<a;b++){const f=new It(i,{props:X.fromObject(Object.assign({},s.cellConfig(b,h))),viewProps:Mt.create()});u.push(f)}this.cellCs_=u,this.viewProps=Mt.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(h=>{h.viewProps.set("disposed",!0)})}),this.view=new $e(i,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(h=>{this.view.element.appendChild(h.view.element)})}get cellControllers(){return this.cellCs_}}const ar={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=U,s=k(o,{cells:i.required.function,size:i.required.array(i.required.number),view:i.required.constant("buttongrid"),label:i.optional.string});return s?{params:s}:null},controller(o){return new we(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new Qn(o.document,{cellConfig:o.params.cells,size:o.params.size})})},api(o){return!(o.controller instanceof we)||!(o.controller.valueController instanceof Qn)?null:new or(o.controller)}};class lr extends w{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,s){const a=s.bind(this);return this.controller_.valueController.value.emitter.on(i,p=>{a(new T(this,p.rawValue,void 0,p.options.last))}),this}}function pt(o,i,s){return o*(1-s)+i*s}const Zn=20,pr=.001,pn=100;function cr(o,i){let s=.25,a=.5,p=-1;for(let u=0;u<Zn;u++){const[h,b]=o.curve(a);if(a+=s*(h<i?1:-1),p=b,s*=.5,Math.abs(i-h)<pr)break}return p}class wt{constructor(i=0,s=0,a=1,p=1){this.cache_=[],this.comps_=[i,s,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 M(i)||!Array.isArray(i)?!1:typeof i[0]=="number"&&typeof i[1]=="number"&&typeof i[2]=="number"&&typeof i[3]=="number"}static equals(i,s){return i.x1===s.x1&&i.y1===s.y1&&i.x2===s.x2&&i.y2===s.y2}curve(i){const s=pt(0,this.x1,i),a=pt(0,this.y1,i),p=pt(this.x1,this.x2,i),u=pt(this.y1,this.y2,i),h=pt(this.x2,1,i),b=pt(this.y2,1,i),f=pt(s,p,i),J=pt(a,u,i),Et=pt(p,h,i),gn=pt(u,b,i);return[pt(f,Et,i),pt(J,gn,i)]}y(i){if(this.cache_.length===0){const s=[];for(let a=0;a<pn;a++)s.push(cr(this,B(a,0,pn-1,0,1)));this.cache_=s}return this.cache_[Math.round(B(ut(i,0,1),0,1,0,pn-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const ti={toComponents:o=>o.toObject(),fromComponents:o=>new wt(...o)};function xt(o){const i=Q(2);return`cubic-bezier(${o.toObject().map(a=>i(a)).join(", ")})`}const cn=[0,.5,.5,1];function ur(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 wt(...cn);const s=[i[1],i[2],i[3],i[4]].reduce((a,p)=>{if(!a)return null;const u=Number(p);return isNaN(u)?null:[...a,u]},[]);return new wt(...s!=null?s:cn)}const K=D("cbz");class dr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(K()),s.viewProps.bindClassModifiers(this.element),s.foldable.bindExpandedClass(this.element,K(void 0,"expanded")),Y(s.foldable,"completed",Z(this.element,K(void 0,"cpl")));const a=i.createElement("div");a.classList.add(K("h")),this.element.appendChild(a);const p=i.createElement("button");p.classList.add(K("b")),s.viewProps.bindDisabled(p);const u=i.createElementNS(A,"svg");u.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',p.appendChild(u),a.appendChild(p),this.buttonElement=p;const h=i.createElement("div");if(h.classList.add(K("t")),a.appendChild(h),this.textElement=h,s.pickerLayout==="inline"){const b=i.createElement("div");b.classList.add(K("p")),this.element.appendChild(b),this.pickerElement=b}else this.pickerElement=null}}const Ut=D("cbzp");class ei{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Ut()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(Ut("g")),this.element.appendChild(a),this.graphElement=a;const p=i.createElement("div");p.classList.add(Ut("t")),this.element.appendChild(p),this.textElement=p}}function Ve(o,i){const s=new MutationObserver(p=>{for(const u of p)u.type==="childList"&&u.addedNodes.forEach(h=>{!h.contains(h)||(i(),s.disconnect())})}),a=o.ownerDocument;s.observe(a.body,{attributes:!0,childList:!0,subtree:!0})}const Ct=D("cbzg");function hr(o,i){return s=>i(o(s))}class vr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Ct()),s.viewProps.bindClassModifiers(this.element),s.viewProps.bindTabIndex(this.element);const a=i.createElement("div");a.classList.add(Ct("p")),this.element.appendChild(a),this.previewElement=a;const p=i.createElementNS(A,"svg");p.classList.add(Ct("g")),this.element.appendChild(p),this.svgElem_=p;const u=i.createElementNS(A,"path");u.classList.add(Ct("u")),this.svgElem_.appendChild(u),this.guideElem_=u;const h=i.createElementNS(A,"polyline");h.classList.add(Ct("l")),this.svgElem_.appendChild(h),this.lineElem_=h,this.handleElems_=[i.createElement("div"),i.createElement("div")],this.handleElems_.forEach(b=>{b.classList.add(Ct("h")),this.element.appendChild(b)}),this.vectorElems_=[i.createElementNS(A,"line"),i.createElementNS(A,"line")],this.vectorElems_.forEach(b=>{b.classList.add(Ct("v")),this.svgElem_.appendChild(b)}),this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=s.selection,this.handleElems_.forEach((b,f)=>{I(this.sel_,hr(J=>J===f,Z(b,Ct("h","sel"))))}),Ve(this.element,()=>{this.refresh()})}getVertMargin_(i){return i*.25}valueToPosition(i,s){const a=this.element.getBoundingClientRect(),p=a.width,u=a.height,h=this.getVertMargin_(u);return{x:B(i,0,1,0,p),y:B(s,0,1,u-h,h)}}positionToValue(i,s){const a=this.element.getBoundingClientRect(),p=a.width,u=a.height,h=this.getVertMargin_(u);return{x:ut(B(i,0,p,0,1),0,1),y:B(s,u-h,h,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(u=>{const h=this.valueToPosition(0,u),b=this.valueToPosition(1,u);return[`M ${h.x},${h.y}`,`L ${b.x},${b.y}`].join(" ")}).join(" "));const i=this.value_.rawValue,s=[];let a=0;for(;;){const u=this.valueToPosition(...i.curve(a));if(s.push([u.x,u.y].join(",")),a>=1)break;a=Math.min(a+.05,1)}this.lineElem_.setAttributeNS(null,"points",s.join(" "));const p=i.toObject();[0,1].forEach(u=>{const h=this.valueToPosition(u,u),b=this.valueToPosition(p[u*2],p[u*2+1]),f=this.vectorElems_[u];f.setAttributeNS(null,"x1",String(h.x)),f.setAttributeNS(null,"y1",String(h.y)),f.setAttributeNS(null,"x2",String(b.x)),f.setAttributeNS(null,"y2",String(b.y));const J=this.handleElems_[u];J.style.left=`${b.x}px`,J.style.top=`${b.y}px`})}onValueChange_(){this.refresh()}}const ni=24,Ht=400,et=1e3,vt=D("cbzprv");class yt{constructor(i,s){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(vt()),s.viewProps.bindClassModifiers(this.element);const a=i.createElementNS(A,"svg");a.classList.add(vt("g")),this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(A,"path");p.classList.add(vt("t")),this.svgElem_.appendChild(p),this.ticksElem_=p;const u=i.createElement("div");u.classList.add(vt("m")),this.element.appendChild(u),this.markerElem_=u,this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_),s.viewProps.handleDispose(this.onDispose_),Ve(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(vt("m","a")),this.startTime_=new Date().getTime()+Ht,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(vt("m","a"))}onDispose_(){this.stop()}updateMarker_(i){const s=this.value_.rawValue.y(ut(i,0,1));this.markerElem_.style.left=`${s*100}%`}refresh(){const i=this.svgElem_.getBoundingClientRect(),s=i.width,a=i.height,p=[],u=this.value_.rawValue;for(let h=0;h<ni;h++){const b=B(h,0,ni-1,0,1),f=B(u.y(b),0,1,0,s);p.push(`M ${f},0 v${a}`)}this.ticksElem_.setAttributeNS(null,"d",p.join(" "))}onTimer_(){if(this.startTime_===null)return;const i=new Date().getTime()-this.startTime_,s=i/et;this.updateMarker_(s),i>et+Ht&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function un(o,i,s,a){const p=s-o,u=a-i;return Math.sqrt(p*p+u*u)}function ii(o,i,s,a){const p=un(o,i,s,a),u=Math.atan2(a-i,s-o),h=Math.round(u/(Math.PI/4))*Math.PI/4;return{x:o+Math.cos(h)*p,y:i+Math.sin(h)*p}}class dn{constructor(i,s){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_=s.baseStep,this.value=s.value,this.sel_=rt(0),this.viewProps=s.viewProps,this.view=new vr(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 yt(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 St(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,s,a){const p=this.sel_.rawValue,u=this.value.rawValue.toObject(),h=this.view.positionToValue(i.x,i.y),b=s?ii(p,p,h.x,h.y):h;u[p*2]=b.x,u[p*2+1]=b.y,this.value.setRawValue(new wt(...u),a)}onPointerDown_(i){const s=i.data;if(!s.point)return;const a=this.value.rawValue,p=this.view.valueToPosition(a.x1,a.y1),u=un(s.point.x,s.point.y,p.x,p.y),h=this.view.valueToPosition(a.x2,a.y2),b=un(s.point.x,s.point.y,h.x,h.y);this.sel_.rawValue=u<=b?0:1,this.updateValue_(s.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(i){const s=i.data;!s.point||this.updateValue_(s.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(i){const s=i.data;!s.point||this.updateValue_(s.point,i.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(i){qn(i.key)&&i.preventDefault();const s=this.sel_.rawValue,a=this.value.rawValue.toObject();a[s*2]+=Kt(this.baseStep_,nn(i)),a[s*2+1]+=Kt(this.baseStep_,ue(i)),this.value.setRawValue(new wt(...a),{forceEmit:!1,last:!1})}onKeyUp_(i){qn(i.key)&&i.preventDefault();const s=Kt(this.baseStep_,nn(i)),a=Kt(this.baseStep_,ue(i));s===0&&a===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Dt{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.view=new ei(i,{viewProps:this.viewProps}),this.gc_=new dn(i,{baseStep:s.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const a=Object.assign(Object.assign({},s.axis),{constraint:new Ce({max:1,min:0})}),p=Object.assign(Object.assign({},s.axis),{constraint:void 0});this.tc_=new ln(i,{assembly:ti,axes:[a,p,a,p],parser:pe,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 j{constructor(i,s){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=s.value,this.viewProps=s.viewProps,this.foldable_=xi(s.expanded),this.view=new dr(i,{foldable:this.foldable_,pickerLayout:s.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new Ge(i,{parser:ur,props:X.fromObject({formatter:xt}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=s.pickerLayout==="popup"?new Pi(i,{viewProps:this.viewProps}):null;const a=new Dt(i,{axis:s.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),I(this.popC_.shows,p=>{p&&a.refresh()}),ce({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:p=>p.rawValue,backward:(p,u)=>u.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),xe(this.foldable_,this.view.pickerElement))}onButtonBlur_(i){if(!this.popC_)return;const s=i.relatedTarget;(!s||!this.popC_.view.element.contains(s))&&(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 s=this.popC_.view.element,a=zn(i);a&&s.contains(a)||a&&a===this.view.buttonElement&&!Nn(s.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(i){!this.popC_||i.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function ri(){return new Ji({assembly:ti,components:[0,1,2,3].map(o=>o%2===0?new Ce({min:0,max:1}):void 0)})}const W={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=U,s=k(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 s?{params:s}:null},controller(o){var i,s;const a=new wt(...o.params.value),p=rt(a,{constraint:ri(),equals:wt.equals}),u=new j(o.document,{axis:{baseStep:.1,textProps:X.fromObject({draggingScale:.01,formatter:Q(2)})},expanded:(i=o.params.expanded)!==null&&i!==void 0?i:!1,pickerLayout:(s=o.params.picker)!==null&&s!==void 0?s:"popup",value:p,viewProps:o.viewProps});return new ne(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:u})},api(o){return!(o.controller instanceof ne)||!(o.controller.valueController instanceof j)?null:new lr(o.controller)}};class si extends w{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const at=20;class mr{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 s=this.timestamps_[0];return 1e3*(this.frameCount_-s.frameCount)/(i-s.time)}compactTimestamps_(){if(this.timestamps_.length<=at)return;const i=this.timestamps_.length-at;this.timestamps_.splice(0,i);const s=this.timestamps_[0].frameCount;this.timestamps_.forEach(a=>{a.frameCount-=s}),this.frameCount_-=s}end(i){if(this.start_===null)return;const s=i.getTime();this.duration_=s-this.start_,this.start_=null,this.fps_=this.calculateFps_(s),this.timestamps_.push({frameCount:this.frameCount_,time:s}),++this.frameCount_,this.compactTimestamps_()}}const Pt=D("fps");class hn{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Pt()),s.viewProps.bindClassModifiers(this.element),this.graphElement=i.createElement("div"),this.graphElement.classList.add(Pt("g")),this.element.appendChild(this.graphElement);const a=i.createElement("div");a.classList.add(Pt("l")),this.element.appendChild(a);const p=i.createElement("span");p.classList.add(Pt("v")),p.textContent="--",a.appendChild(p),this.valueElement=p;const u=i.createElement("span");u.classList.add(Pt("u")),u.textContent="FPS",a.appendChild(u)}}class oi{constructor(i,s){this.stopwatch_=new mr,this.onTick_=this.onTick_.bind(this),this.ticker_=s.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=s.value,this.viewProps=s.viewProps,this.view=new hn(i,{viewProps:this.viewProps}),this.graphC_=new ir(i,{formatter:Q(0),lineCount:s.lineCount,props:X.fromObject({maxValue:s.maxValue,minValue:s.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 s=this.value_.rawValue;this.value_.rawValue=ji(s,i),this.view.valueElement.textContent=i.toFixed(0)}}}function br(o,i){return i===0?new ie:new yi(o,i!=null?i:er.monitor.defaultInterval)}const vn={id:"fpsgraph",type:"blade",accept(o){const i=U,s=k(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 s?{params:s}:null},controller(o){var i,s,a,p;const u=(i=o.params.interval)!==null&&i!==void 0?i:500;return new we(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new oi(o.document,{lineCount:(s=o.params.lineCount)!==null&&s!==void 0?s:2,maxValue:(a=o.params.max)!==null&&a!==void 0?a:90,minValue:(p=o.params.min)!==null&&p!==void 0?p:0,ticker:br(o.document,u),value:Un(80),viewProps:o.viewProps})})},api(o){return!(o.controller instanceof we)||!(o.controller.valueController instanceof oi)?null:new si(o.controller)}};class ct{constructor(i,s){this.min=i,this.max=s}static isObject(i){if(typeof i!="object"||i===null)return!1;const s=i.min,a=i.max;return!(typeof s!="number"||typeof a!="number")}static equals(i,s){return i.min===s.min&&i.max===s.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const Se={fromComponents:o=>new ct(o[0],o[1]),toComponents:o=>[o.min,o.max]};class qt{constructor(i){this.edge=i}constrain(i){var s,a,p,u,h,b,f,J;if(i.min<=i.max)return new ct((a=(s=this.edge)===null||s===void 0?void 0:s.constrain(i.min))!==null&&a!==void 0?a:i.min,(u=(p=this.edge)===null||p===void 0?void 0:p.constrain(i.max))!==null&&u!==void 0?u:i.max);const Et=(i.min+i.max)/2;return new ct((b=(h=this.edge)===null||h===void 0?void 0:h.constrain(Et))!==null&&b!==void 0?b:Et,(J=(f=this.edge)===null||f===void 0?void 0:f.constrain(Et))!==null&&J!==void 0?J:Et)}}const Gt=D("rsltxt");class ai{constructor(i,s){this.sliderView_=s.sliderView,this.textView_=s.textView,this.element=i.createElement("div"),this.element.classList.add(Gt());const a=i.createElement("div");a.classList.add(Gt("s")),a.appendChild(this.sliderView_.element),this.element.appendChild(a);const p=i.createElement("div");p.classList.add(Gt("t")),p.appendChild(this.textView_.element),this.element.appendChild(p)}}const st=D("rsl");class li{constructor(i,s){this.maxValue_=s.maxValue,this.minValue_=s.minValue,this.element=i.createElement("div"),this.element.classList.add(st()),s.viewProps.bindClassModifiers(this.element),this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_.bind(this));const a=i.createElement("div");a.classList.add(st("t")),this.element.appendChild(a),this.trackElement=a;const p=i.createElement("div");p.classList.add(st("b")),a.appendChild(p),this.barElement=p;const u=["min","max"].map(h=>{const b=i.createElement("div");return b.classList.add(st("k"),st("k",h)),a.appendChild(b),b});this.knobElements=[u[0],u[1]],this.update()}valueToX_(i){return ut(B(i,this.minValue_,this.maxValue_,0,1),0,1)*100}update(){const i=this.value_.rawValue;i.length===0?this.element.classList.add(st(void 0,"zero")):this.element.classList.remove(st(void 0,"zero"));const s=[this.valueToX_(i.min),this.valueToX_(i.max)];this.barElement.style.left=`${s[0]}%`,this.barElement.style.right=`${100-s[1]}%`,this.knobElements.forEach((a,p)=>{a.style.left=`${s[p]}%`})}onValueChange_(){this.update()}}class mn{constructor(i,s){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_=s.maxValue,this.minValue_=s.minValue,this.viewProps=s.viewProps,this.value=s.value,this.view=new li(i,{maxValue:s.maxValue,minValue:s.minValue,value:this.value,viewProps:s.viewProps});const a=new St(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 s=(i.point.x+this.ofs_())/i.bounds.width;return B(s,0,1,this.minValue_,this.maxValue_)}onPointerDown_(i){if(!i.data.point)return;const s=i.data.point.x/i.data.bounds.width,a=this.value.rawValue,p=B(a.min,this.minValue_,this.maxValue_,0,1),u=B(a.max,this.minValue_,this.maxValue_,0,1);Math.abs(u-s)<=.025?this.grabbing_="max":Math.abs(p-s)<=.025?this.grabbing_="min":s>=p&&s<=u?(this.grabbing_="length",this.grabOffset_=B(s-p,0,1,0,this.maxValue_-this.minValue_)):s<p?(this.grabbing_="min",this.onPointerMove_(i)):s>u&&(this.grabbing_="max",this.onPointerMove_(i))}applyPointToValue_(i,s){const a=this.valueFromData_(i);if(a!==null){if(this.grabbing_==="min")this.value.setRawValue(new ct(a,this.value.rawValue.max),s);else if(this.grabbing_==="max")this.value.setRawValue(new ct(this.value.rawValue.min,a),s);else if(this.grabbing_==="length"){const p=this.value.rawValue.length;let u=a-this.grabOffset_,h=u+p;u<this.minValue_?(u=this.minValue_,h=this.minValue_+p):h>this.maxValue_&&(u=this.maxValue_-p,h=this.maxValue_),this.value.setRawValue(new ct(u,h),s)}}}onPointerMove_(i){this.applyPointToValue_(i.data,{forceEmit:!1,last:!1})}onPointerUp_(i){this.applyPointToValue_(i.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class bn{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.sc_=new mn(i,s);const a={baseStep:s.baseStep,constraint:s.constraint,textProps:X.fromObject({draggingScale:s.draggingScale,formatter:s.formatter})};this.tc_=new ln(i,{assembly:Se,axes:[a,a],parser:s.parser,value:this.value,viewProps:s.viewProps}),this.view=new ai(i,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function fr(o){return ct.isObject(o)?new ct(o.min,o.max):new ct(0,0)}function Le(o,i){o.writeProperty("max",i.max),o.writeProperty("min",i.min)}function Yt(o){const i=[],s=tr(o);s&&i.push(s);const a=Zi(o);return a&&i.push(a),new qt(new Ue(i))}const Xt={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(!ct.isObject(o))return null;const s=U,a=k(i,{format:s.optional.function,max:s.optional.number,min:s.optional.number,step:s.optional.number});return a?{initialValue:new ct(o.min,o.max),params:a}:null},binding:{reader:o=>fr,constraint:o=>Yt(o.params),equals:ct.equals,writer:o=>Le},controller(o){var i;const s=o.value,a=o.constraint;if(!(a instanceof qt))throw F.shouldNeverHappen();const p=(s.rawValue.min+s.rawValue.max)/2,u=(i=o.params.format)!==null&&i!==void 0?i:Q($i(a.edge,p)),h=a.edge&&Tt(a.edge,Ce);if((h==null?void 0:h.minValue)!==void 0&&(h==null?void 0:h.maxValue)!==void 0)return new bn(o.document,{baseStep:on(a.edge),constraint:a.edge,draggingScale:Yn(h,p),formatter:u,maxValue:h.maxValue,minValue:h.minValue,parser:pe,value:s,viewProps:o.viewProps});const b={baseStep:on(a.edge),constraint:a.edge,textProps:X.fromObject({draggingScale:p,formatter:u})};return new ln(o.document,{assembly:Se,axes:[b,b],parser:pe,value:s,viewProps:o.viewProps})}};class Me{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 _r extends T{constructor(i,s,a,p,u){super(i,p,u),this.cell=s,this.index=a}}class gr extends w{constructor(i){super(i),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(a=>{const p=new Me(a);this.cellToApiMap_.set(a,p)})}get value(){return this.controller_.value}cell(i,s){const a=this.controller_.valueController,p=a.cellControllers[s*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,s){const a=s.bind(this);this.controller_.value.emitter.on(i,p=>{const u=this.controller_.valueController,h=u.findCellByValue(p.rawValue);if(!h)return;const b=this.cellToApiMap_.get(h);if(!b)return;const f=u.cellControllers.indexOf(h);a(new _r(this,b,[f%u.size[0],Math.floor(f/u.size[0])],p.rawValue,void 0))})}}const me=D("rad");class wr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(me()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("label");a.classList.add(me("l")),this.element.appendChild(a);const p=i.createElement("input");p.classList.add(me("i")),p.name=s.name,p.type="radio",s.viewProps.bindDisabled(p),a.appendChild(p),this.inputElement=p;const u=i.createElement("div");u.classList.add(me("b")),a.appendChild(u);const h=i.createElement("div");h.classList.add(me("t")),u.appendChild(h),Y(s.props,"title",b=>{h.textContent=b})}}class zt{constructor(i,s){this.props=s.props,this.viewProps=s.viewProps,this.view=new wr(i,{name:s.name,props:this.props,viewProps:this.viewProps})}}class fn{constructor(i,s){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=s.size;const[a,p]=this.size;for(let u=0;u<p;u++)for(let h=0;h<a;h++){const b=new zt(i,{name:s.groupName,props:X.fromObject(Object.assign({},s.cellConfig(h,u))),viewProps:Mt.create()});this.cellCs_.push(b),this.cellValues_.push(s.cellConfig(h,u).value)}this.value=s.value,I(this.value,u=>{const h=this.findCellByValue(u);!h||(h.view.inputElement.checked=!0)}),this.viewProps=Mt.create(),this.view=new $e(i,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(u=>{u.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(u.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(i){const s=this.cellValues_.findIndex(a=>a===i);return s<0?null:this.cellCs_[s]}onCellInputChange_(i){const s=i.currentTarget,a=this.cellCs_.findIndex(p=>p.view.inputElement===s);a<0||(this.value.rawValue=this.cellValues_[a])}}const xr=function(){return{id:"radiogrid",type:"blade",accept(o){const i=U,s=k(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 s?{params:s}:null},controller(o){return new ne(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new fn(o.document,{groupName:o.params.groupName,cellConfig:o.params.cells,size:o.params.size,value:rt(o.params.value)})})},api(o){return!(o.controller instanceof ne)||!(o.controller.valueController instanceof fn)?null:new gr(o.controller)}}}();function _n(o){return{id:"input-radiogrid",type:"input",accept(i,s){if(!o.isType(i))return null;const a=U,p=k(s,{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 fn(i.document,{cellConfig:i.params.cells,groupName:i.params.groupName,size:i.params.size,value:i.value})}}const Cr=_n({isType:o=>typeof o=="number",binding:{reader:o=>Vt,writer:o=>Nt}}),pi=_n({isType:o=>typeof o=="string",binding:{reader:o=>$n,writer:o=>Nt}}),yr=_n({isType:o=>typeof o=="boolean",binding:{reader:o=>Ei,writer:o=>Nt}}),Pr=[ar,W,vn,Xt,xr,yr,Cr,pi];C.CubicBezier=wt,C.plugins=Pr,Object.defineProperty(C,"__esModule",{value:!0})})})(Sn,Sn.exports);const qs=Hs(Sn.exports),Gs=Bs({__proto__:null,default:qs},[Sn.exports]);let ge,Ln;const Ys=()=>{ge=new mi.exports.Pane({container:document.getElementById("tres-container")||void 0}),ge.registerPlugin(Gs),Ln=ge.addBlade({view:"fpsgraph",label:"fpsgraph"});function m(){ge&&ge.dispose()}return L.onMounted(()=>{kn(()=>{},()=>{Ln.begin()},()=>{Ln.end()})}),L.onUnmounted(()=>{m()}),{pane:ge,fpsGraph:Ln,disposeTweakPane:m}};let $,Xr;function Wr(m,_){const{width:C,height:w}=jr.useWindowSize(),{logMessage:x}=di(),T=L.computed(()=>C.value/w.value),{scene:N}=Be(),{activeCamera:M}=En(),{setState:z}=vi();z("scene",N),z("camera",M);function F(){$&&($.shadowMap.enabled=!0,$.shadowMap.type=nt.PCFSoftShadowMap)}function H(){$&&($.setSize(C.value,w.value),$.setPixelRatio(Math.min(window.devicePixelRatio,2)))}function S(){$&&($.dispose(),$=null),x("disposeRenderer",$),Xr()}L.watch(T,H);function D(){if(x("Render init",{renderer:$,canvas:m,scene:N}),!$&&m.value&&N){const P={canvas:m.value,..._};_!=null&&_.context&&(P.context=_.context),$=new nt.WebGLRenderer(P),_!=null&&_.shadows&&F(),$.physicallyCorrectLights=(_==null?void 0:_.physicallyCorrectLights)||!1,_!=null&&_.outputEncoding&&($.outputEncoding=_.outputEncoding),_!=null&&_.toneMapping&&($.toneMapping=_.toneMapping,$.toneMappingExposure=1),H(),$.render(N,M.value),z("renderer",$),Xr=kn(()=>{N&&$&&$.render(N,M.value)}).disposeLoop}z("loop",kn)}function bt(P){$&&$.setClearColor(Ks(P))}return D(),{renderer:$,setClearColor:bt,updateRenderer:H,disposeRenderer:S}}const Jr=Symbol("UseTresState"),Qr=L.defineComponent({__name:"TresCanvas",props:{camera:null,ortographic:{type:Boolean},gl:null,shadows:{type:Boolean,default:!1},physicallyCorrectLights:{type:Boolean,default:!1},outputEncoding:{default:nt.sRGBEncoding},alpha:{type:Boolean,default:!1},background:null,async:{type:Boolean,default:!1}},setup(m){const _=m;let C,w=()=>{};const x=L.ref(),T=L.ref(!0),{scene:N,clearScene:M}=Be(),z=L.useSlots(),F=L.useAttrs(),{createCamera:H}=En();let S;const D=vi();L.provide(Jr,D.state);const bt=z.default?z==null?void 0:z.default().some(I=>I.type.name==="PerspectiveCamera"||I.type.name==="OrtographicCamera"):!1;if(N&&!bt)if(_.camera){const{position:I,...Y}=_.camera;if(S=H(_.ortographic===!0?fe.Orthographic:fe.Perspective,Y||{}),I){const E=$r(I);S.position.set(...E)}N.add(S)}else S=H(_.ortographic===!0?fe.Orthographic:fe.Perspective,{}),S.position.set(5,5,5),N.add(S);L.watch(_,()=>{C&&(w(),M(),P())});function P(){const I=Wr(x,{antialias:!0,physicallyCorrectLights:_.physicallyCorrectLights,shadows:_.shadows,context:_.gl||null,alpha:_.alpha});C=I.renderer,w=I.disposeRenderer,_.background&&I.setClearColor(_.background)}return L.onMounted(()=>{P()}),L.onBeforeUnmount(()=>{M(),w()}),(I,Y)=>{var E,Z,y,it;return L.openBlock(),L.createElementBlock("div",{id:"tres-container",style:L.normalizeStyle({position:"relative",top:0,left:0,right:0,bottom:0,overflow:"hidden",width:((Z=(E=L.unref(F))==null?void 0:E.style)==null?void 0:Z.width)||"100%",height:"100%"})},[L.createElementVNode("canvas",{ref_key:"canvasRef",ref:x,style:L.normalizeStyle({width:((it=(y=L.unref(F))==null?void 0:y.style)==null?void 0:it.width)||"100%",height:"100%",overflow:"hidden"})},null,4),m.async?(L.openBlock(),L.createBlock(L.Suspense,{key:0},{default:L.withCtx(()=>[T.value?L.renderSlot(I.$slots,"default",{key:0}):L.createCommentVNode("",!0)]),_:3})):(L.openBlock(),L.createElementBlock(L.Fragment,{key:1},[T.value?L.renderSlot(I.$slots,"default",{key:0}):L.createCommentVNode("",!0)],64))],4)}}}),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Qr},Symbol.toStringTag,{value:"Module"})),Ws={install(m){m.component("TresCanvas",Qr);const{createComponentInstances:_}=Hr();_().forEach(([w,x])=>{m.component(w,x)})}};q.CameraType=fe,q.TresCanvas=Xs,q.UseTresStateSymbol=Jr,q.default=Ws,q.useCamera=En,q.useCatalog=Fr,q.useInstanceCreator=Hr,q.useLoadingManager=Gr,q.useLoop=kn,q.useRenderer=Wr,q.useScene=Be,q.useTexture=Us,q.useTres=vi,q.useTweakPane=Ys,Object.defineProperties(q,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
8
+ (function(q,L){typeof exports=="object"&&typeof module<"u"?L(exports,require("vue"),require("three"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","three","@vueuse/core"],L):(q=typeof globalThis<"u"?globalThis:q||self,L(q.tres={},q.Vue,q.Three,q.VueUseCore))})(this,function(q,L,nt,jr){"use strict";function Rs(m){if(m&&m.__esModule)return m;const _=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(m){for(const C in m)if(C!=="default"){const w=Object.getOwnPropertyDescriptor(m,C);Object.defineProperty(_,C,w.get?w:{enumerable:!0,get:()=>m[C]})}}return _.default=m,Object.freeze(_)}function Os(m,_){for(var C=0;C<_.length;C++){const w=_[C];if(typeof w!="string"&&!Array.isArray(w)){for(const x in w)if(x!=="default"&&!(x in m)){const T=Object.getOwnPropertyDescriptor(w,x);T&&Object.defineProperty(m,x,T.get?T:{enumerable:!0,get:()=>w[x]})}}}return Object.freeze(Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}))}const Bs=Rs(nt);var fe=(m=>(m.Perspective="Perspective",m.Orthographic="Orthographic",m))(fe||{});const Re={cameras:[]},Is=45;let _e;function En(){const{width:m,height:_}=jr.useWindowSize();function C(M="Perspective",z){if(M==="Perspective"){const{near:F,far:H,fov:S}=z||{near:.1,far:1e3,fov:Is};_e=new nt.PerspectiveCamera(S,w.value,F,H),Re.cameras.push(_e)}else{const{left:F,right:H,top:S,bottom:D,near:bt,far:E}=z||{left:-100,right:100,top:100,bottom:-100,near:.1,far:1e3};_e=new nt.OrthographicCamera(F,H,S,D,bt,E),Re.cameras.push(_e)}return Re.cameras.push(_e),_e}const w=L.computed(()=>m.value/_.value),x=L.computed(()=>Re.cameras[0]);function T(){x.value instanceof nt.PerspectiveCamera&&(x.value.aspect=w.value),x.value.updateProjectionMatrix()}function N(M){Re.cameras.push(M),M instanceof nt.PerspectiveCamera&&(M.aspect=w.value),M.updateProjectionMatrix()}return L.watch(w,T),{activeCamera:x,createCamera:C,updateCamera:T,pushCamera:N}}let ui={...Bs};function Fr(){return{extend:_=>{ui=Object.assign(ui,_)},catalogue:ui}}const js=m=>typeof m<"u",Kr=m=>!!m&&m.constructor===Array;function $r(m){return typeof m=="number"?[m,m,m]:m instanceof nt.Vector3?[m.x,m.y,m.z]:m}function Fs(m){return m instanceof nt.Color?m:Array.isArray(m)?new nt.Color(...m):new nt.Color(m)}const Ur="[TresJS \u25B2 \u25A0 \u25CF] ";function di(){function m(w,x){console.error(`${Ur} ${w}`,x)}function _(w){console.warn(`${Ur} ${w}`)}function C(w,x){}return{logError:m,logWarning:_,logMessage:C}}const Oe=new nt.Scene,hi=L.ref(!1);function Be(){const{logMessage:m}=di();function _(){Oe==null||Oe.clear(),hi.value=!hi.value,m("clear Scene",Oe)}return{isSceneReset:hi,clearScene:_,scene:Oe}}const Ks=["rotation","scale","position"];function Hr(){const{catalogue:m}=Fr(),{logMessage:_,logError:C}=di();function w(){return Object.entries(m).filter(([x,T])=>{var N,M;return(M=(N=T==null?void 0:T.prototype)==null?void 0:N.constructor)==null?void 0:M.toString().includes("class")}).map(([x,T])=>{const N=L.defineComponent({name:x,setup(M,{slots:z,attrs:F,...H}){_(x,{props:M,slots:z,attrs:F,ctx:H});let S;const{scene:D}=Be(),{pushCamera:bt}=En();function E(){if((z==null?void 0:z.default)&&(z==null?void 0:z.default())){const Y=z.default().map(P=>{var y;let Z;return(y=P==null?void 0:P.props)!=null&&y.args?Z=new m[P.type.name](...P.props.args):Z=new m[P.type.name],P!=null&&P.props&&I(P.props,Z),Z});S=new T(...Y)}else F.args?S=new T(...F.args):S=new T;I(F,S),x==="PerspectiveCamera"||x==="OrtographicCamera"?bt(S):D==null||D.add(S),_("Instance added",D),H.expose(S)}function I(Y,P){Object.entries(Y).forEach(([Z,y])=>{const it=Z.replace(/(-\w)/g,te=>te[1].toUpperCase());if(!(it==="args"||y===void 0)){Ks.includes(Z)&&y&&(y=$r(y));try{P[it]&&js(P[it].set)?Kr(y)?P[it].set(...y):P[it].set(y):(y===""&&(y=!0),P[it]=y)}catch(te){C(`There was an error setting ${it} property`,te)}}}),Y.ref&&(Y.ref=P)}return E(),()=>{}}});return[x,N]})}return{createComponentInstances:w}}let qr;function kn(m,_,C){const w=new nt.Clock,{scene:x}=Be(),T=()=>{const M=w.getElapsedTime(),z=w.getDelta();x&&(_&&_(z,M),m(z,M),C&&C(z,M)),qr=requestAnimationFrame(T)};T();function N(){cancelAnimationFrame(qr)}return{disposeLoop:N}}function Gr(){const m=new nt.LoadingManager,_=L.ref(m);return{loadingManager:m,loadingManagerRef:_}}async function $s(m){const{loadingManager:_}=Gr(),C=new nt.TextureLoader(_),w=x=>new Promise((T,N)=>{C.load(x,M=>T(M),()=>null,()=>{N(new Error("[useTextures] - Failed to load texture"))})});if(Kr(m)){const x=await Promise.all(m.map(T=>w(T)));return m.length>1?x:x[0]}else{const{map:x,displacementMap:T,normalMap:N,roughnessMap:M,metalnessMap:z,aoMap:F}=m;return{map:x?await w(x):null,displacementMap:T?await w(T):null,normalMap:N?await w(N):null,roughnessMap:M?await w(M):null,metalnessMap:z?await w(z):null,aoMap:F?await w(F):null}}}const Vn=L.reactive({});function vi(){function m(C){return Vn[C]}function _(C,w){Vn[C]=w}return{state:Vn,...L.toRefs(Vn),getState:m,setState:_}}var Yr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Us(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var mi={exports:{}};/*! Tweakpane 3.1.0 (c) 2016 cocopon, licensed under the MIT license. */(function(m,_){(function(C,w){w(_)})(Yr,function(C){class w{constructor(t){const[e,r]=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=r!=null?r:null}toString(){const t=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[t,this.prerelease].join("-"):t}}class x{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 T{constructor(t){this.target=t}}class N extends T{constructor(t,e,r,l){super(t),this.value=e,this.presetKey=r,this.last=l!=null?l:!0}}class M extends T{constructor(t,e,r){super(t),this.value=e,this.presetKey=r}}class z extends T{constructor(t,e){super(t),this.expanded=e}}class F extends T{constructor(t,e){super(t),this.index=e}}function H(n){return n}function S(n){return n==null}function D(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 bt={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 E{constructor(t){var e;this.message=(e=bt[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 E({type:"alreadydisposed"})}static notBindable(){return new E({type:"notbindable"})}static propertyNotFound(t){return new E({type:"propertynotfound",context:{name:t}})}static shouldNeverHappen(){return new E({type:"shouldneverhappen"})}}class I{constructor(t,e,r){this.obj_=t,this.key_=e,this.presetKey_=r!=null?r: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 r=this.read();if(!I.isBindable(r))throw E.notBindable();if(!(t in r))throw E.propertyNotFound(t);r[t]=e}}class Y extends x{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 r=e.bind(this);return this.controller_.valueController.emitter.on(t,()=>{r(new T(this))}),this}}class P{constructor(){this.observers_={}}on(t,e){let r=this.observers_[t];return r||(r=this.observers_[t]=[]),r.push({handler:e}),this}off(t,e){const r=this.observers_[t];return r&&(this.observers_[t]=r.filter(l=>l.handler!==e)),this}emit(t,e){const r=this.observers_[t];!r||r.forEach(l=>{l.handler(e)})}}const Z="tp";function y(n){return(e,r)=>[Z,"-",n,"v",e?`_${e}`:"",r?`-${r}`:""].join("")}function it(n,t){return e=>t(n(e))}function te(n){return n.rawValue}function It(n,t){n.emitter.on("change",it(te,t)),t(n.rawValue)}function ot(n,t,e){It(n.value(t),e)}function bi(n,t,e){e?n.classList.add(t):n.classList.remove(t)}function rt(n,t){return e=>{bi(n,t,e)}}function X(n,t){It(n,e=>{t.textContent=e!=null?e:""})}const Ie=y("btn");class fi{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ie()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("button");r.classList.add(Ie("b")),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const l=t.createElement("div");l.classList.add(Ie("t")),X(e.props.value("title"),l),this.buttonElement.appendChild(l)}}class Mn{constructor(t,e){this.emitter=new P,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new fi(t,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ft{constructor(t,e){var r;this.constraint_=e==null?void 0:e.constraint,this.equals_=(r=e==null?void 0:e.equals)!==null&&r!==void 0?r:(l,c)=>l===c,this.emitter=new P,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 r=e!=null?e:{forceEmit:!1,last:!0},l=this.constraint_?this.constraint_.constrain(t):t;!!this.equals_(this.rawValue_,l)&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.rawValue_=l,this.emitter.emit("change",{options:r,rawValue:l,sender:this}))}}class Tn{constructor(t){this.emitter=new P,this.value_=t}get rawValue(){return this.value_}set rawValue(t){this.setRawValue(t,{forceEmit:!1,last:!0})}setRawValue(t,e){const r=e!=null?e:{forceEmit:!1,last:!0};this.value_===t&&!r.forceEmit||(this.emitter.emit("beforechange",{sender:this}),this.value_=t,this.emitter.emit("change",{options:r,rawValue:this.value_,sender:this}))}}function U(n,t){const e=t==null?void 0:t.constraint,r=t==null?void 0:t.equals;return!e&&!r?new Tn(n):new ft(n,t)}class k{constructor(t){this.emitter=new P,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((r,l)=>Object.assign(r,{[l]:U(t[l])}),{})}static fromObject(t){const e=this.createCore(t);return new k(e)}get(t){return this.valMap_[t].rawValue}set(t,e){this.valMap_[t].rawValue=e}value(t){return this.valMap_[t]}}function _i(n,t){const r=Object.keys(t).reduce((l,c)=>{if(l===void 0)return;const d=t[c],v=d(n[c]);return v.succeeded?Object.assign(Object.assign({},l),{[c]:v.value}):void 0},{});return r}function gi(n,t){return n.reduce((e,r)=>{if(e===void 0)return;const l=t(r);if(!(!l.succeeded||l.value===void 0))return[...e,l.value]},[])}function An(n){return n===null?!1:typeof n=="object"}function dt(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 r=n(e);return r!==void 0?{succeeded:!0,value:r}:{succeeded:!1,value:void 0}}}function je(n){return{custom:t=>dt(t)(n),boolean:dt(t=>typeof t=="boolean"?t:void 0)(n),number:dt(t=>typeof t=="number"?t:void 0)(n),string:dt(t=>typeof t=="string"?t:void 0)(n),function:dt(t=>typeof t=="function"?t:void 0)(n),constant:t=>dt(e=>e===t?t:void 0)(n),raw:dt(t=>t)(n),object:t=>dt(e=>{if(!!An(e))return _i(e,t)})(n),array:t=>dt(e=>{if(!!Array.isArray(e))return gi(e,t)})(n)}}const A={optional:je(!0),required:je(!1)};function G(n,t){const e=A.required.object(t)(n);return e.succeeded?e.value:void 0}function wi(n){return n&&n.parentElement&&n.parentElement.removeChild(n),null}function Nn(){return["veryfirst","first","last","verylast"]}const Dn=y(""),zn={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class _t{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",()=>{Nn().forEach(r=>{e.classList.remove(Dn(void 0,zn[r]))}),this.blade.get("positions").forEach(r=>{e.classList.add(Dn(void 0,zn[r]))})}),this.viewProps.handleDispose(()=>{wi(e)})}get parent(){return this.parent_}}const ht="http://www.w3.org/2000/svg";function ee(n){n.offsetHeight}function we(n,t){const e=n.style.transition;n.style.transition="none",t(),n.style.transition=e}function Fe(n){return n.ontouchstart!==void 0}function Ke(){return new Function("return this")()}function xi(){return Ke().document}function Ci(n){const t=n.ownerDocument.defaultView;return t&&"document"in t?n.getContext("2d"):null}const Rn={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 xe(n,t){const e=n.createElementNS(ht,"svg");return e.innerHTML=Rn[t],e}function $e(n,t,e){n.insertBefore(t,n.children[e])}function ne(n){n.parentElement&&n.parentElement.removeChild(n)}function On(n){for(;n.children.length>0;)n.removeChild(n.children[0])}function Bn(n){for(;n.childNodes.length>0;)n.removeChild(n.childNodes[0])}function Mt(n){return n.relatedTarget?n.relatedTarget:"explicitOriginalTarget"in n?n.explicitOriginalTarget:null}const ie=y("lbl");function yi(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 Ue{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(ie()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(ie("l")),ot(e.props,"label",c=>{S(c)?this.element.classList.add(ie(void 0,"nol")):(this.element.classList.remove(ie(void 0,"nol")),Bn(r),r.appendChild(yi(t,c)))}),this.element.appendChild(r),this.labelElement=r;const l=t.createElement("div");l.classList.add(ie("v")),this.element.appendChild(l),this.valueElement=l}}class Tt extends _t{constructor(t,e){const r=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{view:new Ue(t,{props:e.props,viewProps:r}),viewProps:r})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const Ce={id:"button",type:"blade",accept(n){const t=A,e=G(n,{title:t.required.string,view:t.required.constant("button"),label:t.optional.string});return e?{params:e}:null},controller(n){return new Tt(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:new Mn(n.document,{props:k.fromObject({title:n.params.title}),viewProps:n.viewProps})})},api(n){return!(n.controller instanceof Tt)||!(n.controller.valueController instanceof Mn)?null:new Y(n.controller)}};class gt extends _t{constructor(t){super(t),this.value=t.value}}function jt(){return new k({positions:U([],{equals:D})})}class re extends k{constructor(t){super(t)}static create(t){const e={completed:!0,expanded:t,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},r=k.createCore(e);return new re(r)}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 r=()=>{this.styleExpanded?t.classList.add(e):t.classList.remove(e)};ot(this,"expanded",r),ot(this,"temporaryExpanded",r)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function Pi(n,t){let e=0;return we(t,()=>{n.set("expandedHeight",null),n.set("temporaryExpanded",!0),ee(t),e=t.clientHeight,n.set("temporaryExpanded",null),ee(t)}),e}function He(n,t){t.style.height=n.styleHeight}function qe(n,t){n.value("expanded").emitter.on("beforechange",()=>{n.set("completed",!1),S(n.get("expandedHeight"))&&n.set("expandedHeight",Pi(n,t)),n.set("shouldFixHeight",!0),ee(t)}),n.emitter.on("change",()=>{He(n,t)}),He(n,t),t.addEventListener("transitionend",e=>{e.propertyName==="height"&&n.cleanUpTransition()})}class Ge extends x{constructor(t,e){super(t),this.rackApi_=e}}function Ei(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"button"}))}function ki(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"folder"}))}function Vi(n,t){const e=t!=null?t:{};return n.addBlade(Object.assign(Object.assign({},e),{view:"separator"}))}function Si(n,t){return n.addBlade(Object.assign(Object.assign({},t),{view:"tab"}))}class Ye{constructor(t){this.emitter=new P,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 E.shouldNeverHappen();const r=e!==void 0?e:this.items_.length;this.items_.splice(r,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:r,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 r=this.extract_(t);r&&(r.emitter.off("add",this.onSubListAdd_),r.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 Xe extends x{constructor(t){super(t),this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new P,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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(t){const e=t.sender.target.read();this.emitter_.emit("change",{event:new N(this,e,this.controller_.binding.target.presetKey,t.options.last)})}}class lt extends Tt{constructor(t,e){super(t,e),this.binding=e.binding}}class At extends x{constructor(t){super(t),this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new P,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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(t){const e=t.sender.target.read();this.emitter_.emit("update",{event:new M(this,e,this.controller_.binding.target.presetKey)})}}class kt extends Tt{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 ae?n.apiSet_:n instanceof Ge?n.rackApi_.apiSet_:null}function oe(n,t){const e=n.find(r=>r.controller_===t);if(!e)throw E.shouldNeverHappen();return e}function ye(n,t,e){if(!I.isBindable(n))throw E.notBindable();return new I(n,t,e)}class ae extends x{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 P,this.apiSet_=new Ye(se),this.pool_=e;const r=this.controller_.rack;r.emitter.on("add",this.onRackAdd_),r.emitter.on("remove",this.onRackRemove_),r.emitter.on("inputchange",this.onRackInputChange_),r.emitter.on("monitorupdate",this.onRackMonitorUpdate_),r.children.forEach(l=>{this.setUpApi_(l)})}get children(){return this.controller_.rack.children.map(t=>oe(this.apiSet_,t))}addInput(t,e,r){const l=r!=null?r:{},c=this.controller_.view.element.ownerDocument,d=this.pool_.createInput(c,ye(t,e,l.presetKey),l),v=new Xe(d);return this.add(v,l.index)}addMonitor(t,e,r){const l=r!=null?r:{},c=this.controller_.view.element.ownerDocument,d=this.pool_.createMonitor(c,ye(t,e),l),v=new At(d);return this.add(v,l.index)}addFolder(t){return ki(this,t)}addButton(t){return Ei(this,t)}addSeparator(t){return Vi(this,t)}addTab(t){return Si(this,t)}add(t,e){this.controller_.rack.add(t.controller_,e);const r=this.apiSet_.find(l=>l.controller_===t.controller_);return r&&this.apiSet_.remove(r),this.apiSet_.add(t),t}remove(t){this.controller_.rack.remove(t.controller_)}addBlade(t){const e=this.controller_.view.element.ownerDocument,r=this.pool_.createBlade(e,t),l=this.pool_.createBladeApi(r);return this.add(l,t.index)}on(t,e){const r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}setUpApi_(t){this.apiSet_.find(r=>r.controller_===t)||this.apiSet_.add(this.pool_.createBladeApi(t))}onRackAdd_(t){this.setUpApi_(t.bladeController)}onRackRemove_(t){if(t.isRoot){const e=oe(this.apiSet_,t.bladeController);this.apiSet_.remove(e)}}onRackInputChange_(t){const e=t.bladeController;if(e instanceof lt){const r=oe(this.apiSet_,e),l=e.binding;this.emitter_.emit("change",{event:new N(r,l.target.read(),l.target.presetKey,t.options.last)})}else if(e instanceof gt){const r=oe(this.apiSet_,e);this.emitter_.emit("change",{event:new N(r,e.value.rawValue,void 0,t.options.last)})}}onRackMonitorUpdate_(t){if(!(t.bladeController instanceof kt))throw E.shouldNeverHappen();const e=oe(this.apiSet_,t.bladeController),r=t.bladeController.binding;this.emitter_.emit("update",{event:new M(e,r.target.read(),r.target.presetKey)})}}class We extends Ge{constructor(t,e){super(t,new ae(t.rackController,e)),this.emitter_=new P,this.controller_.foldable.value("expanded").emitter.on("change",r=>{this.emitter_.emit("fold",{event:new z(this,r.sender.rawValue)})}),this.rackApi_.on("change",r=>{this.emitter_.emit("change",{event:r})}),this.rackApi_.on("update",r=>{this.emitter_.emit("update",{event:r})})}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,r){return this.rackApi_.addInput(t,e,r)}addMonitor(t,e,r){return this.rackApi_.addMonitor(t,e,r)}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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class Je extends _t{constructor(t){super({blade:t.blade,view:t.view,viewProps:t.rackController.viewProps}),this.rackController=t.rackController}}class Li{constructor(t,e){const r=y(e.viewName);this.element=t.createElement("div"),this.element.classList.add(r()),e.viewProps.bindClassModifiers(this.element)}}function Mi(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof lt&&r.binding===t)return r}return null}function Ti(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof kt&&r.binding===t)return r}return null}function Ai(n,t){for(let e=0;e<n.length;e++){const r=n[e];if(r instanceof gt&&r.value===t)return r}return null}function Qe(n){return n instanceof le?n.rack:n instanceof Je?n.rackController.rack:null}function Ni(n){const t=Qe(n);return t?t.bcSet_:null}class Di{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 P,this.blade_=t!=null?t:null,(e=this.blade_)===null||e===void 0||e.value("positions").emitter.on("change",this.onBladePositionsChange_),this.bcSet_=new Ye(Ni),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 r=t.item;if(r.viewProps.emitter.on("change",this.onChildViewPropsChange_),r.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),r.viewProps.handleDispose(this.onChildDispose_),r instanceof lt)r.binding.emitter.on("change",this.onChildInputChange_);else if(r instanceof kt)r.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(r instanceof gt)r.value.emitter.on("change",this.onChildValueChange_);else{const l=Qe(r);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 r=t.item;if(r instanceof lt)r.binding.emitter.off("change",this.onChildInputChange_);else if(r instanceof kt)r.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(r instanceof gt)r.value.emitter.off("change",this.onChildValueChange_);else{const l=Qe(r);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],r=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===r&&(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=Mi(this.find(lt),t.sender);if(!e)throw E.shouldNeverHappen();this.emitter.emit("inputchange",{bladeController:e,options:t.options,sender:this})}onChildMonitorUpdate_(t){const e=Ti(this.find(kt),t.sender);if(!e)throw E.shouldNeverHappen();this.emitter.emit("monitorupdate",{bladeController:e,sender:this})}onChildValueChange_(t){const e=Ai(this.find(gt),t.sender);if(!e)throw E.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 le extends _t{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new Li(t,{viewName:"brk",viewProps:e.viewProps})})),this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);const r=new Di(e.root?void 0:e.blade);r.emitter.on("add",this.onRackAdd_),r.emitter.on("remove",this.onRackRemove_),this.rack=r,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||$e(this.view.element,t.bladeController.view.element,t.index)}onRackRemove_(t){!t.isRoot||ne(t.bladeController.view.element)}}const In=y("cnt");class zi{constructor(t,e){var r;this.className_=y((r=e.viewName)!==null&&r!==void 0?r:"fld"),this.element=t.createElement("div"),this.element.classList.add(this.className_(),In()),e.viewProps.bindClassModifiers(this.element),this.foldable_=e.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),ot(this.foldable_,"completed",rt(this.element,this.className_(void 0,"cpl")));const l=t.createElement("button");l.classList.add(this.className_("b")),ot(e.props,"title",g=>{S(g)?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")),X(e.props.value("title"),c),this.buttonElement.appendChild(c),this.titleElement=c;const d=t.createElement("div");d.classList.add(this.className_("m")),this.buttonElement.appendChild(d);const v=e.containerElement;v.classList.add(this.className_("c")),this.element.appendChild(v),this.containerElement=v}}class Ze extends Je{constructor(t,e){var r;const l=re.create((r=e.expanded)!==null&&r!==void 0?r:!0),c=new le(t,{blade:e.blade,root:e.root,viewProps:e.viewProps});super(Object.assign(Object.assign({},e),{rackController:c,view:new zi(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,qe(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 Ri={id:"folder",type:"blade",accept(n){const t=A,e=G(n,{title:t.required.string,view:t.required.constant("folder"),expanded:t.optional.boolean});return e?{params:e}:null},controller(n){return new Ze(n.document,{blade:n.blade,expanded:n.params.expanded,props:k.fromObject({title:n.params.title}),viewProps:n.viewProps})},api(n){return n.controller instanceof Ze?new We(n.controller,n.pool):null}};class Ft extends gt{constructor(t,e){const r=e.valueController.viewProps;super(Object.assign(Object.assign({},e),{value:e.valueController.value,view:new Ue(t,{props:e.props,viewProps:r}),viewProps:r})),this.props=e.props,this.valueController=e.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class tn extends x{}const jn=y("spr");class Oi{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(jn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("hr");r.classList.add(jn("r")),this.element.appendChild(r)}}class Fn extends _t{constructor(t,e){super(Object.assign(Object.assign({},e),{view:new Oi(t,{viewProps:e.viewProps})}))}}const Kn={id:"separator",type:"blade",accept(n){const e=G(n,{view:A.required.constant("separator")});return e?{params:e}:null},controller(n){return new Fn(n.document,{blade:n.blade,viewProps:n.viewProps})},api(n){return n.controller instanceof Fn?new tn(n.controller):null}},Bi=y("");function pe(n,t){return rt(n,Bi(void 0,t))}class Vt extends k{constructor(t){super(t)}static create(t){var e,r;const l=t!=null?t:{},c={disabled:(e=l.disabled)!==null&&e!==void 0?e:!1,disposed:!1,hidden:(r=l.hidden)!==null&&r!==void 0?r:!1},d=k.createCore(c);return new Vt(d)}bindClassModifiers(t){ot(this,"disabled",pe(t,"disabled")),ot(this,"hidden",pe(t,"hidden"))}bindDisabled(t){ot(this,"disabled",e=>{t.disabled=e})}bindTabIndex(t){ot(this,"disabled",e=>{t.tabIndex=e?-1:0})}handleDispose(t){this.value("disposed").emitter.on("change",e=>{e&&t()})}}const Q=y("tbi");class Ii{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Q()),e.viewProps.bindClassModifiers(this.element),ot(e.props,"selected",c=>{c?this.element.classList.add(Q(void 0,"sel")):this.element.classList.remove(Q(void 0,"sel"))});const r=t.createElement("button");r.classList.add(Q("b")),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.buttonElement=r;const l=t.createElement("div");l.classList.add(Q("t")),X(e.props.value("title"),l),this.buttonElement.appendChild(l),this.titleElement=l}}class Pe{constructor(t,e){this.emitter=new P,this.onClick_=this.onClick_.bind(this),this.props=e.props,this.viewProps=e.viewProps,this.view=new Ii(t,{props:e.props,viewProps:e.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class $n{constructor(t,e){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new Pe(t,{props:e.itemProps,viewProps:Vt.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new le(t,{blade:jt(),viewProps:Vt.create()}),this.props=e.props,ot(this.props,"selected",r=>{this.itemController.props.set("selected",r),this.contentController.viewProps.set("hidden",!r)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class en{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,r){return this.rackApi_.addInput(t,e,r)}addMonitor(t,e,r){return this.rackApi_.addMonitor(t,e,r)}addBlade(t){return this.rackApi_.addBlade(t)}}class Un extends Ge{constructor(t,e){super(t,new ae(t.rackController,e)),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new P,this.pageApiMap_=new Map,this.rackApi_.on("change",r=>{this.emitter_.emit("change",{event:r})}),this.rackApi_.on("update",r=>{this.emitter_.emit("update",{event:r})}),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(r=>{this.setUpPageApi_(r)})}get pages(){return this.controller_.pageSet.items.map(t=>{const e=this.pageApiMap_.get(t);if(!e)throw E.shouldNeverHappen();return e})}addPage(t){const e=this.controller_.view.element.ownerDocument,r=new $n(e,{itemProps:k.fromObject({selected:!1,title:t.title}),props:k.fromObject({selected:!1})});this.controller_.add(r,t.index);const l=this.pageApiMap_.get(r);if(!l)throw E.shouldNeverHappen();return l}removePage(t){this.controller_.remove(t)}on(t,e){const r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}setUpPageApi_(t){const e=this.rackApi_.apiSet_.find(l=>l.controller_===t.contentController);if(!e)throw E.shouldNeverHappen();const r=new en(t,e);this.pageApiMap_.set(t,r)}onPageAdd_(t){this.setUpPageApi_(t.item)}onPageRemove_(t){if(!this.pageApiMap_.get(t.item))throw E.shouldNeverHappen();this.pageApiMap_.delete(t.item)}onSelect_(t){this.emitter_.emit("select",{event:new F(this,t.rawValue)})}}const Hn=-1;class ji{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=U(!0),this.selectedIndex=U(Hn),this.items_=[]}add(t,e){const r=e!=null?e:this.items_.length;this.items_.splice(r,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=Hn,this.empty.rawValue=!0;return}const t=this.items_.findIndex(e=>e.rawValue);t<0?(this.items_.forEach((e,r)=>{e.rawValue=r===0}),this.selectedIndex.rawValue=0):(this.items_.forEach((e,r)=>{e.rawValue=r===t}),this.selectedIndex.rawValue=t),this.empty.rawValue=!1}onItemSelectedChange_(t){if(t.rawValue){const e=this.items_.findIndex(r=>r===t.sender);this.items_.forEach((r,l)=>{r.rawValue=l===e}),this.selectedIndex.rawValue=e}else this.keepSelection_()}}const ce=y("tab");class Kt{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(ce(),In()),e.viewProps.bindClassModifiers(this.element),It(e.empty,rt(this.element,ce(void 0,"nop")));const r=t.createElement("div");r.classList.add(ce("i")),this.element.appendChild(r),this.itemsElement=r;const l=e.contentsElement;l.classList.add(ce("c")),this.element.appendChild(l),this.contentsElement=l}}class ue extends Je{constructor(t,e){const r=new le(t,{blade:e.blade,viewProps:e.viewProps}),l=new ji;super({blade:e.blade,rackController:r,view:new Kt(t,{contentsElement:r.view.element,empty:l.empty,viewProps:e.viewProps})}),this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new Ye(()=>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;$e(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;ne(e.itemController.view.element),this.rackController.rack.remove(e.contentController),this.tab.remove(e.props.value("selected"))}}const nn={id:"tab",type:"blade",accept(n){const t=A,e=G(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 ue(n.document,{blade:n.blade,viewProps:n.viewProps});return n.params.pages.forEach(e=>{const r=new $n(n.document,{itemProps:k.fromObject({selected:!1,title:e.title}),props:k.fromObject({selected:!1})});t.add(r)}),t},api(n){return n.controller instanceof ue?new Un(n.controller,n.pool):null}};function Fi(n,t){const e=n.accept(t.params);if(!e)return null;const r=A.optional.boolean(t.params.disabled).value,l=A.optional.boolean(t.params.hidden).value;return n.controller({blade:jt(),document:t.document,params:Object.assign(Object.assign({},e.params),{disabled:r,hidden:l}),viewProps:Vt.create({disabled:r,hidden:l})})}class qn{constructor(){this.disabled=!1,this.emitter=new P}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class rn{constructor(t,e){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=t,this.emitter=new P,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 St{constructor(t){this.constraints=t}constrain(t){return this.constraints.reduce((e,r)=>r.constrain(e),t)}}function B(n,t){if(n instanceof t)return n;if(n instanceof St){const e=n.constraints.reduce((r,l)=>r||(l instanceof t?l:null),null);if(e)return e}return null}class $t{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 ut{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 tt{constructor(t,e=0){this.step=t,this.origin=e}constrain(t){const e=this.origin%this.step,r=Math.round((t-e)/this.step);return e+r*this.step}}const sn=y("lst");class Ki{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.props_=e.props,this.element=t.createElement("div"),this.element.classList.add(sn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("select");r.classList.add(sn("s")),ot(this.props_,"options",c=>{On(r),c.forEach((d,v)=>{const g=t.createElement("option");g.dataset.index=String(v),g.textContent=d.text,g.value=String(d.value),r.appendChild(g)})}),e.viewProps.bindDisabled(r),this.element.appendChild(r),this.selectElement=r;const l=t.createElement("div");l.classList.add(sn("m")),l.appendChild(xe(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 Nt{constructor(t,e){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=e.props,this.value=e.value,this.viewProps=e.viewProps,this.view=new Ki(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(t){const r=t.currentTarget.selectedOptions.item(0);if(!r)return;const l=Number(r.dataset.index);this.value.rawValue=this.props.get("options")[l].value}}const Gn=y("pop");class $i{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Gn()),e.viewProps.bindClassModifiers(this.element),It(e.shows,rt(this.element,Gn(void 0,"v")))}}class on{constructor(t,e){this.shows=U(!1),this.viewProps=e.viewProps,this.view=new $i(t,{shows:this.shows,viewProps:this.viewProps})}}const Yn=y("txt");class Ee{constructor(t,e){this.onChange_=this.onChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Yn()),e.viewProps.bindClassModifiers(this.element),this.props_=e.props,this.props_.emitter.on("change",this.onChange_);const r=t.createElement("input");r.classList.add(Yn("i")),r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,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 de{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 Ee(t,{props:e.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(t){const r=t.currentTarget.value,l=this.parser_(r);S(l)||(this.value.rawValue=l),this.view.refresh()}}function Ui(n){return String(n)}function Xn(n){return n==="false"?!1:!!n}function Wn(n){return Ui(n)}class Hi{constructor(t){this.text=t}evaluate(){return Number(this.text)}toString(){return this.text}}const qi={"**":(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 Gi{constructor(t,e,r){this.left=e,this.operator=t,this.right=r}evaluate(){const t=qi[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 Yi={"+":n=>n,"-":n=>-n,"~":n=>~n};class Xi{constructor(t,e){this.operator=t,this.expression=e}evaluate(){const t=Yi[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 an(n){return(t,e)=>{for(let r=0;r<n.length;r++){const l=n[r](t,e);if(l!=="")return l}return""}}function he(n,t){var e;const r=n.substr(t).match(/^\s+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Wi(n,t){const e=n.substr(t,1);return e.match(/^[1-9]$/)?e:""}function ve(n,t){var e;const r=n.substr(t).match(/^[0-9]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Ji(n,t){const e=ve(n,t);if(e!=="")return e;const r=n.substr(t,1);if(t+=1,r!=="-"&&r!=="+")return"";const l=ve(n,t);return l===""?"":r+l}function ke(n,t){const e=n.substr(t,1);if(t+=1,e.toLowerCase()!=="e")return"";const r=Ji(n,t);return r===""?"":e+r}function Jn(n,t){const e=n.substr(t,1);if(e==="0")return e;const r=Wi(n,t);return t+=r.length,r===""?"":r+ve(n,t)}function Qi(n,t){const e=Jn(n,t);if(t+=e.length,e==="")return"";const r=n.substr(t,1);if(t+=r.length,r!==".")return"";const l=ve(n,t);return t+=l.length,e+r+l+ke(n,t)}function ln(n,t){const e=n.substr(t,1);if(t+=e.length,e!==".")return"";const r=ve(n,t);return t+=r.length,r===""?"":e+r+ke(n,t)}function Zi(n,t){const e=Jn(n,t);return t+=e.length,e===""?"":e+ke(n,t)}const tr=an([Qi,ln,Zi]);function er(n,t){var e;const r=n.substr(t).match(/^[01]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function Lt(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0b")return"";const r=er(n,t);return r===""?"":e+r}function nr(n,t){var e;const r=n.substr(t).match(/^[0-7]+/);return(e=r&&r[0])!==null&&e!==void 0?e:""}function ir(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0o")return"";const r=nr(n,t);return r===""?"":e+r}function rr(n,t){var e;const r=n.substr(t).match(/^[0-9a-f]+/i);return(e=r&&r[0])!==null&&e!==void 0?e:""}function sr(n,t){const e=n.substr(t,2);if(t+=e.length,e.toLowerCase()!=="0x")return"";const r=rr(n,t);return r===""?"":e+r}const or=an([Lt,ir,sr]),Qn=an([or,tr]);function ar(n,t){const e=Qn(n,t);return t+=e.length,e===""?null:{evaluable:new Hi(e),cursor:t}}function lr(n,t){const e=n.substr(t,1);if(t+=e.length,e!=="(")return null;const r=wt(n,t);if(!r)return null;t=r.cursor,t+=he(n,t).length;const l=n.substr(t,1);return t+=l.length,l!==")"?null:{evaluable:r.evaluable,cursor:t}}function pt(n,t){var e;return(e=ar(n,t))!==null&&e!==void 0?e:lr(n,t)}function Zn(n,t){const e=pt(n,t);if(e)return e;const r=n.substr(t,1);if(t+=r.length,r!=="+"&&r!=="-"&&r!=="~")return null;const l=Zn(n,t);return l?(t=l.cursor,{cursor:t,evaluable:new Xi(r,l.evaluable)}):null}function pr(n,t,e){e+=he(t,e).length;const r=n.filter(l=>t.startsWith(l,e))[0];return r?(e+=r.length,e+=he(t,e).length,{cursor:e,operator:r}):null}function pn(n,t){return(e,r)=>{const l=n(e,r);if(!l)return null;r=l.cursor;let c=l.evaluable;for(;;){const d=pr(t,e,r);if(!d)break;r=d.cursor;const v=n(e,r);if(!v)return null;r=v.cursor,c=new Gi(d.operator,c,v.evaluable)}return c?{cursor:r,evaluable:c}:null}}const cr=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((n,t)=>pn(n,t),Zn);function wt(n,t){return t+=he(n,t).length,cr(n,t)}function ti(n){const t=wt(n,0);return!t||t.cursor+he(n,t.cursor).length!==n.length?null:t.evaluable}function xt(n){var t;const e=ti(n);return(t=e==null?void 0:e.evaluate())!==null&&t!==void 0?t:null}function cn(n){if(typeof n=="number")return n;if(typeof n=="string"){const t=xt(n);if(!S(t))return t}return 0}function ur(n){return String(n)}function K(n){return t=>t.toFixed(Math.max(Math.min(n,20),0))}const dr=K(0);function Ut(n){return dr(n)+"%"}function ei(n){return String(n)}function Ve(n){return n}function Ct(n,t){for(;n.length<t;)n.push(void 0)}function hr(n){const t=[];return Ct(t,n),U(t)}function vr(n){const t=n.indexOf(void 0);return t<0?n:n.slice(0,t)}function ni(n,t){const e=[...vr(n),t];return e.length>n.length?e.splice(0,e.length-n.length):Ct(e,n.length),e}function Ht({primary:n,secondary:t,forward:e,backward:r}){let l=!1;function c(d){l||(l=!0,d(),l=!1)}n.emitter.on("change",d=>{c(()=>{t.setRawValue(e(n,t),d.options)})}),t.emitter.on("change",d=>{c(()=>{n.setRawValue(r(n,t),d.options)}),c(()=>{t.setRawValue(e(n,t),d.options)})}),c(()=>{t.setRawValue(e(n,t),{forceEmit:!1,last:!0})})}function et(n,t){const e=n*(t.altKey?.1:1)*(t.shiftKey?10:1);return t.upKey?+e:t.downKey?-e:0}function vt(n){return{altKey:n.altKey,downKey:n.key==="ArrowDown",shiftKey:n.shiftKey,upKey:n.key==="ArrowUp"}}function yt(n){return{altKey:n.altKey,downKey:n.key==="ArrowLeft",shiftKey:n.shiftKey,upKey:n.key==="ArrowRight"}}function un(n){return n==="ArrowUp"||n==="ArrowDown"}function ii(n){return un(n)||n==="ArrowLeft"||n==="ArrowRight"}function dn(n,t){var e,r;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-(((r=l&&l.scrollY)!==null&&r!==void 0?r:0)+c.top)}}class Dt{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 P,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 r=this.elem_.ownerDocument;r.addEventListener("mousemove",this.onDocumentMouseMove_),r.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(dn(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onDocumentMouseMove_(t){this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(dn(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_(dn(t,this.elem_)),sender:this,shiftKey:t.shiftKey})}onTouchStart_(t){t.preventDefault();const e=t.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-r.left,y:e.clientY-r.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchMove_(t){const e=t.targetTouches.item(0),r=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:t.altKey,data:this.computePosition_(e?{x:e.clientX-r.left,y:e.clientY-r.top}:void 0),sender:this,shiftKey:t.shiftKey}),this.lastTouch_=e}onTouchEnd_(t){var e;const r=(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_(r?{x:r.clientX-l.left,y:r.clientY-l.top}:void 0),sender:this,shiftKey:t.shiftKey})}}function j(n,t,e,r,l){const c=(n-t)/(e-t);return r+c*(l-r)}function ri(n){return String(n.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function W(n,t,e){return Math.min(Math.max(n,t),e)}function si(n,t){return(n%t+t)%t}const at=y("txt");class mr{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(at(),at(void 0,"num")),e.arrayPosition&&this.element.classList.add(at(void 0,e.arrayPosition)),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("input");r.classList.add(at("i")),r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=e.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(at()),this.inputElement.classList.add(at("i"));const l=t.createElement("div");l.classList.add(at("k")),this.element.appendChild(l),this.knobElement=l;const c=t.createElementNS(ht,"svg");c.classList.add(at("g")),this.knobElement.appendChild(c);const d=t.createElementNS(ht,"path");d.classList.add(at("gb")),c.appendChild(d),this.guideBodyElem_=d;const v=t.createElementNS(ht,"path");v.classList.add(at("gh")),c.appendChild(v),this.guideHeadElem_=v;const g=t.createElement("div");g.classList.add(y("tt")()),this.knobElement.appendChild(g),this.tooltipElem_=g,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.refresh()}onDraggingChange_(t){if(t.rawValue===null){this.element.classList.remove(at(void 0,"drg"));return}this.element.classList.add(at(void 0,"drg"));const e=t.rawValue/this.props_.get("draggingScale"),r=e+(e>0?-1:e<0?1:0),l=W(-r,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${r+l},0 L${r},4 L${r+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 Pt{constructor(t,e){var r;this.originRawValue_=0,this.onInputChange_=this.onInputChange_.bind(this),this.onInputKeyDown_=this.onInputKeyDown_.bind(this),this.onInputKeyUp_=this.onInputKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.baseStep_=e.baseStep,this.parser_=e.parser,this.props=e.props,this.sliderProps_=(r=e.sliderProps)!==null&&r!==void 0?r:null,this.value=e.value,this.viewProps=e.viewProps,this.dragging_=U(null),this.view=new mr(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 Dt(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,r;const l=(e=this.sliderProps_)===null||e===void 0?void 0:e.get("minValue"),c=(r=this.sliderProps_)===null||r===void 0?void 0:r.get("maxValue");let d=t;return l!==void 0&&(d=Math.max(d,l)),c!==void 0&&(d=Math.min(d,c)),d}onInputChange_(t){const r=t.currentTarget.value,l=this.parser_(r);S(l)||(this.value.rawValue=this.constrainValue_(l)),this.view.refresh()}onInputKeyDown_(t){const e=et(this.baseStep_,vt(t));e!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+e),{forceEmit:!1,last:!1})}onInputKeyUp_(t){et(this.baseStep_,vt(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 hn=y("sld");class oi{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(hn()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(hn("t")),e.viewProps.bindTabIndex(r),this.element.appendChild(r),this.trackElement=r;const l=t.createElement("div");l.classList.add(hn("k")),this.trackElement.appendChild(l),this.knobElement=l,e.value.emitter.on("change",this.onChange_),this.value=e.value,this.update_()}update_(){const t=W(j(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${t}%`}onChange_(){this.update_()}}class br{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 oi(t,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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(j(W(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=et(this.baseStep_,yt(t));e!==0&&this.value.setRawValue(this.value.rawValue+e,{forceEmit:!1,last:!1})}onKeyUp_(t){et(this.baseStep_,yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const vn=y("sldtxt");class ct{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(vn());const r=t.createElement("div");r.classList.add(vn("s")),this.sliderView_=e.sliderView,r.appendChild(this.sliderView_.element),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(vn("t")),this.textView_=e.textView,l.appendChild(this.textView_.element),this.element.appendChild(l)}}class Se{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.sliderC_=new br(t,{baseStep:e.baseStep,props:e.sliderProps,value:e.value,viewProps:this.viewProps}),this.textC_=new Pt(t,{baseStep:e.baseStep,parser:e.parser,props:e.textProps,sliderProps:e.sliderProps,value:e.value,viewProps:e.viewProps}),this.view=new ct(t,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function qt(n,t){n.write(t)}function Gt(n){const t=A;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 ai(n){if(n==="inline"||n==="popup")return n}function st(n){const t=A;return t.required.object({max:t.optional.number,min:t.optional.number,step:t.optional.number})(n).value}function li(n){if(Array.isArray(n))return n;const t=[];return Object.keys(n).forEach(e=>{t.push({text:e,value:n[e]})}),t}function mn(n){return S(n)?null:new $t(li(n))}function bn(n){const t=n?B(n,$t):null;return t?t.options:null}function fr(n){const t=n?B(n,tt):null;return t?t.step:null}function Le(n,t){const e=n&&B(n,tt);return e?ri(e.step):Math.max(ri(t),2)}function Yt(n){const t=fr(n);return t!=null?t:1}function Xt(n,t){var e;const r=n&&B(n,tt),l=Math.abs((e=r==null?void 0:r.step)!==null&&e!==void 0?e:t);return l===0?.1:Math.pow(10,Math.floor(Math.log10(l))-1)}const Me=y("ckb");class _r{constructor(t,e){this.onValueChange_=this.onValueChange_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Me()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("label");r.classList.add(Me("l")),this.element.appendChild(r);const l=t.createElement("input");l.classList.add(Me("i")),l.type="checkbox",r.appendChild(l),this.inputElement=l,e.viewProps.bindDisabled(this.inputElement);const c=t.createElement("div");c.classList.add(Me("w")),r.appendChild(c);const d=xe(t,"check");c.appendChild(d),e.value.emitter.on("change",this.onValueChange_),this.value=e.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class gr{constructor(t,e){this.onInputChange_=this.onInputChange_.bind(this),this.value=e.value,this.viewProps=e.viewProps,this.view=new _r(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 me(n){const t=[],e=mn(n.options);return e&&t.push(e),new St(t)}const wr={id:"input-bool",type:"input",accept:(n,t)=>{if(typeof n!="boolean")return null;const r=G(t,{options:A.optional.custom(Gt)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>Xn,constraint:n=>me(n.params),writer:n=>qt},controller:n=>{var t;const e=n.document,r=n.value,l=n.constraint;return l&&B(l,$t)?new Nt(e,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps}):new gr(e,{value:r,viewProps:n.viewProps})}},zt=y("col");class fn{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(zt()),e.foldable.bindExpandedClass(this.element,zt(void 0,"expanded")),ot(e.foldable,"completed",rt(this.element,zt(void 0,"cpl")));const r=t.createElement("div");r.classList.add(zt("h")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(zt("s")),r.appendChild(l),this.swatchElement=l;const c=t.createElement("div");if(c.classList.add(zt("t")),r.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const d=t.createElement("div");d.classList.add(zt("p")),this.element.appendChild(d),this.pickerElement=d}else this.pickerElement=null}}function xr(n,t,e){const r=W(n/255,0,1),l=W(t/255,0,1),c=W(e/255,0,1),d=Math.max(r,l,c),v=Math.min(r,l,c),g=d-v;let V=0,R=0;const O=(v+d)/2;return g!==0&&(R=g/(1-Math.abs(d+v-1)),r===d?V=(l-c)/g:l===d?V=2+(c-r)/g:V=4+(r-l)/g,V=V/6+(V<0?1:0)),[V*360,R*100,O*100]}function _n(n,t,e){const r=(n%360+360)%360,l=W(t/100,0,1),c=W(e/100,0,1),d=(1-Math.abs(2*c-1))*l,v=d*(1-Math.abs(r/60%2-1)),g=c-d/2;let V,R,O;return r>=0&&r<60?[V,R,O]=[d,v,0]:r>=60&&r<120?[V,R,O]=[v,d,0]:r>=120&&r<180?[V,R,O]=[0,d,v]:r>=180&&r<240?[V,R,O]=[0,v,d]:r>=240&&r<300?[V,R,O]=[v,0,d]:[V,R,O]=[d,0,v],[(V+g)*255,(R+g)*255,(O+g)*255]}function Cr(n,t,e){const r=W(n/255,0,1),l=W(t/255,0,1),c=W(e/255,0,1),d=Math.max(r,l,c),v=Math.min(r,l,c),g=d-v;let V;g===0?V=0:d===r?V=60*(((l-c)/g%6+6)%6):d===l?V=60*((c-r)/g+2):V=60*((r-l)/g+4);const R=d===0?0:g/d,O=d;return[V,R*100,O*100]}function pi(n,t,e){const r=si(n,360),l=W(t/100,0,1),c=W(e/100,0,1),d=c*l,v=d*(1-Math.abs(r/60%2-1)),g=c-d;let V,R,O;return r>=0&&r<60?[V,R,O]=[d,v,0]:r>=60&&r<120?[V,R,O]=[v,d,0]:r>=120&&r<180?[V,R,O]=[0,d,v]:r>=180&&r<240?[V,R,O]=[0,v,d]:r>=240&&r<300?[V,R,O]=[v,0,d]:[V,R,O]=[d,0,v],[(V+g)*255,(R+g)*255,(O+g)*255]}function yr(n,t,e){const r=e+t*(100-Math.abs(2*e-100))/200;return[n,r!==0?t*(100-Math.abs(2*e-100))/r:0,e+t*(100-Math.abs(2*e-100))/(2*100)]}function Pr(n,t,e){const r=100-Math.abs(e*(200-t)/100-100);return[n,r!==0?t*e/r: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 s={hsl:{hsl:(n,t,e)=>[n,t,e],hsv:yr,rgb:_n},hsv:{hsl:Pr,hsv:(n,t,e)=>[n,t,e],rgb:pi},rgb:{hsl:xr,hsv:Cr,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 r;const l=a(t,e);return[t==="rgb"?W(n[0],0,l[0]):si(n[0],l[0]),W(n[1],0,l[1]),W(n[2],0,l[2]),W((r=n[3])!==null&&r!==void 0?r:1,0,1)]}function u(n,t,e,r){const l=a(t,e),c=a(t,r);return n.map((d,v)=>d/l[v]*c[v])}function h(n,t,e){const r=u(n,t.mode,t.type,"int"),l=s[t.mode][e.mode](...r);return u(l,e.mode,"int",e.type)}function b(n,t){return typeof n!="object"||S(n)?!1:t in n&&typeof n[t]=="number"}class f{constructor(t,e,r="int"){this.mode=e,this.type=r,this.comps_=p(t,e,r)}static black(t="int"){return new f([0,0,0],"rgb",t)}static fromObject(t,e="int"){const r="a"in t?[t.r,t.g,t.b,t.a]:[t.r,t.g,t.b];return new f(r,"rgb",e)}static toRgbaObject(t,e="int"){return t.toRgbaObject(e)}static isRgbColorObject(t){return b(t,"r")&&b(t,"g")&&b(t,"b")}static isRgbaColorObject(t){return this.isRgbColorObject(t)&&b(t,"a")}static isColorObject(t){return this.isRgbColorObject(t)}static equals(t,e){if(t.mode!==e.mode)return!1;const r=t.comps_,l=e.comps_;for(let c=0;c<r.length;c++)if(r[c]!==l[c])return!1;return!0}getComponents(t,e="int"){return i(h(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=y("colp");class Et{constructor(t,e){this.alphaViews_=null,this.element=t.createElement("div"),this.element.classList.add(J());const r=t.createElement("div");r.classList.add(J("hsv"));const l=t.createElement("div");l.classList.add(J("sv")),this.svPaletteView_=e.svPaletteView,l.appendChild(this.svPaletteView_.element),r.appendChild(l);const c=t.createElement("div");c.classList.add(J("h")),this.hPaletteView_=e.hPaletteView,c.appendChild(this.hPaletteView_.element),r.appendChild(c),this.element.appendChild(r);const d=t.createElement("div");if(d.classList.add(J("rgb")),this.textView_=e.textView,d.appendChild(this.textView_.element),this.element.appendChild(d),e.alphaViews){this.alphaViews_={palette:e.alphaViews.palette,text:e.alphaViews.text};const v=t.createElement("div");v.classList.add(J("a"));const g=t.createElement("div");g.classList.add(J("ap")),g.appendChild(this.alphaViews_.palette.element),v.appendChild(g);const V=t.createElement("div");V.classList.add(J("at")),V.appendChild(this.alphaViews_.text.element),v.appendChild(V),this.element.appendChild(v)}}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 gn(n){return n==="int"?"int":n==="float"?"float":void 0}function wn(n){const t=A;return G(n,{alpha:t.optional.boolean,color:t.optional.object({alpha:t.optional.boolean,type:t.optional.custom(gn)}),expanded:t.optional.boolean,picker:t.optional.custom(ai)})}function Rt(n){return n?.1:1}function be(n){var t;return(t=n.color)===null||t===void 0?void 0:t.type}function Js(n,t){return n.alpha===t.alpha&&n.mode===t.mode&&n.notation===t.notation&&n.type===t.type}function mt(n,t){const e=n.match(/^(.+)%$/);return Math.min(e?parseFloat(e[1])*.01*t:parseFloat(n),t)}const Qs={deg:n=>n,grad:n=>n*360/400,rad:n=>n*360/(2*Math.PI),turn:n=>n*360};function Qr(n){const t=n.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!t)return parseFloat(n);const e=parseFloat(t[1]),r=t[2];return Qs[r](e)}function Zr(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=[mt(t[1],255),mt(t[2],255),mt(t[3],255)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function ts(n){return t=>{const e=Zr(t);return e?new f(e,"rgb",n):null}}function es(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=[mt(t[1],255),mt(t[2],255),mt(t[3],255),mt(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=es(t);return e?new f(e,"rgb",n):null}}function is(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=[Qr(t[1]),mt(t[2],100),mt(t[3],100)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])?null:e}function rs(n){return t=>{const e=is(t);return e?new f(e,"hsl",n):null}}function ss(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=[Qr(t[1]),mt(t[2],100),mt(t[3],100),mt(t[4],1)];return isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])?null:e}function os(n){return t=>{const e=ss(t);return e?new f(e,"hsl",n):null}}function as(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 Zs(n){const t=as(n);return t?new f(t,"rgb","int"):null}function ls(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),j(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),j(parseInt(e[4],16),0,255,0,1)]:null}function to(n){const t=ls(n);return t?new f(t,"rgb","int"):null}function ps(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 cs(n){return t=>{const e=ps(t);return e?new f(e,"rgb",n):null}}function us(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 ds(n){return t=>{const e=us(t);return e?new f(e,"rgb",n):null}}const eo=[{parser:as,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:ls,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:Zr,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:es,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:is,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:ss,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:ps,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:us,result:{alpha:!0,mode:"rgb",notation:"object"}}];function no(n){return eo.reduce((t,{parser:e,result:r})=>t||(e(n)?r:null),null)}function Er(n,t="int"){const e=no(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 hs={int:[Zs,to,ts("int"),ns("int"),rs("int"),os("int"),cs("int"),ds("int")],float:[ts("float"),ns("float"),rs("float"),os("float"),cs("float"),ds("float")]};function io(n){const t=hs[n];return e=>{if(typeof e!="string")return f.black(n);const r=t.reduce((l,c)=>l||c(e),null);return r!=null?r:f.black(n)}}function kr(n){const t=hs[n];return e=>t.reduce((r,l)=>r||l(e),null)}function vs(n){const t=W(Math.floor(n),0,255).toString(16);return t.length===1?`0${t}`:t}function ms(n,t="#"){const e=o(n.getComponents("rgb")).map(vs).join("");return`${t}${e}`}function Vr(n,t="#"){const e=n.getComponents("rgb"),r=[e[0],e[1],e[2],e[3]*255].map(vs).join("");return`${t}${r}`}function bs(n,t){const e=K(t==="float"?2:0);return`rgb(${o(n.getComponents("rgb",t)).map(l=>e(l)).join(", ")})`}function ro(n){return t=>bs(t,n)}function ci(n,t){const e=K(2),r=K(t==="float"?2:0);return`rgba(${n.getComponents("rgb",t).map((c,d)=>(d===3?e:r)(c)).join(", ")})`}function so(n){return t=>ci(t,n)}function oo(n){const t=[K(0),Ut,Ut];return`hsl(${o(n.getComponents("hsl")).map((r,l)=>t[l](r)).join(", ")})`}function ao(n){const t=[K(0),Ut,Ut,K(2)];return`hsla(${n.getComponents("hsl").map((r,l)=>t[l](r)).join(", ")})`}function fs(n,t){const e=K(t==="float"?2:0),r=["r","g","b"];return`{${o(n.getComponents("rgb",t)).map((c,d)=>`${r[d]}: ${e(c)}`).join(", ")}}`}function lo(n){return t=>fs(t,n)}function _s(n,t){const e=K(2),r=K(t==="float"?2:0),l=["r","g","b","a"];return`{${n.getComponents("rgb",t).map((d,v)=>{const g=v===3?e:r;return`${l[v]}: ${g(d)}`}).join(", ")}}`}function po(n){return t=>_s(t,n)}const co=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:ms},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:Vr},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:oo},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:ao},...["int","float"].reduce((n,t)=>[...n,{format:{alpha:!1,mode:"rgb",notation:"func",type:t},stringifier:ro(t)},{format:{alpha:!0,mode:"rgb",notation:"func",type:t},stringifier:so(t)},{format:{alpha:!1,mode:"rgb",notation:"object",type:t},stringifier:lo(t)},{format:{alpha:!0,mode:"rgb",notation:"object",type:t},stringifier:po(t)}],[])];function Sr(n){return co.reduce((t,e)=>t||(Js(e.format,n)?e.stringifier:null),null)}const xn=y("apl");class uo{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(xn()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("div");r.classList.add(xn("b")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(xn("c")),r.appendChild(l),this.colorElem_=l;const c=t.createElement("div");c.classList.add(xn("m")),this.element.appendChild(c),this.markerElem_=c;const d=t.createElement("div");d.classList.add(xn("p")),this.markerElem_.appendChild(d),this.previewElem_=d,this.update_()}update_(){const t=this.value.rawValue,e=t.getComponents("rgb"),r=new f([e[0],e[1],e[2],0],"rgb"),l=new f([e[0],e[1],e[2],255],"rgb"),c=["to right",ci(r),ci(l)];this.colorElem_.style.background=`linear-gradient(${c.join(",")})`,this.previewElem_.style.backgroundColor=ci(t);const d=j(e[3],0,1,0,100);this.markerElem_.style.left=`${d}%`}onValueChange_(){this.update_()}}class ho{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 uo(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=t.point.x/t.bounds.width,l=this.value.rawValue,[c,d,v]=l.getComponents("hsv");this.value.setRawValue(new f([c,d,v,r],"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=et(Rt(!0),yt(t));if(e===0)return;const r=this.value.rawValue,[l,c,d,v]=r.getComponents("hsv");this.value.setRawValue(new f([l,c,d,v+e],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){et(Rt(!0),yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Te=y("coltxt");function vo(n){const t=n.createElement("select"),e=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return t.appendChild(e.reduce((r,l)=>{const c=n.createElement("option");return c.textContent=l.text,c.value=l.value,r.appendChild(c),r},n.createDocumentFragment())),t}class mo{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Te());const r=t.createElement("div");r.classList.add(Te("m")),this.modeElem_=vo(t),this.modeElem_.classList.add(Te("ms")),r.appendChild(this.modeSelectElement);const l=t.createElement("div");l.classList.add(Te("mm")),l.appendChild(xe(t,"dropdown")),r.appendChild(l),this.element.appendChild(r);const c=t.createElement("div");c.classList.add(Te("w")),this.element.appendChild(c),this.textsElem_=c,this.textViews_=e.textViews,this.applyTextViews_(),It(e.colorMode,d=>{this.modeElem_.value=d})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(t){this.textViews_=t,this.applyTextViews_()}applyTextViews_(){On(this.textsElem_);const t=this.element.ownerDocument;this.textViews_.forEach(e=>{const r=t.createElement("div");r.classList.add(Te("c")),r.appendChild(e.element),this.textsElem_.appendChild(r)})}}function bo(n){return K(n==="float"?2:0)}function fo(n,t,e){const r=a(n,t)[e];return new ut({min:0,max:r})}function Lr(n,t,e){return new Pt(n,{arrayPosition:e===0?"fst":e===3-1?"lst":"mid",baseStep:Rt(!1),parser:t.parser,props:k.fromObject({draggingScale:t.colorType==="float"?.01:1,formatter:bo(t.colorType)}),value:U(0,{constraint:fo(t.colorMode,t.colorType,e)}),viewProps:t.viewProps})}class _o{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=U(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(t),this.view=new mo(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},r=[Lr(t,e,0),Lr(t,e,1),Lr(t,e,2)];return r.forEach((l,c)=>{Ht({primary:this.value,secondary:l.value,forward:d=>d.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[c],backward:(d,v)=>{const g=this.colorMode.rawValue,V=d.rawValue.getComponents(g,this.colorType_);return V[c]=v.rawValue,new f(i(o(V),V[3]),g,this.colorType_)}})}),r}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 Mr=y("hpl");class go{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(Mr()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("div");r.classList.add(Mr("c")),this.element.appendChild(r);const l=t.createElement("div");l.classList.add(Mr("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=this.value.rawValue,[e]=t.getComponents("hsv");this.markerElem_.style.backgroundColor=bs(new f([e,100,100],"hsv"));const r=j(e,0,360,0,100);this.markerElem_.style.left=`${r}%`}onValueChange_(){this.update_()}}class wo{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 go(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=j(W(t.point.x,0,t.bounds.width),0,t.bounds.width,0,359),l=this.value.rawValue,[,c,d,v]=l.getComponents("hsv");this.value.setRawValue(new f([r,c,d,v],"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=et(Rt(!1),yt(t));if(e===0)return;const r=this.value.rawValue,[l,c,d,v]=r.getComponents("hsv");this.value.setRawValue(new f([l+e,c,d,v],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){et(Rt(!1),yt(t))!==0&&this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}const Tr=y("svp"),gs=64;class xo{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(Tr()),e.viewProps.bindTabIndex(this.element);const r=t.createElement("canvas");r.height=gs,r.width=gs,r.classList.add(Tr("c")),this.element.appendChild(r),this.canvasElement=r;const l=t.createElement("div");l.classList.add(Tr("m")),this.element.appendChild(l),this.markerElem_=l,this.update_()}update_(){const t=Ci(this.canvasElement);if(!t)return;const r=this.value.rawValue.getComponents("hsv"),l=this.canvasElement.width,c=this.canvasElement.height,d=t.getImageData(0,0,l,c),v=d.data;for(let R=0;R<c;R++)for(let O=0;O<l;O++){const Bt=j(O,0,l,0,100),yn=j(R,0,c,100,0),Pn=pi(r[0],Bt,yn),ze=(R*l+O)*4;v[ze]=Pn[0],v[ze+1]=Pn[1],v[ze+2]=Pn[2],v[ze+3]=255}t.putImageData(d,0,0);const g=j(r[1],0,100,0,100);this.markerElem_.style.left=`${g}%`;const V=j(r[2],0,100,100,0);this.markerElem_.style.top=`${V}%`}onValueChange_(){this.update_()}}class Co{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 xo(t,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=j(t.point.x,0,t.bounds.width,0,100),l=j(t.point.y,0,t.bounds.height,100,0),[c,,,d]=this.value.rawValue.getComponents("hsv");this.value.setRawValue(new f([c,r,l,d],"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){ii(t.key)&&t.preventDefault();const[e,r,l,c]=this.value.rawValue.getComponents("hsv"),d=Rt(!1),v=et(d,yt(t)),g=et(d,vt(t));v===0&&g===0||this.value.setRawValue(new f([e,r+v,l+g,c],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(t){const e=Rt(!1),r=et(e,yt(t)),l=et(e,vt(t));r===0&&l===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class yo{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.hPaletteC_=new wo(t,{value:this.value,viewProps:this.viewProps}),this.svPaletteC_=new Co(t,{value:this.value,viewProps:this.viewProps}),this.alphaIcs_=e.supportsAlpha?{palette:new ho(t,{value:this.value,viewProps:this.viewProps}),text:new Pt(t,{parser:xt,baseStep:.1,props:k.fromObject({draggingScale:.01,formatter:K(2)}),value:U(0,{constraint:new ut({min:0,max:1})}),viewProps:this.viewProps})}:null,this.alphaIcs_&&Ht({primary:this.value,secondary:this.alphaIcs_.text.value,forward:r=>r.rawValue.getComponents()[3],backward:(r,l)=>{const c=r.rawValue.getComponents();return c[3]=l.rawValue,new f(c,r.rawValue.mode)}}),this.textC_=new _o(t,{colorType:e.colorType,parser:xt,value:this.value,viewProps:this.viewProps}),this.view=new Et(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 Ar=y("colsw");class Po{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(Ar()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("div");r.classList.add(Ar("sw")),this.element.appendChild(r),this.swatchElem_=r;const l=t.createElement("button");l.classList.add(Ar("b")),e.viewProps.bindDisabled(l),this.element.appendChild(l),this.buttonElement=l,this.update_()}update_(){const t=this.value.rawValue;this.swatchElem_.style.backgroundColor=Vr(t)}onValueChange_(){this.update_()}}class Eo{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new Po(t,{value:this.value,viewProps:this.viewProps})}}class Nr{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_=re.create(e.expanded),this.swatchC_=new Eo(t,{value:this.value,viewProps:this.viewProps});const r=this.swatchC_.view.buttonElement;r.addEventListener("blur",this.onButtonBlur_),r.addEventListener("click",this.onButtonClick_),this.textC_=new de(t,{parser:e.parser,props:k.fromObject({formatter:e.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new fn(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 on(t,{viewProps:this.viewProps}):null;const l=new yo(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),Ht({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:c=>c.rawValue,backward:(c,d)=>d.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),qe(this.foldable_,this.view.pickerElement))}get textController(){return this.textC_}onButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,r=t.relatedTarget;(!r||!e.contains(r))&&(this.popC_.shows.rawValue=!1)}onButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(t){if(!this.popC_)return;const e=this.popC_.view.element,r=Mt(t);r&&e.contains(r)||r&&r===this.swatchC_.view.buttonElement&&!Fe(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 ko(n,t){return f.isColorObject(n)?f.fromObject(n,t):f.black(t)}function Vo(n){return o(n.getComponents("rgb")).reduce((t,e)=>t<<8|Math.floor(e)&255,0)}function So(n){return n.getComponents("rgb").reduce((t,e,r)=>{const l=Math.floor(r===3?e*255:e)&255;return t<<8|l},0)>>>0}function Lo(n){return new f([n>>16&255,n>>8&255,n&255],"rgb")}function Mo(n){return new f([n>>24&255,n>>16&255,n>>8&255,j(n&255,0,255,0,1)],"rgb")}function To(n){return typeof n!="number"?f.black():Lo(n)}function Ao(n){return typeof n!="number"?f.black():Mo(n)}function No(n){const t=Sr(n);return t?(e,r)=>{qt(e,t(r))}:null}function Do(n){const t=n?So:Vo;return(e,r)=>{qt(e,t(r))}}function zo(n,t,e){const r=t.toRgbaObject(e);n.writeProperty("r",r.r),n.writeProperty("g",r.g),n.writeProperty("b",r.b),n.writeProperty("a",r.a)}function Ro(n,t,e){const r=t.toRgbaObject(e);n.writeProperty("r",r.r),n.writeProperty("g",r.g),n.writeProperty("b",r.b)}function Oo(n,t){return(e,r)=>{n?zo(e,r,t):Ro(e,r,t)}}function Dr(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 Bo(n){return n?t=>Vr(t,"0x"):t=>ms(t,"0x")}function Io(n){return"color"in n||"view"in n&&n.view==="color"}const jo={id:"input-color-number",type:"input",accept:(n,t)=>{if(typeof n!="number"||!Io(t))return null;const e=wn(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>Dr(n.params)?Ao:To,equals:f.equals,writer:n=>Do(Dr(n.params))},controller:n=>{const t=Dr(n.params),e="expanded"in n.params?n.params.expanded:void 0,r="picker"in n.params?n.params.picker:void 0;return new Nr(n.document,{colorType:"int",expanded:e!=null?e:!1,formatter:Bo(t),parser:kr("int"),pickerLayout:r!=null?r:"popup",supportsAlpha:t,value:n.value,viewProps:n.viewProps})}};function Fo(n){return f.isRgbaColorObject(n)}function Ko(n){return t=>ko(t,n)}function $o(n,t){return e=>n?_s(e,t):fs(e,t)}const Uo={id:"input-color-object",type:"input",accept:(n,t)=>{if(!f.isColorObject(n))return null;const e=wn(t);return e?{initialValue:n,params:e}:null},binding:{reader:n=>Ko(be(n.params)),equals:f.equals,writer:n=>Oo(Fo(n.initialValue),be(n.params))},controller:n=>{var t;const e=f.isRgbaColorObject(n.initialValue),r="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0,c=(t=be(n.params))!==null&&t!==void 0?t:"int";return new Nr(n.document,{colorType:c,expanded:r!=null?r:!1,formatter:$o(e,c),parser:kr(c),pickerLayout:l!=null?l:"popup",supportsAlpha:e,value:n.value,viewProps:n.viewProps})}},Ho={id:"input-color-string",type:"input",accept:(n,t)=>{if(typeof n!="string"||"view"in t&&t.view==="text")return null;const e=Er(n,be(t));if(!e||!Sr(e))return null;const l=wn(t);return l?{initialValue:n,params:l}:null},binding:{reader:n=>{var t;return io((t=be(n.params))!==null&&t!==void 0?t:"int")},equals:f.equals,writer:n=>{const t=Er(n.initialValue,be(n.params));if(!t)throw E.shouldNeverHappen();const e=No(t);if(!e)throw E.notBindable();return e}},controller:n=>{const t=Er(n.initialValue,be(n.params));if(!t)throw E.shouldNeverHappen();const e=Sr(t);if(!e)throw E.shouldNeverHappen();const r="expanded"in n.params?n.params.expanded:void 0,l="picker"in n.params?n.params.picker:void 0;return new Nr(n.document,{colorType:t.type,expanded:r!=null?r:!1,formatter:e,parser:kr(t.type),pickerLayout:l!=null?l:"popup",supportsAlpha:t.alpha,value:n.value,viewProps:n.viewProps})}};class Wt{constructor(t){this.components=t.components,this.asm_=t.assembly}constrain(t){const e=this.asm_.toComponents(t).map((r,l)=>{var c,d;return(d=(c=this.components[l])===null||c===void 0?void 0:c.constrain(r))!==null&&d!==void 0?d:r});return this.asm_.fromComponents(e)}}const ws=y("pndtxt");class qo{constructor(t,e){this.textViews=e.textViews,this.element=t.createElement("div"),this.element.classList.add(ws()),this.textViews.forEach(r=>{const l=t.createElement("div");l.classList.add(ws("a")),l.appendChild(r.element),this.element.appendChild(l)})}}function Go(n,t,e){return new Pt(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:U(0,{constraint:t.axes[e].constraint}),viewProps:t.viewProps})}class zr{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.acs_=e.axes.map((r,l)=>Go(t,e,l)),this.acs_.forEach((r,l)=>{Ht({primary:this.value,secondary:r.value,forward:c=>e.assembly.toComponents(c.rawValue)[l],backward:(c,d)=>{const v=e.assembly.toComponents(c.rawValue);return v[l]=d.rawValue,e.assembly.fromComponents(v)}})}),this.view=new qo(t,{textViews:this.acs_.map(r=>r.view)})}}function xs(n,t){return"step"in n&&!S(n.step)?new tt(n.step,t):null}function Cs(n){return"max"in n&&!S(n.max)||"min"in n&&!S(n.min)?new ut({max:n.max,min:n.min}):null}function Yo(n,t){const e=[],r=xs(n,t);r&&e.push(r);const l=Cs(n);l&&e.push(l);const c=mn(n.options);return c&&e.push(c),new St(e)}function Xo(n){const t=n?B(n,ut):null;return t?[t.minValue,t.maxValue]:[void 0,void 0]}function Wo(n){const[t,e]=Xo(n);return[t!=null?t:0,e!=null?e:100]}const Jo={id:"input-number",type:"input",accept:(n,t)=>{if(typeof n!="number")return null;const e=A,r=G(t,{format:e.optional.function,max:e.optional.number,min:e.optional.number,options:e.optional.custom(Gt),step:e.optional.number});return r?{initialValue:n,params:r}:null},binding:{reader:n=>cn,constraint:n=>Yo(n.params,n.initialValue),writer:n=>qt},controller:n=>{var t,e;const r=n.value,l=n.constraint;if(l&&B(l,$t))return new Nt(n.document,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps});const c=(e="format"in n.params?n.params.format:void 0)!==null&&e!==void 0?e:K(Le(l,r.rawValue));if(l&&B(l,ut)){const[d,v]=Wo(l);return new Se(n.document,{baseStep:Yt(l),parser:xt,sliderProps:k.fromObject({maxValue:v,minValue:d}),textProps:k.fromObject({draggingScale:Xt(l,r.rawValue),formatter:c}),value:r,viewProps:n.viewProps})}return new Pt(n.document,{baseStep:Yt(l),parser:xt,props:k.fromObject({draggingScale:Xt(l,r.rawValue),formatter:c}),value:r,viewProps:n.viewProps})}};class Jt{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,r=t.y;return!(typeof e!="number"||typeof r!="number")}static equals(t,e){return t.x===e.x&&t.y===e.y}toObject(){return{x:this.x,y:this.y}}}const ys={toComponents:n=>n.getComponents(),fromComponents:n=>new Jt(...n)},Ae=y("p2d");class Qo{constructor(t,e){this.element=t.createElement("div"),this.element.classList.add(Ae()),e.viewProps.bindClassModifiers(this.element),It(e.expanded,rt(this.element,Ae(void 0,"expanded")));const r=t.createElement("div");r.classList.add(Ae("h")),this.element.appendChild(r);const l=t.createElement("button");l.classList.add(Ae("b")),l.appendChild(xe(t,"p2dpad")),e.viewProps.bindDisabled(l),r.appendChild(l),this.buttonElement=l;const c=t.createElement("div");if(c.classList.add(Ae("t")),r.appendChild(c),this.textElement=c,e.pickerLayout==="inline"){const d=t.createElement("div");d.classList.add(Ae("p")),this.element.appendChild(d),this.pickerElement=d}else this.pickerElement=null}}const Qt=y("p2dp");class Zo{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(Qt()),e.layout==="popup"&&this.element.classList.add(Qt(void 0,"p"));const r=t.createElement("div");r.classList.add(Qt("p")),e.viewProps.bindTabIndex(r),this.element.appendChild(r),this.padElement=r;const l=t.createElementNS(ht,"svg");l.classList.add(Qt("g")),this.padElement.appendChild(l),this.svgElem_=l;const c=t.createElementNS(ht,"line");c.classList.add(Qt("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 d=t.createElementNS(ht,"line");d.classList.add(Qt("ax")),d.setAttributeNS(null,"x1","50%"),d.setAttributeNS(null,"y1","0"),d.setAttributeNS(null,"x2","50%"),d.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(d);const v=t.createElementNS(ht,"line");v.classList.add(Qt("l")),v.setAttributeNS(null,"x1","50%"),v.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(v),this.lineElem_=v;const g=t.createElement("div");g.classList.add(Qt("m")),this.padElement.appendChild(g),this.markerElem_=g,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(),r=this.maxValue_,l=j(t,-r,+r,0,100),c=j(e,-r,+r,0,100),d=this.invertsY_?100-c:c;this.lineElem_.setAttributeNS(null,"x2",`${l}%`),this.lineElem_.setAttributeNS(null,"y2",`${d}%`),this.markerElem_.style.left=`${l}%`,this.markerElem_.style.top=`${d}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Ps(n,t,e){return[et(t[0],yt(n)),et(t[1],vt(n))*(e?1:-1)]}class ta{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 Zo(t,{invertsY:this.invertsY_,layout:e.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new Dt(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 r=this.maxValue_,l=j(t.point.x,0,t.bounds.width,-r,+r),c=j(this.invertsY_?t.bounds.height-t.point.y:t.point.y,0,t.bounds.height,-r,+r);this.value.setRawValue(new Jt(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){ii(t.key)&&t.preventDefault();const[e,r]=Ps(t,this.baseSteps_,this.invertsY_);e===0&&r===0||this.value.setRawValue(new Jt(this.value.rawValue.x+e,this.value.rawValue.y+r),{forceEmit:!1,last:!1})}onPadKeyUp_(t){const[e,r]=Ps(t,this.baseSteps_,this.invertsY_);e===0&&r===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class ea{constructor(t,e){var r,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_=re.create(e.expanded),this.popC_=e.pickerLayout==="popup"?new on(t,{viewProps:this.viewProps}):null;const c=new ta(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(d=>{d.addEventListener("blur",this.onPopupChildBlur_),d.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=c,this.textC_=new zr(t,{assembly:ys,axes:e.axes,parser:e.parser,value:this.value,viewProps:this.viewProps}),this.view=new Qo(t,{expanded:this.foldable_.value("expanded"),pickerLayout:e.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(r=this.view.buttonElement)===null||r===void 0||r.addEventListener("blur",this.onPadButtonBlur_),(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),Ht({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:d=>d.rawValue,backward:(d,v)=>v.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),qe(this.foldable_,this.view.pickerElement))}onPadButtonBlur_(t){if(!this.popC_)return;const e=this.view.element,r=t.relatedTarget;(!r||!e.contains(r))&&(this.popC_.shows.rawValue=!1)}onPadButtonClick_(){this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded")&&this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(t){if(!this.popC_)return;const e=this.popC_.view.element,r=Mt(t);r&&e.contains(r)||r&&r===this.view.buttonElement&&!Fe(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 na(n){return Jt.isObject(n)?new Jt(n.x,n.y):new Jt}function ia(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y)}function Ot(n,t){if(!n)return;const e=[],r=xs(n,t);r&&e.push(r);const l=Cs(n);return l&&e.push(l),new St(e)}function ra(n,t){return new Wt({assembly:ys,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y)]})}function Es(n,t){var e,r;const l=n&&B(n,ut);if(l)return Math.max(Math.abs((e=l.minValue)!==null&&e!==void 0?e:0),Math.abs((r=l.maxValue)!==null&&r!==void 0?r:0));const c=Yt(n);return Math.max(Math.abs(c)*10,Math.abs(t)*10)}function sa(n,t){const e=t instanceof Wt?t.components[0]:void 0,r=t instanceof Wt?t.components[1]:void 0,l=Es(e,n.x),c=Es(r,n.y);return Math.max(l,c)}function ks(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}function oa(n){if(!("y"in n))return!1;const t=n.y;return t&&"inverted"in t?!!t.inverted:!1}const aa={id:"input-point2d",type:"input",accept:(n,t)=>{if(!Jt.isObject(n))return null;const e=A,r=G(t,{expanded:e.optional.boolean,picker:e.optional.custom(ai),x:e.optional.custom(st),y:e.optional.object({inverted:e.optional.boolean,max:e.optional.number,min:e.optional.number,step:e.optional.number})});return r?{initialValue:n,params:r}:null},binding:{reader:n=>na,constraint:n=>ra(n.params,n.initialValue),equals:Jt.equals,writer:n=>ia},controller:n=>{const t=n.document,e=n.value,r=n.constraint;if(!(r instanceof Wt))throw E.shouldNeverHappen();const l="expanded"in n.params?n.params.expanded:void 0,c="picker"in n.params?n.params.picker:void 0;return new ea(t,{axes:[ks(e.rawValue.x,r.components[0]),ks(e.rawValue.y,r.components[1])],expanded:l!=null?l:!1,invertsY:oa(n.params),maxValue:sa(e.rawValue,r),parser:xt,pickerLayout:c!=null?c:"popup",value:e,viewProps:n.viewProps})}};class Ne{constructor(t=0,e=0,r=0){this.x=t,this.y=e,this.z=r}getComponents(){return[this.x,this.y,this.z]}static isObject(t){if(S(t))return!1;const e=t.x,r=t.y,l=t.z;return!(typeof e!="number"||typeof r!="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 Vs={toComponents:n=>n.getComponents(),fromComponents:n=>new Ne(...n)};function la(n){return Ne.isObject(n)?new Ne(n.x,n.y,n.z):new Ne}function pa(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z)}function ca(n,t){return new Wt({assembly:Vs,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y),Ot("z"in n?n.z:void 0,t.z)]})}function Rr(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}const ua={id:"input-point3d",type:"input",accept:(n,t)=>{if(!Ne.isObject(n))return null;const e=A,r=G(t,{x:e.optional.custom(st),y:e.optional.custom(st),z:e.optional.custom(st)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>la,constraint:n=>ca(n.params,n.initialValue),equals:Ne.equals,writer:n=>pa},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof Wt))throw E.shouldNeverHappen();return new zr(n.document,{assembly:Vs,axes:[Rr(t.rawValue.x,e.components[0]),Rr(t.rawValue.y,e.components[1]),Rr(t.rawValue.z,e.components[2])],parser:xt,value:t,viewProps:n.viewProps})}};class De{constructor(t=0,e=0,r=0,l=0){this.x=t,this.y=e,this.z=r,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,r=t.y,l=t.z,c=t.w;return!(typeof e!="number"||typeof r!="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 Ss={toComponents:n=>n.getComponents(),fromComponents:n=>new De(...n)};function da(n){return De.isObject(n)?new De(n.x,n.y,n.z,n.w):new De}function ha(n,t){n.writeProperty("x",t.x),n.writeProperty("y",t.y),n.writeProperty("z",t.z),n.writeProperty("w",t.w)}function va(n,t){return new Wt({assembly:Ss,components:[Ot("x"in n?n.x:void 0,t.x),Ot("y"in n?n.y:void 0,t.y),Ot("z"in n?n.z:void 0,t.z),Ot("w"in n?n.w:void 0,t.w)]})}function ma(n,t){return{baseStep:Yt(t),constraint:t,textProps:k.fromObject({draggingScale:Xt(t,n),formatter:K(Le(t,n))})}}const ba={id:"input-point4d",type:"input",accept:(n,t)=>{if(!De.isObject(n))return null;const e=A,r=G(t,{x:e.optional.custom(st),y:e.optional.custom(st),z:e.optional.custom(st),w:e.optional.custom(st)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>da,constraint:n=>va(n.params,n.initialValue),equals:De.equals,writer:n=>ha},controller:n=>{const t=n.value,e=n.constraint;if(!(e instanceof Wt))throw E.shouldNeverHappen();return new zr(n.document,{assembly:Ss,axes:t.rawValue.getComponents().map((r,l)=>ma(r,e.components[l])),parser:xt,value:t,viewProps:n.viewProps})}};function fa(n){const t=[],e=mn(n.options);return e&&t.push(e),new St(t)}const _a={id:"input-string",type:"input",accept:(n,t)=>{if(typeof n!="string")return null;const r=G(t,{options:A.optional.custom(Gt)});return r?{initialValue:n,params:r}:null},binding:{reader:n=>ei,constraint:n=>fa(n.params),writer:n=>qt},controller:n=>{var t;const e=n.document,r=n.value,l=n.constraint;return l&&B(l,$t)?new Nt(e,{props:k.fromObject({options:(t=bn(l))!==null&&t!==void 0?t:[]}),value:r,viewProps:n.viewProps}):new de(e,{parser:c=>c,props:k.fromObject({formatter:Ve}),value:r,viewProps:n.viewProps})}},Cn={monitor:{defaultInterval:200,defaultLineCount:3}},Ls=y("mll");class ga{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(Ls()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("textarea");r.classList.add(Ls("i")),r.style.height=`calc(var(--bld-us) * ${e.lineCount})`,r.readOnly=!0,e.viewProps.bindDisabled(r),this.element.appendChild(r),this.textareaElem_=r,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,r=[];this.value.rawValue.forEach(l=>{l!==void 0&&r.push(this.formatter_(l))}),t.textContent=r.join(`
10
+ `),e&&(t.scrollTop=t.scrollHeight)}onValueUpdate_(){this.update_()}}class Or{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new ga(t,{formatter:e.formatter,lineCount:e.lineCount,value:this.value,viewProps:this.viewProps})}}const Ms=y("sgl");class wa{constructor(t,e){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=e.formatter,this.element=t.createElement("div"),this.element.classList.add(Ms()),e.viewProps.bindClassModifiers(this.element);const r=t.createElement("input");r.classList.add(Ms("i")),r.readOnly=!0,r.type="text",e.viewProps.bindDisabled(r),this.element.appendChild(r),this.inputElement=r,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 Br{constructor(t,e){this.value=e.value,this.viewProps=e.viewProps,this.view=new wa(t,{formatter:e.formatter,value:this.value,viewProps:this.viewProps})}}const xa={id:"monitor-bool",type:"monitor",accept:(n,t)=>{if(typeof n!="boolean")return null;const r=G(t,{lineCount:A.optional.number});return r?{initialValue:n,params:r}:null},binding:{reader:n=>Xn},controller:n=>{var t;return n.value.rawValue.length===1?new Br(n.document,{formatter:Wn,value:n.value,viewProps:n.viewProps}):new Or(n.document,{formatter:Wn,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}},Zt=y("grl");class Ca{constructor(t,e){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=t.createElement("div"),this.element.classList.add(Zt()),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 r=t.createElementNS(ht,"svg");r.classList.add(Zt("g")),r.style.height=`calc(var(--bld-us) * ${e.lineCount})`,this.element.appendChild(r),this.svgElem_=r;const l=t.createElementNS(ht,"polyline");this.svgElem_.appendChild(l),this.lineElem_=l;const c=t.createElement("div");c.classList.add(Zt("t"),y("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,r=this.props_.get("minValue"),l=this.props_.get("maxValue"),c=[];this.value.rawValue.forEach((R,O)=>{if(R===void 0)return;const Bt=j(O,0,e,0,t.width),yn=j(R,r,l,t.height,0);c.push([Bt,yn].join(","))}),this.lineElem_.setAttributeNS(null,"points",c.join(" "));const d=this.tooltipElem_,v=this.value.rawValue[this.cursor_.rawValue];if(v===void 0){d.classList.remove(Zt("t","a"));return}const g=j(this.cursor_.rawValue,0,e,0,t.width),V=j(v,r,l,t.height,0);d.style.left=`${g}px`,d.style.top=`${V}px`,d.textContent=`${this.formatter_(v)}`,d.classList.contains(Zt("t","a"))||(d.classList.add(Zt("t","a"),Zt("t","in")),ee(d),d.classList.remove(Zt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ya{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_=U(-1),this.view=new Ca(t,{cursor:this.cursor_,formatter:e.formatter,lineCount:e.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Fe(t))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const r=new Dt(this.view.element);r.emitter.on("down",this.onGraphPointerDown_),r.emitter.on("move",this.onGraphPointerMove_),r.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(t){const e=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(j(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(j(t.data.point.x,0,t.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function Ir(n){return"format"in n&&!S(n.format)?n.format:K(2)}function Pa(n){var t;return n.value.rawValue.length===1?new Br(n.document,{formatter:Ir(n.params),value:n.value,viewProps:n.viewProps}):new Or(n.document,{formatter:Ir(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:n.value,viewProps:n.viewProps})}function Ea(n){var t,e,r;return new ya(n.document,{formatter:Ir(n.params),lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,props:k.fromObject({maxValue:(e="max"in n.params?n.params.max:null)!==null&&e!==void 0?e:100,minValue:(r="min"in n.params?n.params.min:null)!==null&&r!==void 0?r:0}),value:n.value,viewProps:n.viewProps})}function Ts(n){return"view"in n&&n.view==="graph"}const ka={id:"monitor-number",type:"monitor",accept:(n,t)=>{if(typeof n!="number")return null;const e=A,r=G(t,{format:e.optional.function,lineCount:e.optional.number,max:e.optional.number,min:e.optional.number,view:e.optional.string});return r?{initialValue:n,params:r}:null},binding:{defaultBufferSize:n=>Ts(n)?64:1,reader:n=>cn},controller:n=>Ts(n.params)?Ea(n):Pa(n)},Va={id:"monitor-string",type:"monitor",accept:(n,t)=>{if(typeof n!="string")return null;const e=A,r=G(t,{lineCount:e.optional.number,multiline:e.optional.boolean});return r?{initialValue:n,params:r}:null},binding:{reader:n=>ei},controller:n=>{var t;const e=n.value;return e.rawValue.length>1||"multiline"in n.params&&n.params.multiline?new Or(n.document,{formatter:Ve,lineCount:(t=n.params.lineCount)!==null&&t!==void 0?t:Cn.monitor.defaultLineCount,value:e,viewProps:n.viewProps}):new Br(n.document,{formatter:Ve,value:e,viewProps:n.viewProps})}};class Sa{constructor(t){this.onValueChange_=this.onValueChange_.bind(this),this.reader=t.reader,this.writer=t.writer,this.emitter=new P,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 La(n,t){const e=n.accept(t.target.read(),t.params);if(S(e))return null;const r=A,l={target:t.target,initialValue:e.initialValue,params:e.params},c=n.binding.reader(l),d=n.binding.constraint?n.binding.constraint(l):void 0,v=U(c(e.initialValue),{constraint:d,equals:n.binding.equals}),g=new Sa({reader:c,target:t.target,value:v,writer:n.binding.writer(l)}),V=r.optional.boolean(t.params.disabled).value,R=r.optional.boolean(t.params.hidden).value,O=n.controller({constraint:d,document:t.document,initialValue:e.initialValue,params:e.params,value:g.value,viewProps:Vt.create({disabled:V,hidden:R})}),Bt=r.optional.string(t.params.label).value;return new lt(t.document,{binding:g,blade:jt(),props:k.fromObject({label:Bt!=null?Bt:t.target.key}),valueController:O})}class Ma{constructor(t){this.onTick_=this.onTick_.bind(this),this.reader_=t.reader,this.target=t.target,this.emitter=new P,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,r=this.reader_(t);this.value.rawValue=ni(e,r),this.emitter.emit("update",{rawValue:r,sender:this})}onTick_(t){this.read()}}function Ta(n,t){return t===0?new qn:new rn(n,t!=null?t:Cn.monitor.defaultInterval)}function Aa(n,t){var e,r,l;const c=A,d=n.accept(t.target.read(),t.params);if(S(d))return null;const v={target:t.target,initialValue:d.initialValue,params:d.params},g=n.binding.reader(v),V=(r=(e=c.optional.number(t.params.bufferSize).value)!==null&&e!==void 0?e:n.binding.defaultBufferSize&&n.binding.defaultBufferSize(d.params))!==null&&r!==void 0?r:1,R=c.optional.number(t.params.interval).value,O=new Ma({reader:g,target:t.target,ticker:Ta(t.document,R),value:hr(V)}),Bt=c.optional.boolean(t.params.disabled).value,yn=c.optional.boolean(t.params.hidden).value,Pn=n.controller({document:t.document,params:d.params,value:O.value,viewProps:Vt.create({disabled:Bt,hidden:yn})}),ze=(l=c.optional.string(t.params.label).value)!==null&&l!==void 0?l:t.target.key;return new kt(t.document,{binding:O,blade:jt(),props:k.fromObject({label:ze}),valueController:Pn})}class Na{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,r){const l=e.read();if(S(l))throw new E({context:{key:e.key},type:"nomatchingcontroller"});const c=this.pluginsMap_.inputs.reduce((d,v)=>d!=null?d:La(v,{document:t,target:e,params:r}),null);if(c)return c;throw new E({context:{key:e.key},type:"nomatchingcontroller"})}createMonitor(t,e,r){const l=this.pluginsMap_.monitors.reduce((c,d)=>c!=null?c:Aa(d,{document:t,params:r,target:e}),null);if(l)return l;throw new E({context:{key:e.key},type:"nomatchingcontroller"})}createBlade(t,e){const r=this.pluginsMap_.blades.reduce((l,c)=>l!=null?l:Fi(c,{document:t,params:e}),null);if(!r)throw new E({type:"nomatchingview",context:{params:e}});return r}createBladeApi(t){if(t instanceof lt)return new Xe(t);if(t instanceof kt)return new At(t);if(t instanceof le)return new ae(t,this);const e=this.pluginsMap_.blades.reduce((r,l)=>r!=null?r:l.api({controller:t,pool:this}),null);if(!e)throw E.shouldNeverHappen();return e}}function Da(){const n=new Na;return[aa,ua,ba,_a,Jo,Ho,Uo,jo,wr,xa,Va,ka,Ce,Ri,Kn,nn].forEach(t=>{n.register(t)}),n}class As extends x{constructor(t){super(t),this.emitter_=new P,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class Ns extends x{constructor(t){super(t),this.emitter_=new P,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}class Ds extends x{constructor(t){super(t),this.emitter_=new P,this.controller_.valueController.value.emitter.on("change",e=>{this.emitter_.emit("change",{event:new N(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 r=e.bind(this);return this.emitter_.on(t,l=>{r(l.event)}),this}}const za=function(){return{id:"list",type:"blade",accept(n){const t=A,e=G(n,{options:t.required.custom(Gt),value:t.required.raw,view:t.required.constant("list"),label:t.optional.string});return e?{params:e}:null},controller(n){const t=new Nt(n.document,{props:k.fromObject({options:li(n.params.options)}),value:U(n.params.value),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:t})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof Nt)?null:new As(n.controller)}}}();function Ra(n){return n.reduce((t,e)=>Object.assign(t,{[e.presetKey]:e.read()}),{})}function Oa(n,t){n.forEach(e=>{const r=t[e.presetKey];r!==void 0&&e.write(r)})}class Ba extends We{constructor(t,e){super(t,e)}get element(){return this.controller_.view.element}importPreset(t){const e=this.controller_.rackController.rack.find(lt).map(r=>r.binding.target);Oa(e,t),this.refresh()}exportPreset(){const t=this.controller_.rackController.rack.find(lt).map(e=>e.binding.target);return Ra(t)}refresh(){this.controller_.rackController.rack.find(lt).forEach(t=>{t.binding.read()}),this.controller_.rackController.rack.find(kt).forEach(t=>{t.binding.read()})}}class Ia extends Ze{constructor(t,e){super(t,{expanded:e.expanded,blade:e.blade,props:e.props,root:!0,viewProps:e.viewProps})}}const ja={id:"slider",type:"blade",accept(n){const t=A,e=G(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 r=(t=n.params.value)!==null&&t!==void 0?t:0,l=new Se(n.document,{baseStep:1,parser:xt,sliderProps:k.fromObject({maxValue:n.params.max,minValue:n.params.min}),textProps:k.fromObject({draggingScale:Xt(void 0,r),formatter:(e=n.params.format)!==null&&e!==void 0?e:ur}),value:U(r),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:l})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof Se)?null:new Ns(n.controller)}},Fa=function(){return{id:"text",type:"blade",accept(n){const t=A,e=G(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 de(n.document,{parser:n.params.parse,props:k.fromObject({formatter:(t=n.params.format)!==null&&t!==void 0?t:r=>String(r)}),value:U(n.params.value),viewProps:n.viewProps});return new Ft(n.document,{blade:n.blade,props:k.fromObject({label:n.params.label}),valueController:e})},api(n){return!(n.controller instanceof Ft)||!(n.controller.valueController instanceof de)?null:new Ds(n.controller)}}}();function Ka(n){const t=n.createElement("div");return t.classList.add(y("dfw")()),n.body&&n.body.appendChild(t),t}function zs(n,t,e){if(n.querySelector(`style[data-tp-style=${t}]`))return;const r=n.createElement("style");r.dataset.tpStyle=t,r.textContent=e,n.head.appendChild(r)}class $a extends Ba{constructor(t){var e,r;const l=t!=null?t:{},c=(e=l.document)!==null&&e!==void 0?e:xi(),d=Da(),v=new Ia(c,{expanded:l.expanded,blade:jt(),props:k.fromObject({title:l.title}),viewProps:Vt.create()});super(v,d),this.pool_=d,this.containerElem_=(r=l.container)!==null&&r!==void 0?r:Ka(c),this.containerElem_.appendChild(this.element),this.doc_=c,this.usesDefaultWrapper_=!l.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw E.alreadyDisposed();return this.doc_}dispose(){const t=this.containerElem_;if(!t)throw E.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(r=>{this.pool_.register(r),this.embedPluginStyle_(r)})}embedPluginStyle_(t){t.css&&zs(this.document,`plugin-${t.id}`,t.css)}setUpDefaultPlugins_(){zs(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:[ja,za,nn,Fa]})}}const Ua=new w("3.1.0");C.BladeApi=x,C.ButtonApi=Y,C.FolderApi=We,C.InputBindingApi=Xe,C.ListApi=As,C.MonitorBindingApi=At,C.Pane=$a,C.SeparatorApi=tn,C.SliderApi=Ns,C.TabApi=Un,C.TabPageApi=en,C.TextApi=Ds,C.TpChangeEvent=N,C.VERSION=Ua,Object.defineProperty(C,"__esModule",{value:!0})})})(mi,mi.exports);var Sn={exports:{}};(function(m,_){(function(C,w){w(_)})(Yr,function(C){class w{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 x{constructor(i){this.target=i}}class T extends x{constructor(i,s,a,p){super(i),this.value=s,this.presetKey=a,this.last=p!=null?p:!0}}function N(o){return o}function M(o){return o==null}const z={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 F{constructor(i){var s;this.message=(s=z[i.type](i.context))!==null&&s!==void 0?s:"Unexpected error",this.name=this.constructor.name,this.stack=new Error(this.message).stack,this.type=i.type}static alreadyDisposed(){return new F({type:"alreadydisposed"})}static notBindable(){return new F({type:"notbindable"})}static propertyNotFound(i){return new F({type:"propertynotfound",context:{name:i}})}static shouldNeverHappen(){return new F({type:"shouldneverhappen"})}}class H{constructor(){this.observers_={}}on(i,s){let a=this.observers_[i];return a||(a=this.observers_[i]=[]),a.push({handler:s}),this}off(i,s){const a=this.observers_[i];return a&&(this.observers_[i]=a.filter(p=>p.handler!==s)),this}emit(i,s){const a=this.observers_[i];!a||a.forEach(p=>{p.handler(s)})}}const S="tp";function D(o){return(s,a)=>[S,"-",o,"v",s?`_${s}`:"",a?`-${a}`:""].join("")}function bt(o,i){return s=>i(o(s))}function E(o){return o.rawValue}function I(o,i){o.emitter.on("change",bt(E,i)),i(o.rawValue)}function Y(o,i,s){I(o.value(i),s)}function P(o,i,s){s?o.classList.add(i):o.classList.remove(i)}function Z(o,i){return s=>{P(o,i,s)}}function y(o,i){I(o,s=>{i.textContent=s!=null?s:""})}const it=D("btn");class te{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(it()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("button");a.classList.add(it("b")),s.viewProps.bindDisabled(a),this.element.appendChild(a),this.buttonElement=a;const p=i.createElement("div");p.classList.add(it("t")),y(s.props.value("title"),p),this.buttonElement.appendChild(p)}}class It{constructor(i,s){this.emitter=new H,this.onClick_=this.onClick_.bind(this),this.props=s.props,this.viewProps=s.viewProps,this.view=new te(i,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class ot{constructor(i,s){var a;this.constraint_=s==null?void 0:s.constraint,this.equals_=(a=s==null?void 0:s.equals)!==null&&a!==void 0?a:(p,u)=>p===u,this.emitter=new H,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,s){const a=s!=null?s:{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 bi{constructor(i){this.emitter=new H,this.value_=i}get rawValue(){return this.value_}set rawValue(i){this.setRawValue(i,{forceEmit:!1,last:!0})}setRawValue(i,s){const a=s!=null?s:{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 rt(o,i){const s=i==null?void 0:i.constraint,a=i==null?void 0:i.equals;return!s&&!a?new bi(o):new ot(o,i)}class X{constructor(i){this.emitter=new H,this.valMap_=i;for(const s in this.valMap_)this.valMap_[s].emitter.on("change",()=>{this.emitter.emit("change",{key:s,sender:this})})}static createCore(i){return Object.keys(i).reduce((a,p)=>Object.assign(a,{[p]:rt(i[p])}),{})}static fromObject(i){const s=this.createCore(i);return new X(s)}get(i){return this.valMap_[i].rawValue}set(i,s){this.valMap_[i].rawValue=s}value(i){return this.valMap_[i]}}function Ie(o,i){const a=Object.keys(i).reduce((p,u)=>{if(p===void 0)return;const h=i[u],b=h(o[u]);return b.succeeded?Object.assign(Object.assign({},p),{[u]:b.value}):void 0},{});return a}function fi(o,i){return o.reduce((s,a)=>{if(s===void 0)return;const p=i(a);if(!(!p.succeeded||p.value===void 0))return[...s,p.value]},[])}function Mn(o){return o===null?!1:typeof o=="object"}function ft(o){return i=>s=>{if(!i&&s===void 0)return{succeeded:!1,value:void 0};if(i&&s===void 0)return{succeeded:!0,value:void 0};const a=o(s);return a!==void 0?{succeeded:!0,value:a}:{succeeded:!1,value:void 0}}}function Tn(o){return{custom:i=>ft(i)(o),boolean:ft(i=>typeof i=="boolean"?i:void 0)(o),number:ft(i=>typeof i=="number"?i:void 0)(o),string:ft(i=>typeof i=="string"?i:void 0)(o),function:ft(i=>typeof i=="function"?i:void 0)(o),constant:i=>ft(s=>s===i?i:void 0)(o),raw:ft(i=>i)(o),object:i=>ft(s=>{if(!!Mn(s))return Ie(s,i)})(o),array:i=>ft(s=>{if(!!Array.isArray(s))return fi(s,i)})(o)}}const U={optional:Tn(!0),required:Tn(!1)};function k(o,i){const s=U.required.object(i)(o);return s.succeeded?s.value:void 0}function _i(o){return o&&o.parentElement&&o.parentElement.removeChild(o),null}function gi(){return["veryfirst","first","last","verylast"]}const An=D(""),dt={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class je{constructor(i){this.parent_=null,this.blade=i.blade,this.view=i.view,this.viewProps=i.viewProps;const s=this.view.element;this.blade.value("positions").emitter.on("change",()=>{gi().forEach(a=>{s.classList.remove(An(void 0,dt[a]))}),this.blade.get("positions").forEach(a=>{s.classList.add(An(void 0,dt[a]))})}),this.viewProps.handleDispose(()=>{_i(s)})}get parent(){return this.parent_}}const A="http://www.w3.org/2000/svg";function G(o){o.offsetHeight}function wi(o,i){const s=o.style.transition;o.style.transition="none",i(),o.style.transition=s}function Nn(o){return o.ontouchstart!==void 0}function Dn(o){for(;o.childNodes.length>0;)o.removeChild(o.childNodes[0])}function zn(o){return o.relatedTarget?o.relatedTarget:"explicitOriginalTarget"in o?o.explicitOriginalTarget:null}const _t=D("lbl");function ht(o,i){const s=o.createDocumentFragment();return i.split(`
11
+ `).map(p=>o.createTextNode(p)).forEach((p,u)=>{u>0&&s.appendChild(o.createElement("br")),s.appendChild(p)}),s}class ee{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(_t()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(_t("l")),Y(s.props,"label",u=>{M(u)?this.element.classList.add(_t(void 0,"nol")):(this.element.classList.remove(_t(void 0,"nol")),Dn(a),a.appendChild(ht(i,u)))}),this.element.appendChild(a),this.labelElement=a;const p=i.createElement("div");p.classList.add(_t("v")),this.element.appendChild(p),this.valueElement=p}}class we extends je{constructor(i,s){const a=s.valueController.viewProps;super(Object.assign(Object.assign({},s),{view:new ee(i,{props:s.props,viewProps:a}),viewProps:a})),this.props=s.props,this.valueController=s.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class Fe extends je{constructor(i){super(i),this.value=i.value}}class Ke extends X{constructor(i){super(i)}static create(i){const s={completed:!0,expanded:i,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},a=X.createCore(s);return new Ke(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")&&!M(i)?`${i}px`:"auto"}bindExpandedClass(i,s){const a=()=>{this.styleExpanded?i.classList.add(s):i.classList.remove(s)};Y(this,"expanded",a),Y(this,"temporaryExpanded",a)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function xi(o){return Ke.create(o)}function Ci(o,i){let s=0;return wi(i,()=>{o.set("expandedHeight",null),o.set("temporaryExpanded",!0),G(i),s=i.clientHeight,o.set("temporaryExpanded",null),G(i)}),s}function Rn(o,i){i.style.height=o.styleHeight}function xe(o,i){o.value("expanded").emitter.on("beforechange",()=>{o.set("completed",!1),M(o.get("expandedHeight"))&&o.set("expandedHeight",Ci(o,i)),o.set("shouldFixHeight",!0),G(i)}),o.emitter.on("change",()=>{Rn(o,i)}),Rn(o,i),i.addEventListener("transitionend",s=>{s.propertyName==="height"&&o.cleanUpTransition()})}class $e{constructor(i,s){const a=D(s.viewName);this.element=i.createElement("div"),this.element.classList.add(a()),s.viewProps.bindClassModifiers(this.element)}}class ne extends Fe{constructor(i,s){const a=s.valueController.viewProps;super(Object.assign(Object.assign({},s),{value:s.valueController.value,view:new ee(i,{props:s.props,viewProps:a}),viewProps:a})),this.props=s.props,this.valueController=s.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}const On=D("");function Bn(o,i){return Z(o,On(void 0,i))}class Mt extends X{constructor(i){super(i)}static create(i){var s,a;const p=i!=null?i:{},u={disabled:(s=p.disabled)!==null&&s!==void 0?s:!1,disposed:!1,hidden:(a=p.hidden)!==null&&a!==void 0?a:!1},h=X.createCore(u);return new Mt(h)}bindClassModifiers(i){Y(this,"disabled",Bn(i,"disabled")),Y(this,"hidden",Bn(i,"hidden"))}bindDisabled(i){Y(this,"disabled",s=>{i.disabled=s})}bindTabIndex(i){Y(this,"disabled",s=>{i.tabIndex=s?-1:0})}handleDispose(i){this.value("disposed").emitter.on("change",s=>{s&&i()})}}class ie{constructor(){this.disabled=!1,this.emitter=new H}dispose(){}tick(){this.disabled||this.emitter.emit("tick",{sender:this})}}class yi{constructor(i,s){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=i,this.emitter=new H,this.interval_=s,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 Ue{constructor(i){this.constraints=i}constrain(i){return this.constraints.reduce((s,a)=>a.constrain(s),i)}}function Tt(o,i){if(o instanceof i)return o;if(o instanceof Ue){const s=o.constraints.reduce((a,p)=>a||(p instanceof i?p:null),null);if(s)return s}return null}class Ce{constructor(i){this.maxValue=i.max,this.minValue=i.min}constrain(i){let s=i;return M(this.minValue)||(s=Math.max(s,this.minValue)),M(this.maxValue)||(s=Math.min(s,this.maxValue)),s}}class gt{constructor(i,s=0){this.step=i,this.origin=s}constrain(i){const s=this.origin%this.step,a=Math.round((i-s)/this.step);return s+a*this.step}}const jt=D("pop");class re{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(jt()),s.viewProps.bindClassModifiers(this.element),I(s.shows,Z(this.element,jt(void 0,"v")))}}class Pi{constructor(i,s){this.shows=rt(!1),this.viewProps=s.viewProps,this.view=new re(i,{shows:this.shows,viewProps:this.viewProps})}}const He=D("txt");class qe{constructor(i,s){this.onChange_=this.onChange_.bind(this),this.element=i.createElement("div"),this.element.classList.add(He()),s.viewProps.bindClassModifiers(this.element),this.props_=s.props,this.props_.emitter.on("change",this.onChange_);const a=i.createElement("input");a.classList.add(He("i")),a.type="text",s.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,s.value.emitter.on("change",this.onChange_),this.value_=s.value,this.refresh()}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value_.rawValue)}onChange_(){this.refresh()}}class Ge{constructor(i,s){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=s.parser,this.props=s.props,this.value=s.value,this.viewProps=s.viewProps,this.view=new qe(i,{props:s.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);M(p)||(this.value.rawValue=p),this.view.refresh()}}function Ei(o){return o==="false"?!1:!!o}class ki{constructor(i){this.text=i}evaluate(){return Number(this.text)}toString(){return this.text}}const Vi={"**":(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 Si{constructor(i,s,a){this.left=s,this.operator=i,this.right=a}evaluate(){const i=Vi[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 Ye={"+":o=>o,"-":o=>-o,"~":o=>~o};class Xe{constructor(i,s){this.operator=i,this.expression=s}evaluate(){const i=Ye[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 lt(o){return(i,s)=>{for(let a=0;a<o.length;a++){const p=o[a](i,s);if(p!=="")return p}return""}}function At(o,i){var s;const a=o.substr(i).match(/^\s+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function kt(o,i){const s=o.substr(i,1);return s.match(/^[1-9]$/)?s:""}function se(o,i){var s;const a=o.substr(i).match(/^[0-9]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function oe(o,i){const s=se(o,i);if(s!=="")return s;const a=o.substr(i,1);if(i+=1,a!=="-"&&a!=="+")return"";const p=se(o,i);return p===""?"":a+p}function ye(o,i){const s=o.substr(i,1);if(i+=1,s.toLowerCase()!=="e")return"";const a=oe(o,i);return a===""?"":s+a}function ae(o,i){const s=o.substr(i,1);if(s==="0")return s;const a=kt(o,i);return i+=a.length,a===""?"":a+se(o,i)}function We(o,i){const s=ae(o,i);if(i+=s.length,s==="")return"";const a=o.substr(i,1);if(i+=a.length,a!==".")return"";const p=se(o,i);return i+=p.length,s+a+p+ye(o,i)}function Je(o,i){const s=o.substr(i,1);if(i+=s.length,s!==".")return"";const a=se(o,i);return i+=a.length,a===""?"":s+a+ye(o,i)}function Li(o,i){const s=ae(o,i);return i+=s.length,s===""?"":s+ye(o,i)}const Mi=lt([We,Je,Li]);function Ti(o,i){var s;const a=o.substr(i).match(/^[01]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function Ai(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0b")return"";const a=Ti(o,i);return a===""?"":s+a}function Qe(o,i){var s;const a=o.substr(i).match(/^[0-7]+/);return(s=a&&a[0])!==null&&s!==void 0?s:""}function Ni(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0o")return"";const a=Qe(o,i);return a===""?"":s+a}function Di(o,i){var s;const a=o.substr(i).match(/^[0-9a-f]+/i);return(s=a&&a[0])!==null&&s!==void 0?s:""}function le(o,i){const s=o.substr(i,2);if(i+=s.length,s.toLowerCase()!=="0x")return"";const a=Di(o,i);return a===""?"":s+a}const In=lt([Ai,Ni,le]),zi=lt([In,Mi]);function Ze(o,i){const s=zi(o,i);return i+=s.length,s===""?null:{evaluable:new ki(s),cursor:i}}function Ri(o,i){const s=o.substr(i,1);if(i+=s.length,s!=="(")return null;const a=Kn(o,i);if(!a)return null;i=a.cursor,i+=At(o,i).length;const p=o.substr(i,1);return i+=p.length,p!==")"?null:{evaluable:a.evaluable,cursor:i}}function Ft(o,i){var s;return(s=Ze(o,i))!==null&&s!==void 0?s:Ri(o,i)}function tn(o,i){const s=Ft(o,i);if(s)return s;const a=o.substr(i,1);if(i+=a.length,a!=="+"&&a!=="-"&&a!=="~")return null;const p=tn(o,i);return p?(i=p.cursor,{cursor:i,evaluable:new Xe(a,p.evaluable)}):null}function jn(o,i,s){s+=At(i,s).length;const a=o.filter(p=>i.startsWith(p,s))[0];return a?(s+=a.length,s+=At(i,s).length,{cursor:s,operator:a}):null}function Oi(o,i){return(s,a)=>{const p=o(s,a);if(!p)return null;a=p.cursor;let u=p.evaluable;for(;;){const h=jn(i,s,a);if(!h)break;a=h.cursor;const b=o(s,a);if(!b)return null;a=b.cursor,u=new Si(h.operator,u,b.evaluable)}return u?{cursor:a,evaluable:u}:null}}const Fn=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((o,i)=>Oi(o,i),tn);function Kn(o,i){return i+=At(o,i).length,Fn(o,i)}function Bi(o){const i=Kn(o,0);return!i||i.cursor+At(o,i.cursor).length!==o.length?null:i.evaluable}function pe(o){var i;const s=Bi(o);return(i=s==null?void 0:s.evaluate())!==null&&i!==void 0?i:null}function Vt(o){if(typeof o=="number")return o;if(typeof o=="string"){const i=pe(o);if(!M(i))return i}return 0}function Q(o){return i=>i.toFixed(Math.max(Math.min(o,20),0))}const Ii=Q(0);function Pe(o){return Ii(o)+"%"}function $n(o){return String(o)}function en(o,i){for(;o.length<i;)o.push(void 0)}function Un(o){const i=[];return en(i,o),rt(i)}function Hn(o){const i=o.indexOf(void 0);return i<0?o:o.slice(0,i)}function ji(o,i){const s=[...Hn(o),i];return s.length>o.length?s.splice(0,s.length-o.length):en(s,o.length),s}function ce({primary:o,secondary:i,forward:s,backward:a}){let p=!1;function u(h){p||(p=!0,h(),p=!1)}o.emitter.on("change",h=>{u(()=>{i.setRawValue(s(o,i),h.options)})}),i.emitter.on("change",h=>{u(()=>{o.setRawValue(a(o,i),h.options)}),u(()=>{i.setRawValue(s(o,i),h.options)})}),u(()=>{i.setRawValue(s(o,i),{forceEmit:!1,last:!0})})}function Kt(o,i){const s=o*(i.altKey?.1:1)*(i.shiftKey?10:1);return i.upKey?+s:i.downKey?-s:0}function ue(o){return{altKey:o.altKey,downKey:o.key==="ArrowDown",shiftKey:o.shiftKey,upKey:o.key==="ArrowUp"}}function nn(o){return{altKey:o.altKey,downKey:o.key==="ArrowLeft",shiftKey:o.shiftKey,upKey:o.key==="ArrowRight"}}function Fi(o){return o==="ArrowUp"||o==="ArrowDown"}function qn(o){return Fi(o)||o==="ArrowLeft"||o==="ArrowRight"}function rn(o,i){var s,a;const p=i.ownerDocument.defaultView,u=i.getBoundingClientRect();return{x:o.pageX-(((s=p&&p.scrollX)!==null&&s!==void 0?s:0)+u.left),y:o.pageY-(((a=p&&p.scrollY)!==null&&a!==void 0?a:0)+u.top)}}class St{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 H,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 s=this.elem_.getBoundingClientRect();return{bounds:{width:s.width,height:s.height},point:i?{x:i.x,y:i.y}:null}}onMouseDown_(i){var s;i.preventDefault(),(s=i.currentTarget)===null||s===void 0||s.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_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseMove_(i){this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onDocumentMouseUp_(i){const s=this.elem_.ownerDocument;s.removeEventListener("mousemove",this.onDocumentMouseMove_),s.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:i.altKey,data:this.computePosition_(rn(i,this.elem_)),sender:this,shiftKey:i.shiftKey})}onTouchStart_(i){i.preventDefault();const s=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:i.altKey,data:this.computePosition_(s?{x:s.clientX-a.left,y:s.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=s}onTouchMove_(i){const s=i.targetTouches.item(0),a=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:i.altKey,data:this.computePosition_(s?{x:s.clientX-a.left,y:s.clientY-a.top}:void 0),sender:this,shiftKey:i.shiftKey}),this.lastTouch_=s}onTouchEnd_(i){var s;const a=(s=i.targetTouches.item(0))!==null&&s!==void 0?s: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 B(o,i,s,a,p){const u=(o-i)/(s-i);return a+u*(p-a)}function $t(o){return String(o.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function ut(o,i,s){return Math.min(Math.max(o,i),s)}const tt=D("txt");class sn{constructor(i,s){this.onChange_=this.onChange_.bind(this),this.props_=s.props,this.props_.emitter.on("change",this.onChange_),this.element=i.createElement("div"),this.element.classList.add(tt(),tt(void 0,"num")),s.arrayPosition&&this.element.classList.add(tt(void 0,s.arrayPosition)),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("input");a.classList.add(tt("i")),a.type="text",s.viewProps.bindDisabled(a),this.element.appendChild(a),this.inputElement=a,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=s.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(tt()),this.inputElement.classList.add(tt("i"));const p=i.createElement("div");p.classList.add(tt("k")),this.element.appendChild(p),this.knobElement=p;const u=i.createElementNS(A,"svg");u.classList.add(tt("g")),this.knobElement.appendChild(u);const h=i.createElementNS(A,"path");h.classList.add(tt("gb")),u.appendChild(h),this.guideBodyElem_=h;const b=i.createElementNS(A,"path");b.classList.add(tt("gh")),u.appendChild(b),this.guideHeadElem_=b;const f=i.createElement("div");f.classList.add(D("tt")()),this.knobElement.appendChild(f),this.tooltipElem_=f,s.value.emitter.on("change",this.onChange_),this.value=s.value,this.refresh()}onDraggingChange_(i){if(i.rawValue===null){this.element.classList.remove(tt(void 0,"drg"));return}this.element.classList.add(tt(void 0,"drg"));const s=i.rawValue/this.props_.get("draggingScale"),a=s+(s>0?-1:s<0?1:0),p=ut(-a,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${a+p},0 L${a},4 L${a+p},8`,`M ${s},-1 L${s},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${s},4`);const u=this.props_.get("formatter");this.tooltipElem_.textContent=u(this.value.rawValue),this.tooltipElem_.style.left=`${s}px`}refresh(){const i=this.props_.get("formatter");this.inputElement.value=i(this.value.rawValue)}onChange_(){this.refresh()}}class Ki{constructor(i,s){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_=s.baseStep,this.parser_=s.parser,this.props=s.props,this.sliderProps_=(a=s.sliderProps)!==null&&a!==void 0?a:null,this.value=s.value,this.viewProps=s.viewProps,this.dragging_=rt(null),this.view=new sn(i,{arrayPosition:s.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 St(this.view.knobElement);p.emitter.on("down",this.onPointerDown_),p.emitter.on("move",this.onPointerMove_),p.emitter.on("up",this.onPointerUp_)}constrainValue_(i){var s,a;const p=(s=this.sliderProps_)===null||s===void 0?void 0:s.get("minValue"),u=(a=this.sliderProps_)===null||a===void 0?void 0:a.get("maxValue");let h=i;return p!==void 0&&(h=Math.max(h,p)),u!==void 0&&(h=Math.min(h,u)),h}onInputChange_(i){const a=i.currentTarget.value,p=this.parser_(a);M(p)||(this.value.rawValue=this.constrainValue_(p)),this.view.refresh()}onInputKeyDown_(i){const s=Kt(this.baseStep_,ue(i));s!==0&&this.value.setRawValue(this.constrainValue_(this.value.rawValue+s),{forceEmit:!1,last:!1})}onInputKeyUp_(i){Kt(this.baseStep_,ue(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 s=i.point.x-i.bounds.width/2;return this.constrainValue_(this.originRawValue_+s*this.props.get("draggingScale"))}onPointerMove_(i){const s=this.computeDraggingValue_(i.data);s!==null&&(this.value.setRawValue(s,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_)}onPointerUp_(i){const s=this.computeDraggingValue_(i.data);s!==null&&(this.value.setRawValue(s,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null)}}function Nt(o,i){o.write(i)}function Gn(o){const i=o?Tt(o,gt):null;return i?i.step:null}function $i(o,i){const s=o&&Tt(o,gt);return s?$t(s.step):Math.max($t(i),2)}function on(o){const i=Gn(o);return i!=null?i:1}function Yn(o,i){var s;const a=o&&Tt(o,gt),p=Math.abs((s=a==null?void 0:a.step)!==null&&s!==void 0?s:i);return p===0?.1:Math.pow(10,Math.floor(Math.log10(p))-1)}function Ee(o){return[o[0],o[1],o[2]]}function de(o){const i=ut(Math.floor(o),0,255).toString(16);return i.length===1?`0${i}`:i}function Ui(o,i="#"){const s=Ee(o.getComponents("rgb")).map(de).join("");return`${i}${s}`}function Xn(o,i="#"){const s=o.getComponents("rgb"),a=[s[0],s[1],s[2],s[3]*255].map(de).join("");return`${i}${a}`}function Wn(o,i){const s=Q(i==="float"?2:0);return`rgb(${Ee(o.getComponents("rgb",i)).map(p=>s(p)).join(", ")})`}function Hi(o){return i=>Wn(i,o)}function qi(o,i){const s=Q(2),a=Q(i==="float"?2:0);return`rgba(${o.getComponents("rgb",i).map((u,h)=>(h===3?s:a)(u)).join(", ")})`}function Gi(o){return i=>qi(i,o)}function Yi(o){const i=[Q(0),Pe,Pe];return`hsl(${Ee(o.getComponents("hsl")).map((a,p)=>i[p](a)).join(", ")})`}function Xi(o){const i=[Q(0),Pe,Pe,Q(2)];return`hsla(${o.getComponents("hsl").map((a,p)=>i[p](a)).join(", ")})`}function an(o,i){const s=Q(i==="float"?2:0),a=["r","g","b"];return`{${Ee(o.getComponents("rgb",i)).map((u,h)=>`${a[h]}: ${s(u)}`).join(", ")}}`}function he(o){return i=>an(i,o)}function Wi(o,i){const s=Q(2),a=Q(i==="float"?2:0),p=["r","g","b","a"];return`{${o.getComponents("rgb",i).map((h,b)=>{const f=b===3?s:a;return`${p[b]}: ${f(h)}`}).join(", ")}}`}function ve(o){return i=>Wi(i,o)}[...["int","float"].reduce((o,i)=>[...o,{format:{alpha:!1,mode:"rgb",notation:"func",type:i},stringifier:Hi(i)},{format:{alpha:!0,mode:"rgb",notation:"func",type:i},stringifier:Gi(i)},{format:{alpha:!1,mode:"rgb",notation:"object",type:i},stringifier:he(i)},{format:{alpha:!0,mode:"rgb",notation:"object",type:i},stringifier:ve(i)}],[])];class Ji{constructor(i){this.components=i.components,this.asm_=i.assembly}constrain(i){const s=this.asm_.toComponents(i).map((a,p)=>{var u,h;return(h=(u=this.components[p])===null||u===void 0?void 0:u.constrain(a))!==null&&h!==void 0?h:a});return this.asm_.fromComponents(s)}}const ke=D("pndtxt");class Jn{constructor(i,s){this.textViews=s.textViews,this.element=i.createElement("div"),this.element.classList.add(ke()),this.textViews.forEach(a=>{const p=i.createElement("div");p.classList.add(ke("a")),p.appendChild(a.element),this.element.appendChild(p)})}}function Qi(o,i,s){return new Ki(o,{arrayPosition:s===0?"fst":s===i.axes.length-1?"lst":"mid",baseStep:i.axes[s].baseStep,parser:i.parser,props:i.axes[s].textProps,value:rt(0,{constraint:i.axes[s].constraint}),viewProps:i.viewProps})}class ln{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.acs_=s.axes.map((a,p)=>Qi(i,s,p)),this.acs_.forEach((a,p)=>{ce({primary:this.value,secondary:a.value,forward:u=>s.assembly.toComponents(u.rawValue)[p],backward:(u,h)=>{const b=s.assembly.toComponents(u.rawValue);return b[p]=h.rawValue,s.assembly.fromComponents(b)}})}),this.view=new Jn(i,{textViews:this.acs_.map(a=>a.view)})}}function Zi(o,i){return"step"in o&&!M(o.step)?new gt(o.step,i):null}function tr(o){return"max"in o&&!M(o.max)||"min"in o&&!M(o.min)?new Ce({max:o.max,min:o.min}):null}const er={monitor:{defaultInterval:200,defaultLineCount:3}},Lt=D("grl");class nr{constructor(i,s){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=i.createElement("div"),this.element.classList.add(Lt()),s.viewProps.bindClassModifiers(this.element),this.formatter_=s.formatter,this.props_=s.props,this.cursor_=s.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);const a=i.createElementNS(A,"svg");a.classList.add(Lt("g")),a.style.height=`calc(var(--bld-us) * ${s.lineCount})`,this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(A,"polyline");this.svgElem_.appendChild(p),this.lineElem_=p;const u=i.createElement("div");u.classList.add(Lt("t"),D("tt")()),this.element.appendChild(u),this.tooltipElem_=u,s.value.emitter.on("change",this.onValueUpdate_),this.value=s.value,this.update_()}get graphElement(){return this.svgElem_}update_(){const i=this.svgElem_.getBoundingClientRect(),s=this.value.rawValue.length-1,a=this.props_.get("minValue"),p=this.props_.get("maxValue"),u=[];this.value.rawValue.forEach((Et,gn)=>{if(Et===void 0)return;const wn=B(gn,0,s,0,i.width),Rt=B(Et,a,p,i.height,0);u.push([wn,Rt].join(","))}),this.lineElem_.setAttributeNS(null,"points",u.join(" "));const h=this.tooltipElem_,b=this.value.rawValue[this.cursor_.rawValue];if(b===void 0){h.classList.remove(Lt("t","a"));return}const f=B(this.cursor_.rawValue,0,s,0,i.width),J=B(b,a,p,i.height,0);h.style.left=`${f}px`,h.style.top=`${J}px`,h.textContent=`${this.formatter_(b)}`,h.classList.contains(Lt("t","a"))||(h.classList.add(Lt("t","a"),Lt("t","in")),G(h),h.classList.remove(Lt("t","in")))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class ir{constructor(i,s){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_=s.props,this.value=s.value,this.viewProps=s.viewProps,this.cursor_=rt(-1),this.view=new nr(i,{cursor:this.cursor_,formatter:s.formatter,lineCount:s.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!Nn(i))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{const a=new St(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 s=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(B(i.offsetX,0,s.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(B(i.data.point.x,0,i.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}class rr{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,s){const a=s.bind(this);return this.controller_.emitter.on(i,()=>{a(new x(this))}),this}}class sr extends x{constructor(i,s,a){super(i),this.cell=s,this.index=a}}class or extends w{constructor(i){super(i),this.cellToApiMap_=new Map,this.emitter_=new H;const s=this.controller_.valueController;s.cellControllers.forEach((a,p)=>{const u=new rr(a);this.cellToApiMap_.set(a,u),a.emitter.on("click",()=>{const h=p%s.size[0],b=Math.floor(p/s.size[0]);this.emitter_.emit("click",{event:new sr(this,u,[h,b])})})})}cell(i,s){const a=this.controller_.valueController,p=a.cellControllers[s*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,s){const a=s.bind(this);return this.emitter_.on(i,p=>{a(p.event)}),this}}class Qn{constructor(i,s){this.size=s.size;const[a,p]=this.size,u=[];for(let h=0;h<p;h++)for(let b=0;b<a;b++){const f=new It(i,{props:X.fromObject(Object.assign({},s.cellConfig(b,h))),viewProps:Mt.create()});u.push(f)}this.cellCs_=u,this.viewProps=Mt.create(),this.viewProps.handleDispose(()=>{this.cellCs_.forEach(h=>{h.viewProps.set("disposed",!0)})}),this.view=new $e(i,{viewProps:this.viewProps,viewName:"btngrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(h=>{this.view.element.appendChild(h.view.element)})}get cellControllers(){return this.cellCs_}}const ar={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=U,s=k(o,{cells:i.required.function,size:i.required.array(i.required.number),view:i.required.constant("buttongrid"),label:i.optional.string});return s?{params:s}:null},controller(o){return new we(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new Qn(o.document,{cellConfig:o.params.cells,size:o.params.size})})},api(o){return!(o.controller instanceof we)||!(o.controller.valueController instanceof Qn)?null:new or(o.controller)}};class lr extends w{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,s){const a=s.bind(this);return this.controller_.valueController.value.emitter.on(i,p=>{a(new T(this,p.rawValue,void 0,p.options.last))}),this}}function pt(o,i,s){return o*(1-s)+i*s}const Zn=20,pr=.001,pn=100;function cr(o,i){let s=.25,a=.5,p=-1;for(let u=0;u<Zn;u++){const[h,b]=o.curve(a);if(a+=s*(h<i?1:-1),p=b,s*=.5,Math.abs(i-h)<pr)break}return p}class wt{constructor(i=0,s=0,a=1,p=1){this.cache_=[],this.comps_=[i,s,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 M(i)||!Array.isArray(i)?!1:typeof i[0]=="number"&&typeof i[1]=="number"&&typeof i[2]=="number"&&typeof i[3]=="number"}static equals(i,s){return i.x1===s.x1&&i.y1===s.y1&&i.x2===s.x2&&i.y2===s.y2}curve(i){const s=pt(0,this.x1,i),a=pt(0,this.y1,i),p=pt(this.x1,this.x2,i),u=pt(this.y1,this.y2,i),h=pt(this.x2,1,i),b=pt(this.y2,1,i),f=pt(s,p,i),J=pt(a,u,i),Et=pt(p,h,i),gn=pt(u,b,i);return[pt(f,Et,i),pt(J,gn,i)]}y(i){if(this.cache_.length===0){const s=[];for(let a=0;a<pn;a++)s.push(cr(this,B(a,0,pn-1,0,1)));this.cache_=s}return this.cache_[Math.round(B(ut(i,0,1),0,1,0,pn-1))]}toObject(){return[this.comps_[0],this.comps_[1],this.comps_[2],this.comps_[3]]}}const ti={toComponents:o=>o.toObject(),fromComponents:o=>new wt(...o)};function xt(o){const i=Q(2);return`cubic-bezier(${o.toObject().map(a=>i(a)).join(", ")})`}const cn=[0,.5,.5,1];function ur(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 wt(...cn);const s=[i[1],i[2],i[3],i[4]].reduce((a,p)=>{if(!a)return null;const u=Number(p);return isNaN(u)?null:[...a,u]},[]);return new wt(...s!=null?s:cn)}const K=D("cbz");class dr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(K()),s.viewProps.bindClassModifiers(this.element),s.foldable.bindExpandedClass(this.element,K(void 0,"expanded")),Y(s.foldable,"completed",Z(this.element,K(void 0,"cpl")));const a=i.createElement("div");a.classList.add(K("h")),this.element.appendChild(a);const p=i.createElement("button");p.classList.add(K("b")),s.viewProps.bindDisabled(p);const u=i.createElementNS(A,"svg");u.innerHTML='<path d="M2 13C8 13 8 3 14 3"/>',p.appendChild(u),a.appendChild(p),this.buttonElement=p;const h=i.createElement("div");if(h.classList.add(K("t")),a.appendChild(h),this.textElement=h,s.pickerLayout==="inline"){const b=i.createElement("div");b.classList.add(K("p")),this.element.appendChild(b),this.pickerElement=b}else this.pickerElement=null}}const Ut=D("cbzp");class ei{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Ut()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("div");a.classList.add(Ut("g")),this.element.appendChild(a),this.graphElement=a;const p=i.createElement("div");p.classList.add(Ut("t")),this.element.appendChild(p),this.textElement=p}}function Ve(o,i){const s=new MutationObserver(p=>{for(const u of p)u.type==="childList"&&u.addedNodes.forEach(h=>{!h.contains(h)||(i(),s.disconnect())})}),a=o.ownerDocument;s.observe(a.body,{attributes:!0,childList:!0,subtree:!0})}const Ct=D("cbzg");function hr(o,i){return s=>i(o(s))}class vr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Ct()),s.viewProps.bindClassModifiers(this.element),s.viewProps.bindTabIndex(this.element);const a=i.createElement("div");a.classList.add(Ct("p")),this.element.appendChild(a),this.previewElement=a;const p=i.createElementNS(A,"svg");p.classList.add(Ct("g")),this.element.appendChild(p),this.svgElem_=p;const u=i.createElementNS(A,"path");u.classList.add(Ct("u")),this.svgElem_.appendChild(u),this.guideElem_=u;const h=i.createElementNS(A,"polyline");h.classList.add(Ct("l")),this.svgElem_.appendChild(h),this.lineElem_=h,this.handleElems_=[i.createElement("div"),i.createElement("div")],this.handleElems_.forEach(b=>{b.classList.add(Ct("h")),this.element.appendChild(b)}),this.vectorElems_=[i.createElementNS(A,"line"),i.createElementNS(A,"line")],this.vectorElems_.forEach(b=>{b.classList.add(Ct("v")),this.svgElem_.appendChild(b)}),this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_.bind(this)),this.sel_=s.selection,this.handleElems_.forEach((b,f)=>{I(this.sel_,hr(J=>J===f,Z(b,Ct("h","sel"))))}),Ve(this.element,()=>{this.refresh()})}getVertMargin_(i){return i*.25}valueToPosition(i,s){const a=this.element.getBoundingClientRect(),p=a.width,u=a.height,h=this.getVertMargin_(u);return{x:B(i,0,1,0,p),y:B(s,0,1,u-h,h)}}positionToValue(i,s){const a=this.element.getBoundingClientRect(),p=a.width,u=a.height,h=this.getVertMargin_(u);return{x:ut(B(i,0,p,0,1),0,1),y:B(s,u-h,h,0,1)}}refresh(){this.guideElem_.setAttributeNS(null,"d",[0,1].map(u=>{const h=this.valueToPosition(0,u),b=this.valueToPosition(1,u);return[`M ${h.x},${h.y}`,`L ${b.x},${b.y}`].join(" ")}).join(" "));const i=this.value_.rawValue,s=[];let a=0;for(;;){const u=this.valueToPosition(...i.curve(a));if(s.push([u.x,u.y].join(",")),a>=1)break;a=Math.min(a+.05,1)}this.lineElem_.setAttributeNS(null,"points",s.join(" "));const p=i.toObject();[0,1].forEach(u=>{const h=this.valueToPosition(u,u),b=this.valueToPosition(p[u*2],p[u*2+1]),f=this.vectorElems_[u];f.setAttributeNS(null,"x1",String(h.x)),f.setAttributeNS(null,"y1",String(h.y)),f.setAttributeNS(null,"x2",String(b.x)),f.setAttributeNS(null,"y2",String(b.y));const J=this.handleElems_[u];J.style.left=`${b.x}px`,J.style.top=`${b.y}px`})}onValueChange_(){this.refresh()}}const ni=24,Ht=400,et=1e3,vt=D("cbzprv");class yt{constructor(i,s){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(vt()),s.viewProps.bindClassModifiers(this.element);const a=i.createElementNS(A,"svg");a.classList.add(vt("g")),this.element.appendChild(a),this.svgElem_=a;const p=i.createElementNS(A,"path");p.classList.add(vt("t")),this.svgElem_.appendChild(p),this.ticksElem_=p;const u=i.createElement("div");u.classList.add(vt("m")),this.element.appendChild(u),this.markerElem_=u,this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_),s.viewProps.handleDispose(this.onDispose_),Ve(this.element,()=>{this.refresh()})}play(){this.stop(),this.updateMarker_(0),this.markerElem_.classList.add(vt("m","a")),this.startTime_=new Date().getTime()+Ht,this.stopped_=!1,requestAnimationFrame(this.onTimer_)}stop(){this.stopped_=!0,this.markerElem_.classList.remove(vt("m","a"))}onDispose_(){this.stop()}updateMarker_(i){const s=this.value_.rawValue.y(ut(i,0,1));this.markerElem_.style.left=`${s*100}%`}refresh(){const i=this.svgElem_.getBoundingClientRect(),s=i.width,a=i.height,p=[],u=this.value_.rawValue;for(let h=0;h<ni;h++){const b=B(h,0,ni-1,0,1),f=B(u.y(b),0,1,0,s);p.push(`M ${f},0 v${a}`)}this.ticksElem_.setAttributeNS(null,"d",p.join(" "))}onTimer_(){if(this.startTime_===null)return;const i=new Date().getTime()-this.startTime_,s=i/et;this.updateMarker_(s),i>et+Ht&&this.stop(),this.stopped_||requestAnimationFrame(this.onTimer_)}onValueChange_(){this.refresh(),this.play()}}function un(o,i,s,a){const p=s-o,u=a-i;return Math.sqrt(p*p+u*u)}function ii(o,i,s,a){const p=un(o,i,s,a),u=Math.atan2(a-i,s-o),h=Math.round(u/(Math.PI/4))*Math.PI/4;return{x:o+Math.cos(h)*p,y:i+Math.sin(h)*p}}class dn{constructor(i,s){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_=s.baseStep,this.value=s.value,this.sel_=rt(0),this.viewProps=s.viewProps,this.view=new vr(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 yt(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 St(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,s,a){const p=this.sel_.rawValue,u=this.value.rawValue.toObject(),h=this.view.positionToValue(i.x,i.y),b=s?ii(p,p,h.x,h.y):h;u[p*2]=b.x,u[p*2+1]=b.y,this.value.setRawValue(new wt(...u),a)}onPointerDown_(i){const s=i.data;if(!s.point)return;const a=this.value.rawValue,p=this.view.valueToPosition(a.x1,a.y1),u=un(s.point.x,s.point.y,p.x,p.y),h=this.view.valueToPosition(a.x2,a.y2),b=un(s.point.x,s.point.y,h.x,h.y);this.sel_.rawValue=u<=b?0:1,this.updateValue_(s.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerMove_(i){const s=i.data;!s.point||this.updateValue_(s.point,i.shiftKey,{forceEmit:!1,last:!1})}onPointerUp_(i){const s=i.data;!s.point||this.updateValue_(s.point,i.shiftKey,{forceEmit:!0,last:!0})}onKeyDown_(i){qn(i.key)&&i.preventDefault();const s=this.sel_.rawValue,a=this.value.rawValue.toObject();a[s*2]+=Kt(this.baseStep_,nn(i)),a[s*2+1]+=Kt(this.baseStep_,ue(i)),this.value.setRawValue(new wt(...a),{forceEmit:!1,last:!1})}onKeyUp_(i){qn(i.key)&&i.preventDefault();const s=Kt(this.baseStep_,nn(i)),a=Kt(this.baseStep_,ue(i));s===0&&a===0||this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class Dt{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.view=new ei(i,{viewProps:this.viewProps}),this.gc_=new dn(i,{baseStep:s.axis.baseStep,value:this.value,viewProps:this.viewProps}),this.view.graphElement.appendChild(this.gc_.view.element);const a=Object.assign(Object.assign({},s.axis),{constraint:new Ce({max:1,min:0})}),p=Object.assign(Object.assign({},s.axis),{constraint:void 0});this.tc_=new ln(i,{assembly:ti,axes:[a,p,a,p],parser:pe,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 j{constructor(i,s){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=s.value,this.viewProps=s.viewProps,this.foldable_=xi(s.expanded),this.view=new dr(i,{foldable:this.foldable_,pickerLayout:s.pickerLayout,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("blur",this.onButtonBlur_),this.view.buttonElement.addEventListener("click",this.onButtonClick_),this.tc_=new Ge(i,{parser:ur,props:X.fromObject({formatter:xt}),value:this.value,viewProps:this.viewProps}),this.view.textElement.appendChild(this.tc_.view.element),this.popC_=s.pickerLayout==="popup"?new Pi(i,{viewProps:this.viewProps}):null;const a=new Dt(i,{axis:s.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),I(this.popC_.shows,p=>{p&&a.refresh()}),ce({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:p=>p.rawValue,backward:(p,u)=>u.rawValue})):this.view.pickerElement&&(this.view.pickerElement.appendChild(this.pickerC_.view.element),xe(this.foldable_,this.view.pickerElement))}onButtonBlur_(i){if(!this.popC_)return;const s=i.relatedTarget;(!s||!this.popC_.view.element.contains(s))&&(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 s=this.popC_.view.element,a=zn(i);a&&s.contains(a)||a&&a===this.view.buttonElement&&!Nn(s.ownerDocument)||(this.popC_.shows.rawValue=!1)}onPopupChildKeydown_(i){!this.popC_||i.key==="Escape"&&(this.popC_.shows.rawValue=!1)}}function ri(){return new Ji({assembly:ti,components:[0,1,2,3].map(o=>o%2===0?new Ce({min:0,max:1}):void 0)})}const W={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=U,s=k(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 s?{params:s}:null},controller(o){var i,s;const a=new wt(...o.params.value),p=rt(a,{constraint:ri(),equals:wt.equals}),u=new j(o.document,{axis:{baseStep:.1,textProps:X.fromObject({draggingScale:.01,formatter:Q(2)})},expanded:(i=o.params.expanded)!==null&&i!==void 0?i:!1,pickerLayout:(s=o.params.picker)!==null&&s!==void 0?s:"popup",value:p,viewProps:o.viewProps});return new ne(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:u})},api(o){return!(o.controller instanceof ne)||!(o.controller.valueController instanceof j)?null:new lr(o.controller)}};class si extends w{begin(){this.controller_.valueController.begin()}end(){this.controller_.valueController.end()}}const at=20;class mr{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 s=this.timestamps_[0];return 1e3*(this.frameCount_-s.frameCount)/(i-s.time)}compactTimestamps_(){if(this.timestamps_.length<=at)return;const i=this.timestamps_.length-at;this.timestamps_.splice(0,i);const s=this.timestamps_[0].frameCount;this.timestamps_.forEach(a=>{a.frameCount-=s}),this.frameCount_-=s}end(i){if(this.start_===null)return;const s=i.getTime();this.duration_=s-this.start_,this.start_=null,this.fps_=this.calculateFps_(s),this.timestamps_.push({frameCount:this.frameCount_,time:s}),++this.frameCount_,this.compactTimestamps_()}}const Pt=D("fps");class hn{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(Pt()),s.viewProps.bindClassModifiers(this.element),this.graphElement=i.createElement("div"),this.graphElement.classList.add(Pt("g")),this.element.appendChild(this.graphElement);const a=i.createElement("div");a.classList.add(Pt("l")),this.element.appendChild(a);const p=i.createElement("span");p.classList.add(Pt("v")),p.textContent="--",a.appendChild(p),this.valueElement=p;const u=i.createElement("span");u.classList.add(Pt("u")),u.textContent="FPS",a.appendChild(u)}}class oi{constructor(i,s){this.stopwatch_=new mr,this.onTick_=this.onTick_.bind(this),this.ticker_=s.ticker,this.ticker_.emitter.on("tick",this.onTick_),this.value_=s.value,this.viewProps=s.viewProps,this.view=new hn(i,{viewProps:this.viewProps}),this.graphC_=new ir(i,{formatter:Q(0),lineCount:s.lineCount,props:X.fromObject({maxValue:s.maxValue,minValue:s.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 s=this.value_.rawValue;this.value_.rawValue=ji(s,i),this.view.valueElement.textContent=i.toFixed(0)}}}function br(o,i){return i===0?new ie:new yi(o,i!=null?i:er.monitor.defaultInterval)}const vn={id:"fpsgraph",type:"blade",accept(o){const i=U,s=k(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 s?{params:s}:null},controller(o){var i,s,a,p;const u=(i=o.params.interval)!==null&&i!==void 0?i:500;return new we(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new oi(o.document,{lineCount:(s=o.params.lineCount)!==null&&s!==void 0?s:2,maxValue:(a=o.params.max)!==null&&a!==void 0?a:90,minValue:(p=o.params.min)!==null&&p!==void 0?p:0,ticker:br(o.document,u),value:Un(80),viewProps:o.viewProps})})},api(o){return!(o.controller instanceof we)||!(o.controller.valueController instanceof oi)?null:new si(o.controller)}};class ct{constructor(i,s){this.min=i,this.max=s}static isObject(i){if(typeof i!="object"||i===null)return!1;const s=i.min,a=i.max;return!(typeof s!="number"||typeof a!="number")}static equals(i,s){return i.min===s.min&&i.max===s.max}get length(){return this.max-this.min}toObject(){return{min:this.min,max:this.max}}}const Se={fromComponents:o=>new ct(o[0],o[1]),toComponents:o=>[o.min,o.max]};class qt{constructor(i){this.edge=i}constrain(i){var s,a,p,u,h,b,f,J;if(i.min<=i.max)return new ct((a=(s=this.edge)===null||s===void 0?void 0:s.constrain(i.min))!==null&&a!==void 0?a:i.min,(u=(p=this.edge)===null||p===void 0?void 0:p.constrain(i.max))!==null&&u!==void 0?u:i.max);const Et=(i.min+i.max)/2;return new ct((b=(h=this.edge)===null||h===void 0?void 0:h.constrain(Et))!==null&&b!==void 0?b:Et,(J=(f=this.edge)===null||f===void 0?void 0:f.constrain(Et))!==null&&J!==void 0?J:Et)}}const Gt=D("rsltxt");class ai{constructor(i,s){this.sliderView_=s.sliderView,this.textView_=s.textView,this.element=i.createElement("div"),this.element.classList.add(Gt());const a=i.createElement("div");a.classList.add(Gt("s")),a.appendChild(this.sliderView_.element),this.element.appendChild(a);const p=i.createElement("div");p.classList.add(Gt("t")),p.appendChild(this.textView_.element),this.element.appendChild(p)}}const st=D("rsl");class li{constructor(i,s){this.maxValue_=s.maxValue,this.minValue_=s.minValue,this.element=i.createElement("div"),this.element.classList.add(st()),s.viewProps.bindClassModifiers(this.element),this.value_=s.value,this.value_.emitter.on("change",this.onValueChange_.bind(this));const a=i.createElement("div");a.classList.add(st("t")),this.element.appendChild(a),this.trackElement=a;const p=i.createElement("div");p.classList.add(st("b")),a.appendChild(p),this.barElement=p;const u=["min","max"].map(h=>{const b=i.createElement("div");return b.classList.add(st("k"),st("k",h)),a.appendChild(b),b});this.knobElements=[u[0],u[1]],this.update()}valueToX_(i){return ut(B(i,this.minValue_,this.maxValue_,0,1),0,1)*100}update(){const i=this.value_.rawValue;i.length===0?this.element.classList.add(st(void 0,"zero")):this.element.classList.remove(st(void 0,"zero"));const s=[this.valueToX_(i.min),this.valueToX_(i.max)];this.barElement.style.left=`${s[0]}%`,this.barElement.style.right=`${100-s[1]}%`,this.knobElements.forEach((a,p)=>{a.style.left=`${s[p]}%`})}onValueChange_(){this.update()}}class mn{constructor(i,s){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_=s.maxValue,this.minValue_=s.minValue,this.viewProps=s.viewProps,this.value=s.value,this.view=new li(i,{maxValue:s.maxValue,minValue:s.minValue,value:this.value,viewProps:s.viewProps});const a=new St(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 s=(i.point.x+this.ofs_())/i.bounds.width;return B(s,0,1,this.minValue_,this.maxValue_)}onPointerDown_(i){if(!i.data.point)return;const s=i.data.point.x/i.data.bounds.width,a=this.value.rawValue,p=B(a.min,this.minValue_,this.maxValue_,0,1),u=B(a.max,this.minValue_,this.maxValue_,0,1);Math.abs(u-s)<=.025?this.grabbing_="max":Math.abs(p-s)<=.025?this.grabbing_="min":s>=p&&s<=u?(this.grabbing_="length",this.grabOffset_=B(s-p,0,1,0,this.maxValue_-this.minValue_)):s<p?(this.grabbing_="min",this.onPointerMove_(i)):s>u&&(this.grabbing_="max",this.onPointerMove_(i))}applyPointToValue_(i,s){const a=this.valueFromData_(i);if(a!==null){if(this.grabbing_==="min")this.value.setRawValue(new ct(a,this.value.rawValue.max),s);else if(this.grabbing_==="max")this.value.setRawValue(new ct(this.value.rawValue.min,a),s);else if(this.grabbing_==="length"){const p=this.value.rawValue.length;let u=a-this.grabOffset_,h=u+p;u<this.minValue_?(u=this.minValue_,h=this.minValue_+p):h>this.maxValue_&&(u=this.maxValue_-p,h=this.maxValue_),this.value.setRawValue(new ct(u,h),s)}}}onPointerMove_(i){this.applyPointToValue_(i.data,{forceEmit:!1,last:!1})}onPointerUp_(i){this.applyPointToValue_(i.data,{forceEmit:!0,last:!0}),this.grabbing_=null}}class bn{constructor(i,s){this.value=s.value,this.viewProps=s.viewProps,this.sc_=new mn(i,s);const a={baseStep:s.baseStep,constraint:s.constraint,textProps:X.fromObject({draggingScale:s.draggingScale,formatter:s.formatter})};this.tc_=new ln(i,{assembly:Se,axes:[a,a],parser:s.parser,value:this.value,viewProps:s.viewProps}),this.view=new ai(i,{sliderView:this.sc_.view,textView:this.tc_.view})}get textController(){return this.tc_}}function fr(o){return ct.isObject(o)?new ct(o.min,o.max):new ct(0,0)}function Le(o,i){o.writeProperty("max",i.max),o.writeProperty("min",i.min)}function Yt(o){const i=[],s=tr(o);s&&i.push(s);const a=Zi(o);return a&&i.push(a),new qt(new Ue(i))}const Xt={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(!ct.isObject(o))return null;const s=U,a=k(i,{format:s.optional.function,max:s.optional.number,min:s.optional.number,step:s.optional.number});return a?{initialValue:new ct(o.min,o.max),params:a}:null},binding:{reader:o=>fr,constraint:o=>Yt(o.params),equals:ct.equals,writer:o=>Le},controller(o){var i;const s=o.value,a=o.constraint;if(!(a instanceof qt))throw F.shouldNeverHappen();const p=(s.rawValue.min+s.rawValue.max)/2,u=(i=o.params.format)!==null&&i!==void 0?i:Q($i(a.edge,p)),h=a.edge&&Tt(a.edge,Ce);if((h==null?void 0:h.minValue)!==void 0&&(h==null?void 0:h.maxValue)!==void 0)return new bn(o.document,{baseStep:on(a.edge),constraint:a.edge,draggingScale:Yn(h,p),formatter:u,maxValue:h.maxValue,minValue:h.minValue,parser:pe,value:s,viewProps:o.viewProps});const b={baseStep:on(a.edge),constraint:a.edge,textProps:X.fromObject({draggingScale:p,formatter:u})};return new ln(o.document,{assembly:Se,axes:[b,b],parser:pe,value:s,viewProps:o.viewProps})}};class Me{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 _r extends T{constructor(i,s,a,p,u){super(i,p,u),this.cell=s,this.index=a}}class gr extends w{constructor(i){super(i),this.cellToApiMap_=new Map,this.controller_.valueController.cellControllers.forEach(a=>{const p=new Me(a);this.cellToApiMap_.set(a,p)})}get value(){return this.controller_.value}cell(i,s){const a=this.controller_.valueController,p=a.cellControllers[s*a.size[0]+i];return this.cellToApiMap_.get(p)}on(i,s){const a=s.bind(this);this.controller_.value.emitter.on(i,p=>{const u=this.controller_.valueController,h=u.findCellByValue(p.rawValue);if(!h)return;const b=this.cellToApiMap_.get(h);if(!b)return;const f=u.cellControllers.indexOf(h);a(new _r(this,b,[f%u.size[0],Math.floor(f/u.size[0])],p.rawValue,void 0))})}}const me=D("rad");class wr{constructor(i,s){this.element=i.createElement("div"),this.element.classList.add(me()),s.viewProps.bindClassModifiers(this.element);const a=i.createElement("label");a.classList.add(me("l")),this.element.appendChild(a);const p=i.createElement("input");p.classList.add(me("i")),p.name=s.name,p.type="radio",s.viewProps.bindDisabled(p),a.appendChild(p),this.inputElement=p;const u=i.createElement("div");u.classList.add(me("b")),a.appendChild(u);const h=i.createElement("div");h.classList.add(me("t")),u.appendChild(h),Y(s.props,"title",b=>{h.textContent=b})}}class zt{constructor(i,s){this.props=s.props,this.viewProps=s.viewProps,this.view=new wr(i,{name:s.name,props:this.props,viewProps:this.viewProps})}}class fn{constructor(i,s){this.cellCs_=[],this.cellValues_=[],this.onCellInputChange_=this.onCellInputChange_.bind(this),this.size=s.size;const[a,p]=this.size;for(let u=0;u<p;u++)for(let h=0;h<a;h++){const b=new zt(i,{name:s.groupName,props:X.fromObject(Object.assign({},s.cellConfig(h,u))),viewProps:Mt.create()});this.cellCs_.push(b),this.cellValues_.push(s.cellConfig(h,u).value)}this.value=s.value,I(this.value,u=>{const h=this.findCellByValue(u);!h||(h.view.inputElement.checked=!0)}),this.viewProps=Mt.create(),this.view=new $e(i,{viewProps:this.viewProps,viewName:"radgrid"}),this.view.element.style.gridTemplateColumns=`repeat(${a}, 1fr)`,this.cellCs_.forEach(u=>{u.view.inputElement.addEventListener("change",this.onCellInputChange_),this.view.element.appendChild(u.view.element)})}get cellControllers(){return this.cellCs_}findCellByValue(i){const s=this.cellValues_.findIndex(a=>a===i);return s<0?null:this.cellCs_[s]}onCellInputChange_(i){const s=i.currentTarget,a=this.cellCs_.findIndex(p=>p.view.inputElement===s);a<0||(this.value.rawValue=this.cellValues_[a])}}const xr=function(){return{id:"radiogrid",type:"blade",accept(o){const i=U,s=k(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 s?{params:s}:null},controller(o){return new ne(o.document,{blade:o.blade,props:X.fromObject({label:o.params.label}),valueController:new fn(o.document,{groupName:o.params.groupName,cellConfig:o.params.cells,size:o.params.size,value:rt(o.params.value)})})},api(o){return!(o.controller instanceof ne)||!(o.controller.valueController instanceof fn)?null:new gr(o.controller)}}}();function _n(o){return{id:"input-radiogrid",type:"input",accept(i,s){if(!o.isType(i))return null;const a=U,p=k(s,{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 fn(i.document,{cellConfig:i.params.cells,groupName:i.params.groupName,size:i.params.size,value:i.value})}}const Cr=_n({isType:o=>typeof o=="number",binding:{reader:o=>Vt,writer:o=>Nt}}),pi=_n({isType:o=>typeof o=="string",binding:{reader:o=>$n,writer:o=>Nt}}),yr=_n({isType:o=>typeof o=="boolean",binding:{reader:o=>Ei,writer:o=>Nt}}),Pr=[ar,W,vn,Xt,xr,yr,Cr,pi];C.CubicBezier=wt,C.plugins=Pr,Object.defineProperty(C,"__esModule",{value:!0})})})(Sn,Sn.exports);const Hs=Us(Sn.exports),qs=Os({__proto__:null,default:Hs},[Sn.exports]);let ge,Ln;const Gs=()=>{ge=new mi.exports.Pane({container:document.getElementById("tres-container")||void 0}),ge.registerPlugin(qs),Ln=ge.addBlade({view:"fpsgraph",label:"fpsgraph"});function m(){ge&&ge.dispose()}return L.onMounted(()=>{kn(()=>{},()=>{Ln.begin()},()=>{Ln.end()})}),L.onUnmounted(()=>{m()}),{pane:ge,fpsGraph:Ln,disposeTweakPane:m}};let $,Xr;function Wr(m,_){const{width:C,height:w}=jr.useWindowSize(),{logMessage:x}=di(),T=L.computed(()=>C.value/w.value),{scene:N}=Be(),{activeCamera:M}=En(),{setState:z}=vi();z("scene",N),z("camera",M);function F(){$&&($.shadowMap.enabled=!0,$.shadowMap.type=nt.PCFSoftShadowMap)}function H(){$&&($.setSize(C.value,w.value),$.setPixelRatio(Math.min(window.devicePixelRatio,2)))}function S(){$&&($.dispose(),$=null),x("disposeRenderer",$),Xr()}L.watch(T,H);function D(){if(x("Render init",{renderer:$,canvas:m,scene:N}),!$&&m.value&&N){const E={canvas:m.value,..._};_!=null&&_.context&&(E.context=_.context),$=new nt.WebGLRenderer(E),_!=null&&_.shadows&&F(),$.physicallyCorrectLights=(_==null?void 0:_.physicallyCorrectLights)||!1,_!=null&&_.outputEncoding&&($.outputEncoding=_.outputEncoding),_!=null&&_.toneMapping&&($.toneMapping=_.toneMapping,$.toneMappingExposure=1),H(),$.render(N,M.value),z("renderer",$),Xr=kn(()=>{N&&$&&$.render(N,M.value)}).disposeLoop}z("loop",kn)}function bt(E){$&&$.setClearColor(Fs(E))}return D(),{renderer:$,setClearColor:bt,updateRenderer:H,disposeRenderer:S}}const Jr=L.defineComponent({__name:"TresCanvas",props:{camera:null,ortographic:{type:Boolean},gl:null,shadows:{type:Boolean,default:!1},physicallyCorrectLights:{type:Boolean,default:!1},outputEncoding:{default:nt.sRGBEncoding},alpha:{type:Boolean,default:!1},background:null,async:{type:Boolean,default:!1}},setup(m){const _=m;let C,w=()=>{};const x=L.ref(),T=L.ref(!0),{scene:N,clearScene:M}=Be(),z=L.useSlots(),F=L.useAttrs(),{createCamera:H}=En();let S;const D=vi();L.provide("UseTresState",D.state);const bt=z.default?z==null?void 0:z.default().some(I=>I.type.name==="PerspectiveCamera"||I.type.name==="OrtographicCamera"):!1;if(N&&!bt)if(_.camera){const{position:I,...Y}=_.camera;if(S=H(_.ortographic===!0?fe.Orthographic:fe.Perspective,Y||{}),I){const P=$r(I);S.position.set(P[0],P[1],P[2])}N.add(S)}else S=H(_.ortographic===!0?fe.Orthographic:fe.Perspective,{}),S.position.set(5,5,5),N.add(S);L.watch(_,()=>{C&&(w(),M(),E())});function E(){const I=Wr(x,{antialias:!0,physicallyCorrectLights:_.physicallyCorrectLights,shadows:_.shadows,context:_.gl||null,alpha:_.alpha});C=I.renderer,w=I.disposeRenderer,_.background&&I.setClearColor(_.background)}return L.onMounted(()=>{E()}),L.onBeforeUnmount(()=>{M(),w()}),(I,Y)=>{var P,Z,y,it;return L.openBlock(),L.createElementBlock("div",{id:"tres-container",style:L.normalizeStyle({position:"relative",top:0,left:0,right:0,bottom:0,overflow:"hidden",width:((Z=(P=L.unref(F))==null?void 0:P.style)==null?void 0:Z.width)||"100%",height:"100%"})},[L.createElementVNode("canvas",{ref_key:"canvasRef",ref:x,style:L.normalizeStyle({width:((it=(y=L.unref(F))==null?void 0:y.style)==null?void 0:it.width)||"100%",height:"100%",overflow:"hidden"})},null,4),m.async?(L.openBlock(),L.createBlock(L.Suspense,{key:0},{default:L.withCtx(()=>[T.value?L.renderSlot(I.$slots,"default",{key:0}):L.createCommentVNode("",!0)]),_:3})):(L.openBlock(),L.createElementBlock(L.Fragment,{key:1},[T.value?L.renderSlot(I.$slots,"default",{key:0}):L.createCommentVNode("",!0)],64))],4)}}}),Ys=Object.freeze(Object.defineProperty({__proto__:null,default:Jr},Symbol.toStringTag,{value:"Module"})),Xs=Symbol("UseTresState"),Ws={install(m){m.component("TresCanvas",Jr);const{createComponentInstances:_}=Hr();_().forEach(([w,x])=>{m.component(w,x)})}};q.CameraType=fe,q.TresCanvas=Ys,q.UseTresStateSymbol=Xs,q.default=Ws,q.useCamera=En,q.useCatalog=Fr,q.useInstanceCreator=Hr,q.useLoadingManager=Gr,q.useLoop=kn,q.useRenderer=Wr,q.useScene=Be,q.useTexture=$s,q.useTres=vi,q.useTweakPane=Gs,Object.defineProperties(q,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});