xref: /aosp_15_r20/tools/netsim/ui/dist/js/device-map.js (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
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