summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-07-28 20:13:27 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-07-28 20:13:27 +0200
commit97b235b5fb732f7ba222260e231460db7d1a121a (patch)
tree9bcf12e3f33660b23ea409162691d0f44a41f5e5
parentc90984d80d79561cf0abc8f814aa7190624c852c (diff)
List fixes, first contact selection, details first shot and sorting implementation
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r--.eslintrc.js6
-rw-r--r--css/contacts.scss5
-rw-r--r--css/details.scss70
-rw-r--r--css/settings.scss150
-rw-r--r--js/contacts.js4139
-rw-r--r--package-lock.json52
-rw-r--r--package.json1
-rw-r--r--src/components/appNavigation.vue2
-rw-r--r--src/components/appNavigation/navigationItem.vue10
-rw-r--r--src/components/contentDetails.vue119
-rw-r--r--src/components/contentList.vue10
-rw-r--r--src/components/contentList/contentListItem.vue37
-rw-r--r--src/components/popoverMenu/popoverItem.vue6
-rw-r--r--src/models/contact.js22
-rw-r--r--src/services/parseVcf.js4
-rw-r--r--src/store/FakeName.vcf1
-rw-r--r--src/store/addressbooks.js41
-rw-r--r--src/store/contacts.js56
-rw-r--r--src/store/index.js3
-rw-r--r--src/views/Contacts.vue70
-rw-r--r--webpack.common.js2
21 files changed, 4522 insertions, 284 deletions
diff --git a/.eslintrc.js b/.eslintrc.js
index 7839ef54..8c2f0020 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -34,6 +34,7 @@ module.exports = {
// tabs only
indent: ['error', 'tab'],
'no-tabs': 0,
+ 'vue/html-indent': ['error', 'tab'],
// only debug console
'no-console': ['error', { 'allow': ['debug'] }],
// classes blocks
@@ -41,8 +42,9 @@ module.exports = {
// es6 import/export and require
'node/no-unpublished-require': ['off'],
'node/no-unsupported-features': ['off'],
- // vue format
- 'vue/html-indent': ['error', 'tab'],
+ // space before self-closing elements
+ 'vue/html-closing-bracket-spacing': 'error',
+ // code spacing with attributes
'vue/max-attributes-per-line': [
'error',
{
diff --git a/css/contacts.scss b/css/contacts.scss
index 75bb4ab9..92e7a293 100644
--- a/css/contacts.scss
+++ b/css/contacts.scss
@@ -1,3 +1,2 @@
-test {
- color: transparent;
-} \ No newline at end of file
+@import 'settings';
+@import 'details'; \ No newline at end of file
diff --git a/css/details.scss b/css/details.scss
new file mode 100644
index 00000000..545c21c4
--- /dev/null
+++ b/css/details.scss
@@ -0,0 +1,70 @@
+/**
+ * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#contact-details {
+
+ // header
+ header {
+ height: 100px;
+ padding-left: 44px;
+ display: flex;
+ font-weight: bold;
+ align-items: center;
+ #contact-avatar {
+ position: relative;
+ height: 75px;
+ width: 75px;
+ border-radius: 50%;
+ overflow: hidden;
+ flex-shrink: 0;
+ .contact-avatar-background {
+ background-color: var(--color-background-dark);
+ opacity: .2;
+ z-index: 0;
+ }
+ img {
+ z-index: 1;
+ }
+ label.icon-upload-white {
+ opacity: .5;
+ z-index: 2;
+ &:hover,
+ a:active,
+ a:focus {
+ opacity: .7;
+ }
+ }
+ img + label.icon-upload-white {
+ opacity: 0;
+ }
+ .contact-avatar-background,
+ img,
+ label.icon-upload-white {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/css/settings.scss b/css/settings.scss
new file mode 100644
index 00000000..94307029
--- /dev/null
+++ b/css/settings.scss
@@ -0,0 +1,150 @@
+/**
+ * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// contacts settings section
+#app-settings-content {
+ .settings-section {
+ display: flex;
+ align-items: center;
+ }
+}
+
+// Addressbook lists
+#address-book-list li {
+ padding: 6px 0;
+ display: flex;
+ align-items: center;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+
+ .addressbook-name {
+ display: block;
+ flex: 0 1 auto;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ .addressbook-share,
+ .addressbook-menu .icon-more {
+ width: 44px;
+ height: 44px;
+ opacity: .5;
+ &:hover,
+ &:focus,
+ &:active {
+ opacity: .7;
+ }
+ }
+ .addressbook-share {
+ margin-left: auto;
+ }
+}
+
+#new-addressbook-form {
+ display: flex;
+}
+
+// Share Addressbook
+.addressBook-share-list {
+ margin-top: 8px;
+ margin-bottom: 12px;
+ display: flex;
+ flex-direction: column;
+}
+
+// Sharees settings for Addressbook
+.sharee-input {
+ width: 100% !important;
+ margin-right: 0;
+ padding-right: 30px;
+ text-overflow: ellipsis;
+}
+
+.calendar-share-item {
+ padding: 0 5px;
+ display: inline-flex;
+ align-items: center;
+ .shareeIdentifier {
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ display: inline-block;
+ vertical-align: top;
+ opacity: 0.5;
+ }
+ .utils {
+ padding: 0 !important;
+ float: right;
+ position: relative !important;
+ display: inline-flex;
+ align-items: center;
+ flex-shrink: 0;
+ height: 20px;
+ .checkbox + label {
+ padding: 0 !important;
+ }
+ }
+
+ .icon {
+ margin-right: 5px;
+ opacity: 0.2;
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ }
+
+ .icon-group {
+ background-image: url(/apps/contacts/img/group.svg);
+ }
+
+ .icon-delete {
+ display: inline-block;
+ width: 24px;
+ height: 20px;
+ opacity: 0.4;
+ }
+}
+
+// Sort Contacts
+.sort-contacts {
+ .multiselect.multiselect-vue {
+ width: 120px;
+ margin-left: 5px;
+ }
+ input#sort-by, .multiselect__single {
+ padding: 6px 12px;
+ min-height: 34px;
+ text-align: center;
+ background: url(/core/css/../img/actions/triangle-s.svg) no-repeat right 4px center;
+ background-color: inherit;
+ outline: 0;
+ padding-right: 24px !important;
+ }
+}
+
+// Import contacts
+.import-contact {
+ .multiselect.multiselect-vue {
+ width: 100%;
+ }
+}
diff --git a/js/contacts.js b/js/contacts.js
index d1408e22..e99d178d 100644
--- a/js/contacts.js
+++ b/js/contacts.js
@@ -81,116 +81,3806 @@
/******/
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./src/main.js");
+/******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ({
-/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=js&":
-/*!********************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js& ***!
- \********************************************************************************************************************************/
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=js":
+/*!*******************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js ***!
+ \*******************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n\tname: 'App'\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FwcC52dWU/YzY1ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkEyQkE7QUFDQTtBQURBLEMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8hLi9zcmMvQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tXG4gLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gLVxuIC0gQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gLVxuIC0gQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gLVxuIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAtIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gLVxuIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuIC0gR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gLVxuIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gLSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuIC1cbiAtLT5cblxuPHRlbXBsYXRlPlxuXHQ8cm91dGVyLXZpZXcgLz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdBcHAnXG59XG48L3NjcmlwdD5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=js&\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n\tname: 'App'\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FwcC52dWU/YzY1ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkEyQkE7QUFDQTtBQURBLEMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8hLi9zcmMvQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIjwhLS1cbiAtIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE4IEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAtXG4gLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAtXG4gLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAtXG4gLSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuIC0gTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAtXG4gLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAtIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAtXG4gLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gLVxuIC0tPlxuXG48dGVtcGxhdGU+XG5cdDxyb3V0ZXItdmlldyAvPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ0FwcCdcbn1cbjwvc2NyaXB0PlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=script&lang=js\n");
/***/ }),
-/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/addressBook.vue?vue&type=script&lang=js&":
-/*!***************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/addressBook.vue?vue&type=script&lang=js& ***!
- \***************************************************************************************************************************************************/
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/addressBook.vue?vue&type=script&lang=js":
+/*!**************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/addressBook.vue?vue&type=script&lang=js ***!
+ \**************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _popoverMenu = __webpack_require__(/*! ./popoverMenu */ \"./src/components/popoverMenu.vue\");\n\nvar _popoverMenu2 = _interopRequireDefault(_popoverMenu);\n\nvar _vueClickOutside = __webpack_require__(/*! vue-click-outside */ \"./node_modules/vue-click-outside/index.js\");\n\nvar _vueClickOutside2 = _interopRequireDefault(_vueClickOutside);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n\tcomponents: {\n\t\tpopoverMenu: _popoverMenu2.default,\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tdirectives: {\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tprops: {\n\t\taddressbook: {\n\t\t\ttype: Object,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t}\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\tmenuOpen: false\n\t\t};\n\t},\n\n\tcomputed: {\n\t\tmenu: function menu() {\n\t\t\treturn [];\n\t\t}\n\t},\n\tmethods: {\n\t\tshare: function share() {\n\t\t\talert('Shared!');\n\t\t},\n\t\tcloseMenu: function closeMenu() {\n\t\t\tthis.menuOpen = false;\n\t\t},\n\t\ttoggleMenu: function toggleMenu() {\n\t\t\tthis.menuOpen = !this.menuOpen;\n\t\t}\n\t}\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2NvbXBvbmVudHMvYWRkcmVzc0Jvb2sudnVlP2IzOGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBd0NBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBRUE7QUFDQTtBQUNBLG9DQURBO0FBRUE7QUFGQSxFQURBO0FBS0E7QUFDQTtBQURBLEVBTEE7QUFRQTtBQUNBO0FBQ0EsZUFEQTtBQUVBLFVBRkEsc0JBRUE7QUFDQTtBQUNBO0FBSkE7QUFEQSxFQVJBO0FBZ0JBLEtBaEJBLGtCQWdCQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEVBcEJBOztBQXFCQTtBQUNBLE1BREEsa0JBQ0E7QUFDQTtBQUNBO0FBSEEsRUFyQkE7QUEwQkE7QUFDQSxPQURBLG1CQUNBO0FBQ0E7QUFDQSxHQUhBO0FBSUEsV0FKQSx1QkFJQTtBQUNBO0FBQ0EsR0FOQTtBQU9BLFlBUEEsd0JBT0E7QUFDQTtBQUNBO0FBVEE7QUExQkEsQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPyEuL3NyYy9jb21wb25lbnRzL2FkZHJlc3NCb29rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tXG4gIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTggSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICAtXG4gIC0gQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAgLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAgLSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gIC0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAgLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gIC0gR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gIC1cbiAgLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAgLSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICAtXG4gIC0tPlxuXG48dGVtcGxhdGU+XG5cdDxsaSA6Y2xhc3M9XCJ7J2Rpc2FibGVkJzogIWFkZHJlc3Nib29rLmVuYWJsZWR9XCI+XG5cdFx0PCEtLSBhZGRyZXNzYm9vayBuYW1lIC0tPlxuXHRcdHt7IGFkZHJlc3Nib29rLmRpc3BsYXlOYW1lIH19XG5cdFx0PCEtLSBzaGFyaW5nIGJ1dHRvbiAtLT5cblx0XHQ8YSBocmVmPVwiI1wiIGNsYXNzPVwiaWNvbi1zaGFyZWRcIiBAY2xpY2s9XCJzaGFyZVwiIC8+XG5cdFx0PCEtLSBwb3BvdmVybWVudSAtLT5cblx0XHQ8YSB2LWNsaWNrLW91dHNpZGU9XCJjbG9zZU1lbnVcIiBocmVmPVwiI1wiIGNsYXNzPVwiYWRkcmVzc2Jvb2stbWVudVwiXG5cdFx0XHRAY2xpY2s9XCJ0b2dnbGVNZW51XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaWNvbi1tb3JlXCIgLz5cblx0XHRcdDxkaXYgOmNsYXNzPVwieydvcGVuJzogbWVudU9wZW59XCIgY2xhc3M9XCJwb3BvdmVybWVudVwiPlxuXHRcdFx0XHQ8cG9wb3Zlci1tZW51IC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2E+XG5cdDwvbGk+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHBvcG92ZXJNZW51IGZyb20gJy4vcG9wb3Zlck1lbnUnXG5pbXBvcnQgY2xpY2tPdXRzaWRlIGZyb20gJ3Z1ZS1jbGljay1vdXRzaWRlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbXBvbmVudHM6IHtcblx0XHRwb3BvdmVyTWVudSxcblx0XHRjbGlja091dHNpZGVcblx0fSxcblx0ZGlyZWN0aXZlczoge1xuXHRcdGNsaWNrT3V0c2lkZVxuXHR9LFxuXHRwcm9wczoge1xuXHRcdGFkZHJlc3Nib29rOiB7XG5cdFx0XHR0eXBlOiBPYmplY3QsXG5cdFx0XHRkZWZhdWx0KCkge1xuXHRcdFx0XHRyZXR1cm4ge31cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG1lbnVPcGVuOiBmYWxzZVxuXHRcdH1cblx0fSxcblx0Y29tcHV0ZWQ6IHtcblx0XHRtZW51KCkge1xuXHRcdFx0cmV0dXJuIFtdXG5cdFx0fVxuXHR9LFxuXHRtZXRob2RzOiB7XG5cdFx0c2hhcmUoKSB7XG5cdFx0XHRhbGVydCgnU2hhcmVkIScpXG5cdFx0fSxcblx0XHRjbG9zZU1lbnUoKSB7XG5cdFx0XHR0aGlzLm1lbnVPcGVuID0gZmFsc2Vcblx0XHR9LFxuXHRcdHRvZ2dsZU1lbnUoKSB7XG5cdFx0XHR0aGlzLm1lbnVPcGVuID0gIXRoaXMubWVudU9wZW5cblx0XHR9XG5cdH1cbn1cbjwvc2NyaXB0PlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/addressBook.vue?vue&type=script&lang=js&\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _popoverMenu = __webpack_require__(/*! ./popoverMenu */ \"./src/components/popoverMenu.vue\");\n\nvar _popoverMenu2 = _interopRequireDefault(_popoverMenu);\n\nvar _vueClickOutside = __webpack_require__(/*! vue-click-outside */ \"./node_modules/vue-click-outside/index.js\");\n\nvar _vueClickOutside2 = _interopRequireDefault(_vueClickOutside);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n\tcomponents: {\n\t\tpopoverMenu: _popoverMenu2.default,\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tdirectives: {\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tprops: {\n\t\taddressbook: {\n\t\t\ttype: Object,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t}\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\tmenuOpen: false\n\t\t};\n\t},\n\n\tcomputed: {\n\t\tmenu: function menu() {\n\t\t\treturn [];\n\t\t}\n\t},\n\tmethods: {\n\t\tshare: function share() {\n\t\t\talert('Shared!');\n\t\t},\n\t\tcloseMenu: function closeMenu() {\n\t\t\tthis.menuOpen = false;\n\t\t},\n\t\ttoggleMenu: function toggleMenu() {\n\t\t\tthis.menuOpen = !this.menuOpen;\n\t\t}\n\t}\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2NvbXBvbmVudHMvYWRkcmVzc0Jvb2sudnVlP2IzOGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBd0NBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBRUE7QUFDQTtBQUNBLG9DQURBO0FBRUE7QUFGQSxFQURBO0FBS0E7QUFDQTtBQURBLEVBTEE7QUFRQTtBQUNBO0FBQ0EsZUFEQTtBQUVBLFVBRkEsc0JBRUE7QUFDQTtBQUNBO0FBSkE7QUFEQSxFQVJBO0FBZ0JBLEtBaEJBLGtCQWdCQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEVBcEJBOztBQXFCQTtBQUNBLE1BREEsa0JBQ0E7QUFDQTtBQUNBO0FBSEEsRUFyQkE7QUEwQkE7QUFDQSxPQURBLG1CQUNBO0FBQ0E7QUFDQSxHQUhBO0FBSUEsV0FKQSx1QkFJQTtBQUNBO0FBQ0EsR0FOQTtBQU9BLFlBUEEsd0JBT0E7QUFDQTtBQUNBO0FBVEE7QUExQkEsQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPyEuL3NyYy9jb21wb25lbnRzL2FkZHJlc3NCb29rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIjwhLS1cbiAgLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAgLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICAtIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAgLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAgLVxuICAtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gIC1cbiAgLS0+XG5cbjx0ZW1wbGF0ZT5cblx0PGxpIDpjbGFzcz1cInsnZGlzYWJsZWQnOiAhYWRkcmVzc2Jvb2suZW5hYmxlZH1cIj5cblx0XHQ8IS0tIGFkZHJlc3Nib29rIG5hbWUgLS0+XG5cdFx0e3sgYWRkcmVzc2Jvb2suZGlzcGxheU5hbWUgfX1cblx0XHQ8IS0tIHNoYXJpbmcgYnV0dG9uIC0tPlxuXHRcdDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJpY29uLXNoYXJlZFwiIEBjbGljaz1cInNoYXJlXCIgLz5cblx0XHQ8IS0tIHBvcG92ZXJtZW51IC0tPlxuXHRcdDxhIHYtY2xpY2stb3V0c2lkZT1cImNsb3NlTWVudVwiIGhyZWY9XCIjXCIgY2xhc3M9XCJhZGRyZXNzYm9vay1tZW51XCJcblx0XHRcdEBjbGljaz1cInRvZ2dsZU1lbnVcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJpY29uLW1vcmVcIiAvPlxuXHRcdFx0PGRpdiA6Y2xhc3M9XCJ7J29wZW4nOiBtZW51T3Blbn1cIiBjbGFzcz1cInBvcG92ZXJtZW51XCI+XG5cdFx0XHRcdDxwb3BvdmVyLW1lbnUgLz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvYT5cblx0PC9saT5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgcG9wb3Zlck1lbnUgZnJvbSAnLi9wb3BvdmVyTWVudSdcbmltcG9ydCBjbGlja091dHNpZGUgZnJvbSAndnVlLWNsaWNrLW91dHNpZGUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29tcG9uZW50czoge1xuXHRcdHBvcG92ZXJNZW51LFxuXHRcdGNsaWNrT3V0c2lkZVxuXHR9LFxuXHRkaXJlY3RpdmVzOiB7XG5cdFx0Y2xpY2tPdXRzaWRlXG5cdH0sXG5cdHByb3BzOiB7XG5cdFx0YWRkcmVzc2Jvb2s6IHtcblx0XHRcdHR5cGU6IE9iamVjdCxcblx0XHRcdGRlZmF1bHQoKSB7XG5cdFx0XHRcdHJldHVybiB7fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bWVudU9wZW46IGZhbHNlXG5cdFx0fVxuXHR9LFxuXHRjb21wdXRlZDoge1xuXHRcdG1lbnUoKSB7XG5cdFx0XHRyZXR1cm4gW11cblx0XHR9XG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHRzaGFyZSgpIHtcblx0XHRcdGFsZXJ0KCdTaGFyZWQhJylcblx0XHR9LFxuXHRcdGNsb3NlTWVudSgpIHtcblx0XHRcdHRoaXMubWVudU9wZW4gPSBmYWxzZVxuXHRcdH0sXG5cdFx0dG9nZ2xlTWVudSgpIHtcblx0XHRcdHRoaXMubWVudU9wZW4gPSAhdGhpcy5tZW51T3BlblxuXHRcdH1cblx0fVxufVxuPC9zY3JpcHQ+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/addressBook.vue?vue&type=script&lang=js\n");
/***/ }),
-/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/appNavigation.vue?vue&type=script&lang=js&":
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/appNavigation.vue?vue&type=script&lang=js":
+/*!****************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/appNavigation.vue?vue&type=script&lang=js ***!
+ \****************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _navigationItem = __webpack_require__(/*! ./appNavigation/navigationItem */ \"./src/components/appNavigation/navigationItem.vue\");\n\nvar _navigationItem2 = _interopRequireDefault(_navigationItem);\n\nvar _vueClickOutside = __webpack_require__(/*! vue-click-outside */ \"./node_modules/vue-click-outside/index.js\");\n\nvar _vueClickOutside2 = _interopRequireDefault(_vueClickOutside);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n\tname: 'AppNavigation',\n\tcomponents: {\n\t\tnavigationItem: _navigationItem2.default,\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tdirectives: {\n\t\tclickOutside: _vueClickOutside2.default\n\t},\n\tprops: {\n\t\tmenu: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn {\n\t\t\t\t\tnew: {\n\t\t\t\t\t\tid: 'new-item',\n\t\t\t\t\t\taction: function action() {\n\t\t\t\t\t\t\treturn alert('Success!');\n\t\t\t\t\t\t},\n\t\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\t\ttext: 'New item'\n\t\t\t\t\t},\n\t\t\t\t\tmenu: {\n\t\t\t\t\t\tid: 'navigation',\n\t\t\t\t\t\titems: []\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\topened: false\n\t\t};\n\t},\n\n\tmethods: {\n\t\ttoggleMenu: function toggleMenu() {\n\t\t\tthis.opened = !this.opened;\n\t\t},\n\t\tcloseMenu: function closeMenu() {\n\t\t\tthis.opened = false;\n\t\t}\n\t}\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2NvbXBvbmVudHMvYXBwTmF2aWdhdGlvbi52dWU/ZmVlMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUErQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBRUE7QUFDQSxzQkFEQTtBQUVBO0FBQ0EsMENBREE7QUFFQTtBQUZBLEVBRkE7QUFNQTtBQUNBO0FBREEsRUFOQTtBQVNBO0FBQ0E7QUFDQSxlQURBO0FBRUEsaUJBRkE7QUFHQTtBQUNBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBO0FBQUE7QUFBQSxPQUZBO0FBR0Esc0JBSEE7QUFJQTtBQUpBLE1BREE7QUFPQTtBQUNBLHNCQURBO0FBRUE7QUFGQTtBQVBBO0FBY0E7QUFsQkE7QUFEQSxFQVRBO0FBK0JBLEtBL0JBLGtCQStCQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEVBbkNBOztBQW9DQTtBQUNBLFlBREEsd0JBQ0E7QUFDQTtBQUNBLEdBSEE7QUFJQSxXQUpBLHVCQUlBO0FBQ0E7QUFDQTtBQU5BO0FBcENBLEMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8hLi9zcmMvY29tcG9uZW50cy9hcHBOYXZpZ2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIjwhLS1cbiAgLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAgLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICAtIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAgLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAgLVxuICAtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gIC1cbiAgLS0+XG5cbjx0ZW1wbGF0ZT5cblx0PGRpdiBpZD1cImFwcC1uYXZpZ2F0aW9uXCIgOmNsYXNzPVwieydpY29uLWxvYWRpbmcnOiBtZW51LmxvYWRpbmd9XCI+XG5cdFx0PGRpdiB2LWlmPVwibWVudS5uZXdcIiBjbGFzcz1cImFwcC1uYXZpZ2F0aW9uLW5ld1wiPlxuXHRcdFx0PGJ1dHRvbiA6aWQ9XCJtZW51Lm5ldy5pZFwiIDpjbGFzcz1cIm1lbnUubmV3Lmljb25cIiB0eXBlPVwiYnV0dG9uXCJcblx0XHRcdFx0QGNsaWNrPVwibWVudS5uZXcuYWN0aW9uXCI+e3sgbWVudS5uZXcudGV4dCB9fTwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHRcdDx1bCA6aWQ9XCJtZW51LmlkXCI+XG5cdFx0XHQ8bmF2aWdhdGlvbi1pdGVtIHYtZm9yPVwiaXRlbSBpbiBtZW51Lml0ZW1zXCIgOml0ZW09XCJpdGVtXCIgOmtleT1cIml0ZW0ua2V5XCIgLz5cblx0XHQ8L3VsPlxuXHRcdDxkaXYgdi1jbGljay1vdXRzaWRlPVwiY2xvc2VNZW51XCIgdi1pZj1cIiEhJHNsb3RzWydzZXR0aW5ncy1jb250ZW50J11cIiBpZD1cImFwcC1zZXR0aW5nc1wiXG5cdFx0XHQ6Y2xhc3M9XCJ7b3Blbjogb3BlbmVkfVwiPlxuXHRcdFx0PGRpdiBpZD1cImFwcC1zZXR0aW5ncy1oZWFkZXJcIj5cblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cInNldHRpbmdzLWJ1dHRvblwiXG5cdFx0XHRcdFx0ZGF0YS1hcHBzLXNsaWRlLXRvZ2dsZT1cIiNhcHAtc2V0dGluZ3MtY29udGVudFwiXG5cdFx0XHRcdFx0QGNsaWNrPVwidG9nZ2xlTWVudVwiXG5cdFx0XHRcdD57eyB0KCdjb250YWN0cycsICdTZXR0aW5ncycpIH19PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgaWQ9XCJhcHAtc2V0dGluZ3MtY29udGVudFwiPlxuXHRcdFx0XHQ8c2xvdCBuYW1lPVwic2V0dGluZ3MtY29udGVudFwiIC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IG5hdmlnYXRpb25JdGVtIGZyb20gJy4vYXBwTmF2aWdhdGlvbi9uYXZpZ2F0aW9uSXRlbSdcbmltcG9ydCBjbGlja091dHNpZGUgZnJvbSAndnVlLWNsaWNrLW91dHNpZGUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ0FwcE5hdmlnYXRpb24nLFxuXHRjb21wb25lbnRzOiB7XG5cdFx0bmF2aWdhdGlvbkl0ZW0sXG5cdFx0Y2xpY2tPdXRzaWRlXG5cdH0sXG5cdGRpcmVjdGl2ZXM6IHtcblx0XHRjbGlja091dHNpZGVcblx0fSxcblx0cHJvcHM6IHtcblx0XHRtZW51OiB7XG5cdFx0XHR0eXBlOiBPYmplY3QsXG5cdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdGRlZmF1bHQ6ICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRuZXc6IHtcblx0XHRcdFx0XHRcdGlkOiAnbmV3LWl0ZW0nLFxuXHRcdFx0XHRcdFx0YWN0aW9uOiAoKSA9PiBhbGVydCgnU3VjY2VzcyEnKSxcblx0XHRcdFx0XHRcdGljb246ICdpY29uLWFkZCcsXG5cdFx0XHRcdFx0XHR0ZXh0OiAnTmV3IGl0ZW0nXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZW51OiB7XG5cdFx0XHRcdFx0XHRpZDogJ25hdmlnYXRpb24nLFxuXHRcdFx0XHRcdFx0aXRlbXM6IFtcblxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0b3BlbmVkOiBmYWxzZVxuXHRcdH1cblx0fSxcblx0bWV0aG9kczoge1xuXHRcdHRvZ2dsZU1lbnUoKSB7XG5cdFx0XHR0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZFxuXHRcdH0sXG5cdFx0Y2xvc2VNZW51KCkge1xuXHRcdFx0dGhpcy5vcGVuZWQgPSBmYWxzZVxuXHRcdH1cblx0fVxufVxuPC9zY3JpcHQ+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/appNavigation.vue?vue&type=script&lang=js\n");
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/appNavigation/navigationItem.vue?vue&type=script&lang=js":
+/*!*******************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/appNavigation/navigationItem.vue?vue&type=script&lang=js ***!
+ \*******************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _popoverMenu = __webpack_require__(/*! ../popoverMenu */ \"./src/components/popoverMenu.vue\");\n\nvar _popoverMenu2 = _interopRequireDefault(_popoverMenu);\n\nvar _vueClickOutside = __webpack_require__(/*! vue-click-outside */ \"./node_modules/vue-click-outside/index.js\");\n\nvar _vueClickOutside2 = _interopRequireDefault(_vueClickOutside);\n\nvar _vue = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.js\");\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n\tname: 'NavigationItem',\n\tcomponents: {\n\t\tpopoverMenu: _popoverMenu2.default\n\t},\n\tdirectives: {\n\t\tClickOutside: _vueClickOutside2.default\n\t},\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t}\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\topenedMenu: false\n\t\t};\n\t},\n\tmounted: function mounted() {\n\t\t// prevent click outside event with popupItem.\n\t\tthis.popupItem = this.$el;\n\t},\n\n\tmethods: {\n\t\tshowMenu: function showMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu: function hideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\t\ttoggleCollapse: function toggleCollapse() {\n\t\t\t// if item.opened isn't set, Vue won't trigger view updates https://vuejs.org/v2/api/#Vue-set\n\t\t\t// ternary is here to detect the undefined state of item.opened\n\t\t\t_vue2.default.set(this.item, 'opened', this.item.opened ? !this.item.opened : true);\n\t\t},\n\t\tcancelEdit: function cancelEdit() {\n\t\t\t// remove the editing class\n\t\t\tif (Array.isArray(this.item.classes)) {\n\t\t\t\tthis.item.classes = this.item.classes.filter(function (item) {\n\t\t\t\t\treturn item !== 'editing';\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t// This is used to decide which outter element type to use\n\t\t// li or router-link\n\t\tnavElement: function navElement(item) {\n\t\t\tif (item.href) {\n\t\t\t\treturn {\n\t\t\t\t\tis: 'li'\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tis: 'router-link',\n\t\t\t\ttag: 'li',\n\t\t\t\tto: item.router,\n\t\t\t\texact: true\n\t\t\t};\n\t\t}\n\t}\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//# sourceMappingURL=d