@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 7.04 kB
JavaScript
import{__esDecorate as s,__runInitializers as h}from"tslib";import{action as r,computed as m,observable as O,runInAction as j,toJS as c}from"mobx";import a from"../../store";import{areLayersEnabled as E}from"../../utils/areLayersEnabled";import{t as k}from"../../utils/i18n";import{isPointVisible as X}from"../Map/visibleArea";import{updateKiosk as Y}from"./kioskApi";import{getSavedKiosk as q,removeKiosk as B,saveKiosk as J}from"./SetKiosk";let L=(()=>{let i=[],g,S,f,p,v=[],_=[],C,K,M=[],b=[],y,D,P,I,F,z,N,x,T,U,w,R,A;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;g=[m({keepAlive:!0})],S=[r],f=[m({keepAlive:!0})],p=[O],C=[m({keepAlive:!0})],K=[O],y=[r],D=[r],P=[r],I=[r],F=[r],z=[r],N=[r],x=[r],T=[r],U=[r],w=[r],R=[r],A=[r],s(this,null,g,{kind:"getter",name:"kiosk",static:!1,private:!1,access:{has:e=>"kiosk"in e,get:e=>e.kiosk},metadata:t},null,i),s(this,null,S,{kind:"method",name:"setKiosk",static:!1,private:!1,access:{has:e=>"setKiosk"in e,get:e=>e.setKiosk},metadata:t},null,i),s(this,null,f,{kind:"getter",name:"renderer",static:!1,private:!1,access:{has:e=>"renderer"in e,get:e=>e.renderer},metadata:t},null,i),s(this,null,C,{kind:"getter",name:"hasUnsavedChanges",static:!1,private:!1,access:{has:e=>"hasUnsavedChanges"in e,get:e=>e.hasUnsavedChanges},metadata:t},null,i),s(this,null,y,{kind:"method",name:"addStatusMessage",static:!1,private:!1,access:{has:e=>"addStatusMessage"in e,get:e=>e.addStatusMessage},metadata:t},null,i),s(this,null,D,{kind:"method",name:"clearStatusMessages",static:!1,private:!1,access:{has:e=>"clearStatusMessages"in e,get:e=>e.clearStatusMessages},metadata:t},null,i),s(this,null,P,{kind:"method",name:"startCleanupMessages",static:!1,private:!1,access:{has:e=>"startCleanupMessages"in e,get:e=>e.startCleanupMessages},metadata:t},null,i),s(this,null,I,{kind:"method",name:"resetCamera",static:!1,private:!1,access:{has:e=>"resetCamera"in e,get:e=>e.resetCamera},metadata:t},null,i),s(this,null,F,{kind:"method",name:"restoreData",static:!1,private:!1,access:{has:e=>"restoreData"in e,get:e=>e.restoreData},metadata:t},null,i),s(this,null,z,{kind:"method",name:"handleSetupReady",static:!1,private:!1,access:{has:e=>"handleSetupReady"in e,get:e=>e.handleSetupReady},metadata:t},null,i),s(this,null,N,{kind:"method",name:"handleClose",static:!1,private:!1,access:{has:e=>"handleClose"in e,get:e=>e.handleClose},metadata:t},null,i),s(this,null,x,{kind:"method",name:"handleDelete",static:!1,private:!1,access:{has:e=>"handleDelete"in e,get:e=>e.handleDelete},metadata:t},null,i),s(this,null,T,{kind:"method",name:"handleSave",static:!1,private:!1,access:{has:e=>"handleSave"in e,get:e=>e.handleSave},metadata:t},null,i),s(this,null,U,{kind:"method",name:"handleChange",static:!1,private:!1,access:{has:e=>"handleChange"in e,get:e=>e.handleChange},metadata:t},null,i),s(this,null,w,{kind:"method",name:"setInitialPtScale",static:!1,private:!1,access:{has:e=>"setInitialPtScale"in e,get:e=>e.setInitialPtScale},metadata:t},null,i),s(this,null,R,{kind:"method",name:"handleClick",static:!1,private:!1,access:{has:e=>"handleClick"in e,get:e=>e.handleClick},metadata:t},null,i),s(this,null,A,{kind:"method",name:"handleNavigationChange",static:!1,private:!1,access:{has:e=>"handleNavigationChange"in e,get:e=>e.handleNavigationChange},metadata:t},null,i),s(null,null,p,{kind:"field",name:"savedKiosk",static:!1,private:!1,access:{has:e=>"savedKiosk"in e,get:e=>e.savedKiosk,set:(e,n)=>{e.savedKiosk=n}},metadata:t},v,_),s(null,null,K,{kind:"field",name:"statusMessages",static:!1,private:!1,access:{has:e=>"statusMessages"in e,get:e=>e.statusMessages,set:(e,n)=>{e.statusMessages=n}},metadata:t},M,b),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}get kiosk(){return a.uiState.kioskData}setKiosk(t){a.uiState.setKioskData(t)}get renderer(){return a.rendererService.renderer}getCameraState(){const t=a.rendererService.getCameraState();return t?{mapInitialPtScale:this.initialPtScale,mapPtScale:t.ptScale,mapCenterX:t.center.x,mapCenterY:t.center.y,mapRollDegrees:t.roll,mapPitch:t.pitch}:{}}savedKiosk=(h(this,i),h(this,v,null));get hasUnsavedChanges(){const t=this.savedKiosk,e=c(this.kiosk);if(!e||!t)return!!e!=!!t;const n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!0;for(const o of n)if(!(o in e)||t[o]!==e[o])return!0;return!1}statusMessages=(h(this,_),h(this,M,[]));addStatusMessage(t){this.statusMessages=[{...t,id:Date.now()}],this.startCleanupMessages()}clearStatusMessages(){this.statusMessages=[]}statusMessageTimer=(h(this,b),0);startCleanupMessages(){clearTimeout(this.statusMessageTimer),this.statusMessageTimer=window.setTimeout(()=>this.clearStatusMessages(),1e3)}async resetCamera(){const{z:t,mapRollDegrees:e,mapInitialPtScale:n,mapPtScale:l,mapCenterX:o,mapCenterY:u}=this.kiosk||{},d=this.renderer;d&&(await d.controls.resetCamera({pan:!0,zoom:!0,roll:!0,pitch:!0},!0),j(()=>{Number.isFinite(n)&&Number.isFinite(l)&&l>0&&d.controls.zoomBy(n/l,!0),Number.isFinite(o)&&Number.isFinite(u)&&d.controls.panTo(o,u,!0),Number.isFinite(e)&&d.controls.rollTo(e,!0),t&&a.fp.activateFloor({name:t})}))}restoreData(){const t=q();return t&&(this.setKiosk(t),this.savedKiosk=t,a.uiState.kiosk=!0,this.resetCamera()),t}handleSetupReady(){this.restoreData(),a.uiState.kiosk=!0,a.uiState.hideFreeOrDemo=!0,a.uiState.setForceDimm(!0),a.searchStore.setSearchText(""),a.searchStore.setFocused(!1)}handleClose(){this.setKiosk(null),a.uiState.setForceDimm(!1),a.uiState.enableSetKioskMode(!1),a.searchStore.closeSearch(),this.resetCamera()}handleDelete(){B(),this.setKiosk(null),a.uiState.resetMapSettings(),a.uiState.resetUIScale(),this.resetCamera(),this.addStatusMessage({variant:"success",title:k("Deleted")})}handleSave(){const t=this.renderer;if(!t)return;const e=c(this.kiosk),n=this.getCameraState(),l={...e,...n};if(!X(t,l)){this.addStatusMessage({variant:"error",title:k("Kiosk not visible")});return}this.setKiosk(l),J(l),Y(l,"https://app.expofp.com/"),a.uiState.setUIScale(l.uiScale,!0),this.addStatusMessage({variant:"success",title:k("Saved")}),this.savedKiosk=l}delayChange(t){requestAnimationFrame(()=>t?.())}handleChange(t){const e=c(this.kiosk);e&&(Number.isFinite(t.angle)&&this.setKiosk({...e,heading:t.angle}),Number.isFinite(t.scale)&&(this.setKiosk({...e,uiScale:t.scale}),this.delayChange(()=>a.uiState.setUIScale(t.scale,!1))),Number.isFinite(t.percent)&&this.setKiosk({...e,iconSizePercent:t.percent}))}initialPtScale;setInitialPtScale(t){if(this.initialPtScale)return;this.initialPtScale=t;const e=c(this.kiosk);e&&this.setKiosk({...e,mapInitialPtScale:t})}handleClick(t){const e=c(this.kiosk),n=a.fp.getFloors(),l=E()?n.find(u=>u.active)?.name??null:null,o=a.uiState.uiScale;this.setKiosk({...e,x:t.x,y:t.y,z:l,uiScale:e?.uiScale||o,heading:e?.heading||0,iconSizePercent:e?.iconSizePercent||100,...this.getCameraState()})}handleNavigationChange(){const t=c(this.kiosk);t&&this.setKiosk({...t,...this.getCameraState()})}}})();export default new L;