1try{!function(){var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},i=(new t.Error).stack;i&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[i]="54782afb-b181-46af-809b-d19e05ef05c9",t._sentryDebugIdIdentifier="sentry-dbid-54782afb-b181-46af-809b-d19e05ef05c9")}()}catch(t){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8243],{68243:function(t,i,e){e.d(i,{ZP:function(){return m}});/** 2 * lil-gui 3 * https://lil-gui.georgealways.com 4 * @version 0.21.0 5 * @author George Michael Brower 6 * @license MIT 7 */class l{constructor(t,i,e,s,n="div"){this.parent=t,this.object=i,this.property=e,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement(n),this.domElement.classList.add("lil-controller"),this.domElement.classList.add(s),this.$name=document.createElement("div"),this.$name.classList.add("lil-name"),l.nextNameID=l.nextNameID||0,this.$name.id=`lil-gui-name-${++l.nextNameID}`,this.$widget=document.createElement("div"),this.$widget.classList.add("lil-widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",t=>t.stopPropagation()),this.domElement.addEventListener("keyup",t=>t.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(e)}name(t){return this._name=t,this.$name.textContent=t,this}onChange(t){return this._onChange=t,this}_callOnChange(){this.parent._callOnChange(this),void 0!==this._onChange&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(t){return this._onFinishChange=t,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),void 0!==this._onFinishChange&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(t=!0){return this.disable(!t)}disable(t=!0){return t===this._disabled||(this._disabled=t,this.domElement.classList.toggle("lil-disabled",t),this.$disable.toggleAttribute("disabled",t)),this}show(t=!0){return this._hidden=!t,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(t){let i=this.parent.add(this.object,this.property,t);return i.name(this._name),this.destroy(),i}min(t){return this}max(t){return this}step(t){return this}decimals(t){return this}listen(t=!0){return this._listening=t,void 0!==this._listenCallbackID&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);let t=this.save();t!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=t}getValue(){return this.object[this.property]}setValue(t){return this.getValue()!==t&&(this.object[this.property]=t,this._callOnChange(),this.updateDisplay()),this}updateDisplay(){return this}load(t){return this.setValue(t),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class s extends l{constructor(t,i,e){super(t,i,e,"lil-boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function n(t){let i,e;return(i=t.match(/(#|0x)?([a-f0-9]{6})/i))?e=i[2]:(i=t.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?e=parseInt(i[1]).toString(16).padStart(2,0)+parseInt(i[2]).toString(16).padStart(2,0)+parseInt(i[3]).toString(16).padStart(2,0):(i=t.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(e=i[1]+i[1]+i[2]+i[2]+i[3]+i[3]),!!e&&"#"+e}let r={isPrimitive:!0,match:t=>"number"==typeof t,fromHexString:t=>parseInt(t.substring(1),16),toHexString:t=>"#"+t.toString(16).padStart(6,0)},o=[{isPrimitive:!0,match:t=>"string"==typeof t,fromHexString:n,toHexString:n},r,{isPrimitive:!1,match:t=>Array.isArray(t)||ArrayBuffer.isView(t),fromHexString(t,i,e=1){let l=r.fromHexString(t);i[0]=(l>>16&255)/255*e,i[1]=(l>>8&255)/255*e,i[2]=(255&l)/255*e},toHexString([t,i,e],l=1){let s=t*(l=255/l)<<16^i*l<<8^e*l<<0;return r.toHexString(s)}},{isPrimitive:!1,match:t=>Object(t)===t,fromHexString(t,i,e=1){let l=r.fromHexString(t);i.r=(l>>16&255)/255*e,i.g=(l>>8&255)/255*e,i.b=(255&l)/255*e},toHexString({r:t,g:i,b:e},l=1){let s=t*(l=255/l)<<16^i*l<<8^e*l<<0;return r.toHexString(s)}}];class a extends l{constructor(t,i,e,l){var s;
7super(t,i,e,"lil-color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("lil-display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=(s=this.initialValue,o.find(t=>t.match(s))),this._rgbScale=l,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{let t=n(this.$text.value);t&&this._setValueFromHexString(t)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(t){if(this._format.isPrimitive){let i=this._format.fromHexString(t);this.setValue(i)}else this._format.fromHexString(t,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(t){return this._setValueFromHexString(t),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class h extends l{constructor(t,i,e){super(t,i,e,"lil-function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",t=>{t.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class d extends l{constructor(t,i,e,l,s,n){super(t,i,e,"lil-number"),this._initInput(),this.min(l),this.max(s);let r=void 0!==n;this.step(r?n:this._getImplicitStep(),r),this.updateDisplay()}decimals(t){return this._decimals=t,this.updateDisplay(),this}min(t){return this._min=t,this._onUpdateMinMax(),this}max(t){return this._max=t,this._onUpdateMinMax(),this}step(t,i=!0){return this._step=t,this._stepExplicit=i,this}updateDisplay(){let t=this.getValue();if(this._hasSlider){let i=(t-this._min)/(this._max-this._min);i=Math.max(0,Math.min(i,1)),this.$fill.style.width=100*i+"%"}return this._inputFocused||(this.$input.value=void 0===this._decimals?t:t.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;let t=t=>{let i=parseFloat(this.$input.value);isNaN(i)||(this._snapClampSetValue(i+t),this.$input.value=this.getValue())},i=!1,e,l,s,n,r,o=t=>{if(i){let s=t.clientX-e;Math.abs(t.clientY-l)>5?(t.preventDefault(),this.$input.blur(),i=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(s)>5&&a()}if(!i){let i=t.clientY-s;r-=i*this._step*this._arrowKeyMultiplier(t),n+r>this._max?r=this._max-n:n+r<this._min&&(r=this._min-n),this._snapClampSetValue(n+r)}s=t.clientY},a=()=>{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",a)};this.$input.addEventListener("input",()=>{let t=parseFloat(this.$input.value);isNaN(t)||(this._stepExplicit&&(t=this._snap(t)),this.setValue(this._clamp(t)))}),this.$input.addEventListener("keydown",i=>{"Enter"===i.key&&this.$input.blur(),"ArrowUp"===i.code&&(i.preventDefault(),t(this._step*this._arrowKeyMultiplier(i))),"ArrowDown"===i.code&&(i.preventDefault(),t(-(this._step*this._arrowKeyMultiplier(i)*1)))}),this.$input.addEventListener("wheel",i=>{this._inputFocused&&(i.preventDefault(),t(this._step*this._normalizeMouseWheel(i)))},{passive:!1}),this.$input.addEventListener("mousedown",t=>{e=t.clientX,l=s=t.clientY,i=!0,n=this.getValue(),r=0,window.addEventListener("mousemove",o),window.addEventListener("mouseup",a)}),this.$input.addEventListener("focus",()=>{this._inputFocused=!0}),this.$input.addEventListener("blur",()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()})}_initSlider(){let t;
7this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("lil-slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("lil-fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("lil-has-slider");let i=(t,i,e,l,s)=>(t-i)/(e-i)*(s-l)+l,e=t=>{let e=this.$slider.getBoundingClientRect(),l=i(t,e.left,e.right,this._min,this._max);this._snapClampSetValue(l)},l=t=>{e(t.clientX)},s=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",l),window.removeEventListener("mouseup",s)},n=!1,r,o,a=t=>{t.preventDefault(),this._setDraggingStyle(!0),e(t.touches[0].clientX),n=!1},h=t=>{n?Math.abs(t.touches[0].clientX-r)>Math.abs(t.touches[0].clientY-o)?a(t):(window.removeEventListener("touchmove",h),window.removeEventListener("touchend",d)):(t.preventDefault(),e(t.touches[0].clientX))},d=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",h),window.removeEventListener("touchend",d)},c=this._callOnFinishChange.bind(this);this.$slider.addEventListener("mousedown",t=>{this._setDraggingStyle(!0),e(t.clientX),window.addEventListener("mousemove",l),window.addEventListener("mouseup",s)}),this.$slider.addEventListener("touchstart",t=>{t.touches.length>1||(this._hasScrollBar?(r=t.touches[0].clientX,o=t.touches[0].clientY,n=!0):a(t),window.addEventListener("touchmove",h,{passive:!1}),window.addEventListener("touchend",d))},{passive:!1}),this.$slider.addEventListener("wheel",i=>{if(Math.abs(i.deltaX)<Math.abs(i.deltaY)&&this._hasScrollBar)return;i.preventDefault();let e=this._normalizeMouseWheel(i)*this._step;this._snapClampSetValue(this.getValue()+e),this.$input.value=this.getValue(),clearTimeout(t),t=setTimeout(c,400)},{passive:!1})}_setDraggingStyle(t,i="horizontal"){this.$slider&&this.$slider.classList.toggle("lil-active",t),document.body.classList.toggle("lil-dragging",t),document.body.classList.toggle(`lil-${i}`,t)}_getImplicitStep(){return this._hasMin&&this._hasMax?(this._max-this._min)/1e3:.1}_onUpdateMinMax(){!this._hasSlider&&this._hasMin&&this._hasMax&&(this._stepExplicit||this.step(this._getImplicitStep(),!1),this._initSlider(),this.updateDisplay())}_normalizeMouseWheel(t){let{deltaX:i,deltaY:e}=t;return Math.floor(t.deltaY)!==t.deltaY&&t.wheelDelta&&(i=0,e=-t.wheelDelta/120*(this._stepExplicit?1:10)),i+-e}_arrowKeyMultiplier(t){let i=this._stepExplicit?1:10;return t.shiftKey?i*=10:t.altKey&&(i/=10),i}_snap(t){let i=0;return this._hasMin?i=this._min:this._hasMax&&(i=this._max),t-=i,t=parseFloat((t=Math.round(t/this._step)*this._step+i).toPrecision(15))}_clamp(t){return t<this._min&&(t=this._min),t>this._max&&(t=this._max),t}_snapClampSetValue(t){this.setValue(this._clamp(this._snap(t)))}get _hasScrollBar(){let t=this.parent.root.$children;return t.scrollHeight>t.clientHeight}get _hasMin(){return void 0!==this._min}get _hasMax(){return void 0!==this._max}}class c extends l{constructor(t,i,e,l){super(t,i,e,"lil-option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("lil-display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("lil-focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("lil-focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(l)}options(t){return this._values=Array.isArray(t)?t:Object.values(t),this._names=Array.isArray(t)?t:Object.keys(t),this.$select.replaceChildren(),this._names.forEach(t=>{let i=document.createElement("option");i.textContent=t,this.$select.appendChild(i)}),this.updateDisplay(),this}updateDisplay(){let t=this.getValue(),i=this._values.indexOf(t);return this.$select.selectedIndex=i,this.$display.textContent=-1===i?t:this._names[i],this}}class u extends l{constructor(t,i,e){super(t,i,e,"lil-string"),this.$input
7=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("spellcheck","false"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",t=>{"Enter"===t.code&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}var p=
vendor: 11,504 bytes, lines 7-428
7`.lil-gui { 8 font-family: var(--font-family); 9 font-size: var(--font-size); 10 line-height: 1; 11 font-weight: normal; 12 font-style: normal; 13 text-align: left; 14 color: var(--text-color); 15 user-select: none; 16 -webkit-user-select: none; 17 touch-action: manipulation; 18 --background-color: #1f1f1f; 19 --text-color: #ebebeb; 20 --title-background-color: #111111; 21 --title-text-color: #ebebeb; 22 --widget-color: #424242; 23 --hover-color: #4f4f4f; 24 --focus-color: #595959; 25 --number-color: #2cc9ff; 26 --string-color: #a2db3c; 27 --font-size: 11px; 28 --input-font-size: 11px; 29 --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; 30 --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace; 31 --padding: 4px; 32 --spacing: 4px; 33 --widget-height: 20px; 34 --title-height: calc(var(--widget-height) + var(--spacing) * 1.25); 35 --name-width: 45%; 36 --slider-knob-width: 2px; 37 --slider-input-width: 27%; 38 --color-input-width: 27%; 39 --slider-input-min-width: 45px; 40 --color-input-min-width: 45px; 41 --folder-indent: 7px; 42 --widget-padding: 0 0 0 3px; 43 --widget-border-radius: 2px; 44 --checkbox-size: calc(0.75 * var(--widget-height)); 45 --scrollbar-width: 5px; 46} 47.lil-gui, .lil-gui * { 48 box-sizing: border-box; 49 margin: 0; 50 padding: 0; 51} 52.lil-gui.lil-root { 53 width: var(--width, 245px); 54 display: flex; 55 flex-direction: column; 56 background: var(--background-color); 57} 58.lil-gui.lil-root > .lil-title { 59 background: var(--title-background-color); 60 color: var(--title-text-color); 61} 62.lil-gui.lil-root > .lil-children { 63 overflow-x: hidden; 64 overflow-y: auto; 65} 66.lil-gui.lil-root > .lil-children::-webkit-scrollbar { 67 width: var(--scrollbar-width); 68 height: var(--scrollbar-width); 69 background: var(--background-color); 70} 71.lil-gui.lil-root > .lil-children::-webkit-scrollbar-thumb { 72 border-radius: var(--scrollbar-width); 73 background: var(--focus-color); 74} 75@media (pointer: coarse) { 76 .lil-gui.lil-allow-touch-styles, .lil-gui.lil-allow-touch-styles .lil-gui { 77 --widget-height: 28px; 78 --padding: 6px; 79 --spacing: 6px; 80 --font-size: 13px; 81 --input-font-size: 16px; 82 --folder-indent: 10px; 83 --scrollbar-width: 7px; 84 --slider-input-min-width: 50px; 85 --color-input-min-width: 65px; 86 } 87} 88.lil-gui.lil-force-touch-styles, .lil-gui.lil-force-touch-styles .lil-gui { 89 --widget-height: 28px; 90 --padding: 6px; 91 --spacing: 6px; 92 --font-size: 13px; 93 --input-font-size: 16px; 94 --folder-indent: 10px; 95 --scrollbar-width: 7px; 96 --slider-input-min-width: 50px; 97 --color-input-min-width: 65px; 98} 99.lil-gui.lil-auto-place, .lil-gui.autoPlace { 100 max-height: 100%; 101 position: fixed; 102 top: 0; 103 right: 15px; 104 z-index: 1001; 105} 106 107.lil-controller { 108 display: flex; 109 align-items: center; 110 padding: 0 var(--padding); 111 margin: var(--spacing) 0; 112} 113.lil-controller.lil-disabled { 114 opacity: 0.5; 115} 116.lil-controller.lil-disabled, .lil-controller.lil-disabled * { 117 pointer-events: none !important; 118} 119.lil-controller > .lil-name { 120 min-width: var(--name-width); 121 flex-shrink: 0; 122 white-space: pre; 123 padding-right: var(--spacing); 124 line-height: var(--widget-height); 125} 126.lil-controller .lil-widget { 127 position: relative; 128 display: flex; 129 align-items: center; 130 width: 100%; 131 min-height: var(--widget-height); 132} 133.lil-controller.lil-string input { 134 color: var(--string-color); 135} 136.lil-controller.lil-boolean { 137 cursor: pointer; 138} 139.lil-controller.lil-color .lil-display { 140 width: 100%; 141 height: var(--widget-height); 142 border-radius: var(--widget-border-radius); 143 position: relative; 144} 145@media (hover: hover) { 146 .lil-controller.lil-color .lil-display:hover:before { 147 content: " "; 148 display: block; 149 position: absolute; 150 border-radius: var(--widget-border-radius); 151 border: 1px solid #fff9; 152 top: 0; 153 right: 0; 154 bottom: 0; 155 left: 0; 156 } 157} 158.lil-controller.lil-color input[type=color] { 159 opacity: 0; 160 width: 100%; 161 height: 100%; 162 cursor: pointer; 163} 164.lil-controller.lil-color input[type=text] { 165 margin-left: var(--spacing); 166 font-family: var(--font-family-mono); 167 min-width: var(--color-input-min-width); 168 width: var(--color-input-width); 169 flex-shrink: 0; 170} 171.lil-controller.lil-option select { 172 opacity: 0; 173 position: absolute; 174 width: 100%; 175 max-width: 100%; 176} 177.lil-controller.lil-option .lil-display { 178 position: relative; 179 pointer-events: none; 180 border-radius: var(--widget-border-radius); 181 height: var(--widget-height); 182 line-height: var(--widget-height); 183 max-width: 100%; 184 overflow: hidden; 185 word-break: break-all; 186 padding-left: 0.55em; 187 padding-right: 1.75em; 188 background: var(--widget-color); 189} 190@media (hover: hover) { 191 .lil-controller.lil-option .lil-display.lil-focus { 192 background: var(--focus-color); 193 } 194} 195.lil-controller.lil-option .lil-display.lil-active { 196 background: var(--focus-color); 197} 198.lil-controller.lil-option .lil-display:after { 199 font-family: "lil-gui"; 200 content: "â"; 201 position: absolute; 202 top: 0; 203 right: 0; 204 bottom: 0; 205 padding-right: 0.375em; 206} 207.lil-controller.lil-option .lil-widget, 208.lil-controller.lil-option select { 209 cursor: pointer; 210} 211@media (hover: hover) { 212 .lil-controller.lil-option .lil-widget:hover .lil-display { 213 background: var(--hover-color); 214 } 215} 216.lil-controller.lil-number input { 217 color: var(--number-color); 218} 219.lil-controller.lil-number.lil-has-slider input { 220 margin-left: var(--spacing); 221 width: var(--slider-input-width); 222 min-width: var(--slider-input-min-width); 223 flex-shrink: 0; 224} 225.lil-controller.lil-number .lil-slider { 226 width: 100%; 227 height: var(--widget-height); 228 background: var(--widget-color); 229 border-radius: var(--widget-border-radius); 230 padding-right: var(--slider-knob-width); 231 overflow: hidden; 232 cursor: ew-resize; 233 touch-action: pan-y; 234} 235@media (hover: hover) { 236 .lil-controller.lil-number .lil-slider:hover { 237 background: var(--hover-color); 238 } 239} 240.lil-controller.lil-number .lil-slider.lil-active { 241 background: var(--focus-color); 242} 243.lil-controller.lil-number .lil-slider.lil-active .lil-fill { 244 opacity: 0.95; 245} 246.lil-controller.lil-number .lil-fill { 247 height: 100%; 248 border-right: var(--slider-knob-width) solid var(--number-color); 249 box-sizing: content-box; 250} 251 252.lil-dragging .lil-gui { 253 --hover-color: var(--widget-color); 254} 255.lil-dragging * { 256 cursor: ew-resize !important; 257} 258.lil-dragging.lil-vertical * { 259 cursor: ns-resize !important; 260} 261 262.lil-gui .lil-title { 263 height: var(--title-height); 264 font-weight: 600; 265 padding: 0 var(--padding); 266 width: 100%; 267 text-align: left; 268 background: none; 269 text-decoration-skip: objects; 270} 271.lil-gui .lil-title:before { 272 font-family: "lil-gui"; 273 content: "â¾"; 274 padding-right: 2px; 275 display: inline-block; 276} 277.lil-gui .lil-title:active { 278 background: var(--title-background-color); 279 opacity: 0.75; 280} 281@media (hover: hover) { 282 body:not(.lil-dragging) .lil-gui .lil-title:hover { 283 background: var(--title-background-color); 284 opacity: 0.85; 285 } 286 .lil-gui .lil-title:focus { 287 text-decoration: underline var(--focus-color); 288 } 289} 290.lil-gui.lil-root > .lil-title:focus { 291 text-decoration: none !important; 292} 293.lil-gui.lil-closed > .lil-title:before { 294 content: "â¸"; 295} 296.lil-gui.lil-closed > .lil-children { 297 transform: translateY(-7px); 298 opacity: 0; 299} 300.lil-gui.lil-closed:not(.lil-transition) > .lil-children { 301 display: none; 302} 303.lil-gui.lil-transition > .lil-children { 304 transition-duration: 300ms; 305 transition-property: height, opacity, transform; 306 transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1); 307 overflow: hidden; 308 pointer-events: none; 309} 310.lil-gui .lil-children:empty:before { 311 content: "Empty"; 312 padding: 0 var(--padding); 313 margin: var(--spacing) 0; 314 display: block; 315 height: var(--widget-height); 316 font-style: italic; 317 line-height: var(--widget-height); 318 opacity: 0.5; 319} 320.lil-gui.lil-root > .lil-children > .lil-gui > .lil-title { 321 border: 0 solid var(--widget-color); 322 border-width: 1px 0; 323 transition: border-color 300ms; 324} 325.lil-gui.lil-root > .lil-children > .lil-gui.lil-closed > .lil-title { 326 border-bottom-color: transparent; 327} 328.lil-gui + .lil-controller { 329 border-top: 1px solid var(--widget-color); 330 margin-top: 0; 331 padding-top: var(--spacing); 332} 333.lil-gui .lil-gui .lil-gui > .lil-title { 334 border: none; 335} 336.lil-gui .lil-gui .lil-gui > .lil-children { 337 border: none; 338 margin-left: var(--folder-indent); 339 border-left: 2px solid var(--widget-color); 340} 341.lil-gui .lil-gui .lil-controller { 342 border: none; 343} 344 345.lil-gui label, .lil-gui input, .lil-gui button { 346 -webkit-tap-highlight-color: transparent; 347} 348.lil-gui input { 349 border: 0; 350 outline: none; 351 font-family: var(--font-family); 352 font-size: var(--input-font-size); 353 border-radius: var(--widget-border-radius); 354 height: var(--widget-height); 355 background: var(--widget-color); 356 color: var(--text-color); 357 width: 100%; 358} 359@media (hover: hover) { 360 .lil-gui input:hover { 361 background: var(--hover-color); 362 } 363 .lil-gui input:active { 364 background: var(--focus-color); 365 } 366} 367.lil-gui input:disabled { 368 opacity: 1; 369} 370.lil-gui input[type=text], 371.lil-gui input[type=number] { 372 padding: var(--widget-padding); 373 -moz-appearance: textfield; 374} 375.lil-gui input[type=text]:focus, 376.lil-gui input[type=number]:focus { 377 background: var(--focus-color); 378} 379.lil-gui input[type=checkbox] { 380 appearance: none; 381 width: var(--checkbox-size); 382 height: var(--checkbox-size); 383 border-radius: var(--widget-border-radius); 384 text-align: center; 385 cursor: pointer; 386} 387.lil-gui input[type=checkbox]:checked:before { 388 font-family: "lil-gui"; 389 content: "â"; 390 font-size: var(--checkbox-size); 391 line-height: var(--checkbox-size); 392} 393@media (hover: hover) { 394 .lil-gui input[type=checkbox]:focus { 395 box-shadow: inset 0 0 0 1px var(--focus-color); 396 } 397} 398.lil-gui button { 399 outline: none; 400 cursor: pointer; 401 font-family: var(--font-family); 402 font-size: var(--font-size); 403 color: var(--text-color); 404 width: 100%; 405 border: none; 406} 407.lil-gui .lil-controller button { 408 height: var(--widget-height); 409 text-transform: none; 410 background: var(--widget-color); 411 border-radius: var(--widget-border-radius); 412} 413@media (hover: hover) { 414 .lil-gui .lil-controller button:hover { 415 background: var(--hover-color); 416 } 417 .lil-gui .lil-controller button:focus { 418 box-shadow: inset 0 0 0 1px var(--focus-color); 419 } 420} 421.lil-gui .lil-controller button:active { 422 background: var(--focus-color); 423} 424 425@font-face { 426 font-family: "lil-gui"; 427 src: url("data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAALkAAsAAAAABtQAAAKVAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDMgqBBIEbATYCJAMUCwwABCAFhAoHgQQbHAbIDiUFEYVARAAAYQTVWNmz9MxhEgodq49wYRUFKE8GWNiUBxI2LBRaVnc51U83Gmhs0Q7JXWMiz5eteLwrKwuxHO8VFxUX9UpZBs6pa5ABRwHA+t3UxUnH20EvVknRerzQgX6xC/GH6ZUvTcAjAv122dF28OTqCXrPuyaDER30YBA1xnkVutDDo4oCi71Ca7rrV9xS8dZHbPHefsuwIyCpmT7j+MnjAH5X3984UZoFFuJ0yiZ4XEJFxjagEBeqs+e1iyK8Xf/nOuwF+vVK0ur765+vf7txotUi0m3N0m/84RGSrBCNrh8Ee5GjODjF4gnWP+dJrH/Lk9k4oT6d+gr6g/wssA2j64JJGP6cmx554vUZnpZfn6ZfX2bMwPPrlANsB86/DiHjhl0OP+c87+gaJo/gY084s3HoYL/ZkWHTRfBXvvoHnnkHvngKun4KBE/ede7tvq3/vQOxDXB1/fdNz6XbPdcr0Vhpojj9dG+owuSKFsslCi1tgEjirjXdwMiov2EioadxmqTHUCIwo8NgQaeIasAi0fTYSPTbSmwbMOFduyh9wvBrESGY0MtgRjtgQR8Q1bRPohn2UoCRZf9wyYANMXFeJTysqAe0I4mrherOekFdKMrYvJjLvOIUM9SuwYB5DVZUwwVjJJOaUnZCmcEkIZZrKqNvRGRMvmFZsmhP4VMKCSXBhSqUBxgMS7h0cZvEd71AWkEhGWaeMFcNnpqyJkyXgYL7PQ1MoSq0wDAkRtJIijkZSmqYTiSImfLiSWXIZwhRh3Rug2X0kk1Dgj+Iu43u5p98ghopcpSo0Uyc8SnjlYX59WUeaMoDqmVD2TOWD9a4pCRAzf2ECgwGcrHjPOWY9bNxq/OL3I/QjwEAAAA=") format("woff2"); 428}`;
428let g=!1;class m{constructor({parent:t,autoPlace:i=void 0===t,container:e,width:l,title:s="Controls",closeFolders:n=!1,injectStyles:r=!0,touchStyles:o=!0}={}){if(this.parent=t,this.root=t?t.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("button"),this.$title.classList.add("lil-title"),this.$title.setAttribute("aria-expanded",!0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("lil-children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(s),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("lil-root"),o&&this.domElement.classList.add("lil-allow-touch-styles"),!g&&r&&(function(t){let i=document.createElement("style");i.innerHTML=t;let e=document.querySelector("head link[rel=stylesheet], head style");e?document.head.insertBefore(i,e):document.head.appendChild(i)}(p),g=!0),e?e.appendChild(this.domElement):i&&(this.domElement.classList.add("lil-auto-place","autoPlace"),document.body.appendChild(this.domElement)),l&&this.domElement.style.setProperty("--width",l+"px"),this._closeFolders=n}add(t,i,e,l,n){if(Object(e)===e)return new c(this,t,i,e);let r=t[i];switch(typeof r){case"number":return new d(this,t,i,e,l,n);case"boolean":return new s(this,t,i);case"string":return new u(this,t,i);case"function":return new h(this,t,i)}console.error(`gui.add failed 429 property:`,i,` 430 object:`,t,` 431 value:`,r)}addColor(t,i,e=1){return new a(this,t,i,e)}addFolder(t){let i=new m({parent:this,title:t});return this.root._closeFolders&&i.close(),i}load(t,i=!0){return t.controllers&&this.controllers.forEach(i=>{!(i instanceof h)&&i._name in t.controllers&&i.load(t.controllers[i._name])}),i&&t.folders&&this.folders.forEach(i=>{i._title in t.folders&&i.load(t.folders[i._title])}),this}save(t=!0){let i={controllers:{},folders:{}};return this.controllers.forEach(t=>{if(!(t instanceof h)){if(t._name in i.controllers)throw Error(`Cannot save GUI with duplicate property "${t._name}"`);i.controllers[t._name]=t.save()}}),t&&this.folders.forEach(t=>{if(t._title in i.folders)throw Error(`Cannot save GUI with duplicate folder "${t._title}"`);i.folders[t._title]=t.save()}),i}open(t=!0){return this._setClosed(!t),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("lil-closed",this._closed),this}close(){return this.open(!1)}_setClosed(t){this._closed!==t&&(this._closed=t,this._callOnOpenClose(this))}show(t=!0){return this._hidden=!t,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(t=!0){return this._setClosed(!t),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{let i=this.$children.clientHeight;this.$children.style.height=i+"px",this.domElement.classList.add("lil-transition");let e=t=>{t.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("lil-transition"),this.$children.removeEventListener("transitionend",e))};this.$children.addEventListener("transitionend",e);let l=t?this.$children.scrollHeight:0;this.domElement.classList.toggle("lil-closed",!t),requestAnimationFrame(()=>{this.$children.style.height=l+"px"})}),this}title(t){return this._title=t,this.$title.textContent=t,this}reset(t=!0){return(t?this.controllersRecursive():this.controllers).forEach(t=>t.reset()),this}onChange(t){return this._onChange=t,this}_callOnChange(t){this.parent&&this.parent._callOnChange(t),void 0!==this._onChange&&this._onChange.call(this,{object:t.object,property:t.property,value:t.getValue(),controller:t})}onFinishChange(t){return this._onFinishChange=t,this}_callOnFinishChange(t){this.parent&&this.parent._callOnFinishChange(t),void 0!==this._onFinishChange&&this._onFinishChange.call(this,{object:t.object,property:t.property,value:t.getValue(),controller:t})}onOpenClose(t){return this._onOpenClose=t,this}_callOnOpenClose(t){this.parent&&this.parent._callOnOpenClose(t),void 0!==this._onOpenClose&&this._onOpenClose.call(this,t)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEac
431h(t=>t.destroy())}controllersRecursive(){let t=Array.from(this.controllers);return this.folders.forEach(i=>{t=t.concat(i.controllersRecursive())}),t}foldersRecursive(){let t=Array.from(this.folders);return this.folders.forEach(i=>{t=t.concat(i.foldersRecursive())}),t}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.