xref: /aosp_15_r20/tools/netsim/ui/dist/js/device-info.js (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Workerimport{__decorate as e}from"../node_modules/tslib/tslib.es6.js";import{html as i,css as t,LitElement as s}from"https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js";import{property as o,customElement as a}from"https://cdn.skypack.dev/pin/[email protected]/mode=imports/optimized/lit/decorators.js";import{styleMap as d,live as l}from"https://cdn.jsdelivr.net/gh/lit/dist@2/all/lit-all.min.js";import{simulationState as n}from"./device-observer.js";var c,r;!function(e){e.UNSPECIFIED="UNSPECIFIED",e.BLUETOOTH="BLUETOOTH",e.WIFI="WIFI",e.UWB="UWB",e.BLUETOOTH_BEACON="BLUETOOTH_BEACON",e.UNRECOGNIZED="UNRECOGNIZED"}(r||(r={})),i`
2*cf78ab8cSAndroid Build Coastguard Worker  <input type="checkbox" disabled />
3*cf78ab8cSAndroid Build Coastguard Worker  <span
4*cf78ab8cSAndroid Build Coastguard Worker    class="slider round"
5*cf78ab8cSAndroid Build Coastguard Worker    style=${d({opacity:"0.7"})}
6*cf78ab8cSAndroid Build Coastguard Worker  ></span>
7*cf78ab8cSAndroid Build Coastguard Worker`;let v=c=class extends s{constructor(){super(...arguments),this.yaw=0,this.pitch=0,this.roll=0,this.editMode=!1,this.posX=0,this.posY=0,this.posZ=0,this.holdRange=!1,this.getRadioCheckbox=(e,t)=>i`<label class="switch">
8*cf78ab8cSAndroid Build Coastguard Worker      <input
9*cf78ab8cSAndroid Build Coastguard Worker        id=${t}
10*cf78ab8cSAndroid Build Coastguard Worker        type="checkbox"
11*cf78ab8cSAndroid Build Coastguard Worker        .checked=${l(e.state)}
12*cf78ab8cSAndroid Build Coastguard Worker        @click=${()=>{var i;null===(i=this.selectedDevice)||void 0===i||i.toggleChipState(e),this.patchRadio()}}
13*cf78ab8cSAndroid Build Coastguard Worker      />
14*cf78ab8cSAndroid Build Coastguard Worker      <span class="slider round"></span>
15*cf78ab8cSAndroid Build Coastguard Worker    </label> `}connectedCallback(){super.connectedCallback(),n.registerObserver(this)}disconnectedCallback(){n.removeObserver(this),super.disconnectedCallback()}onNotify(e){if(e.selectedId&&!1===this.editMode)for(const i of e.devices)if(i.name===e.selectedId){this.selectedDevice=i,this.holdRange||(this.yaw=i.orientation.yaw,this.pitch=i.orientation.pitch,this.roll=i.orientation.roll),this.posX=Math.floor(100*i.position.x),this.posY=Math.floor(100*i.position.y),this.posZ=Math.floor(100*i.position.z);break}}changeRange(e){var i;this.holdRange=!0,console.assert(null!==this.selectedDevice);const t=e.target,s=new CustomEvent("orientationEvent",{detail:{name:null===(i=this.selectedDevice)||void 0===i?void 0:i.name,type:t.id,value:t.value}});window.dispatchEvent(s),"yaw"===t.id?this.yaw=Number(t.value):"pitch"===t.id?this.pitch=Number(t.value):this.roll=Number(t.value)}patchOrientation(){this.holdRange=!1,console.assert(void 0!==this.selectedDevice),void 0!==this.selectedDevice&&(this.selectedDevice.orientation={yaw:this.yaw,pitch:this.pitch,roll:this.roll},n.patchDevice({device:{name:this.selectedDevice.name,orientation:this.selectedDevice.orientation}}))}patchRadio(){console.assert(void 0!==this.selectedDevice),void 0!==this.selectedDevice&&n.patchDevice({device:{name:this.selectedDevice.name,chips:this.selectedDevice.chips}})}handleEditForm(){this.editMode?(n.invokeGetDevice(),this.editMode=!1):this.editMode=!0}static checkPositionBound(e){return e>10?10:e<0?0:e}static checkOrientationBound(e){return e>90?90:e<-90?-90:e}handleSave(){if(console.assert(void 0!==this.selectedDevice),void 0===this.selectedDevice)return;const e=this.renderRoot.querySelectorAll('[id^="edit"]'),i={name:this.selectedDevice.name,position:this.selectedDevice.position,orientation:this.selectedDevice.orientation};e.forEach((e=>{const t=e;"editName"===t.id?i.name=t.value:t.id.startsWith("editPos")?Number.isNaN(Number(t.value))||(i.position[t.id.slice(7).toLowerCase()]=c.checkPositionBound(Number(t.value)/100)):t.id.startsWith("editOri")&&(Number.isNaN(Number(t.value))||(i.orientation[t.id.slice(7).toLowerCase()]=c.checkOrientationBound(Number(t.value))))})),this.selectedDevice.name=i.name,this.selectedDevice.position=i.position,this.selectedDevice.orientation=i.orientation,this.handleEditForm(),n.patchDevice({device:i})}handleGetBleBeacon(e){return i`${e.settings?i`<div class="setting">
16*cf78ab8cSAndroid Build Coastguard Worker        <div class="name">Settings</div>
17*cf78ab8cSAndroid Build Coastguard Worker
18*cf78ab8cSAndroid Build Coastguard Worker        ${e.settings.advertiseMode?i`<div class="label">Advertise Mode:</div>
19*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">
20*cf78ab8cSAndroid Build Coastguard Worker                ${null===(t=e.settings.advertiseMode)||void 0===t?void 0:t.replace("-"," ")}
21*cf78ab8cSAndroid Build Coastguard Worker              </div>`:i`<div class="label">Advertise Interval:</div>
22*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">
23*cf78ab8cSAndroid Build Coastguard Worker                ${null===(s=e.settings.milliseconds)||void 0===s?void 0:s.toString().concat(" ms")}
24*cf78ab8cSAndroid Build Coastguard Worker              </div>`}
25*cf78ab8cSAndroid Build Coastguard Worker        ${e.settings.txPowerLevel?i`<div class="label">Transmit Power Level:</div>
26*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">
27*cf78ab8cSAndroid Build Coastguard Worker                ${null===(o=e.settings.txPowerLevel)||void 0===o?void 0:o.replace("-"," ")}
28*cf78ab8cSAndroid Build Coastguard Worker              </div>`:i`<div class="label">Transmit Power:</div>
29*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">
30*cf78ab8cSAndroid Build Coastguard Worker                ${null===(a=e.settings.dbm)||void 0===a?void 0:a.toString().concat(" dBm")}
31*cf78ab8cSAndroid Build Coastguard Worker              </div>`}
32*cf78ab8cSAndroid Build Coastguard Worker
33*cf78ab8cSAndroid Build Coastguard Worker        <div class="label">Scannable:</div>
34*cf78ab8cSAndroid Build Coastguard Worker        <div class="info">${e.settings.scannable}</div>
35*cf78ab8cSAndroid Build Coastguard Worker
36*cf78ab8cSAndroid Build Coastguard Worker        <div class="label">Timeout:</div>
37*cf78ab8cSAndroid Build Coastguard Worker        <div class="info">
38*cf78ab8cSAndroid Build Coastguard Worker          ${null===(d=e.settings.timeout)||void 0===d?void 0:d.toString().concat(" ms")}
39*cf78ab8cSAndroid Build Coastguard Worker        </div>
40*cf78ab8cSAndroid Build Coastguard Worker      </div>`:i``} ${e.advData?i`<div class="setting">
41*cf78ab8cSAndroid Build Coastguard Worker        <div class="name">Advertise Data</div>
42*cf78ab8cSAndroid Build Coastguard Worker
43*cf78ab8cSAndroid Build Coastguard Worker        <div class="label">Include Device Name:</div>
44*cf78ab8cSAndroid Build Coastguard Worker        <div class="info">${e.advData.includeDeviceName}</div>
45*cf78ab8cSAndroid Build Coastguard Worker
46*cf78ab8cSAndroid Build Coastguard Worker        <div class="label">Include Transmit Power:</div>
47*cf78ab8cSAndroid Build Coastguard Worker        <div class="info">${e.advData.includeTxPowerLevel}</div>
48*cf78ab8cSAndroid Build Coastguard Worker
49*cf78ab8cSAndroid Build Coastguard Worker        ${e.advData.manufacturerData.length?i` <div class="label">Manufacturer Data Length:</div>
50*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">
51*cf78ab8cSAndroid Build Coastguard Worker                ${e.advData.manufacturerData.length}
52*cf78ab8cSAndroid Build Coastguard Worker              </div>`:i``}
53*cf78ab8cSAndroid Build Coastguard Worker        ${e.advData.services.length?i` <div class="label">Number of Supported Services:</div>
54*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">${e.advData.services.length}</div>`:i``}
55*cf78ab8cSAndroid Build Coastguard Worker      </div>`:i``}`;var t,s,o,a,d}getBluetoothRadioCheckboxes(e){let i,t;return"lowEnergy"in e&&e.lowEnergy&&(i=this.getRadioCheckbox(e.lowEnergy,"lowEnergy")),"classic"in e&&e.classic&&(t=this.getRadioCheckbox(e.classic,"classic")),[i,t]}handleGetChip(e,t){if(e.bleBeacon){let s={};return e.bleBeacon.bt&&([s["Bluetooth LE"],s["Bluetooth Classic"]]=this.getBluetoothRadioCheckboxes(e.bleBeacon.bt)),i`<div class="title">
56*cf78ab8cSAndroid Build Coastguard Worker          Chip ${t+1}: ${e.kind.replace("_"," ")}
57*cf78ab8cSAndroid Build Coastguard Worker        </div>
58*cf78ab8cSAndroid Build Coastguard Worker        <div class="setting">
59*cf78ab8cSAndroid Build Coastguard Worker          <div class="name">Name</div>
60*cf78ab8cSAndroid Build Coastguard Worker          <div class="info">${e.name}</div>
61*cf78ab8cSAndroid Build Coastguard Worker        </div>
62*cf78ab8cSAndroid Build Coastguard Worker        <div class="setting">
63*cf78ab8cSAndroid Build Coastguard Worker          ${Object.entries(s).length?i`<div class="name">Radios</div>`:i``}
64*cf78ab8cSAndroid Build Coastguard Worker          ${Object.entries(s).map((([e,t])=>i`<div class="label">${e}</div>
65*cf78ab8cSAndroid Build Coastguard Worker              <div class="info">${t}</div>`))}
66*cf78ab8cSAndroid Build Coastguard Worker        </div>
67*cf78ab8cSAndroid Build Coastguard Worker        ${this.handleGetBleBeacon(e.bleBeacon)}`}return""}handleGetChips(){if(!this.selectedDevice||!this.selectedDevice.chips)return i``;if(this.selectedDevice.chips.some((e=>(e=>e.kind===r.BLUETOOTH_BEACON&&e.bleBeacon)(e))))return i`${this.selectedDevice.chips.map(((e,i)=>this.handleGetChip(e,i)))}`;let e={};for(const i of this.selectedDevice.chips)i&&(i.bt&&([e["Bluetooth LE"],e["Bluetooth Classic"]]=this.getBluetoothRadioCheckboxes(i.bt)),i.wifi&&(e.WIFI=this.getRadioCheckbox(i.wifi,"wifi")),i.uwb&&(e.UWB=this.getRadioCheckbox(i.uwb,"uwb")));return Object.keys(e).length?i`<div class="setting">
68*cf78ab8cSAndroid Build Coastguard Worker        <div class="name">Radios</div>
69*cf78ab8cSAndroid Build Coastguard Worker        ${Object.entries(e).map((([e,t])=>i`<div class="label">${e}</div>
70*cf78ab8cSAndroid Build Coastguard Worker            <div class="info">${t}</div>`))}
71*cf78ab8cSAndroid Build Coastguard Worker      </div>`:i``}render(){return i`${this.selectedDevice?i`
72*cf78ab8cSAndroid Build Coastguard Worker          <div class="title">Device Info</div>
73*cf78ab8cSAndroid Build Coastguard Worker          <div class="setting">
74*cf78ab8cSAndroid Build Coastguard Worker            <div class="name">Name</div>
75*cf78ab8cSAndroid Build Coastguard Worker            <div class="info">${this.selectedDevice.name}</div>
76*cf78ab8cSAndroid Build Coastguard Worker          </div>
77*cf78ab8cSAndroid Build Coastguard Worker          <div class="setting">
78*cf78ab8cSAndroid Build Coastguard Worker            <div class="name">Position</div>
79*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">X</div>
80*cf78ab8cSAndroid Build Coastguard Worker            <div
81*cf78ab8cSAndroid Build Coastguard Worker              class="info"
82*cf78ab8cSAndroid Build Coastguard Worker              style=${d({color:"red"})}
83*cf78ab8cSAndroid Build Coastguard Worker            >
84*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
85*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
86*cf78ab8cSAndroid Build Coastguard Worker                    id="editPosX"
87*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.posX.toString()}
88*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`${this.posX}`}
89*cf78ab8cSAndroid Build Coastguard Worker            </div>
90*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">Y</div>
91*cf78ab8cSAndroid Build Coastguard Worker            <div
92*cf78ab8cSAndroid Build Coastguard Worker              class="info"
93*cf78ab8cSAndroid Build Coastguard Worker              style=${d({color:"green"})}
94*cf78ab8cSAndroid Build Coastguard Worker            >
95*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
96*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
97*cf78ab8cSAndroid Build Coastguard Worker                    id="editPosY"
98*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.posY.toString()}
99*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`${this.posY}`}
100*cf78ab8cSAndroid Build Coastguard Worker            </div>
101*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">Z</div>
102*cf78ab8cSAndroid Build Coastguard Worker            <div
103*cf78ab8cSAndroid Build Coastguard Worker              class="info"
104*cf78ab8cSAndroid Build Coastguard Worker              style=${d({color:"blue"})}
105*cf78ab8cSAndroid Build Coastguard Worker            >
106*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
107*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
108*cf78ab8cSAndroid Build Coastguard Worker                    id="editPosZ"
109*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.posZ.toString()}
110*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`${this.posZ}`}
111*cf78ab8cSAndroid Build Coastguard Worker            </div>
112*cf78ab8cSAndroid Build Coastguard Worker          </div>
113*cf78ab8cSAndroid Build Coastguard Worker          <div class="setting">
114*cf78ab8cSAndroid Build Coastguard Worker            <div class="name">Orientation</div>
115*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">Yaw</div>
116*cf78ab8cSAndroid Build Coastguard Worker            <div class="info">
117*cf78ab8cSAndroid Build Coastguard Worker              <input
118*cf78ab8cSAndroid Build Coastguard Worker                id="yaw"
119*cf78ab8cSAndroid Build Coastguard Worker                type="range"
120*cf78ab8cSAndroid Build Coastguard Worker                min="-90"
121*cf78ab8cSAndroid Build Coastguard Worker                max="90"
122*cf78ab8cSAndroid Build Coastguard Worker                .value=${this.yaw.toString()}
123*cf78ab8cSAndroid Build Coastguard Worker                .disabled=${this.editMode}
124*cf78ab8cSAndroid Build Coastguard Worker                @input=${this.changeRange}
125*cf78ab8cSAndroid Build Coastguard Worker                @change=${this.patchOrientation}
126*cf78ab8cSAndroid Build Coastguard Worker              />
127*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
128*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
129*cf78ab8cSAndroid Build Coastguard Worker                    id="editOriYaw"
130*cf78ab8cSAndroid Build Coastguard Worker                    class="orientation"
131*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.yaw.toString()}
132*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`<div class="text">(${this.yaw})</div>`}
133*cf78ab8cSAndroid Build Coastguard Worker            </div>
134*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">Pitch</div>
135*cf78ab8cSAndroid Build Coastguard Worker            <div class="info">
136*cf78ab8cSAndroid Build Coastguard Worker              <input
137*cf78ab8cSAndroid Build Coastguard Worker                id="pitch"
138*cf78ab8cSAndroid Build Coastguard Worker                type="range"
139*cf78ab8cSAndroid Build Coastguard Worker                min="-90"
140*cf78ab8cSAndroid Build Coastguard Worker                max="90"
141*cf78ab8cSAndroid Build Coastguard Worker                .value=${this.pitch.toString()}
142*cf78ab8cSAndroid Build Coastguard Worker                .disabled=${this.editMode}
143*cf78ab8cSAndroid Build Coastguard Worker                @input=${this.changeRange}
144*cf78ab8cSAndroid Build Coastguard Worker                @change=${this.patchOrientation}
145*cf78ab8cSAndroid Build Coastguard Worker              />
146*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
147*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
148*cf78ab8cSAndroid Build Coastguard Worker                    id="editOriPitch"
149*cf78ab8cSAndroid Build Coastguard Worker                    class="orientation"
150*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.pitch.toString()}
151*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`<div class="text">(${this.pitch})</div>`}
152*cf78ab8cSAndroid Build Coastguard Worker            </div>
153*cf78ab8cSAndroid Build Coastguard Worker            <div class="label">Roll</div>
154*cf78ab8cSAndroid Build Coastguard Worker            <div class="info">
155*cf78ab8cSAndroid Build Coastguard Worker              <input
156*cf78ab8cSAndroid Build Coastguard Worker                id="roll"
157*cf78ab8cSAndroid Build Coastguard Worker                type="range"
158*cf78ab8cSAndroid Build Coastguard Worker                min="-90"
159*cf78ab8cSAndroid Build Coastguard Worker                max="90"
160*cf78ab8cSAndroid Build Coastguard Worker                .value=${this.roll.toString()}
161*cf78ab8cSAndroid Build Coastguard Worker                .disabled=${this.editMode}
162*cf78ab8cSAndroid Build Coastguard Worker                @input=${this.changeRange}
163*cf78ab8cSAndroid Build Coastguard Worker                @change=${this.patchOrientation}
164*cf78ab8cSAndroid Build Coastguard Worker              />
165*cf78ab8cSAndroid Build Coastguard Worker              ${this.editMode?i`<input
166*cf78ab8cSAndroid Build Coastguard Worker                    type="text"
167*cf78ab8cSAndroid Build Coastguard Worker                    id="editOriRoll"
168*cf78ab8cSAndroid Build Coastguard Worker                    class="orientation"
169*cf78ab8cSAndroid Build Coastguard Worker                    .value=${this.roll.toString()}
170*cf78ab8cSAndroid Build Coastguard Worker                  />`:i`<div class="text">(${this.roll})</div>`}
171*cf78ab8cSAndroid Build Coastguard Worker            </div>
172*cf78ab8cSAndroid Build Coastguard Worker          </div>
173*cf78ab8cSAndroid Build Coastguard Worker          <div class="setting">
174*cf78ab8cSAndroid Build Coastguard Worker            ${this.editMode?i`
175*cf78ab8cSAndroid Build Coastguard Worker                  <input type="button" value="Save" @click=${this.handleSave} />
176*cf78ab8cSAndroid Build Coastguard Worker                  <input
177*cf78ab8cSAndroid Build Coastguard Worker                    type="button"
178*cf78ab8cSAndroid Build Coastguard Worker                    value="Cancel"
179*cf78ab8cSAndroid Build Coastguard Worker                    @click=${this.handleEditForm}
180*cf78ab8cSAndroid Build Coastguard Worker                  />
181*cf78ab8cSAndroid Build Coastguard Worker                `:i`<input
182*cf78ab8cSAndroid Build Coastguard Worker                  type="button"
183*cf78ab8cSAndroid Build Coastguard Worker                  value="Edit"
184*cf78ab8cSAndroid Build Coastguard Worker                  @click=${this.handleEditForm}
185*cf78ab8cSAndroid Build Coastguard Worker                />`}
186*cf78ab8cSAndroid Build Coastguard Worker          </div>
187*cf78ab8cSAndroid Build Coastguard Worker
188*cf78ab8cSAndroid Build Coastguard Worker          ${this.handleGetChips()}
189*cf78ab8cSAndroid Build Coastguard Worker        `:i`<div class="title">Device Info</div>`}`}};v.styles=t`
190*cf78ab8cSAndroid Build Coastguard Worker    :host {
191*cf78ab8cSAndroid Build Coastguard Worker      cursor: pointer;
192*cf78ab8cSAndroid Build Coastguard Worker      display: grid;
193*cf78ab8cSAndroid Build Coastguard Worker      place-content: center;
194*cf78ab8cSAndroid Build Coastguard Worker      color: white;
195*cf78ab8cSAndroid Build Coastguard Worker      font-size: 25px;
196*cf78ab8cSAndroid Build Coastguard Worker      font-family: 'Lato', sans-serif;
197*cf78ab8cSAndroid Build Coastguard Worker      border: 5px solid black;
198*cf78ab8cSAndroid Build Coastguard Worker      border-radius: 12px;
199*cf78ab8cSAndroid Build Coastguard Worker      padding: 10px;
200*cf78ab8cSAndroid Build Coastguard Worker      background-color: #9199a5;
201*cf78ab8cSAndroid Build Coastguard Worker      max-width: 600px;
202*cf78ab8cSAndroid Build Coastguard Worker    }
203*cf78ab8cSAndroid Build Coastguard Worker
204*cf78ab8cSAndroid Build Coastguard Worker    .title {
205*cf78ab8cSAndroid Build Coastguard Worker      font-weight: bold;
206*cf78ab8cSAndroid Build Coastguard Worker      text-transform: uppercase;
207*cf78ab8cSAndroid Build Coastguard Worker      text-align: center;
208*cf78ab8cSAndroid Build Coastguard Worker      margin-bottom: 10px;
209*cf78ab8cSAndroid Build Coastguard Worker    }
210*cf78ab8cSAndroid Build Coastguard Worker
211*cf78ab8cSAndroid Build Coastguard Worker    .setting {
212*cf78ab8cSAndroid Build Coastguard Worker      display: grid;
213*cf78ab8cSAndroid Build Coastguard Worker      grid-template-columns: auto auto;
214*cf78ab8cSAndroid Build Coastguard Worker      margin-top: 0px;
215*cf78ab8cSAndroid Build Coastguard Worker      margin-bottom: 30px;
216*cf78ab8cSAndroid Build Coastguard Worker      //border: 3px solid black;
217*cf78ab8cSAndroid Build Coastguard Worker      padding: 10px;
218*cf78ab8cSAndroid Build Coastguard Worker    }
219*cf78ab8cSAndroid Build Coastguard Worker
220*cf78ab8cSAndroid Build Coastguard Worker    .setting .name {
221*cf78ab8cSAndroid Build Coastguard Worker      grid-column: 1 / span 2;
222*cf78ab8cSAndroid Build Coastguard Worker      text-transform: uppercase;
223*cf78ab8cSAndroid Build Coastguard Worker      text-align: left;
224*cf78ab8cSAndroid Build Coastguard Worker      margin-bottom: 10px;
225*cf78ab8cSAndroid Build Coastguard Worker      font-weight: bold;
226*cf78ab8cSAndroid Build Coastguard Worker    }
227*cf78ab8cSAndroid Build Coastguard Worker
228*cf78ab8cSAndroid Build Coastguard Worker    .label {
229*cf78ab8cSAndroid Build Coastguard Worker      grid-column: 1;
230*cf78ab8cSAndroid Build Coastguard Worker      text-align: left;
231*cf78ab8cSAndroid Build Coastguard Worker    }
232*cf78ab8cSAndroid Build Coastguard Worker
233*cf78ab8cSAndroid Build Coastguard Worker    .info {
234*cf78ab8cSAndroid Build Coastguard Worker      grid-column: 2;
235*cf78ab8cSAndroid Build Coastguard Worker      text-align: right;
236*cf78ab8cSAndroid Build Coastguard Worker      margin-bottom: 10px;
237*cf78ab8cSAndroid Build Coastguard Worker    }
238*cf78ab8cSAndroid Build Coastguard Worker
239*cf78ab8cSAndroid Build Coastguard Worker    .switch {
240*cf78ab8cSAndroid Build Coastguard Worker      position: relative;
241*cf78ab8cSAndroid Build Coastguard Worker      float: right;
242*cf78ab8cSAndroid Build Coastguard Worker      width: 60px;
243*cf78ab8cSAndroid Build Coastguard Worker      height: 34px;
244*cf78ab8cSAndroid Build Coastguard Worker    }
245*cf78ab8cSAndroid Build Coastguard Worker
246*cf78ab8cSAndroid Build Coastguard Worker    .switch input {
247*cf78ab8cSAndroid Build Coastguard Worker      opacity: 0;
248*cf78ab8cSAndroid Build Coastguard Worker      width: 0;
249*cf78ab8cSAndroid Build Coastguard Worker      height: 0;
250*cf78ab8cSAndroid Build Coastguard Worker    }
251*cf78ab8cSAndroid Build Coastguard Worker
252*cf78ab8cSAndroid Build Coastguard Worker    .slider {
253*cf78ab8cSAndroid Build Coastguard Worker      position: absolute;
254*cf78ab8cSAndroid Build Coastguard Worker      cursor: pointer;
255*cf78ab8cSAndroid Build Coastguard Worker      top: 0;
256*cf78ab8cSAndroid Build Coastguard Worker      left: 0;
257*cf78ab8cSAndroid Build Coastguard Worker      right: 0;
258*cf78ab8cSAndroid Build Coastguard Worker      bottom: 0;
259*cf78ab8cSAndroid Build Coastguard Worker      background-color: #ccc;
260*cf78ab8cSAndroid Build Coastguard Worker      -webkit-transition: 0.4s;
261*cf78ab8cSAndroid Build Coastguard Worker      transition: 0.4s;
262*cf78ab8cSAndroid Build Coastguard Worker    }
263*cf78ab8cSAndroid Build Coastguard Worker
264*cf78ab8cSAndroid Build Coastguard Worker    .slider:before {
265*cf78ab8cSAndroid Build Coastguard Worker      position: absolute;
266*cf78ab8cSAndroid Build Coastguard Worker      content: '';
267*cf78ab8cSAndroid Build Coastguard Worker      height: 26px;
268*cf78ab8cSAndroid Build Coastguard Worker      width: 26px;
269*cf78ab8cSAndroid Build Coastguard Worker      left: 4px;
270*cf78ab8cSAndroid Build Coastguard Worker      bottom: 4px;
271*cf78ab8cSAndroid Build Coastguard Worker      background-color: white;
272*cf78ab8cSAndroid Build Coastguard Worker      -webkit-transition: 0.4s;
273*cf78ab8cSAndroid Build Coastguard Worker      transition: 0.4s;
274*cf78ab8cSAndroid Build Coastguard Worker    }
275*cf78ab8cSAndroid Build Coastguard Worker
276*cf78ab8cSAndroid Build Coastguard Worker    input:checked + .slider {
277*cf78ab8cSAndroid Build Coastguard Worker      background-color: #2196f3;
278*cf78ab8cSAndroid Build Coastguard Worker    }
279*cf78ab8cSAndroid Build Coastguard Worker
280*cf78ab8cSAndroid Build Coastguard Worker    input:focus + .slider {
281*cf78ab8cSAndroid Build Coastguard Worker      box-shadow: 0 0 1px #2196f3;
282*cf78ab8cSAndroid Build Coastguard Worker    }
283*cf78ab8cSAndroid Build Coastguard Worker
284*cf78ab8cSAndroid Build Coastguard Worker    input:checked + .slider:before {
285*cf78ab8cSAndroid Build Coastguard Worker      -webkit-transform: translateX(26px);
286*cf78ab8cSAndroid Build Coastguard Worker      -ms-transform: translateX(26px);
287*cf78ab8cSAndroid Build Coastguard Worker      transform: translateX(26px);
288*cf78ab8cSAndroid Build Coastguard Worker    }
289*cf78ab8cSAndroid Build Coastguard Worker
290*cf78ab8cSAndroid Build Coastguard Worker    /* Rounded sliders */
291*cf78ab8cSAndroid Build Coastguard Worker    .slider.round {
292*cf78ab8cSAndroid Build Coastguard Worker      border-radius: 34px;
293*cf78ab8cSAndroid Build Coastguard Worker    }
294*cf78ab8cSAndroid Build Coastguard Worker
295*cf78ab8cSAndroid Build Coastguard Worker    .slider.round:before {
296*cf78ab8cSAndroid Build Coastguard Worker      border-radius: 50%;
297*cf78ab8cSAndroid Build Coastguard Worker    }
298*cf78ab8cSAndroid Build Coastguard Worker
299*cf78ab8cSAndroid Build Coastguard Worker    .text {
300*cf78ab8cSAndroid Build Coastguard Worker      display: inline-block;
301*cf78ab8cSAndroid Build Coastguard Worker      position: relative;
302*cf78ab8cSAndroid Build Coastguard Worker      width: 50px;
303*cf78ab8cSAndroid Build Coastguard Worker    }
304*cf78ab8cSAndroid Build Coastguard Worker
305*cf78ab8cSAndroid Build Coastguard Worker    input[type='range'] {
306*cf78ab8cSAndroid Build Coastguard Worker      width: 400px;
307*cf78ab8cSAndroid Build Coastguard Worker    }
308*cf78ab8cSAndroid Build Coastguard Worker
309*cf78ab8cSAndroid Build Coastguard Worker    input[type='text'] {
310*cf78ab8cSAndroid Build Coastguard Worker      width: 50%;
311*cf78ab8cSAndroid Build Coastguard Worker      font-size: inherit;
312*cf78ab8cSAndroid Build Coastguard Worker      text-align: right;
313*cf78ab8cSAndroid Build Coastguard Worker      max-height: 25px;
314*cf78ab8cSAndroid Build Coastguard Worker    }
315*cf78ab8cSAndroid Build Coastguard Worker
316*cf78ab8cSAndroid Build Coastguard Worker    input[type='text'].orientation {
317*cf78ab8cSAndroid Build Coastguard Worker      max-width: 50px;
318*cf78ab8cSAndroid Build Coastguard Worker    }
319*cf78ab8cSAndroid Build Coastguard Worker
320*cf78ab8cSAndroid Build Coastguard Worker    input[type='button'] {
321*cf78ab8cSAndroid Build Coastguard Worker      display: inline;
322*cf78ab8cSAndroid Build Coastguard Worker      font-size: inherit;
323*cf78ab8cSAndroid Build Coastguard Worker      max-width: 200px;
324*cf78ab8cSAndroid Build Coastguard Worker    }
325*cf78ab8cSAndroid Build Coastguard Worker  `,e([o()],v.prototype,"selectedDevice",void 0),e([o({type:Number})],v.prototype,"yaw",void 0),e([o({type:Number})],v.prototype,"pitch",void 0),e([o({type:Number})],v.prototype,"roll",void 0),e([o({type:Boolean})],v.prototype,"editMode",void 0),e([o({type:Number})],v.prototype,"posX",void 0),e([o({type:Number})],v.prototype,"posY",void 0),e([o({type:Number})],v.prototype,"posZ",void 0),v=c=e([a("ns-device-info")],v);export{v as DeviceInformation};
326