liuwei 4 роки тому
батько
коміт
3a4e9f21fc

+ 278 - 134
.idea/workspace.xml

@@ -2,14 +2,17 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="690c02a3-0e7d-4c4a-8f0c-a44c44c3a162" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/src/renderer/assets/less/common.less" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.electron-vue/webpack.renderer.config.js" beforeDir="false" afterPath="$PROJECT_DIR$/.electron-vue/webpack.renderer.config.js" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/addPrePlan.vue" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/addSignal.vue" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/loadPrePlan.vue" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/playertest.vue" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/running.vue" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/renderer/components/modal/settingBackground.vue" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/renderer/assets/less/admin.less" beforeDir="false" afterPath="$PROJECT_DIR$/src/renderer/assets/less/admin.less" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/renderer/assets/less/login.less" beforeDir="false" afterPath="$PROJECT_DIR$/src/renderer/assets/less/login.less" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/renderer/components/Admin.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/renderer/components/Admin.vue" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/renderer/components/Login.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/renderer/components/Login.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/renderer/store/mutation-types.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/renderer/store/mutation-types.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/yarn.lock" beforeDir="false" afterPath="$PROJECT_DIR$/yarn.lock" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/dist/" />
     <ignored path="$PROJECT_DIR$/.tmp/" />
@@ -26,52 +29,60 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/renderer/components/Admin.vue">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="466">
-              <caret line="31" column="41" selection-start-line="31" selection-start-column="41" selection-end-line="31" selection-end-column="41" />
+            <state relative-caret-position="265">
+              <caret line="183" column="44" lean-forward="true" selection-start-line="183" selection-start-column="44" selection-end-line="183" selection-end-column="44" />
               <folding>
+                <element signature="n#div#0;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#0;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#draggable#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#draggable#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#1;n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+                <element signature="n#div#0;n#div#0;n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
                 <element signature="n#div#2;n#div#1;n#div#0;n#template#0;n#!!top" />
                 <element signature="n#div#2;n#div#0;n#template#0;n#!!top" />
-                <element signature="e#5025#5059#0" expanded="true" />
+                <element signature="e#4362#4396#0" expanded="true" />
+                <element signature="e#5046#5158#0" />
+                <element signature="e#5214#5486#0" />
+                <element signature="e#5535#5587#0" />
+                <element signature="e#5651#5751#0" />
+                <element signature="e#5802#5861#0" />
+                <element signature="e#5986#6251#0" />
+                <element signature="e#6049#6191#0" />
+                <element signature="e#6319#6414#0" />
+                <element signature="e#6479#6509#0" />
+                <element signature="e#6522#6647#0" />
+                <element signature="e#6662#6695#0" />
+                <element signature="e#6712#6767#0" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/renderer/assets/less/admin.less">
+        <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/playertest.vue">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="475">
-              <caret line="118" column="9" lean-forward="true" selection-start-line="118" selection-start-column="9" selection-end-line="118" selection-end-column="9" />
-              <folding>
-                <element signature="e#168#206#0" />
-                <element signature="e#321#580#0" />
-                <element signature="e#487#574#0" />
-                <element signature="e#744#1149#0" />
-                <element signature="e#957#993#0" />
-                <element signature="e#1049#1141#0" />
-                <element signature="e#1307#1727#0" />
-                <element signature="e#1577#1717#0" />
-                <element signature="e#2117#2608#0" />
-                <element signature="e#2244#2448#0" />
-                <element signature="e#2491#2598#0" />
-                <element signature="e#2655#4242#0" />
-                <element signature="e#2855#2915#0" />
-                <element signature="e#2953#4233#0" />
-                <element signature="e#3043#4222#0" />
-                <element signature="e#3242#4210#0" />
-                <element signature="e#3424#3501#0" />
-                <element signature="e#3559#4196#0" />
-                <element signature="e#3744#3900#0" />
-                <element signature="e#3966#4180#0" />
-                <element signature="e#4279#4362#0" />
-                <element signature="e#4393#4431#0" />
-              </folding>
+            <state relative-caret-position="126">
+              <caret line="6" column="18" lean-forward="true" selection-start-line="6" selection-start-column="18" selection-end-line="6" selection-end-column="18" />
             </state>
           </provider>
         </entry>
       </file>
     </leaf>
   </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Vue Single File Component" />
+      </list>
+    </option>
+  </component>
   <component name="FindInProjectRecents">
     <findStrings>
       <find>className</find>
@@ -93,16 +104,11 @@
         <option value="$PROJECT_DIR$/src/renderer/router/index.js" />
         <option value="$PROJECT_DIR$/src/renderer/utils/storageUtils.js" />
         <option value="$PROJECT_DIR$/src/renderer/store/getters.js" />
-        <option value="$PROJECT_DIR$/src/renderer/store/mutation-types.js" />
-        <option value="$PROJECT_DIR$/src/renderer/store/actions.js" />
         <option value="$PROJECT_DIR$/src/utils/storageUtils.js" />
-        <option value="$PROJECT_DIR$/src/renderer/store/mutations.js" />
         <option value="$PROJECT_DIR$/.gitignore" />
-        <option value="$PROJECT_DIR$/src/renderer/store/state.js" />
         <option value="$PROJECT_DIR$/src/renderer/index.css" />
         <option value="$PROJECT_DIR$/src/index.ejs" />
         <option value="$PROJECT_DIR$/src/renderer/App.vue" />
-        <option value="$PROJECT_DIR$/package.json" />
         <option value="$PROJECT_DIR$/src/renderer/main.js" />
         <option value="$PROJECT_DIR$/static/data/EnityLogin.Data" />
         <option value="$PROJECT_DIR$/static/data/EnityBigScreen.Data" />
@@ -124,16 +130,27 @@
         <option value="$PROJECT_DIR$/.electron-vue/webpack.renderer.config.js" />
         <option value="$PROJECT_DIR$/src/renderer/assets/less/common.less" />
         <option value="$PROJECT_DIR$/src/renderer/assets/less/login.less" />
-        <option value="$PROJECT_DIR$/src/renderer/components/Admin.vue" />
         <option value="$PROJECT_DIR$/src/renderer/assets/less/admin.less" />
+        <option value="$PROJECT_DIR$/src/renderer/store/mutation-types.js" />
+        <option value="$PROJECT_DIR$/src/renderer/store/mutations.js" />
+        <option value="$PROJECT_DIR$/src/renderer/store/state.js" />
+        <option value="$PROJECT_DIR$/src/renderer/store/actions.js" />
+        <option value="$PROJECT_DIR$/package.json" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/addSignal.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/settingBackground.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/addPrePlan.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/loadPrePlan.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/running.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/Admin.vue" />
+        <option value="$PROJECT_DIR$/src/renderer/components/modal/playertest.vue" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="511" />
-    <option name="y" value="113" />
-    <option name="width" value="1100" />
-    <option name="height" value="444" />
+    <option name="x" value="-420" />
+    <option name="y" value="19" />
+    <option name="width" value="1366" />
+    <option name="height" value="600" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true">
     <ConfirmationsSetting value="2" id="Add" />
@@ -168,6 +185,14 @@
               <item name="renderer" type="462c0819:PsiDirectoryNode" />
               <item name="components" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="electron-app" type="b2602c69:ProjectViewProjectNode" />
+              <item name="electron-app" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="renderer" type="462c0819:PsiDirectoryNode" />
+              <item name="components" type="462c0819:PsiDirectoryNode" />
+              <item name="modal" type="462c0819:PsiDirectoryNode" />
+            </path>
           </expand>
           <select />
         </subPane>
@@ -178,22 +203,22 @@
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/src/renderer/assets/less" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/src/renderer/components/modal" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="nodejs_package_manager_path" value="npm" />
     <property name="prettierjs.PrettierConfiguration.Package" value="C:\Users\liuwei\Desktop\桌面程序\electron-app\node_modules\prettier" />
   </component>
   <component name="RecentsManager">
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="C:\Users\liuwei\Desktop\electron\electron-app\src\renderer\assets" />
-      <recent name="C:\Users\liuwei\Desktop\桌面程序\electron-app\src\renderer\assets\images" />
-    </key>
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="C:\Users\liuwei\Desktop\electron\electron-app\src\renderer\components\modal" />
       <recent name="C:\Users\liuwei\Desktop\electron\electron-app\src\renderer\assets\less" />
       <recent name="C:\Users\liuwei\Desktop\electron\electron-app\static" />
       <recent name="C:\Users\liuwei\Desktop\桌面程序\electron-app\src" />
       <recent name="C:\Users\liuwei\Desktop\桌面程序\electron-app\src\renderer\store" />
+    </key>
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="C:\Users\liuwei\Desktop\electron\electron-app\src\renderer\assets" />
       <recent name="C:\Users\liuwei\Desktop\桌面程序\electron-app\src\renderer\assets\images" />
     </key>
   </component>
@@ -241,12 +266,12 @@
       <workItem from="1586416524416" duration="5534000" />
       <workItem from="1586440108672" duration="10000" />
       <workItem from="1586508878917" duration="1871000" />
-      <workItem from="1586591517387" duration="1534000" />
+      <workItem from="1586591517387" duration="18497000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="103762000" />
+    <option name="totallyTimeSpent" value="120725000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -275,7 +300,7 @@
       <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
       <window_info anchor="bottom" id="Version Control" order="8" />
       <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" weight="0.32910052" />
-      <window_info anchor="bottom" id="Terminal" order="10" weight="0.45185184" />
+      <window_info anchor="bottom" id="Terminal" order="10" weight="0.5164021" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -285,46 +310,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/dist/electron/index.html" />
-    <entry file="file://$PROJECT_DIR$/dist/electron/main.js" />
-    <entry file="file://$PROJECT_DIR$/dist/electron/renderer.js" />
-    <entry file="file://$PROJECT_DIR$/yarn-error.log" />
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="189">
-          <caret line="9" column="9" lean-forward="true" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/node_modules/devtron/vendor/bootstrap/css/bootstrap.css">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1251">
-          <caret line="1596" column="3" selection-start-line="1596" selection-start-column="3" selection-end-line="1596" selection-end-column="3" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/renderer/index.css" />
-    <entry file="file://$PROJECT_DIR$/src/renderer/store/state.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="8" column="23" lean-forward="true" selection-start-line="8" selection-start-column="23" selection-end-line="8" selection-end-column="23" />
-          <folding>
-            <element signature="n#!!doc" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/node_modules/_vuedraggable@2.23.2@vuedraggable/dist/vuedraggable.common.js">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/node_modules/element-ui/packages/color-picker/src/draggable.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="21">
-          <caret line="1" column="4" selection-start-line="1" selection-start-column="4" selection-end-line="1" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/static/data/深圳展厅.prj" />
     <entry file="file://$PROJECT_DIR$/.electron-vue/build.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-1940">
@@ -496,38 +481,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/renderer/components/Login.vue">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="147">
-          <caret line="7" column="33" selection-start-line="7" selection-start-column="33" selection-end-line="7" selection-end-column="33" />
-          <folding>
-            <element signature="e#1178#1299#0" />
-            <element signature="e#1208#1285#0" />
-            <element signature="e#1364#1482#0" />
-            <element signature="e#1400#1468#0" />
-            <element signature="e#1502#1927#0" />
-            <element signature="e#1530#1617#0" />
-            <element signature="e#1642#1913#0" />
-            <element signature="e#1674#1767#0" />
-            <element signature="e#1799#1895#0" />
-            <element signature="e#1957#2718#0" />
-            <element signature="e#1984#2607#0" />
-            <element signature="e#2098#2200#0" />
-            <element signature="e#2263#2516#0" />
-            <element signature="e#2521#2593#0" />
-            <element signature="e#2642#2708#0" />
-            <element signature="n#style#0;n#!!top" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/package.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="181">
-          <caret line="46" column="36" selection-start-line="46" selection-start-column="36" selection-end-line="46" selection-end-column="36" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/renderer/assets/less/login.less">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="231">
@@ -3456,24 +3409,37 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/renderer/components/Admin.vue">
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/Login.vue">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="466">
-          <caret line="31" column="41" selection-start-line="31" selection-start-column="41" selection-end-line="31" selection-end-column="41" />
+        <state relative-caret-position="441">
+          <caret line="21" column="18" lean-forward="true" selection-start-line="21" selection-start-column="18" selection-end-line="21" selection-end-column="18" />
           <folding>
-            <element signature="n#div#2;n#div#1;n#div#0;n#template#0;n#!!top" />
-            <element signature="n#div#2;n#div#0;n#template#0;n#!!top" />
-            <element signature="e#5025#5059#0" expanded="true" />
+            <element signature="e#1178#1299#0" />
+            <element signature="e#1208#1285#0" />
+            <element signature="e#1364#1482#0" />
+            <element signature="e#1400#1468#0" />
+            <element signature="e#1502#1927#0" />
+            <element signature="e#1530#1617#0" />
+            <element signature="e#1642#1913#0" />
+            <element signature="e#1674#1767#0" />
+            <element signature="e#1799#1895#0" />
+            <element signature="e#1957#2718#0" />
+            <element signature="e#1984#2607#0" />
+            <element signature="e#2098#2200#0" />
+            <element signature="e#2263#2516#0" />
+            <element signature="e#2521#2593#0" />
+            <element signature="e#2642#2708#0" />
+            <element signature="n#style#0;n#!!top" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/renderer/assets/less/admin.less">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="475">
-          <caret line="118" column="9" lean-forward="true" selection-start-line="118" selection-start-column="9" selection-end-line="118" selection-end-column="9" />
+        <state relative-caret-position="21">
+          <caret line="228" column="1" lean-forward="true" selection-start-line="228" selection-start-column="1" selection-end-line="228" selection-end-column="1" />
           <folding>
-            <element signature="e#168#206#0" />
+            <element signature="e#23#4433#0" />
             <element signature="e#321#580#0" />
             <element signature="e#487#574#0" />
             <element signature="e#744#1149#0" />
@@ -3481,6 +3447,10 @@
             <element signature="e#1049#1141#0" />
             <element signature="e#1307#1727#0" />
             <element signature="e#1577#1717#0" />
+            <element signature="e#1771#1902#0" />
+            <element signature="e#1947#2076#0" />
+            <element signature="e#2129#2258#0" />
+            <element signature="e#2313#2452#0" />
             <element signature="e#2117#2608#0" />
             <element signature="e#2244#2448#0" />
             <element signature="e#2491#2598#0" />
@@ -3499,5 +3469,179 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/addSignal.js">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/mutation-types.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="63">
+          <caret line="3" column="64" lean-forward="true" selection-start-line="3" selection-start-column="64" selection-end-line="3" selection-end-column="64" />
+          <folding>
+            <element signature="n#!!doc" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/package.json">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="672">
+          <caret line="75" column="26" lean-forward="true" selection-start-line="75" selection-start-column="26" selection-end-line="75" selection-end-column="26" />
+          <folding>
+            <element signature="n#!!block;n#scripts#0;n#!!top" />
+            <element signature="n#!!block;n#build#0;n#!!top" />
+            <element signature="n#!!block;n#directories#0;n#!!block;n#build#0;n#!!top" />
+            <element signature="e#1066#1100#0" />
+            <element signature="n#!!block;n#dmg#0;n#!!block;n#build#0;n#!!top" />
+            <element signature="e#1133#1348#0" />
+            <element signature="e#1143#1254#0" />
+            <element signature="e#1264#1340#0" />
+            <element signature="n#!!block;n#mac#0;n#!!block;n#build#0;n#!!top" />
+            <element signature="n#!!block;n#win#0;n#!!block;n#build#0;n#!!top" />
+            <element signature="n#!!block;n#linux#0;n#!!block;n#build#0;n#!!top" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/actions.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="21">
+          <caret line="1" column="28" selection-start-line="1" selection-start-column="28" selection-end-line="1" selection-end-column="28" />
+          <folding>
+            <element signature="n#!!doc" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/mutations.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="84">
+          <caret line="4" lean-forward="true" selection-start-line="4" selection-end-line="4" />
+          <folding>
+            <element signature="n#!!doc" expanded="true" />
+            <element signature="e#25#78#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/state.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="105">
+          <caret line="10" column="1" lean-forward="true" selection-start-line="10" selection-start-column="1" selection-end-line="10" selection-end-column="1" />
+          <folding>
+            <element signature="n#!!doc" expanded="true" />
+            <element signature="e#73#177#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/settingBackground.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="168">
+          <caret line="23" column="20" lean-forward="true" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/loadPrePlan.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state>
+          <caret column="9" lean-forward="true" selection-start-column="9" selection-end-column="9" />
+          <folding>
+            <element signature="n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#0;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-select#0;n#el-form-item#0;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#script#0;n#!!top" />
+            <element signature="e#1027#1686#0" />
+            <element signature="e#1044#1325#0" />
+            <element signature="e#709#880#0" />
+            <element signature="e#788#840#0" />
+            <element signature="e#1345#1474#0" />
+            <element signature="e#1403#1463#0" />
+            <element signature="n#style#0;n#!!top" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/addPrePlan.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="168">
+          <caret line="8" column="51" selection-start-line="8" selection-start-column="47" selection-end-line="8" selection-end-column="51" />
+          <folding>
+            <element signature="n#style#0;n#!!top" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/addSignal.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="483">
+          <caret line="41" column="27" lean-forward="true" selection-start-line="39" selection-start-column="12" selection-end-line="41" selection-end-column="27" />
+          <folding>
+            <element signature="n#el-select#0;n#el-form-item#0;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#2;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-select#0;n#el-form-item#2;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#3;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#4;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#5;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-checkbox#0;n#el-form-item#5;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#6;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-select#0;n#el-form-item#6;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+            <element signature="n#el-form-item#8;n#el-form#0;n#el-dialog#0;n#template#0;n#!!top" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/running.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="20" column="11" lean-forward="true" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/Admin.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="265">
+          <caret line="183" column="44" lean-forward="true" selection-start-line="183" selection-start-column="44" selection-end-line="183" selection-end-column="44" />
+          <folding>
+            <element signature="n#div#0;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#0;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#draggable#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#draggable#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#1;n#div#0;n#div#1;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#0;n#div#0;n#div#0;n#draggable#0;n#div#2;n#div#1;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#2;n#div#1;n#div#0;n#template#0;n#!!top" />
+            <element signature="n#div#2;n#div#0;n#template#0;n#!!top" />
+            <element signature="e#4362#4396#0" expanded="true" />
+            <element signature="e#5046#5158#0" />
+            <element signature="e#5214#5486#0" />
+            <element signature="e#5535#5587#0" />
+            <element signature="e#5651#5751#0" />
+            <element signature="e#5802#5861#0" />
+            <element signature="e#5986#6251#0" />
+            <element signature="e#6049#6191#0" />
+            <element signature="e#6319#6414#0" />
+            <element signature="e#6479#6509#0" />
+            <element signature="e#6522#6647#0" />
+            <element signature="e#6662#6695#0" />
+            <element signature="e#6712#6767#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/modal/playertest.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="6" column="18" lean-forward="true" selection-start-line="6" selection-start-column="18" selection-end-line="6" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 3 - 1
package.json

@@ -56,8 +56,10 @@
     "vue": "^2.5.16",
     "vue-electron": "^1.0.6",
     "vue-router": "^3.0.1",
+    "vuedraggable": "^2.23.2",
     "vuex": "^3.0.1",
-    "vuex-electron": "^1.0.0"
+    "vuex-electron": "^1.0.0",
+    "pubsub-js": "^1.7.0"
   },
   "devDependencies": {
     "ajv": "^6.5.0",

+ 56 - 7
src/renderer/components/Admin.vue

@@ -15,12 +15,12 @@
             <div class="screenmanage">
                 <div class="pre_planmanage">
                     <h2>预案管理</h2>
-                    <el-button type="primary" size="small">添加信号源</el-button>
-                    <el-button type="primary" size="small">设置背景</el-button>
-                    <el-button type="primary" size="small">新建预案</el-button>
-                    <el-button type="primary" size="small">加载预案</el-button>
-                    <el-button type="primary" size="small">跑马灯</el-button>
-                    <el-button type="primary" size="small">播放器测试</el-button>
+                    <el-button type="primary" size="small" @click="addSignal">添加信号源</el-button>
+                    <el-button type="primary" size="small" @click="settingBackground">设置背景</el-button>
+                    <el-button type="primary" size="small" @click="addPrePlan">新建预案</el-button>
+                    <el-button type="primary" size="small" @click="loadPrePlan">加载预案</el-button>
+                    <el-button type="primary" size="small" @click="running">跑马灯</el-button>
+                    <el-button type="primary" size="small" @click="playertest">播放器测试</el-button>
                     <el-button type="primary" size="small">send</el-button>
                     <el-button type="primary" size="small">dummy</el-button>
                     <el-button type="primary" size="small">clear device</el-button>
@@ -88,6 +88,12 @@
         <div class="rightblank">
 
         </div>
+        <addSignalModal />
+        <settingBackground />
+        <addPrePlan />
+        <loadPrePlan />
+        <running />
+        <playertest />
     </div>
 </template>
 
@@ -96,10 +102,23 @@
     import storageUtils from "../../utils/storageUtils"
     import {mapState} from 'vuex'
     import draggable from 'vuedraggable'
+    import addSignalModal from './modal/addSignal'
+    import settingBackground from './modal/settingBackground'
+    import addPrePlan from './modal/addPrePlan'
+    import loadPrePlan from './modal/loadPrePlan'
+    import running from './modal/running'
+    import playertest from './modal/playertest'
+    import PubSub from 'pubsub-js'
 
     export default {
         components: {
-            draggable
+            draggable,
+            addSignalModal,
+            settingBackground,
+            addPrePlan,
+            loadPrePlan,
+            running,
+            playertest
         },
         data() {
             return {
@@ -133,6 +152,36 @@
             spiltScreenOperation(status) {
                 this.splitScreenStatus = status
                 this.signalList = []
+            },
+
+            // 打开信号源对话框
+            addSignal() {
+                PubSub.publish('addSignal')
+            },
+
+            // 设置背景
+            settingBackground() {
+                PubSub.publish('settingBackground')
+            },
+
+            // 新建预案
+            addPrePlan() {
+                PubSub.publish('addPrePlan')
+            },
+
+            // 加载预案
+            loadPrePlan() {
+                PubSub.publish('loadPrePlan')
+            },
+
+            // 跑马灯
+            running() {
+                PubSub.publish('running')
+            },
+
+            // 播放器测试
+            playertest() {
+                PubSub.publish('playertest')
             }
         },
         computed: {

+ 53 - 0
src/renderer/components/modal/addPrePlan.vue

@@ -0,0 +1,53 @@
+<template>
+    <el-dialog title="新建预案设置" :visible.sync="openPrePlanModal" width="700px">
+        <el-form :model="form">
+            <el-form-item label="预案名称" :label-width="formLabelWidth">
+                <el-input v-model="form.name" autocomplete="off"></el-input>
+            </el-form-item>
+
+            <el-form-item label="拼接屏数量" :label-width="formLabelWidth">
+                <el-input-number v-model="form.num1" controls-position="right" @change="handleChange" :min="1" :max="9"></el-input-number>&ensp;X&ensp;
+                <el-input-number v-model="form.num2" controls-position="right" @change="handleChange2" :min="1" :max="9"></el-input-number>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="openPrePlanModal = false">取 消</el-button>
+            <el-button type="primary" @click="openPrePlanModal = false">确 定</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                openPrePlanModal:false,
+                form: {
+                    name: '', // 预案名称
+                    num1:0,// 拼接屏数量1
+                    num2:0,// 拼接屏数量2
+                },
+                formLabelWidth: '120px'
+            }
+        },
+        mounted() {
+            PubSub.subscribe('addPrePlan',(msg,data) => {
+                this.openPrePlanModal = true
+            })
+        },
+        methods: {
+            handleChange(value) {
+                this.form.num1 = value
+            },
+            handleChange2(value) {
+                this.form.num2 = value
+            }
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 87 - 0
src/renderer/components/modal/addSignal.vue

@@ -0,0 +1,87 @@
+<template>
+    <el-dialog title="信号源配置" :visible.sync="openSignalModal" width="700px">
+        <el-form :model="form">
+            <el-form-item label="IPC转发服务器" :label-width="formLabelWidth">
+                <el-select placeholder="请选择IPC转发服务器" v-model="form.ipc" value="">
+                </el-select>
+            </el-form-item>
+
+            <el-form-item label="信号源名称" :label-width="formLabelWidth">
+                <el-input v-model="form.name" autocomplete="off"></el-input>
+            </el-form-item>
+
+            <el-form-item label="信号源类型" :label-width="formLabelWidth">
+                <el-select placeholder="请选择信号源类型"  value="" v-model="form.type">
+                    <el-option label="IPC" value=""></el-option>
+                </el-select>
+            </el-form-item>
+
+            <el-form-item label="信号源URL" :label-width="formLabelWidth">
+                <el-input v-model="form.url" autocomplete="off"></el-input>
+            </el-form-item>
+
+            <el-form-item label="信号源预览URL" :label-width="formLabelWidth">
+                <el-input v-model="form.preurl" autocomplete="off"></el-input>
+            </el-form-item>
+
+            <el-form-item label="使用信号源预览" :label-width="formLabelWidth">
+                <el-checkbox v-model="form.checked">
+
+                </el-checkbox>
+            </el-form-item>
+
+            <el-form-item label="分辨率" :label-width="formLabelWidth">
+                <el-select placeholder="请选择分辨率" value="" v-model="form.ratio">
+                    <el-option label="720P" value=""></el-option>
+                    <el-option label="1080P" value=""></el-option>
+                </el-select>
+            </el-form-item>
+
+            <el-form-item label="用户名" :label-width="formLabelWidth">
+                <el-input v-model="form.username" autocomplete="off"></el-input>
+            </el-form-item>
+
+            <el-form-item label="密码" :label-width="formLabelWidth">
+                <el-input v-model="form.password" autocomplete="off"></el-input>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="openSignalModal = false">取 消</el-button>
+            <el-button type="primary" @click="openSignalModal = false">确 定</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                openSignalModal:false,
+                form: {
+                    name: '', // 信号源名称
+                    url:'',// 信号源url
+                    preurl:'',// 信号源预览url
+                    username:'',// 用户名
+                    password:'',// 密码
+                    ipc:'',
+                    type:'',
+                    checked:false,
+                    ratio:'',// 分辨率
+
+                },
+                formLabelWidth: '120px'
+            }
+        },
+        mounted() {
+            PubSub.subscribe('addSignal',(msg,data) => {
+                this.openSignalModal = true
+            })
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 40 - 0
src/renderer/components/modal/loadPrePlan.vue

@@ -0,0 +1,40 @@
+<template>
+    <el-dialog title="加载预案" :visible.sync="loadPrePlanModal" width="700px">
+        <el-form :model="form">
+            <el-form-item label="选择需要加载的预案" :label-width="formLabelWidth">
+                <el-select v-model="form.preplanId" placeholder="请选择" value="">
+
+                </el-select>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="loadPrePlanModal = false">取 消</el-button>
+            <el-button type="primary" @click="loadPrePlanModal = false">确 定</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                loadPrePlanModal:false,
+                form: {
+                    preplanId:''
+                },
+                formLabelWidth: '150px'
+            }
+        },
+        mounted() {
+            PubSub.subscribe('loadPrePlan',(msg,data) => {
+                this.loadPrePlanModal = true
+            })
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 38 - 0
src/renderer/components/modal/playertest.vue

@@ -0,0 +1,38 @@
+<template>
+    <el-dialog title="播放器测试" :visible.sync="playertestModal" width="700px">
+        <el-form :model="form">
+            <el-form-item label="URL" :label-width="formLabelWidth">
+                <el-input v-model="form.url" placeholder="请输入url"></el-input>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="playertestModal = false">取 消</el-button>
+            <el-button type="primary" @click="playertestModal = false">确 定</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                playertestModal:false,
+                form: {
+                    url:''
+                },
+                formLabelWidth: '40px'
+            }
+        },
+        mounted() {
+            PubSub.subscribe('playertest',(msg,data) => {
+                this.playertestModal = true
+            })
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 56 - 0
src/renderer/components/modal/running.vue

@@ -0,0 +1,56 @@
+<template>
+    <el-dialog title="设置文字" :visible.sync="runningModal" width="700px">
+        <el-form :model="form">
+            <el-form-item label="输入文字" :label-width="formLabelWidth">
+                <el-input v-model="form.fontcontent" placeholder="请输入文字"></el-input>
+            </el-form-item>
+
+            <el-form-item label="文字字号" :label-width="formLabelWidth">
+                <el-input-number v-model="form.fontsize" controls-position="right" @change="handleChange" :min="12" :max="30"></el-input-number>
+            </el-form-item>
+
+            <el-form-item label="移动速度" :label-width="formLabelWidth">
+                <el-input-number v-model="form.speed" controls-position="right" @change="handleChange2" :min="1" :max="100"></el-input-number>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="runningModal = false">取 消</el-button>
+            <el-button type="primary" @click="runningModal = false">确 定</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                runningModal:false,
+                form: {
+                    fontcontent:'',
+                    fontsize:12,
+                    speed:1
+                },
+                formLabelWidth: '150px'
+            }
+        },
+        mounted() {
+            PubSub.subscribe('running',(msg,data) => {
+                this.runningModal = true
+            })
+        },
+        methods: {
+            handleChange(value) {
+                this.form.fontsize = value
+            },
+            handleChange2(value) {
+                this.form.speed = value
+            },
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 53 - 0
src/renderer/components/modal/settingBackground.vue

@@ -0,0 +1,53 @@
+<template>
+    <el-dialog title="设置背景图片" :visible.sync="settingBgModal" width="700px">
+        <el-upload
+                class="upload-demo"
+                action="https://jsonplaceholder.typicode.com/posts/"
+                :on-preview="handlePreview"
+                :on-remove="handleRemove"
+                :before-remove="beforeRemove"
+                multiple
+                :limit="3"
+                :on-exceed="handleExceed"
+                :file-list="fileList">
+            <el-button size="small" type="primary">点击上传</el-button>
+            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+        </el-upload>
+    </el-dialog>
+</template>
+
+<script>
+    import PubSub from 'pubsub-js'
+
+    export default {
+        data() {
+            return {
+                settingBgModal:false,
+                fileList:[]
+            }
+        },
+        mounted() {
+            PubSub.subscribe('settingBackground',(msg,data) => {
+                this.settingBgModal = true
+            })
+        },
+        methods: {
+            handleRemove(file, fileList) {
+                console.log(file, fileList);
+            },
+            handlePreview(file) {
+                console.log(file);
+            },
+            handleExceed(files, fileList) {
+                this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
+            },
+            beforeRemove(file, fileList) {
+                return this.$confirm(`确定移除 ${ file.name }?`);
+            }
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 0
src/renderer/store/mutation-types.js

@@ -1,4 +1,5 @@
 /*包含n个mutation名称常量*/
 export const SAVE_USER = 'save_user' // 保存用户信息
 export const RESET_USER = 'reset_user' // 重置用户信息
+export const OPEN_SIGNAL_MODAL = 'open_signal_modal' // 打开信号源对话框
 

+ 40 - 181
yarn.lock

@@ -233,11 +233,6 @@
   resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
   integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
 
-abbrev@1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
 accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -395,19 +390,11 @@ app-builder-lib@20.44.4, app-builder-lib@~20.44.4:
     semver "^6.1.1"
     temp-file "^3.3.3"
 
-aproba@^1.0.3, aproba@^1.1.1:
+aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
   integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
 
-are-we-there-yet@~1.1.2:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
-  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
-
 argparse@^1.0.7:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -528,7 +515,7 @@ async-validator@~1.8.1:
   dependencies:
     babel-runtime "6.x"
 
-async@^2.6.2:
+async@^2.1.4, async@^2.6.2:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
   integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
@@ -2350,11 +2337,6 @@ console-browserify@^1.1.0:
   resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
   integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
 
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
 consolidate@^0.15.1:
   version "0.15.1"
   resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
@@ -2668,7 +2650,7 @@ debug@=3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
+debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -2803,11 +2785,6 @@ delayed-stream@~1.0.0:
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
   integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -2838,11 +2815,6 @@ detect-indent@^4.0.0:
   dependencies:
     repeating "^2.0.0"
 
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
 detect-node@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
@@ -3745,13 +3717,6 @@ fs-extra@^8.1.0:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
-fs-minipass@^1.2.5:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
-  integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
-  dependencies:
-    minipass "^2.6.0"
-
 fs-write-stream-atomic@^1.0.8:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
@@ -3780,20 +3745,6 @@ function-bind@^1.1.1:
   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
-gauge@~2.7.3:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
-  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
-  dependencies:
-    aproba "^1.0.3"
-    console-control-strings "^1.0.0"
-    has-unicode "^2.0.0"
-    object-assign "^4.1.0"
-    signal-exit "^3.0.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-    wide-align "^1.1.0"
-
 get-caller-file@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
@@ -3848,7 +3799,7 @@ glob-parent@^3.1.0:
     is-glob "^3.1.0"
     path-dirname "^1.0.0"
 
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
   version "7.1.6"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
   integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -4003,11 +3954,6 @@ has-symbols@^1.0.0, has-symbols@^1.0.1:
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
   integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
 
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
 has-value@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -4285,7 +4231,7 @@ humanize-plus@^1.8.1:
   resolved "https://registry.yarnpkg.com/humanize-plus/-/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030"
   integrity sha1-pls0RZrWNnrbs3B6gqPJ+RYWcDA=
 
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4314,13 +4260,6 @@ iferr@^0.1.5:
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
   integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
-ignore-walk@^3.0.1:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
-  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
-  dependencies:
-    minimatch "^3.0.4"
-
 ignore@^3.3.5:
   version "3.3.10"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -5030,7 +4969,7 @@ loader-utils@^0.2.16:
     json5 "^0.5.0"
     object-assign "^4.0.1"
 
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+loader-utils@^1.0.2, loader-utils@^1.0.4, loader-utils@^1.1.0, loader-utils@^1.2.3:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
   integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -5503,21 +5442,6 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
-  integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
-  dependencies:
-    safe-buffer "^5.1.2"
-    yallist "^3.0.0"
-
-minizlib@^1.2.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
-  integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
-  dependencies:
-    minipass "^2.9.0"
-
 mississippi@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
@@ -5646,15 +5570,6 @@ ncname@1.0.x:
   dependencies:
     xml-char-classes "^1.0.0"
 
-needle@^2.2.1:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117"
-  integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw==
-  dependencies:
-    debug "^3.2.6"
-    iconv-lite "^0.4.4"
-    sax "^1.2.4"
-
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -5716,30 +5631,6 @@ node-loader@^0.6.0:
   resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8"
   integrity sha1-x5fvUQle1YWZArFX9jhPY2HgWug=
 
-node-pre-gyp@*:
-  version "0.14.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
-  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4.4.2"
-
-nopt@^4.0.1:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
-  integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
-  dependencies:
-    abbrev "1"
-    osenv "^0.1.4"
-
 normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -5787,27 +5678,6 @@ normalize-wheel@^1.0.1:
   resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
   integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=
 
-npm-bundled@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
-  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
-  dependencies:
-    npm-normalize-package-bin "^1.0.1"
-
-npm-normalize-package-bin@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
-  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-packlist@^1.1.6:
-  version "1.4.8"
-  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
-  integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
-  dependencies:
-    ignore-walk "^3.0.1"
-    npm-bundled "^1.0.1"
-    npm-normalize-package-bin "^1.0.1"
-
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -5815,16 +5685,6 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
-npmlog@^4.0.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
-  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
-  dependencies:
-    are-we-there-yet "~1.1.2"
-    console-control-strings "~1.1.0"
-    gauge "~2.7.3"
-    set-blocking "~2.0.0"
-
 nth-check@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -5988,19 +5848,11 @@ os-locale@^3.0.0, os-locale@^3.1.0:
     lcid "^2.0.0"
     mem "^4.0.0"
 
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
+os-tmpdir@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
   integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
-osenv@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
-  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
-  dependencies:
-    os-homedir "^1.0.0"
-    os-tmpdir "^1.0.0"
-
 p-cancelable@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
@@ -6716,6 +6568,11 @@ public-encrypt@^4.0.0:
     randombytes "^2.0.1"
     safe-buffer "^5.1.2"
 
+pubsub-js@^1.7.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/pubsub-js/-/pubsub-js-1.8.0.tgz#e2b523a030140a3d6e080735a48850a9622ed20a"
+  integrity sha512-z/61CZMA+jaQpBU0QSWkC4w6lX3tPbOdtl1h2UWac4sn6dkWfx7ND75SsN6U0amczdI66PqfuXXD0Ad7tnbaQg==
+
 pump@^2.0.0, pump@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
@@ -6824,7 +6681,7 @@ raw-body@2.4.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
-rc@^1.1.2, rc@^1.2.7, rc@^1.2.8:
+rc@^1.1.2, rc@^1.2.8:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -6866,7 +6723,7 @@ read-pkg@^1.0.0:
     normalize-package-data "^2.3.2"
     path-type "^1.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -7195,7 +7052,7 @@ right-align@^0.1.1:
   dependencies:
     align-text "^0.1.1"
 
-rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
+rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
   integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -7246,6 +7103,16 @@ sanitize-filename@^1.6.1:
   dependencies:
     truncate-utf8-bytes "^1.0.0"
 
+sass-resources-loader@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-2.0.1.tgz#c8427f3760bf7992f24f27d3889a1c797e971d3a"
+  integrity sha512-UsjQWm01xglINC1kPidYwKOBBzOElVupm9RwtOkRlY0hPA4GKi2KFsn4BZypRD1kudaXgUnGnfbiVOE7c+ybAg==
+  dependencies:
+    async "^2.1.4"
+    chalk "^1.1.3"
+    glob "^7.1.1"
+    loader-utils "^1.0.4"
+
 sax@^1.2.4, sax@~1.2.1:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -7357,7 +7224,7 @@ serve-static@1.14.1:
     parseurl "~1.3.3"
     send "0.17.1"
 
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@@ -7488,6 +7355,11 @@ sort-keys@^1.0.0:
   dependencies:
     is-plain-obj "^1.0.0"
 
+sortablejs@^1.10.1:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290"
+  integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==
+
 source-list-map@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
@@ -7700,7 +7572,7 @@ string-width@^1.0.1:
     is-fullwidth-code-point "^1.0.0"
     strip-ansi "^3.0.0"
 
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
+string-width@^2.0.0, string-width@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -7890,19 +7762,6 @@ tapable@^1.0.0, tapable@^1.1.3:
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
   integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
 
-tar@^4.4.2:
-  version "4.4.13"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
-  integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
-  dependencies:
-    chownr "^1.1.1"
-    fs-minipass "^1.2.5"
-    minipass "^2.8.6"
-    minizlib "^1.2.1"
-    mkdirp "^0.5.0"
-    safe-buffer "^5.1.2"
-    yallist "^3.0.3"
-
 temp-file@^3.3.3:
   version "3.3.7"
   resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a"
@@ -8444,6 +8303,13 @@ vue@^2.5.16:
   resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
   integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==
 
+vuedraggable@^2.23.2:
+  version "2.23.2"
+  resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.23.2.tgz#0d95d7fdf4f02f56755a26b3c9dca5c7ca9cfa72"
+  integrity sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==
+  dependencies:
+    sortablejs "^1.10.1"
+
 vuex-electron@^1.0.0:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/vuex-electron/-/vuex-electron-1.0.3.tgz#c8ce0fd06ed9d3beb8881bce39bf76c9fcdc5611"
@@ -8633,13 +8499,6 @@ which@^1.2.14, which@^1.2.9, which@^1.3.1:
   dependencies:
     isexe "^2.0.0"
 
-wide-align@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
-  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
-  dependencies:
-    string-width "^1.0.2 || 2"
-
 widest-line@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
@@ -8752,7 +8611,7 @@ yallist@^2.1.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==