summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-08-28 20:49:19 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-08-28 20:49:19 +0200
commit8850e9a3aeb637210cd4461e12b0dadc55d48857 (patch)
treed0dff137e80b7473421bf3691cf26454b3f53e92 /js
parentd0517b8a42662f7323fa54f09b1eb85377be90d2 (diff)
Disable client while waiting for fix
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'js')
-rw-r--r--js/contacts.js30
1 files changed, 3 insertions, 27 deletions
diff --git a/js/contacts.js b/js/contacts.js
index ab21fe16..f2390b81 100644
--- a/js/contacts.js
+++ b/js/contacts.js
@@ -657,7 +657,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _appNavigation = __webpack_require__(/*! ../components/core/appNavigation */ \"./src/components/core/appNavigation.vue\");\n\nvar _appNavigation2 = _interopRequireDefault(_appNavigation);\n\nvar _SettingsSection = __webpack_require__(/*! ../components/SettingsSection */ \"./src/components/SettingsSection.vue\");\n\nvar _SettingsSection2 = _interopRequireDefault(_SettingsSection);\n\nvar _ContentList = __webpack_require__(/*! ../components/ContentList */ \"./src/components/ContentList.vue\");\n\nvar _ContentList2 = _interopRequireDefault(_ContentList);\n\nvar _ContactDetails = __webpack_require__(/*! ../components/ContactDetails */ \"./src/components/ContactDetails.vue\");\n\nvar _ContactDetails2 = _interopRequireDefault(_ContactDetails);\n\nvar _contact = __webpack_require__(/*! ../models/contact */ \"./src/models/contact.js\");\n\nvar _contact2 = _interopRequireDefault(_contact);\n\nvar _rfcProps = __webpack_require__(/*! ../models/rfcProps.js */ \"./src/models/rfcProps.js\");\n\nvar _rfcProps2 = _interopRequireDefault(_rfcProps);\n\nvar _cdav = __webpack_require__(/*! ../services/cdav.js */ \"./src/services/cdav.js\");\n\nvar _cdav2 = _interopRequireDefault(_cdav);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } //\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\tcomponents: {\n\t\tappNavigation: _appNavigation2.default,\n\t\tsettingsSection: _SettingsSection2.default,\n\t\tcontentList: _ContentList2.default,\n\t\tcontactDetails: _ContactDetails2.default\n\t},\n\n\t// passed by the router\n\tprops: {\n\t\tselectedGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\trequired: true\n\t\t},\n\t\tselectedContact: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t}\n\t},\n\n\tdata: function data() {\n\t\treturn {\n\t\t\tloading: true\n\t\t};\n\t},\n\n\n\tcomputed: {\n\t\t// store getters\n\t\taddressbooks: function addressbooks() {\n\t\t\treturn this.$store.getters.getAddressbooks;\n\t\t},\n\t\tsortedContacts: function sortedContacts() {\n\t\t\treturn this.$store.getters.getSortedContacts;\n\t\t},\n\t\tcontacts: function contacts() {\n\t\t\treturn this.$store.getters.getContacts;\n\t\t},\n\t\tgroups: function groups() {\n\t\t\treturn this.$store.getters.getGroups;\n\t\t},\n\t\torderKey: function orderKey() {\n\t\t\treturn this.$store.getters.getOrderKey;\n\t\t},\n\n\n\t\t// first enabled addressbook of the list\n\t\tdefaultAddressbook: function defaultAddressbook() {\n\t\t\treturn this.addressbooks.find(function (addressbook) {\n\t\t\t\treturn addressbook.enabled;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Contacts list based on the selected group.\n * Those filters are pretty fast, so let's only\n * intersect the groups contacts and the full\n * sorted contacts List.\n */\n\t\tcontactsList: function contactsList() {\n\t\t\tvar _this = this;\n\n\t\t\tif (this.selectedGroup === t('contacts', 'All contacts')) {\n\t\t\t\treturn this.sortedContacts;\n\t\t\t}\n\t\t\tvar group = this.groups.filter(function (group) {\n\t\t\t\treturn group.name === _this.selectedGroup;\n\t\t\t})[0];\n\t\t\tif (group) {\n\t\t\t\treturn this.sortedContacts.filter(function (contact) {\n\t\t\t\t\treturn group.contacts.indexOf(contact.key) >= 0;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\n\n\t\t// generate groups menu from groups store\n\t\tgroupsMenu: function groupsMenu() {\n\t\t\treturn this.groups.map(function (group) {\n\t\t\t\treturn {\n\t\t\t\t\tid: group.name.replace(' ', '_'),\n\t\t\t\t\tkey: group.name.replace(' ', '_'),\n\t\t\t\t\trouter: {\n\t\t\t\t\t\tname: 'group',\n\t\t\t\t\t\tparams: { selectedGroup: group.name }\n\t\t\t\t\t},\n\t\t\t\t\ttext: group.name,\n\t\t\t\t\tutils: {\n\t\t\t\t\t\tcounter: group.contacts.length\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\n\t\t// building the main menu\n\t\tmenu: function menu() {\n\t\t\treturn {\n\t\t\t\tid: 'groups-list',\n\t\t\t\tnew: {\n\t\t\t\t\tid: 'new-contact-button',\n\t\t\t\t\ttext: t('contacts', 'New contact'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: this.newContact\n\t\t\t\t},\n\t\t\t\titems: this.allGroup.concat(this.groupsMenu)\n\t\t\t};\n\t\t},\n\n\n\t\t// default group for every contacts\n\t\tallGroup: function allGroup() {\n\t\t\treturn [{\n\t\t\t\tid: 'everyone',\n\t\t\t\tkey: 'everyone',\n\t\t\t\ticon: 'icon-contacts-dark',\n\t\t\t\trouter: {\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: { selectedGroup: t('contacts', 'All contacts') }\n\t\t\t\t},\n\t\t\t\ttext: t('contacts', 'All contacts'),\n\t\t\t\tutils: {\n\t\t\t\t\tcounter: this.sortedContacts.length\n\t\t\t\t}\n\t\t\t}];\n\t\t}\n\t},\n\n\twatch: {\n\t\t// watch url change and group select\n\t\tselectedGroup: function selectedGroup() {\n\t\t\tthis.selectFirstContactIfNone();\n\t\t},\n\t\t// watch url change and contact select\n\t\tselectedContact: function selectedContact() {\n\t\t\tthis.selectFirstContactIfNone();\n\t\t}\n\t},\n\n\tbeforeMount: function beforeMount() {\n\t\tvar _this2 = this;\n\n\t\t// get addressbooks then get contacts\n\t\t_cdav2.default.connect({ enableCardDAV: true }).then(function () {\n\t\t\t_this2.$store.dispatch('getAddressbooks').then(function () {\n\t\t\t\tPromise.all(_this2.addressbooks.map(function () {\n\t\t\t\t\tvar _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(addressbook) {\n\t\t\t\t\t\treturn regeneratorRuntime.wrap(function _callee$(_context) {\n\t\t\t\t\t\t\twhile (1) {\n\t\t\t\t\t\t\t\tswitch (_context.prev = _context.next) {\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\t_context.next = 2;\n\t\t\t\t\t\t\t\t\t\treturn _this2.$store.dispatch('getContactsFromAddressBook', addressbook);\n\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\tcase 'end':\n\t\t\t\t\t\t\t\t\t\treturn _context.stop();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, _callee, _this2);\n\t\t\t\t\t}));\n\n\t\t\t\t\treturn function (_x) {\n\t\t\t\t\t\treturn _ref.apply(this, arguments);\n\t\t\t\t\t};\n\t\t\t\t}())).then(function () {\n\t\t\t\t\t_this2.loading = false;\n\t\t\t\t\t_this2.selectFirstContactIfNone();\n\t\t\t\t});\n\t\t\t});\n\t\t\t// check local storage for orderKey\n\t\t\tif (localStorage.getItem('orderKey')) {\n\t\t\t\t// run setOrder mutation with local storage key\n\t\t\t\t_this2.$store.commit('setOrder', localStorage.getItem('orderKey'));\n\t\t\t}\n\t\t});\n\t},\n\n\n\tmethods: {\n\t\tnewContact: function newContact() {\n\t\t\tvar contact = new _contact2.default('BEGIN:VCARD\\nVERSION:4.0\\nEND:VCARD', this.defaultAddressbook);\n\t\t\tcontact.fullName = 'New contact';\n\t\t\t// itterate over all properties (filter is not usable on objects and we need the key of the property)\n\t\t\tfor (var name in _rfcProps2.default.properties) {\n\t\t\t\tif (_rfcProps2.default.properties[name].default) {\n\t\t\t\t\tvar defaultData = _rfcProps2.default.properties[name].defaultValue;\n\t\t\t\t\t// add default field\n\t\t\t\t\tvar property = contact.vCard.addPropertyWithValue(name, defaultData.value);\n\t\t\t\t\t// add default type\n\t\t\t\t\tif (defaultData.type) {\n\t\t\t\t\t\tproperty.setParameter('type', defaultData.type);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.selectedGroup !== t('contacts', 'All contacts')) {\n\t\t\t\tcontact.vCard.addPropertyWithValue('categories', this.selectedGroup);\n\t\t\t}\n\t\t\tthis.$store.dispatch('addContact', contact);\n\t\t\tthis.$router.push({\n\t\t\t\tname: 'contact',\n\t\t\t\tparams: {\n\t\t\t\t\tselectedGroup: this.selectedGroup,\n\t\t\t\t\tselectedContact: contact.key\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch sorting update request to the store\n *\n * @param {Object} state Default state\n * @param {Array} addressbooks Addressbooks\n */\n\t\tupdateSorting: function updateSorting() {\n\t\t\tvar orderKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'displayName';\n\n\t\t\tthis.$store.commit('setOrder', orderKey);\n\t\t\tthis.$store.commit('sortContacts');\n\t\t},\n\n\n\t\t/**\n * Select the first contact of the list\n * if none are selected already\n */\n\t\tselectFirstContactIfNone: function selectFirstContactIfNone() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar inList = this.contactsList.findIndex(function (contact) {\n\t\t\t\treturn contact.key === _this3.selectedContact;\n\t\t\t}) > -1;\n\t\t\tif (this.selectedContact === undefined || !inList) {\n\t\t\t\tif (this.selectedContact && !inList) {\n\t\t\t\t\tOC.Notification.showTemporary(t('contacts', 'Contact not found'));\n\t\t\t\t}\n\t\t\t\tif (Object.keys(this.contactsList).length) {\n\t\t\t\t\tthis.$router.push({\n\t\t\t\t\t\tname: 'contact',\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tselectedGroup: this.selectedGroup,\n\t\t\t\t\t\t\tselectedContact: Object.values(this.contactsList)[0].key\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdocument.querySelector('.app-content-list-item.active').scrollIntoView();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL0NvbnRhY3RzLnZ1ZT9lZjY1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQUVBO0FBQ0E7QUFDQSx3Q0FEQTtBQUVBLDRDQUZBO0FBR0Esb0NBSEE7QUFJQTtBQUpBLEVBREE7O0FBUUE7QUFDQTtBQUNBO0FBQ0EsZUFEQTtBQUVBLHFCQUZBO0FBR0E7QUFIQSxHQURBO0FBTUE7QUFDQSxlQURBO0FBRUE7QUFGQTtBQU5BLEVBVEE7O0FBcUJBLEtBckJBLGtCQXFCQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEVBekJBOzs7QUEyQkE7QUFDQTtBQUNBLGNBRkEsMEJBRUE7QUFDQTtBQUNBLEdBSkE7QUFLQSxnQkFMQSw0QkFLQTtBQUNBO0FBQ0EsR0FQQTtBQVFBLFVBUkEsc0JBUUE7QUFDQTtBQUNBLEdBVkE7QUFXQSxRQVhBLG9CQVdBO0FBQ0E7QUFDQSxHQWJBO0FBY0EsVUFkQSxzQkFjQTtBQUNBO0FBQ0EsR0FoQkE7OztBQWtCQTtBQUNBLG9CQW5CQSxnQ0FtQkE7QUFDQTtBQUFBO0FBQUE7QUFDQSxHQXJCQTs7O0FBdUJBOzs7Ozs7QUFNQSxjQTdCQSwwQkE2QkE7QUFBQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQSxHQXRDQTs7O0FBd0NBO0FBQ0EsWUF6Q0Esd0JBeUNBO0FBQ0E7QUFDQTtBQUNBLHFDQURBO0FBRUEsc0NBRkE7QUFHQTtBQUNBLG1CQURBO0FBRUE7QUFGQSxNQUhBO0FBT0EscUJBUEE7QUFRQTtBQUNBO0FBREE7QUFSQTtBQVlBLElBYkE7QUFjQSxHQXhEQTs7O0FBMERBO0FBQ0EsTUEzREEsa0JBMkRBO0FBQ0E7QUFDQSxxQkFEQTtBQUVBO0FBQ0EsNkJBREE7QUFFQSx1Q0FGQTtBQUdBLHFCQUhBO0FBSUE7QUFKQSxLQUZBO0FBUUE7QUFSQTtBQVVBLEdBdEVBOzs7QUF3RUE7QUFDQSxVQXpFQSxzQkF5RUE7QUFDQTtBQUNBLGtCQURBO0FBRUEsbUJBRkE7QUFHQSw4QkFIQTtBQUlBO0FBQ0Esa0JBREE7QUFFQTtBQUZBLEtBSkE7QUFRQSx1Q0FSQTtBQVNBO0FBQ0E7QUFEQTtBQVRBO0FBYUE7QUF2RkEsRUEzQkE7O0FBcUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FKQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkEsRUFySEE7O0FBZ0lBLFlBaElBLHlCQWdJQTtBQUFBOztBQUNBO0FBQ0E7QUFDQSw2Q0FDQSxJQURBLENBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUNBLGlFQURBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBLFVBRUEsSUFGQSxDQUVBO0FBQ0E7QUFDQTtBQUNBLEtBTEE7QUFNQSxJQVJBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZkE7QUFnQkEsRUFsSkE7OztBQW9KQTtBQUNBLFlBREEsd0JBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQURBO0FBRUE7QUFDQSxzQ0FEQTtBQUVBO0FBRkE7QUFGQTtBQU9BLEdBNUJBOzs7QUE4QkE7Ozs7OztBQU1BLGVBcENBLDJCQW9DQTtBQUFBOztBQUNBO0FBQ0E7QUFDQSxHQXZDQTs7O0FBeUNBOzs7O0FBSUEsMEJBN0NBLHNDQTZDQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQURBO0FBRUE7QUFDQSx3Q0FEQTtBQUVBO0FBRkE7QUFGQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBOURBO0FBcEpBLEMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8hLi9zcmMvdmlld3MvQ29udGFjdHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjwhLS1cbiAgLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAgLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICAtIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAgLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAgLVxuICAtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gIC1cbiAgLS0+XG5cbjx0ZW1wbGF0ZT5cblx0PGRpdiBpZD1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1jb250YWN0c1wiPlxuXG5cdFx0PCEtLSBuZXctY29udGFjdC1idXR0b24gKyBuYXZpZ2F0aW9uICsgc2V0dGluZ3MgLS0+XG5cdFx0PGFwcC1uYXZpZ2F0aW9uIDptZW51PVwibWVudVwiPlxuXHRcdFx0PCEtLSBzZXR0aW5ncyAtLT5cblx0XHRcdDxzZXR0aW5ncy1zZWN0aW9uIHNsb3Q9XCJzZXR0aW5ncy1jb250ZW50XCIgLz5cblx0XHQ8L2FwcC1uYXZpZ2F0aW9uPlxuXG5cdFx0PCEtLSBtYWluIGNvbnRlbnQgLS0+XG5cdFx0PGRpdiBpZD1cImFwcC1jb250ZW50XCI+XG5cdFx0XHQ8ZGl2IGlkPVwiYXBwLWNvbnRlbnQtd3JhcHBlclwiPlxuXHRcdFx0XHQ8IS0tIGNvbnRhY3RzIGxpc3QgLS0+XG5cdFx0XHRcdDxjb250ZW50LWxpc3QgOmxpc3Q9XCJjb250YWN0c0xpc3RcIiA6Y29udGFjdHM9XCJjb250YWN0c1wiIDpsb2FkaW5nPVwibG9hZGluZ1wiIC8+XG5cdFx0XHRcdDwhLS0gbWFpbiBjb250YWN0cyBkZXRhaWxzIC0tPlxuXHRcdFx0XHQ8Y29udGFjdC1kZXRhaWxzIDpsb2FkaW5nPVwibG9hZGluZ1wiIDp1aWQ9XCJzZWxlY3RlZENvbnRhY3RcIiAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cblx0PC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGFwcE5hdmlnYXRpb24gZnJvbSAnLi4vY29tcG9uZW50cy9jb3JlL2FwcE5hdmlnYXRpb24nXG5pbXBvcnQgc2V0dGluZ3NTZWN0aW9uIGZyb20gJy4uL2NvbXBvbmVudHMvU2V0dGluZ3NTZWN0aW9uJ1xuaW1wb3J0IGNvbnRlbnRMaXN0IGZyb20gJy4uL2NvbXBvbmVudHMvQ29udGVudExpc3QnXG5pbXBvcnQgY29udGFjdERldGFpbHMgZnJvbSAnLi4vY29tcG9uZW50cy9Db250YWN0RGV0YWlscydcblxuaW1wb3J0IENvbnRhY3QgZnJvbSAnLi4vbW9kZWxzL2NvbnRhY3QnXG5pbXBvcnQgcmZjUHJvcHMgZnJvbSAnLi4vbW9kZWxzL3JmY1Byb3BzLmpzJ1xuXG5pbXBvcnQgY2xpZW50IGZyb20gJy4uL3NlcnZpY2VzL2NkYXYuanMnXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0Y29tcG9uZW50czoge1xuXHRcdGFwcE5hdmlnYXRpb24sXG5cdFx0c2V0dGluZ3NTZWN0aW9uLFxuXHRcdGNvbnRlbnRMaXN0LFxuXHRcdGNvbnRhY3REZXRhaWxzXG5cdH0sXG5cblx0Ly8gcGFzc2VkIGJ5IHRoZSByb3V0ZXJcblx0cHJvcHM6IHtcblx0XHRzZWxlY3RlZEdyb3VwOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiB1bmRlZmluZWQsXG5cdFx0XHRyZXF1aXJlZDogdHJ1ZVxuXHRcdH0sXG5cdFx0c2VsZWN0ZWRDb250YWN0OiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiB1bmRlZmluZWRcblx0XHR9XG5cdH0sXG5cblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bG9hZGluZzogdHJ1ZVxuXHRcdH1cblx0fSxcblxuXHRjb21wdXRlZDoge1xuXHRcdC8vIHN0b3JlIGdldHRlcnNcblx0XHRhZGRyZXNzYm9va3MoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRBZGRyZXNzYm9va3Ncblx0XHR9LFxuXHRcdHNvcnRlZENvbnRhY3RzKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0U29ydGVkQ29udGFjdHNcblx0XHR9LFxuXHRcdGNvbnRhY3RzKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Q29udGFjdHNcblx0XHR9LFxuXHRcdGdyb3VwcygpIHtcblx0XHRcdHJldHVybiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldEdyb3Vwc1xuXHRcdH0sXG5cdFx0b3JkZXJLZXkoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRPcmRlcktleVxuXHRcdH0sXG5cblx0XHQvLyBmaXJzdCBlbmFibGVkIGFkZHJlc3Nib29rIG9mIHRoZSBsaXN0XG5cdFx0ZGVmYXVsdEFkZHJlc3Nib29rKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2Jvb2tzLmZpbmQoYWRkcmVzc2Jvb2sgPT4gYWRkcmVzc2Jvb2suZW5hYmxlZClcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogQ29udGFjdHMgbGlzdCBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgZ3JvdXAuXG5cdFx0ICogVGhvc2UgZmlsdGVycyBhcmUgcHJldHR5IGZhc3QsIHNvIGxldCdzIG9ubHlcblx0XHQgKiBpbnRlcnNlY3QgdGhlIGdyb3VwcyBjb250YWN0cyBhbmQgdGhlIGZ1bGxcblx0XHQgKiBzb3J0ZWQgY29udGFjdHMgTGlzdC5cblx0XHQgKi9cblx0XHRjb250YWN0c0xpc3QoKSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEdyb3VwID09PSB0KCdjb250YWN0cycsICdBbGwgY29udGFjdHMnKSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5zb3J0ZWRDb250YWN0c1xuXHRcdFx0fVxuXHRcdFx0bGV0IGdyb3VwID0gdGhpcy5ncm91cHMuZmlsdGVyKGdyb3VwID0+IGdyb3VwLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRHcm91cClbMF1cblx0XHRcdGlmIChncm91cCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5zb3J0ZWRDb250YWN0cy5maWx0ZXIoY29udGFjdCA9PiBncm91cC5jb250YWN0cy5pbmRleE9mKGNvbnRhY3Qua2V5KSA+PSAwKVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIFtdXG5cdFx0fSxcblxuXHRcdC8vIGdlbmVyYXRlIGdyb3VwcyBtZW51IGZyb20gZ3JvdXBzIHN0b3JlXG5cdFx0Z3JvdXBzTWVudSgpIHtcblx0XHRcdHJldHVybiB0aGlzLmdyb3Vwcy5tYXAoZ3JvdXAgPT4ge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGlkOiBncm91cC5uYW1lLnJlcGxhY2UoJyAnLCAnXycpLFxuXHRcdFx0XHRcdGtleTogZ3JvdXAubmFtZS5yZXBsYWNlKCcgJywgJ18nKSxcblx0XHRcdFx0XHRyb3V0ZXI6IHtcblx0XHRcdFx0XHRcdG5hbWU6ICdncm91cCcsXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHsgc2VsZWN0ZWRHcm91cDogZ3JvdXAubmFtZSB9XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0ZXh0OiBncm91cC5uYW1lLFxuXHRcdFx0XHRcdHV0aWxzOiB7XG5cdFx0XHRcdFx0XHRjb3VudGVyOiBncm91cC5jb250YWN0cy5sZW5ndGhcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0fSxcblxuXHRcdC8vIGJ1aWxkaW5nIHRoZSBtYWluIG1lbnVcblx0XHRtZW51KCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aWQ6ICdncm91cHMtbGlzdCcsXG5cdFx0XHRcdG5ldzoge1xuXHRcdFx0XHRcdGlkOiAnbmV3LWNvbnRhY3QtYnV0dG9uJyxcblx0XHRcdFx0XHR0ZXh0OiB0KCdjb250YWN0cycsICdOZXcgY29udGFjdCcpLFxuXHRcdFx0XHRcdGljb246ICdpY29uLWFkZCcsXG5cdFx0XHRcdFx0YWN0aW9uOiB0aGlzLm5ld0NvbnRhY3Rcblx0XHRcdFx0fSxcblx0XHRcdFx0aXRlbXM6IHRoaXMuYWxsR3JvdXAuY29uY2F0KHRoaXMuZ3JvdXBzTWVudSlcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly8gZGVmYXVsdCBncm91cCBmb3IgZXZlcnkgY29udGFjdHNcblx0XHRhbGxHcm91cCgpIHtcblx0XHRcdHJldHVybiBbe1xuXHRcdFx0XHRpZDogJ2V2ZXJ5b25lJyxcblx0XHRcdFx0a2V5OiAnZXZlcnlvbmUnLFxuXHRcdFx0XHRpY29uOiAnaWNvbi1jb250YWN0cy1kYXJrJyxcblx0XHRcdFx0cm91dGVyOiB7XG5cdFx0XHRcdFx0bmFtZTogJ2dyb3VwJyxcblx0XHRcdFx0XHRwYXJhbXM6IHsgc2VsZWN0ZWRHcm91cDogdCgnY29udGFjdHMnLCAnQWxsIGNvbnRhY3RzJykgfVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR0ZXh0OiB0KCdjb250YWN0cycsICdBbGwgY29udGFjdHMnKSxcblx0XHRcdFx0dXRpbHM6IHtcblx0XHRcdFx0XHRjb3VudGVyOiB0aGlzLnNvcnRlZENvbnRhY3RzLmxlbmd0aFxuXHRcdFx0XHR9XG5cdFx0XHR9XVxuXHRcdH1cblx0fSxcblxuXHR3YXRjaDoge1xuXHRcdC8vIHdhdGNoIHVybCBjaGFuZ2UgYW5kIGdyb3VwIHNlbGVjdFxuXHRcdHNlbGVjdGVkR3JvdXA6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhpcy5zZWxlY3RGaXJzdENvbnRhY3RJZk5vbmUoKVxuXHRcdH0sXG5cdFx0Ly8gd2F0Y2ggdXJsIGNoYW5nZSBhbmQgY29udGFjdCBzZWxlY3Rcblx0XHRzZWxlY3RlZENvbnRhY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhpcy5zZWxlY3RGaXJzdENvbnRhY3RJZk5vbmUoKVxuXHRcdH1cblx0fSxcblxuXHRiZWZvcmVNb3VudCgpIHtcblx0XHQvLyBnZXQgYWRkcmVzc2Jvb2tzIHRoZW4gZ2V0IGNvbnRhY3RzXG5cdFx0Y2xpZW50LmNvbm5lY3QoeyBlbmFibGVDYXJkREFWOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuXHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2dldEFkZHJlc3Nib29rcycpXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRQcm9taXNlLmFsbCh0aGlzLmFkZHJlc3Nib29rcy5tYXAoYXN5bmMgYWRkcmVzc2Jvb2sgPT4ge1xuXHRcdFx0XHRcdFx0YXdhaXQgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2dldENvbnRhY3RzRnJvbUFkZHJlc3NCb29rJywgYWRkcmVzc2Jvb2spXG5cdFx0XHRcdFx0fSkpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2Vcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0Rmlyc3RDb250YWN0SWZOb25lKClcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KVxuXHRcdFx0Ly8gY2hlY2sgbG9jYWwgc3RvcmFnZSBmb3Igb3JkZXJLZXlcblx0XHRcdGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb3JkZXJLZXknKSkge1xuXHRcdFx0XHQvLyBydW4gc2V0T3JkZXIgbXV0YXRpb24gd2l0aCBsb2NhbCBzdG9yYWdlIGtleVxuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ3NldE9yZGVyJywgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29yZGVyS2V5JykpXG5cdFx0XHR9XG5cdFx0fSlcblx0fSxcblxuXHRtZXRob2RzOiB7XG5cdFx0bmV3Q29udGFjdCgpIHtcblx0XHRcdGxldCBjb250YWN0ID0gbmV3IENvbnRhY3QoJ0JFR0lOOlZDQVJEXFxuVkVSU0lPTjo0LjBcXG5FTkQ6VkNBUkQnLCB0aGlzLmRlZmF1bHRBZGRyZXNzYm9vaylcblx0XHRcdGNvbnRhY3QuZnVsbE5hbWUgPSAnTmV3IGNvbnRhY3QnXG5cdFx0XHQvLyBpdHRlcmF0ZSBvdmVyIGFsbCBwcm9wZXJ0aWVzIChmaWx0ZXIgaXMgbm90IHVzYWJsZSBvbiBvYmplY3RzIGFuZCB3ZSBuZWVkIHRoZSBrZXkgb2YgdGhlIHByb3BlcnR5KVxuXHRcdFx0Zm9yIChsZXQgbmFtZSBpbiByZmNQcm9wcy5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdGlmIChyZmNQcm9wcy5wcm9wZXJ0aWVzW25hbWVdLmRlZmF1bHQpIHtcblx0XHRcdFx0XHRsZXQgZGVmYXVsdERhdGEgPSByZmNQcm9wcy5wcm9wZXJ0aWVzW25hbWVdLmRlZmF1bHRWYWx1ZVxuXHRcdFx0XHRcdC8vIGFkZCBkZWZhdWx0IGZpZWxkXG5cdFx0XHRcdFx0bGV0IHByb3BlcnR5ID0gY29udGFjdC52Q2FyZC5hZGRQcm9wZXJ0eVdpdGhWYWx1ZShuYW1lLCBkZWZhdWx0RGF0YS52YWx1ZSlcblx0XHRcdFx0XHQvLyBhZGQgZGVmYXVsdCB0eXBlXG5cdFx0XHRcdFx0aWYgKGRlZmF1bHREYXRhLnR5cGUpIHtcblx0XHRcdFx0XHRcdHByb3BlcnR5LnNldFBhcmFtZXRlcigndHlwZScsIGRlZmF1bHREYXRhLnR5cGUpXG5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkR3JvdXAgIT09IHQoJ2NvbnRhY3RzJywgJ0FsbCBjb250YWN0cycpKSB7XG5cdFx0XHRcdGNvbnRhY3QudkNhcmQuYWRkUHJvcGVydHlXaXRoVmFsdWUoJ2NhdGVnb3JpZXMnLCB0aGlzLnNlbGVjdGVkR3JvdXApXG5cdFx0XHR9XG5cdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYWRkQ29udGFjdCcsIGNvbnRhY3QpXG5cdFx0XHR0aGlzLiRyb3V0ZXIucHVzaCh7XG5cdFx0XHRcdG5hbWU6ICdjb250YWN0Jyxcblx0XHRcdFx0cGFyYW1zOiB7XG5cdFx0XHRcdFx0c2VsZWN0ZWRHcm91cDogdGhpcy5zZWxlY3RlZEdyb3VwLFxuXHRcdFx0XHRcdHNlbGVjdGVkQ29udGFjdDogY29udGFjdC5rZXlcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRGlzcGF0Y2ggc29ydGluZyB1cGRhdGUgcmVxdWVzdCB0byB0aGUgc3RvcmVcblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSBEZWZhdWx0IHN0YXRlXG5cdFx0ICogQHBhcmFtIHtBcnJheX0gYWRkcmVzc2Jvb2tzIEFkZHJlc3Nib29rc1xuXHRcdCAqL1xuXHRcdHVwZGF0ZVNvcnRpbmcob3JkZXJLZXkgPSAnZGlzcGxheU5hbWUnKSB7XG5cdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ3NldE9yZGVyJywgb3JkZXJLZXkpXG5cdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ3NvcnRDb250YWN0cycpXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFNlbGVjdCB0aGUgZmlyc3QgY29udGFjdCBvZiB0aGUgbGlzdFxuXHRcdCAqIGlmIG5vbmUgYXJlIHNlbGVjdGVkIGFscmVhZHlcblx0XHQgKi9cblx0XHRzZWxlY3RGaXJzdENvbnRhY3RJZk5vbmUoKSB7XG5cdFx0XHRsZXQgaW5MaXN0ID0gdGhpcy5jb250YWN0c0xpc3QuZmluZEluZGV4KGNvbnRhY3QgPT4gY29udGFjdC5rZXkgPT09IHRoaXMuc2VsZWN0ZWRDb250YWN0KSA+IC0xXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZENvbnRhY3QgPT09IHVuZGVmaW5lZCB8fCAhaW5MaXN0KSB7XG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdGVkQ29udGFjdCAmJiAhaW5MaXN0KSB7XG5cdFx0XHRcdFx0T0MuTm90aWZpY2F0aW9uLnNob3dUZW1wb3JhcnkodCgnY29udGFjdHMnLCAnQ29udGFjdCBub3QgZm91bmQnKSlcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5jb250YWN0c0xpc3QpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuJHJvdXRlci5wdXNoKHtcblx0XHRcdFx0XHRcdG5hbWU6ICdjb250YWN0Jyxcblx0XHRcdFx0XHRcdHBhcmFtczoge1xuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZEdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXAsXG5cdFx0XHRcdFx0XHRcdHNlbGVjdGVkQ29udGFjdDogT2JqZWN0LnZhbHVlcyh0aGlzLmNvbnRhY3RzTGlzdClbMF0ua2V5XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXBwLWNvbnRlbnQtbGlzdC1pdGVtLmFjdGl2ZScpLnNjcm9sbEludG9WaWV3KClcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuPC9zY3JpcHQ+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/views/Contacts.vue?vue&type=script&lang=js&\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _appNavigation = __webpack_require__(/*! ../components/core/appNavigation */ \"./src/components/core/appNavigation.vue\");\n\nvar _appNavigation2 = _interopRequireDefault(_appNavigation);\n\nvar _SettingsSection = __webpack_require__(/*! ../components/SettingsSection */ \"./src/components/SettingsSection.vue\");\n\nvar _SettingsSection2 = _interopRequireDefault(_SettingsSection);\n\nvar _ContentList = __webpack_require__(/*! ../components/ContentList */ \"./src/components/ContentList.vue\");\n\nvar _ContentList2 = _interopRequireDefault(_ContentList);\n\nvar _ContactDetails = __webpack_require__(/*! ../components/ContactDetails */ \"./src/components/ContactDetails.vue\");\n\nvar _ContactDetails2 = _interopRequireDefault(_ContactDetails);\n\nvar _contact = __webpack_require__(/*! ../models/contact */ \"./src/models/contact.js\");\n\nvar _contact2 = _interopRequireDefault(_contact);\n\nvar _rfcProps = __webpack_require__(/*! ../models/rfcProps.js */ \"./src/models/rfcProps.js\");\n\nvar _rfcProps2 = _interopRequireDefault(_rfcProps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } //\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// import client from '../services/cdav.js'\n\nexports.default = {\n\tcomponents: {\n\t\tappNavigation: _appNavigation2.default,\n\t\tsettingsSection: _SettingsSection2.default,\n\t\tcontentList: _ContentList2.default,\n\t\tcontactDetails: _ContactDetails2.default\n\t},\n\n\t// passed by the router\n\tprops: {\n\t\tselectedGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\trequired: true\n\t\t},\n\t\tselectedContact: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t}\n\t},\n\n\tdata: function data() {\n\t\treturn {\n\t\t\tloading: true\n\t\t};\n\t},\n\n\n\tcomputed: {\n\t\t// store getters\n\t\taddressbooks: function addressbooks() {\n\t\t\treturn this.$store.getters.getAddressbooks;\n\t\t},\n\t\tsortedContacts: function sortedContacts() {\n\t\t\treturn this.$store.getters.getSortedContacts;\n\t\t},\n\t\tcontacts: function contacts() {\n\t\t\treturn this.$store.getters.getContacts;\n\t\t},\n\t\tgroups: function groups() {\n\t\t\treturn this.$store.getters.getGroups;\n\t\t},\n\t\torderKey: function orderKey() {\n\t\t\treturn this.$store.getters.getOrderKey;\n\t\t},\n\n\n\t\t// first enabled addressbook of the list\n\t\tdefaultAddressbook: function defaultAddressbook() {\n\t\t\treturn this.addressbooks.find(function (addressbook) {\n\t\t\t\treturn addressbook.enabled;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Contacts list based on the selected group.\n * Those filters are pretty fast, so let's only\n * intersect the groups contacts and the full\n * sorted contacts List.\n */\n\t\tcontactsList: function contactsList() {\n\t\t\tvar _this = this;\n\n\t\t\tif (this.selectedGroup === t('contacts', 'All contacts')) {\n\t\t\t\treturn this.sortedContacts;\n\t\t\t}\n\t\t\tvar group = this.groups.filter(function (group) {\n\t\t\t\treturn group.name === _this.selectedGroup;\n\t\t\t})[0];\n\t\t\tif (group) {\n\t\t\t\treturn this.sortedContacts.filter(function (contact) {\n\t\t\t\t\treturn group.contacts.indexOf(contact.key) >= 0;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\n\n\t\t// generate groups menu from groups store\n\t\tgroupsMenu: function groupsMenu() {\n\t\t\treturn this.groups.map(function (group) {\n\t\t\t\treturn {\n\t\t\t\t\tid: group.name.replace(' ', '_'),\n\t\t\t\t\tkey: group.name.replace(' ', '_'),\n\t\t\t\t\trouter: {\n\t\t\t\t\t\tname: 'group',\n\t\t\t\t\t\tparams: { selectedGroup: group.name }\n\t\t\t\t\t},\n\t\t\t\t\ttext: group.name,\n\t\t\t\t\tutils: {\n\t\t\t\t\t\tcounter: group.contacts.length\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\n\t\t// building the main menu\n\t\tmenu: function menu() {\n\t\t\treturn {\n\t\t\t\tid: 'groups-list',\n\t\t\t\tnew: {\n\t\t\t\t\tid: 'new-contact-button',\n\t\t\t\t\ttext: t('contacts', 'New contact'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: this.newContact\n\t\t\t\t},\n\t\t\t\titems: this.allGroup.concat(this.groupsMenu)\n\t\t\t};\n\t\t},\n\n\n\t\t// default group for every contacts\n\t\tallGroup: function allGroup() {\n\t\t\treturn [{\n\t\t\t\tid: 'everyone',\n\t\t\t\tkey: 'everyone',\n\t\t\t\ticon: 'icon-contacts-dark',\n\t\t\t\trouter: {\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: { selectedGroup: t('contacts', 'All contacts') }\n\t\t\t\t},\n\t\t\t\ttext: t('contacts', 'All contacts'),\n\t\t\t\tutils: {\n\t\t\t\t\tcounter: this.sortedContacts.length\n\t\t\t\t}\n\t\t\t}];\n\t\t}\n\t},\n\n\twatch: {\n\t\t// watch url change and group select\n\t\tselectedGroup: function selectedGroup() {\n\t\t\tthis.selectFirstContactIfNone();\n\t\t},\n\t\t// watch url change and contact select\n\t\tselectedContact: function selectedContact() {\n\t\t\tthis.selectFirstContactIfNone();\n\t\t}\n\t},\n\n\tbeforeMount: function beforeMount() {\n\t\tvar _this2 = this;\n\n\t\t// get addressbooks then get contacts\n\t\t// client.connect({ enableCardDAV: true }).then(() => {\n\t\tthis.$store.dispatch('getAddressbooks').then(function () {\n\t\t\tPromise.all(_this2.addressbooks.map(function () {\n\t\t\t\tvar _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(addressbook) {\n\t\t\t\t\treturn regeneratorRuntime.wrap(function _callee$(_context) {\n\t\t\t\t\t\twhile (1) {\n\t\t\t\t\t\t\tswitch (_context.prev = _context.next) {\n\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t_context.next = 2;\n\t\t\t\t\t\t\t\t\treturn _this2.$store.dispatch('getContactsFromAddressBook', addressbook);\n\n\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tcase 'end':\n\t\t\t\t\t\t\t\t\treturn _context.stop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, _callee, _this2);\n\t\t\t\t}));\n\n\t\t\t\treturn function (_x) {\n\t\t\t\t\treturn _ref.apply(this, arguments);\n\t\t\t\t};\n\t\t\t}())).then(function () {\n\t\t\t\t_this2.loading = false;\n\t\t\t\t_this2.selectFirstContactIfNone();\n\t\t\t});\n\t\t});\n\t\t// check local storage for orderKey\n\t\tif (localStorage.getItem('orderKey')) {\n\t\t\t// run setOrder mutation with local storage key\n\t\t\tthis.$store.commit('setOrder', localStorage.getItem('orderKey'));\n\t\t}\n\t\t// })\n\t},\n\n\n\tmethods: {\n\t\tnewContact: function newContact() {\n\t\t\tvar contact = new _contact2.default('BEGIN:VCARD\\nVERSION:4.0\\nEND:VCARD', this.defaultAddressbook);\n\t\t\tcontact.fullName = 'New contact';\n\t\t\t// itterate over all properties (filter is not usable on objects and we need the key of the property)\n\t\t\tfor (var name in _rfcProps2.default.properties) {\n\t\t\t\tif (_rfcProps2.default.properties[name].default) {\n\t\t\t\t\tvar defaultData = _rfcProps2.default.properties[name].defaultValue;\n\t\t\t\t\t// add default field\n\t\t\t\t\tvar property = contact.vCard.addPropertyWithValue(name, defaultData.value);\n\t\t\t\t\t// add default type\n\t\t\t\t\tif (defaultData.type) {\n\t\t\t\t\t\tproperty.setParameter('type', defaultData.type);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.selectedGroup !== t('contacts', 'All contacts')) {\n\t\t\t\tcontact.vCard.addPropertyWithValue('categories', this.selectedGroup);\n\t\t\t}\n\t\t\tthis.$store.dispatch('addContact', contact);\n\t\t\tthis.$router.push({\n\t\t\t\tname: 'contact',\n\t\t\t\tparams: {\n\t\t\t\t\tselectedGroup: this.selectedGroup,\n\t\t\t\t\tselectedContact: contact.key\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch sorting update request to the store\n *\n * @param {Object} state Default state\n * @param {Array} addressbooks Addressbooks\n */\n\t\tupdateSorting: function updateSorting() {\n\t\t\tvar orderKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'displayName';\n\n\t\t\tthis.$store.commit('setOrder', orderKey);\n\t\t\tthis.$store.commit('sortContacts');\n\t\t},\n\n\n\t\t/**\n * Select the first contact of the list\n * if none are selected already\n */\n\t\tselectFirstContactIfNone: function selectFirstContactIfNone() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar inList = this.contactsList.findIndex(function (contact) {\n\t\t\t\treturn contact.key === _this3.selectedContact;\n\t\t\t}) > -1;\n\t\t\tif (this.selectedContact === undefined || !inList) {\n\t\t\t\tif (this.selectedContact && !inList) {\n\t\t\t\t\tOC.Notification.showTemporary(t('contacts', 'Contact not found'));\n\t\t\t\t}\n\t\t\t\tif (Object.keys(this.contactsList).length) {\n\t\t\t\t\tthis.$router.push({\n\t\t\t\t\t\tname: 'contact',\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tselectedGroup: this.selectedGroup,\n\t\t\t\t\t\t\tselectedContact: Object.values(this.contactsList)[0].key\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdocument.querySelector('.app-content-list-item.active').scrollIntoView();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL0NvbnRhY3RzLnZ1ZT9lZjY1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztrQkFFQTtBQUNBO0FBQ0Esd0NBREE7QUFFQSw0Q0FGQTtBQUdBLG9DQUhBO0FBSUE7QUFKQSxFQURBOztBQVFBO0FBQ0E7QUFDQTtBQUNBLGVBREE7QUFFQSxxQkFGQTtBQUdBO0FBSEEsR0FEQTtBQU1BO0FBQ0EsZUFEQTtBQUVBO0FBRkE7QUFOQSxFQVRBOztBQXFCQSxLQXJCQSxrQkFxQkE7QUFDQTtBQUNBO0FBREE7QUFHQSxFQXpCQTs7O0FBMkJBO0FBQ0E7QUFDQSxjQUZBLDBCQUVBO0FBQ0E7QUFDQSxHQUpBO0FBS0EsZ0JBTEEsNEJBS0E7QUFDQTtBQUNBLEdBUEE7QUFRQSxVQVJBLHNCQVFBO0FBQ0E7QUFDQSxHQVZBO0FBV0EsUUFYQSxvQkFXQTtBQUNBO0FBQ0EsR0FiQTtBQWNBLFVBZEEsc0JBY0E7QUFDQTtBQUNBLEdBaEJBOzs7QUFrQkE7QUFDQSxvQkFuQkEsZ0NBbUJBO0FBQ0E7QUFBQTtBQUFBO0FBQ0EsR0FyQkE7OztBQXVCQTs7Ozs7O0FBTUEsY0E3QkEsMEJBNkJBO0FBQUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0EsR0F0Q0E7OztBQXdDQTtBQUNBLFlBekNBLHdCQXlDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FEQTtBQUVBLHNDQUZBO0FBR0E7QUFDQSxtQkFEQTtBQUVBO0FBRkEsTUFIQTtBQU9BLHFCQVBBO0FBUUE7QUFDQTtBQURBO0FBUkE7QUFZQSxJQWJBO0FBY0EsR0F4REE7OztBQTBEQTtBQUNBLE1BM0RBLGtCQTJEQTtBQUNBO0FBQ0EscUJBREE7QUFFQTtBQUNBLDZCQURBO0FBRUEsdUNBRkE7QUFHQSxxQkFIQTtBQUlBO0FBSkEsS0FGQTtBQVFBO0FBUkE7QUFVQSxHQXRFQTs7O0FBd0VBO0FBQ0EsVUF6RUEsc0JBeUVBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBLG1CQUZBO0FBR0EsOEJBSEE7QUFJQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQUpBO0FBUUEsdUNBUkE7QUFTQTtBQUNBO0FBREE7QUFUQTtBQWFBO0FBdkZBLEVBM0JBOztBQXFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQVJBLEVBckhBOztBQWdJQSxZQWhJQSx5QkFnSUE7QUFBQTs7QUFDQTtBQUNBO0FBQ0EsMENBQ0EsSUFEQSxDQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDQSxpRUFEQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0E7QUFDQSxJQUxBO0FBTUEsR0FSQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBbEpBOzs7QUFvSkE7QUFDQSxZQURBLHdCQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFEQTtBQUVBO0FBQ0Esc0NBREE7QUFFQTtBQUZBO0FBRkE7QUFPQSxHQTVCQTs7O0FBOEJBOzs7Ozs7QUFNQSxlQXBDQSwyQkFvQ0E7QUFBQTs7QUFDQTtBQUNBO0FBQ0EsR0F2Q0E7OztBQXlDQTs7OztBQUlBLDBCQTdDQSxzQ0E2Q0E7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFEQTtBQUVBO0FBQ0Esd0NBREE7QUFFQTtBQUZBO0FBRkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQTlEQTtBQXBKQSxDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vc3JjL3ZpZXdzL0NvbnRhY3RzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tXG4gIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTggSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICAtXG4gIC0gQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAgLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAgLSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gIC0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAgLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gIC0gR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gIC1cbiAgLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAgLSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICAtXG4gIC0tPlxuXG48dGVtcGxhdGU+XG5cdDxkaXYgaWQ9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY29udGFjdHNcIj5cblxuXHRcdDwhLS0gbmV3LWNvbnRhY3QtYnV0dG9uICsgbmF2aWdhdGlvbiArIHNldHRpbmdzIC0tPlxuXHRcdDxhcHAtbmF2aWdhdGlvbiA6bWVudT1cIm1lbnVcIj5cblx0XHRcdDwhLS0gc2V0dGluZ3MgLS0+XG5cdFx0XHQ8c2V0dGluZ3Mtc2VjdGlvbiBzbG90PVwic2V0dGluZ3MtY29udGVudFwiIC8+XG5cdFx0PC9hcHAtbmF2aWdhdGlvbj5cblxuXHRcdDwhLS0gbWFpbiBjb250ZW50IC0tPlxuXHRcdDxkaXYgaWQ9XCJhcHAtY29udGVudFwiPlxuXHRcdFx0PGRpdiBpZD1cImFwcC1jb250ZW50LXdyYXBwZXJcIj5cblx0XHRcdFx0PCEtLSBjb250YWN0cyBsaXN0IC0tPlxuXHRcdFx0XHQ8Y29udGVudC1saXN0IDpsaXN0PVwiY29udGFjdHNMaXN0XCIgOmNvbnRhY3RzPVwiY29udGFjdHNcIiA6bG9hZGluZz1cImxvYWRpbmdcIiAvPlxuXHRcdFx0XHQ8IS0tIG1haW4gY29udGFjdHMgZGV0YWlscyAtLT5cblx0XHRcdFx0PGNvbnRhY3QtZGV0YWlscyA6bG9hZGluZz1cImxvYWRpbmdcIiA6dWlkPVwic2VsZWN0ZWRDb250YWN0XCIgLz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXG5cdDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBhcHBOYXZpZ2F0aW9uIGZyb20gJy4uL2NvbXBvbmVudHMvY29yZS9hcHBOYXZpZ2F0aW9uJ1xuaW1wb3J0IHNldHRpbmdzU2VjdGlvbiBmcm9tICcuLi9jb21wb25lbnRzL1NldHRpbmdzU2VjdGlvbidcbmltcG9ydCBjb250ZW50TGlzdCBmcm9tICcuLi9jb21wb25lbnRzL0NvbnRlbnRMaXN0J1xuaW1wb3J0IGNvbnRhY3REZXRhaWxzIGZyb20gJy4uL2NvbXBvbmVudHMvQ29udGFjdERldGFpbHMnXG5cbmltcG9ydCBDb250YWN0IGZyb20gJy4uL21vZGVscy9jb250YWN0J1xuaW1wb3J0IHJmY1Byb3BzIGZyb20gJy4uL21vZGVscy9yZmNQcm9wcy5qcydcblxuLy8gaW1wb3J0IGNsaWVudCBmcm9tICcuLi9zZXJ2aWNlcy9jZGF2LmpzJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbXBvbmVudHM6IHtcblx0XHRhcHBOYXZpZ2F0aW9uLFxuXHRcdHNldHRpbmdzU2VjdGlvbixcblx0XHRjb250ZW50TGlzdCxcblx0XHRjb250YWN0RGV0YWlsc1xuXHR9LFxuXG5cdC8vIHBhc3NlZCBieSB0aGUgcm91dGVyXG5cdHByb3BzOiB7XG5cdFx0c2VsZWN0ZWRHcm91cDoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogdW5kZWZpbmVkLFxuXHRcdFx0cmVxdWlyZWQ6IHRydWVcblx0XHR9LFxuXHRcdHNlbGVjdGVkQ29udGFjdDoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogdW5kZWZpbmVkXG5cdFx0fVxuXHR9LFxuXG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGxvYWRpbmc6IHRydWVcblx0XHR9XG5cdH0sXG5cblx0Y29tcHV0ZWQ6IHtcblx0XHQvLyBzdG9yZSBnZXR0ZXJzXG5cdFx0YWRkcmVzc2Jvb2tzKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0QWRkcmVzc2Jvb2tzXG5cdFx0fSxcblx0XHRzb3J0ZWRDb250YWN0cygpIHtcblx0XHRcdHJldHVybiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFNvcnRlZENvbnRhY3RzXG5cdFx0fSxcblx0XHRjb250YWN0cygpIHtcblx0XHRcdHJldHVybiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldENvbnRhY3RzXG5cdFx0fSxcblx0XHRncm91cHMoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRHcm91cHNcblx0XHR9LFxuXHRcdG9yZGVyS2V5KCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0T3JkZXJLZXlcblx0XHR9LFxuXG5cdFx0Ly8gZmlyc3QgZW5hYmxlZCBhZGRyZXNzYm9vayBvZiB0aGUgbGlzdFxuXHRcdGRlZmF1bHRBZGRyZXNzYm9vaygpIHtcblx0XHRcdHJldHVybiB0aGlzLmFkZHJlc3Nib29rcy5maW5kKGFkZHJlc3Nib29rID0+IGFkZHJlc3Nib29rLmVuYWJsZWQpXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIENvbnRhY3RzIGxpc3QgYmFzZWQgb24gdGhlIHNlbGVjdGVkIGdyb3VwLlxuXHRcdCAqIFRob3NlIGZpbHRlcnMgYXJlIHByZXR0eSBmYXN0LCBzbyBsZXQncyBvbmx5XG5cdFx0ICogaW50ZXJzZWN0IHRoZSBncm91cHMgY29udGFjdHMgYW5kIHRoZSBmdWxsXG5cdFx0ICogc29ydGVkIGNvbnRhY3RzIExpc3QuXG5cdFx0ICovXG5cdFx0Y29udGFjdHNMaXN0KCkge1xuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRHcm91cCA9PT0gdCgnY29udGFjdHMnLCAnQWxsIGNvbnRhY3RzJykpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuc29ydGVkQ29udGFjdHNcblx0XHRcdH1cblx0XHRcdGxldCBncm91cCA9IHRoaXMuZ3JvdXBzLmZpbHRlcihncm91cCA9PiBncm91cC5uYW1lID09PSB0aGlzLnNlbGVjdGVkR3JvdXApWzBdXG5cdFx0XHRpZiAoZ3JvdXApIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuc29ydGVkQ29udGFjdHMuZmlsdGVyKGNvbnRhY3QgPT4gZ3JvdXAuY29udGFjdHMuaW5kZXhPZihjb250YWN0LmtleSkgPj0gMClcblx0XHRcdH1cblx0XHRcdHJldHVybiBbXVxuXHRcdH0sXG5cblx0XHQvLyBnZW5lcmF0ZSBncm91cHMgbWVudSBmcm9tIGdyb3VwcyBzdG9yZVxuXHRcdGdyb3Vwc01lbnUoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5ncm91cHMubWFwKGdyb3VwID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRpZDogZ3JvdXAubmFtZS5yZXBsYWNlKCcgJywgJ18nKSxcblx0XHRcdFx0XHRrZXk6IGdyb3VwLm5hbWUucmVwbGFjZSgnICcsICdfJyksXG5cdFx0XHRcdFx0cm91dGVyOiB7XG5cdFx0XHRcdFx0XHRuYW1lOiAnZ3JvdXAnLFxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7IHNlbGVjdGVkR3JvdXA6IGdyb3VwLm5hbWUgfVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dGV4dDogZ3JvdXAubmFtZSxcblx0XHRcdFx0XHR1dGlsczoge1xuXHRcdFx0XHRcdFx0Y291bnRlcjogZ3JvdXAuY29udGFjdHMubGVuZ3RoXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHQvLyBidWlsZGluZyB0aGUgbWFpbiBtZW51XG5cdFx0bWVudSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiAnZ3JvdXBzLWxpc3QnLFxuXHRcdFx0XHRuZXc6IHtcblx0XHRcdFx0XHRpZDogJ25ldy1jb250YWN0LWJ1dHRvbicsXG5cdFx0XHRcdFx0dGV4dDogdCgnY29udGFjdHMnLCAnTmV3IGNvbnRhY3QnKSxcblx0XHRcdFx0XHRpY29uOiAnaWNvbi1hZGQnLFxuXHRcdFx0XHRcdGFjdGlvbjogdGhpcy5uZXdDb250YWN0XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGl0ZW1zOiB0aGlzLmFsbEdyb3VwLmNvbmNhdCh0aGlzLmdyb3Vwc01lbnUpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8vIGRlZmF1bHQgZ3JvdXAgZm9yIGV2ZXJ5IGNvbnRhY3RzXG5cdFx0YWxsR3JvdXAoKSB7XG5cdFx0XHRyZXR1cm4gW3tcblx0XHRcdFx0aWQ6ICdldmVyeW9uZScsXG5cdFx0XHRcdGtleTogJ2V2ZXJ5b25lJyxcblx0XHRcdFx0aWNvbjogJ2ljb24tY29udGFjdHMtZGFyaycsXG5cdFx0XHRcdHJvdXRlcjoge1xuXHRcdFx0XHRcdG5hbWU6ICdncm91cCcsXG5cdFx0XHRcdFx0cGFyYW1zOiB7IHNlbGVjdGVkR3JvdXA6IHQoJ2NvbnRhY3RzJywgJ0FsbCBjb250YWN0cycpIH1cblx0XHRcdFx0fSxcblx0XHRcdFx0dGV4dDogdCgnY29udGFjdHMnLCAnQWxsIGNvbnRhY3RzJyksXG5cdFx0XHRcdHV0aWxzOiB7XG5cdFx0XHRcdFx0Y291bnRlcjogdGhpcy5zb3J0ZWRDb250YWN0cy5sZW5ndGhcblx0XHRcdFx0fVxuXHRcdFx0fV1cblx0XHR9XG5cdH0sXG5cblx0d2F0Y2g6IHtcblx0XHQvLyB3YXRjaCB1cmwgY2hhbmdlIGFuZCBncm91cCBzZWxlY3Rcblx0XHRzZWxlY3RlZEdyb3VwOiBmdW5jdGlvbigpIHtcblx0XHRcdHRoaXMuc2VsZWN0Rmlyc3RDb250YWN0SWZOb25lKClcblx0XHR9LFxuXHRcdC8vIHdhdGNoIHVybCBjaGFuZ2UgYW5kIGNvbnRhY3Qgc2VsZWN0XG5cdFx0c2VsZWN0ZWRDb250YWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdHRoaXMuc2VsZWN0Rmlyc3RDb250YWN0SWZOb25lKClcblx0XHR9XG5cdH0sXG5cblx0YmVmb3JlTW91bnQoKSB7XG5cdFx0Ly8gZ2V0IGFkZHJlc3Nib29rcyB0aGVuIGdldCBjb250YWN0c1xuXHRcdC8vIGNsaWVudC5jb25uZWN0KHsgZW5hYmxlQ2FyZERBVjogdHJ1ZSB9KS50aGVuKCgpID0+IHtcblx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnZ2V0QWRkcmVzc2Jvb2tzJylcblx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0UHJvbWlzZS5hbGwodGhpcy5hZGRyZXNzYm9va3MubWFwKGFzeW5jIGFkZHJlc3Nib29rID0+IHtcblx0XHRcdFx0XHRhd2FpdCB0aGlzLiRzdG9yZS5kaXNwYXRjaCgnZ2V0Q29udGFjdHNGcm9tQWRkcmVzc0Jvb2snLCBhZGRyZXNzYm9vaylcblx0XHRcdFx0fSkpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RGaXJzdENvbnRhY3RJZk5vbmUoKVxuXHRcdFx0XHR9KVxuXHRcdFx0fSlcblx0XHRcdC8vIGNoZWNrIGxvY2FsIHN0b3JhZ2UgZm9yIG9yZGVyS2V5XG5cdFx0aWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcmRlcktleScpKSB7XG5cdFx0XHQvLyBydW4gc2V0T3JkZXIgbXV0YXRpb24gd2l0aCBsb2NhbCBzdG9yYWdlIGtleVxuXHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdzZXRPcmRlcicsIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcmRlcktleScpKVxuXHRcdH1cblx0XHQvLyB9KVxuXHR9LFxuXG5cdG1ldGhvZHM6IHtcblx0XHRuZXdDb250YWN0KCkge1xuXHRcdFx0bGV0IGNvbnRhY3QgPSBuZXcgQ29udGFjdCgnQkVHSU46VkNBUkRcXG5WRVJTSU9OOjQuMFxcbkVORDpWQ0FSRCcsIHRoaXMuZGVmYXVsdEFkZHJlc3Nib29rKVxuXHRcdFx0Y29udGFjdC5mdWxsTmFtZSA9ICdOZXcgY29udGFjdCdcblx0XHRcdC8vIGl0dGVyYXRlIG92ZXIgYWxsIHByb3BlcnRpZXMgKGZpbHRlciBpcyBub3QgdXNhYmxlIG9uIG9iamVjdHMgYW5kIHdlIG5lZWQgdGhlIGtleSBvZiB0aGUgcHJvcGVydHkpXG5cdFx0XHRmb3IgKGxldCBuYW1lIGluIHJmY1Byb3BzLnByb3BlcnRpZXMpIHtcblx0XHRcdFx0aWYgKHJmY1Byb3BzLnByb3BlcnRpZXNbbmFtZV0uZGVmYXVsdCkge1xuXHRcdFx0XHRcdGxldCBkZWZhdWx0RGF0YSA9IHJmY1Byb3BzLnByb3BlcnRpZXNbbmFtZV0uZGVmYXVsdFZhbHVlXG5cdFx0XHRcdFx0Ly8gYWRkIGRlZmF1bHQgZmllbGRcblx0XHRcdFx0XHRsZXQgcHJvcGVydHkgPSBjb250YWN0LnZDYXJkLmFkZFByb3BlcnR5V2l0aFZhbHVlKG5hbWUsIGRlZmF1bHREYXRhLnZhbHVlKVxuXHRcdFx0XHRcdC8vIGFkZCBkZWZhdWx0IHR5cGVcblx0XHRcdFx0XHRpZiAoZGVmYXVsdERhdGEudHlwZSkge1xuXHRcdFx0XHRcdFx0cHJvcGVydHkuc2V0UGFyYW1ldGVyKCd0eXBlJywgZGVmYXVsdERhdGEudHlwZSlcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRHcm91cCAhPT0gdCgnY29udGFjdHMnLCAnQWxsIGNvbnRhY3RzJykpIHtcblx0XHRcdFx0Y29udGFjdC52Q2FyZC5hZGRQcm9wZXJ0eVdpdGhWYWx1ZSgnY2F0ZWdvcmllcycsIHRoaXMuc2VsZWN0ZWRHcm91cClcblx0XHRcdH1cblx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRDb250YWN0JywgY29udGFjdClcblx0XHRcdHRoaXMuJHJvdXRlci5wdXNoKHtcblx0XHRcdFx0bmFtZTogJ2NvbnRhY3QnLFxuXHRcdFx0XHRwYXJhbXM6IHtcblx0XHRcdFx0XHRzZWxlY3RlZEdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXAsXG5cdFx0XHRcdFx0c2VsZWN0ZWRDb250YWN0OiBjb250YWN0LmtleVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBEaXNwYXRjaCBzb3J0aW5nIHVwZGF0ZSByZXF1ZXN0IHRvIHRoZSBzdG9yZVxuXHRcdCAqXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIERlZmF1bHQgc3RhdGVcblx0XHQgKiBAcGFyYW0ge0FycmF5fSBhZGRyZXNzYm9va3MgQWRkcmVzc2Jvb2tzXG5cdFx0ICovXG5cdFx0dXBkYXRlU29ydGluZyhvcmRlcktleSA9ICdkaXNwbGF5TmFtZScpIHtcblx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdCgnc2V0T3JkZXInLCBvcmRlcktleSlcblx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdCgnc29ydENvbnRhY3RzJylcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogU2VsZWN0IHRoZSBmaXJzdCBjb250YWN0IG9mIHRoZSBsaXN0XG5cdFx0ICogaWYgbm9uZSBhcmUgc2VsZWN0ZWQgYWxyZWFkeVxuXHRcdCAqL1xuXHRcdHNlbGVjdEZpcnN0Q29udGFjdElmTm9uZSgpIHtcblx0XHRcdGxldCBpbkxpc3QgPSB0aGlzLmNvbnRhY3RzTGlzdC5maW5kSW5kZXgoY29udGFjdCA9PiBjb250YWN0LmtleSA9PT0gdGhpcy5zZWxlY3RlZENvbnRhY3QpID4gLTFcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkQ29udGFjdCA9PT0gdW5kZWZpbmVkIHx8ICFpbkxpc3QpIHtcblx0XHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRDb250YWN0ICYmICFpbkxpc3QpIHtcblx0XHRcdFx0XHRPQy5Ob3RpZmljYXRpb24uc2hvd1RlbXBvcmFyeSh0KCdjb250YWN0cycsICdDb250YWN0IG5vdCBmb3VuZCcpKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh0aGlzLmNvbnRhY3RzTGlzdCkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy4kcm91dGVyLnB1c2goe1xuXHRcdFx0XHRcdFx0bmFtZTogJ2NvbnRhY3QnLFxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XG5cdFx0XHRcdFx0XHRcdHNlbGVjdGVkR3JvdXA6IHRoaXMuc2VsZWN0ZWRHcm91cCxcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRDb250YWN0OiBPYmplY3QudmFsdWVzKHRoaXMuY29udGFjdHNMaXN0KVswXS5rZXlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hcHAtY29udGVudC1saXN0LWl0ZW0uYWN0aXZlJykuc2Nyb2xsSW50b1ZpZXcoKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG48L3NjcmlwdD5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/views/Contacts.vue?vue&type=script&lang=js&\n");
/***/ }),
@@ -684,18 +684,6 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * Copyright (c) 2014,
/***/ }),
-/***/ "./node_modules/cdav-library/dist/dist.js":
-/*!************************************************!*\
- !*** ./node_modules/cdav-library/dist/dist.js ***!
- \************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\nvar cdav =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/normalize-url/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/normalize-url/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n// TODO: Use the `URL` global when targeting Node.js 10\\nconst URLParser = typeof URL === 'undefined' ? __webpack_require__(/*! url */ \\\"./node_modules/url/url.js\\\").URL : URL;\\n\\nfunction testParameter(name, filters) {\\n\\treturn filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\\n}\\n\\nmodule.exports = (urlString, opts) => {\\n\\topt