import{A as c4,B as EJ,C as l4,D as yZ,E as hZ,F as _Z,G as I4,H as S4,I as _4,J as Zz,K as s4,L as T4,M as Kz,N as Hz,a as gH,b as iG,i as r6,j as Z7,k as P4,l as hJ,m as zz,n as nQ,o as CJ,p as d4,q as g4,r as K7,s as a6,t as bZ,u as bJ,v as Jz,w as U7,x as CZ,y as p4,z as EZ}from"./chunk-022tjzda.js";var B4=iG((RZ,N4)=>{/*! Tweakpane 3.1.10 (c) 2016 cocopon, licensed under the MIT license. */(function(Q,J){typeof RZ==="object"&&typeof N4<"u"?J(RZ):typeof define==="function"&&define.amd?define(["exports"],J):(Q=typeof globalThis<"u"?globalThis:Q||self,J(Q.Tweakpane={}))})(RZ,function(Q){class J{constructor(Z){let[K,W]=Z.split("-"),Y=K.split(".");this.major=parseInt(Y[0],10),this.minor=parseInt(Y[1],10),this.patch=parseInt(Y[2],10),this.prerelease=W!==null&&W!==void 0?W:null}toString(){let Z=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[Z,this.prerelease].join("-"):Z}}class z{constructor(Z){this.controller_=Z}get element(){return this.controller_.view.element}get disabled(){return this.controller_.viewProps.get("disabled")}set disabled(Z){this.controller_.viewProps.set("disabled",Z)}get hidden(){return this.controller_.viewProps.get("hidden")}set hidden(Z){this.controller_.viewProps.set("hidden",Z)}dispose(){this.controller_.viewProps.set("disposed",!0)}}class G{constructor(Z){this.target=Z}}class X extends G{constructor(Z,K,W,Y){super(Z);this.value=K,this.presetKey=W,this.last=Y!==null&&Y!==void 0?Y:!0}}class U extends G{constructor(Z,K,W){super(Z);this.value=K,this.presetKey=W}}class H extends G{constructor(Z,K){super(Z);this.expanded=K}}class q extends G{constructor(Z,K){super(Z);this.index=K}}function F(Z){return Z}function D(Z){return Z===null||Z===void 0}function A(Z,K){if(Z.length!==K.length)return!1;for(let W=0;W"View has been already disposed",invalidparams:(Z)=>`Invalid parameters for '${Z.name}'`,nomatchingcontroller:(Z)=>`No matching controller for '${Z.key}'`,nomatchingview:(Z)=>`No matching view for '${JSON.stringify(Z.params)}'`,notbindable:()=>"Value is not bindable",propertynotfound:(Z)=>`Property '${Z.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class B{static alreadyDisposed(){return new B({type:"alreadydisposed"})}static notBindable(){return new B({type:"notbindable"})}static propertyNotFound(Z){return new B({type:"propertynotfound",context:{name:Z}})}static shouldNeverHappen(){return new B({type:"shouldneverhappen"})}constructor(Z){var K;this.message=(K=L[Z.type](F(Z.context)))!==null&&K!==void 0?K:"Unexpected error",this.name=this.constructor.name,this.stack=Error(this.message).stack,this.type=Z.type}}class w{constructor(Z,K,W){this.obj_=Z,this.key_=K,this.presetKey_=W!==null&&W!==void 0?W:K}static isBindable(Z){if(Z===null)return!1;if(typeof Z!=="object"&&typeof Z!=="function")return!1;return!0}get key(){return this.key_}get presetKey(){return this.presetKey_}read(){return this.obj_[this.key_]}write(Z){this.obj_[this.key_]=Z}writeProperty(Z,K){let W=this.read();if(!w.isBindable(W))throw B.notBindable();if(!(Z in W))throw B.propertyNotFound(Z);W[Z]=K}}class R extends z{get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}get title(){var Z;return(Z=this.controller_.valueController.props.get("title"))!==null&&Z!==void 0?Z:""}set title(Z){this.controller_.valueController.props.set("title",Z)}on(Z,K){let W=K.bind(this);return this.controller_.valueController.emitter.on(Z,()=>{W(new G(this))}),this}}class j{constructor(){this.observers_={}}on(Z,K){let W=this.observers_[Z];if(!W)W=this.observers_[Z]=[];return W.push({handler:K}),this}off(Z,K){let W=this.observers_[Z];if(W)this.observers_[Z]=W.filter((Y)=>{return Y.handler!==K});return this}emit(Z,K){let W=this.observers_[Z];if(!W)return;W.forEach((Y)=>{Y.handler(K)})}}let g="tp";function I(Z){return(W,Y)=>{return[g,"-",Z,"v",W?`_${W}`:"",Y?`-${Y}`:""].join("")}}function C(Z,K){return(W)=>K(Z(W))}function k(Z){return Z.rawValue}function _(Z,K){Z.emitter.on("change",C(k,K)),K(Z.rawValue)}function h(Z,K,W){_(Z.value(K),W)}function T(Z,K,W){if(W)Z.classList.add(K);else Z.classList.remove(K)}function y(Z,K){return(W)=>{T(Z,K,W)}}function v(Z,K){_(Z,(W)=>{K.textContent=W!==null&&W!==void 0?W:""})}let f=I("btn");class Q0{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(f()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("button");W.classList.add(f("b")),K.viewProps.bindDisabled(W),this.element.appendChild(W),this.buttonElement=W;let Y=Z.createElement("div");Y.classList.add(f("t")),v(K.props.value("title"),Y),this.buttonElement.appendChild(Y)}}class P{constructor(Z,K){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=K.props,this.viewProps=K.viewProps,this.view=new Q0(Z,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class c{constructor(Z,K){var W;this.constraint_=K===null||K===void 0?void 0:K.constraint,this.equals_=(W=K===null||K===void 0?void 0:K.equals)!==null&&W!==void 0?W:(Y,N)=>Y===N,this.emitter=new j,this.rawValue_=Z}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(Z){this.setRawValue(Z,{forceEmit:!1,last:!0})}setRawValue(Z,K){let W=K!==null&&K!==void 0?K:{forceEmit:!1,last:!0},Y=this.constraint_?this.constraint_.constrain(Z):Z,N=this.rawValue_;if(!!this.equals_(N,Y)&&!W.forceEmit)return;this.emitter.emit("beforechange",{sender:this}),this.rawValue_=Y,this.emitter.emit("change",{options:W,previousRawValue:N,rawValue:Y,sender:this})}}class x{constructor(Z){this.emitter=new j,this.value_=Z}get rawValue(){return this.value_}set rawValue(Z){this.setRawValue(Z,{forceEmit:!1,last:!0})}setRawValue(Z,K){let W=K!==null&&K!==void 0?K:{forceEmit:!1,last:!0},Y=this.value_;if(Y===Z&&!W.forceEmit)return;this.emitter.emit("beforechange",{sender:this}),this.value_=Z,this.emitter.emit("change",{options:W,previousRawValue:Y,rawValue:this.value_,sender:this})}}function l(Z,K){let W=K===null||K===void 0?void 0:K.constraint,Y=K===null||K===void 0?void 0:K.equals;if(!W&&!Y)return new x(Z);return new c(Z,K)}class S{constructor(Z){this.emitter=new j,this.valMap_=Z;for(let K in this.valMap_)this.valMap_[K].emitter.on("change",()=>{this.emitter.emit("change",{key:K,sender:this})})}static createCore(Z){return Object.keys(Z).reduce((W,Y)=>{return Object.assign(W,{[Y]:l(Z[Y])})},{})}static fromObject(Z){let K=this.createCore(Z);return new S(K)}get(Z){return this.valMap_[Z].rawValue}set(Z,K){this.valMap_[Z].rawValue=K}value(Z){return this.valMap_[Z]}}function U0(Z,K){let Y=Object.keys(K).reduce((N,V)=>{if(N===void 0)return;let d=K[V],z0=d(Z[V]);return z0.succeeded?Object.assign(Object.assign({},N),{[V]:z0.value}):void 0},{});return F(Y)}function N0(Z,K){return Z.reduce((W,Y)=>{if(W===void 0)return;let N=K(Y);if(!N.succeeded||N.value===void 0)return;return[...W,N.value]},[])}function n(Z){if(Z===null)return!1;return typeof Z==="object"}function u(Z){return(K)=>(W)=>{if(!K&&W===void 0)return{succeeded:!1,value:void 0};if(K&&W===void 0)return{succeeded:!0,value:void 0};let Y=Z(W);return Y!==void 0?{succeeded:!0,value:Y}:{succeeded:!1,value:void 0}}}function M(Z){return{custom:(K)=>u(K)(Z),boolean:u((K)=>typeof K==="boolean"?K:void 0)(Z),number:u((K)=>typeof K==="number"?K:void 0)(Z),string:u((K)=>typeof K==="string"?K:void 0)(Z),function:u((K)=>typeof K==="function"?K:void 0)(Z),constant:(K)=>u((W)=>W===K?K:void 0)(Z),raw:u((K)=>K)(Z),object:(K)=>u((W)=>{if(!n(W))return;return U0(W,K)})(Z),array:(K)=>u((W)=>{if(!Array.isArray(W))return;return N0(W,K)})(Z)}}let $={optional:M(!0),required:M(!1)};function E(Z,K){let W=$.required.object(K)(Z);return W.succeeded?W.value:void 0}function m(Z){console.warn([`Missing '${Z.key}' of ${Z.target} in ${Z.place}.`,"Please rebuild plugins with the latest core package."].join(" "))}function b(Z){if(Z&&Z.parentElement)Z.parentElement.removeChild(Z);return null}class o{constructor(Z){this.value_=Z}static create(Z){return[new o(Z),(K,W)=>{Z.setRawValue(K,W)}]}get emitter(){return this.value_.emitter}get rawValue(){return this.value_.rawValue}}let p=I("");function i(Z,K){return y(Z,p(void 0,K))}class e extends S{constructor(Z){var K;super(Z);this.onDisabledChange_=this.onDisabledChange_.bind(this),this.onParentChange_=this.onParentChange_.bind(this),this.onParentGlobalDisabledChange_=this.onParentGlobalDisabledChange_.bind(this),[this.globalDisabled_,this.setGlobalDisabled_]=o.create(l(this.getGlobalDisabled_())),this.value("disabled").emitter.on("change",this.onDisabledChange_),this.value("parent").emitter.on("change",this.onParentChange_),(K=this.get("parent"))===null||K===void 0||K.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_)}static create(Z){var K,W,Y;let N=Z!==null&&Z!==void 0?Z:{};return new e(S.createCore({disabled:(K=N.disabled)!==null&&K!==void 0?K:!1,disposed:!1,hidden:(W=N.hidden)!==null&&W!==void 0?W:!1,parent:(Y=N.parent)!==null&&Y!==void 0?Y:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(Z){_(this.globalDisabled_,i(Z,"disabled")),h(this,"hidden",i(Z,"hidden"))}bindDisabled(Z){_(this.globalDisabled_,(K)=>{Z.disabled=K})}bindTabIndex(Z){_(this.globalDisabled_,(K)=>{Z.tabIndex=K?-1:0})}handleDispose(Z){this.value("disposed").emitter.on("change",(K)=>{if(K)Z()})}getGlobalDisabled_(){let Z=this.get("parent");return(Z?Z.globalDisabled.rawValue:!1)||this.get("disabled")}updateGlobalDisabled_(){this.setGlobalDisabled_(this.getGlobalDisabled_())}onDisabledChange_(){this.updateGlobalDisabled_()}onParentGlobalDisabledChange_(){this.updateGlobalDisabled_()}onParentChange_(Z){var K;let W=Z.previousRawValue;W===null||W===void 0||W.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(K=this.get("parent"))===null||K===void 0||K.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}function G0(){return["veryfirst","first","last","verylast"]}let a=I(""),t={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class w0{constructor(Z){this.parent_=null,this.blade=Z.blade,this.view=Z.view,this.viewProps=Z.viewProps;let K=this.view.element;this.blade.value("positions").emitter.on("change",()=>{G0().forEach((W)=>{K.classList.remove(a(void 0,t[W]))}),this.blade.get("positions").forEach((W)=>{K.classList.add(a(void 0,t[W]))})}),this.viewProps.handleDispose(()=>{b(K)})}get parent(){return this.parent_}set parent(Z){if(this.parent_=Z,!("parent"in this.viewProps.valMap_)){m({key:"parent",target:e.name,place:"BladeController.parent"});return}this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}}let H0="http://www.w3.org/2000/svg";function Z0(Z){Z.offsetHeight}function q0(Z,K){let W=Z.style.transition;Z.style.transition="none",K(),Z.style.transition=W}function B0(Z){return Z.ontouchstart!==void 0}function r(){return globalThis}function F0(){return F(r()).document}function X0(Z){let K=Z.ownerDocument.defaultView;if(!K)return null;return"document"in K?Z.getContext("2d",{willReadFrequently:!0}):null}let s={check:'',dropdown:'',p2dpad:''};function M0(Z,K){let W=Z.createElementNS(H0,"svg");return W.innerHTML=s[K],W}function K0(Z,K,W){Z.insertBefore(K,Z.children[W])}function A0(Z){if(Z.parentElement)Z.parentElement.removeChild(Z)}function J0(Z){while(Z.children.length>0)Z.removeChild(Z.children[0])}function h0(Z){while(Z.childNodes.length>0)Z.removeChild(Z.childNodes[0])}function D0(Z){if(Z.relatedTarget)return F(Z.relatedTarget);if("explicitOriginalTarget"in Z)return Z.explicitOriginalTarget;return null}let W0=I("lbl");function L0(Z,K){let W=Z.createDocumentFragment();return K.split(` `).map((N)=>{return Z.createTextNode(N)}).forEach((N,V)=>{if(V>0)W.appendChild(Z.createElement("br"));W.appendChild(N)}),W}class R0{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(W0()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("div");W.classList.add(W0("l")),h(K.props,"label",(N)=>{if(D(N))this.element.classList.add(W0(void 0,"nol"));else this.element.classList.remove(W0(void 0,"nol")),h0(W),W.appendChild(L0(Z,N))}),this.element.appendChild(W),this.labelElement=W;let Y=Z.createElement("div");Y.classList.add(W0("v")),this.element.appendChild(Y),this.valueElement=Y}}class b0 extends w0{constructor(Z,K){let W=K.valueController.viewProps;super(Object.assign(Object.assign({},K),{view:new R0(Z,{props:K.props,viewProps:W}),viewProps:W}));this.props=K.props,this.valueController=K.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}let i0={id:"button",type:"blade",accept(Z){let K=$,W=E(Z,{title:K.required.string,view:K.required.constant("button"),label:K.optional.string});return W?{params:W}:null},controller(Z){return new b0(Z.document,{blade:Z.blade,props:S.fromObject({label:Z.params.label}),valueController:new P(Z.document,{props:S.fromObject({title:Z.params.title}),viewProps:Z.viewProps})})},api(Z){if(!(Z.controller instanceof b0))return null;if(!(Z.controller.valueController instanceof P))return null;return new R(Z.controller)}};class $0 extends w0{constructor(Z){super(Z);this.value=Z.value}}function k0(){return new S({positions:l([],{equals:A})})}class O0 extends S{constructor(Z){super(Z)}static create(Z){let K={completed:!0,expanded:Z,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},W=S.createCore(K);return new O0(W)}get styleExpanded(){var Z;return(Z=this.get("temporaryExpanded"))!==null&&Z!==void 0?Z:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";let Z=this.get("expandedHeight");if(this.get("shouldFixHeight")&&!D(Z))return`${Z}px`;return"auto"}bindExpandedClass(Z,K){let W=()=>{if(this.styleExpanded)Z.classList.add(K);else Z.classList.remove(K)};h(this,"expanded",W),h(this,"temporaryExpanded",W)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function p0(Z,K){let W=0;return q0(K,()=>{Z.set("expandedHeight",null),Z.set("temporaryExpanded",!0),Z0(K),W=K.clientHeight,Z.set("temporaryExpanded",null),Z0(K)}),W}function c0(Z,K){K.style.height=Z.styleHeight}function z1(Z,K){Z.value("expanded").emitter.on("beforechange",()=>{if(Z.set("completed",!1),D(Z.get("expandedHeight"))){let W=p0(Z,K);if(W>0)Z.set("expandedHeight",W)}Z.set("shouldFixHeight",!0),Z0(K)}),Z.emitter.on("change",()=>{c0(Z,K)}),c0(Z,K),K.addEventListener("transitionend",(W)=>{if(W.propertyName!=="height")return;Z.cleanUpTransition()})}class f0 extends z{constructor(Z,K){super(Z);this.rackApi_=K}}function j0(Z,K){return Z.addBlade(Object.assign(Object.assign({},K),{view:"button"}))}function v0(Z,K){return Z.addBlade(Object.assign(Object.assign({},K),{view:"folder"}))}function v1(Z,K){let W=K!==null&&K!==void 0?K:{};return Z.addBlade(Object.assign(Object.assign({},W),{view:"separator"}))}function m0(Z,K){return Z.addBlade(Object.assign(Object.assign({},K),{view:"tab"}))}class I0{constructor(Z){this.emitter=new j,this.items_=[],this.cache_=new Set,this.onSubListAdd_=this.onSubListAdd_.bind(this),this.onSubListRemove_=this.onSubListRemove_.bind(this),this.extract_=Z}get items(){return this.items_}allItems(){return Array.from(this.cache_)}find(Z){for(let K of this.allItems())if(Z(K))return K;return null}includes(Z){return this.cache_.has(Z)}add(Z,K){if(this.includes(Z))throw B.shouldNeverHappen();let W=K!==void 0?K:this.items_.length;this.items_.splice(W,0,Z),this.cache_.add(Z);let Y=this.extract_(Z);if(Y)Y.emitter.on("add",this.onSubListAdd_),Y.emitter.on("remove",this.onSubListRemove_),Y.allItems().forEach((N)=>{this.cache_.add(N)});this.emitter.emit("add",{index:W,item:Z,root:this,target:this})}remove(Z){let K=this.items_.indexOf(Z);if(K<0)return;this.items_.splice(K,1),this.cache_.delete(Z);let W=this.extract_(Z);if(W)W.emitter.off("add",this.onSubListAdd_),W.emitter.off("remove",this.onSubListRemove_);this.emitter.emit("remove",{index:K,item:Z,root:this,target:this})}onSubListAdd_(Z){this.cache_.add(Z.item),this.emitter.emit("add",{index:Z.index,item:Z.item,root:this,target:Z.target})}onSubListRemove_(Z){this.cache_.delete(Z.item),this.emitter.emit("remove",{index:Z.index,item:Z.item,root:this,target:Z.target})}}class n0 extends z{constructor(Z){super(Z);this.onBindingChange_=this.onBindingChange_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("change",this.onBindingChange_)}get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}refresh(){this.controller_.binding.read()}onBindingChange_(Z){let K=Z.sender.target.read();this.emitter_.emit("change",{event:new X(this,F(K),this.controller_.binding.target.presetKey,Z.options.last)})}}class C0 extends b0{constructor(Z,K){super(Z,K);this.binding=K.binding}}class V0 extends z{constructor(Z){super(Z);this.onBindingUpdate_=this.onBindingUpdate_.bind(this),this.emitter_=new j,this.controller_.binding.emitter.on("update",this.onBindingUpdate_)}get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}refresh(){this.controller_.binding.read()}onBindingUpdate_(Z){let K=Z.sender.target.read();this.emitter_.emit("update",{event:new U(this,F(K),this.controller_.binding.target.presetKey)})}}class E0 extends b0{constructor(Z,K){super(Z,K);this.binding=K.binding,this.viewProps.bindDisabled(this.binding.ticker),this.viewProps.handleDispose(()=>{this.binding.dispose()})}}function U1(Z){if(Z instanceof X1)return Z.apiSet_;if(Z instanceof f0)return Z.rackApi_.apiSet_;return null}function a0(Z,K){let W=Z.find((Y)=>Y.controller_===K);if(!W)throw B.shouldNeverHappen();return W}function e0(Z,K,W){if(!w.isBindable(Z))throw B.notBindable();return new w(Z,K,W)}class X1 extends z{constructor(Z,K){super(Z);this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this),this.onRackInputChange_=this.onRackInputChange_.bind(this),this.onRackMonitorUpdate_=this.onRackMonitorUpdate_.bind(this),this.emitter_=new j,this.apiSet_=new I0(U1),this.pool_=K;let W=this.controller_.rack;W.emitter.on("add",this.onRackAdd_),W.emitter.on("remove",this.onRackRemove_),W.emitter.on("inputchange",this.onRackInputChange_),W.emitter.on("monitorupdate",this.onRackMonitorUpdate_),W.children.forEach((Y)=>{this.setUpApi_(Y)})}get children(){return this.controller_.rack.children.map((Z)=>a0(this.apiSet_,Z))}addInput(Z,K,W){let Y=W!==null&&W!==void 0?W:{},N=this.controller_.view.element.ownerDocument,V=this.pool_.createInput(N,e0(Z,K,Y.presetKey),Y),d=new n0(V);return this.add(d,Y.index)}addMonitor(Z,K,W){let Y=W!==null&&W!==void 0?W:{},N=this.controller_.view.element.ownerDocument,V=this.pool_.createMonitor(N,e0(Z,K),Y),d=new V0(V);return F(this.add(d,Y.index))}addFolder(Z){return v0(this,Z)}addButton(Z){return j0(this,Z)}addSeparator(Z){return v1(this,Z)}addTab(Z){return m0(this,Z)}add(Z,K){this.controller_.rack.add(Z.controller_,K);let W=this.apiSet_.find((Y)=>Y.controller_===Z.controller_);if(W)this.apiSet_.remove(W);return this.apiSet_.add(Z),Z}remove(Z){this.controller_.rack.remove(Z.controller_)}addBlade(Z){let K=this.controller_.view.element.ownerDocument,W=this.pool_.createBlade(K,Z),Y=this.pool_.createBladeApi(W);return this.add(Y,Z.index)}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}setUpApi_(Z){if(!this.apiSet_.find((W)=>W.controller_===Z))this.apiSet_.add(this.pool_.createBladeApi(Z))}onRackAdd_(Z){this.setUpApi_(Z.bladeController)}onRackRemove_(Z){if(Z.isRoot){let K=a0(this.apiSet_,Z.bladeController);this.apiSet_.remove(K)}}onRackInputChange_(Z){let K=Z.bladeController;if(K instanceof C0){let W=a0(this.apiSet_,K),Y=K.binding;this.emitter_.emit("change",{event:new X(W,F(Y.target.read()),Y.target.presetKey,Z.options.last)})}else if(K instanceof $0){let W=a0(this.apiSet_,K);this.emitter_.emit("change",{event:new X(W,K.value.rawValue,void 0,Z.options.last)})}}onRackMonitorUpdate_(Z){if(!(Z.bladeController instanceof E0))throw B.shouldNeverHappen();let K=a0(this.apiSet_,Z.bladeController),W=Z.bladeController.binding;this.emitter_.emit("update",{event:new U(K,F(W.target.read()),W.target.presetKey)})}}class M1 extends f0{constructor(Z,K){super(Z,new X1(Z.rackController,K));this.emitter_=new j,this.controller_.foldable.value("expanded").emitter.on("change",(W)=>{this.emitter_.emit("fold",{event:new H(this,W.sender.rawValue)})}),this.rackApi_.on("change",(W)=>{this.emitter_.emit("change",{event:W})}),this.rackApi_.on("update",(W)=>{this.emitter_.emit("update",{event:W})})}get expanded(){return this.controller_.foldable.get("expanded")}set expanded(Z){this.controller_.foldable.set("expanded",Z)}get title(){return this.controller_.props.get("title")}set title(Z){this.controller_.props.set("title",Z)}get children(){return this.rackApi_.children}addInput(Z,K,W){return this.rackApi_.addInput(Z,K,W)}addMonitor(Z,K,W){return this.rackApi_.addMonitor(Z,K,W)}addFolder(Z){return this.rackApi_.addFolder(Z)}addButton(Z){return this.rackApi_.addButton(Z)}addSeparator(Z){return this.rackApi_.addSeparator(Z)}addTab(Z){return this.rackApi_.addTab(Z)}add(Z,K){return this.rackApi_.add(Z,K)}remove(Z){this.rackApi_.remove(Z)}addBlade(Z){return this.rackApi_.addBlade(Z)}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}}class O1 extends w0{constructor(Z){super({blade:Z.blade,view:Z.view,viewProps:Z.rackController.viewProps});this.rackController=Z.rackController}}class h1{constructor(Z,K){let W=I(K.viewName);this.element=Z.createElement("div"),this.element.classList.add(W()),K.viewProps.bindClassModifiers(this.element)}}function n1(Z,K){for(let W=0;W{return K instanceof Z}))}onSetAdd_(Z){this.updatePositions_();let K=Z.target===Z.root;if(this.emitter.emit("add",{bladeController:Z.item,index:Z.index,isRoot:K,sender:this}),!K)return;let W=Z.item;if(W.viewProps.emitter.on("change",this.onChildViewPropsChange_),W.blade.value("positions").emitter.on("change",this.onChildPositionsChange_),W.viewProps.handleDispose(this.onChildDispose_),W instanceof C0)W.binding.emitter.on("change",this.onChildInputChange_);else if(W instanceof E0)W.binding.emitter.on("update",this.onChildMonitorUpdate_);else if(W instanceof $0)W.value.emitter.on("change",this.onChildValueChange_);else{let Y=x1(W);if(Y){let N=Y.emitter;N.on("layout",this.onDescendantLayout_),N.on("inputchange",this.onDescendantInputChange_),N.on("monitorupdate",this.onDescendantMonitorUpdate_)}}}onSetRemove_(Z){this.updatePositions_();let K=Z.target===Z.root;if(this.emitter.emit("remove",{bladeController:Z.item,isRoot:K,sender:this}),!K)return;let W=Z.item;if(W instanceof C0)W.binding.emitter.off("change",this.onChildInputChange_);else if(W instanceof E0)W.binding.emitter.off("update",this.onChildMonitorUpdate_);else if(W instanceof $0)W.value.emitter.off("change",this.onChildValueChange_);else{let Y=x1(W);if(Y){let N=Y.emitter;N.off("layout",this.onDescendantLayout_),N.off("inputchange",this.onDescendantInputChange_),N.off("monitorupdate",this.onDescendantMonitorUpdate_)}}}updatePositions_(){let Z=this.bcSet_.items.filter((Y)=>!Y.viewProps.get("hidden")),K=Z[0],W=Z[Z.length-1];this.bcSet_.items.forEach((Y)=>{let N=[];if(Y===K){if(N.push("first"),!this.blade_||this.blade_.get("positions").includes("veryfirst"))N.push("veryfirst")}if(Y===W){if(N.push("last"),!this.blade_||this.blade_.get("positions").includes("verylast"))N.push("verylast")}Y.blade.set("positions",N)})}onChildPositionsChange_(){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildViewPropsChange_(Z){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildDispose_(){this.bcSet_.items.filter((K)=>{return K.viewProps.get("disposed")}).forEach((K)=>{this.bcSet_.remove(K)})}onChildInputChange_(Z){let K=n1(this.find(C0),Z.sender);if(!K)throw B.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:K,options:Z.options,sender:this})}onChildMonitorUpdate_(Z){let K=b1(this.find(E0),Z.sender);if(!K)throw B.alreadyDisposed();this.emitter.emit("monitorupdate",{bladeController:K,sender:this})}onChildValueChange_(Z){let K=W1(this.find($0),Z.sender);if(!K)throw B.alreadyDisposed();this.emitter.emit("inputchange",{bladeController:K,options:Z.options,sender:this})}onDescendantLayout_(Z){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onDescendantInputChange_(Z){this.emitter.emit("inputchange",{bladeController:Z.bladeController,options:Z.options,sender:this})}onDescendantMonitorUpdate_(Z){this.emitter.emit("monitorupdate",{bladeController:Z.bladeController,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class D9 extends w0{constructor(Z,K){super(Object.assign(Object.assign({},K),{view:new h1(Z,{viewName:"brk",viewProps:K.viewProps})}));this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);let W=new DQ({blade:K.root?void 0:K.blade,viewProps:K.viewProps});W.emitter.on("add",this.onRackAdd_),W.emitter.on("remove",this.onRackRemove_),this.rack=W,this.viewProps.handleDispose(()=>{for(let Y=this.rack.children.length-1;Y>=0;Y--)this.rack.children[Y].viewProps.set("disposed",!0)})}onRackAdd_(Z){if(!Z.isRoot)return;K0(this.view.element,Z.bladeController.view.element,Z.index)}onRackRemove_(Z){if(!Z.isRoot)return;A0(Z.bladeController.view.element)}}let tQ=I("cnt");class y9{constructor(Z,K){var W;this.className_=I((W=K.viewName)!==null&&W!==void 0?W:"fld"),this.element=Z.createElement("div"),this.element.classList.add(this.className_(),tQ()),K.viewProps.bindClassModifiers(this.element),this.foldable_=K.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),h(this.foldable_,"completed",y(this.element,this.className_(void 0,"cpl")));let Y=Z.createElement("button");Y.classList.add(this.className_("b")),h(K.props,"title",(S0)=>{if(D(S0))this.element.classList.add(this.className_(void 0,"not"));else this.element.classList.remove(this.className_(void 0,"not"))}),K.viewProps.bindDisabled(Y),this.element.appendChild(Y),this.buttonElement=Y;let N=Z.createElement("div");N.classList.add(this.className_("i")),this.element.appendChild(N);let V=Z.createElement("div");V.classList.add(this.className_("t")),v(K.props.value("title"),V),this.buttonElement.appendChild(V),this.titleElement=V;let d=Z.createElement("div");d.classList.add(this.className_("m")),this.buttonElement.appendChild(d);let z0=K.containerElement;z0.classList.add(this.className_("c")),this.element.appendChild(z0),this.containerElement=z0}}class Y9 extends O1{constructor(Z,K){var W;let Y=O0.create((W=K.expanded)!==null&&W!==void 0?W:!0),N=new D9(Z,{blade:K.blade,root:K.root,viewProps:K.viewProps});super(Object.assign(Object.assign({},K),{rackController:N,view:new y9(Z,{containerElement:N.view.element,foldable:Y,props:K.props,viewName:K.root?"rot":void 0,viewProps:K.viewProps})}));this.onTitleClick_=this.onTitleClick_.bind(this),this.props=K.props,this.foldable=Y,z1(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"))}}let fZ={id:"folder",type:"blade",accept(Z){let K=$,W=E(Z,{title:K.required.string,view:K.required.constant("folder"),expanded:K.optional.boolean});return W?{params:W}:null},controller(Z){return new Y9(Z.document,{blade:Z.blade,expanded:Z.params.expanded,props:S.fromObject({title:Z.params.title}),viewProps:Z.viewProps})},api(Z){if(!(Z.controller instanceof Y9))return null;return new M1(Z.controller,Z.pool)}};class u1 extends $0{constructor(Z,K){let W=K.valueController.viewProps;super(Object.assign(Object.assign({},K),{value:K.valueController.value,view:new R0(Z,{props:K.props,viewProps:W}),viewProps:W}));this.props=K.props,this.valueController=K.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}}class A9 extends z{}let YQ=I("spr");class AQ{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(YQ()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("hr");W.classList.add(YQ("r")),this.element.appendChild(W)}}class Y0 extends w0{constructor(Z,K){super(Object.assign(Object.assign({},K),{view:new AQ(Z,{viewProps:K.viewProps})}))}}let h9={id:"separator",type:"blade",accept(Z){let W=E(Z,{view:$.required.constant("separator")});return W?{params:W}:null},controller(Z){return new Y0(Z.document,{blade:Z.blade,viewProps:Z.viewProps})},api(Z){if(!(Z.controller instanceof Y0))return null;return new A9(Z.controller)}},b9=I("tbi");class o1{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(b9()),K.viewProps.bindClassModifiers(this.element),h(K.props,"selected",(N)=>{if(N)this.element.classList.add(b9(void 0,"sel"));else this.element.classList.remove(b9(void 0,"sel"))});let W=Z.createElement("button");W.classList.add(b9("b")),K.viewProps.bindDisabled(W),this.element.appendChild(W),this.buttonElement=W;let Y=Z.createElement("div");Y.classList.add(b9("t")),v(K.props.value("title"),Y),this.buttonElement.appendChild(Y),this.titleElement=Y}}class x9{constructor(Z,K){this.emitter=new j,this.onClick_=this.onClick_.bind(this),this.props=K.props,this.viewProps=K.viewProps,this.view=new o1(Z,{props:K.props,viewProps:K.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class OQ{constructor(Z,K){this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new x9(Z,{props:K.itemProps,viewProps:e.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.cc_=new D9(Z,{blade:k0(),viewProps:e.create()}),this.props=K.props,h(this.props,"selected",(W)=>{this.itemController.props.set("selected",W),this.contentController.viewProps.set("hidden",!W)})}get itemController(){return this.ic_}get contentController(){return this.cc_}onItemClick_(){this.props.set("selected",!0)}}class f9{constructor(Z,K){this.controller_=Z,this.rackApi_=K}get title(){var Z;return(Z=this.controller_.itemController.props.get("title"))!==null&&Z!==void 0?Z:""}set title(Z){this.controller_.itemController.props.set("title",Z)}get selected(){return this.controller_.props.get("selected")}set selected(Z){this.controller_.props.set("selected",Z)}get children(){return this.rackApi_.children}addButton(Z){return this.rackApi_.addButton(Z)}addFolder(Z){return this.rackApi_.addFolder(Z)}addSeparator(Z){return this.rackApi_.addSeparator(Z)}addTab(Z){return this.rackApi_.addTab(Z)}add(Z,K){this.rackApi_.add(Z,K)}remove(Z){this.rackApi_.remove(Z)}addInput(Z,K,W){return this.rackApi_.addInput(Z,K,W)}addMonitor(Z,K,W){return this.rackApi_.addMonitor(Z,K,W)}addBlade(Z){return this.rackApi_.addBlade(Z)}}class O9 extends f0{constructor(Z,K){super(Z,new X1(Z.rackController,K));this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.onSelect_=this.onSelect_.bind(this),this.emitter_=new j,this.pageApiMap_=new Map,this.rackApi_.on("change",(W)=>{this.emitter_.emit("change",{event:W})}),this.rackApi_.on("update",(W)=>{this.emitter_.emit("update",{event:W})}),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((W)=>{this.setUpPageApi_(W)})}get pages(){return this.controller_.pageSet.items.map((Z)=>{let K=this.pageApiMap_.get(Z);if(!K)throw B.shouldNeverHappen();return K})}addPage(Z){let K=this.controller_.view.element.ownerDocument,W=new OQ(K,{itemProps:S.fromObject({selected:!1,title:Z.title}),props:S.fromObject({selected:!1})});this.controller_.add(W,Z.index);let Y=this.pageApiMap_.get(W);if(!Y)throw B.shouldNeverHappen();return Y}removePage(Z){this.controller_.remove(Z)}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}setUpPageApi_(Z){let K=this.rackApi_.apiSet_.find((Y)=>Y.controller_===Z.contentController);if(!K)throw B.shouldNeverHappen();let W=new f9(Z,K);this.pageApiMap_.set(Z,W)}onPageAdd_(Z){this.setUpPageApi_(Z.item)}onPageRemove_(Z){if(!this.pageApiMap_.get(Z.item))throw B.shouldNeverHappen();this.pageApiMap_.delete(Z.item)}onSelect_(Z){this.emitter_.emit("select",{event:new q(this,Z.rawValue)})}}let v9=-1;class rQ{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=l(!0),this.selectedIndex=l(v9),this.items_=[]}add(Z,K){let W=K!==null&&K!==void 0?K:this.items_.length;this.items_.splice(W,0,Z),Z.emitter.on("change",this.onItemSelectedChange_),this.keepSelection_()}remove(Z){let K=this.items_.indexOf(Z);if(K<0)return;this.items_.splice(K,1),Z.emitter.off("change",this.onItemSelectedChange_),this.keepSelection_()}keepSelection_(){if(this.items_.length===0){this.selectedIndex.rawValue=v9,this.empty.rawValue=!0;return}let Z=this.items_.findIndex((K)=>K.rawValue);if(Z<0)this.items_.forEach((K,W)=>{K.rawValue=W===0}),this.selectedIndex.rawValue=0;else this.items_.forEach((K,W)=>{K.rawValue=W===Z}),this.selectedIndex.rawValue=Z;this.empty.rawValue=!1}onItemSelectedChange_(Z){if(Z.rawValue){let K=this.items_.findIndex((W)=>W===Z.sender);this.items_.forEach((W,Y)=>{W.rawValue=Y===K}),this.selectedIndex.rawValue=K}else this.keepSelection_()}}let m1=I("tab");class aQ{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(m1(),tQ()),K.viewProps.bindClassModifiers(this.element),_(K.empty,y(this.element,m1(void 0,"nop")));let W=Z.createElement("div");W.classList.add(m1("t")),this.element.appendChild(W),this.itemsElement=W;let Y=Z.createElement("div");Y.classList.add(m1("i")),this.element.appendChild(Y);let N=K.contentsElement;N.classList.add(m1("c")),this.element.appendChild(N),this.contentsElement=N}}class u9 extends O1{constructor(Z,K){let W=new D9(Z,{blade:K.blade,viewProps:K.viewProps}),Y=new rQ;super({blade:K.blade,rackController:W,view:new aQ(Z,{contentsElement:W.view.element,empty:Y.empty,viewProps:K.viewProps})});this.onPageAdd_=this.onPageAdd_.bind(this),this.onPageRemove_=this.onPageRemove_.bind(this),this.pageSet_=new I0(()=>null),this.pageSet_.emitter.on("add",this.onPageAdd_),this.pageSet_.emitter.on("remove",this.onPageRemove_),this.tab=Y}get pageSet(){return this.pageSet_}add(Z,K){this.pageSet_.add(Z,K)}remove(Z){this.pageSet_.remove(this.pageSet_.items[Z])}onPageAdd_(Z){let K=Z.item;K0(this.view.itemsElement,K.itemController.view.element,Z.index),K.itemController.viewProps.set("parent",this.viewProps),this.rackController.rack.add(K.contentController,Z.index),this.tab.add(K.props.value("selected"))}onPageRemove_(Z){let K=Z.item;A0(K.itemController.view.element),K.itemController.viewProps.set("parent",null),this.rackController.rack.remove(K.contentController),this.tab.remove(K.props.value("selected"))}}let eQ={id:"tab",type:"blade",accept(Z){let K=$,W=E(Z,{pages:K.required.array(K.required.object({title:K.required.string})),view:K.required.constant("tab")});if(!W||W.pages.length===0)return null;return{params:W}},controller(Z){let K=new u9(Z.document,{blade:Z.blade,viewProps:Z.viewProps});return Z.params.pages.forEach((W)=>{let Y=new OQ(Z.document,{itemProps:S.fromObject({selected:!1,title:W.title}),props:S.fromObject({selected:!1})});K.add(Y)}),K},api(Z){if(!(Z.controller instanceof u9))return null;return new O9(Z.controller,Z.pool)}};function m9(Z,K){let W=Z.accept(K.params);if(!W)return null;let Y=$.optional.boolean(K.params.disabled).value,N=$.optional.boolean(K.params.hidden).value;return Z.controller({blade:k0(),document:K.document,params:F(Object.assign(Object.assign({},W.params),{disabled:Y,hidden:N})),viewProps:e.create({disabled:Y,hidden:N})})}class NQ{constructor(){this.disabled=!1,this.emitter=new j}dispose(){}tick(){if(this.disabled)return;this.emitter.emit("tick",{sender:this})}}class t1{constructor(Z,K){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=Z,this.emitter=new j,this.interval_=K,this.setTimer_()}get disabled(){return this.disabled_}set disabled(Z){if(this.disabled_=Z,this.disabled_)this.clearTimer_();else this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;let Z=this.doc_.defaultView;if(Z)Z.clearInterval(this.timerId_);this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;let Z=this.doc_.defaultView;if(Z)this.timerId_=Z.setInterval(this.onTick_,this.interval_)}onTick_(){if(this.disabled_)return;this.emitter.emit("tick",{sender:this})}}class BQ{constructor(Z){this.onValueChange_=this.onValueChange_.bind(this),this.reader=Z.reader,this.writer=Z.writer,this.emitter=new j,this.value=Z.value,this.value.emitter.on("change",this.onValueChange_),this.target=Z.target,this.read()}read(){let Z=this.target.read();if(Z!==void 0)this.value.rawValue=this.reader(Z)}write_(Z){this.writer(this.target,Z)}onValueChange_(Z){this.write_(Z.rawValue),this.emitter.emit("change",{options:Z.options,rawValue:Z.rawValue,sender:this})}}function LQ(Z,K){while(Z.lengthZ.length)W.splice(0,W.length-Z.length);else LQ(W,Z.length);return W}class d9{constructor(Z){this.onTick_=this.onTick_.bind(this),this.reader_=Z.reader,this.target=Z.target,this.emitter=new j,this.value=Z.value,this.ticker=Z.ticker,this.ticker.emitter.on("tick",this.onTick_),this.read()}dispose(){this.ticker.dispose()}read(){let Z=this.target.read();if(Z===void 0)return;let K=this.value.rawValue,W=this.reader_(Z);this.value.rawValue=vZ(K,W),this.emitter.emit("update",{rawValue:W,sender:this})}onTick_(Z){this.read()}}class P1{constructor(Z){this.constraints=Z}constrain(Z){return this.constraints.reduce((K,W)=>{return W.constrain(K)},Z)}}function I1(Z,K){if(Z instanceof K)return Z;if(Z instanceof P1){let W=Z.constraints.reduce((Y,N)=>{if(Y)return Y;return N instanceof K?N:null},null);if(W)return W}return null}class S1{constructor(Z){this.values=S.fromObject({max:Z.max,min:Z.min})}constrain(Z){let K=this.values.get("max"),W=this.values.get("min");return Math.min(Math.max(Z,W),K)}}class f1{constructor(Z){this.values=S.fromObject({options:Z})}get options(){return this.values.get("options")}constrain(Z){let K=this.values.get("options");if(K.length===0)return Z;return K.filter((Y)=>{return Y.value===Z}).length>0?Z:K[0].value}}class g9{constructor(Z){this.values=S.fromObject({max:Z.max,min:Z.min})}get maxValue(){return this.values.get("max")}get minValue(){return this.values.get("min")}constrain(Z){let K=this.values.get("max"),W=this.values.get("min"),Y=Z;if(!D(W))Y=Math.max(Y,W);if(!D(K))Y=Math.min(Y,K);return Y}}class N9{constructor(Z,K=0){this.step=Z,this.origin=K}constrain(Z){let K=this.origin%this.step,W=Math.round((Z-K)/this.step);return K+W*this.step}}let jQ=I("lst");class wQ{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),this.props_=K.props,this.element=Z.createElement("div"),this.element.classList.add(jQ()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("select");W.classList.add(jQ("s")),K.viewProps.bindDisabled(W),this.element.appendChild(W),this.selectElement=W;let Y=Z.createElement("div");Y.classList.add(jQ("m")),Y.appendChild(M0(Z,"dropdown")),this.element.appendChild(Y),K.value.emitter.on("change",this.onValueChange_),this.value_=K.value,h(this.props_,"options",(N)=>{J0(this.selectElement),N.forEach((V)=>{let d=Z.createElement("option");d.textContent=V.text,this.selectElement.appendChild(d)}),this.update_()})}update_(){let Z=this.props_.get("options").map((K)=>K.value);this.selectElement.selectedIndex=Z.indexOf(this.value_.rawValue)}onValueChange_(){this.update_()}}class _1{constructor(Z,K){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=K.props,this.value=K.value,this.viewProps=K.viewProps,this.view=new wQ(Z,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(Z){let K=F(Z.currentTarget);this.value.rawValue=this.props.get("options")[K.selectedIndex].value}}let JJ=I("pop");class p9{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(JJ()),K.viewProps.bindClassModifiers(this.element),_(K.shows,y(this.element,JJ(void 0,"v")))}}class d1{constructor(Z,K){this.shows=l(!1),this.viewProps=K.viewProps,this.view=new p9(Z,{shows:this.shows,viewProps:this.viewProps})}}let r1=I("txt");class B9{constructor(Z,K){this.onChange_=this.onChange_.bind(this),this.element=Z.createElement("div"),this.element.classList.add(r1()),K.viewProps.bindClassModifiers(this.element),this.props_=K.props,this.props_.emitter.on("change",this.onChange_);let W=Z.createElement("input");W.classList.add(r1("i")),W.type="text",K.viewProps.bindDisabled(W),this.element.appendChild(W),this.inputElement=W,K.value.emitter.on("change",this.onChange_),this.value_=K.value,this.refresh()}refresh(){let Z=this.props_.get("formatter");this.inputElement.value=Z(this.value_.rawValue)}onChange_(){this.refresh()}}class L9{constructor(Z,K){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=K.parser,this.props=K.props,this.value=K.value,this.viewProps=K.viewProps,this.view=new B9(Z,{props:K.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(Z){let W=F(Z.currentTarget).value,Y=this.parser_(W);if(!D(Y))this.value.rawValue=Y;this.view.refresh()}}function c9(Z){return String(Z)}function MQ(Z){if(Z==="false")return!1;return!!Z}function VQ(Z){return c9(Z)}class ZJ{constructor(Z){this.text=Z}evaluate(){return Number(this.text)}toString(){return this.text}}let RQ={"**":(Z,K)=>Math.pow(Z,K),"*":(Z,K)=>Z*K,"/":(Z,K)=>Z/K,"%":(Z,K)=>Z%K,"+":(Z,K)=>Z+K,"-":(Z,K)=>Z-K,"<<":(Z,K)=>Z<>":(Z,K)=>Z>>K,">>>":(Z,K)=>Z>>>K,"&":(Z,K)=>Z&K,"^":(Z,K)=>Z^K,"|":(Z,K)=>Z|K};class $Q{constructor(Z,K,W){this.left=K,this.operator=Z,this.right=W}evaluate(){let Z=RQ[this.operator];if(!Z)throw Error(`unexpected binary operator: '${this.operator}`);return Z(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}let vJ={"+":(Z)=>Z,"-":(Z)=>-Z,"~":(Z)=>~Z};class N1{constructor(Z,K){this.operator=Z,this.expression=K}evaluate(){let Z=vJ[this.operator];if(!Z)throw Error(`unexpected unary operator: '${this.operator}`);return Z(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function l9(Z){return(K,W)=>{for(let Y=0;YK.startsWith(N,W))[0];if(!Y)return null;return W+=Y.length,W+=j9(K,W).length,{cursor:W,operator:Y}}function F1(Z,K){return(W,Y)=>{let N=Z(W,Y);if(!N)return null;Y=N.cursor;let V=N.evaluable;for(;;){let d=V1(K,W,Y);if(!d)break;Y=d.cursor;let z0=Z(W,Y);if(!z0)return null;Y=z0.cursor,V=new $Q(d.operator,V,z0.evaluable)}return V?{cursor:Y,evaluable:V}:null}}let p1=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((Z,K)=>{return F1(Z,K)},G1);function XJ(Z,K){return K+=j9(Z,K).length,p1(Z,K)}function qz(Z){let K=XJ(Z,0);if(!K)return null;if(K.cursor+j9(Z,K.cursor).length!==Z.length)return null;return K.evaluable}function e1(Z){var K;let W=qz(Z);return(K=W===null||W===void 0?void 0:W.evaluate())!==null&&K!==void 0?K:null}function H7(Z){if(typeof Z==="number")return Z;if(typeof Z==="string"){let K=e1(Z);if(!D(K))return K}return 0}function Fz(Z){return String(Z)}function H1(Z){return(K)=>{return K.toFixed(Math.max(Math.min(Z,20),0))}}let Dz=H1(0);function cJ(Z){return Dz(Z)+"%"}function q7(Z){return String(Z)}function dZ(Z){return Z}function WJ({primary:Z,secondary:K,forward:W,backward:Y}){let N=!1;function V(d){if(N)return;N=!0,d(),N=!1}Z.emitter.on("change",(d)=>{V(()=>{K.setRawValue(W(Z,K),d.options)})}),K.emitter.on("change",(d)=>{V(()=>{Z.setRawValue(Y(Z,K),d.options)}),V(()=>{K.setRawValue(W(Z,K),d.options)})}),V(()=>{K.setRawValue(W(Z,K),{forceEmit:!1,last:!0})})}function B1(Z,K){let W=Z*(K.altKey?0.1:1)*(K.shiftKey?10:1);if(K.upKey)return+W;else if(K.downKey)return-W;return 0}function GJ(Z){return{altKey:Z.altKey,downKey:Z.key==="ArrowDown",shiftKey:Z.shiftKey,upKey:Z.key==="ArrowUp"}}function Q9(Z){return{altKey:Z.altKey,downKey:Z.key==="ArrowLeft",shiftKey:Z.shiftKey,upKey:Z.key==="ArrowRight"}}function Yz(Z){return Z==="ArrowUp"||Z==="ArrowDown"}function F7(Z){return Yz(Z)||Z==="ArrowLeft"||Z==="ArrowRight"}function gZ(Z,K){var W,Y;let N=K.ownerDocument.defaultView,V=K.getBoundingClientRect();return{x:Z.pageX-(((W=N&&N.scrollX)!==null&&W!==void 0?W:0)+V.left),y:Z.pageY-(((Y=N&&N.scrollY)!==null&&Y!==void 0?Y:0)+V.top)}}class M9{constructor(Z){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_=Z,this.emitter=new j,Z.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),Z.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),Z.addEventListener("touchend",this.onTouchEnd_),Z.addEventListener("mousedown",this.onMouseDown_)}computePosition_(Z){let K=this.elem_.getBoundingClientRect();return{bounds:{width:K.width,height:K.height},point:Z?{x:Z.x,y:Z.y}:null}}onMouseDown_(Z){var K;Z.preventDefault(),(K=Z.currentTarget)===null||K===void 0||K.focus();let W=this.elem_.ownerDocument;W.addEventListener("mousemove",this.onDocumentMouseMove_),W.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:Z.altKey,data:this.computePosition_(gZ(Z,this.elem_)),sender:this,shiftKey:Z.shiftKey})}onDocumentMouseMove_(Z){this.emitter.emit("move",{altKey:Z.altKey,data:this.computePosition_(gZ(Z,this.elem_)),sender:this,shiftKey:Z.shiftKey})}onDocumentMouseUp_(Z){let K=this.elem_.ownerDocument;K.removeEventListener("mousemove",this.onDocumentMouseMove_),K.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:Z.altKey,data:this.computePosition_(gZ(Z,this.elem_)),sender:this,shiftKey:Z.shiftKey})}onTouchStart_(Z){Z.preventDefault();let K=Z.targetTouches.item(0),W=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:Z.altKey,data:this.computePosition_(K?{x:K.clientX-W.left,y:K.clientY-W.top}:void 0),sender:this,shiftKey:Z.shiftKey}),this.lastTouch_=K}onTouchMove_(Z){let K=Z.targetTouches.item(0),W=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:Z.altKey,data:this.computePosition_(K?{x:K.clientX-W.left,y:K.clientY-W.top}:void 0),sender:this,shiftKey:Z.shiftKey}),this.lastTouch_=K}onTouchEnd_(Z){var K;let W=(K=Z.targetTouches.item(0))!==null&&K!==void 0?K:this.lastTouch_,Y=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:Z.altKey,data:this.computePosition_(W?{x:W.clientX-Y.left,y:W.clientY-Y.top}:void 0),sender:this,shiftKey:Z.shiftKey})}}function o0(Z,K,W,Y,N){let V=(Z-K)/(W-K);return Y+V*(N-Y)}function D7(Z){return String(Z.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function Z1(Z,K,W){return Math.min(Math.max(Z,K),W)}function Y7(Z,K){return(Z%K+K)%K}let T1=I("txt");class A7{constructor(Z,K){if(this.onChange_=this.onChange_.bind(this),this.props_=K.props,this.props_.emitter.on("change",this.onChange_),this.element=Z.createElement("div"),this.element.classList.add(T1(),T1(void 0,"num")),K.arrayPosition)this.element.classList.add(T1(void 0,K.arrayPosition));K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("input");W.classList.add(T1("i")),W.type="text",K.viewProps.bindDisabled(W),this.element.appendChild(W),this.inputElement=W,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=K.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(T1()),this.inputElement.classList.add(T1("i"));let Y=Z.createElement("div");Y.classList.add(T1("k")),this.element.appendChild(Y),this.knobElement=Y;let N=Z.createElementNS(H0,"svg");N.classList.add(T1("g")),this.knobElement.appendChild(N);let V=Z.createElementNS(H0,"path");V.classList.add(T1("gb")),N.appendChild(V),this.guideBodyElem_=V;let d=Z.createElementNS(H0,"path");d.classList.add(T1("gh")),N.appendChild(d),this.guideHeadElem_=d;let z0=Z.createElement("div");z0.classList.add(I("tt")()),this.knobElement.appendChild(z0),this.tooltipElem_=z0,K.value.emitter.on("change",this.onChange_),this.value=K.value,this.refresh()}onDraggingChange_(Z){if(Z.rawValue===null){this.element.classList.remove(T1(void 0,"drg"));return}this.element.classList.add(T1(void 0,"drg"));let K=Z.rawValue/this.props_.get("draggingScale"),W=K+(K>0?-1:K<0?1:0),Y=Z1(-W,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${W+Y},0 L${W},4 L${W+Y},8`,`M ${K},-1 L${K},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${K},4`);let N=this.props_.get("formatter");this.tooltipElem_.textContent=N(this.value.rawValue),this.tooltipElem_.style.left=`${K}px`}refresh(){let Z=this.props_.get("formatter");this.inputElement.value=Z(this.value.rawValue)}onChange_(){this.refresh()}}class SQ{constructor(Z,K){var W;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_=K.baseStep,this.parser_=K.parser,this.props=K.props,this.sliderProps_=(W=K.sliderProps)!==null&&W!==void 0?W:null,this.value=K.value,this.viewProps=K.viewProps,this.dragging_=l(null),this.view=new A7(Z,{arrayPosition:K.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_);let Y=new M9(this.view.knobElement);Y.emitter.on("down",this.onPointerDown_),Y.emitter.on("move",this.onPointerMove_),Y.emitter.on("up",this.onPointerUp_)}constrainValue_(Z){var K,W;let Y=(K=this.sliderProps_)===null||K===void 0?void 0:K.get("minValue"),N=(W=this.sliderProps_)===null||W===void 0?void 0:W.get("maxValue"),V=Z;if(Y!==void 0)V=Math.max(V,Y);if(N!==void 0)V=Math.min(V,N);return V}onInputChange_(Z){let W=F(Z.currentTarget).value,Y=this.parser_(W);if(!D(Y))this.value.rawValue=this.constrainValue_(Y);this.view.refresh()}onInputKeyDown_(Z){let K=B1(this.baseStep_,GJ(Z));if(K===0)return;this.value.setRawValue(this.constrainValue_(this.value.rawValue+K),{forceEmit:!1,last:!1})}onInputKeyUp_(Z){if(B1(this.baseStep_,GJ(Z))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(Z){if(!Z.point)return null;let K=Z.point.x-Z.bounds.width/2;return this.constrainValue_(this.originRawValue_+K*this.props.get("draggingScale"))}onPointerMove_(Z){let K=this.computeDraggingValue_(Z.data);if(K===null)return;this.value.setRawValue(K,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_}onPointerUp_(Z){let K=this.computeDraggingValue_(Z.data);if(K===null)return;this.value.setRawValue(K,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null}}let pZ=I("sld");class O7{constructor(Z,K){this.onChange_=this.onChange_.bind(this),this.props_=K.props,this.props_.emitter.on("change",this.onChange_),this.element=Z.createElement("div"),this.element.classList.add(pZ()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("div");W.classList.add(pZ("t")),K.viewProps.bindTabIndex(W),this.element.appendChild(W),this.trackElement=W;let Y=Z.createElement("div");Y.classList.add(pZ("k")),this.trackElement.appendChild(Y),this.knobElement=Y,K.value.emitter.on("change",this.onChange_),this.value=K.value,this.update_()}update_(){let Z=Z1(o0(this.value.rawValue,this.props_.get("minValue"),this.props_.get("maxValue"),0,100),0,100);this.knobElement.style.width=`${Z}%`}onChange_(){this.update_()}}class N7{constructor(Z,K){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_=K.baseStep,this.value=K.value,this.viewProps=K.viewProps,this.props=K.props,this.view=new O7(Z,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new M9(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_(Z,K){if(!Z.point)return;this.value.setRawValue(o0(Z1(Z.point.x,0,Z.bounds.width),0,Z.bounds.width,this.props.get("minValue"),this.props.get("maxValue")),K)}onPointerDownOrMove_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerUp_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!0,last:!0})}onKeyDown_(Z){let K=B1(this.baseStep_,Q9(Z));if(K===0)return;this.value.setRawValue(this.value.rawValue+K,{forceEmit:!1,last:!1})}onKeyUp_(Z){if(B1(this.baseStep_,Q9(Z))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}let cZ=I("sldtxt");class B7{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(cZ());let W=Z.createElement("div");W.classList.add(cZ("s")),this.sliderView_=K.sliderView,W.appendChild(this.sliderView_.element),this.element.appendChild(W);let Y=Z.createElement("div");Y.classList.add(cZ("t")),this.textView_=K.textView,Y.appendChild(this.textView_.element),this.element.appendChild(Y)}}class lJ{constructor(Z,K){this.value=K.value,this.viewProps=K.viewProps,this.sliderC_=new N7(Z,{baseStep:K.baseStep,props:K.sliderProps,value:K.value,viewProps:this.viewProps}),this.textC_=new SQ(Z,{baseStep:K.baseStep,parser:K.parser,props:K.textProps,sliderProps:K.sliderProps,value:K.value,viewProps:K.viewProps}),this.view=new B7(Z,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}}function HJ(Z,K){Z.write(K)}function sJ(Z){let K=$;if(Array.isArray(Z))return K.required.array(K.required.object({text:K.required.string,value:K.required.raw}))(Z).value;if(typeof Z==="object")return K.required.raw(Z).value;return}function L7(Z){if(Z==="inline"||Z==="popup")return Z;return}function V9(Z){let K=$;return K.required.object({max:K.optional.number,min:K.optional.number,step:K.optional.number})(Z).value}function j7(Z){if(Array.isArray(Z))return Z;let K=[];return Object.keys(Z).forEach((W)=>{K.push({text:W,value:Z[W]})}),K}function lZ(Z){return!D(Z)?new f1(j7(F(Z))):null}function Az(Z){let K=Z?I1(Z,N9):null;if(!K)return null;return K.step}function iJ(Z,K){let W=Z&&I1(Z,N9);if(W)return D7(W.step);return Math.max(D7(K),2)}function _Q(Z){let K=Az(Z);return K!==null&&K!==void 0?K:1}function TQ(Z,K){var W;let Y=Z&&I1(Z,N9),N=Math.abs((W=Y===null||Y===void 0?void 0:Y.step)!==null&&W!==void 0?W:K);return N===0?0.1:Math.pow(10,Math.floor(Math.log10(N))-1)}let nJ=I("ckb");class w7{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),this.element=Z.createElement("div"),this.element.classList.add(nJ()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("label");W.classList.add(nJ("l")),this.element.appendChild(W);let Y=Z.createElement("input");Y.classList.add(nJ("i")),Y.type="checkbox",W.appendChild(Y),this.inputElement=Y,K.viewProps.bindDisabled(this.inputElement);let N=Z.createElement("div");N.classList.add(nJ("w")),W.appendChild(N);let V=M0(Z,"check");N.appendChild(V),K.value.emitter.on("change",this.onValueChange_),this.value=K.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class M7{constructor(Z,K){this.onInputChange_=this.onInputChange_.bind(this),this.value=K.value,this.viewProps=K.viewProps,this.view=new w7(Z,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(Z){let K=F(Z.currentTarget);this.value.rawValue=K.checked}}function Oz(Z){let K=[],W=lZ(Z.options);if(W)K.push(W);return new P1(K)}let Nz={id:"input-bool",type:"input",accept:(Z,K)=>{if(typeof Z!=="boolean")return null;let Y=E(K,{options:$.optional.custom(sJ)});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>MQ,constraint:(Z)=>Oz(Z.params),writer:(Z)=>HJ},controller:(Z)=>{let{document:K,value:W,constraint:Y}=Z,N=Y&&I1(Y,f1);if(N)return new _1(K,{props:new S({options:N.values.value("options")}),value:W,viewProps:Z.viewProps});return new M7(K,{value:W,viewProps:Z.viewProps})}},o9=I("col");class V7{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(o9()),K.foldable.bindExpandedClass(this.element,o9(void 0,"expanded")),h(K.foldable,"completed",y(this.element,o9(void 0,"cpl")));let W=Z.createElement("div");W.classList.add(o9("h")),this.element.appendChild(W);let Y=Z.createElement("div");Y.classList.add(o9("s")),W.appendChild(Y),this.swatchElement=Y;let N=Z.createElement("div");if(N.classList.add(o9("t")),W.appendChild(N),this.textElement=N,K.pickerLayout==="inline"){let V=Z.createElement("div");V.classList.add(o9("p")),this.element.appendChild(V),this.pickerElement=V}else this.pickerElement=null}}function Bz(Z,K,W){let Y=Z1(Z/255,0,1),N=Z1(K/255,0,1),V=Z1(W/255,0,1),d=Math.max(Y,N,V),z0=Math.min(Y,N,V),S0=d-z0,P0=0,u0=0,g0=(z0+d)/2;if(S0!==0){if(u0=S0/(1-Math.abs(d+z0-1)),Y===d)P0=(N-V)/S0;else if(N===d)P0=2+(V-Y)/S0;else P0=4+(Y-N)/S0;P0=P0/6+(P0<0?1:0)}return[P0*360,u0*100,g0*100]}function Lz(Z,K,W){let Y=(Z%360+360)%360,N=Z1(K/100,0,1),V=Z1(W/100,0,1),d=(1-Math.abs(2*V-1))*N,z0=d*(1-Math.abs(Y/60%2-1)),S0=V-d/2,P0,u0,g0;if(Y>=0&&Y<60)[P0,u0,g0]=[d,z0,0];else if(Y>=60&&Y<120)[P0,u0,g0]=[z0,d,0];else if(Y>=120&&Y<180)[P0,u0,g0]=[0,d,z0];else if(Y>=180&&Y<240)[P0,u0,g0]=[0,z0,d];else if(Y>=240&&Y<300)[P0,u0,g0]=[z0,0,d];else[P0,u0,g0]=[d,0,z0];return[(P0+S0)*255,(u0+S0)*255,(g0+S0)*255]}function jz(Z,K,W){let Y=Z1(Z/255,0,1),N=Z1(K/255,0,1),V=Z1(W/255,0,1),d=Math.max(Y,N,V),z0=Math.min(Y,N,V),S0=d-z0,P0;if(S0===0)P0=0;else if(d===Y)P0=60*(((N-V)/S0%6+6)%6);else if(d===N)P0=60*((V-Y)/S0+2);else P0=60*((Y-N)/S0+4);let u0=d===0?0:S0/d,g0=d;return[P0,u0*100,g0*100]}function R7(Z,K,W){let Y=Y7(Z,360),N=Z1(K/100,0,1),V=Z1(W/100,0,1),d=V*N,z0=d*(1-Math.abs(Y/60%2-1)),S0=V-d,P0,u0,g0;if(Y>=0&&Y<60)[P0,u0,g0]=[d,z0,0];else if(Y>=60&&Y<120)[P0,u0,g0]=[z0,d,0];else if(Y>=120&&Y<180)[P0,u0,g0]=[0,d,z0];else if(Y>=180&&Y<240)[P0,u0,g0]=[0,z0,d];else if(Y>=240&&Y<300)[P0,u0,g0]=[z0,0,d];else[P0,u0,g0]=[d,0,z0];return[(P0+S0)*255,(u0+S0)*255,(g0+S0)*255]}function wz(Z,K,W){let Y=W+K*(100-Math.abs(2*W-100))/200;return[Z,Y!==0?K*(100-Math.abs(2*W-100))/Y:0,W+K*(100-Math.abs(2*W-100))/200]}function Mz(Z,K,W){let Y=100-Math.abs(W*(200-K)/100-100);return[Z,Y!==0?K*W/Y:0,W*(200-K)/200]}function t9(Z){return[Z[0],Z[1],Z[2]]}function $7(Z,K){return[Z[0],Z[1],Z[2],K]}let Vz={hsl:{hsl:(Z,K,W)=>[Z,K,W],hsv:wz,rgb:Lz},hsv:{hsl:Mz,hsv:(Z,K,W)=>[Z,K,W],rgb:R7},rgb:{hsl:Bz,hsv:jz,rgb:(Z,K,W)=>[Z,K,W]}};function oJ(Z,K){return[K==="float"?1:Z==="rgb"?255:360,K==="float"?1:Z==="rgb"?255:100,K==="float"?1:Z==="rgb"?255:100]}function Rz(Z,K){return Z===K?K:Y7(Z,K)}function $z(Z,K,W){var Y;let N=oJ(K,W);return[K==="rgb"?Z1(Z[0],0,N[0]):Rz(Z[0],N[0]),Z1(Z[1],0,N[1]),Z1(Z[2],0,N[2]),Z1((Y=Z[3])!==null&&Y!==void 0?Y:1,0,1)]}function k7(Z,K,W,Y){let N=oJ(K,W),V=oJ(K,Y);return Z.map((d,z0)=>d/N[z0]*V[z0])}function kz(Z,K,W){let Y=k7(Z,K.mode,K.type,"int"),N=Vz[K.mode][W.mode](...Y);return k7(N,W.mode,"int",W.type)}function tJ(Z,K){if(typeof Z!=="object"||D(Z))return!1;return K in Z&&typeof Z[K]==="number"}class T0{static black(Z="int"){return new T0([0,0,0],"rgb",Z)}static fromObject(Z,K="int"){let W="a"in Z?[Z.r,Z.g,Z.b,Z.a]:[Z.r,Z.g,Z.b];return new T0(W,"rgb",K)}static toRgbaObject(Z,K="int"){return Z.toRgbaObject(K)}static isRgbColorObject(Z){return tJ(Z,"r")&&tJ(Z,"g")&&tJ(Z,"b")}static isRgbaColorObject(Z){return this.isRgbColorObject(Z)&&tJ(Z,"a")}static isColorObject(Z){return this.isRgbColorObject(Z)}static equals(Z,K){if(Z.mode!==K.mode)return!1;let W=Z.comps_,Y=K.comps_;for(let N=0;NK.inputElement)];if(this.alphaViews_)Z.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement);return Z}}function Pz(Z){return Z==="int"?"int":Z==="float"?"float":void 0}function sZ(Z){let K=$;return E(Z,{alpha:K.optional.boolean,color:K.optional.object({alpha:K.optional.boolean,type:K.optional.custom(Pz)}),expanded:K.optional.boolean,picker:K.optional.custom(L7)})}function r9(Z){return Z?0.1:1}function a9(Z){var K;return(K=Z.color)===null||K===void 0?void 0:K.type}function Iz(Z,K){return Z.alpha===K.alpha&&Z.mode===K.mode&&Z.notation===K.notation&&Z.type===K.type}function C1(Z,K){let W=Z.match(/^(.+)%$/);if(!W)return Math.min(parseFloat(Z),K);return Math.min(parseFloat(W[1])*0.01*K,K)}let Sz={deg:(Z)=>Z,grad:(Z)=>Z*360/400,rad:(Z)=>Z*360/(2*Math.PI),turn:(Z)=>Z*360};function I7(Z){let K=Z.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!K)return parseFloat(Z);let W=parseFloat(K[1]),Y=K[2];return Sz[Y](W)}function S7(Z){let K=Z.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!K)return null;let W=[C1(K[1],255),C1(K[2],255),C1(K[3],255)];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2]))return null;return W}function _7(Z){return(K)=>{let W=S7(K);return W?new T0(W,"rgb",Z):null}}function T7(Z){let K=Z.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(!K)return null;let W=[C1(K[1],255),C1(K[2],255),C1(K[3],255),C1(K[4],1)];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2])||isNaN(W[3]))return null;return W}function C7(Z){return(K)=>{let W=T7(K);return W?new T0(W,"rgb",Z):null}}function E7(Z){let K=Z.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(!K)return null;let W=[I7(K[1]),C1(K[2],100),C1(K[3],100)];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2]))return null;return W}function y7(Z){return(K)=>{let W=E7(K);return W?new T0(W,"hsl",Z):null}}function h7(Z){let K=Z.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(!K)return null;let W=[I7(K[1]),C1(K[2],100),C1(K[3],100),C1(K[4],1)];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2])||isNaN(W[3]))return null;return W}function b7(Z){return(K)=>{let W=h7(K);return W?new T0(W,"hsl",Z):null}}function x7(Z){let K=Z.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(K)return[parseInt(K[1]+K[1],16),parseInt(K[2]+K[2],16),parseInt(K[3]+K[3],16)];let W=Z.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);if(W)return[parseInt(W[1],16),parseInt(W[2],16),parseInt(W[3],16)];return null}function _z(Z){let K=x7(Z);return K?new T0(K,"rgb","int"):null}function f7(Z){let K=Z.match(/^#?([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(K)return[parseInt(K[1]+K[1],16),parseInt(K[2]+K[2],16),parseInt(K[3]+K[3],16),o0(parseInt(K[4]+K[4],16),0,255,0,1)];let W=Z.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);if(W)return[parseInt(W[1],16),parseInt(W[2],16),parseInt(W[3],16),o0(parseInt(W[4],16),0,255,0,1)];return null}function Tz(Z){let K=f7(Z);return K?new T0(K,"rgb","int"):null}function v7(Z){let K=Z.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(!K)return null;let W=[parseFloat(K[1]),parseFloat(K[2]),parseFloat(K[3])];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2]))return null;return W}function u7(Z){return(K)=>{let W=v7(K);return W?new T0(W,"rgb",Z):null}}function m7(Z){let K=Z.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(!K)return null;let W=[parseFloat(K[1]),parseFloat(K[2]),parseFloat(K[3]),parseFloat(K[4])];if(isNaN(W[0])||isNaN(W[1])||isNaN(W[2])||isNaN(W[3]))return null;return W}function d7(Z){return(K)=>{let W=m7(K);return W?new T0(W,"rgb",Z):null}}let Cz=[{parser:x7,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:f7,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:S7,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:T7,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:E7,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:h7,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:v7,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:m7,result:{alpha:!0,mode:"rgb",notation:"object"}}];function Ez(Z){return Cz.reduce((K,{parser:W,result:Y})=>{if(K)return K;return W(Z)?Y:null},null)}function iZ(Z,K="int"){let W=Ez(Z);if(!W)return null;if(W.notation==="hex"&&K!=="float")return Object.assign(Object.assign({},W),{type:"int"});if(W.notation==="func")return Object.assign(Object.assign({},W),{type:K});return null}let g7={int:[_z,Tz,_7("int"),C7("int"),y7("int"),b7("int"),u7("int"),d7("int")],float:[_7("float"),C7("float"),y7("float"),b7("float"),u7("float"),d7("float")]};function yz(Z){let K=g7[Z];return(W)=>{if(typeof W!=="string")return T0.black(Z);let Y=K.reduce((N,V)=>{if(N)return N;return V(W)},null);return Y!==null&&Y!==void 0?Y:T0.black(Z)}}function nZ(Z){let K=g7[Z];return(W)=>{return K.reduce((Y,N)=>{if(Y)return Y;return N(W)},null)}}function p7(Z){let K=Z1(Math.floor(Z),0,255).toString(16);return K.length===1?`0${K}`:K}function c7(Z,K="#"){let W=t9(Z.getComponents("rgb")).map(p7).join("");return`${K}${W}`}function oZ(Z,K="#"){let W=Z.getComponents("rgb"),Y=[W[0],W[1],W[2],W[3]*255].map(p7).join("");return`${K}${Y}`}function l7(Z,K){let W=H1(K==="float"?2:0);return`rgb(${t9(Z.getComponents("rgb",K)).map((N)=>W(N)).join(", ")})`}function hz(Z){return(K)=>{return l7(K,Z)}}function rJ(Z,K){let W=H1(2),Y=H1(K==="float"?2:0);return`rgba(${Z.getComponents("rgb",K).map((V,d)=>{return(d===3?W:Y)(V)}).join(", ")})`}function bz(Z){return(K)=>{return rJ(K,Z)}}function xz(Z){let K=[H1(0),cJ,cJ];return`hsl(${t9(Z.getComponents("hsl")).map((Y,N)=>K[N](Y)).join(", ")})`}function fz(Z){let K=[H1(0),cJ,cJ,H1(2)];return`hsla(${Z.getComponents("hsl").map((Y,N)=>K[N](Y)).join(", ")})`}function s7(Z,K){let W=H1(K==="float"?2:0),Y=["r","g","b"];return`{${t9(Z.getComponents("rgb",K)).map((V,d)=>`${Y[d]}: ${W(V)}`).join(", ")}}`}function vz(Z){return(K)=>s7(K,Z)}function i7(Z,K){let W=H1(2),Y=H1(K==="float"?2:0),N=["r","g","b","a"];return`{${Z.getComponents("rgb",K).map((d,z0)=>{let S0=z0===3?W:Y;return`${N[z0]}: ${S0(d)}`}).join(", ")}}`}function uz(Z){return(K)=>i7(K,Z)}let mz=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:c7},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:oZ},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:xz},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:fz},...["int","float"].reduce((Z,K)=>{return[...Z,{format:{alpha:!1,mode:"rgb",notation:"func",type:K},stringifier:hz(K)},{format:{alpha:!0,mode:"rgb",notation:"func",type:K},stringifier:bz(K)},{format:{alpha:!1,mode:"rgb",notation:"object",type:K},stringifier:vz(K)},{format:{alpha:!0,mode:"rgb",notation:"object",type:K},stringifier:uz(K)}]},[])];function tZ(Z){return mz.reduce((K,W)=>{if(K)return K;return Iz(W.format,Z)?W.stringifier:null},null)}let qJ=I("apl");class n7{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),this.value=K.value,this.value.emitter.on("change",this.onValueChange_),this.element=Z.createElement("div"),this.element.classList.add(qJ()),K.viewProps.bindClassModifiers(this.element),K.viewProps.bindTabIndex(this.element);let W=Z.createElement("div");W.classList.add(qJ("b")),this.element.appendChild(W);let Y=Z.createElement("div");Y.classList.add(qJ("c")),W.appendChild(Y),this.colorElem_=Y;let N=Z.createElement("div");N.classList.add(qJ("m")),this.element.appendChild(N),this.markerElem_=N;let V=Z.createElement("div");V.classList.add(qJ("p")),this.markerElem_.appendChild(V),this.previewElem_=V,this.update_()}update_(){let Z=this.value.rawValue,K=Z.getComponents("rgb"),W=new T0([K[0],K[1],K[2],0],"rgb"),Y=new T0([K[0],K[1],K[2],255],"rgb"),N=["to right",rJ(W),rJ(Y)];this.colorElem_.style.background=`linear-gradient(${N.join(",")})`,this.previewElem_.style.backgroundColor=rJ(Z);let V=o0(K[3],0,1,0,100);this.markerElem_.style.left=`${V}%`}onValueChange_(){this.update_()}}class o7{constructor(Z,K){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=K.value,this.viewProps=K.viewProps,this.view=new n7(Z,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new M9(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_(Z,K){if(!Z.point)return;let W=Z.point.x/Z.bounds.width,Y=this.value.rawValue,[N,V,d]=Y.getComponents("hsv");this.value.setRawValue(new T0([N,V,d,W],"hsv"),K)}onPointerDown_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerMove_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerUp_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!0,last:!0})}onKeyDown_(Z){let K=B1(r9(!0),Q9(Z));if(K===0)return;let W=this.value.rawValue,[Y,N,V,d]=W.getComponents("hsv");this.value.setRawValue(new T0([Y,N,V,d+K],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(Z){if(B1(r9(!0),Q9(Z))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}let CQ=I("coltxt");function dz(Z){let K=Z.createElement("select"),W=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"}];return K.appendChild(W.reduce((Y,N)=>{let V=Z.createElement("option");return V.textContent=N.text,V.value=N.value,Y.appendChild(V),Y},Z.createDocumentFragment())),K}class t7{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(CQ()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("div");W.classList.add(CQ("m")),this.modeElem_=dz(Z),this.modeElem_.classList.add(CQ("ms")),W.appendChild(this.modeSelectElement),K.viewProps.bindDisabled(this.modeElem_);let Y=Z.createElement("div");Y.classList.add(CQ("mm")),Y.appendChild(M0(Z,"dropdown")),W.appendChild(Y),this.element.appendChild(W);let N=Z.createElement("div");N.classList.add(CQ("w")),this.element.appendChild(N),this.textsElem_=N,this.textViews_=K.textViews,this.applyTextViews_(),_(K.colorMode,(V)=>{this.modeElem_.value=V})}get modeSelectElement(){return this.modeElem_}get textViews(){return this.textViews_}set textViews(Z){this.textViews_=Z,this.applyTextViews_()}applyTextViews_(){J0(this.textsElem_);let Z=this.element.ownerDocument;this.textViews_.forEach((K)=>{let W=Z.createElement("div");W.classList.add(CQ("c")),W.appendChild(K.element),this.textsElem_.appendChild(W)})}}function gz(Z){return H1(Z==="float"?2:0)}function pz(Z,K,W){let Y=oJ(Z,K)[W];return new S1({min:0,max:Y})}function rZ(Z,K,W){return new SQ(Z,{arrayPosition:W===0?"fst":W===2?"lst":"mid",baseStep:r9(!1),parser:K.parser,props:S.fromObject({draggingScale:K.colorType==="float"?0.01:1,formatter:gz(K.colorType)}),value:l(0,{constraint:pz(K.colorMode,K.colorType,W)}),viewProps:K.viewProps})}class r7{constructor(Z,K){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=K.colorType,this.parser_=K.parser,this.value=K.value,this.viewProps=K.viewProps,this.colorMode=l(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(Z),this.view=new t7(Z,{colorMode:this.colorMode,textViews:[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view],viewProps:this.viewProps}),this.view.modeSelectElement.addEventListener("change",this.onModeSelectChange_)}createComponentControllers_(Z){let K={colorMode:this.colorMode.rawValue,colorType:this.colorType_,parser:this.parser_,viewProps:this.viewProps},W=[rZ(Z,K,0),rZ(Z,K,1),rZ(Z,K,2)];return W.forEach((Y,N)=>{WJ({primary:this.value,secondary:Y.value,forward:(V)=>{return V.rawValue.getComponents(this.colorMode.rawValue,this.colorType_)[N]},backward:(V,d)=>{let z0=this.colorMode.rawValue,S0=V.rawValue.getComponents(z0,this.colorType_);return S0[N]=d.rawValue,new T0($7(t9(S0),S0[3]),z0,this.colorType_)}})}),W}onModeSelectChange_(Z){let K=Z.currentTarget;this.colorMode.rawValue=K.value,this.ccs_=this.createComponentControllers_(this.view.element.ownerDocument),this.view.textViews=[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view]}}let aZ=I("hpl");class a7{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),this.value=K.value,this.value.emitter.on("change",this.onValueChange_),this.element=Z.createElement("div"),this.element.classList.add(aZ()),K.viewProps.bindClassModifiers(this.element),K.viewProps.bindTabIndex(this.element);let W=Z.createElement("div");W.classList.add(aZ("c")),this.element.appendChild(W);let Y=Z.createElement("div");Y.classList.add(aZ("m")),this.element.appendChild(Y),this.markerElem_=Y,this.update_()}update_(){let Z=this.value.rawValue,[K]=Z.getComponents("hsv");this.markerElem_.style.backgroundColor=l7(new T0([K,100,100],"hsv"));let W=o0(K,0,360,0,100);this.markerElem_.style.left=`${W}%`}onValueChange_(){this.update_()}}class e7{constructor(Z,K){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=K.value,this.viewProps=K.viewProps,this.view=new a7(Z,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new M9(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_(Z,K){if(!Z.point)return;let W=o0(Z1(Z.point.x,0,Z.bounds.width),0,Z.bounds.width,0,360),Y=this.value.rawValue,[,N,V,d]=Y.getComponents("hsv");this.value.setRawValue(new T0([W,N,V,d],"hsv"),K)}onPointerDown_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerMove_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerUp_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!0,last:!0})}onKeyDown_(Z){let K=B1(r9(!1),Q9(Z));if(K===0)return;let W=this.value.rawValue,[Y,N,V,d]=W.getComponents("hsv");this.value.setRawValue(new T0([Y+K,N,V,d],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(Z){if(B1(r9(!1),Q9(Z))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}let eZ=I("svp"),Q5=64;class J5{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),this.value=K.value,this.value.emitter.on("change",this.onValueChange_),this.element=Z.createElement("div"),this.element.classList.add(eZ()),K.viewProps.bindClassModifiers(this.element),K.viewProps.bindTabIndex(this.element);let W=Z.createElement("canvas");W.height=Q5,W.width=Q5,W.classList.add(eZ("c")),this.element.appendChild(W),this.canvasElement=W;let Y=Z.createElement("div");Y.classList.add(eZ("m")),this.element.appendChild(Y),this.markerElem_=Y,this.update_()}update_(){let Z=X0(this.canvasElement);if(!Z)return;let W=this.value.rawValue.getComponents("hsv"),Y=this.canvasElement.width,N=this.canvasElement.height,V=Z.getImageData(0,0,Y,N),d=V.data;for(let P0=0;P0{return W.rawValue.getComponents()[3]},backward:(W,Y)=>{let N=W.rawValue.getComponents();return N[3]=Y.rawValue,new T0(N,W.rawValue.mode)}});this.textC_=new r7(Z,{colorType:K.colorType,parser:e1,value:this.value,viewProps:this.viewProps}),this.view=new P7(Z,{alphaViews:this.alphaIcs_?{palette:this.alphaIcs_.palette.view,text:this.alphaIcs_.text.view}:null,hPaletteView:this.hPaletteC_.view,supportsAlpha:K.supportsAlpha,svPaletteView:this.svPaletteC_.view,textView:this.textC_.view,viewProps:this.viewProps})}get textController(){return this.textC_}}let Q6=I("colsw");class z5{constructor(Z,K){this.onValueChange_=this.onValueChange_.bind(this),K.value.emitter.on("change",this.onValueChange_),this.value=K.value,this.element=Z.createElement("div"),this.element.classList.add(Q6()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("div");W.classList.add(Q6("sw")),this.element.appendChild(W),this.swatchElem_=W;let Y=Z.createElement("button");Y.classList.add(Q6("b")),K.viewProps.bindDisabled(Y),this.element.appendChild(Y),this.buttonElement=Y,this.update_()}update_(){let Z=this.value.rawValue;this.swatchElem_.style.backgroundColor=oZ(Z)}onValueChange_(){this.update_()}}class U5{constructor(Z,K){this.value=K.value,this.viewProps=K.viewProps,this.view=new z5(Z,{value:this.value,viewProps:this.viewProps})}}class aJ{constructor(Z,K){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=K.value,this.viewProps=K.viewProps,this.foldable_=O0.create(K.expanded),this.swatchC_=new U5(Z,{value:this.value,viewProps:this.viewProps});let W=this.swatchC_.view.buttonElement;W.addEventListener("blur",this.onButtonBlur_),W.addEventListener("click",this.onButtonClick_),this.textC_=new L9(Z,{parser:K.parser,props:S.fromObject({formatter:K.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new V7(Z,{foldable:this.foldable_,pickerLayout:K.pickerLayout}),this.view.swatchElement.appendChild(this.swatchC_.view.element),this.view.textElement.appendChild(this.textC_.view.element),this.popC_=K.pickerLayout==="popup"?new d1(Z,{viewProps:this.viewProps}):null;let Y=new K5(Z,{colorType:K.colorType,supportsAlpha:K.supportsAlpha,value:this.value,viewProps:this.viewProps});if(Y.view.allFocusableElements.forEach((N)=>{N.addEventListener("blur",this.onPopupChildBlur_),N.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=Y,this.popC_)this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(Y.view.element),WJ({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:(N)=>N.rawValue,backward:(N,V)=>V.rawValue});else if(this.view.pickerElement)this.view.pickerElement.appendChild(this.pickerC_.view.element),z1(this.foldable_,this.view.pickerElement)}get textController(){return this.textC_}onButtonBlur_(Z){if(!this.popC_)return;let K=this.view.element,W=F(Z.relatedTarget);if(!W||!K.contains(W))this.popC_.shows.rawValue=!1}onButtonClick_(){if(this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded"))this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(Z){if(!this.popC_)return;let K=this.popC_.view.element,W=D0(Z);if(W&&K.contains(W))return;if(W&&W===this.swatchC_.view.buttonElement&&!B0(K.ownerDocument))return;this.popC_.shows.rawValue=!1}onPopupChildKeydown_(Z){if(this.popC_){if(Z.key==="Escape")this.popC_.shows.rawValue=!1}else if(this.view.pickerElement){if(Z.key==="Escape")this.swatchC_.view.buttonElement.focus()}}}function cz(Z,K){if(T0.isColorObject(Z))return T0.fromObject(Z,K);return T0.black(K)}function lz(Z){return t9(Z.getComponents("rgb")).reduce((K,W)=>{return K<<8|Math.floor(W)&255},0)}function sz(Z){return Z.getComponents("rgb").reduce((K,W,Y)=>{let N=Math.floor(Y===3?W*255:W)&255;return K<<8|N},0)>>>0}function iz(Z){return new T0([Z>>16&255,Z>>8&255,Z&255],"rgb")}function nz(Z){return new T0([Z>>24&255,Z>>16&255,Z>>8&255,o0(Z&255,0,255,0,1)],"rgb")}function oz(Z){if(typeof Z!=="number")return T0.black();return iz(Z)}function tz(Z){if(typeof Z!=="number")return T0.black();return nz(Z)}function rz(Z){let K=tZ(Z);return K?(W,Y)=>{HJ(W,K(Y))}:null}function az(Z){let K=Z?sz:lz;return(W,Y)=>{HJ(W,K(Y))}}function ez(Z,K,W){let Y=K.toRgbaObject(W);Z.writeProperty("r",Y.r),Z.writeProperty("g",Y.g),Z.writeProperty("b",Y.b),Z.writeProperty("a",Y.a)}function QU(Z,K,W){let Y=K.toRgbaObject(W);Z.writeProperty("r",Y.r),Z.writeProperty("g",Y.g),Z.writeProperty("b",Y.b)}function JU(Z,K){return(W,Y)=>{if(Z)ez(W,Y,K);else QU(W,Y,K)}}function J6(Z){var K;if((Z===null||Z===void 0?void 0:Z.alpha)||((K=Z===null||Z===void 0?void 0:Z.color)===null||K===void 0?void 0:K.alpha))return!0;return!1}function ZU(Z){return Z?(K)=>oZ(K,"0x"):(K)=>c7(K,"0x")}function KU(Z){if("color"in Z)return!0;if("view"in Z&&Z.view==="color")return!0;return!1}let zU={id:"input-color-number",type:"input",accept:(Z,K)=>{if(typeof Z!=="number")return null;if(!KU(K))return null;let W=sZ(K);return W?{initialValue:Z,params:W}:null},binding:{reader:(Z)=>{return J6(Z.params)?tz:oz},equals:T0.equals,writer:(Z)=>{return az(J6(Z.params))}},controller:(Z)=>{let K=J6(Z.params),W="expanded"in Z.params?Z.params.expanded:void 0,Y="picker"in Z.params?Z.params.picker:void 0;return new aJ(Z.document,{colorType:"int",expanded:W!==null&&W!==void 0?W:!1,formatter:ZU(K),parser:nZ("int"),pickerLayout:Y!==null&&Y!==void 0?Y:"popup",supportsAlpha:K,value:Z.value,viewProps:Z.viewProps})}};function UU(Z){return T0.isRgbaColorObject(Z)}function XU(Z){return(K)=>{return cz(K,Z)}}function WU(Z,K){return(W)=>{if(Z)return i7(W,K);return s7(W,K)}}let GU={id:"input-color-object",type:"input",accept:(Z,K)=>{if(!T0.isColorObject(Z))return null;let W=sZ(K);return W?{initialValue:Z,params:W}:null},binding:{reader:(Z)=>XU(a9(Z.params)),equals:T0.equals,writer:(Z)=>JU(UU(Z.initialValue),a9(Z.params))},controller:(Z)=>{var K;let W=T0.isRgbaColorObject(Z.initialValue),Y="expanded"in Z.params?Z.params.expanded:void 0,N="picker"in Z.params?Z.params.picker:void 0,V=(K=a9(Z.params))!==null&&K!==void 0?K:"int";return new aJ(Z.document,{colorType:V,expanded:Y!==null&&Y!==void 0?Y:!1,formatter:WU(W,V),parser:nZ(V),pickerLayout:N!==null&&N!==void 0?N:"popup",supportsAlpha:W,value:Z.value,viewProps:Z.viewProps})}},HU={id:"input-color-string",type:"input",accept:(Z,K)=>{if(typeof Z!=="string")return null;if("view"in K&&K.view==="text")return null;let W=iZ(Z,a9(K));if(!W)return null;if(!tZ(W))return null;let N=sZ(K);return N?{initialValue:Z,params:N}:null},binding:{reader:(Z)=>{var K;return yz((K=a9(Z.params))!==null&&K!==void 0?K:"int")},equals:T0.equals,writer:(Z)=>{let K=iZ(Z.initialValue,a9(Z.params));if(!K)throw B.shouldNeverHappen();let W=rz(K);if(!W)throw B.notBindable();return W}},controller:(Z)=>{let K=iZ(Z.initialValue,a9(Z.params));if(!K)throw B.shouldNeverHappen();let W=tZ(K);if(!W)throw B.shouldNeverHappen();let Y="expanded"in Z.params?Z.params.expanded:void 0,N="picker"in Z.params?Z.params.picker:void 0;return new aJ(Z.document,{colorType:K.type,expanded:Y!==null&&Y!==void 0?Y:!1,formatter:W,parser:nZ(K.type),pickerLayout:N!==null&&N!==void 0?N:"popup",supportsAlpha:K.alpha,value:Z.value,viewProps:Z.viewProps})}};class J9{constructor(Z){this.components=Z.components,this.asm_=Z.assembly}constrain(Z){let K=this.asm_.toComponents(Z).map((W,Y)=>{var N,V;return(V=(N=this.components[Y])===null||N===void 0?void 0:N.constrain(W))!==null&&V!==void 0?V:W});return this.asm_.fromComponents(K)}}let X5=I("pndtxt");class W5{constructor(Z,K){this.textViews=K.textViews,this.element=Z.createElement("div"),this.element.classList.add(X5()),this.textViews.forEach((W)=>{let Y=Z.createElement("div");Y.classList.add(X5("a")),Y.appendChild(W.element),this.element.appendChild(Y)})}}function qU(Z,K,W){return new SQ(Z,{arrayPosition:W===0?"fst":W===K.axes.length-1?"lst":"mid",baseStep:K.axes[W].baseStep,parser:K.parser,props:K.axes[W].textProps,value:l(0,{constraint:K.axes[W].constraint}),viewProps:K.viewProps})}class eJ{constructor(Z,K){this.value=K.value,this.viewProps=K.viewProps,this.acs_=K.axes.map((W,Y)=>qU(Z,K,Y)),this.acs_.forEach((W,Y)=>{WJ({primary:this.value,secondary:W.value,forward:(N)=>{return K.assembly.toComponents(N.rawValue)[Y]},backward:(N,V)=>{let d=K.assembly.toComponents(N.rawValue);return d[Y]=V.rawValue,K.assembly.fromComponents(d)}})}),this.view=new W5(Z,{textViews:this.acs_.map((W)=>W.view)})}}function G5(Z,K){if("step"in Z&&!D(Z.step))return new N9(Z.step,K);return null}function H5(Z){if(!D(Z.max)&&!D(Z.min))return new S1({max:Z.max,min:Z.min});if(!D(Z.max)||!D(Z.min))return new g9({max:Z.max,min:Z.min});return null}function FU(Z){let K=I1(Z,S1);if(K)return[K.values.get("min"),K.values.get("max")];let W=I1(Z,g9);if(W)return[W.minValue,W.maxValue];return[void 0,void 0]}function DU(Z,K){let W=[],Y=G5(Z,K);if(Y)W.push(Y);let N=H5(Z);if(N)W.push(N);let V=lZ(Z.options);if(V)W.push(V);return new P1(W)}let YU={id:"input-number",type:"input",accept:(Z,K)=>{if(typeof Z!=="number")return null;let W=$,Y=E(K,{format:W.optional.function,max:W.optional.number,min:W.optional.number,options:W.optional.custom(sJ),step:W.optional.number});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>H7,constraint:(Z)=>DU(Z.params,Z.initialValue),writer:(Z)=>HJ},controller:(Z)=>{var K;let{value:W,constraint:Y}=Z,N=Y&&I1(Y,f1);if(N)return new _1(Z.document,{props:new S({options:N.values.value("options")}),value:W,viewProps:Z.viewProps});let V=(K=("format"in Z.params)?Z.params.format:void 0)!==null&&K!==void 0?K:H1(iJ(Y,W.rawValue)),d=Y&&I1(Y,S1);if(d)return new lJ(Z.document,{baseStep:_Q(Y),parser:e1,sliderProps:new S({maxValue:d.values.value("max"),minValue:d.values.value("min")}),textProps:S.fromObject({draggingScale:TQ(Y,W.rawValue),formatter:V}),value:W,viewProps:Z.viewProps});return new SQ(Z.document,{baseStep:_Q(Y),parser:e1,props:S.fromObject({draggingScale:TQ(Y,W.rawValue),formatter:V}),value:W,viewProps:Z.viewProps})}};class Z9{constructor(Z=0,K=0){this.x=Z,this.y=K}getComponents(){return[this.x,this.y]}static isObject(Z){if(D(Z))return!1;let{x:K,y:W}=Z;if(typeof K!=="number"||typeof W!=="number")return!1;return!0}static equals(Z,K){return Z.x===K.x&&Z.y===K.y}toObject(){return{x:this.x,y:this.y}}}let q5={toComponents:(Z)=>Z.getComponents(),fromComponents:(Z)=>new Z9(...Z)},EQ=I("p2d");class F5{constructor(Z,K){this.element=Z.createElement("div"),this.element.classList.add(EQ()),K.viewProps.bindClassModifiers(this.element),_(K.expanded,y(this.element,EQ(void 0,"expanded")));let W=Z.createElement("div");W.classList.add(EQ("h")),this.element.appendChild(W);let Y=Z.createElement("button");Y.classList.add(EQ("b")),Y.appendChild(M0(Z,"p2dpad")),K.viewProps.bindDisabled(Y),W.appendChild(Y),this.buttonElement=Y;let N=Z.createElement("div");if(N.classList.add(EQ("t")),W.appendChild(N),this.textElement=N,K.pickerLayout==="inline"){let V=Z.createElement("div");V.classList.add(EQ("p")),this.element.appendChild(V),this.pickerElement=V}else this.pickerElement=null}}let $9=I("p2dp");class D5{constructor(Z,K){if(this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.invertsY_=K.invertsY,this.maxValue_=K.maxValue,this.element=Z.createElement("div"),this.element.classList.add($9()),K.layout==="popup")this.element.classList.add($9(void 0,"p"));K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("div");W.classList.add($9("p")),K.viewProps.bindTabIndex(W),this.element.appendChild(W),this.padElement=W;let Y=Z.createElementNS(H0,"svg");Y.classList.add($9("g")),this.padElement.appendChild(Y),this.svgElem_=Y;let N=Z.createElementNS(H0,"line");N.classList.add($9("ax")),N.setAttributeNS(null,"x1","0"),N.setAttributeNS(null,"y1","50%"),N.setAttributeNS(null,"x2","100%"),N.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(N);let V=Z.createElementNS(H0,"line");V.classList.add($9("ax")),V.setAttributeNS(null,"x1","50%"),V.setAttributeNS(null,"y1","0"),V.setAttributeNS(null,"x2","50%"),V.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(V);let d=Z.createElementNS(H0,"line");d.classList.add($9("l")),d.setAttributeNS(null,"x1","50%"),d.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(d),this.lineElem_=d;let z0=Z.createElement("div");z0.classList.add($9("m")),this.padElement.appendChild(z0),this.markerElem_=z0,K.value.emitter.on("change",this.onValueChange_),this.value=K.value,this.update_()}get allFocusableElements(){return[this.padElement]}update_(){let[Z,K]=this.value.rawValue.getComponents(),W=this.maxValue_,Y=o0(Z,-W,+W,0,100),N=o0(K,-W,+W,0,100),V=this.invertsY_?100-N:N;this.lineElem_.setAttributeNS(null,"x2",`${Y}%`),this.lineElem_.setAttributeNS(null,"y2",`${V}%`),this.markerElem_.style.left=`${Y}%`,this.markerElem_.style.top=`${V}%`}onValueChange_(){this.update_()}onFoldableChange_(){this.update_()}}function Y5(Z,K,W){return[B1(K[0],Q9(Z)),B1(K[1],GJ(Z))*(W?1:-1)]}class A5{constructor(Z,K){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=K.value,this.viewProps=K.viewProps,this.baseSteps_=K.baseSteps,this.maxValue_=K.maxValue,this.invertsY_=K.invertsY,this.view=new D5(Z,{invertsY:this.invertsY_,layout:K.layout,maxValue:this.maxValue_,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new M9(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_(Z,K){if(!Z.point)return;let W=this.maxValue_,Y=o0(Z.point.x,0,Z.bounds.width,-W,+W),N=o0(this.invertsY_?Z.bounds.height-Z.point.y:Z.point.y,0,Z.bounds.height,-W,+W);this.value.setRawValue(new Z9(Y,N),K)}onPointerDown_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerMove_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!1,last:!1})}onPointerUp_(Z){this.handlePointerEvent_(Z.data,{forceEmit:!0,last:!0})}onPadKeyDown_(Z){if(F7(Z.key))Z.preventDefault();let[K,W]=Y5(Z,this.baseSteps_,this.invertsY_);if(K===0&&W===0)return;this.value.setRawValue(new Z9(this.value.rawValue.x+K,this.value.rawValue.y+W),{forceEmit:!1,last:!1})}onPadKeyUp_(Z){let[K,W]=Y5(Z,this.baseSteps_,this.invertsY_);if(K===0&&W===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class O5{constructor(Z,K){var W,Y;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=K.value,this.viewProps=K.viewProps,this.foldable_=O0.create(K.expanded),this.popC_=K.pickerLayout==="popup"?new d1(Z,{viewProps:this.viewProps}):null;let N=new A5(Z,{baseSteps:[K.axes[0].baseStep,K.axes[1].baseStep],invertsY:K.invertsY,layout:K.pickerLayout,maxValue:K.maxValue,value:this.value,viewProps:this.viewProps});if(N.view.allFocusableElements.forEach((V)=>{V.addEventListener("blur",this.onPopupChildBlur_),V.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=N,this.textC_=new eJ(Z,{assembly:q5,axes:K.axes,parser:K.parser,value:this.value,viewProps:this.viewProps}),this.view=new F5(Z,{expanded:this.foldable_.value("expanded"),pickerLayout:K.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(W=this.view.buttonElement)===null||W===void 0||W.addEventListener("blur",this.onPadButtonBlur_),(Y=this.view.buttonElement)===null||Y===void 0||Y.addEventListener("click",this.onPadButtonClick_),this.popC_)this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),WJ({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:(V)=>V.rawValue,backward:(V,d)=>d.rawValue});else if(this.view.pickerElement)this.view.pickerElement.appendChild(this.pickerC_.view.element),z1(this.foldable_,this.view.pickerElement)}onPadButtonBlur_(Z){if(!this.popC_)return;let K=this.view.element,W=F(Z.relatedTarget);if(!W||!K.contains(W))this.popC_.shows.rawValue=!1}onPadButtonClick_(){if(this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded"))this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(Z){if(!this.popC_)return;let K=this.popC_.view.element,W=D0(Z);if(W&&K.contains(W))return;if(W&&W===this.view.buttonElement&&!B0(K.ownerDocument))return;this.popC_.shows.rawValue=!1}onPopupChildKeydown_(Z){if(this.popC_){if(Z.key==="Escape")this.popC_.shows.rawValue=!1}else if(this.view.pickerElement){if(Z.key==="Escape")this.view.buttonElement.focus()}}}class e9{constructor(Z=0,K=0,W=0){this.x=Z,this.y=K,this.z=W}getComponents(){return[this.x,this.y,this.z]}static isObject(Z){if(D(Z))return!1;let{x:K,y:W,z:Y}=Z;if(typeof K!=="number"||typeof W!=="number"||typeof Y!=="number")return!1;return!0}static equals(Z,K){return Z.x===K.x&&Z.y===K.y&&Z.z===K.z}toObject(){return{x:this.x,y:this.y,z:this.z}}}let N5={toComponents:(Z)=>Z.getComponents(),fromComponents:(Z)=>new e9(...Z)};function AU(Z){return e9.isObject(Z)?new e9(Z.x,Z.y,Z.z):new e9}function OU(Z,K){Z.writeProperty("x",K.x),Z.writeProperty("y",K.y),Z.writeProperty("z",K.z)}function NU(Z,K){return new J9({assembly:N5,components:[K9("x"in Z?Z.x:void 0,K.x),K9("y"in Z?Z.y:void 0,K.y),K9("z"in Z?Z.z:void 0,K.z)]})}function Z6(Z,K){return{baseStep:_Q(K),constraint:K,textProps:S.fromObject({draggingScale:TQ(K,Z),formatter:H1(iJ(K,Z))})}}let BU={id:"input-point3d",type:"input",accept:(Z,K)=>{if(!e9.isObject(Z))return null;let W=$,Y=E(K,{x:W.optional.custom(V9),y:W.optional.custom(V9),z:W.optional.custom(V9)});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>AU,constraint:(Z)=>NU(Z.params,Z.initialValue),equals:e9.equals,writer:(Z)=>OU},controller:(Z)=>{let{value:K,constraint:W}=Z;if(!(W instanceof J9))throw B.shouldNeverHappen();return new eJ(Z.document,{assembly:N5,axes:[Z6(K.rawValue.x,W.components[0]),Z6(K.rawValue.y,W.components[1]),Z6(K.rawValue.z,W.components[2])],parser:e1,value:K,viewProps:Z.viewProps})}};class QQ{constructor(Z=0,K=0,W=0,Y=0){this.x=Z,this.y=K,this.z=W,this.w=Y}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(Z){if(D(Z))return!1;let{x:K,y:W,z:Y,w:N}=Z;if(typeof K!=="number"||typeof W!=="number"||typeof Y!=="number"||typeof N!=="number")return!1;return!0}static equals(Z,K){return Z.x===K.x&&Z.y===K.y&&Z.z===K.z&&Z.w===K.w}toObject(){return{x:this.x,y:this.y,z:this.z,w:this.w}}}let B5={toComponents:(Z)=>Z.getComponents(),fromComponents:(Z)=>new QQ(...Z)};function LU(Z){return QQ.isObject(Z)?new QQ(Z.x,Z.y,Z.z,Z.w):new QQ}function jU(Z,K){Z.writeProperty("x",K.x),Z.writeProperty("y",K.y),Z.writeProperty("z",K.z),Z.writeProperty("w",K.w)}function wU(Z,K){return new J9({assembly:B5,components:[K9("x"in Z?Z.x:void 0,K.x),K9("y"in Z?Z.y:void 0,K.y),K9("z"in Z?Z.z:void 0,K.z),K9("w"in Z?Z.w:void 0,K.w)]})}function MU(Z,K){return{baseStep:_Q(K),constraint:K,textProps:S.fromObject({draggingScale:TQ(K,Z),formatter:H1(iJ(K,Z))})}}let VU={id:"input-point4d",type:"input",accept:(Z,K)=>{if(!QQ.isObject(Z))return null;let W=$,Y=E(K,{x:W.optional.custom(V9),y:W.optional.custom(V9),z:W.optional.custom(V9),w:W.optional.custom(V9)});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>LU,constraint:(Z)=>wU(Z.params,Z.initialValue),equals:QQ.equals,writer:(Z)=>jU},controller:(Z)=>{let{value:K,constraint:W}=Z;if(!(W instanceof J9))throw B.shouldNeverHappen();return new eJ(Z.document,{assembly:B5,axes:K.rawValue.getComponents().map((Y,N)=>MU(Y,W.components[N])),parser:e1,value:K,viewProps:Z.viewProps})}};function RU(Z){let K=[],W=lZ(Z.options);if(W)K.push(W);return new P1(K)}let $U={id:"input-string",type:"input",accept:(Z,K)=>{if(typeof Z!=="string")return null;let Y=E(K,{options:$.optional.custom(sJ)});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>q7,constraint:(Z)=>RU(Z.params),writer:(Z)=>HJ},controller:(Z)=>{let{document:K,value:W,constraint:Y}=Z,N=Y&&I1(Y,f1);if(N)return new _1(K,{props:new S({options:N.values.value("options")}),value:W,viewProps:Z.viewProps});return new L9(K,{parser:(V)=>V,props:S.fromObject({formatter:dZ}),value:W,viewProps:Z.viewProps})}},FJ={monitor:{defaultInterval:200,defaultLineCount:3}},L5=I("mll");class j5{constructor(Z,K){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=K.formatter,this.element=Z.createElement("div"),this.element.classList.add(L5()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("textarea");W.classList.add(L5("i")),W.style.height=`calc(var(--bld-us) * ${K.lineCount})`,W.readOnly=!0,K.viewProps.bindDisabled(W),this.element.appendChild(W),this.textareaElem_=W,K.value.emitter.on("change",this.onValueUpdate_),this.value=K.value,this.update_()}update_(){let Z=this.textareaElem_,K=Z.scrollTop===Z.scrollHeight-Z.clientHeight,W=[];if(this.value.rawValue.forEach((Y)=>{if(Y!==void 0)W.push(this.formatter_(Y))}),Z.textContent=W.join(` `),K)Z.scrollTop=Z.scrollHeight}onValueUpdate_(){this.update_()}}class QZ{constructor(Z,K){this.value=K.value,this.viewProps=K.viewProps,this.view=new j5(Z,{formatter:K.formatter,lineCount:K.lineCount,value:this.value,viewProps:this.viewProps})}}let w5=I("sgl");class M5{constructor(Z,K){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=K.formatter,this.element=Z.createElement("div"),this.element.classList.add(w5()),K.viewProps.bindClassModifiers(this.element);let W=Z.createElement("input");W.classList.add(w5("i")),W.readOnly=!0,W.type="text",K.viewProps.bindDisabled(W),this.element.appendChild(W),this.inputElement=W,K.value.emitter.on("change",this.onValueUpdate_),this.value=K.value,this.update_()}update_(){let Z=this.value.rawValue,K=Z[Z.length-1];this.inputElement.value=K!==void 0?this.formatter_(K):""}onValueUpdate_(){this.update_()}}class JZ{constructor(Z,K){this.value=K.value,this.viewProps=K.viewProps,this.view=new M5(Z,{formatter:K.formatter,value:this.value,viewProps:this.viewProps})}}let kU={id:"monitor-bool",type:"monitor",accept:(Z,K)=>{if(typeof Z!=="boolean")return null;let Y=E(K,{lineCount:$.optional.number});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>MQ},controller:(Z)=>{var K;if(Z.value.rawValue.length===1)return new JZ(Z.document,{formatter:VQ,value:Z.value,viewProps:Z.viewProps});return new QZ(Z.document,{formatter:VQ,lineCount:(K=Z.params.lineCount)!==null&&K!==void 0?K:FJ.monitor.defaultLineCount,value:Z.value,viewProps:Z.viewProps})}},k9=I("grl");class V5{constructor(Z,K){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=Z.createElement("div"),this.element.classList.add(k9()),K.viewProps.bindClassModifiers(this.element),this.formatter_=K.formatter,this.props_=K.props,this.cursor_=K.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);let W=Z.createElementNS(H0,"svg");W.classList.add(k9("g")),W.style.height=`calc(var(--bld-us) * ${K.lineCount})`,this.element.appendChild(W),this.svgElem_=W;let Y=Z.createElementNS(H0,"polyline");this.svgElem_.appendChild(Y),this.lineElem_=Y;let N=Z.createElement("div");N.classList.add(k9("t"),I("tt")()),this.element.appendChild(N),this.tooltipElem_=N,K.value.emitter.on("change",this.onValueUpdate_),this.value=K.value,this.update_()}get graphElement(){return this.svgElem_}update_(){let Z=this.svgElem_.getBoundingClientRect(),K=this.value.rawValue.length-1,W=this.props_.get("minValue"),Y=this.props_.get("maxValue"),N=[];this.value.rawValue.forEach((P0,u0)=>{if(P0===void 0)return;let g0=o0(u0,0,K,0,Z.width),JQ=o0(P0,W,Y,Z.height,0);N.push([g0,JQ].join(","))}),this.lineElem_.setAttributeNS(null,"points",N.join(" "));let V=this.tooltipElem_,d=this.value.rawValue[this.cursor_.rawValue];if(d===void 0){V.classList.remove(k9("t","a"));return}let z0=o0(this.cursor_.rawValue,0,K,0,Z.width),S0=o0(d,W,Y,Z.height,0);if(V.style.left=`${z0}px`,V.style.top=`${S0}px`,V.textContent=`${this.formatter_(d)}`,!V.classList.contains(k9("t","a")))V.classList.add(k9("t","a"),k9("t","in")),Z0(V),V.classList.remove(k9("t","in"))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class R5{constructor(Z,K){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_=K.props,this.value=K.value,this.viewProps=K.viewProps,this.cursor_=l(-1),this.view=new V5(Z,{cursor:this.cursor_,formatter:K.formatter,lineCount:K.lineCount,props:this.props_,value:this.value,viewProps:this.viewProps}),!B0(Z))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{let W=new M9(this.view.element);W.emitter.on("down",this.onGraphPointerDown_),W.emitter.on("move",this.onGraphPointerMove_),W.emitter.on("up",this.onGraphPointerUp_)}}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(Z){let K=this.view.element.getBoundingClientRect();this.cursor_.rawValue=Math.floor(o0(Z.offsetX,0,K.width,0,this.value.rawValue.length))}onGraphPointerDown_(Z){this.onGraphPointerMove_(Z)}onGraphPointerMove_(Z){if(!Z.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(o0(Z.data.point.x,0,Z.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function K6(Z){return"format"in Z&&!D(Z.format)?Z.format:H1(2)}function PU(Z){var K;if(Z.value.rawValue.length===1)return new JZ(Z.document,{formatter:K6(Z.params),value:Z.value,viewProps:Z.viewProps});return new QZ(Z.document,{formatter:K6(Z.params),lineCount:(K=Z.params.lineCount)!==null&&K!==void 0?K:FJ.monitor.defaultLineCount,value:Z.value,viewProps:Z.viewProps})}function IU(Z){var K,W,Y;return new R5(Z.document,{formatter:K6(Z.params),lineCount:(K=Z.params.lineCount)!==null&&K!==void 0?K:FJ.monitor.defaultLineCount,props:S.fromObject({maxValue:(W=("max"in Z.params)?Z.params.max:null)!==null&&W!==void 0?W:100,minValue:(Y=("min"in Z.params)?Z.params.min:null)!==null&&Y!==void 0?Y:0}),value:Z.value,viewProps:Z.viewProps})}function $5(Z){return"view"in Z&&Z.view==="graph"}let SU={id:"monitor-number",type:"monitor",accept:(Z,K)=>{if(typeof Z!=="number")return null;let W=$,Y=E(K,{format:W.optional.function,lineCount:W.optional.number,max:W.optional.number,min:W.optional.number,view:W.optional.string});return Y?{initialValue:Z,params:Y}:null},binding:{defaultBufferSize:(Z)=>$5(Z)?64:1,reader:(Z)=>H7},controller:(Z)=>{if($5(Z.params))return IU(Z);return PU(Z)}},_U={id:"monitor-string",type:"monitor",accept:(Z,K)=>{if(typeof Z!=="string")return null;let W=$,Y=E(K,{lineCount:W.optional.number,multiline:W.optional.boolean});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>q7},controller:(Z)=>{var K;let W=Z.value;if(W.rawValue.length>1||"multiline"in Z.params&&Z.params.multiline)return new QZ(Z.document,{formatter:dZ,lineCount:(K=Z.params.lineCount)!==null&&K!==void 0?K:FJ.monitor.defaultLineCount,value:W,viewProps:Z.viewProps});return new JZ(Z.document,{formatter:dZ,value:W,viewProps:Z.viewProps})}};function TU(Z,K){var W;let Y=Z.accept(K.target.read(),K.params);if(D(Y))return null;let N=$,V={target:K.target,initialValue:Y.initialValue,params:Y.params},d=Z.binding.reader(V),z0=Z.binding.constraint?Z.binding.constraint(V):void 0,S0=l(d(Y.initialValue),{constraint:z0,equals:Z.binding.equals}),P0=new BQ({reader:d,target:K.target,value:S0,writer:Z.binding.writer(V)}),u0=N.optional.boolean(K.params.disabled).value,g0=N.optional.boolean(K.params.hidden).value,JQ=Z.controller({constraint:z0,document:K.document,initialValue:Y.initialValue,params:Y.params,value:P0.value,viewProps:e.create({disabled:u0,hidden:g0})});return new C0(K.document,{binding:P0,blade:k0(),props:S.fromObject({label:"label"in K.params?(W=N.optional.string(K.params.label).value)!==null&&W!==void 0?W:null:K.target.key}),valueController:JQ})}function CU(Z,K){return K===0?new NQ:new t1(Z,K!==null&&K!==void 0?K:FJ.monitor.defaultInterval)}function EU(Z,K){var W,Y,N;let V=$,d=Z.accept(K.target.read(),K.params);if(D(d))return null;let z0={target:K.target,initialValue:d.initialValue,params:d.params},S0=Z.binding.reader(z0),P0=(Y=(W=V.optional.number(K.params.bufferSize).value)!==null&&W!==void 0?W:Z.binding.defaultBufferSize&&Z.binding.defaultBufferSize(d.params))!==null&&Y!==void 0?Y:1,u0=V.optional.number(K.params.interval).value,g0=new d9({reader:S0,target:K.target,ticker:CU(K.document,u0),value:QJ(P0)}),JQ=V.optional.boolean(K.params.disabled).value,DJ=V.optional.boolean(K.params.hidden).value,yQ=Z.controller({document:K.document,params:d.params,value:g0.value,viewProps:e.create({disabled:JQ,hidden:DJ})});return new E0(K.document,{binding:g0,blade:k0(),props:S.fromObject({label:"label"in K.params?(N=V.optional.string(K.params.label).value)!==null&&N!==void 0?N:null:K.target.key}),valueController:yQ})}class k5{constructor(){this.pluginsMap_={blades:[],inputs:[],monitors:[]}}getAll(){return[...this.pluginsMap_.blades,...this.pluginsMap_.inputs,...this.pluginsMap_.monitors]}register(Z){if(Z.type==="blade")this.pluginsMap_.blades.unshift(Z);else if(Z.type==="input")this.pluginsMap_.inputs.unshift(Z);else if(Z.type==="monitor")this.pluginsMap_.monitors.unshift(Z)}createInput(Z,K,W){let Y=K.read();if(D(Y))throw new B({context:{key:K.key},type:"nomatchingcontroller"});let N=this.pluginsMap_.inputs.reduce((V,d)=>V!==null&&V!==void 0?V:TU(d,{document:Z,target:K,params:W}),null);if(N)return N;throw new B({context:{key:K.key},type:"nomatchingcontroller"})}createMonitor(Z,K,W){let Y=this.pluginsMap_.monitors.reduce((N,V)=>N!==null&&N!==void 0?N:EU(V,{document:Z,params:W,target:K}),null);if(Y)return Y;throw new B({context:{key:K.key},type:"nomatchingcontroller"})}createBlade(Z,K){let W=this.pluginsMap_.blades.reduce((Y,N)=>Y!==null&&Y!==void 0?Y:m9(N,{document:Z,params:K}),null);if(!W)throw new B({type:"nomatchingview",context:{params:K}});return W}createBladeApi(Z){if(Z instanceof C0)return new n0(Z);if(Z instanceof E0)return new V0(Z);if(Z instanceof D9)return new X1(Z,this);let K=this.pluginsMap_.blades.reduce((W,Y)=>W!==null&&W!==void 0?W:Y.api({controller:Z,pool:this}),null);if(!K)throw B.shouldNeverHappen();return K}}function yU(){let Z=new k5;return[uU,BU,VU,$U,YU,HU,GU,zU,Nz,kU,_U,SU,i0,fZ,h9,eQ].forEach((K)=>{Z.register(K)}),Z}function hU(Z){return Z9.isObject(Z)?new Z9(Z.x,Z.y):new Z9}function bU(Z,K){Z.writeProperty("x",K.x),Z.writeProperty("y",K.y)}function K9(Z,K){if(!Z)return;let W=[],Y=G5(Z,K);if(Y)W.push(Y);let N=H5(Z);if(N)W.push(N);return new P1(W)}function xU(Z,K){return new J9({assembly:q5,components:[K9("x"in Z?Z.x:void 0,K.x),K9("y"in Z?Z.y:void 0,K.y)]})}function P5(Z,K){let[W,Y]=Z?FU(Z):[];if(!D(W)||!D(Y))return Math.max(Math.abs(W!==null&&W!==void 0?W:0),Math.abs(Y!==null&&Y!==void 0?Y:0));let N=_Q(Z);return Math.max(Math.abs(N)*10,Math.abs(K)*10)}function fU(Z,K){let W=K instanceof J9?K.components[0]:void 0,Y=K instanceof J9?K.components[1]:void 0,N=P5(W,Z.x),V=P5(Y,Z.y);return Math.max(N,V)}function I5(Z,K){return{baseStep:_Q(K),constraint:K,textProps:S.fromObject({draggingScale:TQ(K,Z),formatter:H1(iJ(K,Z))})}}function vU(Z){if(!("y"in Z))return!1;let K=Z.y;if(!K)return!1;return"inverted"in K?!!K.inverted:!1}let uU={id:"input-point2d",type:"input",accept:(Z,K)=>{if(!Z9.isObject(Z))return null;let W=$,Y=E(K,{expanded:W.optional.boolean,picker:W.optional.custom(L7),x:W.optional.custom(V9),y:W.optional.object({inverted:W.optional.boolean,max:W.optional.number,min:W.optional.number,step:W.optional.number})});return Y?{initialValue:Z,params:Y}:null},binding:{reader:(Z)=>hU,constraint:(Z)=>xU(Z.params,Z.initialValue),equals:Z9.equals,writer:(Z)=>bU},controller:(Z)=>{let{document:K,value:W,constraint:Y}=Z;if(!(Y instanceof J9))throw B.shouldNeverHappen();let N="expanded"in Z.params?Z.params.expanded:void 0,V="picker"in Z.params?Z.params.picker:void 0;return new O5(K,{axes:[I5(W.rawValue.x,Y.components[0]),I5(W.rawValue.y,Y.components[1])],expanded:N!==null&&N!==void 0?N:!1,invertsY:vU(Z.params),maxValue:fU(W.rawValue,Y),parser:e1,pickerLayout:V!==null&&V!==void 0?V:"popup",value:W,viewProps:Z.viewProps})}};class z6 extends z{constructor(Z){super(Z);this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",(K)=>{this.emitter_.emit("change",{event:new X(this,K.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}get options(){return this.controller_.valueController.props.get("options")}set options(Z){this.controller_.valueController.props.set("options",Z)}get value(){return this.controller_.valueController.value.rawValue}set value(Z){this.controller_.valueController.value.rawValue=Z}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}}class U6 extends z{constructor(Z){super(Z);this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",(K)=>{this.emitter_.emit("change",{event:new X(this,K.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}get maxValue(){return this.controller_.valueController.sliderController.props.get("maxValue")}set maxValue(Z){this.controller_.valueController.sliderController.props.set("maxValue",Z)}get minValue(){return this.controller_.valueController.sliderController.props.get("minValue")}set minValue(Z){this.controller_.valueController.sliderController.props.set("minValue",Z)}get value(){return this.controller_.valueController.value.rawValue}set value(Z){this.controller_.valueController.value.rawValue=Z}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}}class X6 extends z{constructor(Z){super(Z);this.emitter_=new j,this.controller_.valueController.value.emitter.on("change",(K)=>{this.emitter_.emit("change",{event:new X(this,K.rawValue)})})}get label(){return this.controller_.props.get("label")}set label(Z){this.controller_.props.set("label",Z)}get formatter(){return this.controller_.valueController.props.get("formatter")}set formatter(Z){this.controller_.valueController.props.set("formatter",Z)}get value(){return this.controller_.valueController.value.rawValue}set value(Z){this.controller_.valueController.value.rawValue=Z}on(Z,K){let W=K.bind(this);return this.emitter_.on(Z,(Y)=>{W(Y.event)}),this}}let mU=function(){return{id:"list",type:"blade",accept(Z){let K=$,W=E(Z,{options:K.required.custom(sJ),value:K.required.raw,view:K.required.constant("list"),label:K.optional.string});return W?{params:W}:null},controller(Z){let K=new f1(j7(Z.params.options)),W=l(Z.params.value,{constraint:K}),Y=new _1(Z.document,{props:new S({options:K.values.value("options")}),value:W,viewProps:Z.viewProps});return new u1(Z.document,{blade:Z.blade,props:S.fromObject({label:Z.params.label}),valueController:Y})},api(Z){if(!(Z.controller instanceof u1))return null;if(!(Z.controller.valueController instanceof _1))return null;return new z6(Z.controller)}}}();function dU(Z){return Z.reduce((K,W)=>{return Object.assign(K,{[W.presetKey]:W.read()})},{})}function gU(Z,K){Z.forEach((W)=>{let Y=K[W.target.presetKey];if(Y!==void 0)W.writer(W.target,W.reader(Y))})}class S5 extends M1{constructor(Z,K){super(Z,K)}get element(){return this.controller_.view.element}importPreset(Z){let K=this.controller_.rackController.rack.find(C0).map((W)=>{return W.binding});gU(K,Z),this.refresh()}exportPreset(){let Z=this.controller_.rackController.rack.find(C0).map((K)=>{return K.binding.target});return dU(Z)}refresh(){this.controller_.rackController.rack.find(C0).forEach((Z)=>{Z.binding.read()}),this.controller_.rackController.rack.find(E0).forEach((Z)=>{Z.binding.read()})}}class _5 extends Y9{constructor(Z,K){super(Z,{expanded:K.expanded,blade:K.blade,props:K.props,root:!0,viewProps:K.viewProps})}}let pU={id:"slider",type:"blade",accept(Z){let K=$,W=E(Z,{max:K.required.number,min:K.required.number,view:K.required.constant("slider"),format:K.optional.function,label:K.optional.string,value:K.optional.number});return W?{params:W}:null},controller(Z){var K,W;let Y=(K=Z.params.value)!==null&&K!==void 0?K:0,N=new S1({max:Z.params.max,min:Z.params.min}),V=new lJ(Z.document,{baseStep:1,parser:e1,sliderProps:new S({maxValue:N.values.value("max"),minValue:N.values.value("min")}),textProps:S.fromObject({draggingScale:TQ(void 0,Y),formatter:(W=Z.params.format)!==null&&W!==void 0?W:Fz}),value:l(Y,{constraint:N}),viewProps:Z.viewProps});return new u1(Z.document,{blade:Z.blade,props:S.fromObject({label:Z.params.label}),valueController:V})},api(Z){if(!(Z.controller instanceof u1))return null;if(!(Z.controller.valueController instanceof lJ))return null;return new U6(Z.controller)}},cU=function(){return{id:"text",type:"blade",accept(Z){let K=$,W=E(Z,{parse:K.required.function,value:K.required.raw,view:K.required.constant("text"),format:K.optional.function,label:K.optional.string});return W?{params:W}:null},controller(Z){var K;let W=new L9(Z.document,{parser:Z.params.parse,props:S.fromObject({formatter:(K=Z.params.format)!==null&&K!==void 0?K:(Y)=>String(Y)}),value:l(Z.params.value),viewProps:Z.viewProps});return new u1(Z.document,{blade:Z.blade,props:S.fromObject({label:Z.params.label}),valueController:W})},api(Z){if(!(Z.controller instanceof u1))return null;if(!(Z.controller.valueController instanceof L9))return null;return new X6(Z.controller)}}}();function lU(Z){let K=Z.createElement("div");if(K.classList.add(I("dfw")()),Z.body)Z.body.appendChild(K);return K}function T5(Z,K,W){if(Z.querySelector(`style[data-tp-style=${K}]`))return;let Y=Z.createElement("style");Y.dataset.tpStyle=K,Y.textContent=W,Z.head.appendChild(Y)}class C5 extends S5{constructor(Z){var K,W;let Y=Z!==null&&Z!==void 0?Z:{},N=(K=Y.document)!==null&&K!==void 0?K:F0(),V=yU(),d=new _5(N,{expanded:Y.expanded,blade:k0(),props:S.fromObject({title:Y.title}),viewProps:e.create()});super(d,V);this.pool_=V,this.containerElem_=(W=Y.container)!==null&&W!==void 0?W:lU(N),this.containerElem_.appendChild(this.element),this.doc_=N,this.usesDefaultWrapper_=!Y.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw B.alreadyDisposed();return this.doc_}dispose(){let Z=this.containerElem_;if(!Z)throw B.alreadyDisposed();if(this.usesDefaultWrapper_){let K=Z.parentElement;if(K)K.removeChild(Z)}this.containerElem_=null,this.doc_=null,super.dispose()}registerPlugin(Z){("plugin"in Z?[Z.plugin]:("plugins"in Z)?Z.plugins:[]).forEach((W)=>{this.pool_.register(W),this.embedPluginStyle_(W)})}embedPluginStyle_(Z){if(Z.css)T5(this.document,`plugin-${Z.id}`,Z.css)}setUpDefaultPlugins_(){T5(this.document,"default",".tp-tbiv_b,.tp-coltxtv_ms,.tp-ckbv_i,.tp-rotv_b,.tp-fldv_b,.tp-mllv_i,.tp-sglv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--elm-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--bld-us);line-height:var(--bld-us);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-p2dv_b:hover,.tp-btnv_b:hover,.tp-lstv_s:hover{background-color:var(--btn-bg-h)}.tp-p2dv_b:focus,.tp-btnv_b:focus,.tp-lstv_s:focus{background-color:var(--btn-bg-f)}.tp-p2dv_b:active,.tp-btnv_b:active,.tp-lstv_s:active{background-color:var(--btn-bg-a)}.tp-p2dv_b:disabled,.tp-btnv_b:disabled,.tp-lstv_s:disabled{opacity:.5}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--bld-us);line-height:var(--bld-us);min-width:0;width:100%}.tp-txtv_i:hover,.tp-p2dpv_p:hover,.tp-colswv_sw:hover{background-color:var(--in-bg-h)}.tp-txtv_i:focus,.tp-p2dpv_p:focus,.tp-colswv_sw:focus{background-color:var(--in-bg-f)}.tp-txtv_i:active,.tp-p2dpv_p:active,.tp-colswv_sw:active{background-color:var(--in-bg-a)}.tp-txtv_i:disabled,.tp-p2dpv_p:disabled,.tp-colswv_sw:disabled{opacity:.5}.tp-mllv_i,.tp-sglv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--elm-br);box-sizing:border-box;color:var(--mo-fg);height:var(--bld-us);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-mllv_i::-webkit-scrollbar,.tp-sglv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-mllv_i::-webkit-scrollbar-corner,.tp-sglv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-mllv_i::-webkit-scrollbar-thumb,.tp-sglv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-br: var(--tp-base-border-radius, 6px);--cnt-h-p: var(--tp-container-horizontal-padding, 4px);--cnt-v-p: var(--tp-container-vertical-padding, 4px);--elm-br: var(--tp-element-border-radius, 2px);--bld-s: var(--tp-blade-spacing, 4px);--bld-us: var(--tp-blade-unit-size, 20px);--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-rotv_c>.tp-cntv.tp-v-lst,.tp-tabv_c .tp-brkv>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-v-p))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_c{border-bottom-left-radius:0}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-tabv_c .tp-brkv>.tp-fldv.tp-v-lst .tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-v-lst .tp-fldv_b{border-bottom-left-radius:0}.tp-rotv_c>*:not(.tp-v-fst),.tp-tabv_c .tp-brkv>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--bld-s)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-fst),.tp-fldv_c>.tp-sprv:not(.tp-v-fst),.tp-rotv_c>.tp-cntv:not(.tp-v-fst),.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-sprv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-rotv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-tabv_c .tp-brkv>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-v-p)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tabv_c .tp-brkv>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-fldv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-rotv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-tabv_c .tp-brkv>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tabv_c .tp-brkv>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tabv_c .tp-brkv>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--elm-br);border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-fldv.tp-fldv-expanded>.tp-fldv_b,.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_b{border-bottom-left-radius:0}.tp-tabv_c .tp-brkv .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tabv_c .tp-brkv>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--elm-br)}.tp-tabv_c .tp-brkv .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--elm-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);overflow:hidden;padding-left:var(--cnt-h-p);padding-right:calc(4px + var(--bld-us) + var(--cnt-h-p));position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-rotv_b:hover,.tp-fldv_b:hover{background-color:var(--cnt-bg-h)}.tp-rotv_b:focus,.tp-fldv_b:focus{background-color:var(--cnt-bg-f)}.tp-rotv_b:active,.tp-fldv_b:active{background-color:var(--cnt-bg-a)}.tp-rotv_b:disabled,.tp-fldv_b:disabled{opacity:.5}.tp-rotv_m,.tp-fldv_m{background:linear-gradient(to left, var(--cnt-fg), var(--cnt-fg) 2px, transparent 2px, transparent 4px, var(--cnt-fg) 4px);border-radius:2px;bottom:0;content:\"\";display:block;height:6px;right:calc(var(--cnt-h-p) + (var(--bld-us) + 4px - 6px)/2 - 2px);margin:auto;opacity:.5;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_m,.tp-fldv.tp-fldv-expanded>.tp-fldv_b>.tp-fldv_m{transform:none}.tp-rotv_c,.tp-fldv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-rotv.tp-rotv-cpl:not(.tp-rotv-expanded) .tp-rotv_c,.tp-fldv.tp-fldv-cpl:not(.tp-fldv-expanded)>.tp-fldv_c{display:none}.tp-rotv.tp-rotv-expanded .tp-rotv_c,.tp-fldv.tp-fldv-expanded>.tp-fldv_c{opacity:1;padding-bottom:var(--cnt-v-p);padding-top:var(--cnt-v-p);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-lstv,.tp-coltxtv_m{position:relative}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m,.tp-coltxtv_mm{bottom:0;margin:auto;pointer-events:none;position:absolute;right:2px;top:0}.tp-lstv_m svg,.tp-coltxtv_mm svg{bottom:0;height:16px;margin:auto;position:absolute;right:0;top:0;width:16px}.tp-lstv_m svg path,.tp-coltxtv_mm svg path{fill:currentColor}.tp-pndtxtv,.tp-coltxtv_w{display:flex}.tp-pndtxtv_a,.tp-coltxtv_c{width:100%}.tp-pndtxtv_a+.tp-pndtxtv_a,.tp-coltxtv_c+.tp-pndtxtv_a,.tp-pndtxtv_a+.tp-coltxtv_c,.tp-coltxtv_c+.tp-coltxtv_c{margin-left:2px}.tp-btnv_b{width:100%}.tp-btnv_t{text-align:center}.tp-ckbv_l{display:block;position:relative}.tp-ckbv_i{left:0;opacity:0;position:absolute;top:0}.tp-ckbv_w{background-color:var(--in-bg);border-radius:var(--elm-br);cursor:pointer;display:block;height:var(--bld-us);position:relative;width:var(--bld-us)}.tp-ckbv_w svg{bottom:0;display:block;height:16px;left:0;margin:auto;opacity:0;position:absolute;right:0;top:0;width:16px}.tp-ckbv_w svg path{fill:none;stroke:var(--in-fg);stroke-width:2}.tp-ckbv_i:hover+.tp-ckbv_w{background-color:var(--in-bg-h)}.tp-ckbv_i:focus+.tp-ckbv_w{background-color:var(--in-bg-f)}.tp-ckbv_i:active+.tp-ckbv_w{background-color:var(--in-bg-a)}.tp-ckbv_i:checked+.tp-ckbv_w svg{opacity:1}.tp-ckbv.tp-v-disabled .tp-ckbv_w{opacity:.5}.tp-colv{position:relative}.tp-colv_h{display:flex}.tp-colv_s{flex-grow:0;flex-shrink:0;width:var(--bld-us)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-expanded.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--bld-s);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--bld-s)}.tp-colpv_rgb{display:flex;margin-top:var(--bld-s);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-v-p);padding-top:calc(var(--cnt-v-p) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:\"\";height:2px;left:calc(-1*var(--cnt-h-p));position:absolute;right:calc(-1*var(--cnt-h-p));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--elm-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--bld-us)*4);width:100%}.tp-svpv_m{border-radius:100%;border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;filter:drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpv:focus .tp-svpv_m{border-color:#fff}.tp-hplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--bld-us);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv_m{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;border-radius:var(--elm-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--elm-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-aplv:focus .tp-aplv_p{border-color:#fff}.tp-colswv{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-radius:var(--elm-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;cursor:pointer;display:block;height:var(--bld-us);left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:var(--bld-us)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--elm-br);bottom:0;content:\"\";display:block;left:0;position:absolute;right:0;top:0}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--elm-br);color:var(--lbl-fg);cursor:pointer;height:var(--bld-us);line-height:var(--bld-us);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv.tp-fldv-not .tp-fldv_b{display:none}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--bld-us)*3)}.tp-grlv_g polyline{fill:none;stroke:var(--mo-fg);stroke-linejoin:round}.tp-grlv_t{margin-top:-4px;transition:left .05s,top .05s;visibility:hidden}.tp-grlv_t.tp-grlv_t-a{visibility:visible}.tp-grlv_t.tp-grlv_t-in{transition:none}.tp-grlv.tp-v-disabled .tp-grlv_g{opacity:.5}.tp-grlv .tp-ttv{background-color:var(--mo-fg)}.tp-grlv .tp-ttv::before{border-top-color:var(--mo-fg)}.tp-lblv{align-items:center;display:flex;line-height:1.3;padding-left:var(--cnt-h-p);padding-right:var(--cnt-h-p)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 4px;width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding:0 4px}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--bld-us)*3);line-height:var(--bld-us);padding:0 4px;resize:none;white-space:pre}.tp-mllv.tp-v-disabled .tp-mllv_i{opacity:.5}.tp-p2dv{position:relative}.tp-p2dv_h{display:flex}.tp-p2dv_b{height:var(--bld-us);margin-right:4px;position:relative;width:var(--bld-us)}.tp-p2dv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dv_b svg path{stroke:currentColor;stroke-width:2}.tp-p2dv_b svg circle{fill:currentColor}.tp-p2dv_t{flex:1}.tp-p2dv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-p2dv.tp-p2dv-expanded .tp-p2dv_p{margin-top:var(--bld-s);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-h-p));right:calc(-1*var(--cnt-h-p));top:var(--bld-us)}.tp-p2dpv{padding-left:calc(var(--bld-us) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:6px;box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:168px;padding:var(--cnt-v-p) var(--cnt-h-p);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--bld-us);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";display:block;height:2px;left:0;margin-bottom:auto;margin-top:auto;position:absolute;right:0;top:0}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--elm-br);bottom:0;content:\"\";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--bld-us) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:\"\";height:2px;left:0;position:absolute;right:0}.tp-tabv_c{padding-bottom:var(--cnt-v-p);padding-left:4px;padding-top:var(--cnt-v-p)}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--bld-us) + 4px);width:var(--bs-br)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-h-p) + 4px);padding-right:calc(var(--cnt-h-p) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);bottom:2px;content:\"\";left:0;pointer-events:none;position:absolute;right:0;top:0}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--bld-us) + 4px);line-height:calc(var(--bld-us) + 4px);opacity:.5;overflow:hidden;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-txtv{position:relative}.tp-txtv_i{padding:0 4px}.tp-txtv.tp-txtv-fst .tp-txtv_i{border-bottom-right-radius:0;border-top-right-radius:0}.tp-txtv.tp-txtv-mid .tp-txtv_i{border-radius:0}.tp-txtv.tp-txtv-lst .tp-txtv_i{border-bottom-left-radius:0;border-top-left-radius:0}.tp-txtv.tp-txtv-num .tp-txtv_i{text-align:right}.tp-txtv.tp-txtv-drg .tp-txtv_i{opacity:.3}.tp-txtv_k{cursor:pointer;height:100%;left:-3px;position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";height:calc(var(--bld-us) - 4px);left:50%;margin-bottom:auto;margin-left:-1px;margin-top:auto;opacity:.1;position:absolute;top:0;transition:border-radius .1s,height .1s,transform .1s,width .1s;width:2px}.tp-txtv_k:hover::before,.tp-txtv.tp-txtv-drg .tp-txtv_k::before{opacity:1}.tp-txtv.tp-txtv-drg .tp-txtv_k::before{border-radius:50%;height:4px;transform:translateX(-1px);width:4px}.tp-txtv_g{bottom:0;display:block;height:8px;left:50%;margin:auto;overflow:visible;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%}.tp-txtv.tp-txtv-drg .tp-txtv_g{visibility:visible}.tp-txtv_gb{fill:none;stroke:var(--in-fg);stroke-dasharray:1}.tp-txtv_gh{fill:none;stroke:var(--in-fg)}.tp-txtv .tp-ttv{margin-left:6px;visibility:hidden}.tp-txtv.tp-txtv-drg .tp-ttv{visibility:visible}.tp-ttv{background-color:var(--in-fg);border-radius:var(--elm-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:\"\";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--font-family);font-size:11px;font-weight:500;line-height:1;text-align:left}.tp-rotv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br);border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br);padding-left:calc(4px + var(--bld-us) + var(--cnt-h-p));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv.tp-rotv-not .tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c .tp-fldv.tp-v-vlst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-right-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-v-p))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}"),this.pool_.getAll().forEach((Z)=>{this.embedPluginStyle_(Z)}),this.registerPlugin({plugins:[pU,mU,eQ,cU]})}}let sU=new J("3.1.10");Q.BladeApi=z,Q.ButtonApi=R,Q.FolderApi=M1,Q.InputBindingApi=n0,Q.ListApi=z6,Q.MonitorBindingApi=V0,Q.Pane=C5,Q.SeparatorApi=A9,Q.SliderApi=U6,Q.TabApi=O9,Q.TabPageApi=f9,Q.TextApi=X6,Q.TpChangeEvent=X,Q.VERSION=sU,Object.defineProperty(Q,"__esModule",{value:!0})})});/*! Tweakpane 4.0.5 (c) 2016 cocopon, licensed under the MIT license. */function w1(Q){return Q}function s0(Q){return Q===null||Q===void 0}function R6(Q){return Q!==null&&typeof Q==="object"}function O6(Q){return Q!==null&&typeof Q==="object"}function iU(Q,J){if(Q.length!==J.length)return!1;for(let z=0;z{let U=Q[X],H=J[X];return O6(U)&&O6(H)?Object.assign(Object.assign({},G),{[X]:XQ(U,H)}):Object.assign(Object.assign({},G),{[X]:X in J?H:U})},{})}function $6(Q){if(!R6(Q))return!1;return"target"in Q}var nU={alreadydisposed:()=>"View has been already disposed",invalidparams:(Q)=>`Invalid parameters for '${Q.name}'`,nomatchingcontroller:(Q)=>`No matching controller for '${Q.key}'`,nomatchingview:(Q)=>`No matching view for '${JSON.stringify(Q.params)}'`,notbindable:()=>"Value is not bindable",notcompatible:(Q)=>`Not compatible with plugin '${Q.id}'`,propertynotfound:(Q)=>`Property '${Q.name}' not found`,shouldneverhappen:()=>"This error should never happen"};class Q1{static alreadyDisposed(){return new Q1({type:"alreadydisposed"})}static notBindable(){return new Q1({type:"notbindable"})}static notCompatible(Q,J){return new Q1({type:"notcompatible",context:{id:`${Q}.${J}`}})}static propertyNotFound(Q){return new Q1({type:"propertynotfound",context:{name:Q}})}static shouldNeverHappen(){return new Q1({type:"shouldneverhappen"})}constructor(Q){var J;this.message=(J=nU[Q.type](w1(Q.context)))!==null&&J!==void 0?J:"Unexpected error",this.name=this.constructor.name,this.stack=Error(this.message).stack,this.type=Q.type}toString(){return this.message}}class UZ{constructor(Q,J){this.obj_=Q,this.key=J}static isBindable(Q){if(Q===null)return!1;if(typeof Q!=="object"&&typeof Q!=="function")return!1;return!0}read(){return this.obj_[this.key]}write(Q){this.obj_[this.key]=Q}writeProperty(Q,J){let z=this.read();if(!UZ.isBindable(z))throw Q1.notBindable();if(!(Q in z))throw Q1.propertyNotFound(Q);z[Q]=J}}class J1{constructor(){this.observers_={}}on(Q,J,z){var G;let X=this.observers_[Q];if(!X)X=this.observers_[Q]=[];return X.push({handler:J,key:(G=z===null||z===void 0?void 0:z.key)!==null&&G!==void 0?G:J}),this}off(Q,J){let z=this.observers_[Q];if(z)this.observers_[Q]=z.filter((G)=>{return G.key!==J});return this}emit(Q,J){let z=this.observers_[Q];if(!z)return;z.forEach((G)=>{G.handler(J)})}}class Z8{constructor(Q,J){var z;this.constraint_=J===null||J===void 0?void 0:J.constraint,this.equals_=(z=J===null||J===void 0?void 0:J.equals)!==null&&z!==void 0?z:(G,X)=>G===X,this.emitter=new J1,this.rawValue_=Q}get constraint(){return this.constraint_}get rawValue(){return this.rawValue_}set rawValue(Q){this.setRawValue(Q,{forceEmit:!1,last:!0})}setRawValue(Q,J){let z=J!==null&&J!==void 0?J:{forceEmit:!1,last:!0},G=this.constraint_?this.constraint_.constrain(Q):Q,X=this.rawValue_;if(!!this.equals_(X,G)&&!z.forceEmit)return;this.emitter.emit("beforechange",{sender:this}),this.rawValue_=G,this.emitter.emit("change",{options:z,previousRawValue:X,rawValue:G,sender:this})}}class K8{constructor(Q){this.emitter=new J1,this.value_=Q}get rawValue(){return this.value_}set rawValue(Q){this.setRawValue(Q,{forceEmit:!1,last:!0})}setRawValue(Q,J){let z=J!==null&&J!==void 0?J:{forceEmit:!1,last:!0},G=this.value_;if(G===Q&&!z.forceEmit)return;this.emitter.emit("beforechange",{sender:this}),this.value_=Q,this.emitter.emit("change",{options:z,previousRawValue:G,rawValue:this.value_,sender:this})}}class z8{constructor(Q){this.emitter=new J1,this.onValueBeforeChange_=this.onValueBeforeChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.value_=Q,this.value_.emitter.on("beforechange",this.onValueBeforeChange_),this.value_.emitter.on("change",this.onValueChange_)}get rawValue(){return this.value_.rawValue}onValueBeforeChange_(Q){this.emitter.emit("beforechange",Object.assign(Object.assign({},Q),{sender:this}))}onValueChange_(Q){this.emitter.emit("change",Object.assign(Object.assign({},Q),{sender:this}))}}function t0(Q,J){let z=J===null||J===void 0?void 0:J.constraint,G=J===null||J===void 0?void 0:J.equals;if(!z&&!G)return new K8(Q);return new Z8(Q,J)}function oU(Q){return[new z8(Q),(J,z)=>{Q.setRawValue(J,z)}]}class _0{constructor(Q){this.emitter=new J1,this.valMap_=Q;for(let J in this.valMap_)this.valMap_[J].emitter.on("change",()=>{this.emitter.emit("change",{key:J,sender:this})})}static createCore(Q){return Object.keys(Q).reduce((z,G)=>{return Object.assign(z,{[G]:t0(Q[G])})},{})}static fromObject(Q){let J=this.createCore(Q);return new _0(J)}get(Q){return this.valMap_[Q].rawValue}set(Q,J){this.valMap_[Q].rawValue=J}value(Q){return this.valMap_[Q]}}class uQ{constructor(Q){this.values=_0.fromObject({max:Q.max,min:Q.min})}constrain(Q){let J=this.values.get("max"),z=this.values.get("min");return Math.min(Math.max(Q,z),J)}}class U8{constructor(Q){this.values=_0.fromObject({max:Q.max,min:Q.min})}constrain(Q){let J=this.values.get("max"),z=this.values.get("min"),G=Q;if(!s0(z))G=Math.max(G,z);if(!s0(J))G=Math.min(G,J);return G}}class X8{constructor(Q,J=0){this.step=Q,this.origin=J}constrain(Q){let J=this.origin%this.step,z=Math.round((Q-J)/this.step);return J+z*this.step}}class W8{constructor(Q){this.text=Q}evaluate(){return Number(this.text)}toString(){return this.text}}var tU={"**":(Q,J)=>Math.pow(Q,J),"*":(Q,J)=>Q*J,"/":(Q,J)=>Q/J,"%":(Q,J)=>Q%J,"+":(Q,J)=>Q+J,"-":(Q,J)=>Q-J,"<<":(Q,J)=>Q<>":(Q,J)=>Q>>J,">>>":(Q,J)=>Q>>>J,"&":(Q,J)=>Q&J,"^":(Q,J)=>Q^J,"|":(Q,J)=>Q|J};class G8{constructor(Q,J,z){this.left=J,this.operator=Q,this.right=z}evaluate(){let Q=tU[this.operator];if(!Q)throw Error(`unexpected binary operator: '${this.operator}`);return Q(this.left.evaluate(),this.right.evaluate())}toString(){return["b(",this.left.toString(),this.operator,this.right.toString(),")"].join(" ")}}var rU={"+":(Q)=>Q,"-":(Q)=>-Q,"~":(Q)=>~Q};class H8{constructor(Q,J){this.operator=Q,this.expression=J}evaluate(){let Q=rU[this.operator];if(!Q)throw Error(`unexpected unary operator: '${this.operator}`);return Q(this.expression.evaluate())}toString(){return["u(",this.operator,this.expression.toString(),")"].join(" ")}}function k6(Q){return(J,z)=>{for(let G=0;GJ.startsWith(X,z))[0];if(!G)return null;return z+=G.length,z+=BJ(J,z).length,{cursor:z,operator:G}}function NX(Q,J){return(z,G)=>{let X=Q(z,G);if(!X)return null;G=X.cursor;let U=X.evaluable;for(;;){let H=OX(J,z,G);if(!H)break;G=H.cursor;let q=Q(z,G);if(!q)return null;G=q.cursor,U=new G8(H.operator,U,q.evaluable)}return U?{cursor:G,evaluable:U}:null}}var BX=[["**"],["*","/","%"],["+","-"],["<<",">>>",">>"],["&"],["^"],["|"]].reduce((Q,J)=>{return NX(Q,J)},F8);function D8(Q,J){return J+=BJ(Q,J).length,BX(Q,J)}function LX(Q){let J=D8(Q,0);if(!J)return null;if(J.cursor+BJ(Q,J.cursor).length!==Q.length)return null;return J.evaluable}function G9(Q){var J;let z=LX(Q);return(J=z===null||z===void 0?void 0:z.evaluate())!==null&&J!==void 0?J:null}function Y8(Q){if(typeof Q==="number")return Q;if(typeof Q==="string"){let J=G9(Q);if(!s0(J))return J}return 0}function jX(Q){return String(Q)}function j1(Q){return(J)=>{return J.toFixed(Math.max(Math.min(Q,20),0))}}function d0(Q,J,z,G,X){let U=(Q-J)/(z-J);return G+U*(X-G)}function E5(Q){return String(Q.toFixed(10)).split(".")[1].replace(/0+$/,"").length}function K1(Q,J,z){return Math.min(Math.max(Q,J),z)}function A8(Q,J){return(Q%J+J)%J}function wX(Q,J){return!s0(Q.step)?E5(Q.step):Math.max(E5(J),2)}function O8(Q){var J;return(J=Q.step)!==null&&J!==void 0?J:1}function N8(Q,J){var z;let G=Math.abs((z=Q.step)!==null&&z!==void 0?z:J);return G===0?0.1:Math.pow(10,Math.floor(Math.log10(G))-1)}function B8(Q,J){if(!s0(Q.step))return new X8(Q.step,J);return null}function L8(Q){if(!s0(Q.max)&&!s0(Q.min))return new uQ({max:Q.max,min:Q.min});if(!s0(Q.max)||!s0(Q.min))return new U8({max:Q.max,min:Q.min});return null}function j8(Q,J){var z,G,X;return{formatter:(z=Q.format)!==null&&z!==void 0?z:j1(wX(Q,J)),keyScale:(G=Q.keyScale)!==null&&G!==void 0?G:O8(Q),pointerScale:(X=Q.pointerScale)!==null&&X!==void 0?X:N8(Q,J)}}function w8(Q){return{format:Q.optional.function,keyScale:Q.optional.number,max:Q.optional.number,min:Q.optional.number,pointerScale:Q.optional.number,step:Q.optional.number}}function I6(Q){return{constraint:Q.constraint,textProps:_0.fromObject(j8(Q.params,Q.initialValue))}}class C9{constructor(Q){this.controller=Q}get element(){return this.controller.view.element}get disabled(){return this.controller.viewProps.get("disabled")}set disabled(Q){this.controller.viewProps.set("disabled",Q)}get hidden(){return this.controller.viewProps.get("hidden")}set hidden(Q){this.controller.viewProps.set("hidden",Q)}dispose(){this.controller.viewProps.set("disposed",!0)}importState(Q){return this.controller.importState(Q)}exportState(){return this.controller.exportState()}}class VJ{constructor(Q){this.target=Q}}class mQ extends VJ{constructor(Q,J,z){super(Q);this.value=J,this.last=z!==null&&z!==void 0?z:!0}}class M8 extends VJ{constructor(Q,J){super(Q);this.expanded=J}}class V8 extends VJ{constructor(Q,J){super(Q);this.index=J}}class R8 extends VJ{constructor(Q,J){super(Q);this.native=J}}class xQ extends C9{constructor(Q){super(Q);this.onValueChange_=this.onValueChange_.bind(this),this.emitter_=new J1,this.controller.value.emitter.on("change",this.onValueChange_)}get label(){return this.controller.labelController.props.get("label")}set label(Q){this.controller.labelController.props.set("label",Q)}get key(){return this.controller.value.binding.target.key}get tag(){return this.controller.tag}set tag(Q){this.controller.tag=Q}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}refresh(){this.controller.value.fetch()}onValueChange_(Q){let J=this.controller.value;this.emitter_.emit("change",new mQ(this,w1(J.binding.target.read()),Q.options.last))}}class $8{constructor(Q,J){this.onValueBeforeChange_=this.onValueBeforeChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.binding=J,this.value_=Q,this.value_.emitter.on("beforechange",this.onValueBeforeChange_),this.value_.emitter.on("change",this.onValueChange_),this.emitter=new J1}get rawValue(){return this.value_.rawValue}set rawValue(Q){this.value_.rawValue=Q}setRawValue(Q,J){this.value_.setRawValue(Q,J)}fetch(){this.value_.rawValue=this.binding.read()}push(){this.binding.write(this.value_.rawValue)}onValueBeforeChange_(Q){this.emitter.emit("beforechange",Object.assign(Object.assign({},Q),{sender:this}))}onValueChange_(Q){this.push(),this.emitter.emit("change",Object.assign(Object.assign({},Q),{sender:this}))}}function MX(Q){if(!("binding"in Q))return!1;let J=Q.binding;return $6(J)&&"read"in J&&"write"in J}function VX(Q,J){let G=Object.keys(J).reduce((X,U)=>{if(X===void 0)return;let H=J[U],q=H(Q[U]);return q.succeeded?Object.assign(Object.assign({},X),{[U]:q.value}):void 0},{});return w1(G)}function RX(Q,J){return Q.reduce((z,G)=>{if(z===void 0)return;let X=J(G);if(!X.succeeded||X.value===void 0)return;return[...z,X.value]},[])}function $X(Q){if(Q===null)return!1;return typeof Q==="object"}function z9(Q){return(J)=>(z)=>{if(!J&&z===void 0)return{succeeded:!1,value:void 0};if(J&&z===void 0)return{succeeded:!0,value:void 0};let G=Q(z);return G!==void 0?{succeeded:!0,value:G}:{succeeded:!1,value:void 0}}}function y5(Q){return{custom:(J)=>z9(J)(Q),boolean:z9((J)=>typeof J==="boolean"?J:void 0)(Q),number:z9((J)=>typeof J==="number"?J:void 0)(Q),string:z9((J)=>typeof J==="string"?J:void 0)(Q),function:z9((J)=>typeof J==="function"?J:void 0)(Q),constant:(J)=>z9((z)=>z===J?J:void 0)(Q),raw:z9((J)=>J)(Q),object:(J)=>z9((z)=>{if(!$X(z))return;return VX(z,J)})(Q),array:(J)=>z9((z)=>{if(!Array.isArray(z))return;return RX(z,J)})(Q)}}var N6={optional:y5(!0),required:y5(!1)};function r0(Q,J){let z=J(N6),G=N6.required.object(z)(Q);return G.succeeded?G.value:void 0}function R1(Q,J,z,G){if(J&&!J(Q))return!1;let X=r0(Q,z);return X?G(X):!1}function $1(Q,J){var z;return XQ((z=Q===null||Q===void 0?void 0:Q())!==null&&z!==void 0?z:{},J)}function KQ(Q){return"value"in Q}function k8(Q){if(!R6(Q)||!("binding"in Q))return!1;let J=Q.binding;return $6(J)}var c1="http://www.w3.org/2000/svg";function XZ(Q){Q.offsetHeight}function kX(Q,J){let z=Q.style.transition;Q.style.transition="none",J(),Q.style.transition=z}function S6(Q){return Q.ontouchstart!==void 0}function PX(){return globalThis}function IX(){return w1(PX()).document}function SX(Q){let J=Q.ownerDocument.defaultView;if(!J)return null;return"document"in J?Q.getContext("2d",{willReadFrequently:!0}):null}var _X={check:'',dropdown:'',p2dpad:''};function FZ(Q,J){let z=Q.createElementNS(c1,"svg");return z.innerHTML=_X[J],z}function P8(Q,J,z){Q.insertBefore(J,Q.children[z])}function _6(Q){if(Q.parentElement)Q.parentElement.removeChild(Q)}function I8(Q){while(Q.children.length>0)Q.removeChild(Q.children[0])}function TX(Q){while(Q.childNodes.length>0)Q.removeChild(Q.childNodes[0])}function S8(Q){if(Q.relatedTarget)return w1(Q.relatedTarget);if("explicitOriginalTarget"in Q)return Q.explicitOriginalTarget;return null}function X9(Q,J){Q.emitter.on("change",(z)=>{J(z.rawValue)}),J(Q.rawValue)}function l1(Q,J,z){X9(Q.value(J),z)}var CX="tp";function y0(Q){return(z,G)=>{return[CX,"-",Q,"v",z?`_${z}`:"",G?`-${G}`:""].join("")}}var YJ=y0("lbl");function EX(Q,J){let z=Q.createDocumentFragment();return J.split(` `).map((X)=>{return Q.createTextNode(X)}).forEach((X,U)=>{if(U>0)z.appendChild(Q.createElement("br"));z.appendChild(X)}),z}class T6{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(YJ()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(YJ("l")),l1(J.props,"label",(X)=>{if(s0(X))this.element.classList.add(YJ(void 0,"nol"));else this.element.classList.remove(YJ(void 0,"nol")),TX(z),z.appendChild(EX(Q,X))}),this.element.appendChild(z),this.labelElement=z;let G=Q.createElement("div");G.classList.add(YJ("v")),this.element.appendChild(G),this.valueElement=G}}class C6{constructor(Q,J){this.props=J.props,this.valueController=J.valueController,this.viewProps=J.valueController.viewProps,this.view=new T6(Q,{props:J.props,viewProps:this.viewProps}),this.view.valueElement.appendChild(this.valueController.view.element)}importProps(Q){return R1(Q,null,(J)=>({label:J.optional.string}),(J)=>{return this.props.set("label",J.label),!0})}exportProps(){return $1(null,{label:this.props.get("label")})}}function yX(){return["veryfirst","first","last","verylast"]}var h5=y0(""),b5={veryfirst:"vfst",first:"fst",last:"lst",verylast:"vlst"};class RJ{constructor(Q){this.parent_=null,this.blade=Q.blade,this.view=Q.view,this.viewProps=Q.viewProps;let J=this.view.element;this.blade.value("positions").emitter.on("change",()=>{yX().forEach((z)=>{J.classList.remove(h5(void 0,b5[z]))}),this.blade.get("positions").forEach((z)=>{J.classList.add(h5(void 0,b5[z]))})}),this.viewProps.handleDispose(()=>{_6(J)})}get parent(){return this.parent_}set parent(Q){this.parent_=Q,this.viewProps.set("parent",this.parent_?this.parent_.viewProps:null)}importState(Q){return R1(Q,null,(J)=>({disabled:J.required.boolean,hidden:J.required.boolean}),(J)=>{return this.viewProps.importState(J),!0})}exportState(){return $1(null,Object.assign({},this.viewProps.exportState()))}}class T9 extends RJ{constructor(Q,J){if(J.value!==J.valueController.value)throw Q1.shouldNeverHappen();let z=J.valueController.viewProps,G=new C6(Q,{blade:J.blade,props:J.props,valueController:J.valueController});super(Object.assign(Object.assign({},J),{view:new T6(Q,{props:J.props,viewProps:z}),viewProps:z}));this.labelController=G,this.value=J.value,this.valueController=J.valueController,this.view.valueElement.appendChild(this.valueController.view.element)}importState(Q){return R1(Q,(J)=>{var z,G,X;return super.importState(J)&&this.labelController.importProps(J)&&((X=(G=(z=this.valueController).importProps)===null||G===void 0?void 0:G.call(z,Q))!==null&&X!==void 0?X:!0)},(J)=>({value:J.optional.raw}),(J)=>{if(J.value)this.value.rawValue=J.value;return!0})}exportState(){var Q,J,z;return $1(()=>super.exportState(),Object.assign(Object.assign({value:this.value.rawValue},this.labelController.exportProps()),(z=(J=(Q=this.valueController).exportProps)===null||J===void 0?void 0:J.call(Q))!==null&&z!==void 0?z:{}))}}function x5(Q){let J=Object.assign({},Q);return delete J.value,J}class E6 extends T9{constructor(Q,J){super(Q,J);this.tag=J.tag}importState(Q){return R1(Q,(J)=>super.importState(x5(Q)),(J)=>({tag:J.optional.string}),(J)=>{return this.tag=J.tag,!0})}exportState(){return $1(()=>x5(super.exportState()),{binding:{key:this.value.binding.target.key,value:this.value.binding.target.read()},tag:this.tag})}}function hX(Q){return KQ(Q)&&k8(Q.value)}class _8 extends E6{importState(Q){return R1(Q,(J)=>super.importState(J),(J)=>({binding:J.required.object({value:J.required.raw})}),(J)=>{return this.value.binding.inject(J.binding.value),this.value.fetch(),!0})}}function bX(Q){return KQ(Q)&&MX(Q.value)}function T8(Q,J){while(Q.lengthQ.length)z.splice(0,z.length-Q.length);else T8(z,Q.length);return z}class C8{constructor(Q){this.emitter=new J1,this.onTick_=this.onTick_.bind(this),this.onValueBeforeChange_=this.onValueBeforeChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.binding=Q.binding,this.value_=t0(xX(Q.bufferSize)),this.value_.emitter.on("beforechange",this.onValueBeforeChange_),this.value_.emitter.on("change",this.onValueChange_),this.ticker=Q.ticker,this.ticker.emitter.on("tick",this.onTick_),this.fetch()}get rawValue(){return this.value_.rawValue}set rawValue(Q){this.value_.rawValue=Q}setRawValue(Q,J){this.value_.setRawValue(Q,J)}fetch(){this.value_.rawValue=vX(this.value_.rawValue,this.binding.read())}onTick_(){this.fetch()}onValueBeforeChange_(Q){this.emitter.emit("beforechange",Object.assign(Object.assign({},Q),{sender:this}))}onValueChange_(Q){this.emitter.emit("change",Object.assign(Object.assign({},Q),{sender:this}))}}function uX(Q){if(!("binding"in Q))return!1;let J=Q.binding;return $6(J)&&"read"in J&&!("write"in J)}class E8 extends E6{exportState(){return $1(()=>super.exportState(),{binding:{readonly:!0}})}}function mX(Q){return KQ(Q)&&uX(Q.value)}class y8 extends C9{get label(){return this.controller.labelController.props.get("label")}set label(Q){this.controller.labelController.props.set("label",Q)}get title(){var Q;return(Q=this.controller.buttonController.props.get("title"))!==null&&Q!==void 0?Q:""}set title(Q){this.controller.buttonController.props.set("title",Q)}on(Q,J){let z=J.bind(this);return this.controller.buttonController.emitter.on(Q,(X)=>{z(new R8(this,X.nativeEvent))}),this}off(Q,J){return this.controller.buttonController.emitter.off(Q,J),this}}function dX(Q,J,z){if(z)Q.classList.add(J);else Q.classList.remove(J)}function dQ(Q,J){return(z)=>{dX(Q,J,z)}}function y6(Q,J){X9(Q,(z)=>{J.textContent=z!==null&&z!==void 0?z:""})}var W6=y0("btn");class h8{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(W6()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("button");z.classList.add(W6("b")),J.viewProps.bindDisabled(z),this.element.appendChild(z),this.buttonElement=z;let G=Q.createElement("div");G.classList.add(W6("t")),y6(J.props.value("title"),G),this.buttonElement.appendChild(G)}}class b8{constructor(Q,J){this.emitter=new J1,this.onClick_=this.onClick_.bind(this),this.props=J.props,this.viewProps=J.viewProps,this.view=new h8(Q,{props:this.props,viewProps:this.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}importProps(Q){return R1(Q,null,(J)=>({title:J.optional.string}),(J)=>{return this.props.set("title",J.title),!0})}exportProps(){return $1(null,{title:this.props.get("title")})}onClick_(Q){this.emitter.emit("click",{nativeEvent:Q,sender:this})}}class B6 extends RJ{constructor(Q,J){let z=new b8(Q,{props:J.buttonProps,viewProps:J.viewProps}),G=new C6(Q,{blade:J.blade,props:J.labelProps,valueController:z});super({blade:J.blade,view:G.view,viewProps:J.viewProps});this.buttonController=z,this.labelController=G}importState(Q){return R1(Q,(J)=>super.importState(J)&&this.buttonController.importProps(J)&&this.labelController.importProps(J),()=>({}),()=>!0)}exportState(){return $1(()=>super.exportState(),Object.assign(Object.assign({},this.buttonController.exportProps()),this.labelController.exportProps()))}}class h6{constructor(Q){let[J,z]=Q.split("-"),G=J.split(".");this.major=parseInt(G[0],10),this.minor=parseInt(G[1],10),this.patch=parseInt(G[2],10),this.prerelease=z!==null&&z!==void 0?z:null}toString(){let Q=[this.major,this.minor,this.patch].join(".");return this.prerelease!==null?[Q,this.prerelease].join("-"):Q}}var gQ=new h6("2.0.5");function A1(Q){return Object.assign({core:gQ},Q)}var gX=A1({id:"button",type:"blade",accept(Q){let J=r0(Q,(z)=>({title:z.required.string,view:z.required.constant("button"),label:z.optional.string}));return J?{params:J}:null},controller(Q){return new B6(Q.document,{blade:Q.blade,buttonProps:_0.fromObject({title:Q.params.title}),labelProps:_0.fromObject({label:Q.params.label}),viewProps:Q.viewProps})},api(Q){if(Q.controller instanceof B6)return new y8(Q.controller);return null}});function pX(Q,J){return Q.addBlade(Object.assign(Object.assign({},J),{view:"button"}))}function cX(Q,J){return Q.addBlade(Object.assign(Object.assign({},J),{view:"folder"}))}function lX(Q,J){return Q.addBlade(Object.assign(Object.assign({},J),{view:"tab"}))}function sX(Q){if(!R6(Q))return!1;return"refresh"in Q&&typeof Q.refresh==="function"}function iX(Q,J){if(!UZ.isBindable(Q))throw Q1.notBindable();return new UZ(Q,J)}class x8{constructor(Q,J){this.onRackValueChange_=this.onRackValueChange_.bind(this),this.controller_=Q,this.emitter_=new J1,this.pool_=J,this.controller_.rack.emitter.on("valuechange",this.onRackValueChange_)}get children(){return this.controller_.rack.children.map((Q)=>this.pool_.createApi(Q))}addBinding(Q,J,z){let G=z!==null&&z!==void 0?z:{},X=this.controller_.element.ownerDocument,U=this.pool_.createBinding(X,iX(Q,J),G),H=this.pool_.createBindingApi(U);return this.add(H,G.index)}addFolder(Q){return cX(this,Q)}addButton(Q){return pX(this,Q)}addTab(Q){return lX(this,Q)}add(Q,J){let z=Q.controller;return this.controller_.rack.add(z,J),Q}remove(Q){this.controller_.rack.remove(Q.controller)}addBlade(Q){let J=this.controller_.element.ownerDocument,z=this.pool_.createBlade(J,Q),G=this.pool_.createApi(z);return this.add(G,Q.index)}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}refresh(){this.children.forEach((Q)=>{if(sX(Q))Q.refresh()})}onRackValueChange_(Q){let J=Q.bladeController,z=this.pool_.createApi(J),G=k8(J.value)?J.value.binding:null;this.emitter_.emit("change",new mQ(z,G?G.target.read():J.value.rawValue,Q.options.last))}}class DZ extends C9{constructor(Q,J){super(Q);this.rackApi_=new x8(Q.rackController,J)}refresh(){this.rackApi_.refresh()}}class YZ extends RJ{constructor(Q){super({blade:Q.blade,view:Q.view,viewProps:Q.rackController.viewProps});this.rackController=Q.rackController}importState(Q){return R1(Q,(J)=>super.importState(J),(J)=>({children:J.required.array(J.required.raw)}),(J)=>{return this.rackController.rack.children.every((z,G)=>{return z.importState(J.children[G])})})}exportState(){return $1(()=>super.exportState(),{children:this.rackController.rack.children.map((Q)=>Q.exportState())})}}function L6(Q){return"rackController"in Q}class f8{constructor(Q){this.emitter=new J1,this.items_=[],this.cache_=new Set,this.onSubListAdd_=this.onSubListAdd_.bind(this),this.onSubListRemove_=this.onSubListRemove_.bind(this),this.extract_=Q}get items(){return this.items_}allItems(){return Array.from(this.cache_)}find(Q){for(let J of this.allItems())if(Q(J))return J;return null}includes(Q){return this.cache_.has(Q)}add(Q,J){if(this.includes(Q))throw Q1.shouldNeverHappen();let z=J!==void 0?J:this.items_.length;this.items_.splice(z,0,Q),this.cache_.add(Q);let G=this.extract_(Q);if(G)G.emitter.on("add",this.onSubListAdd_),G.emitter.on("remove",this.onSubListRemove_),G.allItems().forEach((X)=>{this.cache_.add(X)});this.emitter.emit("add",{index:z,item:Q,root:this,target:this})}remove(Q){let J=this.items_.indexOf(Q);if(J<0)return;this.items_.splice(J,1),this.cache_.delete(Q);let z=this.extract_(Q);if(z)z.allItems().forEach((G)=>{this.cache_.delete(G)}),z.emitter.off("add",this.onSubListAdd_),z.emitter.off("remove",this.onSubListRemove_);this.emitter.emit("remove",{index:J,item:Q,root:this,target:this})}onSubListAdd_(Q){this.cache_.add(Q.item),this.emitter.emit("add",{index:Q.index,item:Q.item,root:this,target:Q.target})}onSubListRemove_(Q){this.cache_.delete(Q.item),this.emitter.emit("remove",{index:Q.index,item:Q.item,root:this,target:Q.target})}}function nX(Q,J){for(let z=0;z!G.viewProps.get("hidden")),J=Q[0],z=Q[Q.length-1];this.bcSet_.items.forEach((G)=>{let X=[];if(G===J){if(X.push("first"),!this.blade_||this.blade_.get("positions").includes("veryfirst"))X.push("veryfirst")}if(G===z){if(X.push("last"),!this.blade_||this.blade_.get("positions").includes("verylast"))X.push("verylast")}G.blade.set("positions",X)})}onChildPositionsChange_(){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildViewPropsChange_(Q){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onChildDispose_(){this.bcSet_.items.filter((J)=>{return J.viewProps.get("disposed")}).forEach((J)=>{this.bcSet_.remove(J)})}onChildValueChange_(Q){let J=nX(this.find(KQ),Q.sender);if(!J)throw Q1.alreadyDisposed();this.emitter.emit("valuechange",{bladeController:J,options:Q.options,sender:this})}onRackLayout_(Q){this.updatePositions_(),this.emitter.emit("layout",{sender:this})}onRackValueChange_(Q){this.emitter.emit("valuechange",{bladeController:Q.bladeController,options:Q.options,sender:this})}onBladePositionsChange_(){this.updatePositions_()}}class AZ{constructor(Q){this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this),this.element=Q.element,this.viewProps=Q.viewProps;let J=new v8({blade:Q.root?void 0:Q.blade,viewProps:Q.viewProps});J.emitter.on("add",this.onRackAdd_),J.emitter.on("remove",this.onRackRemove_),this.rack=J,this.viewProps.handleDispose(()=>{for(let z=this.rack.children.length-1;z>=0;z--)this.rack.children[z].viewProps.set("disposed",!0)})}onRackAdd_(Q){if(!Q.root)return;P8(this.element,Q.bladeController.view.element,Q.index)}onRackRemove_(Q){if(!Q.root)return;_6(Q.bladeController.view.element)}}function pQ(){return new _0({positions:t0([],{equals:iU})})}class $J extends _0{constructor(Q){super(Q)}static create(Q){let J={completed:!0,expanded:Q,expandedHeight:null,shouldFixHeight:!1,temporaryExpanded:null},z=_0.createCore(J);return new $J(z)}get styleExpanded(){var Q;return(Q=this.get("temporaryExpanded"))!==null&&Q!==void 0?Q:this.get("expanded")}get styleHeight(){if(!this.styleExpanded)return"0";let Q=this.get("expandedHeight");if(this.get("shouldFixHeight")&&!s0(Q))return`${Q}px`;return"auto"}bindExpandedClass(Q,J){let z=()=>{if(this.styleExpanded)Q.classList.add(J);else Q.classList.remove(J)};l1(this,"expanded",z),l1(this,"temporaryExpanded",z)}cleanUpTransition(){this.set("shouldFixHeight",!1),this.set("expandedHeight",null),this.set("completed",!0)}}function tX(Q,J){let z=0;return kX(J,()=>{Q.set("expandedHeight",null),Q.set("temporaryExpanded",!0),XZ(J),z=J.clientHeight,Q.set("temporaryExpanded",null),XZ(J)}),z}function f5(Q,J){J.style.height=Q.styleHeight}function b6(Q,J){Q.value("expanded").emitter.on("beforechange",()=>{if(Q.set("completed",!1),s0(Q.get("expandedHeight"))){let z=tX(Q,J);if(z>0)Q.set("expandedHeight",z)}Q.set("shouldFixHeight",!0),XZ(J)}),Q.emitter.on("change",()=>{f5(Q,J)}),f5(Q,J),J.addEventListener("transitionend",(z)=>{if(z.propertyName!=="height")return;Q.cleanUpTransition()})}class x6 extends DZ{constructor(Q,J){super(Q,J);this.emitter_=new J1,this.controller.foldable.value("expanded").emitter.on("change",(z)=>{this.emitter_.emit("fold",new M8(this,z.sender.rawValue))}),this.rackApi_.on("change",(z)=>{this.emitter_.emit("change",z)})}get expanded(){return this.controller.foldable.get("expanded")}set expanded(Q){this.controller.foldable.set("expanded",Q)}get title(){return this.controller.props.get("title")}set title(Q){this.controller.props.set("title",Q)}get children(){return this.rackApi_.children}addBinding(Q,J,z){return this.rackApi_.addBinding(Q,J,z)}addFolder(Q){return this.rackApi_.addFolder(Q)}addButton(Q){return this.rackApi_.addButton(Q)}addTab(Q){return this.rackApi_.addTab(Q)}add(Q,J){return this.rackApi_.add(Q,J)}remove(Q){this.rackApi_.remove(Q)}addBlade(Q){return this.rackApi_.addBlade(Q)}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}}var u8=y0("cnt");class m8{constructor(Q,J){var z;this.className_=y0((z=J.viewName)!==null&&z!==void 0?z:"fld"),this.element=Q.createElement("div"),this.element.classList.add(this.className_(),u8()),J.viewProps.bindClassModifiers(this.element),this.foldable_=J.foldable,this.foldable_.bindExpandedClass(this.element,this.className_(void 0,"expanded")),l1(this.foldable_,"completed",dQ(this.element,this.className_(void 0,"cpl")));let G=Q.createElement("button");G.classList.add(this.className_("b")),l1(J.props,"title",(F)=>{if(s0(F))this.element.classList.add(this.className_(void 0,"not"));else this.element.classList.remove(this.className_(void 0,"not"))}),J.viewProps.bindDisabled(G),this.element.appendChild(G),this.buttonElement=G;let X=Q.createElement("div");X.classList.add(this.className_("i")),this.element.appendChild(X);let U=Q.createElement("div");U.classList.add(this.className_("t")),y6(J.props.value("title"),U),this.buttonElement.appendChild(U),this.titleElement=U;let H=Q.createElement("div");H.classList.add(this.className_("m")),this.buttonElement.appendChild(H);let q=Q.createElement("div");q.classList.add(this.className_("c")),this.element.appendChild(q),this.containerElement=q}}class WZ extends YZ{constructor(Q,J){var z;let G=$J.create((z=J.expanded)!==null&&z!==void 0?z:!0),X=new m8(Q,{foldable:G,props:J.props,viewName:J.root?"rot":void 0,viewProps:J.viewProps});super(Object.assign(Object.assign({},J),{rackController:new AZ({blade:J.blade,element:X.containerElement,root:J.root,viewProps:J.viewProps}),view:X}));this.onTitleClick_=this.onTitleClick_.bind(this),this.props=J.props,this.foldable=G,b6(this.foldable,this.view.containerElement),this.rackController.rack.emitter.on("add",()=>{this.foldable.cleanUpTransition()}),this.rackController.rack.emitter.on("remove",()=>{this.foldable.cleanUpTransition()}),this.view.buttonElement.addEventListener("click",this.onTitleClick_)}get document(){return this.view.element.ownerDocument}importState(Q){return R1(Q,(J)=>super.importState(J),(J)=>({expanded:J.required.boolean,title:J.optional.string}),(J)=>{return this.foldable.set("expanded",J.expanded),this.props.set("title",J.title),!0})}exportState(){return $1(()=>super.exportState(),{expanded:this.foldable.get("expanded"),title:this.props.get("title")})}onTitleClick_(){this.foldable.set("expanded",!this.foldable.get("expanded"))}}var rX=A1({id:"folder",type:"blade",accept(Q){let J=r0(Q,(z)=>({title:z.required.string,view:z.required.constant("folder"),expanded:z.optional.boolean}));return J?{params:J}:null},controller(Q){return new WZ(Q.document,{blade:Q.blade,expanded:Q.params.expanded,props:_0.fromObject({title:Q.params.title}),viewProps:Q.viewProps})},api(Q){if(!(Q.controller instanceof WZ))return null;return new x6(Q.controller,Q.pool)}}),aX=y0("");function v5(Q,J){return dQ(Q,aX(void 0,J))}class F9 extends _0{constructor(Q){var J;super(Q);this.onDisabledChange_=this.onDisabledChange_.bind(this),this.onParentChange_=this.onParentChange_.bind(this),this.onParentGlobalDisabledChange_=this.onParentGlobalDisabledChange_.bind(this),[this.globalDisabled_,this.setGlobalDisabled_]=oU(t0(this.getGlobalDisabled_())),this.value("disabled").emitter.on("change",this.onDisabledChange_),this.value("parent").emitter.on("change",this.onParentChange_),(J=this.get("parent"))===null||J===void 0||J.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_)}static create(Q){var J,z,G;let X=Q!==null&&Q!==void 0?Q:{};return new F9(_0.createCore({disabled:(J=X.disabled)!==null&&J!==void 0?J:!1,disposed:!1,hidden:(z=X.hidden)!==null&&z!==void 0?z:!1,parent:(G=X.parent)!==null&&G!==void 0?G:null}))}get globalDisabled(){return this.globalDisabled_}bindClassModifiers(Q){X9(this.globalDisabled_,v5(Q,"disabled")),l1(this,"hidden",v5(Q,"hidden"))}bindDisabled(Q){X9(this.globalDisabled_,(J)=>{Q.disabled=J})}bindTabIndex(Q){X9(this.globalDisabled_,(J)=>{Q.tabIndex=J?-1:0})}handleDispose(Q){this.value("disposed").emitter.on("change",(J)=>{if(J)Q()})}importState(Q){this.set("disabled",Q.disabled),this.set("hidden",Q.hidden)}exportState(){return{disabled:this.get("disabled"),hidden:this.get("hidden")}}getGlobalDisabled_(){let Q=this.get("parent");return(Q?Q.globalDisabled.rawValue:!1)||this.get("disabled")}updateGlobalDisabled_(){this.setGlobalDisabled_(this.getGlobalDisabled_())}onDisabledChange_(){this.updateGlobalDisabled_()}onParentGlobalDisabledChange_(){this.updateGlobalDisabled_()}onParentChange_(Q){var J;let z=Q.previousRawValue;z===null||z===void 0||z.globalDisabled.emitter.off("change",this.onParentGlobalDisabledChange_),(J=this.get("parent"))===null||J===void 0||J.globalDisabled.emitter.on("change",this.onParentGlobalDisabledChange_),this.updateGlobalDisabled_()}}var u5=y0("tbp");class d8{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(u5()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(u5("c")),this.element.appendChild(z),this.containerElement=z}}var AJ=y0("tbi");class g8{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(AJ()),J.viewProps.bindClassModifiers(this.element),l1(J.props,"selected",(X)=>{if(X)this.element.classList.add(AJ(void 0,"sel"));else this.element.classList.remove(AJ(void 0,"sel"))});let z=Q.createElement("button");z.classList.add(AJ("b")),J.viewProps.bindDisabled(z),this.element.appendChild(z),this.buttonElement=z;let G=Q.createElement("div");G.classList.add(AJ("t")),y6(J.props.value("title"),G),this.buttonElement.appendChild(G),this.titleElement=G}}class p8{constructor(Q,J){this.emitter=new J1,this.onClick_=this.onClick_.bind(this),this.props=J.props,this.viewProps=J.viewProps,this.view=new g8(Q,{props:J.props,viewProps:J.viewProps}),this.view.buttonElement.addEventListener("click",this.onClick_)}onClick_(){this.emitter.emit("click",{sender:this})}}class GZ extends YZ{constructor(Q,J){let z=new d8(Q,{viewProps:J.viewProps});super(Object.assign(Object.assign({},J),{rackController:new AZ({blade:J.blade,element:z.containerElement,viewProps:J.viewProps}),view:z}));this.onItemClick_=this.onItemClick_.bind(this),this.ic_=new p8(Q,{props:J.itemProps,viewProps:F9.create()}),this.ic_.emitter.on("click",this.onItemClick_),this.props=J.props,l1(this.props,"selected",(G)=>{this.itemController.props.set("selected",G),this.viewProps.set("hidden",!G)})}get itemController(){return this.ic_}importState(Q){return R1(Q,(J)=>super.importState(J),(J)=>({selected:J.required.boolean,title:J.required.string}),(J)=>{return this.ic_.props.set("selected",J.selected),this.ic_.props.set("title",J.title),!0})}exportState(){return $1(()=>super.exportState(),{selected:this.ic_.props.get("selected"),title:this.ic_.props.get("title")})}onItemClick_(){this.props.set("selected",!0)}}class c8 extends DZ{constructor(Q,J){super(Q,J);this.emitter_=new J1,this.onSelect_=this.onSelect_.bind(this),this.pool_=J,this.rackApi_.on("change",(z)=>{this.emitter_.emit("change",z)}),this.controller.tab.selectedIndex.emitter.on("change",this.onSelect_)}get pages(){return this.rackApi_.children}addPage(Q){let J=this.controller.view.element.ownerDocument,z=new GZ(J,{blade:pQ(),itemProps:_0.fromObject({selected:!1,title:Q.title}),props:_0.fromObject({selected:!1}),viewProps:F9.create()}),G=this.pool_.createApi(z);return this.rackApi_.add(G,Q.index)}removePage(Q){this.rackApi_.remove(this.rackApi_.children[Q])}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}onSelect_(Q){this.emitter_.emit("select",new V8(this,Q.rawValue))}}class l8 extends DZ{get title(){var Q;return(Q=this.controller.itemController.props.get("title"))!==null&&Q!==void 0?Q:""}set title(Q){this.controller.itemController.props.set("title",Q)}get selected(){return this.controller.props.get("selected")}set selected(Q){this.controller.props.set("selected",Q)}get children(){return this.rackApi_.children}addButton(Q){return this.rackApi_.addButton(Q)}addFolder(Q){return this.rackApi_.addFolder(Q)}addTab(Q){return this.rackApi_.addTab(Q)}add(Q,J){this.rackApi_.add(Q,J)}remove(Q){this.rackApi_.remove(Q)}addBinding(Q,J,z){return this.rackApi_.addBinding(Q,J,z)}addBlade(Q){return this.rackApi_.addBlade(Q)}}var m5=-1;class s8{constructor(){this.onItemSelectedChange_=this.onItemSelectedChange_.bind(this),this.empty=t0(!0),this.selectedIndex=t0(m5),this.items_=[]}add(Q,J){let z=J!==null&&J!==void 0?J:this.items_.length;this.items_.splice(z,0,Q),Q.emitter.on("change",this.onItemSelectedChange_),this.keepSelection_()}remove(Q){let J=this.items_.indexOf(Q);if(J<0)return;this.items_.splice(J,1),Q.emitter.off("change",this.onItemSelectedChange_),this.keepSelection_()}keepSelection_(){if(this.items_.length===0){this.selectedIndex.rawValue=m5,this.empty.rawValue=!0;return}let Q=this.items_.findIndex((J)=>J.rawValue);if(Q<0)this.items_.forEach((J,z)=>{J.rawValue=z===0}),this.selectedIndex.rawValue=0;else this.items_.forEach((J,z)=>{J.rawValue=z===Q}),this.selectedIndex.rawValue=Q;this.empty.rawValue=!1}onItemSelectedChange_(Q){if(Q.rawValue){let J=this.items_.findIndex((z)=>z===Q.sender);this.items_.forEach((z,G)=>{z.rawValue=G===J}),this.selectedIndex.rawValue=J}else this.keepSelection_()}}var OJ=y0("tab");class i8{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(OJ(),u8()),J.viewProps.bindClassModifiers(this.element),X9(J.empty,dQ(this.element,OJ(void 0,"nop")));let z=Q.createElement("div");z.classList.add(OJ("t")),this.element.appendChild(z),this.itemsElement=z;let G=Q.createElement("div");G.classList.add(OJ("i")),this.element.appendChild(G);let X=Q.createElement("div");X.classList.add(OJ("c")),this.element.appendChild(X),this.contentsElement=X}}class j6 extends YZ{constructor(Q,J){let z=new s8,G=new i8(Q,{empty:z.empty,viewProps:J.viewProps});super({blade:J.blade,rackController:new AZ({blade:J.blade,element:G.contentsElement,viewProps:J.viewProps}),view:G});this.onRackAdd_=this.onRackAdd_.bind(this),this.onRackRemove_=this.onRackRemove_.bind(this);let X=this.rackController.rack;X.emitter.on("add",this.onRackAdd_),X.emitter.on("remove",this.onRackRemove_),this.tab=z}add(Q,J){this.rackController.rack.add(Q,J)}remove(Q){this.rackController.rack.remove(this.rackController.rack.children[Q])}onRackAdd_(Q){if(!Q.root)return;let J=Q.bladeController;P8(this.view.itemsElement,J.itemController.view.element,Q.index),J.itemController.viewProps.set("parent",this.viewProps),this.tab.add(J.props.value("selected"))}onRackRemove_(Q){if(!Q.root)return;let J=Q.bladeController;_6(J.itemController.view.element),J.itemController.viewProps.set("parent",null),this.tab.remove(J.props.value("selected"))}}var n8=A1({id:"tab",type:"blade",accept(Q){let J=r0(Q,(z)=>({pages:z.required.array(z.required.object({title:z.required.string})),view:z.required.constant("tab")}));if(!J||J.pages.length===0)return null;return{params:J}},controller(Q){let J=new j6(Q.document,{blade:Q.blade,viewProps:Q.viewProps});return Q.params.pages.forEach((z)=>{let G=new GZ(Q.document,{blade:pQ(),itemProps:_0.fromObject({selected:!1,title:z.title}),props:_0.fromObject({selected:!1}),viewProps:F9.create()});J.add(G)}),J},api(Q){if(Q.controller instanceof j6)return new c8(Q.controller,Q.pool);if(Q.controller instanceof GZ)return new l8(Q.controller,Q.pool);return null}});function eX(Q,J){let z=Q.accept(J.params);if(!z)return null;let G=r0(J.params,(X)=>({disabled:X.optional.boolean,hidden:X.optional.boolean}));return Q.controller({blade:pQ(),document:J.document,params:w1(Object.assign(Object.assign({},z.params),{disabled:G===null||G===void 0?void 0:G.disabled,hidden:G===null||G===void 0?void 0:G.hidden})),viewProps:F9.create({disabled:G===null||G===void 0?void 0:G.disabled,hidden:G===null||G===void 0?void 0:G.hidden})})}class OZ extends xQ{get options(){return this.controller.valueController.props.get("options")}set options(Q){this.controller.valueController.props.set("options",Q)}}class o8{constructor(){this.disabled=!1,this.emitter=new J1}dispose(){}tick(){if(this.disabled)return;this.emitter.emit("tick",{sender:this})}}class t8{constructor(Q,J){this.disabled_=!1,this.timerId_=null,this.onTick_=this.onTick_.bind(this),this.doc_=Q,this.emitter=new J1,this.interval_=J,this.setTimer_()}get disabled(){return this.disabled_}set disabled(Q){if(this.disabled_=Q,this.disabled_)this.clearTimer_();else this.setTimer_()}dispose(){this.clearTimer_()}clearTimer_(){if(this.timerId_===null)return;let Q=this.doc_.defaultView;if(Q)Q.clearInterval(this.timerId_);this.timerId_=null}setTimer_(){if(this.clearTimer_(),this.interval_<=0)return;let Q=this.doc_.defaultView;if(Q)this.timerId_=Q.setInterval(this.onTick_,this.interval_)}onTick_(){if(this.disabled_)return;this.emitter.emit("tick",{sender:this})}}class cQ{constructor(Q){this.constraints=Q}constrain(Q){return this.constraints.reduce((J,z)=>{return z.constrain(J)},Q)}}function HZ(Q,J){if(Q instanceof J)return Q;if(Q instanceof cQ){let z=Q.constraints.reduce((G,X)=>{if(G)return G;return X instanceof J?X:null},null);if(z)return z}return null}class lQ{constructor(Q){this.values=_0.fromObject({options:Q})}constrain(Q){let J=this.values.get("options");if(J.length===0)return Q;return J.filter((G)=>{return G.value===Q}).length>0?Q:J[0].value}}function kJ(Q){var J;let z=N6;if(Array.isArray(Q))return(J=r0({items:Q},(G)=>({items:G.required.array(G.required.object({text:G.required.string,value:G.required.raw}))})))===null||J===void 0?void 0:J.items;if(typeof Q==="object")return z.required.raw(Q).value;return}function f6(Q){if(Array.isArray(Q))return Q;let J=[];return Object.keys(Q).forEach((z)=>{J.push({text:z,value:Q[z]})}),J}function v6(Q){return!s0(Q)?new lQ(f6(w1(Q))):null}var G6=y0("lst");class r8{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),this.props_=J.props,this.element=Q.createElement("div"),this.element.classList.add(G6()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("select");z.classList.add(G6("s")),J.viewProps.bindDisabled(z),this.element.appendChild(z),this.selectElement=z;let G=Q.createElement("div");G.classList.add(G6("m")),G.appendChild(FZ(Q,"dropdown")),this.element.appendChild(G),J.value.emitter.on("change",this.onValueChange_),this.value_=J.value,l1(this.props_,"options",(X)=>{I8(this.selectElement),X.forEach((U)=>{let H=Q.createElement("option");H.textContent=U.text,this.selectElement.appendChild(H)}),this.update_()})}update_(){let Q=this.props_.get("options").map((J)=>J.value);this.selectElement.selectedIndex=Q.indexOf(this.value_.rawValue)}onValueChange_(){this.update_()}}class H9{constructor(Q,J){this.onSelectChange_=this.onSelectChange_.bind(this),this.props=J.props,this.value=J.value,this.viewProps=J.viewProps,this.view=new r8(Q,{props:this.props,value:this.value,viewProps:this.viewProps}),this.view.selectElement.addEventListener("change",this.onSelectChange_)}onSelectChange_(Q){let J=w1(Q.currentTarget);this.value.rawValue=this.props.get("options")[J.selectedIndex].value}importProps(Q){return R1(Q,null,(J)=>({options:J.required.custom(kJ)}),(J)=>{return this.props.set("options",f6(J.options)),!0})}exportProps(){return $1(null,{options:this.props.get("options")})}}var d5=y0("pop");class a8{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(d5()),J.viewProps.bindClassModifiers(this.element),X9(J.shows,dQ(this.element,d5(void 0,"v")))}}class u6{constructor(Q,J){this.shows=t0(!1),this.viewProps=J.viewProps,this.view=new a8(Q,{shows:this.shows,viewProps:this.viewProps})}}var g5=y0("txt");class e8{constructor(Q,J){this.onChange_=this.onChange_.bind(this),this.element=Q.createElement("div"),this.element.classList.add(g5()),J.viewProps.bindClassModifiers(this.element),this.props_=J.props,this.props_.emitter.on("change",this.onChange_);let z=Q.createElement("input");z.classList.add(g5("i")),z.type="text",J.viewProps.bindDisabled(z),this.element.appendChild(z),this.inputElement=z,J.value.emitter.on("change",this.onChange_),this.value_=J.value,this.refresh()}refresh(){let Q=this.props_.get("formatter");this.inputElement.value=Q(this.value_.rawValue)}onChange_(){this.refresh()}}class fQ{constructor(Q,J){this.onInputChange_=this.onInputChange_.bind(this),this.parser_=J.parser,this.props=J.props,this.value=J.value,this.viewProps=J.viewProps,this.view=new e8(Q,{props:J.props,value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_)}onInputChange_(Q){let z=w1(Q.currentTarget).value,G=this.parser_(z);if(!s0(G))this.value.rawValue=G;this.view.refresh()}}function QW(Q){return String(Q)}function QK(Q){if(Q==="false")return!1;return!!Q}function p5(Q){return QW(Q)}function JW(Q){return(J)=>{return Q.reduce((z,G)=>{if(z!==null)return z;return G(J)},null)}}var ZW=j1(0);function qZ(Q){return ZW(Q)+"%"}function JK(Q){return String(Q)}function w6(Q){return Q}function sQ({primary:Q,secondary:J,forward:z,backward:G}){let X=!1;function U(H){if(X)return;X=!0,H(),X=!1}Q.emitter.on("change",(H)=>{U(()=>{J.setRawValue(z(Q.rawValue,J.rawValue),H.options)})}),J.emitter.on("change",(H)=>{U(()=>{Q.setRawValue(G(Q.rawValue,J.rawValue),H.options)}),U(()=>{J.setRawValue(z(Q.rawValue,J.rawValue),H.options)})}),U(()=>{J.setRawValue(z(Q.rawValue,J.rawValue),{forceEmit:!1,last:!0})})}function L1(Q,J){let z=Q*(J.altKey?0.1:1)*(J.shiftKey?10:1);if(J.upKey)return+z;else if(J.downKey)return-z;return 0}function jJ(Q){return{altKey:Q.altKey,downKey:Q.key==="ArrowDown",shiftKey:Q.shiftKey,upKey:Q.key==="ArrowUp"}}function q9(Q){return{altKey:Q.altKey,downKey:Q.key==="ArrowLeft",shiftKey:Q.shiftKey,upKey:Q.key==="ArrowRight"}}function KW(Q){return Q==="ArrowUp"||Q==="ArrowDown"}function ZK(Q){return KW(Q)||Q==="ArrowLeft"||Q==="ArrowRight"}function H6(Q,J){var z,G;let X=J.ownerDocument.defaultView,U=J.getBoundingClientRect();return{x:Q.pageX-(((z=X&&X.scrollX)!==null&&z!==void 0?z:0)+U.left),y:Q.pageY-(((G=X&&X.scrollY)!==null&&G!==void 0?G:0)+U.top)}}class E9{constructor(Q){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_=Q,this.emitter=new J1,Q.addEventListener("touchstart",this.onTouchStart_,{passive:!1}),Q.addEventListener("touchmove",this.onTouchMove_,{passive:!0}),Q.addEventListener("touchend",this.onTouchEnd_),Q.addEventListener("mousedown",this.onMouseDown_)}computePosition_(Q){let J=this.elem_.getBoundingClientRect();return{bounds:{width:J.width,height:J.height},point:Q?{x:Q.x,y:Q.y}:null}}onMouseDown_(Q){var J;Q.preventDefault(),(J=Q.currentTarget)===null||J===void 0||J.focus();let z=this.elem_.ownerDocument;z.addEventListener("mousemove",this.onDocumentMouseMove_),z.addEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("down",{altKey:Q.altKey,data:this.computePosition_(H6(Q,this.elem_)),sender:this,shiftKey:Q.shiftKey})}onDocumentMouseMove_(Q){this.emitter.emit("move",{altKey:Q.altKey,data:this.computePosition_(H6(Q,this.elem_)),sender:this,shiftKey:Q.shiftKey})}onDocumentMouseUp_(Q){let J=this.elem_.ownerDocument;J.removeEventListener("mousemove",this.onDocumentMouseMove_),J.removeEventListener("mouseup",this.onDocumentMouseUp_),this.emitter.emit("up",{altKey:Q.altKey,data:this.computePosition_(H6(Q,this.elem_)),sender:this,shiftKey:Q.shiftKey})}onTouchStart_(Q){Q.preventDefault();let J=Q.targetTouches.item(0),z=this.elem_.getBoundingClientRect();this.emitter.emit("down",{altKey:Q.altKey,data:this.computePosition_(J?{x:J.clientX-z.left,y:J.clientY-z.top}:void 0),sender:this,shiftKey:Q.shiftKey}),this.lastTouch_=J}onTouchMove_(Q){let J=Q.targetTouches.item(0),z=this.elem_.getBoundingClientRect();this.emitter.emit("move",{altKey:Q.altKey,data:this.computePosition_(J?{x:J.clientX-z.left,y:J.clientY-z.top}:void 0),sender:this,shiftKey:Q.shiftKey}),this.lastTouch_=J}onTouchEnd_(Q){var J;let z=(J=Q.targetTouches.item(0))!==null&&J!==void 0?J:this.lastTouch_,G=this.elem_.getBoundingClientRect();this.emitter.emit("up",{altKey:Q.altKey,data:this.computePosition_(z?{x:z.clientX-G.left,y:z.clientY-G.top}:void 0),sender:this,shiftKey:Q.shiftKey})}}var E1=y0("txt");class KK{constructor(Q,J){if(this.onChange_=this.onChange_.bind(this),this.props_=J.props,this.props_.emitter.on("change",this.onChange_),this.element=Q.createElement("div"),this.element.classList.add(E1(),E1(void 0,"num")),J.arrayPosition)this.element.classList.add(E1(void 0,J.arrayPosition));J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("input");z.classList.add(E1("i")),z.type="text",J.viewProps.bindDisabled(z),this.element.appendChild(z),this.inputElement=z,this.onDraggingChange_=this.onDraggingChange_.bind(this),this.dragging_=J.dragging,this.dragging_.emitter.on("change",this.onDraggingChange_),this.element.classList.add(E1()),this.inputElement.classList.add(E1("i"));let G=Q.createElement("div");G.classList.add(E1("k")),this.element.appendChild(G),this.knobElement=G;let X=Q.createElementNS(c1,"svg");X.classList.add(E1("g")),this.knobElement.appendChild(X);let U=Q.createElementNS(c1,"path");U.classList.add(E1("gb")),X.appendChild(U),this.guideBodyElem_=U;let H=Q.createElementNS(c1,"path");H.classList.add(E1("gh")),X.appendChild(H),this.guideHeadElem_=H;let q=Q.createElement("div");q.classList.add(y0("tt")()),this.knobElement.appendChild(q),this.tooltipElem_=q,J.value.emitter.on("change",this.onChange_),this.value=J.value,this.refresh()}onDraggingChange_(Q){if(Q.rawValue===null){this.element.classList.remove(E1(void 0,"drg"));return}this.element.classList.add(E1(void 0,"drg"));let J=Q.rawValue/this.props_.get("pointerScale"),z=J+(J>0?-1:J<0?1:0),G=K1(-z,-4,4);this.guideHeadElem_.setAttributeNS(null,"d",[`M ${z+G},0 L${z},4 L${z+G},8`,`M ${J},-1 L${J},9`].join(" ")),this.guideBodyElem_.setAttributeNS(null,"d",`M 0,4 L${J},4`);let X=this.props_.get("formatter");this.tooltipElem_.textContent=X(this.value.rawValue),this.tooltipElem_.style.left=`${J}px`}refresh(){let Q=this.props_.get("formatter");this.inputElement.value=Q(this.value.rawValue)}onChange_(){this.refresh()}}class iQ{constructor(Q,J){var z;this.originRawValue_=0,this.onInputChange_=this.onInputChange_.bind(this),this.onInputKeyDown_=this.onInputKeyDown_.bind(this),this.onInputKeyUp_=this.onInputKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.parser_=J.parser,this.props=J.props,this.sliderProps_=(z=J.sliderProps)!==null&&z!==void 0?z:null,this.value=J.value,this.viewProps=J.viewProps,this.dragging_=t0(null),this.view=new KK(Q,{arrayPosition:J.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_);let G=new E9(this.view.knobElement);G.emitter.on("down",this.onPointerDown_),G.emitter.on("move",this.onPointerMove_),G.emitter.on("up",this.onPointerUp_)}constrainValue_(Q){var J,z;let G=(J=this.sliderProps_)===null||J===void 0?void 0:J.get("min"),X=(z=this.sliderProps_)===null||z===void 0?void 0:z.get("max"),U=Q;if(G!==void 0)U=Math.max(U,G);if(X!==void 0)U=Math.min(U,X);return U}onInputChange_(Q){let z=w1(Q.currentTarget).value,G=this.parser_(z);if(!s0(G))this.value.rawValue=this.constrainValue_(G);this.view.refresh()}onInputKeyDown_(Q){let J=L1(this.props.get("keyScale"),jJ(Q));if(J===0)return;this.value.setRawValue(this.constrainValue_(this.value.rawValue+J),{forceEmit:!1,last:!1})}onInputKeyUp_(Q){if(L1(this.props.get("keyScale"),jJ(Q))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}onPointerDown_(){this.originRawValue_=this.value.rawValue,this.dragging_.rawValue=0}computeDraggingValue_(Q){if(!Q.point)return null;let J=Q.point.x-Q.bounds.width/2;return this.constrainValue_(this.originRawValue_+J*this.props.get("pointerScale"))}onPointerMove_(Q){let J=this.computeDraggingValue_(Q.data);if(J===null)return;this.value.setRawValue(J,{forceEmit:!1,last:!1}),this.dragging_.rawValue=this.value.rawValue-this.originRawValue_}onPointerUp_(Q){let J=this.computeDraggingValue_(Q.data);if(J===null)return;this.value.setRawValue(J,{forceEmit:!0,last:!0}),this.dragging_.rawValue=null}}var q6=y0("sld");class zK{constructor(Q,J){this.onChange_=this.onChange_.bind(this),this.props_=J.props,this.props_.emitter.on("change",this.onChange_),this.element=Q.createElement("div"),this.element.classList.add(q6()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(q6("t")),J.viewProps.bindTabIndex(z),this.element.appendChild(z),this.trackElement=z;let G=Q.createElement("div");G.classList.add(q6("k")),this.trackElement.appendChild(G),this.knobElement=G,J.value.emitter.on("change",this.onChange_),this.value=J.value,this.update_()}update_(){let Q=K1(d0(this.value.rawValue,this.props_.get("min"),this.props_.get("max"),0,100),0,100);this.knobElement.style.width=`${Q}%`}onChange_(){this.update_()}}class UK{constructor(Q,J){this.onKeyDown_=this.onKeyDown_.bind(this),this.onKeyUp_=this.onKeyUp_.bind(this),this.onPointerDownOrMove_=this.onPointerDownOrMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.value=J.value,this.viewProps=J.viewProps,this.props=J.props,this.view=new zK(Q,{props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new E9(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_(Q,J){if(!Q.point)return;this.value.setRawValue(d0(K1(Q.point.x,0,Q.bounds.width),0,Q.bounds.width,this.props.get("min"),this.props.get("max")),J)}onPointerDownOrMove_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerUp_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!0,last:!0})}onKeyDown_(Q){let J=L1(this.props.get("keyScale"),q9(Q));if(J===0)return;this.value.setRawValue(this.value.rawValue+J,{forceEmit:!1,last:!1})}onKeyUp_(Q){if(L1(this.props.get("keyScale"),q9(Q))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}var F6=y0("sldtxt");class XK{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(F6());let z=Q.createElement("div");z.classList.add(F6("s")),this.sliderView_=J.sliderView,z.appendChild(this.sliderView_.element),this.element.appendChild(z);let G=Q.createElement("div");G.classList.add(F6("t")),this.textView_=J.textView,G.appendChild(this.textView_.element),this.element.appendChild(G)}}class wJ{constructor(Q,J){this.value=J.value,this.viewProps=J.viewProps,this.sliderC_=new UK(Q,{props:J.sliderProps,value:J.value,viewProps:this.viewProps}),this.textC_=new iQ(Q,{parser:J.parser,props:J.textProps,sliderProps:J.sliderProps,value:J.value,viewProps:J.viewProps}),this.view=new XK(Q,{sliderView:this.sliderC_.view,textView:this.textC_.view})}get sliderController(){return this.sliderC_}get textController(){return this.textC_}importProps(Q){return R1(Q,null,(J)=>({max:J.required.number,min:J.required.number}),(J)=>{let z=this.sliderC_.props;return z.set("max",J.max),z.set("min",J.min),!0})}exportProps(){let Q=this.sliderC_.props;return $1(null,{max:Q.get("max"),min:Q.get("min")})}}function WK(Q){return{sliderProps:new _0({keyScale:Q.keyScale,max:Q.max,min:Q.min}),textProps:new _0({formatter:t0(Q.formatter),keyScale:Q.keyScale,pointerScale:t0(Q.pointerScale)})}}var zW={containerUnitSize:"cnt-usz"};function GK(Q){return`--${zW[Q]}`}function MJ(Q){return w8(Q)}function _9(Q){if(!O6(Q))return;return r0(Q,MJ)}function U9(Q,J){if(!Q)return;let z=[],G=B8(Q,J);if(G)z.push(G);let X=L8(Q);if(X)z.push(X);return new cQ(z)}function UW(Q){if(!Q)return!1;return Q.major===gQ.major}function HK(Q){if(Q==="inline"||Q==="popup")return Q;return}function PJ(Q,J){Q.write(J)}var ZZ=y0("ckb");class qK{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),this.element=Q.createElement("div"),this.element.classList.add(ZZ()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("label");z.classList.add(ZZ("l")),this.element.appendChild(z),this.labelElement=z;let G=Q.createElement("input");G.classList.add(ZZ("i")),G.type="checkbox",this.labelElement.appendChild(G),this.inputElement=G,J.viewProps.bindDisabled(this.inputElement);let X=Q.createElement("div");X.classList.add(ZZ("w")),this.labelElement.appendChild(X);let U=FZ(Q,"check");X.appendChild(U),J.value.emitter.on("change",this.onValueChange_),this.value=J.value,this.update_()}update_(){this.inputElement.checked=this.value.rawValue}onValueChange_(){this.update_()}}class FK{constructor(Q,J){this.onInputChange_=this.onInputChange_.bind(this),this.onLabelMouseDown_=this.onLabelMouseDown_.bind(this),this.value=J.value,this.viewProps=J.viewProps,this.view=new qK(Q,{value:this.value,viewProps:this.viewProps}),this.view.inputElement.addEventListener("change",this.onInputChange_),this.view.labelElement.addEventListener("mousedown",this.onLabelMouseDown_)}onInputChange_(Q){let J=w1(Q.currentTarget);this.value.rawValue=J.checked,Q.preventDefault(),Q.stopPropagation()}onLabelMouseDown_(Q){Q.preventDefault()}}function XW(Q){let J=[],z=v6(Q.options);if(z)J.push(z);return new cQ(J)}var WW=A1({id:"input-bool",type:"input",accept:(Q,J)=>{if(typeof Q!=="boolean")return null;let z=r0(J,(G)=>({options:G.optional.custom(kJ),readonly:G.optional.constant(!1)}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>QK,constraint:(Q)=>XW(Q.params),writer:(Q)=>PJ},controller:(Q)=>{let{document:J,value:z,constraint:G}=Q,X=G&&HZ(G,lQ);if(X)return new H9(J,{props:new _0({options:X.values.value("options")}),value:z,viewProps:Q.viewProps});return new FK(J,{value:z,viewProps:Q.viewProps})},api(Q){if(typeof Q.controller.value.rawValue!=="boolean")return null;if(Q.controller.valueController instanceof H9)return new OZ(Q.controller);return null}}),ZQ=y0("col");class DK{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(ZQ()),J.foldable.bindExpandedClass(this.element,ZQ(void 0,"expanded")),l1(J.foldable,"completed",dQ(this.element,ZQ(void 0,"cpl")));let z=Q.createElement("div");z.classList.add(ZQ("h")),this.element.appendChild(z);let G=Q.createElement("div");G.classList.add(ZQ("s")),z.appendChild(G),this.swatchElement=G;let X=Q.createElement("div");if(X.classList.add(ZQ("t")),z.appendChild(X),this.textElement=X,J.pickerLayout==="inline"){let U=Q.createElement("div");U.classList.add(ZQ("p")),this.element.appendChild(U),this.pickerElement=U}else this.pickerElement=null}}function GW(Q,J,z){let G=K1(Q/255,0,1),X=K1(J/255,0,1),U=K1(z/255,0,1),H=Math.max(G,X,U),q=Math.min(G,X,U),F=H-q,D=0,A=0,O=(q+H)/2;if(F!==0){if(A=F/(1-Math.abs(H+q-1)),G===H)D=(X-U)/F;else if(X===H)D=2+(U-G)/F;else D=4+(G-X)/F;D=D/6+(D<0?1:0)}return[D*360,A*100,O*100]}function HW(Q,J,z){let G=(Q%360+360)%360,X=K1(J/100,0,1),U=K1(z/100,0,1),H=(1-Math.abs(2*U-1))*X,q=H*(1-Math.abs(G/60%2-1)),F=U-H/2,D,A,O;if(G>=0&&G<60)[D,A,O]=[H,q,0];else if(G>=60&&G<120)[D,A,O]=[q,H,0];else if(G>=120&&G<180)[D,A,O]=[0,H,q];else if(G>=180&&G<240)[D,A,O]=[0,q,H];else if(G>=240&&G<300)[D,A,O]=[q,0,H];else[D,A,O]=[H,0,q];return[(D+F)*255,(A+F)*255,(O+F)*255]}function qW(Q,J,z){let G=K1(Q/255,0,1),X=K1(J/255,0,1),U=K1(z/255,0,1),H=Math.max(G,X,U),q=Math.min(G,X,U),F=H-q,D;if(F===0)D=0;else if(H===G)D=60*(((X-U)/F%6+6)%6);else if(H===X)D=60*((U-G)/F+2);else D=60*((G-X)/F+4);let A=H===0?0:F/H,O=H;return[D,A*100,O*100]}function YK(Q,J,z){let G=A8(Q,360),X=K1(J/100,0,1),U=K1(z/100,0,1),H=U*X,q=H*(1-Math.abs(G/60%2-1)),F=U-H,D,A,O;if(G>=0&&G<60)[D,A,O]=[H,q,0];else if(G>=60&&G<120)[D,A,O]=[q,H,0];else if(G>=120&&G<180)[D,A,O]=[0,H,q];else if(G>=180&&G<240)[D,A,O]=[0,q,H];else if(G>=240&&G<300)[D,A,O]=[q,0,H];else[D,A,O]=[H,0,q];return[(D+F)*255,(A+F)*255,(O+F)*255]}function FW(Q,J,z){let G=z+J*(100-Math.abs(2*z-100))/200;return[Q,G!==0?J*(100-Math.abs(2*z-100))/G:0,z+J*(100-Math.abs(2*z-100))/200]}function DW(Q,J,z){let G=100-Math.abs(z*(200-J)/100-100);return[Q,G!==0?J*z/G:0,z*(200-J)/200]}function s1(Q){return[Q[0],Q[1],Q[2]]}function NZ(Q,J){return[Q[0],Q[1],Q[2],J]}var YW={hsl:{hsl:(Q,J,z)=>[Q,J,z],hsv:FW,rgb:HW},hsv:{hsl:DW,hsv:(Q,J,z)=>[Q,J,z],rgb:YK},rgb:{hsl:GW,hsv:qW,rgb:(Q,J,z)=>[Q,J,z]}};function vQ(Q,J){return[J==="float"?1:Q==="rgb"?255:360,J==="float"?1:Q==="rgb"?255:100,J==="float"?1:Q==="rgb"?255:100]}function AW(Q,J){return Q===J?J:A8(Q,J)}function AK(Q,J,z){var G;let X=vQ(J,z);return[J==="rgb"?K1(Q[0],0,X[0]):AW(Q[0],X[0]),K1(Q[1],0,X[1]),K1(Q[2],0,X[2]),K1((G=Q[3])!==null&&G!==void 0?G:1,0,1)]}function c5(Q,J,z,G){let X=vQ(J,z),U=vQ(J,G);return Q.map((H,q)=>H/X[q]*U[q])}function OK(Q,J,z){let G=c5(Q,J.mode,J.type,"int"),X=YW[J.mode][z.mode](...G);return c5(X,z.mode,"int",z.type)}class x0{static black(){return new x0([0,0,0],"rgb")}constructor(Q,J){this.type="int",this.mode=J,this.comps_=AK(Q,J,this.type)}getComponents(Q){return NZ(OK(s1(this.comps_),{mode:this.mode,type:this.type},{mode:Q!==null&&Q!==void 0?Q:this.mode,type:this.type}),this.comps_[3])}toRgbaObject(){let Q=this.getComponents("rgb");return{r:Q[0],g:Q[1],b:Q[2],a:Q[3]}}}var P9=y0("colp");class NK{constructor(Q,J){this.alphaViews_=null,this.element=Q.createElement("div"),this.element.classList.add(P9()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(P9("hsv"));let G=Q.createElement("div");G.classList.add(P9("sv")),this.svPaletteView_=J.svPaletteView,G.appendChild(this.svPaletteView_.element),z.appendChild(G);let X=Q.createElement("div");X.classList.add(P9("h")),this.hPaletteView_=J.hPaletteView,X.appendChild(this.hPaletteView_.element),z.appendChild(X),this.element.appendChild(z);let U=Q.createElement("div");if(U.classList.add(P9("rgb")),this.textsView_=J.textsView,U.appendChild(this.textsView_.element),this.element.appendChild(U),J.alphaViews){this.alphaViews_={palette:J.alphaViews.palette,text:J.alphaViews.text};let H=Q.createElement("div");H.classList.add(P9("a"));let q=Q.createElement("div");q.classList.add(P9("ap")),q.appendChild(this.alphaViews_.palette.element),H.appendChild(q);let F=Q.createElement("div");F.classList.add(P9("at")),F.appendChild(this.alphaViews_.text.element),H.appendChild(F),this.element.appendChild(H)}}get allFocusableElements(){let Q=[this.svPaletteView_.element,this.hPaletteView_.element,this.textsView_.modeSelectElement,...this.textsView_.inputViews.map((J)=>J.inputElement)];if(this.alphaViews_)Q.push(this.alphaViews_.palette.element,this.alphaViews_.text.inputElement);return Q}}function OW(Q){return Q==="int"?"int":Q==="float"?"float":void 0}function m6(Q){return r0(Q,(J)=>({color:J.optional.object({alpha:J.optional.boolean,type:J.optional.custom(OW)}),expanded:J.optional.boolean,picker:J.optional.custom(HK),readonly:J.optional.constant(!1)}))}function WQ(Q){return Q?0.1:1}function BK(Q){var J;return(J=Q.color)===null||J===void 0?void 0:J.type}class BZ{constructor(Q,J){this.type="float",this.mode=J,this.comps_=AK(Q,J,this.type)}getComponents(Q){return NZ(OK(s1(this.comps_),{mode:this.mode,type:this.type},{mode:Q!==null&&Q!==void 0?Q:this.mode,type:this.type}),this.comps_[3])}toRgbaObject(){let Q=this.getComponents("rgb");return{r:Q[0],g:Q[1],b:Q[2],a:Q[3]}}}var NW={int:(Q,J)=>new x0(Q,J),float:(Q,J)=>new BZ(Q,J)};function d6(Q,J,z){return NW[z](Q,J)}function BW(Q){return Q.type==="float"}function LW(Q){return Q.type==="int"}function jW(Q){let J=Q.getComponents(),z=vQ(Q.mode,"int");return new x0([Math.round(d0(J[0],0,1,0,z[0])),Math.round(d0(J[1],0,1,0,z[1])),Math.round(d0(J[2],0,1,0,z[2])),J[3]],Q.mode)}function wW(Q){let J=Q.getComponents(),z=vQ(Q.mode,"int");return new BZ([d0(J[0],0,z[0],0,1),d0(J[1],0,z[1],0,1),d0(J[2],0,z[2],0,1),J[3]],Q.mode)}function Y1(Q,J){if(Q.type===J)return Q;if(LW(Q)&&J==="float")return wW(Q);if(BW(Q)&&J==="int")return jW(Q);throw Q1.shouldNeverHappen()}function MW(Q,J){return Q.alpha===J.alpha&&Q.mode===J.mode&&Q.notation===J.notation&&Q.type===J.type}function y1(Q,J){let z=Q.match(/^(.+)%$/);if(!z)return Math.min(parseFloat(Q),J);return Math.min(parseFloat(z[1])*0.01*J,J)}var VW={deg:(Q)=>Q,grad:(Q)=>Q*360/400,rad:(Q)=>Q*360/(2*Math.PI),turn:(Q)=>Q*360};function LK(Q){let J=Q.match(/^([0-9.]+?)(deg|grad|rad|turn)$/);if(!J)return parseFloat(Q);let z=parseFloat(J[1]),G=J[2];return VW[G](z)}function jK(Q){let J=Q.match(/^rgb\(\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*,\s*([0-9A-Fa-f.]+%?)\s*\)$/);if(!J)return null;let z=[y1(J[1],255),y1(J[2],255),y1(J[3],255)];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2]))return null;return z}function RW(Q){let J=jK(Q);return J?new x0(J,"rgb"):null}function wK(Q){let J=Q.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(!J)return null;let z=[y1(J[1],255),y1(J[2],255),y1(J[3],255),y1(J[4],1)];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2])||isNaN(z[3]))return null;return z}function $W(Q){let J=wK(Q);return J?new x0(J,"rgb"):null}function MK(Q){let J=Q.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(!J)return null;let z=[LK(J[1]),y1(J[2],100),y1(J[3],100)];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2]))return null;return z}function kW(Q){let J=MK(Q);return J?new x0(J,"hsl"):null}function VK(Q){let J=Q.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(!J)return null;let z=[LK(J[1]),y1(J[2],100),y1(J[3],100),y1(J[4],1)];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2])||isNaN(z[3]))return null;return z}function PW(Q){let J=VK(Q);return J?new x0(J,"hsl"):null}function RK(Q){let J=Q.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(J)return[parseInt(J[1]+J[1],16),parseInt(J[2]+J[2],16),parseInt(J[3]+J[3],16)];let z=Q.match(/^(?:#|0x)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);if(z)return[parseInt(z[1],16),parseInt(z[2],16),parseInt(z[3],16)];return null}function IW(Q){let J=RK(Q);return J?new x0(J,"rgb"):null}function $K(Q){let J=Q.match(/^#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])$/);if(J)return[parseInt(J[1]+J[1],16),parseInt(J[2]+J[2],16),parseInt(J[3]+J[3],16),d0(parseInt(J[4]+J[4],16),0,255,0,1)];let z=Q.match(/^(?:#|0x)?([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/);if(z)return[parseInt(z[1],16),parseInt(z[2],16),parseInt(z[3],16),d0(parseInt(z[4],16),0,255,0,1)];return null}function SW(Q){let J=$K(Q);return J?new x0(J,"rgb"):null}function kK(Q){let J=Q.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(!J)return null;let z=[parseFloat(J[1]),parseFloat(J[2]),parseFloat(J[3])];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2]))return null;return z}function l5(Q){return(J)=>{let z=kK(J);return z?d6(z,"rgb",Q):null}}function PK(Q){let J=Q.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(!J)return null;let z=[parseFloat(J[1]),parseFloat(J[2]),parseFloat(J[3]),parseFloat(J[4])];if(isNaN(z[0])||isNaN(z[1])||isNaN(z[2])||isNaN(z[3]))return null;return z}function s5(Q){return(J)=>{let z=PK(J);return z?d6(z,"rgb",Q):null}}var _W=[{parser:RK,result:{alpha:!1,mode:"rgb",notation:"hex"}},{parser:$K,result:{alpha:!0,mode:"rgb",notation:"hex"}},{parser:jK,result:{alpha:!1,mode:"rgb",notation:"func"}},{parser:wK,result:{alpha:!0,mode:"rgb",notation:"func"}},{parser:MK,result:{alpha:!1,mode:"hsl",notation:"func"}},{parser:VK,result:{alpha:!0,mode:"hsl",notation:"func"}},{parser:kK,result:{alpha:!1,mode:"rgb",notation:"object"}},{parser:PK,result:{alpha:!0,mode:"rgb",notation:"object"}}];function TW(Q){return _W.reduce((J,{parser:z,result:G})=>{if(J)return J;return z(Q)?G:null},null)}function CW(Q,J="int"){let z=TW(Q);if(!z)return null;if(z.notation==="hex"&&J!=="float")return Object.assign(Object.assign({},z),{type:"int"});if(z.notation==="func")return Object.assign(Object.assign({},z),{type:J});return null}function IJ(Q){let J=[IW,SW,RW,$W,kW,PW];if(Q==="int")J.push(l5("int"),s5("int"));if(Q==="float")J.push(l5("float"),s5("float"));let z=JW(J);return(G)=>{let X=z(G);return X?Y1(X,Q):null}}function EW(Q){let J=IJ("int");if(typeof Q!=="string")return x0.black();let z=J(Q);return z!==null&&z!==void 0?z:x0.black()}function IK(Q){let J=K1(Math.floor(Q),0,255).toString(16);return J.length===1?`0${J}`:J}function g6(Q,J="#"){let z=s1(Q.getComponents("rgb")).map(IK).join("");return`${J}${z}`}function p6(Q,J="#"){let z=Q.getComponents("rgb"),G=[z[0],z[1],z[2],z[3]*255].map(IK).join("");return`${J}${G}`}function SK(Q){let J=j1(0),z=Y1(Q,"int");return`rgb(${s1(z.getComponents("rgb")).map((X)=>J(X)).join(", ")})`}function KZ(Q){let J=j1(2),z=j1(0);return`rgba(${Y1(Q,"int").getComponents("rgb").map((U,H)=>{return(H===3?J:z)(U)}).join(", ")})`}function yW(Q){let J=[j1(0),qZ,qZ],z=Y1(Q,"int");return`hsl(${s1(z.getComponents("hsl")).map((X,U)=>J[U](X)).join(", ")})`}function hW(Q){let J=[j1(0),qZ,qZ,j1(2)];return`hsla(${Y1(Q,"int").getComponents("hsl").map((X,U)=>J[U](X)).join(", ")})`}function _K(Q,J){let z=j1(J==="float"?2:0),G=["r","g","b"],X=Y1(Q,J);return`{${s1(X.getComponents("rgb")).map((H,q)=>`${G[q]}: ${z(H)}`).join(", ")}}`}function bW(Q){return(J)=>_K(J,Q)}function TK(Q,J){let z=j1(2),G=j1(J==="float"?2:0),X=["r","g","b","a"];return`{${Y1(Q,J).getComponents("rgb").map((q,F)=>{let D=F===3?z:G;return`${X[F]}: ${D(q)}`}).join(", ")}}`}function xW(Q){return(J)=>TK(J,Q)}var fW=[{format:{alpha:!1,mode:"rgb",notation:"hex",type:"int"},stringifier:g6},{format:{alpha:!0,mode:"rgb",notation:"hex",type:"int"},stringifier:p6},{format:{alpha:!1,mode:"rgb",notation:"func",type:"int"},stringifier:SK},{format:{alpha:!0,mode:"rgb",notation:"func",type:"int"},stringifier:KZ},{format:{alpha:!1,mode:"hsl",notation:"func",type:"int"},stringifier:yW},{format:{alpha:!0,mode:"hsl",notation:"func",type:"int"},stringifier:hW},...["int","float"].reduce((Q,J)=>{return[...Q,{format:{alpha:!1,mode:"rgb",notation:"object",type:J},stringifier:bW(J)},{format:{alpha:!0,mode:"rgb",notation:"object",type:J},stringifier:xW(J)}]},[])];function CK(Q){return fW.reduce((J,z)=>{if(J)return J;return MW(z.format,Q)?z.stringifier:null},null)}var NJ=y0("apl");class EK{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),this.value=J.value,this.value.emitter.on("change",this.onValueChange_),this.element=Q.createElement("div"),this.element.classList.add(NJ()),J.viewProps.bindClassModifiers(this.element),J.viewProps.bindTabIndex(this.element);let z=Q.createElement("div");z.classList.add(NJ("b")),this.element.appendChild(z);let G=Q.createElement("div");G.classList.add(NJ("c")),z.appendChild(G),this.colorElem_=G;let X=Q.createElement("div");X.classList.add(NJ("m")),this.element.appendChild(X),this.markerElem_=X;let U=Q.createElement("div");U.classList.add(NJ("p")),this.markerElem_.appendChild(U),this.previewElem_=U,this.update_()}update_(){let Q=this.value.rawValue,J=Q.getComponents("rgb"),z=new x0([J[0],J[1],J[2],0],"rgb"),G=new x0([J[0],J[1],J[2],255],"rgb"),X=["to right",KZ(z),KZ(G)];this.colorElem_.style.background=`linear-gradient(${X.join(",")})`,this.previewElem_.style.backgroundColor=KZ(Q);let U=d0(J[3],0,1,0,100);this.markerElem_.style.left=`${U}%`}onValueChange_(){this.update_()}}class yK{constructor(Q,J){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=J.value,this.viewProps=J.viewProps,this.view=new EK(Q,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new E9(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_(Q,J){if(!Q.point)return;let z=Q.point.x/Q.bounds.width,G=this.value.rawValue,[X,U,H]=G.getComponents("hsv");this.value.setRawValue(new x0([X,U,H,z],"hsv"),J)}onPointerDown_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerMove_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerUp_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!0,last:!0})}onKeyDown_(Q){let J=L1(WQ(!0),q9(Q));if(J===0)return;let z=this.value.rawValue,[G,X,U,H]=z.getComponents("hsv");this.value.setRawValue(new x0([G,X,U,H+J],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(Q){if(L1(WQ(!0),q9(Q))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}var hQ=y0("coltxt");function vW(Q){let J=Q.createElement("select"),z=[{text:"RGB",value:"rgb"},{text:"HSL",value:"hsl"},{text:"HSV",value:"hsv"},{text:"HEX",value:"hex"}];return J.appendChild(z.reduce((G,X)=>{let U=Q.createElement("option");return U.textContent=X.text,U.value=X.value,G.appendChild(U),G},Q.createDocumentFragment())),J}class hK{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(hQ()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(hQ("m")),this.modeElem_=vW(Q),this.modeElem_.classList.add(hQ("ms")),z.appendChild(this.modeSelectElement),J.viewProps.bindDisabled(this.modeElem_);let G=Q.createElement("div");G.classList.add(hQ("mm")),G.appendChild(FZ(Q,"dropdown")),z.appendChild(G),this.element.appendChild(z);let X=Q.createElement("div");X.classList.add(hQ("w")),this.element.appendChild(X),this.inputsElem_=X,this.inputViews_=J.inputViews,this.applyInputViews_(),X9(J.mode,(U)=>{this.modeElem_.value=U})}get modeSelectElement(){return this.modeElem_}get inputViews(){return this.inputViews_}set inputViews(Q){this.inputViews_=Q,this.applyInputViews_()}applyInputViews_(){I8(this.inputsElem_);let Q=this.element.ownerDocument;this.inputViews_.forEach((J)=>{let z=Q.createElement("div");z.classList.add(hQ("c")),z.appendChild(J.element),this.inputsElem_.appendChild(z)})}}function uW(Q){return j1(Q==="float"?2:0)}function mW(Q,J,z){let G=vQ(Q,J)[z];return new uQ({min:0,max:G})}function dW(Q,J,z){return new iQ(Q,{arrayPosition:z===0?"fst":z===2?"lst":"mid",parser:J.parser,props:_0.fromObject({formatter:uW(J.colorType),keyScale:WQ(!1),pointerScale:J.colorType==="float"?0.01:1}),value:t0(0,{constraint:mW(J.colorMode,J.colorType,z)}),viewProps:J.viewProps})}function gW(Q,J){let z={colorMode:J.colorMode,colorType:J.colorType,parser:G9,viewProps:J.viewProps};return[0,1,2].map((G)=>{let X=dW(Q,z,G);return sQ({primary:J.value,secondary:X.value,forward(U){return Y1(U,J.colorType).getComponents(J.colorMode)[G]},backward(U,H){let q=J.colorMode,D=Y1(U,J.colorType).getComponents(q);D[G]=H;let A=d6(NZ(s1(D),D[3]),q,J.colorType);return Y1(A,"int")}}),X})}function pW(Q,J){let z=new fQ(Q,{parser:IJ("int"),props:_0.fromObject({formatter:g6}),value:t0(x0.black()),viewProps:J.viewProps});return sQ({primary:J.value,secondary:z.value,forward:(G)=>new x0(s1(G.getComponents()),G.mode),backward:(G,X)=>new x0(NZ(s1(X.getComponents(G.mode)),G.getComponents()[3]),G.mode)}),[z]}function cW(Q){return Q!=="hex"}class bK{constructor(Q,J){this.onModeSelectChange_=this.onModeSelectChange_.bind(this),this.colorType_=J.colorType,this.value=J.value,this.viewProps=J.viewProps,this.colorMode=t0(this.value.rawValue.mode),this.ccs_=this.createComponentControllers_(Q),this.view=new hK(Q,{mode:this.colorMode,inputViews:[this.ccs_[0].view,this.ccs_[1].view,this.ccs_[2].view],viewProps:this.viewProps}),this.view.modeSelectElement.addEventListener("change",this.onModeSelectChange_)}createComponentControllers_(Q){let J=this.colorMode.rawValue;if(cW(J))return gW(Q,{colorMode:J,colorType:this.colorType_,value:this.value,viewProps:this.viewProps});return pW(Q,{value:this.value,viewProps:this.viewProps})}onModeSelectChange_(Q){let J=Q.currentTarget;this.colorMode.rawValue=J.value,this.ccs_=this.createComponentControllers_(this.view.element.ownerDocument),this.view.inputViews=this.ccs_.map((z)=>z.view)}}var D6=y0("hpl");class xK{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),this.value=J.value,this.value.emitter.on("change",this.onValueChange_),this.element=Q.createElement("div"),this.element.classList.add(D6()),J.viewProps.bindClassModifiers(this.element),J.viewProps.bindTabIndex(this.element);let z=Q.createElement("div");z.classList.add(D6("c")),this.element.appendChild(z);let G=Q.createElement("div");G.classList.add(D6("m")),this.element.appendChild(G),this.markerElem_=G,this.update_()}update_(){let Q=this.value.rawValue,[J]=Q.getComponents("hsv");this.markerElem_.style.backgroundColor=SK(new x0([J,100,100],"hsv"));let z=d0(J,0,360,0,100);this.markerElem_.style.left=`${z}%`}onValueChange_(){this.update_()}}class fK{constructor(Q,J){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=J.value,this.viewProps=J.viewProps,this.view=new xK(Q,{value:this.value,viewProps:this.viewProps}),this.ptHandler_=new E9(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_(Q,J){if(!Q.point)return;let z=d0(K1(Q.point.x,0,Q.bounds.width),0,Q.bounds.width,0,360),G=this.value.rawValue,[,X,U,H]=G.getComponents("hsv");this.value.setRawValue(new x0([z,X,U,H],"hsv"),J)}onPointerDown_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerMove_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerUp_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!0,last:!0})}onKeyDown_(Q){let J=L1(WQ(!1),q9(Q));if(J===0)return;let z=this.value.rawValue,[G,X,U,H]=z.getComponents("hsv");this.value.setRawValue(new x0([G+J,X,U,H],"hsv"),{forceEmit:!1,last:!1})}onKeyUp_(Q){if(L1(WQ(!1),q9(Q))===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}var Y6=y0("svp"),i5=64;class vK{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),this.value=J.value,this.value.emitter.on("change",this.onValueChange_),this.element=Q.createElement("div"),this.element.classList.add(Y6()),J.viewProps.bindClassModifiers(this.element),J.viewProps.bindTabIndex(this.element);let z=Q.createElement("canvas");z.height=i5,z.width=i5,z.classList.add(Y6("c")),this.element.appendChild(z),this.canvasElement=z;let G=Q.createElement("div");G.classList.add(Y6("m")),this.element.appendChild(G),this.markerElem_=G,this.update_()}update_(){let Q=SX(this.canvasElement);if(!Q)return;let z=this.value.rawValue.getComponents("hsv"),G=this.canvasElement.width,X=this.canvasElement.height,U=Q.getImageData(0,0,G,X),H=U.data;for(let D=0;Dz.getComponents()[3],backward:(z,G)=>{let X=z.getComponents();return X[3]=G,new x0(X,z.mode)}});this.textsC_=new bK(Q,{colorType:J.colorType,value:this.value,viewProps:this.viewProps}),this.view=new NK(Q,{alphaViews:this.alphaIcs_?{palette:this.alphaIcs_.palette.view,text:this.alphaIcs_.text.view}:null,hPaletteView:this.hPaletteC_.view,supportsAlpha:J.supportsAlpha,svPaletteView:this.svPaletteC_.view,textsView:this.textsC_.view,viewProps:this.viewProps})}get textsController(){return this.textsC_}}var A6=y0("colsw");class dK{constructor(Q,J){this.onValueChange_=this.onValueChange_.bind(this),J.value.emitter.on("change",this.onValueChange_),this.value=J.value,this.element=Q.createElement("div"),this.element.classList.add(A6()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(A6("sw")),this.element.appendChild(z),this.swatchElem_=z;let G=Q.createElement("button");G.classList.add(A6("b")),J.viewProps.bindDisabled(G),this.element.appendChild(G),this.buttonElement=G,this.update_()}update_(){let Q=this.value.rawValue;this.swatchElem_.style.backgroundColor=p6(Q)}onValueChange_(){this.update_()}}class gK{constructor(Q,J){this.value=J.value,this.viewProps=J.viewProps,this.view=new dK(Q,{value:this.value,viewProps:this.viewProps})}}class LZ{constructor(Q,J){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=J.value,this.viewProps=J.viewProps,this.foldable_=$J.create(J.expanded),this.swatchC_=new gK(Q,{value:this.value,viewProps:this.viewProps});let z=this.swatchC_.view.buttonElement;z.addEventListener("blur",this.onButtonBlur_),z.addEventListener("click",this.onButtonClick_),this.textC_=new fQ(Q,{parser:J.parser,props:_0.fromObject({formatter:J.formatter}),value:this.value,viewProps:this.viewProps}),this.view=new DK(Q,{foldable:this.foldable_,pickerLayout:J.pickerLayout}),this.view.swatchElement.appendChild(this.swatchC_.view.element),this.view.textElement.appendChild(this.textC_.view.element),this.popC_=J.pickerLayout==="popup"?new u6(Q,{viewProps:this.viewProps}):null;let G=new mK(Q,{colorType:J.colorType,supportsAlpha:J.supportsAlpha,value:this.value,viewProps:this.viewProps});if(G.view.allFocusableElements.forEach((X)=>{X.addEventListener("blur",this.onPopupChildBlur_),X.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=G,this.popC_)this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(G.view.element),sQ({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:(X)=>X,backward:(X,U)=>U});else if(this.view.pickerElement)this.view.pickerElement.appendChild(this.pickerC_.view.element),b6(this.foldable_,this.view.pickerElement)}get textController(){return this.textC_}onButtonBlur_(Q){if(!this.popC_)return;let J=this.view.element,z=w1(Q.relatedTarget);if(!z||!J.contains(z))this.popC_.shows.rawValue=!1}onButtonClick_(){if(this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded"))this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(Q){if(!this.popC_)return;let J=this.popC_.view.element,z=S8(Q);if(z&&J.contains(z))return;if(z&&z===this.swatchC_.view.buttonElement&&!S6(J.ownerDocument))return;this.popC_.shows.rawValue=!1}onPopupChildKeydown_(Q){if(this.popC_){if(Q.key==="Escape")this.popC_.shows.rawValue=!1}else if(this.view.pickerElement){if(Q.key==="Escape")this.swatchC_.view.buttonElement.focus()}}}function lW(Q){return s1(Q.getComponents("rgb")).reduce((J,z)=>{return J<<8|Math.floor(z)&255},0)}function sW(Q){return Q.getComponents("rgb").reduce((J,z,G)=>{let X=Math.floor(G===3?z*255:z)&255;return J<<8|X},0)>>>0}function iW(Q){return new x0([Q>>16&255,Q>>8&255,Q&255],"rgb")}function nW(Q){return new x0([Q>>24&255,Q>>16&255,Q>>8&255,d0(Q&255,0,255,0,1)],"rgb")}function oW(Q){if(typeof Q!=="number")return x0.black();return iW(Q)}function tW(Q){if(typeof Q!=="number")return x0.black();return nW(Q)}function zZ(Q,J){if(typeof Q!=="object"||s0(Q))return!1;return J in Q&&typeof Q[J]==="number"}function pK(Q){return zZ(Q,"r")&&zZ(Q,"g")&&zZ(Q,"b")}function cK(Q){return pK(Q)&&zZ(Q,"a")}function lK(Q){return pK(Q)}function c6(Q,J){if(Q.mode!==J.mode)return!1;if(Q.type!==J.type)return!1;let z=Q.getComponents(),G=J.getComponents();for(let X=0;X{PJ(z,J(G))}:null}function aW(Q){let J=Q?sW:lW;return(z,G)=>{PJ(z,J(G))}}function eW(Q,J,z){let X=Y1(J,z).toRgbaObject();Q.writeProperty("r",X.r),Q.writeProperty("g",X.g),Q.writeProperty("b",X.b),Q.writeProperty("a",X.a)}function QG(Q,J,z){let X=Y1(J,z).toRgbaObject();Q.writeProperty("r",X.r),Q.writeProperty("g",X.g),Q.writeProperty("b",X.b)}function JG(Q,J){return(z,G)=>{if(Q)eW(z,G,J);else QG(z,G,J)}}function ZG(Q){var J;if((J=Q===null||Q===void 0?void 0:Q.color)===null||J===void 0?void 0:J.alpha)return!0;return!1}function KG(Q){return Q?(J)=>p6(J,"0x"):(J)=>g6(J,"0x")}function zG(Q){if("color"in Q)return!0;if(Q.view==="color")return!0;return!1}var UG=A1({id:"input-color-number",type:"input",accept:(Q,J)=>{if(typeof Q!=="number")return null;if(!zG(J))return null;let z=m6(J);return z?{initialValue:Q,params:Object.assign(Object.assign({},z),{supportsAlpha:ZG(J)})}:null},binding:{reader:(Q)=>{return Q.params.supportsAlpha?tW:oW},equals:c6,writer:(Q)=>{return aW(Q.params.supportsAlpha)}},controller:(Q)=>{var J,z;return new LZ(Q.document,{colorType:"int",expanded:(J=Q.params.expanded)!==null&&J!==void 0?J:!1,formatter:KG(Q.params.supportsAlpha),parser:IJ("int"),pickerLayout:(z=Q.params.picker)!==null&&z!==void 0?z:"popup",supportsAlpha:Q.params.supportsAlpha,value:Q.value,viewProps:Q.viewProps})}});function XG(Q,J){if(!lK(Q))return Y1(x0.black(),J);if(J==="int"){let z=n5(Q);return new x0(z,"rgb")}if(J==="float"){let z=n5(Q);return new BZ(z,"rgb")}return Y1(x0.black(),"int")}function WG(Q){return cK(Q)}function GG(Q){return(J)=>{let z=XG(J,Q);return Y1(z,"int")}}function HG(Q,J){return(z)=>{if(Q)return TK(z,J);return _K(z,J)}}var qG=A1({id:"input-color-object",type:"input",accept:(Q,J)=>{var z;if(!lK(Q))return null;let G=m6(J);return G?{initialValue:Q,params:Object.assign(Object.assign({},G),{colorType:(z=BK(J))!==null&&z!==void 0?z:"int"})}:null},binding:{reader:(Q)=>GG(Q.params.colorType),equals:c6,writer:(Q)=>JG(WG(Q.initialValue),Q.params.colorType)},controller:(Q)=>{var J,z;let G=cK(Q.initialValue);return new LZ(Q.document,{colorType:Q.params.colorType,expanded:(J=Q.params.expanded)!==null&&J!==void 0?J:!1,formatter:HG(G,Q.params.colorType),parser:IJ("int"),pickerLayout:(z=Q.params.picker)!==null&&z!==void 0?z:"popup",supportsAlpha:G,value:Q.value,viewProps:Q.viewProps})}}),FG=A1({id:"input-color-string",type:"input",accept:(Q,J)=>{if(typeof Q!=="string")return null;if(J.view==="text")return null;let z=CW(Q,BK(J));if(!z)return null;let G=CK(z);if(!G)return null;let X=m6(J);return X?{initialValue:Q,params:Object.assign(Object.assign({},X),{format:z,stringifier:G})}:null},binding:{reader:()=>EW,equals:c6,writer:(Q)=>{let J=rW(Q.params.format);if(!J)throw Q1.notBindable();return J}},controller:(Q)=>{var J,z;return new LZ(Q.document,{colorType:Q.params.format.type,expanded:(J=Q.params.expanded)!==null&&J!==void 0?J:!1,formatter:Q.params.stringifier,parser:IJ("int"),pickerLayout:(z=Q.params.picker)!==null&&z!==void 0?z:"popup",supportsAlpha:Q.params.format.alpha,value:Q.value,viewProps:Q.viewProps})}});class jZ{constructor(Q){this.components=Q.components,this.asm_=Q.assembly}constrain(Q){let J=this.asm_.toComponents(Q).map((z,G)=>{var X,U;return(U=(X=this.components[G])===null||X===void 0?void 0:X.constrain(z))!==null&&U!==void 0?U:z});return this.asm_.fromComponents(J)}}var o5=y0("pndtxt");class sK{constructor(Q,J){this.textViews=J.textViews,this.element=Q.createElement("div"),this.element.classList.add(o5()),this.textViews.forEach((z)=>{let G=Q.createElement("div");G.classList.add(o5("a")),G.appendChild(z.element),this.element.appendChild(G)})}}function DG(Q,J,z){return new iQ(Q,{arrayPosition:z===0?"fst":z===J.axes.length-1?"lst":"mid",parser:J.parser,props:J.axes[z].textProps,value:t0(0,{constraint:J.axes[z].constraint}),viewProps:J.viewProps})}class wZ{constructor(Q,J){this.value=J.value,this.viewProps=J.viewProps,this.acs_=J.axes.map((z,G)=>DG(Q,J,G)),this.acs_.forEach((z,G)=>{sQ({primary:this.value,secondary:z.value,forward:(X)=>J.assembly.toComponents(X)[G],backward:(X,U)=>{let H=J.assembly.toComponents(X);return H[G]=U,J.assembly.fromComponents(H)}})}),this.view=new sK(Q,{textViews:this.acs_.map((z)=>z.view)})}get textControllers(){return this.acs_}}class iK extends xQ{get max(){return this.controller.valueController.sliderController.props.get("max")}set max(Q){this.controller.valueController.sliderController.props.set("max",Q)}get min(){return this.controller.valueController.sliderController.props.get("min")}set min(Q){this.controller.valueController.sliderController.props.set("min",Q)}}function YG(Q,J){let z=[],G=B8(Q,J);if(G)z.push(G);let X=L8(Q);if(X)z.push(X);let U=v6(Q.options);if(U)z.push(U);return new cQ(z)}var AG=A1({id:"input-number",type:"input",accept:(Q,J)=>{if(typeof Q!=="number")return null;let z=r0(J,(G)=>Object.assign(Object.assign({},w8(G)),{options:G.optional.custom(kJ),readonly:G.optional.constant(!1)}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>Y8,constraint:(Q)=>YG(Q.params,Q.initialValue),writer:(Q)=>PJ},controller:(Q)=>{let{value:J,constraint:z}=Q,G=z&&HZ(z,lQ);if(G)return new H9(Q.document,{props:new _0({options:G.values.value("options")}),value:J,viewProps:Q.viewProps});let X=j8(Q.params,J.rawValue),U=z&&HZ(z,uQ);if(U)return new wJ(Q.document,Object.assign(Object.assign({},WK(Object.assign(Object.assign({},X),{keyScale:t0(X.keyScale),max:U.values.value("max"),min:U.values.value("min")}))),{parser:G9,value:J,viewProps:Q.viewProps}));return new iQ(Q.document,{parser:G9,props:_0.fromObject(X),value:J,viewProps:Q.viewProps})},api(Q){if(typeof Q.controller.value.rawValue!=="number")return null;if(Q.controller.valueController instanceof wJ)return new iK(Q.controller);if(Q.controller.valueController instanceof H9)return new OZ(Q.controller);return null}});class W9{constructor(Q=0,J=0){this.x=Q,this.y=J}getComponents(){return[this.x,this.y]}static isObject(Q){if(s0(Q))return!1;let{x:J,y:z}=Q;if(typeof J!=="number"||typeof z!=="number")return!1;return!0}static equals(Q,J){return Q.x===J.x&&Q.y===J.y}toObject(){return{x:this.x,y:this.y}}}var nK={toComponents:(Q)=>Q.getComponents(),fromComponents:(Q)=>new W9(...Q)},bQ=y0("p2d");class oK{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(bQ()),J.viewProps.bindClassModifiers(this.element),X9(J.expanded,dQ(this.element,bQ(void 0,"expanded")));let z=Q.createElement("div");z.classList.add(bQ("h")),this.element.appendChild(z);let G=Q.createElement("button");G.classList.add(bQ("b")),G.appendChild(FZ(Q,"p2dpad")),J.viewProps.bindDisabled(G),z.appendChild(G),this.buttonElement=G;let X=Q.createElement("div");if(X.classList.add(bQ("t")),z.appendChild(X),this.textElement=X,J.pickerLayout==="inline"){let U=Q.createElement("div");U.classList.add(bQ("p")),this.element.appendChild(U),this.pickerElement=U}else this.pickerElement=null}}var I9=y0("p2dp");class tK{constructor(Q,J){if(this.onFoldableChange_=this.onFoldableChange_.bind(this),this.onPropsChange_=this.onPropsChange_.bind(this),this.onValueChange_=this.onValueChange_.bind(this),this.props_=J.props,this.props_.emitter.on("change",this.onPropsChange_),this.element=Q.createElement("div"),this.element.classList.add(I9()),J.layout==="popup")this.element.classList.add(I9(void 0,"p"));J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("div");z.classList.add(I9("p")),J.viewProps.bindTabIndex(z),this.element.appendChild(z),this.padElement=z;let G=Q.createElementNS(c1,"svg");G.classList.add(I9("g")),this.padElement.appendChild(G),this.svgElem_=G;let X=Q.createElementNS(c1,"line");X.classList.add(I9("ax")),X.setAttributeNS(null,"x1","0"),X.setAttributeNS(null,"y1","50%"),X.setAttributeNS(null,"x2","100%"),X.setAttributeNS(null,"y2","50%"),this.svgElem_.appendChild(X);let U=Q.createElementNS(c1,"line");U.classList.add(I9("ax")),U.setAttributeNS(null,"x1","50%"),U.setAttributeNS(null,"y1","0"),U.setAttributeNS(null,"x2","50%"),U.setAttributeNS(null,"y2","100%"),this.svgElem_.appendChild(U);let H=Q.createElementNS(c1,"line");H.classList.add(I9("l")),H.setAttributeNS(null,"x1","50%"),H.setAttributeNS(null,"y1","50%"),this.svgElem_.appendChild(H),this.lineElem_=H;let q=Q.createElement("div");q.classList.add(I9("m")),this.padElement.appendChild(q),this.markerElem_=q,J.value.emitter.on("change",this.onValueChange_),this.value=J.value,this.update_()}get allFocusableElements(){return[this.padElement]}update_(){let[Q,J]=this.value.rawValue.getComponents(),z=this.props_.get("max"),G=d0(Q,-z,+z,0,100),X=d0(J,-z,+z,0,100),U=this.props_.get("invertsY")?100-X:X;this.lineElem_.setAttributeNS(null,"x2",`${G}%`),this.lineElem_.setAttributeNS(null,"y2",`${U}%`),this.markerElem_.style.left=`${G}%`,this.markerElem_.style.top=`${U}%`}onValueChange_(){this.update_()}onPropsChange_(){this.update_()}onFoldableChange_(){this.update_()}}function t5(Q,J,z){return[L1(J[0],q9(Q)),L1(J[1],jJ(Q))*(z?1:-1)]}class rK{constructor(Q,J){this.onPadKeyDown_=this.onPadKeyDown_.bind(this),this.onPadKeyUp_=this.onPadKeyUp_.bind(this),this.onPointerDown_=this.onPointerDown_.bind(this),this.onPointerMove_=this.onPointerMove_.bind(this),this.onPointerUp_=this.onPointerUp_.bind(this),this.props=J.props,this.value=J.value,this.viewProps=J.viewProps,this.view=new tK(Q,{layout:J.layout,props:this.props,value:this.value,viewProps:this.viewProps}),this.ptHandler_=new E9(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_(Q,J){if(!Q.point)return;let z=this.props.get("max"),G=d0(Q.point.x,0,Q.bounds.width,-z,+z),X=d0(this.props.get("invertsY")?Q.bounds.height-Q.point.y:Q.point.y,0,Q.bounds.height,-z,+z);this.value.setRawValue(new W9(G,X),J)}onPointerDown_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerMove_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!1,last:!1})}onPointerUp_(Q){this.handlePointerEvent_(Q.data,{forceEmit:!0,last:!0})}onPadKeyDown_(Q){if(ZK(Q.key))Q.preventDefault();let[J,z]=t5(Q,[this.props.get("xKeyScale"),this.props.get("yKeyScale")],this.props.get("invertsY"));if(J===0&&z===0)return;this.value.setRawValue(new W9(this.value.rawValue.x+J,this.value.rawValue.y+z),{forceEmit:!1,last:!1})}onPadKeyUp_(Q){let[J,z]=t5(Q,[this.props.get("xKeyScale"),this.props.get("yKeyScale")],this.props.get("invertsY"));if(J===0&&z===0)return;this.value.setRawValue(this.value.rawValue,{forceEmit:!0,last:!0})}}class aK{constructor(Q,J){var z,G;this.onPopupChildBlur_=this.onPopupChildBlur_.bind(this),this.onPopupChildKeydown_=this.onPopupChildKeydown_.bind(this),this.onPadButtonBlur_=this.onPadButtonBlur_.bind(this),this.onPadButtonClick_=this.onPadButtonClick_.bind(this),this.value=J.value,this.viewProps=J.viewProps,this.foldable_=$J.create(J.expanded),this.popC_=J.pickerLayout==="popup"?new u6(Q,{viewProps:this.viewProps}):null;let X=new rK(Q,{layout:J.pickerLayout,props:new _0({invertsY:t0(J.invertsY),max:t0(J.max),xKeyScale:J.axes[0].textProps.value("keyScale"),yKeyScale:J.axes[1].textProps.value("keyScale")}),value:this.value,viewProps:this.viewProps});if(X.view.allFocusableElements.forEach((U)=>{U.addEventListener("blur",this.onPopupChildBlur_),U.addEventListener("keydown",this.onPopupChildKeydown_)}),this.pickerC_=X,this.textC_=new wZ(Q,{assembly:nK,axes:J.axes,parser:J.parser,value:this.value,viewProps:this.viewProps}),this.view=new oK(Q,{expanded:this.foldable_.value("expanded"),pickerLayout:J.pickerLayout,viewProps:this.viewProps}),this.view.textElement.appendChild(this.textC_.view.element),(z=this.view.buttonElement)===null||z===void 0||z.addEventListener("blur",this.onPadButtonBlur_),(G=this.view.buttonElement)===null||G===void 0||G.addEventListener("click",this.onPadButtonClick_),this.popC_)this.view.element.appendChild(this.popC_.view.element),this.popC_.view.element.appendChild(this.pickerC_.view.element),sQ({primary:this.foldable_.value("expanded"),secondary:this.popC_.shows,forward:(U)=>U,backward:(U,H)=>H});else if(this.view.pickerElement)this.view.pickerElement.appendChild(this.pickerC_.view.element),b6(this.foldable_,this.view.pickerElement)}get textController(){return this.textC_}onPadButtonBlur_(Q){if(!this.popC_)return;let J=this.view.element,z=w1(Q.relatedTarget);if(!z||!J.contains(z))this.popC_.shows.rawValue=!1}onPadButtonClick_(){if(this.foldable_.set("expanded",!this.foldable_.get("expanded")),this.foldable_.get("expanded"))this.pickerC_.view.allFocusableElements[0].focus()}onPopupChildBlur_(Q){if(!this.popC_)return;let J=this.popC_.view.element,z=S8(Q);if(z&&J.contains(z))return;if(z&&z===this.view.buttonElement&&!S6(J.ownerDocument))return;this.popC_.shows.rawValue=!1}onPopupChildKeydown_(Q){if(this.popC_){if(Q.key==="Escape")this.popC_.shows.rawValue=!1}else if(this.view.pickerElement){if(Q.key==="Escape")this.view.buttonElement.focus()}}}function OG(Q){return W9.isObject(Q)?new W9(Q.x,Q.y):new W9}function NG(Q,J){Q.writeProperty("x",J.x),Q.writeProperty("y",J.y)}function BG(Q,J){return new jZ({assembly:nK,components:[U9(Object.assign(Object.assign({},Q),Q.x),J.x),U9(Object.assign(Object.assign({},Q),Q.y),J.y)]})}function r5(Q,J){var z,G;if(!s0(Q.min)||!s0(Q.max))return Math.max(Math.abs((z=Q.min)!==null&&z!==void 0?z:0),Math.abs((G=Q.max)!==null&&G!==void 0?G:0));let X=O8(Q);return Math.max(Math.abs(X)*10,Math.abs(J)*10)}function LG(Q,J){var z,G;let X=r5(XQ(Q,(z=Q.x)!==null&&z!==void 0?z:{}),J.x),U=r5(XQ(Q,(G=Q.y)!==null&&G!==void 0?G:{}),J.y);return Math.max(X,U)}function jG(Q){if(!("y"in Q))return!1;let J=Q.y;if(!J)return!1;return"inverted"in J?!!J.inverted:!1}var wG=A1({id:"input-point2d",type:"input",accept:(Q,J)=>{if(!W9.isObject(Q))return null;let z=r0(J,(G)=>Object.assign(Object.assign({},MJ(G)),{expanded:G.optional.boolean,picker:G.optional.custom(HK),readonly:G.optional.constant(!1),x:G.optional.custom(_9),y:G.optional.object(Object.assign(Object.assign({},MJ(G)),{inverted:G.optional.boolean}))}));return z?{initialValue:Q,params:z}:null},binding:{reader:()=>OG,constraint:(Q)=>BG(Q.params,Q.initialValue),equals:W9.equals,writer:()=>NG},controller:(Q)=>{var J,z;let{document:G,value:X,constraint:U}=Q,H=[Q.params.x,Q.params.y];return new aK(G,{axes:X.rawValue.getComponents().map((q,F)=>{var D;return I6({constraint:U.components[F],initialValue:q,params:XQ(Q.params,(D=H[F])!==null&&D!==void 0?D:{})})}),expanded:(J=Q.params.expanded)!==null&&J!==void 0?J:!1,invertsY:jG(Q.params),max:LG(Q.params,X.rawValue),parser:G9,pickerLayout:(z=Q.params.picker)!==null&&z!==void 0?z:"popup",value:X,viewProps:Q.viewProps})}});class zQ{constructor(Q=0,J=0,z=0){this.x=Q,this.y=J,this.z=z}getComponents(){return[this.x,this.y,this.z]}static isObject(Q){if(s0(Q))return!1;let{x:J,y:z,z:G}=Q;if(typeof J!=="number"||typeof z!=="number"||typeof G!=="number")return!1;return!0}static equals(Q,J){return Q.x===J.x&&Q.y===J.y&&Q.z===J.z}toObject(){return{x:this.x,y:this.y,z:this.z}}}var eK={toComponents:(Q)=>Q.getComponents(),fromComponents:(Q)=>new zQ(...Q)};function MG(Q){return zQ.isObject(Q)?new zQ(Q.x,Q.y,Q.z):new zQ}function VG(Q,J){Q.writeProperty("x",J.x),Q.writeProperty("y",J.y),Q.writeProperty("z",J.z)}function RG(Q,J){return new jZ({assembly:eK,components:[U9(Object.assign(Object.assign({},Q),Q.x),J.x),U9(Object.assign(Object.assign({},Q),Q.y),J.y),U9(Object.assign(Object.assign({},Q),Q.z),J.z)]})}var $G=A1({id:"input-point3d",type:"input",accept:(Q,J)=>{if(!zQ.isObject(Q))return null;let z=r0(J,(G)=>Object.assign(Object.assign({},MJ(G)),{readonly:G.optional.constant(!1),x:G.optional.custom(_9),y:G.optional.custom(_9),z:G.optional.custom(_9)}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>MG,constraint:(Q)=>RG(Q.params,Q.initialValue),equals:zQ.equals,writer:(Q)=>VG},controller:(Q)=>{let{value:J,constraint:z}=Q,G=[Q.params.x,Q.params.y,Q.params.z];return new wZ(Q.document,{assembly:eK,axes:J.rawValue.getComponents().map((X,U)=>{var H;return I6({constraint:z.components[U],initialValue:X,params:XQ(Q.params,(H=G[U])!==null&&H!==void 0?H:{})})}),parser:G9,value:J,viewProps:Q.viewProps})}});class UQ{constructor(Q=0,J=0,z=0,G=0){this.x=Q,this.y=J,this.z=z,this.w=G}getComponents(){return[this.x,this.y,this.z,this.w]}static isObject(Q){if(s0(Q))return!1;let{x:J,y:z,z:G,w:X}=Q;if(typeof J!=="number"||typeof z!=="number"||typeof G!=="number"||typeof X!=="number")return!1;return!0}static equals(Q,J){return Q.x===J.x&&Q.y===J.y&&Q.z===J.z&&Q.w===J.w}toObject(){return{x:this.x,y:this.y,z:this.z,w:this.w}}}var Q4={toComponents:(Q)=>Q.getComponents(),fromComponents:(Q)=>new UQ(...Q)};function kG(Q){return UQ.isObject(Q)?new UQ(Q.x,Q.y,Q.z,Q.w):new UQ}function PG(Q,J){Q.writeProperty("x",J.x),Q.writeProperty("y",J.y),Q.writeProperty("z",J.z),Q.writeProperty("w",J.w)}function IG(Q,J){return new jZ({assembly:Q4,components:[U9(Object.assign(Object.assign({},Q),Q.x),J.x),U9(Object.assign(Object.assign({},Q),Q.y),J.y),U9(Object.assign(Object.assign({},Q),Q.z),J.z),U9(Object.assign(Object.assign({},Q),Q.w),J.w)]})}var SG=A1({id:"input-point4d",type:"input",accept:(Q,J)=>{if(!UQ.isObject(Q))return null;let z=r0(J,(G)=>Object.assign(Object.assign({},MJ(G)),{readonly:G.optional.constant(!1),w:G.optional.custom(_9),x:G.optional.custom(_9),y:G.optional.custom(_9),z:G.optional.custom(_9)}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>kG,constraint:(Q)=>IG(Q.params,Q.initialValue),equals:UQ.equals,writer:(Q)=>PG},controller:(Q)=>{let{value:J,constraint:z}=Q,G=[Q.params.x,Q.params.y,Q.params.z,Q.params.w];return new wZ(Q.document,{assembly:Q4,axes:J.rawValue.getComponents().map((X,U)=>{var H;return I6({constraint:z.components[U],initialValue:X,params:XQ(Q.params,(H=G[U])!==null&&H!==void 0?H:{})})}),parser:G9,value:J,viewProps:Q.viewProps})}});function _G(Q){let J=[],z=v6(Q.options);if(z)J.push(z);return new cQ(J)}var TG=A1({id:"input-string",type:"input",accept:(Q,J)=>{if(typeof Q!=="string")return null;let z=r0(J,(G)=>({readonly:G.optional.constant(!1),options:G.optional.custom(kJ)}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>JK,constraint:(Q)=>_G(Q.params),writer:(Q)=>PJ},controller:(Q)=>{let{document:J,value:z,constraint:G}=Q,X=G&&HZ(G,lQ);if(X)return new H9(J,{props:new _0({options:X.values.value("options")}),value:z,viewProps:Q.viewProps});return new fQ(J,{parser:(U)=>U,props:_0.fromObject({formatter:w6}),value:z,viewProps:Q.viewProps})},api(Q){if(typeof Q.controller.value.rawValue!=="string")return null;if(Q.controller.valueController instanceof H9)return new OZ(Q.controller);return null}}),SJ={monitor:{defaultInterval:200,defaultRows:3}},a5=y0("mll");class J4{constructor(Q,J){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=J.formatter,this.element=Q.createElement("div"),this.element.classList.add(a5()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("textarea");z.classList.add(a5("i")),z.style.height=`calc(var(${GK("containerUnitSize")}) * ${J.rows})`,z.readOnly=!0,J.viewProps.bindDisabled(z),this.element.appendChild(z),this.textareaElem_=z,J.value.emitter.on("change",this.onValueUpdate_),this.value=J.value,this.update_()}update_(){let Q=this.textareaElem_,J=Q.scrollTop===Q.scrollHeight-Q.clientHeight,z=[];if(this.value.rawValue.forEach((G)=>{if(G!==void 0)z.push(this.formatter_(G))}),Q.textContent=z.join(` `),J)Q.scrollTop=Q.scrollHeight}onValueUpdate_(){this.update_()}}class MZ{constructor(Q,J){this.value=J.value,this.viewProps=J.viewProps,this.view=new J4(Q,{formatter:J.formatter,rows:J.rows,value:this.value,viewProps:this.viewProps})}}var e5=y0("sgl");class Z4{constructor(Q,J){this.onValueUpdate_=this.onValueUpdate_.bind(this),this.formatter_=J.formatter,this.element=Q.createElement("div"),this.element.classList.add(e5()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("input");z.classList.add(e5("i")),z.readOnly=!0,z.type="text",J.viewProps.bindDisabled(z),this.element.appendChild(z),this.inputElement=z,J.value.emitter.on("change",this.onValueUpdate_),this.value=J.value,this.update_()}update_(){let Q=this.value.rawValue,J=Q[Q.length-1];this.inputElement.value=J!==void 0?this.formatter_(J):""}onValueUpdate_(){this.update_()}}class VZ{constructor(Q,J){this.value=J.value,this.viewProps=J.viewProps,this.view=new Z4(Q,{formatter:J.formatter,value:this.value,viewProps:this.viewProps})}}var CG=A1({id:"monitor-bool",type:"monitor",accept:(Q,J)=>{if(typeof Q!=="boolean")return null;let z=r0(J,(G)=>({readonly:G.required.constant(!0),rows:G.optional.number}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>QK},controller:(Q)=>{var J;if(Q.value.rawValue.length===1)return new VZ(Q.document,{formatter:p5,value:Q.value,viewProps:Q.viewProps});return new MZ(Q.document,{formatter:p5,rows:(J=Q.params.rows)!==null&&J!==void 0?J:SJ.monitor.defaultRows,value:Q.value,viewProps:Q.viewProps})}});class K4 extends xQ{get max(){return this.controller.valueController.props.get("max")}set max(Q){this.controller.valueController.props.set("max",Q)}get min(){return this.controller.valueController.props.get("min")}set min(Q){this.controller.valueController.props.set("min",Q)}}var S9=y0("grl");class z4{constructor(Q,J){this.onCursorChange_=this.onCursorChange_.bind(this),this.onValueUpdate_=this.onValueUpdate_.bind(this),this.element=Q.createElement("div"),this.element.classList.add(S9()),J.viewProps.bindClassModifiers(this.element),this.formatter_=J.formatter,this.props_=J.props,this.cursor_=J.cursor,this.cursor_.emitter.on("change",this.onCursorChange_);let z=Q.createElementNS(c1,"svg");z.classList.add(S9("g")),z.style.height=`calc(var(${GK("containerUnitSize")}) * ${J.rows})`,this.element.appendChild(z),this.svgElem_=z;let G=Q.createElementNS(c1,"polyline");this.svgElem_.appendChild(G),this.lineElem_=G;let X=Q.createElement("div");X.classList.add(S9("t"),y0("tt")()),this.element.appendChild(X),this.tooltipElem_=X,J.value.emitter.on("change",this.onValueUpdate_),this.value=J.value,this.update_()}get graphElement(){return this.svgElem_}update_(){let{clientWidth:Q,clientHeight:J}=this.element,z=this.value.rawValue.length-1,G=this.props_.get("min"),X=this.props_.get("max"),U=[];this.value.rawValue.forEach((A,O)=>{if(A===void 0)return;let L=d0(O,0,z,0,Q),B=d0(A,G,X,J,0);U.push([L,B].join(","))}),this.lineElem_.setAttributeNS(null,"points",U.join(" "));let H=this.tooltipElem_,q=this.value.rawValue[this.cursor_.rawValue];if(q===void 0){H.classList.remove(S9("t","a"));return}let F=d0(this.cursor_.rawValue,0,z,0,Q),D=d0(q,G,X,J,0);if(H.style.left=`${F}px`,H.style.top=`${D}px`,H.textContent=`${this.formatter_(q)}`,!H.classList.contains(S9("t","a")))H.classList.add(S9("t","a"),S9("t","in")),XZ(H),H.classList.remove(S9("t","in"))}onValueUpdate_(){this.update_()}onCursorChange_(){this.update_()}}class l6{constructor(Q,J){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=J.props,this.value=J.value,this.viewProps=J.viewProps,this.cursor_=t0(-1),this.view=new z4(Q,{cursor:this.cursor_,formatter:J.formatter,rows:J.rows,props:this.props,value:this.value,viewProps:this.viewProps}),!S6(Q))this.view.element.addEventListener("mousemove",this.onGraphMouseMove_),this.view.element.addEventListener("mouseleave",this.onGraphMouseLeave_);else{let z=new E9(this.view.element);z.emitter.on("down",this.onGraphPointerDown_),z.emitter.on("move",this.onGraphPointerMove_),z.emitter.on("up",this.onGraphPointerUp_)}}importProps(Q){return R1(Q,null,(J)=>({max:J.required.number,min:J.required.number}),(J)=>{return this.props.set("max",J.max),this.props.set("min",J.min),!0})}exportProps(){return $1(null,{max:this.props.get("max"),min:this.props.get("min")})}onGraphMouseLeave_(){this.cursor_.rawValue=-1}onGraphMouseMove_(Q){let{clientWidth:J}=this.view.element;this.cursor_.rawValue=Math.floor(d0(Q.offsetX,0,J,0,this.value.rawValue.length))}onGraphPointerDown_(Q){this.onGraphPointerMove_(Q)}onGraphPointerMove_(Q){if(!Q.data.point){this.cursor_.rawValue=-1;return}this.cursor_.rawValue=Math.floor(d0(Q.data.point.x,0,Q.data.bounds.width,0,this.value.rawValue.length))}onGraphPointerUp_(){this.cursor_.rawValue=-1}}function M6(Q){return!s0(Q.format)?Q.format:j1(2)}function EG(Q){var J;if(Q.value.rawValue.length===1)return new VZ(Q.document,{formatter:M6(Q.params),value:Q.value,viewProps:Q.viewProps});return new MZ(Q.document,{formatter:M6(Q.params),rows:(J=Q.params.rows)!==null&&J!==void 0?J:SJ.monitor.defaultRows,value:Q.value,viewProps:Q.viewProps})}function yG(Q){var J,z,G;return new l6(Q.document,{formatter:M6(Q.params),rows:(J=Q.params.rows)!==null&&J!==void 0?J:SJ.monitor.defaultRows,props:_0.fromObject({max:(z=Q.params.max)!==null&&z!==void 0?z:100,min:(G=Q.params.min)!==null&&G!==void 0?G:0}),value:Q.value,viewProps:Q.viewProps})}function Q8(Q){return Q.view==="graph"}var hG=A1({id:"monitor-number",type:"monitor",accept:(Q,J)=>{if(typeof Q!=="number")return null;let z=r0(J,(G)=>({format:G.optional.function,max:G.optional.number,min:G.optional.number,readonly:G.required.constant(!0),rows:G.optional.number,view:G.optional.string}));return z?{initialValue:Q,params:z}:null},binding:{defaultBufferSize:(Q)=>Q8(Q)?64:1,reader:(Q)=>Y8},controller:(Q)=>{if(Q8(Q.params))return yG(Q);return EG(Q)},api:(Q)=>{if(Q.controller.valueController instanceof l6)return new K4(Q.controller);return null}}),bG=A1({id:"monitor-string",type:"monitor",accept:(Q,J)=>{if(typeof Q!=="string")return null;let z=r0(J,(G)=>({multiline:G.optional.boolean,readonly:G.required.constant(!0),rows:G.optional.number}));return z?{initialValue:Q,params:z}:null},binding:{reader:(Q)=>JK},controller:(Q)=>{var J;let z=Q.value;if(z.rawValue.length>1||Q.params.multiline)return new MZ(Q.document,{formatter:w6,rows:(J=Q.params.rows)!==null&&J!==void 0?J:SJ.monitor.defaultRows,value:z,viewProps:Q.viewProps});return new VZ(Q.document,{formatter:w6,value:z,viewProps:Q.viewProps})}});class U4{constructor(){this.map_=new Map}get(Q){var J;return(J=this.map_.get(Q))!==null&&J!==void 0?J:null}has(Q){return this.map_.has(Q)}add(Q,J){return this.map_.set(Q,J),Q.viewProps.handleDispose(()=>{this.map_.delete(Q)}),J}}class X4{constructor(Q){this.target=Q.target,this.reader_=Q.reader,this.writer_=Q.writer}read(){return this.reader_(this.target.read())}write(Q){this.writer_(this.target,Q)}inject(Q){this.write(this.reader_(Q))}}function xG(Q,J){var z;let G=Q.accept(J.target.read(),J.params);if(s0(G))return null;let X={target:J.target,initialValue:G.initialValue,params:G.params},U=r0(J.params,(O)=>({disabled:O.optional.boolean,hidden:O.optional.boolean,label:O.optional.string,tag:O.optional.string})),H=Q.binding.reader(X),q=Q.binding.constraint?Q.binding.constraint(X):void 0,F=new X4({reader:H,target:J.target,writer:Q.binding.writer(X)}),D=new $8(t0(H(G.initialValue),{constraint:q,equals:Q.binding.equals}),F),A=Q.controller({constraint:q,document:J.document,initialValue:G.initialValue,params:G.params,value:D,viewProps:F9.create({disabled:U===null||U===void 0?void 0:U.disabled,hidden:U===null||U===void 0?void 0:U.hidden})});return new _8(J.document,{blade:pQ(),props:_0.fromObject({label:"label"in J.params?(z=U===null||U===void 0?void 0:U.label)!==null&&z!==void 0?z:null:J.target.key}),tag:U===null||U===void 0?void 0:U.tag,value:D,valueController:A})}class W4{constructor(Q){this.target=Q.target,this.reader_=Q.reader}read(){return this.reader_(this.target.read())}}function fG(Q,J){return J===0?new o8:new t8(Q,J!==null&&J!==void 0?J:SJ.monitor.defaultInterval)}function vG(Q,J){var z,G,X;let U=Q.accept(J.target.read(),J.params);if(s0(U))return null;let H={target:J.target,initialValue:U.initialValue,params:U.params},q=r0(J.params,(L)=>({bufferSize:L.optional.number,disabled:L.optional.boolean,hidden:L.optional.boolean,interval:L.optional.number,label:L.optional.string})),F=Q.binding.reader(H),D=(G=(z=q===null||q===void 0?void 0:q.bufferSize)!==null&&z!==void 0?z:Q.binding.defaultBufferSize&&Q.binding.defaultBufferSize(U.params))!==null&&G!==void 0?G:1,A=new C8({binding:new W4({reader:F,target:J.target}),bufferSize:D,ticker:fG(J.document,q===null||q===void 0?void 0:q.interval)}),O=Q.controller({document:J.document,params:U.params,value:A,viewProps:F9.create({disabled:q===null||q===void 0?void 0:q.disabled,hidden:q===null||q===void 0?void 0:q.hidden})});return O.viewProps.bindDisabled(A.ticker),O.viewProps.handleDispose(()=>{A.ticker.dispose()}),new E8(J.document,{blade:pQ(),props:_0.fromObject({label:"label"in J.params?(X=q===null||q===void 0?void 0:q.label)!==null&&X!==void 0?X:null:J.target.key}),value:A,valueController:O})}class G4{constructor(Q){this.pluginsMap_={blades:[],inputs:[],monitors:[]},this.apiCache_=Q}getAll(){return[...this.pluginsMap_.blades,...this.pluginsMap_.inputs,...this.pluginsMap_.monitors]}register(Q,J){if(!UW(J.core))throw Q1.notCompatible(Q,J.id);if(J.type==="blade")this.pluginsMap_.blades.unshift(J);else if(J.type==="input")this.pluginsMap_.inputs.unshift(J);else if(J.type==="monitor")this.pluginsMap_.monitors.unshift(J)}createInput_(Q,J,z){return this.pluginsMap_.inputs.reduce((G,X)=>G!==null&&G!==void 0?G:xG(X,{document:Q,target:J,params:z}),null)}createMonitor_(Q,J,z){return this.pluginsMap_.monitors.reduce((G,X)=>G!==null&&G!==void 0?G:vG(X,{document:Q,params:z,target:J}),null)}createBinding(Q,J,z){let G=J.read();if(s0(G))throw new Q1({context:{key:J.key},type:"nomatchingcontroller"});let X=this.createInput_(Q,J,z);if(X)return X;let U=this.createMonitor_(Q,J,z);if(U)return U;throw new Q1({context:{key:J.key},type:"nomatchingcontroller"})}createBlade(Q,J){let z=this.pluginsMap_.blades.reduce((G,X)=>G!==null&&G!==void 0?G:eX(X,{document:Q,params:J}),null);if(!z)throw new Q1({type:"nomatchingview",context:{params:J}});return z}createInputBindingApi_(Q){let J=this.pluginsMap_.inputs.reduce((z,G)=>{var X,U;if(z)return z;return(U=(X=G.api)===null||X===void 0?void 0:X.call(G,{controller:Q}))!==null&&U!==void 0?U:null},null);return this.apiCache_.add(Q,J!==null&&J!==void 0?J:new xQ(Q))}createMonitorBindingApi_(Q){let J=this.pluginsMap_.monitors.reduce((z,G)=>{var X,U;if(z)return z;return(U=(X=G.api)===null||X===void 0?void 0:X.call(G,{controller:Q}))!==null&&U!==void 0?U:null},null);return this.apiCache_.add(Q,J!==null&&J!==void 0?J:new xQ(Q))}createBindingApi(Q){if(this.apiCache_.has(Q))return this.apiCache_.get(Q);if(bX(Q))return this.createInputBindingApi_(Q);if(mX(Q))return this.createMonitorBindingApi_(Q);throw Q1.shouldNeverHappen()}createApi(Q){if(this.apiCache_.has(Q))return this.apiCache_.get(Q);if(hX(Q))return this.createBindingApi(Q);let J=this.pluginsMap_.blades.reduce((z,G)=>z!==null&&z!==void 0?z:G.api({controller:Q,pool:this}),null);if(!J)throw Q1.shouldNeverHappen();return this.apiCache_.add(Q,J)}}var uG=new U4;function mG(){let Q=new G4(uG);return[wG,$G,SG,TG,AG,FG,qG,UG,WW,CG,bG,hG,gX,rX,n8].forEach((J)=>{Q.register("core",J)}),Q}class H4 extends C9{constructor(Q){super(Q);this.emitter_=new J1,this.controller.value.emitter.on("change",(J)=>{this.emitter_.emit("change",new mQ(this,J.rawValue))})}get label(){return this.controller.labelController.props.get("label")}set label(Q){this.controller.labelController.props.set("label",Q)}get options(){return this.controller.valueController.props.get("options")}set options(Q){this.controller.valueController.props.set("options",Q)}get value(){return this.controller.value.rawValue}set value(Q){this.controller.value.rawValue=Q}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}}class q4 extends C9{}class F4 extends C9{constructor(Q){super(Q);this.emitter_=new J1,this.controller.value.emitter.on("change",(J)=>{this.emitter_.emit("change",new mQ(this,J.rawValue))})}get label(){return this.controller.labelController.props.get("label")}set label(Q){this.controller.labelController.props.set("label",Q)}get max(){return this.controller.valueController.sliderController.props.get("max")}set max(Q){this.controller.valueController.sliderController.props.set("max",Q)}get min(){return this.controller.valueController.sliderController.props.get("min")}set min(Q){this.controller.valueController.sliderController.props.set("min",Q)}get value(){return this.controller.value.rawValue}set value(Q){this.controller.value.rawValue=Q}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}}class D4 extends C9{constructor(Q){super(Q);this.emitter_=new J1,this.controller.value.emitter.on("change",(J)=>{this.emitter_.emit("change",new mQ(this,J.rawValue))})}get label(){return this.controller.labelController.props.get("label")}set label(Q){this.controller.labelController.props.set("label",Q)}get formatter(){return this.controller.valueController.props.get("formatter")}set formatter(Q){this.controller.valueController.props.set("formatter",Q)}get value(){return this.controller.value.rawValue}set value(Q){this.controller.value.rawValue=Q}on(Q,J){let z=J.bind(this);return this.emitter_.on(Q,(G)=>{z(G)},{key:J}),this}off(Q,J){return this.emitter_.off(Q,J),this}}var dG=function(){return{id:"list",type:"blade",core:gQ,accept(Q){let J=r0(Q,(z)=>({options:z.required.custom(kJ),value:z.required.raw,view:z.required.constant("list"),label:z.optional.string}));return J?{params:J}:null},controller(Q){let J=new lQ(f6(Q.params.options)),z=t0(Q.params.value,{constraint:J}),G=new H9(Q.document,{props:new _0({options:J.values.value("options")}),value:z,viewProps:Q.viewProps});return new T9(Q.document,{blade:Q.blade,props:_0.fromObject({label:Q.params.label}),value:z,valueController:G})},api(Q){if(!(Q.controller instanceof T9))return null;if(!(Q.controller.valueController instanceof H9))return null;return new H4(Q.controller)}}}();class Y4 extends x6{constructor(Q,J){super(Q,J)}get element(){return this.controller.view.element}}class A4 extends WZ{constructor(Q,J){super(Q,{expanded:J.expanded,blade:J.blade,props:J.props,root:!0,viewProps:J.viewProps})}}var J8=y0("spr");class O4{constructor(Q,J){this.element=Q.createElement("div"),this.element.classList.add(J8()),J.viewProps.bindClassModifiers(this.element);let z=Q.createElement("hr");z.classList.add(J8("r")),this.element.appendChild(z)}}class V6 extends RJ{constructor(Q,J){super(Object.assign(Object.assign({},J),{view:new O4(Q,{viewProps:J.viewProps})}))}}var gG={id:"separator",type:"blade",core:gQ,accept(Q){let J=r0(Q,(z)=>({view:z.required.constant("separator")}));return J?{params:J}:null},controller(Q){return new V6(Q.document,{blade:Q.blade,viewProps:Q.viewProps})},api(Q){if(!(Q.controller instanceof V6))return null;return new q4(Q.controller)}},pG={id:"slider",type:"blade",core:gQ,accept(Q){let J=r0(Q,(z)=>({max:z.required.number,min:z.required.number,view:z.required.constant("slider"),format:z.optional.function,label:z.optional.string,value:z.optional.number}));return J?{params:J}:null},controller(Q){var J,z;let G=(J=Q.params.value)!==null&&J!==void 0?J:0,X=new uQ({max:Q.params.max,min:Q.params.min}),U=t0(G,{constraint:X}),H=new wJ(Q.document,Object.assign(Object.assign({},WK({formatter:(z=Q.params.format)!==null&&z!==void 0?z:jX,keyScale:t0(1),max:X.values.value("max"),min:X.values.value("min"),pointerScale:N8(Q.params,G)})),{parser:G9,value:U,viewProps:Q.viewProps}));return new T9(Q.document,{blade:Q.blade,props:_0.fromObject({label:Q.params.label}),value:U,valueController:H})},api(Q){if(!(Q.controller instanceof T9))return null;if(!(Q.controller.valueController instanceof wJ))return null;return new F4(Q.controller)}},cG=function(){return{id:"text",type:"blade",core:gQ,accept(Q){let J=r0(Q,(z)=>({parse:z.required.function,value:z.required.raw,view:z.required.constant("text"),format:z.optional.function,label:z.optional.string}));return J?{params:J}:null},controller(Q){var J;let z=t0(Q.params.value),G=new fQ(Q.document,{parser:Q.params.parse,props:_0.fromObject({formatter:(J=Q.params.format)!==null&&J!==void 0?J:(X)=>String(X)}),value:z,viewProps:Q.viewProps});return new T9(Q.document,{blade:Q.blade,props:_0.fromObject({label:Q.params.label}),value:z,valueController:G})},api(Q){if(!(Q.controller instanceof T9))return null;if(!(Q.controller.valueController instanceof fQ))return null;return new D4(Q.controller)}}}();function lG(Q){let J=Q.createElement("div");if(J.classList.add(y0("dfw")()),Q.body)Q.body.appendChild(J);return J}function sG(Q,J,z){if(Q.querySelector(`style[data-tp-style=${J}]`))return;let G=Q.createElement("style");G.dataset.tpStyle=J,G.textContent=z,Q.head.appendChild(G)}class s6 extends Y4{constructor(Q){var J,z;let G=Q!==null&&Q!==void 0?Q:{},X=(J=G.document)!==null&&J!==void 0?J:IX(),U=mG(),H=new A4(X,{expanded:G.expanded,blade:pQ(),props:_0.fromObject({title:G.title}),viewProps:F9.create()});super(H,U);this.pool_=U,this.containerElem_=(z=G.container)!==null&&z!==void 0?z:lG(X),this.containerElem_.appendChild(this.element),this.doc_=X,this.usesDefaultWrapper_=!G.container,this.setUpDefaultPlugins_()}get document(){if(!this.doc_)throw Q1.alreadyDisposed();return this.doc_}dispose(){let Q=this.containerElem_;if(!Q)throw Q1.alreadyDisposed();if(this.usesDefaultWrapper_){let J=Q.parentElement;if(J)J.removeChild(Q)}this.containerElem_=null,this.doc_=null,super.dispose()}registerPlugin(Q){if(Q.css)sG(this.document,`plugin-${Q.id}`,Q.css);("plugin"in Q?[Q.plugin]:("plugins"in Q)?Q.plugins:[]).forEach((z)=>{this.pool_.register(Q.id,z)})}setUpDefaultPlugins_(){this.registerPlugin({id:"default",css:".tp-tbiv_b,.tp-coltxtv_ms,.tp-colswv_b,.tp-ckbv_i,.tp-sglv_i,.tp-mllv_i,.tp-grlv_g,.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw,.tp-rotv_b,.tp-fldv_b,.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(0,0,0,0);border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0}.tp-p2dv_b,.tp-btnv_b,.tp-lstv_s{background-color:var(--btn-bg);border-radius:var(--bld-br);color:var(--btn-fg);cursor:pointer;display:block;font-weight:bold;height:var(--cnt-usz);line-height:var(--cnt-usz);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-rotv_c>.tp-cntv.tp-v-lst,.tp-tbpv_c>.tp-cntv.tp-v-lst,.tp-fldv_c>.tp-cntv.tp-v-lst{margin-bottom:calc(-1*var(--cnt-vp))}.tp-rotv_c>.tp-fldv.tp-v-lst .tp-fldv_c,.tp-tbpv_c>.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-tbpv_c>.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-tbpv_c>*:not(.tp-v-fst),.tp-fldv_c>*:not(.tp-v-fst){margin-top:var(--cnt-usp)}.tp-rotv_c>.tp-sprv:not(.tp-v-fst),.tp-tbpv_c>.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-tbpv_c>.tp-cntv:not(.tp-v-fst),.tp-fldv_c>.tp-cntv:not(.tp-v-fst){margin-top:var(--cnt-vp)}.tp-rotv_c>.tp-sprv+*:not(.tp-v-hidden),.tp-tbpv_c>.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-tbpv_c>.tp-cntv+*:not(.tp-v-hidden),.tp-fldv_c>.tp-cntv+*:not(.tp-v-hidden){margin-top:var(--cnt-vp)}.tp-rotv_c>.tp-sprv:not(.tp-v-hidden)+.tp-sprv,.tp-tbpv_c>.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-tbpv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv,.tp-fldv_c>.tp-cntv:not(.tp-v-hidden)+.tp-cntv{margin-top:0}.tp-tbpv_c>.tp-cntv,.tp-fldv_c>.tp-cntv{margin-left:4px}.tp-tbpv_c>.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-fldv>.tp-fldv_b{border-top-left-radius:var(--bld-br);border-bottom-left-radius:var(--bld-br)}.tp-tbpv_c>.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-tbpv_c .tp-fldv>.tp-fldv_c,.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:var(--bld-br)}.tp-tbpv_c>.tp-cntv+.tp-fldv>.tp-fldv_b,.tp-fldv_c>.tp-cntv+.tp-fldv>.tp-fldv_b{border-top-left-radius:0}.tp-tbpv_c>.tp-cntv+.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-cntv+.tp-tabv>.tp-tabv_t{border-top-left-radius:0}.tp-tbpv_c>.tp-tabv>.tp-tabv_t,.tp-fldv_c>.tp-tabv>.tp-tabv_t{border-top-left-radius:var(--bld-br)}.tp-tbpv_c .tp-tabv>.tp-tabv_c,.tp-fldv_c .tp-tabv>.tp-tabv_c{border-bottom-left-radius:var(--bld-br)}.tp-rotv_b,.tp-fldv_b{background-color:var(--cnt-bg);color:var(--cnt-fg);cursor:pointer;display:block;height:calc(var(--cnt-usz) + 4px);line-height:calc(var(--cnt-usz) + 4px);overflow:hidden;padding-left:var(--cnt-hp);padding-right:calc(4px + var(--cnt-usz) + var(--cnt-hp));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-hp) + (var(--cnt-usz) + 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-vp);padding-top:var(--cnt-vp);transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-txtv_i,.tp-p2dpv_p,.tp-colswv_sw{background-color:var(--in-bg);border-radius:var(--bld-br);box-sizing:border-box;color:var(--in-fg);font-family:inherit;height:var(--cnt-usz);line-height:var(--cnt-usz);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-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-sglv_i,.tp-mllv_i,.tp-grlv_g{background-color:var(--mo-bg);border-radius:var(--bld-br);box-sizing:border-box;color:var(--mo-fg);height:var(--cnt-usz);scrollbar-color:currentColor rgba(0,0,0,0);scrollbar-width:thin;width:100%}.tp-sglv_i::-webkit-scrollbar,.tp-mllv_i::-webkit-scrollbar,.tp-grlv_g::-webkit-scrollbar{height:8px;width:8px}.tp-sglv_i::-webkit-scrollbar-corner,.tp-mllv_i::-webkit-scrollbar-corner,.tp-grlv_g::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}.tp-sglv_i::-webkit-scrollbar-thumb,.tp-mllv_i::-webkit-scrollbar-thumb,.tp-grlv_g::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:currentColor;border:rgba(0,0,0,0) solid 2px;border-radius:4px}.tp-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-rotv{--bs-bg: var(--tp-base-background-color, hsl(230, 7%, 17%));--bs-br: var(--tp-base-border-radius, 6px);--bs-ff: var(--tp-base-font-family, Roboto Mono, Source Code Pro, Menlo, Courier, monospace);--bs-sh: var(--tp-base-shadow-color, rgba(0, 0, 0, 0.2));--bld-br: var(--tp-blade-border-radius, 2px);--bld-hp: var(--tp-blade-horizontal-padding, 4px);--bld-vw: var(--tp-blade-value-width, 160px);--btn-bg: var(--tp-button-background-color, hsl(230, 7%, 70%));--btn-bg-a: var(--tp-button-background-color-active, #d6d7db);--btn-bg-f: var(--tp-button-background-color-focus, #c8cad0);--btn-bg-h: var(--tp-button-background-color-hover, #bbbcc4);--btn-fg: var(--tp-button-foreground-color, hsl(230, 7%, 17%));--cnt-bg: var(--tp-container-background-color, rgba(187, 188, 196, 0.1));--cnt-bg-a: var(--tp-container-background-color-active, rgba(187, 188, 196, 0.25));--cnt-bg-f: var(--tp-container-background-color-focus, rgba(187, 188, 196, 0.2));--cnt-bg-h: var(--tp-container-background-color-hover, rgba(187, 188, 196, 0.15));--cnt-fg: var(--tp-container-foreground-color, hsl(230, 7%, 75%));--cnt-hp: var(--tp-container-horizontal-padding, 4px);--cnt-vp: var(--tp-container-vertical-padding, 4px);--cnt-usp: var(--tp-container-unit-spacing, 4px);--cnt-usz: var(--tp-container-unit-size, 20px);--in-bg: var(--tp-input-background-color, rgba(187, 188, 196, 0.1));--in-bg-a: var(--tp-input-background-color-active, rgba(187, 188, 196, 0.25));--in-bg-f: var(--tp-input-background-color-focus, rgba(187, 188, 196, 0.2));--in-bg-h: var(--tp-input-background-color-hover, rgba(187, 188, 196, 0.15));--in-fg: var(--tp-input-foreground-color, hsl(230, 7%, 75%));--lbl-fg: var(--tp-label-foreground-color, rgba(187, 188, 196, 0.7));--mo-bg: var(--tp-monitor-background-color, rgba(0, 0, 0, 0.2));--mo-fg: var(--tp-monitor-foreground-color, rgba(187, 188, 196, 0.7));--grv-fg: var(--tp-groove-foreground-color, rgba(187, 188, 196, 0.1))}.tp-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(--bld-br);cursor:pointer;display:block;height:var(--cnt-usz);position:relative;width:var(--cnt-usz)}.tp-ckbv_w svg{display:block;height:16px;inset:0;margin:auto;opacity:0;position:absolute;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(--cnt-usz)}.tp-colv_t{flex:1;margin-left:4px}.tp-colv_p{height:0;margin-top:0;opacity:0;overflow:hidden;transition:height .2s ease-in-out,opacity .2s linear,margin .2s ease-in-out}.tp-colv.tp-colv-expanded.tp-colv-cpl .tp-colv_p{overflow:visible}.tp-colv.tp-colv-expanded .tp-colv_p{margin-top:var(--cnt-usp);opacity:1}.tp-colv .tp-popv{left:calc(-1*var(--cnt-hp));right:calc(-1*var(--cnt-hp));top:var(--cnt-usz)}.tp-colpv_h,.tp-colpv_ap{margin-left:6px;margin-right:6px}.tp-colpv_h{margin-top:var(--cnt-usp)}.tp-colpv_rgb{display:flex;margin-top:var(--cnt-usp);width:100%}.tp-colpv_a{display:flex;margin-top:var(--cnt-vp);padding-top:calc(var(--cnt-vp) + 2px);position:relative}.tp-colpv_a::before{background-color:var(--grv-fg);content:\"\";height:2px;left:calc(-1*var(--cnt-hp));position:absolute;right:calc(-1*var(--cnt-hp));top:0}.tp-colpv.tp-v-disabled .tp-colpv_a::before{opacity:.5}.tp-colpv_ap{align-items:center;display:flex;flex:3}.tp-colpv_at{flex:1;margin-left:4px}.tp-svpv{border-radius:var(--bld-br);outline:none;overflow:hidden;position:relative}.tp-svpv.tp-v-disabled{opacity:.5}.tp-svpv_c{cursor:crosshair;display:block;height:calc(var(--cnt-usz)*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(--cnt-usz);outline:none;position:relative}.tp-hplv.tp-v-disabled{opacity:.5}.tp-hplv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hplv_m{border-radius:var(--bld-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;position:absolute;top:50%;width:12px}.tp-hplv:focus .tp-hplv_m{border-color:#fff}.tp-aplv{cursor:pointer;height:var(--cnt-usz);outline:none;position:relative;width:100%}.tp-aplv.tp-v-disabled{opacity:.5}.tp-aplv_b{background-color:#fff;background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-aplv_c{inset:0;position:absolute}.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(--bld-br);box-shadow:0 0 2px rgba(0,0,0,.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;position:absolute;top:50%;width:12px}.tp-aplv_p{border-radius:var(--bld-br);border:rgba(255,255,255,.75) solid 2px;box-sizing:border-box;inset:0;position:absolute}.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(--bld-br);overflow:hidden}.tp-colswv.tp-v-disabled{opacity:.5}.tp-colswv_sw{border-radius:0}.tp-colswv_b{cursor:pointer;display:block;height:var(--cnt-usz);left:0;position:absolute;top:0;width:var(--cnt-usz)}.tp-colswv_b:focus::after{border:rgba(255,255,255,.75) solid 2px;border-radius:var(--bld-br);content:\"\";display:block;inset:0;position:absolute}.tp-coltxtv{display:flex;width:100%}.tp-coltxtv_m{margin-right:4px}.tp-coltxtv_ms{border-radius:var(--bld-br);color:var(--lbl-fg);cursor:pointer;height:var(--cnt-usz);line-height:var(--cnt-usz);padding:0 18px 0 4px}.tp-coltxtv_ms:hover{background-color:var(--in-bg-h)}.tp-coltxtv_ms:focus{background-color:var(--in-bg-f)}.tp-coltxtv_ms:active{background-color:var(--in-bg-a)}.tp-coltxtv_mm{color:var(--lbl-fg)}.tp-coltxtv.tp-v-disabled .tp-coltxtv_mm{opacity:.5}.tp-coltxtv_w{flex:1}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv{position:relative}.tp-fldv_t{padding-left:4px}.tp-fldv_b:disabled .tp-fldv_m{display:none}.tp-fldv_c{padding-left:4px}.tp-fldv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--cnt-usz) + 4px);width:max(var(--bs-br),4px)}.tp-fldv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-fldv_b:hover+.tp-fldv_i{color:var(--cnt-bg-h)}.tp-fldv_b:focus+.tp-fldv_i{color:var(--cnt-bg-f)}.tp-fldv_b:active+.tp-fldv_i{color:var(--cnt-bg-a)}.tp-fldv.tp-v-disabled>.tp-fldv_i{opacity:.5}.tp-grlv{position:relative}.tp-grlv_g{display:block;height:calc(var(--cnt-usz)*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-hp);padding-right:var(--cnt-hp)}.tp-lblv.tp-lblv-nol{display:block}.tp-lblv_l{color:var(--lbl-fg);flex:1;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv.tp-v-disabled .tp-lblv_l{opacity:.5}.tp-lblv.tp-lblv-nol .tp-lblv_l{display:none}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:var(--bld-vw)}.tp-lblv.tp-lblv-nol .tp-lblv_v{width:100%}.tp-lstv_s{padding:0 20px 0 var(--bld-hp);width:100%}.tp-lstv_m{color:var(--btn-fg)}.tp-sglv_i{padding-left:var(--bld-hp);padding-right:var(--bld-hp)}.tp-sglv.tp-v-disabled .tp-sglv_i{opacity:.5}.tp-mllv_i{display:block;height:calc(var(--cnt-usz)*3);line-height:var(--cnt-usz);padding-left:var(--bld-hp);padding-right:var(--bld-hp);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(--cnt-usz);margin-right:4px;position:relative;width:var(--cnt-usz)}.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(--cnt-usp);opacity:1}.tp-p2dv .tp-popv{left:calc(-1*var(--cnt-hp));right:calc(-1*var(--cnt-hp));top:var(--cnt-usz)}.tp-p2dpv{padding-left:calc(var(--cnt-usz) + 4px)}.tp-p2dpv_p{cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpv.tp-v-disabled .tp-p2dpv_p{opacity:.5}.tp-p2dpv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpv_ax{opacity:.1;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_l{opacity:.5;stroke:var(--in-fg);stroke-dasharray:1}.tp-p2dpv_m{border:var(--in-fg) solid 1px;border-radius:50%;box-sizing:border-box;height:4px;margin-left:-2px;margin-top:-2px;position:absolute;width:4px}.tp-p2dpv_p:focus .tp-p2dpv_m{background-color:var(--in-fg);border-width:0}.tp-popv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);display:none;max-width:var(--bld-vw);padding:var(--cnt-vp) var(--cnt-hp);position:absolute;visibility:hidden;z-index:1000}.tp-popv.tp-popv-v{display:block;visibility:visible}.tp-sldv.tp-v-disabled{opacity:.5}.tp-sldv_t{box-sizing:border-box;cursor:pointer;height:var(--cnt-usz);margin:0 6px;outline:none;position:relative}.tp-sldv_t::before{background-color:var(--in-bg);border-radius:1px;content:\"\";display:block;height:2px;inset:0;margin:auto;position:absolute}.tp-sldv_k{height:100%;left:0;position:absolute;top:0}.tp-sldv_k::before{background-color:var(--in-fg);border-radius:1px;content:\"\";display:block;height:2px;inset:0;margin-bottom:auto;margin-top:auto;position:absolute}.tp-sldv_k::after{background-color:var(--btn-bg);border-radius:var(--bld-br);bottom:0;content:\"\";display:block;height:12px;margin-bottom:auto;margin-top:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldv_t:hover .tp-sldv_k::after{background-color:var(--btn-bg-h)}.tp-sldv_t:focus .tp-sldv_k::after{background-color:var(--btn-bg-f)}.tp-sldv_t:active .tp-sldv_k::after{background-color:var(--btn-bg-a)}.tp-sldtxtv{display:flex}.tp-sldtxtv_s{flex:2}.tp-sldtxtv_t{flex:1;margin-left:4px}.tp-tabv{position:relative}.tp-tabv_t{align-items:flex-end;color:var(--cnt-bg);display:flex;overflow:hidden;position:relative}.tp-tabv_t:hover{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus){color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active){color:var(--cnt-bg-a)}.tp-tabv_t::before{background-color:currentColor;bottom:0;content:\"\";height:2px;left:0;pointer-events:none;position:absolute;right:0}.tp-tabv.tp-v-disabled .tp-tabv_t::before{opacity:.5}.tp-tabv.tp-tabv-nop .tp-tabv_t{height:calc(var(--cnt-usz) + 4px);position:relative}.tp-tabv.tp-tabv-nop .tp-tabv_t::before{background-color:var(--cnt-bg);bottom:0;content:\"\";height:2px;left:0;position:absolute;right:0}.tp-tabv_i{bottom:0;color:var(--cnt-bg);left:0;overflow:hidden;position:absolute;top:calc(var(--cnt-usz) + 4px);width:max(var(--bs-br),4px)}.tp-tabv_i::before{background-color:currentColor;bottom:0;content:\"\";left:0;position:absolute;top:0;width:4px}.tp-tabv_t:hover+.tp-tabv_i{color:var(--cnt-bg-h)}.tp-tabv_t:has(*:focus)+.tp-tabv_i{color:var(--cnt-bg-f)}.tp-tabv_t:has(*:active)+.tp-tabv_i{color:var(--cnt-bg-a)}.tp-tabv.tp-v-disabled>.tp-tabv_i{opacity:.5}.tp-tbiv{flex:1;min-width:0;position:relative}.tp-tbiv+.tp-tbiv{margin-left:2px}.tp-tbiv+.tp-tbiv.tp-v-disabled::before{opacity:.5}.tp-tbiv_b{display:block;padding-left:calc(var(--cnt-hp) + 4px);padding-right:calc(var(--cnt-hp) + 4px);position:relative;width:100%}.tp-tbiv_b:disabled{opacity:.5}.tp-tbiv_b::before{background-color:var(--cnt-bg);content:\"\";inset:0 0 2px;pointer-events:none;position:absolute}.tp-tbiv_b:hover::before{background-color:var(--cnt-bg-h)}.tp-tbiv_b:focus::before{background-color:var(--cnt-bg-f)}.tp-tbiv_b:active::before{background-color:var(--cnt-bg-a)}.tp-tbiv_t{color:var(--cnt-fg);height:calc(var(--cnt-usz) + 4px);line-height:calc(var(--cnt-usz) + 4px);opacity:.5;overflow:hidden;position:relative;text-overflow:ellipsis}.tp-tbiv.tp-tbiv-sel .tp-tbiv_t{opacity:1}.tp-tbpv_c{padding-bottom:var(--cnt-vp);padding-left:4px;padding-top:var(--cnt-vp)}.tp-txtv{position:relative}.tp-txtv_i{padding-left:var(--bld-hp);padding-right:var(--bld-hp)}.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:calc(var(--bld-hp) - 5px);position:absolute;top:0;width:12px}.tp-txtv_k::before{background-color:var(--in-fg);border-radius:1px;bottom:0;content:\"\";height:calc(var(--cnt-usz) - 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(--bld-br);color:var(--bs-bg);padding:2px 4px;pointer-events:none;position:absolute;transform:translate(-50%, -100%)}.tp-ttv::before{border-color:var(--in-fg) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:2px;box-sizing:border-box;content:\"\";font-size:.9em;height:4px;left:50%;margin-left:-2px;position:absolute;top:100%;width:4px}.tp-rotv{background-color:var(--bs-bg);border-radius:var(--bs-br);box-shadow:0 2px 4px var(--bs-sh);font-family:var(--bs-ff);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(--cnt-usz) + var(--cnt-hp));text-align:center}.tp-rotv.tp-rotv-expanded .tp-rotv_b{border-bottom-left-radius:0;border-bottom-right-radius:0;transition-delay:0s;transition-duration:0s}.tp-rotv.tp-rotv-not>.tp-rotv_b{display:none}.tp-rotv_b:disabled .tp-rotv_m{display:none}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst>.tp-fldv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst:not(.tp-fldv-expanded)>.tp-fldv_b{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-fldv.tp-v-lst.tp-fldv-expanded>.tp-fldv_b{transition-delay:0s;transition-duration:0s}.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-vp))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-fldv.tp-v-fst>.tp-fldv_b{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_c{border-bottom-left-radius:var(--bs-br);border-bottom-right-radius:var(--bs-br)}.tp-rotv_c>.tp-tabv.tp-v-lst>.tp-tabv_i{border-bottom-left-radius:var(--bs-br)}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst{margin-top:calc(-1*var(--cnt-vp))}.tp-rotv.tp-rotv-not .tp-rotv_c>.tp-tabv.tp-v-fst>.tp-tabv_t{border-top-left-radius:var(--bs-br);border-top-right-radius:var(--bs-br)}.tp-rotv.tp-v-disabled,.tp-rotv .tp-v-disabled{pointer-events:none}.tp-rotv.tp-v-hidden,.tp-rotv .tp-v-hidden{display:none}.tp-sprv_r{background-color:var(--grv-fg);border-width:0;display:block;height:2px;margin:0;width:100%}.tp-sprv.tp-v-disabled .tp-sprv_r{opacity:.5}",plugins:[dG,gG,pG,n8,cG]})}}var pH=new h6("4.0.5");var Wz=gH(B4(),1);function nG(){var Q=Object.create(null);function J(X,U){var{id:H,name:q,dependencies:F}=X;if(F===void 0)F=[];var D=X.init;if(D===void 0)D=function(){};var A=X.getTransferables;if(A===void 0)A=null;if(Q[H])return;try{if(F=F.map(function(L){if(L&&L.isWorkerModule)J(L,function(B){if(B instanceof Error)throw B}),L=Q[L.id].value;return L}),D=G("<"+q+">.init",D),A)A=G("<"+q+">.getTransferables",A);var O=null;if(typeof D==="function")O=D.apply(void 0,F);else console.error("worker module init function failed to rehydrate");Q[H]={id:H,value:O,getTransferables:A},U(O)}catch(L){if(!(L&&L.noLog))console.error(L);U(L)}}function z(X,U){var H,q=X.id,F=X.args;if(!Q[q]||typeof Q[q].value!=="function")U(Error("Worker module "+q+": not found or its 'init' did not return a function"));try{var D=(H=Q[q]).value.apply(H,F);if(D&&typeof D.then==="function")D.then(A,function(O){return U(O instanceof Error?O:Error(""+O))});else A(D)}catch(O){U(O)}function A(O){try{var L=Q[q].getTransferables&&Q[q].getTransferables(O);if(!L||!Array.isArray(L)||!L.length)L=void 0;U(O,L)}catch(B){console.error(B),U(B)}}}function G(X,U){var H=void 0;self.troikaDefine=function(F){return H=F};var q=URL.createObjectURL(new Blob(["/** "+X.replace(/\*/g,"")+` **/ troikaDefine( `+U+` )`],{type:"application/javascript"}));try{importScripts(q)}catch(F){console.error(F)}return URL.revokeObjectURL(q),delete self.troikaDefine,H}self.addEventListener("message",function(X){var U=X.data,H=U.messageId,q=U.action,F=U.data;try{if(q==="registerModule")J(F,function(D){if(D instanceof Error)postMessage({messageId:H,success:!1,error:D.message});else postMessage({messageId:H,success:!0,result:{isCallable:typeof D==="function"}})});if(q==="callModule")z(F,function(D,A){if(D instanceof Error)postMessage({messageId:H,success:!1,error:D.message});else postMessage({messageId:H,success:!0,result:D},A||void 0)})}catch(D){postMessage({messageId:H,success:!1,error:D.stack})}})}function oG(Q){var J=function(){var z=[],G=arguments.length;while(G--)z[G]=arguments[G];return J._getInitResult().then(function(X){if(typeof X==="function")return X.apply(void 0,z);else throw Error("Worker module function was called but `init` did not return a callable function")})};return J._getInitResult=function(){var{dependencies:z,init:G}=Q;z=Array.isArray(z)?z.map(function(U){if(U){if(U=U.onMainThread||U,U._getInitResult)U=U._getInitResult()}return U}):[];var X=Promise.all(z).then(function(U){return G.apply(null,U)});return J._getInitResult=function(){return X},X},J}var j4=function(){var Q=!1;if(typeof window<"u"&&typeof window.document<"u")try{var J=new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"})));J.terminate(),Q=!0}catch(z){console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+z.message+"]")}return j4=function(){return Q},Q},tG=0,rG=0,i6=!1,_J=Object.create(null),TJ=Object.create(null),n6=Object.create(null);function GQ(Q){if((!Q||typeof Q.init!=="function")&&!i6)throw Error("requires `options.init` function");var{dependencies:J,init:z,getTransferables:G,workerId:X}=Q,U=oG(Q);if(X==null)X="#default";var H="workerModule"+ ++tG,q=Q.name||H,F=null;J=J&&J.map(function(A){if(typeof A==="function"&&!A.workerModuleData)i6=!0,A=GQ({workerId:X,name:"<"+q+"> function dependency: "+A.name,init:`function(){return ( `+$Z(A)+` )}`}),i6=!1;if(A&&A.workerModuleData)A=A.workerModuleData;return A});function D(){var A=[],O=arguments.length;while(O--)A[O]=arguments[O];if(!j4())return U.apply(void 0,A);if(!F){F=L4(X,"registerModule",D.workerModuleData);var L=function(){F=null,TJ[X].delete(L)};(TJ[X]||(TJ[X]=new Set)).add(L)}return F.then(function(B){var w=B.isCallable;if(w)return L4(X,"callModule",{id:H,args:A});else throw Error("Worker module function was called but `init` did not return a callable function")})}return D.workerModuleData={isWorkerModule:!0,id:H,name:q,dependencies:J,init:$Z(z),getTransferables:G&&$Z(G)},D.onMainThread=U,D}function w4(Q){if(TJ[Q])TJ[Q].forEach(function(J){J()});if(_J[Q])_J[Q].terminate(),delete _J[Q]}function $Z(Q){var J=Q.toString();if(!/^function/.test(J)&&/^\w+\s*\(/.test(J))J="function "+J;return J}function aG(Q){var J=_J[Q];if(!J){var z=$Z(nG);J=_J[Q]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+Q.replace(/\*/g,"")+` **/ ;(`+z+")()"],{type:"application/javascript"}))),J.onmessage=function(G){var X=G.data,U=X.messageId,H=n6[U];if(!H)throw Error("WorkerModule response with empty or unknown messageId");delete n6[U],H(X)}}return J}function L4(Q,J,z){return new Promise(function(G,X){var U=++rG;n6[U]=function(H){if(H.success)G(H.result);else X(Error("Error in worker "+J+" call: "+H.error))},aG(Q).postMessage({messageId:U,action:J,data:z})})}function o6(){var Q=function(J){function z(n,u,M,$,E,m,b,o){var p=1-b;o.x=p*p*n+2*p*b*M+b*b*E,o.y=p*p*u+2*p*b*$+b*b*m}function G(n,u,M,$,E,m,b,o,p,i){var e=1-p;i.x=e*e*e*n+3*e*e*p*M+3*e*p*p*E+p*p*p*b,i.y=e*e*e*u+3*e*e*p*$+3*e*p*p*m+p*p*p*o}function X(n,u){var M=/([MLQCZ])([^MLQCZ]*)/g,$,E,m,b,o;while($=M.exec(n)){var p=$[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(i){return parseFloat(i)});switch($[1]){case"M":b=E=p[0],o=m=p[1];break;case"L":if(p[0]!==b||p[1]!==o)u("L",b,o,b=p[0],o=p[1]);break;case"Q":{u("Q",b,o,b=p[2],o=p[3],p[0],p[1]);break}case"C":{u("C",b,o,b=p[4],o=p[5],p[0],p[1],p[2],p[3]);break}case"Z":if(b!==E||o!==m)u("L",b,o,E,m);break}}}function U(n,u,M){if(M===void 0)M=16;var $={x:0,y:0};X(n,function(E,m,b,o,p,i,e,G0,a){switch(E){case"L":u(m,b,o,p);break;case"Q":{var t=m,w0=b;for(var H0=1;H00)D0[W0]=arguments[W0+2];var L0=X0[h0]||(X0[h0]=M.getUniformLocation(s,h0));M["uniform"+J0].apply(M,[L0].concat(D0))},setAttribute:function(J0,h0,D0,W0,L0){var R0=F0[J0];if(!R0)R0=F0[J0]={buf:M.createBuffer(),loc:M.getAttribLocation(s,J0),data:null};if(M.bindBuffer(M.ARRAY_BUFFER,R0.buf),M.vertexAttribPointer(R0.loc,h0,M.FLOAT,!1,0,0),M.enableVertexAttribArray(R0.loc),E)M.vertexAttribDivisor(R0.loc,W0);else e("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(R0.loc,W0);if(L0!==R0.data)M.bufferData(M.ARRAY_BUFFER,L0,D0),R0.data=L0}})}}}b[Z0].transaction(r)},t=function(Z0,q0){p++;try{M.activeTexture(M.TEXTURE0+p);var B0=o[Z0];if(!B0)B0=o[Z0]=M.createTexture(),M.bindTexture(M.TEXTURE_2D,B0),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MIN_FILTER,M.NEAREST),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MAG_FILTER,M.NEAREST);M.bindTexture(M.TEXTURE_2D,B0),q0(B0,p)}finally{p--}},w0=function(Z0,q0,B0){var r=M.createFramebuffer();i.push(r),M.bindFramebuffer(M.FRAMEBUFFER,r),M.activeTexture(M.TEXTURE0+q0),M.bindTexture(M.TEXTURE_2D,Z0),M.framebufferTexture2D(M.FRAMEBUFFER,M.COLOR_ATTACHMENT0,M.TEXTURE_2D,Z0,0);try{B0(r)}finally{M.deleteFramebuffer(r),M.bindFramebuffer(M.FRAMEBUFFER,i[--i.length-1]||null)}},H0=function(){m={},b={},o={},p=-1,i.length=0};var E=typeof WebGL2RenderingContext<"u"&&M instanceof WebGL2RenderingContext,m={},b={},o={},p=-1,i=[];M.canvas.addEventListener("webglcontextlost",function(Z0){H0(),Z0.preventDefault()},!1),F.set(M,$={gl:M,isWebGL2:E,getExtension:e,withProgram:a,withTexture:t,withTextureFramebuffer:w0,handleContextLoss:H0})}u($)}function O(n,u,M,$,E,m,b,o){if(b===void 0)b=15;if(o===void 0)o=null;A(n,function(p){var{gl:i,withProgram:e,withTexture:G0}=p;G0("copy",function(a,t){i.texImage2D(i.TEXTURE_2D,0,i.RGBA,E,m,0,i.RGBA,i.UNSIGNED_BYTE,u),e("copy",H,q,function(w0){var{setUniform:H0,setAttribute:Z0}=w0;Z0("aUV",2,i.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),H0("1i","image",t),i.bindFramebuffer(i.FRAMEBUFFER,o||null),i.disable(i.BLEND),i.colorMask(b&8,b&4,b&2,b&1),i.viewport(M,$,E,m),i.scissor(M,$,E,m),i.drawArrays(i.TRIANGLES,0,3)})})})}function L(n,u,M){var{width:$,height:E}=n;A(n,function(m){var b=m.gl,o=new Uint8Array($*E*4);b.readPixels(0,0,$,E,b.RGBA,b.UNSIGNED_BYTE,o),n.width=u,n.height=M,O(b,o,0,0,$,E)})}var B=Object.freeze({__proto__:null,withWebGLContext:A,renderImageData:O,resizeWebGLCanvasWithoutClearing:L});function w(n,u,M,$,E,m){if(m===void 0)m=1;var b=new Uint8Array(n*u),o=$[2]-$[0],p=$[3]-$[1],i=[];U(M,function(Z0,q0,B0,r){i.push({x1:Z0,y1:q0,x2:B0,y2:r,minX:Math.min(Z0,B0),minY:Math.min(q0,r),maxX:Math.max(Z0,B0),maxY:Math.max(q0,r)})}),i.sort(function(Z0,q0){return Z0.maxX-q0.maxX});for(var e=0;eX0.minX&&q0-rX0.minY){var s=g(Z0,q0,X0.x1,X0.y1,X0.x2,X0.y2);if(sq0!==F0.y2>q0&&Z0<(F0.x2-F0.x1)*(q0-F0.y1)/(F0.y2-F0.y1)+F0.x1;if(X0)B0+=F0.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function R(r,F0){var X0=36,s=0,M0=new Map,K0=F0&&new Map,A0;return r.split(",").forEach(function J0(h0){if(h0.indexOf("+")!==-1)for(var D0=+h0;D0--;)J0(A0);else{A0=h0;var W0=h0.split(">"),L0=W0[0],R0=W0[1];L0=String.fromCodePoint(s+=parseInt(L0,X0)),R0=String.fromCodePoint(s+=parseInt(R0,X0)),M0.set(L0,R0),F0&&K0.set(R0,L0)}}),{map:M0,reverseMap:K0}}var j,g,I;function C(){if(!j){var r=R(w.pairs,!0),F0=r.map,X0=r.reverseMap;j=F0,g=X0,I=R(w.canonical,!1).map}}function k(r){return C(),j.get(r)||null}function _(r){return C(),g.get(r)||null}function h(r){return C(),I.get(r)||null}var{L:T,R:y,EN:v,ES:f,ET:Q0,AN:P,CS:c,B:x,S:l,ON:S,BN:U0,NSM:N0,AL:n,LRO:u,RLO:M,LRE:$,RLE:E,PDF:m,LRI:b,RLI:o,FSI:p,PDI:i}=G;function e(r,F0){var X0=125,s=new Uint32Array(r.length);for(var M0=0;M00)p0--;else if(z1>0){c0=0;while(!k0[k0.length-1]._isolate)k0.pop();var I0=k0[k0.length-1]._isolInitIndex;if(I0!=null)h0.set(I0,f0),h0.set(f0,I0);k0.pop(),z1--}if(O0=k0[k0.length-1],J0[f0]=O0._level,O0._override)A0(f0,O0._override)}else if(j0&m){if(p0===0){if(c0>0)c0--;else if(!O0._isolate&&k0.length>1)k0.pop(),O0=k0[k0.length-1]}J0[f0]=O0._level}else if(j0&x)J0[f0]=W0.level}else if(J0[f0]=O0._level,O0._override&&j0!==U0)A0(f0,O0._override)}var n0=[],C0=null;for(var V0=W0.start;V0<=W0.end;V0++){var E0=s[V0];if(!(E0&F)){var U1=J0[V0],a0=E0&U,e0=E0===i;if(C0&&U1===C0._level)C0._end=V0,C0._endsWithIsolInit=a0;else n0.push(C0={_start:V0,_end:V0,_level:U1,_startsWithPDI:e0,_endsWithIsolInit:a0})}}var X1=[];for(var M1=0;M1=0;y9--)if(!(s[y9]&F)){tQ=J0[y9];break}var Y9=W1[W1.length-1],fZ=J0[Y9],u1=W0.level;if(!(s[Y9]&U)){for(var A9=Y9+1;A9<=W0.end;A9++)if(!(s[A9]&F)){u1=J0[A9];break}}X1.push({_seqIndices:W1,_sosType:Math.max(tQ,D9)%2?y:T,_eosType:Math.max(u1,fZ)%2?y:T})}}for(var YQ=0;YQ=0;O9--)if(!(s[Y0[O9]]&F)){f9=s[Y0[O9]];break}A0(OQ,f9&(U|i)?S:f9)}}if(K0.get(v))for(var v9=0;v9=-1;m1--){var aQ=m1===-1?h9:s[Y0[m1]];if(aQ&H){if(aQ===n)A0(rQ,P);break}}}if(K0.get(n))for(var u9=0;u9=0;LQ--)if(t1=s[Y0[LQ]],!(t1&F))break;for(var QJ=m9+1;QJ=0&&s[Y0[d9]]&(Q0|F);d9--)A0(Y0[d9],v);for(k1++;k1=0&&s[Y0[S1]]&F;S1--)A0(Y0[S1],S);for(var f1=P1+1;f1=0;c9--){var MQ=d1[c9].char;if(MQ===L9||MQ===_(h(B9))||k(h(MQ))===B9){p9.push([d1[c9].seqIndex,r1]),d1.length=c9;break}}}p9.sort(function(G1,V1){return G1[0]-V1[0]})}for(var VQ=0;VQ=0;a1--){var mJ=Y0[a1];if(s[mJ]&JJ){var kQ=s[mJ]&_1?y:T;if(kQ!==o1)N1=kQ;else N1=o1;break}}}if(N1){if(s[Y0[RQ]]=s[Y0[$Q]]=N1,N1!==o1){for(var w9=RQ+1;w9=0;i9--)if(s[Y0[i9]]&F)dJ=i9;else{zJ=s[Y0[i9]]&_1?y:T;break}var gJ=b9;for(var n9=g1+1;n9=0&&L(r[IQ])&D;IQ--)J0[IQ]=W0.level}}return{levels:J0,paragraphs:D0};function pJ(G1,V1){for(var F1=G1;F1=J0&&L(r[W0])&D;W0--)D0[W0]=A0.level;var L0=A0.level,R0=1/0;for(var b0=0;b0L0)L0=i0;if(i0=R0;$0--)for(var k0=0;k0=$0){var O0=k0;while(k0+1=$0)k0++;if(k0>O0)K0.push([O0+J0,k0+J0])}}}),K0}function q0(r,F0,X0,s){var M0=B0(r,F0,X0,s),K0=[].concat(r);return M0.forEach(function(A0,J0){K0[J0]=(F0.levels[A0]&1?w0(r[A0]):null)||r[A0]}),K0.join("")}function B0(r,F0,X0,s){var M0=Z0(r,F0,X0,s),K0=[];for(var A0=0;A0/gm;function z(G,X){let U=T4[X];return U?t6(U):G}return Q.replace(J,z)}var q1=[];for(let Q=0;Q<256;Q++)q1[Q]=(Q<16?"0":"")+Q.toString(16);function QH(){let Q=Math.random()*4294967295|0,J=Math.random()*4294967295|0,z=Math.random()*4294967295|0,G=Math.random()*4294967295|0;return(q1[Q&255]+q1[Q>>8&255]+q1[Q>>16&255]+q1[Q>>24&255]+"-"+q1[J&255]+q1[J>>8&255]+"-"+q1[J>>16&15|64]+q1[J>>24&255]+"-"+q1[z&63|128]+q1[z>>8&255]+"-"+q1[z>>16&255]+q1[z>>24&255]+q1[G&255]+q1[G>>8&255]+q1[G>>16&255]+q1[G>>24&255]).toUpperCase()}var HQ=Object.assign||function(){let Q=arguments[0];for(let J=1,z=arguments.length;JQ.type,set:(D)=>{Q.type=D}},isDerivedFrom:{writable:!0,configurable:!0,value:function(D){let A=this.baseMaterial;return D===A||A.isDerivedMaterial&&A.isDerivedFrom(D)||!1}},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return Q.customProgramCacheKey()+"|"+z}},onBeforeCompile:{get(){return U},set(D){this[X]=D}},copy:{writable:!0,configurable:!0,value:function(D){if(Q.copy.call(this,D),!Q.isShaderMaterial&&!Q.isDerivedMaterial)HQ(this.extensions,D.extensions),HQ(this.defines,D.defines),HQ(this.uniforms,I4.clone(D.uniforms));return this}},clone:{writable:!0,configurable:!0,value:function(){let D=new Q.constructor;return q(D).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let D=this._depthMaterial;if(!D)D=this._depthMaterial=kZ(Q.isDerivedMaterial?Q.getDepthMaterial():new S4({depthPacking:P4}),J),D.defines.IS_DEPTH_MATERIAL="",D.uniforms=this.uniforms;return D}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let D=this._distanceMaterial;if(!D)D=this._distanceMaterial=kZ(Q.isDerivedMaterial?Q.getDistanceMaterial():new _4,J),D.defines.IS_DISTANCE_MATERIAL="",D.uniforms=this.uniforms;return D}},dispose:{writable:!0,configurable:!0,value(){let{_depthMaterial:D,_distanceMaterial:A}=this;if(D)D.dispose();if(A)A.dispose();Q.dispose.call(this)}}};return G[z]=H,new H}function KH(Q,{vertexShader:J,fragmentShader:z},G,X){let{vertexDefs:U,vertexMainIntro:H,vertexMainOutro:q,vertexTransform:F,fragmentDefs:D,fragmentMainIntro:A,fragmentMainOutro:O,fragmentColorTransform:L,customRewriter:B,timeUniform:w}=G;if(U=U||"",H=H||"",q=q||"",D=D||"",A=A||"",O=O||"",F||B)J=t6(J);if(L||B)z=z.replace(/^[ \t]*#include <((?:tonemapping|encodings|colorspace|fog|premultiplied_alpha|dithering)_fragment)>/gm,` //!BEGIN_POST_CHUNK $1 $& //!END_POST_CHUNK `),z=t6(z);if(B){let R=B({vertexShader:J,fragmentShader:z});J=R.vertexShader,z=R.fragmentShader}if(L){let R=[];z=z.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,(j)=>{return R.push(j),""}),O=`${L} ${R.join(` `)} ${O}`}if(w){let R=` uniform float ${w}; `;U=R+U,D=R+D}if(F){if(J=`vec3 troika_position_${X}; vec3 troika_normal_${X}; vec2 troika_uv_${X}; ${J} `,U=`${U} void troikaVertexTransform${X}(inout vec3 position, inout vec3 normal, inout vec2 uv) { ${F} } `,H=` troika_position_${X} = vec3(position); troika_normal_${X} = vec3(normal); troika_uv_${X} = vec2(uv); troikaVertexTransform${X}(troika_position_${X}, troika_normal_${X}, troika_uv_${X}); ${H} `,J=J.replace(/\b(position|normal|uv)\b/g,(R,j,g,I)=>{return/\battribute\s+vec[23]\s+$/.test(I.substr(0,g))?j:`troika_${j}_${X}`}),!(Q.map&&Q.map.channel>0))J=J.replace(/\bMAP_UV\b/g,`troika_uv_${X}`)}return J=$4(J,X,U,H,q),z=$4(z,X,D,A,O),{vertexShader:J,fragmentShader:z}}function $4(Q,J,z,G,X){if(G||X||z)Q=Q.replace(e6,` ${z} void troikaOrigMain${J}() {`),Q+=` void main() { ${G} troikaOrigMain${J}(); ${X} }`;return Q}function zH(Q,J){return Q==="uniforms"?void 0:typeof J==="function"?J.toString():J}var UH=0,k4=new Map;function XH(Q){let J=JSON.stringify(Q,zH),z=k4.get(J);if(z==null)k4.set(J,z=++UH);return z}/*! Custom build of Typr.ts (https://github.com/fredli74/Typr.ts) for use in Troika text rendering. Original MIT license applies: https://github.com/fredli74/Typr.ts/blob/master/LICENSE */function WH(){return typeof window>"u"&&(self.window=self),function(Q){var J={parse:function(X){var U=J._bin,H=new Uint8Array(X);if(U.readASCII(H,0,4)=="ttcf"){var q=4;U.readUshort(H,q),q+=2,U.readUshort(H,q),q+=2;var F=U.readUint(H,q);q+=4;for(var D=[],A=0;A>>H&1)!=0&&U++;return U},J._lctf.readClassDef=function(X,U){var H=J._bin,q=[],F=H.readUshort(X,U);if(U+=2,F==1){var D=H.readUshort(X,U);U+=2;var A=H.readUshort(X,U);U+=2;for(var O=0;O0&&(F.featureParams=q+D);var A=H.readUshort(X,U);U+=2,F.tab=[];for(var O=0;O0&&(F.default=J._lctf.readLangSysTable(X,q+D));var A=H.readUshort(X,U);U+=2;for(var O=0;O255?-1:J.CFF.glyphByUnicode(X,J.CFF.tableSE[U])},J.CFF.readEncoding=function(X,U,H){J._bin;var q=[".notdef"],F=X[U];if(U++,F!=0)throw"error: unknown encoding format: "+F;var D=X[U];U++;for(var A=0;A>4,I=15&j;if(g!=15&&R.push(g),I!=15&&R.push(I),I==15)break}for(var C="",k=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],_=0;_=D.xMax||D.yMin>=D.yMax)return null;if(D.noc>0){D.endPts=[];for(var A=0;A=1&&A.fmt<=2){L=F.readUshort(X,H),H+=2;var B=F.readUshort(X,H);H+=2;var w=J._lctf.numOfOnes(L),R=J._lctf.numOfOnes(B);if(A.fmt==1){A.pairsets=[];var j=F.readUshort(X,H);H+=2;for(var g=0;g=1&&A.fmt<=2){if(A.fmt==1)A.delta=F.readShort(X,H),H+=2;else if(A.fmt==2){var L=F.readUshort(X,H);H+=2,A.newg=F.readUshorts(X,H,L),H+=2*A.newg.length}}else if(U==2&&A.fmt==1){L=F.readUshort(X,H),H+=2,A.seqs=[];for(var B=0;B>>8;if((w&=15)!=0)throw"unknown kern table format: "+w;U=J.kern.readFormat0(X,U,O)}return O},J.kern.parseV1=function(X,U,H,q){var F=J._bin;F.readFixed(X,U),U+=4;var D=F.readUint(X,U);U+=4;for(var A={glyph1:[],rval:[]},O=0;O>>8;if((B&=15)!=0)throw"unknown kern table format: "+B;U=J.kern.readFormat0(X,U,A)}return A},J.kern.readFormat0=function(X,U,H){var q=J._bin,F=-1,D=q.readUshort(X,U);U+=2,q.readUshort(X,U),U+=2,q.readUshort(X,U),U+=2,q.readUshort(X,U),U+=2;for(var A=0;A=F.map.length?0:F.map[U];if(F.format==4){for(var D=-1,A=0;AU)return 0;return 65535&(F.idRangeOffset[D]!=0?F.glyphIdArray[U-F.startCount[D]+(F.idRangeOffset[D]>>1)-(F.idRangeOffset.length-D)]:U+F.idDelta[D])}if(F.format==12){if(U>F.groups[F.groups.length-1][1])return 0;for(A=0;A-1?J.U._simpleGlyph(q,H):J.U._compoGlyph(q,U,H))},J.U._simpleGlyph=function(X,U){for(var H=0;HF)){for(var j=!0,g=0,I=0;IF)){for(j=!0,I=0;I>1,D.length=0,O=!0;else if(P=="o3"||P=="o23")D.length%2!=0&&!O&&(L=D.shift()+q.nominalWidthX),A+=D.length>>1,D.length=0,O=!0;else if(P=="o4")D.length>1&&!O&&(L=D.shift()+q.nominalWidthX,O=!0),B&&J.U.P.closePath(F),j+=D.pop(),J.U.P.moveTo(F,R,j),B=!0;else if(P=="o5")for(;D.length>0;)R+=D.shift(),j+=D.shift(),J.U.P.lineTo(F,R,j);else if(P=="o6"||P=="o7")for(var c=D.length,x=P=="o6",l=0;lMath.abs(y-j)?R=T+D.shift():j=y+D.shift(),J.U.P.curveTo(F,g,I,C,k,v,f),J.U.P.curveTo(F,_,h,T,y,R,j));else if(P=="o14"){if(D.length>0&&!O&&(L=D.shift()+H.nominalWidthX,O=!0),D.length==4){var N0=D.shift(),n=D.shift(),u=D.shift(),M=D.shift(),$=J.CFF.glyphBySE(H,u),E=J.CFF.glyphBySE(H,M);J.U._drawCFF(H.CharStrings[$],U,H,q,F),U.x=N0,U.y=n,J.U._drawCFF(H.CharStrings[E],U,H,q,F)}B&&(J.U.P.closePath(F),B=!1)}else if(P=="o19"||P=="o20")D.length%2!=0&&!O&&(L=D.shift()+q.nominalWidthX),A+=D.length>>1,D.length=0,O=!0,w+=A+7>>3;else if(P=="o21")D.length>2&&!O&&(L=D.shift()+q.nominalWidthX,O=!0),j+=D.pop(),R+=D.pop(),B&&J.U.P.closePath(F),J.U.P.moveTo(F,R,j),B=!0;else if(P=="o22")D.length>1&&!O&&(L=D.shift()+q.nominalWidthX,O=!0),R+=D.pop(),B&&J.U.P.closePath(F),J.U.P.moveTo(F,R,j),B=!0;else if(P=="o25"){for(;D.length>6;)R+=D.shift(),j+=D.shift(),J.U.P.lineTo(F,R,j);g=R+D.shift(),I=j+D.shift(),C=g+D.shift(),k=I+D.shift(),R=C+D.shift(),j=k+D.shift(),J.U.P.curveTo(F,g,I,C,k,R,j)}else if(P=="o26")for(D.length%2&&(R+=D.shift());D.length>0;)g=R,I=j+D.shift(),R=C=g+D.shift(),j=(k=I+D.shift())+D.shift(),J.U.P.curveTo(F,g,I,C,k,R,j);else if(P=="o27")for(D.length%2&&(j+=D.shift());D.length>0;)I=j,C=(g=R+D.shift())+D.shift(),k=I+D.shift(),R=C+D.shift(),j=k,J.U.P.curveTo(F,g,I,C,k,R,j);else if(P=="o10"||P=="o29"){var m=P=="o10"?q:H;if(D.length==0)console.debug("error: empty stack");else{var b=D.pop(),o=m.Subrs[b+m.Bias];U.x=R,U.y=j,U.nStems=A,U.haveWidth=O,U.width=L,U.open=B,J.U._drawCFF(o,U,H,q,F),R=U.x,j=U.y,A=U.nStems,O=U.haveWidth,L=U.width,B=U.open}}else if(P=="o30"||P=="o31"){var p=D.length,i=(U0=0,P=="o31");for(U0+=p-(c=-3&p);U0>>1|(21845&B)<<1;w=(61680&(w=(52428&w)>>>2|(13107&w)<<2))>>>4|(3855&w)<<4,L[B]=((65280&w)>>>8|(255&w)<<8)>>>1}var R=function(P,c,x){for(var l=P.length,S=0,U0=new z(c);S>>u]=M}else for(N0=new z(l),S=0;S>>15-P[S]);return N0},j=new J(288);for(B=0;B<144;++B)j[B]=8;for(B=144;B<256;++B)j[B]=9;for(B=256;B<280;++B)j[B]=7;for(B=280;B<288;++B)j[B]=8;var g=new J(32);for(B=0;B<32;++B)g[B]=5;var I=R(j,9,1),C=R(g,5,1),k=function(P){for(var c=P[0],x=1;xc&&(c=P[x]);return c},_=function(P,c,x){var l=c/8|0;return(P[l]|P[l+1]<<8)>>(7&c)&x},h=function(P,c){var x=c/8|0;return(P[x]|P[x+1]<<8|P[x+2]<<16)>>(7&c)},T=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],y=function(P,c,x){var l=Error(c||T[P]);if(l.code=P,Error.captureStackTrace&&Error.captureStackTrace(l,y),!x)throw l;return l},v=function(P,c,x){var l=P.length;if(!l||x&&!x.l&&l<5)return c||new J(0);var S=!c||x,U0=!x||x.i;x||(x={}),c||(c=new J(3*l));var N0,n=function(O0){var p0=c.length;if(O0>p0){var c0=new J(Math.max(2*p0,O0));c0.set(c),c=c0}},u=x.f||0,M=x.p||0,$=x.b||0,E=x.l,m=x.d,b=x.m,o=x.n,p=8*l;do{if(!E){x.f=u=_(P,M,1);var i=_(P,M+1,3);if(M+=3,!i){var e=P[(X0=((N0=M)/8|0)+(7&N0&&1)+4)-4]|P[X0-3]<<8,G0=X0+e;if(G0>l){U0&&y(0);break}S&&n($+e),c.set(P.subarray(X0,G0),$),x.b=$+=e,x.p=M=8*G0;continue}if(i==1)E=I,m=C,b=9,o=5;else if(i==2){var a=_(P,M,31)+257,t=_(P,M+10,15)+4,w0=a+_(P,M+5,31)+1;M+=14;for(var H0=new J(w0),Z0=new J(19),q0=0;q0>>4)<16)H0[q0++]=X0;else{var M0=0,K0=0;for(X0==16?(K0=3+_(P,M,3),M+=2,M0=H0[q0-1]):X0==17?(K0=3+_(P,M,7),M+=3):X0==18&&(K0=11+_(P,M,127),M+=7);K0--;)H0[q0++]=M0}}var A0=H0.subarray(0,a),J0=H0.subarray(a);b=k(A0),o=k(J0),E=R(A0,b,1),m=R(J0,o,1)}else y(1);if(M>p){U0&&y(0);break}}S&&n($+131072);for(var h0=(1<>>4;if((M+=15&M0)>p){U0&&y(0);break}if(M0||y(2),L0<256)c[$++]=L0;else{if(L0==256){W0=M,E=null;break}var R0=L0-254;if(L0>264){var b0=X[q0=L0-257];R0=_(P,M,(1<>>4;if(i0||y(3),M+=15&i0,J0=O[$0],$0>3)b0=U[$0],J0+=h(P,M)&(1<p){U0&&y(0);break}S&&n($+131072);for(var k0=$+R0;$O0.length)&&(c0=O0.length);var z1=new(O0 instanceof z?z:O0 instanceof G?G:J)(c0-p0);return z1.set(O0.subarray(p0,c0)),z1}(c,0,$)},f=new J(0),Q0=typeof TextDecoder<"u"&&new TextDecoder;try{Q0.decode(f,{stream:!0})}catch(P){}return Q.convert_streams=function(P){var c=new DataView(P),x=0;function l(){var a=c.getUint16(x);return x+=2,a}function S(){var a=c.getUint32(x);return x+=4,a}function U0(a){e.setUint16(G0,a),G0+=2}function N0(a){e.setUint32(G0,a),G0+=4}for(var n={signature:S(),flavor:S(),length:S(),numTables:l(),reserved:l(),totalSfntSize:S(),majorVersion:l(),minorVersion:l(),metaOffset:S(),metaLength:S(),metaOrigLength:S(),privOffset:S(),privLength:S()},u=0;Math.pow(2,u)<=n.numTables;)u++;u--;for(var M=16*Math.pow(2,u),$=16*n.numTables-M,E=12,m=[],b=0;b{let[P,c]=Q0.split("+");P=parseInt(P,36),c=c?parseInt(c,36):0,A.set(f+=P,y[v]);for(let x=c;x--;)A.set(++f,y[v])})}}return A.get(T)||32}let L=1,B=2,w=3,R=4,j=[null,"isol","init","fina","medi"];function g(T){let y=new Uint8Array(T.length),v=32,f=L,Q0=-1;for(let P=0;P65535)P++}return y}function I(T,y){let v=[];for(let Q0=0;Q065535)Q0++;v.push(Q.U.codeToGlyph(T,P))}let f=T.GSUB;if(f){let{lookupList:Q0,featureList:P}=f,c,x=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws|ccmp)$/,l=[];P.forEach((S)=>{if(x.test(S.tag))for(let U0=0;U0=0;l--)if(y[l]!==-1&&(!x||x(y[l])))return l;return-1}function P(x){return k(T,x)===1}function c(x,l){for(let S=0;S<3;S++)v[l*3+S]+=x[S]||0}}function k(T,y){let v=T.GDEF&&T.GDEF.glyphClassDef;return v?Q.U._getGlyphClass(y,v):0}function _(...T){for(let y=0;y0},forEachGlyph(x,l,S,U0){let N0=0,n=1/c.unitsPerEm*l,u=I(T,x),M=0,$=C(T,u);return u.forEach((E,m)=>{if(E!==-1){let b=y[E];if(!b){let{cmds:o,crds:p}=Q.U.glyphToPath(T,E),i="",e=0;for(let H0=0,Z0=o.length;H01?",":"")+p[e++]}let G0,a,t,w0;if(p.length){G0=a=1/0,t=w0=-1/0;for(let H0=0,Z0=p.length;H0t)t=q0;if(B0>w0)w0=B0}}else G0=t=a=w0=0;b=y[E]={index:E,advanceWidth:T.hmtx.aWidth[E],xMin:G0,yMin:a,xMax:t,yMax:w0,path:i}}if(U0.call(null,b,N0+$[m*3]*n,$[m*3+1]*n,M),N0+=$[m*3+2]*n,S)N0+=S*l}M+=x.codePointAt(M)>65535?2:1}),N0}};return c}return function(y){let v=new Uint8Array(y,0,4),f=Q._bin.readASCII(v,0,4);if(f==="wOFF")y=J(y);else if(f==="wOF2")throw Error("woff2 fonts not supported");return h(Q.parse(y)[0])}}var qH=GQ({name:"Typr Font Parser",dependencies:[WH,GH,HH],init(Q,J,z){let G=Q(),X=J();return z(G,X)}});/*! Custom bundle of @unicode-font-resolver/client v1.0.2 (https://github.com/lojjic/unicode-font-resolver) for use in Troika text rendering. Original MIT license applies */function FH(){return function(Q){var J=function(){this.buckets=new Map};J.prototype.add=function(C){var k=C>>5;this.buckets.set(k,(this.buckets.get(k)||0)|1<<(31&C))},J.prototype.has=function(C){var k=this.buckets.get(C>>5);return k!==void 0&&(k&1<<(31&C))!=0},J.prototype.serialize=function(){var C=[];return this.buckets.forEach(function(k,_){C.push((+_).toString(36)+":"+k.toString(36))}),C.join(",")},J.prototype.deserialize=function(C){var k=this;this.buckets.clear(),C.split(",").forEach(function(_){var h=_.split(":");k.buckets.set(parseInt(h[0],36),parseInt(h[1],36))})};var z=Math.pow(2,8),G=z-1,X=~G;function U(C){var k=function(h){return h&X}(C).toString(16),_=function(h){return(h&X)+z-1}(C).toString(16);return"codepoint-index/plane"+(C>>16)+"/"+k+"-"+_+".json"}function H(C,k){var _=C&G,h=k.codePointAt(_/6|0);return((h=(h||48)-48)&1<<_%6)!=0}function q(C,k){var _;(_=C,_.replace(/U\+/gi,"").replace(/^,+|,+$/g,"").split(/,+/).map(function(h){return h.split("-").map(function(T){return parseInt(T.trim(),16)})})).forEach(function(h){var T=h[0],y=h[1];y===void 0&&(y=T),k(T,y)})}function F(C,k){q(C,function(_,h){for(var T=_;T<=h;T++)k(T)})}var D={},A={},O=new WeakMap,L="https://cdn.jsdelivr.net/gh/lojjic/unicode-font-resolver@v1.0.1/packages/data";function B(C){var k=O.get(C);return k||(k=new J,F(C.ranges,function(_){return k.add(_)}),O.set(C,k)),k}var w,R=new Map;function j(C,k,_){return C[k]?k:C[_]?_:function(h){for(var T in h)return T}(C)}function g(C,k){var _=k;if(!C.includes(_)){_=1/0;for(var h=0;h65535&&(M++,u=M)},u=0;u65535&&(E++,$=E)},$=0;$65535&&(E++,P[E]=P[E-1])}return{fontUrls:Array.from(Q0.keys()),chars:P}})},Object.defineProperty(Q,"__esModule",{value:!0}),Q}({})}function DH(Q,J){let z=Object.create(null),G=Object.create(null);function X(H,q){let F=(D)=>{console.error(`Failure loading font ${H}`,D)};try{let D=new XMLHttpRequest;D.open("get",H,!0),D.responseType="arraybuffer",D.onload=function(){if(D.status>=400)F(Error(D.statusText));else if(D.status>0)try{let A=Q(D.response);A.src=H,q(A)}catch(A){F(A)}},D.onerror=F,D.send()}catch(D){F(D)}}function U(H,q){let F=z[H];if(F)q(F);else if(G[H])G[H].push(q);else G[H]=[q],X(H,(D)=>{D.src=H,z[H]=D,G[H].forEach((A)=>A(D)),delete G[H]})}return function(H,q,{lang:F,fonts:D=[],style:A="normal",weight:O="normal",unicodeFontsURL:L}={}){let B=new Uint8Array(H.length),w=[];if(!H.length)I();let R=new Map,j=[];if(A!=="italic")A="normal";if(typeof O!=="number")O=O==="bold"?700:400;if(D&&!Array.isArray(D))D=[D];if(D=D.slice().filter((k)=>!k.lang||k.lang.test(F)).reverse(),D.length){let T=0;(function y(v=0){for(let f=v,Q0=H.length;f0&&/\s/.test(H[f])){if(B[f]=B[f-1],T===2)j[j.length-1][1]=f}else for(let c=B[f],x=D.length;c<=x;c++)if(c===x){let l=T===2?j[j.length-1]:j[j.length]=[f,f];l[1]=f,T=2}else{B[f]=c;let{src:l,unicodeRange:S}=D[c];if(!S||C(P,S)){let U0=z[l];if(!U0){U(l,()=>{y(f)});return}if(U0.supportsCodePoint(P)){let N0=R.get(U0);if(typeof N0!=="number")N0=w.length,w.push(U0),R.set(U0,N0);B[f]=N0,T=1;break}}}if(P>65535&&f+1H.substring(_[0],_[1]+1)).join(` `);J.getFontsForString(k,{lang:F||void 0,style:A,weight:O,dataUrl:L}).then(({fontUrls:_,chars:h})=>{let T=w.length,y=0;j.forEach((f)=>{for(let Q0=0,P=f[1]-f[0];Q0<=P;Q0++)B[f[0]+Q0]=h[y++]+T;y++});let v=0;_.forEach((f,Q0)=>{U(f,(P)=>{if(w[Q0+T]=P,++v===_.length)I()})})})}else I()}function I(){q({chars:B,fonts:w})}function C(k,_){for(let h=0;h<_.length;h++){let[T,y=T]=_[h];if(T<=k&&k<=y)return!0}return!1}}}var YH=GQ({name:"FontResolver",dependencies:[DH,qH,FH],init(Q,J,z){return Q(J,z())}});function AH(Q,J){let G=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,X="[^\\S\\u00A0]",U=new RegExp("[^\\S\\u00A0]|[\\-\\u007C\\u00AD\\u2010\\u2012-\\u2014\\u2027\\u2056\\u2E17\\u2E40]");function H({text:w,lang:R,fonts:j,style:g,weight:I,preResolvedFonts:C,unicodeFontsURL:k},_){let h=({chars:T,fonts:y})=>{let v,f,Q0=[];for(let P=0;P-1)console.info("Typesetter: got text with \\r chars; normalizing to \\n"),w=w.replace(/\r\n/g,` `).replace(/\r/g,` `);I=+I,_=+_,T=+T,h=h||"normal",f=+f,H({text:w,lang:j,style:k,weight:C,fonts:typeof R==="string"?[{src:R}]:R,unicodeFontsURL:S,preResolvedFonts:U0},(m)=>{E.fontLoad=O()-$;let b=isFinite(T),o=null,p=null,i=null,e=null,G0=null,a=null,t=null,w0=null,H0=0,Z0=0,q0=Q0!=="nowrap",B0=new Map,r=O(),F0=f,X0=0,s=new L,M0=[s];m.forEach((D0)=>{let{fontObj:W0}=D0,{ascender:L0,descender:R0,unitsPerEm:b0,lineGap:i0,capHeight:$0,xHeight:k0}=W0,O0=B0.get(W0);if(!O0){let j0=I/b0,v0=h==="normal"?(L0-R0+i0)*j0:h*I,v1=(v0-(L0-R0)*j0)/2,m0=Math.min(v0,(L0-R0)*j0),I0=(L0+R0)/2*j0+m0/2;O0={index:B0.size,src:W0.src,fontObj:W0,fontSizeMult:j0,unitsPerEm:b0,ascender:L0*j0,descender:R0*j0,capHeight:$0*j0,xHeight:k0*j0,lineHeight:v0,baseline:-v1-L0*j0,caretTop:I0,caretBottom:I0-m0},B0.set(W0,O0)}let{fontSizeMult:p0}=O0,c0=w.slice(D0.start,D0.end+1),z1,f0;W0.forEachGlyph(c0,I,_,(j0,v0,v1,m0)=>{v0+=X0,m0+=D0.start,z1=v0,f0=j0;let I0=w.charAt(m0),n0=j0.advanceWidth*p0,C0=s.count,V0;if(!("isEmpty"in j0))j0.isWhitespace=!!I0&&new RegExp("[^\\S\\u00A0]").test(I0),j0.canBreakAfter=!!I0&&U.test(I0),j0.isEmpty=j0.xMin===j0.xMax||j0.yMin===j0.yMax||G.test(I0);if(!j0.isWhitespace&&!j0.isEmpty)Z0++;if(q0&&b&&!j0.isWhitespace&&v0+n0+F0>T&&C0){if(s.glyphAt(C0-1).glyphObj.canBreakAfter)V0=new L,F0=-v0;else for(let U1=C0;U1--;)if(U1===0&&P==="break-word"){V0=new L,F0=-v0;break}else if(s.glyphAt(U1).glyphObj.canBreakAfter){V0=s.splitAt(U1+1);let a0=V0.glyphAt(0).x;F0-=a0;for(let e0=V0.count;e0--;)V0.glyphAt(e0).x-=a0;break}if(V0)s.isSoftWrapped=!0,s=V0,M0.push(s),H0=T}let E0=s.glyphAt(s.count);if(E0.glyphObj=j0,E0.x=v0+F0,E0.y=v1,E0.width=n0,E0.charIndex=m0,E0.fontData=O0,I0===` `)s=new L,M0.push(s),F0=-(v0+n0+_*I)+f}),X0=z1+f0.advanceWidth*p0+_*I});let K0=0;M0.forEach((D0)=>{let W0=!0;for(let L0=D0.count;L0--;){let R0=D0.glyphAt(L0);if(W0&&!R0.glyphObj.isWhitespace){if(D0.width=R0.x+R0.width,D0.width>H0)H0=D0.width;W0=!1}let{lineHeight:b0,capHeight:i0,xHeight:$0,baseline:k0}=R0.fontData;if(b0>D0.lineHeight)D0.lineHeight=b0;let O0=k0-D0.baseline;if(O0<0)D0.baseline+=O0,D0.cap+=O0,D0.ex+=O0;D0.cap=Math.max(D0.cap,D0.baseline+i0),D0.ex=Math.max(D0.ex,D0.baseline+$0)}D0.baseline-=K0,D0.cap-=K0,D0.ex-=K0,K0+=D0.lineHeight});let A0=0,J0=0;if(c){if(typeof c==="number")A0=-c;else if(typeof c==="string")A0=-H0*(c==="left"?0:c==="center"?0.5:c==="right"?1:D(c))}if(x){if(typeof x==="number")J0=-x;else if(typeof x==="string")J0=x==="top"?0:x==="top-baseline"?-M0[0].baseline:x==="top-cap"?-M0[0].cap:x==="top-ex"?-M0[0].ex:x==="middle"?K0/2:x==="bottom"?K0:x==="bottom-baseline"?-M0[M0.length-1].baseline:D(x)*K0}if(!l){let D0=J.getEmbeddingLevels(w,y);if(o=new Uint16Array(Z0),p=new Uint8Array(Z0),i=new Float32Array(Z0*2),e={},t=[1/0,1/0,-1/0,-1/0],w0=[],N0)a=new Float32Array(w.length*4);if(u)G0=new Uint8Array(Z0*3);let W0=0,L0=-1,R0=-1,b0,i0;if(M0.forEach(($0,k0)=>{let{count:O0,width:p0}=$0;if(O0>0){let c0=0;for(let m0=O0;m0--&&$0.glyphAt(m0).glyphObj.isWhitespace;)c0++;let z1=0,f0=0;if(v==="center")z1=(H0-p0)/2;else if(v==="right")z1=H0-p0;else if(v==="justify"&&$0.isSoftWrapped){let m0=0;for(let I0=O0-c0;I0--;)if($0.glyphAt(I0).glyphObj.isWhitespace)m0++;f0=(H0-p0)/m0}if(f0||z1){let m0=0;for(let I0=0;I0=I0){let U1=E0,a0=E0;for(;a0n0)break;if(a0v0=m0;for(let m0=0;m01)A(a,L0,e0);L0=V0}if(u){let{charIndex:V0}=I0;while(V0>R0)if(R0++,u.hasOwnProperty(R0))i0=u[R0]}if(!v0.isWhitespace&&!v0.isEmpty){let V0=W0++,{fontSizeMult:E0,src:U1,index:a0}=I0.fontData,e0=e[U1]||(e[U1]={});if(!e0[n0])e0[n0]={path:v0.path,pathBounds:[v0.xMin,v0.yMin,v0.xMax,v0.yMax]};let X1=I0.x+A0,M1=I0.y+$0.baseline+J0;i[V0*2]=X1,i[V0*2+1]=M1;let O1=X1+v0.xMin*E0,h1=M1+v0.yMin*E0,n1=X1+v0.xMax*E0,b1=M1+v0.yMax*E0;if(O1t[2])t[2]=n1;if(b1>t[3])t[3]=b1;if(V0%n===0)b0={start:V0,end:V0,rect:[1/0,1/0,-1/0,-1/0]},w0.push(b0);b0.end++;let W1=b0.rect;if(O1W1[2])W1[2]=n1;if(b1>W1[3])W1[3]=b1;if(o[V0]=n0,p[V0]=a0,u){let x1=V0*3;G0[x1]=i0>>16&255,G0[x1+1]=i0>>8&255,G0[x1+2]=i0&255}}}}}),a){let $0=w.length-L0;if($0>1)A(a,L0,$0)}}let h0=[];B0.forEach(({index:D0,src:W0,unitsPerEm:L0,ascender:R0,descender:b0,lineHeight:i0,capHeight:$0,xHeight:k0})=>{h0[D0]={src:W0,unitsPerEm:L0,ascender:R0,descender:b0,lineHeight:i0,capHeight:$0,xHeight:k0}}),E.typesetting=O()-r,M({glyphIds:o,glyphFontIndices:p,glyphPositions:i,glyphData:e,fontData:h0,caretPositions:a,glyphColors:G0,chunkedBounds:w0,fontSize:I,topBaseline:J0+M0[0].baseline,blockBounds:[A0,J0-K0,A0+H0,J0],visibleBounds:t,timings:E})})}function F(w,R){q({...w,metricsOnly:!0},(j)=>{let[g,I,C,k]=j.blockBounds;R({width:C-g,height:k-I})})}function D(w){let R=w.match(/^([\d.]+)%$/),j=R?parseFloat(R[1]):NaN;return isNaN(j)?0:j/100}function A(w,R,j){let g=w[R*4],I=w[R*4+1],C=w[R*4+2],k=w[R*4+3],_=(I-g)/j;for(let h=0;h{return Object.defineProperty(w,R,{get(){return this.data[this.index*B.length+j]},set(I){this.data[this.index*B.length+j]=I}}),w},{data:null,index:0}),{typeset:q,measure:F}}var FQ=()=>(self.performance||Date).now(),TZ=o6(),C4;function OH(Q,J,z,G,X,U,H,q,F,D,A=!0){if(!A)return y4(Q,J,z,G,X,U,H,q,F,D);return BH(Q,J,z,G,X,U,H,q,F,D).then(null,(O)=>{if(!C4)console.warn("WebGL SDF generation failed, falling back to JS",O),C4=!0;return y4(Q,J,z,G,X,U,H,q,F,D)})}var SZ=[],NH=5,z7=0;function i4(){let Q=FQ();while(SZ.length&&FQ()-Q{return new Promise((J,z)=>{if(SZ.push(()=>{let G=FQ();try{TZ.webgl.generateIntoCanvas(...Q),J({timing:FQ()-G})}catch(X){z(X)}}),!z7)z7=setTimeout(i4,0)})},LH=4,jH=2000,E4={},wH=0;function y4(Q,J,z,G,X,U,H,q,F,D){let A="TroikaTextSDFGenerator_JS_"+wH++%LH,O=E4[A];if(!O)O=E4[A]={workerModule:GQ({name:A,workerId:A,dependencies:[o6,FQ],init(L,B){let w=L().javascript.generate;return function(...R){let j=B();return{textureData:w(...R),timing:B()-j}}},getTransferables(L){return[L.textureData.buffer]}}),requests:0,idleTimer:null};return O.requests++,clearTimeout(O.idleTimer),O.workerModule(Q,J,z,G,X,U).then(({textureData:L,timing:B})=>{let w=FQ(),R=new Uint8Array(L.length*4);for(let j=0;j{w4(A)},jH);return{timing:B}})}function MH(Q){if(!Q._warm)TZ.webgl.isSupported(Q),Q._warm=!0}var VH=TZ.webglUtils.resizeWebGLCanvasWithoutClearing,qQ={defaultFontURL:null,unicodeFontsURL:null,sdfGlyphSize:64,sdfMargin:0.0625,sdfExponent:9,textureWidth:2048,useWorker:!0},RH=new bJ,$H=!1;function oQ(){return(self.performance||Date).now()}var h4=Object.create(null);function kH(Q,J){$H=!0,Q=IH({},Q);let z=oQ(),{defaultFontURL:G}=qQ,X=[];if(G)X.push({label:"default",src:b4(G)});if(Q.font)X.push({label:"user",src:b4(Q.font)});if(Q.font=X,Q.text=""+Q.text,Q.sdfGlyphSize=Q.sdfGlyphSize||qQ.sdfGlyphSize,Q.unicodeFontsURL=Q.unicodeFontsURL||qQ.unicodeFontsURL,Q.colorRanges!=null){let B={};for(let w in Q.colorRanges)if(Q.colorRanges.hasOwnProperty(w)){let R=Q.colorRanges[w];if(typeof R!=="number")R=RH.set(R).getHex();B[w]=R}Q.colorRanges=B}Object.freeze(Q);let{textureWidth:U,sdfExponent:H}=qQ,{sdfGlyphSize:q}=Q,F=U/q*4,D=h4[q];if(!D){let B=document.createElement("canvas");B.width=U,B.height=q*256/F,D=h4[q]={glyphCount:0,sdfGlyphSize:q,sdfCanvas:B,sdfTexture:new g4(B,void 0,void 0,void 0,Z7,Z7),contextLost:!1,glyphsByFont:new Map},D.sdfTexture.generateMipmaps=!1,PH(D)}let{sdfTexture:A,sdfCanvas:O}=D;(qQ.useWorker?t4:_H)(Q).then((B)=>{let{glyphIds:w,glyphFontIndices:R,fontData:j,glyphPositions:g,fontSize:I,timings:C}=B,k=[],_=new Float32Array(w.length*4),h=0,T=0,y=oQ(),v=j.map((x)=>{let l=D.glyphsByFont.get(x.src);if(!l)D.glyphsByFont.set(x.src,l=new Map);return l});w.forEach((x,l)=>{let S=R[l],{src:U0,unitsPerEm:N0}=j[S],n=v[S].get(x);if(!n){let{path:m,pathBounds:b}=B.glyphData[U0][x],o=Math.max(b[2]-b[0],b[3]-b[1])/q*(qQ.sdfMargin*q+0.5),p=D.glyphCount++,i=[b[0]-o,b[1]-o,b[2]+o,b[3]+o];v[S].set(x,n={path:m,atlasIndex:p,sdfViewBox:i}),k.push(n)}let{sdfViewBox:u}=n,M=g[T++],$=g[T++],E=I/N0;_[h++]=M+u[0]*E,_[h++]=$+u[1]*E,_[h++]=M+u[2]*E,_[h++]=$+u[3]*E,w[l]=n.atlasIndex}),C.quads=(C.quads||0)+(oQ()-y);let f=oQ();C.sdf={};let Q0=O.height,P=Math.ceil(D.glyphCount/F),c=Math.pow(2,Math.ceil(Math.log2(P*q)));if(c>Q0)console.info(`Increasing SDF texture size ${Q0}->${c}`),VH(O,U,c),A.dispose();Promise.all(k.map((x)=>n4(x,D,Q.gpuAccelerateSDF).then(({timing:l})=>{C.sdf[x.atlasIndex]=l}))).then(()=>{if(k.length&&!D.contextLost)o4(D),A.needsUpdate=!0;C.sdfTotal=oQ()-f,C.total=oQ()-z,J(Object.freeze({parameters:Q,sdfTexture:A,sdfGlyphSize:q,sdfExponent:H,glyphBounds:_,glyphAtlasIndices:w,glyphColors:B.glyphColors,caretPositions:B.caretPositions,chunkedBounds:B.chunkedBounds,ascender:B.ascender,descender:B.descender,lineHeight:B.lineHeight,capHeight:B.capHeight,xHeight:B.xHeight,topBaseline:B.topBaseline,blockBounds:B.blockBounds,visibleBounds:B.visibleBounds,timings:B.timings}))})}),Promise.resolve().then(()=>{if(!D.contextLost)MH(O)})}function n4({path:Q,atlasIndex:J,sdfViewBox:z},{sdfGlyphSize:G,sdfCanvas:X,contextLost:U},H){if(U)return Promise.resolve({timing:-1});let{textureWidth:q,sdfExponent:F}=qQ,D=Math.max(z[2]-z[0],z[3]-z[1]),A=Math.floor(J/4),O=A%(q/G)*G,L=Math.floor(A/(q/G))*G,B=J%4;return OH(G,G,Q,z,D,F,X,O,L,B,H)}function PH(Q){let J=Q.sdfCanvas;J.addEventListener("webglcontextlost",(z)=>{console.log("Context Lost",z),z.preventDefault(),Q.contextLost=!0}),J.addEventListener("webglcontextrestored",(z)=>{console.log("Context Restored",z),Q.contextLost=!1;let G=[];Q.glyphsByFont.forEach((X)=>{X.forEach((U)=>{G.push(n4(U,Q,!0))})}),Promise.all(G).then(()=>{o4(Q),Q.sdfTexture.needsUpdate=!0})})}function IH(Q,J){for(let z in J)if(J.hasOwnProperty(z))Q[z]=J[z];return Q}var PZ;function b4(Q){if(!PZ)PZ=typeof document>"u"?{}:document.createElement("a");return PZ.href=Q,PZ.href}function o4(Q){if(typeof createImageBitmap!=="function"){console.info("Safari<15: applying SDF canvas workaround");let{sdfCanvas:J,sdfTexture:z}=Q,{width:G,height:X}=J,U=Q.sdfCanvas.getContext("webgl"),H=z.image.data;if(!H||H.length!==G*X*4)H=new Uint8Array(G*X*4),z.image={width:G,height:X,data:H},z.flipY=!1,z.isDataTexture=!0;U.readPixels(0,0,G,X,U.RGBA,U.UNSIGNED_BYTE,H)}}var SH=GQ({name:"Typesetter",dependencies:[AH,YH,M4],init(Q,J,z){return Q(J,z())}}),t4=GQ({name:"Typesetter",dependencies:[SH],init(Q){return function(J){return new Promise((z)=>{Q.typeset(J,z)})}},getTransferables(Q){let J=[];for(let z in Q)if(Q[z]&&Q[z].buffer)J.push(Q[z].buffer);return J}}),_H=t4.onMainThread;var x4={};function TH(Q){let J=x4[Q];if(!J)J=x4[Q]=new _Z(1,1,Q,Q).translate(0.5,0.5,0);return J}var CH="aTroikaGlyphBounds",f4="aTroikaGlyphIndex",EH="aTroikaGlyphColor";class r4 extends s4{constructor(){super();this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new p4,this.boundingBox=new U7}computeBoundingSphere(){}computeBoundingBox(){}set detail(Q){if(Q!==this._detail){if(this._detail=Q,typeof Q!=="number"||Q<1)Q=1;let J=TH(Q);["position","normal","uv"].forEach((z)=>{this.attributes[z]=J.attributes[z].clone()}),this.setIndex(J.getIndex().clone())}}get detail(){return this._detail}set curveRadius(Q){if(Q!==this._curveRadius)this._curveRadius=Q,this._updateBounds()}get curveRadius(){return this._curveRadius}updateGlyphs(Q,J,z,G,X){this.updateAttributeData(CH,Q,4),this.updateAttributeData(f4,J,1),this.updateAttributeData(EH,X,3),this._blockBounds=z,this._chunkedBounds=G,this.instanceCount=J.length,this._updateBounds()}_updateBounds(){let Q=this._blockBounds;if(Q){let{curveRadius:J,boundingBox:z}=this;if(J){let{PI:G,floor:X,min:U,max:H,sin:q,cos:F}=Math,D=G/2,A=G*2,O=Math.abs(J),L=Q[0]/O,B=Q[2]/O,w=X((L+D)/A)!==X((B+D)/A)?-O:U(q(L)*O,q(B)*O),R=X((L-D)/A)!==X((B-D)/A)?O:H(q(L)*O,q(B)*O),j=X((L+G)/A)!==X((B+G)/A)?O*2:H(O-F(L)*O,O-F(B)*O);z.min.set(w,Q[1],J<0?-j:0),z.max.set(R,Q[3],J<0?0:j)}else z.min.set(Q[0],Q[1],0),z.max.set(Q[2],Q[3],0);z.getBoundingSphere(this.boundingSphere)}}applyClipRect(Q){let J=this.getAttribute(f4).count,z=this._chunkedBounds;if(z)for(let G=z.length;G--;){J=z[G].end;let X=z[G].rect;if(X[1]Q.y&&X[0]Q.x)break}this.instanceCount=J}updateAttributeData(Q,J,z){let G=this.getAttribute(Q);if(J)if(G&&G.array.length===J.length)G.array.set(J),G.needsUpdate=!0;else this.setAttribute(Q,new l4(J,z)),delete this._maxInstanceCount,this.dispose();else if(G)this.deleteAttribute(Q)}}var yH=` uniform vec2 uTroikaSDFTextureSize; uniform float uTroikaSDFGlyphSize; uniform vec4 uTroikaTotalBounds; uniform vec4 uTroikaClipRect; uniform mat3 uTroikaOrient; uniform bool uTroikaUseGlyphColors; uniform float uTroikaEdgeOffset; uniform float uTroikaBlurRadius; uniform vec2 uTroikaPositionOffset; uniform float uTroikaCurveRadius; attribute vec4 aTroikaGlyphBounds; attribute float aTroikaGlyphIndex; attribute vec3 aTroikaGlyphColor; varying vec2 vTroikaGlyphUV; varying vec4 vTroikaTextureUVBounds; varying float vTroikaTextureChannel; varying vec3 vTroikaGlyphColor; varying vec2 vTroikaGlyphDimensions; `,hH=` vec4 bounds = aTroikaGlyphBounds; bounds.xz += uTroikaPositionOffset.x; bounds.yw -= uTroikaPositionOffset.y; vec4 outlineBounds = vec4( bounds.xy - uTroikaEdgeOffset - uTroikaBlurRadius, bounds.zw + uTroikaEdgeOffset + uTroikaBlurRadius ); vec4 clippedBounds = vec4( clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw), clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw) ); vec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy); position.xy = mix(bounds.xy, bounds.zw, clippedXY); uv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy); float rad = uTroikaCurveRadius; if (rad != 0.0) { float angle = position.x / rad; position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad); normal.xz = vec2(sin(angle), cos(angle)); } position = uTroikaOrient * position; normal = uTroikaOrient * normal; vTroikaGlyphUV = clippedXY.xy; vTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]); float txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize; vec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize; vec2 txStartUV = txUvPerSquare * vec2( mod(floor(aTroikaGlyphIndex / 4.0), txCols), floor(floor(aTroikaGlyphIndex / 4.0) / txCols) ); vTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare); vTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0); `,bH=` uniform sampler2D uTroikaSDFTexture; uniform vec2 uTroikaSDFTextureSize; uniform float uTroikaSDFGlyphSize; uniform float uTroikaSDFExponent; uniform float uTroikaEdgeOffset; uniform float uTroikaFillOpacity; uniform float uTroikaBlurRadius; uniform vec3 uTroikaStrokeColor; uniform float uTroikaStrokeWidth; uniform float uTroikaStrokeOpacity; uniform bool uTroikaSDFDebug; varying vec2 vTroikaGlyphUV; varying vec4 vTroikaTextureUVBounds; varying float vTroikaTextureChannel; varying vec2 vTroikaGlyphDimensions; float troikaSdfValueToSignedDistance(float alpha) { // Inverse of exponential encoding in webgl-sdf-generator float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y); float absDist = (1.0 - pow(2.0 * (alpha > 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension; float signedDist = absDist * (alpha > 0.5 ? -1.0 : 1.0); return signedDist; } float troikaGlyphUvToSdfValue(vec2 glyphUV) { vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV); vec4 rgba = texture2D(uTroikaSDFTexture, textureUV); float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1 return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a; } float troikaGlyphUvToDistance(vec2 uv) { return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv)); } float troikaGetAADist() { #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300 return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5; #else return vTroikaGlyphDimensions.x / 64.0; #endif } float troikaGetFragDistValue() { vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize); float distance = troikaGlyphUvToDistance(clampedGlyphUV); // Extrapolate distance when outside bounds: distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions); return distance; } float troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) { #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL) float alpha = step(-distanceOffset, -distance); #else float alpha = smoothstep( distanceOffset + aaDist, distanceOffset - aaDist, distance ); #endif return alpha; } `,xH=` float aaDist = troikaGetAADist(); float fragDistance = troikaGetFragDistValue(); float edgeAlpha = uTroikaSDFDebug ? troikaGlyphUvToSdfValue(vTroikaGlyphUV) : troikaGetEdgeAlpha(fragDistance, uTroikaEdgeOffset, max(aaDist, uTroikaBlurRadius)); #if !defined(IS_DEPTH_MATERIAL) && !defined(IS_DISTANCE_MATERIAL) vec4 fillRGBA = gl_FragColor; fillRGBA.a *= uTroikaFillOpacity; vec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity); if (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb; gl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep( -uTroikaStrokeWidth - aaDist, -uTroikaStrokeWidth + aaDist, fragDistance )); gl_FragColor.a *= edgeAlpha; #endif if (edgeAlpha == 0.0) { discard; } `;function fH(Q){let J=kZ(Q,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new nQ},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new K7(0,0,0,0)},uTroikaClipRect:{value:new K7(0,0,0,0)},uTroikaEdgeOffset:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new nQ},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new bJ},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new d4},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:yH,vertexTransform:hH,fragmentDefs:bH,fragmentColorTransform:xH,customRewriter({vertexShader:z,fragmentShader:G}){let X=/\buniform\s+vec3\s+diffuse\b/;if(X.test(G)){if(G=G.replace(X,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),!X.test(z))z=z.replace(e6,`uniform vec3 diffuse; $& vTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse; `)}return{vertexShader:z,fragmentShader:G}}});return J.transparent=!0,J.forceSinglePass=!0,Object.defineProperties(J,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),J}var X7=new c4({color:16777215,side:r6,transparent:!0}),v4=8421504,u4=new a6,IZ=new CJ,Q7=new CJ,yJ=[],vH=new CJ,J7="+x+y";function m4(Q){return Array.isArray(Q)?Q[0]:Q}var a4=()=>{let Q=new EJ(new _Z(1,1),X7);return a4=()=>Q,Q},e4=()=>{let Q=new EJ(new _Z(1,1,32,1),X7);return e4=()=>Q,Q},uH={type:"syncstart"},mH={type:"synccomplete"},Qz=["font","fontSize","fontStyle","fontWeight","lang","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],dH=Qz.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");class l0 extends EJ{constructor(){let Q=new r4;super(Q,null);this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.unicodeFontsURL=null,this.fontSize=0.1,this.fontWeight="normal",this.fontStyle="normal",this.lang=null,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=v4,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=J7,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(Q){if(this._needsSync)if(this._needsSync=!1,this._isSyncing)(this._queuedSyncs||(this._queuedSyncs=[])).push(Q);else this._isSyncing=!0,this.dispatchEvent(uH),kH({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||0.1,fontWeight:this.fontWeight||"normal",fontStyle:this.fontStyle||"normal",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},(J)=>{this._isSyncing=!1,this._textRenderInfo=J,this.geometry.updateGlyphs(J.glyphBounds,J.glyphAtlasIndices,J.blockBounds,J.chunkedBounds,J.glyphColors);let z=this._queuedSyncs;if(z)this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{z.forEach((G)=>G&&G())});if(this.dispatchEvent(mH),Q)Q()})}onBeforeRender(Q,J,z,G,X,U){if(this.sync(),X.isTroikaTextMaterial)this._prepareForRender(X)}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}createDerivedMaterial(Q){return fH(Q)}get material(){let Q=this._derivedMaterial,J=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=X7.clone());if(!Q||!Q.isDerivedFrom(J))Q=this._derivedMaterial=this.createDerivedMaterial(J),J.addEventListener("dispose",function z(){J.removeEventListener("dispose",z),Q.dispose()});if(this.hasOutline()){let z=Q._outlineMtl;if(!z)z=Q._outlineMtl=Object.create(Q,{id:{value:Q.id+0.1}}),z.isTextOutlineMaterial=!0,z.depthWrite=!1,z.map=null,Q.addEventListener("dispose",function G(){Q.removeEventListener("dispose",G),z.dispose()});return[z,Q]}else return Q}set material(Q){if(Q&&Q.isTroikaTextMaterial)this._derivedMaterial=Q,this._baseMaterial=Q.baseMaterial;else this._baseMaterial=Q}hasOutline(){return!!(this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY)}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(Q){this.geometry.detail=Q}get curveRadius(){return this.geometry.curveRadius}set curveRadius(Q){this.geometry.curveRadius=Q}get customDepthMaterial(){return m4(this.material).getDepthMaterial()}set customDepthMaterial(Q){}get customDistanceMaterial(){return m4(this.material).getDistanceMaterial()}set customDistanceMaterial(Q){}_prepareForRender(Q){let{isTextOutlineMaterial:J,uniforms:z}=Q,G=this.textRenderInfo;if(G){let{sdfTexture:H,blockBounds:q}=G;z.uTroikaSDFTexture.value=H,z.uTroikaSDFTextureSize.value.set(H.image.width,H.image.height),z.uTroikaSDFGlyphSize.value=G.sdfGlyphSize,z.uTroikaSDFExponent.value=G.sdfExponent,z.uTroikaTotalBounds.value.fromArray(q),z.uTroikaUseGlyphColors.value=!J&&!!G.glyphColors;let F=0,D=0,A=0,O,L,B,w=0,R=0;if(J){let{outlineWidth:g,outlineOffsetX:I,outlineOffsetY:C,outlineBlur:k,outlineOpacity:_}=this;F=this._parsePercent(g)||0,D=Math.max(0,this._parsePercent(k)||0),O=_,w=this._parsePercent(I)||0,R=this._parsePercent(C)||0}else{if(A=Math.max(0,this._parsePercent(this.strokeWidth)||0),A){if(B=this.strokeColor,z.uTroikaStrokeColor.value.set(B==null?v4:B),L=this.strokeOpacity,L==null)L=1}O=this.fillOpacity}z.uTroikaEdgeOffset.value=F,z.uTroikaPositionOffset.value.set(w,R),z.uTroikaBlurRadius.value=D,z.uTroikaStrokeWidth.value=A,z.uTroikaStrokeOpacity.value=L,z.uTroikaFillOpacity.value=O==null?1:O,z.uTroikaCurveRadius.value=this.curveRadius||0;let j=this.clipRect;if(j&&Array.isArray(j)&&j.length===4)z.uTroikaClipRect.value.fromArray(j);else{let g=(this.fontSize||0.1)*100;z.uTroikaClipRect.value.set(q[0]-g,q[1]-g,q[2]+g,q[3]+g)}this.geometry.applyClipRect(z.uTroikaClipRect.value)}z.uTroikaSDFDebug.value=!!this.debugSDF,Q.polygonOffset=!!this.depthOffset,Q.polygonOffsetFactor=Q.polygonOffsetUnits=this.depthOffset||0;let X=J?this.outlineColor||0:this.color;if(X==null)delete Q.color;else{let H=Q.hasOwnProperty("color")?Q.color:Q.color=new bJ;if(X!==H._input||typeof X==="object")H.set(H._input=X)}let U=this.orientation||J7;if(U!==Q._orientation){let H=z.uTroikaOrient.value;U=U.replace(/[^-+xyz]/g,"");let q=U!==J7&&U.match(/^([-+])([xyz])([-+])([xyz])$/);if(q){let[,F,D,A,O]=q;IZ.set(0,0,0)[D]=F==="-"?1:-1,Q7.set(0,0,0)[O]=A==="-"?-1:1,u4.lookAt(vH,IZ.cross(Q7),Q7),H.setFromMatrix4(u4)}else H.identity();Q._orientation=U}}_parsePercent(Q){if(typeof Q==="string"){let J=Q.match(/^(-?[\d.]+)%$/),z=J?parseFloat(J[1]):NaN;Q=(isNaN(z)?0:z/100)*this.fontSize}return Q}localPositionToTextCoords(Q,J=new nQ){J.copy(Q);let z=this.curveRadius;if(z)J.x=Math.atan2(Q.x,Math.abs(z)-Math.abs(Q.z))*Math.abs(z);return J}worldPositionToTextCoords(Q,J=new nQ){return IZ.copy(Q),this.localPositionToTextCoords(this.worldToLocal(IZ),J)}raycast(Q,J){let{textRenderInfo:z,curveRadius:G}=this;if(z){let X=z.blockBounds,U=G?e4():a4(),H=U.geometry,{position:q,uv:F}=H.attributes;for(let D=0;D{this[z]=Q[z]}),this}clone(){return new this.constructor().copy(this)}}Qz.forEach((Q)=>{let J="_private_"+Q;Object.defineProperty(l0.prototype,Q,{get(){return this[J]},set(z){if(z!==this[J])this[J]=z,this._needsSync=!0}})});var Wq=new U7,Gq=new bJ;class W7{constructor(Q){var J;this._charts=new Map,this._width=400,this._height=110,this._backgroundOpacity=0.7,this._perf=Q.perf,this._backgroundOpacity=(J=Q.backgroundOpacity)!=null?J:this._backgroundOpacity,this.wrapper=document.createElement("div"),this.wrapper.id="three-perf-ui",this.wrapper.style.position="fixed",this.wrapper.style.bottom="0",this.wrapper.style.left="0",this.wrapper.style.width=this._width+"px",this.wrapper.style.height=this._height+"px",Q.domElement.appendChild(this.wrapper),this.canvas=document.createElement("canvas"),this.canvas.width=this._width,this.canvas.height=this._height,this.canvas.style.position="absolute",this.wrapper.appendChild(this.canvas),this.initCanvas()}setScale(Q){this.wrapper.style.width=Q*this.width+"px",this.wrapper.style.height=Q*this.height+"px",this._renderer.setSize(this._width*Q,this._height*Q,!0)}initCanvas(){this._renderer=new Kz({canvas:this.canvas,antialias:!0,alpha:!0}),this._renderer.setClearColor(0,this._backgroundOpacity),this._renderer.setPixelRatio(window.devicePixelRatio),this._scene=new Jz,this._camera=new Zz(0,this._width,0,-this._height,0.1,100),this._camera.position.set(0,0,10),this._camera.lookAt(0,0,0),this._camera.updateProjectionMatrix(),this._scene.add(this._camera),this._scene.userData.useStats=!1;let Q=new l0;Q.anchorX="right",Q.position.set(45,-8,0),Q.text="0.000",Q.fontSize=15,Q.color="rgb(253, 151, 31)",Q.sync(),this._scene.add(Q);let J=new l0;J.anchorX="right",J.position.set(65,-7,0),J.text="ms",J.fontSize=9,J.color="rgb(255, 255, 255)",J.sync(),this._scene.add(J);let z=new l0;z.anchorX="right",z.position.set(65,-22,0),z.text="GPU",z.fontSize=9,z.color="rgb(253, 151, 31)",z.sync(),this._scene.add(z);let G=new l0;G.anchorX="right",G.position.set(115,-8,0),G.text="0.000",G.fontSize=15,G.color="rgb(66, 226, 46)",G.sync(),this._scene.add(G);let X=new l0;X.anchorX="right",X.position.set(135,-7,0),X.text="ms",X.fontSize=9,X.color="rgb(255, 255, 255)",X.sync(),this._scene.add(X);let U=new l0;U.anchorX="right",U.position.set(135,-22,0),U.text="CPU",U.fontSize=9,U.color="rgb(66, 226, 46)",U.sync(),this._scene.add(U);let H=new l0;H.anchorX="center",H.position.set(165,-8,0),H.text="0",H.fontSize=15,H.color="rgb(238, 38, 110)",H.sync(),this._scene.add(H);let q=new l0;q.anchorX="center",q.position.set(175,-22,0),q.text="FPS",q.fontSize=9,q.color="rgb(238, 38, 110)",q.sync(),this._scene.add(q);let F=new l0;F.anchorX="right",F.position.set(235,-8,0),F.text="0",F.fontSize=15,F.color="#ffffff",F.sync(),this._scene.add(F);let D=new l0;D.anchorX="right",D.position.set(235,-22,0),D.text="calls",D.fontSize=9,D.color="rgb(101, 197, 188)",D.sync(),this._scene.add(D);let A=new l0;A.anchorX="right",A.position.set(315,-8,0),A.text="0",A.fontSize=15,A.color="#ffffff",A.sync(),this._scene.add(A);let O=new l0;O.anchorX="right",O.position.set(315,-22,0),O.text="triangles",O.fontSize=9,O.color="rgb(101, 197, 188)",O.sync(),this._scene.add(O);let L=new l0;L.anchorX="right",L.position.set(365,-8,0),L.text="0",L.fontSize=15,L.color="#ffffff",L.sync(),this._scene.add(L);let B=new l0;B.anchorX="right",B.position.set(365,-22,0),B.text="passes",B.fontSize=9,B.color="rgb(101, 197, 188)",B.sync(),this._scene.add(B),this._basicInfoElements={gpuValue:Q,cpuValue:G,fpsValue:H,callsValue:F,trianglesValue:A,renderpassesValue:L};let w=new l0;w.anchorX="right",w.position.set(65,-39,0),w.text="0",w.fontSize=15,w.color="#ffffff",w.sync(),this._scene.add(w);let R=new l0;R.anchorX="right",R.position.set(65,-53,0),R.text="geometries",R.fontSize=9,R.color="rgb(101, 197, 188)",R.sync(),this._scene.add(R);let j=new l0;j.anchorX="right",j.position.set(135,-39,0),j.text="0",j.fontSize=15,j.color="#ffffff",j.sync(),this._scene.add(j);let g=new l0;g.anchorX="right",g.position.set(135,-53,0),g.text="textures",g.fontSize=9,g.color="rgb(101, 197, 188)",g.sync(),this._scene.add(g);let I=new l0;I.anchorX="right",I.position.set(205,-39,0),I.text="0",I.fontSize=15,I.color="#ffffff",I.sync(),this._scene.add(I);let C=new l0;C.anchorX="right",C.position.set(205,-53,0),C.text="shaders",C.fontSize=9,C.color="rgb(101, 197, 188)",C.sync(),this._scene.add(C);let k=new l0;k.anchorX="right",k.position.set(275,-39,0),k.text="0",k.fontSize=15,k.color="#ffffff",k.sync(),this._scene.add(k);let _=new l0;_.anchorX="right",_.position.set(275,-53,0),_.text="lines",_.fontSize=9,_.color="rgb(101, 197, 188)",_.sync(),this._scene.add(_);let h=new l0;h.anchorX="right",h.position.set(345,-39,0),h.text="0",h.fontSize=15,h.color="#ffffff",h.sync(),this._scene.add(h);let T=new l0;T.anchorX="right",T.position.set(345,-53,0),T.text="points",T.fontSize=9,T.color="rgb(101, 197, 188)",T.sync(),this._scene.add(T),this._memInfoElements={geometriesValue:w,geometriesLabel:R,texturesValue:j,texturesLabel:g,shadersValue:I,shadersLabel:C,linesValue:k,linesLabel:_,pointsValue:h,pointsLabel:T};let y=new EZ,v=new Float32Array(180);for(let S=0;S<60;S++)v[3*S+0]=this._width/59*S,v[3*S+1]=-110,v[3*S+2]=0;let f=new CZ(v,3);f.usage=hJ,y.setAttribute("position",f);let Q0=new hZ(y,new yZ({color:"rgb(253, 151, 31)"}));this._scene.add(Q0),this._charts.set("gpu",Q0);let P=new EZ;v=new Float32Array(180);for(let S=0;S<60;S++)v[3*S+0]=this._width/59*S,v[3*S+1]=-110,v[3*S+2]=0;f=new CZ(v,3),f.usage=hJ,P.setAttribute("position",f);let c=new hZ(P,new yZ({color:"rgb(66, 226, 46)"}));this._scene.add(c),this._charts.set("cpu",c);let x=new EZ;v=new Float32Array(180);for(let S=0;S<60;S++)v[3*S+0]=this._width/59*S,v[3*S+1]=-110,v[3*S+2]=0;f=new CZ(v,3),f.usage=hJ,x.setAttribute("position",f);let l=new hZ(x,new yZ({color:"rgb(238, 38, 110)"}));this._scene.add(l),this._charts.set("fps",l)}update(){var Q,J;if(this._perf.chart&&this._perf.showGraph)for(let z in this._perf.chart.data){let G=this._perf.chart.data[z];if(!this._charts.get(z)||!G)continue;let U=this._charts.get(z).geometry.attributes.position,H=0;for(let q=0;qH)H=G[q];H=Math.max(H,20);for(let q=0;q{J.visible=Q}),this._perf.showGraph)this.height=this._perf.memory?110:70;else this.height=this._perf.memory?70:40;this.wrapper.style.height=this._perf.scale*this.height+"px"}toggleMemoryInfo(Q){for(let J in this._memInfoElements)this._memInfoElements[J].visible=Q;if(this.width=380,this._perf.showGraph)this.height=this._perf.memory?110:70;else this.height=this._perf.memory?70:40;this.wrapper.style.width=this._perf.scale*this.width+"px",this.wrapper.style.height=this._perf.scale*this.height+"px"}setBackgroundOpacity(Q){this._backgroundOpacity=Q,this._renderer.setClearColor(0,this._backgroundOpacity),this.render()}get width(){return this._width}set width(Q){this._width=Q,this._camera.right=Q,this._camera.updateProjectionMatrix(),this._renderer.setSize(this._perf.scale*this._width,this._perf.scale*this._height),this.render()}get height(){return this._height}set height(Q){this._height=Q,this._camera.bottom=-Q,this._camera.updateProjectionMatrix(),this._renderer.setSize(this._perf.scale*this._width,this._perf.scale*this._height),this.render()}}var i1={value:0,fpsLimit:60,isOverLimit:0},xJ=(Q)=>(Q==null?void 0:Q.reduce((J,z)=>J+z,0))/Q.length;class G7{constructor(Q){this.names=[""],this.finished=[],this.paused=!1,this.overClock=!1,this.queryHasResult=!1,this.queryCreated=!1,this.isWebGL2=!0,this.memAccums=[],this.gpuAccums=[],this.activeAccums=[],this.logsAccums={mem:[],gpu:[],cpu:[],fps:[],fpsFixed:[]},this.fpsChart=[],this.gpuChart=[],this.cpuChart=[],this.memChart=[],this.paramLogger=()=>{},this.glFinish=()=>{},this.chartLogger=()=>{},this.chartLen=60,this.logsPerSecond=10,this.maxMemory=1500,this.chartHz=10,this.startCpuProfiling=!1,this.lastCalculateFixed=0,this.chartFrame=0,this.gpuTimeProcess=0,this.chartTime=0,this.activeQueries=0,this.circularId=0,this.detected=0,this.frameId=0,this.rafId=0,this.idleCbId=0,this.checkQueryId=0,this.uuid=void 0,this.currentCpu=0,this.currentMem=0,this.paramFrame=0,this.paramTime=0,this.now=()=>{},this.t0=0,this.nextFps=(J)=>{let G=16.666666666666668-J.timeRemaining(),X=16.666666666666668*i1.fpsLimit/10/G;if(X<0)return;if(i1.value=X,i1.isOverLimit<25)i1.isOverLimit++;else this.perf.overclockingFps=!0},this.nextFrame=(J)=>{this.frameId++;let z=J||this.now(),G=z-this.paramTime,X=0;if(this.frameId<=1)this.paramFrame=this.frameId,this.paramTime=z;else if(z>=this.paramTime){this.maxMemory=window.performance.memory?window.performance.memory.jsHeapSizeLimit/1048576:0;let U=this.frameId-this.paramFrame,H=U*1000/G,q=this.perf.overclockingFps?i1.value:H;if(X=this.isWebGL2?this.gpuAccums[0]:this.gpuAccums[0]/G,this.isWebGL2)this.gpuAccums[0]=0;else Promise.all(this.finished).then(()=>{this.gpuAccums[0]=0,this.finished=[]});if(this.currentMem=Math.round(window.performance&&window.performance.memory?window.performance.memory.usedJSHeapSize/1048576:0),window.performance&&this.startCpuProfiling){window.performance.mark("cpu-finished");let F=performance.measure("cpu-duration","cpu-started","cpu-finished");this.currentCpu=F.duration,this.logsAccums.cpu.push(this.currentCpu),this.startCpuProfiling=!1}if(this.logsAccums.mem.push(this.currentMem),this.logsAccums.fpsFixed.push(H),this.logsAccums.fps.push(q),this.logsAccums.gpu.push(X),this.overClock&&typeof window.requestIdleCallback<"u"){if(i1.isOverLimit>0&&q>H)i1.isOverLimit--;else if(this.perf.overclockingFps)this.perf.overclockingFps=!1}if(z>=this.paramTime+1000/this.logsPerSecond)this.paramLogger({cpu:xJ(this.logsAccums.cpu),gpu:xJ(this.logsAccums.gpu),mem:xJ(this.logsAccums.mem),fps:xJ(this.logsAccums.fps),duration:Math.round(G),maxMemory:this.maxMemory,frameCount:U}),this.logsAccums.mem=[],this.logsAccums.fps=[],this.logsAccums.gpu=[],this.logsAccums.cpu=[],this.paramFrame=this.frameId,this.paramTime=z;if(this.overClock){if(z-this.lastCalculateFixed>=2000)this.lastCalculateFixed=J,i1.fpsLimit=Math.round(xJ(this.logsAccums.fpsFixed)/10)*100,this.perf.fpsLimit=i1.fpsLimit/10,this.logsAccums.fpsFixed=[],this.paramFrame=this.frameId,this.paramTime=z}}if(!this.detected||!this.chartFrame)this.chartFrame=this.frameId,this.chartTime=z,this.circularId=0;else{let U=z-this.chartTime,H=this.chartHz*U/1000;while(--H>0&&this.detected){let F=(this.frameId-this.chartFrame)/U*1000,D=this.perf.overclockingFps?i1.value:F;this.fpsChart[this.circularId%this.chartLen]=D;let A=1000/this.currentMem,O=this.currentCpu,L=(this.isWebGL2?this.gpuAccums[1]*2:Math.round(this.gpuAccums[1]/G*100))+4;if(L>0)this.gpuChart[this.circularId%this.chartLen]=L;if(O>0)this.cpuChart[this.circularId%this.chartLen]=O;if(A>0)this.memChart[this.circularId%this.chartLen]=A;for(let B=0;Bwindow.performance&&window.performance.now?window.performance.now():Date.now(),this.initGpu(),this.is120hz()}initGpu(){if(this.uuid=zz.generateUUID(),this.gl){if(this.isWebGL2=!0,!this.extension)this.extension=this.gl.getExtension("EXT_disjoint_timer_query_webgl2");if(this.extension===null)this.isWebGL2=!1}}is120hz(){let Q=0,J=(z)=>{if(++Q<20)this.rafId=window.requestAnimationFrame(J);else this.detected=Math.ceil(1000*Q/(z-this.t0)/70),window.cancelAnimationFrame(this.rafId);if(!this.t0)this.t0=z};this.rafId=window.requestAnimationFrame(J)}addUI(Q){if(this.names.indexOf(Q)===-1)this.names.push(Q),this.gpuAccums.push(0),this.activeAccums.push(!1)}startGpu(){let Q=this.gl,J=this.extension;if(!Q||!J)return;if(this.isWebGL2){let z=!1,G,X;if(this.query){this.queryHasResult=!1;let U=this.query;if(z=Q.getQueryParameter(U,Q.QUERY_RESULT_AVAILABLE),G=Q.getParameter(J.GPU_DISJOINT_EXT),z&&!G){X=Q.getQueryParameter(this.query,Q.QUERY_RESULT);let H=X*0.000001;if(z||G)Q.deleteQuery(this.query),U=null;if(z&&H>0){if(!G)this.activeAccums.forEach((q,F)=>{this.gpuAccums[F]=H})}}}if(z||!this.query)this.queryCreated=!0,this.query=Q.createQuery(),Q.beginQuery(J.TIME_ELAPSED_EXT,this.query)}}endGpu(){let Q=this.extension,J=this.gl;if(this.isWebGL2&&this.queryCreated&&J.getQuery(Q.TIME_ELAPSED_EXT,J.CURRENT_QUERY))J.endQuery(Q.TIME_ELAPSED_EXT)}begin(Q){this.startGpu(),this.updateAccums(Q)}end(Q){this.endGpu(),this.updateAccums(Q)}updateAccums(Q){let J=this.names.indexOf(Q);if(J===-1)J=this.names.length,this.addUI(Q);let z=this.now();this.activeAccums[J]=!this.activeAccums[J],this.t0=z}}var Lq=bZ.prototype.updateMatrixWorld,jq=bZ.prototype.updateWorldMatrix,wq=bZ.prototype.updateMatrix,Uz=["calls","triangles","points","lines"],Xz=["gpu","cpu","mem","fps"];class xZ{constructor(Q){var J,z,G,X,U,H,q,F,D,A,O,L;this.gui=new Wz.Pane,this.accumulated={totalFrames:0,log:{i:0,maxMemory:0,gpu:0,mem:0,cpu:0,fps:0,duration:0,frameCount:0},gl:{calls:0,triangles:0,points:0,lines:0,counts:0},max:{log:{i:0,maxMemory:0,gpu:0,mem:0,cpu:0,fps:0,duration:0,frameCount:0},gl:{calls:0,triangles:0,points:0,lines:0,counts:0}}},this.renderPassesNumber=0,this._keypressed="",this._guiVisible=!0,this.actionToCallUI="dev",this.keypressHandler=(k)=>{if(!this.actionToCallUI)return;this._keypressed+=k.key;let _=this._keypressed.split("");while(_.length>this.actionToCallUI.length)_.shift();if(_.join("")===this.actionToCallUI)this._keypressed="",this.guiVisible=!this.guiVisible},this.afterRender=()=>{if(!this._enabled)return;if(!this.perfEngine.paused){if(this.perfEngine.nextFrame(window.performance.now()),this.perfEngine.overClock&&typeof window.requestIdleCallback<"u")this.perfEngine.idleCbId=requestIdleCallback(this.perfEngine.nextFps)}if(this.perfEngine)this.perfEngine.end("profiler");if(window.performance)window.performance.mark("cpu-started"),this.perfEngine.startCpuProfiling=!0;if(this.deepAnalyze);},this.deepAnalyze=(J=Q.deepAnalyze)!=null?J:!1,this.threeRenderer=Q.renderer,this.ui=new W7({perf:this,domElement:Q.domElement,backgroundOpacity:Q.backgroundOpacity}),this._visible=(z=Q.visible)!=null?z:!0,this._enabled=(G=Q.enabled)!=null?G:!0,this.scale=(X=Q.scale)!=null?X:1,this.anchorX=(U=Q.anchorX)!=null?U:"left",this.anchorY=(H=Q.anchorY)!=null?H:"top",this.showGraph=(q=Q.showGraph)!=null?q:!0,this.memory=(F=Q.memory)!=null?F:!0,this.actionToCallUI=(D=Q.actionToCallUI)!=null?D:"",this.guiVisible=(A=Q.guiVisible)!=null?A:!1,this.gui.element.parentElement.style.width="300px",window.addEventListener("keypress",this.keypressHandler);let B=(O=Q.overClock)!=null?O:!0;this.perfEngine=new G7({perf:this,trackGPU:!0,overClock:B,chartLen:120,chartHz:60,logsPerSecond:(L=Q.logsPerSecond)!=null?L:10,gl:Q.renderer.getContext(),chartLogger:(k)=>{this.chart=k},paramLogger:(k)=>{if(!this._enabled)return;let _={maxMemory:k.maxMemory,gpu:k.gpu,cpu:k.cpu,mem:k.mem,fps:k.fps,totalTime:k.duration,frameCount:k.frameCount};this.log=_;let h=this.accumulated,T=this.threeRenderer.info.render;h.totalFrames++,h.gl.calls+=T.calls,h.gl.triangles+=T.triangles,h.gl.points+=T.points,h.gl.lines+=T.lines,h.log.gpu+=k.gpu,h.log.cpu+=k.cpu,h.log.mem+=k.mem,h.log.fps+=k.fps;for(let y=0;yh.max.gl[v])h.max.gl[v]=f}for(let y=0;yh.max.log[v])h.max.log[v]=f}this.accumulated=h,this.ui.update()}});let w=Q.renderer.getContext(),R=null,j=null,g=w.getExtension("WEBGL_debug_renderer_info"),I=w.getParameter(w.VERSION);if(g!=null)R=w.getParameter(g.UNMASKED_RENDERER_WEBGL),j=w.getParameter(g.UNMASKED_VENDOR_WEBGL);if(!j)j="Unknown vendor";if(!R)R=w.getParameter(w.RENDERER);this.startTime=performance.now(),this.infos={version:I,renderer:R,vendor:j},this.rendererRender=this.threeRenderer.render,this.threeRenderer.info.autoReset=!1,this.threeRenderer.render=(k,_)=>{this.renderPassesNumber++,this.rendererRender.call(this.threeRenderer,k,_)},this.guiFolder=this.gui.addFolder({title:"Settings"});let C=this.guiFolder.addFolder({title:"ThreePerf"});C.addInput(this,"visible",{label:"Visible"}),C.addInput(this,"enabled",{label:"Enabled"}),C.addInput(this,"anchorX",{label:"xAnchor",options:{left:"left",right:"right"}}),C.addInput(this,"anchorY",{label:"yAnchor",options:{top:"top",bottom:"bottom"}}),C.addInput(this,"backgroundOpacity",{label:"Background opacity",min:0,max:1,step:0.1}),C.addInput(this,"memory",{label:"Memory"}),C.addInput(this,"showGraph",{label:"Charts"}),C.addInput(this,"scale",{label:"Scale",min:0.1,max:2,step:0.1}),C.addInput(this,"logsPerSecond",{label:"LogsPerSecond",min:1,max:60,step:1}),console.log("ThreePerf inited.")}begin(){this.perfEngine.begin("profiler")}end(){this.afterRender(),this.renderPassesNumber=0,this.threeRenderer.info.reset()}dispose(){var Q;this.ui.dispose(),(Q=this.gui.element.parentElement)==null||Q.remove(),window.removeEventListener("keypress",this.keypressHandler)}get enabled(){return this._enabled}set enabled(Q){this._enabled=Q}get visible(){return this._visible}set visible(Q){this._visible=Q,this.ui.toggleVisibility(Q)}get guiVisible(){return this._guiVisible}set guiVisible(Q){this._guiVisible=Q,this.gui.element.parentElement.style.display=Q?"block":"none"}get anchorX(){return this._anchorX}set anchorX(Q){if(this._anchorX=Q,this._anchorX==="left")this.ui.wrapper.style.left="0",this.ui.wrapper.style.right="";else this.ui.wrapper.style.left="",this.ui.wrapper.style.right="0"}get anchorY(){return this._anchorY}set anchorY(Q){if(this._anchorY=Q,this._anchorY==="top")this.ui.wrapper.style.top="0",this.ui.wrapper.style.bottom="";else this.ui.wrapper.style.top="",this.ui.wrapper.style.bottom="0"}get showGraph(){return this._showGraph}set showGraph(Q){this._showGraph=Q,this.ui.toggleCharts(Q)}get memory(){return this._memory}set memory(Q){this._memory=Q,this.ui.toggleMemoryInfo(Q)}get scale(){return this._scale}set scale(Q){this._scale=Q,this.ui.setScale(Q)}get logsPerSecond(){return this.perfEngine.logsPerSecond}set logsPerSecond(Q){this.perfEngine.logsPerSecond=Q}get backgroundOpacity(){return this.ui._backgroundOpacity}set backgroundOpacity(Q){this.ui.setBackgroundOpacity(Q)}}class Gz{constructor(){this.gl=new Hz,this.gl.renderer.instance.info.autoReset=!1,this.gui=new s6({title:"Debug Panel"}),this.gui.element.parentElement.style.position="fixed",this.gui.element.parentElement.style.zIndex="1000",this.perf=new xZ({anchorX:"left",anchorY:"top",domElement:document.body,renderer:this.gl.renderer.instance,showGraph:!1,overClock:!1}),document.querySelector("#three-perf-ui").style.zIndex="1000",this.memoryStats={used:0,total:0,limit:0},this.setDebugHide(),this.setupMemoryDetection()}setDebugHide(){this.isDebugHidden=!1,window.addEventListener("keydown",(Q)=>{if(Q.key==="h")this.isDebugHidden=!this.isDebugHidden,this.gui.element.style.display=this.isDebugHidden?"none":"block",this.perf.visible=!this.isDebugHidden})}setupMemoryDetection(){if(performance&&performance.memory){let Q=this.gui.addFolder({title:"Memory (MB)",expanded:!1});Q.addBinding(this.memoryStats,"used",{readonly:!0,interval:1000,label:"Used JS Heap"}),Q.addBinding(this.memoryStats,"total",{readonly:!0,interval:1000,label:"Total Allocated"}),Q.addBinding(this.memoryStats,"limit",{readonly:!0,interval:1000,label:"Max Limit"}),setInterval(()=>{let J=(z)=>(z/1048576).toFixed(2);this.memoryStats.used=J(performance.memory.usedJSHeapSize),this.memoryStats.total=J(performance.memory.totalJSHeapSize),this.memoryStats.limit=J(performance.memory.jsHeapSizeLimit)},1000)}else console.warn("performance.memory API not supported in this browser")}update(){}}export{Gz as default};