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