1*cf78ab8cSAndroid Build Coastguard Workerimport{__decorate as e}from"../node_modules/tslib/tslib.es6.js";import{css as i,LitElement as t,html as o}from"https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js";import{property as n,customElement as r}from"https://cdn.skypack.dev/pin/[email protected]/mode=imports/optimized/lit/decorators.js";import{styleMap as s}from"https://cdn.jsdelivr.net/gh/lit/dist@2/all/lit-all.min.js";import{simulationState as a}from"./device-observer.js";let d=class extends t{constructor(){super(...arguments),this.deviceData=[],this.imageIdx=0,this.numImages=3,this.isometric=!1,this.onChangeMap=()=>{this.imageIdx=(this.imageIdx+1)%this.numImages},this.handleIsometricView=()=>{this.isometric=!this.isometric}}connectedCallback(){super.connectedCallback(),a.registerObserver(this),window.addEventListener("map-button-clicked",this.onChangeMap),window.addEventListener("isometric-button-clicked",this.handleIsometricView)}disconnectedCallback(){window.removeEventListener("isometric-button-clicked",this.handleIsometricView),window.removeEventListener("map-button-clicked",this.onChangeMap),a.removeObserver(this),super.disconnectedCallback()}onNotify(e){this.deviceData=e.devices,this.requestUpdate()}checkBle(e){var i;return void 0!==(null===(i=e.chips.at(0))||void 0===i?void 0:i.bleBeacon)}render(){const e=["red","orange","yellow","green","blue","indigo","purple"],i=this.isometric?"perspective(200rem) rotateX(60deg) rotateY(0deg) rotateZ(0deg) scale3d(0.8,0.8,0.8); top: 250px":"none; top: 0px;";return o` 2*cf78ab8cSAndroid Build Coastguard Worker <ns-device-dropzone role="widget" tabindex="0" aria-label="Device map"> 3*cf78ab8cSAndroid Build Coastguard Worker <div id="dropzone" class="box pattern${this.imageIdx}"> 4*cf78ab8cSAndroid Build Coastguard Worker ${this.deviceData.map(((i,t)=>o` 5*cf78ab8cSAndroid Build Coastguard Worker ${this.checkBle(i)?o` 6*cf78ab8cSAndroid Build Coastguard Worker <ns-device-dragzone 7*cf78ab8cSAndroid Build Coastguard Worker .action=${"move"} 8*cf78ab8cSAndroid Build Coastguard Worker style=${s({position:"absolute",left:100*i.position.x+"px",top:100*i.position.y+"px"})} 9*cf78ab8cSAndroid Build Coastguard Worker > 10*cf78ab8cSAndroid Build Coastguard Worker <ns-pyramid-sprite 11*cf78ab8cSAndroid Build Coastguard Worker id=${i.name} 12*cf78ab8cSAndroid Build Coastguard Worker .color=${e[t%e.length]} 13*cf78ab8cSAndroid Build Coastguard Worker .size=${"30px"} 14*cf78ab8cSAndroid Build Coastguard Worker .controls=${!0} 15*cf78ab8cSAndroid Build Coastguard Worker yaw=${i.orientation.yaw} 16*cf78ab8cSAndroid Build Coastguard Worker pitch=${i.orientation.pitch} 17*cf78ab8cSAndroid Build Coastguard Worker roll=${i.orientation.roll} 18*cf78ab8cSAndroid Build Coastguard Worker posZ=${100*i.position.z} 19*cf78ab8cSAndroid Build Coastguard Worker role="widget" 20*cf78ab8cSAndroid Build Coastguard Worker tabindex="1" 21*cf78ab8cSAndroid Build Coastguard Worker aria-label="${i.name} on Device Map, Position: ${Math.round(100*i.position.x)}, ${Math.round(100*i.position.y)}, ${Math.round(100*i.position.z)}, Orientation: yaw: ${i.orientation.yaw}, pitch: ${i.orientation.pitch}, roll: ${i.orientation.roll}" 22*cf78ab8cSAndroid Build Coastguard Worker aria-live="polite" 23*cf78ab8cSAndroid Build Coastguard Worker ></ns-pyramid-sprite> 24*cf78ab8cSAndroid Build Coastguard Worker </ns-device-dragzone> 25*cf78ab8cSAndroid Build Coastguard Worker `:o` 26*cf78ab8cSAndroid Build Coastguard Worker <ns-device-dragzone 27*cf78ab8cSAndroid Build Coastguard Worker .action=${"move"} 28*cf78ab8cSAndroid Build Coastguard Worker style=${s({position:"absolute",left:100*i.position.x+"px",top:100*i.position.y+"px"})} 29*cf78ab8cSAndroid Build Coastguard Worker > 30*cf78ab8cSAndroid Build Coastguard Worker <ns-cube-sprite 31*cf78ab8cSAndroid Build Coastguard Worker id=${i.name} 32*cf78ab8cSAndroid Build Coastguard Worker .color=${e[t%e.length]} 33*cf78ab8cSAndroid Build Coastguard Worker .size=${"30px"} 34*cf78ab8cSAndroid Build Coastguard Worker .controls=${!0} 35*cf78ab8cSAndroid Build Coastguard Worker yaw=${i.orientation.yaw} 36*cf78ab8cSAndroid Build Coastguard Worker pitch=${i.orientation.pitch} 37*cf78ab8cSAndroid Build Coastguard Worker roll=${i.orientation.roll} 38*cf78ab8cSAndroid Build Coastguard Worker posZ=${100*i.position.z} 39*cf78ab8cSAndroid Build Coastguard Worker role="widget" 40*cf78ab8cSAndroid Build Coastguard Worker tabindex="1" 41*cf78ab8cSAndroid Build Coastguard Worker aria-label="${i.name} on Device Map, Position: ${Math.round(100*i.position.x)}, ${Math.round(100*i.position.y)}, ${Math.round(100*i.position.z)}, Orientation: yaw: ${i.orientation.yaw}, pitch: ${i.orientation.pitch}, roll: ${i.orientation.roll}" 42*cf78ab8cSAndroid Build Coastguard Worker aria-live="polite" 43*cf78ab8cSAndroid Build Coastguard Worker ></ns-cube-sprite> 44*cf78ab8cSAndroid Build Coastguard Worker </ns-device-dragzone> 45*cf78ab8cSAndroid Build Coastguard Worker `} 46*cf78ab8cSAndroid Build Coastguard Worker `))} 47*cf78ab8cSAndroid Build Coastguard Worker </div> 48*cf78ab8cSAndroid Build Coastguard Worker <style> 49*cf78ab8cSAndroid Build Coastguard Worker #dropzone { 50*cf78ab8cSAndroid Build Coastguard Worker transform: ${i}; 51*cf78ab8cSAndroid Build Coastguard Worker } 52*cf78ab8cSAndroid Build Coastguard Worker </style> 53*cf78ab8cSAndroid Build Coastguard Worker </ns-device-dropzone> 54*cf78ab8cSAndroid Build Coastguard Worker `}};d.styles=i` 55*cf78ab8cSAndroid Build Coastguard Worker #dropzone { 56*cf78ab8cSAndroid Build Coastguard Worker margin-left: 200px; 57*cf78ab8cSAndroid Build Coastguard Worker margin-right: 200px; 58*cf78ab8cSAndroid Build Coastguard Worker transition: transform 2s, top 2s; 59*cf78ab8cSAndroid Build Coastguard Worker transform-style: preserve-3d; 60*cf78ab8cSAndroid Build Coastguard Worker } 61*cf78ab8cSAndroid Build Coastguard Worker 62*cf78ab8cSAndroid Build Coastguard Worker .box { 63*cf78ab8cSAndroid Build Coastguard Worker position: relative; 64*cf78ab8cSAndroid Build Coastguard Worker width: 1000px; //40vw; 65*cf78ab8cSAndroid Build Coastguard Worker height: 1000px; //40vh; 66*cf78ab8cSAndroid Build Coastguard Worker border: solid 1px rgb(198, 210, 255); 67*cf78ab8cSAndroid Build Coastguard Worker margin: 2.5em auto; 68*cf78ab8cSAndroid Build Coastguard Worker } 69*cf78ab8cSAndroid Build Coastguard Worker 70*cf78ab8cSAndroid Build Coastguard Worker .pattern0 { 71*cf78ab8cSAndroid Build Coastguard Worker background-image: url(./assets/grid-background.svg); 72*cf78ab8cSAndroid Build Coastguard Worker } 73*cf78ab8cSAndroid Build Coastguard Worker 74*cf78ab8cSAndroid Build Coastguard Worker .pattern1 { 75*cf78ab8cSAndroid Build Coastguard Worker background-image: url(./assets/polar-background.svg); 76*cf78ab8cSAndroid Build Coastguard Worker background-size: 1150px 1150px; 77*cf78ab8cSAndroid Build Coastguard Worker background-position: center; 78*cf78ab8cSAndroid Build Coastguard Worker } 79*cf78ab8cSAndroid Build Coastguard Worker 80*cf78ab8cSAndroid Build Coastguard Worker .pattern2 { 81*cf78ab8cSAndroid Build Coastguard Worker background-image: url(./assets/hexagonal-background.png); 82*cf78ab8cSAndroid Build Coastguard Worker background-size: 1175px 1175px; 83*cf78ab8cSAndroid Build Coastguard Worker background-position: center; 84*cf78ab8cSAndroid Build Coastguard Worker } 85*cf78ab8cSAndroid Build Coastguard Worker 86*cf78ab8cSAndroid Build Coastguard Worker .container { 87*cf78ab8cSAndroid Build Coastguard Worker display: flex; 88*cf78ab8cSAndroid Build Coastguard Worker width: 100%; 89*cf78ab8cSAndroid Build Coastguard Worker } 90*cf78ab8cSAndroid Build Coastguard Worker 91*cf78ab8cSAndroid Build Coastguard Worker .contentA { 92*cf78ab8cSAndroid Build Coastguard Worker flex: 2; 93*cf78ab8cSAndroid Build Coastguard Worker } 94*cf78ab8cSAndroid Build Coastguard Worker 95*cf78ab8cSAndroid Build Coastguard Worker .contentB { 96*cf78ab8cSAndroid Build Coastguard Worker flex: 2; 97*cf78ab8cSAndroid Build Coastguard Worker } 98*cf78ab8cSAndroid Build Coastguard Worker 99*cf78ab8cSAndroid Build Coastguard Worker ns-device-dragzone { 100*cf78ab8cSAndroid Build Coastguard Worker transform-style: inherit; 101*cf78ab8cSAndroid Build Coastguard Worker } 102*cf78ab8cSAndroid Build Coastguard Worker `,e([n()],d.prototype,"deviceData",void 0),e([n()],d.prototype,"imageIdx",void 0),e([n()],d.prototype,"numImages",void 0),e([n({type:Boolean,reflect:!0})],d.prototype,"isometric",void 0),d=e([r("ns-device-map")],d);export{d as DeviceMap}; 103