1 line
No EOL
68 KiB
Text
1 line
No EOL
68 KiB
Text
{"version":3,"sources":["webpack:///./src/components/NotificationList.vue?8f7c","webpack:///./src/components/NotificationList.vue","webpack:///src/components/NotificationList.vue","webpack:///src/components/Console.vue","webpack:///./src/components/Console.vue?88b1","webpack:///./src/components/Console.vue","webpack:///src/components/Controller.vue","webpack:///./src/components/Controller.vue?79c9","webpack:///./src/components/Controller.vue","webpack:///./src/components/Footerbar.vue?5baa","webpack:///./src/components/Footerbar.vue","webpack:///./src/components/Voyant.vue?2e55","webpack:///./src/components/Voyant.vue","webpack:///src/components/MyNavbar.vue","webpack:///src/components/Voyant.vue","webpack:///./src/components/MyNavbar.vue?6b3e","webpack:///./src/components/MyNavbar.vue","webpack:///src/components/Video.vue","webpack:///./src/components/Video.vue?0524","webpack:///./src/components/Video.vue","webpack:///./src/components/LoadingScreen.vue?1d6b","webpack:///./src/components/LoadingScreen.vue","webpack:///src/components/DashBoard.vue","webpack:///./src/components/DashBoard.vue?092d","webpack:///./src/components/DashBoard.vue","webpack:///src/App.vue","webpack:///./src/App.vue?dba7","webpack:///./src/App.vue","webpack:///./src/main.js"],"names":["components_NotificationList","render","_vm","this","_h","$createElement","_c","_self","_l","notify","index","key","attrs","icon","id","color","type","value","transition","on","click","deleteNotes","_v","_s","msg","staticRenderFns","src_components_NotificationList","__webpack_require__","normalizeComponent","data","ssrContext","Console","message","balise","components_Console","row","wrap","d-flex","xs12","staticClass","disabled","tcpState","label","keyup","$event","_k","keyCode","consoleOut","model","callback","$$v","output","expression","dark","src_components_Console","Console_normalizeComponent","Controller","_this","components_Controller","class","touched","src","keyleft","keydown","keyright","src_components_Controller","Controller_normalizeComponent","Footerbar","staticStyle","alt","Date","getFullYear","components_Footerbar","Footerbar_normalizeComponent","components_Voyant","light","ledOn","MyNavbar","Voyant","Voyant_normalizeComponent","battery","serialState","components_MyNavbar","nudge-width","slot","tcpManageRq","manageSerial","runWithWDRq","runWithoutWDRq","idleDumby","manageCamera","arenaDetectionRq","batterie_src","src_components_MyNavbar","MyNavbar_normalizeComponent","Video","methods","_methods","$socket","emit","cameraActive","positionMode","defineProperty_default","e","getBoundingClientRect","y","robotX","robotY","cursor","fps","x","robot2","components_Video","draggable","source","sendPos","detectionMode","flat","confirmArena","infirmArena","askArena","displayPos","robot","_e","LoadingScreen","indeterminate","size","width","DashBoard","state","dumbyStarted","components_DashBoard","primary","offset-y","startWithWD","startWithoutWD","stopIdle","NotesList","Navbar","FooterBar","Video_normalizeComponent","Loading","LoadingScreen_normalizeComponent","Dashboard","DashBoard_normalizeComponent","tcpConnected","serialOpened","selectortype_template_index_0_src_App","grid-list-md","sm6","md6","sm12","md12","src_App","App_normalizeComponent","App","vue_esm","config","productionTip","use","vuetify_default","a","build_default","location","toString","el","components","template"],"mappings":"+MAGAA,GADiBC,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAAJ,EAAAM,GAAAN,EAAA,cAAAO,EAAAC,GAAyD,OAAAJ,EAAA,WAAqBK,IAAAD,EAAAE,OAAiBC,KAAA,OAAAC,GAAAJ,EAAAK,MAAAN,EAAAO,KAAAC,MAAA,OAAAC,WAAA,sBAA8FC,IAAKC,MAAAlB,EAAAmB,eAAyBnB,EAAAoB,GAAA,WAAApB,EAAAqB,GAAAd,EAAAe,KAAA,iBAEnSC,oBCCjB,IAuBAC,EAvBAC,EAAA,OAcAC,qFCEAC,mEAKAf,sDACAJ,ODNAV,GATA,EAVA,SAAA8B,GACAH,EAAA,SAaA,KAEA,MAUA,QEXAI,qBAEA,6CAIA,0DAIA,8BACA,qBACAC,mDACAC,kHAQA,iBACA,OClCAC,GADiBjC,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAAA,EAAA,YAAgCM,OAAOuB,IAAA,GAAAC,KAAA,MAAoB9B,EAAA,UAAeM,OAAOyB,SAAA,GAAAC,KAAA,MAAuBhC,EAAA,OAAYiC,YAAA,sBAAA3B,OAAyCE,GAAA,qBAAsBZ,EAAAoB,GAAA,KAAAhB,EAAA,UAA6BM,OAAOyB,SAAA,GAAAC,KAAA,MAAuBhC,EAAA,gBAAqBM,OAAO4B,UAAAtC,EAAAuC,SAAAC,MAAA,yBAAyDvB,IAAKwB,MAAA,SAAAC,GAAyB,gBAAAA,IAAA1C,EAAA2C,GAAAD,EAAAE,QAAA,WAAAF,EAAAjC,KAAwE,YAAeT,EAAA6C,WAAAH,KAAwBI,OAAQ/B,MAAAf,EAAA,OAAA+C,SAAA,SAAAC,GAA4ChD,EAAAiD,OAAAD,GAAeE,WAAA,YAAsBlD,EAAAoB,GAAA,KAAAhB,EAAA,SAA0BM,OAAO4B,UAAAtC,EAAAuC,SAAA5B,KAAA,GAAAE,MAAA,UAAAsC,KAAA,IAA+DlC,IAAKC,MAAAlB,EAAA6C,cAAwBzC,EAAA,UAAAJ,EAAAoB,GAAA,2BAE9uBG,oBCCjB,IAuBA6B,EAvBA3B,EAAA,OAcA4B,CACAxB,EACAG,GATA,EAVA,SAAAJ,GACAH,EAAA,SAaA,KAEA,MAUA,QCbA6B,0FAUA,IAAAC,EAAAtD,8EAGA,4BAGA,+BAGA,8BAGA,4EAKA,4BAGA,+BAGA,8BAGA,gEAOA,iCAGA,oEAKA,+BAGA,oEAKA,8BAGA,sEAKA,8BAGA,eChFAuD,GADiBzD,OAFjB,WAA0B,IAAaG,EAAbD,KAAaE,eAA0BC,EAAvCH,KAAuCI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBiC,YAAA,YAAsBjC,EAAA,OAAYiC,YAAA,YAAAoB,OAA+BC,QAAjJzD,KAAiJwC,OAAmB/B,OAAQE,GAAA,KAAA+C,IAAA,0BAA5K1D,KAAoNmB,GAAA,KAAAhB,EAAA,OAAAA,EAAA,OAAkCiC,YAAA,YAAAoB,OAA+BC,QAArRzD,KAAqR2D,SAAqBlD,OAAQE,GAAA,OAAA+C,IAAA,4BAAlT1D,KAA8VmB,GAAA,KAAAhB,EAAA,OAAwBiC,YAAA,YAAAoB,OAA+BC,QAArZzD,KAAqZ4D,SAAqBnD,OAAQE,GAAA,OAAA+C,IAAA,4BAAlb1D,KAA8dmB,GAAA,KAAAhB,EAAA,OAAwBiC,YAAA,YAAAoB,OAA+BC,QAArhBzD,KAAqhB6D,UAAsBpD,OAAQE,GAAA,QAAA+C,IAAA,kCAE5jBpC,oBCCjB,IAuBAwC,EAvBAtC,EAAA,OAcAuC,CACAV,EACAE,GATA,EAVA,SAAA5B,GACAH,EAAA,SAaA,KAEA,MAUA,QCvBAwC,GADiBlE,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,YAAsBiC,YAAA,OAAA3B,OAA0BG,MAAA,mBAAyBT,EAAA,OAAY8D,aAAarD,MAAA,WAAiBb,EAAAoB,GAAA,iBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,YAAAJ,EAAAoB,GAAA,KAAAhB,EAAA,OAA2EiC,YAAA,WAAA3B,OAA8BiD,IAAA,kBAAAQ,IAAA,cAA0CnE,EAAAoB,GAAA,KAAAhB,EAAA,OAAwBiC,YAAA,WAAA3B,OAA8BiD,IAAA,uBAAAQ,IAAA,eAAgDnE,EAAAoB,GAAA,KAAAhB,EAAA,YAAAJ,EAAAoB,GAAA,KAAAhB,EAAA,OAAmD8D,aAAarD,MAAA,WAAiBb,EAAAoB,GAAA,qBAAApB,EAAAqB,IAAA,IAAA+C,MAAAC,mBAAA,IAErgB9C,oBCCjB,IAsBA+C,EAtBA7C,EAAA,OAaA8C,CAXA,KAaAN,GATA,EATA,SAAArC,GACAH,EAAA,SAYA,KAEA,MAUA,QCtBA+C,GADiBzE,OAFjB,WAA0B,IAAaG,EAAbD,KAAaE,eAAkD,OAA/DF,KAAuCI,MAAAD,IAAAF,GAAwB,OAAiBmC,YAAA,MAAAoB,OAAyBgB,MAAzGxE,KAAyGyE,UAElHnD,oBCCjB,ICkDAoD,eAIAC,ODtDAnD,EAAA,OAcAoD,SEVA,uCAIA,KFQAL,GATA,EAVA,SAAA5C,GACAH,EAAA,SAaA,KAEA,MAUA,2BCgCA,gDAGA,UACA,eAEA,oDAIAE,oEAgBAmD,cACA,oBACA,+BACA,WACA,oBACA,kCACA,WACA,oBACA,gCACA,MACA,0BACA,0EAQA,6BACA,4CAGA,iGAMAC,oJE9GAC,GADiBjF,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,aAAuBM,OAAOyC,KAAA,GAAAtC,MAAA,mBAAmCT,EAAA,mBAAwBiC,YAAA,kCAA4CrC,EAAAoB,GAAA,0BAAApB,EAAAoB,GAAA,KAAAhB,EAAA,UAA4DM,OAAOuE,cAAA,OAAmB7E,EAAA,OAAYiC,YAAA,OAAA3B,OAA0BwE,KAAA,YAAAtE,GAAA,kBAAA+C,IAAA,8BAA6EuB,KAAA,cAAkBlF,EAAAoB,GAAA,KAAAhB,EAAA,UAAAA,EAAA,eAA6Ca,IAAIC,MAAAlB,EAAAmF,eAAyB/E,EAAA,qBAAAJ,EAAAuC,SAAAnC,EAAA,OAAAJ,EAAAoB,GAAA,iCAAAhB,EAAA,OAAAJ,EAAAoB,GAAA,oCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAA+KiC,YAAA,mBAAA3B,OAAsC4B,UAAAtC,EAAAuC,UAAyBtB,IAAKC,MAAAlB,EAAAoF,gBAA0BhF,EAAA,qBAAAJ,EAAA+E,YAAA3E,EAAA,OAAAJ,EAAAoB,GAAA,4BAAAhB,EAAA,OAAAJ,EAAAoB,GAAA,uCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,UAA2KiC,YAAA,mBAAA3B,OAAsCuE,cAAA,OAAmB7E,EAAA,OAAYiC,YAAA,OAAA3B,OAA0BwE,KAAA,YAAAtE,GAAA,aAAA+C,IAAA,+BAAyEuB,KAAA,cAAkBlF,EAAAoB,GAAA,KAAAhB,EAAA,UAAAA,EAAA,eAA6CM,OAAO4B,UAAAtC,EAAA+E,aAA4B9D,IAAKC,MAAAlB,EAAAqF,eAAyBjF,EAAA,qBAAAJ,EAAAoB,GAAA,gCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAA+FM,OAAO4B,UAAAtC,EAAA+E,aAA4B9D,IAAKC,MAAAlB,EAAAsF,kBAA4BlF,EAAA,qBAAAJ,EAAAoB,GAAA,iCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAAgGM,OAAO4B,UAAAtC,EAAA+E,aAA4B9D,IAAKC,MAAAlB,EAAAuF,aAAuBnF,EAAA,qBAAAJ,EAAAoB,GAAA,kCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,UAA4FiC,YAAA,mBAAA3B,OAAsCuE,cAAA,OAAmB7E,EAAA,UAAeiC,YAAA,OAAA3B,OAA0BwE,KAAA,aAAmBA,KAAA,cAAkBlF,EAAAoB,GAAA,iBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,UAAAA,EAAA,eAAqEM,OAAO4B,UAAAtC,EAAAuC,UAAyBtB,IAAKC,MAAAlB,EAAAwF,gBAA0BpF,EAAA,qBAAAJ,EAAAoB,GAAA,qCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAAoGM,OAAO4B,UAAAtC,EAAAuC,UAAyBtB,IAAKC,MAAAlB,EAAAyF,oBAA8BrF,EAAA,qBAAAJ,EAAAoB,GAAA,iCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,YAAAJ,EAAAoB,GAAA,KAAAhB,EAAA,aAAAA,EAAA,UAAsIM,OAAOwE,KAAA,YAAAtE,GAAA,iBAAA8D,MAAA1E,EAAAuC,UAA8D2C,KAAA,cAAkBlF,EAAAoB,GAAA,KAAAhB,EAAA,QAAAJ,EAAAoB,GAAA,2CAAApB,EAAAoB,GAAA,KAAAhB,EAAA,aAAAA,EAAA,OAAiHM,OAAOwE,KAAA,YAAAtE,GAAA,eAAA+C,IAAA3D,EAAA0F,aAAAvB,IAAA,IAAuEe,KAAA,cAAkBlF,EAAAoB,GAAA,KAAAhB,EAAA,QAAAJ,EAAAoB,GAAA,+BAEh9EG,oBCCjB,MAuBAoE,EAvBAlE,EAAA,OAcAmE,CACAjB,EACAK,GATA,EAVA,SAAApD,GACAH,EAAA,SAaA,KAEA,MAUA,6BCDAoE,UAEA,0CAGA,wBACA,gBACA,iBACA,iBACA,gBACA,iBACA,oBAEA,QAEAC,SAAAC,2JAEA,iCAGA,mBAAA9F,KAAA+F,QAAAC,KAAA,UAAAhG,KACAiG,oCAGA,uBAAAjG,KAAA+F,QAAAC,KAAA,QACA,2BACA,kFAIAE,sCACAA,0FAKA,0BACA,8EAKA,2BACA,iGAKAA,sCAEAA,gBAEAC,IAAAL,EAAA,mBAAAM,6BAEA,wCACAC,oDACAC,qCACAC,uCACAC,oCACAC,WAGAX,iDAGA,aAEA,wDACApE,QAGAgF,uCAKA,cACA,oBACA,iBACA,QAGAC,IAEAL,aAJA,gBAKAM,6CAGAlF,iDAGA,4FAKAgF,IAAA,gBACA,cACA,uEAKA,cAEA,wBC/HAG,GADiB/G,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,UAAAA,EAAA,OAA8BM,OAAOqG,UAAA,QAAAnG,GAAA,QAAA+C,IAAA3D,EAAAgH,OAAA7C,IAAA,cAAqElD,IAAKC,MAAAlB,EAAAiH,WAAqBjH,EAAAoB,GAAA,KAAAhB,EAAA,KAAsBM,OAAOE,GAAA,SAAYZ,EAAAoB,GAAA,KAAAhB,EAAA,kBAAAJ,EAAAkH,cAAihB9G,EAAA,OAAAA,EAAA,SAAgJM,OAAO4B,UAAAtC,EAAAkG,aAAAiB,KAAA,GAAAtG,MAAA,UAAwDI,IAAKC,MAAAlB,EAAAoH,gBAA0BpH,EAAAoB,GAAA,sBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,SAAuDM,OAAO4B,UAAAtC,EAAAkG,aAAAiB,KAAA,GAAAtG,MAAA,UAAwDI,IAAKC,MAAAlB,EAAAqH,eAAyBrH,EAAAoB,GAAA,iCAAn5BhB,EAAA,OAAAA,EAAA,SAA8EM,OAAO4B,UAAAtC,EAAAuC,SAAA4E,KAAA,GAAAtG,MAAA,UAAoDI,IAAKC,MAAAlB,EAAAwF,gBAA0BxF,EAAAkG,aAAA9F,EAAA,OAAAJ,EAAAoB,GAAA,uBAAAhB,EAAA,OAAAJ,EAAAoB,GAAA,sBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,SAA6HM,OAAO4B,UAAAtC,EAAAkG,aAAAiB,KAAA,GAAAtG,MAAA,UAAwDI,IAAKC,MAAAlB,EAAAsH,YAAsBtH,EAAAoB,GAAA,qBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,SAAsDM,OAAO4B,UAAAtC,EAAAkG,aAAAiB,KAAA,GAAAtG,MAAA,UAAwDI,IAAKC,MAAAlB,EAAAuH,cAAwBvH,EAAAmG,aAAA/F,EAAA,OAAAJ,EAAAoB,GAAA,kCAAAhB,EAAA,OAAAJ,EAAAoB,GAAA,gCAAkYpB,EAAAoB,GAAA,KAAApB,EAAA,aAAAI,EAAA,OAAmFiC,YAAA,kCAA4CrC,EAAA,aAAAI,EAAA,QAAAJ,EAAAoB,GAAA,gBAAApB,EAAAqB,GAAArB,EAAAwH,MAAAZ,GAAA,KAAA5G,EAAAqB,GAAArB,EAAAwH,MAAAjB,MAAAvG,EAAAyH,OAAAzH,EAAAyH,KAAAzH,EAAAoB,GAAA,KAAApB,EAAAmG,cAAA,OAAAlG,KAAAyG,OAAAE,EAAAxG,EAAA,OAA8LiC,YAAA,kCAA4CjC,EAAA,QAAAJ,EAAAoB,GAAA,aAAApB,EAAAqB,GAAArB,EAAA0G,OAAAE,GAAA,KAAA5G,EAAAqB,GAAArB,EAAA0G,OAAAH,QAAAvG,EAAAyH,QAAA,IAEj/ClG,oBCCjB,ICAAmG,GADiB3H,OAFjB,WAA0B,IAAaG,EAAbD,KAAaE,eAA0BC,EAAvCH,KAAuCI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBiC,YAAA,YAAsBjC,EAAA,uBAA4BM,OAAOiH,cAAA,GAAAC,KAAA,GAAAC,MAAA,EAAAhH,MAAA,YAAzIZ,KAAkMmB,GAAA,KAAAhB,EAAA,MAAlMH,KAAkMmB,GAAA,8GAE3MG,oBCCjB,IC+BAuG,eAIAxE,WAAAS,wCAEA,sBAEA,oGAIAgB,+BAGA,gCAIAgD,6CAIA,4DAGA,yDAGA,2CAKA,qBAAA9H,KAAA+H,aACAD,EAAA9H,KAAA+H,cACA,4CAGA,oBACA,6EAOA,qBACA,OC/EAC,GADiBlI,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,UAAoBM,OAAOG,MAAA,iBAAAsG,KAAA,MAAoC/G,EAAA,gBAAqBiC,YAAA,kBAAA3B,OAAqCwH,QAAA,MAAc9H,EAAA,OAAYiC,YAAA,WAAqBjC,EAAA,MAAWiC,YAAA,mBAA6BrC,EAAAoB,GAAA,qBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,OAAoDiC,YAAA,UAAoBrC,EAAAoB,GAAA,qDAAAhB,EAAA,SAA0EM,OAAOwE,KAAA,YAAA5C,UAAAtC,EAAAuC,SAAA1B,MAAA,UAAAsG,KAAA,IAAwElG,IAAKC,MAAAlB,EAAAoF,cAAyBF,KAAA,cAAkBlF,EAAA+E,YAAA3E,EAAA,OAAAJ,EAAAoB,GAAA,sBAAAhB,EAAA,OAAAJ,EAAAoB,GAAA,4BAAApB,EAAAoB,GAAA,KAAAhB,EAAA,OAA+HiC,YAAA,UAAoBrC,EAAAoB,GAAA,+DAAAhB,EAAA,UAAqFM,OAAO4B,UAAAtC,EAAA+E,YAAAoD,WAAA,MAA2C/H,EAAA,SAAcM,OAAOwE,KAAA,YAAA5C,UAAAtC,EAAA+E,YAAAlE,MAAA,UAAAsG,KAAA,IAA2EjC,KAAA,cAAkBlF,EAAAoB,GAAA,iBAAApB,EAAAoB,GAAA,KAAAhB,EAAA,UAAAA,EAAA,eAAqEa,IAAIC,MAAAlB,EAAAoI,eAAyBhI,EAAA,qBAAAJ,EAAAoB,GAAA,iCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAAgGa,IAAIC,MAAAlB,EAAAqI,kBAA4BjI,EAAA,qBAAAJ,EAAAoB,GAAA,iCAAApB,EAAAoB,GAAA,KAAAhB,EAAA,eAAgGa,IAAIC,MAAAlB,EAAAsI,YAAsBlI,EAAA,qBAAAJ,EAAAoB,GAAA,+CAAApB,EAAAoB,GAAA,KAAApB,EAAA,aAAAI,EAAA,cAAAJ,EAAAyH,MAAA,IAEjxClG,oBCCjB,YCyCA,0CAGA,gBACA,gBAEA,gBAGAgH,UAAA/G,EACAK,QAAAuB,EACAE,WAAAS,EACAyE,OAAA7C,EACA8C,UAAAnE,EACAuB,MNvDApE,EAAA,OAcAiH,CACA7C,EACAiB,GATA,EAVA,SAAAlF,GACAH,EAAA,SAaA,KAEA,MAUA,QMiCAkH,QJxDAlH,EAAA,OAaAmH,CAXA,KAaAlB,GATA,EATA,SAAA9F,GACAH,EAAA,SAYA,KAEA,MAUA,QIoCAoH,UD1DApH,EAAA,OAcAqH,CACAhB,EACAG,GATA,EAVA,SAAArG,GACAH,EAAA,SAaA,KAEA,MAUA,8DCsCA,2CAGA,qBACA,kBAEA,qCAGA,sBAAAxB,KAAA8I,aACAhB,IACA,QAAA9H,KAAA+I,cACA,2BAGA,sBAAA/I,KAAA+I,aACAjB,MC7EAkB,GADiBlJ,OAFjB,WAA0B,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBM,OAAOE,GAAA,SAAYZ,EAAA,YAAAI,EAAA,SAAAA,EAAA,aAAgDiC,YAAA,UAAoBrC,EAAAoB,GAAA,KAAAhB,EAAA,eAAgCM,OAAOwI,eAAA,MAAmB9I,EAAA,UAAeM,OAAO6B,SAAAvC,EAAA+I,aAAAhE,YAAA/E,EAAAgJ,gBAA4DhJ,EAAAoB,GAAA,KAAAhB,EAAA,YAA6BM,OAAOuB,IAAA,GAAAC,KAAA,MAAoB9B,EAAA,UAAeM,OAAOyB,SAAA,GAAAC,KAAA,GAAA+G,IAAA,GAAAC,IAAA,MAAyChJ,EAAA,SAAcM,OAAO6B,SAAAvC,EAAA+I,iBAA6B,GAAA/I,EAAAoB,GAAA,KAAAhB,EAAA,UAA+BM,OAAOyB,SAAA,GAAAC,KAAA,GAAA+G,IAAA,GAAAC,IAAA,MAAyChJ,EAAA,YAAiBM,OAAOuB,IAAA,GAAAC,KAAA,GAAAE,KAAA,MAA8BhC,EAAA,UAAeM,OAAOyB,SAAA,MAAa/B,EAAA,aAAkBM,OAAO6B,SAAAvC,EAAA+I,aAAAhE,YAAA/E,EAAAgJ,iBAA4D,WAAAhJ,EAAAoB,GAAA,KAAAhB,EAAA,UAAuCiC,YAAA,qBAAA3B,OAAwCyB,SAAA,GAAAC,KAAA,GAAAiH,KAAA,GAAAC,KAAA,MAA2ClJ,EAAA,WAAgBM,OAAO6B,SAAAvC,EAAA+I,aAAAhE,YAAA/E,EAAAgJ,iBAA4D,OAAAhJ,EAAAoB,GAAA,KAAAhB,EAAA,qBAAAA,EAAA,SAAAA,EAAA,WAAwEiC,YAAA,YAAqB,QAE5gCd,oBCCjB,IAuBAgI,EAvBA9H,EAAA,OAcA+H,CACAC,EACAR,GATA,EAVA,SAAArH,GACAH,EAAA,SAaA,KAEA,MAUA,kDCnBAiI,EAAA,EAAIC,OAAOC,eAAgB,EAC3BF,EAAA,EAAIG,IAAIC,EAAAC,GACRL,EAAA,EAAIG,IAAIG,EAAAD,EAAaE,SAASC,YAG9B,IAAIR,EAAA,GACFS,GAAI,OACJC,YAAcX,IAAAF,GACdc,SAAU","file":"static/js/app.29d7c2a7593408c61110.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.list),function(notify,index){return _c('v-alert',{key:index,attrs:{\"icon\":\"info\",\"id\":index,\"color\":notify.type,\"value\":\"true\",\"transition\":\"slide-y-transition\"},on:{\"click\":_vm.deleteNotes}},[_vm._v(\"\\n \"+_vm._s(notify.msg)+\" \\n \")])}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-e7c0ca3c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/NotificationList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e7c0ca3c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./NotificationList.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./NotificationList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./NotificationList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e7c0ca3c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./NotificationList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/NotificationList.vue\n// module id = null\n// module chunks = ","<template>\n<div>\n <v-alert icon=\"info\" v-for=\"(notify, index) in list\" :id=\"index\" :key=\"index\" \n :color=\"notify.type\" value=\"true\" transition=\"slide-y-transition\" @click=\"deleteNotes\">\n {{notify.msg}} \n </v-alert>\n</div>\n</template>\n\n<script>\nexport default {\n data:()=>{\n return {\n list:[],\n }\n },\n sockets:{\n notifications(data){\n this.list.push(data);\n }\n },\n methods:{\n deleteNotes(e){\n const noteSelected = e.target.parentElement.id;\n this.list = this.list.filter((info, index) => noteSelected != index); \n }\n }\n}\n</script>\n\n<style>\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/NotificationList.vue","<template>\n <div>\n <v-layout row wrap>\n <v-flex d-flex xs12>\n <div id=\"console-input\" class=\"ui fluid consoleMes\"></div>\n </v-flex>\n <v-flex d-flex xs12>\n <v-text-field :disabled=\"!tcpState\" @keyup.enter=\"consoleOut\" label=\"Envoi Message Console\" v-model=\"output\"> </v-text-field>\n <v-btn :disabled=\"!tcpState\" icon @click=\"consoleOut\" color=\"primary\" dark><v-icon>send</v-icon></v-btn>\n </v-flex>\n </v-layout>\n </div> \n</template>\n\n<script>\nexport default {\n props:['tcpState', 'serialState'],\n data:()=>{\n return {\n output: '',\n }\n },\n sockets:{\n consoleIn(message){\n if(this.tcpState === true){\n let balise = document.createElement('div');\n balise.textContent = message;\n let console = document.getElementById('console-input').prepend(balise);\n }\n \n }\n },\n methods:{\n consoleOut(){\n if(this.output !==''){\n this.$socket.emit('console-out',this.output.replace(/\\s/g, \"\")); \n this.output = '';\n }\n \n }\n }\n}\n</script>\n\n<style>\n .consoleMes{\n text-align: left; \n border:solid;\n border-width:1px;\n border-color:lightgray;\n border-radius:5px;\n padding-left: 10px;\n padding-top:20px;\n padding-bottom:20px;\n color:white;\n background-color:rgb(36, 29, 29);\n font: 0.8em 'Andale Mono', Consolas, 'Courier New';\n font-weight: bold;\n font-size: 1.1em;\n min-height: 100px;\n overflow-y: scroll;\n }\n #console-input{\n max-height: 300px;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Console.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"d-flex\":\"\",\"xs12\":\"\"}},[_c('div',{staticClass:\"ui fluid consoleMes\",attrs:{\"id\":\"console-input\"}})]),_vm._v(\" \"),_c('v-flex',{attrs:{\"d-flex\":\"\",\"xs12\":\"\"}},[_c('v-text-field',{attrs:{\"disabled\":!_vm.tcpState,\"label\":\"Envoi Message Console\"},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.consoleOut($event)}},model:{value:(_vm.output),callback:function ($$v) {_vm.output=$$v},expression:\"output\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"disabled\":!_vm.tcpState,\"icon\":\"\",\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":_vm.consoleOut}},[_c('v-icon',[_vm._v(\"send\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-53e411b2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Console.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-53e411b2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Console.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Console.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Console.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-53e411b2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Console.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Console.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"command\">\n <img id=\"up\" src=\"/static/arrow-up.svg\" class=\"direction\" v-bind:class=\"{touched: keyup}\">\n <div>\n <img id=\"left\" src=\"/static/arrow-left.svg\" class=\"direction\" v-bind:class=\"{touched: keyleft}\">\n <img id=\"down\" src=\"/static/arrow-down.svg\" class=\"direction\" v-bind:class=\"{touched: keydown}\">\n <img id=\"right\" src=\"/static/arrow-right.svg\" class=\"direction\" v-bind:class=\"{touched: keyright}\">\n </div>\n </div>\n</template>\n\n\n<script>\nexport default {\n data:()=>{\n return {\n keyup: false, //38\n keydown: false, // 40\n keyleft:false, // 37\n keyright:false // 39\n }\n },\n mounted:function(){\n window.addEventListener('keydown', (event)=> {\n if (event.keyCode == 37) {\n this.keyleft= true;\n }\n if (event.keyCode == 38) {\n this.keyup=true;\n }\n if (event.keyCode == 39) {\n this.keyright=true;\n }\n if (event.keyCode == 40) {\n this.keydown=true;\n }\n });\n window.addEventListener('keyup', (event)=> {\n if (event.keyCode == 37 ) {\n this.keyleft=false;\n }\n if (event.keyCode == 38 ) {\n this.keyup=false;\n }\n if (event.keyCode == 39 ) {\n this.keyright=false;\n }\n if (event.keyCode == 40 ) {\n this.keydown=false;\n }\n });\n },\n watch:{\n keyup:function(){\n if(this.keyup===true){\n this.$socket.emit('MOVEFORWARD'); \n }\n else{\n this.$socket.emit('MOVESTOP');\n }\n },\n keyleft:function(){\n if(this.keyleft===true){\n this.$socket.emit('MOVERIGHT'); \n }\n else{\n this.$socket.emit('MOVESTOP');\n }\n },\n keydown:function(){\n if(this.keydown===true){\n this.$socket.emit('MOVEBACK');\n }\n else{\n this.$socket.emit('MOVESTOP');\n }\n },\n keyright:function(){\n if(this.keyright===true){\n this.$socket.emit('MOVELEFT');\n }\n else{\n this.$socket.emit('MOVESTOP');\n }\n },\n }\n}\n</script>\n\n<style>\n .direction{\n border:solid;\n border-color:lightgray;\n border-width: 1px;\n border-radius: 50%; \n }\n .touched{\n background-color:lightblue;\n }\n .command{\n text-align: center;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Controller.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"command\"},[_c('img',{staticClass:\"direction\",class:{touched: _vm.keyup},attrs:{\"id\":\"up\",\"src\":\"/static/arrow-up.svg\"}}),_vm._v(\" \"),_c('div',[_c('img',{staticClass:\"direction\",class:{touched: _vm.keyleft},attrs:{\"id\":\"left\",\"src\":\"/static/arrow-left.svg\"}}),_vm._v(\" \"),_c('img',{staticClass:\"direction\",class:{touched: _vm.keydown},attrs:{\"id\":\"down\",\"src\":\"/static/arrow-down.svg\"}}),_vm._v(\" \"),_c('img',{staticClass:\"direction\",class:{touched: _vm.keyright},attrs:{\"id\":\"right\",\"src\":\"/static/arrow-right.svg\"}})])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-05fbce00\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Controller.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-05fbce00\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Controller.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Controller.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Controller.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-05fbce00\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Controller.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Controller.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"pa-3\",attrs:{\"color\":\"pink darken-3\"}},[_c('div',{staticStyle:{\"color\":\"white\"}},[_vm._v(\"L.Senaneuch\")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('img',{staticClass:\"logo-vue\",attrs:{\"src\":\"static/logo.png\",\"alt\":\"logo-vue\"}}),_vm._v(\" \"),_c('img',{staticClass:\"logo-vue\",attrs:{\"src\":\"static/logo-node.png\",\"alt\":\"logo-node\"}}),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('div',{staticStyle:{\"color\":\"white\"}},[_vm._v(\"© INSA - Toulouse \"+_vm._s(new Date().getFullYear()))])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1a67fd1e\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Footerbar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1a67fd1e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Footerbar.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1a67fd1e\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Footerbar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Footerbar.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"led\",class:{light:_vm.ledOn}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0b69c9da\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Voyant.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0b69c9da\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Voyant.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Voyant.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Voyant.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0b69c9da\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Voyant.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Voyant.vue\n// module id = null\n// module chunks = ","<template>\n <v-toolbar dark color=\"pink darken-3\">\n <v-toolbar-title class=\"white-text hidden-sm-and-down\">Dumby User Interface</v-toolbar-title>\n <v-menu :nudge-width=\"100\">\n <img class=\"logo\" id=\"logo-connection\" src=\"static/logo_connection.svg\" slot=\"activator\">\n <v-list>\n <v-list-tile @click=\"tcpManageRq\">\n <v-list-tile-title> <div v-if=\"!tcpState\">Connexion au Superviseur</div> <div v-else>Deconnection au Superviseur</div></v-list-tile-title>\n </v-list-tile> \n <v-list-tile :disabled=\"!tcpState\" @click=\"manageSerial\" class=\"hidden-sm-and-up\">\n <v-list-tile-title> <div v-if=\"!serialState\"> Connexion au Robot</div> <div v-else> Deconnexion au Robot </div></v-list-tile-title>\n </v-list-tile>\n </v-list>\n </v-menu>\n <v-menu :nudge-width=\"100\" class=\"hidden-sm-and-up\">\n <img class=\"logo\" id=\"logo-robot\" src=\"static/logo_dumby_white.svg\" slot=\"activator\">\n <v-list>\n <v-list-tile :disabled=\"!serialState\" @click=\"runWithWDRq\">\n <v-list-tile-title>Demarrer avec Watchdog</v-list-tile-title>\n </v-list-tile>\n <v-list-tile :disabled=\"!serialState\" @click=\"runWithoutWDRq\">\n <v-list-tile-title> Demarrer Sans Watchdog</v-list-tile-title>\n </v-list-tile>\n <v-list-tile :disabled=\"!serialState\" @click=\"idleDumby\">\n <v-list-tile-title> Stoper le robot</v-list-tile-title>\n </v-list-tile>\n </v-list>\n </v-menu>\n <v-menu :nudge-width=\"100\" class=\"hidden-sm-and-up\">\n <v-icon class=\"logo\" slot=\"activator\">camera_alt </v-icon>\n <v-list>\n <v-list-tile :disabled=\"!tcpState\" @click=\"manageCamera\">\n <v-list-tile-title>Activer / Désactiver Camera</v-list-tile-title>\n </v-list-tile>\n <v-list-tile :disabled=\"!tcpState\" @click=\"arenaDetectionRq\">\n <v-list-tile-title>Detection Arene</v-list-tile-title>\n </v-list-tile>\n </v-list>\n </v-menu>\n <v-spacer></v-spacer>\n <v-tooltip>\n <Voyant id=\"led-connection\" slot=\"activator\" :ledOn=\"tcpState\"/>\n <span>Etat de connection au Superviseur</span>\n </v-tooltip>\n <v-tooltip>\n <img id=\"logo-battery\" :src=\"batterie_src\" slot=\"activator\" alt=\"\">\n <span>Niveau de batterie</span>\n </v-tooltip>\n </v-toolbar>\n</template>\n\n<script>\nimport Voyant from './Voyant'\nexport default {\n components:{\n Voyant,\n },\n props:['tcpState', 'serialState'],\n data:()=>{\n return{\n robotRun: false,\n battery: 0,\n batterie_src : '',\n }\n },\n sockets:{\n BAT: function(data){\n this.battery = parseInt(data);\n /* if(data === '2'){\n this.batterie_src = \"static/battery_full_white.svg\";\n }else if (data === '1'){\n this.batterie_src = \"static/battery_medium_white.svg\";\n }else{\n this.batterie_src = \"static/battery_low_white.svg\";\n }*/\n },\n robotState:function(data){\n \n }\n\n },\n watch: {\n battery: function(){\n switch (this.battery) {\n case 0:\n this.batterie_src = \"static/battery_low_white.svg\";\n break;\n case 1:\n this.batterie_src = \"static/battery_medium_white.svg\";\n break;\n case 2:\n this.batterie_src = \"static/battery_full_white.svg\";\n break;\n default:\n this.batterie_src= \"\"\n break;\n }\n }\n },\n methods:{\n tcpManageRq: function(){\n if(this.tcpState==false){\n this.$socket.emit('askConnection');\n console.log('demande de connection');\n }\n else{\n this.$socket.emit('askDisconnection'); \n }\n \n },\n manageSerial: function(){\n if(this.tcpState){\n this.$socket.emit('openSerial',!this.serialState);\n }\n },\n runWithWDRq: function(){\n },\n runWithoutWDRq: function(){\n },\n idleDumby: function(){\n },\n manageCamera: function(){\n },\n arenaDetectionRq: function(){\n }\n }\n}\n</script>\n\n\n<style>\n .logo{\n margin-left:12px;\n }\n #logo-robot{\n width: 35px;\n margin-top:7px;\n margin-left:16px;\n } \n #logo-connection{\n width: 16px;\n margin-top:5px;\n margin-left:30px;\n }\n #logo-battery{\n width:50px;\n margin-left: 30px;\n }\n #led-connection{\n width:20px;\n height: 20px;\n padding-left:10px;\n margin-left:10px;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/MyNavbar.vue","<template>\n <div class=\"led\" :class=\"{light:ledOn}\"></div>\n</template>\n\n<script>\nexport default {\n props:['ledOn'],\n data: ()=>{\n return{\n light:false,\n }\n }\n}\n</script>\n\n\n<style>\n.led{\n border-radius: 50%;\n background-color: red;\n border:solid;\n border-width: 2px;\n}\n\n.light{\n background-color: rgb(0, 255, 0);\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Voyant.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"pink darken-3\"}},[_c('v-toolbar-title',{staticClass:\"white-text hidden-sm-and-down\"},[_vm._v(\"Dumby User Interface\")]),_vm._v(\" \"),_c('v-menu',{attrs:{\"nudge-width\":100}},[_c('img',{staticClass:\"logo\",attrs:{\"slot\":\"activator\",\"id\":\"logo-connection\",\"src\":\"static/logo_connection.svg\"},slot:\"activator\"}),_vm._v(\" \"),_c('v-list',[_c('v-list-tile',{on:{\"click\":_vm.tcpManageRq}},[_c('v-list-tile-title',[(!_vm.tcpState)?_c('div',[_vm._v(\"Connexion au Superviseur\")]):_c('div',[_vm._v(\"Deconnection au Superviseur\")])])],1),_vm._v(\" \"),_c('v-list-tile',{staticClass:\"hidden-sm-and-up\",attrs:{\"disabled\":!_vm.tcpState},on:{\"click\":_vm.manageSerial}},[_c('v-list-tile-title',[(!_vm.serialState)?_c('div',[_vm._v(\" Connexion au Robot\")]):_c('div',[_vm._v(\" Deconnexion au Robot \")])])],1)],1)],1),_vm._v(\" \"),_c('v-menu',{staticClass:\"hidden-sm-and-up\",attrs:{\"nudge-width\":100}},[_c('img',{staticClass:\"logo\",attrs:{\"slot\":\"activator\",\"id\":\"logo-robot\",\"src\":\"static/logo_dumby_white.svg\"},slot:\"activator\"}),_vm._v(\" \"),_c('v-list',[_c('v-list-tile',{attrs:{\"disabled\":!_vm.serialState},on:{\"click\":_vm.runWithWDRq}},[_c('v-list-tile-title',[_vm._v(\"Demarrer avec Watchdog\")])],1),_vm._v(\" \"),_c('v-list-tile',{attrs:{\"disabled\":!_vm.serialState},on:{\"click\":_vm.runWithoutWDRq}},[_c('v-list-tile-title',[_vm._v(\" Demarrer Sans Watchdog\")])],1),_vm._v(\" \"),_c('v-list-tile',{attrs:{\"disabled\":!_vm.serialState},on:{\"click\":_vm.idleDumby}},[_c('v-list-tile-title',[_vm._v(\" Stoper le robot\")])],1)],1)],1),_vm._v(\" \"),_c('v-menu',{staticClass:\"hidden-sm-and-up\",attrs:{\"nudge-width\":100}},[_c('v-icon',{staticClass:\"logo\",attrs:{\"slot\":\"activator\"},slot:\"activator\"},[_vm._v(\"camera_alt \")]),_vm._v(\" \"),_c('v-list',[_c('v-list-tile',{attrs:{\"disabled\":!_vm.tcpState},on:{\"click\":_vm.manageCamera}},[_c('v-list-tile-title',[_vm._v(\"Activer / Désactiver Camera\")])],1),_vm._v(\" \"),_c('v-list-tile',{attrs:{\"disabled\":!_vm.tcpState},on:{\"click\":_vm.arenaDetectionRq}},[_c('v-list-tile-title',[_vm._v(\"Detection Arene\")])],1)],1)],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',[_c('Voyant',{attrs:{\"slot\":\"activator\",\"id\":\"led-connection\",\"ledOn\":_vm.tcpState},slot:\"activator\"}),_vm._v(\" \"),_c('span',[_vm._v(\"Etat de connection au Superviseur\")])],1),_vm._v(\" \"),_c('v-tooltip',[_c('img',{attrs:{\"slot\":\"activator\",\"id\":\"logo-battery\",\"src\":_vm.batterie_src,\"alt\":\"\"},slot:\"activator\"}),_vm._v(\" \"),_c('span',[_vm._v(\"Niveau de batterie\")])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-687b85e6\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/MyNavbar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-687b85e6\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MyNavbar.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MyNavbar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MyNavbar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-687b85e6\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MyNavbar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MyNavbar.vue\n// module id = null\n// module chunks = ","<template>\n <v-card>\n <img draggable=\"false\" id=\"video\" @click=\"sendPos\" :src=\"source\" alt=\"Flux Video\">\n <p id=\"fps\"></p>\n <v-card-actions>\n <div v-if=\"!detectionMode\">\n <v-btn @click=\"manageCamera\" :disabled=\"!tcpState\" flat color=\"orange\"> <div v-if=\"!cameraActive\">Activer Camera</div> <div v-else>Désactiver Camera</div> </v-btn>\n <v-btn @click=\"askArena\" :disabled=\"!cameraActive\" flat color=\"orange\">Detection Arene</v-btn>\n <v-btn @click=\"displayPos\" :disabled=\"!cameraActive\" flat color=\"orange\"><div v-if=\"!positionMode\">Afficher la position</div> <div v-else>Ne plus afficher la position</div> </v-btn>\n </div>\n <div v-else>\n <v-btn @click=\"confirmArena\" :disabled=\"!cameraActive\" flat color=\"orange\">L'arene me plait</v-btn>\n <v-btn @click=\"infirmArena\" :disabled=\"!cameraActive\" flat color=\"orange\">L'arene ne me plait pas</v-btn>\n </div>\n <div v-if=\"positionMode\" class=\"subheadingfont position_place\">\n <span v-if=\"positionMode\"> Position : {{robot.x}}, {{robot.y}}</span>\n </div>\n <div v-if=\"positionMode && this.cursor.x !== null\" class=\"subheadingfont position_place\">\n <span> Ordre : {{cursor.x}}, {{cursor.y}}</span>\n </div>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nexport default {\n props:['tcpState'],\n data:()=>{\n return{\n source:'/static/neige.jpg',\n fps:1,\n cameraActive: false,\n positionState: false,\n detectionMode: false,\n positionMode: false,\n robot:{x: -1,y: -1},\n cursor:{x: null, y: null},\n }\n },\n methods:{\n hexToBase64 : function(data){\n return btoa(String.fromCharCode.apply(null, data.replace(/\\r|\\n/g, \"\").replace(/([\\da-fA-F]{2}) ?/g, \"0x$1 \").replace(/ +$/, \"\").split(\" \")));\n },\n manageCamera: function(){\n if(this.tcpState === true)\n this.$socket.emit('camera', !this.cameraActive);\n },\n askArena: function(){\n if(this.cameraActive === true)\n this.$socket.emit('arena', 'ask');\n this.detectionMode = true;\n },\n displayPos:function(){\n if(this.cameraActive === true){\n this.$socket.emit('displayPos', !positionMode);\n this.positionMode= !this.positionMode;\n }\n },\n confirmArena: function(){\n if(this.cameraActive === true){\n this.$socket.emit('arena', 'ok');\n this.detectionMode = false;\n }\n },\n infirmArena: function(){\n if(this.cameraActive === true){\n this.$socket.emit('arena', 'nok');\n this.detectionMode = false;\n }\n },\n displayPos : function(){\n if(this.cameraActive === true){\n this.$socket.emit('displayPos', !this.positionMode);\n this.positionMode = !this.positionMode;\n \n }\n },\n sendPos: function(e){\n if(this.positionMode === true){\n let rect = document.getElementById('video').getBoundingClientRect();\n let robotX = (e.pageX - rect.x)|0, robotY=e.pageY - rect.y;\n this.cursor.x = parseInt((480/rect.width)*robotX);\n this.cursor.y = parseInt((360/rect.height)*robotY);\n this.$socket.emit('sendPos', this.cursor);\n }\n }\n },\n sockets:{\n IMG: function(data){\n if(this.cameraActive){\n let frame;\n this.source = \"data:image/jpeg;base64,\";\n this.source += this.hexToBase64(data);\n //frame = document.getElementById(\"video\");\n //frame.src = this.source;\n this.fps++;\n }\n\n },\n POS: function(data){\n let a = data.substr(11);\n a = a.split(';');\n let x = Number(a[0]);\n let y = a[1].split('|');\n y = Number(y[0]);\n let robot2 = {\n x,\n y\n }\n this.robot = robot2; \n },\n cameraState: function(data){\n this.cameraActive = data;\n },\n detectionError: function(){\n this.detectionMode=false;\n }\n },\n mounted: function (){\n setInterval(function(){\n document.getElementById('fps').innerText = `${this.fps} fps`;\n this.fps = 0;\n }.bind(this), 1000);\n },\n watch:{\n tcpState: function(){\n if(this.tcpState == false){\n this.cameraActive = false;\n this.source =\"/static/neige.jpg\"\n\n }\n }\n }\n}\n</script>\n\n<style>\n #fps{\n position: absolute;\n top:10px;\n left:20px;\n color:red;\n }\n\n #video{\n width: 100%;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n user-select: none;\n }\n #video:hover\n {\n cursor:crosshair;\n }\n\n .clikable:hover\n {\n cursor:pointer;\n }\n .position_place{\n border:solid;\n border-color: lightblue;\n padding : 10px;\n border-width: 1px;\n }\n</style>\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Video.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('img',{attrs:{\"draggable\":\"false\",\"id\":\"video\",\"src\":_vm.source,\"alt\":\"Flux Video\"},on:{\"click\":_vm.sendPos}}),_vm._v(\" \"),_c('p',{attrs:{\"id\":\"fps\"}}),_vm._v(\" \"),_c('v-card-actions',[(!_vm.detectionMode)?_c('div',[_c('v-btn',{attrs:{\"disabled\":!_vm.tcpState,\"flat\":\"\",\"color\":\"orange\"},on:{\"click\":_vm.manageCamera}},[(!_vm.cameraActive)?_c('div',[_vm._v(\"Activer Camera\")]):_c('div',[_vm._v(\"Désactiver Camera\")])]),_vm._v(\" \"),_c('v-btn',{attrs:{\"disabled\":!_vm.cameraActive,\"flat\":\"\",\"color\":\"orange\"},on:{\"click\":_vm.askArena}},[_vm._v(\"Detection Arene\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"disabled\":!_vm.cameraActive,\"flat\":\"\",\"color\":\"orange\"},on:{\"click\":_vm.displayPos}},[(!_vm.positionMode)?_c('div',[_vm._v(\"Afficher la position\")]):_c('div',[_vm._v(\"Ne plus afficher la position\")])])],1):_c('div',[_c('v-btn',{attrs:{\"disabled\":!_vm.cameraActive,\"flat\":\"\",\"color\":\"orange\"},on:{\"click\":_vm.confirmArena}},[_vm._v(\"L'arene me plait\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"disabled\":!_vm.cameraActive,\"flat\":\"\",\"color\":\"orange\"},on:{\"click\":_vm.infirmArena}},[_vm._v(\"L'arene ne me plait pas\")])],1),_vm._v(\" \"),(_vm.positionMode)?_c('div',{staticClass:\"subheadingfont position_place\"},[(_vm.positionMode)?_c('span',[_vm._v(\" Position : \"+_vm._s(_vm.robot.x)+\", \"+_vm._s(_vm.robot.y))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.positionMode && this.cursor.x !== null)?_c('div',{staticClass:\"subheadingfont position_place\"},[_c('span',[_vm._v(\" Ordre : \"+_vm._s(_vm.cursor.x)+\", \"+_vm._s(_vm.cursor.y))])]):_vm._e()])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5ca6bdc9\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Video.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5ca6bdc9\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Video.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Video.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Video.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5ca6bdc9\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Video.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Video.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":70,\"width\":7,\"color\":\"purple\"}}),_vm._v(\" \"),_c('h1',[_vm._v(\"Non Connecté ! Veuillez vérifier que le serveur node a bien été lancé. Puis rafraichissez la page !\")])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-79d26ab8\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/LoadingScreen.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-79d26ab8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./LoadingScreen.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-79d26ab8\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./LoadingScreen.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/LoadingScreen.vue\n// module id = null\n// module chunks = ","<template>\n <v-card color=\"grey lighten-4\" flat>\n <v-card-title primary class=\"title hidden-xs\">\n <div class=\"center\">\n <h3 class=\"display-1 mb-0\">Robot Dashboard</h3>\n <div class=\"title\">\n Demande d'ouverture du serial port <v-btn @click=\"manageSerial\" :disabled=\"!tcpState\" color=\"primary\" flat slot=\"activator\"><div v-if=\"!serialState\">Ouverture Serial</div><div v-else>Fermeture Serial</div></v-btn>\n </div> \n <div class=\"title\">\n Faire changer le robot d'état\n <v-menu :disabled=\"!serialState\" offset-y>\n <v-btn :disabled=\"!serialState\" color=\"primary\" flat slot=\"activator\">RUN ou IDLE</v-btn>\n <v-list>\n <v-list-tile @click=\"startWithWD\">\n <v-list-tile-title> Demarer avec watchdog </v-list-tile-title>\n </v-list-tile>\n <v-list-tile @click=\"startWithoutWD\">\n <v-list-tile-title> Demarer sans watchdog </v-list-tile-title>\n </v-list-tile>\n <v-list-tile @click=\"stopIdle\">\n <v-list-tile-title> Robot à l'état IDLE </v-list-tile-title>\n </v-list-tile>\n </v-list>\n </v-menu>\n </div>\n </div>\n </v-card-title>\n <Controller v-if=\"dumbyStarted\"/>\n </v-card>\n</template>\n\n<script>\nimport Voyant from './Voyant'\nimport Controller from './Controller'\nexport default {\n components:{\n Controller, \n },\n data:()=>{\n return {dumbyStarted:false}\n },\n props:['tcpState', 'serialState'],\n methods:{\n manageSerial: function(state){\n if(this.tcpState){\n this.$socket.emit('openSerial',!this.serialState);\n }\n else{\n this.serialState = false;\n }\n\n if(state !== undefined){\n this.serialState = state;\n }\n },\n startWithWD: function(){\n this.$socket.emit('startWithWD');\n },\n startWithoutWD: function(){\n this.$socket.emit('startWitouthWD');\n },\n stopIdle: function(){\n this.$socket.emit('idle');\n }\n },\n sockets:{\n dumbyStart:function(state){\n if(this.serialState === true)\n this.dumbyStarted=state;\n else this.dumbyStarted=false;\n },\n lostSerial: function(){\n this.dumbyStarted = false;\n this.serialState = false;\n },\n\n },\n watch:{\n serialState: function(){\n if(this.serialState===false){\n this.dumbyStarted =false;\n this.manageSerial(false);\n }\n },\n }\n}\n</script>\n\n<style>\n .center{\n text-align: center;\n\n width: 100%;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/DashBoard.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"color\":\"grey lighten-4\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"title hidden-xs\",attrs:{\"primary\":\"\"}},[_c('div',{staticClass:\"center\"},[_c('h3',{staticClass:\"display-1 mb-0\"},[_vm._v(\"Robot Dashboard\")]),_vm._v(\" \"),_c('div',{staticClass:\"title\"},[_vm._v(\"\\n Demande d'ouverture du serial port \"),_c('v-btn',{attrs:{\"slot\":\"activator\",\"disabled\":!_vm.tcpState,\"color\":\"primary\",\"flat\":\"\"},on:{\"click\":_vm.manageSerial},slot:\"activator\"},[(!_vm.serialState)?_c('div',[_vm._v(\"Ouverture Serial\")]):_c('div',[_vm._v(\"Fermeture Serial\")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"title\"},[_vm._v(\"\\n Faire changer le robot d'état\\n \"),_c('v-menu',{attrs:{\"disabled\":!_vm.serialState,\"offset-y\":\"\"}},[_c('v-btn',{attrs:{\"slot\":\"activator\",\"disabled\":!_vm.serialState,\"color\":\"primary\",\"flat\":\"\"},slot:\"activator\"},[_vm._v(\"RUN ou IDLE\")]),_vm._v(\" \"),_c('v-list',[_c('v-list-tile',{on:{\"click\":_vm.startWithWD}},[_c('v-list-tile-title',[_vm._v(\" Demarer avec watchdog \")])],1),_vm._v(\" \"),_c('v-list-tile',{on:{\"click\":_vm.startWithoutWD}},[_c('v-list-tile-title',[_vm._v(\" Demarer sans watchdog \")])],1),_vm._v(\" \"),_c('v-list-tile',{on:{\"click\":_vm.stopIdle}},[_c('v-list-tile-title',[_vm._v(\" Robot à l'état IDLE \")])],1)],1)],1)],1)])]),_vm._v(\" \"),(_vm.dumbyStarted)?_c('Controller'):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-21fed8f2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/DashBoard.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-21fed8f2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./DashBoard.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./DashBoard.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./DashBoard.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-21fed8f2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./DashBoard.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DashBoard.vue\n// module id = null\n// module chunks = ","<template>\n <div id=\"app\">\n <v-app v-if=\"wsConnected\">\n <NotesList class=\"notif\"/>\n <v-container grid-list-md>\n <Navbar :tcpState=\"tcpConnected\" :serialState=\"serialOpened\"/>\n <v-layout row wrap>\n <v-flex d-flex xs12 sm6 md6>\n <Video :tcpState=\"tcpConnected\"/>\n </v-flex>\n <v-flex d-flex xs12 sm6 md6>\n <v-layout row wrap xs12>\n <v-flex d-flex>\n <Dashboard :tcpState=\"tcpConnected\" :serialState=\"serialOpened\"/>\n </v-flex>\n </v-layout>\n </v-flex>\n <v-flex d-flex xs12 sm12 md12 class=\"hidden-sm-and-down\">\n <Console :tcpState=\"tcpConnected\" :serialState=\"serialOpened\"/> \n </v-flex>\n </v-layout>\n <FooterBar/>\n </v-container>\n </v-app>\n <v-app v-else>\n <Loading class=\"center\"/>\n </v-app>\n\n </div>\n \n</template>\n\n<script>\nimport NotesList from './components/NotificationList'\nimport Console from './components/Console'\nimport Controller from './components/Controller'\nimport FooterBar from './components/Footerbar'\nimport Navbar from './components/MyNavbar'\nimport Video from './components/Video'\nimport Loading from './components/LoadingScreen'\nimport Dashboard from './components/DashBoard'\n\nexport default {\n name: 'App',\n data:()=>{\n return{\n wsConnected: false,\n tcpConnected:false,\n serialOpened:false,\n }\n },\n components: {\n NotesList,\n Console,\n Controller,\n Navbar,\n FooterBar,\n Video,\n Loading,\n Dashboard,\n },\n sockets:{\n connect: function(){\n return this.wsConnected=true;\n },\n disconnect: function(){\n this.wsConnected=false;\n this.tcpConnected = false;\n this.tcpSerial = false;\n\n },\n superViseurConnection: function(state){\n if(typeof(state) === 'boolean')\n this.tcpConnected = state;\n if(state === false)\n this.serialOpened = false;\n },\n serialOpen: function(state){\n if(typeof(state) === 'boolean')\n this.serialOpened = state;\n }\n },\n} \n</script>\n<style>\n .notif{\n margin-left: 50%;\n transform: translate(-50%);\n position: absolute;\n z-index: 10;\n }\n\n .center{\n text-align: center;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.wsConnected)?_c('v-app',[_c('NotesList',{staticClass:\"notif\"}),_vm._v(\" \"),_c('v-container',{attrs:{\"grid-list-md\":\"\"}},[_c('Navbar',{attrs:{\"tcpState\":_vm.tcpConnected,\"serialState\":_vm.serialOpened}}),_vm._v(\" \"),_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"d-flex\":\"\",\"xs12\":\"\",\"sm6\":\"\",\"md6\":\"\"}},[_c('Video',{attrs:{\"tcpState\":_vm.tcpConnected}})],1),_vm._v(\" \"),_c('v-flex',{attrs:{\"d-flex\":\"\",\"xs12\":\"\",\"sm6\":\"\",\"md6\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\",\"xs12\":\"\"}},[_c('v-flex',{attrs:{\"d-flex\":\"\"}},[_c('Dashboard',{attrs:{\"tcpState\":_vm.tcpConnected,\"serialState\":_vm.serialOpened}})],1)],1)],1),_vm._v(\" \"),_c('v-flex',{staticClass:\"hidden-sm-and-down\",attrs:{\"d-flex\":\"\",\"xs12\":\"\",\"sm12\":\"\",\"md12\":\"\"}},[_c('Console',{attrs:{\"tcpState\":_vm.tcpConnected,\"serialState\":_vm.serialOpened}})],1)],1),_vm._v(\" \"),_c('FooterBar')],1)],1):_c('v-app',[_c('Loading',{staticClass:\"center\"})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-fe424192\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-fe424192\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-fe424192\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue';\nimport App from './App';\nimport VueSocketio from 'vue-socket.io';\nimport Vuetify from 'vuetify';\n\nVue.config.productionTip = false;\nVue.use(Vuetify);\nVue.use(VueSocketio, location.toString());\n//Vue.use(VueSocketio, 'localhost:3000 ');\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n components: { App },\n template: '<App/>',\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""} |