From 7f71b91a5c4255e0691b9f17298b206366520235 Mon Sep 17 00:00:00 2001
From: xidedix <xidedix@users.noreply.github.com>
Date: Fri, 19 Jan 2018 23:23:31 +0100
Subject: [PATCH] v1.0.9 with Bootstrap 4.0.0

---
 CHANGELOG.md                                  |   5 +
 Vue_Full_Project/CHANGELOG.md                 |   5 +
 Vue_Full_Project/package-lock.json            | 200 +++++++++++-------
 Vue_Full_Project/package.json                 |  22 +-
 Vue_Full_Project/scss/style.scss              |   2 +-
 .../src/components/{ => Header}/Header.vue    |   0
 .../{ => Header}/HeaderDropdown.vue           |   0
 .../src/components/{ => Sidebar}/Sidebar.vue  |   7 +-
 .../{ => Sidebar}/SidebarFooter.vue           |   0
 .../components/{ => Sidebar}/SidebarForm.vue  |   0
 .../{ => Sidebar}/SidebarHeader.vue           |   0
 .../{ => Sidebar}/SidebarMinimizer.vue        |   0
 .../{ => Sidebar}/SidebarNavDivider.vue       |   0
 .../{ => Sidebar}/SidebarNavDropdown.vue      |   0
 .../{ => Sidebar}/SidebarNavItem.vue          |   0
 .../components/Sidebar/SidebarNavLabel.vue    |  59 ++++++
 .../{ => Sidebar}/SidebarNavLink.vue          |   0
 .../{ => Sidebar}/SidebarNavTitle.vue         |   0
 Vue_Full_Project/src/components/index.js      |   4 +-
 .../src/views/buttons/Dropdowns.vue           |   2 +-
 Vue_Full_Project/test/e2e/specs/test.js       |  79 ++++++-
 Vue_Starter/package.json                      |  22 +-
 Vue_Starter/scss/style.scss                   |   2 +-
 .../src/components/{ => Sidebar}/Sidebar.vue  |   7 +-
 .../{ => Sidebar}/SidebarFooter.vue           |   0
 .../components/{ => Sidebar}/SidebarForm.vue  |   0
 .../{ => Sidebar}/SidebarHeader.vue           |   0
 .../{ => Sidebar}/SidebarMinimizer.vue        |   0
 .../{ => Sidebar}/SidebarNavDivider.vue       |   0
 .../{ => Sidebar}/SidebarNavDropdown.vue      |   0
 .../{ => Sidebar}/SidebarNavItem.vue          |   0
 .../components/Sidebar/SidebarNavLabel.vue    |  59 ++++++
 .../{ => Sidebar}/SidebarNavLink.vue          |   0
 .../{ => Sidebar}/SidebarNavTitle.vue         |   0
 Vue_Starter/src/components/index.js           |   2 +-
 Vue_Starter/test/e2e/nightwatch.conf.js       |   5 +-
 Vue_Starter/test/e2e/specs/test.js            |  80 ++++++-
 37 files changed, 441 insertions(+), 121 deletions(-)
 rename Vue_Full_Project/src/components/{ => Header}/Header.vue (100%)
 rename Vue_Full_Project/src/components/{ => Header}/HeaderDropdown.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/Sidebar.vue (91%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarFooter.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarForm.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarHeader.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarMinimizer.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarNavDivider.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarNavDropdown.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarNavItem.vue (100%)
 create mode 100644 Vue_Full_Project/src/components/Sidebar/SidebarNavLabel.vue
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarNavLink.vue (100%)
 rename Vue_Full_Project/src/components/{ => Sidebar}/SidebarNavTitle.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/Sidebar.vue (91%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarFooter.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarForm.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarHeader.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarMinimizer.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarNavDivider.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarNavDropdown.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarNavItem.vue (100%)
 create mode 100644 Vue_Starter/src/components/Sidebar/SidebarNavLabel.vue
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarNavLink.vue (100%)
 rename Vue_Starter/src/components/{ => Sidebar}/SidebarNavTitle.vue (100%)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index aa94f7b4..250bef9d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 ## [vue](./README.md) version `changelog`
 
+###### `v1.0.9`
+- refactor: Sidebar structure
+- test: initial e2e test added
+- chore: dependencies update
+
 ###### `v1.0.8`
 - update: vue to `2.5.13`
 - update: Bootstrap to `4.0.0-beta.3`
diff --git a/Vue_Full_Project/CHANGELOG.md b/Vue_Full_Project/CHANGELOG.md
index aa94f7b4..250bef9d 100644
--- a/Vue_Full_Project/CHANGELOG.md
+++ b/Vue_Full_Project/CHANGELOG.md
@@ -1,5 +1,10 @@
 ## [vue](./README.md) version `changelog`
 
+###### `v1.0.9`
+- refactor: Sidebar structure
+- test: initial e2e test added
+- chore: dependencies update
+
 ###### `v1.0.8`
 - update: vue to `2.5.13`
 - update: Bootstrap to `4.0.0-beta.3`
diff --git a/Vue_Full_Project/package-lock.json b/Vue_Full_Project/package-lock.json
index 7ec0e7b6..a51bd334 100644
--- a/Vue_Full_Project/package-lock.json
+++ b/Vue_Full_Project/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "@coreui/vue",
-  "version": "1.0.8",
+  "version": "1.0.9",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -251,6 +251,49 @@
       "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
       "dev": true
     },
+    "amqplib": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz",
+      "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "bitsyntax": "0.0.4",
+        "bluebird": "3.5.1",
+        "buffer-more-ints": "0.0.2",
+        "readable-stream": "1.1.14",
+        "safe-buffer": "5.1.1"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+          "dev": true,
+          "optional": true
+        },
+        "readable-stream": {
+          "version": "1.1.14",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+          "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "0.0.1",
+            "string_decoder": "0.10.31"
+          }
+        },
+        "string_decoder": {
+          "version": "0.10.31",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
     "ansi-escapes": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
@@ -486,9 +529,9 @@
       "dev": true
     },
     "autoprefixer": {
-      "version": "7.2.4",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.4.tgz",
-      "integrity": "sha512-am8jJ7Rbh1sy7FvLvNxxQScWvhv2FwLAS3bIhvrZpx9HbX5PEcc/7v6ecgpWuiu0Dwlj+p/z/1boHd8x60JFwA==",
+      "version": "7.2.5",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.5.tgz",
+      "integrity": "sha512-XqHfo8Ht0VU+T5P+eWEVoXza456KJ4l62BPewu3vpNf3LP9s2+zYXkXBznzYby4XeECXgG3N4i+hGvOhXErZmA==",
       "dev": true,
       "requires": {
         "browserslist": "2.11.3",
@@ -1251,7 +1294,7 @@
         "babel-plugin-transform-regenerator": "6.26.0",
         "browserslist": "2.11.3",
         "invariant": "2.2.2",
-        "semver": "5.4.1"
+        "semver": "5.5.0"
       }
     },
     "babel-preset-stage-2": {
@@ -1419,6 +1462,16 @@
       "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
       "dev": true
     },
+    "bitsyntax": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz",
+      "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "buffer-more-ints": "0.0.2"
+      }
+    },
     "bl": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
@@ -1514,14 +1567,14 @@
       }
     },
     "bootstrap": {
-      "version": "4.0.0-beta.3",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-beta.3.tgz",
-      "integrity": "sha512-/Qe1Q2d1muLEZRX2iCteMQHZBBAm6ZIjJ9FcBYK/xLr05+HvDtBOVBN+Cz7mCNZuy0zr+y5artZHM05W7mIz6g=="
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz",
+      "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA=="
     },
     "bootstrap-vue": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-1.4.0.tgz",
-      "integrity": "sha512-JuCwokO+Apm5nuj3h7VT46HIpinzCI0KyeLs5VYjRfuDoz3rTc/Kc/dYIc5a4rMxiObKfhaHqIYYnIklvPEcUQ==",
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-1.4.1.tgz",
+      "integrity": "sha512-TXQ28trpKPkdJS/SlcvKOS5DTWxUPkyhGf19urUG1r6Cq6YrzNI+kMipzGpj46XFlYu0WUutzOa9KraYyPLDBQ==",
       "requires": {
         "lodash.startcase": "4.4.0",
         "opencollective": "1.0.3",
@@ -1773,6 +1826,12 @@
         "ieee754": "1.1.8"
       }
     },
+    "buffer-more-ints": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
+      "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=",
+      "dev": true
+    },
     "buffer-xor": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
@@ -1829,7 +1888,7 @@
         "move-concurrently": "1.0.1",
         "promise-inflight": "1.0.1",
         "rimraf": "2.6.2",
-        "ssri": "5.0.0",
+        "ssri": "5.1.0",
         "unique-filename": "1.1.0",
         "y18n": "3.2.1"
       }
@@ -1950,7 +2009,7 @@
         "deep-eql": "3.0.1",
         "get-func-name": "2.0.0",
         "pathval": "1.1.0",
-        "type-detect": "4.0.6"
+        "type-detect": "4.0.7"
       }
     },
     "chai-nightwatch": {
@@ -2710,9 +2769,9 @@
       "dev": true
     },
     "css-loader": {
-      "version": "0.28.8",
-      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.8.tgz",
-      "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==",
+      "version": "0.28.9",
+      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.9.tgz",
+      "integrity": "sha512-r3dgelMm/mkPz5Y7m9SeiGE46i2VsEU/OYbez+1llfxtv8b2y5/b5StaeEvPK3S5tlNQI+tDW/xDIhKJoZgDtw==",
       "dev": true,
       "requires": {
         "babel-code-frame": "6.26.0",
@@ -2723,7 +2782,7 @@
         "lodash.camelcase": "4.3.0",
         "object-assign": "4.1.1",
         "postcss": "5.2.18",
-        "postcss-modules-extract-imports": "1.1.0",
+        "postcss-modules-extract-imports": "1.2.0",
         "postcss-modules-local-by-default": "1.2.0",
         "postcss-modules-scope": "1.1.0",
         "postcss-modules-values": "1.3.0",
@@ -3079,7 +3138,7 @@
       "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
       "dev": true,
       "requires": {
-        "type-detect": "4.0.6"
+        "type-detect": "4.0.7"
       }
     },
     "deep-is": {
@@ -3704,7 +3763,7 @@
         "pluralize": "7.0.0",
         "progress": "2.0.0",
         "require-uncached": "1.0.3",
-        "semver": "5.4.1",
+        "semver": "5.5.0",
         "strip-ansi": "4.0.0",
         "strip-json-comments": "2.0.1",
         "table": "4.0.2",
@@ -6824,7 +6883,7 @@
         "babel-types": "6.26.0",
         "babylon": "6.18.0",
         "istanbul-lib-coverage": "1.1.1",
-        "semver": "5.4.1"
+        "semver": "5.5.0"
       }
     },
     "js-base64": {
@@ -6980,7 +7039,7 @@
         "http-proxy": "1.16.2",
         "isbinaryfile": "3.0.2",
         "lodash": "4.17.4",
-        "log4js": "2.4.1",
+        "log4js": "2.5.2",
         "mime": "1.4.1",
         "minimatch": "3.0.4",
         "optimist": "0.6.1",
@@ -7560,11 +7619,6 @@
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
       "dev": true
     },
-    "lodash.merge": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
-      "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU="
-    },
     "lodash.mergewith": {
       "version": "4.6.0",
       "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
@@ -7619,13 +7673,14 @@
       }
     },
     "log4js": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.4.1.tgz",
-      "integrity": "sha512-GohFT8UU/Mq++o2NAp87r6cZi4bCNT4inPimRBWa+ewd6PVeA5xJTNmgdEcSYDOXzxk7hCyLh0gmpJNEPgLS+g==",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.2.tgz",
+      "integrity": "sha512-MmZhzQCfCV5+nQgOqy34V9EV3k+Z/rPCdxyq+25EePKpwdUQxCb19BTmL5iX3iOCSAV/tWh7KVYqchwrx3+S2Q==",
       "dev": true,
       "requires": {
+        "amqplib": "0.5.2",
         "axios": "0.15.3",
-        "circular-json": "0.4.0",
+        "circular-json": "0.5.1",
         "date-format": "1.2.0",
         "debug": "3.1.0",
         "hipchat-notifier": "1.1.0",
@@ -7633,15 +7688,15 @@
         "mailgun-js": "0.7.15",
         "nodemailer": "2.7.2",
         "redis": "2.8.0",
-        "semver": "5.4.1",
+        "semver": "5.5.0",
         "slack-node": "0.2.0",
         "streamroller": "0.7.0"
       },
       "dependencies": {
         "circular-json": {
-          "version": "0.4.0",
-          "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.4.0.tgz",
-          "integrity": "sha512-tKV502ADgm9Z37s6B1QOohegjJJrCl2iyMMb1+8ITHrh1fquW8Jdbkb4s5r4Iwutr1UfL1qvkqvc1wZZlLvwow==",
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.1.tgz",
+          "integrity": "sha512-UjgcRlTAhAkLeXmDe2wK7ktwy/tgAqxiSndTIPiFZuIPLZmzHzWMwUIe9h9m/OokypG7snxCDEuwJshGBdPvaw==",
           "dev": true
         },
         "debug": {
@@ -8217,9 +8272,9 @@
       "dev": true
     },
     "mocha": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
-      "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.0.tgz",
+      "integrity": "sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w==",
       "dev": true,
       "requires": {
         "browser-stdout": "1.3.0",
@@ -8936,7 +8991,7 @@
       "requires": {
         "hosted-git-info": "2.5.0",
         "is-builtin-module": "1.0.0",
-        "semver": "5.4.1",
+        "semver": "5.5.0",
         "validate-npm-package-license": "3.0.1"
       }
     },
@@ -9111,9 +9166,9 @@
       "dev": true
     },
     "opn": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
-      "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz",
+      "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==",
       "dev": true,
       "requires": {
         "is-wsl": "1.1.0"
@@ -10711,9 +10766,9 @@
       }
     },
     "postcss-modules-extract-imports": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
-      "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+      "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
       "dev": true,
       "requires": {
         "postcss": "6.0.16"
@@ -12017,9 +12072,9 @@
       }
     },
     "requestretry": {
-      "version": "1.12.2",
-      "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.12.2.tgz",
-      "integrity": "sha512-wDYnH4imurLs5upu31WoPaOFfEu31qhFlF7KgpYbBsmBagFmreZZo8E/XpoQ3erCP5za+72t8k8QI4wlrtwVXw==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz",
+      "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==",
       "dev": true,
       "optional": true,
       "requires": {
@@ -12277,9 +12332,9 @@
       "dev": true
     },
     "semver": {
-      "version": "5.4.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
-      "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+      "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
       "dev": true
     },
     "send": {
@@ -12422,9 +12477,9 @@
       }
     },
     "shelljs": {
-      "version": "0.7.8",
-      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
-      "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+      "version": "0.8.0",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz",
+      "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==",
       "dev": true,
       "requires": {
         "glob": "7.1.2",
@@ -12443,9 +12498,9 @@
       "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ="
     },
     "sinon": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.4.tgz",
-      "integrity": "sha512-ISJZDPf8RS2z4/LAgy1gIimAvF9zg9C9ClQhLTWYWm4HBZjo1WELXlVfkudjdYeN+GtQ2uVBe52m0npIV0gDow==",
+      "version": "4.1.6",
+      "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.6.tgz",
+      "integrity": "sha1-nLNGvdsYDWioBEKf/hSXjX+v1ik=",
       "dev": true,
       "requires": {
         "diff": "3.3.1",
@@ -12453,14 +12508,14 @@
         "lodash.get": "4.4.2",
         "lolex": "2.3.1",
         "nise": "1.2.0",
-        "supports-color": "4.5.0",
-        "type-detect": "4.0.6"
+        "supports-color": "5.1.0",
+        "type-detect": "4.0.7"
       },
       "dependencies": {
         "supports-color": {
-          "version": "4.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
-          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
+          "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
           "dev": true,
           "requires": {
             "has-flag": "2.0.0"
@@ -12481,7 +12536,7 @@
       "dev": true,
       "optional": true,
       "requires": {
-        "requestretry": "1.12.2"
+        "requestretry": "1.13.0"
       }
     },
     "slash": {
@@ -12695,9 +12750,9 @@
       }
     },
     "ssri": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.0.0.tgz",
-      "integrity": "sha512-728D4yoQcQm1ooZvSbywLkV1RjfITZXh0oWrhM/lnsx3nAHx7LsRGJWB/YyvoceAYRq98xqbstiN4JBv1/wNHg==",
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.1.0.tgz",
+      "integrity": "sha512-TevC8fgxQKTfQ1nWtM9GNzr3q5rrHNntG9CDMH1k3QhSZI6Kb+NbjLRs8oPFZa2Hgo7zoekL+UTvoEk7tsbjQg==",
       "dev": true,
       "requires": {
         "safe-buffer": "5.1.1"
@@ -13165,9 +13220,9 @@
       }
     },
     "type-detect": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.6.tgz",
-      "integrity": "sha512-qZ3bAurt2IXGPR3c57PyaSYEnQiLRwPeS60G9TahElBZsdOABo+iKYch/PhRjSTZJ5/DF08x43XMt9qec2g3ig==",
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.7.tgz",
+      "integrity": "sha512-4Rh17pAMVdMWzktddFhISRnUnFIStObtUMNGzDwlA6w/77bmGv3aBbRdCmQR6IjzfkTo9otnW+2K/cDRhKSxDA==",
       "dev": true
     },
     "type-is": {
@@ -13465,12 +13520,9 @@
       "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw=="
     },
     "vue-chartjs": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.0.2.tgz",
-      "integrity": "sha512-m6ItjL8o3ff4JpbF083RzZ4KPiNBFsqMKmWCcAtlisOdm1vvB/9mUDJePmxYKJkvl2AcpvLPiH1cUrhq46r8vA==",
-      "requires": {
-        "lodash.merge": "4.6.0"
-      }
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.1.0.tgz",
+      "integrity": "sha512-cp70zluNJdN57J907hSzjp4jayF6O0ayBJ/alZprHx+BvbVe+nL+QF3TOPSSao3UoenCopYJybmDi/RWYb7afw=="
     },
     "vue-functional-data-merge": {
       "version": "2.0.4",
diff --git a/Vue_Full_Project/package.json b/Vue_Full_Project/package.json
index 6b6fd5a1..53edf026 100644
--- a/Vue_Full_Project/package.json
+++ b/Vue_Full_Project/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@coreui/vue",
-  "version": "1.0.8",
+  "version": "1.0.9",
   "description": "Open Source Bootstrap Admin Template",
   "author": "Łukasz Holeczek",
   "homepage": "http://coreui.io",
@@ -17,18 +17,18 @@
     "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
   },
   "dependencies": {
-    "bootstrap": "4.0.0-beta.3",
-    "bootstrap-vue": "1.4.0",
+    "bootstrap": "4.0.0",
+    "bootstrap-vue": "1.4.1",
     "chart.js": "2.7.1",
     "flag-icon-css": "2.9.0",
     "font-awesome": "^4.7.0",
     "simple-line-icons": "^2.4.1",
     "vue": "2.5.13",
-    "vue-chartjs": "3.0.2",
+    "vue-chartjs": "3.1.0",
     "vue-router": "3.0.1"
   },
   "devDependencies": {
-    "autoprefixer": "7.2.4",
+    "autoprefixer": "7.2.5",
     "babel-core": "6.26.0",
     "babel-eslint": "8.2.1",
     "babel-loader": "7.1.2",
@@ -39,7 +39,7 @@
     "chalk": "2.3.0",
     "connect-history-api-fallback": "1.5.0",
     "copy-webpack-plugin": "4.3.1",
-    "css-loader": "0.28.8",
+    "css-loader": "0.28.9",
     "eslint": "4.15.0",
     "eslint-friendly-formatter": "3.0.0",
     "eslint-loader": "1.9.0",
@@ -67,9 +67,9 @@
     "karma-spec-reporter": "0.0.32",
     "karma-webpack": "2.0.9",
     "lolex": "2.3.1",
-    "mocha": "4.1.0",
+    "mocha": "5.0.0",
     "chai": "4.1.2",
-    "sinon": "4.1.4",
+    "sinon": "4.1.6",
     "sinon-chai": "2.14.0",
     "inject-loader": "3.0.1",
     "babel-plugin-istanbul": "4.1.5",
@@ -80,9 +80,9 @@
     "node-sass": "4.7.2",
     "sass-loader": "6.0.6",
     "selenium-server": "3.8.1",
-    "semver": "5.4.1",
-    "shelljs": "0.7.8",
-    "opn": "5.1.0",
+    "semver": "5.5.0",
+    "shelljs": "0.8.0",
+    "opn": "5.2.0",
     "optimize-css-assets-webpack-plugin": "3.2.0",
     "ora": "1.3.0",
     "rimraf": "2.6.2",
diff --git a/Vue_Full_Project/scss/style.scss b/Vue_Full_Project/scss/style.scss
index 5432fff3..468386c5 100644
--- a/Vue_Full_Project/scss/style.scss
+++ b/Vue_Full_Project/scss/style.scss
@@ -1,6 +1,6 @@
 /*!
  * CoreUI - Open Source Bootstrap Admin Template
- * @version v1.0.8
+ * @version v1.0.9
  * @link http://coreui.io
  * Copyright (c) 2018 creativeLabs Łukasz Holeczek
  * @license MIT
diff --git a/Vue_Full_Project/src/components/Header.vue b/Vue_Full_Project/src/components/Header/Header.vue
similarity index 100%
rename from Vue_Full_Project/src/components/Header.vue
rename to Vue_Full_Project/src/components/Header/Header.vue
diff --git a/Vue_Full_Project/src/components/HeaderDropdown.vue b/Vue_Full_Project/src/components/Header/HeaderDropdown.vue
similarity index 100%
rename from Vue_Full_Project/src/components/HeaderDropdown.vue
rename to Vue_Full_Project/src/components/Header/HeaderDropdown.vue
diff --git a/Vue_Full_Project/src/components/Sidebar.vue b/Vue_Full_Project/src/components/Sidebar/Sidebar.vue
similarity index 91%
rename from Vue_Full_Project/src/components/Sidebar.vue
rename to Vue_Full_Project/src/components/Sidebar/Sidebar.vue
index da8c6413..6d06fb7f 100644
--- a/Vue_Full_Project/src/components/Sidebar.vue
+++ b/Vue_Full_Project/src/components/Sidebar/Sidebar.vue
@@ -12,6 +12,9 @@
           <template v-else-if="item.divider">
             <SidebarNavDivider :classes="item.class"/>
           </template>
+          <template v-else-if="item.label">
+            <SidebarNavLabel :name="item.name" :url="item.url" :icon="item.icon" :label="item.label" :classes="item.class"/>
+          </template>
           <template v-else>
             <template v-if="item.children">
               <!-- First level dropdown -->
@@ -57,6 +60,7 @@ import SidebarNavDropdown from './SidebarNavDropdown'
 import SidebarNavLink from './SidebarNavLink'
 import SidebarNavTitle from './SidebarNavTitle'
 import SidebarNavItem from './SidebarNavItem'
+import SidebarNavLabel from './SidebarNavLabel'
 export default {
   name: 'sidebar',
   props: {
@@ -75,7 +79,8 @@ export default {
     SidebarNavDropdown,
     SidebarNavLink,
     SidebarNavTitle,
-    SidebarNavItem
+    SidebarNavItem,
+    SidebarNavLabel
   },
   methods: {
     handleClick (e) {
diff --git a/Vue_Full_Project/src/components/SidebarFooter.vue b/Vue_Full_Project/src/components/Sidebar/SidebarFooter.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarFooter.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarFooter.vue
diff --git a/Vue_Full_Project/src/components/SidebarForm.vue b/Vue_Full_Project/src/components/Sidebar/SidebarForm.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarForm.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarForm.vue
diff --git a/Vue_Full_Project/src/components/SidebarHeader.vue b/Vue_Full_Project/src/components/Sidebar/SidebarHeader.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarHeader.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarHeader.vue
diff --git a/Vue_Full_Project/src/components/SidebarMinimizer.vue b/Vue_Full_Project/src/components/Sidebar/SidebarMinimizer.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarMinimizer.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarMinimizer.vue
diff --git a/Vue_Full_Project/src/components/SidebarNavDivider.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavDivider.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarNavDivider.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarNavDivider.vue
diff --git a/Vue_Full_Project/src/components/SidebarNavDropdown.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavDropdown.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarNavDropdown.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarNavDropdown.vue
diff --git a/Vue_Full_Project/src/components/SidebarNavItem.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavItem.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarNavItem.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarNavItem.vue
diff --git a/Vue_Full_Project/src/components/Sidebar/SidebarNavLabel.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavLabel.vue
new file mode 100644
index 00000000..20ed7ced
--- /dev/null
+++ b/Vue_Full_Project/src/components/Sidebar/SidebarNavLabel.vue
@@ -0,0 +1,59 @@
+<template>
+  <SidebarNavItem :classes="classList.navItem">
+    <a :class="classList.navLink" :href="url"><i :class="classList.icon"></i> {{name}}</a>
+  </SidebarNavItem>
+</template>
+
+<script>
+  import SidebarNavItem from './SidebarNavItem'
+  import SidebarNavLink from './SidebarNavLink'
+  export default {
+    name: 'sidebar-nav-label',
+    components: {
+      SidebarNavItem,
+      SidebarNavLink
+    },
+    props: {
+      name: {
+        type: String,
+        default: ''
+      },
+      url: {
+        type: String,
+        default: '#'
+      },
+      icon: {
+        type: String,
+        default: 'fa fa-circle'
+      },
+      classes: {
+        type: String,
+        default: ''
+      },
+      label: {
+        type: Object,
+        required: true,
+        default: () => {}
+      }
+    },
+    computed: {
+      classList () {
+        const classes = {
+          navItem: ['hidden-cn', ...this.getClasses(this.classes)].join(' '),
+          navLink: 'nav-label',
+          icon: [
+            this.icon ? this.icon : 'fa fa-circle',
+            this.label.variant ? `text-${this.label.variant}` : '',
+            this.label.class ? this.label.class : ''
+          ].join(' ')
+        }
+        return classes
+      }
+    },
+    methods: {
+      getClasses (classes) {
+        return classes ? classes.split(' ') : []
+      }
+    }
+  }
+</script>
diff --git a/Vue_Full_Project/src/components/SidebarNavLink.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavLink.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarNavLink.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarNavLink.vue
diff --git a/Vue_Full_Project/src/components/SidebarNavTitle.vue b/Vue_Full_Project/src/components/Sidebar/SidebarNavTitle.vue
similarity index 100%
rename from Vue_Full_Project/src/components/SidebarNavTitle.vue
rename to Vue_Full_Project/src/components/Sidebar/SidebarNavTitle.vue
diff --git a/Vue_Full_Project/src/components/index.js b/Vue_Full_Project/src/components/index.js
index 02a33f88..42502c45 100644
--- a/Vue_Full_Project/src/components/index.js
+++ b/Vue_Full_Project/src/components/index.js
@@ -2,8 +2,8 @@ import Aside from './Aside.vue'
 import Breadcrumb from './Breadcrumb.vue'
 import Callout from './Callout.vue'
 import Footer from './Footer.vue'
-import Header from './Header.vue'
-import Sidebar from './Sidebar.vue'
+import Header from './Header/Header.vue'
+import Sidebar from './Sidebar/Sidebar.vue'
 import Switch from './Switch.vue'
 
 export {
diff --git a/Vue_Full_Project/src/views/buttons/Dropdowns.vue b/Vue_Full_Project/src/views/buttons/Dropdowns.vue
index a096e297..c873ea51 100644
--- a/Vue_Full_Project/src/views/buttons/Dropdowns.vue
+++ b/Vue_Full_Project/src/views/buttons/Dropdowns.vue
@@ -13,7 +13,7 @@
               </div>
             </div>
             <div>
-              <b-dropdown id="ddown1" text="Dropdown Button" class="m-md-2">
+              <b-dropdown id="ddown1" text="Dropdown Button" class="m-2">
                 <b-dropdown-item>First Action</b-dropdown-item>
                 <b-dropdown-item>Second Action</b-dropdown-item>
                 <b-dropdown-item>Third Action</b-dropdown-item>
diff --git a/Vue_Full_Project/test/e2e/specs/test.js b/Vue_Full_Project/test/e2e/specs/test.js
index a7b1bd92..8f491082 100644
--- a/Vue_Full_Project/test/e2e/specs/test.js
+++ b/Vue_Full_Project/test/e2e/specs/test.js
@@ -2,18 +2,81 @@
 // http://nightwatchjs.org/guide#usage
 
 module.exports = {
-  'default e2e tests': function (browser) {
+
+  before : function(browser) {
+    console.log('Setting up...');
+  },
+
+  after : function(browser) {
+    console.log('Closing down...');
+  },
+
+  'CoreUI Vue e2e tests': function (browser) {
     // automatically uses dev Server port from /config.index.js
     // default: http://localhost:8080
     // see nightwatch.conf.js
-    const devServer = browser.globals.devServerURL
+
+    const devServer = browser.globals.devServerURL;
 
     browser
       .url(devServer)
-      .waitForElementVisible('#app', 5000)
-      .assert.elementPresent('.hello')
-      .assert.containsText('h1', 'Welcome to Your Vue.js App')
-      .assert.elementCount('img', 1)
-      .end()
+      .pause(500)
+      .expect.element('body').to.be.present;
+
+    browser.waitForElementVisible('.app > .app', 3000)
+      .assert.elementPresent('.app-header')
+      .assert.elementPresent('.app-header > .navbar-brand')
+      .assert.elementPresent('.app-body')
+      .assert.elementPresent('.app-body > .main > .breadcrumb')
+      .assert.elementPresent('.app-body > .main > .container-fluid > .animated')
+      .assert.elementPresent('.app-body > .sidebar > .sidebar-nav')
+      .assert.elementPresent('.app-body > .sidebar > .sidebar-minimizer')
+      .assert.elementPresent('.app-footer')
+      .assert.containsText('.app-footer > span', 'creativeLabs')
+      .assert.containsText('.app-footer > span.ml-auto', 'Powered by')
+      .assert.elementCount('button', 18)
+      .resizeWindow(1024, 800)
+      .pause(500);
+
+    browser.click('body > div > header > button.navbar-toggler.aside-menu-toggler.d-md-down-none', function(response) {
+      this.assert.ok(browser === this, 'Check if the context is right.');
+      this.assert.cssClassNotPresent('body', 'aside-menu-hidden');
+    });
+
+    browser.pause(500);
+
+    browser.click('body > div > header > button.navbar-toggler.aside-menu-toggler.d-md-down-none', function(response) {
+      this.assert.cssClassPresent('body', 'aside-menu-hidden');
+    });
+
+    browser.pause(500);
+
+    browser
+      .useXpath()
+      .click('/html/body/div/header/button[2]', function(response) {
+        this.assert.cssClassPresent('/html/body', 'sidebar-hidden');
+      });
+
+    browser
+      .pause(500)
+      .click('/html/body/div/header/button[2]', function(response) {
+        this.assert.cssClassNotPresent('/html/body', 'sidebar-hidden');
+      });
+
+    browser
+      .pause(500)
+      .click('/html/body/div/div/div/button', function(response) {
+        this.assert.cssClassPresent('/html/body', 'sidebar-minimized');
+        this.assert.cssClassPresent('/html/body', 'brand-minimized');
+      })
+      .pause(500)
+      .click('/html/body/div/div/div/button', function(response) {
+        this.assert.cssClassNotPresent('/html/body', 'sidebar-minimized');
+        this.assert.cssClassNotPresent('/html/body', 'brand-minimized');
+      });
+
+    browser
+      .pause(3000)
+      .end();
   }
-}
+};
diff --git a/Vue_Starter/package.json b/Vue_Starter/package.json
index 6b6fd5a1..53edf026 100644
--- a/Vue_Starter/package.json
+++ b/Vue_Starter/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@coreui/vue",
-  "version": "1.0.8",
+  "version": "1.0.9",
   "description": "Open Source Bootstrap Admin Template",
   "author": "Łukasz Holeczek",
   "homepage": "http://coreui.io",
@@ -17,18 +17,18 @@
     "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
   },
   "dependencies": {
-    "bootstrap": "4.0.0-beta.3",
-    "bootstrap-vue": "1.4.0",
+    "bootstrap": "4.0.0",
+    "bootstrap-vue": "1.4.1",
     "chart.js": "2.7.1",
     "flag-icon-css": "2.9.0",
     "font-awesome": "^4.7.0",
     "simple-line-icons": "^2.4.1",
     "vue": "2.5.13",
-    "vue-chartjs": "3.0.2",
+    "vue-chartjs": "3.1.0",
     "vue-router": "3.0.1"
   },
   "devDependencies": {
-    "autoprefixer": "7.2.4",
+    "autoprefixer": "7.2.5",
     "babel-core": "6.26.0",
     "babel-eslint": "8.2.1",
     "babel-loader": "7.1.2",
@@ -39,7 +39,7 @@
     "chalk": "2.3.0",
     "connect-history-api-fallback": "1.5.0",
     "copy-webpack-plugin": "4.3.1",
-    "css-loader": "0.28.8",
+    "css-loader": "0.28.9",
     "eslint": "4.15.0",
     "eslint-friendly-formatter": "3.0.0",
     "eslint-loader": "1.9.0",
@@ -67,9 +67,9 @@
     "karma-spec-reporter": "0.0.32",
     "karma-webpack": "2.0.9",
     "lolex": "2.3.1",
-    "mocha": "4.1.0",
+    "mocha": "5.0.0",
     "chai": "4.1.2",
-    "sinon": "4.1.4",
+    "sinon": "4.1.6",
     "sinon-chai": "2.14.0",
     "inject-loader": "3.0.1",
     "babel-plugin-istanbul": "4.1.5",
@@ -80,9 +80,9 @@
     "node-sass": "4.7.2",
     "sass-loader": "6.0.6",
     "selenium-server": "3.8.1",
-    "semver": "5.4.1",
-    "shelljs": "0.7.8",
-    "opn": "5.1.0",
+    "semver": "5.5.0",
+    "shelljs": "0.8.0",
+    "opn": "5.2.0",
     "optimize-css-assets-webpack-plugin": "3.2.0",
     "ora": "1.3.0",
     "rimraf": "2.6.2",
diff --git a/Vue_Starter/scss/style.scss b/Vue_Starter/scss/style.scss
index 5432fff3..468386c5 100644
--- a/Vue_Starter/scss/style.scss
+++ b/Vue_Starter/scss/style.scss
@@ -1,6 +1,6 @@
 /*!
  * CoreUI - Open Source Bootstrap Admin Template
- * @version v1.0.8
+ * @version v1.0.9
  * @link http://coreui.io
  * Copyright (c) 2018 creativeLabs Łukasz Holeczek
  * @license MIT
diff --git a/Vue_Starter/src/components/Sidebar.vue b/Vue_Starter/src/components/Sidebar/Sidebar.vue
similarity index 91%
rename from Vue_Starter/src/components/Sidebar.vue
rename to Vue_Starter/src/components/Sidebar/Sidebar.vue
index da8c6413..6d06fb7f 100644
--- a/Vue_Starter/src/components/Sidebar.vue
+++ b/Vue_Starter/src/components/Sidebar/Sidebar.vue
@@ -12,6 +12,9 @@
           <template v-else-if="item.divider">
             <SidebarNavDivider :classes="item.class"/>
           </template>
+          <template v-else-if="item.label">
+            <SidebarNavLabel :name="item.name" :url="item.url" :icon="item.icon" :label="item.label" :classes="item.class"/>
+          </template>
           <template v-else>
             <template v-if="item.children">
               <!-- First level dropdown -->
@@ -57,6 +60,7 @@ import SidebarNavDropdown from './SidebarNavDropdown'
 import SidebarNavLink from './SidebarNavLink'
 import SidebarNavTitle from './SidebarNavTitle'
 import SidebarNavItem from './SidebarNavItem'
+import SidebarNavLabel from './SidebarNavLabel'
 export default {
   name: 'sidebar',
   props: {
@@ -75,7 +79,8 @@ export default {
     SidebarNavDropdown,
     SidebarNavLink,
     SidebarNavTitle,
-    SidebarNavItem
+    SidebarNavItem,
+    SidebarNavLabel
   },
   methods: {
     handleClick (e) {
diff --git a/Vue_Starter/src/components/SidebarFooter.vue b/Vue_Starter/src/components/Sidebar/SidebarFooter.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarFooter.vue
rename to Vue_Starter/src/components/Sidebar/SidebarFooter.vue
diff --git a/Vue_Starter/src/components/SidebarForm.vue b/Vue_Starter/src/components/Sidebar/SidebarForm.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarForm.vue
rename to Vue_Starter/src/components/Sidebar/SidebarForm.vue
diff --git a/Vue_Starter/src/components/SidebarHeader.vue b/Vue_Starter/src/components/Sidebar/SidebarHeader.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarHeader.vue
rename to Vue_Starter/src/components/Sidebar/SidebarHeader.vue
diff --git a/Vue_Starter/src/components/SidebarMinimizer.vue b/Vue_Starter/src/components/Sidebar/SidebarMinimizer.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarMinimizer.vue
rename to Vue_Starter/src/components/Sidebar/SidebarMinimizer.vue
diff --git a/Vue_Starter/src/components/SidebarNavDivider.vue b/Vue_Starter/src/components/Sidebar/SidebarNavDivider.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarNavDivider.vue
rename to Vue_Starter/src/components/Sidebar/SidebarNavDivider.vue
diff --git a/Vue_Starter/src/components/SidebarNavDropdown.vue b/Vue_Starter/src/components/Sidebar/SidebarNavDropdown.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarNavDropdown.vue
rename to Vue_Starter/src/components/Sidebar/SidebarNavDropdown.vue
diff --git a/Vue_Starter/src/components/SidebarNavItem.vue b/Vue_Starter/src/components/Sidebar/SidebarNavItem.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarNavItem.vue
rename to Vue_Starter/src/components/Sidebar/SidebarNavItem.vue
diff --git a/Vue_Starter/src/components/Sidebar/SidebarNavLabel.vue b/Vue_Starter/src/components/Sidebar/SidebarNavLabel.vue
new file mode 100644
index 00000000..20ed7ced
--- /dev/null
+++ b/Vue_Starter/src/components/Sidebar/SidebarNavLabel.vue
@@ -0,0 +1,59 @@
+<template>
+  <SidebarNavItem :classes="classList.navItem">
+    <a :class="classList.navLink" :href="url"><i :class="classList.icon"></i> {{name}}</a>
+  </SidebarNavItem>
+</template>
+
+<script>
+  import SidebarNavItem from './SidebarNavItem'
+  import SidebarNavLink from './SidebarNavLink'
+  export default {
+    name: 'sidebar-nav-label',
+    components: {
+      SidebarNavItem,
+      SidebarNavLink
+    },
+    props: {
+      name: {
+        type: String,
+        default: ''
+      },
+      url: {
+        type: String,
+        default: '#'
+      },
+      icon: {
+        type: String,
+        default: 'fa fa-circle'
+      },
+      classes: {
+        type: String,
+        default: ''
+      },
+      label: {
+        type: Object,
+        required: true,
+        default: () => {}
+      }
+    },
+    computed: {
+      classList () {
+        const classes = {
+          navItem: ['hidden-cn', ...this.getClasses(this.classes)].join(' '),
+          navLink: 'nav-label',
+          icon: [
+            this.icon ? this.icon : 'fa fa-circle',
+            this.label.variant ? `text-${this.label.variant}` : '',
+            this.label.class ? this.label.class : ''
+          ].join(' ')
+        }
+        return classes
+      }
+    },
+    methods: {
+      getClasses (classes) {
+        return classes ? classes.split(' ') : []
+      }
+    }
+  }
+</script>
diff --git a/Vue_Starter/src/components/SidebarNavLink.vue b/Vue_Starter/src/components/Sidebar/SidebarNavLink.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarNavLink.vue
rename to Vue_Starter/src/components/Sidebar/SidebarNavLink.vue
diff --git a/Vue_Starter/src/components/SidebarNavTitle.vue b/Vue_Starter/src/components/Sidebar/SidebarNavTitle.vue
similarity index 100%
rename from Vue_Starter/src/components/SidebarNavTitle.vue
rename to Vue_Starter/src/components/Sidebar/SidebarNavTitle.vue
diff --git a/Vue_Starter/src/components/index.js b/Vue_Starter/src/components/index.js
index 02a33f88..06a4960c 100644
--- a/Vue_Starter/src/components/index.js
+++ b/Vue_Starter/src/components/index.js
@@ -3,7 +3,7 @@ import Breadcrumb from './Breadcrumb.vue'
 import Callout from './Callout.vue'
 import Footer from './Footer.vue'
 import Header from './Header.vue'
-import Sidebar from './Sidebar.vue'
+import Sidebar from './Sidebar/Sidebar.vue'
 import Switch from './Switch.vue'
 
 export {
diff --git a/Vue_Starter/test/e2e/nightwatch.conf.js b/Vue_Starter/test/e2e/nightwatch.conf.js
index f019c0ac..2c129417 100644
--- a/Vue_Starter/test/e2e/nightwatch.conf.js
+++ b/Vue_Starter/test/e2e/nightwatch.conf.js
@@ -31,7 +31,10 @@ module.exports = {
       desiredCapabilities: {
         browserName: 'chrome',
         javascriptEnabled: true,
-        acceptSslCerts: true
+        acceptSslCerts: true,
+        chromeOptions : {
+          args : ["start-maximized", "--incognito"]
+        }
       }
     },
 
diff --git a/Vue_Starter/test/e2e/specs/test.js b/Vue_Starter/test/e2e/specs/test.js
index a7b1bd92..77a7b3c3 100644
--- a/Vue_Starter/test/e2e/specs/test.js
+++ b/Vue_Starter/test/e2e/specs/test.js
@@ -2,18 +2,82 @@
 // http://nightwatchjs.org/guide#usage
 
 module.exports = {
-  'default e2e tests': function (browser) {
+
+  before : function(browser) {
+    console.log('Setting up...');
+  },
+
+  after : function(browser) {
+    console.log('Closing down...');
+  },
+
+  'CoreUI Vue_Starter e2e tests': function (browser) {
     // automatically uses dev Server port from /config.index.js
     // default: http://localhost:8080
     // see nightwatch.conf.js
-    const devServer = browser.globals.devServerURL
+
+    const devServer = browser.globals.devServerURL;
 
     browser
       .url(devServer)
-      .waitForElementVisible('#app', 5000)
-      .assert.elementPresent('.hello')
-      .assert.containsText('h1', 'Welcome to Your Vue.js App')
-      .assert.elementCount('img', 1)
-      .end()
+      .pause(500)
+      .expect.element('body').to.be.present;
+
+    browser.waitForElementVisible('.app > .app', 3000)
+      .assert.elementPresent('.app-header')
+      .assert.elementPresent('.app-header > .navbar-brand')
+      .assert.elementPresent('.app-body')
+      .assert.elementPresent('.app-body > .main > .breadcrumb')
+      .assert.elementPresent('.app-body > .main > .container-fluid > .animated > p')
+      .assert.containsText('.container-fluid > .animated > p', 'Hello World')
+      .assert.elementPresent('.app-body > .sidebar > .sidebar-nav')
+      .assert.elementPresent('.app-body > .sidebar > .sidebar-minimizer')
+      .assert.elementPresent('.app-footer')
+      .assert.containsText('.app-footer > span', 'creativeLabs')
+      .assert.containsText('.app-footer > span.ml-auto', 'Powered by')
+      .assert.elementCount('button', 4)
+      .resizeWindow(1024, 800)
+      .pause(500);
+
+    browser.click('body > div > header > button.navbar-toggler.aside-menu-toggler.d-md-down-none', function(response) {
+      this.assert.ok(browser === this, 'Check if the context is right.');
+      this.assert.cssClassNotPresent('body', 'aside-menu-hidden');
+    });
+
+    browser.pause(500);
+
+    browser.click('body > div > header > button.navbar-toggler.aside-menu-toggler.d-md-down-none', function(response) {
+      this.assert.cssClassPresent('body', 'aside-menu-hidden');
+    });
+
+    browser.pause(500);
+
+    browser
+      .useXpath()
+      .click('/html/body/div/header/button[2]', function(response) {
+        this.assert.cssClassPresent('/html/body', 'sidebar-hidden');
+      });
+
+    browser
+      .pause(500)
+      .click('/html/body/div/header/button[2]', function(response) {
+        this.assert.cssClassNotPresent('/html/body', 'sidebar-hidden');
+      });
+
+    browser
+      .pause(500)
+      .click('/html/body/div/div/div/button', function(response) {
+        this.assert.cssClassPresent('/html/body', 'sidebar-minimized');
+        this.assert.cssClassPresent('/html/body', 'brand-minimized');
+      })
+      .pause(500)
+      .click('/html/body/div/div/div/button', function(response) {
+        this.assert.cssClassNotPresent('/html/body', 'sidebar-minimized');
+        this.assert.cssClassNotPresent('/html/body', 'brand-minimized');
+      });
+
+    browser
+      .pause(3000)
+      .end();
   }
-}
+};