@mappedin/mappedin-js 6.0.1-beta.6 → 6.0.1-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- import{d as Z,g as Q}from"./chunk-WRIAQRVE.js";import"./chunk-SX72ICSH.js";import"./chunk-UUNXGSCJ.js";import{J as K}from"./chunk-LZEQNJVH.js";import{a as s,e as E,j as y}from"./chunk-5NEYOCFF.js";y();y();y();y();var $=class ${constructor(t,e,i,o,a="div"){this.parent=t,this.object=e,this.property=i,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement(a),this.domElement.classList.add("controller"),this.domElement.classList.add(o),this.$name=document.createElement("div"),this.$name.classList.add("name"),$.nextNameID=$.nextNameID||0,this.$name.id="lil-gui-name-".concat(++$.nextNameID),this.$widget=document.createElement("div"),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",r=>r.stopPropagation()),this.domElement.addEventListener("keyup",r=>r.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(i)}name(t){return this._name=t,this.$name.textContent=t,this}onChange(t){return this._onChange=t,this}_callOnChange(){this.parent._callOnChange(this),this._onChange!==void 0&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(t){return this._onFinishChange=t,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),this._onFinishChange!==void 0&&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:(this._disabled=t,this.domElement.classList.toggle("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 e=this.parent.add(this.object,this.property,t);return e.name(this._name),this.destroy(),e}min(t){return this}max(t){return this}step(t){return this}decimals(t){return this}listen(t=!0){return this._listening=t,this._listenCallbackID!==void 0&&(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)}};s($,"Controller");var _=$,H=class H extends _{constructor(t,e,i){super(t,e,i,"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}};s(H,"BooleanController");var F=H;function I(n){let t,e;return(t=n.match(/(#|0x)?([a-f0-9]{6})/i))?e=t[2]:(t=n.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?e=parseInt(t[1]).toString(16).padStart(2,0)+parseInt(t[2]).toString(16).padStart(2,0)+parseInt(t[3]).toString(16).padStart(2,0):(t=n.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(e=t[1]+t[1]+t[2]+t[2]+t[3]+t[3]),e?"#"+e:!1}s(I,"normalizeColorString");var ut={isPrimitive:!0,match:n=>typeof n=="string",fromHexString:I,toHexString:I},L={isPrimitive:!0,match:n=>typeof n=="number",fromHexString:n=>parseInt(n.substring(1),16),toHexString:n=>"#"+n.toString(16).padStart(6,0)},pt={isPrimitive:!1,match:n=>Array.isArray(n),fromHexString(n,t,e=1){let i=L.fromHexString(n);t[0]=(i>>16&255)/255*e,t[1]=(i>>8&255)/255*e,t[2]=(i&255)/255*e},toHexString([n,t,e],i=1){i=255/i;let o=n*i<<16^t*i<<8^e*i<<0;return L.toHexString(o)}},gt={isPrimitive:!1,match:n=>Object(n)===n,fromHexString(n,t,e=1){let i=L.fromHexString(n);t.r=(i>>16&255)/255*e,t.g=(i>>8&255)/255*e,t.b=(i&255)/255*e},toHexString({r:n,g:t,b:e},i=1){i=255/i;let o=n*i<<16^t*i<<8^e*i<<0;return L.toHexString(o)}},mt=[ut,L,pt,gt];function ft(n){return mt.find(t=>t.match(n))}s(ft,"getColorFormat");var G=class G extends _{constructor(t,e,i,o){super(t,e,i,"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("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=ft(this.initialValue),this._rgbScale=o,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 a=I(this.$text.value);a&&this._setValueFromHexString(a)}),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 e=this._format.fromHexString(t);this.setValue(e)}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}};s(G,"ColorController");var D=G,U=class U extends _{constructor(t,e,i){super(t,e,i,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",o=>{o.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}};s(U,"FunctionController");var k=U,P=class P extends _{constructor(t,e,i,o,a,r){super(t,e,i,"number"),this._initInput(),this.min(o),this.max(a);let h=r!==void 0;this.step(h?r:this._getImplicitStep(),h),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,e=!0){return this._step=t,this._stepExplicit=e,this}updateDisplay(){let t=this.getValue();if(this._hasSlider){let e=(t-this._min)/(this._max-this._min);e=Math.max(0,Math.min(e,1)),this.$fill.style.width=e*100+"%"}return this._inputFocused||(this.$input.value=this._decimals===void 0?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 e=s(()=>{let p=parseFloat(this.$input.value);isNaN(p)||(this._stepExplicit&&(p=this._snap(p)),this.setValue(this._clamp(p)))},"onInput"),i=s(p=>{let C=parseFloat(this.$input.value);isNaN(C)||(this._snapClampSetValue(C+p),this.$input.value=this.getValue())},"increment"),o=s(p=>{p.key==="Enter"&&this.$input.blur(),p.code==="ArrowUp"&&(p.preventDefault(),i(this._step*this._arrowKeyMultiplier(p))),p.code==="ArrowDown"&&(p.preventDefault(),i(this._step*this._arrowKeyMultiplier(p)*-1))},"onKeyDown"),a=s(p=>{this._inputFocused&&(p.preventDefault(),i(this._step*this._normalizeMouseWheel(p)))},"onWheel"),r=!1,h,g,b,m,v,l=5,u=s(p=>{h=p.clientX,g=b=p.clientY,r=!0,m=this.getValue(),v=0,window.addEventListener("mousemove",c),window.addEventListener("mouseup",d)},"onMouseDown"),c=s(p=>{if(r){let C=p.clientX-h,S=p.clientY-g;Math.abs(S)>l?(p.preventDefault(),this.$input.blur(),r=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(C)>l&&d()}if(!r){let C=p.clientY-b;v-=C*this._step*this._arrowKeyMultiplier(p),m+v>this._max?v=this._max-m:m+v<this._min&&(v=this._min-m),this._snapClampSetValue(m+v)}b=p.clientY},"onMouseMove"),d=s(()=>{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",c),window.removeEventListener("mouseup",d)},"onMouseUp"),A=s(()=>{this._inputFocused=!0},"onFocus"),f=s(()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()},"onBlur");this.$input.addEventListener("input",e),this.$input.addEventListener("keydown",o),this.$input.addEventListener("wheel",a,{passive:!1}),this.$input.addEventListener("mousedown",u),this.$input.addEventListener("focus",A),this.$input.addEventListener("blur",f)}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");let t=s((f,p,C,S,ht)=>(f-p)/(C-p)*(ht-S)+S,"map"),e=s(f=>{let p=this.$slider.getBoundingClientRect(),C=t(f,p.left,p.right,this._min,this._max);this._snapClampSetValue(C)},"setValueFromX"),i=s(f=>{this._setDraggingStyle(!0),e(f.clientX),window.addEventListener("mousemove",o),window.addEventListener("mouseup",a)},"mouseDown"),o=s(f=>{e(f.clientX)},"mouseMove"),a=s(()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",a)},"mouseUp"),r=!1,h,g,b=s(f=>{f.preventDefault(),this._setDraggingStyle(!0),e(f.touches[0].clientX),r=!1},"beginTouchDrag"),m=s(f=>{f.touches.length>1||(this._hasScrollBar?(h=f.touches[0].clientX,g=f.touches[0].clientY,r=!0):b(f),window.addEventListener("touchmove",v,{passive:!1}),window.addEventListener("touchend",l))},"onTouchStart"),v=s(f=>{if(r){let p=f.touches[0].clientX-h,C=f.touches[0].clientY-g;Math.abs(p)>Math.abs(C)?b(f):(window.removeEventListener("touchmove",v),window.removeEventListener("touchend",l))}else f.preventDefault(),e(f.touches[0].clientX)},"onTouchMove"),l=s(()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",v),window.removeEventListener("touchend",l)},"onTouchEnd"),u=this._callOnFinishChange.bind(this),c=400,d,A=s(f=>{if(Math.abs(f.deltaX)<Math.abs(f.deltaY)&&this._hasScrollBar)return;f.preventDefault();let C=this._normalizeMouseWheel(f)*this._step;this._snapClampSetValue(this.getValue()+C),this.$input.value=this.getValue(),clearTimeout(d),d=setTimeout(u,c)},"onWheel");this.$slider.addEventListener("mousedown",i),this.$slider.addEventListener("touchstart",m,{passive:!1}),this.$slider.addEventListener("wheel",A,{passive:!1})}_setDraggingStyle(t,e="horizontal"){this.$slider&&this.$slider.classList.toggle("active",t),document.body.classList.toggle("lil-gui-dragging",t),document.body.classList.toggle("lil-gui-".concat(e),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:e,deltaY:i}=t;return Math.floor(t.deltaY)!==t.deltaY&&t.wheelDelta&&(e=0,i=-t.wheelDelta/120,i*=this._stepExplicit?1:10),e+-i}_arrowKeyMultiplier(t){let e=this._stepExplicit?1:10;return t.shiftKey?e*=10:t.altKey&&(e/=10),e}_snap(t){let e=Math.round(t/this._step)*this._step;return parseFloat(e.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 this._min!==void 0}get _hasMax(){return this._max!==void 0}};s(P,"NumberController");var O=P,j=class j extends _{constructor(t,e,i,o){super(t,e,i,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(o)}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(e=>{let i=document.createElement("option");i.textContent=e,this.$select.appendChild(i)}),this.updateDisplay(),this}updateDisplay(){let t=this.getValue(),e=this._values.indexOf(t);return this.$select.selectedIndex=e,this.$display.textContent=e===-1?t:this._names[e],this}};s(j,"OptionController");var T=j,V=class V extends _{constructor(t,e,i){super(t,e,i,"string"),this.$input=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",o=>{o.code==="Enter"&&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}};s(V,"StringController");var z=V,vt='.lil-gui {\n font-family: var(--font-family);\n font-size: var(--font-size);\n line-height: 1;\n font-weight: normal;\n font-style: normal;\n text-align: left;\n color: var(--text-color);\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n --background-color: #1f1f1f;\n --text-color: #ebebeb;\n --title-background-color: #111111;\n --title-text-color: #ebebeb;\n --widget-color: #424242;\n --hover-color: #4f4f4f;\n --focus-color: #595959;\n --number-color: #2cc9ff;\n --string-color: #a2db3c;\n --font-size: 11px;\n --input-font-size: 11px;\n --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;\n --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace;\n --padding: 4px;\n --spacing: 4px;\n --widget-height: 20px;\n --title-height: calc(var(--widget-height) + var(--spacing) * 1.25);\n --name-width: 45%;\n --slider-knob-width: 2px;\n --slider-input-width: 27%;\n --color-input-width: 27%;\n --slider-input-min-width: 45px;\n --color-input-min-width: 45px;\n --folder-indent: 7px;\n --widget-padding: 0 0 0 3px;\n --widget-border-radius: 2px;\n --checkbox-size: calc(0.75 * var(--widget-height));\n --scrollbar-width: 5px;\n}\n.lil-gui, .lil-gui * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.lil-gui.root {\n width: var(--width, 245px);\n display: flex;\n flex-direction: column;\n background: var(--background-color);\n}\n.lil-gui.root > .title {\n background: var(--title-background-color);\n color: var(--title-text-color);\n}\n.lil-gui.root > .children {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.lil-gui.root > .children::-webkit-scrollbar {\n width: var(--scrollbar-width);\n height: var(--scrollbar-width);\n background: var(--background-color);\n}\n.lil-gui.root > .children::-webkit-scrollbar-thumb {\n border-radius: var(--scrollbar-width);\n background: var(--focus-color);\n}\n@media (pointer: coarse) {\n .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n }\n}\n.lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n}\n.lil-gui.autoPlace {\n max-height: 100%;\n position: fixed;\n top: 0;\n right: 15px;\n z-index: 1001;\n}\n\n.lil-gui .controller {\n display: flex;\n align-items: center;\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n}\n.lil-gui .controller.disabled {\n opacity: 0.5;\n}\n.lil-gui .controller.disabled, .lil-gui .controller.disabled * {\n pointer-events: none !important;\n}\n.lil-gui .controller > .name {\n min-width: var(--name-width);\n flex-shrink: 0;\n white-space: pre;\n padding-right: var(--spacing);\n line-height: var(--widget-height);\n}\n.lil-gui .controller .widget {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--widget-height);\n}\n.lil-gui .controller.string input {\n color: var(--string-color);\n}\n.lil-gui .controller.boolean {\n cursor: pointer;\n}\n.lil-gui .controller.color .display {\n width: 100%;\n height: var(--widget-height);\n border-radius: var(--widget-border-radius);\n position: relative;\n}\n@media (hover: hover) {\n .lil-gui .controller.color .display:hover:before {\n content: " ";\n display: block;\n position: absolute;\n border-radius: var(--widget-border-radius);\n border: 1px solid #fff9;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n.lil-gui .controller.color input[type=color] {\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.lil-gui .controller.color input[type=text] {\n margin-left: var(--spacing);\n font-family: var(--font-family-mono);\n min-width: var(--color-input-min-width);\n width: var(--color-input-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.option select {\n opacity: 0;\n position: absolute;\n width: 100%;\n max-width: 100%;\n}\n.lil-gui .controller.option .display {\n position: relative;\n pointer-events: none;\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n line-height: var(--widget-height);\n max-width: 100%;\n overflow: hidden;\n word-break: break-all;\n padding-left: 0.55em;\n padding-right: 1.75em;\n background: var(--widget-color);\n}\n@media (hover: hover) {\n .lil-gui .controller.option .display.focus {\n background: var(--focus-color);\n }\n}\n.lil-gui .controller.option .display.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.option .display:after {\n font-family: "lil-gui";\n content: "\u2195";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding-right: 0.375em;\n}\n.lil-gui .controller.option .widget,\n.lil-gui .controller.option select {\n cursor: pointer;\n}\n@media (hover: hover) {\n .lil-gui .controller.option .widget:hover .display {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number input {\n color: var(--number-color);\n}\n.lil-gui .controller.number.hasSlider input {\n margin-left: var(--spacing);\n width: var(--slider-input-width);\n min-width: var(--slider-input-min-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.number .slider {\n width: 100%;\n height: var(--widget-height);\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n padding-right: var(--slider-knob-width);\n overflow: hidden;\n cursor: ew-resize;\n touch-action: pan-y;\n}\n@media (hover: hover) {\n .lil-gui .controller.number .slider:hover {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number .slider.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.number .slider.active .fill {\n opacity: 0.95;\n}\n.lil-gui .controller.number .fill {\n height: 100%;\n border-right: var(--slider-knob-width) solid var(--number-color);\n box-sizing: content-box;\n}\n\n.lil-gui-dragging .lil-gui {\n --hover-color: var(--widget-color);\n}\n.lil-gui-dragging * {\n cursor: ew-resize !important;\n}\n\n.lil-gui-dragging.lil-gui-vertical * {\n cursor: ns-resize !important;\n}\n\n.lil-gui .title {\n height: var(--title-height);\n line-height: calc(var(--title-height) - 4px);\n font-weight: 600;\n padding: 0 var(--padding);\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n outline: none;\n text-decoration-skip: objects;\n}\n.lil-gui .title:before {\n font-family: "lil-gui";\n content: "\u25BE";\n padding-right: 2px;\n display: inline-block;\n}\n.lil-gui .title:active {\n background: var(--title-background-color);\n opacity: 0.75;\n}\n@media (hover: hover) {\n body:not(.lil-gui-dragging) .lil-gui .title:hover {\n background: var(--title-background-color);\n opacity: 0.85;\n }\n .lil-gui .title:focus {\n text-decoration: underline var(--focus-color);\n }\n}\n.lil-gui.root > .title:focus {\n text-decoration: none !important;\n}\n.lil-gui.closed > .title:before {\n content: "\u25B8";\n}\n.lil-gui.closed > .children {\n transform: translateY(-7px);\n opacity: 0;\n}\n.lil-gui.closed:not(.transition) > .children {\n display: none;\n}\n.lil-gui.transition > .children {\n transition-duration: 300ms;\n transition-property: height, opacity, transform;\n transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);\n overflow: hidden;\n pointer-events: none;\n}\n.lil-gui .children:empty:before {\n content: "Empty";\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n display: block;\n height: var(--widget-height);\n font-style: italic;\n line-height: var(--widget-height);\n opacity: 0.5;\n}\n.lil-gui.root > .children > .lil-gui > .title {\n border: 0 solid var(--widget-color);\n border-width: 1px 0;\n transition: border-color 300ms;\n}\n.lil-gui.root > .children > .lil-gui.closed > .title {\n border-bottom-color: transparent;\n}\n.lil-gui + .controller {\n border-top: 1px solid var(--widget-color);\n margin-top: 0;\n padding-top: var(--spacing);\n}\n.lil-gui .lil-gui .lil-gui > .title {\n border: none;\n}\n.lil-gui .lil-gui .lil-gui > .children {\n border: none;\n margin-left: var(--folder-indent);\n border-left: 2px solid var(--widget-color);\n}\n.lil-gui .lil-gui .controller {\n border: none;\n}\n\n.lil-gui label, .lil-gui input, .lil-gui button {\n -webkit-tap-highlight-color: transparent;\n}\n.lil-gui input {\n border: 0;\n outline: none;\n font-family: var(--font-family);\n font-size: var(--input-font-size);\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n background: var(--widget-color);\n color: var(--text-color);\n width: 100%;\n}\n@media (hover: hover) {\n .lil-gui input:hover {\n background: var(--hover-color);\n }\n .lil-gui input:active {\n background: var(--focus-color);\n }\n}\n.lil-gui input:disabled {\n opacity: 1;\n}\n.lil-gui input[type=text],\n.lil-gui input[type=number] {\n padding: var(--widget-padding);\n -moz-appearance: textfield;\n}\n.lil-gui input[type=text]:focus,\n.lil-gui input[type=number]:focus {\n background: var(--focus-color);\n}\n.lil-gui input[type=checkbox] {\n appearance: none;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n border-radius: var(--widget-border-radius);\n text-align: center;\n cursor: pointer;\n}\n.lil-gui input[type=checkbox]:checked:before {\n font-family: "lil-gui";\n content: "\u2713";\n font-size: var(--checkbox-size);\n line-height: var(--checkbox-size);\n}\n@media (hover: hover) {\n .lil-gui input[type=checkbox]:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button {\n outline: none;\n cursor: pointer;\n font-family: var(--font-family);\n font-size: var(--font-size);\n color: var(--text-color);\n width: 100%;\n height: var(--widget-height);\n text-transform: none;\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n border: none;\n}\n@media (hover: hover) {\n .lil-gui button:hover {\n background: var(--hover-color);\n }\n .lil-gui button:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button:active {\n background: var(--focus-color);\n}\n\n@font-face {\n font-family: "lil-gui";\n src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff");\n}';function bt(n){let t=document.createElement("style");t.innerHTML=n;let e=document.querySelector("head link[rel=stylesheet], head style");e?document.head.insertBefore(t,e):document.head.appendChild(t)}s(bt,"_injectStyles");var q=!1,M=class M{constructor({parent:t,autoPlace:e=t===void 0,container:i,width:o,title:a="Controls",closeFolders:r=!1,injectStyles:h=!0,touchStyles:g=!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("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",b=>{(b.code==="Enter"||b.code==="Space")&&(b.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(a),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("root"),g&&this.domElement.classList.add("allow-touch-styles"),!q&&h&&(bt(vt),q=!0),i?i.appendChild(this.domElement):e&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),o&&this.domElement.style.setProperty("--width",o+"px"),this._closeFolders=r}add(t,e,i,o,a){if(Object(i)===i)return new T(this,t,e,i);let r=t[e];switch(typeof r){case"number":return new O(this,t,e,i,o,a);case"boolean":return new F(this,t,e);case"string":return new z(this,t,e);case"function":return new k(this,t,e)}console.error("gui.add failed\n property:",e,"\n object:",t,"\n value:",r)}addColor(t,e,i=1){return new D(this,t,e,i)}addFolder(t){let e=new M({parent:this,title:t});return this.root._closeFolders&&e.close(),e}load(t,e=!0){return t.controllers&&this.controllers.forEach(i=>{i instanceof k||i._name in t.controllers&&i.load(t.controllers[i._name])}),e&&t.folders&&this.folders.forEach(i=>{i._title in t.folders&&i.load(t.folders[i._title])}),this}save(t=!0){let e={controllers:{},folders:{}};return this.controllers.forEach(i=>{if(!(i instanceof k)){if(i._name in e.controllers)throw new Error('Cannot save GUI with duplicate property "'.concat(i._name,'"'));e.controllers[i._name]=i.save()}}),t&&this.folders.forEach(i=>{if(i._title in e.folders)throw new Error('Cannot save GUI with duplicate folder "'.concat(i._title,'"'));e.folders[i._title]=i.save()}),e}open(t=!0){return this._setClosed(!t),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("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 e=this.$children.clientHeight;this.$children.style.height=e+"px",this.domElement.classList.add("transition");let i=s(a=>{a.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",i))},"onTransitionEnd");this.$children.addEventListener("transitionend",i);let o=t?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!t),requestAnimationFrame(()=>{this.$children.style.height=o+"px"})}),this}title(t){return this._title=t,this.$title.textContent=t,this}reset(t=!0){return(t?this.controllersRecursive():this.controllers).forEach(i=>i.reset()),this}onChange(t){return this._onChange=t,this}_callOnChange(t){this.parent&&this.parent._callOnChange(t),this._onChange!==void 0&&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),this._onFinishChange!==void 0&&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),this._onOpenClose!==void 0&&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).forEach(t=>t.destroy())}controllersRecursive(){let t=Array.from(this.controllers);return this.folders.forEach(e=>{t=t.concat(e.controllersRecursive())}),t}foldersRecursive(){let t=Array.from(this.folders);return this.folders.forEach(e=>{t=t.concat(e.foldersRecursive())}),t}};s(M,"GUI");var B=M,tt=B;y();y();var x=(()=>{let n=new K;return s(function(e){return n.set(e),"#".concat(n.getHexString())},"normalize")})();function et(n){let t;for(t of n)t()}s(et,"runAll");function Y(n,t){let e=window.location.href,i=new URL(e),o=new URLSearchParams(i.search);for(let a in n)if(n.hasOwnProperty(a)){let r="".concat(t,".").concat(a);o.set(r,n[a])}i.search=o.toString(),history.pushState({path:i.toString()},"",i.toString())}s(Y,"updateCurrentUrlParamsWithNamespace");function J(n,t){let e=new URLSearchParams(window.location.search),i={};for(let[o,a]of e)if(o.startsWith("".concat(n,"."))){let r=o.slice(n.length+1);a==="true"||a==="false"?i[r]=a==="true":typeof(t==null?void 0:t[r])=="number"?i[r]=Number(a):i[r]=a}return{namespace:n,params:i}}s(J,"getUrlParamsWithNamespace");y();function it(n,t){t.domElement.id="interactionPanel";let e=t.addFolder("Click \u{1F447}");At(n,e);let i=t.addFolder("Hover \u{1F681}");xt(n,i)}s(it,"createInteractionControls");function At(n,t){let e={position:"",hoverColor:x(n.getHoverColor())},i=t.add(e,"position").disable(),o=[];function a(){o.forEach(h=>h()),o.length=0}s(a,"reset");let r=0;n.on("click",h=>{var u;let{labels:g,markers:b,coordinate:m}=h;a(),clearInterval(r),i.load(JSON.stringify([m.longitude,m.latitude]));let v=g[0]||b[0];if(v){let c=W(n,v,t);if(!c)return;o.push(c.destroy),c.labelItemFolder.openAnimated()}let l=(u=h.spaces[0])!=null?u:h.objects[0];if(l){let c={id:l.id,...n.getState(l.id),type:l.type,isInView:!1,isInViewCheck:N(n,l.id)},{cleanup:d}=Ct(n,c,t);r=setInterval(()=>{c.isInView=n.isInView(v||l)},500),o.push(d)}})}s(At,"createClickControls");var yt=["interactive"];function Ct(n,t,e){let i=e.addFolder("".concat(t.type,"-").concat(t.id));for(let o in t){if(o==="visible"&&i.add(t,o).onChange(a=>{n.updateState(t.id,{[o]:a})}),o==="color"||o==="hoverColor"){t[o]=x(t[o]),i.addColor(t,o).onChange(a=>{n.updateState(t.id,{[o]:a})});continue}if(o==="height"){i.add(t,o,0,20,1).onChange(a=>{n.updateState(t.id,{[o]:a})});continue}if(o==="texture"){i.addFolder("Texture - side").add(t.texture,"url").onChange(r=>{n.updateState(t.id,{texture:{url:r}})});continue}if(o==="topTexture"){i.addFolder("Texture - top").add(t.topTexture,"url").onChange(r=>{n.updateState(t.id,{topTexture:{url:r}})});continue}if(o==="opacity"){i.add(t,o,0,1,.1).onChange(a=>{n.updateState(t.id,{[o]:a})});continue}yt.includes(o)&&i.add(t,o).onChange(a=>{n.updateState(t.id,{[o]:a})})}return i.add(t,"isInView").listen().disable(),i.add(t,"isInViewCheck"),{cleanup(){i.destroy()}}}s(Ct,"renderByProp");function xt(n,t){n.setHoverColor("#1f3a7a");let e={position:"",hoverColor:x(n.getHoverColor()),intersected:"",type:"",id:""},i=t.add(e,"position").disable();t.add(e,"id").disable().listen(),t.add(e,"type").disable().listen(),t.addColor(e,"hoverColor").onChange(r=>{n.setHoverColor(r)});let o=[];function a(){o.forEach(r=>r()),o.length=0}s(a,"reset"),n.on("hover",r=>{var c,d,A;let{coordinate:h,spaces:g,objects:b,markers:m,labels:v}=r;a(),i.load(JSON.stringify([h.longitude,h.latitude]));let l=(A=(d=(c=g[0])!=null?c:b[0])!=null?d:m[0])!=null?A:v[0];if(!l)return;let u=n.getState(l);u&&(e.type=u.type,e.id=l.id)})}s(xt,"createHoverControls");function N(n,t){return s(function(){console.log("isInView",n.isInView(t))},"isInView")}s(N,"createIsInViewHandler");function nt(n,t,e){let i={labels:{},all(){e.Labels.all().forEach(u=>{this.labels[u.id]=u}),g()},removeAllLabels(){e.Labels.removeAll().forEach(u=>{delete this.labels[u.id]}),g()}},{addLabel:o,destroy:a}=wt(n,e);n.add(i,"all"),n.add(i,"removeAllLabels");let r=n.addFolder("Label List");n.close();let h=new Map,{rerender:g}=b();function b(){function l(d){var A;delete i.labels[d.id],(A=h.get(d.id))==null||A.destroy()}s(l,"remove");function u(d){let A=W(e,d,r,{onRemove:p=>{l(p)}});if(!A)return;let{labelItemFolder:f}=A;h.set(d.id,f)}s(u,"add");function c(){r.destroy(),r=n.addFolder("Label");for(let d in i.labels){let A=i.labels[d];u(A)}}return s(c,"rerender"),{rerender:c,add:u,remove:l}}s(b,"createLabelControls"),n.domElement.classList.add("list-items");let m;e.on("click",({labels:l,coordinate:u})=>{if(!n._closed)if(l[0]){m==null||m.close();let c=h.get(l[0].id);if(n.open(),!c)return;c==null||c.open(),c==null||c.domElement.scrollIntoView({block:"start"}),c==null||c.domElement.focus(),m=c}else o(u)});function v(l){for(let u of l)i.labels[u.id]=u;g()}return s(v,"populatelabels"),{populatelabels:v,destroy(){a()}}}s(nt,"createLabelControls");function W(n,t,e,{onRemove:i}={}){var b,m,v,l;let o=e.addFolder("".concat((b=t.text)==null?void 0:b.substring(0,12)));o.onChange(u=>{n.updateState(t,{appearance:g.appearance,interactive:g.interactive})}),o.close();let a=n.getState(t);if((a==null?void 0:a.type)!=="label")throw new Error("error getting state for label: ".concat(t.id));let{appearance:r,interactive:h}=a;if(!r||r.margin==null||h==null)throw new Error("incomplte label state");let g={text:t.text,interactive:h,appearance:{...r,margin:r.margin||0,marker:{foregroundColor:(v=(m=r.marker)==null?void 0:m.foregroundColor)!=null&&v.active?x((l=r.marker.foregroundColor)==null?void 0:l.active):"black"},text:{foregroundColor:x(r.text.foregroundColor)}},remove(){n.Labels.remove(t),i==null||i(t),o.destroy()},isInView:N(n,t.id)};return o.add(g.appearance,"margin",0,20).name("margin"),o.add(g,"text"),o.add(g,"interactive"),o.addColor(g.appearance.marker,"foregroundColor").name("marker foreground"),o.addColor(g.appearance.text,"foregroundColor").name("text forground"),o.add(g,"isInView"),o.add(g,"remove"),{labelItemFolder:o,destroy(){o.destroy()}}}s(W,"addLabelControlToFolder");function wt(n,t){let e=n.addFolder("Add"),i={onClick:!1,margin:0,text:"New Label!",interactive:!0,marginForegroundColor:x("skyblue"),marginBackgroundColor:x("coral"),textForegroundColor:x("slategray"),textBackgroundColor:x("white")};return e.add(i,"onClick"),e.add(i,"margin"),e.add(i,"interactive"),e.add(i,"text"),e.addColor(i,"marginForegroundColor"),e.addColor(i,"marginBackgroundColor"),e.addColor(i,"textForegroundColor"),e.addColor(i,"textBackgroundColor"),{destroy(){e.destroy()},addLabel(o){return e._closed||!i.onClick?void 0:t.Labels.add(o,i.text,{appearance:{margin:i.margin,marker:{foregroundColor:{active:i.marginForegroundColor,inactive:i.marginForegroundColor},backgroundColor:{active:i.marginBackgroundColor,inactive:i.marginBackgroundColor}},text:{foregroundColor:i.textForegroundColor,backgroundColor:i.marginBackgroundColor}},interactive:i.interactive})}}}s(wt,"createAddControl");var rt={};y();var ot="camera-ui";function st(n,t){let e=n.addFolder("Camera \u{1F4F7}").onOpenClose(d=>{Y({opened:!d._closed},ot)}),{params:i}=J(ot);i.opened||e.close();let o=t.Camera.center.toJSON(),a=document.createElement("div");Object.assign(a.style,{display:"none",position:"absolute",left:"0px",top:"0px",bottom:"0px",right:"0px",backgroundColor:"aqua",pointerEvents:"none",opacity:.5}),document.body.appendChild(a);let r={center_lat:o.latitude,center_lon:o.longitude,zoomLevel:t.Camera.zoomLevel,pitch:t.Camera.pitch,bearing:t.Camera.bearing,minZoomLevel:t.Camera.minZoomLevel,maxZoomLevel:t.Camera.maxZoomLevel,inset_top:0,inset_left:0,inset_right:0,inset_bottom:0,animateOnLoad:!0,share:()=>{Y(e.save().controllers,"camera"),navigator.clipboard.writeText(window.location.href)},visualizeInset:!1,"Focus on click":!0,"Focus on current floor":()=>{t.Camera.focusOn([t.currentFloor],{screenOffsets:{top:20,left:20,right:20,bottom:20}})}};function h(){Object.assign(a.style,{left:r.inset_left+"px",top:r.inset_top+"px",bottom:r.inset_bottom+"px",right:r.inset_right+"px"})}s(h,"updateInsetVisualizer"),e.add(r,"center_lat").listen().disable(),e.add(r,"center_lon").listen().disable(),e.add(r,"zoomLevel",16,22,.5).listen().disable(),e.add(r,"pitch").listen().disable(),e.add(r,"bearing").listen().disable(),e.add(r,"minZoomLevel",5,22,.5).onChange(d=>{t.Camera.setMinZoomLevel(d)}),e.add(r,"maxZoomLevel",10,22,.5).onChange(d=>{t.Camera.setMaxZoomLevel(d)}),e.add(r,"animateOnLoad"),e.add(r,"visualizeInset").onChange(d=>{d?a.style.display="block":a.style.display="none"});let{innerHeight:g,innerWidth:b}=window;e.add(r,"inset_top",0,g,1).onChange(c),e.add(r,"inset_bottom",0,g,1).onChange(c),e.add(r,"inset_left",0,b,1).onChange(c),e.add(r,"inset_right",0,b,1).onChange(c);let m=Et(t);e.add(r,"Focus on click").onChange(d=>{d?t.on("click",m):t.off("click",m)}),r["Focus on click"]&&t.on("click",m),e.add(r,"share"),e.add(r,"Focus on current floor");let v=s(d=>{e._closed||(r.center_lat=d.center.latitude,r.center_lon=d.center.longitude,r.zoomLevel=d.zoomLevel,r.bearing=d.bearing,r.pitch=d.pitch)},"onCameraChanged");t.on("camera-change",v);let{params:l}=J("camera",r);if(Object.keys(l).length>0){let d=l;t.Camera.setScreenOffsets({top:d.inset_top,left:d.inset_left,right:d.inset_right,bottom:d.inset_bottom});let A={pitch:d.pitch,center:new Q(d.center_lat,d.center_lon),bearing:d.bearing,zoomLevel:d.zoomLevel};d.animateOnLoad?t.Camera.animateTo(A):t.Camera.set(A),e.load({controllers:d,folders:{}}),h()}let u=[()=>{t.off("camera-change",v)}];function c(){t.Camera.setScreenOffsets({top:r.inset_top,left:r.inset_left,right:r.inset_right,bottom:r.inset_bottom}),h()}return s(c,"updateInset"),()=>({destroy(){e.destroy(),et(u)}})}s(st,"createCameraControls");function Et(n){return s(function(e){var r;let{spaces:i,objects:o}=e,a=(r=i[0])!=null?r:o[0];a&&n.Camera.focusOn(a)},"handler")}s(Et,"createHandler");y();function at(n,t,e){let i={markers:{},removeAllMarkers(){e.Markers.removeAll().forEach(u=>{delete this.markers[u.id]}),g()}},{addMarker:o,destroy:a}=kt(n,e);n.add(i,"removeAllMarkers");let r=n.addFolder("Marker List");n.close();let h=new Map,{rerender:g}=b();function b(){function l(d){var A;delete i.markers[d.id],(A=h.get(d.id))==null||A.destroy()}s(l,"remove");function u(d){let A=$t(e,d,r,{onRemove:p=>{l(p)}});if(!A)return;let{markerItemFolder:f}=A;h.set(d.id,f)}s(u,"add");function c(){r.destroy(),r=n.addFolder("marker");for(let d in i.markers){let A=i.markers[d];u(A)}}return s(c,"rerender"),{rerender:c,add:u,remove:l}}s(b,"createMarkerControls"),n.domElement.classList.add("list-items");let m;e.on("click",({markers:l,coordinate:u})=>{if(!n._closed)if(l[0]){m==null||m.close();let c=h.get(l[0].id);if(n.open(),!c)return;c==null||c.open(),c==null||c.domElement.scrollIntoView({block:"start"}),c==null||c.domElement.focus(),m=c}else o(u)});function v(l){for(let u of l)i.markers[u.id]=u;g()}return s(v,"populateMarkers"),{populateMarkers:v,destroy(){a()}}}s(at,"createMarkerControls");function $t(n,t,e,{onRemove:i}={}){let o=e.addFolder("".concat(t.id.toString().substring(0,8)));o.onChange(g=>{n.updateState(t,{interactive:h.interactive})}),o.close();let a=n.getState(t);if((a==null?void 0:a.type)!=="marker")throw new Error("error getting state for marker: ".concat(t.id));let{interactive:r}=a;if(r==null)throw new Error("incomplte label state");let h={interactive:r,remove(){n.Markers.remove(t),i==null||i(t),o.destroy()}};return o.add(h,"interactive"),o.add(h,"remove"),{markerItemFolder:o,destroy(){o.destroy()}}}s($t,"addMarkerControlToFolder");function kt(n,t){let e=n.addFolder("Add"),i={onClick:!1,interactive:!0};return e.add(i,"onClick"),e.add(i,"interactive"),{destroy(){e.destroy()},addMarker(o){return e._closed||!i.onClick?void 0:t.Markers.add(o,"<div>New Marker</div>",{interactive:i.interactive})}}}s(kt,"createAddControl");y();function lt(n,t){let e=n.addFolder("Walls").close(),i={visible:!0,topColor:"#b1fa87",color:"#e8e8e8",texture:{url:""},topTexture:{url:""}};e.add(i,"visible").onChange(r=>{t.updateState("walls",{visible:r})}),e.addColor(i,"topColor").onChange(r=>{t.updateState("walls",{topColor:r})}),e.addColor(i,"color").onChange(r=>{t.updateState("walls",{color:r})}),e.addFolder("Texture - side").add(i.texture,"url").onChange(r=>{t.updateState("walls",{texture:{url:r}})}),e.addFolder("Texture - top").add(i.topTexture,"url").onChange(r=>{t.updateState("walls",{topTexture:{url:r}})}),t.updateState("walls",{topColor:i.topColor}),t.updateState("walls",{color:i.color})}s(lt,"createGeometryControl");function ct(n,t){Lt();let e=new tt({title:"SDK Controls"});e.domElement.classList.add("mappedin-js-inspector"),it(t,e),st(e,t);let i=e.addFolder("Levels").close(),o=e.addFolder("Scene Controls"),a=e.addFolder("Labels"),r=e.addFolder("Markers");lt(e,t);let h={level:t.currentFloor.id,load:()=>{let l=localStorage.getItem("mappedin-debug"),u=l?JSON.parse(l):{};for(let c in u)t.updateState(c,u[c])},clear(){localStorage.removeItem("mappedin-debug")}};e.add(h,"load"),e.add(h,"clear");let{populatelabels:g}=nt(a,n,t),{populateMarkers:b}=at(r,n,t),m=n.getByType("floor").reduce((l,u)=>(l[u.name]=u.id,l),{}),v=i.add(h,"level",m).onChange(l=>{t.setFloor(l),h.level=t.currentFloor.id,v.updateDisplay()});return t.on("floor-change-start",l=>{i.controllers[0].setValue(l.floor.id)}),n.getByType("space").forEach(l=>{t.updateState(l,{interactive:!0})}),n.getByType("object").forEach(l=>{t.updateState(l,{interactive:!0})}),n.getByType("object").forEach(l=>{t.updateState(l,{interactive:!0})}),t.setHoverColor("#a2b7e6"),{populatelabels:g,sceneFolder:o,populateMarkers:b}}s(ct,"createUi");var dt="mappedin-sdk-debug-css";function Lt(){if(document.getElementById(dt))return;let n=document.createElement("style");n.id=dt,n.textContent=rt,document.head.appendChild(n)}s(Lt,"injectCss");var R=class R{constructor(t,e){E(this,"_enabled",!1);E(this,"mv");E(this,"api");E(this,"mapData");E(this,"storeStateToLocalStorageEnabled",!1);this.mv=t,this.api=e,this.mapData=this.api.getMapData()}setMapData(t){this.mapData=t}async enable(){var e;if(this._enabled)return;if(this._enabled=!0,!this.mapData)throw new Error("Please set mapData before enable debug.");let{sceneFolder:t}=ct(this.mapData,this.mv);Z(this.api.core,t),(e=this.api.getMapDataInternal())==null||e.spaces.forEach(i=>{this.mv.updateState(i.id,{interactive:!0})})}get enabled(){return this._enabled}storeState(t,e){if(!this.storeStateToLocalStorageEnabled)return;let i=localStorage.getItem("mappedin-debug"),o=i?JSON.parse(i):{};o[t]={...o[t],...e},localStorage.setItem("mappedin-debug",JSON.stringify(o))}};s(R,"Inspector");var X=R;export{X as Inspector};