{"version":3,"sources":["webpack:///./src/components/profile/InfoCardList.vue?97d9","webpack:///./src/components/EditProfile.vue?34ae","webpack:///./src/components/EditProfile.vue","webpack:///./src/components/EditProfile.vue?e935","webpack:///./src/components/EditProfile.vue?7d66","webpack:///./src/views/profile/MyProfile.vue?aaa3","webpack:///./src/components/profile/OnlineUsersTable.vue?6a77","webpack:///./src/components/profile/OnlineUsersTable.vue","webpack:///./src/components/profile/OnlineUsersTable.vue?d57a","webpack:///./src/components/profile/OnlineUsersTable.vue?6d4d","webpack:///./src/components/profile/InfoCardList.vue?754e","webpack:///./src/components/profile/InfoCardList.vue","webpack:///./src/components/profile/InfoCardList.vue?1e77","webpack:///./src/components/profile/InfoCardList.vue?dfb5","webpack:///./src/components/profile/UserData.vue?ea19","webpack:///./src/components/ChangePassword.vue?37d3","webpack:///./src/components/ChangePassword.vue","webpack:///./src/components/ChangePassword.vue?120d","webpack:///./src/components/ChangePassword.vue?65c3","webpack:///./src/components/ApiKey.vue?2111","webpack:///./src/components/ApiKey.vue","webpack:///./src/components/ApiKey.vue?6ae8","webpack:///./src/components/ApiKey.vue?e990","webpack:///./src/components/profile/UserData.vue","webpack:///./src/components/profile/UserData.vue?ca7f","webpack:///./src/components/profile/UserData.vue?c756","webpack:///./src/views/profile/MyProfile.vue","webpack:///./src/views/profile/MyProfile.vue?ec5d","webpack:///./src/views/profile/MyProfile.vue?d429","webpack:///./src/components/profile/UserData.vue?a2b1","webpack:///./src/components/ChangePassword.vue?607e","webpack:///./src/components/EditProfile.vue?c58a","webpack:///./src/components/ApiKey.vue?6c68"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","on","closeModal","model","value","callback","$$v","open","expression","staticClass","_v","ref","submitting","$event","preventDefault","handleUpdateProfile","apply","arguments","isFormValid","emailValidation","required","valid","email","nameValidation","name","titleValidation","title","phoneNumberValidation","phoneNumber","availableRoles","canEditRoles","role","_s","errorResponse","_l","message","index","key","_e","notificationDurationMs","showUpdatedProfileNotification","staticRenderFns","User","getModule","UserModule","store","EditProfile","submittedError","isAdmin","test","roleValidation","setUserDetails","userName","userEmail","userTitle","userPhone","userRole","updateUser","id","userId","then","showProfileUpdatedNotification","error","Utilities","formatError","Vue","__decorate","PropSync","type","Boolean","default","Component","component","VAlert","VBtn","VCard","VCardActions","VCardText","VCardTitle","VCol","VDialog","VForm","VRow","VSelect","VSnackbar","VTextField","v","updateVesselDataOutdatedSetting","daysBeforeVesselDataOutdated","staticStyle","vesselDataOutdatedUpdatedPopup","headers","onlineUsers","scopedSlots","_u","fn","item","_f","lastActivityDate","companyId","proxy","Users","UsersModule","OnlineUsersTable","text","class","width","adminHeaders","Prop","VDataTable","companiesCount","ActiveVesselsCount","InactiveVesselsCount","UnassignedVesselsCount","usersCount","vesselAccessGroupsCount","Companies","CompaniesModule","VesselsAdmin","VesselsAdminModule","VesselAccessGroups","VesselAccessGroupsModule","InfoCardList","VIcon","companies","activeCompanyId","stopPropagation","EditProfilePopup","ChangePasswordPopup","ApiKeyPopup","handleChangePassword","showPassword","passwordRules","payload","$set","Math","random","showNewPassword","minimumPasswordLength","passwordsEqualBool","passwordsEqual","repeatPassword","showChangedPasswordNotification","Auth","AuthModule","ChangePassword","username","currentPassword","newPassword","length","form","$refs","changePassword","response","reset","showPasswordUpdatedNotification","handleGenerateKey","currentApiKey","hasActiveApiKey","handleDeleteKey","notification","duration","ApiKey","generateApiKeyDialogOpen","visible","userApiKey","confirmDelete","confirmed","generateApiKey","clearApiKey","showErrorSnackbar","Ref","components","ConfirmDialog","UserData","val","oldVal","viewAsCompany","window","location","reload","isSuperOrAdmin","userCompanyId","Watch","MyProfile","daysBeforeDataOutdated","updateDaysBeforeVesselDataOutdated","beforeRouteEnter","to","from","next","usersPromise","refreshUsers","usersOnlinePromise","refreshOnlineUsers","promises","accessGroupsPromise","refreshVesselAccessGroups","vesselsPromise","refreshAllVessels","companiesPromise","refreshCompanies","Promise","all","VDivider"],"mappings":"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","file":"js/chunk-6ea5f4e5.6fdcf8ab.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCardList.vue?vue&type=style&index=0&id=6fa9e0ce&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"max-width\":\"400px\"},on:{\"click:outside\":_vm.closeModal},model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Edit profile\")])]),_c('v-form',{ref:\"editProfile\",staticClass:\"mt-2\",attrs:{\"disabled\":_vm.submitting,\"id\":\"update-profile-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleUpdateProfile.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card-text',[_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Email\",\"name\":\"email\",\"prepend-icon\":\"mdi-at\",\"rules\":[_vm.emailValidation.required, _vm.emailValidation.valid],\"disabled\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Name\",\"name\":\"name\",\"prepend-icon\":\"mdi-account\",\"rules\":[_vm.nameValidation.required]},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Title\",\"name\":\"title\",\"prepend-icon\":\"mdi-badge-account-horizontal-outline\",\"rules\":[_vm.titleValidation.required]},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Phone number\",\"name\":\"phoneNumber\",\"prepend-icon\":\"mdi-phone\",\"rules\":[_vm.phoneNumberValidation.valid]},model:{value:(_vm.phoneNumber),callback:function ($$v) {_vm.phoneNumber=$$v},expression:\"phoneNumber\"}}),_c('v-select',{attrs:{\"solo\":\"\",\"label\":\"Role\",\"name\":\"role\",\"prepend-icon\":\"mdi-briefcase-account-outline\",\"items\":_vm.availableRoles,\"disabled\":!_vm.canEditRoles},model:{value:(_vm.role),callback:function ($$v) {_vm.role=$$v},expression:\"role\"}}),(_vm.submittedError)?_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"error\",\"dense\":\"\",\"border\":\"left\"}},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.errorResponse.title))]),_c('ul',_vm._l((_vm.errorResponse.messages),function(message,index){return _c('li',{key:index},[_vm._v(_vm._s(message))])}),0)]):_vm._e()],1),_c('v-card-actions',[_c('v-row',{attrs:{\"align\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('div',{staticClass:\"my-2\"},[_c('v-btn',{staticClass:\"font-weight-semibold\",attrs:{\"type\":\"submit\",\"form\":\"update-profile-form\",\"color\":\"accent\",\"block\":\"\",\"loading\":_vm.submitting,\"disabled\":!_vm.isFormValid}},[_vm._v(\"Save \")])],1),_c('v-btn',{staticClass:\"font-weight-semibold\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.closeModal}},[_vm._v(\" Cancel \")])],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"timeout\":_vm.notificationDurationMs,\"color\":\"primary\"},model:{value:(_vm.showUpdatedProfileNotification),callback:function ($$v) {_vm.showUpdatedProfileNotification=$$v},expression:\"showUpdatedProfileNotification\"}},[_vm._v(\"Profile updated successfully\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\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\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport Utilities from \"@/utilities/utilities\";\nimport { FormattedError } from \"@/types/formattedError\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport UserModule from \"@/store/clients/User.module\";\n\nconst User = getModule(UserModule, store);\n\n@Component\nexport default class EditProfile extends Vue {\n //Two way prop to handle open/close popup both from parent and component\n @PropSync(\"openPopup\", { type: Boolean, default: false }) open!: boolean;\n\n name = \"\";\n email = \"\";\n title = \"\";\n phoneNumber: string | null = \"\";\n role: string | null = \"\";\n isFormValid = true;\n submittedError = false;\n submitting = false;\n errorResponse!: FormattedError;\n showUpdatedProfileNotification = false;\n notificationDurationMs = 3500;\n canEditRoles = User.isAdmin;\n availableRoles = [\"User\", \"SuperUser\", \"KognifaiUser\", \"Administrator\"];\n\n emailValidation = {\n required: (value: string) => !!value || \"Email required\",\n valid: (value: string) => /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(value) || \"Invalid email\",\n };\n nameValidation = {\n required: (value: string) => !!value || \"Name required\",\n };\n titleValidation = {\n required: (value: string) => !!value || \"Title required\",\n };\n phoneNumberValidation = {\n valid: (value: string) => {\n if (value) return /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[ 0-9]*$/.test(value) || \"Invalid phone number. Use only +, () and digits.\";\n else return true;\n },\n };\n\n roleValidation = {\n required: (value: string) => !!value || \"Role required\",\n };\n\n created(): void {\n this.setUserDetails();\n }\n\n closeModal(): void {\n this.open = false;\n this.setUserDetails();\n }\n\n setUserDetails(): void {\n this.name = User.userName;\n this.email = User.userEmail;\n this.title = User.userTitle;\n this.phoneNumber = User.userPhone;\n this.role = User.userRole;\n }\n\n handleUpdateProfile(): void {\n this.submittedError = false;\n this.submitting = true;\n User.updateUser({\n id: User.userId,\n name: this.name,\n title: this.title,\n phoneNumber: this.phoneNumber,\n role: this.role,\n }).then(\n () => {\n this.submitting = false;\n this.open = false;\n this.showProfileUpdatedNotification();\n },\n error => {\n this.errorResponse = Utilities.formatError(error);\n this.submittedError = true;\n this.submitting = false;\n }\n );\n }\n\n showProfileUpdatedNotification(): void {\n this.showUpdatedProfileNotification = true;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditProfile.vue?vue&type=template&id=871f8fe6&\"\nimport script from \"./EditProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditProfile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EditProfile.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VRow,VSelect,VSnackbar,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('default-container',[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('UserData')],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[(_vm.isSuperOrAdmin)?_c('v-row',[_c('v-col',[_c('div',{staticClass:\"text-h6 mb-3\"},[_vm._v(\"Additional information\")]),_c('InfoCardList',{attrs:{\"isAdmin\":_vm.isAdmin}})],1)],1):_vm._e(),(_vm.isSuperOrAdmin)?_c('v-divider',{staticClass:\"my-4\"}):_vm._e(),_c('v-card',{staticClass:\"pa-6\",attrs:{\"outlined\":\"\"}},[_c('v-row',[_c('div',{staticClass:\"text-h6 mb-3\"},[_vm._v(\"Settings\")])]),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center align-center\"},[_c('p',[_vm._v(\"Days before vessel data is considered outdated. Enter 0 for never.\")])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"ma-0 pa-0\",attrs:{\"append-outer-icon\":\"mdi-content-save\",\"rules\":[function (v) { return /^\\d{1,3}$/.test(v) || 'Numbers only, maximum 999 days.'; }]},on:{\"click:append-outer\":_vm.updateVesselDataOutdatedSetting},model:{value:(_vm.daysBeforeVesselDataOutdated),callback:function ($$v) {_vm.daysBeforeVesselDataOutdated=$$v},expression:\"daysBeforeVesselDataOutdated\"}}),_c('v-snackbar',{staticStyle:{},attrs:{\"timeout\":2500,\"color\":\"primary\"},model:{value:(_vm.vesselDataOutdatedUpdatedPopup),callback:function ($$v) {_vm.vesselDataOutdatedUpdatedPopup=$$v},expression:\"vesselDataOutdatedUpdatedPopup\"}},[_vm._v(\"Updated days before vessel data is considered outdated\")])],1)],1)],1)],1)],1),_c('v-divider',{staticClass:\"my-4\"}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h3',{staticClass:\"text-h6 mb-2\"},[_vm._v(\"Online users\")]),_c('OnlineUsersTable',{attrs:{\"isAdmin\":_vm.isAdmin}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table',{staticClass:\"users-table elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.onlineUsers,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"item.lastActivityDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm._f(\"dateDMYT\")(item.lastActivityDate)))])]}},{key:\"item.companyId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm._f(\"companyName\")(item.companyId)))])]}},{key:\"no-data\",fn:function(){return [_vm._v(\" NO ONLINE USERS \")]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport store from \"@/store\";\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { getModule } from \"vuex-module-decorators\";\nimport UsersModule from \"@/store/clients/Users.module\";\nimport { UserProfile } from \"@/types/userProfile\";\n\nconst Users = getModule(UsersModule, store);\n\n@Component\nexport default class OnlineUsersTable extends Vue {\n @Prop({ default: false }) isAdmin!: boolean;\n headers: { text: string; value: string; class: string; width?: string }[] = [\n {\n text: \"Name\",\n value: \"name\",\n class: \"v-data-table-column-header\",\n width: \"100px\",\n },\n {\n text: \"Email\",\n value: \"email\",\n class: \"v-data-table-column-header\",\n width: \"120px\",\n },\n {\n text: \"Last activity\",\n value: \"lastActivityDate\",\n class: \"v-data-table-column-header\",\n width: \"180px\",\n },\n ];\n adminHeaders = [\n {\n text: \"Role\",\n value: \"role\",\n class: \"v-data-table-column-header\",\n // maxWidth: \"80px\",\n },\n {\n text: \"Company\",\n value: \"companyId\",\n class: \"v-data-table-column-header\",\n // width: \"200px\",\n },\n ];\n\n get onlineUsers(): UserProfile[] {\n return Users.onlineUsers;\n }\n\n created(): void {\n if (this.isAdmin) this.headers = [...this.headers, ...this.adminHeaders];\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineUsersTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineUsersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OnlineUsersTable.vue?vue&type=template&id=2533129b&\"\nimport script from \"./OnlineUsersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./OnlineUsersTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VDataTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"info-card-list\"},[(_vm.isAdmin)?_c('router-link',{staticClass:\"info-card\",attrs:{\"to\":\"/Company\"}},[_c('div',{staticClass:\"info-card__text primary--text\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-office-building\")]),_vm._v(\" Company List \")],1),_c('div',{staticClass:\"info-card__counter primary--text\"},[_vm._v(_vm._s(_vm.companiesCount))])]):_vm._e(),(_vm.isAdmin)?_c('router-link',{staticClass:\"info-card\",attrs:{\"to\":\"/VesselAdministration\"}},[_c('div',{staticClass:\"info-card__text primary--text\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-ferry\")]),_vm._v(\" Vessels \")],1),_c('div',{staticClass:\"info-card__counter primary--text\"},[_vm._v(_vm._s(_vm.ActiveVesselsCount)+\" / \"+_vm._s(_vm.InactiveVesselsCount))]),(_vm.UnassignedVesselsCount)?_c('div',{staticClass:\"info-card__corner\"},[_vm._v(_vm._s(_vm.UnassignedVesselsCount))]):_vm._e()]):_vm._e(),_c('router-link',{staticClass:\"info-card\",attrs:{\"to\":\"/Users\"}},[_c('div',{staticClass:\"info-card__text primary--text\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-account-group\")]),_vm._v(\" User List \")],1),_c('div',{staticClass:\"info-card__counter primary--text\"},[_vm._v(_vm._s(_vm.usersCount))])]),_c('router-link',{staticClass:\"info-card\",attrs:{\"to\":\"/VesselAccessControl\"}},[_c('div',{staticClass:\"info-card__text primary--text\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-lock-open-check\")]),_vm._v(\" Vessel Access Groups \")],1),_c('div',{staticClass:\"info-card__counter primary--text\"},[_vm._v(_vm._s(_vm.vesselAccessGroupsCount))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport CompaniesModule from \"@/store/clients/Companies.module\";\nimport VesselsAdminModule from \"@/store/clients/VesselsAdmin.module\";\nimport UsersModule from \"@/store/clients/Users.module\";\nimport VesselAccessGroupsModule from \"@/store/clients/VesselAccessGroups.module\";\n\nconst Companies = getModule(CompaniesModule, store);\nconst VesselsAdmin = getModule(VesselsAdminModule, store);\nconst Users = getModule(UsersModule, store);\nconst VesselAccessGroups = getModule(VesselAccessGroupsModule, store);\n\n@Component\nexport default class InfoCardList extends Vue {\n @Prop({ default: false }) isAdmin!: boolean;\n // Companies getters\n get companiesCount(): number {\n return Companies.companiesCount;\n }\n\n // VesselsAdmin getters\n get UnassignedVesselsCount(): number {\n return VesselsAdmin.UnassignedVesselsCount;\n }\n get ActiveVesselsCount(): number {\n return VesselsAdmin.ActiveVesselsCount;\n }\n get InactiveVesselsCount(): number {\n return VesselsAdmin.InactiveVesselsCount;\n }\n\n // Users getters\n get usersCount(): number {\n return Users.usersCount;\n }\n\n // VesselCategories getters\n get vesselAccessGroupsCount(): number {\n return VesselAccessGroups.vesselAccessGroupsCount;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCardList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCardList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InfoCardList.vue?vue&type=template&id=6fa9e0ce&scoped=true&\"\nimport script from \"./InfoCardList.vue?vue&type=script&lang=ts&\"\nexport * from \"./InfoCardList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InfoCardList.vue?vue&type=style&index=0&id=6fa9e0ce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fa9e0ce\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user\"},[_c('div',{staticClass:\"user__headline\"},[_c('h3',{staticClass:\"text-h4 font-weight-medium\"},[_vm._v(_vm._s(_vm.userName))]),_c('p',{staticClass:\"overline\"},[_vm._v(_vm._s(_vm.userTitle))])]),_c('div',{staticClass:\"user__contact\"},[(_vm.userEmail)?_c('p',[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"dense\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-email\")]),_c('a',{attrs:{\"href\":(\"mailto:\" + _vm.userEmail)}},[_vm._v(_vm._s(_vm.userEmail))])],1):_vm._e(),(_vm.userPhone)?_c('p',[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"dense\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-phone\")]),_vm._v(\" \"+_vm._s(_vm.userPhone)+\" \")],1):_vm._e()]),(_vm.isAdmin)?_c('v-select',{staticClass:\"user__role-select\",attrs:{\"item-value\":\"id\",\"item-text\":\"name\",\"items\":_vm.companies,\"label\":\"View Danelec Fleet Insights as:\"},model:{value:(_vm.activeCompanyId),callback:function ($$v) {_vm.activeCompanyId=$$v},expression:\"activeCompanyId\"}}):_vm._e(),_c('div',{staticClass:\"user__actions\"},[_c('v-btn',{staticClass:\"mr-2 mb-2 font-weight-semibold\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.EditProfilePopup = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-account-edit\")]),_vm._v(\" Edit profile \")],1),_c('v-btn',{staticClass:\"mr-2 mb-2 font-weight-semibold\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.ChangePasswordPopup = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-lock-reset\")]),_vm._v(\" Change password \")],1),(_vm.isSuperOrAdmin)?_c('v-btn',{staticClass:\"mr-2 mb-2 font-weight-semibold\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.ApiKeyPopup = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-api\")]),_vm._v(\" API key \")],1):_vm._e()],1),_c('ChangePassword',{attrs:{\"openPopup\":_vm.ChangePasswordPopup},on:{\"update:openPopup\":function($event){_vm.ChangePasswordPopup=$event},\"update:open-popup\":function($event){_vm.ChangePasswordPopup=$event}}}),_c('EditProfile',{attrs:{\"openPopup\":_vm.EditProfilePopup},on:{\"update:openPopup\":function($event){_vm.EditProfilePopup=$event},\"update:open-popup\":function($event){_vm.EditProfilePopup=$event}}}),(_vm.isSuperOrAdmin)?_c('ApiKey',{attrs:{\"openPopup\":_vm.ApiKeyPopup},on:{\"update:openPopup\":function($event){_vm.ApiKeyPopup=$event},\"update:open-popup\":function($event){_vm.ApiKeyPopup=$event}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"max-width\":\"400px\"},model:{value:(_vm.ChangePasswordPopup),callback:function ($$v) {_vm.ChangePasswordPopup=$$v},expression:\"ChangePasswordPopup\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Change password\")])]),_c('v-form',{ref:\"changePassword\",staticClass:\"mt-2\",attrs:{\"disabled\":_vm.submitting,\"id\":\"change-password-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleChangePassword.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card-text',[_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Enter current password\",\"name\":\"password\",\"prepend-icon\":\"mdi-lock\",\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.passwordRules.required],\"type\":_vm.showPassword ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.payload.currentPassword),callback:function ($$v) {_vm.$set(_vm.payload, \"currentPassword\", $$v)},expression:\"payload.currentPassword\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Enter a new password\",\"name\":Math.random(),\"autocomplete\":\"new-password\",\"prepend-icon\":\"mdi-lock-plus\",\"append-icon\":_vm.showNewPassword ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.passwordRules.required, _vm.passwordRules.valid],\"type\":_vm.showNewPassword ? 'text' : 'password',\"hint\":'must be at least ' + _vm.minimumPasswordLength + ' characters'},on:{\"click:append\":function($event){_vm.showNewPassword = !_vm.showNewPassword}},model:{value:(_vm.payload.newPassword),callback:function ($$v) {_vm.$set(_vm.payload, \"newPassword\", $$v)},expression:\"payload.newPassword\"}}),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Confirm password\",\"name\":Math.random(),\"autocomplete\":\"new-password-repeat\",\"prepend-icon\":_vm.passwordsEqualBool ? 'mdi-lock-check' : 'mdi-lock-question',\"type\":\"password\",\"rules\":[_vm.passwordsEqual]},model:{value:(_vm.repeatPassword),callback:function ($$v) {_vm.repeatPassword=$$v},expression:\"repeatPassword\"}}),(_vm.submittedError)?_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"error\",\"dense\":\"\",\"border\":\"left\"}},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.errorResponse.title))]),_c('ul',_vm._l((_vm.errorResponse.messages),function(message,index){return _c('li',{key:index},[_vm._v(_vm._s(message))])}),0)]):_vm._e()],1),_c('v-card-actions',[_c('v-row',{attrs:{\"align\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('div',{staticClass:\"my-2\"},[_c('v-btn',{staticClass:\"font-weight-semibold\",attrs:{\"type\":\"submit\",\"form\":\"change-password-form\",\"color\":\"accent\",\"block\":\"\",\"loading\":_vm.submitting,\"disabled\":!_vm.isFormValid}},[_vm._v(\"Save \")])],1),_c('v-btn',{staticClass:\"font-weight-semibold\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.ChangePasswordPopup = false}}},[_vm._v(\" Cancel \")])],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"timer\":_vm.notificationDurationMs,\"color\":\"primary\"},model:{value:(_vm.showChangedPasswordNotification),callback:function ($$v) {_vm.showChangedPasswordNotification=$$v},expression:\"showChangedPasswordNotification\"}},[_vm._v(\"Password updated successfully\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport Utilities from \"@/utilities/utilities\";\nimport { FormattedError } from \"@/types/formattedError\";\nimport { ChangePasswordData } from \"@/types/changePasswordData\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport AuthModule from \"@/store/clients/Auth.module\";\nimport UserModule from \"@/store/clients/User.module\";\n\nconst User = getModule(UserModule, store);\nconst Auth = getModule(AuthModule, store);\n\n@Component\nexport default class ChangePassword extends Vue {\n //Two way prop to handle open/close popup both from parent and component\n @PropSync(\"openPopup\", { type: Boolean, default: false }) ChangePasswordPopup!: boolean;\n //data to send\n payload: ChangePasswordData = { username: \"\", currentPassword: \"\", newPassword: \"\" };\n //change this if we want to alter password minimum length frontend. Currently it is 6 on the server\n minimumPasswordLength = 6;\n //form state\n isFormValid = true;\n //toggle input type to reveal password\n showPassword = false;\n showNewPassword = false;\n //holds the confirm password string\n repeatPassword = \"\";\n //state submitted\n submittedError = false;\n //state submitting\n submitting = false;\n //Errormessage is displayed in a v-alert\n errorResponse!: FormattedError;\n showChangedPasswordNotification = false;\n //How long the notification is shown on screen in ms\n notificationDurationMs = 3500;\n //input validation\n passwordRules = {\n required: (value: string) => !!value || \"Password required\",\n valid: (value: string) => (value && value.length >= this.minimumPasswordLength) || `Password must be at least ${this.minimumPasswordLength} characters`,\n };\n\n //validate if passwords are equal\n get passwordsEqual(): boolean | string {\n return this.passwordsEqualBool || \"Password mismatch\";\n }\n\n get passwordsEqualBool(): boolean {\n return this.repeatPassword === this.payload.newPassword;\n }\n\n created(): void {\n this.payload.username = User.userEmail;\n }\n\n handleChangePassword(): void {\n this.submittedError = false;\n this.submitting = true;\n const form: any = this.$refs.changePassword;\n Auth.changePassword(this.payload).then(\n response => {\n form.reset();\n this.submitting = false;\n this.ChangePasswordPopup = false;\n this.showPasswordUpdatedNotification();\n },\n error => {\n form.reset();\n this.errorResponse = Utilities.formatError(error);\n this.submittedError = true;\n this.submitting = false;\n }\n );\n }\n\n showPasswordUpdatedNotification(): void {\n this.showChangedPasswordNotification = true;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangePassword.vue?vue&type=template&id=699746de&\"\nimport script from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChangePassword.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VRow,VSnackbar,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ConfirmDialog',{ref:\"confirmDelete\"}),_c('v-dialog',{attrs:{\"max-width\":\"290px\"},on:{\"click:outside\":_vm.closeModal},model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"API key\")])]),_c('v-form',{ref:\"apiKey\",staticClass:\"mt-2\",attrs:{\"disabled\":_vm.submitting,\"id\":\"api-key-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleGenerateKey.apply(null, arguments)}}},[_c('v-card-text',[_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"API key\",\"name\":\"apiKey\",\"prepend-icon\":\"mdi-at\",\"readonly\":\"\",\"background-color\":\"grey lighten-4\"},model:{value:(_vm.currentApiKey),callback:function ($$v) {_vm.currentApiKey=$$v},expression:\"currentApiKey\"}})],1),_c('v-card-actions',[_c('v-row',{attrs:{\"align\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"my-2 font-weight-semibold\",attrs:{\"color\":\"accent\",\"block\":\"\",\"loading\":_vm.submitting},on:{\"click\":_vm.handleGenerateKey}},[_vm._v(\" Generate API Key \")]),_c('v-btn',{staticClass:\"my-2 font-weight-semibold\",attrs:{\"color\":\"accent\",\"block\":\"\",\"loading\":_vm.submitting,\"disabled\":!_vm.hasActiveApiKey},on:{\"click\":_vm.handleDeleteKey}},[_vm._v(\" Delete API Key \")]),_c('v-btn',{staticClass:\"my-2 font-weight-semibold\",attrs:{\"color\":\"primary \",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.closeModal}},[_vm._v(\" Close \")])],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"timeout\":_vm.notification.duration,\"color\":\"primary\"},model:{value:(_vm.notification.visible),callback:function ($$v) {_vm.$set(_vm.notification, \"visible\", $$v)},expression:\"notification.visible\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-check\")]),_vm._v(_vm._s(_vm.notification.message)+\" \")],1),_c('v-snackbar',{attrs:{\"timeout\":_vm.notificationDurationMs,\"color\":\"error\"},model:{value:(_vm.submittedError),callback:function ($$v) {_vm.submittedError=$$v},expression:\"submittedError\"}},[_vm._v(\" Something went wrong \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\nimport { Component, PropSync, Ref, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport UserModule from \"@/store/clients/User.module\";\nimport ConfirmDialog from \"@/components/ConfirmDialog.vue\";\n\nconst User = getModule(UserModule, store);\n\n@Component({\n components: {\n ConfirmDialog,\n },\n})\nexport default class ApiKey extends Vue {\n //Two way prop to handle open/close popup both from parent and component\n @PropSync(\"openPopup\", { type: Boolean, default: false }) open!: boolean;\n @Ref(\"confirmDelete\") confirmDelete!: any;\n\n currentApiKey = \"\";\n submittedError = false;\n submitting = false;\n notificationDurationMs = 3500;\n hasActiveApiKey = true;\n generateApiKeyDialogOpen = false;\n notification = {\n message: \"\",\n duration: 2000,\n visible: false,\n };\n\n created(): void {\n this.currentApiKey = User.userApiKey;\n if (this.currentApiKey === \"\" || null) {\n this.hasActiveApiKey = false;\n }\n }\n\n closeModal(): void {\n this.open = false;\n }\n\n async handleGenerateKey(): Promise {\n this.submitting = true;\n const confirmed = await this.confirmDelete.open(\"Generate API key\", \"If you generate a new API key the current one will be deleted. Are you sure you want to generate a new API key?\");\n\n if (confirmed) {\n User.generateApiKey().then(\n () => {\n this.currentApiKey = User.userApiKey;\n this.hasActiveApiKey = true;\n this.submitting = false;\n this.notification.message = \"API key generated\";\n this.notification.visible = true;\n },\n error => {\n this.submittedError = true;\n this.submitting = false;\n }\n );\n } else {\n this.submitting = false;\n }\n }\n\n async handleDeleteKey(): Promise {\n this.submitting = true;\n const confirmed = await this.confirmDelete.open(\"Delete API key\", \"Are you sure you want to delete the current API key?\");\n\n if (confirmed) {\n User.clearApiKey().then(\n () => {\n this.currentApiKey = User.userApiKey;\n this.hasActiveApiKey = false;\n this.submitting = false;\n this.notification.message = \"API key deleted\";\n this.notification.visible = true;\n },\n error => {\n this.showErrorSnackbar();\n this.submittedError = true;\n this.submitting = false;\n }\n );\n } else {\n this.submitting = false;\n }\n }\n\n showErrorSnackbar(): void {\n this.submittedError = true;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiKey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiKey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApiKey.vue?vue&type=template&id=36f12fe2&\"\nimport script from \"./ApiKey.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApiKey.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ApiKey.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VIcon,VRow,VSnackbar,VTextField})\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\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\n// store modules\nimport UserModule from \"@/store/clients/User.module\";\nimport UsersModule from \"@/store/clients/Users.module\";\nimport CompaniesModule from \"@/store/clients/Companies.module\";\n\n// components\nimport ChangePassword from \"@/components/ChangePassword.vue\";\nimport EditProfile from \"@/components/EditProfile.vue\";\nimport ApiKey from \"@/components/ApiKey.vue\";\n\nimport { Company } from \"@/types/company\";\n\nconst User = getModule(UserModule, store);\nconst Users = getModule(UsersModule, store);\nconst Companies = getModule(CompaniesModule, store);\n\n@Component({\n components: {\n ChangePassword,\n EditProfile,\n ApiKey,\n },\n})\nexport default class UserData extends Vue {\n activeCompanyId: number | null = null;\n ChangePasswordPopup = false;\n EditProfilePopup = false;\n ApiKeyPopup = false;\n\n @Watch(\"activeCompanyId\")\n onCompanyChanged(val: number, oldVal: number | undefined): void {\n if (oldVal === null) return;\n if (val !== oldVal) {\n Users.viewAsCompany(val).then(() => {\n window.location.reload();\n });\n }\n }\n\n // User getters\n get userName(): string {\n return User.userName;\n }\n get userTitle(): string {\n return User.userTitle;\n }\n get userEmail(): string {\n return User.userEmail;\n }\n get userPhone(): string | null {\n return User.userPhone;\n }\n get isAdmin(): boolean {\n return User.isAdmin;\n }\n get isSuperOrAdmin(): boolean {\n return User.isSuperOrAdmin;\n }\n get userCompanyId(): number | null {\n return User.userCompanyId;\n }\n\n // Companies getters\n get companies(): Company[] {\n return Companies.companies;\n }\n\n created(): void {\n this.activeCompanyId = this.userCompanyId;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserData.vue?vue&type=template&id=d7be9876&scoped=true&\"\nimport script from \"./UserData.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserData.vue?vue&type=style&index=0&id=d7be9876&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7be9876\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VIcon,VSelect})\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\nimport { Component, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport UsersModule from \"@/store/clients/Users.module\";\nimport UserModule from \"@/store/clients/User.module\";\nimport CompaniesModule from \"@/store/clients/Companies.module\";\nimport VesselsAdminModule from \"@/store/clients/VesselsAdmin.module\";\nimport VesselAccessGroupsModule from \"@/store/clients/VesselAccessGroups.module\";\nimport OnlineUsersTable from \"@/components/profile/OnlineUsersTable.vue\";\nimport InfoCardList from \"@/components/profile/InfoCardList.vue\";\nimport UserData from \"@/components/profile/UserData.vue\";\nimport { Route, Next } from \"vue-router\";\n\nconst User = getModule(UserModule, store);\nconst Users = getModule(UsersModule, store);\nconst Companies = getModule(CompaniesModule, store);\nconst VesselsAdmin = getModule(VesselsAdminModule, store);\nconst VesselAccessGroups = getModule(VesselAccessGroupsModule, store);\n\n@Component({\n components: {\n UserData,\n InfoCardList,\n OnlineUsersTable,\n },\n beforeRouteEnter(to: Route, from: Route, next: Next): void {\n const usersPromise = Users.refreshUsers();\n const usersOnlinePromise = Users.refreshOnlineUsers();\n let promises = [usersPromise, usersOnlinePromise];\n\n //this endpoint is only accessible to admin/superuser serverside\n if (User.isSuperOrAdmin) {\n const accessGroupsPromise = VesselAccessGroups.refreshVesselAccessGroups();\n promises = [...promises, accessGroupsPromise];\n }\n //these endpoints are only accessible to admin serverside\n if (User.isAdmin) {\n const vesselsPromise = VesselsAdmin.refreshAllVessels();\n const companiesPromise = Companies.refreshCompanies();\n promises = [...promises, vesselsPromise, companiesPromise];\n }\n\n Promise.all(promises).then(() => {\n next();\n });\n },\n})\nexport default class MyProfile extends Vue {\n daysBeforeVesselDataOutdated: number | null = null;\n vesselDataOutdatedUpdatedPopup = false;\n //User getters\n get isAdmin(): boolean {\n return User.isAdmin;\n }\n get isSuperOrAdmin(): boolean {\n return User.isSuperOrAdmin;\n }\n get daysBeforeDataOutdated(): number | null {\n return User.daysBeforeDataOutdated;\n }\n\n created(): void {\n this.daysBeforeVesselDataOutdated = this.daysBeforeDataOutdated;\n }\n\n async updateVesselDataOutdatedSetting(): Promise {\n await User.updateDaysBeforeVesselDataOutdated(this.daysBeforeVesselDataOutdated).then(() => {\n this.vesselDataOutdatedUpdatedPopup = true;\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyProfile.vue?vue&type=template&id=7b053e1f&scoped=true&\"\nimport script from \"./MyProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyProfile.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b053e1f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCol,VDivider,VRow,VSnackbar,VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserData.vue?vue&type=style&index=0&id=d7be9876&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfile.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApiKey.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""}