From d637ed0513f94da73f0e350834d448067c083868 Mon Sep 17 00:00:00 2001 From: chachmu Date: Sat, 28 Aug 2021 18:50:54 -0500 Subject: [PATCH 01/43] Initial JavaScript testing --- ateam_ui/CMakeLists.txt | 23 ++++++ ateam_ui/launch/ateam_ui_launch.xml | 3 + ateam_ui/package.xml | 22 +++++ ateam_ui/scripts/ateam_ui.py | 17 ++++ ateam_ui/src/test_ui.html | 123 ++++++++++++++++++++++++++++ 5 files changed, 188 insertions(+) create mode 100644 ateam_ui/CMakeLists.txt create mode 100644 ateam_ui/launch/ateam_ui_launch.xml create mode 100644 ateam_ui/package.xml create mode 100644 ateam_ui/scripts/ateam_ui.py create mode 100644 ateam_ui/src/test_ui.html diff --git a/ateam_ui/CMakeLists.txt b/ateam_ui/CMakeLists.txt new file mode 100644 index 00000000..724da30b --- /dev/null +++ b/ateam_ui/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.5) +project(ateam_ui) + +find_package(ament_cmake REQUIRED) +find_package(rosbridge_server REQUIRED) + + +install(PROGRAMS + scripts/ateam_ui.py + DESTINATION lib/${PROJECT_NAME} +) + +install(FILES + launch/ateam_ui_launch.xml + DESTINATION share/${PROJECT_NAME}/launch +) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/ateam_ui/launch/ateam_ui_launch.xml b/ateam_ui/launch/ateam_ui_launch.xml new file mode 100644 index 00000000..574bb9bc --- /dev/null +++ b/ateam_ui/launch/ateam_ui_launch.xml @@ -0,0 +1,3 @@ + + + diff --git a/ateam_ui/package.xml b/ateam_ui/package.xml new file mode 100644 index 00000000..651cabea --- /dev/null +++ b/ateam_ui/package.xml @@ -0,0 +1,22 @@ + + + + ateam_ui + 0.0.0 + UI package for A-Team + Matthew Woodward + TODO: License declaration + + ament_cmake + + rosidl_default_runtime + + rosbridge_server + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/ateam_ui/scripts/ateam_ui.py b/ateam_ui/scripts/ateam_ui.py new file mode 100644 index 00000000..dbbf5643 --- /dev/null +++ b/ateam_ui/scripts/ateam_ui.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +# Works when run directly but fails when called from the workspace :/ +# Just going to use the xml launch file for now + +from launch import LaunchDescription +from launch_ros.actions import Node + +def generate_launch_description(): + return LaunchDescription([ + Node( + package='rosbridge_server', + namespace='ui_test', + executable='rosbridge_websocket.py', + name='rosbridge' + ) + ]) diff --git a/ateam_ui/src/test_ui.html b/ateam_ui/src/test_ui.html new file mode 100644 index 00000000..d4db4f28 --- /dev/null +++ b/ateam_ui/src/test_ui.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + +

Simple roslib Example

+ + + + + + From 0b25bf0cae16353df5812178832df5a7a1ed2c95 Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 20:37:03 -0500 Subject: [PATCH 02/43] Add custom git ignore for the UI file --- ateam_ui/src/.gitignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ateam_ui/src/.gitignore diff --git a/ateam_ui/src/.gitignore b/ateam_ui/src/.gitignore new file mode 100644 index 00000000..ddbcf913 --- /dev/null +++ b/ateam_ui/src/.gitignore @@ -0,0 +1,15 @@ +# vite +node_modules +.DS_Store +dist-ssr +*.local + +# neutralino +resources +.storage +*.log +/bin +/dist + +# npm (I plan to try to use yarn only) +package-lock.json From 600455e8d79a225a03472a9aeb3118444b7f0cb5 Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 20:38:18 -0500 Subject: [PATCH 03/43] Remove faulty python script --- ateam_ui/scripts/ateam_ui.py | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 ateam_ui/scripts/ateam_ui.py diff --git a/ateam_ui/scripts/ateam_ui.py b/ateam_ui/scripts/ateam_ui.py deleted file mode 100644 index dbbf5643..00000000 --- a/ateam_ui/scripts/ateam_ui.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python3 - -# Works when run directly but fails when called from the workspace :/ -# Just going to use the xml launch file for now - -from launch import LaunchDescription -from launch_ros.actions import Node - -def generate_launch_description(): - return LaunchDescription([ - Node( - package='rosbridge_server', - namespace='ui_test', - executable='rosbridge_websocket.py', - name='rosbridge' - ) - ]) From 3e7a3cf647ed8c3970f5766052a69c14bbbc1653 Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 21:08:31 -0500 Subject: [PATCH 04/43] Functioning helloworld using neutralino, Vue, and Vite --- ateam_ui/CMakeLists.txt | 5 - ateam_ui/launch/ateam_rosbridge_launch.xml | 3 + ateam_ui/launch/ateam_ui_launch.xml | 3 +- ateam_ui/src/index.html | 22 ++ ateam_ui/src/neutralino.config.json | 36 ++ ateam_ui/src/package.json | 21 ++ ateam_ui/src/public/favicon.ico | Bin 0 -> 4286 bytes ateam_ui/src/public/icons/appIcon.png | Bin 0 -> 16392 bytes ateam_ui/src/public/neutralino.js | 1 + ateam_ui/src/src/App.vue | 22 ++ ateam_ui/src/src/assets/logo.png | Bin 0 -> 6849 bytes ateam_ui/src/src/components/HelloWorld.vue | 33 ++ ateam_ui/src/src/main.js | 4 + ateam_ui/src/test_ui.html | 123 ------- ateam_ui/src/vite.config.js | 11 + ateam_ui/src/yarn.lock | 395 +++++++++++++++++++++ 16 files changed, 550 insertions(+), 129 deletions(-) create mode 100644 ateam_ui/launch/ateam_rosbridge_launch.xml create mode 100644 ateam_ui/src/index.html create mode 100644 ateam_ui/src/neutralino.config.json create mode 100644 ateam_ui/src/package.json create mode 100644 ateam_ui/src/public/favicon.ico create mode 100644 ateam_ui/src/public/icons/appIcon.png create mode 100755 ateam_ui/src/public/neutralino.js create mode 100644 ateam_ui/src/src/App.vue create mode 100644 ateam_ui/src/src/assets/logo.png create mode 100644 ateam_ui/src/src/components/HelloWorld.vue create mode 100644 ateam_ui/src/src/main.js delete mode 100644 ateam_ui/src/test_ui.html create mode 100644 ateam_ui/src/vite.config.js create mode 100644 ateam_ui/src/yarn.lock diff --git a/ateam_ui/CMakeLists.txt b/ateam_ui/CMakeLists.txt index 724da30b..e95782de 100644 --- a/ateam_ui/CMakeLists.txt +++ b/ateam_ui/CMakeLists.txt @@ -5,11 +5,6 @@ find_package(ament_cmake REQUIRED) find_package(rosbridge_server REQUIRED) -install(PROGRAMS - scripts/ateam_ui.py - DESTINATION lib/${PROJECT_NAME} -) - install(FILES launch/ateam_ui_launch.xml DESTINATION share/${PROJECT_NAME}/launch diff --git a/ateam_ui/launch/ateam_rosbridge_launch.xml b/ateam_ui/launch/ateam_rosbridge_launch.xml new file mode 100644 index 00000000..574bb9bc --- /dev/null +++ b/ateam_ui/launch/ateam_rosbridge_launch.xml @@ -0,0 +1,3 @@ + + + diff --git a/ateam_ui/launch/ateam_ui_launch.xml b/ateam_ui/launch/ateam_ui_launch.xml index 574bb9bc..268582f9 100644 --- a/ateam_ui/launch/ateam_ui_launch.xml +++ b/ateam_ui/launch/ateam_ui_launch.xml @@ -1,3 +1,4 @@ - + + diff --git a/ateam_ui/src/index.html b/ateam_ui/src/index.html new file mode 100644 index 00000000..8d592dd6 --- /dev/null +++ b/ateam_ui/src/index.html @@ -0,0 +1,22 @@ + + + + + + + Ateam UI + + + +
+ + + + + + + + diff --git a/ateam_ui/src/neutralino.config.json b/ateam_ui/src/neutralino.config.json new file mode 100644 index 00000000..b63c892e --- /dev/null +++ b/ateam_ui/src/neutralino.config.json @@ -0,0 +1,36 @@ +{ + "applicationId": "A-Team", + "port": 0, + "defaultMode": "window", + "enableHTTPServer": true, + "enableNativeAPI": true, + "url": "/resources/", + "nativeBlockList": [], + "globalVariables": { + "TEST": "Test Value" + }, + "modes": { + "window": { + "title": "Robocup A-Team", + "width": 800, + "height": 500, + "minWidth": 400, + "minHeight": 250, + "fullScreen": false, + "alwaysOnTop": false, + "icon": "/resources/icons/appIcon.png", + "enableInspector": false, + "borderless": false, + "maximize": false + }, + "browser": {}, + "cloud": {} + }, + "cli": { + "binaryName": "Ateam_UI", + "resourcesPath": "/resources/", + "clientLibrary": "/resources/neutralino.js", + "binaryVersion": "2.8.0", + "clientVersion": "1.5.0" + } +} diff --git a/ateam_ui/src/package.json b/ateam_ui/src/package.json new file mode 100644 index 00000000..87e7690e --- /dev/null +++ b/ateam_ui/src/package.json @@ -0,0 +1,21 @@ +{ + "name": "ATeam_UI", + "version": "1.0.1", + "description": "Robocup A-Team UI", + "scripts": { + "configure": "test -d ./bin || neu update", + "dev": "vite", + "devrun": "yarn configure; vite build && neu run", + "build": "yarn configure; (vite build && neu build --release) && (test -x ./bin/neutralino-linux_x64 || (echo Fixing Permission Issue; chmod +x ./dist/Ateam_UI/* && echo Success))" + }, + "author": "Matthew Woodward ", + "license": "TODO: License declaration", + "dependencies": { + "vue": "3.1.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "1.2.3", + "@vue/compiler-sfc": "3.1.2", + "vite": "2.3.8" + } +} diff --git a/ateam_ui/src/public/favicon.ico b/ateam_ui/src/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/ateam_ui/src/public/icons/appIcon.png b/ateam_ui/src/public/icons/appIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..d708bc3cc0f64c18aac9ff49d28476c02c9dca0c GIT binary patch literal 16392 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"use strict";var e={885:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.open=t.getConfig=t.keepAlive=t.killProcess=t.exit=void 0;const n=i(69);t.exit=function(e){return n.request({url:"app.exit",type:n.RequestType.POST,data:{code:e},isNativeMethod:!0})},t.killProcess=function(){return n.request({url:"app.killProcess",type:n.RequestType.GET,isNativeMethod:!0})},t.keepAlive=function(){return n.request({url:"app.keepAlive",type:n.RequestType.GET,isNativeMethod:!0})},t.getConfig=function(){return n.request({url:"app.getConfig",type:n.RequestType.GET,isNativeMethod:!0})},t.open=function(e){return n.request({url:"app.open",type:n.RequestType.POST,data:e,isNativeMethod:!0})}},308:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRamUsage=void 0;const n=i(69);t.getRamUsage=function(){return n.request({url:"computer.getRamUsage",type:n.RequestType.GET,isNativeMethod:!0})}},199:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.log=t.LoggerType=void 0;const n=i(69);var r;(r=t.LoggerType||(t.LoggerType={})).WARN="WARN",r.ERROR="ERROR",r.INFO="INFO",t.log=function(e){return n.request({url:"debug.log",type:n.RequestType.POST,data:e,isNativeMethod:!0})}},284:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dispatch=t.off=t.on=void 0,t.on=function(e,t){return new Promise(((i,n)=>{window.addEventListener(e,t),i()}))},t.off=function(e,t){return new Promise(((i,n)=>{window.removeEventListener(e,t),i()}))},t.dispatch=function(e,t){return new Promise(((i,n)=>{let r=new CustomEvent(e,{detail:t});window.dispatchEvent(r),i()}))}},543:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getStats=t.moveFile=t.copyFile=t.readDirectory=t.removeFile=t.readBinaryFile=t.readFile=t.writeBinaryFile=t.writeFile=t.removeDirectory=t.createDirectory=void 0;const n=i(69);t.createDirectory=function(e){return n.request({url:"filesystem.createDirectory",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.removeDirectory=function(e){return n.request({url:"filesystem.removeDirectory",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.writeFile=function(e){return n.request({url:"filesystem.writeFile",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.writeBinaryFile=function(e){let t=new Uint8Array(e.data),i="";for(let e of t)i+=String.fromCharCode(e);return n.request({url:"filesystem.writeBinaryFile",type:n.RequestType.POST,data:{fileName:e.fileName,data:window.btoa(i)},isNativeMethod:!0})},t.readFile=function(e){return n.request({url:"filesystem.readFile",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.readBinaryFile=function(e){return new Promise(((t,i)=>{n.request({url:"filesystem.readBinaryFile",type:n.RequestType.POST,data:e,isNativeMethod:!0}).then((e=>{let i=window.atob(e),n=i.length,r=new Uint8Array(n);for(let e=0;e{i(e)}))}))},t.removeFile=function(e){return n.request({url:"filesystem.removeFile",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.readDirectory=function(e){return n.request({url:"filesystem.readDirectory",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.copyFile=function(e,t){return n.request({url:"filesystem.copyFile",type:n.RequestType.POST,data:{source:e,destination:t},isNativeMethod:!0})},t.moveFile=function(e,t){return n.request({url:"filesystem.moveFile",type:n.RequestType.POST,data:{source:e,destination:t},isNativeMethod:!0})},t.getStats=function(e){return n.request({url:"filesystem.getStats",type:n.RequestType.POST,data:{path:e},isNativeMethod:!0})}},109:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const n=i(473),r=i(359),o=i(306);t.init=function(){if(window.NL_MODE&&"browser"==window.NL_MODE&&n.ping.start(),void 0!==window.NL_ARGS)for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0}),t.setTray=t.showMessageBox=t.showNotification=t.showDialogSave=t.showDialogOpen=t.getEnvar=t.execCommand=t.MessageBoxType=void 0;const n=i(69);var r;(r=t.MessageBoxType||(t.MessageBoxType={})).WARN="WARN",r.ERROR="ERROR",r.INFO="INFO",r.QUESTION="QUESTION",t.execCommand=function(e){return n.request({url:"os.execCommand",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.getEnvar=function(e){return n.request({url:"os.getEnvar",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.showDialogOpen=function(e){return n.request({url:"os.dialogOpen",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.showDialogSave=function(e){return n.request({url:"os.dialogSave",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.showNotification=function(e){return n.request({url:"os.showNotification",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.showMessageBox=function(e){return n.request({url:"os.showMessageBox",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.setTray=function(e){return n.request({url:"os.setTray",type:n.RequestType.POST,data:e,isNativeMethod:!0})}},100:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.putData=void 0;const n=i(69);t.putData=function(e){return n.request({url:"storage.putData",type:n.RequestType.POST,data:e,isNativeMethod:!0})},t.getData=function(e){return n.request({url:"storage.getData",type:n.RequestType.POST,data:e,isNativeMethod:!0})}},776:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{a(n.next(e))}catch(e){o(e)}}function u(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.setSize=t.setDraggableRegion=t.move=t.setIcon=t.focus=t.isVisible=t.hide=t.show=t.isFullScreen=t.exitFullScreen=t.setFullScreen=t.minimize=t.isMaximized=t.unmaximize=t.maximize=t.setTitle=void 0;const r=i(69);t.setTitle=function(e){return r.request({url:"window.setTitle",type:r.RequestType.POST,data:{title:e},isNativeMethod:!0})},t.maximize=function(){return r.request({url:"window.maximize",type:r.RequestType.GET,isNativeMethod:!0})},t.unmaximize=function(){return r.request({url:"window.unmaximize",type:r.RequestType.GET,isNativeMethod:!0})},t.isMaximized=function(){return r.request({url:"window.isMaximized",type:r.RequestType.GET,isNativeMethod:!0})},t.minimize=function(){return r.request({url:"window.minimize",type:r.RequestType.GET,isNativeMethod:!0})},t.setFullScreen=function(){return r.request({url:"window.setFullScreen",type:r.RequestType.GET,isNativeMethod:!0})},t.exitFullScreen=function(){return r.request({url:"window.exitFullScreen",type:r.RequestType.GET,isNativeMethod:!0})},t.isFullScreen=function(){return r.request({url:"window.isFullScreen",type:r.RequestType.GET,isNativeMethod:!0})},t.show=function(){return r.request({url:"window.show",type:r.RequestType.GET,isNativeMethod:!0})},t.hide=function(){return r.request({url:"window.hide",type:r.RequestType.GET,isNativeMethod:!0})},t.isVisible=function(){return r.request({url:"window.isVisible",type:r.RequestType.GET,isNativeMethod:!0})},t.focus=function(){return r.request({url:"window.focus",type:r.RequestType.GET,isNativeMethod:!0})},t.setIcon=function(e){return r.request({url:"window.setIcon",type:r.RequestType.POST,isNativeMethod:!0,data:{icon:e}})},t.move=function(e,t){return r.request({url:"window.move",type:r.RequestType.POST,isNativeMethod:!0,data:{x:e,y:t}})},t.setDraggableRegion=function(e){return new Promise(((t,i)=>{let r=document.getElementById(e),o=0,s=0;function u(e){return n(this,void 0,void 0,(function*(){yield Neutralino.window.move(e.screenX-o,e.screenY-s)}))}r||i(`Unable to find dom element: #${e}`),r.addEventListener("mousedown",(e=>{o=e.clientX,s=e.clientY,r.addEventListener("mousemove",u)})),r.addEventListener("mouseup",(()=>{r.removeEventListener("mousemove",u)})),t()}))},t.setSize=function(e){return r.request({url:"window.setSize",type:r.RequestType.POST,isNativeMethod:!0,data:e})},t.create=function(e,t){return new Promise(((i,n)=>{function r(e){return"string"!=typeof e||(e=e.trim()).includes(" ")&&(e=`"${e}"`),e}let o=window.NL_ARGS.reduce(((e,t,i)=>((t.includes("--path=")||t.includes("--debug-mode")||t.includes("--load-dir-res")||0==i)&&(e+=" "+r(t)),e)),"");o+=" --url="+r(e);for(let e in t)"processArgs"!=e&&(o+=` --window${e.replace(/[A-Z]|^[a-z]/g,(e=>"-"+e.toLowerCase()))}=${r(t[e])}`);t.processArgs&&(o+=" "+t.processArgs),Neutralino.os.execCommand({command:o,shouldRunInBackground:!0}).then((()=>{i()})).catch((e=>{n(e)}))}))}},359:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{a(n.next(e))}catch(e){o(e)}}function u(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.devClient=void 0;const r=i(69);t.devClient={start:function(){setInterval((()=>n(this,void 0,void 0,(function*(){try{(yield r.request({url:"http://localhost:5050",type:r.RequestType.GET})).needsReload&&location.reload()}catch(e){console.error("Unable to communicate with neu devServer")}}))),1e3)}}},69:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.request=t.RequestType=void 0,(i=t.RequestType||(t.RequestType={})).GET="GET",i.POST="POST",t.request=function(e){return new Promise(((t,i)=>{let n=null,r=function(){let e;return e=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),e}();r.onreadystatechange=()=>{if(4==r.readyState&&200==r.status){let e=null,n=r.responseText;n&&(e=JSON.parse(n)),e&&e.success&&(e.hasOwnProperty("returnValue")?t(e.returnValue):t(e)),e&&e.error&&i(e.error)}else 4==r.readyState&&i("Neutralino server is offline. Try restarting the application")},e.isNativeMethod&&(e.url="http://localhost:"+window.NL_PORT+"/__nativeMethod_"+e.url),e.data&&(n=JSON.stringify(e.data)),r.open(e.type,e.url,!0),r.setRequestHeader("Content-Type","application/json"),r.setRequestHeader("Authorization","Basic "+window.NL_TOKEN),r.send(n)}))}},473:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{a(n.next(e))}catch(e){o(e)}}function u(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ping=void 0;const r=i(885);t.ping={start:()=>{setInterval((()=>n(void 0,void 0,void 0,(function*(){yield r.keepAlive()}))),5e3)}}},306:e=>{e.exports=JSON.parse('{"name":"neutralino-client-library","version":"1.5.0","description":"","main":"index.js","scripts":{"test":"echo \\"Error: no test specified\\" && exit 1","build":"webpack","watch":"webpack --watch"},"repository":{"type":"git","url":"git+https://github.com/neutralinojs/neutralino.js.git"},"author":"Neutralinojs","license":"MIT","bugs":{"url":"https://github.com/neutralinojs/neutralino.js/issues"},"homepage":"https://github.com/neutralinojs/neutralino.js#readme","devDependencies":{"@types/node":"^16.4.2","ts-loader":"^9.2.4","typescript":"^4.3.5","webpack":"^5.46.0","webpack-cli":"^4.7.2"},"dependencies":{}}')}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,i),o.exports}var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.init=e.events=e.window=e.app=e.debug=e.storage=e.computer=e.os=e.filesystem=void 0,e.filesystem=i(543),e.os=i(325),e.computer=i(308),e.storage=i(100),e.debug=i(199),e.app=i(885),e.window=i(776),e.events=i(284);var t=i(109);Object.defineProperty(e,"init",{enumerable:!0,get:function(){return t.init}})})(),Neutralino=n})(); \ No newline at end of file diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue new file mode 100644 index 00000000..b67169df --- /dev/null +++ b/ateam_ui/src/src/App.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/ateam_ui/src/src/assets/logo.png b/ateam_ui/src/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +

{{ msg }}

+ +

+ + Vite Documentation + + | + Vue 3 Documentation +

+ + +

+ Edit + components/HelloWorld.vue to test hot module replacement. +

+ + + + + diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js new file mode 100644 index 00000000..01433bca --- /dev/null +++ b/ateam_ui/src/src/main.js @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/ateam_ui/src/test_ui.html b/ateam_ui/src/test_ui.html deleted file mode 100644 index d4db4f28..00000000 --- a/ateam_ui/src/test_ui.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - -

Simple roslib Example

- - - - - - diff --git a/ateam_ui/src/vite.config.js b/ateam_ui/src/vite.config.js new file mode 100644 index 00000000..4054db96 --- /dev/null +++ b/ateam_ui/src/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + base: '', + build: { + outDir: 'resources' + } +}); diff --git a/ateam_ui/src/yarn.lock b/ateam_ui/src/yarn.lock new file mode 100644 index 00000000..5c28f3d6 --- /dev/null +++ b/ateam_ui/src/yarn.lock @@ -0,0 +1,395 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/helper-validator-identifier@^7.14.9": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + +"@babel/parser@^7.12.0", "@babel/parser@^7.13.9": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" + integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== + +"@babel/types@^7.12.0", "@babel/types@^7.13.0": + version "7.15.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" + integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + +"@types/estree@^0.0.48": + version "0.0.48" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== + +"@vitejs/plugin-vue@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.3.tgz#2e8e008b1cc3a6ad1dfbec75743c7ffd9b4872a6" + integrity sha512-LlnLpObkGKZ+b7dcpL4T24l13nPSHLjo+6Oc7MbZiKz5PMAUzADfNJ3EKfYIQ0l0969nxf2jp/9vsfnuJ7h6fw== + +"@vue/compiler-core@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.2.tgz#31ab1d88e1706a5c7a545faeeb64c31bd0101db0" + integrity sha512-nHmq7vLjq/XM2IMbZUcKWoH5sPXa2uR/nIKZtjbK5F3TcbnYE/zKsrSUR9WZJ03unlwotNBX1OyxVt9HbWD7/Q== + dependencies: + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" + "@vue/shared" "3.1.2" + estree-walker "^2.0.1" + source-map "^0.6.1" + +"@vue/compiler-dom@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.2.tgz#75a7731bcc5d9718183a3c56c18e992f7c13e7b1" + integrity sha512-k2+SWcWH0jL6WQAX7Or2ONqu5MbtTgTO0dJrvebQYzgqaKMXNI90RNeWeCxS4BnNFMDONpHBeFgbwbnDWIkmRg== + dependencies: + "@vue/compiler-core" "3.1.2" + "@vue/shared" "3.1.2" + +"@vue/compiler-sfc@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.2.tgz#23ff1e366d887b964899568bffcb11e3d0511fc4" + integrity sha512-SeG/2+DvwejQ7oAiSx8BrDh5qOdqCYHGClPiTvVIHTfSIHiS2JjMbCANdDCjHkTOh/O7WZzo2JhdKm98bRBxTw== + dependencies: + "@babel/parser" "^7.13.9" + "@babel/types" "^7.13.0" + "@types/estree" "^0.0.48" + "@vue/compiler-core" "3.1.2" + "@vue/compiler-dom" "3.1.2" + "@vue/compiler-ssr" "3.1.2" + "@vue/shared" "3.1.2" + consolidate "^0.16.0" + estree-walker "^2.0.1" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + magic-string "^0.25.7" + merge-source-map "^1.1.0" + postcss "^8.1.10" + postcss-modules "^4.0.0" + postcss-selector-parser "^6.0.4" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.2.tgz#e33ad0876d9b96f0950e22b0e174b94c1b049d2d" + integrity sha512-BwXo9LFk5OSWdMyZQ4bX1ELHX0Z/9F+ld/OaVnpUPzAZCHslBYLvyKUVDwv2C/lpLjRffpC2DOUEdl1+RP1aGg== + dependencies: + "@vue/compiler-dom" "3.1.2" + "@vue/shared" "3.1.2" + +"@vue/reactivity@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.2.tgz#66fa530dd726d2fef285ae55d02106a727db463b" + integrity sha512-glJzJoN2xE7I2lRvwKM5u1BHRPTd1yc8iaf//Lai/78/uYAvE5DXp5HzWRFOwMlbRvMGJHIQjOqoxj87cDAaag== + dependencies: + "@vue/shared" "3.1.2" + +"@vue/runtime-core@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.2.tgz#f4dbc503cfc9a02ab5f1ebe002c3322512064a54" + integrity sha512-gsPZG4dRIkixuuKmoj4P9IHgfT0yaFLcqWOM5F/bCk0nxQn1XtxH8oUehWuET726KhbukvDoJfe9G2CKviy80w== + dependencies: + "@vue/reactivity" "3.1.2" + "@vue/shared" "3.1.2" + +"@vue/runtime-dom@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.2.tgz#0fd8724f14bc7ba64b6c954d874a8d8a4fcb5fe9" + integrity sha512-QvINxjLucEZFzp5f0NVu7JqWYCv5TKQfkH2FDs/N6QNE4iKcYtKrWdT0HKfABnVXG28Znqv6rIH0dH4ZAOwxpA== + dependencies: + "@vue/runtime-core" "3.1.2" + "@vue/shared" "3.1.2" + csstype "^2.6.8" + +"@vue/shared@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.2.tgz#1069c0bc7d6f4bd15ccf3a5f3be29450aca368f9" + integrity sha512-EmH/poaDWBPJaPILXNI/1fvUbArJQmmTyVCwvvyDYDFnkPoTclAbHRAtyIvqfez7jybTDn077HTNILpxlsoWhg== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +consolidate@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== + dependencies: + bluebird "^3.7.2" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^2.6.8: + version "2.6.18" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218" + integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +esbuild@^0.12.8: + version "0.12.29" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d" + integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +is-core-module@^2.2.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" + integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== + dependencies: + has "^1.0.3" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +nanocolors@^0.2.2: + version "0.2.12" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.12.tgz#4d05932e70116078673ea4cc6699a1c56cc77777" + integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== + +nanoid@^3.1.25: + version "3.1.28" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" + integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" + integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== + dependencies: + generic-names "^2.0.1" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^8.1.10, postcss@^8.3.4: + version "8.3.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" + integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== + dependencies: + nanocolors "^0.2.2" + nanoid "^3.1.25" + source-map-js "^0.6.2" + +resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +rollup@^2.38.5: + version "2.57.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.57.0.tgz#c1694475eb22e1022477c0f4635fd0ac80713173" + integrity sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg== + optionalDependencies: + fsevents "~2.3.2" + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +vite@2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.8.tgz#42e3e03953859fd410e4e6ab3d1cca0aab2adc3c" + integrity sha512-QiEx+iqNnJntSgSF2fWRQvRey9pORIrtNJzNyBJXwc+BdzWs83FQolX84cTBo393cfhObrtWa6180dAa4NLDiQ== + dependencies: + esbuild "^0.12.8" + postcss "^8.3.4" + resolve "^1.20.0" + rollup "^2.38.5" + optionalDependencies: + fsevents "~2.3.2" + +vue@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.2.tgz#647f8e3949a3d600771dca25d50225dc3e594c64" + integrity sha512-q/rbKpb7aofax4ugqu2k/uj7BYuNPcd6Z5/qJtfkJQsE0NkwVoCyeSh7IZGH61hChwYn3CEkh4bHolvUPxlQ+w== + dependencies: + "@vue/compiler-dom" "3.1.2" + "@vue/runtime-dom" "3.1.2" + "@vue/shared" "3.1.2" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== From 50065273dd7e8f106844c1aa63d6cdc8086c07f7 Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 21:43:22 -0500 Subject: [PATCH 05/43] Add readme file --- ateam_ui/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ateam_ui/README.md diff --git a/ateam_ui/README.md b/ateam_ui/README.md new file mode 100644 index 00000000..ac1a4341 --- /dev/null +++ b/ateam_ui/README.md @@ -0,0 +1,14 @@ +# Setting up dependencies +The UI is currently designed to use [Vue](https://vuejs.org/) as a framework to develop the actual framework to lay everything out. Then, [Vite](https://vitejs.dev/) is used to compile everything into efficient contained code. Finally, everything is put into an executable using [nuetralino](https://neutralino.js.org/). + +1. `cd` to the `ateam_ui/src` folder +2. run `npm i -g @neutralinojs/neu` (I would prefer to use yarn for this so hopefully they can fix their weird issue soon) +3. run `yarn` + +Everything should now be ready to be run normally + +# Launch files +The `ateam_ui_launch.xml` file should launch both [rosbridge](https://github.com/RobotWebTools/rosbridge_suite) and the ui. + +# Notes for development +Do not make changes to files in the `resources` folder, these files are from part of the output from Vite that then gets fed into Neutralino to produce the binaries in the `dist` folder so they will be overwritten every time you build. Most of the files should have their actual counterparts in the `public` folder so make changes there instead. From 54345fab9b82042524d843c9578109ff10d3d301 Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 22:06:46 -0500 Subject: [PATCH 06/43] modify yarn.lock --- ateam_ui/src/yarn.lock | 114 ++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/ateam_ui/src/yarn.lock b/ateam_ui/src/yarn.lock index 5c28f3d6..0dc0c3aa 100644 --- a/ateam_ui/src/yarn.lock +++ b/ateam_ui/src/yarn.lock @@ -4,17 +4,17 @@ "@babel/helper-validator-identifier@^7.14.9": version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== "@babel/parser@^7.12.0", "@babel/parser@^7.13.9": version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== "@babel/types@^7.12.0", "@babel/types@^7.13.0": version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== dependencies: "@babel/helper-validator-identifier" "^7.14.9" @@ -22,17 +22,17 @@ "@types/estree@^0.0.48": version "0.0.48" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== "@vitejs/plugin-vue@1.2.3": version "1.2.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.3.tgz#2e8e008b1cc3a6ad1dfbec75743c7ffd9b4872a6" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.2.3.tgz" integrity sha512-LlnLpObkGKZ+b7dcpL4T24l13nPSHLjo+6Oc7MbZiKz5PMAUzADfNJ3EKfYIQ0l0969nxf2jp/9vsfnuJ7h6fw== "@vue/compiler-core@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.2.tgz#31ab1d88e1706a5c7a545faeeb64c31bd0101db0" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.2.tgz" integrity sha512-nHmq7vLjq/XM2IMbZUcKWoH5sPXa2uR/nIKZtjbK5F3TcbnYE/zKsrSUR9WZJ03unlwotNBX1OyxVt9HbWD7/Q== dependencies: "@babel/parser" "^7.12.0" @@ -43,7 +43,7 @@ "@vue/compiler-dom@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.2.tgz#75a7731bcc5d9718183a3c56c18e992f7c13e7b1" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.2.tgz" integrity sha512-k2+SWcWH0jL6WQAX7Or2ONqu5MbtTgTO0dJrvebQYzgqaKMXNI90RNeWeCxS4BnNFMDONpHBeFgbwbnDWIkmRg== dependencies: "@vue/compiler-core" "3.1.2" @@ -51,7 +51,7 @@ "@vue/compiler-sfc@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.2.tgz#23ff1e366d887b964899568bffcb11e3d0511fc4" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.2.tgz" integrity sha512-SeG/2+DvwejQ7oAiSx8BrDh5qOdqCYHGClPiTvVIHTfSIHiS2JjMbCANdDCjHkTOh/O7WZzo2JhdKm98bRBxTw== dependencies: "@babel/parser" "^7.13.9" @@ -74,7 +74,7 @@ "@vue/compiler-ssr@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.2.tgz#e33ad0876d9b96f0950e22b0e174b94c1b049d2d" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.2.tgz" integrity sha512-BwXo9LFk5OSWdMyZQ4bX1ELHX0Z/9F+ld/OaVnpUPzAZCHslBYLvyKUVDwv2C/lpLjRffpC2DOUEdl1+RP1aGg== dependencies: "@vue/compiler-dom" "3.1.2" @@ -82,14 +82,14 @@ "@vue/reactivity@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.2.tgz#66fa530dd726d2fef285ae55d02106a727db463b" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.2.tgz" integrity sha512-glJzJoN2xE7I2lRvwKM5u1BHRPTd1yc8iaf//Lai/78/uYAvE5DXp5HzWRFOwMlbRvMGJHIQjOqoxj87cDAaag== dependencies: "@vue/shared" "3.1.2" "@vue/runtime-core@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.2.tgz#f4dbc503cfc9a02ab5f1ebe002c3322512064a54" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.1.2.tgz" integrity sha512-gsPZG4dRIkixuuKmoj4P9IHgfT0yaFLcqWOM5F/bCk0nxQn1XtxH8oUehWuET726KhbukvDoJfe9G2CKviy80w== dependencies: "@vue/reactivity" "3.1.2" @@ -97,7 +97,7 @@ "@vue/runtime-dom@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.2.tgz#0fd8724f14bc7ba64b6c954d874a8d8a4fcb5fe9" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.1.2.tgz" integrity sha512-QvINxjLucEZFzp5f0NVu7JqWYCv5TKQfkH2FDs/N6QNE4iKcYtKrWdT0HKfABnVXG28Znqv6rIH0dH4ZAOwxpA== dependencies: "@vue/runtime-core" "3.1.2" @@ -106,49 +106,49 @@ "@vue/shared@3.1.2": version "3.1.2" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.2.tgz#1069c0bc7d6f4bd15ccf3a5f3be29450aca368f9" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.1.2.tgz" integrity sha512-EmH/poaDWBPJaPILXNI/1fvUbArJQmmTyVCwvvyDYDFnkPoTclAbHRAtyIvqfez7jybTDn077HTNILpxlsoWhg== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== consolidate@^0.16.0: version "0.16.0" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz" integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== dependencies: bluebird "^3.7.2" cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csstype@^2.6.8: version "2.6.18" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz" integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== esbuild@^0.12.8: version "0.12.29" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz" integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g== estree-walker@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== fsevents@~2.3.2: @@ -158,55 +158,55 @@ fsevents@~2.3.2: function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== generic-names@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz" integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== dependencies: loader-utils "^1.1.0" has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-sum@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== icss-replace-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= icss-utils@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== is-core-module@^2.2.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== dependencies: has "^1.0.3" json5@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" loader-utils@^1.1.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" @@ -215,58 +215,58 @@ loader-utils@^1.1.0: lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" magic-string@^0.25.7: version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" merge-source-map@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== dependencies: source-map "^0.6.1" minimist@^1.2.0: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== nanocolors@^0.2.2: version "0.2.12" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.12.tgz#4d05932e70116078673ea4cc6699a1c56cc77777" + resolved "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== nanoid@^3.1.25: version "3.1.28" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz" integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== path-parse@^1.0.6: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== postcss-modules-extract-imports@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== postcss-modules-local-by-default@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== dependencies: icss-utils "^5.0.0" @@ -275,21 +275,21 @@ postcss-modules-local-by-default@^4.0.0: postcss-modules-scope@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: postcss-selector-parser "^6.0.4" postcss-modules-values@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: icss-utils "^5.0.0" postcss-modules@^4.0.0: version "4.2.2" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz" integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== dependencies: generic-names "^2.0.1" @@ -303,7 +303,7 @@ postcss-modules@^4.0.0: postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" @@ -311,12 +311,12 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: postcss-value-parser@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.1.10, postcss@^8.3.4: version "8.3.8" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz" integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== dependencies: nanocolors "^0.2.2" @@ -325,7 +325,7 @@ postcss@^8.1.10, postcss@^8.3.4: resolve@^1.20.0: version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: is-core-module "^2.2.0" @@ -333,44 +333,44 @@ resolve@^1.20.0: rollup@^2.38.5: version "2.57.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.57.0.tgz#c1694475eb22e1022477c0f4635fd0ac80713173" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz" integrity sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg== optionalDependencies: fsevents "~2.3.2" source-map-js@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sourcemap-codec@^1.4.4: version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== string-hash@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= vite@2.3.8: version "2.3.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.8.tgz#42e3e03953859fd410e4e6ab3d1cca0aab2adc3c" + resolved "https://registry.npmjs.org/vite/-/vite-2.3.8.tgz" integrity sha512-QiEx+iqNnJntSgSF2fWRQvRey9pORIrtNJzNyBJXwc+BdzWs83FQolX84cTBo393cfhObrtWa6180dAa4NLDiQ== dependencies: esbuild "^0.12.8" @@ -382,7 +382,7 @@ vite@2.3.8: vue@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.2.tgz#647f8e3949a3d600771dca25d50225dc3e594c64" + resolved "https://registry.npmjs.org/vue/-/vue-3.1.2.tgz" integrity sha512-q/rbKpb7aofax4ugqu2k/uj7BYuNPcd6Z5/qJtfkJQsE0NkwVoCyeSh7IZGH61hChwYn3CEkh4bHolvUPxlQ+w== dependencies: "@vue/compiler-dom" "3.1.2" @@ -391,5 +391,5 @@ vue@3.1.2: yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== From c9e86062c001d916bb597d9d30ff0cf992806e3f Mon Sep 17 00:00:00 2001 From: chachmu Date: Wed, 29 Sep 2021 23:10:00 -0500 Subject: [PATCH 07/43] Vuetify installed but havent fully figured out how to use it --- ateam_ui/src/index.html | 7 +- ateam_ui/src/package.json | 9 +- ateam_ui/src/src/main.js | 9 +- ateam_ui/src/vue.config.js | 5 + ateam_ui/src/yarn.lock | 546 +++++++++++++++++++++++++++++++++---- 5 files changed, 521 insertions(+), 55 deletions(-) create mode 100644 ateam_ui/src/vue.config.js diff --git a/ateam_ui/src/index.html b/ateam_ui/src/index.html index 8d592dd6..4c0ee6fd 100644 --- a/ateam_ui/src/index.html +++ b/ateam_ui/src/index.html @@ -8,7 +8,12 @@ -
+
+ + + toggle theme + + diff --git a/ateam_ui/src/package.json b/ateam_ui/src/package.json index 87e7690e..a008d227 100644 --- a/ateam_ui/src/package.json +++ b/ateam_ui/src/package.json @@ -11,11 +11,14 @@ "author": "Matthew Woodward ", "license": "TODO: License declaration", "dependencies": { - "vue": "3.1.2" + "vue": "^3.1.2", + "vuetify": "^3.0.0-alpha.0" }, "devDependencies": { - "@vitejs/plugin-vue": "1.2.3", + "@vitejs/plugin-vue": "^1.2.4", "@vue/compiler-sfc": "3.1.2", - "vite": "2.3.8" + "@vuetify/vite-plugin":"^1.0.0-alpha.4", + "vue-cli-plugin-vuetify":"~2.4.2", + "vite": "^2.3.8" } } diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js index 01433bca..5c370f83 100644 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -1,4 +1,11 @@ +import 'vuetify/styles' import { createApp } from 'vue' +import { createVuetify } from 'vuetify' +import colors from 'vuetify/lib/util/colors' import App from './App.vue' -createApp(App).mount('#app') + +const vuetify = createVuetify({theme: {defaultTheme: 'dark'}}); +const app = createApp(App).use(vuetify).mount('#app'); + +console.log(Object.getOwnPropertyNames(vuetify)) diff --git a/ateam_ui/src/vue.config.js b/ateam_ui/src/vue.config.js new file mode 100644 index 00000000..2ae460b7 --- /dev/null +++ b/ateam_ui/src/vue.config.js @@ -0,0 +1,5 @@ +module.exports = { + transpileDependencies: [ + 'vuetify' + ] +} diff --git a/ateam_ui/src/yarn.lock b/ateam_ui/src/yarn.lock index 0dc0c3aa..5f991602 100644 --- a/ateam_ui/src/yarn.lock +++ b/ateam_ui/src/yarn.lock @@ -7,9 +7,9 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== -"@babel/parser@^7.12.0", "@babel/parser@^7.13.9": +"@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.15.0": version "7.15.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== "@babel/types@^7.12.0", "@babel/types@^7.13.0": @@ -25,10 +25,10 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== -"@vitejs/plugin-vue@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.2.3.tgz" - integrity sha512-LlnLpObkGKZ+b7dcpL4T24l13nPSHLjo+6Oc7MbZiKz5PMAUzADfNJ3EKfYIQ0l0969nxf2jp/9vsfnuJ7h6fw== +"@vitejs/plugin-vue@^1.2.4": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.2.tgz#7234efb8c3c3d60c7eac350a935074ab1820ae0e" + integrity sha512-QnUQJvGmY+YT9xTidLcjr6NAjKWNdSuul1M+BZ6uwTQaO5vpAY9USBncXESATk742dYMZGJenegJgeJhG/HMNQ== "@vue/compiler-core@3.1.2": version "3.1.2" @@ -41,6 +41,16 @@ estree-walker "^2.0.1" source-map "^0.6.1" +"@vue/compiler-core@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.19.tgz#b537dd377ce51fdb64e9b30ebfbff7cd70a64cb9" + integrity sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg== + dependencies: + "@babel/parser" "^7.15.0" + "@vue/shared" "3.2.19" + estree-walker "^2.0.2" + source-map "^0.6.1" + "@vue/compiler-dom@3.1.2": version "3.1.2" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.2.tgz" @@ -49,6 +59,14 @@ "@vue/compiler-core" "3.1.2" "@vue/shared" "3.1.2" +"@vue/compiler-dom@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz#0607bc90de6af55fde73b09b3c4d0bf8cb597ed8" + integrity sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw== + dependencies: + "@vue/compiler-core" "3.2.19" + "@vue/shared" "3.2.19" + "@vue/compiler-sfc@3.1.2": version "3.1.2" resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.2.tgz" @@ -72,6 +90,22 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" +"@vue/compiler-sfc@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz#d412195a98ebd49b84602f171719294a1d9549be" + integrity sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA== + dependencies: + "@babel/parser" "^7.15.0" + "@vue/compiler-core" "3.2.19" + "@vue/compiler-dom" "3.2.19" + "@vue/compiler-ssr" "3.2.19" + "@vue/ref-transform" "3.2.19" + "@vue/shared" "3.2.19" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + "@vue/compiler-ssr@3.1.2": version "3.1.2" resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.2.tgz" @@ -80,35 +114,106 @@ "@vue/compiler-dom" "3.1.2" "@vue/shared" "3.1.2" -"@vue/reactivity@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.2.tgz" - integrity sha512-glJzJoN2xE7I2lRvwKM5u1BHRPTd1yc8iaf//Lai/78/uYAvE5DXp5HzWRFOwMlbRvMGJHIQjOqoxj87cDAaag== +"@vue/compiler-ssr@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.19.tgz#3e91ecf70f8f961c5f63eacd2139bcdab9a7a07c" + integrity sha512-oLon0Cn3O7WEYzzmzZavGoqXH+199LT+smdjBT3Uf3UX4HwDNuBFCmvL0TsqV9SQnIgKvBRbQ7lhbpnd4lqM3w== dependencies: - "@vue/shared" "3.1.2" + "@vue/compiler-dom" "3.2.19" + "@vue/shared" "3.2.19" -"@vue/runtime-core@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.1.2.tgz" - integrity sha512-gsPZG4dRIkixuuKmoj4P9IHgfT0yaFLcqWOM5F/bCk0nxQn1XtxH8oUehWuET726KhbukvDoJfe9G2CKviy80w== +"@vue/reactivity@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.19.tgz#fc6e0f0106f295226835cfed5ff5f84d927bea65" + integrity sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA== dependencies: - "@vue/reactivity" "3.1.2" - "@vue/shared" "3.1.2" + "@vue/shared" "3.2.19" -"@vue/runtime-dom@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.1.2.tgz" - integrity sha512-QvINxjLucEZFzp5f0NVu7JqWYCv5TKQfkH2FDs/N6QNE4iKcYtKrWdT0HKfABnVXG28Znqv6rIH0dH4ZAOwxpA== +"@vue/ref-transform@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.19.tgz#cf0f986486bb26838fbd09749e927bab19745600" + integrity sha512-03wwUnoIAeKti5IGGx6Vk/HEBJ+zUcm5wrUM3+PQsGf7IYnXTbeIfHHpx4HeSeWhnLAjqZjADQwW8uA4rBmVbg== dependencies: - "@vue/runtime-core" "3.1.2" - "@vue/shared" "3.1.2" + "@babel/parser" "^7.15.0" + "@vue/compiler-core" "3.2.19" + "@vue/shared" "3.2.19" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/runtime-core@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.19.tgz#807715b7f4728abb84fa4a8efdbe37d8ddb4c6d3" + integrity sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ== + dependencies: + "@vue/reactivity" "3.2.19" + "@vue/shared" "3.2.19" + +"@vue/runtime-dom@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz#7e8bf645754703e360fa132e4be9113edf2377bb" + integrity sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A== + dependencies: + "@vue/runtime-core" "3.2.19" + "@vue/shared" "3.2.19" csstype "^2.6.8" +"@vue/server-renderer@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.19.tgz#870bcec9f7cdaee0c2187a169b6e636ab4362fb1" + integrity sha512-A9FNT7fgQJXItwdzWREntAgWKVtKYuXHBKGev/H4+ByTu8vB7gQXGcim01QxaJshdNg4dYuH2tEBZXCNCNx+/w== + dependencies: + "@vue/compiler-ssr" "3.2.19" + "@vue/shared" "3.2.19" + "@vue/shared@3.1.2": version "3.1.2" resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.1.2.tgz" integrity sha512-EmH/poaDWBPJaPILXNI/1fvUbArJQmmTyVCwvvyDYDFnkPoTclAbHRAtyIvqfez7jybTDn077HTNILpxlsoWhg== +"@vue/shared@3.2.19": + version "3.2.19" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.19.tgz#111ec3da18337d86274446984c49925b1b2b2dd7" + integrity sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew== + +"@vuetify/loader-shared@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@vuetify/loader-shared/-/loader-shared-1.1.2.tgz#3a470d5d5525b97dce46436417d346c536257a09" + integrity sha512-bDIWQ/XQ9DLWvbJDjVhvR6PcwI7F5V2qxDR8qARcUm2Z6QhUM5Lvx7qWhds9KebGhsGXazc1ZX8N7arBW5xJCg== + +"@vuetify/vite-plugin@^1.0.0-alpha.4": + version "1.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@vuetify/vite-plugin/-/vite-plugin-1.0.0-alpha.4.tgz#461db337b63b9e0f8f6fd16b8e890d4ea29c5dae" + integrity sha512-Pqpgal5OzmesUY/msGGa6DGrTMbQ7FAoUqGnTFVTsKNsC5hVzyNftWleblYtfJbw8chuZaqvt/3NW1Yye6s2kw== + dependencies: + "@vuetify/loader-shared" "^1.1.2" + find-cache-dir "^3.3.2" + upath "^2.0.1" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" @@ -119,6 +224,24 @@ bluebird@^3.7.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + consolidate@^0.16.0: version "0.16.0" resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz" @@ -141,16 +264,145 @@ emojis-list@^3.0.0: resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -esbuild@^0.12.8: - version "0.12.29" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz" - integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g== - -estree-walker@^2.0.1: +esbuild-android-arm64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz#ef734c76eeff42e8c53acdffe901da090164a890" + integrity sha512-jc9E8vGTHkzb0Vwl74H8liANV9BWsqtzLHaKvcsRgf1M+aVCBSF0gUheduAKfDsbDMT0judeMLhwBP34EUesTA== + +esbuild-darwin-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.3.tgz#35f29376b7451add79f0640980683ef923365385" + integrity sha512-8bG3Zq+ZNuLlIJebOO2+weI7P2LVf33sOzaUfHj8MuJ+1Ixe4KtQxfYp7qhFnP6xP2ToJaYHxGUfLeiUCEz9hw== + +esbuild-darwin-arm64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.3.tgz#530a1326e7d18d62c9a54b6dce70f2b77ed50eec" + integrity sha512-5E81eImYtTgh8pY7Gq4WQHhWkR/LvYadUXmuYeZBiP+3ADZJZcG60UFceZrjqNPaFOWKr/xmh4aNocwagEubcA== + +esbuild-freebsd-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.3.tgz#ce2896ac362e06eb82ca5dec06b2568901eb5afc" + integrity sha512-ou+f91KkTGexi8HvF/BdtsITL6plbciQfZGys7QX6/QEwyE96PmL5KnU6ZQwoU7E99Ts6Sc9bUDq8HXJubKtBA== + +esbuild-freebsd-arm64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.3.tgz#a20454f99e060bea4e465d131556a9f0533f403f" + integrity sha512-F1zV7nySjHswJuvIgjkiG5liZ63MeazDGXGKViTCeegjZ71sAhOChcaGhKcu6vq9+vqZxlfEi1fmXlx6Pc3coQ== + +esbuild-linux-32@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.3.tgz#ad56f18208ecf007cd9ab16cd39626ca0312b8ee" + integrity sha512-mHHc2v6uLrHH4zaaq5RB/5IWzgimEJ1HGldzf1qtGI513KZWfH0HRRQ8p1di4notJgBn7tDzWQ1f34ZHy69viQ== + +esbuild-linux-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.3.tgz#be1eabadf68d153897ed887678f7496d3949810f" + integrity sha512-FJ1De2O89mrOuqtaEXu41qIYJU6R41F+OA6vheNwcAQcX8fu0aiA13FJeLABq29BYJuTVgRj3cyC8q+tz19/dQ== + +esbuild-linux-arm64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.3.tgz#329348bb4a19cfb5e9046cc5d97ba5017d8f74ad" + integrity sha512-Cauhr45KSo+wRUojs+1qfycQqQCAXTOvsWvkZ6xmEMAXLAm+f8RQGDQeP8CAf8Yeelnegcn6UNdvzdzLHhWDFg== + +esbuild-linux-arm@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.3.tgz#b3b3167c9d5d3038894fbc75b194a4fbe93eaf09" + integrity sha512-9BJNRtLwBh3OP22cln9g3AJdbAQUcjRHqA4BScx9k4RZpGqPokFr548zpeplxWhcwrIjT8qPebwH9CrRVy8Bsw== + +esbuild-linux-mips64le@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.3.tgz#ea1687f28ea2c85399ecc2fe23a48ab343b7b35d" + integrity sha512-YVzJUGCncuuLm2boYyVeuMFsak4ZAhdiBwi0xNDZCC8sy+tS6Boe2mzcrD2uubv5JKAUOrpN186S1DtU4WgBgw== + +esbuild-linux-ppc64le@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.3.tgz#a462cf42eae3d7fc29a9f277679f5adee70afa67" + integrity sha512-GU6CqqKtJEoyxC2QWHiJtmuOz9wc/jMv8ZloK2WwiGY5yMvAmM3PI103Dj7xcjebNTHBqITTUw/aigY1wx5A3w== + +esbuild-openbsd-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.3.tgz#0cb15bd86d20eb19cb548b530f1a533197532cf9" + integrity sha512-HVpkgpn4BQt4BPDAjTOpeMub6mzNWw6Y3gaLQJrpbO24pws6ZwYkY24OI3/Uo3LDCbH6856MM81JxECt92OWjA== + +esbuild-sunos-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.3.tgz#53a941241f881010969cc8f1acb1ada49c4cd3c2" + integrity sha512-XncBVOtnEfUbPV4CaiFBxh38ychnBfwCxuTm9iAqcHzIwkmeNRN5qMzDyfE1jyfJje+Bbt6AvIfz6SdYt8/UEQ== + +esbuild-windows-32@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.3.tgz#265dc0d0cdb5374685a851c584857055e12865a4" + integrity sha512-ZlgDz7d1nk8wQACi+z8IDzNZVUlN9iprAme+1YSTsfFDlkyI8jeaGWPk9EQFNY7rJzsLVYm6eZ2mhPioc7uT5A== + +esbuild-windows-64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.3.tgz#ae710c0629ec8c39c5ef1f69e86ed5592bb4128f" + integrity sha512-YX7KvRez3TR+GudlQm9tND/ssj2FsF9vb8ZWzAoZOLxpPzE3y+3SFJNrfDzzQKPzJ0Pnh9KBP4gsaMwJjKHDhw== + +esbuild-windows-arm64@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.3.tgz#a236199a26b1205573dcb571f966189326a4c953" + integrity sha512-nP7H0Y2a6OJd3Qi1Q8sehhyP4x4JoXK4S5y6FzH2vgaJgiyEurzFxjUufGdMaw+RxtxiwD/uRndUgwaZ2JD8lg== + +esbuild@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.3.tgz#cc9fc347fc81ff6440cdd1fdb9fe65c02eddcc97" + integrity sha512-98xovMLKnyhv3gcReUuAEi5Ig1rK6SIgvsJuBIcfwzqGSEHsV8UJjMlmkhHoHMf9XZybMpE9Zax8AA8f7i2hlQ== + optionalDependencies: + esbuild-android-arm64 "0.13.3" + esbuild-darwin-64 "0.13.3" + esbuild-darwin-arm64 "0.13.3" + esbuild-freebsd-64 "0.13.3" + esbuild-freebsd-arm64 "0.13.3" + esbuild-linux-32 "0.13.3" + esbuild-linux-64 "0.13.3" + esbuild-linux-arm "0.13.3" + esbuild-linux-arm64 "0.13.3" + esbuild-linux-mips64le "0.13.3" + esbuild-linux-ppc64le "0.13.3" + esbuild-openbsd-64 "0.13.3" + esbuild-sunos-64 "0.13.3" + esbuild-windows-32 "0.13.3" + esbuild-windows-64 "0.13.3" + esbuild-windows-arm64 "0.13.3" + +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +find-cache-dir@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -168,6 +420,18 @@ generic-names@^2.0.1: dependencies: loader-utils "^1.1.0" +glob@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -190,6 +454,24 @@ icss-utils@^5.0.0: resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + is-core-module@^2.2.0: version "2.7.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" @@ -197,6 +479,11 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json5@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" @@ -204,7 +491,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -loader-utils@^1.1.0: +loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -213,6 +500,13 @@ loader-utils@^1.1.0: emojis-list "^3.0.0" json5 "^1.0.1" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" @@ -225,6 +519,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" @@ -232,6 +533,13 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.4" +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" @@ -239,6 +547,13 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" @@ -254,11 +569,62 @@ nanoid@^3.1.25: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz" integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== +null-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" + integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== + dependencies: + loader-utils "^1.2.3" + schema-utils "^1.0.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + path-parse@^1.0.6: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" @@ -314,7 +680,7 @@ postcss-value-parser@^4.1.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^8.1.10, postcss@^8.3.4: +postcss@^8.1.10, postcss@^8.3.8: version "8.3.8" resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz" integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== @@ -323,21 +689,63 @@ postcss@^8.1.10, postcss@^8.3.4: nanoid "^3.1.25" source-map-js "^0.6.2" -resolve@^1.20.0: +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +resolve@^1.1.6, resolve@^1.20.0: version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: is-core-module "^2.2.0" path-parse "^1.0.6" -rollup@^2.38.5: +rollup@^2.57.0: version "2.57.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.57.0.tgz#c1694475eb22e1022477c0f4635fd0ac80713173" integrity sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg== optionalDependencies: fsevents "~2.3.2" +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.1.2: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +shelljs@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" @@ -363,33 +771,71 @@ to-fast-properties@^2.0.0: resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +upath@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -vite@2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/vite/-/vite-2.3.8.tgz" - integrity sha512-QiEx+iqNnJntSgSF2fWRQvRey9pORIrtNJzNyBJXwc+BdzWs83FQolX84cTBo393cfhObrtWa6180dAa4NLDiQ== +vite@^2.3.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.1.tgz#2e17908fa865d962d5fe33631df09c99e7ec486e" + integrity sha512-rYd+iGMQ+AytWfYBDhIz2upeiseuqrAMwmApJDR40wu12C9MqzemX449nM3FN1Z/FFSV+fMTFz7eMenngVSogA== dependencies: - esbuild "^0.12.8" - postcss "^8.3.4" + esbuild "^0.13.2" + postcss "^8.3.8" resolve "^1.20.0" - rollup "^2.38.5" + rollup "^2.57.0" optionalDependencies: fsevents "~2.3.2" -vue@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/vue/-/vue-3.1.2.tgz" - integrity sha512-q/rbKpb7aofax4ugqu2k/uj7BYuNPcd6Z5/qJtfkJQsE0NkwVoCyeSh7IZGH61hChwYn3CEkh4bHolvUPxlQ+w== +vue-cli-plugin-vuetify@~2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.4.2.tgz#f5c54a853cd5b06633da4a508ff4aa5b6b6275e0" + integrity sha512-aJXkzz3CbN/D1/aJ53slsp8hGaruQHhj/mkNjsfpkqhGglLex7UBnvcDwi5+D1tNk+XlddANLgRe9tmCFMorVA== dependencies: - "@vue/compiler-dom" "3.1.2" - "@vue/runtime-dom" "3.1.2" - "@vue/shared" "3.1.2" + null-loader "^3.0.0" + semver "^7.1.2" + shelljs "^0.8.3" + +vue@^3.1.2: + version "3.2.19" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.19.tgz#da2c80a6a0271c7097fee9e31692adfd9d569c8f" + integrity sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA== + dependencies: + "@vue/compiler-dom" "3.2.19" + "@vue/compiler-sfc" "3.2.19" + "@vue/runtime-dom" "3.2.19" + "@vue/server-renderer" "3.2.19" + "@vue/shared" "3.2.19" + +vuetify@^3.0.0-alpha.0: + version "3.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.0.0-alpha.11.tgz#927a46feda8ca36f1616dadb125ee09107f31fd8" + integrity sha512-dJ1sJqcRPt5yNngCzv22vtFFh3o3/ZsQkOxbKeAzoGBYeYMUl8SruQUN/nC9plW7rxQFFVIp/ozcYsJmiZmgtA== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== From 39b18547af343151121f827dbc96623a06bc45f5 Mon Sep 17 00:00:00 2001 From: chachmu Date: Fri, 1 Oct 2021 23:22:15 -0500 Subject: [PATCH 08/43] functioning test ui with konva, shapes not reacting to change in state --- ateam_ui/src/index.html | 22 +- ateam_ui/src/package.json | 11 +- ateam_ui/src/src/App.vue | 88 +++- .../src/src/components/FieldComponent.vue | 168 +++++++ ateam_ui/src/src/components/HelloWorld.vue | 33 -- ateam_ui/src/src/main.js | 19 +- ateam_ui/src/src/plugins/vuetify.js | 10 + ateam_ui/src/vite.config.js | 8 +- ateam_ui/src/yarn.lock | 448 +----------------- 9 files changed, 300 insertions(+), 507 deletions(-) create mode 100644 ateam_ui/src/src/components/FieldComponent.vue delete mode 100644 ateam_ui/src/src/components/HelloWorld.vue create mode 100644 ateam_ui/src/src/plugins/vuetify.js diff --git a/ateam_ui/src/index.html b/ateam_ui/src/index.html index 4c0ee6fd..b60247d7 100644 --- a/ateam_ui/src/index.html +++ b/ateam_ui/src/index.html @@ -6,22 +6,16 @@ Ateam UI - +
- - - toggle theme - - - - + - - - + + + diff --git a/ateam_ui/src/package.json b/ateam_ui/src/package.json index a008d227..b8675b90 100644 --- a/ateam_ui/src/package.json +++ b/ateam_ui/src/package.json @@ -12,13 +12,14 @@ "license": "TODO: License declaration", "dependencies": { "vue": "^3.1.2", - "vuetify": "^3.0.0-alpha.0" + "vuetify": "^3.0.0-alpha.11", + "vue3-konva": "^2.1.7", + "konva": "^8.2.1" }, "devDependencies": { - "@vitejs/plugin-vue": "^1.2.4", - "@vue/compiler-sfc": "3.1.2", + "@vitejs/plugin-vue": "^1.6.0", + "@vue/compiler-sfc": "^3.2.7", "@vuetify/vite-plugin":"^1.0.0-alpha.4", - "vue-cli-plugin-vuetify":"~2.4.2", - "vite": "^2.3.8" + "vite": "^2.5.3" } } diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue index b67169df..a3aec45b 100644 --- a/ateam_ui/src/src/App.vue +++ b/ateam_ui/src/src/App.vue @@ -1,22 +1,78 @@ - + + + + diff --git a/ateam_ui/src/src/components/FieldComponent.vue b/ateam_ui/src/src/components/FieldComponent.vue new file mode 100644 index 00000000..cc90bf81 --- /dev/null +++ b/ateam_ui/src/src/components/FieldComponent.vue @@ -0,0 +1,168 @@ + + + + diff --git a/ateam_ui/src/src/components/HelloWorld.vue b/ateam_ui/src/src/components/HelloWorld.vue deleted file mode 100644 index d57ad810..00000000 --- a/ateam_ui/src/src/components/HelloWorld.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js index 5c370f83..bfc607fd 100644 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -1,11 +1,14 @@ -import 'vuetify/styles' -import { createApp } from 'vue' -import { createVuetify } from 'vuetify' -import colors from 'vuetify/lib/util/colors' -import App from './App.vue' +import { createApp } from 'vue'; +import vuetify from './plugins/vuetify'; +import VueKonva from 'vue3-konva'; +import App from './App.vue'; +const app = createApp(App); -const vuetify = createVuetify({theme: {defaultTheme: 'dark'}}); -const app = createApp(App).use(vuetify).mount('#app'); +app.use(vuetify); +app.use(VueKonva); -console.log(Object.getOwnPropertyNames(vuetify)) +const vm = app.mount('#app'); +console.log("app mounted"); + +vm.state.robots[0].y=200; diff --git a/ateam_ui/src/src/plugins/vuetify.js b/ateam_ui/src/src/plugins/vuetify.js new file mode 100644 index 00000000..ed0fff8f --- /dev/null +++ b/ateam_ui/src/src/plugins/vuetify.js @@ -0,0 +1,10 @@ +import 'vuetify/styles'; +import { createVuetify } from 'vuetify'; + + +export default createVuetify({ + theme:{defaultTheme: 'dark'}, + icons: { + iconfont: 'mdi' + } +}); diff --git a/ateam_ui/src/vite.config.js b/ateam_ui/src/vite.config.js index 4054db96..6730439d 100644 --- a/ateam_ui/src/vite.config.js +++ b/ateam_ui/src/vite.config.js @@ -1,9 +1,15 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +import vuetify from '@vuetify/vite-plugin' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()], + plugins: [ + vue(), + vuetify({ + autoImport: true + }) + ], base: '', build: { outDir: 'resources' diff --git a/ateam_ui/src/yarn.lock b/ateam_ui/src/yarn.lock index 5f991602..a039a197 100644 --- a/ateam_ui/src/yarn.lock +++ b/ateam_ui/src/yarn.lock @@ -2,45 +2,16 @@ # yarn lockfile v1 -"@babel/helper-validator-identifier@^7.14.9": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.15.0": +"@babel/parser@^7.15.0": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== -"@babel/types@^7.12.0", "@babel/types@^7.13.0": - version "7.15.6" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" - integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - to-fast-properties "^2.0.0" - -"@types/estree@^0.0.48": - version "0.0.48" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz" - integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== - -"@vitejs/plugin-vue@^1.2.4": +"@vitejs/plugin-vue@^1.6.0": version "1.9.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.2.tgz#7234efb8c3c3d60c7eac350a935074ab1820ae0e" integrity sha512-QnUQJvGmY+YT9xTidLcjr6NAjKWNdSuul1M+BZ6uwTQaO5vpAY9USBncXESATk742dYMZGJenegJgeJhG/HMNQ== -"@vue/compiler-core@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.2.tgz" - integrity sha512-nHmq7vLjq/XM2IMbZUcKWoH5sPXa2uR/nIKZtjbK5F3TcbnYE/zKsrSUR9WZJ03unlwotNBX1OyxVt9HbWD7/Q== - dependencies: - "@babel/parser" "^7.12.0" - "@babel/types" "^7.12.0" - "@vue/shared" "3.1.2" - estree-walker "^2.0.1" - source-map "^0.6.1" - "@vue/compiler-core@3.2.19": version "3.2.19" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.19.tgz#b537dd377ce51fdb64e9b30ebfbff7cd70a64cb9" @@ -51,14 +22,6 @@ estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.2.tgz" - integrity sha512-k2+SWcWH0jL6WQAX7Or2ONqu5MbtTgTO0dJrvebQYzgqaKMXNI90RNeWeCxS4BnNFMDONpHBeFgbwbnDWIkmRg== - dependencies: - "@vue/compiler-core" "3.1.2" - "@vue/shared" "3.1.2" - "@vue/compiler-dom@3.2.19": version "3.2.19" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz#0607bc90de6af55fde73b09b3c4d0bf8cb597ed8" @@ -67,30 +30,7 @@ "@vue/compiler-core" "3.2.19" "@vue/shared" "3.2.19" -"@vue/compiler-sfc@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.2.tgz" - integrity sha512-SeG/2+DvwejQ7oAiSx8BrDh5qOdqCYHGClPiTvVIHTfSIHiS2JjMbCANdDCjHkTOh/O7WZzo2JhdKm98bRBxTw== - dependencies: - "@babel/parser" "^7.13.9" - "@babel/types" "^7.13.0" - "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.1.2" - "@vue/compiler-dom" "3.1.2" - "@vue/compiler-ssr" "3.1.2" - "@vue/shared" "3.1.2" - consolidate "^0.16.0" - estree-walker "^2.0.1" - hash-sum "^2.0.0" - lru-cache "^5.1.1" - magic-string "^0.25.7" - merge-source-map "^1.1.0" - postcss "^8.1.10" - postcss-modules "^4.0.0" - postcss-selector-parser "^6.0.4" - source-map "^0.6.1" - -"@vue/compiler-sfc@3.2.19": +"@vue/compiler-sfc@3.2.19", "@vue/compiler-sfc@^3.2.7": version "3.2.19" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz#d412195a98ebd49b84602f171719294a1d9549be" integrity sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA== @@ -106,14 +46,6 @@ postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.2.tgz" - integrity sha512-BwXo9LFk5OSWdMyZQ4bX1ELHX0Z/9F+ld/OaVnpUPzAZCHslBYLvyKUVDwv2C/lpLjRffpC2DOUEdl1+RP1aGg== - dependencies: - "@vue/compiler-dom" "3.1.2" - "@vue/shared" "3.1.2" - "@vue/compiler-ssr@3.2.19": version "3.2.19" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.19.tgz#3e91ecf70f8f961c5f63eacd2139bcdab9a7a07c" @@ -165,11 +97,6 @@ "@vue/compiler-ssr" "3.2.19" "@vue/shared" "3.2.19" -"@vue/shared@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.1.2.tgz" - integrity sha512-EmH/poaDWBPJaPILXNI/1fvUbArJQmmTyVCwvvyDYDFnkPoTclAbHRAtyIvqfez7jybTDn077HTNILpxlsoWhg== - "@vue/shared@3.2.19": version "3.2.19" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.19.tgz#111ec3da18337d86274446984c49925b1b2b2dd7" @@ -189,81 +116,16 @@ find-cache-dir "^3.3.2" upath "^2.0.1" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -consolidate@^0.16.0: - version "0.16.0" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz" - integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== - dependencies: - bluebird "^3.7.2" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - csstype@^2.6.8: version "2.6.18" resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz" integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - esbuild-android-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz#ef734c76eeff42e8c53acdffe901da090164a890" @@ -366,21 +228,11 @@ esbuild@^0.13.2: esbuild-windows-64 "0.13.3" esbuild-windows-arm64 "0.13.3" -estree-walker@^2.0.1, estree-walker@^2.0.2: +estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - find-cache-dir@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" @@ -398,11 +250,6 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -413,25 +260,6 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -glob@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -439,39 +267,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - is-core-module@^2.2.0: version "2.7.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" @@ -479,26 +274,10 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" +konva@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/konva/-/konva-8.2.1.tgz#e03c8a8ba79bcc5f4aff5f049f3a69400d54215d" + integrity sha512-1jYJWwfd0O1BxCHtEWdaMwT8BGlT9aBzmQZSIBXEGiZ0RWxIU3i8X1/1gLArgqn9KXg7ZTB+TvYMiCViMSADCw== locate-path@^5.0.0: version "5.0.0" @@ -507,25 +286,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" @@ -540,25 +300,6 @@ make-dir@^3.0.2: dependencies: semver "^6.0.0" -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - nanocolors@^0.2.2: version "0.2.12" resolved "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz" @@ -569,21 +310,6 @@ nanoid@^3.1.25: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz" integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== -null-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" - integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== - dependencies: - loader-utils "^1.2.3" - schema-utils "^1.0.0" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -608,11 +334,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - path-parse@^1.0.6: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" @@ -625,61 +346,6 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^4.0.0: - version "4.2.2" - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz" - integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== - dependencies: - generic-names "^2.0.1" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.6" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - postcss@^8.1.10, postcss@^8.3.8: version "8.3.8" resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz" @@ -689,19 +355,7 @@ postcss@^8.1.10, postcss@^8.3.8: nanoid "^3.1.25" source-map-js "^0.6.2" -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -resolve@^1.1.6, resolve@^1.20.0: +resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -716,36 +370,11 @@ rollup@^2.57.0: optionalDependencies: fsevents "~2.3.2" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - semver@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -shelljs@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz" @@ -761,37 +390,15 @@ sourcemap-codec@^1.4.4: resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - upath@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -vite@^2.3.8: - version "2.6.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.1.tgz#2e17908fa865d962d5fe33631df09c99e7ec486e" - integrity sha512-rYd+iGMQ+AytWfYBDhIz2upeiseuqrAMwmApJDR40wu12C9MqzemX449nM3FN1Z/FFSV+fMTFz7eMenngVSogA== +vite@^2.5.3: + version "2.6.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.2.tgz#5bbb4afe1f69ed9d6482e51a0f761f8cfc230e22" + integrity sha512-HSIg9U15LOnbD3CUxX364Pdrm7DUjftuBljowGxvkFHgDZU/SKPqApg9t86MX/Qq1VCO7wS+mGJHlfuTF7c0Sg== dependencies: esbuild "^0.13.2" postcss "^8.3.8" @@ -800,14 +407,10 @@ vite@^2.3.8: optionalDependencies: fsevents "~2.3.2" -vue-cli-plugin-vuetify@~2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.4.2.tgz#f5c54a853cd5b06633da4a508ff4aa5b6b6275e0" - integrity sha512-aJXkzz3CbN/D1/aJ53slsp8hGaruQHhj/mkNjsfpkqhGglLex7UBnvcDwi5+D1tNk+XlddANLgRe9tmCFMorVA== - dependencies: - null-loader "^3.0.0" - semver "^7.1.2" - shelljs "^0.8.3" +vue3-konva@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/vue3-konva/-/vue3-konva-2.1.7.tgz#d6fa1357eaf22e89487049709ebf7128ea7643a6" + integrity sha512-3HMDdE6w9cDj5VSXJ9hFwTJ/S/iCzOIWcsi/QvWWxeIrLF6y3AafBtFw1beX8BrKYzmi88kT6j5Am6CNmP/ffw== vue@^3.1.2: version "3.2.19" @@ -820,22 +423,7 @@ vue@^3.1.2: "@vue/server-renderer" "3.2.19" "@vue/shared" "3.2.19" -vuetify@^3.0.0-alpha.0: +vuetify@^3.0.0-alpha.11: version "3.0.0-alpha.11" resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.0.0-alpha.11.tgz#927a46feda8ca36f1616dadb125ee09107f31fd8" integrity sha512-dJ1sJqcRPt5yNngCzv22vtFFh3o3/ZsQkOxbKeAzoGBYeYMUl8SruQUN/nC9plW7rxQFFVIp/ozcYsJmiZmgtA== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== From 9f9d718702e9096463293f9cb1c84824976f6c94 Mon Sep 17 00:00:00 2001 From: chachmu Date: Sat, 2 Oct 2021 19:40:59 -0500 Subject: [PATCH 09/43] Working reactive konva, adding field markings --- ateam_ui/src/src/App.vue | 71 ++--- .../src/src/components/FieldComponent.vue | 247 +++++++++--------- ateam_ui/src/src/main.js | 56 +++- 3 files changed, 196 insertions(+), 178 deletions(-) diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue index a3aec45b..a02862b0 100644 --- a/ateam_ui/src/src/App.vue +++ b/ateam_ui/src/src/App.vue @@ -10,68 +10,47 @@ - - - diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js index bfc607fd..9e2120f4 100644 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -9,6 +9,58 @@ app.use(vuetify); app.use(VueKonva); const vm = app.mount('#app'); -console.log("app mounted"); -vm.state.robots[0].y=200; +// Configer Default Ball Location +vm.state.ball = { + x: 560/2, + y: 360/2, + visible: true +} + +// Configure Default Robot Layout +var yoffset = 0; +for (var team in vm.state.teams) { + var xoffset = 0; + for (var i = 0; i < 16; i++) { + vm.state.teams[team].robots.push({ + id: i, + team: team, + x: 60 + (70*(i+xoffset)), + y: 60 + (70*yoffset), + visible: (i<=6) + }) + + if (i!=0 && ((i+1) % 8) == 0) { + xoffset-=8; + yoffset+=1; + } + }; + yoffset += 1; +} + +// Configure Default Overlays +vm.state.overlays.push({ + type: 'line', + x: 0, + y: 0, + fill: "red" +}); + + +// Configure Field Dimensions +vm.state.fieldDimensions = { + length: 9, + width: 6, + border: .7, + lineWidth: .01, + goalWidth: 1, + goalDepth: .18, + goalHeight: .16, + penaltyShort: 1, + penaltyLong: 2, + centerRadius: .5, + centerDiameter: 1, + goalFlat: .5, + floorLength: 10.4, + floorWidth: 7.4 +}; From a78cc3c596a7b2eb26d87add12000f9280a806af Mon Sep 17 00:00:00 2001 From: chachmu Date: Sat, 2 Oct 2021 22:02:26 -0500 Subject: [PATCH 10/43] Fully functioning ui test --- ateam_ui/src/src/App.vue | 22 +- .../src/src/components/FieldComponent.vue | 218 ++++++++++++------ ateam_ui/src/src/main.js | 38 +-- 3 files changed, 179 insertions(+), 99 deletions(-) diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue index a02862b0..450d8db1 100644 --- a/ateam_ui/src/src/App.vue +++ b/ateam_ui/src/src/App.vue @@ -12,7 +12,7 @@ diff --git a/ateam_ui/src/src/components/StatusComponent.vue b/ateam_ui/src/src/components/StatusComponent.vue new file mode 100644 index 00000000..76248d36 --- /dev/null +++ b/ateam_ui/src/src/components/StatusComponent.vue @@ -0,0 +1,85 @@ + + + + diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js index dc8f59bb..b9982013 100644 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -29,7 +29,14 @@ for (var team in vm.state.teams) { x: (70*(i+xoffset)) - (70*(numVisible-1)/2), y: (120*yoffset) - 60, rotation: team=="blue" ? 180 : 0, - visible: (i<=numVisible-1) + visible: (i<=numVisible-1), + status: { + connected: true, + kicker: false, + battery: 100, + name: null, + message: null + } }) }; yoffset += 1; From 71c4e0e8bb3eed40567f4a80b951dc8ff758f4c4 Mon Sep 17 00:00:00 2001 From: chachmu Date: Tue, 30 Nov 2021 22:38:53 -0600 Subject: [PATCH 16/43] Testing build system --- ateam_ui/CMakeLists.txt | 8 +++-- ateam_ui/launch/ateam_ui_launch.xml | 2 +- ateam_ui/src/index.html | 1 - ateam_ui/src/package.json | 7 +++-- ateam_ui/src/src/main.js | 46 +++++++++++++++++++++++++++++ 5 files changed, 56 insertions(+), 8 deletions(-) diff --git a/ateam_ui/CMakeLists.txt b/ateam_ui/CMakeLists.txt index e95782de..b15d7f02 100644 --- a/ateam_ui/CMakeLists.txt +++ b/ateam_ui/CMakeLists.txt @@ -5,9 +5,11 @@ find_package(ament_cmake REQUIRED) find_package(rosbridge_server REQUIRED) -install(FILES - launch/ateam_ui_launch.xml - DESTINATION share/${PROJECT_NAME}/launch +install(DIRECTORY + launch + src + DESTINATION share/${PROJECT_NAME} + USE_SOURCE_PERMISSIONS ) if(BUILD_TESTING) diff --git a/ateam_ui/launch/ateam_ui_launch.xml b/ateam_ui/launch/ateam_ui_launch.xml index 268582f9..d8913511 100644 --- a/ateam_ui/launch/ateam_ui_launch.xml +++ b/ateam_ui/launch/ateam_ui_launch.xml @@ -1,4 +1,4 @@ - + diff --git a/ateam_ui/src/index.html b/ateam_ui/src/index.html index b60247d7..15d840d3 100644 --- a/ateam_ui/src/index.html +++ b/ateam_ui/src/index.html @@ -11,7 +11,6 @@
- - + diff --git a/ateam_ui/src/package.json b/ateam_ui/src/package.json index d78fc82e..20c7f048 100644 --- a/ateam_ui/src/package.json +++ b/ateam_ui/src/package.json @@ -2,7 +2,7 @@ "name": "ATeam_UI", "version": "1.0.1", "description": "Robocup A-Team UI", - "scripts": { + "scripts": { "configure": "yarn install; (test -d ./bin || neu update)", "dev": "vite", "devrun": "(yarn configure || true) && vite build && neu run", @@ -20,7 +20,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^1.6.0", "@vue/compiler-sfc": "^3.2.7", - "@vuetify/vite-plugin":"^1.0.0-alpha.4", + "@vuetify/vite-plugin": "^1.0.0-alpha.4", "vite": "^2.5.3" } } diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js index b8b94d52..0aa9baf3 100644 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -4,6 +4,10 @@ import VueKonva from 'vue3-konva'; import App from './App.vue'; import 'roslib/build/roslib'; + +Neutralino.init(); +Neutralino.events.on("windowClose", function(){Neutralino.app.exit()}); + const app = createApp(App); app.use(vuetify); @@ -77,6 +81,7 @@ ros.on('error', function(error) { ros.on('close', function() { console.log('Connection to ROS server closed.'); + Neutralino.app.exit(); }); // Set up ball subscribers and publishers diff --git a/ateam_ui/src/vite.config.js b/ateam_ui/src/vite.config.js index 6730439d..fe29cb45 100644 --- a/ateam_ui/src/vite.config.js +++ b/ateam_ui/src/vite.config.js @@ -10,8 +10,8 @@ export default defineConfig({ autoImport: true }) ], - base: '', - build: { - outDir: 'resources' - } + base: '', + build: { + outDir: 'resources' + } }); diff --git a/ateam_ui/test/launch_tests/ateam_ui_test.py b/ateam_ui/test/launch_tests/ateam_ui_test.py index 31614385..ead0ba0b 100644 --- a/ateam_ui/test/launch_tests/ateam_ui_test.py +++ b/ateam_ui/test/launch_tests/ateam_ui_test.py @@ -34,18 +34,32 @@ @pytest.mark.rostest def generate_test_description(): ateam_ui_src = os.path.join(get_package_share_directory("ateam_ui"), "src") + ui_process = launch.actions.ExecuteProcess( + cmd=["neu", "run"], + cwd=ateam_ui_src, + output="screen" + ) + + rosbridge_node = launch_ros.actions.Node( + package="rosbridge_server", + namespace="ui", + name="rosbridge", + executable="rosbridge_websocket.py" + ) + + shutdown_handler = launch.actions.RegisterEventHandler( + launch.event_handlers.OnProcessExit( + target_action=ui_process, + on_exit=[launch.actions.EmitEvent( + event=launch.events.Shutdown(reason="Window Closed") + )] + ) + ) + return launch.LaunchDescription([ - launch.actions.ExecuteProcess( - cmd=["neu", "run"], - cwd=ateam_ui_src, - output="screen" - ), - launch_ros.actions.Node( - package='rosbridge_server', - namespace='ui', - name='rosbridge', - executable="rosbridge_websocket.py" - ), + ui_process, + rosbridge_node, + shutdown_handler, launch_testing.actions.ReadyToTest() ]), locals() @@ -61,6 +75,7 @@ def setUp(self): self.node, context=self.context) # Need time for rosbridge node to set up + # I want to use the ReadyToTest action but got some weird errors time.sleep(1) self.message_pump.start() @@ -71,6 +86,12 @@ def tearDown(self): rclpy.shutdown(context=self.context) def test_0_subscribers_created(self): + + nodes = self.node.get_node_names() + + # Rosbridge node discovered + self.assertIn("rosbridge", nodes) + subscriptions = self.node.get_subscriber_names_and_types_by_node("rosbridge", "/ui") # Rosbridge node initialized From 2a742d037b80f6ef3f6ad474c24700bce4dde272 Mon Sep 17 00:00:00 2001 From: Matthew Woodward Date: Tue, 25 Jan 2022 00:06:56 -0500 Subject: [PATCH 25/43] Increase test timeout --- ateam_ui/test/launch_tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ateam_ui/test/launch_tests/CMakeLists.txt b/ateam_ui/test/launch_tests/CMakeLists.txt index dfecc1f3..35905994 100644 --- a/ateam_ui/test/launch_tests/CMakeLists.txt +++ b/ateam_ui/test/launch_tests/CMakeLists.txt @@ -1,5 +1,5 @@ find_package(launch_testing_ament_cmake REQUIRED) add_launch_test(ateam_ui_test.py APPEND_ENV PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/test - TIMEOUT 10 + TIMEOUT 20 ) From 6f62998119198d52ab42e741e65b83c90c9d69ce Mon Sep 17 00:00:00 2001 From: Matthew Woodward Date: Tue, 25 Jan 2022 00:07:42 -0500 Subject: [PATCH 26/43] Increase setup time for UI Turns out if you test it again on a slow VM it can take longer to launch --- ateam_ui/test/launch_tests/ateam_ui_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ateam_ui/test/launch_tests/ateam_ui_test.py b/ateam_ui/test/launch_tests/ateam_ui_test.py index ead0ba0b..6de74d05 100644 --- a/ateam_ui/test/launch_tests/ateam_ui_test.py +++ b/ateam_ui/test/launch_tests/ateam_ui_test.py @@ -76,7 +76,7 @@ def setUp(self): # Need time for rosbridge node to set up # I want to use the ReadyToTest action but got some weird errors - time.sleep(1) + time.sleep(5) self.message_pump.start() From 64c8c4f2eccf96f2f497e48e8a6506c1b86f617b Mon Sep 17 00:00:00 2001 From: Matthew Woodward Date: Tue, 25 Jan 2022 00:38:24 -0500 Subject: [PATCH 27/43] Update readme now that cmake and dependencies are correct --- ateam_ui/README.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/ateam_ui/README.md b/ateam_ui/README.md index b8a6dec8..f7003c70 100644 --- a/ateam_ui/README.md +++ b/ateam_ui/README.md @@ -1,15 +1,8 @@ # Setting up dependencies The UI is currently designed to use [Vue](https://vuejs.org/) as a framework to develop the actual framework to lay everything out. Then, [Vite](https://vitejs.dev/) is used to compile everything into efficient contained code. Finally, everything is put into an executable using [nuetralino](https://neutralino.js.org/). -1. `cd` to the `ateam_ui/src` folder -2. run `npm i -g @neutralinojs/neu` (I would prefer to use yarn for this so hopefully they can fix their weird issue soon) -3. run `yarn` - -Everything should now be ready to be run normally +Running the usual `rosdep install` followed by `colcon build` should properly install all dependencies and build the UI. # Launch files -The `ateam_ui_launch.xml` file should launch both [rosbridge](https://github.com/RobotWebTools/rosbridge_suite) and the ui. -The `ateam_ui_debug_launch.xml` launches both rosbridge and runs the ui in development mode where it can be viewed in a web browser. - -# Notes for development -When running `colcon build` the `/src` directory is copied into the share folder of the package where everything can then be built using the launch files discussed above. Eventually I should probably change it so colcon build actually builds the javascript packages and the launch files just run them but this works well enough for now. +The `ateam_ui_launch.py` file launches both [rosbridge](https://github.com/RobotWebTools/rosbridge_suite) and the ui. +The `ateam_ui_debug_launch.py` launches rosbridge and runs the ui in development mode where it can be viewed in a web browser. From 77b2c9ecab81f564f86608fca8ca62bd643067ad Mon Sep 17 00:00:00 2001 From: chachmu Date: Tue, 25 Jan 2022 18:53:10 -0600 Subject: [PATCH 28/43] Fix cmake again? Also add --quiet and -host --- ateam_ui/CMakeLists.txt | 35 +++++++++++++++-------------- ateam_ui/CopySrc.cmake | 47 +++++++++++++++++++++++++++++++++++++++ ateam_ui/package.xml | 2 +- ateam_ui/src/package.json | 2 +- 4 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 ateam_ui/CopySrc.cmake diff --git a/ateam_ui/CMakeLists.txt b/ateam_ui/CMakeLists.txt index 818830f3..1232e43d 100644 --- a/ateam_ui/CMakeLists.txt +++ b/ateam_ui/CMakeLists.txt @@ -17,31 +17,30 @@ if(BUILD_TESTING) endif() -# Get recursive list of files in ./src -file(GLOB_RECURSE src_files - LIST_RECURSE true - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}/src/* +add_custom_command( + OUTPUT file_list PRE_BUILD + COMMAND bash -c "ls -R > ${CMAKE_BINARY_DIR}/file_list" + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/src + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src + VERBATIM ) -# Copy ./src to install directory -foreach(src_file ${src_files}) - configure_file( - ./src/${src_file} - ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/src/${src_file} - COPYONLY - ) -endforeach() - add_custom_target(build_js ALL + COMMAND ${CMAKE_COMMAND} + -DINSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DBINARY_DIR=${CMAKE_BINARY_DIR} + -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} + -DPROJECT_NAME=${PROJECT_NAME} + -P ${CMAKE_CURRENT_SOURCE_DIR}/CopySrc.cmake + # Install NodeJS if necessary - COMMAND bash -c "(npm list --depth 1 --global n > /dev/null 2>&1) || (sudo npm install -g n && sudo n stable)" + COMMAND bash -c "(npm list --quiet --depth 1 --global n > /dev/null 2>&1) || (sudo npm install -g n && sudo n stable)" # Install yarn if necessary - COMMAND bash -c "(npm list --depth 1 --global yarn > /dev/null 2>&1) || sudo npm install -g yarn" + COMMAND bash -c "(npm list --quiet --depth 1 --global yarn > /dev/null 2>&1) || sudo npm install -g yarn" # Install neutralino CLI if necessary - COMMAND bash -c "(npm list --depth 1 --global @neutralinojs/neu > /dev/null 2>&1) || sudo npm install -g @neutralinojs/neu" + COMMAND bash -c "(npm list --quiet --depth 1 --global @neutralinojs/neu > /dev/null 2>&1) || sudo npm install -g @neutralinojs/neu" # Install Yarn dependencies COMMAND bash -c "yarn install" @@ -52,8 +51,10 @@ add_custom_target(build_js ALL # Build the UI and fix permission issue if necessary COMMAND bash -c "(yarn vite build && neu build --release) && (test -x ./bin/neutralino-linux_x64 || (chmod +x ./dist/Ateam_UI/*))" + DEPENDS file_list WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/src VERBATIM ) + ament_package() diff --git a/ateam_ui/CopySrc.cmake b/ateam_ui/CopySrc.cmake new file mode 100644 index 00000000..85fda3cc --- /dev/null +++ b/ateam_ui/CopySrc.cmake @@ -0,0 +1,47 @@ +# Get recursive list of files in ./src +# Copyright 2021 A Team +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +file(GLOB_RECURSE src_files + LIST_RECURSE true + RELATIVE ${SOURCE_DIR}/src + ${SOURCE_DIR}/src/* +) + +# Add file_list to ./src files +list(APPEND src_files file_list) + +# Copy ./src to install directory +foreach(src_file ${src_files}) + if(${src_file} STREQUAL file_list) + configure_file( + ${BINARY_DIR}/file_list + ${INSTALL_PREFIX}/share/${PROJECT_NAME}/src/${src_file} + COPYONLY + ) + else() + configure_file( + ${SOURCE_DIR}/src/${src_file} + ${INSTALL_PREFIX}/share/${PROJECT_NAME}/src/${src_file} + COPYONLY + ) + endif() +endforeach() diff --git a/ateam_ui/package.xml b/ateam_ui/package.xml index c1c121e3..996f6441 100644 --- a/ateam_ui/package.xml +++ b/ateam_ui/package.xml @@ -5,7 +5,7 @@ 0.0.0 UI package for A-Team Matthew Woodward - TODO: License declaration + MIT ament_cmake diff --git a/ateam_ui/src/package.json b/ateam_ui/src/package.json index 20c7f048..600197d5 100644 --- a/ateam_ui/src/package.json +++ b/ateam_ui/src/package.json @@ -4,7 +4,7 @@ "description": "Robocup A-Team UI", "scripts": { "configure": "yarn install; (test -d ./bin || neu update)", - "dev": "vite", + "dev": "vite --host", "devrun": "(yarn configure || true) && vite build && neu run", "build": "(yarn configure || true) && (vite build && neu build --release) && (test -x ./bin/neutralino-linux_x64 || ((echo Fixing Permission Issue); (chmod +x ./dist/Ateam_UI/* && echo Success)))" }, From 83ff67c6040e3e5a193db0799e3f5ff8df86e70d Mon Sep 17 00:00:00 2001 From: chachmu Date: Tue, 1 Feb 2022 18:20:06 -0600 Subject: [PATCH 29/43] Slience excessive CMake output --- ateam_ui/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ateam_ui/CMakeLists.txt b/ateam_ui/CMakeLists.txt index 1232e43d..7fe67695 100644 --- a/ateam_ui/CMakeLists.txt +++ b/ateam_ui/CMakeLists.txt @@ -34,13 +34,13 @@ add_custom_target(build_js ALL -P ${CMAKE_CURRENT_SOURCE_DIR}/CopySrc.cmake # Install NodeJS if necessary - COMMAND bash -c "(npm list --quiet --depth 1 --global n > /dev/null 2>&1) || (sudo npm install -g n && sudo n stable)" + COMMAND bash -c "(npm list --depth 1 --global n > /dev/null 2>&1) || (sudo npm install -g n &> /dev/null && (sudo n stable &> /dev/null))" # Install yarn if necessary - COMMAND bash -c "(npm list --quiet --depth 1 --global yarn > /dev/null 2>&1) || sudo npm install -g yarn" + COMMAND bash -c "(npm list --depth 1 --global yarn > /dev/null 2>&1) || (sudo npm install -g yarn &> /dev/null)" # Install neutralino CLI if necessary - COMMAND bash -c "(npm list --quiet --depth 1 --global @neutralinojs/neu > /dev/null 2>&1) || sudo npm install -g @neutralinojs/neu" + COMMAND bash -c "(npm list --depth 1 --global @neutralinojs/neu > /dev/null 2>&1) || (sudo npm install -g @neutralinojs/neu &> /dev/null)" # Install Yarn dependencies COMMAND bash -c "yarn install" From 7332d916a401fb35fe89026acb4360304e8031ba Mon Sep 17 00:00:00 2001 From: chachmu Date: Thu, 3 Feb 2022 03:21:43 -0600 Subject: [PATCH 30/43] Fix issue with CopySrc copying IDE autosave files --- ateam_ui/CopySrc.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ateam_ui/CopySrc.cmake b/ateam_ui/CopySrc.cmake index 85fda3cc..1df01133 100644 --- a/ateam_ui/CopySrc.cmake +++ b/ateam_ui/CopySrc.cmake @@ -24,7 +24,10 @@ file(GLOB_RECURSE src_files LIST_RECURSE true RELATIVE ${SOURCE_DIR}/src ${SOURCE_DIR}/src/* -) + ) + +# Filter out autosave files (files starting with .# or #) +list(FILTER src_files EXCLUDE REGEX "(([.][#])|(#))[^\n]*") # Add file_list to ./src files list(APPEND src_files file_list) From 69441a27df2b48956cfe5ff3b01eab0ce020bbca Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 6 Feb 2022 17:16:50 -0600 Subject: [PATCH 31/43] Add overlays and prevent dragging robots/balls out of field --- ateam_msgs/CMakeLists.txt | 2 + ateam_msgs/msg/Mesh1d.msg | 2 + ateam_msgs/msg/Overlay.msg | 56 +++++ ateam_ui/CopySrc.cmake | 2 +- ateam_ui/src/src/App.vue | 6 +- .../src/src/components/FieldComponent.vue | 220 +++++++++++++++++- ateam_ui/src/src/main.js | 36 ++- ateam_ui/test/launch_tests/ateam_ui_test.py | 3 + 8 files changed, 313 insertions(+), 14 deletions(-) mode change 100644 => 100755 ateam_msgs/CMakeLists.txt create mode 100755 ateam_msgs/msg/Mesh1d.msg create mode 100755 ateam_msgs/msg/Overlay.msg mode change 100644 => 100755 ateam_ui/CopySrc.cmake mode change 100644 => 100755 ateam_ui/src/src/components/FieldComponent.vue mode change 100644 => 100755 ateam_ui/src/src/main.js mode change 100644 => 100755 ateam_ui/test/launch_tests/ateam_ui_test.py diff --git a/ateam_msgs/CMakeLists.txt b/ateam_msgs/CMakeLists.txt old mode 100644 new mode 100755 index 44b63009..05050f42 --- a/ateam_msgs/CMakeLists.txt +++ b/ateam_msgs/CMakeLists.txt @@ -11,6 +11,8 @@ rosidl_generate_interfaces(${PROJECT_NAME} msg/BallState.msg msg/RobotMotionCommand.msg msg/RobotState.msg + msg/Mesh1d.msg + msg/Overlay.msg DEPENDENCIES builtin_interfaces diff --git a/ateam_msgs/msg/Mesh1d.msg b/ateam_msgs/msg/Mesh1d.msg new file mode 100755 index 00000000..109cd670 --- /dev/null +++ b/ateam_msgs/msg/Mesh1d.msg @@ -0,0 +1,2 @@ +# Helper message for generating 2d array to be used with mesh overlays +float32[] mesh1d \ No newline at end of file diff --git a/ateam_msgs/msg/Overlay.msg b/ateam_msgs/msg/Overlay.msg new file mode 100755 index 00000000..0ae9e9bc --- /dev/null +++ b/ateam_msgs/msg/Overlay.msg @@ -0,0 +1,56 @@ +# All units in meters + +# Type of overlay +uint8 POINT=0 +uint8 LINE=1 +uint8 RECTANGLE=2 +uint8 ELLIPSE=3 +uint8 POLYGON=4 +uint8 TEXT=5 +uint8 MESH=6 +uint8 CUSTOM=7 + +# Type of Command +uint8 REPLACE=0 # Replaces overlay with matching name or creates it if none exist +uint8 EDIT=1 # Edits the overlay with matching name +uint8 REMOVE=2 # Removes the overlay with matching name + +# Namespace for the overlay, preferably sending node's name prepended with its namespace to help prevent collisions +string ns + +# All overlays are named so we can keep track of them +string name + +# Determines if the overlay is visible in the ui +bool visible + +# Specifies the type of overlay to use +uint8 type + +# Specifies the command to be used +uint8 command + +# Center position specified as (X, Y, rotation around center in degrees) +geometry_msgs/Point position + +# Scale specified as (Width, Height, _) +geometry_msgs/Point scale + +# Colors are specified using "#RRGGBBAA" hexadecimal RGBA format. The # is required +string stroke_color +string fill_color + +# Also used as font size when using the TEXT type +uint8 stroke_width 1 + +# lifetime of overlay in milliseconds, 0 for infinite +uint32 lifetime 0 + +# List of points for the LINE and POLYGON types (relative to the center position point) +geometry_msgs/Point[] points + +# when using the MESH type specify the boundaries of the mesh as a rectangle using the position and scale values +ateam_msgs/Mesh1d[] mesh + +# When using the TEXT type place the text here, when using the CUSTOM type put arbitrary javascript in this variable +string text \ No newline at end of file diff --git a/ateam_ui/CopySrc.cmake b/ateam_ui/CopySrc.cmake old mode 100644 new mode 100755 index 1df01133..adc64cd0 --- a/ateam_ui/CopySrc.cmake +++ b/ateam_ui/CopySrc.cmake @@ -24,7 +24,7 @@ file(GLOB_RECURSE src_files LIST_RECURSE true RELATIVE ${SOURCE_DIR}/src ${SOURCE_DIR}/src/* - ) +) # Filter out autosave files (files starting with .# or #) list(FILTER src_files EXCLUDE REGEX "(([.][#])|(#))[^\n]*") diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue index 0bd47e01..24af96df 100644 --- a/ateam_ui/src/src/App.vue +++ b/ateam_ui/src/src/App.vue @@ -45,7 +45,8 @@ export default { robots: [], } }, - overlays: [], + underlays: {}, + overlays: {}, fieldDimensions: { length: 9, width: 6, @@ -65,7 +66,8 @@ export default { }, renderConfig: { angle: 0, - scale: 300 // Pixels per meter + scale: 300, // Pixels per meter + factor: .4 // Field Scaling Factor } } }, diff --git a/ateam_ui/src/src/components/FieldComponent.vue b/ateam_ui/src/src/components/FieldComponent.vue old mode 100644 new mode 100755 index 90114d2e..6ccece8a --- a/ateam_ui/src/src/components/FieldComponent.vue +++ b/ateam_ui/src/src/components/FieldComponent.vue @@ -2,8 +2,8 @@ > @@ -93,6 +93,32 @@ + > + + + + + > > @@ -149,7 +176,23 @@ offsetY: -(100+(state.fieldDimensions.floorLength*renderConfig.scale))/2, listening: false }"> - > + + @@ -167,8 +210,21 @@ export default { game: null, field: null, movingBall: false, + dragBound: function(pos) { + var clamp = function (value, min, max) { + return Math.min(Math.max(value, min), max); + } + + var xlim = this.parent.canvas.width * this.attrs.renderConfig.factor; + var ylim = this.parent.canvas.height * this.attrs.renderConfig.factor; + + return { + x: clamp(pos.x, 0, xlim), + y: clamp(pos.y, 0, ylim) + } + }, robotShape: function(ctx) { - const scale = this.attrs.renderScale; //pixels per meter + const scale = this.attrs.renderConfig.scale; //pixels per meter const radius = .09; const sr = scale*radius; @@ -186,6 +242,156 @@ export default { ctx.font = "29px sans-serif"; ctx.fillText(this.attrs.r_id, -sr, -sr + 3); }, + overlayShape: function(ctx) { + const overlay = this.attrs.overlay; + const scale = this.attrs.renderConfig.scale; //pixels per meter + + switch(overlay.type) { + // POINT + case 0: + ctx.beginPath(); + ctx.lineWidth = 0; + ctx.ellipse(0, 0, scale/100, scale/100, 0, 0, 2*Math.PI); + ctx.closePath(); + ctx.fillStrokeShape(this); + break; + // LINE + case 1: + if (overlay.points.length >= 2) { + ctx.beginPath(); + ctx.moveTo(overlay.points[0].x, overlay.points[0].y); + ctx.lineTo(overlay.points[1].x, overlay.points[1].y); + ctx.stroke(); + } + break; + // RECTANGLE + case 2: + //TODO: Should this be switched to specifying the top left corner instead? + ctx.beginPath(); + ctx.rect(-overlay.scale.x/2, -overlay.scale.y/2, overlay.scale.x, overlay.scale.y); + ctx.closePath(); + ctx.fillStrokeShape(this); + break; + // ELLIPSE + case 3: + ctx.beginPath(); + ctx.ellipse(0, 0, overlay.scale.x, overlay.scale.y, 0, 0, 2*Math.PI); + ctx.closePath(); + ctx.fillStrokeShape(this); + break; + // POLYGON + case 4: + if (overlay.points.length >= 2){ + ctx.moveTo(overlay.points.at(-1).x, overlay.points.at(-1).y); + ctx.beginPath(); + overlay.points.forEach(function(point) { + ctx.lineTo(point.x, point.y); + }); + ctx.closePath(); + ctx.fillStrokeShape(this); + } + break; + // TEXT + case 5: + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.font = overlay.stroke_width + "sans-serif"; + ctx.fillText(overlay.text, 0, 0); + break; + // MESH + case 6: + //TODO: Should probably break things out into a set of util files + // Interpolation util object + var Interpolate = class{ + // top/bottom left/right values + constructor(mesh, r, c, xstart, ystart, xstep, ystep) { + this.tl = mesh[r][c]; + this.tr = mesh[r][c+1]; + this.bl = mesh[r+1][c]; + this.br = mesh[r+1][c+1]; + + this.xstart = xstart; + this.ystart = ystart; + + this.xstep = xstep; + this.ystep = ystep; + } + + getValue = function(x, y) { + // top/bottom x interpolation + var tx = (this.tl*(this.xstart + this.xstep - x) + this.tr*(x - this.xstart))/this.xstep; + var bx = (this.bl*(this.xstart + this.xstep - x) + this.br*(x - this.xstart))/this.xstep; + + // interpolate along the y axis + return (tx*(this.ystart + this.ystep - y) + bx*(y - this.ystart))/this.ystep; + + }; + }; + + // The mesh generation code works directly with canvas pixels + // so it ignores konva scaling so we need to manually handle pixel scaling + const pixelScale = this.attrs.renderConfig.scale * + this.attrs.renderConfig.factor; + + const width = overlay.scale.x * pixelScale; + const height = overlay.scale.y * pixelScale; + + const xstep = width / (overlay.mesh[0].length-1); + const ystep = height / (overlay.mesh.length-1); + + var pixels = ctx.createImageData(width, height); + const heatcolors = [[0,0,255],[0,255,0],[255,255,0],[255,0,0]]; + for (var r = 0; r < overlay.mesh.length - 1; r++) { + for (var c = 0; c < overlay.mesh[0].length - 1; c++) { + var xstart = xstep * c; + var ystart = ystep * r; + + var interp = new Interpolate(overlay.mesh, r, c, xstart, ystart, xstep, ystep); + var interpAlpha = new Interpolate(overlay.mesh_alpha, r, c, xstart, ystart, xstep, ystep); + + for (var y = ystart; y < ystart + ystep; y++) { + for (var x = xstart; x < xstart + xstep; x++) { + + var value = interp.getValue(x, y); + + // calculate heatmap color + var v = value*(heatcolors.length - 1); + var id1 = Math.floor(v); + var id2 = id1 + 1; + var frac = v - id1; + + if (value <= 0) id1 = id2 = 0; + else if (value >= 1) id1 = id2 = heatcolors.length - 1; + + // pixels.data is a 1d array of r,g,b,a values + var idx = 4*((y*width) + x); + for (var i = 0; i < 3; i++) { + pixels.data[idx+i] = (heatcolors[id2][i] - heatcolors[id1][i]) * frac + heatcolors[id1][i]; + } + + if (overlay.mesh_alpha) { + pixels.data[idx+3] = 255*interpAlpha.getValue(x, y); + } else { + pixels.data[idx+3] = 255; + } + } + } + } + } + + // Offset the location to the center of the field, then center the image, then set its position + var imageX = ((ctx.canvas.width/2) + ((overlay.position.x - overlay.scale.x/2)*scale))*this.attrs.renderConfig.factor; + var imageY = ((ctx.canvas.height/2) + ((overlay.position.y - overlay.scale.y/2)*scale))*this.attrs.renderConfig.factor; + ctx.putImageData(pixels, imageX, imageY); + + break; + // CUSTOM + case 7: + //TODO: Figure out how to get ctx into the function + Function(overlay.text)(); + break; + } + } } }, mounted() { diff --git a/ateam_ui/src/src/main.js b/ateam_ui/src/src/main.js old mode 100644 new mode 100755 index 0aa9baf3..c8d0af48 --- a/ateam_ui/src/src/main.js +++ b/ateam_ui/src/src/main.js @@ -63,7 +63,8 @@ for (var team in vm.state.teams) { } // Configure Default Overlays -vm.state.overlays = []; +vm.state.underlays = {}; +vm.state.overlays = {}; // Configure ROS @@ -101,12 +102,10 @@ ballTopic.subscribe(function(msg) { // Set up robot subscribers and publishers function getRobotCallback(team, id){ return function(msg) { - console.log(team + '/robot' + id) - console.log(msg) var robot = vm.state.teams[team].robots[id]; robot.pose = msg.pose; - // Check if ROS quaternions are going to exceed -1:1 + //TODO: Check if our ROS quaternions can exceed -1:1 robot.rotation = 2*Math.acos(robot.pose.orientation.z); }; }; @@ -125,4 +124,33 @@ for (var team in vm.state.teams) { } } +// Set up overlay subscriber +var overlayTopic = new ROSLIB.Topic({ + ros: ros, + name: '/overlay', + messageType: 'ateam_msgs/msg/Overlay' +}); + +overlayTopic.subscribe(function(msg) { + var id = msg.ns+"/"+msg.name; + var location = (msg.depth==0) ? vm.state.underlays : vm.state.overlays; + + switch(msg.command) { + // REPLACE + case 0: + location[id] = msg; + break; + // EDIT + case 1: + //TODO: Not sure if this command is necessary, will implement later if it is + // Might need to handle moving overlay between z-depths + location[id] = msg; + break; + // REMOVE + case 2: + delete vm.state.overlays[id]; + break; + } +}); + //TODO: add all other pub/subs (field dimensions, referee, etc) diff --git a/ateam_ui/test/launch_tests/ateam_ui_test.py b/ateam_ui/test/launch_tests/ateam_ui_test.py old mode 100644 new mode 100755 index 6de74d05..f03c7fb0 --- a/ateam_ui/test/launch_tests/ateam_ui_test.py +++ b/ateam_ui/test/launch_tests/ateam_ui_test.py @@ -105,3 +105,6 @@ def test_0_subscribers_created(self): for id in range(0, 16): topic = (f"/{team}/robot{id}", ['ateam_msgs/msg/RobotState']) self.assertIn(topic, subscriptions) + + # Check subscription to /overlay + self.assertIn(("/overlay", ['ateam_msgs/msg/Overlay']), subscriptions) From 509c66b9a513c4f355df89ba81e352c45495501b Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 6 Feb 2022 19:46:14 -0500 Subject: [PATCH 32/43] Add keys to v-fors --- ateam_ui/src/src/App.vue | 2 +- ateam_ui/src/src/components/FieldComponent.vue | 5 ++++- ateam_ui/src/src/plugins/vuetify.js | 13 ++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ateam_ui/src/src/App.vue b/ateam_ui/src/src/App.vue index 24af96df..2a3c8c4a 100644 --- a/ateam_ui/src/src/App.vue +++ b/ateam_ui/src/src/App.vue @@ -1,6 +1,6 @@