@realsee/dnalogel 3.50.2 → 3.50.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/dist/index.cjs.js +3 -3
- package/dist/index.js +194 -194
- package/dist/index.umd.js +3 -3
- package/libs/base/BasePlugin.js +1 -1
- package/libs/shared-utils/Object3DHelper/Base/BaseHelper.js +24 -24
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(ue,ee){typeof exports=="object"&&typeof module!="undefined"?ee(exports,require("three"),require("three/examples/jsm/renderers/CSS3DRenderer"),require("@realsee/five/line"),require("animejs"),require("@realsee/five"),require("hammerjs"),require("three/examples/jsm/loaders/FBXLoader"),require("earcut"),require("@realsee/five/gltf-loader")):typeof define=="function"&&define.amd?define(["exports","three","three/examples/jsm/renderers/CSS3DRenderer","@realsee/five/line","animejs","@realsee/five","hammerjs","three/examples/jsm/loaders/FBXLoader","earcut","@realsee/five/gltf-loader"],ee):(ue=typeof globalThis!="undefined"?globalThis:ue||self,ee(ue.dnalogel={},ue.THREE,ue.CSS3DRenderer,ue.Line,ue.anime,ue.FiveSDK,ue.Hammer,ue.FBXLoader,ue.earcut,ue.GLTFLoader))})(this,function(ue,ee,Ut,Hn,Es,Zt,rl,go,pr,sl){"use strict";var b6=Object.defineProperty,A6=Object.defineProperties;var w6=Object.getOwnPropertyDescriptors;var Yd=Object.getOwnPropertySymbols;var aC=Object.prototype.hasOwnProperty,lC=Object.prototype.propertyIsEnumerable;var fv=(ue,ee,Ut)=>ee in ue?b6(ue,ee,{enumerable:!0,configurable:!0,writable:!0,value:Ut}):ue[ee]=Ut,O=(ue,ee)=>{for(var Ut in ee||(ee={}))aC.call(ee,Ut)&&fv(ue,Ut,ee[Ut]);if(Yd)for(var Ut of Yd(ee))lC.call(ee,Ut)&&fv(ue,Ut,ee[Ut]);return ue},Pe=(ue,ee)=>A6(ue,w6(ee));var mo=(ue,ee)=>{var Ut={};for(var Hn in ue)aC.call(ue,Hn)&&ee.indexOf(Hn)<0&&(Ut[Hn]=ue[Hn]);if(ue!=null&&Yd)for(var Hn of Yd(ue))ee.indexOf(Hn)<0&&lC.call(ue,Hn)&&(Ut[Hn]=ue[Hn]);return Ut};var v=(ue,ee,Ut)=>(fv(ue,typeof ee!="symbol"?ee+"":ee,Ut),Ut);var te=(ue,ee,Ut)=>new Promise((Hn,Es)=>{var Zt=pr=>{try{go(Ut.next(pr))}catch(sl){Es(sl)}},rl=pr=>{try{go(Ut.throw(pr))}catch(sl){Es(sl)}},go=pr=>pr.done?Hn(pr.value):Promise.resolve(pr.value).then(Zt,rl);go((Ut=Ut.apply(ue,ee)).next())});function uC(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const C=uC(ee);function dC(){console.debug("%c %c@realsee/dnalogel %cv3.50.2",["background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')","background-repeat: no-repeat","background-position: 0 center","padding-left: 8px"].join(";"),"","background-color: #12ce9b;color:black;padding:0 6px;border-radius: 3px")}function fC(){const e=typeof OffscreenCanvas!="undefined",n=e&&new OffscreenCanvas(1,1).getContext("webgl")!==null;e&&!n&&Object.assign(window,{OffscreenCanvas:function(t,i){const r=document.createElement("canvas");return r.width=t,r.height=i,r}})}function pv(){}const mv=()=>Promise.resolve(),gv={__queue:Promise.resolve()};function pC(e=mv){gv.__queue=gv.__queue.then(e).catch(mv)}function eh(e,n,t){const i=e.x,r=e.y,s=Math.floor(i/n*1e4)/1e4,o=Math.floor(r/t*1e4)/1e4;return{x:s,y:o}}function Xd(e,n,t){const{x:i,y:r}=e,s=i*n,o=r*t;return{x:s,y:o}}function th(e){if(e.length<2)return{};const n=e.slice(-2),t=n[0],i={x:(n[0].x+n[1].x)/2,y:(n[0].y+n[1].y)/2};return{control:t,end:i}}function mC(e,n,t=pv){new Promise(i=>{setTimeout(()=>{t(),i(!0)},n*e)})}const gC=window,vv=window.requestAnimationFrame||gC.webkitRequestAnimationFrame||(e=>setTimeout(e,16));function nh(e,n=0){n<=0?vv(e):vv(()=>nh(e,n-1))}var Gi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return this.None(e)},Out:function(e){return this.None(e)},InOut:function(e){return this.None(e)}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Gi.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Gi.Bounce.In(e*2)*.5:Gi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),vo=function(){return performance.now()},yv=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(t){return n._tweens[t]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,t){n===void 0&&(n=vo()),t===void 0&&(t=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<i.length;r++){var s=this._tweens[i[r]],o=!t;s&&s.update(n,o)===!1&&!t&&delete this._tweens[i[r]]}i=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),_s={Linear:function(e,n){var t=e.length-1,i=t*n,r=Math.floor(i),s=_s.Utils.Linear;return n<0?s(e[0],e[1],i):n>1?s(e[t],e[t-1],t-i):s(e[r],e[r+1>t?t:r+1],i-r)},Bezier:function(e,n){for(var t=0,i=e.length-1,r=Math.pow,s=_s.Utils.Bernstein,o=0;o<=i;o++)t+=r(1-n,i-o)*r(n,o)*e[o]*s(i,o);return t},CatmullRom:function(e,n){var t=e.length-1,i=t*n,r=Math.floor(i),s=_s.Utils.CatmullRom;return e[0]===e[t]?(n<0&&(r=Math.floor(i=t*(1+n))),s(e[(r-1+t)%t],e[r],e[(r+1)%t],e[(r+2)%t],i-r)):n<0?e[0]-(s(e[0],e[0],e[1],e[1],-i)-e[0]):n>1?e[t]-(s(e[t],e[t],e[t-1],e[t-1],i-t)-e[t]):s(e[r?r-1:0],e[r],e[t<r+1?t:r+1],e[t<r+2?t:r+2],i-r)},Utils:{Linear:function(e,n,t){return(n-e)*t+e},Bernstein:function(e,n){var t=_s.Utils.Factorial;return t(e)/t(n)/t(e-n)},Factorial:function(){var e=[1];return function(n){var t=1;if(e[n])return e[n];for(var i=n;i>1;i--)t*=i;return e[n]=t,t}}(),CatmullRom:function(e,n,t,i,r){var s=(t-e)*.5,o=(i-n)*.5,a=r*r,l=r*a;return(2*n-2*t+s+o)*l+(-3*n+3*t-2*s-o)*a+s*r+n}}},Zd=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Jd=new yv,ih=function(){function e(n,t){t===void 0&&(t=Jd),this._object=n,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Gi.Linear.None,this._interpolationFunction=_s.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Zd.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,t){if(t===void 0&&(t=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=t<0?0:t,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,t){if(n===void 0&&(n=vo()),t===void 0&&(t=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||t){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var s in this._valuesEnd)r[s]=this._valuesEnd[s];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,t)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,t,i,r,s){for(var o in i){var a=n[o],l=Array.isArray(a),c=l?"array":typeof a,h=!l&&Array.isArray(i[o]);if(!(c==="undefined"||c==="function")){if(h){var u=i[o];if(u.length===0)continue;for(var d=[a],f=0,m=u.length;f<m;f+=1){var p=this._handleRelativeValue(a,u[f]);if(isNaN(p)){h=!1,console.warn("Found invalid interpolation list. Skipping.");break}d.push(p)}h&&(i[o]=d)}if((c==="object"||l)&&a&&!h){t[o]=l?[]:{};var g=a;for(var y in g)t[o][y]=g[y];r[o]=l?[]:{};var u=i[o];if(!this._isDynamic){var b={};for(var y in u)b[y]=u[y];i[o]=u=b}this._setupProperties(g,t[o],u,r[o],s)}else(typeof t[o]=="undefined"||s)&&(t[o]=a),l||(t[o]*=1),h?r[o]=i[o].slice().reverse():r[o]=t[o]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=vo()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=vo()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,t=this._chainedTweens.length;n<t;n++)this._chainedTweens[n].stop();return this},e.prototype.group=function(n){return n===void 0&&(n=Jd),this._group=n,this},e.prototype.delay=function(n){return n===void 0&&(n=0),this._delayTime=n,this},e.prototype.repeat=function(n){return n===void 0&&(n=0),this._initialRepeat=n,this._repeat=n,this},e.prototype.repeatDelay=function(n){return this._repeatDelayTime=n,this},e.prototype.yoyo=function(n){return n===void 0&&(n=!1),this._yoyo=n,this},e.prototype.easing=function(n){return n===void 0&&(n=Gi.Linear.None),this._easingFunction=n,this},e.prototype.interpolation=function(n){return n===void 0&&(n=_s.Linear),this._interpolationFunction=n,this},e.prototype.chain=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return this._chainedTweens=n,this},e.prototype.onStart=function(n){return this._onStartCallback=n,this},e.prototype.onEveryStart=function(n){return this._onEveryStartCallback=n,this},e.prototype.onUpdate=function(n){return this._onUpdateCallback=n,this},e.prototype.onRepeat=function(n){return this._onRepeatCallback=n,this},e.prototype.onComplete=function(n){return this._onCompleteCallback=n,this},e.prototype.onStop=function(n){return this._onStopCallback=n,this},e.prototype.update=function(n,t){var i=this,r;if(n===void 0&&(n=vo()),t===void 0&&(t=!0),this._isPaused)return!0;var s,o=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(n>o)return!1;t&&this.start(n,!0)}if(this._goToEnd=!1,n<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var a=n-this._startTime,l=this._duration+((r=this._repeatDelayTime)!==null&&r!==void 0?r:this._delayTime),c=this._duration+this._repeat*l,h=function(){if(i._duration===0||a>c)return 1;var g=Math.trunc(a/l),y=a-g*l,b=Math.min(y/i._duration,1);return b===0&&a===i._duration?1:b},u=h(),d=this._easingFunction(u);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,u),this._duration===0||a>=this._duration)if(this._repeat>0){var f=Math.min(Math.trunc((a-this._duration)/l)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=f);for(s in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[s]=="string"&&(this._valuesStartRepeat[s]=this._valuesStartRepeat[s]+parseFloat(this._valuesEnd[s])),this._yoyo&&this._swapEndStartRepeatValues(s),this._valuesStart[s]=this._valuesStartRepeat[s];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=l*f,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var m=0,p=this._chainedTweens.length;m<p;m++)this._chainedTweens[m].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(n,t,i,r){for(var s in i)if(t[s]!==void 0){var o=t[s]||0,a=i[s],l=Array.isArray(n[s]),c=Array.isArray(a),h=!l&&c;h?n[s]=this._interpolationFunction(a,r):typeof a=="object"&&a?this._updateProperties(n[s],o,a,r):(a=this._handleRelativeValue(o,a),typeof a=="number"&&(n[s]=o+(a-o)*r))}},e.prototype._handleRelativeValue=function(n,t){return typeof t!="string"?t:t.charAt(0)==="+"||t.charAt(0)==="-"?n+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(n){var t=this._valuesStartRepeat[n],i=this._valuesEnd[n];typeof i=="string"?this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(i):this._valuesStartRepeat[n]=this._valuesEnd[n],this._valuesEnd[n]=t},e}(),vC="23.1.1",yC=Zd.nextId,ji=Jd,bC=ji.getAll.bind(ji),AC=ji.removeAll.bind(ji),wC=ji.add.bind(ji),bv=ji.remove.bind(ji),xC=ji.update.bind(ji),Av={Easing:Gi,Group:yv,Interpolation:_s,now:vo,Sequence:Zd,nextId:yC,Tween:ih,VERSION:vC,getAll:bC,removeAll:AC,add:wC,remove:bv,update:xC};function MC(e,n,t,i=Gi.Linear.None){const r=new ih(e).to(n,t).easing(i).start();function s(o){r.update(o)&&requestAnimationFrame(s)}return requestAnimationFrame(s),r}var mr=(e=>(e.Drawline="Drawline",e.Undo="Undo",e.Exit="Exit",e))(mr||{});const ol=Symbol("$$PAINT_BRUSH_EVENT$$");function rh(e){return e[ol]||(e[ol]={}),e[ol]}function CC(e){e[ol]||delete e[ol]}let PC=class{hasListener(n){const t=rh(this);return t&&t[n]&&t[n].length>0}on(n,t,i){const r=rh(this);return r[n]||(r[n]=[]),r[n].push([t,i||!1]),()=>this.off(n,t)}once(n,t){return this.on(n,t,!0)}off(n,t){if(n===void 0){CC(this);return}const i=rh(this);if(i[n]||(i[n]=[]),t===void 0){i[n].length=0;return}let r=0;for(;r<i[n].length&&i[n][r][0]!==t;r++);r<i[n].length&&i[n].splice(r,1)}emit(n,...t){let i=!1;const s=rh(this)[n]||[];for(let o of s.slice()){const[a,l=!1]=o,c=a(...t);l&&this.off(n,a),c===!1&&(i=!0)}return i}};function Hr(){return((1+Math.random())*65536|0).toString(16).substring(1)}function wn(){return(Hr()+Hr()+"-"+Hr()+"-4"+Hr().substr(0,3)+"-"+Hr()+"-"+Hr()+Hr()+Hr()).toLowerCase()}const EC=`
|
|
1
|
+
(function(ue,ee){typeof exports=="object"&&typeof module!="undefined"?ee(exports,require("three"),require("three/examples/jsm/renderers/CSS3DRenderer"),require("@realsee/five/line"),require("animejs"),require("@realsee/five"),require("hammerjs"),require("three/examples/jsm/loaders/FBXLoader"),require("earcut"),require("@realsee/five/gltf-loader")):typeof define=="function"&&define.amd?define(["exports","three","three/examples/jsm/renderers/CSS3DRenderer","@realsee/five/line","animejs","@realsee/five","hammerjs","three/examples/jsm/loaders/FBXLoader","earcut","@realsee/five/gltf-loader"],ee):(ue=typeof globalThis!="undefined"?globalThis:ue||self,ee(ue.dnalogel={},ue.THREE,ue.CSS3DRenderer,ue.Line,ue.anime,ue.FiveSDK,ue.Hammer,ue.FBXLoader,ue.earcut,ue.GLTFLoader))})(this,function(ue,ee,Ut,Hn,Es,Zt,rl,go,pr,sl){"use strict";var b6=Object.defineProperty,A6=Object.defineProperties;var w6=Object.getOwnPropertyDescriptors;var Yd=Object.getOwnPropertySymbols;var aC=Object.prototype.hasOwnProperty,lC=Object.prototype.propertyIsEnumerable;var fv=(ue,ee,Ut)=>ee in ue?b6(ue,ee,{enumerable:!0,configurable:!0,writable:!0,value:Ut}):ue[ee]=Ut,O=(ue,ee)=>{for(var Ut in ee||(ee={}))aC.call(ee,Ut)&&fv(ue,Ut,ee[Ut]);if(Yd)for(var Ut of Yd(ee))lC.call(ee,Ut)&&fv(ue,Ut,ee[Ut]);return ue},Pe=(ue,ee)=>A6(ue,w6(ee));var mo=(ue,ee)=>{var Ut={};for(var Hn in ue)aC.call(ue,Hn)&&ee.indexOf(Hn)<0&&(Ut[Hn]=ue[Hn]);if(ue!=null&&Yd)for(var Hn of Yd(ue))ee.indexOf(Hn)<0&&lC.call(ue,Hn)&&(Ut[Hn]=ue[Hn]);return Ut};var v=(ue,ee,Ut)=>(fv(ue,typeof ee!="symbol"?ee+"":ee,Ut),Ut);var te=(ue,ee,Ut)=>new Promise((Hn,Es)=>{var Zt=pr=>{try{go(Ut.next(pr))}catch(sl){Es(sl)}},rl=pr=>{try{go(Ut.throw(pr))}catch(sl){Es(sl)}},go=pr=>pr.done?Hn(pr.value):Promise.resolve(pr.value).then(Zt,rl);go((Ut=Ut.apply(ue,ee)).next())});function uC(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const C=uC(ee);function dC(){console.debug("%c %c@realsee/dnalogel %cv3.50.3",["background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')","background-repeat: no-repeat","background-position: 0 center","padding-left: 8px"].join(";"),"","background-color: #12ce9b;color:black;padding:0 6px;border-radius: 3px")}function fC(){const e=typeof OffscreenCanvas!="undefined",n=e&&new OffscreenCanvas(1,1).getContext("webgl")!==null;e&&!n&&Object.assign(window,{OffscreenCanvas:function(t,i){const r=document.createElement("canvas");return r.width=t,r.height=i,r}})}function pv(){}const mv=()=>Promise.resolve(),gv={__queue:Promise.resolve()};function pC(e=mv){gv.__queue=gv.__queue.then(e).catch(mv)}function eh(e,n,t){const i=e.x,r=e.y,s=Math.floor(i/n*1e4)/1e4,o=Math.floor(r/t*1e4)/1e4;return{x:s,y:o}}function Xd(e,n,t){const{x:i,y:r}=e,s=i*n,o=r*t;return{x:s,y:o}}function th(e){if(e.length<2)return{};const n=e.slice(-2),t=n[0],i={x:(n[0].x+n[1].x)/2,y:(n[0].y+n[1].y)/2};return{control:t,end:i}}function mC(e,n,t=pv){new Promise(i=>{setTimeout(()=>{t(),i(!0)},n*e)})}const gC=window,vv=window.requestAnimationFrame||gC.webkitRequestAnimationFrame||(e=>setTimeout(e,16));function nh(e,n=0){n<=0?vv(e):vv(()=>nh(e,n-1))}var Gi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return this.None(e)},Out:function(e){return this.None(e)},InOut:function(e){return this.None(e)}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Gi.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Gi.Bounce.In(e*2)*.5:Gi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),vo=function(){return performance.now()},yv=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(t){return n._tweens[t]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,t){n===void 0&&(n=vo()),t===void 0&&(t=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<i.length;r++){var s=this._tweens[i[r]],o=!t;s&&s.update(n,o)===!1&&!t&&delete this._tweens[i[r]]}i=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),_s={Linear:function(e,n){var t=e.length-1,i=t*n,r=Math.floor(i),s=_s.Utils.Linear;return n<0?s(e[0],e[1],i):n>1?s(e[t],e[t-1],t-i):s(e[r],e[r+1>t?t:r+1],i-r)},Bezier:function(e,n){for(var t=0,i=e.length-1,r=Math.pow,s=_s.Utils.Bernstein,o=0;o<=i;o++)t+=r(1-n,i-o)*r(n,o)*e[o]*s(i,o);return t},CatmullRom:function(e,n){var t=e.length-1,i=t*n,r=Math.floor(i),s=_s.Utils.CatmullRom;return e[0]===e[t]?(n<0&&(r=Math.floor(i=t*(1+n))),s(e[(r-1+t)%t],e[r],e[(r+1)%t],e[(r+2)%t],i-r)):n<0?e[0]-(s(e[0],e[0],e[1],e[1],-i)-e[0]):n>1?e[t]-(s(e[t],e[t],e[t-1],e[t-1],i-t)-e[t]):s(e[r?r-1:0],e[r],e[t<r+1?t:r+1],e[t<r+2?t:r+2],i-r)},Utils:{Linear:function(e,n,t){return(n-e)*t+e},Bernstein:function(e,n){var t=_s.Utils.Factorial;return t(e)/t(n)/t(e-n)},Factorial:function(){var e=[1];return function(n){var t=1;if(e[n])return e[n];for(var i=n;i>1;i--)t*=i;return e[n]=t,t}}(),CatmullRom:function(e,n,t,i,r){var s=(t-e)*.5,o=(i-n)*.5,a=r*r,l=r*a;return(2*n-2*t+s+o)*l+(-3*n+3*t-2*s-o)*a+s*r+n}}},Zd=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Jd=new yv,ih=function(){function e(n,t){t===void 0&&(t=Jd),this._object=n,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Gi.Linear.None,this._interpolationFunction=_s.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Zd.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,t){if(t===void 0&&(t=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=t<0?0:t,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,t){if(n===void 0&&(n=vo()),t===void 0&&(t=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||t){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var s in this._valuesEnd)r[s]=this._valuesEnd[s];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,t)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,t,i,r,s){for(var o in i){var a=n[o],l=Array.isArray(a),c=l?"array":typeof a,h=!l&&Array.isArray(i[o]);if(!(c==="undefined"||c==="function")){if(h){var u=i[o];if(u.length===0)continue;for(var d=[a],f=0,m=u.length;f<m;f+=1){var p=this._handleRelativeValue(a,u[f]);if(isNaN(p)){h=!1,console.warn("Found invalid interpolation list. Skipping.");break}d.push(p)}h&&(i[o]=d)}if((c==="object"||l)&&a&&!h){t[o]=l?[]:{};var g=a;for(var y in g)t[o][y]=g[y];r[o]=l?[]:{};var u=i[o];if(!this._isDynamic){var b={};for(var y in u)b[y]=u[y];i[o]=u=b}this._setupProperties(g,t[o],u,r[o],s)}else(typeof t[o]=="undefined"||s)&&(t[o]=a),l||(t[o]*=1),h?r[o]=i[o].slice().reverse():r[o]=t[o]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=vo()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=vo()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,t=this._chainedTweens.length;n<t;n++)this._chainedTweens[n].stop();return this},e.prototype.group=function(n){return n===void 0&&(n=Jd),this._group=n,this},e.prototype.delay=function(n){return n===void 0&&(n=0),this._delayTime=n,this},e.prototype.repeat=function(n){return n===void 0&&(n=0),this._initialRepeat=n,this._repeat=n,this},e.prototype.repeatDelay=function(n){return this._repeatDelayTime=n,this},e.prototype.yoyo=function(n){return n===void 0&&(n=!1),this._yoyo=n,this},e.prototype.easing=function(n){return n===void 0&&(n=Gi.Linear.None),this._easingFunction=n,this},e.prototype.interpolation=function(n){return n===void 0&&(n=_s.Linear),this._interpolationFunction=n,this},e.prototype.chain=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return this._chainedTweens=n,this},e.prototype.onStart=function(n){return this._onStartCallback=n,this},e.prototype.onEveryStart=function(n){return this._onEveryStartCallback=n,this},e.prototype.onUpdate=function(n){return this._onUpdateCallback=n,this},e.prototype.onRepeat=function(n){return this._onRepeatCallback=n,this},e.prototype.onComplete=function(n){return this._onCompleteCallback=n,this},e.prototype.onStop=function(n){return this._onStopCallback=n,this},e.prototype.update=function(n,t){var i=this,r;if(n===void 0&&(n=vo()),t===void 0&&(t=!0),this._isPaused)return!0;var s,o=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(n>o)return!1;t&&this.start(n,!0)}if(this._goToEnd=!1,n<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var a=n-this._startTime,l=this._duration+((r=this._repeatDelayTime)!==null&&r!==void 0?r:this._delayTime),c=this._duration+this._repeat*l,h=function(){if(i._duration===0||a>c)return 1;var g=Math.trunc(a/l),y=a-g*l,b=Math.min(y/i._duration,1);return b===0&&a===i._duration?1:b},u=h(),d=this._easingFunction(u);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,u),this._duration===0||a>=this._duration)if(this._repeat>0){var f=Math.min(Math.trunc((a-this._duration)/l)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=f);for(s in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[s]=="string"&&(this._valuesStartRepeat[s]=this._valuesStartRepeat[s]+parseFloat(this._valuesEnd[s])),this._yoyo&&this._swapEndStartRepeatValues(s),this._valuesStart[s]=this._valuesStartRepeat[s];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=l*f,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var m=0,p=this._chainedTweens.length;m<p;m++)this._chainedTweens[m].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(n,t,i,r){for(var s in i)if(t[s]!==void 0){var o=t[s]||0,a=i[s],l=Array.isArray(n[s]),c=Array.isArray(a),h=!l&&c;h?n[s]=this._interpolationFunction(a,r):typeof a=="object"&&a?this._updateProperties(n[s],o,a,r):(a=this._handleRelativeValue(o,a),typeof a=="number"&&(n[s]=o+(a-o)*r))}},e.prototype._handleRelativeValue=function(n,t){return typeof t!="string"?t:t.charAt(0)==="+"||t.charAt(0)==="-"?n+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(n){var t=this._valuesStartRepeat[n],i=this._valuesEnd[n];typeof i=="string"?this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(i):this._valuesStartRepeat[n]=this._valuesEnd[n],this._valuesEnd[n]=t},e}(),vC="23.1.1",yC=Zd.nextId,ji=Jd,bC=ji.getAll.bind(ji),AC=ji.removeAll.bind(ji),wC=ji.add.bind(ji),bv=ji.remove.bind(ji),xC=ji.update.bind(ji),Av={Easing:Gi,Group:yv,Interpolation:_s,now:vo,Sequence:Zd,nextId:yC,Tween:ih,VERSION:vC,getAll:bC,removeAll:AC,add:wC,remove:bv,update:xC};function MC(e,n,t,i=Gi.Linear.None){const r=new ih(e).to(n,t).easing(i).start();function s(o){r.update(o)&&requestAnimationFrame(s)}return requestAnimationFrame(s),r}var mr=(e=>(e.Drawline="Drawline",e.Undo="Undo",e.Exit="Exit",e))(mr||{});const ol=Symbol("$$PAINT_BRUSH_EVENT$$");function rh(e){return e[ol]||(e[ol]={}),e[ol]}function CC(e){e[ol]||delete e[ol]}let PC=class{hasListener(n){const t=rh(this);return t&&t[n]&&t[n].length>0}on(n,t,i){const r=rh(this);return r[n]||(r[n]=[]),r[n].push([t,i||!1]),()=>this.off(n,t)}once(n,t){return this.on(n,t,!0)}off(n,t){if(n===void 0){CC(this);return}const i=rh(this);if(i[n]||(i[n]=[]),t===void 0){i[n].length=0;return}let r=0;for(;r<i[n].length&&i[n][r][0]!==t;r++);r<i[n].length&&i[n].splice(r,1)}emit(n,...t){let i=!1;const s=rh(this)[n]||[];for(let o of s.slice()){const[a,l=!1]=o,c=a(...t);l&&this.off(n,a),c===!1&&(i=!0)}return i}};function Hr(){return((1+Math.random())*65536|0).toString(16).substring(1)}function wn(){return(Hr()+Hr()+"-"+Hr()+"-4"+Hr().substr(0,3)+"-"+Hr()+"-"+Hr()+Hr()+Hr()).toLowerCase()}const EC=`
|
|
2
2
|
<style type="text/css">
|
|
3
3
|
|
|
4
4
|
#_gl_paintBrush {
|
|
@@ -3171,7 +3171,7 @@ void main() {
|
|
|
3171
3171
|
svg [type='lineItemGroup'] g g g g {
|
|
3172
3172
|
stroke: #ffffff;
|
|
3173
3173
|
}</style>
|
|
3174
|
-
`;return e.$$set=s=>{"content"in s&&t(0,i=s.content)},[i,r]}class PD extends Oe{constructor(n){super(),ke(this,n,CD,MD,Le,{content:0},xD)}}function ED(e){Ue(e,"svelte-ozpg4a",".floorplan-plugin__base-image.svelte-ozpg4a{position:absolute;z-index:10;width:100%;height:100%;pointer-events:none}")}function _D(e){let n,t;return n=new wD({props:{url:e[1].url}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&2&&(s.url=i[1].url),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function SD(e){let n,t;return n=new PD({props:{content:e[0]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.content=i[0]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function ID(e){let n,t,i,r;const s=[SD,_D],o=[];function a(l,c){return l[0]?0:l[1]?1:-1}return~(t=a(e))&&(i=o[t]=s[t](e)),{c(){n=H("div"),i&&i.c(),_(n,"class","floorplan-plugin__base-image svelte-ozpg4a")},m(l,c){X(l,n,c),~t&&o[t].m(n,null),r=!0},p(l,[c]){let h=t;t=a(l),t===h?~t&&o[t].p(l,c):(i&&(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve()),~t?(i=o[t],i?i.p(l,c):(i=o[t]=s[t](l),i.c()),N(i,1),i.m(n,null)):i=null)},i(l){r||(N(i),r=!0)},o(l){Z(i),r=!1},d(l){l&&Y(n),~t&&o[t].d()}}}function TD(e,n,t){let i,r,{floorIndex:s}=n,{floorplanData:o}=n;return e.$$set=a=>{"floorIndex"in a&&t(2,s=a.floorIndex),"floorplanData"in a&&t(3,o=a.floorplanData)},e.$$.update=()=>{var a,l;e.$$.dirty&12&&t(1,i=o.outlines[s]),e.$$.dirty&12&&t(0,r=(l=(a=o.outlines)==null?void 0:a[s])==null?void 0:l.svgContent)},[r,i,s,o]}class Jb extends Oe{constructor(n){super(),ke(this,n,TD,ID,Le,{floorIndex:2,floorplanData:3},ED)}}function DD(e){Ue(e,"svelte-9vzn2f",".floorplan-plugin__room-label-item.svelte-9vzn2f{position:absolute;display:flex;flex-flow:column;align-items:center;line-height:1;color:#fff;transform:translate(-50%, -50%);white-space:nowrap;will-change:opacity;transition:opacity 300ms}.floorplan-plugin__room-part1.svelte-9vzn2f{display:flex;flex-flow:column;align-items:center;color:#fff;white-space:nowrap}.floorplan-plugin__room-area.svelte-9vzn2f{opacity:0.6;line-height:1.25;margin-top:0.125rem}")}function LD(e){let n,t=e[15].outerHTML+"",i;return{c(){n=new Wu(!1),i=pt(),n.a=i},m(r,s){n.m(t,r,s),X(r,i,s)},p(r,s){s[0]&32768&&t!==(t=r[15].outerHTML+"")&&n.p(t)},d(r){r&&Y(i),r&&n.d()}}}function kD(e){let n,t,i,r,s,o,a=e[1]&&qb(e),l=e[0]&&Kb(e),c=e[2]&&$b(e);return{c(){n=H("div"),a&&a.c(),t=ye(),l&&l.c(),i=ye(),c&&c.c(),r=pt(),_(n,"class","floorplan-plugin__room-part1 svelte-9vzn2f"),W(n,"opacity",e[11]?"1":"0")},m(h,u){X(h,n,u),a&&a.m(n,null),Q(n,t),l&&l.m(n,null),X(h,i,u),c&&c.m(h,u),X(h,r,u),s||(o=[zi(vs.call(null,n)),lt(n,"clientWidth",e[32]),lt(n,"clientHeight",e[33])],s=!0)},p(h,u){h[1]?a?a.p(h,u):(a=qb(h),a.c(),a.m(n,t)):a&&(a.d(1),a=null),h[0]?l?l.p(h,u):(l=Kb(h),l.c(),l.m(n,null)):l&&(l.d(1),l=null),u[0]&2048&&W(n,"opacity",h[11]?"1":"0"),h[2]?c?c.p(h,u):(c=$b(h),c.c(),c.m(r.parentNode,r)):c&&(c.d(1),c=null)},d(h){h&&Y(n),a&&a.d(),l&&l.d(),h&&Y(i),c&&c.d(h),h&&Y(r),s=!1,bn(o)}}}function qb(e){let n,t=e[3].name+"",i;return{c(){n=H("span"),i=Mt(t),_(n,"class","floorplan-plugin__room-name")},m(r,s){X(r,n,s),Q(n,i)},p(r,s){s[0]&8&&t!==(t=r[3].name+"")&&Pt(i,t)},d(r){r&&Y(n)}}}function Kb(e){let n,t;return{c(){n=H("span"),t=Mt(e[14]),_(n,"class","floorplan-plugin__room-area svelte-9vzn2f"),W(n,"font-size",e[19])},m(i,r){X(i,n,r),Q(n,t)},p(i,r){r[0]&16384&&Pt(t,i[14])},d(i){i&&Y(n)}}}function $b(e){let n,t;return{c(){n=H("span"),t=Mt(e[13]),_(n,"class","floorplan-plugin__room-size"),W(n,"font-size",e[19]),W(n,"opacity",e[10]?"0.6":"0")},m(i,r){X(i,n,r),Q(n,t)},p(i,r){r[0]&8192&&Pt(t,i[13]),r[0]&1024&&W(n,"opacity",i[10]?"0.6":"0")},d(i){i&&Y(n)}}}function OD(e){let n,t,i;function r(a,l){if(a[4]===void 0)return kD;if(a[15])return LD}let s=r(e),o=s&&s(e);return{c(){n=H("div"),o&&o.c(),_(n,"class","floorplan-plugin__room-label-item svelte-9vzn2f"),W(n,"left",e[16]),W(n,"top",e[17]),W(n,"font-size",e[18]),W(n,"opacity",e[12]?"1":"0"),W(n,"transform",e[9]?"translate(-50%, calc(-50% + 6px))":"translate(-50%, -50%)")},m(a,l){X(a,n,l),o&&o.m(n,null),t||(i=[zi(vs.call(null,n)),lt(n,"clientWidth",e[34]),lt(n,"clientHeight",e[35])],t=!0)},p(a,l){s===(s=r(a))&&o?o.p(a,l):(o&&o.d(1),o=s&&s(a),o&&(o.c(),o.m(n,null))),l[0]&4096&&W(n,"opacity",a[12]?"1":"0"),l[0]&512&&W(n,"transform",a[9]?"translate(-50%, calc(-50% + 6px))":"translate(-50%, -50%)")},i:de,o:de,d(a){a&&Y(n),o&&o.d(),t=!1,bn(i)}}}function RD(e,n){const t=e[0],i=e[1];let r=!1;for(let s=0,o=n.length-1;s<n.length;o=s++){const a=n[s][0],l=n[s][1],c=n[o][0],h=n[o][1];l>i!=h>i&&t<(c-a)*(i-l)/(h-l)+a&&(r=!r)}return r}function zD(e,n,t){let i,r,s,o,a,l,c,h,u,d,f,m,p,{pxmm:g}=n,{roomAreaEnable:y}=n,{roomNameEnable:b}=n,{roomDimensionEnable:A}=n,{room:w}=n,{hoveredRoom:x}=n,{getRoomAreaText:M}=n,{getRoomDimensionText:E}=n,{getLabelElement:S}=n,{adaptiveRoomLabelVisibleEnable:T}=n;function z(se,Me){if(Me.width===0||Me.height===0)return()=>!1;const Ge=se.path.map(({x:F,y:j})=>[F,j]),ae=se.roomLabel.position,{x:me,y:De}=ae,{width:We,height:gt}=Me,Ce=We/2,je=gt/2;return function(j){const _e=me*j,ve=De*j,Ke=Ge.map(([fe,ot])=>[fe*j,ot*j]);return[[_e+Ce,ve-je],[_e-Ce,ve-je],[_e-Ce,ve+je],[_e+Ce,ve+je]].every(fe=>RD(fe,Ke))}}const D=document.body.clientWidth,k=document.body.clientHeight,R=w.roomLabel,G=R.positionInImage.x*100+"%",I=R.positionInImage.y*100+"%",U=(D<500||k<500?10:14)+"px",q=(D<500||k<500?8:12)+"px";let K=0,ne=0,ie=0,pe=0,be=!1;x.subscribe(function(Me){t(25,be=!!Me&&Me.id===w.id)});const Ae=se=>{t(7,ie=se.detail)},qe=se=>{t(8,pe=se.detail)},we=se=>{t(5,K=se.detail)},le=se=>{t(6,ne=se.detail)};return e.$$set=se=>{"pxmm"in se&&t(20,g=se.pxmm),"roomAreaEnable"in se&&t(0,y=se.roomAreaEnable),"roomNameEnable"in se&&t(1,b=se.roomNameEnable),"roomDimensionEnable"in se&&t(2,A=se.roomDimensionEnable),"room"in se&&t(3,w=se.room),"hoveredRoom"in se&&t(21,x=se.hoveredRoom),"getRoomAreaText"in se&&t(22,M=se.getRoomAreaText),"getRoomDimensionText"in se&&t(23,E=se.getRoomDimensionText),"getLabelElement"in se&&t(4,S=se.getLabelElement),"adaptiveRoomLabelVisibleEnable"in se&&t(24,T=se.adaptiveRoomLabelVisibleEnable)},e.$$.update=()=>{var se,Me;e.$$.dirty[0]&24&&t(15,i=S==null?void 0:S(w)),e.$$.dirty[0]&4194312&&t(14,r=w.size?M(w.size):""),e.$$.dirty[0]&8388616&&t(13,s=w!=null&&w.dimension?E((se=w.dimension)==null?void 0:se.width,(Me=w.dimension)==null?void 0:Me.height):""),e.$$.dirty[0]&384&&t(31,o={width:ie,height:pe}),e.$$.dirty[0]&8|e.$$.dirty[1]&1&&t(30,a=o?z(w,o):void 0),e.$$.dirty[0]&1091567616&&t(27,l=T?!!(a!=null&&a(g)):!0),e.$$.dirty[0]&96&&t(29,c={width:K,height:ne}),e.$$.dirty[0]&536870920&&t(28,h=c?z(w,c):void 0),e.$$.dirty[0]&286261248&&t(26,u=T?!!(h!=null&&h(g)):!0),e.$$.dirty[0]&234881024&&t(12,d=u||l||be),e.$$.dirty[0]&167772160&&t(11,f=l||be),e.$$.dirty[0]&100663296&&t(10,m=u||be),e.$$.dirty[0]&201326592&&t(9,p=l&&!u)},[y,b,A,w,S,K,ne,ie,pe,p,m,f,d,s,r,i,G,I,U,q,g,x,M,E,T,be,u,l,h,c,a,o,Ae,qe,we,le]}class BD extends Oe{constructor(n){super(),ke(this,n,zD,OD,Le,{pxmm:20,roomAreaEnable:0,roomNameEnable:1,roomDimensionEnable:2,room:3,hoveredRoom:21,getRoomAreaText:22,getRoomDimensionText:23,getLabelElement:4,adaptiveRoomLabelVisibleEnable:24},DD,[-1,-1])}}function ND(e){Ue(e,"svelte-13xux0b",".floorplan-plugin__room-labels.svelte-13xux0b{width:100%;height:100%;position:absolute;left:0;top:0;z-index:20;pointer-events:none}")}function eA(e,n,t){const i=e.slice();return i[14]=n[t],i}function tA(e){let n,t=[],i=new Map,r,s,o,a=e[10];const l=c=>c[14].id;for(let c=0;c<a.length;c+=1){let h=eA(e,a,c),u=l(h);i.set(u,t[c]=nA(u,h))}return{c(){n=H("div");for(let c=0;c<t.length;c+=1)t[c].c();_(n,"class","floorplan-plugin__room-labels svelte-13xux0b")},m(c,h){X(c,n,h);for(let u=0;u<t.length;u+=1)t[u]&&t[u].m(n,null);r=!0,s||(o=[zi(vs.call(null,n)),lt(n,"clientWidth",e[13])],s=!0)},p(c,h){h&1791&&(a=c[10],Fe(),t=Ni(t,h,l,1,c,a,i,n,gs,nA,null,eA),Ve())},i(c){if(!r){for(let h=0;h<a.length;h+=1)N(t[h]);r=!0}},o(c){for(let h=0;h<t.length;h+=1)Z(t[h]);r=!1},d(c){c&&Y(n);for(let h=0;h<t.length;h+=1)t[h].d();s=!1,bn(o)}}}function nA(e,n){let t,i,r;const s=[{pxmm:n[9],room:n[14],hoveredRoom:n[3],roomAreaEnable:n[0],roomNameEnable:n[1],roomDimensionEnable:n[2],getLabelElement:n[6],getRoomAreaText:n[4],getRoomDimensionText:n[5],adaptiveRoomLabelVisibleEnable:n[7]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new BD({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&1791?Vn(s,[{pxmm:n[9],room:n[14],hoveredRoom:n[3],roomAreaEnable:n[0],roomNameEnable:n[1],roomDimensionEnable:n[2],getLabelElement:n[6],getRoomAreaText:n[4],getRoomDimensionText:n[5],adaptiveRoomLabelVisibleEnable:n[7]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function FD(e){let n,t,i=e[10]&&tA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[10]?i?(i.p(r,s),s&1024&&N(i,1)):(i=tA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function VD(e,n,t){let i,{floorIndex:r}=n,{roomAreaEnable:s}=n,{roomNameEnable:o}=n,{roomDimensionEnable:a}=n,{floorplanData:l}=n,{hoveredRoom:c}=n,{getRoomAreaText:h}=n,{getRoomDimensionText:u}=n,{getLabelElement:d}=n,{adaptiveRoomLabelVisibleEnable:f}=n,m=0,p=0;const g=y=>{t(8,m=y.detail)};return e.$$set=y=>{"floorIndex"in y&&t(11,r=y.floorIndex),"roomAreaEnable"in y&&t(0,s=y.roomAreaEnable),"roomNameEnable"in y&&t(1,o=y.roomNameEnable),"roomDimensionEnable"in y&&t(2,a=y.roomDimensionEnable),"floorplanData"in y&&t(12,l=y.floorplanData),"hoveredRoom"in y&&t(3,c=y.hoveredRoom),"getRoomAreaText"in y&&t(4,h=y.getRoomAreaText),"getRoomDimensionText"in y&&t(5,u=y.getRoomDimensionText),"getLabelElement"in y&&t(6,d=y.getLabelElement),"adaptiveRoomLabelVisibleEnable"in y&&t(7,f=y.adaptiveRoomLabelVisibleEnable)},e.$$.update=()=>{if(e.$$.dirty&6144&&t(10,i=l.floorDatas[r].rooms),e.$$.dirty&4352){const{max:y,min:b}=l.bounding,A=y.x-b.x;t(9,p=m/A)}},[s,o,a,c,h,u,d,f,m,p,i,r,l,g]}class GD extends Oe{constructor(n){super(),ke(this,n,VD,FD,Le,{floorIndex:11,roomAreaEnable:0,roomNameEnable:1,roomDimensionEnable:2,floorplanData:12,hoveredRoom:3,getRoomAreaText:4,getRoomDimensionText:5,getLabelElement:6,adaptiveRoomLabelVisibleEnable:7},ND)}}function jD(e){Ue(e,"svelte-djlmk4",".floorplan-plugin__rule-labels.svelte-djlmk4.svelte-djlmk4{position:absolute;display:flex}.floorplan-plugin__rule-labels--top.svelte-djlmk4.svelte-djlmk4{left:0;top:-1.25rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4.svelte-djlmk4{left:0;bottom:-1.25rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4.svelte-djlmk4{top:0;left:-1.25rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4.svelte-djlmk4{top:0;right:-1.25rem}.floorplan-plugin__rule-line.svelte-djlmk4.svelte-djlmk4{background:#fff;opacity:0.05;width:100%;height:100%}.floorplan-plugin__rule-scale-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute;width:0.3125rem;height:100%;left:50%;top:0;transform:translateX(-50%)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale-wrapper.svelte-djlmk4{width:100%;height:0.3125rem;top:50%;left:0;transform:translateY(-50%)}.floorplan-plugin__rule-scale.svelte-djlmk4.svelte-djlmk4{position:absolute;background:#fff;opacity:0.05;width:100%;height:0.0625rem}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale.svelte-djlmk4{width:0.0625rem;height:100%}.floorplan-plugin__rule-text-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute}.floorplan-plugin__rule-labels--top.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;top:0.625rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;bottom:0.625rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;left:0.625rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;right:0.625rem}.floorplan-plugin__rule-text-item.svelte-djlmk4.svelte-djlmk4{width:0;height:0;position:absolute;transform:rotate(90deg)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-text-item.svelte-djlmk4{transform:rotate(0)}.floorplan-plugin__rule-text.svelte-djlmk4.svelte-djlmk4{width:-moz-max-content;width:max-content;transform:translate(-50%, -50%);font-size:0.625rem;color:#fff;opacity:0.2}")}function iA(e,n,t){const i=e.slice();return i[11]=n[t],i[13]=t,i}function rA(e,n,t){const i=e.slice();return i[14]=n[t],i}function sA(e){let n;return{c(){n=H("div"),_(n,"class","floorplan-plugin__rule-scale svelte-djlmk4"),W(n,"left",e[14].left*100+"%"),W(n,"bottom",e[14].bottom*100+"%")},m(t,i){X(t,n,i)},p:de,d(t){t&&Y(n)}}}function oA(e,n){let t,i,r=n[1](n[11].distance)+"",s,o;return{key:e,first:null,c(){t=H("div"),i=H("div"),s=Mt(r),o=ye(),_(i,"class","floorplan-plugin__rule-text svelte-djlmk4"),Ee(i,"is-row",n[2]),_(t,"class","floorplan-plugin__rule-text-item svelte-djlmk4"),W(t,"left",n[11].left*100+"%"),W(t,"bottom",n[11].bottom*100+"%"),this.first=t},m(a,l){X(a,t,l),Q(t,i),Q(i,s),Q(t,o)},p(a,l){n=a,l&2&&r!==(r=n[1](n[11].distance)+"")&&Pt(s,r)},d(a){a&&Y(t)}}}function HD(e){let n,t,i,r,s,o,a=[],l=new Map,c,h=e[3],u=[];for(let m=0;m<h.length;m+=1)u[m]=sA(rA(e,h,m));let d=e[4];const f=m=>m[13];for(let m=0;m<d.length;m+=1){let p=iA(e,d,m),g=f(p);l.set(g,a[m]=oA(g,p))}return{c(){n=H("div"),t=H("div"),i=ye(),r=H("div");for(let m=0;m<u.length;m+=1)u[m].c();s=ye(),o=H("div");for(let m=0;m<a.length;m+=1)a[m].c();_(t,"class","floorplan-plugin__rule-line svelte-djlmk4"),_(r,"class","floorplan-plugin__rule-scale-wrapper svelte-djlmk4"),Ee(r,"is-row",e[2]),_(o,"class","floorplan-plugin__rule-text-wrapper svelte-djlmk4"),_(n,"class",c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+e[0]+" svelte-djlmk4"),Ee(n,"is-row",e[2]),W(n,"width",e[2]?"100%":1/16+"rem"),W(n,"height",e[2]?1/16+"rem":"100%")},m(m,p){X(m,n,p),Q(n,t),Q(n,i),Q(n,r);for(let g=0;g<u.length;g+=1)u[g]&&u[g].m(r,null);Q(n,s),Q(n,o);for(let g=0;g<a.length;g+=1)a[g]&&a[g].m(o,null)},p(m,[p]){if(p&8){h=m[3];let g;for(g=0;g<h.length;g+=1){const y=rA(m,h,g);u[g]?u[g].p(y,p):(u[g]=sA(y),u[g].c(),u[g].m(r,null))}for(;g<u.length;g+=1)u[g].d(1);u.length=h.length}p&22&&(d=m[4],a=Ni(a,p,f,1,m,d,l,o,gm,oA,null,iA)),p&1&&c!==(c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+m[0]+" svelte-djlmk4")&&_(n,"class",c),p&5&&Ee(n,"is-row",m[2])},i:de,o:de,d(m){m&&Y(n),Bi(u,m);for(let p=0;p<a.length;p+=1)a[p].d()}}}const Na=1e3,Fa=180;function UD(e,n,t){let{type:i}=n,{data:r}=n,{bounding:s}=n,{getRuleDistanceText:o}=n;const a=i==="top"||i==="bottom",l=s.max.x-s.min.x-(Na-Fa)*2,c=s.max.y-s.min.y-(Na-Fa)*2,h=r.map(([m,p])=>a?[m.x,p.x]:[m.y,p.y]).flat().sort().filter((m,p,g)=>p===0?!0:m!==g[p-1]),u=h.map(m=>{const p=a?(m-s.min.x-Na+Fa)/l:0,g=a?0:(m-s.min.y-Na+Fa)/c;return{left:p,bottom:g}});u.unshift({left:0,bottom:0}),u.push(a?{left:1,bottom:0}:{left:0,bottom:1});const d=h[h.length-1]-h[0],f=h.map((m,p,g)=>{const y=p===0?0:m-g[p-1],b=p===0?0:(m+g[p-1])/2,A=a?(b-s.min.x-Na+Fa)/l:0,w=a?0:(b-s.min.y-Na+Fa)/c;return{left:A,bottom:w,distance:y}}).filter(({distance:m})=>m/d>.1);return e.$$set=m=>{"type"in m&&t(0,i=m.type),"data"in m&&t(5,r=m.data),"bounding"in m&&t(6,s=m.bounding),"getRuleDistanceText"in m&&t(1,o=m.getRuleDistanceText)},[i,o,a,u,f,r,s]}class WD extends Oe{constructor(n){super(),ke(this,n,UD,HD,Le,{type:0,data:5,bounding:6,getRuleDistanceText:1},jD)}}function QD(e){Ue(e,"svelte-1mzj9p3",".floorplan-plugin__rule-labels-wrapper.svelte-1mzj9p3{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}")}function aA(e,n,t){const i=e.slice();return i[13]=n[t][0],i[14]=n[t][1],i}function lA(e,n){let t,i,r;const s=[{type:n[13],data:n[14],bounding:n[1],getRuleDistanceText:n[0]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new WD({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&19?Vn(s,[{type:n[13],data:n[14],bounding:n[1],getRuleDistanceText:n[0]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function YD(e){let n,t=[],i=new Map,r,s=e[4];const o=a=>a[13];for(let a=0;a<s.length;a+=1){let l=aA(e,s,a),c=o(l);i.set(c,t[a]=lA(c,l))}return{c(){n=H("div");for(let a=0;a<t.length;a+=1)t[a].c();_(n,"class","floorplan-plugin__rule-labels-wrapper svelte-1mzj9p3"),W(n,"width",e[3]),W(n,"height",e[2])},m(a,l){X(a,n,l);for(let c=0;c<t.length;c+=1)t[c]&&t[c].m(n,null);r=!0},p(a,[l]){l&19&&(s=a[4],Fe(),t=Ni(t,l,o,1,a,s,i,n,gs,lA,null,aA),Ve()),l&8&&W(n,"width",a[3]),l&4&&W(n,"height",a[2])},i(a){if(!r){for(let l=0;l<s.length;l+=1)N(t[l]);r=!0}},o(a){for(let l=0;l<t.length;l+=1)Z(t[l]);r=!1},d(a){a&&Y(n);for(let l=0;l<t.length;l+=1)t[l].d()}}}const cA=1e3,hA=180;function XD(e,n,t){let i,r,s,o,a,l,c,h,u,d,{floorIndex:f}=n,{floorplanData:m}=n,{getRuleDistanceText:p}=n;return e.$$set=g=>{"floorIndex"in g&&t(5,f=g.floorIndex),"floorplanData"in g&&t(6,m=g.floorplanData),"getRuleDistanceText"in g&&t(0,p=g.getRuleDistanceText)},e.$$.update=()=>{e.$$.dirty&64&&t(1,i=m.bounding),e.$$.dirty&96&&t(11,r=m.floorDatas[f].rules),e.$$.dirty&2048&&t(12,s=Object.keys(r)),e.$$.dirty&6144&&t(4,o=s.map(g=>[g,r[g]])),e.$$.dirty&2&&t(9,a=i.max.x-i.min.x),e.$$.dirty&2&&t(7,l=i.max.y-i.min.y),e.$$.dirty&2&&t(10,c=i.max.x-i.min.x-(cA-hA)*2),e.$$.dirty&2&&t(8,h=i.max.y-i.min.y-(cA-hA)*2),e.$$.dirty&1536&&t(3,u=c/a*100+"%"),e.$$.dirty&384&&t(2,d=h/l*100+"%")},[p,i,d,u,o,f,m,l,h,a,c,r,s]}class ZD extends Oe{constructor(n){super(),ke(this,n,XD,YD,Le,{floorIndex:5,floorplanData:6,getRuleDistanceText:0},QD)}}function id(e,n={}){let t="";const{needZ:i,needA:r}=n;return(i?e.slice().concat(e[0]):e.slice()).forEach((o,a)=>{const{x:l,y:c}=n.format?n.format(o):o,h=l+","+c;return a===0?(t+="M"+h,t):r!=null&&r[a]?(t+="A"+r[a]+","+h,t):(t+="L"+h,t)}),t+(i?"Z":"")}function uA({x:e,y:n},t){const{max:i,min:r}=t;return{x:e-r.x,y:i.y-n}}function JD(e,n){const t=e.x*1e3+n.bounding.origin.x,i=-e.z*1e3+n.bounding.origin.y;return{x:t,y:i}}function qD(e,n){const t=n.bounding,i=t.max.x-t.min.x,r=t.max.y-t.min.y;return{x:(e.x-t.min.x)/i,y:(t.max.y-e.y)/r}}function KD(e,n){return Math.max(...n.work.observers.map(i=>e.z>=i.standingPosition.z?i.floorIndex:0))}function $D(e){let n;return{c(){n=zt("path"),_(n,"d",e[0]),_(n,"fill","#2F313A")},m(t,i){X(t,n,i)},p(t,[i]){i&1&&_(n,"d",t[0])},i:de,o:de,d(t){t&&Y(n)}}}function eL(e,n,t){let i,{path:r}=n;return e.$$set=s=>{"path"in s&&t(1,r=s.path)},e.$$.update=()=>{e.$$.dirty&2&&t(0,i=id(r,{needZ:!0}))},[i,r]}class tL extends Oe{constructor(n){super(),ke(this,n,eL,$D,Le,{path:1})}}function nL(e){let n,t,i,r,s,o;return{c(){n=zt("defs"),t=zt("pattern"),i=zt("rect"),r=zt("path"),s=ye(),o=zt("path"),_(i,"x","0"),_(i,"y","0"),_(i,"width",e[1]),_(i,"height",e[1]),_(i,"fill","#323747"),_(r,"d",e[2]),_(r,"stroke","#ffffff"),_(r,"stroke-opacity","0.06"),_(r,"stroke-width","0.5"),_(r,"fill","none"),_(t,"id","fpm-room-pattern-0"),_(t,"x","0"),_(t,"y","0"),_(t,"width",e[1]),_(t,"height",e[1]),_(t,"patternUnits","userSpaceOnUse"),_(t,"patternTransform","scale(50 50)"),_(o,"d",e[0]),_(o,"fill","url(#fpm-room-pattern-0)")},m(a,l){X(a,n,l),Q(n,t),Q(t,i),Q(t,r),X(a,s,l),X(a,o,l)},p(a,[l]){l&1&&_(o,"d",a[0])},i:de,o:de,d(a){a&&Y(n),a&&Y(s),a&&Y(o)}}}const Am=6;function iL(e,n,t){let i,{path:r}=n;const s=Am*2,o=`M0 ${Am} h ${s} M${Am} 0 v ${s}`;return e.$$set=a=>{"path"in a&&t(3,r=a.path)},e.$$.update=()=>{e.$$.dirty&8&&t(0,i=id(r,{needZ:!0}))},[i,s,o,r]}class rL extends Oe{constructor(n){super(),ke(this,n,iL,nL,Le,{path:3})}}function sL(e){let n,t,i,r,s,o,a,l,c,h,u;return{c(){n=zt("defs"),t=zt("pattern"),i=zt("rect"),r=zt("pattern"),s=zt("rect"),o=ye(),a=zt("path"),l=ye(),c=zt("path"),h=ye(),u=zt("path"),_(i,"x","0"),_(i,"y","0"),_(i,"width","6"),_(i,"height","50"),_(i,"fill","none"),_(i,"stroke","#4B4B57"),_(i,"stroke-width","0.5"),_(t,"id","room-material-pattern-1"),_(t,"x","0"),_(t,"y","0"),_(t,"width","12"),_(t,"height","50"),_(t,"patternUnits","userSpaceOnUse"),_(t,"patternTransform","scale(50 50)"),_(s,"x","0"),_(s,"y","0"),_(s,"width","6"),_(s,"height","50"),_(s,"fill","none"),_(s,"stroke","#4B4B57"),_(s,"stroke-width","0.5"),_(r,"id","room-material-pattern-2"),_(r,"x","6"),_(r,"y","25"),_(r,"width","12"),_(r,"height","50"),_(r,"patternUnits","userSpaceOnUse"),_(r,"patternTransform","scale(50 50)"),_(a,"d",e[0]),_(a,"fill","#43434D"),_(c,"d",e[0]),_(c,"fill","url(#room-material-pattern-1)"),_(u,"d",e[0]),_(u,"fill","url(#room-material-pattern-2)")},m(d,f){X(d,n,f),Q(n,t),Q(t,i),Q(n,r),Q(r,s),X(d,o,f),X(d,a,f),X(d,l,f),X(d,c,f),X(d,h,f),X(d,u,f)},p(d,[f]){f&1&&_(a,"d",d[0]),f&1&&_(c,"d",d[0]),f&1&&_(u,"d",d[0])},i:de,o:de,d(d){d&&Y(n),d&&Y(o),d&&Y(a),d&&Y(l),d&&Y(c),d&&Y(h),d&&Y(u)}}}function oL(e,n,t){let i,{path:r}=n;return e.$$set=s=>{"path"in s&&t(1,r=s.path)},e.$$.update=()=>{e.$$.dirty&2&&t(0,i=id(r,{needZ:!0}))},[i,r]}class aL extends Oe{constructor(n){super(),ke(this,n,oL,sL,Le,{path:1})}}function lL(e){Ue(e,"svelte-1dykexu",".floorplan-plugin__room-material.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%}svg.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}")}function dA(e,n,t){const i=e.slice();return i[5]=n[t],i}function cL(e){let n,t;return n=new rL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function hL(e){let n,t;return n=new aL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function uL(e){let n,t;return n=new tL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function fA(e){let n,t,i,r;const s=[uL,hL,cL],o=[];function a(l,c){return l[5].floorType===1?0:l[5].floorType===0?1:2}return t=a(e),i=o[t]=s[t](e),{c(){n=zt("svg"),i.c(),_(n,"width","100%"),_(n,"height","100%"),_(n,"viewBox",`0 0 ${e[1]} ${e[2]}`),_(n,"class","svelte-1dykexu")},m(l,c){X(l,n,c),o[t].m(n,null),r=!0},p(l,c){let h=t;t=a(l),t===h?o[t].p(l,c):(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve(),i=o[t],i?i.p(l,c):(i=o[t]=s[t](l),i.c()),N(i,1),i.m(n,null))},i(l){r||(N(i),r=!0)},o(l){Z(i),r=!1},d(l){l&&Y(n),o[t].d()}}}function dL(e){let n,t,i=e[0],r=[];for(let o=0;o<i.length;o+=1)r[o]=fA(dA(e,i,o));const s=o=>Z(r[o],1,1,()=>{r[o]=null});return{c(){n=H("div");for(let o=0;o<r.length;o+=1)r[o].c();_(n,"class","floorplan-plugin__room-material svelte-1dykexu")},m(o,a){X(o,n,a);for(let l=0;l<r.length;l+=1)r[l]&&r[l].m(n,null);t=!0},p(o,[a]){if(a&7){i=o[0];let l;for(l=0;l<i.length;l+=1){const c=dA(o,i,l);r[l]?(r[l].p(c,a),N(r[l],1)):(r[l]=fA(c),r[l].c(),N(r[l],1),r[l].m(n,null))}for(Fe(),l=i.length;l<r.length;l+=1)s(l);Ve()}},i(o){if(!t){for(let a=0;a<i.length;a+=1)N(r[a]);t=!0}},o(o){r=r.filter(Boolean);for(let a=0;a<r.length;a+=1)Z(r[a]);t=!1},d(o){o&&Y(n),Bi(r,o)}}}function fL(e,n,t){let i,{floorIndex:r}=n,{floorplanData:s}=n;const o=s.bounding.max.x-s.bounding.min.x,a=s.bounding.max.y-s.bounding.min.y;return e.$$set=l=>{"floorIndex"in l&&t(3,r=l.floorIndex),"floorplanData"in l&&t(4,s=l.floorplanData)},e.$$.update=()=>{e.$$.dirty&24&&t(0,i=s.floorDatas[r].rooms.map(l=>Pe(O({},l),{path:l.path.map(c=>uA(c,s.bounding))})))},[i,o,a,r,s]}class pL extends Oe{constructor(n){super(),ke(this,n,fL,dL,Le,{floorIndex:3,floorplanData:4},lL)}}function mL(e){Ue(e,"svelte-qq2273","path.svelte-qq2273{--opacity:0;opacity:var(--opacity)}path.svelte-qq2273:hover{opacity:calc(var(--opacity) + 0.1)}")}function gL(e){let n,t,i,r;return{c(){n=zt("path"),_(n,"d",e[5]),_(n,"fill","#fff"),_(n,"style",e[2]),_(n,"id",t=`${e[1]}_${e[0].id}`),_(n,"class","svelte-qq2273")},m(s,o){X(s,n,o),i||(r=[lt(n,"mouseenter",e[3]),lt(n,"mouseleave",e[4])],i=!0)},p(s,[o]){o&4&&_(n,"style",s[2]),o&3&&t!==(t=`${s[1]}_${s[0].id}`)&&_(n,"id",t)},i:de,o:de,d(s){s&&Y(n),i=!1,bn(r)}}}function vL(e,n,t){let i,r,{room:s}=n,{floorIndex:o}=n,{floorplanData:a}=n,{highlightData:l}=n,{hoveredRoom:c}=n;function h(){c==null||c.set(s)}function u(){c==null||c.set(void 0)}const{bounding:d}=a,f=id(s.path,{needZ:!0,format:m=>uA(m,d)});return e.$$set=m=>{"room"in m&&t(0,s=m.room),"floorIndex"in m&&t(1,o=m.floorIndex),"floorplanData"in m&&t(6,a=m.floorplanData),"highlightData"in m&&t(7,l=m.highlightData),"hoveredRoom"in m&&t(8,c=m.hoveredRoom)},e.$$.update=()=>{e.$$.dirty&131&&t(9,i=l[`${o}_${s.id}`]),e.$$.dirty&512&&t(2,r=i?`fill: ${i.color}; --opacity: ${i.opacity}; pointer-events: ${i.disabled?"none":"auto"}`:null)},[s,o,r,h,u,f,a,l,c,i]}class yL extends Oe{constructor(n){super(),ke(this,n,vL,gL,Le,{room:0,floorIndex:1,floorplanData:6,highlightData:7,hoveredRoom:8},mL)}}function bL(e){Ue(e,"svelte-1kqo6e4",".floorplan-plugin__room-highlight.svelte-1kqo6e4{position:absolute;width:100%;height:100%}svg.svelte-1kqo6e4{width:100%;height:100%;overflow:visible}")}function pA(e,n,t){const i=e.slice();return i[6]=n[t],i}function mA(e,n){let t,i,r;const s=[{room:n[6],floorplanData:n[1],hoveredRoom:n[3],floorIndex:n[0],highlightData:n[2]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new yL({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&15?Vn(s,[{room:n[6],floorplanData:n[1],hoveredRoom:n[3],floorIndex:n[0],highlightData:n[2]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function AL(e){let n,t,i=[],r=new Map,s,o=e[1].floorDatas[e[0]].rooms;const a=l=>l[6].id;for(let l=0;l<o.length;l+=1){let c=pA(e,o,l),h=a(c);r.set(h,i[l]=mA(h,c))}return{c(){n=H("div"),t=zt("svg");for(let l=0;l<i.length;l+=1)i[l].c();_(t,"width","100%"),_(t,"height","100%"),_(t,"viewBox",`0 0 ${e[4]} ${e[5]}`),_(t,"class","svelte-1kqo6e4"),_(n,"class","floorplan-plugin__room-highlight svelte-1kqo6e4")},m(l,c){X(l,n,c),Q(n,t);for(let h=0;h<i.length;h+=1)i[h]&&i[h].m(t,null);s=!0},p(l,[c]){c&15&&(o=l[1].floorDatas[l[0]].rooms,Fe(),i=Ni(i,c,a,1,l,o,r,t,gs,mA,null,pA),Ve())},i(l){if(!s){for(let c=0;c<o.length;c+=1)N(i[c]);s=!0}},o(l){for(let c=0;c<i.length;c+=1)Z(i[c]);s=!1},d(l){l&&Y(n);for(let c=0;c<i.length;c+=1)i[c].d()}}}function wL(e,n,t){let{floorIndex:i}=n,{floorplanData:r}=n,{highlightData:s}=n,{hoveredRoom:o}=n;const a=r.bounding.max.x-r.bounding.min.x,l=r.bounding.max.y-r.bounding.min.y;return e.$$set=c=>{"floorIndex"in c&&t(0,i=c.floorIndex),"floorplanData"in c&&t(1,r=c.floorplanData),"highlightData"in c&&t(2,s=c.highlightData),"hoveredRoom"in c&&t(3,o=c.hoveredRoom)},[i,r,s,o,a,l]}class gA extends Oe{constructor(n){super(),ke(this,n,wL,AL,Le,{floorIndex:0,floorplanData:1,highlightData:2,hoveredRoom:3},bL)}}function xL(e){Ue(e,"svelte-1lm20n5",".missing-floor.svelte-1lm20n5{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);display:flex;flex-direction:column;align-items:center}.text.svelte-1lm20n5{margin-top:0.75rem;color:#fff;opacity:0.3}")}function vA(e){let n,t=e[0].text+"",i;return{c(){n=H("span"),i=Mt(t),_(n,"class","text svelte-1lm20n5"),W(n,"font-size",e[0].textFontSize+"px")},m(r,s){X(r,n,s),Q(n,i)},p(r,s){s&1&&t!==(t=r[0].text+"")&&Pt(i,t),s&1&&W(n,"font-size",r[0].textFontSize+"px")},d(r){r&&Y(n)}}}function ML(e){let n,t,i,r,s=e[0].text&&vA(e);return{c(){n=H("div"),t=H("img"),r=ye(),s&&s.c(),_(t,"class","image"),_(t,"alt","缺省楼层展位图"),Sn(t.src,i=e[0].imageURL)||_(t,"src",i),W(t,"width",e[0].imageWidth+"px"),W(t,"height",e[0].imageHeight+"px"),_(n,"class","missing-floor svelte-1lm20n5")},m(o,a){X(o,n,a),Q(n,t),Q(n,r),s&&s.m(n,null)},p(o,[a]){a&1&&!Sn(t.src,i=o[0].imageURL)&&_(t,"src",i),a&1&&W(t,"width",o[0].imageWidth+"px"),a&1&&W(t,"height",o[0].imageHeight+"px"),o[0].text?s?s.p(o,a):(s=vA(o),s.c(),s.m(n,null)):s&&(s.d(1),s=null)},i:de,o:de,d(o){o&&Y(n),s&&s.d()}}}function CL(e,n,t){let{missingFloorConfig:i}=n;return e.$$set=r=>{"missingFloorConfig"in r&&t(0,i=r.missingFloorConfig)},[i]}class PL extends Oe{constructor(n){super(),ke(this,n,CL,ML,Le,{missingFloorConfig:0},xL)}}const bs="data:image/png;base64,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";function wm(e){return e*180/Math.PI}function EL(e){Ue(e,"svelte-17cl35n",".floorplan__camera-position.svelte-17cl35n{position:absolute;width:0;height:0}.floorplan__camera-rotate.svelte-17cl35n{position:absolute;background-repeat:no-repeat;background-size:100%}")}function _L(e){let n,t;return{c(){n=H("div"),t=H("div"),_(t,"class","floorplan__camera-rotate svelte-17cl35n"),W(t,"background-image",`url(${e[0]||bs})`),W(t,"width",e[4]),W(t,"height",e[4]),W(t,"left","-"+e[4]),W(t,"top","-"+e[4]),W(t,"transform",`rotate(${e[3]}deg)`),W(t,"transform-origin",`${e[4]} ${e[4]}`),_(n,"class","floorplan__camera-position svelte-17cl35n"),W(n,"left",e[1]),W(n,"top",e[2])},m(i,r){X(i,n,r),Q(n,t)},p(i,[r]){r&1&&W(t,"background-image",`url(${i[0]||bs})`);const s=r&1;s&&W(t,"width",i[4]),s&&W(t,"height",i[4]),s&&W(t,"left","-"+i[4]),s&&W(t,"top","-"+i[4]),s&&W(t,"transform",`rotate(${i[3]}deg)`),s&&W(t,"transform-origin",`${i[4]} ${i[4]}`)},i:de,o:de,d(i){i&&Y(n)}}}function SL(e,n,t){let{panoIndex:i}=n,{floorplanData:r}=n,{lastPanoramaLongitude:s}=n,{cameraImageUrl:o}=n;const{observers:a}=r,l=a[i],c=l.positionInImage.x,h=l.positionInImage.y,u=c*100+"%",d=h*100+"%",f=-wm(s)+45,m=document.body.clientWidth,p=document.body.clientHeight,y=`${(m<500||p<500?17:37)/16}rem`;return e.$$set=b=>{"panoIndex"in b&&t(5,i=b.panoIndex),"floorplanData"in b&&t(6,r=b.floorplanData),"lastPanoramaLongitude"in b&&t(7,s=b.lastPanoramaLongitude),"cameraImageUrl"in b&&t(0,o=b.cameraImageUrl)},[o,u,d,f,y,i,r,s]}let IL=class extends Oe{constructor(n){super(),ke(this,n,SL,_L,Le,{panoIndex:5,floorplanData:6,lastPanoramaLongitude:7,cameraImageUrl:0},EL)}};const TL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArUAAAB7CAMAAABdA4ieAAAC91BMVEUAAACOpP/H0P+yxP/a4/+asv/W3/+/z/+cs//S3f+mu//Q2//5+v/H1P/d5f/l6//y9f++zf/i6f+ww/+ovP/7/P/u8v/N2f+Mp//q7/+4yf+uwf+Wr/+7y/+1xv+Ho//x9P+9zP+2x/+swP+gt/+Oqf/Y4v/r8P/l7P/b4//F0/+juf+Zsv+XsP+Trf/p7v97mv9wj/+kuv+ftf/x9P92lf/3+f/I1f+5yv+Eof98m//8/f/4+f90lf+9zf/j6f/T3f/L1/+Bnv/6+/+SrP/m7P/f5v/O2v/L2P/E0v/Az//+///s8P/e5v+rv/+pvv+Anv+qvv+Pqv+Kpv+CoP93l/9xlP/z9v/p7v90lf9uj//P2//v8//o7f/k6v/K1v+6yv9rjv98nv/E0v/9/v/09//h6P/X4f9pjP/9/f/N2f/K1v/C0f+Ho/99nP/1+P9sj//6+//u8/+iuP/u8//g6P/U3v+3x/+0xv+etf+Vrv9pjf/B0P9ukf+ht/+Vr/94mP/G0/+8zP+2x//+/v/09v/W4f9ojv/c5P+xxP/d5v+xw/+vwv+Jo//g6P+nvP+SrP/R3P/1+f/W3//U3//C0P+Jp/9nh/+Kpv+Fov/Y4f/J1/+Pqf+rv/+Oqv+Oqv+muv+twP/f5//t8P97mf/h5/+twP+kuf/L2P+juP+Ipf+huP+Pqf/d5v+zxf+cs/+Zsf+wwv/V3v+8zP+Go/+zxP+GpP/T3f/r8P/u8v/o7f/d5P/m7P/H1P/w9P/D0f+uwf/Z4v/F0v/09//D0v/v8//s8v/d5P/Y4f/s8P+etv/X4f+gt/+ovf+bsv+xw/+Vr//j6v+1x//J1v+4yf/r8P+yxf/T3f/B0f+Fo//09//W4P/h6P/L1v/i6f/x9f/t8v/G0/+uwf/z9f/7/P/n7f/z9v/T3f+4yf/J1v/z9f/w8//q7v/O2v/8/f/5+v/y9f/w8//g6P/z9v+/zv+5yf+9zf/5+v/Q3P/B0P/u8f/R2//////LSJnaAAAA/HRSTlMAAwGMx2jAn2u7ebn0q8zX7J3TiHz45bRS35SFYZmPSembkYNwVMXh2cmodWVjXN43DHZu6gfyrJZGOvrzLAbVvbBB91raz7aypqH+4s6Bfj9/Vk9EMint3C8gt+fc1q+XGAml/O/SxBz7s66kSz3wI/bjc+fQvpOObV8VoyZyXjSpmgv97sMPyorNiYZN0XpYuvHCv6JNEhEWw61YgCUdGBIP5CIgHypaUEU6NS9JQy8lGlY6NCuMfVtPSzspJoRxcExBNTMUyn9zaWRfVkk9Oad9emtkY0RBMLGsnJaQj4ZmXVHhsaKbeW9owb466dnVy7mYj45wyaGV3bdGzuNnAAASkklEQVR42uyaS0iUURiGTUQZ1MaMURSEbOFt4ybGQClFHO9rBS8F3nAURHG0hZvyQrgQRsfNuKmRCTcGGaEzThNqMyouwswKNTVMLe/a/bLo+845/5z/dzIiumj971I3gz6+Puc9x0POT6bRaXfYrJa18YHFhYXXKzMz6+/fb2+/ePFia8uvWlXelFkcr6pO2NqCr2xv77xfn5lZWXm9sDgwvmZZGnHYzaZjHnLk/PaYzL0jS9Pji6+XN3Z3gvJPnTkTEJCT01xSUtWuVick+PlVJ6tUqvj44uLipkxIU3F5fLxKlZxc7efnl6BWt1eVlDTn5AQEnDl16lR+be2n3fWZlYWBNcugze485yFHzq/Kub7eEcv44tzyekpsbEhIZGRWVk1NUFBtPqU2gFGbANRWVycnI7XlCO0XQm25mFp1VRWjFrDNz68NCqqpyYqMDAmJjc3NzQ3cmJwfmLba7CZPDzlyfg5Wh3V6YG559HyhUhkVlZJSUJDLqK3pDkJqoS8ZtVWEWiCTUltejl37BaCVdG2Cul1MLUIb1M2pLShIiYpSKpWF58+37U3Oj1ue2E0ecuT8EK1mm3VoYG4vW6MrLQ0MDDwvUIvQ8q6tBWqZIeRQQ+DU8q51NwQxtbVAbRajNrZARG1gaWBpm0anyY6enB+bGOyV6ZVzIK6bPUPzs17Rx48fb80GaHVtpQRaF7XYtZFIbTcRBAFb7rWc2uJM1rVoCCqgFquWdy0TBDCEbqSWlm2KQC38rZSW6nS67OxW+CxXr0Z7ec/J8MqRxtQ7ONQ/2xIREeHlFR191UVtqRu1wBep2hpqCNxrpYYg6dp4Ude2Y9cG8K5FQ8hyNwSglnZtNoE22svLKyKirKxFsTo28cQsH9v+81Bevb29O1qMZQAtUhs9SqnVsK5199osRi3fENwNgXitcBqrrmZly7r2DKUWq7Zb8FrBEAoptW1tGg3rWk5tC3xSQ53ig8zuf5pzd4df9c8qFIrEOgOhtgyphdCubaVdC9iyrkVo+Wnsm12bID6NZYqWLxX32qpm0fKVD9ii10bSrkVDiJJ2bWuriFqjsaUDPmpdXWIifG7f1bGezT55bfhfYrrfM7Wamufrq9cjtIkGA+1aZgiArdRrlUBtirRr2YbAvBZGBLV71/INAcuWbwjcEERey7tWKe7abGnXdiC1DFq9r29eampF/3O5dv/1ODd7pj5og4ODU13UQtdyQ+Beq9FovnMaE20IAdwQJHut2BCE05jaffkSDAGwxbJl1CK27DQ2iqcxCFKLXWsgXatX+BJqg4O1aWlJz14N35XR/RfTeP/2VOeFpKS0tDQCLVDrq9AjtXVIrdFYVsaoHWWGQKgN3EdtCNVa91sGtdQQmvhpjFUtX74QWjoioNdm0a5lGwL3Wp1GI/HaCCP1WkMddi1Cm5cH1BJsky5UxGHrysLw7wQd9pl/XFfFBaRWq9UCtalIrZ56rcG7A7u2jHktMQQN91qllFq2fImoba468G5M6rVq4rV8Q0CvZdTGgtcitrxrNUgtli1QCyFe6+0yBL3eF6Cl1CYBtYBtnL9/0b2ezWseco56QGLvpV++7O8fF1dRAdhC16Ih0K4lhpBoQBaMLS6vZacxTdu+DSFXsiHkU689YENgd2MSQ0iQ7rXiG90Qvnxh2eJhTOfqWihb7rXUEIBalyFotaRru+IQ28uXY9LBF27JD3OObPqePn9TlJ4eExNDqO0CapOQWsCWdq2CUmtgGwKnli9f6LWFrg0hhFEr7doS1rXSu7HM8nK3DaHd7W6shnutyxACqdficYxSyzYEgVqEVsENQYtdi9j6U2rTi4oqfaZu32n0kHO04nlr+N3HjIaGoqIipNafUNsF1KIicK9VUK8FQ8Cu5YbAqQVslfv2Wuq1+TU7uxszK/DycG1t2mJZWrKOjIzYHA673Wx2Ok3nPImbNJqcfWa7vdfhsMG3rUtLFss0PG3Eh43ruzvC8sW7lhkCgxYMQXzLYCReyzYESGoePY0JXesPiYlBbCsbOjMyMu713L/uIedo5NiNm+8++vhkALSVlaRrqSEAtNKu1VNqWddKN4Rs3f6uLdxYnsTXsdNLg7Ze8y95WOhp6rM7RqyW6fGB+bnJ5Q0lNQRyo+u+fOGGIMFWOI2Rqq2ghgDUYtcSbH18fE4AuXLnHvr0PX30JvzEiRM+gG0nYFsE2IIgQARD0LINIY9vCNLla1R8ozu6PLc4brE6zH/iEcAxp90GD83mJ/dAqjU64TTGvNYodC0uX2SvJV1LNwSkFg3B1bWEWvhBhIdfeSjbwiHO9QeP34aFXQkPp9AitWgIgtfGYdcecBrrMJYJy1c0gLIHb62GrE96+/7aCmoyOwYnhvrnJo3otXz5Yl6roNCmptLTGHYtei1imy50rQ+lFrANC7v48ra86B6+HLs1/PDs2YsA7RWAlmLb0MkNgXStdENwv2WIUKzi2yrnoZo98ekkPpYQ7saQWtq1dPlCr+WGIO1axJZSe/Hs2bePHsiae4jSeOfxpdBQhJZULe/aSmIISG0cNwTetQoIMQTDbP9Qj818mP+Pejp7ByfGVmeF5WufIVw4wGuxahm1oaGh9S9vyqPYYYgnnL1O19cDtEAt7VrqtXCIdnWtsCEkYdfyWwaF4jMp174j9JtsvGvrGer/oMcNQXzL0CVZvhoaMii1iG2YQG19/enTp08+li33K/tm7JNGGIbxqiEht5m7iasMcBuwwOJk0tEFcn9BG7s1bizQGBycCCbXpUkTo9VFJVpRSeNkuBqnq6BRoiwOMtldm3Tr+37fJ9+dtFEUbNX3+RPIj+d+93zf/ctgyZb1YDAUAmx510J410JY1wqvbTeEma3vJ9uP9571yObu8rfTd6xrhSEIahFb2bXCayW1wWAwM2CvLf5XFvSMMr9fzw9kMhnEFqmVXSsMYQI3hFFJLUD7GixwZuvHU/kuoG+zsXx0CtS+Yl4runZ0fHzcvSEAtUPcEEKCWshhdYlezx44I0vV80J+AILQQgIuagdby9e1vXbm9Ogp3kmd2j45q7z1Ll/tXRuAoCEAtQzbQkE93qdLCw+Wsa9NXVXVfB6xdXftsOxauSHwszHgtfG0L6IufNkBdhm0vGul10Kk14quzQO1qqqDK7yg9Dwj682wrk+raqEgoGXUtrp2yGUI3Gt/we3T5/L+0Q+6W/mIXTvR7rWArTSEfJ5Rq+the40at5dBMTDDCC2jVhoCYjscAGo5tBC+fA0elXefhsF2dqTdOKtMyLlWvo2F3NQCtNPTiG04aZcI3B6lb6mqJZPhK2rVFrVBFATRtXKvrZw1Fh/RotXdoOzu/LwYhLj3Wo8hCGrDQG1y1jTIcbufvo2ilTJnZxFbnRsC81qxIYQ8XntRpy9SWOZ3y+dv2pevjPRaQa1pplIph87OuoxsXEulTJND6zWEjPRagDZwXqbredd94bgiqfUYgsq6Ngldi9hqmna8Qj9etw6/bMvSNIYt/MAtQ8i7DQG79rLeoPH8b75QPg8wbINyQ+CGILtW0yxLUZoE7v2RrRmKolgaUouGwL1W93gtdu1lnY57bj5IPBRei+GGAHF3rYKJ7608l82lF5lacSLxOFLLutaUXeuhNlOnOyEdkMu9VnYtJGnysrUshDYej6SLG9QBd5TZdASgjSsQhNZFrS69FoilF6+OsgDkIrauDWEWu1ZjhoDYRiKRdNohU+g4CyUnl2tRa1nSEKTXFmwi9s7kNg89G4IwBNG1SG0uZ9BVhQ4PEwzDyKWBWoEtUis2BNG19toSydc9bx81D91dC9hKaiNIrWE4dPxwy8yXnEQCoL3WtSnetQhtsklXRLv1YajNli8BraYgtozaXBqgTSQS2cl1+q1vytj6pD+bBWpF10qvFV2btIukBV2WhVRrQxDQCkNAbLNZv1N7zoeMt/jr13x+P1LLyhawlYLAX8fobl33g0ZWtE2+11oearFr/RDf3gEV7p/z6WDS5/MJaF1eqwhslSo9q3qW/vn9Y63Na7Fqs0gtpDZHhXs9/Z9r0ShC6+5aQS1C65ToEKHXmVqvRtoNwQ9BbKPR96vUGt5H1IcYg9YjCDkxIcSrNB32ONLRSg7H1msIEMA2GqNJoZWp1ckYQCuoRWwZtUYaFSFdpNHwYbOwsodde7UhtLAFaGOxl7U5eub9Ztfscd0Eoihsu8oSKJBoQpUYyYULmhSIBVjACuip0tFQpEaaagTSyLiI9GSMZArEKp4it95N7oXBk6dUr7Ln59sB4uNw7p0BTlfb3s7Wcm0fvfbbV7MveAYo7k9eEB5h+x0Aa22b9OlKb9bHP7kNgLZC2slawKTs80Bx/2sIW8DO7dy7VSt9SfuoyHMurei1k7bnt/3K8ExQXLT2Y0MA8qLwro2mRaG6hV5RTNpuuba81345v+n+E3oR6su7aAjc2hyt9cL4qN+fcNNcw9DzPJG1i7VG2dfidHlHaYW1qK0H2oauZvvz/ZEyhtLyrBUN4WzuxLweIO6HrOXWhiQa6pUupHeLkRCYrbWB2dqzZh+vPGxOl1xoW3iztYyxqNWj4KadG0URm7z9tyHoPZi+PnBJRExjk7WEEHiTrtMof9T7q7NctJYwcBaYGgJwVf/R5Sft3bkh8KydrXVV93aHzs7WklBMY2b+kob65uE0NhcEQhhaa1mWo+7VmqqzgElaRlDbKWtD0wykAg6GikJkretO2saKelt1cRyjtQAD5qw1zUBCdr2L1jIWAdzaWEVvq44+pI0AErLQs/rdyiAjm9ONiF5rATGlpaPWwUM1ZHSxFokIY9FNn12fivw4toQwkbWobemPynhbD1lW0hKtfYTtVa3PUk+q3pp7LYDW0jLL2lGJ+yP14DhZltFFW5DW6swApgbrpn1kbVmCtJnj+KP0GyFwFsCspZRLq1j70Z2qsxC0loK0qK0vd95Wne/7IC1Q8qgd9DgB1Il0dKx4CVsH8P1E3n3C7t76AM/aErKW3s1FAxVZNweUllvrIwc5V5r7MUiSWVoMW5C2NdVAXao7DmNL1vpJkgy1dH/V9W9wNmmTxdqy7OR7CMMnV2EiaxMgkGzoXjdDEKC2S0HwR3OeoD6beuBZ26K0QXC4y/Pa/7Jrx7gJw1AYx2su0iuYgYFI7sAJstiS2ZKpk8UeWfKWKyQLLJ5Qxyp34TZ9D15YOkBpm9ji/U/A8CP+HFj0styMapHtZ54bh/t5y2E9LoQNVppMXoN1uixLQns8rl9PeZ0T3O96O5T4rL2wBQkuZnCbWQ7OXdUe1zwNni8YCsh2VOuK1I/a2jtHapHtZp/J+cD9bf0HoiW1rpAp38TfYlEUgJaetWUOZwP3P3UnetYCW1ChU52JogoS1UKIlq9gT95yILSugKRKciq2VhLaEpIVm3366j2pxaSMyf07YRUlND5qTynvGG6aaDOSWgnptFiIKoQLWmQ7pLphuOkTB0lqoZDSTGiVBrXE1iT0wbgEEn0gtSEEncoNfRV1uKKN/KqL+/4C1xYSA7XapjATRGU1hGxT3NtcGnUK0UJgZf7TuDWEls1yt9wiWsja7awzYRWttYgWYrPcLbejWqua2WaCqBSixQLvWe5mi06RWqv8TDOhNUrZC9sdm+Xuu5cpUqvU+wwzYbVVkIXYLHd/olekVpmpZ8KiMYbU7ma/EXJZBW5JrZl2V9bRnNWyWe4xt8TWTPd3FdEYSEFslnsoURlAi01FqN56f2br2xeOe9ytgbyf4nErGg/hl6RN4Jc5Lt++2rVjHMdCIIqiqtoRQW2mMogIyZFjlsB2B9wjjaY1PXa3wcbSPaEDR1fP9fVt8aPai2+f2+TlWu2l0yweZHlEO5S9cyu1lDKj5T/fWCH4jLaUnXMbvFyrzby8xRrayqUM2+ZWqvuM1nmpgHWkl8F9z9yG7LNa5yEMa0n8yHb93Er1oXjnoMVyFn3KQVcP7VRpFn+sDiznaiuHNufsHnkIwy7aPA/r5jbFGW3m7S12ku55WPN7Li1PPIRhN6sjtBjTmm+KmYcwPEOKs9tHF1JDHCoHLZ5DQ8yPBic9DoHjAKvsb85qjbFxHOCprMZaf5qdhlorxwGeTsPIttvPlno0y3GAZfbHp6n3ynGAV0m99u/2J6H3znGAvW4n+J25tdY7xwFey1pvQe6/DlrjOMDLqfXW7N5pbs0YWhxgtpj0rl1uiaHFISzccSWohUCzOIemm0VKChwHOMutKCVwHOA4av/JVi0xtDiRpCRfRcvQ4lBfxSnG0OJc/+xTjKHFyVRMP38iDC0O92lZVRhanO+vcVWGFu9BRWkW7+Z3rapEizdy7ZVm8V5Gtr8AtSnix59eOmYAAAAASUVORK5CYII=";function DL(e){Ue(e,"svelte-rpkaro",".floorplan-plugin__compass.svelte-rpkaro{position:absolute;left:50%;top:-2.875rem;width:14.4375rem;height:2.5625rem;will-change:opacity;transform-origin:center 11.5rem}.floorplan-plugin__compass-image.svelte-rpkaro{width:100%;height:100%;position:absolute;left:0;top:0;opacity:0.1;background-repeat:no-repeat;background-size:100% 100%}.floorplan-plugin__compass-text.svelte-rpkaro{position:absolute;left:50%;top:0.9375rem;transform:translateX(-50%);opacity:0.2;font-weight:bold;font-size:0.625rem;color:#fff}")}function LL(e){let n,t,i,r,s;return{c(){n=H("div"),t=H("div"),i=ye(),r=H("span"),s=Mt(e[0]),_(t,"class","floorplan-plugin__compass-image svelte-rpkaro"),W(t,"background-image",`url(${TL})`),_(r,"class","floorplan-plugin__compass-text svelte-rpkaro"),_(n,"class","floorplan-plugin__compass svelte-rpkaro"),W(n,"transform",e[2])},m(o,a){X(o,n,a),Q(n,t),Q(n,i),Q(n,r),Q(r,s)},p(o,a){a&1&&Pt(s,o[0])},d(o){o&&Y(n)}}}function kL(e){let n,t=e[1]&&LL(e);return{c(){t&&t.c(),n=pt()},m(i,r){t&&t.m(i,r),X(i,n,r)},p(i,[r]){i[1]&&t.p(i,r)},i:de,o:de,d(i){t&&t.d(i),i&&Y(n)}}}function OL(e,n,t){var c;let{floorplanData:i}=n,{northDesc:r}=n;const s=(c=i.entrance)==null?void 0:c.northRad,o=typeof s=="number",l=`translateX(-50%) translateZ(10px) rotate(${-(s?wm(s):0)+90}deg)`;return e.$$set=h=>{"floorplanData"in h&&t(3,i=h.floorplanData),"northDesc"in h&&t(0,r=h.northDesc)},[r,o,l,i]}class RL extends Oe{constructor(n){super(),ke(this,n,OL,kL,Le,{floorplanData:3,northDesc:0},DL)}}function zL(e){Ue(e,"svelte-bl8zrz",".floorplan-plugin__floor.svelte-bl8zrz{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}.floorplan-plugin__floor--is-current.svelte-bl8zrz{opacity:1;pointer-events:auto}")}function BL(e){let n,t,i,r,s,o,a,l,c,h;const u=[{floorIndex:e[2],floorplanData:e[11]}];let d={};for(let w=0;w<u.length;w+=1)d=Ln(d,u[w]);n=new pL({props:d});let f=(e[3]||e[5])&&yA(e);const m=[{floorplanData:e[11],floorIndex:e[2]}];let p={};for(let w=0;w<m.length;w+=1)p=Ln(p,m[w]);r=new Jb({props:p});let g=e[6]&&bA(e),y=e[10]&&AA(e),b=e[4]&&wA(e),A=e[22]&&xA(e);return{c(){Te(n.$$.fragment),t=ye(),f&&f.c(),i=ye(),Te(r.$$.fragment),s=ye(),g&&g.c(),o=ye(),y&&y.c(),a=ye(),b&&b.c(),l=ye(),A&&A.c(),c=pt()},m(w,x){Se(n,w,x),X(w,t,x),f&&f.m(w,x),X(w,i,x),Se(r,w,x),X(w,s,x),g&&g.m(w,x),X(w,o,x),y&&y.m(w,x),X(w,a,x),b&&b.m(w,x),X(w,l,x),A&&A.m(w,x),X(w,c,x),h=!0},p(w,x){const M=x&2052?Vn(u,[{floorIndex:w[2],floorplanData:w[11]}]):{};n.$set(M),w[3]||w[5]?f?(f.p(w,x),x&40&&N(f,1)):(f=yA(w),f.c(),N(f,1),f.m(i.parentNode,i)):f&&(Fe(),Z(f,1,1,()=>{f=null}),Ve());const E=x&2052?Vn(m,[{floorplanData:w[11],floorIndex:w[2]}]):{};r.$set(E),w[6]?g?(g.p(w,x),x&64&&N(g,1)):(g=bA(w),g.c(),N(g,1),g.m(o.parentNode,o)):g&&(Fe(),Z(g,1,1,()=>{g=null}),Ve()),w[10]?y?(y.p(w,x),x&1024&&N(y,1)):(y=AA(w),y.c(),N(y,1),y.m(a.parentNode,a)):y&&(Fe(),Z(y,1,1,()=>{y=null}),Ve()),w[4]?b?(b.p(w,x),x&16&&N(b,1)):(b=wA(w),b.c(),N(b,1),b.m(l.parentNode,l)):b&&(Fe(),Z(b,1,1,()=>{b=null}),Ve()),w[22]?A?(A.p(w,x),x&4194304&&N(A,1)):(A=xA(w),A.c(),N(A,1),A.m(c.parentNode,c)):A&&(Fe(),Z(A,1,1,()=>{A=null}),Ve())},i(w){h||(N(n.$$.fragment,w),N(f),N(r.$$.fragment,w),N(g),N(y),N(b),N(A),h=!0)},o(w){Z(n.$$.fragment,w),Z(f),Z(r.$$.fragment,w),Z(g),Z(y),Z(b),Z(A),h=!1},d(w){Ie(n,w),w&&Y(t),f&&f.d(w),w&&Y(i),Ie(r,w),w&&Y(s),g&&g.d(w),w&&Y(o),y&&y.d(w),w&&Y(a),b&&b.d(w),w&&Y(l),A&&A.d(w),w&&Y(c)}}}function NL(e){let n,t;return n=new PL({props:{missingFloorConfig:e[18]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&262144&&(s.missingFloorConfig=i[18]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function yA(e){let n,t;const i=[{floorIndex:e[2],floorplanData:e[11],hoveredRoom:e[24],highlightData:e[17]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new gA({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16910340?Vn(i,[{floorIndex:s[2],floorplanData:s[11],hoveredRoom:s[24],highlightData:s[17]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function bA(e){let n,t;const i=[{floorplanData:e[11],roomAreaEnable:e[7],roomNameEnable:e[8],roomDimensionEnable:e[9],floorIndex:e[2],getRoomAreaText:e[12],getRoomDimensionText:e[13],getLabelElement:e[14],hoveredRoom:e[24],adaptiveRoomLabelVisibleEnable:e[16]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new GD({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16874372?Vn(i,[{floorplanData:s[11],roomAreaEnable:s[7],roomNameEnable:s[8],roomDimensionEnable:s[9],floorIndex:s[2],getRoomAreaText:s[12],getRoomDimensionText:s[13],getLabelElement:s[14],hoveredRoom:s[24],adaptiveRoomLabelVisibleEnable:s[16]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function AA(e){let n,t;const i=[{floorplanData:e[11],floorIndex:e[2],getRuleDistanceText:e[15]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new ZD({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&34820?Vn(i,[{floorplanData:s[11],floorIndex:s[2],getRuleDistanceText:s[15]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function wA(e){let n,t;const i=[{panoIndex:e[0],floorplanData:e[11],lastPanoramaLongitude:e[19],cameraImageUrl:e[20]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new IL({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&1574913?Vn(i,[{panoIndex:s[0],floorplanData:s[11],lastPanoramaLongitude:s[19],cameraImageUrl:s[20]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function xA(e){let n,t;return n=new RL({props:{floorplanData:e[11],northDesc:e[21]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&2048&&(s.floorplanData=i[11]),r&2097152&&(s.northDesc=i[21]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function FL(e){let n,t,i,r,s;const o=[NL,BL],a=[];function l(c,h){return c[23]?1:0}return t=l(e),i=a[t]=o[t](e),{c(){n=H("div"),i.c(),_(n,"class",r=an(`floorplan-plugin__floor${e[1]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz")},m(c,h){X(c,n,h),a[t].m(n,null),s=!0},p(c,[h]){let u=t;t=l(c),t===u?a[t].p(c,h):(Fe(),Z(a[u],1,1,()=>{a[u]=null}),Ve(),i=a[t],i?i.p(c,h):(i=a[t]=o[t](c),i.c()),N(i,1),i.m(n,null)),(!s||h&2&&r!==(r=an(`floorplan-plugin__floor${c[1]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz"))&&_(n,"class",r)},i(c){s||(N(i),s=!0)},o(c){Z(i),s=!1},d(c){c&&Y(n),a[t].d()}}}function VL(e,n,t){let i,r,{panoIndex:s}=n,{isCurrent:o}=n,{floorIndex:a}=n,{highlightEnable:l}=n,{cameraEnable:c}=n,{hoverEnable:h}=n,{roomLabelsEnable:u}=n,{roomAreaEnable:d}=n,{roomNameEnable:f}=n,{roomDimensionEnable:m}=n,{ruleLabelsEnable:p}=n,{floorplanData:g}=n,{getRoomAreaText:y}=n,{getRoomDimensionText:b}=n,{getLabelElement:A}=n,{getRuleDistanceText:w}=n,{adaptiveRoomLabelVisibleEnable:x}=n,{highlightData:M}=n,{missingFloorConfig:E}=n,{lastPanoramaLongitude:S}=n,{cameraImageUrl:T}=n,{northDesc:z}=n,{compassEnable:D}=n;const k=bm(void 0);return e.$$set=R=>{"panoIndex"in R&&t(0,s=R.panoIndex),"isCurrent"in R&&t(1,o=R.isCurrent),"floorIndex"in R&&t(2,a=R.floorIndex),"highlightEnable"in R&&t(3,l=R.highlightEnable),"cameraEnable"in R&&t(4,c=R.cameraEnable),"hoverEnable"in R&&t(5,h=R.hoverEnable),"roomLabelsEnable"in R&&t(6,u=R.roomLabelsEnable),"roomAreaEnable"in R&&t(7,d=R.roomAreaEnable),"roomNameEnable"in R&&t(8,f=R.roomNameEnable),"roomDimensionEnable"in R&&t(9,m=R.roomDimensionEnable),"ruleLabelsEnable"in R&&t(10,p=R.ruleLabelsEnable),"floorplanData"in R&&t(11,g=R.floorplanData),"getRoomAreaText"in R&&t(12,y=R.getRoomAreaText),"getRoomDimensionText"in R&&t(13,b=R.getRoomDimensionText),"getLabelElement"in R&&t(14,A=R.getLabelElement),"getRuleDistanceText"in R&&t(15,w=R.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in R&&t(16,x=R.adaptiveRoomLabelVisibleEnable),"highlightData"in R&&t(17,M=R.highlightData),"missingFloorConfig"in R&&t(18,E=R.missingFloorConfig),"lastPanoramaLongitude"in R&&t(19,S=R.lastPanoramaLongitude),"cameraImageUrl"in R&&t(20,T=R.cameraImageUrl),"northDesc"in R&&t(21,z=R.northDesc),"compassEnable"in R&&t(22,D=R.compassEnable)},e.$$.update=()=>{e.$$.dirty&2052&&t(25,i=g.floorDatas[a]),e.$$.dirty&33554432&&t(23,r=i.rooms.length>0)},[s,o,a,l,c,h,u,d,f,m,p,g,y,b,A,w,x,M,E,S,T,z,D,r,k,i]}let GL=class extends Oe{constructor(n){super(),ke(this,n,VL,FL,Le,{panoIndex:0,isCurrent:1,floorIndex:2,highlightEnable:3,cameraEnable:4,hoverEnable:5,roomLabelsEnable:6,roomAreaEnable:7,roomNameEnable:8,roomDimensionEnable:9,ruleLabelsEnable:10,floorplanData:11,getRoomAreaText:12,getRoomDimensionText:13,getLabelElement:14,getRuleDistanceText:15,adaptiveRoomLabelVisibleEnable:16,highlightData:17,missingFloorConfig:18,lastPanoramaLongitude:19,cameraImageUrl:20,northDesc:21,compassEnable:22},zL)}};function jL(e){Ue(e,"svelte-86bqav",".floorplan-main.svelte-86bqav{width:100%;height:100%;pointer-events:none}")}function MA(e,n,t){const i=e.slice();return i[24]=n[t],i}function CA(e){let n,t,i,r=e[14].floorDatas,s=[];for(let a=0;a<r.length;a+=1)s[a]=PA(MA(e,r,a));const o=a=>Z(s[a],1,1,()=>{s[a]=null});return{c(){n=H("div");for(let a=0;a<s.length;a+=1)s[a].c();_(n,"class","floorplan-main svelte-86bqav")},m(a,l){X(a,n,l);for(let c=0;c<s.length;c+=1)s[c]&&s[c].m(n,null);i=!0},p(a,l){if(e=a,l&16777212){r=e[14].floorDatas;let c;for(c=0;c<r.length;c+=1){const h=MA(e,r,c);s[c]?(s[c].p(h,l),N(s[c],1)):(s[c]=PA(h),s[c].c(),N(s[c],1),s[c].m(n,null))}for(Fe(),c=r.length;c<s.length;c+=1)o(c);Ve()}},i(a){if(!i){for(let l=0;l<r.length;l+=1)N(s[l]);t||ln(()=>{t=ms(n,In,{duration:e[0],easing:Lr}),t.start()}),i=!0}},o(a){s=s.filter(Boolean);for(let l=0;l<s.length;l+=1)Z(s[l]);i=!1},d(a){a&&Y(n),Bi(s,a)}}}function PA(e){let n,t;const i=[{hoverEnable:e[6],highlightEnable:e[7],floorplanData:e[14],getRoomAreaText:e[17],getRoomDimensionText:e[18],getLabelElement:e[19],getRuleDistanceText:e[20],roomLabelsEnable:e[9],roomAreaEnable:e[10],roomNameEnable:e[11],roomDimensionEnable:e[12],ruleLabelsEnable:e[13],adaptiveRoomLabelVisibleEnable:e[21],highlightData:e[22],missingFloorConfig:e[23],panoIndex:e[3],cameraEnable:e[5],cameraImageUrl:e[16],lastPanoramaLongitude:e[15],compassEnable:e[8],northDesc:e[2]},{floorIndex:e[24].floorIndex},{isCurrent:e[24].floorIndex===e[4]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new GL({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16777212?Vn(i,[o&16777196&&{hoverEnable:s[6],highlightEnable:s[7],floorplanData:s[14],getRoomAreaText:s[17],getRoomDimensionText:s[18],getLabelElement:s[19],getRuleDistanceText:s[20],roomLabelsEnable:s[9],roomAreaEnable:s[10],roomNameEnable:s[11],roomDimensionEnable:s[12],ruleLabelsEnable:s[13],adaptiveRoomLabelVisibleEnable:s[21],highlightData:s[22],missingFloorConfig:s[23],panoIndex:s[3],cameraEnable:s[5],cameraImageUrl:s[16],lastPanoramaLongitude:s[15],compassEnable:s[8],northDesc:s[2]},o&16384&&{floorIndex:s[24].floorIndex},o&16400&&{isCurrent:s[24].floorIndex===s[4]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function HL(e){let n,t,i=e[1]&&CA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[1]?i?(i.p(r,s),s&2&&N(i,1)):(i=CA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function UL(e,n,t){let{duration:i=0}=n,{visible:r}=n,{northDesc:s}=n,{panoIndex:o}=n,{floorIndex:a}=n,{cameraEnable:l}=n,{hoverEnable:c}=n,{highlightEnable:h}=n,{compassEnable:u}=n,{roomLabelsEnable:d}=n,{roomAreaEnable:f}=n,{roomNameEnable:m}=n,{roomDimensionEnable:p}=n,{ruleLabelsEnable:g}=n,{floorplanData:y}=n,{lastPanoramaLongitude:b}=n,{cameraImageUrl:A}=n,{getRoomAreaText:w}=n,{getRoomDimensionText:x}=n,{getLabelElement:M}=n,{getRuleDistanceText:E}=n,{adaptiveRoomLabelVisibleEnable:S}=n,{highlightData:T}=n,{missingFloorConfig:z}=n;return e.$$set=D=>{"duration"in D&&t(0,i=D.duration),"visible"in D&&t(1,r=D.visible),"northDesc"in D&&t(2,s=D.northDesc),"panoIndex"in D&&t(3,o=D.panoIndex),"floorIndex"in D&&t(4,a=D.floorIndex),"cameraEnable"in D&&t(5,l=D.cameraEnable),"hoverEnable"in D&&t(6,c=D.hoverEnable),"highlightEnable"in D&&t(7,h=D.highlightEnable),"compassEnable"in D&&t(8,u=D.compassEnable),"roomLabelsEnable"in D&&t(9,d=D.roomLabelsEnable),"roomAreaEnable"in D&&t(10,f=D.roomAreaEnable),"roomNameEnable"in D&&t(11,m=D.roomNameEnable),"roomDimensionEnable"in D&&t(12,p=D.roomDimensionEnable),"ruleLabelsEnable"in D&&t(13,g=D.ruleLabelsEnable),"floorplanData"in D&&t(14,y=D.floorplanData),"lastPanoramaLongitude"in D&&t(15,b=D.lastPanoramaLongitude),"cameraImageUrl"in D&&t(16,A=D.cameraImageUrl),"getRoomAreaText"in D&&t(17,w=D.getRoomAreaText),"getRoomDimensionText"in D&&t(18,x=D.getRoomDimensionText),"getLabelElement"in D&&t(19,M=D.getLabelElement),"getRuleDistanceText"in D&&t(20,E=D.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in D&&t(21,S=D.adaptiveRoomLabelVisibleEnable),"highlightData"in D&&t(22,T=D.highlightData),"missingFloorConfig"in D&&t(23,z=D.missingFloorConfig)},[i,r,s,o,a,l,c,h,u,d,f,m,p,g,y,b,A,w,x,M,E,S,T,z]}let xm=class extends Oe{constructor(n){super(),ke(this,n,UL,HL,Le,{duration:0,visible:1,northDesc:2,panoIndex:3,floorIndex:4,cameraEnable:5,hoverEnable:6,highlightEnable:7,compassEnable:8,roomLabelsEnable:9,roomAreaEnable:10,roomNameEnable:11,roomDimensionEnable:12,ruleLabelsEnable:13,floorplanData:14,lastPanoramaLongitude:15,cameraImageUrl:16,getRoomAreaText:17,getRoomDimensionText:18,getLabelElement:19,getRuleDistanceText:20,adaptiveRoomLabelVisibleEnable:21,highlightData:22,missingFloorConfig:23},jL)}};const WL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";function QL(e){return te(this,null,function*(){const n=new Headers({"Content-Type":"text/plain"}),t=function(r){return te(this,null,function*(){const s={index:r.index,url:r.url,svgUrl:r.svg_url};if(r.svg_url){const o=yield fetch(r.svg_url,{headers:n}).then(a=>a.text());s.svgContent=o}return s})};return yield Promise.all(e.map(t))})}function YL(e){const n={id:e.id,size:e.size,name:e.name,path:e.path,roomType:e.room_type,floorType:e.floor_type,roomLabel:{position:e.room_label.position,positionInImage:e.room_label.position_in_image},observerIndexs:e.observer_indexs};return e.dimension&&Object.assign(n,{dimension:e.dimension}),n}function XL(e){return{floorName:e.floor_name,floorIndex:e.floor_index,rooms:e.rooms.map(YL),rules:e.rules}}function ZL(e){return{index:e.index,floorIndex:e.floor_index,position:e.position,positionInImage:e.position_in_image}}function JL(e){return{rad:e.rad,position:e.position,positionInImage:e.position_in_image,northRad:e.north_rad,roomId:e.room_id,floorIndex:e.floor_index}}function As(e){return te(this,null,function*(){const n=yield QL(e.outlines),t=e.computed_data.bounding,i=e.computed_data.floor_datas.map(XL),r=e.computed_data.entrance?JL(e.computed_data.entrance):null;return{outlines:n,entrance:r,bounding:t,floorDatas:i,observers:e.computed_data.observers.map(ZL)}})}function qL(e,n,t){return e.map(r=>{const s=r.position,o=r.icon?r.icon:{url:WL,width:45,height:48},a=KD(s,n),l=JD(s,t),c=qD(l,t);return{floorIndex:a,icon:o,id:r.id,position:l,positionInImage:c}})}function KL(e,n){return n(e),e}function Va(e,n){return KL({},t=>{for(const i in e)n.indexOf(i)===-1&&(t[i]=e[i])})}function EA(e,n){const t=Math.max(...e.work.observers.map(i=>i.floorIndex));return n>t?e.model.bounding.max.y:Math.max(...e.work.observers.filter(i=>i.floorIndex===n).map(i=>i.standingPosition.y))}function Mm(e,n,t=ys.BOUNDING_CENTER){const i=EA(e,n),r=EA(e,n+1);return t===ys.BOUNDING_CENTER?(e.model.bounding.max.y+e.model.bounding.min.y)/2:t===ys.CEILING?r:i}function Cm(e,n,t,i){const r=Mm(e,t,i==null?void 0:i.attachedTo),s=new C.Vector3(0,r,0),o=new C.Vector3(1,r,0),a=s.clone().project(e.camera),l=o.clone().project(e.camera);return Math.abs((l.x-a.x)/1e3)*(n.getBoundingClientRect().width/2)}let ws=class{constructor(n,t){v(this,"VERSION","3.50.2");v(this,"NAME");v(this,"five");v(this,"workUtil");v(this,"fiveUtil");v(this,"hooks",new Pn);v(this,"staticPrefix","//vr-image-4.realsee-cdn.cn");this.updateFive(n),t!=null&&t.staticPrefix&&(this.staticPrefix=t.staticPrefix)}set workCode(n){this.workUtil.workCode=n,this.onWorkCodeChange()}get workCode(){return this.workUtil.workCode}updateFive(n){this.five=n,this.fiveUtil=new zu(n),this.workUtil=this.fiveUtil.workUtil}getCurrentState(){return this.state}absoluteUrl(n){return Kp(this.staticPrefix,n)}onWorkCodeChange(){}},Or=class extends ws{};var ti=(e=>(e.UnknownError="UnknownError",e.DataNotLoaded="DataNotLoaded",e.UpdateSizeError="UpdateSizeError",e.BreakOffByHide="BreakOffByHide",e.BreakOffByDisable="BreakOffByDisable",e.ModelNotLoaded="ModelNotLoaded",e.ChangeModeError="ChangeModeError",e.UpdateCameraError="UpdateCameraError",e))(ti||{});const _A=500,$L=80;function Js(e,n,t=4){return Math.abs(e-n)<Math.pow(10,-t)}function SA(e,n,t=4){const i=Math.PI*2,r=e%i,s=n%i,o=Math.min(r,s),a=Math.max(r,s);return Js(o,a,t)||Js(o+i,a,t)}Object.assign(window,{nearlyEqual:Js,nearlyEqualRad:SA});function ek(e){return Object.prototype.toString.call(e)==="[object Object]"}function IA(e){return ek(e)&&!!e.isVector3}function Pm(e,n){return te(this,null,function*(){const[t]=yield Zs(e.changeMode(...n));if(t)throw new Error("change mode canceled");yield new Promise(o=>{e.once("initAnimationWillStart",()=>{e.once("initAnimationEnded",()=>o())})});const i=n[1];if(!i)return!0;const r=e.getCurrentState();if(!tk(i,r))throw new Error("pose 与预期不符")})}function tk(e,n){return Object.keys(e).every(t=>{const i=n[t],r=e[t];return i===void 0||r===void 0?!0:t==="longitude"||t==="latitude"?SA(i,r,2):typeof i=="number"&&typeof r=="number"?Js(i,r,2):IA(r)&&IA(i)?r.distanceTo(i)<.01:i===r})}function nk(e,n){if(e.currentMode!==n.mode)return!1;const{latitude:t,longitude:i,fov:r,offset:s}=n,{latitude:o,longitude:a,offset:l}=e.getCurrentState(),c=e.camera.fov;return!(!Js(t,o,2)||!Js(i,a,2)||s!==void 0&&s.distanceTo(l)>.01||!Js(r,c,2))}function TA(e,n,t=!0){return te(this,null,function*(){if(nk(e,n)===!0)return;const r=e.getCurrentState();if(r.mode!==n.mode){const[h]=yield Zs(Pm(e,[n.mode,n,void 0,t]));if(h)throw h;return}const{latitude:s,longitude:o,fov:a}=r,l=Math.min(1e3,Math.max(200,Math.abs(s-Math.PI/2)*1e3,(o>Math.PI?2*Math.PI-o:o)*500,typeof n.fov=="number"?Math.abs(a-n.fov)*10:1/0)),[c]=yield Zs(e.updateCamera(Va(n,["mode"]),l,t));if(c)throw new Error(ti.UpdateCameraError)})}function Ga(e,n,t=300){const i=e.getElement();i&&(i.style.opacity=n+"",i.style.transition=t===0?"none":`opacity ${t}ms linear`,t!==0&&Promise.race([new Promise(r=>i.addEventListener("transitionend",r,{once:!0})),new Promise(r=>setTimeout(r,t))]).then(()=>{i.style.transition="none"}))}function ik(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)>5*Math.PI/180,r=t>5*(Math.PI/180)&&t<355*(Math.PI/180);return i||r}function rk(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)<10*Math.PI/180,r=t<30*(Math.PI/180)||t>330*(Math.PI/180);return i&&r}let sk=class extends Or{constructor(t,i){var l,c,h;super(t);v(this,"name","modelFloorplanPlugin");v(this,"state");v(this,"data");v(this,"showState");v(this,"showPromise");v(this,"app");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"selector");v(this,"showRejection");v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"show",(...i)=>te(this,[...i],function*(t={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const r=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},r),this._show(t)}));v(this,"hide",(...i)=>te(this,[...i],function*(t={}){this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},t.userAction||!0),this._hide(t)))}));v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper)return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s,o;const{userAction:i}=t;this.hooks.emit("disable",{userAction:i}),(r=this.showRejection)==null||r.call(this,ti.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(o=this.container)==null||o.remove(),this.removeEventListener()});v(this,"_enable",t=>{const{userAction:i}=t;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i}))});v(this,"_show",t=>te(this,null,function*(){var o;if(!this.state.enabled)return;if(!((o=this.five.model)!=null&&o.loaded))throw new Error(ti.ModelNotLoaded);if(!this.data)throw new Error(ti.DataNotLoaded);if(this.showPromise)return this.showPromise;const i={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},r=O(O({},i),t),s=()=>te(this,null,function*(){this.hooks.emit("show",{userAction:r.userAction,auto:r.isAutoShow});let a=!1,l;this.showRejection=u=>{a=!0,l=u};const[c]=yield Zs(TA(this.five,this.showState,r.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(ti.UnknownError);if(!this.updateSize())throw new Error(ti.UpdateSizeError);this.floorIndex=r.floorIndex,this.five.model.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=s().then(()=>{this.showPromise=void 0,this.showRejection=void 0;const a=r.modelOpacity,l=r.immediately?0:_A;Ga(this.five,a,l),this.render(l),this.hooks.emit("showAnimationEnded",{auto:r.isAutoShow,userAction:r.userAction})}).catch(a=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},r.userAction),!r.isAutoShow&&a instanceof Error)throw a}),this.showPromise}));v(this,"_hide",t=>{var s;(s=this.showRejection)==null||s.call(this,ti.BreakOffByHide),this.showPromise=void 0;const r=O(O({},{userAction:!0,isAutoHide:!1}),t);Ga(this.five,1,0),this.hooks.emit("hide",{auto:r.isAutoHide,userAction:r.userAction}),this.render()});v(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});v(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const t=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!t)throw new Error("不正确的父容器选择器");this.wrapper=t,t.append(this.container)});v(this,"onFiveModeChange",t=>{t!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});v(this,"onFiveInteriaPan",(t,i)=>{if(!i||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const r=this.five.getCurrentState();r.mode==="Floorplan"&&(this.state.visible||rk(r)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.workUtil.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{if(!this.state.visible||this.showPromise)return;const r=this.five.getCurrentState();ik(r)&&(this.updateState({visible:!1},i),this._hide({userAction:i,isAutoHide:!0}))});v(this,"onFiveWantsGesture",(t,i)=>{if(this.state.visible&&(i.length>1||t==="mouseWheel"))return!1});v(this,"onFiveWantsPanGesture",(t,i)=>{if(this.five.getCurrentState().mode==="Floorplan"&&this.state.config.autoShowEnable!==!1&&i&&this.state.visible)return this.five.updateCamera(this.showState,0),!1});v(this,"onFiveWantsTapGesture",()=>this.handleClick());v(this,"onFiveWantsChangeMode",(t,i)=>{i==="Panorama"&&t==="Floorplan"&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});v(this,"onModelShownFloorChange",t=>{if(this.floorIndex!==t){if(t===null){const i=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[i].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.showState={mode:"Floorplan",longitude:0,latitude:Math.PI/2,fov:$L/((l=i==null?void 0:i.scale)!=null?l:1)},this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(h=(c=i.i18n)==null?void 0:c.call(i,"暂无平面图"))!=null?h:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,adaptiveRoomLabelVisibleEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:u=>u,getRoomAreaText:u=>(u/1e6).toFixed(1)+"㎡",getRoomDimensionText:(u,d)=>(u/1e3).toFixed(1)+"m × "+(d/1e3).toFixed(1)+"m",getRuleDistanceText:u=>u.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled&&(t.enabled?this._enable({userAction:s}):this._disable({userAction:s})),t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}this.render()}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}formatData(t){return te(this,null,function*(){return yield As(t.data)})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.model.loaded?this.onFiveModelLoaded():t.once("modelLoaded",this.onFiveModelLoaded),t.on("modeChange",this.onFiveModeChange),t.on("interiaPan",this.onFiveInteriaPan),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsGesture",this.onFiveWantsGesture),t.on("wantsPanGesture",this.onFiveWantsPanGesture),t.on("wantsTapGesture",this.onFiveWantsTapGesture),t.on("wantsChangeMode",this.onFiveWantsChangeMode),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modelLoaded",this.onFiveModelLoaded),t.off("modeChange",this.onFiveModeChange),t.off("interiaPan",this.onFiveInteriaPan),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsGesture",this.onFiveWantsGesture),t.off("wantsPanGesture",this.onFiveWantsPanGesture),t.off("wantsTapGesture",this.onFiveWantsTapGesture),t.off("wantsChangeMode",this.onFiveWantsChangeMode),t.off("modelShownFloorChange",this.onModelShownFloorChange)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0||this.showPromise)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const ok=(e,n)=>new sk(e,n);function ak(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)>5*Math.PI/180,r=t>5*(Math.PI/180)&&t<355*(Math.PI/180);return i||r}function lk(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)<10*Math.PI/180,r=t<30*(Math.PI/180)||t>330*(Math.PI/180);return i&&r}let ck=class extends Or{constructor(t,i){var l,c;super(t);v(this,"name","modelFloorplanPlugin");v(this,"state");v(this,"data");v(this,"showState");v(this,"showPromise");v(this,"app");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"selector");v(this,"showRejection");v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"show",(...i)=>te(this,[...i],function*(t={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const r=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},r),this._show(t)}));v(this,"hide",(...i)=>te(this,[...i],function*(t={}){this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},t.userAction||!0),this._hide(t)))}));v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper)return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s,o;const{userAction:i}=t;this.hooks.emit("disable",{userAction:i}),(r=this.showRejection)==null||r.call(this,ti.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(o=this.container)==null||o.remove(),this.removeEventListener()});v(this,"_enable",t=>{const{userAction:i}=t;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i}))});v(this,"_show",t=>te(this,null,function*(){var o;if(!this.state.enabled)return;if(!((o=this.fiveUtil.model)!=null&&o.loaded))throw new Error(ti.ModelNotLoaded);if(!this.data)throw new Error(ti.DataNotLoaded);if(this.showPromise)return this.showPromise;const i={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},r=O(O({},i),t),s=()=>te(this,null,function*(){this.hooks.emit("show",{userAction:r.userAction,auto:r.isAutoShow});let a=!1,l;this.showRejection=u=>{a=!0,l=u};const[c]=yield Zs(TA(this.five,this.showState,r.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(ti.UnknownError);if(!this.updateSize())throw new Error(ti.UpdateSizeError);this.updatePosition(),this.floorIndex=r.floorIndex,this.fiveUtil.model.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=s().then(()=>{this.showPromise=void 0,this.showRejection=void 0;const a=r.modelOpacity,l=r.immediately?0:_A;Ga(this.five,a,l),this.render(l),this.hooks.emit("showAnimationEnded",{auto:r.isAutoShow,userAction:r.userAction})}).catch(a=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},r.userAction),!r.isAutoShow&&a instanceof Error)throw a}),this.showPromise}));v(this,"_hide",t=>{var s;(s=this.showRejection)==null||s.call(this,ti.BreakOffByHide),this.showPromise=void 0;const r=O(O({},{userAction:!0,isAutoHide:!1}),t);Ga(this.five,1,0),this.hooks.emit("hide",{auto:r.isAutoHide,userAction:r.userAction}),this.render()});v(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});v(this,"onFiveModelLoaded",()=>{const i=this.five.model.bounding.getCenter(new C.Vector3);if(this.showState.offset=i,this.state.enabled===!1||this.wrapper||!this.selector)return;const r=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!r)throw new Error("不正确的父容器选择器");this.wrapper=r,r.append(this.container)});v(this,"onFiveModeChange",t=>{t!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});v(this,"onFiveInteriaPan",(t,i)=>{if(!i||this.state.visible||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const r=this.five.getCurrentState();r.mode===this.showState.mode&&lk(r)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.workUtil.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{if(!this.state.visible||this.showPromise)return;const r=this.five.getCurrentState();this.updatePosition(),this.updateSize(),ak(r)&&(this.updateState({visible:!1},i),this._hide({userAction:i}))});v(this,"onFiveWantsPanGesture",(t,i)=>{if(this.five.getCurrentState().mode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&i&&this.state.visible)return this.five.updateCamera(Va(this.showState,["offset"]),0),!1});v(this,"onFiveWantsTapGesture",()=>this.handleClick());v(this,"onFiveWantsChangeMode",(t,i)=>{i==="Panorama"&&t===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});v(this,"onModelShownFloorChange",t=>{var i;if(this.floorIndex!==t){if(t===null){const r=this.five.getCurrentState().panoIndex;this.floorIndex=(i=this.five.work)==null?void 0:i.observers[r].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.showState={mode:"Mapview",longitude:0,latitude:Math.PI/2},this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(c=(l=i.i18n)==null?void 0:l.call(i,"暂无平面图"))!=null?c:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:h=>h,getRoomAreaText:h=>(h/1e6).toFixed(1)+"㎡",getRoomDimensionText:(h,u)=>(h/1e3).toFixed(1)+"m × "+(u/1e3).toFixed(1)+"m",getRuleDistanceText:h=>h.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),Ca(t).then(this.onFiveModelLoaded),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled&&(t.enabled?this._enable({userAction:s}):this._disable({userAction:s})),t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}updatePosition(){var a;const t=Mm(this.five,this.floorIndex,this.state.config.attachedTo),i=(a=this.fiveUtil.model)==null?void 0:a.bounding.getCenter(new C.Vector3).setY(t);if(!i)return;const r=i.clone().project(this.five.camera),s=(r.x+1)/2,o=-(r.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=o*100+"%"}formatData(t){return te(this,null,function*(){return yield As(t.data)})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.on("modeChange",this.onFiveModeChange),t.on("interiaPan",this.onFiveInteriaPan),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsPanGesture",this.onFiveWantsPanGesture),t.on("wantsTapGesture",this.onFiveWantsTapGesture),t.on("wantsChangeMode",this.onFiveWantsChangeMode),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modelLoaded",this.onFiveModelLoaded),t.off("modeChange",this.onFiveModeChange),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsPanGesture",this.onFiveWantsPanGesture),t.off("wantsTapGesture",this.onFiveWantsTapGesture),t.off("wantsChangeMode",this.onFiveWantsChangeMode),t.off("modelShownFloorChange",this.onModelShownFloorChange)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0||this.showPromise)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const hk=(e,n)=>new ck(e,n);let uk=class extends Or{constructor(t,i){var l,c;super(t);v(this,"name","topviewFloorplanPlugin");v(this,"state");v(this,"data");v(this,"app");v(this,"selector");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper||this.five.getCurrentState().mode!=="Topview")return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s;const{userAction:i}=t;(r=this.app)==null||r.$destroy(),this.app=void 0,(s=this.container)==null||s.remove(),this.removeEventListener(),this.hooks.emit("disable",{userAction:i})});v(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const t=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!t)throw new Error("不正确的父容器选择器");this.wrapper=t,t.append(this.container)});v(this,"onFiveModeChange",(...[t,,,,i])=>{t!=="Topview"&&this.state.visible&&(this.updateState({visible:!1},i),this._hide({userAction:i}))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.five.work.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{this.state.visible&&(this.updatePosition(),this.updateSize())});v(this,"onFiveWantsGesture",t=>{if(!(t!=="pan"&&t!=="pinch"&&t!=="mouseWheel")&&this.state.visible&&!this.state.config.gestureEnable)return!1});v(this,"onFiveWantsMoveToPano",()=>{if(this.state.visible&&this.state.config.preventRoomClick)return!1});v(this,"onFiveInitAnimationEnded",(...[,,t])=>{const{mode:i}=this.five.getCurrentState();i==="Topview"&&!this.isHiddenByHideFunc&&!this.state.visible&&this.state.config.autoShowEnable&&(this.updateState({visible:!0},t),this._show({userAction:t}))});v(this,"onModelShownFloorChange",t=>{if(this.floorIndex!==t){if(t===null){const i=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[i].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(c=(l=i.i18n)==null?void 0:l.call(i,"暂无平面图"))!=null?c:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,hoverEnable:!0,highlightEnable:!1,compassEnable:!0,gestureEnable:!1,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:h=>h,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:h=>(h/1e6).toFixed(1)+"㎡",getRoomDimensionText:(h,u)=>(h/1e3).toFixed(1)+"m × "+(u/1e3).toFixed(1)+"m",getRuleDistanceText:h=>h.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),t.model.loaded?this.onFiveModelLoaded():t.once("modelLoaded",this.onFiveModelLoaded),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}updatePosition(){var a;const t=Mm(this.five,this.floorIndex,this.state.config.attachedTo),i=(a=this.five.model)==null?void 0:a.bounding.getCenter(new C.Vector3).setY(t);if(!i)return;const r=i.clone().project(this.five.camera),s=(r.x+1)/2,o=-(r.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=o*100+"%"}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}show(){return te(this,arguments,function*(t={}){if(this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},i),this._show({userAction:i})})}hide(){return te(this,arguments,function*(t={}){if(this.isHiddenByHideFunc=!0,!this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!1},i),this._hide({userAction:i})})}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled){const o={userAction:s};t.enabled?this._enable(o):this._disable(o)}if(t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}formatData(t){return te(this,null,function*(){return yield As(t.data)})}_show(t){return te(this,null,function*(){if(!this.state.enabled)return;this.isHiddenByHideFunc=!1;const{userAction:i}=t;this.hooks.emit("show",{userAction:i,auto:!1}),this.five.getCurrentState().mode!=="Topview"&&(yield Pm(this.five,["Topview",void 0,void 0,i])),this.five.model.show(this.floorIndex),this.updatePosition(),this.updateSize();const r=500,s=this.state.config.modelOpacity;Ga(this.five,s,r),this.hooks.emit("showAnimationEnded",{userAction:i,auto:!1}),this.render()})}_hide(t){return te(this,null,function*(){if(!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("hide",{userAction:i,auto:!1});const r=1,s=0;Ga(this.five,r,s),this.render()})}_enable(t){const{userAction:i}=t;this.addEventListener(),this.wrapper&&this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.on("modeChange",this.onFiveModeChange),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsGesture",this.onFiveWantsGesture),t.on("wantsMoveToPano",this.onFiveWantsMoveToPano),t.on("initAnimationEnded",this.onFiveInitAnimationEnded),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modeChange",this.onFiveModeChange),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsGesture",this.onFiveWantsGesture),t.off("wantsMoveToPano",this.onFiveWantsMoveToPano),t.off("initAnimationEnded",this.onFiveInitAnimationEnded),t.off("modelShownFloorChange",this.onModelShownFloorChange)}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate3d(-50%, -50%, 10px)",zIndex:10,pointerEvents:"none","will-change":"width, height"}),this.five.addExtraElement(this.container)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const dk=(e,n)=>new uk(e,n);function Em(e,n=200){let t;return function(...i){t||(e(...i),t=setTimeout(function(){t=null},n))}}function fk(e){Ue(e,"svelte-1nqrlxd",".plugin-radar__camera-wrapper.svelte-1nqrlxd{width:100%;height:100%;position:absolute;pointer-events:none}.plugin-radar__camera-position.svelte-1nqrlxd{position:absolute;left:0;top:0;width:0;height:0;transform:none;pointer-events:none;transition:transform 1s linear}.plugin-radar__camera-rotate.svelte-1nqrlxd{position:absolute;left:-0.9375rem;top:-0.9375rem;width:1.0625rem;height:1.0625rem;transform-origin:0.9375rem 0.9375rem;transform:rotate(45deg);background-repeat:no-repeat;background-size:100%}")}function pk(e){let n,t,i;return{c(){n=H("div"),t=H("div"),i=H("div"),_(i,"class","plugin-radar__camera-rotate svelte-1nqrlxd"),W(i,"background-image","url("+(e[0]||bs)+")"),W(i,"transform",e[1]),_(t,"class","plugin-radar__camera-position svelte-1nqrlxd"),W(t,"transform",e[2]),_(n,"class","plugin-radar__camera-wrapper svelte-1nqrlxd"),W(n,"opacity",e[3]?1:0)},m(r,s){X(r,n,s),Q(n,t),Q(t,i)},p(r,[s]){s&1&&W(i,"background-image","url("+(r[0]||bs)+")"),(s&1||s&3)&&W(i,"transform",r[1]),s&4&&W(t,"transform",r[2]),s&8&&W(n,"opacity",r[3]?1:0)},i:de,o:de,d(r){r&&Y(n)}}}function mk(e){return`rotate(${Math.floor(e/Math.PI*180)*-1+45}deg)`}function gk(e,n,t){var b,A;let i,r,s,o,{five:a}=n,{pxmm:l}=n,{floorplanData:c}=n,{cameraImageUrl:h}=n,u=a.getCurrentState().panoIndex,d=a.getCurrentState().longitude,f=(A=(b=a.work.observers[a.getCurrentState().panoIndex])==null?void 0:b.floorIndex)!=null?A:0;function m(w,x){const M=w.bounding,E=w.observers[x];if(!E)return"";const S=(M.max.x-M.min.x)*l,T=(M.max.y-M.min.y)*l,z=Math.floor(E.positionInImage.x*S),D=Math.floor(E.positionInImage.y*T);return`translate(${z}px, ${D}px)`}function p(w){t(7,u=w)}function g(w){t(9,f=a.work.observers[w].floorIndex)}const y=Em(w=>{t(8,d=w.longitude)},1e3/60);return Yn(()=>(a.on("panoWillArrive",p),a.on("panoArrived",g),a.on("cameraDirectionUpdate",y),function(){a.off("panoWillArrive",p),a.off("panoArrived",g),a.off("cameraDirectionUpdate",y)})),e.$$set=w=>{"five"in w&&t(4,a=w.five),"pxmm"in w&&t(5,l=w.pxmm),"floorplanData"in w&&t(6,c=w.floorplanData),"cameraImageUrl"in w&&t(0,h=w.cameraImageUrl)},e.$$.update=()=>{e.$$.dirty&576&&t(10,i=c.floorDatas[f]),e.$$.dirty&1024&&t(3,r=i.rooms.length>0),e.$$.dirty&192&&t(2,s=m(c,u)),e.$$.dirty&256&&t(1,o=mk(d))},[h,o,s,r,a,l,c,u,d,f,i]}class vk extends Oe{constructor(n){super(),ke(this,n,gk,pk,Le,{five:4,pxmm:5,floorplanData:6,cameraImageUrl:0},fk)}}function yk(e){Ue(e,"svelte-1i87fz7",".plugin-pano-floorplan__extra-objects.svelte-1i87fz7{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.plugin-pano-floorplan__extra-object-item--position.svelte-1i87fz7{position:absolute;width:0;height:0}.plugin-pano-floorplan__extra-object-item.svelte-1i87fz7{transform:translate(-50%, -50%)}")}function DA(e,n,t){const i=e.slice();return i[1]=n[t],i}function LA(e,n){let t,i,r=`${n[1].icon.width/16}rem`,s=`${n[1].icon.height/16}rem`,o,a=`${n[1].positionInImage.y*100}%`,l=`${n[1].positionInImage.x*100}%`;return{key:e,first:null,c(){t=H("div"),i=H("div"),o=ye(),_(i,"class","plugin-pano-floorplan__extra-object-item svelte-1i87fz7"),W(i,"background-image",`url(${n[1].icon.url})`),W(i,"width",r),W(i,"height",s),_(t,"class","plugin-pano-floorplan__extra-object-item--position svelte-1i87fz7"),W(t,"top",a),W(t,"left",l),this.first=t},m(c,h){X(c,t,h),Q(t,i),Q(t,o)},p(c,h){n=c,h&1&&W(i,"background-image",`url(${n[1].icon.url})`);const u=h&1;u&&W(i,"width",r),u&&W(i,"height",s),h&1&&a!==(a=`${n[1].positionInImage.y*100}%`)&&W(t,"top",a),h&1&&l!==(l=`${n[1].positionInImage.x*100}%`)&&W(t,"left",l)},d(c){c&&Y(t)}}}function bk(e){let n,t=[],i=new Map,r=e[0];const s=o=>o[1].id;for(let o=0;o<r.length;o+=1){let a=DA(e,r,o),l=s(a);i.set(l,t[o]=LA(l,a))}return{c(){n=H("div");for(let o=0;o<t.length;o+=1)t[o].c();_(n,"class","plugin-pano-floorplan__extra-objects svelte-1i87fz7")},m(o,a){X(o,n,a);for(let l=0;l<t.length;l+=1)t[l]&&t[l].m(n,null)},p(o,[a]){a&1&&(r=o[0],t=Ni(t,a,s,1,o,r,i,n,gm,LA,null,DA))},i:de,o:de,d(o){o&&Y(n);for(let a=0;a<t.length;a+=1)t[a].d()}}}function Ak(e,n,t){let{extraObjects:i=[]}=n;return e.$$set=r=>{"extraObjects"in r&&t(0,i=r.extraObjects)},[i]}class wk extends Oe{constructor(n){super(),ke(this,n,Ak,bk,Le,{extraObjects:0},yk)}}function xk(e){Ue(e,"svelte-18287ai",".missing-floor-wrapper.svelte-18287ai{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex;justify-content:center;align-items:center}.missing-floor-image.svelte-18287ai{max-width:100%;max-height:100%}")}function Mk(e){let n,t,i,r,s,o;const a=[{floorIndex:e[2],floorplanData:e[4]}];let l={};for(let h=0;h<a.length;h+=1)l=Ln(l,a[h]);n=new Jb({props:l}),i=new wk({props:{extraObjects:e[7]}});let c=e[3]&&kA(e);return{c(){Te(n.$$.fragment),t=ye(),Te(i.$$.fragment),r=ye(),c&&c.c(),s=pt()},m(h,u){Se(n,h,u),X(h,t,u),Se(i,h,u),X(h,r,u),c&&c.m(h,u),X(h,s,u),o=!0},p(h,u){const d=u&20?Vn(a,[{floorIndex:h[2],floorplanData:h[4]}]):{};n.$set(d);const f={};u&128&&(f.extraObjects=h[7]),i.$set(f),h[3]?c?(c.p(h,u),u&8&&N(c,1)):(c=kA(h),c.c(),N(c,1),c.m(s.parentNode,s)):c&&(Fe(),Z(c,1,1,()=>{c=null}),Ve())},i(h){o||(N(n.$$.fragment,h),N(i.$$.fragment,h),N(c),o=!0)},o(h){Z(n.$$.fragment,h),Z(i.$$.fragment,h),Z(c),o=!1},d(h){Ie(n,h),h&&Y(t),Ie(i,h),h&&Y(r),c&&c.d(h),h&&Y(s)}}}function Ck(e){let n,t,i;return{c(){n=H("div"),t=H("img"),_(t,"class","missing-floor-image svelte-18287ai"),Sn(t.src,i=e[6])||_(t,"src",i),_(t,"alt","缺省楼层"),_(n,"class","missing-floor-wrapper svelte-18287ai")},m(r,s){X(r,n,s),Q(n,t)},p(r,s){s&64&&!Sn(t.src,i=r[6])&&_(t,"src",i)},i:de,o:de,d(r){r&&Y(n)}}}function kA(e){let n,t;const i=[{five:e[0],pxmm:e[1],floorIndex:e[2],floorplanData:e[4],onRoomHeightClick:e[9],highlightData:e[5],hoveredRoom:void 0}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new gA({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&567?Vn(i,[{five:s[0],pxmm:s[1],floorIndex:s[2],floorplanData:s[4],onRoomHeightClick:s[9],highlightData:s[5],hoveredRoom:void 0}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function Pk(e){let n,t,i,r;const s=[Ck,Mk],o=[];function a(l,c){return l[8]?1:0}return n=a(e),t=o[n]=s[n](e),{c(){t.c(),i=pt()},m(l,c){o[n].m(l,c),X(l,i,c),r=!0},p(l,[c]){let h=n;n=a(l),n===h?o[n].p(l,c):(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve(),t=o[n],t?t.p(l,c):(t=o[n]=s[n](l),t.c()),N(t,1),t.m(i.parentNode,i))},i(l){r||(N(t),r=!0)},o(l){Z(t),r=!1},d(l){o[n].d(l),l&&Y(i)}}}function Ek(e,n,t){let i,r,s,{five:o}=n,{pxmm:a}=n,{floorIndex:l}=n,{hoverEnable:c}=n,{floorplanData:h}=n,{extraObjects:u=[]}=n,{highlightData:d}=n,{missingFloorImageUrl:f}=n;const m=void 0;return e.$$set=p=>{"five"in p&&t(0,o=p.five),"pxmm"in p&&t(1,a=p.pxmm),"floorIndex"in p&&t(2,l=p.floorIndex),"hoverEnable"in p&&t(3,c=p.hoverEnable),"floorplanData"in p&&t(4,h=p.floorplanData),"extraObjects"in p&&t(10,u=p.extraObjects),"highlightData"in p&&t(5,d=p.highlightData),"missingFloorImageUrl"in p&&t(6,f=p.missingFloorImageUrl)},e.$$.update=()=>{e.$$.dirty&20&&t(11,i=h.floorDatas[l]),e.$$.dirty&2048&&t(8,r=i.rooms.length>0),e.$$.dirty&1028&&t(7,s=u==null?void 0:u.filter(p=>p.floorIndex===l))},[o,a,l,c,h,d,f,s,r,m,u,i]}class _k extends Oe{constructor(n){super(),ke(this,n,Ek,Pk,Le,{five:0,pxmm:1,floorIndex:2,hoverEnable:3,floorplanData:4,extraObjects:10,highlightData:5,missingFloorImageUrl:6},xk)}}function Sk(e){Ue(e,"svelte-1mvqyqq",".plugin-floorplan-radar.svelte-1mvqyqq{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.plugin-floorplan-radar-container.svelte-1mvqyqq{position:relative}")}function OA(e){let n,t,i,r,s=e[8]!==0&&RA(e);return{c(){n=H("div"),s&&s.c(),_(n,"class","plugin-floorplan-radar svelte-1mvqyqq")},m(o,a){X(o,n,a),s&&s.m(n,null),t=!0,i||(r=[zi(vs.call(null,n)),lt(n,"clientWidth",e[14]),lt(n,"clientHeight",e[15])],i=!0)},p(o,a){o[8]!==0?s?(s.p(o,a),a&256&&N(s,1)):(s=RA(o),s.c(),N(s,1),s.m(n,null)):s&&(Fe(),Z(s,1,1,()=>{s=null}),Ve())},i(o){t||(N(s),t=!0)},o(o){Z(s),t=!1},d(o){o&&Y(n),s&&s.d(),i=!1,bn(r)}}}function RA(e){let n,t,i,r,s=`${e[10]}px`,o=`${e[13]}px`,a;const l=[{five:e[0],pxmm:e[11],floorIndex:e[12],floorplanData:e[3],hoverEnable:e[2],extraObjects:e[5],highlightData:e[6],missingFloorImageUrl:e[7]}];let c={};for(let d=0;d<l.length;d+=1)c=Ln(c,l[d]);t=new _k({props:c});const h=[{pxmm:e[11],five:e[0],floorplanData:e[3],cameraImageUrl:e[4]}];let u={};for(let d=0;d<h.length;d+=1)u=Ln(u,h[d]);return r=new vk({props:u}),{c(){n=H("div"),Te(t.$$.fragment),i=ye(),Te(r.$$.fragment),_(n,"class","plugin-floorplan-radar-container svelte-1mvqyqq"),W(n,"width",s),W(n,"height",o)},m(d,f){X(d,n,f),Se(t,n,null),Q(n,i),Se(r,n,null),a=!0},p(d,f){const m=f&6381?Vn(l,[{five:d[0],pxmm:d[11],floorIndex:d[12],floorplanData:d[3],hoverEnable:d[2],extraObjects:d[5],highlightData:d[6],missingFloorImageUrl:d[7]}]):{};t.$set(m);const p=f&2073?Vn(h,[{pxmm:d[11],five:d[0],floorplanData:d[3],cameraImageUrl:d[4]}]):{};r.$set(p),f&1024&&s!==(s=`${d[10]}px`)&&W(n,"width",s),f&8192&&o!==(o=`${d[13]}px`)&&W(n,"height",o)},i(d){a||(N(t.$$.fragment,d),N(r.$$.fragment,d),a=!0)},o(d){Z(t.$$.fragment,d),Z(r.$$.fragment,d),a=!1},d(d){d&&Y(n),Ie(t),Ie(r)}}}function Ik(e){let n,t,i=e[1]&&OA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[1]?i?(i.p(r,s),s&2&&N(i,1)):(i=OA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function Tk(e,n,t){var w,x;let{five:i}=n,{visible:r}=n,{hoverEnable:s}=n,{floorplanData:o}=n,{cameraImageUrl:a}=n,{extraObjects:l=[]}=n,{highlightData:c}=n,{missingFloorImageUrl:h}=n,u=0,d=(x=(w=i.work.observers[i.getCurrentState().panoIndex])==null?void 0:w.floorIndex)!=null?x:0,f=0,m=0,p=0,g=0;function y(M){t(12,d=i.work.observers[M].floorIndex)}Yn(()=>(i.on("panoArrived",y),()=>{i.off("panoArrived",y)}));const b=M=>{t(8,f=M.detail)},A=M=>{t(9,m=M.detail)};return e.$$set=M=>{"five"in M&&t(0,i=M.five),"visible"in M&&t(1,r=M.visible),"hoverEnable"in M&&t(2,s=M.hoverEnable),"floorplanData"in M&&t(3,o=M.floorplanData),"cameraImageUrl"in M&&t(4,a=M.cameraImageUrl),"extraObjects"in M&&t(5,l=M.extraObjects),"highlightData"in M&&t(6,c=M.highlightData),"missingFloorImageUrl"in M&&t(7,h=M.missingFloorImageUrl)},e.$$.update=()=>{if(e.$$.dirty&1800){const M=Math.min(f,m),{max:E,min:S}=o.bounding,T=E.x-S.x,z=E.y-S.y,D=function(){return T>z?[M,M/T*z]:[M/z*T,M]}();t(10,p=D[0]),t(13,g=D[1]),t(11,u=p/T)}},[i,r,s,o,a,l,c,h,f,m,p,u,d,g,b,A]}class Dk extends Oe{constructor(n){super(),ke(this,n,Tk,Ik,Le,{five:0,visible:1,hoverEnable:2,floorplanData:3,cameraImageUrl:4,extraObjects:5,highlightData:6,missingFloorImageUrl:7},Sk)}}let Lk=class extends Or{constructor(t,i){super(t);v(this,"name","panoFloorplanRadarPlugin");v(this,"state");v(this,"data");v(this,"app");v(this,"wrapperSelector","");v(this,"wrapper",null);v(this,"disposed",!1);v(this,"extraObjects",[]);v(this,"highlightData",{});v(this,"dispose",()=>{var t;this.disposed=!0,(t=this.app)==null||t.$destroy(),this.wrapper=null,this.wrapperSelector="",this.hooks.emit("dispose")});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r;const{userAction:i}=t;(r=this.app)==null||r.$destroy(),this.app=void 0,this.hooks.emit("disable",{userAction:i})});this.five=t;const r={hoverEnable:!0,highlightEnable:!0,cameraImageUrl:bs,missingFloorImageUrl:this.staticPrefix+"/release/web/saas/missing-floor.d687a5ed.png"},s=O(O({},r),i==null?void 0:i.configs);this.state={enabled:!0,visible:!0,config:s},i!=null&&i.wrapper&&console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法"),typeof(i==null?void 0:i.wrapper)=="string"?this.wrapperSelector=i.wrapper:(i==null?void 0:i.wrapper)instanceof Element&&(this.wrapper=i.wrapper),t.once("dispose",this.dispose)}load(t,i,r=!0){return te(this,null,function*(){function s(c){return Object.prototype.hasOwnProperty.apply(c,["version"])}const o=JSON.parse(JSON.stringify(t)),a=s(o)?o.data:o,l=this.data;this.data=yield As(a),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,l),i&&this.updateState(i,r),this.render()})}show(){return te(this,arguments,function*(t={}){if(this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},i),this._show({userAction:i})})}hide(){return te(this,arguments,function*(t={}){if(!this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!1},i),this._hide({userAction:i})})}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled){const o={userAction:s};t.enabled?this._enable(o):this._disable(o)}if(t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}appendTo(t){this.wrapper!==t&&this.app&&(this.app.$destroy(),this.app=void 0),this.wrapper=t,this.render()}changeConfigs(t,i=!0){this.setState({config:t},{userAction:i}),this.render()}setExtraObjectsWith3DPositions(t){this.data&&(this.extraObjects=qL(t,this.five,this.data),this.render())}formatData(t){return te(this,null,function*(){return yield As(t.data)})}_enable(t){const{userAction:i}=t;this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i})}_show(t){if(this.disposed||!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("show",{userAction:i}),this.render()}_hide(t){if(this.disposed||!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("hide",{userAction:i}),this.render()}updateState(t,i){const r=this.state,s=t.config?O(O({},r.config),t.config):r.config;this.state=Pe(O(O({},this.state),t),{config:s}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}render(){if(this.disposed||!this.state.enabled)return;if(!this.wrapper&&this.wrapperSelector){const i=document.querySelector(this.wrapperSelector);this.wrapper=i}if(!this.data||!this.wrapper)return;const t=Pe(O({},this.state.config),{five:this.five,floorplanData:this.data,visible:this.state.visible,extraObjects:this.extraObjects,highlightData:this.highlightData});this.app?this.app.$set(t):this.app=new Dk({target:this.wrapper,props:t})}};const kk=(e,n)=>new Lk(e,n),Ok=[{type:0,floorType:1,roomType:"100900000012",name:"其他"},{type:1,floorType:1,roomType:"100900000002",name:"客厅"},{type:2,floorType:1,roomType:"100900000002",name:"餐厅"},{type:3,floorType:0,roomType:"100900000001",name:"卧室"},{type:4,floorType:0,roomType:"100900000001",name:"书房"},{type:5,floorType:3,roomType:"100900000004",name:"卫生间"},{type:6,floorType:3,roomType:"100900000004",name:"淋浴间"},{type:7,floorType:3,roomType:"100900000004",name:"洗手间"},{type:8,floorType:3,roomType:"100900000003",name:"厨房"},{type:9,floorType:1,roomType:"100900000003",name:"开放厨房",onlySubArea:!0},{type:10,floorType:0,roomType:"100900000001",name:"多功能间"},{type:11,floorType:0,roomType:"100900000009",name:"保姆间"},{type:12,floorType:4,roomType:"100900000005",name:"阳台"},{type:13,floorType:4,roomType:"100900000006",name:"露台"},{type:14,floorType:0,roomType:"100900000008",name:"储物间"},{type:15,floorType:0,roomType:"100900000013",name:"衣帽间"},{type:16,floorType:0,roomType:"100900000011",name:"阁楼"},{type:17,floorType:2,roomType:"100900000007",name:"花园"},{type:18,floorType:5,roomType:"100900000010",name:"车库"},{type:19,floorType:1,roomType:"100900000012",name:"电梯"},{type:20,floorType:1,roomType:"100900000012",name:"地下室"},{type:21,floorType:1,roomType:"100900000012",name:"天井"},{type:22,floorType:1,roomType:"100900000012",name:"阳光房"},{type:23,floorType:1,roomType:"100900000012",name:"过道"},{type:24,floorType:1,roomType:"100900000012",name:"楼梯间"},{type:25,floorType:1,roomType:"100900000012",name:"门厅"},{type:26,floorType:2,roomType:"100900000012",name:"入户花园"},{type:27,floorType:1,roomType:"100900000012",name:"玄关"},{type:28,floorType:1,roomType:"100900000012",name:"挑空"},{type:29,floorType:4,roomType:"100900000012",name:"晾晒区"},{type:30,floorType:4,roomType:"100900000012",name:"洗衣房"},{type:31,floorType:0,roomType:"100900000012",name:"娱乐区"},{type:32,floorType:0,roomType:"100900000012",name:"健身区"},{type:33,floorType:0,roomType:"100900000012",name:"接待区"},{type:34,floorType:0,roomType:"100900000012",name:"影音区"},{type:35,floorType:1,roomType:"100900000012",name:"餐饮区"},{type:36,floorType:1,roomType:"100900000012",name:"其他",onlySubArea:!0},{type:37,floorType:1,roomType:"100900000002",name:"起居室"},{type:38,floorType:0,roomType:"100900000001",name:"主卧"},{type:39,floorType:0,roomType:"100900000001",name:"次卧"},{type:40,floorType:0,roomType:"100900000001",name:"优化间"},{type:41,floorType:0,roomType:"100900000001",name:"办公室"},{type:42,floorType:0,roomType:"100900000001",name:"会议室"},{type:43,floorType:0,roomType:"100900000001",name:"洽谈间"},{type:44,floorType:1,roomType:"100900000002",name:"共享大厅"},{type:45,floorType:1,roomType:"100900000012",name:"水吧"},{type:46,floorType:0,roomType:"100900000015",name:"出入口"},{type:47,floorType:0,roomType:"100900000015",name:"大厅"},{type:48,floorType:0,roomType:"100900000015",name:"包厢"},{type:49,floorType:0,roomType:"100900000015",name:"其他"},{type:50,floorType:0,roomType:"100900000016",name:"出入口"},{type:51,floorType:0,roomType:"100900000016",name:"办公区"},{type:52,floorType:0,roomType:"100900000016",name:"老板间"},{type:53,floorType:0,roomType:"100900000016",name:"会议室"},{type:54,floorType:0,roomType:"100900000016",name:"休息区/水吧"},{type:55,floorType:0,roomType:"100900000016",name:"其他"},{type:56,floorType:2,roomType:"100900000012",name:"空中花园"},{type:57,floorType:0,roomType:"100900000001",name:"洋室"},{type:58,floorType:0,roomType:"100900000001",name:"和室"}],Rk=[{type:0,description:"木质地板"},{type:1,description:"瓷砖地面"},{type:2,description:"户外地面"},{type:3,description:"卫生间地面"},{type:4,description:"阳台地面"},{type:5,description:"车库地面"}],zk=[{roomType:"100900000001",description:"室"},{roomType:"100900000002",description:"厅"},{roomType:"100900000003",description:"厨"},{roomType:"100900000004",description:"卫"},{roomType:"100900000005",description:"阳台"},{roomType:"100900000006",description:"露台"},{roomType:"100900000007",description:"花园"},{roomType:"100900000008",description:"储"},{roomType:"100900000009",description:"保姆间"},{roomType:"100900000010",description:"车库"},{roomType:"100900000011",description:"阁楼"},{roomType:"100900000012",description:"其他"},{roomType:"100900000013",description:"衣"},{roomType:"100900000015",description:"商铺"},{roomType:"100900000016",description:"写字楼"}],_m=(e,n,t)=>{const i=new C.Matrix4,r=new C.Euler(e,n,t,"YXZ");return i.makeRotationFromEuler(r),i},Bk=(e,{scale:n,rotation:t,position:i})=>{if(n&&e.scale.set(n,n,n),t){const[r,s,o]=t;r&&e.applyMatrix4(_m(r,0,0)),s&&e.applyMatrix4(_m(0,s,0)),o&&e.applyMatrix4(_m(0,0,o))}return i&&e.position.set(i.x,i.y,i.z),e};function zA(e,n){e.traverse(t=>{var i;if(t.type==="Mesh"){const r=t,s=O({map:r.material.map||{}},n);r.material=new ee.MeshBasicMaterial(s),r.renderOrder=1,((i=t.parent)==null?void 0:i.type)==="Mesh"&&(t.renderOrder=t.parent.renderOrder+1)}})}const Nk=(e,n)=>{var p;const t=n.fbx_url||"//vrlab-image4.ljcdn.com/release/web/dipan2.f38a21cc.FBX",i=(p=n.north_rad)!=null?p:void 0,r={};let s={x:0,y:0,z:0},o=[0,0,0],a=1,l=i;e.on("modelLoaded",m);const c=g=>te(this,null,function*(){var w;const y=(g==null?void 0:g.fbx_url)||t;if(l=(w=g==null?void 0:g.north_rad)!=null?w:i,typeof l!="number")throw new Error('"northRad"配置参数缺失:未配置指南针指向!');const A=yield new go.FBXLoader().loadAsync(y);return zA(A,{transparent:!0,side:C.DoubleSide,blending:C.AdditiveBlending}),r.object=A,m(),!0}),h=({latitude:g})=>{if(!r.object)return;const y=u(g);y&&(r.object.position.y=y)},u=g=>{if(r.yBase===void 0)return;const y=.6;if(g>=Math.PI/4)return r.yBase-(y+1.6);const b=g*(4/Math.PI);return r.yBase-(y*b+1.6)},d=()=>{if(!r.object)return;const g=u(e.getPose().latitude);g&&(r.object.position.y=g),e.scene.add(r.object),e.needsRender=!0,e.on("cameraDirectionUpdate",h)},f=()=>{r.object&&(e.scene.remove(r.object),e.needsRender=!0,e.off("cameraDirectionUpdate",h))};function m(){const g=r.object;if(!g)return;const y=e.model.bounding,b=y.max.x-y.min.x,A=y.max.z-y.min.z,w=Math.max(b,A),{max:{x,z:M},min:{x:E,y:S,z:T}}=y;r.yBase=S,s={x:(x+E)/2,y:S-1.6,z:(M+T)/2},o=[0,l-Math.PI/2,0],a=.0045*w,Bk(g,{position:s,rotation:o,scale:a})}return{load:c,disable:f,enable:d}};function Fk(e,n){var c,h,u,d,f;const t=(c=n==null?void 0:n.size)!=null?c:512,i=(h=n==null?void 0:n.fontSize)!=null?h:t*(35/256)*1.2,r=(u=n==null?void 0:n.backgroundColor)!=null?u:"rgba(0,0,0,0)",s=(d=n==null?void 0:n.fontColor)!=null?d:"#fff",o=(f=n==null?void 0:n.textAlign)!=null?f:"center",a=document.createElement("canvas");a.setAttribute("width",t+""),a.setAttribute("height",t+"");const l=a.getContext("2d");return l.fillStyle=r,l.fillRect(0,0,t,t),l.font=`${i}px "微软雅黑"`,l.textAlign=o,l.fillStyle=s,l.fillText(e,t/2,t*.7),new ee.CanvasTexture(a)}const Vk=({x:e,y:n,z:t})=>new ee.Vector3(e,n,t),Gk=(e,n)=>{var p,g,y;const t={},i=(p=n.animationEnabled)!=null?p:!0,r=(g=n.position)!=null?g:void 0,s=(y=n.rad)!=null?y:void 0,o=n.fbx_url||"//vrlab-image4.ljcdn.com/release/web/entryDoorMini/Anim_Door1.fbx",a=[],l=b=>te(this,null,function*(){var z,D,k,R,G,I,U,q;const A=(z=b==null?void 0:b.position)!=null?z:r;if(!A)return Promise.reject(new Error("ModelEntryDoorGuidePlugin.load(): position is undefined"));const w=Vk(A),x=(D=b==null?void 0:b.rad)!=null?D:s,M=(k=b==null?void 0:b.fbx_url)!=null?k:o;if(t.rad=x,x===void 0)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${x}`));const E=yield new go.FBXLoader().loadAsync(M);E.position.copy(w),E.rotation.z=x,E.scale.set(.8,.8,.8),zA(E,{transparent:!0,side:C.DoubleSide});const S=(U=(I=(G=(R=E.children)==null?void 0:R[0])==null?void 0:G.children)==null?void 0:I[3])==null?void 0:U.clone();if(!S)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${S}`));const T=(q=n.name)!=null?q:"入户门";return S.material=new ee.MeshBasicMaterial({transparent:!0,map:Fk(T)}),S.renderOrder=3,E.children[0].add(S),t.object=E,!0}),c=()=>{if(t.animation)return;if(!t.object)return console.error("ModelEntryDoorGuidePlugin.initAnimation(): state.object is ",t.object);const b=1,A=new ee.AnimationMixer(t.object);a.push(A);const w=A.clipAction(t.object.animations[0]);w.timeScale=b;let x;const M=()=>{let z=0,D=0;const k=1e3/30,R=G=>{z=requestAnimationFrame(R);const I=G-D;I<k||(D=G,a.forEach(U=>U.update(I/1e3)),e.needsRender=!0)};return z=requestAnimationFrame(R),()=>{cancelAnimationFrame(z)}},T={play:()=>{x||(w.play(),x=M(),requestAnimationFrame(()=>{t.object&&t.object.rotation.z!==t.rad&&(t.object.rotation.z=t.rad)}))},stop:()=>{w.stop(),x==null||x(),x=void 0}};t.animation=T},h=b=>{var w;if(!t.object)return console.error("ModelEntryDoorGuidePlugin.enable(): object is ",t.object);((w=b==null?void 0:b.animationEnable)!=null?w:i)&&(t.animation||c(),t.animation.play()),e.scene.add(t.object),e.needsRender=!0},u=()=>{t.object&&(t.animation&&t.animation.stop(),e.scene.remove(t.object),e.needsRender=!0)},d=b=>b==="Floorplan"?h():u();return{load:l,enable:b=>(t.enabled||(t.enabled=!0,d(e.currentMode),e.on("modeChange",d),h(b)),!0),disable:()=>(t.enabled&&(t.enabled=!1,u(),e.off("modeChange",d)),!0)}},jk=Gi;function Hk(e,n,t,i=jk.Linear.None){const r=new ih(e).to(n,t).easing(i);yc(()=>r.start(0));const s=Aa(a=>{r.update(a)===!1&&s()}),o=[];return r.onDestroy=a=>(o.push(a),r),r.destroy=function(){this.stop(),Object.assign(r,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallbackL:null});let a;for(;a=o.shift();)a();s()},r}function Uk(e,n){return Hk({progress:0},{progress:1},e,n)}var BA=(e=>(e.Move="Move",e.Rotate="Rotate",e))(BA||{}),sr=(e=>(e.Clockwise="Clockwise",e.Anticlockwise="Anticlockwise",e.Loop="Loop",e))(sr||{});const rd=Math.PI*2;function NA(e){return(e%rd+rd)%rd}function FA(e){return e%rd}function Sm(e,n,t){return e+(n-e)*t}const Im=(e,n,t)=>{const i=Math.PI,r=i*2;let s=NA(e),o=NA(n);return t===sr.Anticlockwise&&s<o&&(s+=r),t===sr.Clockwise&&o<s&&(o+=r),t===sr.Loop&&o-s>i?Im(s,o,sr.Anticlockwise):t===sr.Loop&&s-o>i?Im(s,o,sr.Clockwise):{from:s,to:o}},Wk=e=>{const n={},t=(l,c,...h)=>te(this,[l,c,...h],function*(s,o,a={preload:!0}){return n.interruptCallback&&n.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),s.mode&&s.mode!==e.currentMode&&(yield e.changeMode(s.mode)),a.preload&&s.panoIndex!==void 0&&s.panoIndex!==e.panoIndex&&(yield e.preloadPano(s.panoIndex)),a.asyncEndCallback&&(yield a.asyncEndCallback()),s.panoIndex===void 0&&s.fov===void 0&&s.latitude===void 0&&s.longitude===void 0?!0:yield new Promise((u,d)=>{const f=s.panoIndex!==void 0?s.panoIndex:e.panoIndex;f!==void 0?e.moveToPano(f,O({duration:o,moveEndCallback:()=>u(!0),moveCancelCallback:()=>d(new Error("move canceled"))},s)):d(new Error("unexpected error"))})}),i=s=>{const o=e.state,a=FA(o.latitude),l=FA(s.latitude),{from:c,to:h}=Im(o.longitude,s.longitude,s.rotation||sr.Loop),u=o.fov,d=s.fov;return{from:{latitude:a,longitude:c,fov:u},to:{latitude:l,longitude:h,fov:d}}};return{move:t,rotate:(l,c,...h)=>te(this,[l,c,...h],function*(s,o,a={}){n.interruptCallback&&n.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),e.currentMode!==Zt.Five.Mode.Panorama&&(yield e.changeMode(Zt.Five.Mode.Panorama)),s.panoIndex!==void 0&&s.panoIndex!==e.panoIndex&&(a.preload&&(yield e.preloadPano(s.panoIndex)),yield new Promise((f,m)=>{if(!s.panoIndex){f(!0);return}e.moveToPano(s.panoIndex,{moveEndCallback:()=>f(!0),moveCancelCallback:()=>m(new Error("move canceled"))})})),a.asyncEndCallback&&(yield a.asyncEndCallback());const{from:u,to:d}=i(s);return yield new Promise(f=>{const m=({progress:A})=>{const w={};w.longitude=Sm(u.longitude,d.longitude,A),w.latitude=Sm(u.latitude,d.latitude,A),w.fov=Sm(u.fov,d.fov,A),e.setState(w,!0)},p=()=>{f(!0)},g=()=>{f(!1)},y=s.rotateSpeed?Math.ceil(Math.abs(d.longitude-u.longitude)/s.rotateSpeed*1e3):o,b=Uk(y,Gi.Linear.None).onUpdate(m).onComplete(p).onDestroy(g);s.rotation===sr.Loop&&b.repeat(1/0).yoyo(!0),n.interruptCallback=(A=!0)=>{b.destroy(),n.interruptCallback=void 0,n.timeoutId&&(clearTimeout(n.timeoutId),n.timeoutId=void 0),f(A)},n.timeoutId=setTimeout(()=>{n.interruptCallback&&n.interruptCallback(!0)},o)})})}};function VA(e,n){return e.x===n.x&&e.y===n.y}function GA(e,n){return Math.abs(e)===1/0&&Math.abs(n)===1/0?!0:Math.abs(e-n)<.001}function sd(e,n){return(n.y-e.y)/(n.x-e.x)}function jA(e,n,t){const i=sd(e[1],e[0]),r=sd(n[1],n[0]);if(isNaN(i)||isNaN(r)||GA(i,r))return!1;if(od(e[0],n))return e[0];if(od(e[1],n))return e[1];if(od(n[0],e))return n[0];if(od(n[1],e))return n[1];if(t&&!Yk(e,n))return!1;const s=e[0],o=n[0];if(Math.abs(i)===1/0)return{x:s.x,y:n[1].y-(n[1].x-s.x)*r};if(Math.abs(r)===1/0)return{x:o.x,y:e[1].y-(e[1].x-o.x)*i};const a=(o.y-s.y+i*s.x-r*o.x)/(i-r),l=i*a-i*s.x+s.y;return{x:a,y:l}}function od(e,n){return VA(e,n[0])||VA(e,n[1])?!0:(n[0].x-e.x)*(e.x-n[1].x)>=0&&(n[0].y-e.y)*(e.y-n[1].y)>=0&&GA(sd(n[0],e),sd(e,n[1]))}function Qk(e){let n=1/0,t=-1/0,i=1/0,r=-1/0;return e.forEach(s=>{n=Math.min(n,s.x),t=Math.max(t,s.x),i=Math.min(i,s.y),r=Math.max(r,s.y)}),{x:(n+t)/2,y:(i+r)/2}}function ad(e,n,t){return(e.x-t.x)*(n.y-t.y)-(n.x-t.x)*(e.y-t.y)}function Yk(e,n){return Math.max(e[0].x,e[1].x)>=Math.min(n[0].x,n[1].x)&&Math.max(n[0].x,n[1].x)>=Math.min(e[0].x,e[1].x)&&Math.max(e[0].y,e[1].y)>=Math.min(n[0].y,n[1].y)&&ad(n[0],e[1],e[0])*ad(e[1],n[1],e[0])>0&&ad(e[0],n[1],n[0])*ad(n[1],e[1],n[0])>0?1:0}function HA(e,n=0){n<=0?requestAnimationFrame(e):requestAnimationFrame(()=>HA(e,n-1))}const Xk=`<style type="text/css">
|
|
3174
|
+
`;return e.$$set=s=>{"content"in s&&t(0,i=s.content)},[i,r]}class PD extends Oe{constructor(n){super(),ke(this,n,CD,MD,Le,{content:0},xD)}}function ED(e){Ue(e,"svelte-ozpg4a",".floorplan-plugin__base-image.svelte-ozpg4a{position:absolute;z-index:10;width:100%;height:100%;pointer-events:none}")}function _D(e){let n,t;return n=new wD({props:{url:e[1].url}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&2&&(s.url=i[1].url),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function SD(e){let n,t;return n=new PD({props:{content:e[0]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.content=i[0]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function ID(e){let n,t,i,r;const s=[SD,_D],o=[];function a(l,c){return l[0]?0:l[1]?1:-1}return~(t=a(e))&&(i=o[t]=s[t](e)),{c(){n=H("div"),i&&i.c(),_(n,"class","floorplan-plugin__base-image svelte-ozpg4a")},m(l,c){X(l,n,c),~t&&o[t].m(n,null),r=!0},p(l,[c]){let h=t;t=a(l),t===h?~t&&o[t].p(l,c):(i&&(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve()),~t?(i=o[t],i?i.p(l,c):(i=o[t]=s[t](l),i.c()),N(i,1),i.m(n,null)):i=null)},i(l){r||(N(i),r=!0)},o(l){Z(i),r=!1},d(l){l&&Y(n),~t&&o[t].d()}}}function TD(e,n,t){let i,r,{floorIndex:s}=n,{floorplanData:o}=n;return e.$$set=a=>{"floorIndex"in a&&t(2,s=a.floorIndex),"floorplanData"in a&&t(3,o=a.floorplanData)},e.$$.update=()=>{var a,l;e.$$.dirty&12&&t(1,i=o.outlines[s]),e.$$.dirty&12&&t(0,r=(l=(a=o.outlines)==null?void 0:a[s])==null?void 0:l.svgContent)},[r,i,s,o]}class Jb extends Oe{constructor(n){super(),ke(this,n,TD,ID,Le,{floorIndex:2,floorplanData:3},ED)}}function DD(e){Ue(e,"svelte-9vzn2f",".floorplan-plugin__room-label-item.svelte-9vzn2f{position:absolute;display:flex;flex-flow:column;align-items:center;line-height:1;color:#fff;transform:translate(-50%, -50%);white-space:nowrap;will-change:opacity;transition:opacity 300ms}.floorplan-plugin__room-part1.svelte-9vzn2f{display:flex;flex-flow:column;align-items:center;color:#fff;white-space:nowrap}.floorplan-plugin__room-area.svelte-9vzn2f{opacity:0.6;line-height:1.25;margin-top:0.125rem}")}function LD(e){let n,t=e[15].outerHTML+"",i;return{c(){n=new Wu(!1),i=pt(),n.a=i},m(r,s){n.m(t,r,s),X(r,i,s)},p(r,s){s[0]&32768&&t!==(t=r[15].outerHTML+"")&&n.p(t)},d(r){r&&Y(i),r&&n.d()}}}function kD(e){let n,t,i,r,s,o,a=e[1]&&qb(e),l=e[0]&&Kb(e),c=e[2]&&$b(e);return{c(){n=H("div"),a&&a.c(),t=ye(),l&&l.c(),i=ye(),c&&c.c(),r=pt(),_(n,"class","floorplan-plugin__room-part1 svelte-9vzn2f"),W(n,"opacity",e[11]?"1":"0")},m(h,u){X(h,n,u),a&&a.m(n,null),Q(n,t),l&&l.m(n,null),X(h,i,u),c&&c.m(h,u),X(h,r,u),s||(o=[zi(vs.call(null,n)),lt(n,"clientWidth",e[32]),lt(n,"clientHeight",e[33])],s=!0)},p(h,u){h[1]?a?a.p(h,u):(a=qb(h),a.c(),a.m(n,t)):a&&(a.d(1),a=null),h[0]?l?l.p(h,u):(l=Kb(h),l.c(),l.m(n,null)):l&&(l.d(1),l=null),u[0]&2048&&W(n,"opacity",h[11]?"1":"0"),h[2]?c?c.p(h,u):(c=$b(h),c.c(),c.m(r.parentNode,r)):c&&(c.d(1),c=null)},d(h){h&&Y(n),a&&a.d(),l&&l.d(),h&&Y(i),c&&c.d(h),h&&Y(r),s=!1,bn(o)}}}function qb(e){let n,t=e[3].name+"",i;return{c(){n=H("span"),i=Mt(t),_(n,"class","floorplan-plugin__room-name")},m(r,s){X(r,n,s),Q(n,i)},p(r,s){s[0]&8&&t!==(t=r[3].name+"")&&Pt(i,t)},d(r){r&&Y(n)}}}function Kb(e){let n,t;return{c(){n=H("span"),t=Mt(e[14]),_(n,"class","floorplan-plugin__room-area svelte-9vzn2f"),W(n,"font-size",e[19])},m(i,r){X(i,n,r),Q(n,t)},p(i,r){r[0]&16384&&Pt(t,i[14])},d(i){i&&Y(n)}}}function $b(e){let n,t;return{c(){n=H("span"),t=Mt(e[13]),_(n,"class","floorplan-plugin__room-size"),W(n,"font-size",e[19]),W(n,"opacity",e[10]?"0.6":"0")},m(i,r){X(i,n,r),Q(n,t)},p(i,r){r[0]&8192&&Pt(t,i[13]),r[0]&1024&&W(n,"opacity",i[10]?"0.6":"0")},d(i){i&&Y(n)}}}function OD(e){let n,t,i;function r(a,l){if(a[4]===void 0)return kD;if(a[15])return LD}let s=r(e),o=s&&s(e);return{c(){n=H("div"),o&&o.c(),_(n,"class","floorplan-plugin__room-label-item svelte-9vzn2f"),W(n,"left",e[16]),W(n,"top",e[17]),W(n,"font-size",e[18]),W(n,"opacity",e[12]?"1":"0"),W(n,"transform",e[9]?"translate(-50%, calc(-50% + 6px))":"translate(-50%, -50%)")},m(a,l){X(a,n,l),o&&o.m(n,null),t||(i=[zi(vs.call(null,n)),lt(n,"clientWidth",e[34]),lt(n,"clientHeight",e[35])],t=!0)},p(a,l){s===(s=r(a))&&o?o.p(a,l):(o&&o.d(1),o=s&&s(a),o&&(o.c(),o.m(n,null))),l[0]&4096&&W(n,"opacity",a[12]?"1":"0"),l[0]&512&&W(n,"transform",a[9]?"translate(-50%, calc(-50% + 6px))":"translate(-50%, -50%)")},i:de,o:de,d(a){a&&Y(n),o&&o.d(),t=!1,bn(i)}}}function RD(e,n){const t=e[0],i=e[1];let r=!1;for(let s=0,o=n.length-1;s<n.length;o=s++){const a=n[s][0],l=n[s][1],c=n[o][0],h=n[o][1];l>i!=h>i&&t<(c-a)*(i-l)/(h-l)+a&&(r=!r)}return r}function zD(e,n,t){let i,r,s,o,a,l,c,h,u,d,f,m,p,{pxmm:g}=n,{roomAreaEnable:y}=n,{roomNameEnable:b}=n,{roomDimensionEnable:A}=n,{room:w}=n,{hoveredRoom:x}=n,{getRoomAreaText:M}=n,{getRoomDimensionText:E}=n,{getLabelElement:S}=n,{adaptiveRoomLabelVisibleEnable:T}=n;function z(se,Me){if(Me.width===0||Me.height===0)return()=>!1;const Ge=se.path.map(({x:F,y:j})=>[F,j]),ae=se.roomLabel.position,{x:me,y:De}=ae,{width:We,height:gt}=Me,Ce=We/2,je=gt/2;return function(j){const _e=me*j,ve=De*j,Ke=Ge.map(([fe,ot])=>[fe*j,ot*j]);return[[_e+Ce,ve-je],[_e-Ce,ve-je],[_e-Ce,ve+je],[_e+Ce,ve+je]].every(fe=>RD(fe,Ke))}}const D=document.body.clientWidth,k=document.body.clientHeight,R=w.roomLabel,G=R.positionInImage.x*100+"%",I=R.positionInImage.y*100+"%",U=(D<500||k<500?10:14)+"px",q=(D<500||k<500?8:12)+"px";let K=0,ne=0,ie=0,pe=0,be=!1;x.subscribe(function(Me){t(25,be=!!Me&&Me.id===w.id)});const Ae=se=>{t(7,ie=se.detail)},qe=se=>{t(8,pe=se.detail)},we=se=>{t(5,K=se.detail)},le=se=>{t(6,ne=se.detail)};return e.$$set=se=>{"pxmm"in se&&t(20,g=se.pxmm),"roomAreaEnable"in se&&t(0,y=se.roomAreaEnable),"roomNameEnable"in se&&t(1,b=se.roomNameEnable),"roomDimensionEnable"in se&&t(2,A=se.roomDimensionEnable),"room"in se&&t(3,w=se.room),"hoveredRoom"in se&&t(21,x=se.hoveredRoom),"getRoomAreaText"in se&&t(22,M=se.getRoomAreaText),"getRoomDimensionText"in se&&t(23,E=se.getRoomDimensionText),"getLabelElement"in se&&t(4,S=se.getLabelElement),"adaptiveRoomLabelVisibleEnable"in se&&t(24,T=se.adaptiveRoomLabelVisibleEnable)},e.$$.update=()=>{var se,Me;e.$$.dirty[0]&24&&t(15,i=S==null?void 0:S(w)),e.$$.dirty[0]&4194312&&t(14,r=w.size?M(w.size):""),e.$$.dirty[0]&8388616&&t(13,s=w!=null&&w.dimension?E((se=w.dimension)==null?void 0:se.width,(Me=w.dimension)==null?void 0:Me.height):""),e.$$.dirty[0]&384&&t(31,o={width:ie,height:pe}),e.$$.dirty[0]&8|e.$$.dirty[1]&1&&t(30,a=o?z(w,o):void 0),e.$$.dirty[0]&1091567616&&t(27,l=T?!!(a!=null&&a(g)):!0),e.$$.dirty[0]&96&&t(29,c={width:K,height:ne}),e.$$.dirty[0]&536870920&&t(28,h=c?z(w,c):void 0),e.$$.dirty[0]&286261248&&t(26,u=T?!!(h!=null&&h(g)):!0),e.$$.dirty[0]&234881024&&t(12,d=u||l||be),e.$$.dirty[0]&167772160&&t(11,f=l||be),e.$$.dirty[0]&100663296&&t(10,m=u||be),e.$$.dirty[0]&201326592&&t(9,p=l&&!u)},[y,b,A,w,S,K,ne,ie,pe,p,m,f,d,s,r,i,G,I,U,q,g,x,M,E,T,be,u,l,h,c,a,o,Ae,qe,we,le]}class BD extends Oe{constructor(n){super(),ke(this,n,zD,OD,Le,{pxmm:20,roomAreaEnable:0,roomNameEnable:1,roomDimensionEnable:2,room:3,hoveredRoom:21,getRoomAreaText:22,getRoomDimensionText:23,getLabelElement:4,adaptiveRoomLabelVisibleEnable:24},DD,[-1,-1])}}function ND(e){Ue(e,"svelte-13xux0b",".floorplan-plugin__room-labels.svelte-13xux0b{width:100%;height:100%;position:absolute;left:0;top:0;z-index:20;pointer-events:none}")}function eA(e,n,t){const i=e.slice();return i[14]=n[t],i}function tA(e){let n,t=[],i=new Map,r,s,o,a=e[10];const l=c=>c[14].id;for(let c=0;c<a.length;c+=1){let h=eA(e,a,c),u=l(h);i.set(u,t[c]=nA(u,h))}return{c(){n=H("div");for(let c=0;c<t.length;c+=1)t[c].c();_(n,"class","floorplan-plugin__room-labels svelte-13xux0b")},m(c,h){X(c,n,h);for(let u=0;u<t.length;u+=1)t[u]&&t[u].m(n,null);r=!0,s||(o=[zi(vs.call(null,n)),lt(n,"clientWidth",e[13])],s=!0)},p(c,h){h&1791&&(a=c[10],Fe(),t=Ni(t,h,l,1,c,a,i,n,gs,nA,null,eA),Ve())},i(c){if(!r){for(let h=0;h<a.length;h+=1)N(t[h]);r=!0}},o(c){for(let h=0;h<t.length;h+=1)Z(t[h]);r=!1},d(c){c&&Y(n);for(let h=0;h<t.length;h+=1)t[h].d();s=!1,bn(o)}}}function nA(e,n){let t,i,r;const s=[{pxmm:n[9],room:n[14],hoveredRoom:n[3],roomAreaEnable:n[0],roomNameEnable:n[1],roomDimensionEnable:n[2],getLabelElement:n[6],getRoomAreaText:n[4],getRoomDimensionText:n[5],adaptiveRoomLabelVisibleEnable:n[7]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new BD({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&1791?Vn(s,[{pxmm:n[9],room:n[14],hoveredRoom:n[3],roomAreaEnable:n[0],roomNameEnable:n[1],roomDimensionEnable:n[2],getLabelElement:n[6],getRoomAreaText:n[4],getRoomDimensionText:n[5],adaptiveRoomLabelVisibleEnable:n[7]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function FD(e){let n,t,i=e[10]&&tA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[10]?i?(i.p(r,s),s&1024&&N(i,1)):(i=tA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function VD(e,n,t){let i,{floorIndex:r}=n,{roomAreaEnable:s}=n,{roomNameEnable:o}=n,{roomDimensionEnable:a}=n,{floorplanData:l}=n,{hoveredRoom:c}=n,{getRoomAreaText:h}=n,{getRoomDimensionText:u}=n,{getLabelElement:d}=n,{adaptiveRoomLabelVisibleEnable:f}=n,m=0,p=0;const g=y=>{t(8,m=y.detail)};return e.$$set=y=>{"floorIndex"in y&&t(11,r=y.floorIndex),"roomAreaEnable"in y&&t(0,s=y.roomAreaEnable),"roomNameEnable"in y&&t(1,o=y.roomNameEnable),"roomDimensionEnable"in y&&t(2,a=y.roomDimensionEnable),"floorplanData"in y&&t(12,l=y.floorplanData),"hoveredRoom"in y&&t(3,c=y.hoveredRoom),"getRoomAreaText"in y&&t(4,h=y.getRoomAreaText),"getRoomDimensionText"in y&&t(5,u=y.getRoomDimensionText),"getLabelElement"in y&&t(6,d=y.getLabelElement),"adaptiveRoomLabelVisibleEnable"in y&&t(7,f=y.adaptiveRoomLabelVisibleEnable)},e.$$.update=()=>{if(e.$$.dirty&6144&&t(10,i=l.floorDatas[r].rooms),e.$$.dirty&4352){const{max:y,min:b}=l.bounding,A=y.x-b.x;t(9,p=m/A)}},[s,o,a,c,h,u,d,f,m,p,i,r,l,g]}class GD extends Oe{constructor(n){super(),ke(this,n,VD,FD,Le,{floorIndex:11,roomAreaEnable:0,roomNameEnable:1,roomDimensionEnable:2,floorplanData:12,hoveredRoom:3,getRoomAreaText:4,getRoomDimensionText:5,getLabelElement:6,adaptiveRoomLabelVisibleEnable:7},ND)}}function jD(e){Ue(e,"svelte-djlmk4",".floorplan-plugin__rule-labels.svelte-djlmk4.svelte-djlmk4{position:absolute;display:flex}.floorplan-plugin__rule-labels--top.svelte-djlmk4.svelte-djlmk4{left:0;top:-1.25rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4.svelte-djlmk4{left:0;bottom:-1.25rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4.svelte-djlmk4{top:0;left:-1.25rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4.svelte-djlmk4{top:0;right:-1.25rem}.floorplan-plugin__rule-line.svelte-djlmk4.svelte-djlmk4{background:#fff;opacity:0.05;width:100%;height:100%}.floorplan-plugin__rule-scale-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute;width:0.3125rem;height:100%;left:50%;top:0;transform:translateX(-50%)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale-wrapper.svelte-djlmk4{width:100%;height:0.3125rem;top:50%;left:0;transform:translateY(-50%)}.floorplan-plugin__rule-scale.svelte-djlmk4.svelte-djlmk4{position:absolute;background:#fff;opacity:0.05;width:100%;height:0.0625rem}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale.svelte-djlmk4{width:0.0625rem;height:100%}.floorplan-plugin__rule-text-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute}.floorplan-plugin__rule-labels--top.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;top:0.625rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;bottom:0.625rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;left:0.625rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;right:0.625rem}.floorplan-plugin__rule-text-item.svelte-djlmk4.svelte-djlmk4{width:0;height:0;position:absolute;transform:rotate(90deg)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-text-item.svelte-djlmk4{transform:rotate(0)}.floorplan-plugin__rule-text.svelte-djlmk4.svelte-djlmk4{width:-moz-max-content;width:max-content;transform:translate(-50%, -50%);font-size:0.625rem;color:#fff;opacity:0.2}")}function iA(e,n,t){const i=e.slice();return i[11]=n[t],i[13]=t,i}function rA(e,n,t){const i=e.slice();return i[14]=n[t],i}function sA(e){let n;return{c(){n=H("div"),_(n,"class","floorplan-plugin__rule-scale svelte-djlmk4"),W(n,"left",e[14].left*100+"%"),W(n,"bottom",e[14].bottom*100+"%")},m(t,i){X(t,n,i)},p:de,d(t){t&&Y(n)}}}function oA(e,n){let t,i,r=n[1](n[11].distance)+"",s,o;return{key:e,first:null,c(){t=H("div"),i=H("div"),s=Mt(r),o=ye(),_(i,"class","floorplan-plugin__rule-text svelte-djlmk4"),Ee(i,"is-row",n[2]),_(t,"class","floorplan-plugin__rule-text-item svelte-djlmk4"),W(t,"left",n[11].left*100+"%"),W(t,"bottom",n[11].bottom*100+"%"),this.first=t},m(a,l){X(a,t,l),Q(t,i),Q(i,s),Q(t,o)},p(a,l){n=a,l&2&&r!==(r=n[1](n[11].distance)+"")&&Pt(s,r)},d(a){a&&Y(t)}}}function HD(e){let n,t,i,r,s,o,a=[],l=new Map,c,h=e[3],u=[];for(let m=0;m<h.length;m+=1)u[m]=sA(rA(e,h,m));let d=e[4];const f=m=>m[13];for(let m=0;m<d.length;m+=1){let p=iA(e,d,m),g=f(p);l.set(g,a[m]=oA(g,p))}return{c(){n=H("div"),t=H("div"),i=ye(),r=H("div");for(let m=0;m<u.length;m+=1)u[m].c();s=ye(),o=H("div");for(let m=0;m<a.length;m+=1)a[m].c();_(t,"class","floorplan-plugin__rule-line svelte-djlmk4"),_(r,"class","floorplan-plugin__rule-scale-wrapper svelte-djlmk4"),Ee(r,"is-row",e[2]),_(o,"class","floorplan-plugin__rule-text-wrapper svelte-djlmk4"),_(n,"class",c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+e[0]+" svelte-djlmk4"),Ee(n,"is-row",e[2]),W(n,"width",e[2]?"100%":1/16+"rem"),W(n,"height",e[2]?1/16+"rem":"100%")},m(m,p){X(m,n,p),Q(n,t),Q(n,i),Q(n,r);for(let g=0;g<u.length;g+=1)u[g]&&u[g].m(r,null);Q(n,s),Q(n,o);for(let g=0;g<a.length;g+=1)a[g]&&a[g].m(o,null)},p(m,[p]){if(p&8){h=m[3];let g;for(g=0;g<h.length;g+=1){const y=rA(m,h,g);u[g]?u[g].p(y,p):(u[g]=sA(y),u[g].c(),u[g].m(r,null))}for(;g<u.length;g+=1)u[g].d(1);u.length=h.length}p&22&&(d=m[4],a=Ni(a,p,f,1,m,d,l,o,gm,oA,null,iA)),p&1&&c!==(c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+m[0]+" svelte-djlmk4")&&_(n,"class",c),p&5&&Ee(n,"is-row",m[2])},i:de,o:de,d(m){m&&Y(n),Bi(u,m);for(let p=0;p<a.length;p+=1)a[p].d()}}}const Na=1e3,Fa=180;function UD(e,n,t){let{type:i}=n,{data:r}=n,{bounding:s}=n,{getRuleDistanceText:o}=n;const a=i==="top"||i==="bottom",l=s.max.x-s.min.x-(Na-Fa)*2,c=s.max.y-s.min.y-(Na-Fa)*2,h=r.map(([m,p])=>a?[m.x,p.x]:[m.y,p.y]).flat().sort().filter((m,p,g)=>p===0?!0:m!==g[p-1]),u=h.map(m=>{const p=a?(m-s.min.x-Na+Fa)/l:0,g=a?0:(m-s.min.y-Na+Fa)/c;return{left:p,bottom:g}});u.unshift({left:0,bottom:0}),u.push(a?{left:1,bottom:0}:{left:0,bottom:1});const d=h[h.length-1]-h[0],f=h.map((m,p,g)=>{const y=p===0?0:m-g[p-1],b=p===0?0:(m+g[p-1])/2,A=a?(b-s.min.x-Na+Fa)/l:0,w=a?0:(b-s.min.y-Na+Fa)/c;return{left:A,bottom:w,distance:y}}).filter(({distance:m})=>m/d>.1);return e.$$set=m=>{"type"in m&&t(0,i=m.type),"data"in m&&t(5,r=m.data),"bounding"in m&&t(6,s=m.bounding),"getRuleDistanceText"in m&&t(1,o=m.getRuleDistanceText)},[i,o,a,u,f,r,s]}class WD extends Oe{constructor(n){super(),ke(this,n,UD,HD,Le,{type:0,data:5,bounding:6,getRuleDistanceText:1},jD)}}function QD(e){Ue(e,"svelte-1mzj9p3",".floorplan-plugin__rule-labels-wrapper.svelte-1mzj9p3{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}")}function aA(e,n,t){const i=e.slice();return i[13]=n[t][0],i[14]=n[t][1],i}function lA(e,n){let t,i,r;const s=[{type:n[13],data:n[14],bounding:n[1],getRuleDistanceText:n[0]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new WD({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&19?Vn(s,[{type:n[13],data:n[14],bounding:n[1],getRuleDistanceText:n[0]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function YD(e){let n,t=[],i=new Map,r,s=e[4];const o=a=>a[13];for(let a=0;a<s.length;a+=1){let l=aA(e,s,a),c=o(l);i.set(c,t[a]=lA(c,l))}return{c(){n=H("div");for(let a=0;a<t.length;a+=1)t[a].c();_(n,"class","floorplan-plugin__rule-labels-wrapper svelte-1mzj9p3"),W(n,"width",e[3]),W(n,"height",e[2])},m(a,l){X(a,n,l);for(let c=0;c<t.length;c+=1)t[c]&&t[c].m(n,null);r=!0},p(a,[l]){l&19&&(s=a[4],Fe(),t=Ni(t,l,o,1,a,s,i,n,gs,lA,null,aA),Ve()),l&8&&W(n,"width",a[3]),l&4&&W(n,"height",a[2])},i(a){if(!r){for(let l=0;l<s.length;l+=1)N(t[l]);r=!0}},o(a){for(let l=0;l<t.length;l+=1)Z(t[l]);r=!1},d(a){a&&Y(n);for(let l=0;l<t.length;l+=1)t[l].d()}}}const cA=1e3,hA=180;function XD(e,n,t){let i,r,s,o,a,l,c,h,u,d,{floorIndex:f}=n,{floorplanData:m}=n,{getRuleDistanceText:p}=n;return e.$$set=g=>{"floorIndex"in g&&t(5,f=g.floorIndex),"floorplanData"in g&&t(6,m=g.floorplanData),"getRuleDistanceText"in g&&t(0,p=g.getRuleDistanceText)},e.$$.update=()=>{e.$$.dirty&64&&t(1,i=m.bounding),e.$$.dirty&96&&t(11,r=m.floorDatas[f].rules),e.$$.dirty&2048&&t(12,s=Object.keys(r)),e.$$.dirty&6144&&t(4,o=s.map(g=>[g,r[g]])),e.$$.dirty&2&&t(9,a=i.max.x-i.min.x),e.$$.dirty&2&&t(7,l=i.max.y-i.min.y),e.$$.dirty&2&&t(10,c=i.max.x-i.min.x-(cA-hA)*2),e.$$.dirty&2&&t(8,h=i.max.y-i.min.y-(cA-hA)*2),e.$$.dirty&1536&&t(3,u=c/a*100+"%"),e.$$.dirty&384&&t(2,d=h/l*100+"%")},[p,i,d,u,o,f,m,l,h,a,c,r,s]}class ZD extends Oe{constructor(n){super(),ke(this,n,XD,YD,Le,{floorIndex:5,floorplanData:6,getRuleDistanceText:0},QD)}}function id(e,n={}){let t="";const{needZ:i,needA:r}=n;return(i?e.slice().concat(e[0]):e.slice()).forEach((o,a)=>{const{x:l,y:c}=n.format?n.format(o):o,h=l+","+c;return a===0?(t+="M"+h,t):r!=null&&r[a]?(t+="A"+r[a]+","+h,t):(t+="L"+h,t)}),t+(i?"Z":"")}function uA({x:e,y:n},t){const{max:i,min:r}=t;return{x:e-r.x,y:i.y-n}}function JD(e,n){const t=e.x*1e3+n.bounding.origin.x,i=-e.z*1e3+n.bounding.origin.y;return{x:t,y:i}}function qD(e,n){const t=n.bounding,i=t.max.x-t.min.x,r=t.max.y-t.min.y;return{x:(e.x-t.min.x)/i,y:(t.max.y-e.y)/r}}function KD(e,n){return Math.max(...n.work.observers.map(i=>e.z>=i.standingPosition.z?i.floorIndex:0))}function $D(e){let n;return{c(){n=zt("path"),_(n,"d",e[0]),_(n,"fill","#2F313A")},m(t,i){X(t,n,i)},p(t,[i]){i&1&&_(n,"d",t[0])},i:de,o:de,d(t){t&&Y(n)}}}function eL(e,n,t){let i,{path:r}=n;return e.$$set=s=>{"path"in s&&t(1,r=s.path)},e.$$.update=()=>{e.$$.dirty&2&&t(0,i=id(r,{needZ:!0}))},[i,r]}class tL extends Oe{constructor(n){super(),ke(this,n,eL,$D,Le,{path:1})}}function nL(e){let n,t,i,r,s,o;return{c(){n=zt("defs"),t=zt("pattern"),i=zt("rect"),r=zt("path"),s=ye(),o=zt("path"),_(i,"x","0"),_(i,"y","0"),_(i,"width",e[1]),_(i,"height",e[1]),_(i,"fill","#323747"),_(r,"d",e[2]),_(r,"stroke","#ffffff"),_(r,"stroke-opacity","0.06"),_(r,"stroke-width","0.5"),_(r,"fill","none"),_(t,"id","fpm-room-pattern-0"),_(t,"x","0"),_(t,"y","0"),_(t,"width",e[1]),_(t,"height",e[1]),_(t,"patternUnits","userSpaceOnUse"),_(t,"patternTransform","scale(50 50)"),_(o,"d",e[0]),_(o,"fill","url(#fpm-room-pattern-0)")},m(a,l){X(a,n,l),Q(n,t),Q(t,i),Q(t,r),X(a,s,l),X(a,o,l)},p(a,[l]){l&1&&_(o,"d",a[0])},i:de,o:de,d(a){a&&Y(n),a&&Y(s),a&&Y(o)}}}const Am=6;function iL(e,n,t){let i,{path:r}=n;const s=Am*2,o=`M0 ${Am} h ${s} M${Am} 0 v ${s}`;return e.$$set=a=>{"path"in a&&t(3,r=a.path)},e.$$.update=()=>{e.$$.dirty&8&&t(0,i=id(r,{needZ:!0}))},[i,s,o,r]}class rL extends Oe{constructor(n){super(),ke(this,n,iL,nL,Le,{path:3})}}function sL(e){let n,t,i,r,s,o,a,l,c,h,u;return{c(){n=zt("defs"),t=zt("pattern"),i=zt("rect"),r=zt("pattern"),s=zt("rect"),o=ye(),a=zt("path"),l=ye(),c=zt("path"),h=ye(),u=zt("path"),_(i,"x","0"),_(i,"y","0"),_(i,"width","6"),_(i,"height","50"),_(i,"fill","none"),_(i,"stroke","#4B4B57"),_(i,"stroke-width","0.5"),_(t,"id","room-material-pattern-1"),_(t,"x","0"),_(t,"y","0"),_(t,"width","12"),_(t,"height","50"),_(t,"patternUnits","userSpaceOnUse"),_(t,"patternTransform","scale(50 50)"),_(s,"x","0"),_(s,"y","0"),_(s,"width","6"),_(s,"height","50"),_(s,"fill","none"),_(s,"stroke","#4B4B57"),_(s,"stroke-width","0.5"),_(r,"id","room-material-pattern-2"),_(r,"x","6"),_(r,"y","25"),_(r,"width","12"),_(r,"height","50"),_(r,"patternUnits","userSpaceOnUse"),_(r,"patternTransform","scale(50 50)"),_(a,"d",e[0]),_(a,"fill","#43434D"),_(c,"d",e[0]),_(c,"fill","url(#room-material-pattern-1)"),_(u,"d",e[0]),_(u,"fill","url(#room-material-pattern-2)")},m(d,f){X(d,n,f),Q(n,t),Q(t,i),Q(n,r),Q(r,s),X(d,o,f),X(d,a,f),X(d,l,f),X(d,c,f),X(d,h,f),X(d,u,f)},p(d,[f]){f&1&&_(a,"d",d[0]),f&1&&_(c,"d",d[0]),f&1&&_(u,"d",d[0])},i:de,o:de,d(d){d&&Y(n),d&&Y(o),d&&Y(a),d&&Y(l),d&&Y(c),d&&Y(h),d&&Y(u)}}}function oL(e,n,t){let i,{path:r}=n;return e.$$set=s=>{"path"in s&&t(1,r=s.path)},e.$$.update=()=>{e.$$.dirty&2&&t(0,i=id(r,{needZ:!0}))},[i,r]}class aL extends Oe{constructor(n){super(),ke(this,n,oL,sL,Le,{path:1})}}function lL(e){Ue(e,"svelte-1dykexu",".floorplan-plugin__room-material.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%}svg.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}")}function dA(e,n,t){const i=e.slice();return i[5]=n[t],i}function cL(e){let n,t;return n=new rL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function hL(e){let n,t;return n=new aL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function uL(e){let n,t;return n=new tL({props:{path:e[5].path}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&1&&(s.path=i[5].path),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function fA(e){let n,t,i,r;const s=[uL,hL,cL],o=[];function a(l,c){return l[5].floorType===1?0:l[5].floorType===0?1:2}return t=a(e),i=o[t]=s[t](e),{c(){n=zt("svg"),i.c(),_(n,"width","100%"),_(n,"height","100%"),_(n,"viewBox",`0 0 ${e[1]} ${e[2]}`),_(n,"class","svelte-1dykexu")},m(l,c){X(l,n,c),o[t].m(n,null),r=!0},p(l,c){let h=t;t=a(l),t===h?o[t].p(l,c):(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve(),i=o[t],i?i.p(l,c):(i=o[t]=s[t](l),i.c()),N(i,1),i.m(n,null))},i(l){r||(N(i),r=!0)},o(l){Z(i),r=!1},d(l){l&&Y(n),o[t].d()}}}function dL(e){let n,t,i=e[0],r=[];for(let o=0;o<i.length;o+=1)r[o]=fA(dA(e,i,o));const s=o=>Z(r[o],1,1,()=>{r[o]=null});return{c(){n=H("div");for(let o=0;o<r.length;o+=1)r[o].c();_(n,"class","floorplan-plugin__room-material svelte-1dykexu")},m(o,a){X(o,n,a);for(let l=0;l<r.length;l+=1)r[l]&&r[l].m(n,null);t=!0},p(o,[a]){if(a&7){i=o[0];let l;for(l=0;l<i.length;l+=1){const c=dA(o,i,l);r[l]?(r[l].p(c,a),N(r[l],1)):(r[l]=fA(c),r[l].c(),N(r[l],1),r[l].m(n,null))}for(Fe(),l=i.length;l<r.length;l+=1)s(l);Ve()}},i(o){if(!t){for(let a=0;a<i.length;a+=1)N(r[a]);t=!0}},o(o){r=r.filter(Boolean);for(let a=0;a<r.length;a+=1)Z(r[a]);t=!1},d(o){o&&Y(n),Bi(r,o)}}}function fL(e,n,t){let i,{floorIndex:r}=n,{floorplanData:s}=n;const o=s.bounding.max.x-s.bounding.min.x,a=s.bounding.max.y-s.bounding.min.y;return e.$$set=l=>{"floorIndex"in l&&t(3,r=l.floorIndex),"floorplanData"in l&&t(4,s=l.floorplanData)},e.$$.update=()=>{e.$$.dirty&24&&t(0,i=s.floorDatas[r].rooms.map(l=>Pe(O({},l),{path:l.path.map(c=>uA(c,s.bounding))})))},[i,o,a,r,s]}class pL extends Oe{constructor(n){super(),ke(this,n,fL,dL,Le,{floorIndex:3,floorplanData:4},lL)}}function mL(e){Ue(e,"svelte-qq2273","path.svelte-qq2273{--opacity:0;opacity:var(--opacity)}path.svelte-qq2273:hover{opacity:calc(var(--opacity) + 0.1)}")}function gL(e){let n,t,i,r;return{c(){n=zt("path"),_(n,"d",e[5]),_(n,"fill","#fff"),_(n,"style",e[2]),_(n,"id",t=`${e[1]}_${e[0].id}`),_(n,"class","svelte-qq2273")},m(s,o){X(s,n,o),i||(r=[lt(n,"mouseenter",e[3]),lt(n,"mouseleave",e[4])],i=!0)},p(s,[o]){o&4&&_(n,"style",s[2]),o&3&&t!==(t=`${s[1]}_${s[0].id}`)&&_(n,"id",t)},i:de,o:de,d(s){s&&Y(n),i=!1,bn(r)}}}function vL(e,n,t){let i,r,{room:s}=n,{floorIndex:o}=n,{floorplanData:a}=n,{highlightData:l}=n,{hoveredRoom:c}=n;function h(){c==null||c.set(s)}function u(){c==null||c.set(void 0)}const{bounding:d}=a,f=id(s.path,{needZ:!0,format:m=>uA(m,d)});return e.$$set=m=>{"room"in m&&t(0,s=m.room),"floorIndex"in m&&t(1,o=m.floorIndex),"floorplanData"in m&&t(6,a=m.floorplanData),"highlightData"in m&&t(7,l=m.highlightData),"hoveredRoom"in m&&t(8,c=m.hoveredRoom)},e.$$.update=()=>{e.$$.dirty&131&&t(9,i=l[`${o}_${s.id}`]),e.$$.dirty&512&&t(2,r=i?`fill: ${i.color}; --opacity: ${i.opacity}; pointer-events: ${i.disabled?"none":"auto"}`:null)},[s,o,r,h,u,f,a,l,c,i]}class yL extends Oe{constructor(n){super(),ke(this,n,vL,gL,Le,{room:0,floorIndex:1,floorplanData:6,highlightData:7,hoveredRoom:8},mL)}}function bL(e){Ue(e,"svelte-1kqo6e4",".floorplan-plugin__room-highlight.svelte-1kqo6e4{position:absolute;width:100%;height:100%}svg.svelte-1kqo6e4{width:100%;height:100%;overflow:visible}")}function pA(e,n,t){const i=e.slice();return i[6]=n[t],i}function mA(e,n){let t,i,r;const s=[{room:n[6],floorplanData:n[1],hoveredRoom:n[3],floorIndex:n[0],highlightData:n[2]}];let o={};for(let a=0;a<s.length;a+=1)o=Ln(o,s[a]);return i=new yL({props:o}),{key:e,first:null,c(){t=pt(),Te(i.$$.fragment),this.first=t},m(a,l){X(a,t,l),Se(i,a,l),r=!0},p(a,l){n=a;const c=l&15?Vn(s,[{room:n[6],floorplanData:n[1],hoveredRoom:n[3],floorIndex:n[0],highlightData:n[2]}]):{};i.$set(c)},i(a){r||(N(i.$$.fragment,a),r=!0)},o(a){Z(i.$$.fragment,a),r=!1},d(a){a&&Y(t),Ie(i,a)}}}function AL(e){let n,t,i=[],r=new Map,s,o=e[1].floorDatas[e[0]].rooms;const a=l=>l[6].id;for(let l=0;l<o.length;l+=1){let c=pA(e,o,l),h=a(c);r.set(h,i[l]=mA(h,c))}return{c(){n=H("div"),t=zt("svg");for(let l=0;l<i.length;l+=1)i[l].c();_(t,"width","100%"),_(t,"height","100%"),_(t,"viewBox",`0 0 ${e[4]} ${e[5]}`),_(t,"class","svelte-1kqo6e4"),_(n,"class","floorplan-plugin__room-highlight svelte-1kqo6e4")},m(l,c){X(l,n,c),Q(n,t);for(let h=0;h<i.length;h+=1)i[h]&&i[h].m(t,null);s=!0},p(l,[c]){c&15&&(o=l[1].floorDatas[l[0]].rooms,Fe(),i=Ni(i,c,a,1,l,o,r,t,gs,mA,null,pA),Ve())},i(l){if(!s){for(let c=0;c<o.length;c+=1)N(i[c]);s=!0}},o(l){for(let c=0;c<i.length;c+=1)Z(i[c]);s=!1},d(l){l&&Y(n);for(let c=0;c<i.length;c+=1)i[c].d()}}}function wL(e,n,t){let{floorIndex:i}=n,{floorplanData:r}=n,{highlightData:s}=n,{hoveredRoom:o}=n;const a=r.bounding.max.x-r.bounding.min.x,l=r.bounding.max.y-r.bounding.min.y;return e.$$set=c=>{"floorIndex"in c&&t(0,i=c.floorIndex),"floorplanData"in c&&t(1,r=c.floorplanData),"highlightData"in c&&t(2,s=c.highlightData),"hoveredRoom"in c&&t(3,o=c.hoveredRoom)},[i,r,s,o,a,l]}class gA extends Oe{constructor(n){super(),ke(this,n,wL,AL,Le,{floorIndex:0,floorplanData:1,highlightData:2,hoveredRoom:3},bL)}}function xL(e){Ue(e,"svelte-1lm20n5",".missing-floor.svelte-1lm20n5{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);display:flex;flex-direction:column;align-items:center}.text.svelte-1lm20n5{margin-top:0.75rem;color:#fff;opacity:0.3}")}function vA(e){let n,t=e[0].text+"",i;return{c(){n=H("span"),i=Mt(t),_(n,"class","text svelte-1lm20n5"),W(n,"font-size",e[0].textFontSize+"px")},m(r,s){X(r,n,s),Q(n,i)},p(r,s){s&1&&t!==(t=r[0].text+"")&&Pt(i,t),s&1&&W(n,"font-size",r[0].textFontSize+"px")},d(r){r&&Y(n)}}}function ML(e){let n,t,i,r,s=e[0].text&&vA(e);return{c(){n=H("div"),t=H("img"),r=ye(),s&&s.c(),_(t,"class","image"),_(t,"alt","缺省楼层展位图"),Sn(t.src,i=e[0].imageURL)||_(t,"src",i),W(t,"width",e[0].imageWidth+"px"),W(t,"height",e[0].imageHeight+"px"),_(n,"class","missing-floor svelte-1lm20n5")},m(o,a){X(o,n,a),Q(n,t),Q(n,r),s&&s.m(n,null)},p(o,[a]){a&1&&!Sn(t.src,i=o[0].imageURL)&&_(t,"src",i),a&1&&W(t,"width",o[0].imageWidth+"px"),a&1&&W(t,"height",o[0].imageHeight+"px"),o[0].text?s?s.p(o,a):(s=vA(o),s.c(),s.m(n,null)):s&&(s.d(1),s=null)},i:de,o:de,d(o){o&&Y(n),s&&s.d()}}}function CL(e,n,t){let{missingFloorConfig:i}=n;return e.$$set=r=>{"missingFloorConfig"in r&&t(0,i=r.missingFloorConfig)},[i]}class PL extends Oe{constructor(n){super(),ke(this,n,CL,ML,Le,{missingFloorConfig:0},xL)}}const bs="data:image/png;base64,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";function wm(e){return e*180/Math.PI}function EL(e){Ue(e,"svelte-17cl35n",".floorplan__camera-position.svelte-17cl35n{position:absolute;width:0;height:0}.floorplan__camera-rotate.svelte-17cl35n{position:absolute;background-repeat:no-repeat;background-size:100%}")}function _L(e){let n,t;return{c(){n=H("div"),t=H("div"),_(t,"class","floorplan__camera-rotate svelte-17cl35n"),W(t,"background-image",`url(${e[0]||bs})`),W(t,"width",e[4]),W(t,"height",e[4]),W(t,"left","-"+e[4]),W(t,"top","-"+e[4]),W(t,"transform",`rotate(${e[3]}deg)`),W(t,"transform-origin",`${e[4]} ${e[4]}`),_(n,"class","floorplan__camera-position svelte-17cl35n"),W(n,"left",e[1]),W(n,"top",e[2])},m(i,r){X(i,n,r),Q(n,t)},p(i,[r]){r&1&&W(t,"background-image",`url(${i[0]||bs})`);const s=r&1;s&&W(t,"width",i[4]),s&&W(t,"height",i[4]),s&&W(t,"left","-"+i[4]),s&&W(t,"top","-"+i[4]),s&&W(t,"transform",`rotate(${i[3]}deg)`),s&&W(t,"transform-origin",`${i[4]} ${i[4]}`)},i:de,o:de,d(i){i&&Y(n)}}}function SL(e,n,t){let{panoIndex:i}=n,{floorplanData:r}=n,{lastPanoramaLongitude:s}=n,{cameraImageUrl:o}=n;const{observers:a}=r,l=a[i],c=l.positionInImage.x,h=l.positionInImage.y,u=c*100+"%",d=h*100+"%",f=-wm(s)+45,m=document.body.clientWidth,p=document.body.clientHeight,y=`${(m<500||p<500?17:37)/16}rem`;return e.$$set=b=>{"panoIndex"in b&&t(5,i=b.panoIndex),"floorplanData"in b&&t(6,r=b.floorplanData),"lastPanoramaLongitude"in b&&t(7,s=b.lastPanoramaLongitude),"cameraImageUrl"in b&&t(0,o=b.cameraImageUrl)},[o,u,d,f,y,i,r,s]}let IL=class extends Oe{constructor(n){super(),ke(this,n,SL,_L,Le,{panoIndex:5,floorplanData:6,lastPanoramaLongitude:7,cameraImageUrl:0},EL)}};const TL="data:image/png;base64,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";function DL(e){Ue(e,"svelte-rpkaro",".floorplan-plugin__compass.svelte-rpkaro{position:absolute;left:50%;top:-2.875rem;width:14.4375rem;height:2.5625rem;will-change:opacity;transform-origin:center 11.5rem}.floorplan-plugin__compass-image.svelte-rpkaro{width:100%;height:100%;position:absolute;left:0;top:0;opacity:0.1;background-repeat:no-repeat;background-size:100% 100%}.floorplan-plugin__compass-text.svelte-rpkaro{position:absolute;left:50%;top:0.9375rem;transform:translateX(-50%);opacity:0.2;font-weight:bold;font-size:0.625rem;color:#fff}")}function LL(e){let n,t,i,r,s;return{c(){n=H("div"),t=H("div"),i=ye(),r=H("span"),s=Mt(e[0]),_(t,"class","floorplan-plugin__compass-image svelte-rpkaro"),W(t,"background-image",`url(${TL})`),_(r,"class","floorplan-plugin__compass-text svelte-rpkaro"),_(n,"class","floorplan-plugin__compass svelte-rpkaro"),W(n,"transform",e[2])},m(o,a){X(o,n,a),Q(n,t),Q(n,i),Q(n,r),Q(r,s)},p(o,a){a&1&&Pt(s,o[0])},d(o){o&&Y(n)}}}function kL(e){let n,t=e[1]&&LL(e);return{c(){t&&t.c(),n=pt()},m(i,r){t&&t.m(i,r),X(i,n,r)},p(i,[r]){i[1]&&t.p(i,r)},i:de,o:de,d(i){t&&t.d(i),i&&Y(n)}}}function OL(e,n,t){var c;let{floorplanData:i}=n,{northDesc:r}=n;const s=(c=i.entrance)==null?void 0:c.northRad,o=typeof s=="number",l=`translateX(-50%) translateZ(10px) rotate(${-(s?wm(s):0)+90}deg)`;return e.$$set=h=>{"floorplanData"in h&&t(3,i=h.floorplanData),"northDesc"in h&&t(0,r=h.northDesc)},[r,o,l,i]}class RL extends Oe{constructor(n){super(),ke(this,n,OL,kL,Le,{floorplanData:3,northDesc:0},DL)}}function zL(e){Ue(e,"svelte-bl8zrz",".floorplan-plugin__floor.svelte-bl8zrz{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}.floorplan-plugin__floor--is-current.svelte-bl8zrz{opacity:1;pointer-events:auto}")}function BL(e){let n,t,i,r,s,o,a,l,c,h;const u=[{floorIndex:e[2],floorplanData:e[11]}];let d={};for(let w=0;w<u.length;w+=1)d=Ln(d,u[w]);n=new pL({props:d});let f=(e[3]||e[5])&&yA(e);const m=[{floorplanData:e[11],floorIndex:e[2]}];let p={};for(let w=0;w<m.length;w+=1)p=Ln(p,m[w]);r=new Jb({props:p});let g=e[6]&&bA(e),y=e[10]&&AA(e),b=e[4]&&wA(e),A=e[22]&&xA(e);return{c(){Te(n.$$.fragment),t=ye(),f&&f.c(),i=ye(),Te(r.$$.fragment),s=ye(),g&&g.c(),o=ye(),y&&y.c(),a=ye(),b&&b.c(),l=ye(),A&&A.c(),c=pt()},m(w,x){Se(n,w,x),X(w,t,x),f&&f.m(w,x),X(w,i,x),Se(r,w,x),X(w,s,x),g&&g.m(w,x),X(w,o,x),y&&y.m(w,x),X(w,a,x),b&&b.m(w,x),X(w,l,x),A&&A.m(w,x),X(w,c,x),h=!0},p(w,x){const M=x&2052?Vn(u,[{floorIndex:w[2],floorplanData:w[11]}]):{};n.$set(M),w[3]||w[5]?f?(f.p(w,x),x&40&&N(f,1)):(f=yA(w),f.c(),N(f,1),f.m(i.parentNode,i)):f&&(Fe(),Z(f,1,1,()=>{f=null}),Ve());const E=x&2052?Vn(m,[{floorplanData:w[11],floorIndex:w[2]}]):{};r.$set(E),w[6]?g?(g.p(w,x),x&64&&N(g,1)):(g=bA(w),g.c(),N(g,1),g.m(o.parentNode,o)):g&&(Fe(),Z(g,1,1,()=>{g=null}),Ve()),w[10]?y?(y.p(w,x),x&1024&&N(y,1)):(y=AA(w),y.c(),N(y,1),y.m(a.parentNode,a)):y&&(Fe(),Z(y,1,1,()=>{y=null}),Ve()),w[4]?b?(b.p(w,x),x&16&&N(b,1)):(b=wA(w),b.c(),N(b,1),b.m(l.parentNode,l)):b&&(Fe(),Z(b,1,1,()=>{b=null}),Ve()),w[22]?A?(A.p(w,x),x&4194304&&N(A,1)):(A=xA(w),A.c(),N(A,1),A.m(c.parentNode,c)):A&&(Fe(),Z(A,1,1,()=>{A=null}),Ve())},i(w){h||(N(n.$$.fragment,w),N(f),N(r.$$.fragment,w),N(g),N(y),N(b),N(A),h=!0)},o(w){Z(n.$$.fragment,w),Z(f),Z(r.$$.fragment,w),Z(g),Z(y),Z(b),Z(A),h=!1},d(w){Ie(n,w),w&&Y(t),f&&f.d(w),w&&Y(i),Ie(r,w),w&&Y(s),g&&g.d(w),w&&Y(o),y&&y.d(w),w&&Y(a),b&&b.d(w),w&&Y(l),A&&A.d(w),w&&Y(c)}}}function NL(e){let n,t;return n=new PL({props:{missingFloorConfig:e[18]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&262144&&(s.missingFloorConfig=i[18]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function yA(e){let n,t;const i=[{floorIndex:e[2],floorplanData:e[11],hoveredRoom:e[24],highlightData:e[17]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new gA({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16910340?Vn(i,[{floorIndex:s[2],floorplanData:s[11],hoveredRoom:s[24],highlightData:s[17]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function bA(e){let n,t;const i=[{floorplanData:e[11],roomAreaEnable:e[7],roomNameEnable:e[8],roomDimensionEnable:e[9],floorIndex:e[2],getRoomAreaText:e[12],getRoomDimensionText:e[13],getLabelElement:e[14],hoveredRoom:e[24],adaptiveRoomLabelVisibleEnable:e[16]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new GD({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16874372?Vn(i,[{floorplanData:s[11],roomAreaEnable:s[7],roomNameEnable:s[8],roomDimensionEnable:s[9],floorIndex:s[2],getRoomAreaText:s[12],getRoomDimensionText:s[13],getLabelElement:s[14],hoveredRoom:s[24],adaptiveRoomLabelVisibleEnable:s[16]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function AA(e){let n,t;const i=[{floorplanData:e[11],floorIndex:e[2],getRuleDistanceText:e[15]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new ZD({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&34820?Vn(i,[{floorplanData:s[11],floorIndex:s[2],getRuleDistanceText:s[15]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function wA(e){let n,t;const i=[{panoIndex:e[0],floorplanData:e[11],lastPanoramaLongitude:e[19],cameraImageUrl:e[20]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new IL({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&1574913?Vn(i,[{panoIndex:s[0],floorplanData:s[11],lastPanoramaLongitude:s[19],cameraImageUrl:s[20]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function xA(e){let n,t;return n=new RL({props:{floorplanData:e[11],northDesc:e[21]}}),{c(){Te(n.$$.fragment)},m(i,r){Se(n,i,r),t=!0},p(i,r){const s={};r&2048&&(s.floorplanData=i[11]),r&2097152&&(s.northDesc=i[21]),n.$set(s)},i(i){t||(N(n.$$.fragment,i),t=!0)},o(i){Z(n.$$.fragment,i),t=!1},d(i){Ie(n,i)}}}function FL(e){let n,t,i,r,s;const o=[NL,BL],a=[];function l(c,h){return c[23]?1:0}return t=l(e),i=a[t]=o[t](e),{c(){n=H("div"),i.c(),_(n,"class",r=an(`floorplan-plugin__floor${e[1]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz")},m(c,h){X(c,n,h),a[t].m(n,null),s=!0},p(c,[h]){let u=t;t=l(c),t===u?a[t].p(c,h):(Fe(),Z(a[u],1,1,()=>{a[u]=null}),Ve(),i=a[t],i?i.p(c,h):(i=a[t]=o[t](c),i.c()),N(i,1),i.m(n,null)),(!s||h&2&&r!==(r=an(`floorplan-plugin__floor${c[1]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz"))&&_(n,"class",r)},i(c){s||(N(i),s=!0)},o(c){Z(i),s=!1},d(c){c&&Y(n),a[t].d()}}}function VL(e,n,t){let i,r,{panoIndex:s}=n,{isCurrent:o}=n,{floorIndex:a}=n,{highlightEnable:l}=n,{cameraEnable:c}=n,{hoverEnable:h}=n,{roomLabelsEnable:u}=n,{roomAreaEnable:d}=n,{roomNameEnable:f}=n,{roomDimensionEnable:m}=n,{ruleLabelsEnable:p}=n,{floorplanData:g}=n,{getRoomAreaText:y}=n,{getRoomDimensionText:b}=n,{getLabelElement:A}=n,{getRuleDistanceText:w}=n,{adaptiveRoomLabelVisibleEnable:x}=n,{highlightData:M}=n,{missingFloorConfig:E}=n,{lastPanoramaLongitude:S}=n,{cameraImageUrl:T}=n,{northDesc:z}=n,{compassEnable:D}=n;const k=bm(void 0);return e.$$set=R=>{"panoIndex"in R&&t(0,s=R.panoIndex),"isCurrent"in R&&t(1,o=R.isCurrent),"floorIndex"in R&&t(2,a=R.floorIndex),"highlightEnable"in R&&t(3,l=R.highlightEnable),"cameraEnable"in R&&t(4,c=R.cameraEnable),"hoverEnable"in R&&t(5,h=R.hoverEnable),"roomLabelsEnable"in R&&t(6,u=R.roomLabelsEnable),"roomAreaEnable"in R&&t(7,d=R.roomAreaEnable),"roomNameEnable"in R&&t(8,f=R.roomNameEnable),"roomDimensionEnable"in R&&t(9,m=R.roomDimensionEnable),"ruleLabelsEnable"in R&&t(10,p=R.ruleLabelsEnable),"floorplanData"in R&&t(11,g=R.floorplanData),"getRoomAreaText"in R&&t(12,y=R.getRoomAreaText),"getRoomDimensionText"in R&&t(13,b=R.getRoomDimensionText),"getLabelElement"in R&&t(14,A=R.getLabelElement),"getRuleDistanceText"in R&&t(15,w=R.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in R&&t(16,x=R.adaptiveRoomLabelVisibleEnable),"highlightData"in R&&t(17,M=R.highlightData),"missingFloorConfig"in R&&t(18,E=R.missingFloorConfig),"lastPanoramaLongitude"in R&&t(19,S=R.lastPanoramaLongitude),"cameraImageUrl"in R&&t(20,T=R.cameraImageUrl),"northDesc"in R&&t(21,z=R.northDesc),"compassEnable"in R&&t(22,D=R.compassEnable)},e.$$.update=()=>{e.$$.dirty&2052&&t(25,i=g.floorDatas[a]),e.$$.dirty&33554432&&t(23,r=i.rooms.length>0)},[s,o,a,l,c,h,u,d,f,m,p,g,y,b,A,w,x,M,E,S,T,z,D,r,k,i]}let GL=class extends Oe{constructor(n){super(),ke(this,n,VL,FL,Le,{panoIndex:0,isCurrent:1,floorIndex:2,highlightEnable:3,cameraEnable:4,hoverEnable:5,roomLabelsEnable:6,roomAreaEnable:7,roomNameEnable:8,roomDimensionEnable:9,ruleLabelsEnable:10,floorplanData:11,getRoomAreaText:12,getRoomDimensionText:13,getLabelElement:14,getRuleDistanceText:15,adaptiveRoomLabelVisibleEnable:16,highlightData:17,missingFloorConfig:18,lastPanoramaLongitude:19,cameraImageUrl:20,northDesc:21,compassEnable:22},zL)}};function jL(e){Ue(e,"svelte-86bqav",".floorplan-main.svelte-86bqav{width:100%;height:100%;pointer-events:none}")}function MA(e,n,t){const i=e.slice();return i[24]=n[t],i}function CA(e){let n,t,i,r=e[14].floorDatas,s=[];for(let a=0;a<r.length;a+=1)s[a]=PA(MA(e,r,a));const o=a=>Z(s[a],1,1,()=>{s[a]=null});return{c(){n=H("div");for(let a=0;a<s.length;a+=1)s[a].c();_(n,"class","floorplan-main svelte-86bqav")},m(a,l){X(a,n,l);for(let c=0;c<s.length;c+=1)s[c]&&s[c].m(n,null);i=!0},p(a,l){if(e=a,l&16777212){r=e[14].floorDatas;let c;for(c=0;c<r.length;c+=1){const h=MA(e,r,c);s[c]?(s[c].p(h,l),N(s[c],1)):(s[c]=PA(h),s[c].c(),N(s[c],1),s[c].m(n,null))}for(Fe(),c=r.length;c<s.length;c+=1)o(c);Ve()}},i(a){if(!i){for(let l=0;l<r.length;l+=1)N(s[l]);t||ln(()=>{t=ms(n,In,{duration:e[0],easing:Lr}),t.start()}),i=!0}},o(a){s=s.filter(Boolean);for(let l=0;l<s.length;l+=1)Z(s[l]);i=!1},d(a){a&&Y(n),Bi(s,a)}}}function PA(e){let n,t;const i=[{hoverEnable:e[6],highlightEnable:e[7],floorplanData:e[14],getRoomAreaText:e[17],getRoomDimensionText:e[18],getLabelElement:e[19],getRuleDistanceText:e[20],roomLabelsEnable:e[9],roomAreaEnable:e[10],roomNameEnable:e[11],roomDimensionEnable:e[12],ruleLabelsEnable:e[13],adaptiveRoomLabelVisibleEnable:e[21],highlightData:e[22],missingFloorConfig:e[23],panoIndex:e[3],cameraEnable:e[5],cameraImageUrl:e[16],lastPanoramaLongitude:e[15],compassEnable:e[8],northDesc:e[2]},{floorIndex:e[24].floorIndex},{isCurrent:e[24].floorIndex===e[4]}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new GL({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&16777212?Vn(i,[o&16777196&&{hoverEnable:s[6],highlightEnable:s[7],floorplanData:s[14],getRoomAreaText:s[17],getRoomDimensionText:s[18],getLabelElement:s[19],getRuleDistanceText:s[20],roomLabelsEnable:s[9],roomAreaEnable:s[10],roomNameEnable:s[11],roomDimensionEnable:s[12],ruleLabelsEnable:s[13],adaptiveRoomLabelVisibleEnable:s[21],highlightData:s[22],missingFloorConfig:s[23],panoIndex:s[3],cameraEnable:s[5],cameraImageUrl:s[16],lastPanoramaLongitude:s[15],compassEnable:s[8],northDesc:s[2]},o&16384&&{floorIndex:s[24].floorIndex},o&16400&&{isCurrent:s[24].floorIndex===s[4]}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function HL(e){let n,t,i=e[1]&&CA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[1]?i?(i.p(r,s),s&2&&N(i,1)):(i=CA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function UL(e,n,t){let{duration:i=0}=n,{visible:r}=n,{northDesc:s}=n,{panoIndex:o}=n,{floorIndex:a}=n,{cameraEnable:l}=n,{hoverEnable:c}=n,{highlightEnable:h}=n,{compassEnable:u}=n,{roomLabelsEnable:d}=n,{roomAreaEnable:f}=n,{roomNameEnable:m}=n,{roomDimensionEnable:p}=n,{ruleLabelsEnable:g}=n,{floorplanData:y}=n,{lastPanoramaLongitude:b}=n,{cameraImageUrl:A}=n,{getRoomAreaText:w}=n,{getRoomDimensionText:x}=n,{getLabelElement:M}=n,{getRuleDistanceText:E}=n,{adaptiveRoomLabelVisibleEnable:S}=n,{highlightData:T}=n,{missingFloorConfig:z}=n;return e.$$set=D=>{"duration"in D&&t(0,i=D.duration),"visible"in D&&t(1,r=D.visible),"northDesc"in D&&t(2,s=D.northDesc),"panoIndex"in D&&t(3,o=D.panoIndex),"floorIndex"in D&&t(4,a=D.floorIndex),"cameraEnable"in D&&t(5,l=D.cameraEnable),"hoverEnable"in D&&t(6,c=D.hoverEnable),"highlightEnable"in D&&t(7,h=D.highlightEnable),"compassEnable"in D&&t(8,u=D.compassEnable),"roomLabelsEnable"in D&&t(9,d=D.roomLabelsEnable),"roomAreaEnable"in D&&t(10,f=D.roomAreaEnable),"roomNameEnable"in D&&t(11,m=D.roomNameEnable),"roomDimensionEnable"in D&&t(12,p=D.roomDimensionEnable),"ruleLabelsEnable"in D&&t(13,g=D.ruleLabelsEnable),"floorplanData"in D&&t(14,y=D.floorplanData),"lastPanoramaLongitude"in D&&t(15,b=D.lastPanoramaLongitude),"cameraImageUrl"in D&&t(16,A=D.cameraImageUrl),"getRoomAreaText"in D&&t(17,w=D.getRoomAreaText),"getRoomDimensionText"in D&&t(18,x=D.getRoomDimensionText),"getLabelElement"in D&&t(19,M=D.getLabelElement),"getRuleDistanceText"in D&&t(20,E=D.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in D&&t(21,S=D.adaptiveRoomLabelVisibleEnable),"highlightData"in D&&t(22,T=D.highlightData),"missingFloorConfig"in D&&t(23,z=D.missingFloorConfig)},[i,r,s,o,a,l,c,h,u,d,f,m,p,g,y,b,A,w,x,M,E,S,T,z]}let xm=class extends Oe{constructor(n){super(),ke(this,n,UL,HL,Le,{duration:0,visible:1,northDesc:2,panoIndex:3,floorIndex:4,cameraEnable:5,hoverEnable:6,highlightEnable:7,compassEnable:8,roomLabelsEnable:9,roomAreaEnable:10,roomNameEnable:11,roomDimensionEnable:12,ruleLabelsEnable:13,floorplanData:14,lastPanoramaLongitude:15,cameraImageUrl:16,getRoomAreaText:17,getRoomDimensionText:18,getLabelElement:19,getRuleDistanceText:20,adaptiveRoomLabelVisibleEnable:21,highlightData:22,missingFloorConfig:23},jL)}};const WL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";function QL(e){return te(this,null,function*(){const n=new Headers({"Content-Type":"text/plain"}),t=function(r){return te(this,null,function*(){const s={index:r.index,url:r.url,svgUrl:r.svg_url};if(r.svg_url){const o=yield fetch(r.svg_url,{headers:n}).then(a=>a.text());s.svgContent=o}return s})};return yield Promise.all(e.map(t))})}function YL(e){const n={id:e.id,size:e.size,name:e.name,path:e.path,roomType:e.room_type,floorType:e.floor_type,roomLabel:{position:e.room_label.position,positionInImage:e.room_label.position_in_image},observerIndexs:e.observer_indexs};return e.dimension&&Object.assign(n,{dimension:e.dimension}),n}function XL(e){return{floorName:e.floor_name,floorIndex:e.floor_index,rooms:e.rooms.map(YL),rules:e.rules}}function ZL(e){return{index:e.index,floorIndex:e.floor_index,position:e.position,positionInImage:e.position_in_image}}function JL(e){return{rad:e.rad,position:e.position,positionInImage:e.position_in_image,northRad:e.north_rad,roomId:e.room_id,floorIndex:e.floor_index}}function As(e){return te(this,null,function*(){const n=yield QL(e.outlines),t=e.computed_data.bounding,i=e.computed_data.floor_datas.map(XL),r=e.computed_data.entrance?JL(e.computed_data.entrance):null;return{outlines:n,entrance:r,bounding:t,floorDatas:i,observers:e.computed_data.observers.map(ZL)}})}function qL(e,n,t){return e.map(r=>{const s=r.position,o=r.icon?r.icon:{url:WL,width:45,height:48},a=KD(s,n),l=JD(s,t),c=qD(l,t);return{floorIndex:a,icon:o,id:r.id,position:l,positionInImage:c}})}function KL(e,n){return n(e),e}function Va(e,n){return KL({},t=>{for(const i in e)n.indexOf(i)===-1&&(t[i]=e[i])})}function EA(e,n){const t=Math.max(...e.work.observers.map(i=>i.floorIndex));return n>t?e.model.bounding.max.y:Math.max(...e.work.observers.filter(i=>i.floorIndex===n).map(i=>i.standingPosition.y))}function Mm(e,n,t=ys.BOUNDING_CENTER){const i=EA(e,n),r=EA(e,n+1);return t===ys.BOUNDING_CENTER?(e.model.bounding.max.y+e.model.bounding.min.y)/2:t===ys.CEILING?r:i}function Cm(e,n,t,i){const r=Mm(e,t,i==null?void 0:i.attachedTo),s=new C.Vector3(0,r,0),o=new C.Vector3(1,r,0),a=s.clone().project(e.camera),l=o.clone().project(e.camera);return Math.abs((l.x-a.x)/1e3)*(n.getBoundingClientRect().width/2)}let ws=class{constructor(n,t){v(this,"VERSION","3.50.3");v(this,"NAME");v(this,"five");v(this,"workUtil");v(this,"fiveUtil");v(this,"hooks",new Pn);v(this,"staticPrefix","//vr-image-4.realsee-cdn.cn");this.updateFive(n),t!=null&&t.staticPrefix&&(this.staticPrefix=t.staticPrefix)}set workCode(n){this.workUtil.workCode=n,this.onWorkCodeChange()}get workCode(){return this.workUtil.workCode}updateFive(n){this.five=n,this.fiveUtil=new zu(n),this.workUtil=this.fiveUtil.workUtil}getCurrentState(){return this.state}absoluteUrl(n){return Kp(this.staticPrefix,n)}onWorkCodeChange(){}},Or=class extends ws{};var ti=(e=>(e.UnknownError="UnknownError",e.DataNotLoaded="DataNotLoaded",e.UpdateSizeError="UpdateSizeError",e.BreakOffByHide="BreakOffByHide",e.BreakOffByDisable="BreakOffByDisable",e.ModelNotLoaded="ModelNotLoaded",e.ChangeModeError="ChangeModeError",e.UpdateCameraError="UpdateCameraError",e))(ti||{});const _A=500,$L=80;function Js(e,n,t=4){return Math.abs(e-n)<Math.pow(10,-t)}function SA(e,n,t=4){const i=Math.PI*2,r=e%i,s=n%i,o=Math.min(r,s),a=Math.max(r,s);return Js(o,a,t)||Js(o+i,a,t)}Object.assign(window,{nearlyEqual:Js,nearlyEqualRad:SA});function ek(e){return Object.prototype.toString.call(e)==="[object Object]"}function IA(e){return ek(e)&&!!e.isVector3}function Pm(e,n){return te(this,null,function*(){const[t]=yield Zs(e.changeMode(...n));if(t)throw new Error("change mode canceled");yield new Promise(o=>{e.once("initAnimationWillStart",()=>{e.once("initAnimationEnded",()=>o())})});const i=n[1];if(!i)return!0;const r=e.getCurrentState();if(!tk(i,r))throw new Error("pose 与预期不符")})}function tk(e,n){return Object.keys(e).every(t=>{const i=n[t],r=e[t];return i===void 0||r===void 0?!0:t==="longitude"||t==="latitude"?SA(i,r,2):typeof i=="number"&&typeof r=="number"?Js(i,r,2):IA(r)&&IA(i)?r.distanceTo(i)<.01:i===r})}function nk(e,n){if(e.currentMode!==n.mode)return!1;const{latitude:t,longitude:i,fov:r,offset:s}=n,{latitude:o,longitude:a,offset:l}=e.getCurrentState(),c=e.camera.fov;return!(!Js(t,o,2)||!Js(i,a,2)||s!==void 0&&s.distanceTo(l)>.01||!Js(r,c,2))}function TA(e,n,t=!0){return te(this,null,function*(){if(nk(e,n)===!0)return;const r=e.getCurrentState();if(r.mode!==n.mode){const[h]=yield Zs(Pm(e,[n.mode,n,void 0,t]));if(h)throw h;return}const{latitude:s,longitude:o,fov:a}=r,l=Math.min(1e3,Math.max(200,Math.abs(s-Math.PI/2)*1e3,(o>Math.PI?2*Math.PI-o:o)*500,typeof n.fov=="number"?Math.abs(a-n.fov)*10:1/0)),[c]=yield Zs(e.updateCamera(Va(n,["mode"]),l,t));if(c)throw new Error(ti.UpdateCameraError)})}function Ga(e,n,t=300){const i=e.getElement();i&&(i.style.opacity=n+"",i.style.transition=t===0?"none":`opacity ${t}ms linear`,t!==0&&Promise.race([new Promise(r=>i.addEventListener("transitionend",r,{once:!0})),new Promise(r=>setTimeout(r,t))]).then(()=>{i.style.transition="none"}))}function ik(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)>5*Math.PI/180,r=t>5*(Math.PI/180)&&t<355*(Math.PI/180);return i||r}function rk(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)<10*Math.PI/180,r=t<30*(Math.PI/180)||t>330*(Math.PI/180);return i&&r}let sk=class extends Or{constructor(t,i){var l,c,h;super(t);v(this,"name","modelFloorplanPlugin");v(this,"state");v(this,"data");v(this,"showState");v(this,"showPromise");v(this,"app");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"selector");v(this,"showRejection");v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"show",(...i)=>te(this,[...i],function*(t={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const r=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},r),this._show(t)}));v(this,"hide",(...i)=>te(this,[...i],function*(t={}){this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},t.userAction||!0),this._hide(t)))}));v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper)return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s,o;const{userAction:i}=t;this.hooks.emit("disable",{userAction:i}),(r=this.showRejection)==null||r.call(this,ti.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(o=this.container)==null||o.remove(),this.removeEventListener()});v(this,"_enable",t=>{const{userAction:i}=t;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i}))});v(this,"_show",t=>te(this,null,function*(){var o;if(!this.state.enabled)return;if(!((o=this.five.model)!=null&&o.loaded))throw new Error(ti.ModelNotLoaded);if(!this.data)throw new Error(ti.DataNotLoaded);if(this.showPromise)return this.showPromise;const i={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},r=O(O({},i),t),s=()=>te(this,null,function*(){this.hooks.emit("show",{userAction:r.userAction,auto:r.isAutoShow});let a=!1,l;this.showRejection=u=>{a=!0,l=u};const[c]=yield Zs(TA(this.five,this.showState,r.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(ti.UnknownError);if(!this.updateSize())throw new Error(ti.UpdateSizeError);this.floorIndex=r.floorIndex,this.five.model.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=s().then(()=>{this.showPromise=void 0,this.showRejection=void 0;const a=r.modelOpacity,l=r.immediately?0:_A;Ga(this.five,a,l),this.render(l),this.hooks.emit("showAnimationEnded",{auto:r.isAutoShow,userAction:r.userAction})}).catch(a=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},r.userAction),!r.isAutoShow&&a instanceof Error)throw a}),this.showPromise}));v(this,"_hide",t=>{var s;(s=this.showRejection)==null||s.call(this,ti.BreakOffByHide),this.showPromise=void 0;const r=O(O({},{userAction:!0,isAutoHide:!1}),t);Ga(this.five,1,0),this.hooks.emit("hide",{auto:r.isAutoHide,userAction:r.userAction}),this.render()});v(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});v(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const t=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!t)throw new Error("不正确的父容器选择器");this.wrapper=t,t.append(this.container)});v(this,"onFiveModeChange",t=>{t!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});v(this,"onFiveInteriaPan",(t,i)=>{if(!i||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const r=this.five.getCurrentState();r.mode==="Floorplan"&&(this.state.visible||rk(r)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.workUtil.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{if(!this.state.visible||this.showPromise)return;const r=this.five.getCurrentState();ik(r)&&(this.updateState({visible:!1},i),this._hide({userAction:i,isAutoHide:!0}))});v(this,"onFiveWantsGesture",(t,i)=>{if(this.state.visible&&(i.length>1||t==="mouseWheel"))return!1});v(this,"onFiveWantsPanGesture",(t,i)=>{if(this.five.getCurrentState().mode==="Floorplan"&&this.state.config.autoShowEnable!==!1&&i&&this.state.visible)return this.five.updateCamera(this.showState,0),!1});v(this,"onFiveWantsTapGesture",()=>this.handleClick());v(this,"onFiveWantsChangeMode",(t,i)=>{i==="Panorama"&&t==="Floorplan"&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});v(this,"onModelShownFloorChange",t=>{if(this.floorIndex!==t){if(t===null){const i=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[i].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.showState={mode:"Floorplan",longitude:0,latitude:Math.PI/2,fov:$L/((l=i==null?void 0:i.scale)!=null?l:1)},this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(h=(c=i.i18n)==null?void 0:c.call(i,"暂无平面图"))!=null?h:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,adaptiveRoomLabelVisibleEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:u=>u,getRoomAreaText:u=>(u/1e6).toFixed(1)+"㎡",getRoomDimensionText:(u,d)=>(u/1e3).toFixed(1)+"m × "+(d/1e3).toFixed(1)+"m",getRuleDistanceText:u=>u.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled&&(t.enabled?this._enable({userAction:s}):this._disable({userAction:s})),t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}this.render()}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}formatData(t){return te(this,null,function*(){return yield As(t.data)})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.model.loaded?this.onFiveModelLoaded():t.once("modelLoaded",this.onFiveModelLoaded),t.on("modeChange",this.onFiveModeChange),t.on("interiaPan",this.onFiveInteriaPan),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsGesture",this.onFiveWantsGesture),t.on("wantsPanGesture",this.onFiveWantsPanGesture),t.on("wantsTapGesture",this.onFiveWantsTapGesture),t.on("wantsChangeMode",this.onFiveWantsChangeMode),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modelLoaded",this.onFiveModelLoaded),t.off("modeChange",this.onFiveModeChange),t.off("interiaPan",this.onFiveInteriaPan),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsGesture",this.onFiveWantsGesture),t.off("wantsPanGesture",this.onFiveWantsPanGesture),t.off("wantsTapGesture",this.onFiveWantsTapGesture),t.off("wantsChangeMode",this.onFiveWantsChangeMode),t.off("modelShownFloorChange",this.onModelShownFloorChange)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0||this.showPromise)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const ok=(e,n)=>new sk(e,n);function ak(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)>5*Math.PI/180,r=t>5*(Math.PI/180)&&t<355*(Math.PI/180);return i||r}function lk(e){const{latitude:n,longitude:t}=e,i=Math.abs(n-Math.PI/2)<10*Math.PI/180,r=t<30*(Math.PI/180)||t>330*(Math.PI/180);return i&&r}let ck=class extends Or{constructor(t,i){var l,c;super(t);v(this,"name","modelFloorplanPlugin");v(this,"state");v(this,"data");v(this,"showState");v(this,"showPromise");v(this,"app");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"selector");v(this,"showRejection");v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"show",(...i)=>te(this,[...i],function*(t={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const r=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},r),this._show(t)}));v(this,"hide",(...i)=>te(this,[...i],function*(t={}){this.state.enabled&&(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},t.userAction||!0),this._hide(t)))}));v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper)return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s,o;const{userAction:i}=t;this.hooks.emit("disable",{userAction:i}),(r=this.showRejection)==null||r.call(this,ti.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(o=this.container)==null||o.remove(),this.removeEventListener()});v(this,"_enable",t=>{const{userAction:i}=t;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i}))});v(this,"_show",t=>te(this,null,function*(){var o;if(!this.state.enabled)return;if(!((o=this.fiveUtil.model)!=null&&o.loaded))throw new Error(ti.ModelNotLoaded);if(!this.data)throw new Error(ti.DataNotLoaded);if(this.showPromise)return this.showPromise;const i={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},r=O(O({},i),t),s=()=>te(this,null,function*(){this.hooks.emit("show",{userAction:r.userAction,auto:r.isAutoShow});let a=!1,l;this.showRejection=u=>{a=!0,l=u};const[c]=yield Zs(TA(this.five,this.showState,r.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(ti.UnknownError);if(!this.updateSize())throw new Error(ti.UpdateSizeError);this.updatePosition(),this.floorIndex=r.floorIndex,this.fiveUtil.model.show(this.floorIndex)});return this.isHiddenByHideFunc=!1,this.showPromise=s().then(()=>{this.showPromise=void 0,this.showRejection=void 0;const a=r.modelOpacity,l=r.immediately?0:_A;Ga(this.five,a,l),this.render(l),this.hooks.emit("showAnimationEnded",{auto:r.isAutoShow,userAction:r.userAction})}).catch(a=>{if(this.showPromise=void 0,this.showRejection=void 0,this.updateState({visible:!1},r.userAction),!r.isAutoShow&&a instanceof Error)throw a}),this.showPromise}));v(this,"_hide",t=>{var s;(s=this.showRejection)==null||s.call(this,ti.BreakOffByHide),this.showPromise=void 0;const r=O(O({},{userAction:!0,isAutoHide:!1}),t);Ga(this.five,1,0),this.hooks.emit("hide",{auto:r.isAutoHide,userAction:r.userAction}),this.render()});v(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});v(this,"onFiveModelLoaded",()=>{const i=this.five.model.bounding.getCenter(new C.Vector3);if(this.showState.offset=i,this.state.enabled===!1||this.wrapper||!this.selector)return;const r=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!r)throw new Error("不正确的父容器选择器");this.wrapper=r,r.append(this.container)});v(this,"onFiveModeChange",t=>{t!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});v(this,"onFiveInteriaPan",(t,i)=>{if(!i||this.state.visible||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const r=this.five.getCurrentState();r.mode===this.showState.mode&&lk(r)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0}))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.workUtil.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{if(!this.state.visible||this.showPromise)return;const r=this.five.getCurrentState();this.updatePosition(),this.updateSize(),ak(r)&&(this.updateState({visible:!1},i),this._hide({userAction:i}))});v(this,"onFiveWantsPanGesture",(t,i)=>{if(this.five.getCurrentState().mode===this.showState.mode&&this.state.config.autoShowEnable!==!1&&i&&this.state.visible)return this.five.updateCamera(Va(this.showState,["offset"]),0),!1});v(this,"onFiveWantsTapGesture",()=>this.handleClick());v(this,"onFiveWantsChangeMode",(t,i)=>{i==="Panorama"&&t===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});v(this,"onModelShownFloorChange",t=>{var i;if(this.floorIndex!==t){if(t===null){const r=this.five.getCurrentState().panoIndex;this.floorIndex=(i=this.five.work)==null?void 0:i.observers[r].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.showState={mode:"Mapview",longitude:0,latitude:Math.PI/2},this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(c=(l=i.i18n)==null?void 0:l.call(i,"暂无平面图"))!=null?c:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:h=>h,getRoomAreaText:h=>(h/1e6).toFixed(1)+"㎡",getRoomDimensionText:(h,u)=>(h/1e3).toFixed(1)+"m × "+(u/1e3).toFixed(1)+"m",getRuleDistanceText:h=>h.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),Ca(t).then(this.onFiveModelLoaded),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled&&(t.enabled?this._enable({userAction:s}):this._disable({userAction:s})),t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}updatePosition(){var a;const t=Mm(this.five,this.floorIndex,this.state.config.attachedTo),i=(a=this.fiveUtil.model)==null?void 0:a.bounding.getCenter(new C.Vector3).setY(t);if(!i)return;const r=i.clone().project(this.five.camera),s=(r.x+1)/2,o=-(r.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=o*100+"%"}formatData(t){return te(this,null,function*(){return yield As(t.data)})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.on("modeChange",this.onFiveModeChange),t.on("interiaPan",this.onFiveInteriaPan),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsPanGesture",this.onFiveWantsPanGesture),t.on("wantsTapGesture",this.onFiveWantsTapGesture),t.on("wantsChangeMode",this.onFiveWantsChangeMode),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modelLoaded",this.onFiveModelLoaded),t.off("modeChange",this.onFiveModeChange),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsPanGesture",this.onFiveWantsPanGesture),t.off("wantsTapGesture",this.onFiveWantsTapGesture),t.off("wantsChangeMode",this.onFiveWantsChangeMode),t.off("modelShownFloorChange",this.onModelShownFloorChange)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0||this.showPromise)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const hk=(e,n)=>new ck(e,n);let uk=class extends Or{constructor(t,i){var l,c;super(t);v(this,"name","topviewFloorplanPlugin");v(this,"state");v(this,"data");v(this,"app");v(this,"selector");v(this,"panoIndex",0);v(this,"floorIndex",0);v(this,"wrapper");v(this,"container",document.createElement("div"));v(this,"lastPanoramaLongitude",0);v(this,"size",{width:0,height:0});v(this,"defaultMissingFloorConfig");v(this,"hasAddedEventListener",!1);v(this,"isHiddenByHideFunc",!1);v(this,"highlightData",{});v(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper||this.five.getCurrentState().mode!=="Topview")return!1;const{min:t,max:i}=this.data.bounding,r=i.x-t.x,s=i.y-t.y,o=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Cm(this.five,this.wrapper,this.floorIndex,o),l=Math.ceil(r*a),c=Math.ceil(s*a);return this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c}),!0});v(this,"dispose",()=>{var t,i;this.removeEventListener(),(t=this.app)==null||t.$destroy(),this.app=void 0,(i=this.container)==null||i.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r,s;const{userAction:i}=t;(r=this.app)==null||r.$destroy(),this.app=void 0,(s=this.container)==null||s.remove(),this.removeEventListener(),this.hooks.emit("disable",{userAction:i})});v(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const t=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!t)throw new Error("不正确的父容器选择器");this.wrapper=t,t.append(this.container)});v(this,"onFiveModeChange",(...[t,,,,i])=>{t!=="Topview"&&this.state.visible&&(this.updateState({visible:!1},i),this._hide({userAction:i}))});v(this,"onFivePanoArrived",t=>{var i;(i=this.five)!=null&&i.work&&(this.panoIndex=t,this.floorIndex=this.five.work.observers[t].floorIndex)});v(this,"onFiveCameraUpdate",(t,i)=>{this.state.visible&&(this.updatePosition(),this.updateSize())});v(this,"onFiveWantsGesture",t=>{if(!(t!=="pan"&&t!=="pinch"&&t!=="mouseWheel")&&this.state.visible&&!this.state.config.gestureEnable)return!1});v(this,"onFiveWantsMoveToPano",()=>{if(this.state.visible&&this.state.config.preventRoomClick)return!1});v(this,"onFiveInitAnimationEnded",(...[,,t])=>{const{mode:i}=this.five.getCurrentState();i==="Topview"&&!this.isHiddenByHideFunc&&!this.state.visible&&this.state.config.autoShowEnable&&(this.updateState({visible:!0},t),this._show({userAction:t}))});v(this,"onModelShownFloorChange",t=>{if(this.floorIndex!==t){if(t===null){const i=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[i].floorIndex;return}this.floorIndex=t,this.updateSize(),this.render()}});i!=null&&i.selector&&(this.selector=i.selector,console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法")),this.defaultMissingFloorConfig={imageURL:this.staticPrefix+"/release/web/saas/missing-floorplan.e274c596.png",imageWidth:200,imageHeight:120,text:(c=(l=i.i18n)==null?void 0:l.call(i,"暂无平面图"))!=null?c:"暂无平面图",textFontSize:14};const r={northDesc:"北",modelOpacity:1,cameraEnable:!0,hoverEnable:!0,highlightEnable:!1,compassEnable:!0,gestureEnable:!1,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,roomDimensionEnable:!0,cameraImageUrl:bs,attachedTo:ys.BOUNDING_CENTER,getLabelElement:void 0,missingFloorConfig:O(O({},this.defaultMissingFloorConfig),i.missingFloorConfig),i18n:h=>h,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:h=>(h/1e6).toFixed(1)+"㎡",getRoomDimensionText:(h,u)=>(h/1e3).toFixed(1)+"m × "+(u/1e3).toFixed(1)+"m",getRuleDistanceText:h=>h.toString()},s=i?Va(i,["selector","scale"]):{},o=O(O({},r.missingFloorConfig),s.missingFloorConfig),a=Pe(O(O({},r),s),{missingFloorConfig:o});this.state={enabled:!0,visible:!1,config:a},this.initContainer(),t.model.loaded?this.onFiveModelLoaded():t.once("modelLoaded",this.onFiveModelLoaded),t.once("dispose",this.dispose),this.addEventListener()}load(t,i,r=!0){return te(this,null,function*(){function s(h){return Object.prototype.hasOwnProperty.apply(h,["version"])}const o=t;o&&Dr(o.version)&&console.warn("传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数");const a=JSON.parse(JSON.stringify(t)),l=s(a)?a.data:a,c=this.data;this.data=yield As(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),i&&this.updateState(i,r),this.render()})}updatePosition(){var a;const t=Mm(this.five,this.floorIndex,this.state.config.attachedTo),i=(a=this.five.model)==null?void 0:a.bounding.getCenter(new C.Vector3).setY(t);if(!i)return;const r=i.clone().project(this.five.camera),s=(r.x+1)/2,o=-(r.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=o*100+"%"}appendTo(t){if(this.wrapper=t,!!this.state.enabled)return t.appendChild(this.container),this.render(),this}show(){return te(this,arguments,function*(t={}){if(this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},i),this._show({userAction:i})})}hide(){return te(this,arguments,function*(t={}){if(this.isHiddenByHideFunc=!0,!this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!1},i),this._hide({userAction:i})})}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled){const o={userAction:s};t.enabled?this._enable(o):this._disable(o)}if(t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}changeConfigs(t,i=!0){this.updateState({config:t},i),this.render()}formatData(t){return te(this,null,function*(){return yield As(t.data)})}_show(t){return te(this,null,function*(){if(!this.state.enabled)return;this.isHiddenByHideFunc=!1;const{userAction:i}=t;this.hooks.emit("show",{userAction:i,auto:!1}),this.five.getCurrentState().mode!=="Topview"&&(yield Pm(this.five,["Topview",void 0,void 0,i])),this.five.model.show(this.floorIndex),this.updatePosition(),this.updateSize();const r=500,s=this.state.config.modelOpacity;Ga(this.five,s,r),this.hooks.emit("showAnimationEnded",{userAction:i,auto:!1}),this.render()})}_hide(t){return te(this,null,function*(){if(!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("hide",{userAction:i,auto:!1});const r=1,s=0;Ga(this.five,r,s),this.render()})}_enable(t){const{userAction:i}=t;this.addEventListener(),this.wrapper&&this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i})}updateState(t,i){var a;const r=this.state,s=(a=t.config)!=null&&a.missingFloorConfig?O(O({},r.config.missingFloorConfig),t.config.missingFloorConfig):r.config.missingFloorConfig,o=t.config?Pe(O(O({},r.config),t.config),{missingFloorConfig:s}):r.config;this.state=Pe(O(O({},this.state),t),{config:o}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const t=this.five;t.on("modeChange",this.onFiveModeChange),t.on("panoArrived",this.onFivePanoArrived),t.on("cameraUpdate",this.onFiveCameraUpdate),t.on("wantsGesture",this.onFiveWantsGesture),t.on("wantsMoveToPano",this.onFiveWantsMoveToPano),t.on("initAnimationEnded",this.onFiveInitAnimationEnded),t.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const t=this.five;this.hasAddedEventListener=!1,t.off("modeChange",this.onFiveModeChange),t.off("panoArrived",this.onFivePanoArrived),t.off("cameraUpdate",this.onFiveCameraUpdate),t.off("wantsGesture",this.onFiveWantsGesture),t.off("wantsMoveToPano",this.onFiveWantsMoveToPano),t.off("initAnimationEnded",this.onFiveInitAnimationEnded),t.off("modelShownFloorChange",this.onModelShownFloorChange)}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate3d(-50%, -50%, 10px)",zIndex:10,pointerEvents:"none","will-change":"width, height"}),this.five.addExtraElement(this.container)}render(t){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const i=Pe(O({},this.state.config),{visible:this.state.visible,duration:t!=null?t:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(i);this.app=new xm({target:this.container,intro:!0,props:i})}};const dk=(e,n)=>new uk(e,n);function Em(e,n=200){let t;return function(...i){t||(e(...i),t=setTimeout(function(){t=null},n))}}function fk(e){Ue(e,"svelte-1nqrlxd",".plugin-radar__camera-wrapper.svelte-1nqrlxd{width:100%;height:100%;position:absolute;pointer-events:none}.plugin-radar__camera-position.svelte-1nqrlxd{position:absolute;left:0;top:0;width:0;height:0;transform:none;pointer-events:none;transition:transform 1s linear}.plugin-radar__camera-rotate.svelte-1nqrlxd{position:absolute;left:-0.9375rem;top:-0.9375rem;width:1.0625rem;height:1.0625rem;transform-origin:0.9375rem 0.9375rem;transform:rotate(45deg);background-repeat:no-repeat;background-size:100%}")}function pk(e){let n,t,i;return{c(){n=H("div"),t=H("div"),i=H("div"),_(i,"class","plugin-radar__camera-rotate svelte-1nqrlxd"),W(i,"background-image","url("+(e[0]||bs)+")"),W(i,"transform",e[1]),_(t,"class","plugin-radar__camera-position svelte-1nqrlxd"),W(t,"transform",e[2]),_(n,"class","plugin-radar__camera-wrapper svelte-1nqrlxd"),W(n,"opacity",e[3]?1:0)},m(r,s){X(r,n,s),Q(n,t),Q(t,i)},p(r,[s]){s&1&&W(i,"background-image","url("+(r[0]||bs)+")"),(s&1||s&3)&&W(i,"transform",r[1]),s&4&&W(t,"transform",r[2]),s&8&&W(n,"opacity",r[3]?1:0)},i:de,o:de,d(r){r&&Y(n)}}}function mk(e){return`rotate(${Math.floor(e/Math.PI*180)*-1+45}deg)`}function gk(e,n,t){var b,A;let i,r,s,o,{five:a}=n,{pxmm:l}=n,{floorplanData:c}=n,{cameraImageUrl:h}=n,u=a.getCurrentState().panoIndex,d=a.getCurrentState().longitude,f=(A=(b=a.work.observers[a.getCurrentState().panoIndex])==null?void 0:b.floorIndex)!=null?A:0;function m(w,x){const M=w.bounding,E=w.observers[x];if(!E)return"";const S=(M.max.x-M.min.x)*l,T=(M.max.y-M.min.y)*l,z=Math.floor(E.positionInImage.x*S),D=Math.floor(E.positionInImage.y*T);return`translate(${z}px, ${D}px)`}function p(w){t(7,u=w)}function g(w){t(9,f=a.work.observers[w].floorIndex)}const y=Em(w=>{t(8,d=w.longitude)},1e3/60);return Yn(()=>(a.on("panoWillArrive",p),a.on("panoArrived",g),a.on("cameraDirectionUpdate",y),function(){a.off("panoWillArrive",p),a.off("panoArrived",g),a.off("cameraDirectionUpdate",y)})),e.$$set=w=>{"five"in w&&t(4,a=w.five),"pxmm"in w&&t(5,l=w.pxmm),"floorplanData"in w&&t(6,c=w.floorplanData),"cameraImageUrl"in w&&t(0,h=w.cameraImageUrl)},e.$$.update=()=>{e.$$.dirty&576&&t(10,i=c.floorDatas[f]),e.$$.dirty&1024&&t(3,r=i.rooms.length>0),e.$$.dirty&192&&t(2,s=m(c,u)),e.$$.dirty&256&&t(1,o=mk(d))},[h,o,s,r,a,l,c,u,d,f,i]}class vk extends Oe{constructor(n){super(),ke(this,n,gk,pk,Le,{five:4,pxmm:5,floorplanData:6,cameraImageUrl:0},fk)}}function yk(e){Ue(e,"svelte-1i87fz7",".plugin-pano-floorplan__extra-objects.svelte-1i87fz7{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.plugin-pano-floorplan__extra-object-item--position.svelte-1i87fz7{position:absolute;width:0;height:0}.plugin-pano-floorplan__extra-object-item.svelte-1i87fz7{transform:translate(-50%, -50%)}")}function DA(e,n,t){const i=e.slice();return i[1]=n[t],i}function LA(e,n){let t,i,r=`${n[1].icon.width/16}rem`,s=`${n[1].icon.height/16}rem`,o,a=`${n[1].positionInImage.y*100}%`,l=`${n[1].positionInImage.x*100}%`;return{key:e,first:null,c(){t=H("div"),i=H("div"),o=ye(),_(i,"class","plugin-pano-floorplan__extra-object-item svelte-1i87fz7"),W(i,"background-image",`url(${n[1].icon.url})`),W(i,"width",r),W(i,"height",s),_(t,"class","plugin-pano-floorplan__extra-object-item--position svelte-1i87fz7"),W(t,"top",a),W(t,"left",l),this.first=t},m(c,h){X(c,t,h),Q(t,i),Q(t,o)},p(c,h){n=c,h&1&&W(i,"background-image",`url(${n[1].icon.url})`);const u=h&1;u&&W(i,"width",r),u&&W(i,"height",s),h&1&&a!==(a=`${n[1].positionInImage.y*100}%`)&&W(t,"top",a),h&1&&l!==(l=`${n[1].positionInImage.x*100}%`)&&W(t,"left",l)},d(c){c&&Y(t)}}}function bk(e){let n,t=[],i=new Map,r=e[0];const s=o=>o[1].id;for(let o=0;o<r.length;o+=1){let a=DA(e,r,o),l=s(a);i.set(l,t[o]=LA(l,a))}return{c(){n=H("div");for(let o=0;o<t.length;o+=1)t[o].c();_(n,"class","plugin-pano-floorplan__extra-objects svelte-1i87fz7")},m(o,a){X(o,n,a);for(let l=0;l<t.length;l+=1)t[l]&&t[l].m(n,null)},p(o,[a]){a&1&&(r=o[0],t=Ni(t,a,s,1,o,r,i,n,gm,LA,null,DA))},i:de,o:de,d(o){o&&Y(n);for(let a=0;a<t.length;a+=1)t[a].d()}}}function Ak(e,n,t){let{extraObjects:i=[]}=n;return e.$$set=r=>{"extraObjects"in r&&t(0,i=r.extraObjects)},[i]}class wk extends Oe{constructor(n){super(),ke(this,n,Ak,bk,Le,{extraObjects:0},yk)}}function xk(e){Ue(e,"svelte-18287ai",".missing-floor-wrapper.svelte-18287ai{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex;justify-content:center;align-items:center}.missing-floor-image.svelte-18287ai{max-width:100%;max-height:100%}")}function Mk(e){let n,t,i,r,s,o;const a=[{floorIndex:e[2],floorplanData:e[4]}];let l={};for(let h=0;h<a.length;h+=1)l=Ln(l,a[h]);n=new Jb({props:l}),i=new wk({props:{extraObjects:e[7]}});let c=e[3]&&kA(e);return{c(){Te(n.$$.fragment),t=ye(),Te(i.$$.fragment),r=ye(),c&&c.c(),s=pt()},m(h,u){Se(n,h,u),X(h,t,u),Se(i,h,u),X(h,r,u),c&&c.m(h,u),X(h,s,u),o=!0},p(h,u){const d=u&20?Vn(a,[{floorIndex:h[2],floorplanData:h[4]}]):{};n.$set(d);const f={};u&128&&(f.extraObjects=h[7]),i.$set(f),h[3]?c?(c.p(h,u),u&8&&N(c,1)):(c=kA(h),c.c(),N(c,1),c.m(s.parentNode,s)):c&&(Fe(),Z(c,1,1,()=>{c=null}),Ve())},i(h){o||(N(n.$$.fragment,h),N(i.$$.fragment,h),N(c),o=!0)},o(h){Z(n.$$.fragment,h),Z(i.$$.fragment,h),Z(c),o=!1},d(h){Ie(n,h),h&&Y(t),Ie(i,h),h&&Y(r),c&&c.d(h),h&&Y(s)}}}function Ck(e){let n,t,i;return{c(){n=H("div"),t=H("img"),_(t,"class","missing-floor-image svelte-18287ai"),Sn(t.src,i=e[6])||_(t,"src",i),_(t,"alt","缺省楼层"),_(n,"class","missing-floor-wrapper svelte-18287ai")},m(r,s){X(r,n,s),Q(n,t)},p(r,s){s&64&&!Sn(t.src,i=r[6])&&_(t,"src",i)},i:de,o:de,d(r){r&&Y(n)}}}function kA(e){let n,t;const i=[{five:e[0],pxmm:e[1],floorIndex:e[2],floorplanData:e[4],onRoomHeightClick:e[9],highlightData:e[5],hoveredRoom:void 0}];let r={};for(let s=0;s<i.length;s+=1)r=Ln(r,i[s]);return n=new gA({props:r}),{c(){Te(n.$$.fragment)},m(s,o){Se(n,s,o),t=!0},p(s,o){const a=o&567?Vn(i,[{five:s[0],pxmm:s[1],floorIndex:s[2],floorplanData:s[4],onRoomHeightClick:s[9],highlightData:s[5],hoveredRoom:void 0}]):{};n.$set(a)},i(s){t||(N(n.$$.fragment,s),t=!0)},o(s){Z(n.$$.fragment,s),t=!1},d(s){Ie(n,s)}}}function Pk(e){let n,t,i,r;const s=[Ck,Mk],o=[];function a(l,c){return l[8]?1:0}return n=a(e),t=o[n]=s[n](e),{c(){t.c(),i=pt()},m(l,c){o[n].m(l,c),X(l,i,c),r=!0},p(l,[c]){let h=n;n=a(l),n===h?o[n].p(l,c):(Fe(),Z(o[h],1,1,()=>{o[h]=null}),Ve(),t=o[n],t?t.p(l,c):(t=o[n]=s[n](l),t.c()),N(t,1),t.m(i.parentNode,i))},i(l){r||(N(t),r=!0)},o(l){Z(t),r=!1},d(l){o[n].d(l),l&&Y(i)}}}function Ek(e,n,t){let i,r,s,{five:o}=n,{pxmm:a}=n,{floorIndex:l}=n,{hoverEnable:c}=n,{floorplanData:h}=n,{extraObjects:u=[]}=n,{highlightData:d}=n,{missingFloorImageUrl:f}=n;const m=void 0;return e.$$set=p=>{"five"in p&&t(0,o=p.five),"pxmm"in p&&t(1,a=p.pxmm),"floorIndex"in p&&t(2,l=p.floorIndex),"hoverEnable"in p&&t(3,c=p.hoverEnable),"floorplanData"in p&&t(4,h=p.floorplanData),"extraObjects"in p&&t(10,u=p.extraObjects),"highlightData"in p&&t(5,d=p.highlightData),"missingFloorImageUrl"in p&&t(6,f=p.missingFloorImageUrl)},e.$$.update=()=>{e.$$.dirty&20&&t(11,i=h.floorDatas[l]),e.$$.dirty&2048&&t(8,r=i.rooms.length>0),e.$$.dirty&1028&&t(7,s=u==null?void 0:u.filter(p=>p.floorIndex===l))},[o,a,l,c,h,d,f,s,r,m,u,i]}class _k extends Oe{constructor(n){super(),ke(this,n,Ek,Pk,Le,{five:0,pxmm:1,floorIndex:2,hoverEnable:3,floorplanData:4,extraObjects:10,highlightData:5,missingFloorImageUrl:6},xk)}}function Sk(e){Ue(e,"svelte-1mvqyqq",".plugin-floorplan-radar.svelte-1mvqyqq{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.plugin-floorplan-radar-container.svelte-1mvqyqq{position:relative}")}function OA(e){let n,t,i,r,s=e[8]!==0&&RA(e);return{c(){n=H("div"),s&&s.c(),_(n,"class","plugin-floorplan-radar svelte-1mvqyqq")},m(o,a){X(o,n,a),s&&s.m(n,null),t=!0,i||(r=[zi(vs.call(null,n)),lt(n,"clientWidth",e[14]),lt(n,"clientHeight",e[15])],i=!0)},p(o,a){o[8]!==0?s?(s.p(o,a),a&256&&N(s,1)):(s=RA(o),s.c(),N(s,1),s.m(n,null)):s&&(Fe(),Z(s,1,1,()=>{s=null}),Ve())},i(o){t||(N(s),t=!0)},o(o){Z(s),t=!1},d(o){o&&Y(n),s&&s.d(),i=!1,bn(r)}}}function RA(e){let n,t,i,r,s=`${e[10]}px`,o=`${e[13]}px`,a;const l=[{five:e[0],pxmm:e[11],floorIndex:e[12],floorplanData:e[3],hoverEnable:e[2],extraObjects:e[5],highlightData:e[6],missingFloorImageUrl:e[7]}];let c={};for(let d=0;d<l.length;d+=1)c=Ln(c,l[d]);t=new _k({props:c});const h=[{pxmm:e[11],five:e[0],floorplanData:e[3],cameraImageUrl:e[4]}];let u={};for(let d=0;d<h.length;d+=1)u=Ln(u,h[d]);return r=new vk({props:u}),{c(){n=H("div"),Te(t.$$.fragment),i=ye(),Te(r.$$.fragment),_(n,"class","plugin-floorplan-radar-container svelte-1mvqyqq"),W(n,"width",s),W(n,"height",o)},m(d,f){X(d,n,f),Se(t,n,null),Q(n,i),Se(r,n,null),a=!0},p(d,f){const m=f&6381?Vn(l,[{five:d[0],pxmm:d[11],floorIndex:d[12],floorplanData:d[3],hoverEnable:d[2],extraObjects:d[5],highlightData:d[6],missingFloorImageUrl:d[7]}]):{};t.$set(m);const p=f&2073?Vn(h,[{pxmm:d[11],five:d[0],floorplanData:d[3],cameraImageUrl:d[4]}]):{};r.$set(p),f&1024&&s!==(s=`${d[10]}px`)&&W(n,"width",s),f&8192&&o!==(o=`${d[13]}px`)&&W(n,"height",o)},i(d){a||(N(t.$$.fragment,d),N(r.$$.fragment,d),a=!0)},o(d){Z(t.$$.fragment,d),Z(r.$$.fragment,d),a=!1},d(d){d&&Y(n),Ie(t),Ie(r)}}}function Ik(e){let n,t,i=e[1]&&OA(e);return{c(){i&&i.c(),n=pt()},m(r,s){i&&i.m(r,s),X(r,n,s),t=!0},p(r,[s]){r[1]?i?(i.p(r,s),s&2&&N(i,1)):(i=OA(r),i.c(),N(i,1),i.m(n.parentNode,n)):i&&(Fe(),Z(i,1,1,()=>{i=null}),Ve())},i(r){t||(N(i),t=!0)},o(r){Z(i),t=!1},d(r){i&&i.d(r),r&&Y(n)}}}function Tk(e,n,t){var w,x;let{five:i}=n,{visible:r}=n,{hoverEnable:s}=n,{floorplanData:o}=n,{cameraImageUrl:a}=n,{extraObjects:l=[]}=n,{highlightData:c}=n,{missingFloorImageUrl:h}=n,u=0,d=(x=(w=i.work.observers[i.getCurrentState().panoIndex])==null?void 0:w.floorIndex)!=null?x:0,f=0,m=0,p=0,g=0;function y(M){t(12,d=i.work.observers[M].floorIndex)}Yn(()=>(i.on("panoArrived",y),()=>{i.off("panoArrived",y)}));const b=M=>{t(8,f=M.detail)},A=M=>{t(9,m=M.detail)};return e.$$set=M=>{"five"in M&&t(0,i=M.five),"visible"in M&&t(1,r=M.visible),"hoverEnable"in M&&t(2,s=M.hoverEnable),"floorplanData"in M&&t(3,o=M.floorplanData),"cameraImageUrl"in M&&t(4,a=M.cameraImageUrl),"extraObjects"in M&&t(5,l=M.extraObjects),"highlightData"in M&&t(6,c=M.highlightData),"missingFloorImageUrl"in M&&t(7,h=M.missingFloorImageUrl)},e.$$.update=()=>{if(e.$$.dirty&1800){const M=Math.min(f,m),{max:E,min:S}=o.bounding,T=E.x-S.x,z=E.y-S.y,D=function(){return T>z?[M,M/T*z]:[M/z*T,M]}();t(10,p=D[0]),t(13,g=D[1]),t(11,u=p/T)}},[i,r,s,o,a,l,c,h,f,m,p,u,d,g,b,A]}class Dk extends Oe{constructor(n){super(),ke(this,n,Tk,Ik,Le,{five:0,visible:1,hoverEnable:2,floorplanData:3,cameraImageUrl:4,extraObjects:5,highlightData:6,missingFloorImageUrl:7},Sk)}}let Lk=class extends Or{constructor(t,i){super(t);v(this,"name","panoFloorplanRadarPlugin");v(this,"state");v(this,"data");v(this,"app");v(this,"wrapperSelector","");v(this,"wrapper",null);v(this,"disposed",!1);v(this,"extraObjects",[]);v(this,"highlightData",{});v(this,"dispose",()=>{var t;this.disposed=!0,(t=this.app)==null||t.$destroy(),this.wrapper=null,this.wrapperSelector="",this.hooks.emit("dispose")});v(this,"highlight",t=>{this.state.config.highlightEnable&&(this.highlightData=t,this.render())});v(this,"unhighlight",()=>{this.highlightData={},this.render()});v(this,"_disable",t=>{var r;const{userAction:i}=t;(r=this.app)==null||r.$destroy(),this.app=void 0,this.hooks.emit("disable",{userAction:i})});this.five=t;const r={hoverEnable:!0,highlightEnable:!0,cameraImageUrl:bs,missingFloorImageUrl:this.staticPrefix+"/release/web/saas/missing-floor.d687a5ed.png"},s=O(O({},r),i==null?void 0:i.configs);this.state={enabled:!0,visible:!0,config:s},i!=null&&i.wrapper&&console.warn("不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法"),typeof(i==null?void 0:i.wrapper)=="string"?this.wrapperSelector=i.wrapper:(i==null?void 0:i.wrapper)instanceof Element&&(this.wrapper=i.wrapper),t.once("dispose",this.dispose)}load(t,i,r=!0){return te(this,null,function*(){function s(c){return Object.prototype.hasOwnProperty.apply(c,["version"])}const o=JSON.parse(JSON.stringify(t)),a=s(o)?o.data:o,l=this.data;this.data=yield As(a),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,l),i&&this.updateState(i,r),this.render()})}show(){return te(this,arguments,function*(t={}){if(this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!0},i),this._show({userAction:i})})}hide(){return te(this,arguments,function*(t={}){if(!this.state.visible)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({visible:!1},i),this._hide({userAction:i})})}enable(t={}){if(this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!0},t.userAction||i),this._enable({userAction:i})}disable(t={}){if(!this.state.enabled)return;const i=t.userAction!==void 0?t.userAction:!0;this.updateState({enabled:!1},t.userAction||i),this._disable({userAction:i})}setState(t,i={}){const r=this.state,s=i.userAction!==void 0?i.userAction:!0;if(this.updateState(t,s),t.enabled!==void 0&&r.enabled!==t.enabled){const o={userAction:s};t.enabled?this._enable(o):this._disable(o)}if(t.visible!==void 0&&r.visible!==t.visible){const o={userAction:s};t.visible?this._show(o):this._hide(o)}}appendTo(t){this.wrapper!==t&&this.app&&(this.app.$destroy(),this.app=void 0),this.wrapper=t,this.render()}changeConfigs(t,i=!0){this.setState({config:t},{userAction:i}),this.render()}setExtraObjectsWith3DPositions(t){this.data&&(this.extraObjects=qL(t,this.five,this.data),this.render())}formatData(t){return te(this,null,function*(){return yield As(t.data)})}_enable(t){const{userAction:i}=t;this.hooks.emit("enable",{userAction:i}),this.state.visible&&this._show({userAction:i})}_show(t){if(this.disposed||!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("show",{userAction:i}),this.render()}_hide(t){if(this.disposed||!this.state.enabled)return;const{userAction:i}=t;this.hooks.emit("hide",{userAction:i}),this.render()}updateState(t,i){const r=this.state,s=t.config?O(O({},r.config),t.config):r.config;this.state=Pe(O(O({},this.state),t),{config:s}),!Fn(this.state,r,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:i})}render(){if(this.disposed||!this.state.enabled)return;if(!this.wrapper&&this.wrapperSelector){const i=document.querySelector(this.wrapperSelector);this.wrapper=i}if(!this.data||!this.wrapper)return;const t=Pe(O({},this.state.config),{five:this.five,floorplanData:this.data,visible:this.state.visible,extraObjects:this.extraObjects,highlightData:this.highlightData});this.app?this.app.$set(t):this.app=new Dk({target:this.wrapper,props:t})}};const kk=(e,n)=>new Lk(e,n),Ok=[{type:0,floorType:1,roomType:"100900000012",name:"其他"},{type:1,floorType:1,roomType:"100900000002",name:"客厅"},{type:2,floorType:1,roomType:"100900000002",name:"餐厅"},{type:3,floorType:0,roomType:"100900000001",name:"卧室"},{type:4,floorType:0,roomType:"100900000001",name:"书房"},{type:5,floorType:3,roomType:"100900000004",name:"卫生间"},{type:6,floorType:3,roomType:"100900000004",name:"淋浴间"},{type:7,floorType:3,roomType:"100900000004",name:"洗手间"},{type:8,floorType:3,roomType:"100900000003",name:"厨房"},{type:9,floorType:1,roomType:"100900000003",name:"开放厨房",onlySubArea:!0},{type:10,floorType:0,roomType:"100900000001",name:"多功能间"},{type:11,floorType:0,roomType:"100900000009",name:"保姆间"},{type:12,floorType:4,roomType:"100900000005",name:"阳台"},{type:13,floorType:4,roomType:"100900000006",name:"露台"},{type:14,floorType:0,roomType:"100900000008",name:"储物间"},{type:15,floorType:0,roomType:"100900000013",name:"衣帽间"},{type:16,floorType:0,roomType:"100900000011",name:"阁楼"},{type:17,floorType:2,roomType:"100900000007",name:"花园"},{type:18,floorType:5,roomType:"100900000010",name:"车库"},{type:19,floorType:1,roomType:"100900000012",name:"电梯"},{type:20,floorType:1,roomType:"100900000012",name:"地下室"},{type:21,floorType:1,roomType:"100900000012",name:"天井"},{type:22,floorType:1,roomType:"100900000012",name:"阳光房"},{type:23,floorType:1,roomType:"100900000012",name:"过道"},{type:24,floorType:1,roomType:"100900000012",name:"楼梯间"},{type:25,floorType:1,roomType:"100900000012",name:"门厅"},{type:26,floorType:2,roomType:"100900000012",name:"入户花园"},{type:27,floorType:1,roomType:"100900000012",name:"玄关"},{type:28,floorType:1,roomType:"100900000012",name:"挑空"},{type:29,floorType:4,roomType:"100900000012",name:"晾晒区"},{type:30,floorType:4,roomType:"100900000012",name:"洗衣房"},{type:31,floorType:0,roomType:"100900000012",name:"娱乐区"},{type:32,floorType:0,roomType:"100900000012",name:"健身区"},{type:33,floorType:0,roomType:"100900000012",name:"接待区"},{type:34,floorType:0,roomType:"100900000012",name:"影音区"},{type:35,floorType:1,roomType:"100900000012",name:"餐饮区"},{type:36,floorType:1,roomType:"100900000012",name:"其他",onlySubArea:!0},{type:37,floorType:1,roomType:"100900000002",name:"起居室"},{type:38,floorType:0,roomType:"100900000001",name:"主卧"},{type:39,floorType:0,roomType:"100900000001",name:"次卧"},{type:40,floorType:0,roomType:"100900000001",name:"优化间"},{type:41,floorType:0,roomType:"100900000001",name:"办公室"},{type:42,floorType:0,roomType:"100900000001",name:"会议室"},{type:43,floorType:0,roomType:"100900000001",name:"洽谈间"},{type:44,floorType:1,roomType:"100900000002",name:"共享大厅"},{type:45,floorType:1,roomType:"100900000012",name:"水吧"},{type:46,floorType:0,roomType:"100900000015",name:"出入口"},{type:47,floorType:0,roomType:"100900000015",name:"大厅"},{type:48,floorType:0,roomType:"100900000015",name:"包厢"},{type:49,floorType:0,roomType:"100900000015",name:"其他"},{type:50,floorType:0,roomType:"100900000016",name:"出入口"},{type:51,floorType:0,roomType:"100900000016",name:"办公区"},{type:52,floorType:0,roomType:"100900000016",name:"老板间"},{type:53,floorType:0,roomType:"100900000016",name:"会议室"},{type:54,floorType:0,roomType:"100900000016",name:"休息区/水吧"},{type:55,floorType:0,roomType:"100900000016",name:"其他"},{type:56,floorType:2,roomType:"100900000012",name:"空中花园"},{type:57,floorType:0,roomType:"100900000001",name:"洋室"},{type:58,floorType:0,roomType:"100900000001",name:"和室"}],Rk=[{type:0,description:"木质地板"},{type:1,description:"瓷砖地面"},{type:2,description:"户外地面"},{type:3,description:"卫生间地面"},{type:4,description:"阳台地面"},{type:5,description:"车库地面"}],zk=[{roomType:"100900000001",description:"室"},{roomType:"100900000002",description:"厅"},{roomType:"100900000003",description:"厨"},{roomType:"100900000004",description:"卫"},{roomType:"100900000005",description:"阳台"},{roomType:"100900000006",description:"露台"},{roomType:"100900000007",description:"花园"},{roomType:"100900000008",description:"储"},{roomType:"100900000009",description:"保姆间"},{roomType:"100900000010",description:"车库"},{roomType:"100900000011",description:"阁楼"},{roomType:"100900000012",description:"其他"},{roomType:"100900000013",description:"衣"},{roomType:"100900000015",description:"商铺"},{roomType:"100900000016",description:"写字楼"}],_m=(e,n,t)=>{const i=new C.Matrix4,r=new C.Euler(e,n,t,"YXZ");return i.makeRotationFromEuler(r),i},Bk=(e,{scale:n,rotation:t,position:i})=>{if(n&&e.scale.set(n,n,n),t){const[r,s,o]=t;r&&e.applyMatrix4(_m(r,0,0)),s&&e.applyMatrix4(_m(0,s,0)),o&&e.applyMatrix4(_m(0,0,o))}return i&&e.position.set(i.x,i.y,i.z),e};function zA(e,n){e.traverse(t=>{var i;if(t.type==="Mesh"){const r=t,s=O({map:r.material.map||{}},n);r.material=new ee.MeshBasicMaterial(s),r.renderOrder=1,((i=t.parent)==null?void 0:i.type)==="Mesh"&&(t.renderOrder=t.parent.renderOrder+1)}})}const Nk=(e,n)=>{var p;const t=n.fbx_url||"//vrlab-image4.ljcdn.com/release/web/dipan2.f38a21cc.FBX",i=(p=n.north_rad)!=null?p:void 0,r={};let s={x:0,y:0,z:0},o=[0,0,0],a=1,l=i;e.on("modelLoaded",m);const c=g=>te(this,null,function*(){var w;const y=(g==null?void 0:g.fbx_url)||t;if(l=(w=g==null?void 0:g.north_rad)!=null?w:i,typeof l!="number")throw new Error('"northRad"配置参数缺失:未配置指南针指向!');const A=yield new go.FBXLoader().loadAsync(y);return zA(A,{transparent:!0,side:C.DoubleSide,blending:C.AdditiveBlending}),r.object=A,m(),!0}),h=({latitude:g})=>{if(!r.object)return;const y=u(g);y&&(r.object.position.y=y)},u=g=>{if(r.yBase===void 0)return;const y=.6;if(g>=Math.PI/4)return r.yBase-(y+1.6);const b=g*(4/Math.PI);return r.yBase-(y*b+1.6)},d=()=>{if(!r.object)return;const g=u(e.getPose().latitude);g&&(r.object.position.y=g),e.scene.add(r.object),e.needsRender=!0,e.on("cameraDirectionUpdate",h)},f=()=>{r.object&&(e.scene.remove(r.object),e.needsRender=!0,e.off("cameraDirectionUpdate",h))};function m(){const g=r.object;if(!g)return;const y=e.model.bounding,b=y.max.x-y.min.x,A=y.max.z-y.min.z,w=Math.max(b,A),{max:{x,z:M},min:{x:E,y:S,z:T}}=y;r.yBase=S,s={x:(x+E)/2,y:S-1.6,z:(M+T)/2},o=[0,l-Math.PI/2,0],a=.0045*w,Bk(g,{position:s,rotation:o,scale:a})}return{load:c,disable:f,enable:d}};function Fk(e,n){var c,h,u,d,f;const t=(c=n==null?void 0:n.size)!=null?c:512,i=(h=n==null?void 0:n.fontSize)!=null?h:t*(35/256)*1.2,r=(u=n==null?void 0:n.backgroundColor)!=null?u:"rgba(0,0,0,0)",s=(d=n==null?void 0:n.fontColor)!=null?d:"#fff",o=(f=n==null?void 0:n.textAlign)!=null?f:"center",a=document.createElement("canvas");a.setAttribute("width",t+""),a.setAttribute("height",t+"");const l=a.getContext("2d");return l.fillStyle=r,l.fillRect(0,0,t,t),l.font=`${i}px "微软雅黑"`,l.textAlign=o,l.fillStyle=s,l.fillText(e,t/2,t*.7),new ee.CanvasTexture(a)}const Vk=({x:e,y:n,z:t})=>new ee.Vector3(e,n,t),Gk=(e,n)=>{var p,g,y;const t={},i=(p=n.animationEnabled)!=null?p:!0,r=(g=n.position)!=null?g:void 0,s=(y=n.rad)!=null?y:void 0,o=n.fbx_url||"//vrlab-image4.ljcdn.com/release/web/entryDoorMini/Anim_Door1.fbx",a=[],l=b=>te(this,null,function*(){var z,D,k,R,G,I,U,q;const A=(z=b==null?void 0:b.position)!=null?z:r;if(!A)return Promise.reject(new Error("ModelEntryDoorGuidePlugin.load(): position is undefined"));const w=Vk(A),x=(D=b==null?void 0:b.rad)!=null?D:s,M=(k=b==null?void 0:b.fbx_url)!=null?k:o;if(t.rad=x,x===void 0)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${x}`));const E=yield new go.FBXLoader().loadAsync(M);E.position.copy(w),E.rotation.z=x,E.scale.set(.8,.8,.8),zA(E,{transparent:!0,side:C.DoubleSide});const S=(U=(I=(G=(R=E.children)==null?void 0:R[0])==null?void 0:G.children)==null?void 0:I[3])==null?void 0:U.clone();if(!S)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${S}`));const T=(q=n.name)!=null?q:"入户门";return S.material=new ee.MeshBasicMaterial({transparent:!0,map:Fk(T)}),S.renderOrder=3,E.children[0].add(S),t.object=E,!0}),c=()=>{if(t.animation)return;if(!t.object)return console.error("ModelEntryDoorGuidePlugin.initAnimation(): state.object is ",t.object);const b=1,A=new ee.AnimationMixer(t.object);a.push(A);const w=A.clipAction(t.object.animations[0]);w.timeScale=b;let x;const M=()=>{let z=0,D=0;const k=1e3/30,R=G=>{z=requestAnimationFrame(R);const I=G-D;I<k||(D=G,a.forEach(U=>U.update(I/1e3)),e.needsRender=!0)};return z=requestAnimationFrame(R),()=>{cancelAnimationFrame(z)}},T={play:()=>{x||(w.play(),x=M(),requestAnimationFrame(()=>{t.object&&t.object.rotation.z!==t.rad&&(t.object.rotation.z=t.rad)}))},stop:()=>{w.stop(),x==null||x(),x=void 0}};t.animation=T},h=b=>{var w;if(!t.object)return console.error("ModelEntryDoorGuidePlugin.enable(): object is ",t.object);((w=b==null?void 0:b.animationEnable)!=null?w:i)&&(t.animation||c(),t.animation.play()),e.scene.add(t.object),e.needsRender=!0},u=()=>{t.object&&(t.animation&&t.animation.stop(),e.scene.remove(t.object),e.needsRender=!0)},d=b=>b==="Floorplan"?h():u();return{load:l,enable:b=>(t.enabled||(t.enabled=!0,d(e.currentMode),e.on("modeChange",d),h(b)),!0),disable:()=>(t.enabled&&(t.enabled=!1,u(),e.off("modeChange",d)),!0)}},jk=Gi;function Hk(e,n,t,i=jk.Linear.None){const r=new ih(e).to(n,t).easing(i);yc(()=>r.start(0));const s=Aa(a=>{r.update(a)===!1&&s()}),o=[];return r.onDestroy=a=>(o.push(a),r),r.destroy=function(){this.stop(),Object.assign(r,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallbackL:null});let a;for(;a=o.shift();)a();s()},r}function Uk(e,n){return Hk({progress:0},{progress:1},e,n)}var BA=(e=>(e.Move="Move",e.Rotate="Rotate",e))(BA||{}),sr=(e=>(e.Clockwise="Clockwise",e.Anticlockwise="Anticlockwise",e.Loop="Loop",e))(sr||{});const rd=Math.PI*2;function NA(e){return(e%rd+rd)%rd}function FA(e){return e%rd}function Sm(e,n,t){return e+(n-e)*t}const Im=(e,n,t)=>{const i=Math.PI,r=i*2;let s=NA(e),o=NA(n);return t===sr.Anticlockwise&&s<o&&(s+=r),t===sr.Clockwise&&o<s&&(o+=r),t===sr.Loop&&o-s>i?Im(s,o,sr.Anticlockwise):t===sr.Loop&&s-o>i?Im(s,o,sr.Clockwise):{from:s,to:o}},Wk=e=>{const n={},t=(l,c,...h)=>te(this,[l,c,...h],function*(s,o,a={preload:!0}){return n.interruptCallback&&n.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),s.mode&&s.mode!==e.currentMode&&(yield e.changeMode(s.mode)),a.preload&&s.panoIndex!==void 0&&s.panoIndex!==e.panoIndex&&(yield e.preloadPano(s.panoIndex)),a.asyncEndCallback&&(yield a.asyncEndCallback()),s.panoIndex===void 0&&s.fov===void 0&&s.latitude===void 0&&s.longitude===void 0?!0:yield new Promise((u,d)=>{const f=s.panoIndex!==void 0?s.panoIndex:e.panoIndex;f!==void 0?e.moveToPano(f,O({duration:o,moveEndCallback:()=>u(!0),moveCancelCallback:()=>d(new Error("move canceled"))},s)):d(new Error("unexpected error"))})}),i=s=>{const o=e.state,a=FA(o.latitude),l=FA(s.latitude),{from:c,to:h}=Im(o.longitude,s.longitude,s.rotation||sr.Loop),u=o.fov,d=s.fov;return{from:{latitude:a,longitude:c,fov:u},to:{latitude:l,longitude:h,fov:d}}};return{move:t,rotate:(l,c,...h)=>te(this,[l,c,...h],function*(s,o,a={}){n.interruptCallback&&n.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),e.currentMode!==Zt.Five.Mode.Panorama&&(yield e.changeMode(Zt.Five.Mode.Panorama)),s.panoIndex!==void 0&&s.panoIndex!==e.panoIndex&&(a.preload&&(yield e.preloadPano(s.panoIndex)),yield new Promise((f,m)=>{if(!s.panoIndex){f(!0);return}e.moveToPano(s.panoIndex,{moveEndCallback:()=>f(!0),moveCancelCallback:()=>m(new Error("move canceled"))})})),a.asyncEndCallback&&(yield a.asyncEndCallback());const{from:u,to:d}=i(s);return yield new Promise(f=>{const m=({progress:A})=>{const w={};w.longitude=Sm(u.longitude,d.longitude,A),w.latitude=Sm(u.latitude,d.latitude,A),w.fov=Sm(u.fov,d.fov,A),e.setState(w,!0)},p=()=>{f(!0)},g=()=>{f(!1)},y=s.rotateSpeed?Math.ceil(Math.abs(d.longitude-u.longitude)/s.rotateSpeed*1e3):o,b=Uk(y,Gi.Linear.None).onUpdate(m).onComplete(p).onDestroy(g);s.rotation===sr.Loop&&b.repeat(1/0).yoyo(!0),n.interruptCallback=(A=!0)=>{b.destroy(),n.interruptCallback=void 0,n.timeoutId&&(clearTimeout(n.timeoutId),n.timeoutId=void 0),f(A)},n.timeoutId=setTimeout(()=>{n.interruptCallback&&n.interruptCallback(!0)},o)})})}};function VA(e,n){return e.x===n.x&&e.y===n.y}function GA(e,n){return Math.abs(e)===1/0&&Math.abs(n)===1/0?!0:Math.abs(e-n)<.001}function sd(e,n){return(n.y-e.y)/(n.x-e.x)}function jA(e,n,t){const i=sd(e[1],e[0]),r=sd(n[1],n[0]);if(isNaN(i)||isNaN(r)||GA(i,r))return!1;if(od(e[0],n))return e[0];if(od(e[1],n))return e[1];if(od(n[0],e))return n[0];if(od(n[1],e))return n[1];if(t&&!Yk(e,n))return!1;const s=e[0],o=n[0];if(Math.abs(i)===1/0)return{x:s.x,y:n[1].y-(n[1].x-s.x)*r};if(Math.abs(r)===1/0)return{x:o.x,y:e[1].y-(e[1].x-o.x)*i};const a=(o.y-s.y+i*s.x-r*o.x)/(i-r),l=i*a-i*s.x+s.y;return{x:a,y:l}}function od(e,n){return VA(e,n[0])||VA(e,n[1])?!0:(n[0].x-e.x)*(e.x-n[1].x)>=0&&(n[0].y-e.y)*(e.y-n[1].y)>=0&&GA(sd(n[0],e),sd(e,n[1]))}function Qk(e){let n=1/0,t=-1/0,i=1/0,r=-1/0;return e.forEach(s=>{n=Math.min(n,s.x),t=Math.max(t,s.x),i=Math.min(i,s.y),r=Math.max(r,s.y)}),{x:(n+t)/2,y:(i+r)/2}}function ad(e,n,t){return(e.x-t.x)*(n.y-t.y)-(n.x-t.x)*(e.y-t.y)}function Yk(e,n){return Math.max(e[0].x,e[1].x)>=Math.min(n[0].x,n[1].x)&&Math.max(n[0].x,n[1].x)>=Math.min(e[0].x,e[1].x)&&Math.max(e[0].y,e[1].y)>=Math.min(n[0].y,n[1].y)&&ad(n[0],e[1],e[0])*ad(e[1],n[1],e[0])>0&&ad(e[0],n[1],n[0])*ad(n[1],e[1],n[0])>0?1:0}function HA(e,n=0){n<=0?requestAnimationFrame(e):requestAnimationFrame(()=>HA(e,n-1))}const Xk=`<style type="text/css">
|
|
3175
3175
|
.PanoRulerPlugin-rule-line {
|
|
3176
3176
|
position: absolute;
|
|
3177
3177
|
transform-origin: left center;
|
|
@@ -3702,7 +3702,7 @@ void main() {
|
|
|
3702
3702
|
gl_FragColor.a = gl_FragColor.a * distanceOpacity();
|
|
3703
3703
|
gl_FragColor.a = gl_FragColor.a * flicker;
|
|
3704
3704
|
}
|
|
3705
|
-
`;class dg{constructor(n,t){v(this,"name","");v(this,"startTagContainer");v(this,"endTagContainer");v(this,"path",[]);v(this,"geometryStyle",{});v(this,"materialStyle",{});v(this,"meshStyle",{});v(this,"group",new C.Group);v(this,"meshWithDepthTest");v(this,"meshWithoutDepthTest");v(this,"five");v(this,"mode");v(this,"_curvePath",null);v(this,"_curvePoints",null);v(this,"_panoGroup",[]);v(this,"skippedPositions",null);v(this,"textureUrl","");v(this,"scale",1);v(this,"width",.5);v(this,"unitLength",.5);v(this,"_visibleFloorIndexes",null);v(this,"visible",null);v(this,"modeVisible",!1);v(this,"floorVisible",!0);v(this,"defaultVisible",!1);v(this,"inWalkAnimation",!1);v(this,"customVisible",null);v(this,"parent");v(this,"plugin");v(this,"textureHasLoaded",!1);v(this,"disposed",!1);v(this,"flowAnime",new ya({progress:0}).to({progress:1}).duration(1500).repeat(1/0));v(this,"cacheLengths",[]);v(this,"heightOffset",0);v(this,"panoMap",{});v(this,"autoDepthTestEffectDistance");v(this,"dispose",()=>{var n,t;this.disposed||(this.disposed=!0,this.parent.hooks.off("show",this.updateVisible),this.parent.hooks.off("hide",this.updateVisible),this.plugin.hooks.off("show",this.updateVisible),this.plugin.hooks.off("hide",this.updateVisible),this.plugin.hooks.off("enable",this.updateVisible),this.plugin.hooks.off("disable",this.updateVisible),this.five.off("modeChange",this.onFiveModeChange),this.five.off("panoArrived",this.onFivePanoArrived),this.five.off("modelShownFloorChange",this.onFiveModelShownFloorChange),this.doHide(),(n=this.startTagContainer)==null||n.plugin.dispose(),(t=this.endTagContainer)==null||t.plugin.dispose())});v(this,"onWalkAnimationStart",()=>{this.inWalkAnimation=!0,this.updateVisible()});v(this,"onWalkAnimationEnd",()=>{this.inWalkAnimation=!1,this.updateVisible()});v(this,"onFiveModeChange",n=>{this.modeVisible=this.mode==="panorama"?Ss(n):Mi(n),this.updateVisible()});v(this,"onFivePanoArrived",n=>{var r,s,o,a,l,c;const t=(o=(s=(r=this.path)==null?void 0:r[0])==null?void 0:s.panoIndexMap)==null?void 0:o[n],i=this.panoMap[t!=null?t:n];if(i===void 0)this.group.children.includes(this.meshWithoutDepthTest)&&this.group.remove(this.meshWithoutDepthTest),this.meshWithDepthTest.material.uniforms.excludeMinV.value=-1,this.meshWithDepthTest.material.uniforms.excludeMaxV.value=-1;else{this.group.children.includes(this.meshWithoutDepthTest)||this.group.add(this.meshWithoutDepthTest),this.meshWithoutDepthTest.visible=!0;const h=this.meshWithDepthTest.geometry.getAttribute("uv"),u=100*((a=this.autoDepthTestEffectDistance)!=null?a:2),d=(l=h.getY((i-u)*2))!=null?l:0,f=(c=h.getY((i+u)*2))!=null?c:h.getY(h.count-1);this.meshWithDepthTest.material.uniforms.excludeMinV.value=d,this.meshWithDepthTest.material.uniforms.excludeMaxV.value=f,this.meshWithoutDepthTest.material.uniforms.includeMinV.value=d,this.meshWithoutDepthTest.material.uniforms.includeMaxV.value=f}this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0});v(this,"onFiveModelShownFloorChange",n=>{this.floorVisible=n===null||this.visibleFloorIndexes===null||this.visibleFloorIndexes.includes(n),this.updateVisible()});v(this,"updateVisible",()=>{const n=(()=>!this.parent.visible||!this.plugin.state.enabled||!this.plugin.state.visible?!1:this.customVisible!==null?this.customVisible:this.inWalkAnimation?!0:this.modeVisible&&this.textureHasLoaded&&this.defaultVisible&&this.floorVisible)();this.visible!==n&&(this.visible=n,n?this.doShow():this.doHide())});v(this,"onFlowAnimeUpdate",n=>{const{progress:t}=n;this.meshWithDepthTest.material.uniforms.vOffset.value=t,this.meshWithoutDepthTest.material.uniforms.vOffset.value=t,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0});v(this,"logError",n=>nw("GuideLineModeItem: ",n));var s,o;this.five=n,this.mode=t.mode,this.plugin=t.plugin,this.parent=t.parent,this.group.name="GuideLineModeItem";const i=new C.BufferGeometry,r=new C.ShaderMaterial({vertexShader:nV,fragmentShader:iV,transparent:!0,uniforms:{map:{value:null},useMapColor:{value:0},mapColor:{value:new C.Color},mapOpacity:{value:1},backgroundColor:{value:new C.Color},backgroundOpacity:{value:0},borderColor:{value:new C.Color},borderOpacity:{value:0},backgroundClip:{value:0},borderWidth:{value:.05},opacity:{value:1},flicker:{value:1},maxV:{value:0},vOffset:{value:0},includeMinV:{value:-1},includeMaxV:{value:-1},excludeMinV:{value:-1},excludeMaxV:{value:-1}}});this.meshWithDepthTest=new C.Mesh(i,r),this.meshWithoutDepthTest=new C.Mesh(i,r.clone()),this.meshWithoutDepthTest.material.depthTest=!1,this.meshWithDepthTest.name="GuideLineModeItemWithDepthTest",this.meshWithoutDepthTest.name="GuideLineModeItemWithoutDepthTest",this.group.add(this.meshWithDepthTest),this.mode==="panorama"&&(this.parent.hooks.on("walkStart",this.onWalkAnimationStart),this.parent.hooks.on("walkEnded",this.onWalkAnimationEnd),this.onFivePanoArrived(this.five.getCurrentState().panoIndex)),this.updateVisible(),this.onFiveModeChange(this.five.getCurrentState().mode),this.onFiveModelShownFloorChange((o=(s=this.five.model)==null?void 0:s.shownFloor)!=null?o:null),this.flowAnime.onUpdate(this.onFlowAnimeUpdate),this.parent.hooks.on("show",this.updateVisible),this.parent.hooks.on("hide",this.updateVisible),this.plugin.hooks.on("show",this.updateVisible),this.plugin.hooks.on("hide",this.updateVisible),this.plugin.hooks.on("enable",this.updateVisible),this.plugin.hooks.on("disable",this.updateVisible),this.plugin.hooks.on("dispose",this.dispose),this.five.on("modeChange",this.onFiveModeChange),this.five.on("panoArrived",this.onFivePanoArrived),this.five.on("modelShownFloorChange",this.onFiveModelShownFloorChange),this.five.needsRender=!0}get panoGroup(){return this._panoGroup}get visibleFloorIndexes(){return this._visibleFloorIndexes}get curvePath(){return this._curvePath}get curvePoints(){return this._curvePoints}setCustomVisible(n){if(this.disposed)return this.logError("disposed");this.customVisible!==n&&(this.customVisible=n,this.updateVisible())}setDefaultVisible(n){if(this.disposed)return this.logError("disposed");this.defaultVisible!==n&&(this.defaultVisible=n,this.updateVisible())}setUnitSize(n,t){if(this.disposed)return this.logError("disposed");this.width=n,this.unitLength=t,this.setGeometryByPath(this.path,{width:n,unit_length:t})}setScale(n){if(this.disposed)return this.logError("disposed");this.scale=n,this.setGeometryByPath(this.path,{scale:n})}setGeometryByPanoGroup(n,t){if(this.disposed)return this.logError("disposed");if(!this.five.work)return this.logError("setPathByPanoGroup: work is not ready");const i=tV(n);if(this._panoGroup=i,(t==null?void 0:t.skipPanoGroup)!==void 0){const s=t.skipPanoGroup?i.map(o=>this.plugin.workUtil.getObserverStandingPosition(o)).filter(wt):null;this.skippedPositions=s}const r=this.getPathFromPanoGroup(i,this.five.work,t);this.path=r,this.setGeometryByPath(r,t)}setGeometryByPath(n,t){var d,f,m,p;if(this.disposed)return this.logError("disposed");const i=(d=t==null?void 0:t.scale)!=null?d:this.scale,r=(f=t==null?void 0:t.width)!=null?f:this.width,s=(m=t==null?void 0:t.unit_length)!=null?m:this.unitLength;this.scale=i,this.width=r,this.unitLength=s;const{geometry:o,maxV:a,curvePath:l,curvePoints:c,panoMap:h,totalLength:u}=yR({path:n,width:r*i,unitLength:s*i,skipPositions:this.skippedPositions,useAutoDepthTest:t.useAutoDepthTest});this.autoDepthTestEffectDistance=(p=t.autoDepthTestEffectDistance)!=null?p:(()=>{const g=u/10;return g>3?3:g<1?1:g})(),this.panoMap=h,this._curvePath=l,this._curvePoints=c,this.meshWithDepthTest.geometry.copy(o),this.onFivePanoArrived(this.five.getCurrentState().panoIndex),this.meshWithDepthTest.material.needsUpdate=!0,this.meshWithDepthTest.material.uniforms.maxV.value=a,this.meshWithoutDepthTest.material.needsUpdate=!0,this.meshWithoutDepthTest.material.uniforms.maxV.value=a,this.five.needsRender=!0,this.path=n,this.geometryStyle=O(O({},this.geometryStyle),t)}setMartial(n){var i,r,s,o,a;if(this.disposed)return this.logError("disposed");this.setDefaultVisible((i=n==null?void 0:n.visible)!=null?i:!1),this.setColor((r=n==null?void 0:n.color)!=null?r:"#ffffff"),this.setOpacity((s=n==null?void 0:n.opacity)!=null?s:.5),this.setTextureUrl((a=(o=n==null?void 0:n.texture)==null?void 0:o.url)!=null?a:"https://vr-image-4.realsee-cdn.cn/release/web/arrow1.ebe7d0ff.png"),(n==null?void 0:n.background_color)!==void 0&&this.setBackgroundColor(n.background_color),(n==null?void 0:n.background_opacity)!==void 0&&this.setBackgroundOpacity(n.background_opacity),(n==null?void 0:n.border_color)!==void 0&&this.setBorderColor(n.border_color),(n==null?void 0:n.border_opacity)!==void 0&&this.setBorderOpacity(n.border_opacity),(n==null?void 0:n.border_width)!==void 0&&this.setBorderWidth(n.border_width),(n==null?void 0:n.background_clip)!==void 0&&this.setBackgroundClip(n.background_clip);const t=O(O({},this.materialStyle),n);this.materialStyle=t}setMeshStyle(n){if(n!=null&&n.translate){const r=new C.Vector3,s=new C.Vector3().fromArray(n.translate);s.y+=this.heightOffset,r.add(s),this.group.position.copy(r),i(this.startTagContainer,s),i(this.endTagContainer,s)}const t=O(O({},this.meshStyle),n);this.meshStyle=t;function i(r,s){if(!(r!=null&&r.tag))return;const o=new C.Vector3().fromArray(r.tag.position);o.add(s);const a=o.toArray();r.plugin.changeTagById(r.tag.id,{position:a})}}setHeightOffset(n){const t=new C.Vector3;this.meshStyle.translate&&t.add(new C.Vector3().fromArray(this.meshStyle.translate)),t.setY(t.y+n),this.group.position.copy(t),this.heightOffset=n,this.five.needsRender=!0}setColor(n){if(this.disposed)return this.logError("disposed");n&&(this.meshWithDepthTest.material.uniforms.mapColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.mapColor.value=new C.Color().set(n)),this.meshWithDepthTest.material.uniforms.useMapColor.value=n?1:0,this.meshWithoutDepthTest.material.uniforms.useMapColor.value=n?1:0,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderColor(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.borderColor.value=new C.Color().set(n),this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.borderOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundClip(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundClip.value=n==="border-box"?0:1,this.meshWithoutDepthTest.material.uniforms.backgroundClip.value=n==="border-box"?0:1,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderWidth(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderWidth.value=n,this.meshWithoutDepthTest.material.uniforms.borderWidth.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundColor(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.backgroundColor.value=new C.Color().set(n),this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.backgroundOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.opacity.value=n,this.meshWithoutDepthTest.material.uniforms.opacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setMapOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.mapOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.mapOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setTextureUrl(n){if(this.disposed)return this.logError("disposed");this.textureUrl=n,qs(n).then(t=>{this.disposed||this.textureUrl===n&&(t.wrapT=C.RepeatWrapping,this.textureHasLoaded=!0,this.meshWithDepthTest.material.uniforms.map.value=t,this.meshWithoutDepthTest.material.uniforms.map.value=t,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.meshWithDepthTest.material.needsUpdate=!0,this.meshWithoutDepthTest.material.needsUpdate=!0,this.five.needsRender=!0,this.updateVisible())})}setVisibleFloorIndexes(n){var t,i;if(this.disposed)return this.logError("disposed");this._visibleFloorIndexes=n,this.onFiveModelShownFloorChange((i=(t=this.five.model)==null?void 0:t.shownFloor)!=null?i:null)}setStartTag(n){this.setTag("start",n)}setEndTag(n){this.setTag("end",n)}flicker(){var n,t,i,r,s,o;if(this.disposed)return this.logError("disposed");Vu([this.group,(i=(t=(n=this.startTagContainer)==null?void 0:n.plugin)==null?void 0:t.tags[0])==null?void 0:i.dom,(o=(s=(r=this.endTagContainer)==null?void 0:r.plugin)==null?void 0:s.tags[0])==null?void 0:o.dom],{loop:6,updateRender:()=>{this.five.needsRender=!0}})}getLengthByPanoGroupIndex(n){return this.disposed?this.logError("disposed"):this.cacheLengths.length!==0?this.cacheLengths[n]:(this.cacheLengths=this.getPanoGroupLengths(),this.cacheLengths[n])}getPanoGroupLengths(){var l;if(!this.curvePoints||!this.curvePath)return[];const n=this.curvePoints.length,t=this.curvePath.getLength(),i=n-1,r=t/i,s=(l=this.curvePath.getLengths(i))!=null?l:[],o=[];let a=0;for(let c=0;c<n;c++){const h=this.curvePoints[c],u=this.plugin.workUtil.getObserverStandingPosition(a);if(!u)break;u.clone().setY(0).distanceTo(h.clone().setY(0))<r&&(o.push(s[c]),a+=1)}return o}setTag(n,t){var l,c;const i=this.curvePath;if(!(t!=null&&t.data))return;const r=n==="start"?(l=this.startTagContainer)!=null?l:(()=>(this.startTagContainer={tag:null,plugin:new _d(this.five,{containerZIndex:1})},this.startTagContainer))():(c=this.endTagContainer)!=null?c:(()=>(this.endTagContainer={tag:null,plugin:new _d(this.five,{containerZIndex:1})},this.endTagContainer))(),o=Ht({},{contentType:"Custom",stickType:"2DPoint",config:{visibleConfig:{visibleFiveMode:["Floorplan","Mapview"],followModelVisibility:!1}},style:{point:{enabled:!1}},data:{}},t);r.tag=o,rV(o)&&(r.tag.element=h=>{var f,m;(f=r.app)==null||f.$destroy();const u=n==="start"?Pe(O({},o.data),{name:this.name,distance:Math.round((m=i.getLength())!=null?m:0),i18n:this.plugin.config.i18n}):o.data,d=new eV({target:h,intro:!0,props:u});return r.app=d,()=>d.$destroy()}),r.plugin.load({tagList:[r.tag]});const a=this.meshStyle.translate;if(a&&o.position){const h=new C.Vector3().fromArray(o.position),u=new C.Vector3().fromArray(a);h.add(u),h.y+=this.heightOffset;const d=h.toArray();r.plugin.changeTagById(r.tag.id,{position:d})}}doShow(){var n,t;this.mode==="model"&&this.flowAnime.play(),this.five.scene.add(this.group),(n=this.startTagContainer)==null||n.plugin.show(),(t=this.endTagContainer)==null||t.plugin.show(),this.five.needsRender=!0}doHide(){var n,t;this.mode==="model"&&this.flowAnime.stop(),this.five.scene.remove(this.group),(n=this.startTagContainer)==null||n.plugin.hide(),(t=this.endTagContainer)==null||t.plugin.hide(),this.five.needsRender=!0}getPathFromPanoGroup(n,t,i){if(n.length<2)return[];const r={},s=n.map((l,c)=>{const h=this.plugin.workUtil.getObserverStandingPosition(l);if(!h)return;const u=n[c-1];if((c===0?999:h.distanceTo(this.plugin.workUtil.getObserverStandingPosition(u)))<.05){let f=u;for(;r[f]!==void 0;)f=r[f];r[l]=f;return}return{position:h,panoIndex:l}}).filter(wt),o=s.map(l=>l.position.toArray()),a=s.map(l=>l.panoIndex);return[Pe(O({type:"CatmullRomCurve3",points:o},i),{panoIndexList:a,panoIndexMap:r})]}}function rV(e){return e.contentType==="Custom"}const sV=Object.freeze(Object.defineProperty({__proto__:null,GuideLineModeItem:dg},Symbol.toStringTag,{value:"Module"})),hM="CruisePlugin",fg=`${hM}`;class uM extends ws{constructor(t,i){super(t,i);v(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1});v(this,"data");v(this,"config");v(this,"pauseDataMap",new Map);v(this,"privateState",{playing:!1,broke:!1,modeChanging:!1});v(this,"GuideLine");v(this,"disposedErrorLog",()=>{console.error(`${fg} is disposed`)});v(this,"disableWarnLog",()=>{console.warn(`${fg} is disabled`)});v(this,"disableErrorLog",()=>{console.error(`${fg} is disabled`)});this.config=i,Object.assign(window,{[`__${hM}_DEBUG__`]:this})}play(t){this.setState({playing:!0},t)}pause(t){this.setState({playing:!1},t)}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.setState({disposed:!0})}setState(t,i){var s;if(this.state.disposed)return this.disposedErrorLog();if(!this.state.enabled&&t.enabled!==!0&&t.disposed!==!0)return this.disableErrorLog();const r=O({},this.state);this.state=Ht({},this.state,t),t.disposed!==void 0&&t.disposed!==r.disposed&&t.disposed&&this.handleDispose(),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible,i==null?void 0:i.userAction),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled,i==null?void 0:i.userAction),t.playing!==void 0&&t.playing!==r.playing&&this.changePlayState(t.playing,i),t.speed!==void 0&&t.speed!==r.speed&&this.changeSpeed(t.speed),Fn(r,this.state,{deep:!0})||this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:(s=i==null?void 0:i.userAction)!=null?s:!0})}clearPauseData(){var t,i;if((t=this.data)!=null&&t.id)return this.pauseDataMap.delete((i=this.data)==null?void 0:i.id)}changePlayState(t,i){this.actionIfStateIsEnabled(()=>{var r;return this.hooks.emit("playStateChange",t?"playing":"pause",{userAction:(r=i==null?void 0:i.userAction)!=null?r:!0})}),t?this.handlePlay(i):this.handlePause(i),this.state.playing=t}handleEnable(t,i=!0){var r,s;t?((r=this.GuideLine)==null||r.enable(),this.hooks.emit("enable",{userAction:i})):((s=this.GuideLine)==null||s.disable(),this.changePlayState(!1,{userAction:i}),this.hooks.emit("disable",{userAction:i})),this.state.enabled=t}handleVisible(t,i=!0){var r,s;t?((r=this.GuideLine)==null||r.show(),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:i}))):((s=this.GuideLine)==null||s.hide(),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:i}))),this.state.visible=t}addInterruptListener(t){const i=()=>{this.privateState.modeChanging||t()},r=s=>{s!=="mouseMove"&&(t(),this.five.off("gesture",r))};return this.five.on("gesture",r),this.five.once("wantsChangeMode",i),()=>{this.five.off("gesture",r),this.five.off("wantsChangeMode",i)}}getSpeededDuration(t){return t/this.state.speed}forceInteruptUpdateCamera(){this.five.updateCamera({},0)}getPauseData(){var t;if((t=this.data)!=null&&t.id)return this.pauseDataMap.get(this.data.id)}setPauseData(){var i;const t=(i=this.data)==null?void 0:i.id;if(t)return this.pauseDataMap.set(t,{fiveState:this.five.getCurrentState(),playedProgress:this.getProgress()})}clear(){this.clearPauseData()}handleDispose(){var t;this.setState({playing:!1}),this.clearPauseData(),this.clear(),(t=this.GuideLine)==null||t.dispose(),this.GuideLine=void 0}actionIfStateIsEnabled(t,i){if(this.state.enabled)return t();i!=null&&i.warnLog&&this.disableWarnLog()}}function pg(e,n,t){var l,c,h;const i=new C.Vector3().fromArray([(l=t.x)!=null?l:0,(c=t.y)!=null?c:0,(h=t.z)!=null?h:0]),r=e.getPointAt(n).clone().add(i),s=e.getTangentAt(n),{longitude:o,latitude:a}=gc(s);return{offset:r.clone(),longitude:o,latitude:a,distance:0}}let mg=class extends uM{constructor(t,i){var o;super(t,i);v(this,"curve");v(this,"baseCurveOffset");v(this,"curveOffset");v(this,"playStartedTime",performance.now());v(this,"duration");v(this,"changeSpeed",(t,i=!0)=>{this.state.speed=t,this.hooks.emit("speedChange",t,{userAction:i})});v(this,"moveToStart",()=>{this.five.setState(Pe(O({},pg(this.curve,0,this.curveOffset)),{mode:"Model"}))});v(this,"playFromStart",()=>{this.clearPauseData(),this.setState({playing:!0})});v(this,"getDuration",()=>this.getSpeededDuration(this.duration));v(this,"getProgress",()=>{var l;const t=this.getPauseData();let i=(l=t==null?void 0:t.playedProgress)!=null?l:0;(i<0||i>=1)&&(i=0);const r=1-i,s=this.getDuration(),a=(performance.now()-this.playStartedTime)/s;return 1-r+a});const r={config:{speedConfig:{moveSpeed:2,moveSpeedUnit:"m/s"}}},s={allowBroke:!0};this.state=Ht({},r,this.state),this.config=Ht({},s,this.config),this.baseCurveOffset=Ht({x:0,y:0,z:0},{y:2},(o=this.config)==null?void 0:o.offset)}load(t,i){var a,l,c,h,u,d,f,m,p;this.handlePause(),this.clear(),this.data=O({id:wn()},t);const r=(()=>{if(this.data.path instanceof C.Curve)return this.data.path.curves[0];{if(this.data.path.length<2)return null;const g=this.data.path.map(Ft);return new C.CatmullRomCurve3(g,void 0,"catmullrom",.5)}})();if(!r)return;if(this.curve=r,this.curveOffset={x:this.baseCurveOffset.x+((l=(a=this.data.offset)==null?void 0:a.x)!=null?l:0),y:this.baseCurveOffset.y+((h=(c=this.data.offset)==null?void 0:c.y)!=null?h:0),z:this.baseCurveOffset.z+((d=(u=this.data.offset)==null?void 0:u.z)!=null?d:0)},!this.curve)throw new Error("curve is not defined");const s=this.curve.getLength(),o=this.state.config.speedConfig.moveSpeedUnit==="m/ms"?1:1e3;if(this.duration=s/(this.state.config.speedConfig.moveSpeed/o),Array.isArray(this.data.path)){const g=this.data.path.map(Ft).map(y=>y.toArray());!this.GuideLine&&(((f=this.config)==null?void 0:f.useGuideLine)!==!1&&t.useGuildLine||(m=this.config)!=null&&m.useGuideLine&&t.useGuildLine!==!1)&&(this.GuideLine=pV(this.five,this.config)),(p=this.GuideLine)==null||p.load({lines:[{id:wn(),path:[{type:"CatmullRomCurve3",points:g}],model_style:{visible:!0}}]})}return i?this.setState(i):(this.setState({playing:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing),this.changeSpeed(this.state.speed)),Promise.resolve()}handlePlay(){return new Promise((t,i)=>te(this,null,function*(){var l;this.hooks.emit("play",{userAction:!0});const r=this.getPauseData();let s=(l=r==null?void 0:r.playedProgress)!=null?l:0;(s<0||s>=1)&&(s=0);const o=pg(this.curve,s,this.curveOffset);if(this.hooks.emit("progressChange",s),this.five.setState(Pe(O({},o),{mode:"Model"})),yield this.five.ready(),this.playStartedTime=performance.now(),this.config.allowBroke){const c=this.addInterruptListener(()=>{this.state.playing&&(this.hooks.emit("broke"),this.handlePause(),c(),i(new Error("broke")))})}const a=()=>{const c=this.getProgress();if(c>=1)this.five.off("renderFrame",a),this.setState({playing:!1},{userAction:!1}),this.hooks.emit("end"),this.hooks.emit("progressChange",1),t("end");else if(this.state.playing===!1)this.five.off("renderFrame",a);else if(c>=0){const h=pg(this.curve,c,this.curveOffset);this.hooks.emit("progressChange",c),this.five.setState(h,!0)}};this.five.on("renderFrame",a)}))}handlePause(t){var i;this.state.playing=!1,this.hooks.emit("pause",{userAction:(i=t==null?void 0:t.userAction)!=null?i:!0}),this.setPauseData()}};function dM(e){const n=Math.abs(Math.cos(e.latitude));return new C.Vector3(-Math.sin(e.longitude)*n,-Math.sin(e.latitude),-Math.cos(e.longitude)*n)}function oV(e,n){const t=dM(e),i=dM(n);return t.angleTo(i)}const aV=e=>te(this,null,function*(){try{e().then(()=>{},()=>{}).catch(()=>{})}catch(n){}});function lV(e){return new Promise(n=>{setTimeout(()=>{n()},e)})}function cV(e){return te(this,null,function*(){return new Promise(n=>{if(e.work){n();return}e.once("loaded",()=>n())})})}class Oc extends uM{constructor(t,i){super(t,i);v(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1,config:{speedConfig:{rotateSpeed:.001,rotateSpeedUnit:"rad/ms",moveSpeed:.002,moveSpeedUnit:"m/ms"}}});v(this,"privateState",{playing:!1,currentPlayQueue:[],currentPlayKeyframe:null,broke:!1,modeChanging:!1});this.config=i,Object.assign(window,{__WalkPlugin_DEBUG__:this})}load(t,i,r){return te(this,null,function*(){var h,u;this.clear();const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,o=yield this.formatData(t);this.data=O({id:o.keyframesId},o),this.hooks.emit("dataChange",o,s);let a=[],l;const c=this.data.keyframes.filter(d=>d.data.panoIndex!==void 0);c.filter((d,f)=>{var m;return d.data.panoIndex!==((m=c[f-1])==null?void 0:m.data.panoIndex)}).map(d=>d.data.panoIndex).forEach(d=>{var m,p;const f=(m=this.workUtil.getObserver(d))==null?void 0:m.floorIndex;if(f!==void 0)if(l===f){const g=a.length-1;a[g]=[...(p=a[g])!=null?p:[],d]}else{l=f;const g=a.length;a[g]=[d]}}),!this.GuideLine&&((h=this.config)==null?void 0:h.useGuideLine)!==!1&&o.useGuildLine!==!1&&(this.GuideLine=vg(this.five,this.config)),(u=this.GuideLine)==null||u.load({routes:a.map(d=>({panoIndexList:d})),config:o.guildPluginOptions}),i?this.setState(i,{userAction:r}):(this.setState({playing:!1},{userAction:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing,{userAction:!1}),this.changeSpeed(this.state.speed)),this.clearPauseData(),console.debug("WORKPLUGIN loaded",o),this.hooks.emit("dataLoaded",o)})}playFrom(t){const{index:i,id:r,userAction:s}=t;this.state.playing&&this.setState({playing:!1},{userAction:s}),this.setState({playing:!0},{userAction:s,playFromIndex:i,playFromId:r})}playFromStart(t){return this.playFrom(Pe(O({},t),{index:0}))}formatData(t){return te(this,null,function*(){this.five.work||(yield cV(this.five));const i=(()=>{const r=t;return typeof r=="object"&&r!==null&&wt(r.version)&&r.data?r.data:r})();if(i.keyframes)return{keyframesId:wn(),keyframes:i.keyframes.map((r,s)=>{var l;const o=i.keyframes[s+1],a=(()=>!o||o.start===void 0||r.end===void 0?0:o.start-r.end)();return Pe(O({id:(l=r.uuid)!=null?l:wn(),moveIndex:s,stay:a,index:s},r),{guildPluginOptions:i.guildPluginOptions})})};if(i.panoIndexList){let r=[];const{moveEffect:s,moveToFirstPanoEffect:o,moveToFirstPanoDuration:a}=i;return this.privateState.moveToFirstPanoEffect=o,this.privateState.moveToFirstPanoDuration=a,i.panoIndexList.forEach((l,c)=>{const h=(()=>{var p,g;const u=i.panoIndexList.slice(c).find(y=>y!==l);if(u===void 0)return;const d=this.workUtil.getObserverPosition(l),f=this.workUtil.getObserverPosition(u);if(!f||!d||((p=this.workUtil.getObserver(l))==null?void 0:p.floorIndex)!==((g=this.workUtil.getObserver(u))==null?void 0:g.floorIndex))return;const m=new C.Vector3().subVectors(f,d);return gc(m.normalize())})();i.moveType===void 0||i.moveType==="justMove"?r.push({moveIndex:c,stay:i.stay,data:O({effect:"Move",panoIndex:l,moveEffect:s},h!=null?h:{})}):i.moveType==="moveAndRotate"&&(r.push({moveIndex:c,stay:i.stay,data:{effect:"Move",panoIndex:l,moveEffect:s}}),h&&r.push({moveIndex:c,stay:i.stay,data:O({effect:"Rotate",panoIndex:l},h)}))}),{keyframesId:wn(),keyframes:r.map((l,c)=>O({id:wn(),index:c},l)),guildPluginOptions:i.guildPluginOptions,useGuildLine:i.useGuildLine}}else throw new Error("format error: data no keyframes or no panoIndexList")})}handlePlay(t){return te(this,null,function*(){var f;const{data:i,state:r,privateState:s,hooks:o}=this;if(s.playing||!(i!=null&&i.keyframes)||(i==null?void 0:i.keyframes.length)===0)return;const a=wn();s.playId=a,s.playing=!0,s.broke=!1;const l=i.keyframes,c=this.getPauseData();(t==null?void 0:t.notEmitEvent)!==!0&&o.emit("play",{userAction:(f=t==null?void 0:t.userAction)!=null?f:!0});let h=!1;const d=yield(()=>te(this,null,function*(){var m,p;if((t==null?void 0:t.playFromIndex)!==void 0)return t.playFromIndex;if((t==null?void 0:t.playFromId)!==void 0)return(m=this.data)==null?void 0:m.keyframes.findIndex(g=>g.id===t.playFromId);if(c!=null&&c.id){const g=(p=this.data)==null?void 0:p.keyframes.find(y=>y.id===c.id);if(c!=null&&c.fiveState&&(yield this.move(c.fiveState,{moveEffect:s.moveToFirstPanoEffect,duration:s.moveToFirstPanoDuration})),g){if(g.data.effect==="Move")return g.index;if(g.data.effect==="Rotate"){const y=c.duration!==void 0?c.duration*(1-c.playedProgress):void 0;return yield this.playKeyframe(g,{duration:y}),h=!0,g.index+1}}}}))();this.clearPauseData();for(const m of l){if(s.broke||!r.playing||!s.playing||a!==s.playId)return;if(!(d!==void 0&&m.index<d))try{o.emit("playIndexChange",m.index,m),yield this.playKeyframe(m,{moveEffect:h===!1?s.moveToFirstPanoEffect:void 0,duration:h===!1&&typeof s.moveToFirstPanoDuration=="number"?s.moveToFirstPanoDuration:void 0}),m.stay&&(yield lV(m.stay)),h===!1&&(h=!0)}catch(p){return console.error(p),Promise.resolve("broke")}}r.playing&&a===s.playId&&(this.setState({playing:!1},{userAction:!1}),o.emit("end"),this.clearPauseData())})}handlePause(t){var o;const{state:i,privateState:r,hooks:s}=this;i.playing=!1,r.playing!==!1&&(r.playing=!1,(t==null?void 0:t.userAction)!==!1&&this.setPauseData(),r.broke||this.forceInteruptUpdateCamera(),(t==null?void 0:t.notEmitEvent)!==!0&&s.emit("pause",{userAction:(o=t==null?void 0:t.userAction)!=null?o:!0}))}changeSpeed(t,i=!0){const{state:r,privateState:s,hooks:o}=this,{currentPlayKeyframe:a}=s;if(o.emit("speedChange",t,{userAction:i}),r.playing&&a)try{const l=a.originDuration!==void 0?a.originDuration*(1-this.getProgress()):void 0,c=this.playKeyframe(a.keyframe,{duration:l});s.currentPlayQueue.push(c)}catch(l){}}getProgress(){return this.five.controller.cameraMotion.progress}setPauseData(){var t,i,r;if((t=this.data)!=null&&t.id)return this.pauseDataMap.set(this.data.id,{id:(i=this.privateState.currentPlayKeyframe)==null?void 0:i.keyframe.id,fiveState:this.five.getCurrentState(),duration:(r=this.privateState.currentPlayKeyframe)==null?void 0:r.originDuration,playedProgress:this.getProgress()})}clear(){this.clearPauseData(),this.privateState.currentPlayKeyframe=null}playKeyframe(t,i){return te(this,null,function*(){var s;const{privateState:r}=this;return((s=this.privateState.currentPlayKeyframe)==null?void 0:s.keyframe.id)!==t.id&&(this.privateState.currentPlayKeyframe={keyframe:t}),r.currentPlayQueue.push(this.getPlayPromise(t,i)),this.actionPromiseQueue()})}getPlayPromise(r){return te(this,arguments,function*(t,i={}){var o;const s=t.data;if(i.duration=(o=i.duration)!=null?o:t.start!==void 0&&t.end!==void 0?t.end-t.start:void 0,!!s)return new Promise((a,l)=>{let c=!1;this.addInterruptListener(()=>{if(!c)return this.hooks.emit("broke"),this.privateState.broke=!0,this.setState({playing:!1}),c=!0,l(new Error("play is interupted"))});try{if(c)return;const h=()=>{a(),c=!0};switch(s.effect){case"Move":this.move(s,i).then(h);break;case"Rotate":this.rotate(s,i).then(h);break;default:this.rotate(s,i).then(h)}}catch(h){}})})}actionPromiseQueue(){return te(this,null,function*(){const{privateState:t}=this;return new Promise((i,r)=>{if(t.currentPlayQueue.length===0){i();return}const s=t.currentPlayQueue.shift();if(!s){i();return}s.then(i,r)}).then(()=>t.currentPlayQueue.length===0?Promise.resolve():this.actionPromiseQueue())})}move(t,i){return te(this,null,function*(){if(t.mode&&t.mode!==this.five.currentMode)yield this.changeMode(t);else if(t.panoIndex!==this.five.panoIndex)yield this.changePano(t,i);else return Promise.resolve()})}rotate(t,i){return te(this,null,function*(){if(t.mode&&t.mode!==this.five.currentMode)yield this.changeMode({mode:t.mode,panoIndex:t.panoIndex});else if(t.panoIndex&&t.panoIndex!==this.five.panoIndex)return yield this.changePano(t,i);yield this.updateCamera(t,i)})}updateCamera(r){return te(this,arguments,function*(t,i={}){const{five:s,privateState:o,state:a}=this,l=(()=>{var f,m;const u=(f=a.config)==null?void 0:f.speedConfig,d=(m=t.rotateSpeed)!=null?m:u==null?void 0:u.rotateSpeed;if((u==null?void 0:u.rotateSpeedUnit)===void 0)return d;if(d!==void 0)return u.rotateSpeedUnit==="rad/ms"?d:d/1e3})(),c=(()=>{if(i.duration)return i.duration;if(l){const u=this.five.getCurrentState();return oV(u,t)/l}return 800})();o.currentPlayKeyframe&&(o.currentPlayKeyframe.originDuration=c);const h=this.getSpeededDuration(c);return new Promise(u=>{aV(()=>s.updateCamera(t,h)),setTimeout(()=>u(),h)})})}changePano(t,i){return te(this,null,function*(){const{five:r,privateState:s,state:o}=this;if(typeof t.panoIndex!="number"||t.panoIndex===r.panoIndex)return;const a=r.getCurrentState().mode!=="Panorama";a&&(this.privateState.modeChanging=!0);const l=(()=>{var d,f;const h=(d=o.config)==null?void 0:d.speedConfig,u=(f=t.moveSpeed)!=null?f:h==null?void 0:h.moveSpeed;if((h==null?void 0:h.moveSpeedUnit)===void 0)return u;if(u!==void 0)return h.moveSpeedUnit==="m/ms"?u:u/1e3})(),c=(()=>{if(i!=null&&i.duration)return i.duration;if(l&&typeof r.panoIndex=="number"&&typeof t.panoIndex=="number"){const h=this.workUtil.getObserverPosition(r.panoIndex),u=this.workUtil.getObserverPosition(t.panoIndex);return h&&u?h.distanceTo(u)/l:800}return 800})();s.currentPlayKeyframe&&(s.currentPlayKeyframe.originDuration=c),yield new Promise(h=>{var u,d,f;this.fiveUtil.moveToPano(t.panoIndex,{latitude:t.latitude,longitude:t.longitude,fov:t.fov,duration:this.getSpeededDuration(c),effect:(f=(d=i==null?void 0:i.moveEffect)!=null?d:(u=this.state.config)==null?void 0:u.moveEffect)!=null?f:t.moveEffect,moveCancelCallback:()=>h(),moveEndCallback:()=>h()}),a&&r.once("panoArrived",()=>h())}),a&&(this.privateState.modeChanging=!1)})}changeMode(t,i){return te(this,null,function*(){t.mode&&t.mode!==this.five.currentMode&&(this.privateState.modeChanging=!0,yield this.five.changeMode(t.mode,t,i),this.privateState.modeChanging=!1)})}}class fM{constructor(n){v(this,"id");v(this,"renderID");v(this,"isGuideLine",!0);v(this,"panoramaItem");v(this,"modelItem");v(this,"hooks",new Pn);v(this,"_visible",!0);v(this,"plugin");v(this,"five");v(this,"logError",n=>nw("GuideLineItem: ",n));this.id=n.id,this.five=n.five,this.plugin=n.plugin,this.panoramaItem=new dg(this.five,{mode:"panorama",plugin:this.plugin,parent:this}),this.modelItem=new dg(this.five,{mode:"model",plugin:this.plugin,parent:this})}get visible(){return this._visible}setData(n){this.setDataByMode("panorama",n),this.setDataByMode("model",n)}setDataByMode(n,t){var u;const i=n==="panorama"?this.panoramaItem:this.modelItem,r=n==="panorama"?t.panorama_style:t.model_style,s=n==="panorama"&&t.panorama_style.use_auto_depthtest,o=t.panorama_style.auto_depth_test_effect_distance,a=t.path,l=r,c=r,h=r;if(t.pano_group){const d=n==="panorama"&&t.panorama_style.skip_group===!0;i.setGeometryByPanoGroup(t.pano_group,Pe(O({skipPanoGroup:d},l),{useAutoDepthTest:s,autoDepthTestEffectDistance:o}))}else t.path&&i.setGeometryByPath(a,Pe(O({},l),{useAutoDepthTest:s,autoDepthTestEffectDistance:o}));i.name=t.name,i.setMeshStyle(h),i.setMartial(c),i.setVisibleFloorIndexes((u=t.visible_floor_indexes)!=null?u:null),i.setStartTag(r==null?void 0:r.start_tag),i.setEndTag(r==null?void 0:r.end_tag)}show(){this._visible=!0,this.hooks.emit("show",{userAction:!0})}hide(){this._visible=!1,this.hooks.emit("hide",{userAction:!0})}dispose(){this.panoramaItem.dispose(),this.modelItem.dispose()}walk(n){return te(this,null,function*(){if(this.hooks.emit("walkStart",{userAction:!0}),this.panoramaItem.panoGroup.length){const t=O({panoIndexList:this.panoramaItem.panoGroup},n),[i]=yield Zs(uV(this.five,t));if(i)return this.logError(i.message)}else{const t={path:this.panoramaItem.curvePath},[i]=yield Zs(hV(this.five,t));if(i)return this.logError(i.message)}this.hooks.emit("walkEnded",{userAction:!0})})}}function hV(e,n){return te(this,null,function*(){const t=new mg(e);yield t.load(n),t.playFromStart()})}function uV(e,n){return te(this,null,function*(){if(n.panoIndexList.length===0)return;const t=e.getCurrentState();t.mode!=="Panorama"&&(yield Pm(e,["Panorama",{longitude:t.longitude,latitude:0,panoIndex:n.panoIndexList[0]}]));const i=new Oc(e);yield i.load(n),yield new Promise((r,s)=>{const o=e.getCurrentState();let a=n.panoIndexList.slice();o.panoIndex===a[0]&&c(o.panoIndex),i.playFromStart();function l(f){if(f!=="Panorama")return u(new Error("mode not match"))}function c(f){const m=a[0];if(a=a.slice(1),f!==m)return u(new Error("panoIndex not match, wanted: "+m+", got: "+f));if(a.length===0)return d()}function h(){e.off("modeChange",l),e.off("panoArrived",c)}function u(f){h(),s(f)}function d(){h(),r()}e.on("modeChange",l),e.on("panoArrived",c)})})}const dV=Object.freeze(Object.defineProperty({__proto__:null,GuideLineItem:fM},Symbol.toStringTag,{value:"Module"})),gg="GuideLinePlugin",pM=`${gg}`;let fV=class extends Or{constructor(t,i){super(t,i);v(this,"name",gg);v(this,"cruisePlugin");v(this,"itemMap",new Map);v(this,"state",{visible:!1,enabled:!0});v(this,"data");v(this,"heightOffset",0);v(this,"_config");v(this,"_disposed",!1);v(this,"disposedErrorLog",()=>{console.error(`${pM} is disposed`)});this._config=i!=null?i:{},this.cruisePlugin=new Oc(t),Object.assign(window,{[`__${gg}_DEBUG__`]:this})}get config(){return this._config}get disposed(){return this._disposed}load(t,i,r=!0){return te(this,null,function*(){var f,m,p,g,y,b,A,w;const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,o=yield this.formatData(t);this.hooks.emit("dataChange",o,s),this.data=o;const a=o.config,c={panorama_style:{visible:!!(!o.lines&&o.routes),unit_length:(f=a==null?void 0:a.unitHeight)!=null?f:.4,width:(m=a==null?void 0:a.unitWidth)!=null?m:.6,texture:{url:(p=a==null?void 0:a.arrowTextureUrl)!=null?p:this.staticPrefix+"/release/web/arrow-white.5c2c79a5.png"},use_auto_depthtest:(g=this.config.useAutoDepthTest)!=null?g:!1,auto_depth_test_effect_distance:this.config.autoDepthTestEffectDistance}},h=(b=(y=o.routes)==null?void 0:y.map(x=>{var M;return Ht({},c,{id:(M=x.id)!=null?M:wn(),pano_group:x.panoIndexList})}))!=null?b:[],u=(w=(A=o.lines)==null?void 0:A.map(x=>Ht({},c,x)))!=null?w:[],d=[...h,...u];yield Ca(this.five),this.clear(),d.forEach(x=>{this.addGuideLineItem(x)}),this.updateTagsEnable(),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),i&&this.setState(i,{userAction:r}),this.hooks.emit("dataLoaded",o),console.debug(`${pM} loaded`,o)})}formatData(t){return te(this,null,function*(){return this.getDataWithoutVersion(t)})}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.disposed||(this.clear(),this.hooks.emit("dispose"))}setState(t,i){var s;if(this.disposed)return this.disposedErrorLog();const r=O({},this.state);this.state=O(O({},this.state),t),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible,i==null?void 0:i.userAction),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled,i==null?void 0:i.userAction),Fn(r,this.state,{deep:!0})||(this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:(s=i==null?void 0:i.userAction)!=null?s:!0}),this.five.needsRender=!0)}addGuideLineItem(t){const i=t.render_id||t.id,r=this.itemMap.get(i);r&&this.removeGuideLineItem(r);const s=new fM({five:this.five,id:i,plugin:this});return this.itemMap.set(i,s),t&&s.setData(t),this.heightOffset+=1e-4,s.modelItem.setHeightOffset(this.heightOffset),s.panoramaItem.setHeightOffset(this.heightOffset),s}getGuideLineItemByID(t){return this.itemMap.get(t)}removeGuideLineItem(t){this.itemMap.delete(t.id),t.panoramaItem.dispose(),t.modelItem.dispose()}updateTagsEnable(){const t=[];function i(o){return Array.isArray(o)&&o.every(a=>typeof a=="number")}function r(o,a){return new C.Vector3().fromArray(o).distanceTo(new C.Vector3().fromArray(a))<.01}function s(o){var l;const a=(l=o==null?void 0:o.tag)==null?void 0:l.position;return i(a)?t.every(c=>{var h;return i((h=c.tag)==null?void 0:h.position)?!r(a,c.tag.position):!0}):!1}this.itemMap.forEach(o=>{const a=o.modelItem.startTagContainer,l=o.modelItem.endTagContainer,c=s(a);c&&t.push(a),a==null||a.plugin.setState({enabled:c},{});const h=s(l);h&&t.push(l),l==null||l.plugin.setState({enabled:h},{})})}clear(){this.heightOffset=0,this.itemMap.forEach(t=>{this.removeGuideLineItem(t)})}handleEnable(t,i=!0){this.hooks.emit(t?"enable":"disable",{userAction:i})}handleVisible(t,i=!0){this.state.enabled&&this.hooks.emit(t?"show":"hide",{userAction:i})}getDataWithoutVersion(t){return typeof t=="object"&&t!==null&&t.data?t.data:t}};const vg=(e,n)=>new fV(e,n),pV=vg,mV=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),gV=(e,n)=>new Oc(e,n),vV=(e,n)=>new mg(e,n);function mM(e,n,t){if(t){const r=new C.Vector3().subVectors(e.position,t).applyQuaternion(e.quaternion.clone().inverse()).applyQuaternion(n).add(t);e.position.copy(r)}e.quaternion.copy(n)}class Rc extends ei{constructor(t,i){var r,s;super();v(this,"originObject3D");v(this,"onRender");v(this,"positionFrom");this.originObject3D=t,this.onRender=(r=i==null?void 0:i.onRender)!=null?r:()=>{},this.positionFrom=(s=i==null?void 0:i.positionFrom)!=null?s:"objectPosition"}get helperObject(){return this}render(){this.onRender()}enable(){this.parent.children.includes(this)||this.parent.add(this)}disable(){this.removeFromParent()}show(){this.visible=!0,this.render()}hide(){this.visible=!1,this.render()}raycasterIntersectObject(t,i=[]){return t.intersectObject(this,!0,i)}initialPosition(t){var i,r;this.positionFrom==="objectPosition"?this.position.copy(this.originObject3D.position):this.positionFrom==="boundingBox"?this.position.copy((i=va(this.originObject3D))==null?void 0:i.getCenter(new C.Vector3)):this.positionFrom==="boundingSphere"?this.position.copy((r=ub(this.originObject3D))==null?void 0:r.center):this.positionFrom instanceof ee.Vector3?this.position.copy(this.positionFrom):this.positionFrom instanceof Function&&this.position.copy(this.positionFrom(this.originObject3D)),t&&this.position.add(t)}setScaleByCamera(t){}initQuaternion(){this.quaternion.copy(this.originObject3D.quaternion)}applyHelperScaleMatrix4(t,i){this.scale.applyMatrix4(t)}setHelperQuaternion(t,i){mM(this,t,i)}applyHelperQuaternion(t,i){if(i){const r=new ee.Vector3().subVectors(this.position,i).applyQuaternion(t).add(i);this.position.copy(r)}this.applyQuaternion(t)}dispose(){this.removeFromParent()}}class yV extends Rc{}class bV extends Rc{}class AV extends Rc{}class wV extends Rc{}class xV extends Rc{}class MV extends C.Group{constructor(t){super();v(this,"direction");this.direction=t||"x"}}class gM extends C.Mesh{constructor(t,i,r){super(t,i);v(this,"direction");this.direction=r||"x"}}function CV(e,n){const{offsetWidth:t,offsetHeight:i}=n,{top:r,left:s}=n.getBoundingClientRect();return Object.assign(new C.Vector2,{x:(e.x-s)/t*2-1,y:-(e.y-r)/i*2+1})}function Sd(e,n,t){if(!n||!t||!e)return;const i=CV(n,t);if(Math.abs(i.x)===1||Math.abs(i.y)===1)return;const r=new C.Raycaster;return r.setFromCamera(i,e),r.params.Points.threshold=.1,r}function PV(e,n){return!(Math.abs(e.x-n.x)>1e-5||Math.abs(e.y-n.y)>1e-5||Math.abs(e.z-n.z)>1e-5)}class yg extends MV{constructor(t){var h;super(t.direction);v(this,"line");v(this,"arrow");v(this,"lineHeight",.4);v(this,"arrowHeight",.1);this.name="ArrowGroup";const i=new C.Color((h=t.color)!=null?h:16214315),r=new C.MeshBasicMaterial({color:i,depthTest:!1,depthWrite:!1,opacity:1,transparent:!0,side:C.DoubleSide});this.renderOrder=50;const s=new C.ConeGeometry(.04,.1,32),o=new gM(s,r.clone(),t.direction);o.name=`arrow-${t.direction}`,this.arrow=o;const a=.004,l=new C.CylinderGeometry(a,a,.4,32),c=new gM(l,r.clone(),t.direction);c.name=`line-${t.direction}`,this.line=c,this.formatArrow(),this.formatLine(),this.add(this.arrow,this.line)}formatArrow(){this.arrow.geometry.translate(0,this.lineHeight+this.arrowHeight/2,0),this.direction==="x"?(this.arrow.geometry.rotateX(Math.PI/2),this.arrow.geometry.rotateY(Math.PI/2)):this.direction==="z"&&this.arrow.geometry.rotateX(Math.PI/2)}formatLine(){this.line.geometry.translate(0,this.lineHeight/2,0),this.direction==="x"?(this.line.geometry.rotateX(Math.PI/2),this.line.geometry.rotateY(Math.PI/2)):this.direction==="z"&&this.line.geometry.rotateX(Math.PI/2)}}const bg={X:15618642,Y:4765519,Z:4227839};class Ja{static get X(){return new C.Color(bg.X).convertSRGBToLinear().clone()}static get Y(){return new C.Color(bg.Y).convertSRGBToLinear().clone()}static get Z(){return new C.Color(bg.Z).convertSRGBToLinear().clone()}}function Ag(e,n){const r=e.position.distanceTo(n),s=e.fov,o=r/3,a=s/90;return o*a}class EV extends yV{constructor(t,i){super(t,i);v(this,"xArrow");v(this,"yArrow");v(this,"zArrow");i.xArrowEnable!==!1&&(this.xArrow=new yg({direction:"x",color:Ja.X})),i.yArrowEnable!==!1&&(this.yArrow=new yg({direction:"y",color:Ja.Y})),i.zArrowEnable!==!1&&(this.zArrow=new yg({direction:"z",color:Ja.Z})),this.add(...[this.xArrow,this.yArrow,this.zArrow].filter(Boolean))}show(){super.show(),this.xArrow&&(this.xArrow.visible=!0),this.yArrow&&(this.yArrow.visible=!0),this.zArrow&&(this.zArrow.visible=!0)}setScaleByCamera(t){this.scale.setScalar(Ag(t,this.position))}showDraggingHelper(t){this.xArrow&&(this.xArrow.visible=t.includes("x")),this.yArrow&&(this.yArrow.visible=t.includes("y")),this.zArrow&&(this.zArrow.visible=t.includes("z"))}dispose(){this.remove(...[this.xArrow,this.yArrow,this.zArrow].filter(Boolean)),super.dispose()}}function ao(e,n){return _V(document.createElement(n!=null?n:"div"),e)}function _V(e,n){if(!n)return e;for(const t in n)t&&n[t]&&(e.style[t]=n[t]);return e}function SV(e){const n=ao(O({position:"absolute",display:"block",borderRadius:"4px",paddingTop:"1px",paddingBottom:"1px",paddingLeft:"4px",paddingRight:"4px",pointerEvents:"none",userSelect:"none",zIndex:"99999",backgroundColor:"rgba(0,0,0,0.7)",fontSize:"12px",color:"#fff",letterSpacing:"0",lineHeight:"18px"},e)),t=()=>{n.style.display!=="block"&&n.style.top&&n.style.left&&(n.style.display="block")};return{element:n,show:t,hide:()=>{n.style.display="none",n.style.top="",n.style.left=""},setLeftTop:(s,o)=>{n.style.left=s,n.style.top=o,t()}}}class IV extends AV{constructor(t,i){super(t,i);v(this,"xCircle");v(this,"yCircle");v(this,"zCircle");v(this,"children",[]);v(this,"angleTips");v(this,"container");(i==null?void 0:i.yzCircleEnable)!==!1&&(this.xCircle=new wg({direction:"x",color:Ja.X})),(i==null?void 0:i.xzCircleEnable)!==!1&&(this.yCircle=new wg({direction:"y",color:Ja.Y})),(i==null?void 0:i.xyCircleEnable)!==!1&&(this.zCircle=new wg({direction:"z",color:Ja.Z})),i!=null&&i.container&&(i==null?void 0:i.angleTipsEnable)!==!1&&(this.container=i==null?void 0:i.container,this.angleTips=SV({display:"none"}),this.container.appendChild(this.angleTips.element)),this.add(...[this.xCircle,this.yCircle,this.zCircle].filter(Boolean)),this.show()}hide(){this.children.forEach(t=>t.hide())}show(){var t;this.children.forEach(i=>i.showCircle()),(t=this.angleTips)==null||t.hide()}setScaleByCamera(t){this.scale.setScalar(Ag(t,this.position))}showDraggingHelper(t){var i;this.hide(),this.children.filter(r=>t.includes(r.direction)).forEach(r=>r.showRing()),(i=this.angleTips)==null||i.show()}dispose(){var t,i;this.removeFromParent(),(i=(t=this.angleTips)==null?void 0:t.element)==null||i.remove()}}class wg extends C.Group{constructor(t){super();v(this,"direction");v(this,"circle");v(this,"ring");v(this,"angleSector");this.direction=t.direction,this.circle=new TV(t),this.ring=new DV(t),this.angleSector=new LV(t),this.add(this.circle,this.ring,this.angleSector),this.direction==="y"?this.rotateX(Math.PI/2):this.direction==="x"&&this.rotateY(-Math.PI/2)}showCircle(){this.add(this.circle),this.remove(this.ring,this.angleSector)}showRing(){this.add(this.ring,this.angleSector),this.remove(this.circle)}hide(){this.remove(this.ring,this.angleSector,this.circle)}}let TV=class extends C.Mesh{constructor(t){var i;super();v(this,"direction");v(this,"gapAngle",.02);v(this,"geometry",new C.RingGeometry(.25,.3,20,8,this.gapAngle,Math.PI/2-this.gapAngle*2));this.material=new C.MeshBasicMaterial({opacity:.6,color:(i=t.color)!=null?i:16777215,transparent:!0,side:C.DoubleSide,depthTest:!1,depthWrite:!1}),this.renderOrder=50,this.direction=t.direction,this.geometry.name=`RotateHelperCircleGeometry-${this.direction}`}};class DV extends C.Group{constructor(t){super();v(this,"direction");this.direction=t.direction;const i=.015,r=new Array(8).fill(null).map((s,o)=>{const a=new C.RingGeometry(.25,.3,20,8,Math.PI/4*o+i,Math.PI/4-i*2),l=new C.MeshBasicMaterial({opacity:1,color:16777215,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide});this.renderOrder=50;const c=new C.Mesh(a,l);return c.name=`AxesDashedRing-${this.direction}-${o}`,c});this.add(...r)}}class LV extends C.Mesh{constructor(t){var r;super();v(this,"direction");v(this,"baseAxes");v(this,"angleDirection");switch(t.direction){case"x":this.baseAxes=new C.Vector3(0,0,1);break;case"y":this.baseAxes=new C.Vector3(1,0,0);break;case"z":this.baseAxes=new C.Vector3(1,0,0);break}const i=.3+5e-4;this.geometry=new C.CircleGeometry(i,48,0,1e-4),this.material=new C.MeshBasicMaterial({opacity:.4,color:(r=t.color)!=null?r:16777215,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide}),this.renderOrder=50,this.direction=t.direction,this.angleDirection=this.direction==="z"?1:-1}}function kV(){const e=ao({width:"100%",height:"100%",left:"0",top:"0",position:"absolute",pointerEvents:"none"}),n=ao({boxSizing:"border-box",width:"100%",height:"100%",left:"0",top:"0",position:"relative",display:"flex",alignItems:"center",justifyContent:"center"}),t=ao({boxSizing:"border-box",width:"100%",height:"100%",left:"0",top:"0",position:"absolute",border:"1px solid rgba(255,255,255,0.4)"});e.appendChild(n),n.appendChild(t);const i="-4px",r={direction:"nesw",element:Cs({cursor:"nesw-resize",left:i,bottom:i})},s={direction:"ns",element:Cs({cursor:"ns-resize",bottom:i})},o={direction:"nwse",element:Cs({cursor:"nwse-resize",right:i,bottom:i})},a={direction:"ew",element:Cs({cursor:"ew-resize",right:i})},l={direction:"nesw",element:Cs({cursor:"nesw-resize",right:i,top:i})},c={direction:"ns",element:Cs({cursor:"ns-resize",top:i})},h={direction:"nwse",element:Cs({cursor:"nwse-resize",left:i,top:i})},u={direction:"ew",element:Cs({cursor:"ew-resize",left:i})};return new Array(s,a,c,u,r,o,l,h).forEach(f=>n.appendChild(f.element)),{container:e,squares:[r,s,o,a,l,c,h,u]}}function Cs(e){const n=ao(O({background:"#FFFFFF",width:"9px",height:"9px",position:"absolute",pointerEvents:"none"},e)),t=ao({width:"15px",height:"15px",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",pointerEvents:"none"}),i=ao({width:"15px",height:"15px",cursor:e==null?void 0:e.cursor,pointerEvents:"auto",background:"transparent"});return i.draggable=!0,t.appendChild(i),n.appendChild(t),n}class OV extends xV{constructor(t,i,r,s){super(t);v(this,"points",[]);v(this,"cornerPositions",[]);v(this,"css3DInstance");v(this,"plane");v(this,"css3DRenderer",new Ma);v(this,"camera");v(this,"scene");v(this,"container");v(this,"enabled",!1);this.camera=r,this.scene=s,this.container=i,this.initRectangleScaleHelper()}get helperObject(){var t;if(!((t=this.css3DInstance)!=null&&t.css3DObject))throw new Error("css3DInstance is not initialized");return this.css3DInstance.css3DObject}applyMatrix4(t){var i;super.applyMatrix4(t),this.helperObject.applyMatrix4(t),(i=this.plane)==null||i.applyMatrix4(t),this.cornerPositions.forEach(r=>r.applyMatrix4(t))}showDraggingHelper(){}applyHelperScaleMatrix4(t,i){var r;(r=this.plane)==null||r.scale.applyMatrix4(t),this.helperObject.applyScaleMatrix4(t)}updatePoints(){const t=this.calculatePointPosition(this.cornerPositions);this.points.forEach((i,r)=>{i.position.copy(t[r])})}applyHelperQuaternion(t,i){var s;const r=(s=this.css3DInstance)==null?void 0:s.css3DObject;if(r){const o=new C.Vector3().subVectors(r.position,i).applyQuaternion(t).add(i);r.position.copy(o),r.applyQuaternion(t)}if(this.plane){const o=new C.Vector3().subVectors(this.plane.position,i).applyQuaternion(t).add(i);this.plane.position.copy(o),this.plane.applyQuaternion(t)}this.cornerPositions.forEach(o=>{const a=new C.Vector3().subVectors(o,i).applyQuaternion(t).add(i);o.copy(a)})}enable(){var t;this.enabled||(this.enabled=!0,(t=this.css3DInstance)==null||t.enable(),this.plane&&this.scene.add(this.plane))}disable(){var t;this.enabled&&(this.enabled=!1,(t=this.css3DInstance)==null||t.disable(),this.plane&&this.scene.remove(this.plane))}show(){var t;(t=this.css3DInstance)==null||t.show(),this.plane&&(this.plane.visible=!0)}hide(){var t;(t=this.css3DInstance)==null||t.hide(),this.plane&&(this.plane.visible=!1)}dispose(){this.disable(),this.css3DRenderer.dispose()}initRectangleScaleHelper(){var a,l;const t=this.getCornerPositions();if(!t)return;this.cornerPositions=t;const i=this.css3DRenderer.create3DElement(this.camera,t,{ratio:.003});if(!i)return;this.css3DInstance=i,i.appendToElement(this.container);const r=i.css3DObject.container,{container:s,squares:o}=kV();this.points=o.map((c,h)=>({direction:c.direction,point:c.element,position:this.calculatePointPosition(t)[h]})),r.insertBefore(s,(a=r.children[0])!=null?a:null),this.helperObject.position.copy(this.originObject3D.position),(l=this.plane)==null||l.position.copy(this.originObject3D.position)}getCornerPositions(){const{originObject3D:t}=this;if(t.isCSS3DObjectPlus)return t.cornerPoints;console.error("当前物体暂时不支持 ScaleHelper")}calculatePointPosition(t){return[t[0].clone(),t[0].clone().add(t[1]).divideScalar(2),t[1].clone(),t[1].clone().add(t[2]).divideScalar(2),t[2].clone(),t[2].clone().add(t[3]).divideScalar(2),t[3].clone(),t[3].clone().add(t[0]).divideScalar(2)]}}class RV extends bV{constructor(t){super(t);v(this,"box");v(this,"outline");v(this,"originObject");v(this,"positionAttribute");this.originObject=t,this.positionAttribute=new C.BufferAttribute(new Float32Array(8*3),3),this.box=this.createBox(),this.outline=this.createOutline(),this.add(this.box,this.outline),this.update()}raycasterIntersectObject(t,i){return t.intersectObject(this,!1,i)}raycast(t,i){this.box.raycast(t,i)}update(){const t=va(this.originObject);if(!t)return;const{min:i,max:r}=t;this.positionAttribute.setXYZ(0,r.x,r.y,r.z),this.positionAttribute.setXYZ(1,i.x,r.y,r.z),this.positionAttribute.setXYZ(2,i.x,i.y,r.z),this.positionAttribute.setXYZ(3,r.x,i.y,r.z),this.positionAttribute.setXYZ(4,r.x,r.y,i.z),this.positionAttribute.setXYZ(5,i.x,r.y,i.z),this.positionAttribute.setXYZ(6,i.x,i.y,i.z),this.positionAttribute.setXYZ(7,r.x,i.y,i.z),this.positionAttribute.needsUpdate=!0}createOutline(){const t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new C.BufferGeometry;i.setIndex(new C.BufferAttribute(t,1)),i.setAttribute("position",this.positionAttribute);const r=new C.LineBasicMaterial({color:64767,linewidth:1,opacity:1,toneMapped:!1}),s=new C.LineSegments(i,r);return s.matrixAutoUpdate=!1,s}createBox(){const t=new Uint16Array([0,1,2,0,2,3,0,3,7,0,7,4,0,4,5,0,5,1,6,1,5,6,2,1,6,5,4,6,4,7,6,3,2,6,7,3]),i=new C.BufferGeometry;i.setIndex(new C.BufferAttribute(t,1)),i.setAttribute("position",this.positionAttribute);const r=new C.MeshBasicMaterial({color:64767,opacity:.1,depthTest:!1,transparent:!0});return new C.Mesh(i,r)}}function Ot(e,n){this._camera=e||null,this._domElement=n||document,this._raycaster=new C.Raycaster,this._selected=null,this._boundObjs={};var t=this;this._$onClick=function(){t._onClick.apply(t,arguments)},this._$onDblClick=function(){t._onDblClick.apply(t,arguments)},this._$onMouseMove=function(){t._onMouseMove.apply(t,arguments)},this._$onMouseDown=function(){t._onMouseDown.apply(t,arguments)},this._$onMouseUp=function(){t._onMouseUp.apply(t,arguments)},this._$onTouchMove=function(){t._onTouchMove.apply(t,arguments)},this._$onTouchStart=function(){t._onTouchStart.apply(t,arguments)},this._$onTouchEnd=function(){t._onTouchEnd.apply(t,arguments)},this._$onContextmenu=function(){t._onContextmenu.apply(t,arguments)},this._domElement.addEventListener("click",this._$onClick,!1),this._domElement.addEventListener("dblclick",this._$onDblClick,!1),this._domElement.addEventListener("mousemove",this._$onMouseMove,!1),this._domElement.addEventListener("mousedown",this._$onMouseDown,!1),this._domElement.addEventListener("mouseup",this._$onMouseUp,!1),this._domElement.addEventListener("touchmove",this._$onTouchMove,!1),this._domElement.addEventListener("touchstart",this._$onTouchStart,!1),this._domElement.addEventListener("touchend",this._$onTouchEnd,!1),this._domElement.addEventListener("contextmenu",this._$onContextmenu,!1)}Ot.prototype.destroy=function(){this._domElement.removeEventListener("click",this._$onClick,!1),this._domElement.removeEventListener("dblclick",this._$onDblClick,!1),this._domElement.removeEventListener("mousemove",this._$onMouseMove,!1),this._domElement.removeEventListener("mousedown",this._$onMouseDown,!1),this._domElement.removeEventListener("mouseup",this._$onMouseUp,!1),this._domElement.removeEventListener("touchmove",this._$onTouchMove,!1),this._domElement.removeEventListener("touchstart",this._$onTouchStart,!1),this._domElement.removeEventListener("touchend",this._$onTouchEnd,!1),this._domElement.removeEventListener("contextmenu",this._$onContextmenu,!1)},Ot.eventNames=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu","touchstart","touchend"],Ot.prototype._getRelativeMouseXY=function(e){var n=e.target||e.srcElement;n.nodeType===3&&(n=n.parentNode);var t={x:0,y:0},i=n,r=getComputedStyle(i,null);t.y+=parseInt(r.getPropertyValue("padding-top"),10),t.x+=parseInt(r.getPropertyValue("padding-left"),10);do t.x+=i.offsetLeft,t.y+=i.offsetTop,r=getComputedStyle(i,null),t.x+=parseInt(r.getPropertyValue("border-left-width"),10),t.y+=parseInt(r.getPropertyValue("border-top-width"),10);while(i=i.offsetParent);var s={width:n===window?window.innerWidth:n.offsetWidth,height:n===window?window.innerHeight:n.offsetHeight};return{x:Number((e.pageX-t.x)/s.width)*2-1,y:-((e.pageY-t.y)/s.height)*2+1}},Ot.prototype._objectCtxInit=function(e){e._3xDomEvent={}},Ot.prototype._objectCtxDeinit=function(e){delete e._3xDomEvent},Ot.prototype._objectCtxIsInit=function(e){return!!e._3xDomEvent},Ot.prototype._objectCtxGet=function(e){return e._3xDomEvent},Ot.prototype.camera=function(e){return e&&(this._camera=e),this._camera},Ot.prototype.bind=function(e,n,t,i){console.assert(Ot.eventNames.indexOf(n)!==-1,"not available events:"+n),this._objectCtxIsInit(e)||this._objectCtxInit(e);var r=this._objectCtxGet(e);r[n+"Handlers"]||(r[n+"Handlers"]=[]),r[n+"Handlers"].push({callback:t,useCapture:i}),this._boundObjs[n]===void 0&&(this._boundObjs[n]=[]),this._boundObjs[n].push(e)},Ot.prototype.addEventListener=Ot.prototype.bind,Ot.prototype.unbind=function(e,n,t,i){console.assert(Ot.eventNames.indexOf(n)!==-1,"not available events:"+n),this._objectCtxIsInit(e)||this._objectCtxInit(e);var r=this._objectCtxGet(e);r[n+"Handlers"]||(r[n+"Handlers"]=[]);for(var s=r[n+"Handlers"],o=0;o<s.length;o++){var a=s[o];if(t==a.callback&&i==a.useCapture){s.splice(o,1);break}}var l=this._boundObjs[n].indexOf(e);this._boundObjs[n].splice(l,1)},Ot.prototype.removeEventListener=Ot.prototype.unbind,Ot.prototype._bound=function(e,n){var t=this._objectCtxGet(n);return t?!!t[e+"Handlers"]:!1},Ot.prototype._onMove=function(e,n,t,i){var r=this._boundObjs[e];if(!(r===void 0||r.length===0)){var s=new C.Vector2;s.set(n,t),this._raycaster.setFromCamera(s,this._camera);var o=this._raycaster.intersectObjects(r),a=this._selected;if(o.length>0){var l,c,h,u=o[0],d=u.object;this._selected=d,h=this._bound("mousemove",d),a!=d&&(l=this._bound("mouseover",d),c=a&&this._bound("mouseout",a))}else c=a&&this._bound("mouseout",a),this._selected=null;h&&this._notify("mousemove",d,i,u),l&&this._notify("mouseover",d,i,u),c&&this._notify("mouseout",a,i,u)}},Ot.prototype._onEvent=function(e,n,t,i){var r=this._boundObjs[e];if(!(r===void 0||r.length===0)){var s=new C.Vector2;s.set(n,t),this._raycaster.setFromCamera(s,this._camera);var o=this._raycaster.intersectObjects(r,!0);if(o.length!==0){for(var a=o[0],l=a.object,c=this._objectCtxGet(l),h=l.parent;typeof c=="undefined"&&h;)c=this._objectCtxGet(h),h=h.parent;c&&this._notify(e,l,i,a)}}},Ot.prototype._notify=function(e,n,t,i){var r=this._objectCtxGet(n),s=r?r[e+"Handlers"]:null;if(!r||!s||s.length===0){n.parent&&this._notify(e,n.parent,t,i);return}for(var s=r[e+"Handlers"],o=0;o<s.length;o++){var a=s[o],l=!0;a.callback({type:e,target:n,origDomEvent:t,intersect:i,stopPropagation:function(){l=!1}}),l&&a.useCapture===!1&&n.parent&&this._notify(e,n.parent,t,i)}},Ot.prototype._onMouseDown=function(e){return this._onMouseEvent("mousedown",e)},Ot.prototype._onMouseUp=function(e){return this._onMouseEvent("mouseup",e)},Ot.prototype._onMouseEvent=function(e,n){var t=this._getRelativeMouseXY(n);this._onEvent(e,t.x,t.y,n)},Ot.prototype._onMouseMove=function(e){var n=this._getRelativeMouseXY(e);this._onMove("mousemove",n.x,n.y,e),this._onMove("mouseover",n.x,n.y,e),this._onMove("mouseout",n.x,n.y,e)},Ot.prototype._onClick=function(e){this._onMouseEvent("click",e)},Ot.prototype._onDblClick=function(e){this._onMouseEvent("dblclick",e)},Ot.prototype._onContextmenu=function(e){this._onMouseEvent("contextmenu",e)},Ot.prototype._onTouchStart=function(e){return this._onTouchEvent("touchstart",e)},Ot.prototype._onTouchEnd=function(e){return this._onTouchEvent("touchend",e)},Ot.prototype._onTouchMove=function(e){if(e.touches.length==1){var n=Number(e.touches[0].pageX/window.innerWidth)*2-1,t=-(e.touches[0].pageY/window.innerHeight)*2+1;this._onMove("mousemove",n,t,e),this._onMove("mouseover",n,t,e),this._onMove("mouseout",n,t,e)}},Ot.prototype._onTouchEvent=function(e,n){var t=n.touches;if(t.length==0&&(t=n.changedTouches),t.length==1){var i=Number(t[0].pageX/window.innerWidth)*2-1,r=-(t[0].pageY/window.innerHeight)*2+1;this._onEvent(e,i,r,n)}};class zc{constructor(n,t){v(this,"originObject3D");v(this,"hooks");v(this,"preventTapDefaultEvent",!1);v(this,"internalHooks");v(this,"disposers",[]);v(this,"helperObject3D");v(this,"camera");v(this,"model");v(this,"scene");v(this,"container");v(this,"domEvents");v(this,"isDragging",!1);v(this,"enabled",!1);v(this,"name","BaseController");v(this,"boundingBox");v(this,"config");v(this,"onRender");v(this,"onWantsTapGesture",n=>{if(this.getIntersectObject(n))return!1});v(this,"onWantsUpdateCameraDistance",()=>{if(this.camera.isPerspectiveCamera){const n=this.camera;this.helperObject3D.setScaleByCamera(n)}});v(this,"getBox",()=>this.boundingBox?this.boundingBox:(this.boundingBox=va(this.originObject3D),this.boundingBox));var h,u,d;this.hooks=(h=n.sharedHooks)!=null?h:new Pn,this.internalHooks=(u=n.sharedInternalHooks)!=null?u:new Pn,this.camera=n.camera,this.model=n.model,this.originObject3D=n.originObject3D,this.helperObject3D=n.helperObject3D,this.container=n.container,this.scene=n.scene,this.domEvents=new Ot(n.camera,n.container),this.onRender=(d=n.onRender)!=null?d:()=>{},this.config=t!=null?t:{},this.initialHelperPosition(),this.initialHelperQuaternion(),this.onWantsUpdateCameraDistance(),this.enable();const i=this.onSetOriginObjectScale.bind(this),r=this.onSetOriginObjectRotate.bind(this),s=this.onSetOriginObjectPosition.bind(this),o=this.onApplyOriginObjectScale.bind(this),a=this.onApplyOriginObjectRotate.bind(this),l=this.onApplyOriginObjectPosition.bind(this),c=this.initialHelperPosition.bind(this);this.internalHooks.on("setObjectPosition",this.onWantsUpdateCameraDistance),this.internalHooks.on("initialHelperPosition",this.onWantsUpdateCameraDistance),this.internalHooks.on("initialHelperPosition",c),this.internalHooks.on("setObjectScale",i),this.internalHooks.on("setObjectRotate",r),this.internalHooks.on("setObjectPosition",s),this.internalHooks.on("applyObjectPosition",l),this.internalHooks.on("applyObjectRotate",a),this.internalHooks.on("applyObjectScale",o),this.disposers.push(()=>{this.internalHooks.off("setObjectPosition",this.onWantsUpdateCameraDistance),this.internalHooks.off("initialHelperPosition",this.onWantsUpdateCameraDistance),this.internalHooks.off("initialHelperPosition",c),this.internalHooks.off("setObjectScale",i),this.internalHooks.off("setObjectRotate",r),this.internalHooks.off("setObjectPosition",s),this.internalHooks.off("applyObjectPosition",l),this.internalHooks.off("applyObjectRotate",a),this.internalHooks.off("applyObjectScale",o)})}initialHelperPosition(){this.helperObject3D.initialPosition(this.calculateOffset(this.config.offset))}initialHelperQuaternion(){var a,l,c;this.helperObject3D.initQuaternion();const n=(a=this.config.xAxis)!=null?a:new C.Vector3(1,0,0),t=(l=this.config.yAxis)!=null?l:new C.Vector3(0,1,0),i=(c=this.config.zAxis)!=null?c:new C.Vector3(0,0,1),r=new C.Quaternion;r.setFromUnitVectors(new C.Vector3(1,0,0),n.normalize());const s=new C.Quaternion;s.setFromUnitVectors(new C.Vector3(0,1,0),t.normalize());const o=new C.Quaternion;o.setFromUnitVectors(new C.Vector3(0,0,1),i.normalize()),this.helperObject3D.quaternion.premultiply(r),this.helperObject3D.quaternion.premultiply(s),this.helperObject3D.quaternion.premultiply(o)}enable(){this.enabled||(this.enabled=!0,this.scene.add(this.helperObject3D),this.helperObject3D.enable(),this.render())}disable(){this.enabled&&(this.enabled=!1,this.helperObject3D.disable(),this.render())}show(){this.helperObject3D.show(),this.render()}hide(){this.helperObject3D.hide(),this.render()}dispose(){var n;(n=this.disposers)==null||n.forEach(t=>t==null?void 0:t()),this.helperObject3D.dispose(),this.render()}applyHelperMatrix4(n){this.helperObject3D.applyMatrix4(n)}applyHelperQuaternion(n,t){this.helperObject3D.applyHelperQuaternion(n,t)}applyHelperScaleMatrix4(n,t){this.helperObject3D.applyHelperScaleMatrix4(n,t)}onWantsGesture(n,t,i){if(this.isDragging)return!1}onIntersectionOnModelUpdate(n){}onApplyOriginObjectScale(n){this.applyHelperScaleMatrix4(n.matrix,n.origin)}onApplyOriginObjectRotate(n){this.applyHelperQuaternion(n.quaternion,n.origin)}onApplyOriginObjectPosition(n){this.applyHelperMatrix4(n.matrix)}onSetOriginObjectScale(n){this.helperObject3D.scale.copy(n),this.updateOffsetByScale(n)}onSetOriginObjectRotate(n,t){this.helperObject3D.setHelperQuaternion(n,t)}onSetOriginObjectPosition(n){this.helperObject3D.position.copy(n.clone().add(this.calculateOffset(this.config.offset)))}render(){this.onRender()}updateOffsetByScale(n){if(this.boundingBox&&this.config.offset){const t=this.originObject3D.position,i=new C.Vector3().subVectors(this.boundingBox.max,t).multiply(n).add(t),r=new C.Vector3().subVectors(this.boundingBox.min,t).multiply(n).add(t),s=this.calculateOffset(this.config.offset,{min:r,max:i});this.helperObject3D.initialPosition(s)}}hoverListener(n,t=16777215,i=1){const r=Ir(n).filter(wt),s=[];for(const o of r)if(o.material||o instanceof C.Group){const a=o instanceof C.Group?o.children.filter(d=>d instanceof C.Mesh):[o];a.forEach(d=>{d.__originalColor__=d.material.color.clone(),d.__originalOpacity__=d.material.opacity});const l=()=>{a.forEach(d=>{d.material.color.set(t),d.material.opacity=i}),this.render()},c=()=>{a.forEach(d=>{d.material.color.copy(d.__originalColor__),d.material.opacity=d.__originalOpacity__}),this.render()},h=()=>{this.isDragging||l()},u=()=>{this.isDragging||c()};for(const d of a)this.domEvents.addEventListener(d,"mouseover",h),this.domEvents.addEventListener(d,"mouseout",u),this.hooks.on("moveStart",l),this.hooks.on("moveEnd",c),this.hooks.on("rotateEnd",c),s.push(()=>{this.domEvents.removeEventListener(d,"mouseover",h),this.domEvents.removeEventListener(d,"mouseout",u),this.hooks.off("moveStart",l),this.hooks.off("moveEnd",c),this.hooks.off("rotateEnd",c)})}return()=>s.forEach(o=>o==null?void 0:o())}getIntersectObject(n){const t=this.camera.position,i=this.helperObject3D;if(!i)return;const r=this.helperObject3D.raycasterIntersectObject(n)[0];if(!r)return;const s=r;if(s.object=i,this.model.intersectRaycaster){const o=this.model.intersectRaycaster(n)[0];if(o&&o.point.distanceTo(t)<s.point.distanceTo(t))return}return s.object}calculateOffset(n,t){const i=new C.Vector3(0,0,0);if(!n)return i;const r=()=>t||this.getBox();if(typeof n.x=="number")i.setX(n.x);else if(typeof n.x=="object"){const s=r();i.setX((s.max.x-s.min.x)*n.x.percents)}if(typeof n.y=="number")i.setY(n.y);else if(typeof n.y=="object"){const s=r();i.setY((s.max.y-s.min.y)*n.y.percents)}if(typeof n.z=="number")i.setZ(n.z);else if(typeof n.z=="object"){const s=r();i.setZ((s.max.z-s.min.z)*n.z.percents)}return i}}const zV=new C.Vector3;function lo(e){var d;const{raycaster:n,line:t,clampToLine:i=!0}=e;if(((d=n.camera)==null?void 0:d.type)==="OrthographicCamera"){const f=n.ray.origin.clone();return t.closestPointToPoint(f,!1,new C.Vector3)}const r=new C.Plane().setFromNormalAndCoplanarPoint(n.ray.direction.clone().normalize(),n.ray.origin),s=r.projectPoint(t.start,new C.Vector3),o=r.projectPoint(t.end,new C.Vector3),a=new C.Line3(s,o),l=a.closestPointToPoint(n.ray.origin,i,zV),c=l.distanceTo(o),h=l.distanceTo(s),u=a.distance();if(c>h&&c>u){const f=-l.distanceTo(s)/u,m=t.start.clone().sub(t.end).normalize();return t.start.sub(m.clone().multiplyScalar(f*t.distance()))}else{const f=l.distanceTo(s)/u;return new C.Vector3().lerpVectors(t.start,t.end,f)}}class BV extends zc{constructor(...t){super(...t);v(this,"name","MoveController");v(this,"startInfo");v(this,"_moveByMouse",{enabled:!1});v(this,"mouseInfo");v(this,"mousedownEventListenerDisposer");v(this,"dragStart",t=>{if(this.moveByMouseEnable||this.isDragging)return;const i=t==null?void 0:t.intersect;if(!i)return this.dragEnd();const r=(i==null?void 0:i.object).direction;if(!r)return this.dragEnd();const s=new C.Vector3(1,0,0).applyQuaternion(this.helperObject3D.quaternion),o=new C.Vector3(0,1,0).applyQuaternion(this.helperObject3D.quaternion),a=new C.Vector3(0,0,1).applyQuaternion(this.helperObject3D.quaternion),l=(()=>{switch(r){case"x":return s;case"y":return o;case"z":return a}})(),c=i.point.clone(),h=new C.Line3(c.clone().sub(l.normalize()),c.clone().add(l.normalize()));this.startInfo={startVectorProject:c,line:h},this.helperObject3D.showDraggingHelper([r]),this.hooks.emit("moveStart"),this.isDragging=!0});v(this,"dragging",t=>{if(!this.isDragging||!this.startInfo)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.move(s),!1):this.dragEnd()});v(this,"dragEnd",()=>{this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.helperObject3D.show(),this.hooks.emit("moveEnd"))});const i=this.helperObject3D;this.hoverListener([i.xArrow,i.yArrow,i.zArrow]);const r=this.show.bind(this),s=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",this.dragStart),document.addEventListener("mousemove",this.dragging),document.addEventListener("mouseup",this.dragEnd),this.domEvents.addEventListener(this.helperObject3D,"touchstart",this.dragStart),document.addEventListener("touchmove",this.dragging),document.addEventListener("touchend",this.dragEnd),this.hooks.on("rotateStart",s),this.hooks.on("rotateEnd",r),this.hooks.on("scaleStart",s),this.hooks.on("scaleEnd",r),this.hooks.on("moveByMouseEnable",s),this.hooks.on("moveByMouseDisable",r),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",this.dragStart),document.removeEventListener("mousemove",this.dragging),document.removeEventListener("mouseup",this.dragEnd),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",this.dragStart),document.removeEventListener("touchmove",this.dragging),document.removeEventListener("touchend",this.dragEnd),this.hooks.off("rotateStart",s),this.hooks.off("rotateEnd",r),this.hooks.off("scaleStart",s),this.hooks.off("scaleEnd",r),this.hooks.off("moveByMouseEnable",s),this.hooks.off("moveByMouseDisable",r)}),this.moveByMouseEnable&&this.moveByMouse()}get moveByMouseEnable(){return this._moveByMouse.enabled}dispose(){var t;super.dispose(),(t=this.disposers)==null||t.forEach(i=>i==null?void 0:i())}moveByMouse(t){this._moveByMouse={enabled:!0,useFaceNormal:t==null?void 0:t.useFaceNormal},this.preventTapDefaultEvent=!0;const i=this.handleMouseDown.bind(this),r=this.handleMouseUp.bind(this);this.hooks.emit("moveByMouseEnable"),setTimeout(()=>{this.container.addEventListener("mousedown",i),this.container.addEventListener("mouseup",r)}),this.mousedownEventListenerDisposer=()=>{this.container.removeEventListener("mousedown",i),this.container.removeEventListener("mouseup",r)}}disableMoveByMouse(){var t;this._moveByMouse={enabled:!1},this.preventTapDefaultEvent=!1,this.hooks.emit("moveByMouseDisable"),(t=this.mousedownEventListenerDisposer)==null||t.call(this)}onIntersectionOnModelUpdate(t){var o,a,l;if(!this.moveByMouseEnable)return;const{point:i,face:r}=t;if(!this.hooks.emit("wantToMove",i)){if(this.originObject3D.position.copy(i),(this._moveByMouse.useFaceNormal===!0||typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.enable!==!1)&&r!=null&&r.normal){const c=(()=>typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.alignmentVector?this._moveByMouse.useFaceNormal.alignmentVector:{x:0,y:1,z:0})(),h=new C.Vector3((o=c.x)!=null?o:0,(a=c.y)!=null?a:0,(l=c.z)!=null?l:0),u=(()=>typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.fixedFaceNormal?this._moveByMouse.useFaceNormal.fixedFaceNormal(r.normal):r.normal)();this.originObject3D.quaternion.setFromUnitVectors(h,u),this.internalHooks.emit("setObjectRotate",this.originObject3D.quaternion.clone())}this.internalHooks.emit("setObjectPosition",i),this.hooks.emit("move",i)}}handleMouseDown(t){const{x:i,y:r}=t;this.mouseInfo={x:i,y:r,mouseDownTimestamp:Date.now()}}handleMouseUp(t){if(!this.mouseInfo)return;const{x:i,y:r}=t;this.mouseInfo.x===i&&this.mouseInfo.y===r&&Date.now()-this.mouseInfo.mouseDownTimestamp<500&&(this.disableMoveByMouse(),this.mouseInfo=void 0)}move(t){if(!this.startInfo)return this.dragEnd();const{line:i,startVectorProject:r}=this.startInfo,s=this.originObject3D,o=lo({raycaster:t,line:i,clampToLine:!1}),a=o.clone().sub(r),l=new C.Matrix4;l.setPosition(a);const c=s.position.clone().applyMatrix4(l);this.hooks.emit("wantToMove",c)||(s.applyMatrix4(l),r.copy(o),this.internalHooks.emit("applyObjectPosition",{matrix:l}),this.hooks.emit("move",c))}}class Bc{constructor(n,t,i,r,s,o,a){v(this,"helperController");v(this,"five");v(this,"onFiveWantsUpdateCameraDistance",()=>{var n,t;this.helperController&&((t=(n=this.helperController).onWantsUpdateCameraDistance)==null||t.call(n))});v(this,"onFiveWantsTapGesture",n=>{if(!this.helperController)return;if(this.helperController.preventTapDefaultEvent)return!1;const t=this.helperController.onWantsTapGesture(n);return this.five.needsRender=!0,t});v(this,"onFiveWantsGesture",(...n)=>{if(!this.helperController)return;const t=this.helperController.onWantsGesture(...n);return this.five.needsRender=!0,t});v(this,"onFiveIntersectionOnModelUpdate",(...n)=>{this.helperController&&this.helperController.onIntersectionOnModelUpdate(...n)});const{camera:l,model:c,scene:h}=n,u=n.getElement();if(this.five=n,!l||!c||!u||!h)return;const d=()=>{n.needsRender=!0};this.helperController=new t({camera:l,model:c,originObject3D:i,helperObject3D:r,container:u,scene:h,onRender:d,sharedHooks:o,sharedInternalHooks:a},s),n.on("wantsTapGesture",this.onFiveWantsTapGesture),n.on("wantsGesture",this.onFiveWantsGesture),n.on("intersectionOnModelUpdate",this.onFiveIntersectionOnModelUpdate),n.on("cameraFovUpdate",this.onFiveWantsUpdateCameraDistance),n.on("cameraPositionUpdate",this.onFiveWantsUpdateCameraDistance)}dispose(){var n;this.five.off("wantsTapGesture",this.onFiveWantsTapGesture),this.five.off("wantsGesture",this.onFiveWantsGesture),this.five.off("intersectionOnModelUpdate",this.onFiveIntersectionOnModelUpdate),this.five.off("cameraFovUpdate",this.onFiveWantsUpdateCameraDistance),this.five.off("cameraPositionUpdate",this.onFiveWantsUpdateCameraDistance),(n=this.helperController)==null||n.dispose()}}const xg="Object3DHelper@v1.0.1",NV=()=>{console.error(`${xg} is disposed`)},FV=()=>{console.warn(`${xg} is disabled`)},VV=()=>{console.error(`${xg} is disabled`)};class GV{constructor(n){v(this,"controllers",{});v(this,"state",{visible:!0,enabled:!0,disposed:!1});v(this,"hooks",new Pn);v(this,"eventListener",{});n&&this.addControllers(n),this.setState(this.state)}show(n){return te(this,null,function*(){this.setState({visible:!0},n)})}hide(n){return te(this,null,function*(){this.setState({visible:!1},n)})}enable(n){this.setState({enabled:!0},n)}disable(n){this.setState({enabled:!1},n)}dispose(){this.setState({disposed:!0})}setState(n,t){if(this.state.disposed)return NV();if(!this.state.enabled&&n.enabled!==!0&&n.disposed!==!0)return VV();const i=O({},this.state);this.state=O(O({},this.state),n),n.disposed!==void 0&&n.disposed!==i.disposed&&n.disposed&&this.handleDispose(),n.visible!==void 0&&this.handleVisible(n.visible),n.enabled!==void 0&&this.handleEnable(n.enabled),this.hooks.emit("stateChange",{state:this.state,prevState:i})}addControllers(n){this.controllers=O(O({},this.controllers),n),this.setState(this.state)}getCurrentState(){return this.state}handleEnable(n,t=!0){n?(this.everyControllerDo(i=>{i.enable()}),this.hooks.emit("enable",{userAction:t})):(this.everyControllerDo(i=>{i.disable()}),this.hooks.emit("disable",{userAction:t})),this.state.enabled=n}handleVisible(n,t=!0){n?(this.everyControllerDo(i=>{i.show()}),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:t}))):(this.everyControllerDo(i=>{i.hide()}),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:t}))),this.state.visible=n}everyControllerDo(n){Object.values(this.controllers).forEach(t=>{t&&n(t)})}handleDispose(){var n,t;Object.values(this.controllers).forEach(i=>{i==null||i.dispose()});for(const i in this.controllers){if(!i)continue;const r=i;(t=(n=this.eventListener)[r])==null||t.call(n)}}actionIfStateIsEnabled(n,t){if(this.state.enabled)return n();t!=null&&t.warnLog&&FV()}}function Mg(e){return e*Math.PI/180}const Cg=new C.Quaternion;class jV extends zc{constructor(...t){var c,h,u;super(...t);v(this,"name","RotateController");v(this,"startInfo");v(this,"removeListener");const i=this.helperObject3D;this.hoverListener([(c=i.xCircle)==null?void 0:c.circle,(h=i.yCircle)==null?void 0:h.circle,(u=i.zCircle)==null?void 0:u.circle].filter(Boolean));const r=this.dragStart.bind(this),s=this.dragging.bind(this),o=this.dragEnd.bind(this),a=this.show.bind(this),l=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",r),document.addEventListener("mousemove",s),document.addEventListener("mouseup",o),this.domEvents.addEventListener(this.helperObject3D,"touchstart",r),document.addEventListener("touchmove",s),document.addEventListener("touchend",o),this.hooks.on("moveStart",l),this.hooks.on("moveEnd",a),this.hooks.on("scaleStart",l),this.hooks.on("scaleEnd",a),this.hooks.on("moveByMouseEnable",l),this.hooks.on("moveByMouseDisable",a),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",r),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",o),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",r),document.removeEventListener("touchmove",s),document.removeEventListener("touchend",o),this.hooks.off("moveStart",l),this.hooks.off("moveEnd",a),this.hooks.off("scaleStart",l),this.hooks.off("scaleEnd",a),this.hooks.off("moveByMouseEnable",l),this.hooks.off("moveByMouseDisable",a)})}get rotateCenter(){return this.helperObject3D.position.clone()}setRotateAngle(t){const{x:i=0,y:r=0,z:s=0}=t,o=new C.Euler(Mg(i),Mg(r),Mg(s)),a=new C.Quaternion().setFromEuler(o);if(this.hooks.emit("wantToRotate",a))return;const{originObject3D:c,rotateCenter:h}=this;mM(c,a,h),this.internalHooks.emit("setObjectRotate",a,h),this.hooks.emit("rotate",a),this.render()}onApplyOriginObjectRotate(t){this.isDragging||super.onApplyOriginObjectRotate(t)}onApplyOriginObjectScale(t){}dragStart(t){if(this.isDragging)return;const i=t==null?void 0:t.intersect;if(!i)return this.dragEnd();const r=(i==null?void 0:i.object).direction;if(!r)return this.dragEnd();const s=i.point,o=this.getAngleHelper(r);this.setTipsAngle(0);const a=s.clone();a.y+=.2,this.setTipsPosition(a);const l=this.helperObject3D.quaternion.clone(),c=(()=>{if(r==="x")return new C.Vector3(1,0,0).applyQuaternion(l);if(r==="y")return new C.Vector3(0,1,0).applyQuaternion(l);if(r==="z")return new C.Vector3(0,0,1).applyQuaternion(l)})(),h=new C.Plane().setFromNormalAndCoplanarPoint(c,s),d=h.projectPoint(s.clone(),new C.Vector3).clone().sub(this.rotateCenter),f=d.angleTo(o.baseAxes.clone().applyQuaternion(l));this.setAngleHelperStart(r,f),this.setAngleHelperLength(r,0),this.startInfo={direction:r,startVector:d,plane:h,angleHelper:o,angle:0,helperQuaternion:l.clone()},Cg.copy(l),this.helperObject3D.showDraggingHelper([r]),this.hooks.emit("rotateStart"),this.isDragging=!0}dragging(t){if(!this.isDragging)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.rotate(s),!1):this.dragEnd()}rotate(t){if(!this.startInfo)return this.dragEnd();const{startVector:i,plane:r,angleHelper:s,direction:o,helperQuaternion:a}=this.startInfo,{originObject3D:l}=this,c=t.ray.intersectPlane(r,new C.Vector3);if(!c)return;const h=this.rotateCenter.clone(),d=r.projectPoint(c.clone(),new C.Vector3).clone().sub(h);if(i.angleTo(d)===0)return;const f=new C.Quaternion().setFromUnitVectors(i.clone().normalize(),d.clone().normalize()),m=l.quaternion.clone().premultiply(f);if(this.hooks.emit("wantToRotate",m))return;const y=new C.Euler().setFromQuaternion(new C.Quaternion().setFromUnitVectors(i.clone().normalize().applyQuaternion(a.clone().inverse()),d.clone().normalize().applyQuaternion(a.clone().inverse())),`${o.toUpperCase()}${"XZY".replace(o.toUpperCase(),"")}`)[o]*s.angleDirection;if(this.startInfo.angle+=y,this.setAngleHelperLength(o,this.startInfo.angle),this.setTipsAngle(wm(this.startInfo.angle)),h){const b=new C.Vector3().subVectors(l.position,h).applyQuaternion(f).add(h);l.position.copy(b)}l.applyQuaternion(f),Cg.premultiply(f),this.internalHooks.emit("applyObjectRotate",{quaternion:f,origin:h}),this.hooks.emit("rotate",l.quaternion),this.startInfo.startVector=d}dragEnd(){this.isDragging&&(this.internalHooks.emit("setObjectRotate",Cg,this.rotateCenter),this.startInfo=void 0,this.isDragging=!1,this.helperObject3D.show(),this.hooks.emit("rotateEnd"))}getAngleHelper(t){var i,r,s;switch(t){case"x":return(i=this.helperObject3D.xCircle)==null?void 0:i.angleSector;case"y":return(r=this.helperObject3D.yCircle)==null?void 0:r.angleSector;case"z":return(s=this.helperObject3D.zCircle)==null?void 0:s.angleSector}}setAngleHelperStart(t,i){const r=this.getAngleHelper(t);if(!r){console.warn("angleHelper is undefined");return}if(r instanceof C.Mesh&&r.geometry instanceof C.CircleGeometry){const{radius:s,segments:o,thetaLength:a}=r.geometry.parameters;r.geometry=new C.CircleGeometry(s,o,i,a)}else console.warn("only support THREE.CircleGeometry")}setAngleHelperLength(t,i){const s=i>=0?Math.max(i,.001):Math.min(i,-.001),o=this.getAngleHelper(t);if(o instanceof C.Mesh&&o.geometry instanceof C.CircleGeometry){const{radius:a,thetaStart:l}=o.geometry.parameters,c=Math.ceil(Math.abs(s)*(40/(2*Math.PI)));o.geometry=new C.CircleGeometry(a,c,l,s)}else console.warn("only support THREE.CircleGeometry")}setTipsAngle(t){var r;const i=(r=this.helperObject3D.angleTips)==null?void 0:r.element;i&&(i.innerText=`${t.toFixed(0)}°`)}setTipsPosition(t){const i=this.helperObject3D.angleTips;if(!i)return;const r=t.project(this.camera),{x:s,y:o,z:a}=r;if(a>1)return;const l=(s+1)/2*100+"%",c=(-o+1)/2*100+"%";i.setLeftTop(l,c)}}class HV extends zc{constructor(...t){super(...t);v(this,"startInfo");v(this,"name","RectangleScaleController")}enable(){this.helperObject3D.enable(),super.enable()}disable(){this.helperObject3D.disable(),super.disable()}show(){this.helperObject3D.show(),super.show()}hide(){this.helperObject3D.hide(),super.hide()}onApplyOriginObjectPosition(t){this.isDragging||super.onApplyOriginObjectPosition(t)}onApplyOriginObjectScale(t){this.helperObject3D.applyHelperScaleMatrix4(t.matrix,t.origin)}getDragPlane(){const t=new C.Plane,i=this.helperObject3D.cornerPositions;if(i.length!==0)return i.length<3?t.setFromNormalAndCoplanarPoint(this.originObject3D.getWorldDirection(new ee.Vector3),i[0]):t.setFromCoplanarPoints(i[0],i[1],i[2]),t}dragStart(t,i){var s,o;(o=(s=this.helperObject3D).updatePoints)==null||o.call(s);const r=this.getDragPlane();if(!r)return this.dragEnd();this.startInfo={startPoint:{position:i.position.clone(),direction:i.direction},plane:r},this.hooks.emit("scaleStart"),this.render(),this.isDragging=!0}dragging(t){if(!this.isDragging)return;const i=Sd(this.camera,t,this.container);if(!i)return this.dragEnd();this.scale(i)}scale(t){var T,z;if(!this.startInfo)return;const i=this.originObject3D,{startPoint:r,plane:s}=this.startInfo,o=this.helperObject3D.cornerPositions;if(o.length<4)return this.dragEnd();const a=t.ray.intersectPlane(s,new ee.Vector3);if(!a||PV(a,this.camera.position))return;const l=new ee.Vector3().addVectors(o[0],o[2]).divideScalar(2),{position:c,direction:h}=r,u=new ee.Vector3().subVectors(o[1],o[0]),d=new ee.Vector3().subVectors(o[3],o[0]),f=D=>{const k=new ee.Vector3(0,0,0);if(!this.startInfo)return k;const R=(D==="ew"?u:d).clone(),G=c.clone().projectOnVector(R),I=a.clone().projectOnVector(R),U=l.clone().projectOnVector(R);if(I.equals(G))return k;if(D==="ns"&&typeof this.startInfo.dragPointInCenterBottom!="boolean"){const ne=new ee.Vector3().subVectors(I,U),ie=ne.x<0&&R.x>=0,pe=ne.y<0&&R.y>=0,be=ne.z<0&&R.z>=0;this.startInfo.dragPointInCenterBottom=ie||pe||be}if(D==="ew"&&typeof this.startInfo.dragPointInCenterLeft!="boolean"){const ne=new ee.Vector3().subVectors(I,U),ie=ne.x<0&&R.x>=0,pe=ne.y<0&&R.y>=0,be=ne.z<0&&R.z>=0;this.startInfo.dragPointInCenterLeft=ie||pe||be}const q=new ee.Vector3().subVectors(I,G),K=q.length();return K>.3?(console.warn("offset.length() > 0.3, skipped",K),k):q},m=f("ew"),p=f("ns"),g=()=>{const D=m;this.helperObject3D.cornerPositions.forEach((k,R)=>{var G;(G=this.startInfo)!=null&&G.dragPointInCenterLeft?(R===0||R===3)&&k.add(D):(R===1||R===2)&&k.add(D)})},y=()=>{const D=p;this.helperObject3D.cornerPositions.forEach((k,R)=>{var G;(G=this.startInfo)!=null&&G.dragPointInCenterBottom?(R===0||R===1)&&k.add(D):(R===2||R===3)&&k.add(D)})};switch(h){case"ew":g();break;case"ns":y();break;case"nesw":case"nwse":g(),y()}const b=new ee.Vector3().subVectors(o[1],o[0]).length()/u.length(),A=new ee.Vector3().subVectors(o[3],o[0]).length()/d.length(),w=new ee.Vector3(b,A,1),x=new C.Matrix4().scale(w);i.isCSS3DObjectPlus?i.applyScaleMatrix4(x):i.scale.applyMatrix4(x),r.position.copy(a);const M=new ee.Vector3().addVectors(o[0],o[2]).divideScalar(2),E=new ee.Vector3().subVectors(M,l),S=new C.Matrix4().setPosition(E);i.applyMatrix4(S),(T=this.helperObject3D.css3DInstance)==null||T.css3DObject.applyMatrix4(S),(z=this.helperObject3D.plane)==null||z.applyMatrix4(S),this.internalHooks.emit("applyObjectScale",{matrix:x}),this.internalHooks.emit("applyObjectPosition",{matrix:S}),this.render()}dragEnd(){this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.hooks.emit("scaleEnd"),this.render())}}class UV extends HV{constructor(...t){super(...t);v(this,"name","CSS3DScaleController");this.addHTMLEventListener()}addHTMLEventListener(){this.helperObject3D.points.forEach(t=>{if(!t)return;const i=t.point,r=a=>this.dragStart(a,t),s=this.dragging.bind(this),o=this.dragEnd.bind(this);i.addEventListener("dragstart",r),i.addEventListener("drag",s),i.addEventListener("dragend",o)})}}class WV extends zc{constructor(...t){super(...t);v(this,"name","BoundingBoxController")}}class QV extends wV{constructor(t,i){super(t,i);v(this,"scaleMeshes",[]);v(this,"positions",[]);i&&(this.positions=i.positions)}initialPosition(t){this.position.copy(this.originObject3D.position),this.scaleMeshes.length&&this.remove(...this.scaleMeshes);const i=typeof this.positions=="function"?this.positions():this.positions;i&&(this.scaleMeshes=i.map(r=>{const s=YV();return s.position.copy(r.handlePosition),s.scalePosition=r,s}),this.add(...this.scaleMeshes))}setScaleByCamera(t){this.scaleMeshes.forEach(i=>{i.scale.setScalar(Ag(t,i.scalePosition.handlePosition.clone().applyMatrix4(this.matrixWorld)))})}}function YV(){const n=new C.BoxGeometry(.05,.05,.05),t=new C.MeshBasicMaterial({color:16776960,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide}),i=new C.Mesh(n,t);return i.renderOrder=10,i}class XV extends zc{constructor(...t){super(...t);v(this,"name","ScaleController");v(this,"startInfo");v(this,"dragStart",t=>{if(this.isDragging)return;this.isDragging=!0;const{intersect:i}=t,r=this.camera.position,s=i.object,o=s.scalePosition.basePosition.clone(),l=s.scalePosition.handlePosition.clone().clone().sub(o).clone(),c=new C.Line3(o,o.clone().add(l.normalize().multiplyScalar(5)));c.applyMatrix4(this.helperObject3D.matrixWorld);const h=new C.Raycaster(r,i.point.clone().sub(r)),u=lo({raycaster:h,line:c});this.startInfo={line:c,scaleStartPoint:u,draggingObject:s},this.hooks.emit("scaleStart")});v(this,"dragging",t=>{if(!this.isDragging||!this.startInfo)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.scale(s),!1):this.dragEnd()});v(this,"scale",t=>{var c,h;if(!this.startInfo)return;const{line:i,scaleStartPoint:r,draggingObject:s}=this.startInfo,{scalePosition:o}=s,{basePosition:a}=o,l=lo({raycaster:t,line:i});l.applyMatrix4(new C.Matrix4().getInverse(this.helperObject3D.matrixWorld.clone())),(h=(c=this.config)==null?void 0:c.scaleCallback)==null||h.call(c,{ratio:l.distanceTo(a)/r.distanceTo(a),intersectPoint:l,scalePosition:o}),s.position.copy(l.clone())});v(this,"dragEnd",()=>{this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.internalHooks.emit("initialHelperPosition"),this.hooks.emit("scaleEnd"))});const i=this.show.bind(this),r=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",this.dragStart),document.addEventListener("mousemove",this.dragging),document.addEventListener("mouseup",this.dragEnd),this.domEvents.addEventListener(this.helperObject3D,"touchstart",this.dragStart),document.addEventListener("touchmove",this.dragging),document.addEventListener("touchend",this.dragEnd),this.hooks.on("rotateStart",r),this.hooks.on("rotateEnd",i),this.hooks.on("moveStart",r),this.hooks.on("moveEnd",i),this.hooks.on("moveByMouseEnable",r),this.hooks.on("moveByMouseDisable",i),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",this.dragStart),document.removeEventListener("mousemove",this.dragging),document.removeEventListener("mouseup",this.dragEnd),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",this.dragStart),document.removeEventListener("touchmove",this.dragging),document.removeEventListener("touchend",this.dragEnd),this.hooks.off("rotateStart",r),this.hooks.off("rotateEnd",i),this.hooks.off("moveStart",r),this.hooks.off("moveEnd",i),this.hooks.off("moveByMouseEnable",r),this.hooks.off("moveByMouseDisable",i)})}initialHelperQuaternion(){this.helperObject3D.initQuaternion()}initialHelperPosition(){this.helperObject3D.initialPosition();const t=this;t.offHoverListener&&t.offHoverListener(),t.offHoverListener=this.hoverListener(this.helperObject3D.scaleMeshes)}setScale(t){var l,c,h;let i=1,r=1,s=1;typeof t=="number"?(i=t,r=t,s=t):typeof t=="object"&&(i=(l=t.x)!=null?l:1,r=(c=t.y)!=null?c:1,s=(h=t.z)!=null?h:1);const o=new C.Vector3(i,r,s);this.hooks.emit("wantToScale",o)||(this.originObject3D.scale.copy(o),this.internalHooks.emit("setObjectScale",o),this.hooks.emit("scale",o),this.render())}}const Pg="Object3DHelperPlugin",Id=Pg,ZV=()=>{console.error(`${Id} is disposed`)},JV=()=>{console.warn(`${Id} is disabled`)},qV=()=>{console.error(`${Id} is disabled`)};class Eg extends ws{constructor(t){super(t);v(this,"name",Pg);v(this,"state",{visible:!0,enabled:!0,disposed:!1});v(this,"objectHelperMap",new Map);v(this,"css3DObjectParentMap",new Map);v(this,"css3DRender");this.five=t,this.css3DRender=new Ma(this.five.scene),console.warn("Object3DHelper: 使用此插件,需要在初始化five时,设置five参数: { backgroundAlpha: 0, backgroundColor: 0x000000 }"),Object.assign(window,{[`__${Pg.toUpperCase()}_DEBUG__`]:this})}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.setState({disposed:!0})}setState(t,i){if(this.state.disposed)return ZV();if(!this.state.enabled&&t.enabled!==!0&&t.disposed!==!0)return qV();const r=O({},this.state);this.state=O(O({},this.state),t),t.disposed!==void 0&&t.disposed!==r.disposed&&t.disposed&&this.handleDispose(),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled),this.hooks.emit("stateChange",{state:this.state,prevState:r})}getObject3DHelper(t){return this.objectHelperMap.get(t)}addObject3DHelper(t,i={}){var y;if(!t){console.error("Object3D is undefined");return}if(this.objectHelperMap.has(t)){console.warn(`Object3DHelperPlugin: object3D ${t.name} is already has helper`);return}const r=new GV,s=[],o=(y=this.five.getElement())==null?void 0:y.parentElement,a=this.five.camera,c=O(O({},{moveHelper:!0,rotateHelper:!0,scaleHelper:!0,boundingBoxHelper:!1,positionFrom:"objectPosition"}),i),{moveHelper:h,rotateHelper:u,scaleHelper:d,boundingBoxHelper:f}=c,m=new Pn,p=new Pn,g=b=>{if(b)return typeof b=="boolean"?b:b.enable};if(g(h)){const b=O(O({},this.getConfig(c.moveHelper)),c),A=new EV(t,O({},b)),w=new Bc(this.five,BV,t,A,b,m,p);r.addControllers({moveController:w.helperController}),s.push(()=>w.dispose())}if(g(u)){const b=O(O({},this.getConfig(c.rotateHelper)),c),A=new IV(t,O({container:o},b)),w=new Bc(this.five,jV,t,A,b,m,p);r.addControllers({rotateController:w.helperController}),s.push(()=>w.dispose())}if(g(f)){const b=new RV(t),A=new Bc(this.five,WV,t,b,void 0,m,p);r.addControllers({boundingBoxController:A.helperController})}if(g(d))if(t.isCSS3DObjectPlus&&o){const b=new OV(t,o,a,this.five.scene),A=new Bc(this.five,UV,t,b,void 0,m,p);r.addControllers({scaleController:A.helperController}),s.push(()=>A.dispose()),Ca(this.five).then(()=>{var w,x;if(t.isCSS3DObjectPlus){const M=t;if(!M||M.mode!=="front")return;const E=(w=this.css3DRender.behindModeCSS3DRenderer.wrapper)!=null?w:xb(this.five);E&&(this.css3DObjectParentMap.set(M,M.parent),M.removeFromParent(),this.css3DRender.behindModeCSS3DRenderer.setWrapper(E),(x=this.css3DRender.getBehindCSS3DObjectGroup())==null||x.add(M),this.css3DRender.render(this.five.camera))}})}else{const b=O(O({},this.getConfig(c.scaleHelper)),c),A=new QV(t,b),w=new Bc(this.five,XV,t,A,b,m,p);r.addControllers({scaleController:w.helperController}),s.push(()=>w.dispose())}return this.objectHelperMap.set(t,{helper:r,disposers:s}),r.controllers}removeObject3DHelper(t){if(!this.objectHelperMap.has(t))return;const{helper:i,disposers:r}=this.objectHelperMap.get(t);if(i){if(t.isCSS3DObjectPlus){const s=t,o=this.css3DObjectParentMap.get(s);o&&o.add(s),this.css3DRender.render(this.five.camera)}this.objectHelperMap.delete(t),i.dispose(),r==null||r.forEach(s=>s==null?void 0:s())}}handleEnable(t,i=!0){t?(this.everyHelperDo(r=>r.enable()),this.hooks.emit("enable",{userAction:i})):(this.everyHelperDo(r=>r.disable()),this.hooks.emit("disable",{userAction:i})),this.state.enabled=t}handleVisible(t,i=!0){t?(this.everyHelperDo(r=>r.show()),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:i}))):(this.everyHelperDo(r=>r.hide()),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:i}))),this.state.visible=t}handleDispose(){this.everyHelperDo((t,i)=>{t.dispose(),i==null||i.forEach(r=>r==null?void 0:r())})}everyHelperDo(t){this.objectHelperMap.forEach(({helper:i,disposers:r})=>{i&&t(i,r)})}actionIfStateIsEnabled(t,i){if(this.state.enabled)return t();i!=null&&i.warnLog&&JV()}getConfig(t){if(t&&typeof t!="boolean"&&t.enable)return t}}const KV=e=>new Eg(e),$V=`
|
|
3705
|
+
`;class dg{constructor(n,t){v(this,"name","");v(this,"startTagContainer");v(this,"endTagContainer");v(this,"path",[]);v(this,"geometryStyle",{});v(this,"materialStyle",{});v(this,"meshStyle",{});v(this,"group",new C.Group);v(this,"meshWithDepthTest");v(this,"meshWithoutDepthTest");v(this,"five");v(this,"mode");v(this,"_curvePath",null);v(this,"_curvePoints",null);v(this,"_panoGroup",[]);v(this,"skippedPositions",null);v(this,"textureUrl","");v(this,"scale",1);v(this,"width",.5);v(this,"unitLength",.5);v(this,"_visibleFloorIndexes",null);v(this,"visible",null);v(this,"modeVisible",!1);v(this,"floorVisible",!0);v(this,"defaultVisible",!1);v(this,"inWalkAnimation",!1);v(this,"customVisible",null);v(this,"parent");v(this,"plugin");v(this,"textureHasLoaded",!1);v(this,"disposed",!1);v(this,"flowAnime",new ya({progress:0}).to({progress:1}).duration(1500).repeat(1/0));v(this,"cacheLengths",[]);v(this,"heightOffset",0);v(this,"panoMap",{});v(this,"autoDepthTestEffectDistance");v(this,"dispose",()=>{var n,t;this.disposed||(this.disposed=!0,this.parent.hooks.off("show",this.updateVisible),this.parent.hooks.off("hide",this.updateVisible),this.plugin.hooks.off("show",this.updateVisible),this.plugin.hooks.off("hide",this.updateVisible),this.plugin.hooks.off("enable",this.updateVisible),this.plugin.hooks.off("disable",this.updateVisible),this.five.off("modeChange",this.onFiveModeChange),this.five.off("panoArrived",this.onFivePanoArrived),this.five.off("modelShownFloorChange",this.onFiveModelShownFloorChange),this.doHide(),(n=this.startTagContainer)==null||n.plugin.dispose(),(t=this.endTagContainer)==null||t.plugin.dispose())});v(this,"onWalkAnimationStart",()=>{this.inWalkAnimation=!0,this.updateVisible()});v(this,"onWalkAnimationEnd",()=>{this.inWalkAnimation=!1,this.updateVisible()});v(this,"onFiveModeChange",n=>{this.modeVisible=this.mode==="panorama"?Ss(n):Mi(n),this.updateVisible()});v(this,"onFivePanoArrived",n=>{var r,s,o,a,l,c;const t=(o=(s=(r=this.path)==null?void 0:r[0])==null?void 0:s.panoIndexMap)==null?void 0:o[n],i=this.panoMap[t!=null?t:n];if(i===void 0)this.group.children.includes(this.meshWithoutDepthTest)&&this.group.remove(this.meshWithoutDepthTest),this.meshWithDepthTest.material.uniforms.excludeMinV.value=-1,this.meshWithDepthTest.material.uniforms.excludeMaxV.value=-1;else{this.group.children.includes(this.meshWithoutDepthTest)||this.group.add(this.meshWithoutDepthTest),this.meshWithoutDepthTest.visible=!0;const h=this.meshWithDepthTest.geometry.getAttribute("uv"),u=100*((a=this.autoDepthTestEffectDistance)!=null?a:2),d=(l=h.getY((i-u)*2))!=null?l:0,f=(c=h.getY((i+u)*2))!=null?c:h.getY(h.count-1);this.meshWithDepthTest.material.uniforms.excludeMinV.value=d,this.meshWithDepthTest.material.uniforms.excludeMaxV.value=f,this.meshWithoutDepthTest.material.uniforms.includeMinV.value=d,this.meshWithoutDepthTest.material.uniforms.includeMaxV.value=f}this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0});v(this,"onFiveModelShownFloorChange",n=>{this.floorVisible=n===null||this.visibleFloorIndexes===null||this.visibleFloorIndexes.includes(n),this.updateVisible()});v(this,"updateVisible",()=>{const n=(()=>!this.parent.visible||!this.plugin.state.enabled||!this.plugin.state.visible?!1:this.customVisible!==null?this.customVisible:this.inWalkAnimation?!0:this.modeVisible&&this.textureHasLoaded&&this.defaultVisible&&this.floorVisible)();this.visible!==n&&(this.visible=n,n?this.doShow():this.doHide())});v(this,"onFlowAnimeUpdate",n=>{const{progress:t}=n;this.meshWithDepthTest.material.uniforms.vOffset.value=t,this.meshWithoutDepthTest.material.uniforms.vOffset.value=t,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0});v(this,"logError",n=>nw("GuideLineModeItem: ",n));var s,o;this.five=n,this.mode=t.mode,this.plugin=t.plugin,this.parent=t.parent,this.group.name="GuideLineModeItem";const i=new C.BufferGeometry,r=new C.ShaderMaterial({vertexShader:nV,fragmentShader:iV,transparent:!0,uniforms:{map:{value:null},useMapColor:{value:0},mapColor:{value:new C.Color},mapOpacity:{value:1},backgroundColor:{value:new C.Color},backgroundOpacity:{value:0},borderColor:{value:new C.Color},borderOpacity:{value:0},backgroundClip:{value:0},borderWidth:{value:.05},opacity:{value:1},flicker:{value:1},maxV:{value:0},vOffset:{value:0},includeMinV:{value:-1},includeMaxV:{value:-1},excludeMinV:{value:-1},excludeMaxV:{value:-1}}});this.meshWithDepthTest=new C.Mesh(i,r),this.meshWithoutDepthTest=new C.Mesh(i,r.clone()),this.meshWithoutDepthTest.material.depthTest=!1,this.meshWithDepthTest.name="GuideLineModeItemWithDepthTest",this.meshWithoutDepthTest.name="GuideLineModeItemWithoutDepthTest",this.group.add(this.meshWithDepthTest),this.mode==="panorama"&&(this.parent.hooks.on("walkStart",this.onWalkAnimationStart),this.parent.hooks.on("walkEnded",this.onWalkAnimationEnd),this.onFivePanoArrived(this.five.getCurrentState().panoIndex)),this.updateVisible(),this.onFiveModeChange(this.five.getCurrentState().mode),this.onFiveModelShownFloorChange((o=(s=this.five.model)==null?void 0:s.shownFloor)!=null?o:null),this.flowAnime.onUpdate(this.onFlowAnimeUpdate),this.parent.hooks.on("show",this.updateVisible),this.parent.hooks.on("hide",this.updateVisible),this.plugin.hooks.on("show",this.updateVisible),this.plugin.hooks.on("hide",this.updateVisible),this.plugin.hooks.on("enable",this.updateVisible),this.plugin.hooks.on("disable",this.updateVisible),this.plugin.hooks.on("dispose",this.dispose),this.five.on("modeChange",this.onFiveModeChange),this.five.on("panoArrived",this.onFivePanoArrived),this.five.on("modelShownFloorChange",this.onFiveModelShownFloorChange),this.five.needsRender=!0}get panoGroup(){return this._panoGroup}get visibleFloorIndexes(){return this._visibleFloorIndexes}get curvePath(){return this._curvePath}get curvePoints(){return this._curvePoints}setCustomVisible(n){if(this.disposed)return this.logError("disposed");this.customVisible!==n&&(this.customVisible=n,this.updateVisible())}setDefaultVisible(n){if(this.disposed)return this.logError("disposed");this.defaultVisible!==n&&(this.defaultVisible=n,this.updateVisible())}setUnitSize(n,t){if(this.disposed)return this.logError("disposed");this.width=n,this.unitLength=t,this.setGeometryByPath(this.path,{width:n,unit_length:t})}setScale(n){if(this.disposed)return this.logError("disposed");this.scale=n,this.setGeometryByPath(this.path,{scale:n})}setGeometryByPanoGroup(n,t){if(this.disposed)return this.logError("disposed");if(!this.five.work)return this.logError("setPathByPanoGroup: work is not ready");const i=tV(n);if(this._panoGroup=i,(t==null?void 0:t.skipPanoGroup)!==void 0){const s=t.skipPanoGroup?i.map(o=>this.plugin.workUtil.getObserverStandingPosition(o)).filter(wt):null;this.skippedPositions=s}const r=this.getPathFromPanoGroup(i,this.five.work,t);this.path=r,this.setGeometryByPath(r,t)}setGeometryByPath(n,t){var d,f,m,p;if(this.disposed)return this.logError("disposed");const i=(d=t==null?void 0:t.scale)!=null?d:this.scale,r=(f=t==null?void 0:t.width)!=null?f:this.width,s=(m=t==null?void 0:t.unit_length)!=null?m:this.unitLength;this.scale=i,this.width=r,this.unitLength=s;const{geometry:o,maxV:a,curvePath:l,curvePoints:c,panoMap:h,totalLength:u}=yR({path:n,width:r*i,unitLength:s*i,skipPositions:this.skippedPositions,useAutoDepthTest:t.useAutoDepthTest});this.autoDepthTestEffectDistance=(p=t.autoDepthTestEffectDistance)!=null?p:(()=>{const g=u/10;return g>3?3:g<1?1:g})(),this.panoMap=h,this._curvePath=l,this._curvePoints=c,this.meshWithDepthTest.geometry.copy(o),this.onFivePanoArrived(this.five.getCurrentState().panoIndex),this.meshWithDepthTest.material.needsUpdate=!0,this.meshWithDepthTest.material.uniforms.maxV.value=a,this.meshWithoutDepthTest.material.needsUpdate=!0,this.meshWithoutDepthTest.material.uniforms.maxV.value=a,this.five.needsRender=!0,this.path=n,this.geometryStyle=O(O({},this.geometryStyle),t)}setMartial(n){var i,r,s,o,a;if(this.disposed)return this.logError("disposed");this.setDefaultVisible((i=n==null?void 0:n.visible)!=null?i:!1),this.setColor((r=n==null?void 0:n.color)!=null?r:"#ffffff"),this.setOpacity((s=n==null?void 0:n.opacity)!=null?s:.5),this.setTextureUrl((a=(o=n==null?void 0:n.texture)==null?void 0:o.url)!=null?a:"https://vr-image-4.realsee-cdn.cn/release/web/arrow1.ebe7d0ff.png"),(n==null?void 0:n.background_color)!==void 0&&this.setBackgroundColor(n.background_color),(n==null?void 0:n.background_opacity)!==void 0&&this.setBackgroundOpacity(n.background_opacity),(n==null?void 0:n.border_color)!==void 0&&this.setBorderColor(n.border_color),(n==null?void 0:n.border_opacity)!==void 0&&this.setBorderOpacity(n.border_opacity),(n==null?void 0:n.border_width)!==void 0&&this.setBorderWidth(n.border_width),(n==null?void 0:n.background_clip)!==void 0&&this.setBackgroundClip(n.background_clip);const t=O(O({},this.materialStyle),n);this.materialStyle=t}setMeshStyle(n){if(n!=null&&n.translate){const r=new C.Vector3,s=new C.Vector3().fromArray(n.translate);s.y+=this.heightOffset,r.add(s),this.group.position.copy(r),i(this.startTagContainer,s),i(this.endTagContainer,s)}const t=O(O({},this.meshStyle),n);this.meshStyle=t;function i(r,s){if(!(r!=null&&r.tag))return;const o=new C.Vector3().fromArray(r.tag.position);o.add(s);const a=o.toArray();r.plugin.changeTagById(r.tag.id,{position:a})}}setHeightOffset(n){const t=new C.Vector3;this.meshStyle.translate&&t.add(new C.Vector3().fromArray(this.meshStyle.translate)),t.setY(t.y+n),this.group.position.copy(t),this.heightOffset=n,this.five.needsRender=!0}setColor(n){if(this.disposed)return this.logError("disposed");n&&(this.meshWithDepthTest.material.uniforms.mapColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.mapColor.value=new C.Color().set(n)),this.meshWithDepthTest.material.uniforms.useMapColor.value=n?1:0,this.meshWithoutDepthTest.material.uniforms.useMapColor.value=n?1:0,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderColor(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.borderColor.value=new C.Color().set(n),this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.borderOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundClip(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundClip.value=n==="border-box"?0:1,this.meshWithoutDepthTest.material.uniforms.backgroundClip.value=n==="border-box"?0:1,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBorderWidth(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.borderWidth.value=n,this.meshWithoutDepthTest.material.uniforms.borderWidth.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundColor(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundColor.value=new C.Color().set(n),this.meshWithoutDepthTest.material.uniforms.backgroundColor.value=new C.Color().set(n),this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setBackgroundOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.backgroundOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.backgroundOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.opacity.value=n,this.meshWithoutDepthTest.material.uniforms.opacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setMapOpacity(n){if(this.disposed)return this.logError("disposed");this.meshWithDepthTest.material.uniforms.mapOpacity.value=n,this.meshWithoutDepthTest.material.uniforms.mapOpacity.value=n,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.five.needsRender=!0}setTextureUrl(n){if(this.disposed)return this.logError("disposed");this.textureUrl=n,qs(n).then(t=>{this.disposed||this.textureUrl===n&&(t.wrapT=C.RepeatWrapping,this.textureHasLoaded=!0,this.meshWithDepthTest.material.uniforms.map.value=t,this.meshWithoutDepthTest.material.uniforms.map.value=t,this.meshWithDepthTest.material.uniformsNeedUpdate=!0,this.meshWithoutDepthTest.material.uniformsNeedUpdate=!0,this.meshWithDepthTest.material.needsUpdate=!0,this.meshWithoutDepthTest.material.needsUpdate=!0,this.five.needsRender=!0,this.updateVisible())})}setVisibleFloorIndexes(n){var t,i;if(this.disposed)return this.logError("disposed");this._visibleFloorIndexes=n,this.onFiveModelShownFloorChange((i=(t=this.five.model)==null?void 0:t.shownFloor)!=null?i:null)}setStartTag(n){this.setTag("start",n)}setEndTag(n){this.setTag("end",n)}flicker(){var n,t,i,r,s,o;if(this.disposed)return this.logError("disposed");Vu([this.group,(i=(t=(n=this.startTagContainer)==null?void 0:n.plugin)==null?void 0:t.tags[0])==null?void 0:i.dom,(o=(s=(r=this.endTagContainer)==null?void 0:r.plugin)==null?void 0:s.tags[0])==null?void 0:o.dom],{loop:6,updateRender:()=>{this.five.needsRender=!0}})}getLengthByPanoGroupIndex(n){return this.disposed?this.logError("disposed"):this.cacheLengths.length!==0?this.cacheLengths[n]:(this.cacheLengths=this.getPanoGroupLengths(),this.cacheLengths[n])}getPanoGroupLengths(){var l;if(!this.curvePoints||!this.curvePath)return[];const n=this.curvePoints.length,t=this.curvePath.getLength(),i=n-1,r=t/i,s=(l=this.curvePath.getLengths(i))!=null?l:[],o=[];let a=0;for(let c=0;c<n;c++){const h=this.curvePoints[c],u=this.plugin.workUtil.getObserverStandingPosition(a);if(!u)break;u.clone().setY(0).distanceTo(h.clone().setY(0))<r&&(o.push(s[c]),a+=1)}return o}setTag(n,t){var l,c;const i=this.curvePath;if(!(t!=null&&t.data))return;const r=n==="start"?(l=this.startTagContainer)!=null?l:(()=>(this.startTagContainer={tag:null,plugin:new _d(this.five,{containerZIndex:1})},this.startTagContainer))():(c=this.endTagContainer)!=null?c:(()=>(this.endTagContainer={tag:null,plugin:new _d(this.five,{containerZIndex:1})},this.endTagContainer))(),o=Ht({},{contentType:"Custom",stickType:"2DPoint",config:{visibleConfig:{visibleFiveMode:["Floorplan","Mapview"],followModelVisibility:!1}},style:{point:{enabled:!1}},data:{}},t);r.tag=o,rV(o)&&(r.tag.element=h=>{var f,m;(f=r.app)==null||f.$destroy();const u=n==="start"?Pe(O({},o.data),{name:this.name,distance:Math.round((m=i.getLength())!=null?m:0),i18n:this.plugin.config.i18n}):o.data,d=new eV({target:h,intro:!0,props:u});return r.app=d,()=>d.$destroy()}),r.plugin.load({tagList:[r.tag]});const a=this.meshStyle.translate;if(a&&o.position){const h=new C.Vector3().fromArray(o.position),u=new C.Vector3().fromArray(a);h.add(u),h.y+=this.heightOffset;const d=h.toArray();r.plugin.changeTagById(r.tag.id,{position:d})}}doShow(){var n,t;this.mode==="model"&&this.flowAnime.play(),this.five.scene.add(this.group),(n=this.startTagContainer)==null||n.plugin.show(),(t=this.endTagContainer)==null||t.plugin.show(),this.five.needsRender=!0}doHide(){var n,t;this.mode==="model"&&this.flowAnime.stop(),this.five.scene.remove(this.group),(n=this.startTagContainer)==null||n.plugin.hide(),(t=this.endTagContainer)==null||t.plugin.hide(),this.five.needsRender=!0}getPathFromPanoGroup(n,t,i){if(n.length<2)return[];const r={},s=n.map((l,c)=>{const h=this.plugin.workUtil.getObserverStandingPosition(l);if(!h)return;const u=n[c-1];if((c===0?999:h.distanceTo(this.plugin.workUtil.getObserverStandingPosition(u)))<.05){let f=u;for(;r[f]!==void 0;)f=r[f];r[l]=f;return}return{position:h,panoIndex:l}}).filter(wt),o=s.map(l=>l.position.toArray()),a=s.map(l=>l.panoIndex);return[Pe(O({type:"CatmullRomCurve3",points:o},i),{panoIndexList:a,panoIndexMap:r})]}}function rV(e){return e.contentType==="Custom"}const sV=Object.freeze(Object.defineProperty({__proto__:null,GuideLineModeItem:dg},Symbol.toStringTag,{value:"Module"})),hM="CruisePlugin",fg=`${hM}`;class uM extends ws{constructor(t,i){super(t,i);v(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1});v(this,"data");v(this,"config");v(this,"pauseDataMap",new Map);v(this,"privateState",{playing:!1,broke:!1,modeChanging:!1});v(this,"GuideLine");v(this,"disposedErrorLog",()=>{console.error(`${fg} is disposed`)});v(this,"disableWarnLog",()=>{console.warn(`${fg} is disabled`)});v(this,"disableErrorLog",()=>{console.error(`${fg} is disabled`)});this.config=i,Object.assign(window,{[`__${hM}_DEBUG__`]:this})}play(t){this.setState({playing:!0},t)}pause(t){this.setState({playing:!1},t)}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.setState({disposed:!0})}setState(t,i){var s;if(this.state.disposed)return this.disposedErrorLog();if(!this.state.enabled&&t.enabled!==!0&&t.disposed!==!0)return this.disableErrorLog();const r=O({},this.state);this.state=Ht({},this.state,t),t.disposed!==void 0&&t.disposed!==r.disposed&&t.disposed&&this.handleDispose(),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible,i==null?void 0:i.userAction),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled,i==null?void 0:i.userAction),t.playing!==void 0&&t.playing!==r.playing&&this.changePlayState(t.playing,i),t.speed!==void 0&&t.speed!==r.speed&&this.changeSpeed(t.speed),Fn(r,this.state,{deep:!0})||this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:(s=i==null?void 0:i.userAction)!=null?s:!0})}clearPauseData(){var t,i;if((t=this.data)!=null&&t.id)return this.pauseDataMap.delete((i=this.data)==null?void 0:i.id)}changePlayState(t,i){this.actionIfStateIsEnabled(()=>{var r;return this.hooks.emit("playStateChange",t?"playing":"pause",{userAction:(r=i==null?void 0:i.userAction)!=null?r:!0})}),t?this.handlePlay(i):this.handlePause(i),this.state.playing=t}handleEnable(t,i=!0){var r,s;t?((r=this.GuideLine)==null||r.enable(),this.hooks.emit("enable",{userAction:i})):((s=this.GuideLine)==null||s.disable(),this.changePlayState(!1,{userAction:i}),this.hooks.emit("disable",{userAction:i})),this.state.enabled=t}handleVisible(t,i=!0){var r,s;t?((r=this.GuideLine)==null||r.show(),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:i}))):((s=this.GuideLine)==null||s.hide(),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:i}))),this.state.visible=t}addInterruptListener(t){const i=()=>{this.privateState.modeChanging||t()},r=s=>{s!=="mouseMove"&&(t(),this.five.off("gesture",r))};return this.five.on("gesture",r),this.five.once("wantsChangeMode",i),()=>{this.five.off("gesture",r),this.five.off("wantsChangeMode",i)}}getSpeededDuration(t){return t/this.state.speed}forceInteruptUpdateCamera(){this.five.updateCamera({},0)}getPauseData(){var t;if((t=this.data)!=null&&t.id)return this.pauseDataMap.get(this.data.id)}setPauseData(){var i;const t=(i=this.data)==null?void 0:i.id;if(t)return this.pauseDataMap.set(t,{fiveState:this.five.getCurrentState(),playedProgress:this.getProgress()})}clear(){this.clearPauseData()}handleDispose(){var t;this.setState({playing:!1}),this.clearPauseData(),this.clear(),(t=this.GuideLine)==null||t.dispose(),this.GuideLine=void 0}actionIfStateIsEnabled(t,i){if(this.state.enabled)return t();i!=null&&i.warnLog&&this.disableWarnLog()}}function pg(e,n,t){var l,c,h;const i=new C.Vector3().fromArray([(l=t.x)!=null?l:0,(c=t.y)!=null?c:0,(h=t.z)!=null?h:0]),r=e.getPointAt(n).clone().add(i),s=e.getTangentAt(n),{longitude:o,latitude:a}=gc(s);return{offset:r.clone(),longitude:o,latitude:a,distance:0}}let mg=class extends uM{constructor(t,i){var o;super(t,i);v(this,"curve");v(this,"baseCurveOffset");v(this,"curveOffset");v(this,"playStartedTime",performance.now());v(this,"duration");v(this,"changeSpeed",(t,i=!0)=>{this.state.speed=t,this.hooks.emit("speedChange",t,{userAction:i})});v(this,"moveToStart",()=>{this.five.setState(Pe(O({},pg(this.curve,0,this.curveOffset)),{mode:"Model"}))});v(this,"playFromStart",()=>{this.clearPauseData(),this.setState({playing:!0})});v(this,"getDuration",()=>this.getSpeededDuration(this.duration));v(this,"getProgress",()=>{var l;const t=this.getPauseData();let i=(l=t==null?void 0:t.playedProgress)!=null?l:0;(i<0||i>=1)&&(i=0);const r=1-i,s=this.getDuration(),a=(performance.now()-this.playStartedTime)/s;return 1-r+a});const r={config:{speedConfig:{moveSpeed:2,moveSpeedUnit:"m/s"}}},s={allowBroke:!0};this.state=Ht({},r,this.state),this.config=Ht({},s,this.config),this.baseCurveOffset=Ht({x:0,y:0,z:0},{y:2},(o=this.config)==null?void 0:o.offset)}load(t,i){var a,l,c,h,u,d,f,m,p;this.handlePause(),this.clear(),this.data=O({id:wn()},t);const r=(()=>{if(this.data.path instanceof C.Curve)return this.data.path.curves[0];{if(this.data.path.length<2)return null;const g=this.data.path.map(Ft);return new C.CatmullRomCurve3(g,void 0,"catmullrom",.5)}})();if(!r)return;if(this.curve=r,this.curveOffset={x:this.baseCurveOffset.x+((l=(a=this.data.offset)==null?void 0:a.x)!=null?l:0),y:this.baseCurveOffset.y+((h=(c=this.data.offset)==null?void 0:c.y)!=null?h:0),z:this.baseCurveOffset.z+((d=(u=this.data.offset)==null?void 0:u.z)!=null?d:0)},!this.curve)throw new Error("curve is not defined");const s=this.curve.getLength(),o=this.state.config.speedConfig.moveSpeedUnit==="m/ms"?1:1e3;if(this.duration=s/(this.state.config.speedConfig.moveSpeed/o),Array.isArray(this.data.path)){const g=this.data.path.map(Ft).map(y=>y.toArray());!this.GuideLine&&(((f=this.config)==null?void 0:f.useGuideLine)!==!1&&t.useGuildLine||(m=this.config)!=null&&m.useGuideLine&&t.useGuildLine!==!1)&&(this.GuideLine=pV(this.five,this.config)),(p=this.GuideLine)==null||p.load({lines:[{id:wn(),path:[{type:"CatmullRomCurve3",points:g}],model_style:{visible:!0}}]})}return i?this.setState(i):(this.setState({playing:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing),this.changeSpeed(this.state.speed)),Promise.resolve()}handlePlay(){return new Promise((t,i)=>te(this,null,function*(){var l;this.hooks.emit("play",{userAction:!0});const r=this.getPauseData();let s=(l=r==null?void 0:r.playedProgress)!=null?l:0;(s<0||s>=1)&&(s=0);const o=pg(this.curve,s,this.curveOffset);if(this.hooks.emit("progressChange",s),this.five.setState(Pe(O({},o),{mode:"Model"})),yield this.five.ready(),this.playStartedTime=performance.now(),this.config.allowBroke){const c=this.addInterruptListener(()=>{this.state.playing&&(this.hooks.emit("broke"),this.handlePause(),c(),i(new Error("broke")))})}const a=()=>{const c=this.getProgress();if(c>=1)this.five.off("renderFrame",a),this.setState({playing:!1},{userAction:!1}),this.hooks.emit("end"),this.hooks.emit("progressChange",1),t("end");else if(this.state.playing===!1)this.five.off("renderFrame",a);else if(c>=0){const h=pg(this.curve,c,this.curveOffset);this.hooks.emit("progressChange",c),this.five.setState(h,!0)}};this.five.on("renderFrame",a)}))}handlePause(t){var i;this.state.playing=!1,this.hooks.emit("pause",{userAction:(i=t==null?void 0:t.userAction)!=null?i:!0}),this.setPauseData()}};function dM(e){const n=Math.abs(Math.cos(e.latitude));return new C.Vector3(-Math.sin(e.longitude)*n,-Math.sin(e.latitude),-Math.cos(e.longitude)*n)}function oV(e,n){const t=dM(e),i=dM(n);return t.angleTo(i)}const aV=e=>te(this,null,function*(){try{e().then(()=>{},()=>{}).catch(()=>{})}catch(n){}});function lV(e){return new Promise(n=>{setTimeout(()=>{n()},e)})}function cV(e){return te(this,null,function*(){return new Promise(n=>{if(e.work){n();return}e.once("loaded",()=>n())})})}class Oc extends uM{constructor(t,i){super(t,i);v(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1,config:{speedConfig:{rotateSpeed:.001,rotateSpeedUnit:"rad/ms",moveSpeed:.002,moveSpeedUnit:"m/ms"}}});v(this,"privateState",{playing:!1,currentPlayQueue:[],currentPlayKeyframe:null,broke:!1,modeChanging:!1});this.config=i,Object.assign(window,{__WalkPlugin_DEBUG__:this})}load(t,i,r){return te(this,null,function*(){var h,u;this.clear();const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,o=yield this.formatData(t);this.data=O({id:o.keyframesId},o),this.hooks.emit("dataChange",o,s);let a=[],l;const c=this.data.keyframes.filter(d=>d.data.panoIndex!==void 0);c.filter((d,f)=>{var m;return d.data.panoIndex!==((m=c[f-1])==null?void 0:m.data.panoIndex)}).map(d=>d.data.panoIndex).forEach(d=>{var m,p;const f=(m=this.workUtil.getObserver(d))==null?void 0:m.floorIndex;if(f!==void 0)if(l===f){const g=a.length-1;a[g]=[...(p=a[g])!=null?p:[],d]}else{l=f;const g=a.length;a[g]=[d]}}),!this.GuideLine&&((h=this.config)==null?void 0:h.useGuideLine)!==!1&&o.useGuildLine!==!1&&(this.GuideLine=vg(this.five,this.config)),(u=this.GuideLine)==null||u.load({routes:a.map(d=>({panoIndexList:d})),config:o.guildPluginOptions}),i?this.setState(i,{userAction:r}):(this.setState({playing:!1},{userAction:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing,{userAction:!1}),this.changeSpeed(this.state.speed)),this.clearPauseData(),console.debug("WORKPLUGIN loaded",o),this.hooks.emit("dataLoaded",o)})}playFrom(t){const{index:i,id:r,userAction:s}=t;this.state.playing&&this.setState({playing:!1},{userAction:s}),this.setState({playing:!0},{userAction:s,playFromIndex:i,playFromId:r})}playFromStart(t){return this.playFrom(Pe(O({},t),{index:0}))}formatData(t){return te(this,null,function*(){this.five.work||(yield cV(this.five));const i=(()=>{const r=t;return typeof r=="object"&&r!==null&&wt(r.version)&&r.data?r.data:r})();if(i.keyframes)return{keyframesId:wn(),keyframes:i.keyframes.map((r,s)=>{var l;const o=i.keyframes[s+1],a=(()=>!o||o.start===void 0||r.end===void 0?0:o.start-r.end)();return Pe(O({id:(l=r.uuid)!=null?l:wn(),moveIndex:s,stay:a,index:s},r),{guildPluginOptions:i.guildPluginOptions})})};if(i.panoIndexList){let r=[];const{moveEffect:s,moveToFirstPanoEffect:o,moveToFirstPanoDuration:a}=i;return this.privateState.moveToFirstPanoEffect=o,this.privateState.moveToFirstPanoDuration=a,i.panoIndexList.forEach((l,c)=>{const h=(()=>{var p,g;const u=i.panoIndexList.slice(c).find(y=>y!==l);if(u===void 0)return;const d=this.workUtil.getObserverPosition(l),f=this.workUtil.getObserverPosition(u);if(!f||!d||((p=this.workUtil.getObserver(l))==null?void 0:p.floorIndex)!==((g=this.workUtil.getObserver(u))==null?void 0:g.floorIndex))return;const m=new C.Vector3().subVectors(f,d);return gc(m.normalize())})();i.moveType===void 0||i.moveType==="justMove"?r.push({moveIndex:c,stay:i.stay,data:O({effect:"Move",panoIndex:l,moveEffect:s},h!=null?h:{})}):i.moveType==="moveAndRotate"&&(r.push({moveIndex:c,stay:i.stay,data:{effect:"Move",panoIndex:l,moveEffect:s}}),h&&r.push({moveIndex:c,stay:i.stay,data:O({effect:"Rotate",panoIndex:l},h)}))}),{keyframesId:wn(),keyframes:r.map((l,c)=>O({id:wn(),index:c},l)),guildPluginOptions:i.guildPluginOptions,useGuildLine:i.useGuildLine}}else throw new Error("format error: data no keyframes or no panoIndexList")})}handlePlay(t){return te(this,null,function*(){var f;const{data:i,state:r,privateState:s,hooks:o}=this;if(s.playing||!(i!=null&&i.keyframes)||(i==null?void 0:i.keyframes.length)===0)return;const a=wn();s.playId=a,s.playing=!0,s.broke=!1;const l=i.keyframes,c=this.getPauseData();(t==null?void 0:t.notEmitEvent)!==!0&&o.emit("play",{userAction:(f=t==null?void 0:t.userAction)!=null?f:!0});let h=!1;const d=yield(()=>te(this,null,function*(){var m,p;if((t==null?void 0:t.playFromIndex)!==void 0)return t.playFromIndex;if((t==null?void 0:t.playFromId)!==void 0)return(m=this.data)==null?void 0:m.keyframes.findIndex(g=>g.id===t.playFromId);if(c!=null&&c.id){const g=(p=this.data)==null?void 0:p.keyframes.find(y=>y.id===c.id);if(c!=null&&c.fiveState&&(yield this.move(c.fiveState,{moveEffect:s.moveToFirstPanoEffect,duration:s.moveToFirstPanoDuration})),g){if(g.data.effect==="Move")return g.index;if(g.data.effect==="Rotate"){const y=c.duration!==void 0?c.duration*(1-c.playedProgress):void 0;return yield this.playKeyframe(g,{duration:y}),h=!0,g.index+1}}}}))();this.clearPauseData();for(const m of l){if(s.broke||!r.playing||!s.playing||a!==s.playId)return;if(!(d!==void 0&&m.index<d))try{o.emit("playIndexChange",m.index,m),yield this.playKeyframe(m,{moveEffect:h===!1?s.moveToFirstPanoEffect:void 0,duration:h===!1&&typeof s.moveToFirstPanoDuration=="number"?s.moveToFirstPanoDuration:void 0}),m.stay&&(yield lV(m.stay)),h===!1&&(h=!0)}catch(p){return console.error(p),Promise.resolve("broke")}}r.playing&&a===s.playId&&(this.setState({playing:!1},{userAction:!1}),o.emit("end"),this.clearPauseData())})}handlePause(t){var o;const{state:i,privateState:r,hooks:s}=this;i.playing=!1,r.playing!==!1&&(r.playing=!1,(t==null?void 0:t.userAction)!==!1&&this.setPauseData(),r.broke||this.forceInteruptUpdateCamera(),(t==null?void 0:t.notEmitEvent)!==!0&&s.emit("pause",{userAction:(o=t==null?void 0:t.userAction)!=null?o:!0}))}changeSpeed(t,i=!0){const{state:r,privateState:s,hooks:o}=this,{currentPlayKeyframe:a}=s;if(o.emit("speedChange",t,{userAction:i}),r.playing&&a)try{const l=a.originDuration!==void 0?a.originDuration*(1-this.getProgress()):void 0,c=this.playKeyframe(a.keyframe,{duration:l});s.currentPlayQueue.push(c)}catch(l){}}getProgress(){return this.five.controller.cameraMotion.progress}setPauseData(){var t,i,r;if((t=this.data)!=null&&t.id)return this.pauseDataMap.set(this.data.id,{id:(i=this.privateState.currentPlayKeyframe)==null?void 0:i.keyframe.id,fiveState:this.five.getCurrentState(),duration:(r=this.privateState.currentPlayKeyframe)==null?void 0:r.originDuration,playedProgress:this.getProgress()})}clear(){this.clearPauseData(),this.privateState.currentPlayKeyframe=null}playKeyframe(t,i){return te(this,null,function*(){var s;const{privateState:r}=this;return((s=this.privateState.currentPlayKeyframe)==null?void 0:s.keyframe.id)!==t.id&&(this.privateState.currentPlayKeyframe={keyframe:t}),r.currentPlayQueue.push(this.getPlayPromise(t,i)),this.actionPromiseQueue()})}getPlayPromise(r){return te(this,arguments,function*(t,i={}){var o;const s=t.data;if(i.duration=(o=i.duration)!=null?o:t.start!==void 0&&t.end!==void 0?t.end-t.start:void 0,!!s)return new Promise((a,l)=>{let c=!1;this.addInterruptListener(()=>{if(!c)return this.hooks.emit("broke"),this.privateState.broke=!0,this.setState({playing:!1}),c=!0,l(new Error("play is interupted"))});try{if(c)return;const h=()=>{a(),c=!0};switch(s.effect){case"Move":this.move(s,i).then(h);break;case"Rotate":this.rotate(s,i).then(h);break;default:this.rotate(s,i).then(h)}}catch(h){}})})}actionPromiseQueue(){return te(this,null,function*(){const{privateState:t}=this;return new Promise((i,r)=>{if(t.currentPlayQueue.length===0){i();return}const s=t.currentPlayQueue.shift();if(!s){i();return}s.then(i,r)}).then(()=>t.currentPlayQueue.length===0?Promise.resolve():this.actionPromiseQueue())})}move(t,i){return te(this,null,function*(){if(t.mode&&t.mode!==this.five.currentMode)yield this.changeMode(t);else if(t.panoIndex!==this.five.panoIndex)yield this.changePano(t,i);else return Promise.resolve()})}rotate(t,i){return te(this,null,function*(){if(t.mode&&t.mode!==this.five.currentMode)yield this.changeMode({mode:t.mode,panoIndex:t.panoIndex});else if(t.panoIndex&&t.panoIndex!==this.five.panoIndex)return yield this.changePano(t,i);yield this.updateCamera(t,i)})}updateCamera(r){return te(this,arguments,function*(t,i={}){const{five:s,privateState:o,state:a}=this,l=(()=>{var f,m;const u=(f=a.config)==null?void 0:f.speedConfig,d=(m=t.rotateSpeed)!=null?m:u==null?void 0:u.rotateSpeed;if((u==null?void 0:u.rotateSpeedUnit)===void 0)return d;if(d!==void 0)return u.rotateSpeedUnit==="rad/ms"?d:d/1e3})(),c=(()=>{if(i.duration)return i.duration;if(l){const u=this.five.getCurrentState();return oV(u,t)/l}return 800})();o.currentPlayKeyframe&&(o.currentPlayKeyframe.originDuration=c);const h=this.getSpeededDuration(c);return new Promise(u=>{aV(()=>s.updateCamera(t,h)),setTimeout(()=>u(),h)})})}changePano(t,i){return te(this,null,function*(){const{five:r,privateState:s,state:o}=this;if(typeof t.panoIndex!="number"||t.panoIndex===r.panoIndex)return;const a=r.getCurrentState().mode!=="Panorama";a&&(this.privateState.modeChanging=!0);const l=(()=>{var d,f;const h=(d=o.config)==null?void 0:d.speedConfig,u=(f=t.moveSpeed)!=null?f:h==null?void 0:h.moveSpeed;if((h==null?void 0:h.moveSpeedUnit)===void 0)return u;if(u!==void 0)return h.moveSpeedUnit==="m/ms"?u:u/1e3})(),c=(()=>{if(i!=null&&i.duration)return i.duration;if(l&&typeof r.panoIndex=="number"&&typeof t.panoIndex=="number"){const h=this.workUtil.getObserverPosition(r.panoIndex),u=this.workUtil.getObserverPosition(t.panoIndex);return h&&u?h.distanceTo(u)/l:800}return 800})();s.currentPlayKeyframe&&(s.currentPlayKeyframe.originDuration=c),yield new Promise(h=>{var u,d,f;this.fiveUtil.moveToPano(t.panoIndex,{latitude:t.latitude,longitude:t.longitude,fov:t.fov,duration:this.getSpeededDuration(c),effect:(f=(d=i==null?void 0:i.moveEffect)!=null?d:(u=this.state.config)==null?void 0:u.moveEffect)!=null?f:t.moveEffect,moveCancelCallback:()=>h(),moveEndCallback:()=>h()}),a&&r.once("panoArrived",()=>h())}),a&&(this.privateState.modeChanging=!1)})}changeMode(t,i){return te(this,null,function*(){t.mode&&t.mode!==this.five.currentMode&&(this.privateState.modeChanging=!0,yield this.five.changeMode(t.mode,t,i),this.privateState.modeChanging=!1)})}}class fM{constructor(n){v(this,"id");v(this,"renderID");v(this,"isGuideLine",!0);v(this,"panoramaItem");v(this,"modelItem");v(this,"hooks",new Pn);v(this,"_visible",!0);v(this,"plugin");v(this,"five");v(this,"logError",n=>nw("GuideLineItem: ",n));this.id=n.id,this.five=n.five,this.plugin=n.plugin,this.panoramaItem=new dg(this.five,{mode:"panorama",plugin:this.plugin,parent:this}),this.modelItem=new dg(this.five,{mode:"model",plugin:this.plugin,parent:this})}get visible(){return this._visible}setData(n){this.setDataByMode("panorama",n),this.setDataByMode("model",n)}setDataByMode(n,t){var u;const i=n==="panorama"?this.panoramaItem:this.modelItem,r=n==="panorama"?t.panorama_style:t.model_style,s=n==="panorama"&&t.panorama_style.use_auto_depthtest,o=t.panorama_style.auto_depth_test_effect_distance,a=t.path,l=r,c=r,h=r;if(t.pano_group){const d=n==="panorama"&&t.panorama_style.skip_group===!0;i.setGeometryByPanoGroup(t.pano_group,Pe(O({skipPanoGroup:d},l),{useAutoDepthTest:s,autoDepthTestEffectDistance:o}))}else t.path&&i.setGeometryByPath(a,Pe(O({},l),{useAutoDepthTest:s,autoDepthTestEffectDistance:o}));i.name=t.name,i.setMeshStyle(h),i.setMartial(c),i.setVisibleFloorIndexes((u=t.visible_floor_indexes)!=null?u:null),i.setStartTag(r==null?void 0:r.start_tag),i.setEndTag(r==null?void 0:r.end_tag)}show(){this._visible=!0,this.hooks.emit("show",{userAction:!0})}hide(){this._visible=!1,this.hooks.emit("hide",{userAction:!0})}dispose(){this.panoramaItem.dispose(),this.modelItem.dispose()}walk(n){return te(this,null,function*(){if(this.hooks.emit("walkStart",{userAction:!0}),this.panoramaItem.panoGroup.length){const t=O({panoIndexList:this.panoramaItem.panoGroup},n),[i]=yield Zs(uV(this.five,t));if(i)return this.logError(i.message)}else{const t={path:this.panoramaItem.curvePath},[i]=yield Zs(hV(this.five,t));if(i)return this.logError(i.message)}this.hooks.emit("walkEnded",{userAction:!0})})}}function hV(e,n){return te(this,null,function*(){const t=new mg(e);yield t.load(n),t.playFromStart()})}function uV(e,n){return te(this,null,function*(){if(n.panoIndexList.length===0)return;const t=e.getCurrentState();t.mode!=="Panorama"&&(yield Pm(e,["Panorama",{longitude:t.longitude,latitude:0,panoIndex:n.panoIndexList[0]}]));const i=new Oc(e);yield i.load(n),yield new Promise((r,s)=>{const o=e.getCurrentState();let a=n.panoIndexList.slice();o.panoIndex===a[0]&&c(o.panoIndex),i.playFromStart();function l(f){if(f!=="Panorama")return u(new Error("mode not match"))}function c(f){const m=a[0];if(a=a.slice(1),f!==m)return u(new Error("panoIndex not match, wanted: "+m+", got: "+f));if(a.length===0)return d()}function h(){e.off("modeChange",l),e.off("panoArrived",c)}function u(f){h(),s(f)}function d(){h(),r()}e.on("modeChange",l),e.on("panoArrived",c)})})}const dV=Object.freeze(Object.defineProperty({__proto__:null,GuideLineItem:fM},Symbol.toStringTag,{value:"Module"})),gg="GuideLinePlugin",pM=`${gg}`;let fV=class extends Or{constructor(t,i){super(t,i);v(this,"name",gg);v(this,"cruisePlugin");v(this,"itemMap",new Map);v(this,"state",{visible:!1,enabled:!0});v(this,"data");v(this,"heightOffset",0);v(this,"_config");v(this,"_disposed",!1);v(this,"disposedErrorLog",()=>{console.error(`${pM} is disposed`)});this._config=i!=null?i:{},this.cruisePlugin=new Oc(t),Object.assign(window,{[`__${gg}_DEBUG__`]:this})}get config(){return this._config}get disposed(){return this._disposed}load(t,i,r=!0){return te(this,null,function*(){var f,m,p,g,y,b,A,w;const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,o=yield this.formatData(t);this.hooks.emit("dataChange",o,s),this.data=o;const a=o.config,c={panorama_style:{visible:!!(!o.lines&&o.routes),unit_length:(f=a==null?void 0:a.unitHeight)!=null?f:.4,width:(m=a==null?void 0:a.unitWidth)!=null?m:.6,texture:{url:(p=a==null?void 0:a.arrowTextureUrl)!=null?p:this.staticPrefix+"/release/web/arrow-white.5c2c79a5.png"},use_auto_depthtest:(g=this.config.useAutoDepthTest)!=null?g:!1,auto_depth_test_effect_distance:this.config.autoDepthTestEffectDistance}},h=(b=(y=o.routes)==null?void 0:y.map(x=>{var M;return Ht({},c,{id:(M=x.id)!=null?M:wn(),pano_group:x.panoIndexList})}))!=null?b:[],u=(w=(A=o.lines)==null?void 0:A.map(x=>Ht({},c,x)))!=null?w:[],d=[...h,...u];yield Ca(this.five),this.clear(),d.forEach(x=>{this.addGuideLineItem(x)}),this.updateTagsEnable(),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),i&&this.setState(i,{userAction:r}),this.hooks.emit("dataLoaded",o),console.debug(`${pM} loaded`,o)})}formatData(t){return te(this,null,function*(){return this.getDataWithoutVersion(t)})}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.disposed||(this.clear(),this.hooks.emit("dispose"))}setState(t,i){var s;if(this.disposed)return this.disposedErrorLog();const r=O({},this.state);this.state=O(O({},this.state),t),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible,i==null?void 0:i.userAction),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled,i==null?void 0:i.userAction),Fn(r,this.state,{deep:!0})||(this.hooks.emit("stateChange",{state:this.state,prevState:r,userAction:(s=i==null?void 0:i.userAction)!=null?s:!0}),this.five.needsRender=!0)}addGuideLineItem(t){const i=t.render_id||t.id,r=this.itemMap.get(i);r&&this.removeGuideLineItem(r);const s=new fM({five:this.five,id:i,plugin:this});return this.itemMap.set(i,s),t&&s.setData(t),this.heightOffset+=1e-4,s.modelItem.setHeightOffset(this.heightOffset),s.panoramaItem.setHeightOffset(this.heightOffset),s}getGuideLineItemByID(t){return this.itemMap.get(t)}removeGuideLineItem(t){this.itemMap.delete(t.id),t.panoramaItem.dispose(),t.modelItem.dispose()}updateTagsEnable(){const t=[];function i(o){return Array.isArray(o)&&o.every(a=>typeof a=="number")}function r(o,a){return new C.Vector3().fromArray(o).distanceTo(new C.Vector3().fromArray(a))<.01}function s(o){var l;const a=(l=o==null?void 0:o.tag)==null?void 0:l.position;return i(a)?t.every(c=>{var h;return i((h=c.tag)==null?void 0:h.position)?!r(a,c.tag.position):!0}):!1}this.itemMap.forEach(o=>{const a=o.modelItem.startTagContainer,l=o.modelItem.endTagContainer,c=s(a);c&&t.push(a),a==null||a.plugin.setState({enabled:c},{});const h=s(l);h&&t.push(l),l==null||l.plugin.setState({enabled:h},{})})}clear(){this.heightOffset=0,this.itemMap.forEach(t=>{this.removeGuideLineItem(t)})}handleEnable(t,i=!0){this.hooks.emit(t?"enable":"disable",{userAction:i})}handleVisible(t,i=!0){this.state.enabled&&this.hooks.emit(t?"show":"hide",{userAction:i})}getDataWithoutVersion(t){return typeof t=="object"&&t!==null&&t.data?t.data:t}};const vg=(e,n)=>new fV(e,n),pV=vg,mV=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),gV=(e,n)=>new Oc(e,n),vV=(e,n)=>new mg(e,n);function mM(e,n,t){if(t){const r=new C.Vector3().subVectors(e.position,t).applyQuaternion(e.quaternion.clone().inverse()).applyQuaternion(n).add(t);e.position.copy(r)}e.quaternion.copy(n)}class Rc extends ei{constructor(t,i){var r,s;super();v(this,"originObject3D");v(this,"onRender");v(this,"positionFrom");this.originObject3D=t,this.onRender=(r=i==null?void 0:i.onRender)!=null?r:()=>{},this.positionFrom=(s=i==null?void 0:i.positionFrom)!=null?s:"objectPosition"}get helperObject(){return this}render(){this.onRender()}enable(){this.parent.children.includes(this)||this.parent.add(this)}disable(){this.removeFromParent()}show(){this.visible=!0,this.render()}hide(){this.visible=!1,this.render()}raycasterIntersectObject(t,i=[]){return t.intersectObject(this,!0,i)}initialPosition(t){var i,r;this.positionFrom==="objectPosition"?this.position.copy(this.originObject3D.position):this.positionFrom==="boundingBox"?this.position.copy((i=va(this.originObject3D))==null?void 0:i.getCenter(new C.Vector3).applyMatrix4(this.originObject3D.matrixWorld)):this.positionFrom==="boundingSphere"?this.position.copy((r=ub(this.originObject3D))==null?void 0:r.center.clone().applyMatrix4(this.originObject3D.matrixWorld)):this.positionFrom instanceof ee.Vector3?this.position.copy(this.positionFrom):this.positionFrom instanceof Function&&this.position.copy(this.positionFrom(this.originObject3D)),t&&this.position.add(t)}setScaleByCamera(t){}initQuaternion(){this.quaternion.copy(this.originObject3D.quaternion)}applyHelperScaleMatrix4(t,i){this.scale.applyMatrix4(t)}setHelperQuaternion(t,i){mM(this,t,i)}applyHelperQuaternion(t,i){if(i){const r=new ee.Vector3().subVectors(this.position,i).applyQuaternion(t).add(i);this.position.copy(r)}this.applyQuaternion(t)}dispose(){this.removeFromParent()}}class yV extends Rc{}class bV extends Rc{}class AV extends Rc{}class wV extends Rc{}class xV extends Rc{}class MV extends C.Group{constructor(t){super();v(this,"direction");this.direction=t||"x"}}class gM extends C.Mesh{constructor(t,i,r){super(t,i);v(this,"direction");this.direction=r||"x"}}function CV(e,n){const{offsetWidth:t,offsetHeight:i}=n,{top:r,left:s}=n.getBoundingClientRect();return Object.assign(new C.Vector2,{x:(e.x-s)/t*2-1,y:-(e.y-r)/i*2+1})}function Sd(e,n,t){if(!n||!t||!e)return;const i=CV(n,t);if(Math.abs(i.x)===1||Math.abs(i.y)===1)return;const r=new C.Raycaster;return r.setFromCamera(i,e),r.params.Points.threshold=.1,r}function PV(e,n){return!(Math.abs(e.x-n.x)>1e-5||Math.abs(e.y-n.y)>1e-5||Math.abs(e.z-n.z)>1e-5)}class yg extends MV{constructor(t){var h;super(t.direction);v(this,"line");v(this,"arrow");v(this,"lineHeight",.4);v(this,"arrowHeight",.1);this.name="ArrowGroup";const i=new C.Color((h=t.color)!=null?h:16214315),r=new C.MeshBasicMaterial({color:i,depthTest:!1,depthWrite:!1,opacity:1,transparent:!0,side:C.DoubleSide});this.renderOrder=50;const s=new C.ConeGeometry(.04,.1,32),o=new gM(s,r.clone(),t.direction);o.name=`arrow-${t.direction}`,this.arrow=o;const a=.004,l=new C.CylinderGeometry(a,a,.4,32),c=new gM(l,r.clone(),t.direction);c.name=`line-${t.direction}`,this.line=c,this.formatArrow(),this.formatLine(),this.add(this.arrow,this.line)}formatArrow(){this.arrow.geometry.translate(0,this.lineHeight+this.arrowHeight/2,0),this.direction==="x"?(this.arrow.geometry.rotateX(Math.PI/2),this.arrow.geometry.rotateY(Math.PI/2)):this.direction==="z"&&this.arrow.geometry.rotateX(Math.PI/2)}formatLine(){this.line.geometry.translate(0,this.lineHeight/2,0),this.direction==="x"?(this.line.geometry.rotateX(Math.PI/2),this.line.geometry.rotateY(Math.PI/2)):this.direction==="z"&&this.line.geometry.rotateX(Math.PI/2)}}const bg={X:15618642,Y:4765519,Z:4227839};class Ja{static get X(){return new C.Color(bg.X).convertSRGBToLinear().clone()}static get Y(){return new C.Color(bg.Y).convertSRGBToLinear().clone()}static get Z(){return new C.Color(bg.Z).convertSRGBToLinear().clone()}}function Ag(e,n){const r=e.position.distanceTo(n),s=e.fov,o=r/3,a=s/90;return o*a}class EV extends yV{constructor(t,i){super(t,i);v(this,"xArrow");v(this,"yArrow");v(this,"zArrow");i.xArrowEnable!==!1&&(this.xArrow=new yg({direction:"x",color:Ja.X})),i.yArrowEnable!==!1&&(this.yArrow=new yg({direction:"y",color:Ja.Y})),i.zArrowEnable!==!1&&(this.zArrow=new yg({direction:"z",color:Ja.Z})),this.add(...[this.xArrow,this.yArrow,this.zArrow].filter(Boolean))}show(){super.show(),this.xArrow&&(this.xArrow.visible=!0),this.yArrow&&(this.yArrow.visible=!0),this.zArrow&&(this.zArrow.visible=!0)}setScaleByCamera(t){this.scale.setScalar(Ag(t,this.position))}showDraggingHelper(t){this.xArrow&&(this.xArrow.visible=t.includes("x")),this.yArrow&&(this.yArrow.visible=t.includes("y")),this.zArrow&&(this.zArrow.visible=t.includes("z"))}dispose(){this.remove(...[this.xArrow,this.yArrow,this.zArrow].filter(Boolean)),super.dispose()}}function ao(e,n){return _V(document.createElement(n!=null?n:"div"),e)}function _V(e,n){if(!n)return e;for(const t in n)t&&n[t]&&(e.style[t]=n[t]);return e}function SV(e){const n=ao(O({position:"absolute",display:"block",borderRadius:"4px",paddingTop:"1px",paddingBottom:"1px",paddingLeft:"4px",paddingRight:"4px",pointerEvents:"none",userSelect:"none",zIndex:"99999",backgroundColor:"rgba(0,0,0,0.7)",fontSize:"12px",color:"#fff",letterSpacing:"0",lineHeight:"18px"},e)),t=()=>{n.style.display!=="block"&&n.style.top&&n.style.left&&(n.style.display="block")};return{element:n,show:t,hide:()=>{n.style.display="none",n.style.top="",n.style.left=""},setLeftTop:(s,o)=>{n.style.left=s,n.style.top=o,t()}}}class IV extends AV{constructor(t,i){super(t,i);v(this,"xCircle");v(this,"yCircle");v(this,"zCircle");v(this,"children",[]);v(this,"angleTips");v(this,"container");(i==null?void 0:i.yzCircleEnable)!==!1&&(this.xCircle=new wg({direction:"x",color:Ja.X})),(i==null?void 0:i.xzCircleEnable)!==!1&&(this.yCircle=new wg({direction:"y",color:Ja.Y})),(i==null?void 0:i.xyCircleEnable)!==!1&&(this.zCircle=new wg({direction:"z",color:Ja.Z})),i!=null&&i.container&&(i==null?void 0:i.angleTipsEnable)!==!1&&(this.container=i==null?void 0:i.container,this.angleTips=SV({display:"none"}),this.container.appendChild(this.angleTips.element)),this.add(...[this.xCircle,this.yCircle,this.zCircle].filter(Boolean)),this.show()}hide(){this.children.forEach(t=>t.hide())}show(){var t;this.children.forEach(i=>i.showCircle()),(t=this.angleTips)==null||t.hide()}setScaleByCamera(t){this.scale.setScalar(Ag(t,this.position))}showDraggingHelper(t){var i;this.hide(),this.children.filter(r=>t.includes(r.direction)).forEach(r=>r.showRing()),(i=this.angleTips)==null||i.show()}dispose(){var t,i;this.removeFromParent(),(i=(t=this.angleTips)==null?void 0:t.element)==null||i.remove()}}class wg extends C.Group{constructor(t){super();v(this,"direction");v(this,"circle");v(this,"ring");v(this,"angleSector");this.direction=t.direction,this.circle=new TV(t),this.ring=new DV(t),this.angleSector=new LV(t),this.add(this.circle,this.ring,this.angleSector),this.direction==="y"?this.rotateX(Math.PI/2):this.direction==="x"&&this.rotateY(-Math.PI/2)}showCircle(){this.add(this.circle),this.remove(this.ring,this.angleSector)}showRing(){this.add(this.ring,this.angleSector),this.remove(this.circle)}hide(){this.remove(this.ring,this.angleSector,this.circle)}}let TV=class extends C.Mesh{constructor(t){var i;super();v(this,"direction");v(this,"gapAngle",.02);v(this,"geometry",new C.RingGeometry(.25,.3,20,8,this.gapAngle,Math.PI/2-this.gapAngle*2));this.material=new C.MeshBasicMaterial({opacity:.6,color:(i=t.color)!=null?i:16777215,transparent:!0,side:C.DoubleSide,depthTest:!1,depthWrite:!1}),this.renderOrder=50,this.direction=t.direction,this.geometry.name=`RotateHelperCircleGeometry-${this.direction}`}};class DV extends C.Group{constructor(t){super();v(this,"direction");this.direction=t.direction;const i=.015,r=new Array(8).fill(null).map((s,o)=>{const a=new C.RingGeometry(.25,.3,20,8,Math.PI/4*o+i,Math.PI/4-i*2),l=new C.MeshBasicMaterial({opacity:1,color:16777215,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide});this.renderOrder=50;const c=new C.Mesh(a,l);return c.name=`AxesDashedRing-${this.direction}-${o}`,c});this.add(...r)}}class LV extends C.Mesh{constructor(t){var r;super();v(this,"direction");v(this,"baseAxes");v(this,"angleDirection");switch(t.direction){case"x":this.baseAxes=new C.Vector3(0,0,1);break;case"y":this.baseAxes=new C.Vector3(1,0,0);break;case"z":this.baseAxes=new C.Vector3(1,0,0);break}const i=.3+5e-4;this.geometry=new C.CircleGeometry(i,48,0,1e-4),this.material=new C.MeshBasicMaterial({opacity:.4,color:(r=t.color)!=null?r:16777215,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide}),this.renderOrder=50,this.direction=t.direction,this.angleDirection=this.direction==="z"?1:-1}}function kV(){const e=ao({width:"100%",height:"100%",left:"0",top:"0",position:"absolute",pointerEvents:"none"}),n=ao({boxSizing:"border-box",width:"100%",height:"100%",left:"0",top:"0",position:"relative",display:"flex",alignItems:"center",justifyContent:"center"}),t=ao({boxSizing:"border-box",width:"100%",height:"100%",left:"0",top:"0",position:"absolute",border:"1px solid rgba(255,255,255,0.4)"});e.appendChild(n),n.appendChild(t);const i="-4px",r={direction:"nesw",element:Cs({cursor:"nesw-resize",left:i,bottom:i})},s={direction:"ns",element:Cs({cursor:"ns-resize",bottom:i})},o={direction:"nwse",element:Cs({cursor:"nwse-resize",right:i,bottom:i})},a={direction:"ew",element:Cs({cursor:"ew-resize",right:i})},l={direction:"nesw",element:Cs({cursor:"nesw-resize",right:i,top:i})},c={direction:"ns",element:Cs({cursor:"ns-resize",top:i})},h={direction:"nwse",element:Cs({cursor:"nwse-resize",left:i,top:i})},u={direction:"ew",element:Cs({cursor:"ew-resize",left:i})};return new Array(s,a,c,u,r,o,l,h).forEach(f=>n.appendChild(f.element)),{container:e,squares:[r,s,o,a,l,c,h,u]}}function Cs(e){const n=ao(O({background:"#FFFFFF",width:"9px",height:"9px",position:"absolute",pointerEvents:"none"},e)),t=ao({width:"15px",height:"15px",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",pointerEvents:"none"}),i=ao({width:"15px",height:"15px",cursor:e==null?void 0:e.cursor,pointerEvents:"auto",background:"transparent"});return i.draggable=!0,t.appendChild(i),n.appendChild(t),n}class OV extends xV{constructor(t,i,r,s){super(t);v(this,"points",[]);v(this,"cornerPositions",[]);v(this,"css3DInstance");v(this,"plane");v(this,"css3DRenderer",new Ma);v(this,"camera");v(this,"scene");v(this,"container");v(this,"enabled",!1);this.camera=r,this.scene=s,this.container=i,this.initRectangleScaleHelper()}get helperObject(){var t;if(!((t=this.css3DInstance)!=null&&t.css3DObject))throw new Error("css3DInstance is not initialized");return this.css3DInstance.css3DObject}applyMatrix4(t){var i;super.applyMatrix4(t),this.helperObject.applyMatrix4(t),(i=this.plane)==null||i.applyMatrix4(t),this.cornerPositions.forEach(r=>r.applyMatrix4(t))}showDraggingHelper(){}applyHelperScaleMatrix4(t,i){var r;(r=this.plane)==null||r.scale.applyMatrix4(t),this.helperObject.applyScaleMatrix4(t)}updatePoints(){const t=this.calculatePointPosition(this.cornerPositions);this.points.forEach((i,r)=>{i.position.copy(t[r])})}applyHelperQuaternion(t,i){var s;const r=(s=this.css3DInstance)==null?void 0:s.css3DObject;if(r){const o=new C.Vector3().subVectors(r.position,i).applyQuaternion(t).add(i);r.position.copy(o),r.applyQuaternion(t)}if(this.plane){const o=new C.Vector3().subVectors(this.plane.position,i).applyQuaternion(t).add(i);this.plane.position.copy(o),this.plane.applyQuaternion(t)}this.cornerPositions.forEach(o=>{const a=new C.Vector3().subVectors(o,i).applyQuaternion(t).add(i);o.copy(a)})}enable(){var t;this.enabled||(this.enabled=!0,(t=this.css3DInstance)==null||t.enable(),this.plane&&this.scene.add(this.plane))}disable(){var t;this.enabled&&(this.enabled=!1,(t=this.css3DInstance)==null||t.disable(),this.plane&&this.scene.remove(this.plane))}show(){var t;(t=this.css3DInstance)==null||t.show(),this.plane&&(this.plane.visible=!0)}hide(){var t;(t=this.css3DInstance)==null||t.hide(),this.plane&&(this.plane.visible=!1)}dispose(){this.disable(),this.css3DRenderer.dispose()}initRectangleScaleHelper(){var a,l;const t=this.getCornerPositions();if(!t)return;this.cornerPositions=t;const i=this.css3DRenderer.create3DElement(this.camera,t,{ratio:.003});if(!i)return;this.css3DInstance=i,i.appendToElement(this.container);const r=i.css3DObject.container,{container:s,squares:o}=kV();this.points=o.map((c,h)=>({direction:c.direction,point:c.element,position:this.calculatePointPosition(t)[h]})),r.insertBefore(s,(a=r.children[0])!=null?a:null),this.helperObject.position.copy(this.originObject3D.position),(l=this.plane)==null||l.position.copy(this.originObject3D.position)}getCornerPositions(){const{originObject3D:t}=this;if(t.isCSS3DObjectPlus)return t.cornerPoints;console.error("当前物体暂时不支持 ScaleHelper")}calculatePointPosition(t){return[t[0].clone(),t[0].clone().add(t[1]).divideScalar(2),t[1].clone(),t[1].clone().add(t[2]).divideScalar(2),t[2].clone(),t[2].clone().add(t[3]).divideScalar(2),t[3].clone(),t[3].clone().add(t[0]).divideScalar(2)]}}class RV extends bV{constructor(t){super(t);v(this,"box");v(this,"outline");v(this,"originObject");v(this,"positionAttribute");this.originObject=t,this.positionAttribute=new C.BufferAttribute(new Float32Array(8*3),3),this.box=this.createBox(),this.outline=this.createOutline(),this.add(this.box,this.outline),this.update()}raycasterIntersectObject(t,i){return t.intersectObject(this,!1,i)}raycast(t,i){this.box.raycast(t,i)}update(){const t=va(this.originObject);if(!t)return;const{min:i,max:r}=t;this.positionAttribute.setXYZ(0,r.x,r.y,r.z),this.positionAttribute.setXYZ(1,i.x,r.y,r.z),this.positionAttribute.setXYZ(2,i.x,i.y,r.z),this.positionAttribute.setXYZ(3,r.x,i.y,r.z),this.positionAttribute.setXYZ(4,r.x,r.y,i.z),this.positionAttribute.setXYZ(5,i.x,r.y,i.z),this.positionAttribute.setXYZ(6,i.x,i.y,i.z),this.positionAttribute.setXYZ(7,r.x,i.y,i.z),this.positionAttribute.needsUpdate=!0}createOutline(){const t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new C.BufferGeometry;i.setIndex(new C.BufferAttribute(t,1)),i.setAttribute("position",this.positionAttribute);const r=new C.LineBasicMaterial({color:64767,linewidth:1,opacity:1,toneMapped:!1}),s=new C.LineSegments(i,r);return s.matrixAutoUpdate=!1,s}createBox(){const t=new Uint16Array([0,1,2,0,2,3,0,3,7,0,7,4,0,4,5,0,5,1,6,1,5,6,2,1,6,5,4,6,4,7,6,3,2,6,7,3]),i=new C.BufferGeometry;i.setIndex(new C.BufferAttribute(t,1)),i.setAttribute("position",this.positionAttribute);const r=new C.MeshBasicMaterial({color:64767,opacity:.1,depthTest:!1,transparent:!0});return new C.Mesh(i,r)}}function Ot(e,n){this._camera=e||null,this._domElement=n||document,this._raycaster=new C.Raycaster,this._selected=null,this._boundObjs={};var t=this;this._$onClick=function(){t._onClick.apply(t,arguments)},this._$onDblClick=function(){t._onDblClick.apply(t,arguments)},this._$onMouseMove=function(){t._onMouseMove.apply(t,arguments)},this._$onMouseDown=function(){t._onMouseDown.apply(t,arguments)},this._$onMouseUp=function(){t._onMouseUp.apply(t,arguments)},this._$onTouchMove=function(){t._onTouchMove.apply(t,arguments)},this._$onTouchStart=function(){t._onTouchStart.apply(t,arguments)},this._$onTouchEnd=function(){t._onTouchEnd.apply(t,arguments)},this._$onContextmenu=function(){t._onContextmenu.apply(t,arguments)},this._domElement.addEventListener("click",this._$onClick,!1),this._domElement.addEventListener("dblclick",this._$onDblClick,!1),this._domElement.addEventListener("mousemove",this._$onMouseMove,!1),this._domElement.addEventListener("mousedown",this._$onMouseDown,!1),this._domElement.addEventListener("mouseup",this._$onMouseUp,!1),this._domElement.addEventListener("touchmove",this._$onTouchMove,!1),this._domElement.addEventListener("touchstart",this._$onTouchStart,!1),this._domElement.addEventListener("touchend",this._$onTouchEnd,!1),this._domElement.addEventListener("contextmenu",this._$onContextmenu,!1)}Ot.prototype.destroy=function(){this._domElement.removeEventListener("click",this._$onClick,!1),this._domElement.removeEventListener("dblclick",this._$onDblClick,!1),this._domElement.removeEventListener("mousemove",this._$onMouseMove,!1),this._domElement.removeEventListener("mousedown",this._$onMouseDown,!1),this._domElement.removeEventListener("mouseup",this._$onMouseUp,!1),this._domElement.removeEventListener("touchmove",this._$onTouchMove,!1),this._domElement.removeEventListener("touchstart",this._$onTouchStart,!1),this._domElement.removeEventListener("touchend",this._$onTouchEnd,!1),this._domElement.removeEventListener("contextmenu",this._$onContextmenu,!1)},Ot.eventNames=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu","touchstart","touchend"],Ot.prototype._getRelativeMouseXY=function(e){var n=e.target||e.srcElement;n.nodeType===3&&(n=n.parentNode);var t={x:0,y:0},i=n,r=getComputedStyle(i,null);t.y+=parseInt(r.getPropertyValue("padding-top"),10),t.x+=parseInt(r.getPropertyValue("padding-left"),10);do t.x+=i.offsetLeft,t.y+=i.offsetTop,r=getComputedStyle(i,null),t.x+=parseInt(r.getPropertyValue("border-left-width"),10),t.y+=parseInt(r.getPropertyValue("border-top-width"),10);while(i=i.offsetParent);var s={width:n===window?window.innerWidth:n.offsetWidth,height:n===window?window.innerHeight:n.offsetHeight};return{x:Number((e.pageX-t.x)/s.width)*2-1,y:-((e.pageY-t.y)/s.height)*2+1}},Ot.prototype._objectCtxInit=function(e){e._3xDomEvent={}},Ot.prototype._objectCtxDeinit=function(e){delete e._3xDomEvent},Ot.prototype._objectCtxIsInit=function(e){return!!e._3xDomEvent},Ot.prototype._objectCtxGet=function(e){return e._3xDomEvent},Ot.prototype.camera=function(e){return e&&(this._camera=e),this._camera},Ot.prototype.bind=function(e,n,t,i){console.assert(Ot.eventNames.indexOf(n)!==-1,"not available events:"+n),this._objectCtxIsInit(e)||this._objectCtxInit(e);var r=this._objectCtxGet(e);r[n+"Handlers"]||(r[n+"Handlers"]=[]),r[n+"Handlers"].push({callback:t,useCapture:i}),this._boundObjs[n]===void 0&&(this._boundObjs[n]=[]),this._boundObjs[n].push(e)},Ot.prototype.addEventListener=Ot.prototype.bind,Ot.prototype.unbind=function(e,n,t,i){console.assert(Ot.eventNames.indexOf(n)!==-1,"not available events:"+n),this._objectCtxIsInit(e)||this._objectCtxInit(e);var r=this._objectCtxGet(e);r[n+"Handlers"]||(r[n+"Handlers"]=[]);for(var s=r[n+"Handlers"],o=0;o<s.length;o++){var a=s[o];if(t==a.callback&&i==a.useCapture){s.splice(o,1);break}}var l=this._boundObjs[n].indexOf(e);this._boundObjs[n].splice(l,1)},Ot.prototype.removeEventListener=Ot.prototype.unbind,Ot.prototype._bound=function(e,n){var t=this._objectCtxGet(n);return t?!!t[e+"Handlers"]:!1},Ot.prototype._onMove=function(e,n,t,i){var r=this._boundObjs[e];if(!(r===void 0||r.length===0)){var s=new C.Vector2;s.set(n,t),this._raycaster.setFromCamera(s,this._camera);var o=this._raycaster.intersectObjects(r),a=this._selected;if(o.length>0){var l,c,h,u=o[0],d=u.object;this._selected=d,h=this._bound("mousemove",d),a!=d&&(l=this._bound("mouseover",d),c=a&&this._bound("mouseout",a))}else c=a&&this._bound("mouseout",a),this._selected=null;h&&this._notify("mousemove",d,i,u),l&&this._notify("mouseover",d,i,u),c&&this._notify("mouseout",a,i,u)}},Ot.prototype._onEvent=function(e,n,t,i){var r=this._boundObjs[e];if(!(r===void 0||r.length===0)){var s=new C.Vector2;s.set(n,t),this._raycaster.setFromCamera(s,this._camera);var o=this._raycaster.intersectObjects(r,!0);if(o.length!==0){for(var a=o[0],l=a.object,c=this._objectCtxGet(l),h=l.parent;typeof c=="undefined"&&h;)c=this._objectCtxGet(h),h=h.parent;c&&this._notify(e,l,i,a)}}},Ot.prototype._notify=function(e,n,t,i){var r=this._objectCtxGet(n),s=r?r[e+"Handlers"]:null;if(!r||!s||s.length===0){n.parent&&this._notify(e,n.parent,t,i);return}for(var s=r[e+"Handlers"],o=0;o<s.length;o++){var a=s[o],l=!0;a.callback({type:e,target:n,origDomEvent:t,intersect:i,stopPropagation:function(){l=!1}}),l&&a.useCapture===!1&&n.parent&&this._notify(e,n.parent,t,i)}},Ot.prototype._onMouseDown=function(e){return this._onMouseEvent("mousedown",e)},Ot.prototype._onMouseUp=function(e){return this._onMouseEvent("mouseup",e)},Ot.prototype._onMouseEvent=function(e,n){var t=this._getRelativeMouseXY(n);this._onEvent(e,t.x,t.y,n)},Ot.prototype._onMouseMove=function(e){var n=this._getRelativeMouseXY(e);this._onMove("mousemove",n.x,n.y,e),this._onMove("mouseover",n.x,n.y,e),this._onMove("mouseout",n.x,n.y,e)},Ot.prototype._onClick=function(e){this._onMouseEvent("click",e)},Ot.prototype._onDblClick=function(e){this._onMouseEvent("dblclick",e)},Ot.prototype._onContextmenu=function(e){this._onMouseEvent("contextmenu",e)},Ot.prototype._onTouchStart=function(e){return this._onTouchEvent("touchstart",e)},Ot.prototype._onTouchEnd=function(e){return this._onTouchEvent("touchend",e)},Ot.prototype._onTouchMove=function(e){if(e.touches.length==1){var n=Number(e.touches[0].pageX/window.innerWidth)*2-1,t=-(e.touches[0].pageY/window.innerHeight)*2+1;this._onMove("mousemove",n,t,e),this._onMove("mouseover",n,t,e),this._onMove("mouseout",n,t,e)}},Ot.prototype._onTouchEvent=function(e,n){var t=n.touches;if(t.length==0&&(t=n.changedTouches),t.length==1){var i=Number(t[0].pageX/window.innerWidth)*2-1,r=-(t[0].pageY/window.innerHeight)*2+1;this._onEvent(e,i,r,n)}};class zc{constructor(n,t){v(this,"originObject3D");v(this,"hooks");v(this,"preventTapDefaultEvent",!1);v(this,"internalHooks");v(this,"disposers",[]);v(this,"helperObject3D");v(this,"camera");v(this,"model");v(this,"scene");v(this,"container");v(this,"domEvents");v(this,"isDragging",!1);v(this,"enabled",!1);v(this,"name","BaseController");v(this,"boundingBox");v(this,"config");v(this,"onRender");v(this,"onWantsTapGesture",n=>{if(this.getIntersectObject(n))return!1});v(this,"onWantsUpdateCameraDistance",()=>{if(this.camera.isPerspectiveCamera){const n=this.camera;this.helperObject3D.setScaleByCamera(n)}});v(this,"getBox",()=>this.boundingBox?this.boundingBox:(this.boundingBox=va(this.originObject3D),this.boundingBox));var h,u,d;this.hooks=(h=n.sharedHooks)!=null?h:new Pn,this.internalHooks=(u=n.sharedInternalHooks)!=null?u:new Pn,this.camera=n.camera,this.model=n.model,this.originObject3D=n.originObject3D,this.helperObject3D=n.helperObject3D,this.container=n.container,this.scene=n.scene,this.domEvents=new Ot(n.camera,n.container),this.onRender=(d=n.onRender)!=null?d:()=>{},this.config=t!=null?t:{},this.initialHelperPosition(),this.initialHelperQuaternion(),this.onWantsUpdateCameraDistance(),this.enable();const i=this.onSetOriginObjectScale.bind(this),r=this.onSetOriginObjectRotate.bind(this),s=this.onSetOriginObjectPosition.bind(this),o=this.onApplyOriginObjectScale.bind(this),a=this.onApplyOriginObjectRotate.bind(this),l=this.onApplyOriginObjectPosition.bind(this),c=this.initialHelperPosition.bind(this);this.internalHooks.on("setObjectPosition",this.onWantsUpdateCameraDistance),this.internalHooks.on("initialHelperPosition",this.onWantsUpdateCameraDistance),this.internalHooks.on("initialHelperPosition",c),this.internalHooks.on("setObjectScale",i),this.internalHooks.on("setObjectRotate",r),this.internalHooks.on("setObjectPosition",s),this.internalHooks.on("applyObjectPosition",l),this.internalHooks.on("applyObjectRotate",a),this.internalHooks.on("applyObjectScale",o),this.disposers.push(()=>{this.internalHooks.off("setObjectPosition",this.onWantsUpdateCameraDistance),this.internalHooks.off("initialHelperPosition",this.onWantsUpdateCameraDistance),this.internalHooks.off("initialHelperPosition",c),this.internalHooks.off("setObjectScale",i),this.internalHooks.off("setObjectRotate",r),this.internalHooks.off("setObjectPosition",s),this.internalHooks.off("applyObjectPosition",l),this.internalHooks.off("applyObjectRotate",a),this.internalHooks.off("applyObjectScale",o)})}initialHelperPosition(){this.helperObject3D.initialPosition(this.calculateOffset(this.config.offset))}initialHelperQuaternion(){var a,l,c;this.helperObject3D.initQuaternion();const n=(a=this.config.xAxis)!=null?a:new C.Vector3(1,0,0),t=(l=this.config.yAxis)!=null?l:new C.Vector3(0,1,0),i=(c=this.config.zAxis)!=null?c:new C.Vector3(0,0,1),r=new C.Quaternion;r.setFromUnitVectors(new C.Vector3(1,0,0),n.normalize());const s=new C.Quaternion;s.setFromUnitVectors(new C.Vector3(0,1,0),t.normalize());const o=new C.Quaternion;o.setFromUnitVectors(new C.Vector3(0,0,1),i.normalize()),this.helperObject3D.quaternion.premultiply(r),this.helperObject3D.quaternion.premultiply(s),this.helperObject3D.quaternion.premultiply(o)}enable(){this.enabled||(this.enabled=!0,this.scene.add(this.helperObject3D),this.helperObject3D.enable(),this.render())}disable(){this.enabled&&(this.enabled=!1,this.helperObject3D.disable(),this.render())}show(){this.helperObject3D.show(),this.render()}hide(){this.helperObject3D.hide(),this.render()}dispose(){var n;(n=this.disposers)==null||n.forEach(t=>t==null?void 0:t()),this.helperObject3D.dispose(),this.render()}applyHelperMatrix4(n){this.helperObject3D.applyMatrix4(n)}applyHelperQuaternion(n,t){this.helperObject3D.applyHelperQuaternion(n,t)}applyHelperScaleMatrix4(n,t){this.helperObject3D.applyHelperScaleMatrix4(n,t)}onWantsGesture(n,t,i){if(this.isDragging)return!1}onIntersectionOnModelUpdate(n){}onApplyOriginObjectScale(n){this.applyHelperScaleMatrix4(n.matrix,n.origin)}onApplyOriginObjectRotate(n){this.applyHelperQuaternion(n.quaternion,n.origin)}onApplyOriginObjectPosition(n){this.applyHelperMatrix4(n.matrix)}onSetOriginObjectScale(n){this.helperObject3D.scale.copy(n),this.updateOffsetByScale(n)}onSetOriginObjectRotate(n,t){this.helperObject3D.setHelperQuaternion(n,t)}onSetOriginObjectPosition(n){this.helperObject3D.position.copy(n.clone().add(this.calculateOffset(this.config.offset)))}render(){this.onRender()}updateOffsetByScale(n){if(this.boundingBox&&this.config.offset){const t=this.originObject3D.position,i=new C.Vector3().subVectors(this.boundingBox.max,t).multiply(n).add(t),r=new C.Vector3().subVectors(this.boundingBox.min,t).multiply(n).add(t),s=this.calculateOffset(this.config.offset,{min:r,max:i});this.helperObject3D.initialPosition(s)}}hoverListener(n,t=16777215,i=1){const r=Ir(n).filter(wt),s=[];for(const o of r)if(o.material||o instanceof C.Group){const a=o instanceof C.Group?o.children.filter(d=>d instanceof C.Mesh):[o];a.forEach(d=>{d.__originalColor__=d.material.color.clone(),d.__originalOpacity__=d.material.opacity});const l=()=>{a.forEach(d=>{d.material.color.set(t),d.material.opacity=i}),this.render()},c=()=>{a.forEach(d=>{d.material.color.copy(d.__originalColor__),d.material.opacity=d.__originalOpacity__}),this.render()},h=()=>{this.isDragging||l()},u=()=>{this.isDragging||c()};for(const d of a)this.domEvents.addEventListener(d,"mouseover",h),this.domEvents.addEventListener(d,"mouseout",u),this.hooks.on("moveStart",l),this.hooks.on("moveEnd",c),this.hooks.on("rotateEnd",c),s.push(()=>{this.domEvents.removeEventListener(d,"mouseover",h),this.domEvents.removeEventListener(d,"mouseout",u),this.hooks.off("moveStart",l),this.hooks.off("moveEnd",c),this.hooks.off("rotateEnd",c)})}return()=>s.forEach(o=>o==null?void 0:o())}getIntersectObject(n){const t=this.camera.position,i=this.helperObject3D;if(!i)return;const r=this.helperObject3D.raycasterIntersectObject(n)[0];if(!r)return;const s=r;if(s.object=i,this.model.intersectRaycaster){const o=this.model.intersectRaycaster(n)[0];if(o&&o.point.distanceTo(t)<s.point.distanceTo(t))return}return s.object}calculateOffset(n,t){const i=new C.Vector3(0,0,0);if(!n)return i;const r=()=>t||this.getBox();if(typeof n.x=="number")i.setX(n.x);else if(typeof n.x=="object"){const s=r();i.setX((s.max.x-s.min.x)*n.x.percents)}if(typeof n.y=="number")i.setY(n.y);else if(typeof n.y=="object"){const s=r();i.setY((s.max.y-s.min.y)*n.y.percents)}if(typeof n.z=="number")i.setZ(n.z);else if(typeof n.z=="object"){const s=r();i.setZ((s.max.z-s.min.z)*n.z.percents)}return i}}const zV=new C.Vector3;function lo(e){var d;const{raycaster:n,line:t,clampToLine:i=!0}=e;if(((d=n.camera)==null?void 0:d.type)==="OrthographicCamera"){const f=n.ray.origin.clone();return t.closestPointToPoint(f,!1,new C.Vector3)}const r=new C.Plane().setFromNormalAndCoplanarPoint(n.ray.direction.clone().normalize(),n.ray.origin),s=r.projectPoint(t.start,new C.Vector3),o=r.projectPoint(t.end,new C.Vector3),a=new C.Line3(s,o),l=a.closestPointToPoint(n.ray.origin,i,zV),c=l.distanceTo(o),h=l.distanceTo(s),u=a.distance();if(c>h&&c>u){const f=-l.distanceTo(s)/u,m=t.start.clone().sub(t.end).normalize();return t.start.sub(m.clone().multiplyScalar(f*t.distance()))}else{const f=l.distanceTo(s)/u;return new C.Vector3().lerpVectors(t.start,t.end,f)}}class BV extends zc{constructor(...t){super(...t);v(this,"name","MoveController");v(this,"startInfo");v(this,"_moveByMouse",{enabled:!1});v(this,"mouseInfo");v(this,"mousedownEventListenerDisposer");v(this,"dragStart",t=>{if(this.moveByMouseEnable||this.isDragging)return;const i=t==null?void 0:t.intersect;if(!i)return this.dragEnd();const r=(i==null?void 0:i.object).direction;if(!r)return this.dragEnd();const s=new C.Vector3(1,0,0).applyQuaternion(this.helperObject3D.quaternion),o=new C.Vector3(0,1,0).applyQuaternion(this.helperObject3D.quaternion),a=new C.Vector3(0,0,1).applyQuaternion(this.helperObject3D.quaternion),l=(()=>{switch(r){case"x":return s;case"y":return o;case"z":return a}})(),c=i.point.clone(),h=new C.Line3(c.clone().sub(l.normalize()),c.clone().add(l.normalize()));this.startInfo={startVectorProject:c,line:h},this.helperObject3D.showDraggingHelper([r]),this.hooks.emit("moveStart"),this.isDragging=!0});v(this,"dragging",t=>{if(!this.isDragging||!this.startInfo)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.move(s),!1):this.dragEnd()});v(this,"dragEnd",()=>{this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.helperObject3D.show(),this.hooks.emit("moveEnd"))});const i=this.helperObject3D;this.hoverListener([i.xArrow,i.yArrow,i.zArrow]);const r=this.show.bind(this),s=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",this.dragStart),document.addEventListener("mousemove",this.dragging),document.addEventListener("mouseup",this.dragEnd),this.domEvents.addEventListener(this.helperObject3D,"touchstart",this.dragStart),document.addEventListener("touchmove",this.dragging),document.addEventListener("touchend",this.dragEnd),this.hooks.on("rotateStart",s),this.hooks.on("rotateEnd",r),this.hooks.on("scaleStart",s),this.hooks.on("scaleEnd",r),this.hooks.on("moveByMouseEnable",s),this.hooks.on("moveByMouseDisable",r),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",this.dragStart),document.removeEventListener("mousemove",this.dragging),document.removeEventListener("mouseup",this.dragEnd),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",this.dragStart),document.removeEventListener("touchmove",this.dragging),document.removeEventListener("touchend",this.dragEnd),this.hooks.off("rotateStart",s),this.hooks.off("rotateEnd",r),this.hooks.off("scaleStart",s),this.hooks.off("scaleEnd",r),this.hooks.off("moveByMouseEnable",s),this.hooks.off("moveByMouseDisable",r)}),this.moveByMouseEnable&&this.moveByMouse()}get moveByMouseEnable(){return this._moveByMouse.enabled}dispose(){var t;super.dispose(),(t=this.disposers)==null||t.forEach(i=>i==null?void 0:i())}moveByMouse(t){this._moveByMouse={enabled:!0,useFaceNormal:t==null?void 0:t.useFaceNormal},this.preventTapDefaultEvent=!0;const i=this.handleMouseDown.bind(this),r=this.handleMouseUp.bind(this);this.hooks.emit("moveByMouseEnable"),setTimeout(()=>{this.container.addEventListener("mousedown",i),this.container.addEventListener("mouseup",r)}),this.mousedownEventListenerDisposer=()=>{this.container.removeEventListener("mousedown",i),this.container.removeEventListener("mouseup",r)}}disableMoveByMouse(){var t;this._moveByMouse={enabled:!1},this.preventTapDefaultEvent=!1,this.hooks.emit("moveByMouseDisable"),(t=this.mousedownEventListenerDisposer)==null||t.call(this)}onIntersectionOnModelUpdate(t){var o,a,l;if(!this.moveByMouseEnable)return;const{point:i,face:r}=t;if(!this.hooks.emit("wantToMove",i)){if(this.originObject3D.position.copy(i),(this._moveByMouse.useFaceNormal===!0||typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.enable!==!1)&&r!=null&&r.normal){const c=(()=>typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.alignmentVector?this._moveByMouse.useFaceNormal.alignmentVector:{x:0,y:1,z:0})(),h=new C.Vector3((o=c.x)!=null?o:0,(a=c.y)!=null?a:0,(l=c.z)!=null?l:0),u=(()=>typeof this._moveByMouse.useFaceNormal=="object"&&this._moveByMouse.useFaceNormal.fixedFaceNormal?this._moveByMouse.useFaceNormal.fixedFaceNormal(r.normal):r.normal)();this.originObject3D.quaternion.setFromUnitVectors(h,u),this.internalHooks.emit("setObjectRotate",this.originObject3D.quaternion.clone())}this.internalHooks.emit("setObjectPosition",i),this.hooks.emit("move",i)}}handleMouseDown(t){const{x:i,y:r}=t;this.mouseInfo={x:i,y:r,mouseDownTimestamp:Date.now()}}handleMouseUp(t){if(!this.mouseInfo)return;const{x:i,y:r}=t;this.mouseInfo.x===i&&this.mouseInfo.y===r&&Date.now()-this.mouseInfo.mouseDownTimestamp<500&&(this.disableMoveByMouse(),this.mouseInfo=void 0)}move(t){if(!this.startInfo)return this.dragEnd();const{line:i,startVectorProject:r}=this.startInfo,s=this.originObject3D,o=lo({raycaster:t,line:i,clampToLine:!1}),a=o.clone().sub(r),l=new C.Matrix4;l.setPosition(a);const c=s.position.clone().applyMatrix4(l);this.hooks.emit("wantToMove",c)||(s.applyMatrix4(l),r.copy(o),this.internalHooks.emit("applyObjectPosition",{matrix:l}),this.hooks.emit("move",c))}}class Bc{constructor(n,t,i,r,s,o,a){v(this,"helperController");v(this,"five");v(this,"onFiveWantsUpdateCameraDistance",()=>{var n,t;this.helperController&&((t=(n=this.helperController).onWantsUpdateCameraDistance)==null||t.call(n))});v(this,"onFiveWantsTapGesture",n=>{if(!this.helperController)return;if(this.helperController.preventTapDefaultEvent)return!1;const t=this.helperController.onWantsTapGesture(n);return this.five.needsRender=!0,t});v(this,"onFiveWantsGesture",(...n)=>{if(!this.helperController)return;const t=this.helperController.onWantsGesture(...n);return this.five.needsRender=!0,t});v(this,"onFiveIntersectionOnModelUpdate",(...n)=>{this.helperController&&this.helperController.onIntersectionOnModelUpdate(...n)});const{camera:l,model:c,scene:h}=n,u=n.getElement();if(this.five=n,!l||!c||!u||!h)return;const d=()=>{n.needsRender=!0};this.helperController=new t({camera:l,model:c,originObject3D:i,helperObject3D:r,container:u,scene:h,onRender:d,sharedHooks:o,sharedInternalHooks:a},s),n.on("wantsTapGesture",this.onFiveWantsTapGesture),n.on("wantsGesture",this.onFiveWantsGesture),n.on("intersectionOnModelUpdate",this.onFiveIntersectionOnModelUpdate),n.on("cameraFovUpdate",this.onFiveWantsUpdateCameraDistance),n.on("cameraPositionUpdate",this.onFiveWantsUpdateCameraDistance)}dispose(){var n;this.five.off("wantsTapGesture",this.onFiveWantsTapGesture),this.five.off("wantsGesture",this.onFiveWantsGesture),this.five.off("intersectionOnModelUpdate",this.onFiveIntersectionOnModelUpdate),this.five.off("cameraFovUpdate",this.onFiveWantsUpdateCameraDistance),this.five.off("cameraPositionUpdate",this.onFiveWantsUpdateCameraDistance),(n=this.helperController)==null||n.dispose()}}const xg="Object3DHelper@v1.0.1",NV=()=>{console.error(`${xg} is disposed`)},FV=()=>{console.warn(`${xg} is disabled`)},VV=()=>{console.error(`${xg} is disabled`)};class GV{constructor(n){v(this,"controllers",{});v(this,"state",{visible:!0,enabled:!0,disposed:!1});v(this,"hooks",new Pn);v(this,"eventListener",{});n&&this.addControllers(n),this.setState(this.state)}show(n){return te(this,null,function*(){this.setState({visible:!0},n)})}hide(n){return te(this,null,function*(){this.setState({visible:!1},n)})}enable(n){this.setState({enabled:!0},n)}disable(n){this.setState({enabled:!1},n)}dispose(){this.setState({disposed:!0})}setState(n,t){if(this.state.disposed)return NV();if(!this.state.enabled&&n.enabled!==!0&&n.disposed!==!0)return VV();const i=O({},this.state);this.state=O(O({},this.state),n),n.disposed!==void 0&&n.disposed!==i.disposed&&n.disposed&&this.handleDispose(),n.visible!==void 0&&this.handleVisible(n.visible),n.enabled!==void 0&&this.handleEnable(n.enabled),this.hooks.emit("stateChange",{state:this.state,prevState:i})}addControllers(n){this.controllers=O(O({},this.controllers),n),this.setState(this.state)}getCurrentState(){return this.state}handleEnable(n,t=!0){n?(this.everyControllerDo(i=>{i.enable()}),this.hooks.emit("enable",{userAction:t})):(this.everyControllerDo(i=>{i.disable()}),this.hooks.emit("disable",{userAction:t})),this.state.enabled=n}handleVisible(n,t=!0){n?(this.everyControllerDo(i=>{i.show()}),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:t}))):(this.everyControllerDo(i=>{i.hide()}),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:t}))),this.state.visible=n}everyControllerDo(n){Object.values(this.controllers).forEach(t=>{t&&n(t)})}handleDispose(){var n,t;Object.values(this.controllers).forEach(i=>{i==null||i.dispose()});for(const i in this.controllers){if(!i)continue;const r=i;(t=(n=this.eventListener)[r])==null||t.call(n)}}actionIfStateIsEnabled(n,t){if(this.state.enabled)return n();t!=null&&t.warnLog&&FV()}}function Mg(e){return e*Math.PI/180}const Cg=new C.Quaternion;class jV extends zc{constructor(...t){var c,h,u;super(...t);v(this,"name","RotateController");v(this,"startInfo");v(this,"removeListener");const i=this.helperObject3D;this.hoverListener([(c=i.xCircle)==null?void 0:c.circle,(h=i.yCircle)==null?void 0:h.circle,(u=i.zCircle)==null?void 0:u.circle].filter(Boolean));const r=this.dragStart.bind(this),s=this.dragging.bind(this),o=this.dragEnd.bind(this),a=this.show.bind(this),l=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",r),document.addEventListener("mousemove",s),document.addEventListener("mouseup",o),this.domEvents.addEventListener(this.helperObject3D,"touchstart",r),document.addEventListener("touchmove",s),document.addEventListener("touchend",o),this.hooks.on("moveStart",l),this.hooks.on("moveEnd",a),this.hooks.on("scaleStart",l),this.hooks.on("scaleEnd",a),this.hooks.on("moveByMouseEnable",l),this.hooks.on("moveByMouseDisable",a),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",r),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",o),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",r),document.removeEventListener("touchmove",s),document.removeEventListener("touchend",o),this.hooks.off("moveStart",l),this.hooks.off("moveEnd",a),this.hooks.off("scaleStart",l),this.hooks.off("scaleEnd",a),this.hooks.off("moveByMouseEnable",l),this.hooks.off("moveByMouseDisable",a)})}get rotateCenter(){return this.helperObject3D.position.clone()}setRotateAngle(t){const{x:i=0,y:r=0,z:s=0}=t,o=new C.Euler(Mg(i),Mg(r),Mg(s)),a=new C.Quaternion().setFromEuler(o);if(this.hooks.emit("wantToRotate",a))return;const{originObject3D:c,rotateCenter:h}=this;mM(c,a,h),this.internalHooks.emit("setObjectRotate",a,h),this.hooks.emit("rotate",a),this.render()}onApplyOriginObjectRotate(t){this.isDragging||super.onApplyOriginObjectRotate(t)}onApplyOriginObjectScale(t){}dragStart(t){if(this.isDragging)return;const i=t==null?void 0:t.intersect;if(!i)return this.dragEnd();const r=(i==null?void 0:i.object).direction;if(!r)return this.dragEnd();const s=i.point,o=this.getAngleHelper(r);this.setTipsAngle(0);const a=s.clone();a.y+=.2,this.setTipsPosition(a);const l=this.helperObject3D.quaternion.clone(),c=(()=>{if(r==="x")return new C.Vector3(1,0,0).applyQuaternion(l);if(r==="y")return new C.Vector3(0,1,0).applyQuaternion(l);if(r==="z")return new C.Vector3(0,0,1).applyQuaternion(l)})(),h=new C.Plane().setFromNormalAndCoplanarPoint(c,s),d=h.projectPoint(s.clone(),new C.Vector3).clone().sub(this.rotateCenter),f=d.angleTo(o.baseAxes.clone().applyQuaternion(l));this.setAngleHelperStart(r,f),this.setAngleHelperLength(r,0),this.startInfo={direction:r,startVector:d,plane:h,angleHelper:o,angle:0,helperQuaternion:l.clone()},Cg.copy(l),this.helperObject3D.showDraggingHelper([r]),this.hooks.emit("rotateStart"),this.isDragging=!0}dragging(t){if(!this.isDragging)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.rotate(s),!1):this.dragEnd()}rotate(t){if(!this.startInfo)return this.dragEnd();const{startVector:i,plane:r,angleHelper:s,direction:o,helperQuaternion:a}=this.startInfo,{originObject3D:l}=this,c=t.ray.intersectPlane(r,new C.Vector3);if(!c)return;const h=this.rotateCenter.clone(),d=r.projectPoint(c.clone(),new C.Vector3).clone().sub(h);if(i.angleTo(d)===0)return;const f=new C.Quaternion().setFromUnitVectors(i.clone().normalize(),d.clone().normalize()),m=l.quaternion.clone().premultiply(f);if(this.hooks.emit("wantToRotate",m))return;const y=new C.Euler().setFromQuaternion(new C.Quaternion().setFromUnitVectors(i.clone().normalize().applyQuaternion(a.clone().inverse()),d.clone().normalize().applyQuaternion(a.clone().inverse())),`${o.toUpperCase()}${"XZY".replace(o.toUpperCase(),"")}`)[o]*s.angleDirection;if(this.startInfo.angle+=y,this.setAngleHelperLength(o,this.startInfo.angle),this.setTipsAngle(wm(this.startInfo.angle)),h){const b=new C.Vector3().subVectors(l.position,h).applyQuaternion(f).add(h);l.position.copy(b)}l.applyQuaternion(f),Cg.premultiply(f),this.internalHooks.emit("applyObjectRotate",{quaternion:f,origin:h}),this.hooks.emit("rotate",l.quaternion),this.startInfo.startVector=d}dragEnd(){this.isDragging&&(this.internalHooks.emit("setObjectRotate",Cg,this.rotateCenter),this.startInfo=void 0,this.isDragging=!1,this.helperObject3D.show(),this.hooks.emit("rotateEnd"))}getAngleHelper(t){var i,r,s;switch(t){case"x":return(i=this.helperObject3D.xCircle)==null?void 0:i.angleSector;case"y":return(r=this.helperObject3D.yCircle)==null?void 0:r.angleSector;case"z":return(s=this.helperObject3D.zCircle)==null?void 0:s.angleSector}}setAngleHelperStart(t,i){const r=this.getAngleHelper(t);if(!r){console.warn("angleHelper is undefined");return}if(r instanceof C.Mesh&&r.geometry instanceof C.CircleGeometry){const{radius:s,segments:o,thetaLength:a}=r.geometry.parameters;r.geometry=new C.CircleGeometry(s,o,i,a)}else console.warn("only support THREE.CircleGeometry")}setAngleHelperLength(t,i){const s=i>=0?Math.max(i,.001):Math.min(i,-.001),o=this.getAngleHelper(t);if(o instanceof C.Mesh&&o.geometry instanceof C.CircleGeometry){const{radius:a,thetaStart:l}=o.geometry.parameters,c=Math.ceil(Math.abs(s)*(40/(2*Math.PI)));o.geometry=new C.CircleGeometry(a,c,l,s)}else console.warn("only support THREE.CircleGeometry")}setTipsAngle(t){var r;const i=(r=this.helperObject3D.angleTips)==null?void 0:r.element;i&&(i.innerText=`${t.toFixed(0)}°`)}setTipsPosition(t){const i=this.helperObject3D.angleTips;if(!i)return;const r=t.project(this.camera),{x:s,y:o,z:a}=r;if(a>1)return;const l=(s+1)/2*100+"%",c=(-o+1)/2*100+"%";i.setLeftTop(l,c)}}class HV extends zc{constructor(...t){super(...t);v(this,"startInfo");v(this,"name","RectangleScaleController")}enable(){this.helperObject3D.enable(),super.enable()}disable(){this.helperObject3D.disable(),super.disable()}show(){this.helperObject3D.show(),super.show()}hide(){this.helperObject3D.hide(),super.hide()}onApplyOriginObjectPosition(t){this.isDragging||super.onApplyOriginObjectPosition(t)}onApplyOriginObjectScale(t){this.helperObject3D.applyHelperScaleMatrix4(t.matrix,t.origin)}getDragPlane(){const t=new C.Plane,i=this.helperObject3D.cornerPositions;if(i.length!==0)return i.length<3?t.setFromNormalAndCoplanarPoint(this.originObject3D.getWorldDirection(new ee.Vector3),i[0]):t.setFromCoplanarPoints(i[0],i[1],i[2]),t}dragStart(t,i){var s,o;(o=(s=this.helperObject3D).updatePoints)==null||o.call(s);const r=this.getDragPlane();if(!r)return this.dragEnd();this.startInfo={startPoint:{position:i.position.clone(),direction:i.direction},plane:r},this.hooks.emit("scaleStart"),this.render(),this.isDragging=!0}dragging(t){if(!this.isDragging)return;const i=Sd(this.camera,t,this.container);if(!i)return this.dragEnd();this.scale(i)}scale(t){var T,z;if(!this.startInfo)return;const i=this.originObject3D,{startPoint:r,plane:s}=this.startInfo,o=this.helperObject3D.cornerPositions;if(o.length<4)return this.dragEnd();const a=t.ray.intersectPlane(s,new ee.Vector3);if(!a||PV(a,this.camera.position))return;const l=new ee.Vector3().addVectors(o[0],o[2]).divideScalar(2),{position:c,direction:h}=r,u=new ee.Vector3().subVectors(o[1],o[0]),d=new ee.Vector3().subVectors(o[3],o[0]),f=D=>{const k=new ee.Vector3(0,0,0);if(!this.startInfo)return k;const R=(D==="ew"?u:d).clone(),G=c.clone().projectOnVector(R),I=a.clone().projectOnVector(R),U=l.clone().projectOnVector(R);if(I.equals(G))return k;if(D==="ns"&&typeof this.startInfo.dragPointInCenterBottom!="boolean"){const ne=new ee.Vector3().subVectors(I,U),ie=ne.x<0&&R.x>=0,pe=ne.y<0&&R.y>=0,be=ne.z<0&&R.z>=0;this.startInfo.dragPointInCenterBottom=ie||pe||be}if(D==="ew"&&typeof this.startInfo.dragPointInCenterLeft!="boolean"){const ne=new ee.Vector3().subVectors(I,U),ie=ne.x<0&&R.x>=0,pe=ne.y<0&&R.y>=0,be=ne.z<0&&R.z>=0;this.startInfo.dragPointInCenterLeft=ie||pe||be}const q=new ee.Vector3().subVectors(I,G),K=q.length();return K>.3?(console.warn("offset.length() > 0.3, skipped",K),k):q},m=f("ew"),p=f("ns"),g=()=>{const D=m;this.helperObject3D.cornerPositions.forEach((k,R)=>{var G;(G=this.startInfo)!=null&&G.dragPointInCenterLeft?(R===0||R===3)&&k.add(D):(R===1||R===2)&&k.add(D)})},y=()=>{const D=p;this.helperObject3D.cornerPositions.forEach((k,R)=>{var G;(G=this.startInfo)!=null&&G.dragPointInCenterBottom?(R===0||R===1)&&k.add(D):(R===2||R===3)&&k.add(D)})};switch(h){case"ew":g();break;case"ns":y();break;case"nesw":case"nwse":g(),y()}const b=new ee.Vector3().subVectors(o[1],o[0]).length()/u.length(),A=new ee.Vector3().subVectors(o[3],o[0]).length()/d.length(),w=new ee.Vector3(b,A,1),x=new C.Matrix4().scale(w);i.isCSS3DObjectPlus?i.applyScaleMatrix4(x):i.scale.applyMatrix4(x),r.position.copy(a);const M=new ee.Vector3().addVectors(o[0],o[2]).divideScalar(2),E=new ee.Vector3().subVectors(M,l),S=new C.Matrix4().setPosition(E);i.applyMatrix4(S),(T=this.helperObject3D.css3DInstance)==null||T.css3DObject.applyMatrix4(S),(z=this.helperObject3D.plane)==null||z.applyMatrix4(S),this.internalHooks.emit("applyObjectScale",{matrix:x}),this.internalHooks.emit("applyObjectPosition",{matrix:S}),this.render()}dragEnd(){this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.hooks.emit("scaleEnd"),this.render())}}class UV extends HV{constructor(...t){super(...t);v(this,"name","CSS3DScaleController");this.addHTMLEventListener()}addHTMLEventListener(){this.helperObject3D.points.forEach(t=>{if(!t)return;const i=t.point,r=a=>this.dragStart(a,t),s=this.dragging.bind(this),o=this.dragEnd.bind(this);i.addEventListener("dragstart",r),i.addEventListener("drag",s),i.addEventListener("dragend",o)})}}class WV extends zc{constructor(...t){super(...t);v(this,"name","BoundingBoxController")}}class QV extends wV{constructor(t,i){super(t,i);v(this,"scaleMeshes",[]);v(this,"positions",[]);i&&(this.positions=i.positions)}initialPosition(t){this.position.copy(this.originObject3D.position),this.scaleMeshes.length&&this.remove(...this.scaleMeshes);const i=typeof this.positions=="function"?this.positions():this.positions;i&&(this.scaleMeshes=i.map(r=>{const s=YV();return s.position.copy(r.handlePosition),s.scalePosition=r,s}),this.add(...this.scaleMeshes))}setScaleByCamera(t){this.scaleMeshes.forEach(i=>{i.scale.setScalar(Ag(t,i.scalePosition.handlePosition.clone().applyMatrix4(this.matrixWorld)))})}}function YV(){const n=new C.BoxGeometry(.05,.05,.05),t=new C.MeshBasicMaterial({color:16776960,depthTest:!1,depthWrite:!1,transparent:!0,side:C.DoubleSide}),i=new C.Mesh(n,t);return i.renderOrder=10,i}class XV extends zc{constructor(...t){super(...t);v(this,"name","ScaleController");v(this,"startInfo");v(this,"dragStart",t=>{if(this.isDragging)return;this.isDragging=!0;const{intersect:i}=t,r=this.camera.position,s=i.object,o=s.scalePosition.basePosition.clone(),l=s.scalePosition.handlePosition.clone().clone().sub(o).clone(),c=new C.Line3(o,o.clone().add(l.normalize().multiplyScalar(5)));c.applyMatrix4(this.helperObject3D.matrixWorld);const h=new C.Raycaster(r,i.point.clone().sub(r)),u=lo({raycaster:h,line:c});this.startInfo={line:c,scaleStartPoint:u,draggingObject:s},this.hooks.emit("scaleStart")});v(this,"dragging",t=>{if(!this.isDragging||!this.startInfo)return;const i="touches"in t?t.touches[0].clientX:t.x,r="touches"in t?t.touches[0].clientY:t.y,s=Sd(this.camera,{x:i,y:r},this.container);return s?(this.scale(s),!1):this.dragEnd()});v(this,"scale",t=>{var c,h;if(!this.startInfo)return;const{line:i,scaleStartPoint:r,draggingObject:s}=this.startInfo,{scalePosition:o}=s,{basePosition:a}=o,l=lo({raycaster:t,line:i});l.applyMatrix4(new C.Matrix4().getInverse(this.helperObject3D.matrixWorld.clone())),(h=(c=this.config)==null?void 0:c.scaleCallback)==null||h.call(c,{ratio:l.distanceTo(a)/r.distanceTo(a),intersectPoint:l,scalePosition:o}),s.position.copy(l.clone())});v(this,"dragEnd",()=>{this.isDragging&&(this.startInfo=void 0,this.isDragging=!1,this.internalHooks.emit("initialHelperPosition"),this.hooks.emit("scaleEnd"))});const i=this.show.bind(this),r=this.hide.bind(this);this.domEvents.addEventListener(this.helperObject3D,"mousedown",this.dragStart),document.addEventListener("mousemove",this.dragging),document.addEventListener("mouseup",this.dragEnd),this.domEvents.addEventListener(this.helperObject3D,"touchstart",this.dragStart),document.addEventListener("touchmove",this.dragging),document.addEventListener("touchend",this.dragEnd),this.hooks.on("rotateStart",r),this.hooks.on("rotateEnd",i),this.hooks.on("moveStart",r),this.hooks.on("moveEnd",i),this.hooks.on("moveByMouseEnable",r),this.hooks.on("moveByMouseDisable",i),this.disposers.push(()=>{this.domEvents.removeEventListener(this.helperObject3D,"mousedown",this.dragStart),document.removeEventListener("mousemove",this.dragging),document.removeEventListener("mouseup",this.dragEnd),this.domEvents.removeEventListener(this.helperObject3D,"touchstart",this.dragStart),document.removeEventListener("touchmove",this.dragging),document.removeEventListener("touchend",this.dragEnd),this.hooks.off("rotateStart",r),this.hooks.off("rotateEnd",i),this.hooks.off("moveStart",r),this.hooks.off("moveEnd",i),this.hooks.off("moveByMouseEnable",r),this.hooks.off("moveByMouseDisable",i)})}initialHelperQuaternion(){this.helperObject3D.initQuaternion()}initialHelperPosition(){this.helperObject3D.initialPosition();const t=this;t.offHoverListener&&t.offHoverListener(),t.offHoverListener=this.hoverListener(this.helperObject3D.scaleMeshes)}setScale(t){var l,c,h;let i=1,r=1,s=1;typeof t=="number"?(i=t,r=t,s=t):typeof t=="object"&&(i=(l=t.x)!=null?l:1,r=(c=t.y)!=null?c:1,s=(h=t.z)!=null?h:1);const o=new C.Vector3(i,r,s);this.hooks.emit("wantToScale",o)||(this.originObject3D.scale.copy(o),this.internalHooks.emit("setObjectScale",o),this.hooks.emit("scale",o),this.render())}}const Pg="Object3DHelperPlugin",Id=Pg,ZV=()=>{console.error(`${Id} is disposed`)},JV=()=>{console.warn(`${Id} is disabled`)},qV=()=>{console.error(`${Id} is disabled`)};class Eg extends ws{constructor(t){super(t);v(this,"name",Pg);v(this,"state",{visible:!0,enabled:!0,disposed:!1});v(this,"objectHelperMap",new Map);v(this,"css3DObjectParentMap",new Map);v(this,"css3DRender");this.five=t,this.css3DRender=new Ma(this.five.scene),console.warn("Object3DHelper: 使用此插件,需要在初始化five时,设置five参数: { backgroundAlpha: 0, backgroundColor: 0x000000 }"),Object.assign(window,{[`__${Pg.toUpperCase()}_DEBUG__`]:this})}show(t){return te(this,null,function*(){this.setState({visible:!0},t)})}hide(t){return te(this,null,function*(){this.setState({visible:!1},t)})}enable(t){this.setState({enabled:!0},t)}disable(t){this.setState({enabled:!1},t)}dispose(){this.setState({disposed:!0})}setState(t,i){if(this.state.disposed)return ZV();if(!this.state.enabled&&t.enabled!==!0&&t.disposed!==!0)return qV();const r=O({},this.state);this.state=O(O({},this.state),t),t.disposed!==void 0&&t.disposed!==r.disposed&&t.disposed&&this.handleDispose(),t.visible!==void 0&&t.visible!==r.visible&&this.handleVisible(t.visible),t.enabled!==void 0&&t.enabled!==r.enabled&&this.handleEnable(t.enabled),this.hooks.emit("stateChange",{state:this.state,prevState:r})}getObject3DHelper(t){return this.objectHelperMap.get(t)}addObject3DHelper(t,i={}){var y;if(!t){console.error("Object3D is undefined");return}if(this.objectHelperMap.has(t)){console.warn(`Object3DHelperPlugin: object3D ${t.name} is already has helper`);return}const r=new GV,s=[],o=(y=this.five.getElement())==null?void 0:y.parentElement,a=this.five.camera,c=O(O({},{moveHelper:!0,rotateHelper:!0,scaleHelper:!0,boundingBoxHelper:!1,positionFrom:"objectPosition"}),i),{moveHelper:h,rotateHelper:u,scaleHelper:d,boundingBoxHelper:f}=c,m=new Pn,p=new Pn,g=b=>{if(b)return typeof b=="boolean"?b:b.enable};if(g(h)){const b=O(O({},this.getConfig(c.moveHelper)),c),A=new EV(t,O({},b)),w=new Bc(this.five,BV,t,A,b,m,p);r.addControllers({moveController:w.helperController}),s.push(()=>w.dispose())}if(g(u)){const b=O(O({},this.getConfig(c.rotateHelper)),c),A=new IV(t,O({container:o},b)),w=new Bc(this.five,jV,t,A,b,m,p);r.addControllers({rotateController:w.helperController}),s.push(()=>w.dispose())}if(g(f)){const b=new RV(t),A=new Bc(this.five,WV,t,b,void 0,m,p);r.addControllers({boundingBoxController:A.helperController})}if(g(d))if(t.isCSS3DObjectPlus&&o){const b=new OV(t,o,a,this.five.scene),A=new Bc(this.five,UV,t,b,void 0,m,p);r.addControllers({scaleController:A.helperController}),s.push(()=>A.dispose()),Ca(this.five).then(()=>{var w,x;if(t.isCSS3DObjectPlus){const M=t;if(!M||M.mode!=="front")return;const E=(w=this.css3DRender.behindModeCSS3DRenderer.wrapper)!=null?w:xb(this.five);E&&(this.css3DObjectParentMap.set(M,M.parent),M.removeFromParent(),this.css3DRender.behindModeCSS3DRenderer.setWrapper(E),(x=this.css3DRender.getBehindCSS3DObjectGroup())==null||x.add(M),this.css3DRender.render(this.five.camera))}})}else{const b=O(O({},this.getConfig(c.scaleHelper)),c),A=new QV(t,b),w=new Bc(this.five,XV,t,A,b,m,p);r.addControllers({scaleController:w.helperController}),s.push(()=>w.dispose())}return this.objectHelperMap.set(t,{helper:r,disposers:s}),r.controllers}removeObject3DHelper(t){if(!this.objectHelperMap.has(t))return;const{helper:i,disposers:r}=this.objectHelperMap.get(t);if(i){if(t.isCSS3DObjectPlus){const s=t,o=this.css3DObjectParentMap.get(s);o&&o.add(s),this.css3DRender.render(this.five.camera)}this.objectHelperMap.delete(t),i.dispose(),r==null||r.forEach(s=>s==null?void 0:s())}}handleEnable(t,i=!0){t?(this.everyHelperDo(r=>r.enable()),this.hooks.emit("enable",{userAction:i})):(this.everyHelperDo(r=>r.disable()),this.hooks.emit("disable",{userAction:i})),this.state.enabled=t}handleVisible(t,i=!0){t?(this.everyHelperDo(r=>r.show()),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:i}))):(this.everyHelperDo(r=>r.hide()),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:i}))),this.state.visible=t}handleDispose(){this.everyHelperDo((t,i)=>{t.dispose(),i==null||i.forEach(r=>r==null?void 0:r())})}everyHelperDo(t){this.objectHelperMap.forEach(({helper:i,disposers:r})=>{i&&t(i,r)})}actionIfStateIsEnabled(t,i){if(this.state.enabled)return t();i!=null&&i.warnLog&&JV()}getConfig(t){if(t&&typeof t!="boolean"&&t.enable)return t}}const KV=e=>new Eg(e),$V=`
|
|
3706
3706
|
varying vec2 vUv;
|
|
3707
3707
|
void main() {
|
|
3708
3708
|
vUv = uv;
|