{"version":3,"sources":["webpack:///./src/layout/components/Sidebar/Logo.vue?1276","webpack:///./src/config/search_filter/task_filter.js","webpack:///./src/layout/components/ProfileDropdownMenu.vue?1365","webpack:///./src/styles/element-variables.scss?5e2d","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?6279","webpack:///./src/router/modules/asyncRoutes.js","webpack:///./src/store/modules/permission.js","webpack:///./src/components/Drawer/HelpDrawer.vue?8c06","webpack:///./src/components/PanThumb/index.vue?7aa1","webpack:///./src/components/PanThumb/index.vue","webpack:///src/components/PanThumb/index.vue","webpack:///./src/components/PanThumb/index.vue?9f9b","webpack:///./src/components/PanThumb/index.vue?ccc2","webpack:///./src/store/getters.js","webpack:///./src/store/index.js","webpack:///./src/store/modules/offer.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/layout/components/AddButton.vue?9b33","webpack:///./src/api/account.js","webpack:///./src/IESupport.vue?c2dd","webpack:///./src/utils/storage.js","webpack:///external \"ELEMENT\"","webpack:///./src/utils/auth.js","webpack:///./src/eventbus.js","webpack:///./src/store/modules/account.js","webpack:///./src/store/modules/survey.js","webpack:///./src/enum/Permissions.ts","webpack:///./src/directive/waves/waves.js","webpack:///./src/directive/waves/index.js","webpack:///./src/layout/index.vue?c628","webpack:///./src/utils/account-manager.js","webpack:///./src/store/modules/protocol.js","webpack:///./src/api/v2/users.js","webpack:///./src/layout/components/Navbar.vue?9230","webpack:///./src/store/modules/client.js","webpack:///./src/components/Badge/index.vue","webpack:///src/components/Badge/index.vue","webpack:///./src/components/Badge/index.vue?df9a","webpack:///./src/components/Badge/index.vue?a6fe","webpack:///./src/router/modules/constantRoutes.js","webpack:///./src/api/v2/static.js","webpack:///./src/store/modules/help.js","webpack:///external \"Vue\"","webpack:///./src/store/modules/users.js","webpack:///./src/api/v2/account.js","webpack:///./src/components/Badge/index.vue?f9ff","webpack:///./src/lang/index.js","webpack:///./src/api/v2/settings.js","webpack:///./src/store/modules/myuser.js","webpack:///./src/store/modules/task.js","webpack:///./src/utils/routes.js","webpack:///./src/router/index.js","webpack:///./src/layout/components/AppMain.vue?145f","webpack:///./src/api/task.js","webpack:///./src/styles/index.scss?64ee","webpack:///./src/store/modules/account_settings.js","webpack:///./src/utils/interceptors/access_token_interceptor.js","webpack:///./src/utils/interceptors/account_interceptor.js","webpack:///./src/utils/interceptors/client_version_interceptor.js","webpack:///./src/utils/request.js","webpack:///./src/components/Hamburger/index.vue?484b","webpack:///./src/api/v2/updates.js","webpack:///./src/layout/index.vue","webpack:///./src/layout/components/AppMain.vue","webpack:///src/layout/components/AppMain.vue","webpack:///./src/layout/components/AppMain.vue?74b1","webpack:///./src/layout/components/AppMain.vue?a85f","webpack:///./src/layout/components/Navbar.vue","webpack:///./src/components/Hamburger/index.vue","webpack:///src/components/Hamburger/index.vue","webpack:///./src/components/Hamburger/index.vue?bf04","webpack:///./src/components/Hamburger/index.vue?cef7","webpack:///./src/layout/components/ProfileDropdownMenu.vue","webpack:///./src/layout/components/ProfileDropdownMenu.vue?5c41","webpack:///./src/layout/components/ProfileDropdownMenu.vue?83d2","webpack:///./src/layout/components/ProfileDropdownMenu.vue?c296","webpack:///./src/layout/components/BookmarksMenu.vue","webpack:///./src/api/bookmark.js","webpack:///./src/layout/components/BookmarksMenu.vue?cbf2","webpack:///./src/layout/components/BookmarksMenu.vue?f017","webpack:///./src/layout/components/BookmarksMenu.vue?2b63","webpack:///./src/layout/components/AddButton.vue","webpack:///./src/layout/components/AddButton.vue?6a19","webpack:///./src/layout/components/AddButton.vue?814f","webpack:///./src/layout/components/AddButton.vue?7caa","webpack:///src/layout/components/Navbar.vue","webpack:///./src/layout/components/Navbar.vue?76cd","webpack:///./src/layout/components/Navbar.vue?70d5","webpack:///./src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/Sidebar/Logo.vue","webpack:///src/layout/components/Sidebar/Logo.vue","webpack:///./src/layout/components/Sidebar/Logo.vue?38b5","webpack:///./src/layout/components/Sidebar/Logo.vue?e95c","webpack:///./src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/utils/i18n.js","webpack:///./src/utils/validate.js","webpack:///src/layout/components/Sidebar/Item.vue","webpack:///./src/layout/components/Sidebar/Item.vue","webpack:///./src/layout/components/Sidebar/Item.vue?8ae9","webpack:///./src/layout/components/Sidebar/Link.vue","webpack:///src/layout/components/Sidebar/Link.vue","webpack:///./src/layout/components/Sidebar/Link.vue?9490","webpack:///./src/layout/components/Sidebar/Link.vue?da5b","webpack:///./src/layout/components/Sidebar/FixiOSBug.js","webpack:///src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?033d","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?4c14","webpack:///src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/Sidebar/index.vue?ae71","webpack:///./src/layout/components/Sidebar/index.vue?7004","webpack:///./src/layout/mixin/ResizeHandler.js","webpack:///src/layout/index.vue","webpack:///./src/layout/index.vue?1502","webpack:///./src/layout/index.vue?052b","webpack:///./src/api/user.js","webpack:///./src/store/modules sync \\.js$","webpack:///./src/api/auth.js","webpack:///./src/store/modules/auth.js","webpack:///./src/layout/components/BookmarksMenu.vue?65d2","webpack:///./src/App.vue","webpack:///./src/TermsAcceptedConsent.vue","webpack:///src/TermsAcceptedConsent.vue","webpack:///./src/TermsAcceptedConsent.vue?9b11","webpack:///./src/TermsAcceptedConsent.vue?1699","webpack:///./src/IESupport.vue","webpack:///src/IESupport.vue","webpack:///./src/IESupport.vue?dccf","webpack:///./src/IESupport.vue?c489","webpack:///./src/components/Drawer/HelpDrawer.vue","webpack:///src/components/Drawer/HelpDrawer.vue","webpack:///./src/components/Drawer/HelpDrawer.vue?8528","webpack:///./src/components/Drawer/HelpDrawer.vue?af28","webpack:///./src/components/Drawer/UpdateDrawer.vue","webpack:///src/components/Drawer/UpdateDrawer.vue","webpack:///./src/components/Drawer/UpdateDrawer.vue?0ef2","webpack:///./src/components/Drawer/UpdateDrawer.vue?2ded","webpack:///src/App.vue","webpack:///./src/App.vue?4c4f","webpack:///./src/App.vue?3746","webpack:///./src/directive/clipboard/clipboard.js","webpack:///./src/directive/clipboard/index.js","webpack:///./src/directive/permission/is/is_user.js","webpack:///./src/directive/permission/is/is_contact.js","webpack:///./src/directive/permission/is/is_admin.js","webpack:///./src/directive/permission/is/is_manager.js","webpack:///./src/directive/permission/is/is_not_manager.js","webpack:///./src/directive/permission/is/is_not_user.js","webpack:///./src/directive/permission/is/is_not_contact.js","webpack:///./src/directive/permission/is/is_team_admin.js","webpack:///./src/directive/permission/index.js","webpack:///./src/directive/apps/contacts-app/has-contacts-app.js","webpack:///./src/directive/apps/contacts-app/index.js","webpack:///./src/directive/apps/tasks-app/has-tasks-app.js","webpack:///./src/directive/apps/tasks-app/index.js","webpack:///./src/directive/apps/protocols-app/has-protocols-app.js","webpack:///./src/directive/apps/protocols-app/index.js","webpack:///./src/directive/apps/offers-app/has-offers-app.js","webpack:///./src/directive/apps/offers-app/index.js","webpack:///./src/directive/apps/surveys-app/has-surveys-app.js","webpack:///./src/directive/apps/surveys-app/index.js","webpack:///./src/utils/get-page-title.js","webpack:///./src/permission.js","webpack:///./src/utils/error-log.js","webpack:///./src/utils/index.js","webpack:///./src/filters/index.js","webpack:///./src/mixins/permissions/has.ts","webpack:///./src/utils/fontawesome.js","webpack:///./src/mixins/permissions/can.js","webpack:///./src/main.ts","webpack:///./src/styles/variables.scss?0336","webpack:///./src/store/modules/app.js","webpack:///./src/enum/FeatureFlags.ts","webpack:///./src/api/protocol.js","webpack:///./src/api/contact.js","webpack:///./src/components/Drawer/UpdateDrawer.vue?acb2","webpack:///./src/api/manager/contact_type.js","webpack:///./src/TermsAcceptedConsent.vue?85b0","webpack:///./src/store/modules/customer.js","webpack:///./src/config/search_filter/protocol_filter.js","webpack:///./src/api/static_content.js","webpack:///./src/store/modules/static_content.js","webpack:///./src/utils/fix-el-select-mobile-keyboard.js","webpack:///./src/layout/components/AppMain.vue?7a6b"],"names":["LOCAL_STORAGE_PREFIX","SEARCH_FILTER_ATTRIBUTE","DUE_DATE_FILTER_ATTRIBUTE","ASSIGNEE_FILTER_ATTRIBUTE","USER_STATUS_FILTER_ATTRIBUTE","AUTHOR_FILTER_ATTRIBUTE","PUBLISHED_FILTER_ATTRIBUTE","STATUS_FILTER_ATTRIBUTE","TEAM_FILTER_ATTRIBUTE","WITH_RESOLVED_FILTER_ATTRIBUTE","module","exports","asyncRoutes","path","component","Layout","redirect","meta","requiresAuth","icon","roles","children","title","cff","FeatureFlags","CONTACTS_APP","noCache","hidden","SURVEYS_APP","beforeEnter","to","from","next","store","getters","includes","TASKS_APP","PROTOCOLS_APP","OFFERS_APP","hasPermission","data","route","hasAppApproval","some","app","hasRoleApproval","role","filterAsyncRoutes","routes","res","forEach","tmp","push","state","addRoutes","mutations","SET_ROUTES","constantRoutes","concat","SET_ROLES","actions","resetState","commit","generateRoutes","Promise","resolve","accessedRoutes","setRoles","namespaced","render","_vm","this","_c","_self","staticClass","style","zIndex","height","width","_t","backgroundImage","image","staticRenderFns","name","props","type","required","default","sidebar","size","device","permission","permission_routes","permissions","myuser","isAuthenticated","auth","accessToken","refreshToken","user_id","user_list","users","current_user","available_accounts","account","accounts","offer_search_filter","offer","task_search_filter","task","survey_search_filter","survey","protocol_search_filter","protocol","help","latest_version","client","update_available","logo","account_settings","nav_logo","custom_logo","nav_logo_icon","powered_by_logo","nav_logo_powered_by","Vue","use","Vuex","modulesFiles","require","modules","keys","reduce","modulePath","moduleName","replace","value","Store","SET_OFFER_SEARCH_FILTER","filter","updateOfferSearchFilter","filters","reject","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","Object","getAccounts","url","request","method","getAccountInfos","dispatch","account_id","getMembers","list_query","search","unscoped","query_params","page","limit","entries","key","join","changeMemberStatus","status","CACHE_KEY_PREFIX","getItem","cache_key","itemStr","localStorage","item","JSON","parse","now","Date","getTime","expiry","removeItem","setItem","ttl","stringify","clearStorage","all","never_delete","DOMAIN_ATTR","delete_only_on_force_delete","REFRESH_TOKEN_ATTR","ID_TOKEN_ATTR","USER_ID_ATTR","arr","find","d","i","length","j","clearCachedItems","substring","ELEMENT","getLastUsedDomain","domain_data","getStoredDomains","domains","addDomainToStoredDomains","domain","account_name","username","Array","isArray","removeDomainToStoredDomains","new_domains","EventBus","SET_ALL_ACCOUNTS","getAllAccounts","force","then","resp","catch","err","getCurrentAccount","CURRENT_ACCOUNT_SIGNATURE_ATTR","account_data","signature","VueJwtDecode","decode","error","setCurrentAccount","getAccountDetails","SET_SURVEY_SEARCH_FILTER","updateSurveySearchFilter","TeamPermissions","context","handleClick","el","binding","handle","customOpts","assign","opts","ele","color","target","position","overflow","rect","getBoundingClientRect","ripple","querySelector","className","document","createElement","Math","max","appendChild","top","offsetHeight","left","offsetWidth","pageY","documentElement","scrollTop","body","pageX","scrollLeft","backgroundColor","removeHandle","bind","addEventListener","update","removeEventListener","unbind","install","directive","waves","window","account_signature","resetRouter","root","accessRoutes","router","SET_PROTOCOL_SEARCH_FILTER","updateProtocolSearchFilter","getAllProtocols","getProtocolById","getContactsForProtocol","setWatchStatusForProtocol","getUserById","getUsers","SET_LATEST_VERSION","version","process","VUE_APP_PIPELINE_ID","toString","setLatestVersion","directives","rawName","valTop","isDot","dotPosition","expression","class","topType","isFixed","square","domProps","_s","valBot","bottomType","valueTop","valueBottom","validator","created","retTop","retBot","getHelpText","SET_HELP","text","button","SET_USER_LIST","getUserList","given_user","u","acceptTC","accepted","terms","register","first_name","last_name","email","recaptcha_token","token","VueI18n","messages","en","enLocale","elementEnLocale","de","deLocale","elementDeLocale","getLanguage","user_info","setLang","locale","_","lang","Cookies","get","i18n","set","expires","sameSite","secure","getLanguageIso","getPersonalizationData","SET_PERMISSIONS","SET_CURRENT_USER","getCurrentUser","getMyPermissions","getUserPermissionsById","SET_TASK_SEARCH_FILTER","updateTaskSearchFilter","updateTask","getContactsForTask","getProtocolsForTask","setAssigneeStatusForTask","setWatchStatusForTask","unassignUserFromTask","delegateTask","removeDelegation","addAssignee","hasRoles","hasRoutes","open","event","metaKey","ctrlKey","openPageInNewTab","openPage","Router","createRouter","mode","scrollBehavior","y","newRouter","matcher","notAccessibleWithAuth","beforeEach","match","matched","record","finally","getAllTasks","filterAttributes","listQuery","params","order","due_date","author","published","assignees","teams","user_status","hide_resolved","printTasks","responseType","linkContactToTask","task_id","contact_id","removeContactToTaskLink","changeContactPublic","public","searchTaskByString","getFilesForTask","deleteFileForTask","file_id","linkProtocolToTask","protocol_id","removeProtocolToTaskLink","printTaskById","deleteTask","createComment","updateComment","comment_id","deleteComment","SET_LOGO","SET_ICON","getAccountSettings","isAlreadyFetchingAccessToken","subscribers","access_token_interceptor","instance","interceptors","response","config","base_url","noAuthList","originalRequest","onAccessTokenFetched","callback","addSubscriber","$emit","AccessToken","goToUrl","history","pending","fullPath","encodeURI","access_token","headers","Authorization","account_interceptor","isAlreadyFetchingAccountSignature","onAccountSignatureFetched","message","Account","client_version_interceptor","env","beta_version","prd_version","service","axios","create","baseURL","timeout","json","noAccountList","needAuth","needAccount","CancelToken","listUpdates","listUpdatesForAdmin","createUpdate","updateUpdate","classObj","opened","on","handleClickOutside","_e","$store","attrs","computed","staticStyle","toggleClick","mapGetters","methods","_setupProxy","handleDropdownClick","avatar_url","userPicMale","slot","_v","$t","clipboard_data","at","isAdmin","arg","as","refreshAccountJWT","buildnr","ProfileDropdownMenu","currentPath","$router","currentRoute","nrOfAccounts","loadClipboardData","newval","oldval","logout","__decorate","Watch","Component","components","PanThumb","Badge","ref","bookmarks","b","bookmarks_loading","_l","edit","model","label","$$v","$set","$event","createBookmark","goToPage","deleteBookmark","addBookmarkDraft","getMyBookmarks","createNewBookmark","BookmarksMenu","loadBookmarks","uuidv4","$refs","hide","commands","canSeeProtocolsButton","canSeeOffersButton","canSeeSurveysButton","AddButton","checkPermissions","createTask","createProtocol","createOffer","createSurvey","hasFeatureFlag","protocols_ff","offers_ff","surveys_ff","Hamburger","nrOfAddButtons","admin","isCollapse","activeMenu","variables","menuText","normalRoutes","managerRoutes","collapse","hasOneShowingChild","onlyOneChild","noShowingChildren","alwaysShow","resolvePath","generateTitle","child","index","isNest","getBgForItem","hasKey","$te","isExternal","test","functional","vnodes","_b","linkProps","is","href","rel","mounted","fixBugIniOS","$subMenu","subMenu","handleMouseleave","Item","AppLink","mixins","basePath","SidebarItem","Logo","asyncComputed","apps","addRoute","WIDTH","watch","$route","withoutAnimation","beforeMount","$_resizeHandler","beforeDestroy","isMobile","$_isMobile","AppMain","Navbar","Sidebar","mapState","hideSidebar","openSidebar","mobile","activateUser","password","user_pool_id","resetPassword","triggerPasswordReset","triggerWelcomeEmail","login","respond_to_auth_challenge","challenge_name","client_id","session","refresh","refresh_token","CLIENT_ID_ATTR","idToken","SET_ACCESS_TOKEN","SET_REFRESH_TOKEN","SET_ID_TOKEN","SET_USER_ID","SET_CLIENT_ID","setAuthResult","result","IdToken","sub","iss","awsregex","RefreshToken","auth_data","challenge_data","idtoken","show_terms","isManager","show_help","show_updates","isIE","pp","transl_pp","tc","transl_tc","accept","visible","handleClose","loadSettings","done","updates","loading","_f","date","image_url","handler","loadUpdates","UpdateDrawer","HelpDrawer","IESupport","TermsAcceptedConsent","authenticated","token_loading","checkIfIsIE","checkTCAccepted","listener","setHelpVisibility","setUpdatesVisibility","Clipboard","_v_clipboard_success","_v_clipboard_error","clipboard","action","_v_clipboard","destroy","isUser","inserted","vnode","parentNode","removeChild","isContact","isNotManager","isNotUser","isNotContact","isTeamAdmin","hasContactsApp","applications","hasTasksApp","hasProtocolsApp","hasOffersApp","hasSurveysApp","getPageTitle","pageTitle","NProgress","configure","showSpinner","pathWhitelisted","errorHandler","vm","info","a","nextTick","console","log","parseTime","time","cFormat","arguments","format","parseInt","formatObj","getFullYear","m","getMonth","getDate","h","getHours","getMinutes","s","getSeconds","getDay","time_str","formatTime","option","diff","ceil","pluralize","timeAgo","between","Number","numberFormatter","num","digits","si","symbol","toFixed","toThousandFilter","uppercaseFirst","string","charAt","toUpperCase","slice","decimalComma","moment","timestampToDateTime","unix","msTimestampToDateTime","timestampToDate","msTimestampToDate","dateTimePicker","yesNo","t","gender","statusFilter","statusMap","draft","prettyJson","sort","array","flag","library","add","fa_all","far_all","fab_all","can","teamAdmin","team","team_permissions","team_id","is_member","ADMIN","editTask","current_user_id","author_user_id","created_by","TASKS_EDIT","TASKS_DELETE","editProtocol","PROTOCOLS_EDIT","deleteProtocol","PROTOCOLS_DELETE","productionTip","devtools","silent","VueDraggableResizable","AsyncComputed","FormBuilder","Element","VModal","dialog","dynamicDefaults","clickToClose","mixin","has","FontAwesomeIcon","App","TOGGLE_SIDEBAR","CLOSE_SIDEBAR","TOGGLE_DEVICE","SET_SIZE","toggleSideBar","closeSideBar","toggleDevice","setSize","printProtocolById","getFilesForProtocol","deleteFileForProtocol","removeContactToProtocolLink","removeTaskToProtocolLink","DATE_FILTER_ATTRIBUTE","attendees","ATTENDEE_FILTER_ATTRIBUTE","searchProtocolByString","linkContactToProtocol","linkTaskToProtocol","getTasksForProtocol","getAllContacts","number","searchContactByString","createContact","cleanup","contact_since","account_manager","key_account_manager","undefined","String","uid","homepage","address","zip","street","country","city","uploadLogo","file","deleteContact","updateContact","getContactById","getTasksForContact","getProtocolsForContact","getContactByNumber","recurse","getContactTypes","updateContactType","obj","short","storeContactType","deleteContactType","getCountries","countries","contact_types","SET_COUNTRIES","SET_CONTACT_TYPES","types","force_reload","fixElSelect","querySelectorAll","v","elInput","readOnly","blur","focus"],"mappings":"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","file":"static/js/app.cbfe5adc.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!./Logo.vue?vue&type=style&index=0&id=3f4a4e0d&prod&lang=scss&scoped=true&\"","export const LOCAL_STORAGE_PREFIX = 'tasks.'\n\nexport const SEARCH_FILTER_ATTRIBUTE = 'filter[search]'\nexport const DUE_DATE_FILTER_ATTRIBUTE = 'filter[due_date]'\nexport const ASSIGNEE_FILTER_ATTRIBUTE = 'filter[assignee]'\nexport const USER_STATUS_FILTER_ATTRIBUTE = 'filter[user_status]'\nexport const AUTHOR_FILTER_ATTRIBUTE = 'filter[author]'\nexport const PUBLISHED_FILTER_ATTRIBUTE = 'filter[published_status]'\nexport const STATUS_FILTER_ATTRIBUTE = 'filter[status]'\nexport const TEAM_FILTER_ATTRIBUTE = 'filter[team]'\nexport const WITH_RESOLVED_FILTER_ATTRIBUTE = 'filter[hide_resolved]'\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!./ProfileDropdownMenu.vue?vue&type=style&index=0&id=8854cb86&prod&scoped=true&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"theme\":\"#007996\"};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=0&id=0f0021e5&prod&lang=css&\"","/** When your routing table is too long, you can split it into small modules**/\nimport Layout from '@/layout'\nimport FeatureFlags from '../../enum/FeatureFlags'\nimport store from '../../store'\n\nconst asyncRoutes = [\n {\n path: '/manager',\n component: Layout,\n redirect: '/manager/account',\n meta: {\n requiresAuth: true,\n icon: 'sliders-h',\n roles: ['manager'] // you can set roles in root nav\n },\n children: [\n {\n title: 'account_management',\n path: '/manager/account',\n component: () => import('@/views/manager/account'),\n meta: { title: 'account_management' }\n }\n ]\n },\n {\n path: '/manager/teams',\n component: Layout,\n meta: {\n requiresAuth: true,\n icon: 'user-friends',\n roles: ['team_admin', 'manager']\n },\n children: [\n {\n path: '/manager/teams',\n component: () => import('@/views/manager/teams'),\n meta: { title: 'account_management_teams' }\n }\n ]\n },\n {\n path: '/contacts',\n component: Layout,\n meta: {\n requiresAuth: true,\n roles: ['user'],\n cff: [FeatureFlags.CONTACTS_APP]\n },\n children: [\n {\n path: '',\n component: () => import('@/views/contacts/list'),\n meta: {\n title: 'contacts',\n icon: 'address-book',\n noCache: true\n }\n },\n {\n path: ':id',\n component: () => import('@/views/contacts/view'),\n hidden: true,\n meta: { title: 'contacts' }\n }\n ]\n },\n {\n path: '/surveys',\n component: Layout,\n meta: {\n requiresAuth: true,\n roles: ['surveys'],\n cff: [FeatureFlags.SURVEYS_APP]\n },\n children: [\n {\n path: '',\n component: () => import('@/views/surveys/list'),\n meta: {\n title: 'surveys',\n icon: 'vote-yea',\n noCache: true\n }\n },\n {\n path: 'new',\n component: () => import('@/views/surveys/new'),\n hidden: true,\n beforeEnter(to, from, next) {\n if (store.getters.roles.includes('surveys')) {\n next()\n } else {\n next('/home')\n }\n },\n meta: {\n noCache: true,\n title: 'New',\n roles: ['surveys']\n }\n },\n {\n path: ':id',\n hidden: true,\n beforeEnter(to, from, next) {\n if (store.getters.roles.includes('surveys')) {\n next()\n } else {\n next('/home')\n }\n },\n component: () => import('@/views/surveys/new'),\n meta: { title: 'surveys' }\n }\n ]\n },\n {\n path: '/tasks',\n component: Layout,\n meta: {\n requiresAuth: true,\n roles: ['user', 'contact'],\n cff: [FeatureFlags.TASKS_APP],\n title: 'tasks'\n },\n children: [\n {\n path: '',\n component: () => import('@/views/tasks/list'),\n meta: {\n icon: 'tasks',\n noCache: true\n }\n },\n {\n path: 'new',\n component: () => import('@/views/tasks/new'),\n hidden: true,\n meta: {\n noCache: true,\n title: 'new'\n }\n },\n {\n path: ':id',\n component: () => import('@/views/tasks/view'),\n hidden: true,\n meta: {\n noCache: true,\n title: ''\n }\n }\n ]\n },\n {\n path: '/protocols',\n component: Layout,\n meta: {\n requiresAuth: true,\n roles: ['user', 'contact'],\n cff: [FeatureFlags.PROTOCOLS_APP],\n title: 'protocols'\n },\n children: [\n {\n path: '',\n component: () => import('@/views/protocols/list'),\n meta: {\n icon: 'clipboard-list',\n noCache: true\n }\n },\n {\n path: 'new',\n component: () => import('@/views/protocols/new'),\n hidden: true,\n beforeEnter(to, from, next) {\n if (store.getters.roles.includes('user')) {\n next()\n } else {\n next('/home')\n }\n },\n meta: {\n noCache: true,\n title: 'New'\n }\n },\n {\n path: ':id',\n component: () => import('@/views/protocols/view'),\n hidden: true,\n meta: {\n title: ''\n }\n }\n ]\n },\n {\n path: '/offers',\n component: Layout,\n meta: {\n requiresAuth: true,\n roles: ['user'],\n cff: [FeatureFlags.OFFERS_APP],\n title: 'offers'\n },\n children: [\n {\n path: '',\n component: () => import('@/views/offers/list'),\n meta: {\n icon: 'money-check',\n noCache: true\n }\n },\n {\n path: 'new',\n component: () => import('@/views/offers/new'),\n hidden: true,\n beforeEnter(to, from, next) {\n if (store.getters.roles.includes('user')) {\n next()\n } else {\n next('/home')\n }\n },\n meta: {\n noCache: true,\n title: 'New'\n }\n },\n {\n path: ':id',\n component: () => import('@/views/offers/view'),\n hidden: true,\n meta: {\n title: ''\n }\n }\n ]\n },\n {\n path: '/admin',\n component: Layout,\n redirect: '/manager/account',\n hidden: true,\n meta: {\n title: 'admin',\n requiresAuth: true,\n icon: 'el-icon-s-operation',\n roles: ['admin'] // you can set roles in root nav\n },\n children: [\n {\n path: 'accounts',\n component: () => import('@/views/admin/list'),\n meta: { title: 'admin' },\n hidden: true\n },\n {\n path: 'accounts/:id',\n component: () => import('@/views/admin/view'),\n hidden: true,\n meta: { title: 'admin' }\n }\n ]\n },\n // 404 page must be placed at the end !!!\n { path: '*', redirect: '/404', hidden: true }\n]\n\nexport default asyncRoutes\n","import asyncRoutes from '@/router/modules/asyncRoutes'\nimport constantRoutes from '@/router/modules/constantRoutes'\n\n/**\n * Use meta.role to determine if the current user has permission\n * @param data\n * @param route\n */\nfunction hasPermission(data, route) {\n let hasAppApproval = true\n if (route.meta && route.meta.cff) {\n hasAppApproval = data.cff.some(app => route.meta.cff.includes(app))\n }\n\n if (route.meta && route.meta.roles) {\n const hasRoleApproval = data.roles.some(role => route.meta.roles.includes(role))\n return hasAppApproval && hasRoleApproval\n } else {\n return true\n }\n}\n\n/**\n * Filter asynchronous routing tables by recursion\n * @param routes asyncRoutes\n * @param data\n */\nexport function filterAsyncRoutes(routes, data) {\n const res = []\n\n routes.forEach(route => {\n const tmp = { ...route }\n if (hasPermission(data, tmp)) {\n if (tmp.children) {\n tmp.children = filterAsyncRoutes(tmp.children, data)\n }\n res.push(tmp)\n }\n })\n\n return res\n}\n\nconst state = {\n routes: [],\n addRoutes: [],\n roles: []\n}\n\nconst mutations = {\n SET_ROUTES: (state, routes) => {\n state.addRoutes = routes\n state.routes = constantRoutes.concat(routes)\n },\n SET_ROLES: (state, roles) => {\n state.roles = roles\n }\n}\n\nconst actions = {\n resetState({ commit }) {\n commit('SET_ROUTES', [])\n commit('SET_ROLES', [])\n },\n generateRoutes({ commit }, data) {\n return new Promise(resolve => {\n if (!data.cff) {\n data.cff = [] // temporary fix, to migrate users to feature flags\n }\n const accessedRoutes = filterAsyncRoutes(asyncRoutes, data)\n commit('SET_ROUTES', accessedRoutes)\n resolve(accessedRoutes)\n })\n },\n setRoles({ commit }, roles) {\n return new Promise(resolve => {\n commit('SET_ROLES', roles)\n resolve()\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpDrawer.vue?vue&type=style&index=0&id=39b7e0cd&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=893e571a&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"pan-item\",style:({zIndex:_vm.zIndex,height:_vm.height,width:_vm.width})},[_c('div',{staticClass:\"pan-info\"},[_c('div',{staticClass:\"pan-info-roles-container\"},[_vm._t(\"default\")],2)]),_c('div',{staticClass:\"pan-thumb\",style:({backgroundImage: `url(${_vm.image})`})})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=893e571a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=893e571a&prod&scoped=true&lang=css&\"\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 \"893e571a\",\n null\n \n)\n\nexport default component.exports","const getters = {\n sidebar: state => state.app.sidebar,\n size: state => state.app.size,\n device: state => state.app.device,\n roles: state => state.permission.roles,\n permission_routes: state => state.permission.routes,\n permissions: state => state.myuser.permissions,\n isAuthenticated: state => state.auth.isAuthenticated,\n accessToken: state => state.auth.accessToken,\n refreshToken: state => state.auth.refreshToken,\n user_id: state => state.auth.user_id,\n user_list: state => state.users.user_list,\n current_user: state => state.myuser.current_user,\n available_accounts: state => state.account.accounts,\n offer_search_filter: state => state.offer.offer_search_filter,\n task_search_filter: state => state.task.task_search_filter,\n survey_search_filter: state => state.survey.survey_search_filter,\n protocol_search_filter: state => state.protocol.protocol_search_filter,\n help: state => state.help.help,\n latest_version: state => state.client.latest_version,\n update_available: state => state.client.update_available,\n\n logo: state => state.account_settings.nav_logo,\n custom_logo: state => state.account_settings.custom_logo,\n icon: state => state.account_settings.nav_logo_icon,\n powered_by_logo: state => state.account_settings.nav_logo_powered_by\n}\n\nexport default getters\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport getters from './getters'\n\nVue.use(Vuex)\n\n// https://webpack.js.org/guides/dependency-management/#requirecontext\nconst modulesFiles = require.context('./modules', true, /\\.js$/)\n\n// you do not need `import app from './modules/app'`\n// it will auto require all vuex module from modules file\nconst modules = modulesFiles.keys().reduce((modules, modulePath) => {\n // set './app.js' => 'app'\n const moduleName = modulePath.replace(/^\\.\\/(.*)\\.\\w+$/, '$1')\n const value = modulesFiles(modulePath)\n modules[moduleName] = value.default\n return modules\n}, {})\n\nconst store = new Vuex.Store({\n modules,\n getters\n})\n\nexport default store\n","const state = {\n offer_search_filter: null\n}\n\nconst mutations = {\n SET_OFFER_SEARCH_FILTER: (state, filter) => {\n state.offer_search_filter = filter\n }\n}\n\nconst actions = {\n updateOfferSearchFilter({ commit }, filters) {\n return new Promise((resolve, reject) => {\n commit('SET_OFFER_SEARCH_FILTER', filters)\n resolve()\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e9\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e9\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","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!./AddButton.vue?vue&type=style&index=0&id=310fe601&prod&scoped=true&lang=scss&\"","import request from '@/utils/request'\nimport store from '@/store'\n\nexport async function getAccounts() {\n const url = '/api/v1/users/' + store.getters.user_id + '/accounts'\n return request({\n url: url,\n method: 'get'\n })\n}\n\nexport async function checkIfDomainExists(domain) {\n const url = '/api/v1/account_name/' + domain\n return request({\n url: url,\n method: 'get'\n })\n}\n\nexport async function getAccountInfos() {\n const account = await store.dispatch('account/getCurrentAccount')\n return request({\n url: '/api/v1/accounts/' + account.data.account_id,\n method: 'get'\n })\n}\n\nexport function getMembers(list_query, filter, search, unscoped = true) {\n const query_params = []\n if (list_query && list_query.page) {\n query_params.push('page=' + list_query.page)\n }\n if (list_query && list_query.limit) {\n query_params.push('limit=' + list_query.limit)\n }\n if (filter) {\n for (const [key, value] of Object.entries(filter)) {\n query_params.push('filter[' + key + ']=' + value)\n }\n }\n query_params.push('unscoped=' + unscoped)\n\n if (search) {\n query_params.push('search=' + search)\n }\n\n return request({\n url: '/api/v1/accounts/members?' + query_params.join('&'),\n method: 'get'\n })\n}\n\nexport async function changeMemberStatus(user_id, status) {\n return request({\n url: '/api/v1/accounts/members/' + user_id + '/attributes/status',\n data: {\n 'status': status\n },\n method: 'patch'\n })\n}\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!./IESupport.vue?vue&type=style&index=0&id=f452af6e&prod&lang=scss&scoped=true&\"","// import Cookies from 'js-cookie'\nimport {\n ID_TOKEN_ATTR,\n REFRESH_TOKEN_ATTR,\n USER_ID_ATTR\n} from '@/store/modules/auth'\nimport { DOMAIN_ATTR } from './auth'\n\nexport const CACHE_KEY_PREFIX = 'cah-'\n\nexport function getItem(key) {\n const cache_key = CACHE_KEY_PREFIX + key\n const itemStr = localStorage.getItem(cache_key)\n // if the item doesn't exist, return null\n if (!itemStr) {\n return null\n }\n const item = JSON.parse(itemStr)\n const now = new Date()\n // compare the expiry time of the item with the current time\n if (now.getTime() > item.expiry) {\n // If the item is expired, delete the item from storage\n // and return null\n localStorage.removeItem(cache_key)\n return null\n }\n return item.value\n}\n\nexport function setItem(key, value, ttl = 60 * 2) { // 120 seconds --> 2 minutes\n const now = new Date()\n\n const item = {\n value: value,\n expiry: now.getTime() + ttl * 1000\n }\n const cache_key = CACHE_KEY_PREFIX + key\n return localStorage.setItem(cache_key, JSON.stringify(item))\n}\n\nexport function removeItem(key) {\n const cache_key = CACHE_KEY_PREFIX + key\n return localStorage.removeItem(cache_key)\n}\n\nexport function clearStorage(all = false) {\n const never_delete = [\n DOMAIN_ATTR\n ]\n const delete_only_on_force_delete = [\n REFRESH_TOKEN_ATTR,\n ID_TOKEN_ATTR,\n USER_ID_ATTR\n ]\n const arr = [] // Array to hold the keys\n // Iterate over localStorage and insert the keys that meet the condition into arr\n for (let i = 0; i < localStorage.length; i++) {\n if ((all || !delete_only_on_force_delete.find(d => d === localStorage.key(i))) &&\n !never_delete.find(d => d === localStorage.key(i))) {\n arr.push(localStorage.key(i))\n }\n }\n // Iterate over arr and remove the items by key\n for (let j = 0; j < arr.length; j++) {\n localStorage.removeItem(arr[j])\n }\n}\n\nexport function clearCachedItems() {\n const arr = [] // Array to hold the keys\n // Iterate over localStorage and insert the keys that meet the condition into arr\n for (let i = 0; i < localStorage.length; i++) {\n if (localStorage.key(i).substring(0, 3) === CACHE_KEY_PREFIX) {\n arr.push(localStorage.key(i))\n }\n }\n\n // Iterate over arr and remove the items by key\n for (var i = 0; i < arr.length; i++) {\n localStorage.removeItem(arr[i])\n }\n}\n","module.exports = ELEMENT;","export const DOMAIN_ATTR = 'ld' // last logged in domain\n\nexport function getLastUsedDomain() {\n let domain_data\n try {\n domain_data = JSON.parse(localStorage.getItem(DOMAIN_ATTR))\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n if (domain_data) {\n return domain_data[DOMAIN_ATTR]\n }\n return null\n}\n\nexport function getStoredDomains() {\n if (localStorage.getItem(DOMAIN_ATTR)) {\n try {\n const domains = JSON.parse(localStorage.getItem(DOMAIN_ATTR))\n if (domains.domains && domains.domains.length) {\n return domains\n }\n } catch (e) {\n return {\n domains: []\n }\n }\n }\n return {\n domains: []\n }\n}\n\nexport function addDomainToStoredDomains(domain, account_name, username) {\n let domain_data\n try {\n domain_data = JSON.parse(localStorage.getItem(DOMAIN_ATTR))\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n let domains = []\n if (domain_data) {\n domains = domain_data.domains\n } else {\n domain_data = {}\n }\n\n if (domains && Array.isArray(domains)) {\n if (!domains.find(d => d.domain === domain)) {\n domains.push({\n domain: domain,\n account_name: account_name,\n username: username\n })\n } else {\n domains.forEach(d => {\n if (d.domain === domain) {\n d.username = username\n }\n })\n }\n } else {\n domains.push({\n domain: domain,\n account_name: account_name,\n username: username\n })\n }\n\n domain_data.domains = domains\n domain_data[DOMAIN_ATTR] = domain\n localStorage.setItem(DOMAIN_ATTR, JSON.stringify(domain_data))\n}\n\nexport function removeDomainToStoredDomains(domain) {\n let domain_data\n try {\n domain_data = JSON.parse(localStorage.getItem(DOMAIN_ATTR))\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n let domains\n if (domain_data) {\n domains = domain_data.domains\n } else {\n domain_data = {}\n }\n\n const new_domains = []\n if (domains && Array.isArray(domains)) {\n domains.forEach(d => {\n if (domain !== d.domain && domain !== d.account_name) {\n new_domains.push(d)\n }\n })\n }\n\n domain_data.domains = new_domains\n if (domain_data[DOMAIN_ATTR] === domain) {\n if (new_domains.length > 0) {\n domain_data[DOMAIN_ATTR] = new_domains[0].domain\n }\n }\n localStorage.setItem(DOMAIN_ATTR, JSON.stringify(domain_data))\n}\n","import Vue from 'vue'\nconst EventBus = new Vue()\n\nexport default EventBus\n","import { getAccounts, getAccountInfos, getMembers, updateAccountLogo, changeMemberStatus } from '@/api/account'\n\nimport VueJwtDecode from 'vue-jwt-decode'\nimport { setCurrentAccount } from '@/utils/account-manager'\nimport store from '../index'\nimport { CURRENT_ACCOUNT_SIGNATURE_ATTR } from '../../utils/account-manager'\n\nconst state = {\n accounts: []\n}\n\nconst mutations = {\n SET_ALL_ACCOUNTS: (state, accounts) => {\n state.accounts = accounts\n }\n}\n\nconst actions = {\n resetState({ commit }) {\n commit('SET_ALL_ACCOUNTS', [])\n },\n getAllAccounts({ commit }, force = false) {\n if (force) {\n commit('SET_ALL_ACCOUNTS', [])\n }\n return new Promise((resolve, reject) => {\n if (state.accounts.length) {\n resolve(state.accounts)\n } else {\n getAccounts().then(resp => {\n commit('SET_ALL_ACCOUNTS', resp.data.data)\n resolve(resp.data.data)\n }).catch(err => {\n reject(err)\n })\n }\n })\n },\n getCurrentAccount({ commit, dispatch }, force = false) {\n if (force) {\n localStorage.removeItem(CURRENT_ACCOUNT_SIGNATURE_ATTR)\n }\n return new Promise((resolve, reject) => {\n let signature = localStorage.getItem(CURRENT_ACCOUNT_SIGNATURE_ATTR)\n let account_data\n try {\n account_data = VueJwtDecode.decode(signature)\n } catch (error) {\n // signature invalid because couldn't be opened\n signature = null\n }\n if (signature) {\n store.dispatch('permission/setRoles', account_data.roles)\n const data = {\n signature: signature,\n data: account_data\n }\n resolve(data)\n } else {\n if (store.getters.user_id) {\n getAccounts().then(resp => {\n if (resp.data.data.length === 1) {\n const account = resp.data.data[0]\n const signature = account.signature\n setCurrentAccount(signature)\n const account_data = {\n signature: signature,\n data: VueJwtDecode.decode(signature)\n }\n resolve(account_data)\n } else {\n reject('should only have one account')\n }\n }).catch(err => {\n reject(err)\n })\n } else {\n reject('not authenticated')\n }\n }\n })\n },\n getAccountDetails({ commit }) {\n return new Promise((resolve, reject) => {\n getAccountInfos().then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n changeMemberStatus({ commit }, data) {\n return new Promise((resolve, reject) => {\n changeMemberStatus(data.user_id, data.status).then(resp => {\n resolve(resp)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","const state = {\n survey_search_filter: null\n}\n\nconst mutations = {\n SET_SURVEY_SEARCH_FILTER: (state, filter) => {\n state.survey_search_filter = filter\n }\n}\n\nconst actions = {\n updateSurveySearchFilter({ commit }, filters) {\n return new Promise((resolve, reject) => {\n commit('SET_SURVEY_SEARCH_FILTER', filters)\n resolve()\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","/* eslint-disable no-unused-vars */\nexport enum TeamPermissions {\n PROTOCOLS_READ = 'team.protocols.read',\n PROTOCOLS_EDIT = 'team.protocols.edit',\n PROTOCOLS_DELETE = 'team.protocols.delete',\n TASKS_READ = 'team.tasks.read',\n TASKS_EDIT = 'team.tasks.edit',\n TASKS_DELETE = 'team.tasks.delete',\n ADMIN = 'team.admin'\n}\n\nexport default TeamPermissions\n","import './waves.css'\n\nconst context = '@@wavesContext'\n\nfunction handleClick(el, binding) {\n function handle(e) {\n const customOpts = Object.assign({}, binding.value)\n const opts = Object.assign({\n ele: el, // 波纹作用元素\n type: 'hit', // hit 点击位置扩散 center中心点扩展\n color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色\n },\n customOpts\n )\n const target = opts.ele\n if (target) {\n target.style.position = 'relative'\n target.style.overflow = 'hidden'\n const rect = target.getBoundingClientRect()\n let ripple = target.querySelector('.waves-ripple')\n if (!ripple) {\n ripple = document.createElement('span')\n ripple.className = 'waves-ripple'\n ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'\n target.appendChild(ripple)\n } else {\n ripple.className = 'waves-ripple'\n }\n switch (opts.type) {\n case 'center':\n ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'\n ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'\n break\n default:\n ripple.style.top =\n (e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop ||\n document.body.scrollTop) + 'px'\n ripple.style.left =\n (e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft ||\n document.body.scrollLeft) + 'px'\n }\n ripple.style.backgroundColor = opts.color\n ripple.className = 'waves-ripple z-active'\n return false\n }\n }\n\n if (!el[context]) {\n el[context] = {\n removeHandle: handle\n }\n } else {\n el[context].removeHandle = handle\n }\n\n return handle\n}\n\nexport default {\n bind(el, binding) {\n el.addEventListener('click', handleClick(el, binding), false)\n },\n update(el, binding) {\n el.removeEventListener('click', el[context].removeHandle, false)\n el.addEventListener('click', handleClick(el, binding), false)\n },\n unbind(el) {\n el.removeEventListener('click', el[context].removeHandle, false)\n el[context] = null\n delete el[context]\n }\n}\n","import waves from './waves'\n\nconst install = function(Vue) {\n Vue.directive('waves', waves)\n}\n\nif (window.Vue) {\n window.waves = waves\n Vue.use(install); // eslint-disable-line\n}\n\nwaves.install = install\nexport default waves\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!./index.vue?vue&type=style&index=0&id=55579784&prod&lang=scss&scoped=true&\"","import { clearCachedItems } from '@/utils/storage'\nimport VueJwtDecode from 'vue-jwt-decode'\nimport router, { resetRouter } from '../router'\nimport store from '../store'\n\nexport const CURRENT_ACCOUNT_SIGNATURE_ATTR = 'cas'\n\nexport function setCurrentAccount(account_signature) {\n return new Promise((resolve, reject) => {\n localStorage.removeItem(CURRENT_ACCOUNT_SIGNATURE_ATTR)\n clearCachedItems()\n localStorage.setItem(CURRENT_ACCOUNT_SIGNATURE_ATTR, account_signature)\n const account_data = VueJwtDecode.decode(account_signature)\n resetRouter()\n store.dispatch('permission/setRoles', account_data.roles)\n const data = {\n roles: account_data.roles,\n cff: account_data.cff\n }\n // generate accessible routes map based on roles\n store.dispatch('permission/generateRoutes', data, { root: true }).then(accessRoutes => {\n // dynamically add accessible routes\n router.addRoutes(accessRoutes)\n resolve(account_signature)\n }).catch(() => {\n reject()\n })\n })\n}\n","import { getAllProtocols, getProtocolById, getContactsForProtocol, setWatchStatusForProtocol } from '@/api/protocol'\n\nconst state = {\n protocol_search_filter: null\n}\n\nconst mutations = {\n SET_PROTOCOL_SEARCH_FILTER: (state, filter) => {\n state.protocol_search_filter = filter\n }\n}\n\nconst actions = {\n updateProtocolSearchFilter({ commit }, filters) {\n return new Promise((resolve, reject) => {\n commit('SET_PROTOCOL_SEARCH_FILTER', filters)\n resolve()\n })\n },\n getAllProtocols({ commit }, data = null) {\n return new Promise((resolve, reject) => {\n getAllProtocols(data).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getProtocolById({ commit }, id) {\n return new Promise((resolve, reject) => {\n getProtocolById(id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getContactsForProtocol({ commit }, id) {\n return new Promise((resolve, reject) => {\n getContactsForProtocol(id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n setWatchStatusForProtocol({ commit }, data) {\n return new Promise((resolve, reject) => {\n setWatchStatusForProtocol(data.id, data.status).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","import request from '@/utils/request'\n\nexport function getUserById(id) {\n return request({\n url: '/api/v2/users/' + id,\n method: 'get'\n })\n}\n\nexport function getUsers(list_query, filter, search, unscoped = true) {\n const query_params = []\n if (list_query && list_query.page) {\n query_params.push('page=' + list_query.page)\n }\n if (list_query && list_query.limit) {\n query_params.push('limit=' + list_query.limit)\n }\n if (filter) {\n for (const [key, value] of Object.entries(filter)) {\n query_params.push('filter[' + key + ']=' + value)\n }\n }\n query_params.push('unscoped=' + unscoped)\n\n if (search) {\n query_params.push('search=' + search)\n }\n\n return request({\n url: '/api/v2/users/?' + query_params.join('&'),\n method: 'get'\n })\n}\n\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!./Navbar.vue?vue&type=style&index=0&id=78d56571&prod&lang=scss&scoped=true&\"","\nconst state = {\n latest_version: '',\n update_available: false\n}\n\nconst mutations = {\n SET_LATEST_VERSION: (state, version) => {\n state.latest_version = version\n state.update_available = process.env.VUE_APP_PIPELINE_ID && version && version.toString() !== process.env.VUE_APP_PIPELINE_ID.toString()\n }\n}\n\nconst actions = {\n setLatestVersion({ commit }, version) {\n commit('SET_LATEST_VERSION', version)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"badge\"},[_vm._t(\"default\"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hidden && (_vm.valTop || _vm.valTop === 0 || (_vm.isDot && _vm.dotPosition === 'top'))),expression:\"!hidden && (valTop || valTop === 0 || (isDot && dotPosition === 'top'))\"}],staticClass:\"badge_content\",class:[\n _vm.isDot ? 'badge_dot_' + _vm.topType : 'badge_content_' + _vm.topType,\n {\n 'is-fixed': _vm.isFixed,\n 'dot_top': _vm.isDot,\n 'badge_top': !_vm.isDot,\n 'is-dot': _vm.isDot,\n 'style-square': _vm.square,\n 'style-rounded': !_vm.square\n }\n ],domProps:{\"textContent\":_vm._s(_vm.valTop)}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hidden && (_vm.valBot || _vm.valBot === 0 || (_vm.isDot && _vm.dotPosition === 'bottom'))),expression:\"!hidden && (valBot || valBot === 0 || (isDot && dotPosition === 'bottom'))\"}],staticClass:\"badge_content\",class:[\n _vm.isDot ? 'badge_dot_' + _vm.bottomType : 'badge_content_' + _vm.bottomType,\n {\n 'is-fixed': _vm.isFixed,\n 'dot_bottom': _vm.isDot,\n 'badge_bottom': !_vm.isDot,\n 'is-dot': _vm.isDot,\n 'style-square': _vm.square,\n 'style-rounded': !_vm.square\n }\n ],domProps:{\"textContent\":_vm._s(_vm.valBot)}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0b77516a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0b77516a&prod&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 \"0b77516a\",\n null\n \n)\n\nexport default component.exports","/** When your routing table is too long, you can split it into small modules**/\nimport Layout from '@/layout'\n\n/**\n * Note: sub-menu only appear when route children.length >= 1\n * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html\n *\n * hidden: true if set true, item will not show in the sidebar(default is false)\n * alwaysShow: true if set true, will always show the root menu\n * if not set alwaysShow, when item has more than one children route,\n * it will becomes nested mode, otherwise not show the root menu\n * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb\n * name:'router-name' the name is used by (must set!!!)\n * meta : {\n roles: ['admin','editor'] control the page roles (you can set multiple roles)\n title: 'title' the name show in sidebar and breadcrumb (recommend set)\n icon: 'svg-name' the icon show in the sidebar\n noCache: true if set true, the page will no be cached(default is false)\n affix: true if set true, the tag will affix in the tags-view\n breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)\n activeMenu: '/example/list' if set path, the sidebar will highlight the path you set\n }\n */\n\nconst constantRoutes = [\n {\n path: '/link',\n component: Layout,\n meta: {\n requiresAuth: false\n },\n children: [\n {\n path: 'noauth',\n component: () => import('@/views/redirect/index'),\n meta: {\n requiresAuth: false,\n noCache: true\n }\n }\n ]\n },\n {\n path: '/acc',\n component: Layout,\n meta: {\n requiresAuth: false\n },\n children: [\n {\n path: ':account_id',\n component: () => import('@/views/redirect/index'),\n meta: {\n requiresAuth: false,\n noCache: true\n }\n }\n ]\n },\n {\n path: '/login',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false\n },\n children: [\n {\n path: ':domain',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false\n }\n }\n ]\n },\n {\n path: '/activate',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false,\n title: 'activate',\n noCache: true\n }\n },\n {\n path: '/register',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false,\n title: 'activate',\n noCache: true\n }\n },\n {\n path: '/forgot-password',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false,\n title: 'forgot password',\n noCache: true\n }\n },\n {\n path: '/reset-password',\n component: () => import('@/views/login/auth'),\n meta: {\n requiresAuth: false,\n title: 'reset password',\n noCache: true\n }\n },\n {\n path: '/logout',\n meta: {\n requiresAuth: true\n },\n component: () => import('@/views/login/logout')\n },\n {\n path: '/404',\n component: () => import('@/views/error-page/404'),\n hidden: true\n },\n {\n path: '/401',\n component: () => import('@/views/error-page/401'),\n hidden: true\n },\n {\n path: '/',\n hidden: true,\n meta: {\n requiresAuth: true\n },\n redirect: '/home'\n },\n {\n path: '/home',\n component: Layout,\n children: [\n {\n path: '/home',\n component: () => import('@/views/home/index'),\n meta: {\n title: 'home',\n icon: 'home',\n requiresAuth: true\n }\n }\n ]\n },\n {\n path: '/accounts',\n component: () => import('@/views/accounts'),\n hidden: true,\n meta: {\n requiresAuth: true,\n noCache: true\n }\n },\n {\n path: '/profile',\n component: Layout,\n hidden: true,\n meta: {\n requiresAuth: true\n },\n children: [\n {\n path: '/',\n component: () => import('@/views/profile/index'),\n meta: { title: 'profile', icon: 'user', noCache: true }\n }\n ]\n }\n]\n\nexport default constantRoutes\n","import request from '@/utils/request'\n\nexport function getHelpText() {\n return request({\n url: '/api/v2/static/help',\n method: 'get'\n })\n}\n","import { getHelpText } from '@/api/v2/static'\n\nconst state = {\n help: null\n}\n\nconst mutations = {\n SET_HELP: (state, data) => {\n state.help = {\n text: data.text,\n button: data.button\n }\n }\n}\n\nconst actions = {\n getHelpText({ commit }) {\n return new Promise((resolve, reject) => {\n getHelpText().then(resp => {\n const data = {\n text: resp.data.data.text,\n button: resp.data.data.button\n }\n commit('SET_HELP', data)\n resolve(data)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","module.exports = Vue;","import { getUsers, getUserById } from '../../api/v2/users'\n\nconst state = {\n user_list: []\n}\n\nconst mutations = {\n SET_USER_LIST: (state, user_list) => {\n state.user_list = user_list\n }\n}\n\nconst actions = {\n resetState({ commit }) {\n commit('SET_USER_LIST', [])\n },\n getUserList({ commit }) {\n return new Promise((resolve, reject) => {\n getUsers(null, null, null, false).then(resp => { // unscoped\n commit('SET_USER_LIST', resp.data.data)\n resolve(resp.data.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getUserById({ commit }, id) {\n return new Promise((resolve, reject) => {\n if (!id) {\n reject()\n }\n const given_user = state.user_list.find(u => u.id === id)\n if (given_user) {\n resolve(given_user)\n } else {\n getUserById(id).then(resp => {\n let user_list = []\n if (state.user_list.length > 0) {\n user_list = state.user_list\n }\n user_list.push(resp.data.data)\n commit('SET_USER_LIST', user_list)\n resolve(resp.data.data)\n }).catch(err => {\n reject(err)\n })\n }\n })\n }\n\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","import request from '@/utils/request'\n\nexport function updateAccount(data) {\n return request({\n url: '/api/v2/account',\n method: 'patch',\n data: data\n })\n}\n\nexport function acceptTC(accepted) {\n return request({\n url: '/api/v2/account/terms',\n method: 'post',\n data: { terms: accepted }\n })\n}\n\nexport function register(name, first_name, last_name, username, email, terms, recaptcha_token) {\n return request({\n url: '/api/v2/accounts/register',\n method: 'post',\n data: {\n token: recaptcha_token,\n name: name,\n first_name: first_name,\n last_name: last_name,\n username: username,\n email: email,\n terms: terms\n }\n })\n}\n\nexport function getAccount() {\n return request({\n url: '/api/v2/account',\n method: 'get'\n })\n}\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!./index.vue?vue&type=style&index=0&id=0b77516a&prod&lang=scss&scoped=true&\"","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport Cookies from 'js-cookie'\nimport elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang\nimport elementDeLocale from 'element-ui/lib/locale/lang/de' // element-ui lang\nimport enLocale from './en-US.json'\nimport deLocale from './de-DE.json'\nimport store from '@/store'\n\nVue.use(VueI18n)\n\nconst messages = {\n en: {\n ...enLocale,\n ...elementEnLocale\n },\n de: {\n ...deLocale,\n ...elementDeLocale\n }\n}\nexport function getLanguage() {\n try {\n if (store && store.getters && store.getters.current_user) {\n const user_info = store.getters.current_user\n setLang(user_info.locale)\n return user_info.locale\n }\n // eslint-disable-next-line no-empty\n } catch (_) {}\n let lang = Cookies.get('language')\n if (!lang) {\n lang = 'de'\n }\n try {\n setLang(lang)\n // eslint-disable-next-line no-empty\n } catch (_) {}\n return lang\n}\n\nfunction setLang(lang) {\n i18n.locale = lang\n Cookies.set('language', lang, { expires: 365, sameSite: 'strict', secure: true })\n}\n\nexport function getLanguageIso() {\n switch (getLanguage()) {\n case 'en':\n return 'en_US'\n default:\n return 'de_DE'\n }\n}\n\nconst i18n = new VueI18n({\n // set locale\n locale: getLanguage(),\n // set locale messages\n messages\n})\n\nexport default i18n\n","import request from '@/utils/request'\n\nexport function getPersonalizationData() {\n return request({\n url: '/api/v2/settings/personalization',\n method: 'get'\n })\n}\n","import { getUserById } from '@/api/user'\nimport store from '../index'\nimport { getUserPermissionsById } from '@/api/user'\n\nconst state = {\n permissions: null,\n current_user: null\n}\n\nconst mutations = {\n SET_PERMISSIONS: (state, permissions) => {\n state.permissions = permissions\n },\n SET_CURRENT_USER: (state, current_user) => {\n state.current_user = current_user\n }\n}\n\nconst actions = {\n resetState({ commit }) {\n commit('SET_PERMISSIONS', null)\n commit('SET_CURRENT_USER', null)\n },\n async getCurrentUser({ commit }, force = false) {\n return new Promise((resolve, reject) => {\n if (state.current_user && !force) {\n resolve(state.current_user)\n } else {\n getUserById(store.getters.user_id).then(resp => {\n commit('SET_CURRENT_USER', resp.data.data)\n resolve(resp.data.data)\n }).catch(err => {\n reject(err)\n })\n }\n })\n },\n getMyPermissions({ commit }, force = false) {\n if (!force) {\n if (state.permissions) {\n return new Promise(resolve => {\n resolve(state.permissions)\n })\n }\n }\n return new Promise(resolve => {\n getUserPermissionsById(store.getters.user_id).then(resp => {\n const permissions = resp.data\n commit('SET_PERMISSIONS', permissions)\n resolve(permissions)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","import { updateTask, getContactsForTask, setAssigneeStatusForTask, setWatchStatusForTask, unassignUserFromTask, delegateTask, removeDelegation, addAssignee, getProtocolsForTask } from '@/api/task'\n\nconst state = {\n task_search_filter: null\n}\n\nconst mutations = {\n SET_TASK_SEARCH_FILTER: (state, filter) => {\n state.task_search_filter = filter\n }\n}\n\nconst actions = {\n updateTaskSearchFilter({ commit }, filters) {\n return new Promise((resolve, reject) => {\n commit('SET_TASK_SEARCH_FILTER', filters)\n resolve()\n })\n },\n updateTask({ commit }, task) {\n return new Promise((resolve, reject) => {\n updateTask(task).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getContactsForTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n getContactsForTask(data).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getProtocolsForTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n getProtocolsForTask(data).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n setAssigneeStatusForTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n setAssigneeStatusForTask(data.id, data.status).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n setWatchStatusForTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n setWatchStatusForTask(data.id, data.status).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n unassignUserFromTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n unassignUserFromTask(data.id, data.user_id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n delegateTask({ commit }, data) {\n return new Promise((resolve, reject) => {\n delegateTask(data.id, data.user_id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n removeDelegation({ commit }, data) {\n return new Promise((resolve, reject) => {\n removeDelegation(data.id, data.user_id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n addAssignee({ commit }, data) {\n return new Promise((resolve, reject) => {\n addAssignee(data.id, data.user_id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","import constantRoutes from '../router/modules/constantRoutes'\nimport store from '@/store'\nimport router from '@/router'\n\nexport async function generateRoutes(account) {\n if (!account) {\n router.push('/home')\n }\n return new Promise((resolve, reject) => {\n // check if user has userinfos stored locally\n const hasRoles = store.getters.roles && store.getters.roles.length > 0\n const hasRoutes = store.getters.permission_routes.length > constantRoutes.length\n\n if (hasRoles && hasRoutes) {\n reject()\n } else {\n const data = {\n roles: account.roles,\n cff: account.cff\n }\n store.dispatch('permission/generateRoutes', data).then(routes => {\n // dynamically add accessible routes\n resolve(routes)\n })\n // router.addRoutes(routes)\n // hack method to ensure that addRoutes is complete\n // set the replace: true, so the navigation will not leave a history record\n // resolve(false)\n }\n })\n}\n\nexport function open(url, event) {\n if (event && (event.metaKey || event.ctrlKey)) {\n openPageInNewTab(url)\n } else {\n openPage(url)\n }\n}\n\nexport function openPage(url) {\n router.push(url)\n}\n\nexport function openPageWithRefresh(url) {\n router.go(url)\n}\n\nexport function openPageInNewTab(url) {\n window.open(url, '_blank')\n}\n","import Vue from 'vue'\nimport Router from 'vue-router'\nimport 'nprogress/nprogress.css' // progress bar style\nimport constantRoutes from '@/router/modules/constantRoutes'\nimport store from '@/store'\n\nVue.use(Router)\n\nconst createRouter = () => new Router({\n mode: 'history', // require service support\n scrollBehavior: () => ({ y: 0 }),\n routes: constantRoutes\n})\n\nconst router = createRouter()\n\n// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465\nexport function resetRouter() {\n const newRouter = createRouter()\n router.matcher = newRouter.matcher // reset router\n}\n\nconst notAccessibleWithAuth = [\n /^\\/login/,\n /^\\/register/,\n /^\\/login\\/.*/,\n /^\\/forgot-password/,\n /^\\/reset-password\\/.*/,\n /^\\/reset-password/,\n /^\\/activate/\n]\n\nrouter.beforeEach((to, from, next) => {\n if (notAccessibleWithAuth.find(url => to.path.match(url))) {\n // change background color for auth page\n document.body.className = 'auth'\n // if logged in, redirect him to home page\n if (store.getters.accessToken) {\n next('/home')\n }\n } else {\n document.body.className = 'default'\n }\n if (to.matched.some(record => record.meta.requiresAuth)) {\n if (store.getters.refreshToken) {\n next()\n } else {\n // choosing finally here, as in case of an exception, it now still logs out\n store.dispatch('auth/logout').finally(() => {\n next({\n path: '/login'\n })\n })\n }\n }\n next()\n})\n\nexport default router\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!./AppMain.vue?vue&type=style&index=0&id=54fbf490&prod&lang=scss&scoped=true&\"","import request from '@/utils/request'\nimport {\n ASSIGNEE_FILTER_ATTRIBUTE, AUTHOR_FILTER_ATTRIBUTE, DUE_DATE_FILTER_ATTRIBUTE, PUBLISHED_FILTER_ATTRIBUTE,\n SEARCH_FILTER_ATTRIBUTE, STATUS_FILTER_ATTRIBUTE,\n TEAM_FILTER_ATTRIBUTE, USER_STATUS_FILTER_ATTRIBUTE, WITH_RESOLVED_FILTER_ATTRIBUTE\n} from '../config/search_filter/task_filter'\n\nexport function getAllTasks(data = null) {\n const filterAttributes = data.filterAttributes\n const listQuery = data.listQuery\n\n const params = []\n if (listQuery) {\n if (listQuery.page) {\n params.push('page=' + listQuery.page)\n }\n if (listQuery.limit) {\n params.push('limit=' + listQuery.limit)\n }\n if (listQuery.order) {\n params.push('order=' + listQuery.order)\n }\n }\n if (filterAttributes) {\n if (filterAttributes.due_date && filterAttributes.due_date.length) {\n params.push(DUE_DATE_FILTER_ATTRIBUTE + '=' + filterAttributes.due_date.join(','))\n }\n if (filterAttributes.author && filterAttributes.author.length) {\n params.push(AUTHOR_FILTER_ATTRIBUTE + '=' + filterAttributes.author.join(','))\n }\n if (filterAttributes.published && filterAttributes.published.length) {\n params.push(PUBLISHED_FILTER_ATTRIBUTE + '=' + filterAttributes.published.join(','))\n }\n if (filterAttributes.status) {\n params.push(STATUS_FILTER_ATTRIBUTE + '=' + filterAttributes.status)\n }\n if (filterAttributes.assignees && filterAttributes.assignees.length) {\n params.push(ASSIGNEE_FILTER_ATTRIBUTE + '=' + filterAttributes.assignees.join(','))\n }\n if (filterAttributes.teams && filterAttributes.teams.length) {\n params.push(TEAM_FILTER_ATTRIBUTE + '=' + filterAttributes.teams.join(','))\n }\n if (filterAttributes.search) {\n params.push(SEARCH_FILTER_ATTRIBUTE + '=' + filterAttributes.search)\n }\n if (filterAttributes.user_status && filterAttributes.user_status.length) {\n params.push(USER_STATUS_FILTER_ATTRIBUTE + '=' + filterAttributes.user_status)\n }\n if (filterAttributes.hide_resolved !== null &&\n (!filterAttributes.status || (filterAttributes.user_status && filterAttributes.user_status.length))) {\n params.push(WITH_RESOLVED_FILTER_ATTRIBUTE + '=' + filterAttributes.hide_resolved)\n }\n }\n return request({\n url: '/api/v1/tasks?' + params.join('&'),\n method: 'get'\n })\n}\n\nexport function printTasks(data = null) {\n const filterAttributes = data.filterAttributes\n const listQuery = data.listQuery\n\n const params = []\n if (listQuery) {\n params.push('page=' + listQuery.page)\n params.push('limit=' + listQuery.limit)\n }\n if (filterAttributes) {\n if (filterAttributes.due_date && filterAttributes.due_date.length) {\n params.push(DUE_DATE_FILTER_ATTRIBUTE + '=' + filterAttributes.due_date.join(','))\n }\n if (filterAttributes.author && filterAttributes.author.length) {\n params.push(AUTHOR_FILTER_ATTRIBUTE + '=' + filterAttributes.author.join(','))\n }\n if (filterAttributes.published && filterAttributes.published.length) {\n params.push(PUBLISHED_FILTER_ATTRIBUTE + '=' + filterAttributes.published.join(','))\n }\n if (filterAttributes.status) {\n params.push(STATUS_FILTER_ATTRIBUTE + '=' + filterAttributes.status)\n }\n if (filterAttributes.assignees && filterAttributes.assignees.length) {\n params.push(ASSIGNEE_FILTER_ATTRIBUTE + '=' + filterAttributes.assignees.join(','))\n }\n if (filterAttributes.teams && filterAttributes.teams.length) {\n params.push(TEAM_FILTER_ATTRIBUTE + '=' + filterAttributes.teams.join(','))\n }\n if (filterAttributes.search) {\n params.push(SEARCH_FILTER_ATTRIBUTE + '=' + filterAttributes.search)\n }\n if (filterAttributes.user_status && filterAttributes.user_status.length) {\n params.push(USER_STATUS_FILTER_ATTRIBUTE + '=' + filterAttributes.user_status)\n }\n if (filterAttributes.hide_resolved !== null &&\n (!filterAttributes.status || (filterAttributes.user_status && filterAttributes.user_status.length))) {\n params.push(WITH_RESOLVED_FILTER_ATTRIBUTE + '=' + filterAttributes.hide_resolved)\n }\n }\n return request({\n url: '/api/v1/tasks/print?' + params.join('&'),\n method: 'get',\n responseType: 'blob'\n })\n}\n\nexport function linkContactToTask(task_id, contact_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/contacts',\n method: 'post',\n data: { contact_id: contact_id }\n })\n}\n\nexport function removeContactToTaskLink(task_id, contact_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/contacts/' + contact_id,\n method: 'delete'\n })\n}\n\nexport function changeContactPublic(task_id, contact_id, status) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/contacts/' + contact_id,\n method: 'put',\n data: { public: status }\n })\n}\n\nexport function searchTaskByString(search = '') {\n return request({\n url: '/api/v1/tasks?search=' + search,\n method: 'get'\n })\n}\n\nexport function uploadFile(task_id, file) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/files',\n method: 'post',\n data: { file: file }\n })\n}\n\nexport function getFilesForTask(task_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/files',\n method: 'get'\n })\n}\n\nexport function deleteFileForTask(task_id, file_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/files/' + file_id,\n method: 'delete'\n })\n}\n\nexport function linkProtocolToTask(task_id, protocol_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/protocols',\n method: 'post',\n data: { protocol_id: protocol_id }\n })\n}\n\nexport function removeProtocolToTaskLink(task_id, protocol_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/protocols/' + protocol_id,\n method: 'delete'\n })\n}\n\nexport function createTask(formData) {\n const data = {\n id: formData.id,\n published: formData.published,\n author_user_id: formData.author_user_id,\n assignees: formData.assignees,\n viewers: formData.viewers,\n due_date: formData.due_date,\n title: formData.title,\n body: formData.body,\n type: formData.type,\n team_id: formData.team_id,\n claims: formData.claims,\n priority: formData.priority,\n comments_enabled: formData.comments_enabled,\n linked_contacts: formData.linked_contacts,\n linked_protocols: formData.linked_protocols\n }\n cleanup(data)\n return request({\n url: '/api/v1/tasks/',\n method: 'post',\n data: data\n })\n}\n\nexport function createEmptyTask(id) {\n return request({\n url: '/api/v1/tasks/empty',\n method: 'post',\n data: { id: id }\n })\n}\n\nexport function getTaskById(id) {\n return request({\n url: '/api/v1/tasks/' + id,\n method: 'get'\n })\n}\n\nexport function printTaskById(id) {\n return request({\n url: '/api/v1/tasks/' + id + '/print',\n method: 'get',\n responseType: 'blob'\n })\n}\n\nexport function deleteTask(id) {\n return request({\n url: '/api/v1/tasks/' + id,\n method: 'delete'\n })\n}\n\nexport function getContactsForTask(id) {\n return request({\n url: '/api/v1/tasks/' + id + '/contacts',\n method: 'get'\n })\n}\n\nexport function getProtocolsForTask(id) {\n return request({\n url: '/api/v1/tasks/' + id + '/protocols',\n method: 'get'\n })\n}\n\nexport function setAssigneeStatusForTask(id, status) {\n return request({\n url: '/api/v1/tasks/' + id + '/status',\n method: 'patch',\n data: { status: status }\n })\n}\n\nexport function updateTask(task) {\n return request({\n url: '/api/v1/tasks/' + task.id,\n method: 'patch',\n data: task\n })\n}\n\nexport function setWatchStatusForTask(id, status) {\n return request({\n url: '/api/v1/tasks/' + id + '/watch',\n method: 'patch',\n data: { status: status }\n })\n}\n\nexport function unassignUserFromTask(id, user_id) {\n return request({\n url: '/api/v1/tasks/' + id + '/assignees/' + user_id,\n method: 'delete'\n })\n}\n\nexport function createComment(task_id, body) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/comments',\n method: 'post',\n data: { body: body }\n })\n}\n\nexport function updateComment(task_id, comment_id, body) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/comments/' + comment_id,\n method: 'PUT',\n data: { body: body }\n })\n}\n\nexport function deleteComment(task_id, comment_id) {\n return request({\n url: '/api/v1/tasks/' + task_id + '/comments/' + comment_id,\n method: 'delete'\n })\n}\n\nexport function addAssignee(id, user_id) {\n return request({\n url: '/api/v1/tasks/' + id + '/assignees',\n method: 'post',\n data: { user_id: user_id }\n })\n}\n\nexport function addViewer(id, user_id) {\n return request({\n url: '/api/v1/tasks/' + id + '/viewers',\n method: 'post',\n data: { user_id: user_id }\n })\n}\n\nexport function removeViewer(id, user_id) {\n return request({\n url: '/api/v1/tasks/' + id + '/viewers/' + user_id,\n method: 'delete'\n })\n}\n\n/**\n * Delete all null (or undefined) properties from an object.\n * Set 'recurse' to true if you also want to delete properties in nested objects.\n */\nfunction cleanup(test, recurse) {\n for (var i in test) {\n if (test[i] == null || test[i] === '') {\n delete test[i]\n } else if (recurse && typeof test[i] === 'object') {\n cleanup(test[i], recurse)\n }\n }\n}\n\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"theme\":\"#007996\",\"menuText\":\"#fff\",\"menuActiveText\":\"#007996\",\"menuActiveHoverText\":\"#fff\",\"subMenuActiveText\":\"#007996\",\"menuBg\":\"#007996\",\"activeMenuBg\":\"#fff\",\"menuHover\":\"rgba(0,121,150,0.9)\",\"subMenuBg\":\"#1f2d3d\",\"subMenuHover\":\"#001528\",\"sideBarWidth\":\"190px\"};","import { getPersonalizationData } from '../../api/v2/settings'\n\nconst state = {\n custom_logo: false,\n nav_logo: 'https://nbg1.your-objectstorage.com/centrics/navbar/centrics-app-logo-horizontal_white_190x50.png',\n nav_logo_icon: 'https://nbg1.your-objectstorage.com/centrics/navbar/centrics-app-logo-square_white_54x50.png',\n nav_logo_powered_by: 'https://nbg1.your-objectstorage.com/centrics/navbar/centrics-app_nav-powered-by_white_190x53.png'\n}\n\nconst mutations = {\n SET_LOGO: (state, logo) => {\n state.nav_logo = logo\n state.custom_logo = true\n },\n SET_ICON: (state, logo) => {\n state.nav_logo_icon = logo\n }\n}\n\nconst actions = {\n getAccountSettings({ commit }) {\n return new Promise((resolve, reject) => {\n getPersonalizationData().then(resp => {\n if (resp.data.logo) {\n commit('SET_LOGO', resp.data.logo)\n }\n if (resp.data.icon) {\n commit('SET_ICON', resp.data.icon)\n }\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\n","import EventBus from '@/eventbus'\nimport store from '@/store'\nimport router from '@/router'\nimport { noAuthList } from '../request'\n\nlet isAlreadyFetchingAccessToken = false\nlet subscribers = []\n\nfunction access_token_interceptor(instance) {\n instance.interceptors.response.use(function(response) {\n return response\n }, function(error) {\n const { config, response } = error\n if (!config) {\n return Promise.reject(error)\n }\n const base_url = process.env['VUE_APP_BASE_API']\n const path = config.url.replace(base_url, '')\n if (noAuthList.find(url => path.match(url))) {\n // if this request should not refresh 401s e.g. like logins\n return Promise.reject(error)\n }\n const originalRequest = config\n\n function onAccessTokenFetched(accessToken) {\n subscribers = subscribers.filter(callback => callback(accessToken))\n }\n\n function addSubscriber(callback) {\n subscribers.push(callback)\n }\n\n if (response && response.status === 401) {\n if (!isAlreadyFetchingAccessToken) {\n isAlreadyFetchingAccessToken = true\n EventBus.$emit('loading-token', true)\n store.dispatch('auth/refresh').then(token => {\n onAccessTokenFetched(token.AccessToken)\n }).catch(() => {\n store.dispatch('auth/logout').then(() => {\n let goToUrl\n if (router.history.pending) {\n goToUrl = router.history.pending.fullPath\n }\n if (goToUrl) {\n router.push('/login?target=' + encodeURI(goToUrl))\n } else {\n router.push('/login')\n }\n })\n }).finally(() => {\n EventBus.$emit('loading-token', false)\n isAlreadyFetchingAccessToken = false\n })\n }\n return new Promise((resolve) => {\n addSubscriber(access_token => {\n originalRequest.headers.Authorization = 'Bearer ' + access_token\n resolve(instance(originalRequest))\n })\n })\n } else {\n return Promise.reject(error)\n }\n })\n}\n\nexport default access_token_interceptor\n","import EventBus from '@/eventbus'\nimport { generateRoutes } from '../routes'\nimport store from '@/store'\nimport router from '@/router'\n\nfunction account_interceptor(instance) {\n instance.interceptors.response.use(function(response) {\n return response\n }, function(error) {\n const { config, response } = error\n const originalRequest = config\n\n let isAlreadyFetchingAccountSignature = false\n let subscribers = []\n\n function onAccountSignatureFetched(signature) {\n subscribers = subscribers.filter(callback => callback(signature))\n }\n\n function addSubscriber(callback) {\n subscribers.push(callback)\n }\n\n if (response && response.status === 403 &&\n (error.response.data.message === 'Invalid Account sent' ||\n error.response.data.message === 'Account Signature Invalid' ||\n error.response.data.message === 'Account Signature Outdated' ||\n error.response.data.message === 'Account missing')) {\n if (!isAlreadyFetchingAccountSignature) {\n isAlreadyFetchingAccountSignature = true\n EventBus.$emit('loading-token', true)\n store.dispatch('account/getCurrentAccount', true).then(account => {\n generateRoutes(account.data).catch(() => {}) // catching error here, as it's just telling us, the routes have already been generated before\n onAccountSignatureFetched(account.signature)\n }).catch(() => {\n router.push('/accounts')\n }).finally(() => {\n EventBus.$emit('loading-token', false)\n isAlreadyFetchingAccountSignature = false\n })\n }\n\n return new Promise((resolve) => {\n addSubscriber(signature => {\n originalRequest.headers.Account = signature\n resolve(instance(originalRequest))\n })\n })\n }\n return Promise.reject(error)\n })\n}\n\nexport default account_interceptor\n","import store from '@/store'\n\nfunction client_version_interceptor(instance) {\n instance.interceptors.response.use(function(response) {\n const env = process.env.VUE_APP_ENV\n const beta_version = response.headers['x-latest-beta-client-version']\n const prd_version = response.headers['x-latest-client-version']\n if (env === 'beta' && beta_version) {\n store.dispatch('client/setLatestVersion', beta_version)\n } else {\n store.dispatch('client/setLatestVersion', prd_version)\n }\n return response\n }, function(error) {\n return Promise.reject(error)\n })\n}\n\nexport default client_version_interceptor\n","import axios from 'axios'\nimport store from '@/store'\nimport access_token_interceptor from './interceptors/access_token_interceptor'\nimport account_interceptor from './interceptors/account_interceptor'\nimport client_version_interceptor from './interceptors/client_version_interceptor'\nimport { getLanguageIso } from '@/lang'\n\n// create an axios instance\nconst service = axios.create({\n baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url\n timeout: 1000 * 30, // request timeout,\n headers: {\n 'X-Client-Version': process.env.VUE_APP_PIPELINE_ID\n },\n json: true\n})\n\nexport const noAuthList = [\n /^\\/api\\/v1\\/oauth\\/token/,\n /^\\/api\\/v1\\/oauth\\/refresh/,\n /^\\/api\\/v1\\/account_infos\\/.*/,\n /^\\/api\\/v1\\/users\\/activate\\/.*/,\n /^\\/api\\/v1\\/oauth\\/challenge/,\n /^\\/api\\/v1\\/password\\/reset\\/trigger/,\n /^\\/api\\/v1\\/password\\/reset/,\n /^\\/api\\/v2\\/accounts\\/register/\n]\n\nexport const noAccountList = [\n /^\\/api\\/v1\\/users\\/.*\\/accounts/,\n /^\\/api\\/v1\\/oauth\\/token/,\n /^\\/api\\/v1\\/oauth\\/refresh/,\n /^\\/api\\/v1\\/oauth\\/challenge/,\n /^\\/api\\/v1\\/users\\/activate\\/.*/,\n /^\\/api\\/v1\\/account_infos\\/.*/,\n /^\\/api\\/v1\\/password\\/reset\\/trigger/,\n /^\\/api\\/v1\\/password\\/reset/,\n /^\\/api\\/v2\\/accounts\\/register/\n]\n\nservice.interceptors.request.use(\n async config => {\n const needAuth = !noAuthList.find(url => config.url.match(url))\n const needAccount = !noAccountList.find(url => config.url.match(url))\n const CancelToken = axios.CancelToken\n\n if (needAccount) {\n const account = await store.dispatch('account/getCurrentAccount')\n config.headers['Account'] = account.signature\n }\n if (needAuth) {\n if (!store.getters.accessToken || !store.getters.user_id) {\n if (!store.getters.refreshToken) {\n // return { ...config, cancelToken: new CancelToken((cancel) => cancel('NO_AUTH')) }\n }\n store.dispatch('auth/refresh').then(resp => {\n config.headers['Authorization'] = 'Bearer ' + resp.AccessToken\n }).catch(() => {\n // return { ...config, cancelToken: new CancelToken((cancel) => cancel('NO_AUTH')) }\n }).finally(() => {\n })\n }\n // set the access-token for every request\n config.headers['Authorization'] = 'Bearer ' + store.getters.accessToken\n }\n config.headers['Content-Language'] = getLanguageIso()\n return config\n },\n error => {\n // do something with request error\n return Promise.reject(error)\n }\n)\n\naccess_token_interceptor(service)\naccount_interceptor(service)\nclient_version_interceptor(service)\n\nexport default service\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!./index.vue?vue&type=style&index=0&id=08909575&prod&lang=scss&scoped=true&\"","import request from '@/utils/request'\n\nexport function listUpdates(limit) {\n return request({\n url: '/api/v2/updates?limit=' + limit,\n method: 'get'\n })\n}\n\nexport function listUpdatesForAdmin(limit) {\n return request({\n url: '/api/v2/admin/updates?limit=' + limit,\n method: 'get'\n })\n}\n\nexport function createUpdate(update) {\n return request({\n url: '/api/v2/admin/updates',\n method: 'post',\n data: update\n })\n}\n\nexport function updateUpdate(update) {\n return request({\n url: '/api/v2/admin/updates/' + update.id,\n method: 'put',\n data: update\n })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"app-wrapper\",class:_vm.classObj},[(_vm.device==='mobile'&&_vm.sidebar.opened)?_c('div',{staticClass:\"drawer-bg\",on:{\"click\":_vm.handleClickOutside}}):_vm._e(),(_vm.$store.getters.user_id)?_c('sidebar',{staticClass:\"sidebar-container\"}):_vm._e(),_c('div',{staticClass:\"main-container\"},[(_vm.$store.getters.user_id)?_c('div',{staticClass:\"fixed-header\"},[_c('navbar')],1):_vm._e(),_c('app-main')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"app-main\"},[_c('transition',{attrs:{\"name\":\"fade-transform\",\"mode\":\"out-in\"}},[_c('router-view',{key:_vm.key})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppMain.vue?vue&type=template&id=54fbf490&scoped=true&\"\nimport script from \"./AppMain.vue?vue&type=script&lang=js&\"\nexport * from \"./AppMain.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppMain.vue?vue&type=style&index=0&id=54fbf490&prod&lang=scss&scoped=true&\"\nimport style1 from \"./AppMain.vue?vue&type=style&index=1&id=54fbf490&prod&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 \"54fbf490\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"navbar\"},[(_vm.device ==='mobile')?_c('hamburger',{staticClass:\"hamburger-container-navbar\",attrs:{\"id\":\"hamburger-container-navbar\",\"position\":\"navbar\"}}):_vm._e(),_c('div',{staticClass:\"right-menu\"},[_c('add-button'),_c('bookmarks-menu',{staticClass:\"right-menu-item\"}),_c('profile-dropdown-menu',{staticClass:\"right-menu-item\"})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"padding\":\"0\"},on:{\"click\":_vm.toggleClick}},[(_vm.sidebar.opened)?_c('fa-icon',{staticClass:\"pointer hamburger-icon\",class:[_vm.position === 'sidebar' ? 'sidebar-icon' : 'navbar-icon'],attrs:{\"icon\":\"angle-left\",\"size\":\"lg\"}}):_vm._e(),(!_vm.sidebar.opened)?_c('fa-icon',{staticClass:\"pointer hamburger-icon\",class:[_vm.position === 'sidebar' ? 'sidebar-icon' : 'navbar-icon'],attrs:{\"icon\":\"angle-right\",\"size\":\"lg\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=08909575&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=08909575&prod&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 \"08909575\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dropdown',{staticClass:\"avatar-container menu-item\",attrs:{\"trigger\":\"click\"},on:{\"command\":_vm.handleDropdownClick}},[_c('div',{staticClass:\"avatar-wrapper\"},[(_vm.$store.getters.current_user)?_c('pan-thumb',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"image\":_vm.$store.getters.current_user.avatar_url,\"height\":'40px',\"width\":'40px'}}):_vm._e(),(!_vm.$store.getters.current_user)?_c('pan-thumb',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"image\":_vm.userPicMale,\"height\":'40px',\"width\":'40px'}}):_vm._e()],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[(_vm.account)?_c('el-dropdown-item',{staticStyle:{\"cursor\":\"text\",\"line-height\":\"1.3\"},attrs:{\"disabled\":\"\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.account'))+\": \"+_vm._s(_vm.account.account_name)+\" \"),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t('navbar.id'))+\": \"+_vm._s(_vm.account.account_id))])])]):_vm._e(),(_vm.$store.getters.available_accounts > 1)?_c('router-link',{attrs:{\"to\":\"/accounts\"}},[_c('el-dropdown-item',{attrs:{\"divided\":\"\"}},[_vm._v(_vm._s(_vm.$t('navbar.switch_accounts')))])],1):_vm._e(),_c('router-link',{attrs:{\"to\":\"/\"}},[_c('el-dropdown-item',{attrs:{\"divided\":\"\"}},[_vm._v(_vm._s(_vm.$t('navbar.home')))])],1),_c('router-link',{attrs:{\"to\":\"/profile\"}},[_c('el-dropdown-item',[_vm._v(_vm._s(_vm.$t('navbar.profile')))])],1),_c('el-dropdown-item',{attrs:{\"divided\":\"\",\"command\":\"logout\"}},[_c('span',{staticStyle:{\"display\":\"block\"}},[_vm._v(_vm._s(_vm.$t('navbar.logout')))])]),(_vm.clipboard_data.at && _vm.isAdmin)?_c('el-dropdown-item',{directives:[{name:\"clipboard\",rawName:\"v-clipboard:copy\",value:(_vm.clipboard_data.at),expression:\"clipboard_data.at\",arg:\"copy\"}],attrs:{\"divided\":\"\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('navbar.copy_access_token')))])]):_vm._e(),(_vm.clipboard_data.as && _vm.isAdmin)?_c('el-dropdown-item',{directives:[{name:\"clipboard\",rawName:\"v-clipboard:copy\",value:(_vm.clipboard_data.as),expression:\"clipboard_data.as\",arg:\"copy\"}]},[_c('span',[_vm._v(_vm._s(_vm.$t('navbar.copy_account_signature')))])]):_vm._e(),(_vm.isAdmin)?_c('router-link',{attrs:{\"to\":\"/admin/accounts\"}},[_c('el-dropdown-item',{attrs:{\"divided\":\"\"}},[_vm._v(_vm._s(_vm.$t('routes.admin')))])],1):_vm._e(),(_vm.account && _vm.isAdmin)?_c('el-dropdown-item',{staticStyle:{\"cursor\":\"text\",\"line-height\":\"1\",\"padding-top\":\"2px\",\"text-align\":\"center\"},attrs:{\"disabled\":\"\",\"divided\":\"\"},on:{\"click\":_vm.refreshAccountJWT}},[_c('span',[_c('small',[_vm._v(\"Current Build: \"+_vm._s(_vm.buildnr ? _vm.buildnr : 'N/A'))]),_c('br'),_c('small',[_vm._v(\"Latest Build: \"+_vm._s(_vm.latest_version ? _vm.latest_version : 'N/A'))]),_c('br'),_c('small',[_vm._v(_vm._s(_vm.env ? _vm.env : ''))])])]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport EventBus from '@/eventbus'\nimport { open } from '@/utils/routes'\nimport Badge from '@/components/Badge/index.vue'\nimport PanThumb from '@/components/PanThumb/index.vue'\n@Component({\n components: { PanThumb, Badge }\n})\nexport default class ProfileDropdownMenu extends Vue {\n account:any = null\n isAdmin:boolean = false\n buildnr:number|null = null\n latest_version:number|null = null\n env:string = ''\n currentPath:string = ''\n userPicMale:string = 'https://nbg1.your-objectstorage.com/centrics/default_avatar_male.jpg'\n clipboard_data:any = {\n at: null,\n as: null\n }\n\n created() {\n this.currentPath = this.$router.currentRoute.fullPath\n this.buildnr = process.env.VUE_APP_PIPELINE_ID\n this.env = process.env.VUE_APP_ENV\n this.isAdmin = this.$store.getters.roles && this.$store.getters.roles.includes('admin')\n this.getCurrentUser()\n this.nrOfAccounts()\n this.loadClipboardData()\n }\n\n showHelp() {\n EventBus.$emit('helpVisible', true)\n }\n\n @Watch('$store.getters.roles')\n watchIsAdminChange(newval:string[], oldval:string[]) {\n this.isAdmin = newval && newval.includes('admin')\n }\n @Watch('$store.getters.latest_version')\n watchLatestUpdateAvailable(newval:number, oldval:number) {\n this.latest_version = newval\n }\n\n handleDropdownClick(event:string) {\n switch (event) {\n case 'logout':\n this.logout()\n break\n }\n }\n\n refreshAccountJWT() {\n }\n\n async loadClipboardData() {\n if (this.$store.getters.user_id) {\n const account = await this.$store.dispatch('account/getCurrentAccount')\n this.clipboard_data.at = this.$store.getters.accessToken\n this.clipboard_data.as = account.signature\n }\n }\n\n nrOfAccounts() {\n this.$store.dispatch('account/getAllAccounts')\n }\n\n accountChange(event:any) {\n open('/accounts', event)\n }\n\n async getCurrentUser() {\n if (this.$store.getters.user_id) {\n await this.$store.dispatch('myuser/getCurrentUser')\n const account = await this.$store.dispatch('account/getCurrentAccount')\n this.account = account.data\n }\n }\n\n logout() {\n const account = this.account\n this.$store.dispatch('auth/logout').then(() => {\n let domain = ''\n if (account && account.data && account.data.domain) {\n domain = account.data.domain\n }\n this.$router.push('/login/' + domain)\n })\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileDropdownMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileDropdownMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProfileDropdownMenu.vue?vue&type=template&id=8854cb86&scoped=true&\"\nimport script from \"./ProfileDropdownMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProfileDropdownMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProfileDropdownMenu.vue?vue&type=style&index=0&id=8854cb86&prod&scoped=true&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 \"8854cb86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"menu-item\",staticStyle:{\"line-height\":\"45px\"}},[_c('el-dropdown',{ref:\"bookmarks\",attrs:{\"hide-on-click\":false,\"trigger\":\"click\"}},[_c('span',{staticClass:\"el-dropdown-link\"},[(_vm.currentPath && _vm.bookmarks.find(b => b.path === _vm.currentPath))?_c('fa-icon',{staticClass:\"favorites-star pointer\",attrs:{\"icon\":['fas', 'star']}}):_c('fa-icon',{staticClass:\"favorites-star pointer\",attrs:{\"icon\":['far', 'star']}})],1),_c('el-dropdown-menu',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.bookmarks_loading),expression:\"bookmarks_loading\"}],attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_vm._l((_vm.bookmarks),function(page){return _c('el-dropdown-item',{key:page.id,class:_vm.currentPath === page.path ? 'bg-selected' : ''},[(page.edit)?_c('div',[_c('el-input',{staticStyle:{\"width\":\"70%\"},attrs:{\"name\":\"label\",\"size\":\"mini\",\"autocomplete\":\"off\"},model:{value:(page.label),callback:function ($$v) {_vm.$set(page, \"label\", $$v)},expression:\"page.label\"}}),_c('i',{staticClass:\"el-icon-check pointer link-type\",on:{\"click\":function($event){return _vm.createBookmark(page)}}})],1):_vm._e(),(!page.edit)?_c('div',[_c('span',{staticClass:\"bookmark-label-button link-type\",on:{\"click\":function($event){return _vm.goToPage(page.path)}}},[_vm._v(_vm._s(page.label))]),_c('span',{staticClass:\"bookmark-delete-button link-type\",on:{\"click\":function($event){return _vm.deleteBookmark(page.id)}}},[_c('i',{staticClass:\"el-icon-close\"})])]):_vm._e()])}),_c('el-dropdown-item',{attrs:{\"divided\":_vm.bookmarks.length > 0}},[_c('span',{staticClass:\"bookmark-create-button link-type\",on:{\"click\":_vm.addBookmarkDraft}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"5px\"},attrs:{\"size\":\"sm\",\"icon\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t('navbar.add_to_favorites'))+\" \")],1)])],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import request from '@/utils/request'\n\nexport function getMyBookmarks() {\n return request({\n url: '/api/v1/bookmarks/',\n method: 'get'\n })\n}\n\nexport function createNewBookmark(path, label) {\n return request({\n url: '/api/v1/bookmarks/',\n method: 'post',\n data: {\n path: path,\n label: label\n }\n })\n}\n\nexport function deleteBookmark(id) {\n return request({\n url: '/api/v1/bookmarks/' + id,\n method: 'delete'\n })\n}\n\nexport function updateBookmark(id, payload) {\n return request({\n url: '/api/v1/bookmarks/',\n method: 'patch',\n data: payload\n })\n}\n","\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { v4 as uuidv4 } from 'uuid'\nimport { createNewBookmark, deleteBookmark, getMyBookmarks } from '@/api/bookmark'\nimport { open } from '@/utils/routes'\n\n@Component\nexport default class BookmarksMenu extends Vue {\n currentPath:string|null = null\n bookmarks:any[] = []\n bookmarks_loading:boolean = false\n\n beforeMount() {\n this.loadBookmarks()\n }\n\n @Watch('$route')\n watchRoute(newval:boolean, oldval:boolean) {\n this.currentPath = this.$router.currentRoute.fullPath\n }\n\n loadBookmarks() {\n this.bookmarks_loading = true\n getMyBookmarks().then(resp => {\n this.bookmarks = resp.data.data\n this.bookmarks_loading = false\n })\n }\n\n addBookmarkDraft() {\n const page:any = {\n id: uuidv4(),\n label: 'New Bookmark',\n path: this.currentPath,\n edit: true\n }\n this.bookmarks.push(page)\n }\n\n createBookmark(page:any) {\n page.edit = false\n createNewBookmark(page.path, page.label).then(resp => {\n (this.$refs.bookmarks as any).hide()\n this.loadBookmarks()\n })\n }\n\n goToPage(path:string) {\n (this.$refs.bookmarks as any).hide()\n open(path)\n }\n\n deleteBookmark(id:string) {\n deleteBookmark(id).then(resp => {\n this.loadBookmarks()\n })\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookmarksMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookmarksMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookmarksMenu.vue?vue&type=template&id=6229edd2&scoped=true&\"\nimport script from \"./BookmarksMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookmarksMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BookmarksMenu.vue?vue&type=style&index=0&id=6229edd2&prod&scoped=true&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 \"6229edd2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"right-menu-item\",staticStyle:{\"line-height\":\"46px\"}},[_c('el-dropdown',{staticStyle:{\"line-height\":\"45px\"},attrs:{\"trigger\":\"click\"},on:{\"command\":_vm.commands}},[_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\"}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"1x\",\"icon\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t('navbar.add'))+\" \"),_c('fa-icon',{staticStyle:{\"margin-left\":\"20px\"},attrs:{\"icon\":\"angle-down\"}})],1),_c('el-dropdown-menu',{staticStyle:{\"min-width\":\"120px\"},attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{directives:[{name:\"has-tasks-app\",rawName:\"v-has-tasks-app\"}],attrs:{\"command\":\"createTask\"}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"1x\",\"icon\":\"tasks\"}}),_c('span',{staticStyle:{\"float\":\"right\"}},[_vm._v(_vm._s(_vm.$t('navbar.create_task')))])],1),(_vm.canSeeProtocolsButton)?_c('el-dropdown-item',{attrs:{\"command\":\"createProtocol\"}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"1x\",\"icon\":\"clipboard-list\"}}),_c('span',{staticStyle:{\"float\":\"right\"}},[_vm._v(_vm._s(_vm.$t('navbar.create_protocol')))])],1):_vm._e(),(_vm.canSeeOffersButton)?_c('el-dropdown-item',{attrs:{\"command\":\"createOffer\"}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"1x\",\"icon\":\"money-check\"}}),_c('span',{staticStyle:{\"float\":\"right\"}},[_vm._v(_vm._s(_vm.$t('navbar.create_offer')))])],1):_vm._e(),(_vm.canSeeSurveysButton)?_c('el-dropdown-item',{attrs:{\"command\":\"createSurvey\"}},[_c('fa-icon',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"1x\",\"icon\":\"vote-yea\"}}),_c('span',{staticStyle:{\"float\":\"right\"}},[_vm._v(_vm._s(_vm.$t('navbar.create_survey')))])],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { open } from '@/utils/routes'\nimport FeatureFlags from '@/enum/FeatureFlags'\n@Component\nexport default class AddButton extends Vue {\n created() {\n this.checkPermissions()\n }\n\n commands(event:string) {\n switch (event) {\n case 'createTask':\n this.createTask()\n break\n case 'createProtocol':\n this.createProtocol()\n break\n case 'createOffer':\n this.createOffer()\n break\n case 'createSurvey':\n this.createSurvey()\n break\n }\n }\n\n public hasFeatureFlag: any\n private canSeeProtocolsButton:boolean = false\n private canSeeOffersButton:boolean = false\n private canSeeSurveysButton:boolean = false\n\n async checkPermissions() {\n const roles = this.$store.getters && this.$store.getters.roles\n const protocols_ff = await this.hasFeatureFlag(FeatureFlags.PROTOCOLS_APP)\n const offers_ff = await this.hasFeatureFlag(FeatureFlags.OFFERS_APP)\n const surveys_ff = await this.hasFeatureFlag(FeatureFlags.SURVEYS_APP)\n\n this.canSeeOffersButton = roles.includes('user') && offers_ff\n this.canSeeProtocolsButton = roles.includes('user') && protocols_ff\n this.canSeeSurveysButton = roles.includes('surveys') && surveys_ff\n }\n\n createTask() {\n open('/tasks/new')\n }\n\n createProtocol() {\n open('/protocols/new')\n }\n\n createSurvey() {\n open('/surveys/new')\n }\n\n createOffer() {\n open('/offers/new')\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddButton.vue?vue&type=template&id=310fe601&scoped=true&\"\nimport script from \"./AddButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddButton.vue?vue&type=style&index=0&id=310fe601&prod&scoped=true&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 \"310fe601\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=78d56571&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=78d56571&prod&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 \"78d56571\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"has-logo\",staticStyle:{\"height\":\"100%\"}},[_c('logo',{attrs:{\"collapse\":_vm.isCollapse}}),_c('el-scrollbar',{staticStyle:{\"height\":\"100%\"},attrs:{\"wrap-class\":\"scrollbar-wrapper\"}},[_c('el-menu',{attrs:{\"default-active\":_vm.activeMenu,\"collapse\":_vm.isCollapse,\"text-color\":_vm.variables.menuText,\"unique-opened\":true,\"collapse-transition\":false,\"mode\":\"vertical\"}},[_vm._l((_vm.normalRoutes),function(route){return _c('sidebar-item',{key:route.path,attrs:{\"item\":route,\"base-path\":route.path}})}),_vm._l((_vm.managerRoutes),function(route){return _c('sidebar-item',{key:route.path,attrs:{\"item\":route,\"base-path\":route.path}})})],2)],1),_c('hamburger',{staticClass:\"hamburger-container\",staticStyle:{\"font-size\":\"30px\",\"position\":\"absolute\",\"bottom\":\"10px\",\"right\":\"20px\"},attrs:{\"id\":\"hamburger-container\"}}),(!_vm.isCollapse && _vm.$store.getters.custom_logo)?_c('img',{staticClass:\"sidebar-logo logo-square\",staticStyle:{\"height\":\"50px\",\"position\":\"absolute\",\"bottom\":\"0\",\"z-index\":\"-1\"},attrs:{\"alt\":\"powered by centrics\",\"src\":_vm.$store.getters.powered_by_logo}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sidebar-logo-container\",class:{'collapse':_vm.collapse}},[_c('router-link',{staticClass:\"sidebar-logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.collapse),expression:\"collapse\"}],staticClass:\"sidebar-logo logo-square\",staticStyle:{\"height\":\"50px\",\"width\":\"auto\"},attrs:{\"src\":_vm.$store.getters.icon,\"alt\":\"Logo-square\"}}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.collapse),expression:\"!collapse\"}],staticClass:\"sidebar-logo logo-full\",staticStyle:{\"height\":\"50px\",\"width\":\"auto\"},attrs:{\"src\":_vm.$store.getters.logo,\"alt\":\"Logo-full\"}}),_c('h1',{staticClass:\"sidebar-title\"})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=3f4a4e0d&scoped=true&\"\nimport script from \"./Logo.vue?vue&type=script&lang=js&\"\nexport * from \"./Logo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logo.vue?vue&type=style&index=0&id=3f4a4e0d&prod&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 \"3f4a4e0d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.item.hidden)?_c('div',{staticClass:\"menu-wrapper\"},[(_vm.hasOneShowingChild(_vm.item.children,_vm.item) && (!_vm.onlyOneChild.children||_vm.onlyOneChild.noShowingChildren)&&!_vm.item.alwaysShow)?[(_vm.onlyOneChild.meta)?_c('app-link',{attrs:{\"to\":_vm.index()}},[_c('el-menu-item',{class:{'submenu-title-noDropdown':!_vm.isNest},style:({ 'background-color': _vm.getBgForItem(_vm.item), width: '100%', 'padding-left': '18px' }),attrs:{\"index\":_vm.index()}},[(_vm.sidebar.opened)?_c('div',{staticStyle:{\"width\":\"40px\",\"display\":\"inline-block\"}},[_c('fa-icon',{staticClass:\"icon-center\",attrs:{\"size\":\"lg\",\"icon\":(_vm.onlyOneChild.meta.icon||(_vm.item.meta&&_vm.item.meta.icon))}})],1):_c('div',{staticStyle:{\"width\":\"40px\",\"display\":\"inline-block\",\"padding-left\":\"11px\"}},[_c('fa-icon',{staticClass:\"icon-center\",attrs:{\"size\":\"lg\",\"icon\":(_vm.onlyOneChild.meta.icon||(_vm.item.meta&&_vm.item.meta.icon))}})],1),(_vm.sidebar.opened)?_c('div',{staticStyle:{\"width\":\"auto\",\"padding-left\":\"3px\",\"display\":\"inline-block\"}},[_c('item',{staticStyle:{\"padding-left\":\"10px\",\"display\":\"inline-block\"},attrs:{\"title\":_vm.generateTitle(_vm.onlyOneChild.meta.title) || _vm.generateTitle(_vm.item.meta&&_vm.item.meta.title)}})],1):_vm._e()])],1):_vm._e()]:_c('el-submenu',{ref:\"subMenu\",attrs:{\"index\":_vm.resolvePath(_vm.item.path),\"popper-append-to-body\":\"\"}},[_c('template',{slot:\"title\"},[(_vm.item.meta)?_c('item',{attrs:{\"icon\":_vm.item.meta && _vm.item.meta.icon,\"title\":_vm.generateTitle(_vm.item.meta.title)}}):_vm._e()],1),_vm._l((_vm.item.children),function(child){return _c('sidebar-item',{key:child.path,staticClass:\"nest-menu\",attrs:{\"is-nest\":true,\"item\":child,\"base-path\":_vm.resolvePath(child.path)}})})],2)],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// translate router.meta.title, be used in breadcrumb sidebar tagsview\n\nexport function generateTitle(title) {\n const hasKey = this.$te('routes.' + title)\n if (hasKey) {\n // $t :this method from vue-i18n, inject in @/lang/index.js\n return this.$t('routes.' + title)\n }\n return title\n}\n","/**\n * Created by PanJiaChen on 16/11/18.\n */\n\n/**\n * @param {string} path\n * @returns {Boolean}\n */\nexport function isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path)\n}\n\n/**\n * @param {string} str\n * @returns {Boolean}\n */\nexport function validUsername(str) {\n const valid_map = ['admin', 'editor']\n return valid_map.indexOf(str.trim()) >= 0\n}\n\n/**\n * @param {string} url\n * @returns {Boolean}\n */\nexport function validURL(url) {\n const reg = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\n return reg.test(url)\n}\n\n/**\n * @param {string} str\n * @returns {Boolean}\n */\nexport function validLowerCase(str) {\n const reg = /^[a-z]+$/\n return reg.test(str)\n}\n\n/**\n * @param {string} str\n * @returns {Boolean}\n */\nexport function validUpperCase(str) {\n const reg = /^[A-Z]+$/\n return reg.test(str)\n}\n\n/**\n * @param {string} str\n * @returns {Boolean}\n */\nexport function validAlphabets(str) {\n const reg = /^[A-Za-z]+$/\n return reg.test(str)\n}\n\n/**\n * @param {string} email\n * @returns {Boolean}\n */\nexport function validEmail(email) {\n const reg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return reg.test(email)\n}\n\n/**\n * @param {string} str\n * @returns {Boolean}\n */\nexport function isString(str) {\n if (typeof str === 'string' || str instanceof String) {\n return true\n }\n return false\n}\n\n/**\n * @param {Array} arg\n * @returns {Boolean}\n */\nexport function isArray(arg) {\n if (typeof Array.isArray === 'undefined') {\n return Object.prototype.toString.call(arg) === '[object Array]'\n }\n return Array.isArray(arg)\n}\n","\n","var render, staticRenderFns\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\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","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('component',_vm._b({},'component',_vm.linkProps(_vm.to),false),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Link.vue?vue&type=template&id=709ad746&\"\nimport script from \"./Link.vue?vue&type=script&lang=js&\"\nexport * from \"./Link.vue?vue&type=script&lang=js&\"\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","export default {\n computed: {\n device() {\n return this.$store.state.app.device\n }\n },\n mounted() {\n // In order to fix the click on menu on the ios device will trigger the mouseleave bug\n // https://github.com/PanJiaChen/vue-element-admin/issues/1135\n this.fixBugIniOS()\n },\n methods: {\n fixBugIniOS() {\n const $subMenu = this.$refs.subMenu\n if ($subMenu) {\n const handleMouseleave = $subMenu.handleMouseleave\n $subMenu.handleMouseleave = (e) => {\n if (this.device === 'mobile') {\n return\n }\n handleMouseleave(e)\n }\n }\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarItem.vue?vue&type=template&id=0f0021e5&\"\nimport script from \"./SidebarItem.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidebarItem.vue?vue&type=style&index=0&id=0f0021e5&prod&lang=css&\"\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\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1f024ecb&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\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","import store from '@/store'\n\nconst { body } = document\nconst WIDTH = 992 // refer to Bootstrap's responsive design\n\nexport default {\n watch: {\n $route(route) {\n if (this.device === 'mobile' && this.sidebar.opened) {\n store.dispatch('app/closeSideBar', { withoutAnimation: false })\n }\n }\n },\n beforeMount() {\n window.addEventListener('resize', this.$_resizeHandler)\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.$_resizeHandler)\n },\n mounted() {\n const isMobile = this.$_isMobile()\n if (isMobile) {\n store.dispatch('app/toggleDevice', 'mobile')\n store.dispatch('app/closeSideBar', { withoutAnimation: true })\n }\n },\n methods: {\n // use $_ for mixins properties\n // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential\n $_isMobile() {\n const rect = body.getBoundingClientRect()\n return rect.width - 1 < WIDTH\n },\n $_resizeHandler() {\n if (!document.hidden) {\n const isMobile = this.$_isMobile()\n store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop')\n\n if (isMobile) {\n store.dispatch('app/closeSideBar', { withoutAnimation: true })\n }\n }\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=55579784&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=55579784&prod&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 \"55579784\",\n null\n \n)\n\nexport default component.exports","import request from '@/utils/request'\nimport store from '@/store'\n\nexport function getUserById(user_id) {\n return request({\n url: '/api/v1/users/' + user_id,\n method: 'get'\n })\n}\n\nexport function getUserPermissionsById(user_id) {\n return request({\n url: '/api/v1/users/' + user_id + '/permissions',\n method: 'get'\n })\n}\n\nexport function getRecoveryQuestionByToken(token) {\n return request({\n url: '/api/v1/users/token/' + token,\n method: 'get'\n })\n}\n\nexport function activateUser(data) {\n const body = {\n password: data.password,\n user_pool_id: data.user_pool_id\n }\n return request({\n url: '/api/v1/users/activate/' + data.token,\n method: 'post',\n data: body\n })\n}\n\nexport function resetPassword(data) {\n const body = {\n token: data.token,\n password: data.password,\n user_pool_id: data.user_pool_id\n }\n return request({\n url: '/api/v1/password/reset',\n method: 'post',\n data: body\n })\n}\n\nexport async function changePassword(old_password, new_password, new_password_confirmation) {\n const user_id = store.getters.user_id\n const data = {\n old_password: old_password,\n new_password: new_password,\n new_password_confirmation: new_password_confirmation\n }\n return request({\n url: '/api/v1/users/' + user_id + '/attributes/password',\n method: 'patch',\n data: data\n })\n}\n\nexport async function triggerPasswordReset(email, account_id) {\n return request({\n url: '/api/v1/password/reset/trigger',\n method: 'post',\n data: {\n email: email,\n user_pool_id: account_id\n }\n })\n}\n\nexport async function triggerWelcomeEmail(user_id) {\n return request({\n url: '/api/v1/users/' + user_id + '/welcome-email',\n method: 'post'\n })\n}\n\nexport async function updateProfile(first_name, last_name, gender, locale, timezone) {\n const user_id = store.getters.user_id\n const data = {\n first_name: first_name,\n last_name: last_name,\n locale: locale,\n gender: gender,\n timezone: timezone\n }\n return request({\n url: '/api/v1/users/' + user_id,\n method: 'put',\n data: data\n })\n}\n\nexport async function updateProfilePicture(file) {\n const user_id = store.getters.user_id\n return request({\n url: '/api/v1/users/' + user_id + '/attributes/avatar',\n method: 'post',\n data: {\n 'file': file\n }\n })\n}\n","var map = {\n\t\"./account.js\": \"61c5\",\n\t\"./account_settings.js\": \"b5cd\",\n\t\"./app.js\": \"d9cd\",\n\t\"./auth.js\": \"c7d4\",\n\t\"./client.js\": \"7ba5\",\n\t\"./customer.js\": \"f1b1\",\n\t\"./help.js\": \"88ab\",\n\t\"./myuser.js\": \"9ea2\",\n\t\"./offer.js\": \"4528\",\n\t\"./permission.js\": \"31c2\",\n\t\"./protocol.js\": \"7073\",\n\t\"./static_content.js\": \"f210\",\n\t\"./survey.js\": \"64e6\",\n\t\"./task.js\": \"9f10\",\n\t\"./users.js\": \"8ce5\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c653\";","import request from '@/utils/request'\n\nexport function login(email, password, account_id) {\n const data = {\n username: email,\n password: password,\n account_id: account_id\n }\n return request({\n url: '/api/v1/oauth/token',\n method: 'post',\n data: data\n })\n}\n\nexport function respond_to_auth_challenge(challenge_name, client_id, session, password, username) {\n const data = {\n challenge_name: challenge_name,\n client_id: client_id,\n session: session,\n password: password,\n username: username\n }\n return request({\n url: '/api/v1/oauth/challenge',\n method: 'post',\n data: data\n })\n}\n\nexport function refresh(refresh_token, username, client_id) {\n const data = {\n refresh_token: refresh_token,\n username: username,\n client_id: client_id\n }\n return request({\n url: '/api/v1/oauth/refresh',\n method: 'post',\n timeout: 10000, // request timeout just for token refresh,\n data: data\n })\n}\n","import { login, respond_to_auth_challenge, refresh } from '@/api/auth'\nimport VueJwtDecode from 'vue-jwt-decode'\nimport { clearStorage } from '@/utils/storage'\nimport { resetRouter } from '@/router'\nimport { addDomainToStoredDomains } from '@/utils/auth'\nimport store from '../index'\n\nexport const ID_TOKEN_ATTR = 'pd'\nexport const REFRESH_TOKEN_ATTR = 'pk'\nexport const USER_ID_ATTR = 'pc'\nexport const CLIENT_ID_ATTR = 'pci'\n\nconst state = {\n isAuthenticated: localStorage.getItem(REFRESH_TOKEN_ATTR),\n accessToken: null,\n idToken: localStorage.getItem(ID_TOKEN_ATTR),\n refreshToken: localStorage.getItem(REFRESH_TOKEN_ATTR),\n user_id: localStorage.getItem(USER_ID_ATTR),\n client_id: localStorage.getItem(CLIENT_ID_ATTR)\n}\n\nconst mutations = {\n SET_ACCESS_TOKEN: (state, data) => {\n state.accessToken = data\n },\n SET_REFRESH_TOKEN: (state, data) => {\n localStorage.setItem(REFRESH_TOKEN_ATTR, data)\n state.refreshToken = data\n },\n SET_ID_TOKEN: (state, data) => {\n localStorage.setItem(ID_TOKEN_ATTR, data)\n state.idToken = data\n },\n SET_USER_ID: (state, data) => {\n localStorage.setItem(USER_ID_ATTR, data)\n state.user_id = data\n },\n SET_CLIENT_ID: (state, data) => {\n localStorage.setItem(CLIENT_ID_ATTR, data)\n state.client_id = data\n },\n resetState: (state) => {\n // Merge rather than replace so we don't lose observers\n // https://github.com/vuejs/vuex/issues/1118\n Object.assign(state, {\n isAuthenticated: false,\n accessToken: null,\n refreshToken: null,\n user_id: null\n })\n }\n}\n\nfunction setAuthResult(result, commit) {\n const user_id = VueJwtDecode.decode(result.IdToken).sub\n const client_id = VueJwtDecode.decode(result.AccessToken).client_id\n\n let account_id = VueJwtDecode.decode(result.AccessToken).iss\n const awsregex = /https:\\/\\/cognito-idp\\.(us(-gov)?|ap|ca|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d\\.amazonaws\\.com\\//\n account_id = account_id.replace(awsregex, '')\n commit('SET_CLIENT_ID', client_id)\n commit('SET_ACCESS_TOKEN', result.AccessToken)\n commit('SET_USER_ID', user_id)\n if (result.RefreshToken) {\n commit('SET_REFRESH_TOKEN', result.RefreshToken)\n }\n commit('SET_ID_TOKEN', result.IdToken)\n}\n\nconst actions = {\n login({ commit }, auth_data) {\n addDomainToStoredDomains(auth_data.domain, auth_data.account_name, auth_data.username)\n return new Promise((resolve, reject) => {\n login(auth_data.username, auth_data.password, auth_data.account_id, auth_data.domain).then(resp => {\n if (resp.data.AccessToken) {\n setAuthResult(resp.data, commit)\n resolve(resp.data)\n } else {\n resolve(resp.data)\n }\n }).catch(err => {\n reject(err)\n })\n })\n },\n respond_to_auth_challenge({ commit }, challenge_data) {\n return new Promise((resolve, reject) => {\n respond_to_auth_challenge(\n challenge_data.challenge_name,\n challenge_data.client_id,\n challenge_data.session,\n challenge_data.password,\n challenge_data.username\n ).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n refresh({ commit }) {\n return new Promise((resolve, reject) => {\n const idtoken = localStorage.getItem(ID_TOKEN_ATTR)\n const username = VueJwtDecode.decode(idtoken)['cognito:username']\n const client_id = localStorage.getItem(CLIENT_ID_ATTR)\n if (!client_id) {\n reject()\n }\n refresh(localStorage.getItem(REFRESH_TOKEN_ATTR), username, client_id).then(resp => {\n setAuthResult(resp.data, commit)\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n logout({ commit }) {\n return new Promise((resolve, reject) => {\n clearStorage(true)\n commit('resetState')\n store.dispatch('account/resetState')\n store.dispatch('permission/resetState')\n store.dispatch('static_content/resetState')\n store.dispatch('myuser/resetState')\n store.dispatch('users/resetState')\n resetRouter()\n resolve()\n })\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n\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!./BookmarksMenu.vue?vue&type=style&index=0&id=6229edd2&prod&scoped=true&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.show_terms && _vm.isManager && this.$store.getters.user_id)?_c('terms-accepted-consent',{on:{\"hide\":function($event){_vm.show_terms=false}}}):_vm._e(),_c('help-drawer',{attrs:{\"visible\":_vm.show_help},on:{\"hide\":function($event){_vm.show_help=false}}}),_c('update-drawer',{attrs:{\"visible\":_vm.show_updates},on:{\"hide\":function($event){_vm.show_updates=false}}}),(_vm.isIE)?_c('i-e-support'):_vm._e(),_c('router-view'),_c('v-dialog')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-dialog',{attrs:{\"visible\":true,\"width\":\"35em\",\"center\":\"\",\"close-on-press-escape\":false,\"close-on-click-modal\":false,\"show-close\":false}},[_c('span',{staticClass:\"tc-text-class\",domProps:{\"innerHTML\":_vm._s(_vm.$t('pages.app.messages.tc_and_pp_not_accepted_yet', { pp: _vm.transl_pp, tc: _vm.transl_tc }))}}),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.logout}},[_vm._v(_vm._s(_vm.$t('pages.app.buttons.logout')))]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.accept}},[_vm._v(_vm._s(_vm.$t('pages.app.buttons.accept')))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptedConsent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptedConsent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TermsAcceptedConsent.vue?vue&type=template&id=40bc7376&scoped=true&\"\nimport script from \"./TermsAcceptedConsent.vue?vue&type=script&lang=js&\"\nexport * from \"./TermsAcceptedConsent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TermsAcceptedConsent.vue?vue&type=style&index=0&id=40bc7376&prod&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 \"40bc7376\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-dialog',{attrs:{\"visible\":true,\"title\":_vm.$t('pages.app.headlines.ie_not_supported'),\"width\":\"35em\",\"center\":\"\",\"close-on-press-escape\":false,\"close-on-click-modal\":false,\"show-close\":false}},[_c('span',{staticClass:\"tc-text-class\",domProps:{\"innerHTML\":_vm._s(_vm.$t('pages.app.messages.ie_not_supported'))}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./IESupport.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./IESupport.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IESupport.vue?vue&type=template&id=f452af6e&scoped=true&\"\nimport script from \"./IESupport.vue?vue&type=script&lang=js&\"\nexport * from \"./IESupport.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IESupport.vue?vue&type=style&index=0&id=f452af6e&prod&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 \"f452af6e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-drawer',{attrs:{\"title\":_vm.$t('pages.help.headlines.help'),\"visible\":_vm.visible,\"direction\":\"rtl\",\"with-header\":false,\"before-close\":_vm.handleClose},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('div',{staticClass:\"content\"},[(_vm.text)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.text)}}):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelpDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpDrawer.vue?vue&type=template&id=39b7e0cd&scoped=true&\"\nimport script from \"./HelpDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpDrawer.vue?vue&type=style&index=0&id=39b7e0cd&prod&scoped=true&lang=css&\"\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 \"39b7e0cd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-drawer',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.updates.length === 0 && _vm.loading),expression:\"updates.length === 0 && loading\"}],attrs:{\"custom-class\":\"update-drawer\",\"title\":_vm.$t('pages.whats_new.headline'),\"visible\":_vm.visible,\"direction\":\"rtl\",\"with-header\":true,\"before-close\":_vm.handleClose},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('div',{staticClass:\"content\"},_vm._l((_vm.updates),function(update){return _c('span',{key:update.id,staticClass:\"entry\"},[_c('h2',[_vm._v(_vm._s(update.title))]),_c('h3',{staticStyle:{\"margin-top\":\"0\",\"margin-bottom\":\"5px\"}},[_c('small',{staticClass:\"date\"},[_vm._v(_vm._s(_vm._f(\"msTimestampToDate\")(update.date)))])]),_c('div',{domProps:{\"innerHTML\":_vm._s(update.text)}}),_c('img',{staticStyle:{\"width\":\"100%\",\"height\":\"auto\"},attrs:{\"src\":update.image_url,\"alt\":\"\"}})])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateDrawer.vue?vue&type=template&id=6c899ebd&scoped=true&\"\nimport script from \"./UpdateDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpdateDrawer.vue?vue&type=style&index=0&id=6c899ebd&prod&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 \"6c899ebd\",\n null\n \n)\n\nexport default component.exports","\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=214eb25d&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\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","// Inspired by https://github.com/Inndy/vue-clipboard2\nconst Clipboard = require('clipboard')\nif (!Clipboard) {\n throw new Error('you should npm install `clipboard` --save at first ')\n}\n\nexport default {\n bind(el, binding) {\n if (binding.arg === 'success') {\n el._v_clipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._v_clipboard_error = binding.value\n } else {\n const clipboard = new Clipboard(el, {\n text() { return binding.value },\n action() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n })\n clipboard.on('success', e => {\n const callback = el._v_clipboard_success\n callback && callback(e) // eslint-disable-line\n })\n clipboard.on('error', e => {\n const callback = el._v_clipboard_error\n callback && callback(e) // eslint-disable-line\n })\n el._v_clipboard = clipboard\n }\n },\n update(el, binding) {\n if (binding.arg === 'success') {\n el._v_clipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._v_clipboard_error = binding.value\n } else {\n el._v_clipboard.text = function() { return binding.value }\n el._v_clipboard.action = function() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n }\n },\n unbind(el, binding) {\n if (binding.arg === 'success') {\n delete el._v_clipboard_success\n } else if (binding.arg === 'error') {\n delete el._v_clipboard_error\n } else {\n el._v_clipboard.destroy()\n delete el._v_clipboard\n }\n }\n}\n","import Clipboard from './clipboard'\n\nconst install = function(Vue) {\n Vue.directive('Clipboard', Clipboard)\n}\n\nif (window.Vue) {\n window.clipboard = Clipboard\n Vue.use(install); // eslint-disable-line\n}\n\nClipboard.install = install\nexport default Clipboard\n","import store from '@/store'\n\nconst isUser = {\n inserted(el, binding, vnode) {\n const roles = store.getters && store.getters.roles\n\n if (!roles.includes('user')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isUser\n","import store from '@/store'\n\nconst isContact = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n\n if (!roles.includes('contact')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isContact\n","import store from '@/store'\n\nconst isAdmin = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n\n if (!roles.includes('admin')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isAdmin\n","import store from '@/store'\n\nconst isManager = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n\n if (!roles.includes('manager')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isManager\n","import store from '@/store'\n\nconst isNotManager = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n\n if (roles.includes('manager')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isNotManager\n","import store from '@/store'\n\nconst isNotUser = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n\n if (roles.includes('user')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isNotUser\n","import store from '@/store'\n\nconst isNotContact = {\n inserted(el, binding, vnode) {\n let roles = store.getters && store.getters.roles\n if (binding.value) {\n roles = binding.value\n }\n if (roles.includes('contact')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isNotContact\n","import store from '@/store'\n\nconst isTeamAdmin = {\n inserted(el, binding, vnode) {\n const roles = store.getters && store.getters.roles\n\n if (!roles.includes('team_admin')) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default isTeamAdmin\n","import isUser from './is/is_user'\nimport isContact from './is/is_contact'\nimport isAdmin from './is/is_admin'\nimport isManager from './is/is_manager'\nimport isNotManager from './is/is_not_manager'\nimport isNotUser from './is/is_not_user'\nimport isNotContact from './is/is_not_contact'\nimport isTeamAdmin from './is/is_team_admin'\n\nconst install = function(Vue) {\n Vue.directive('if-is-user', isUser)\n Vue.directive('if-is-contact', isContact)\n Vue.directive('if-is-admin', isAdmin)\n Vue.directive('if-is-manager', isManager)\n Vue.directive('if-is-not-manager', isNotManager)\n Vue.directive('if-is-not-contact', isNotContact)\n Vue.directive('if-is-not-user', isNotUser)\n Vue.directive('if-is-team_admin', isTeamAdmin)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nisUser.install = install\nexport default isUser\n","import store from '@/store'\nimport FeatureFlags from '../../../enum/FeatureFlags'\n\nconst hasContactsApp = {\n async inserted(el, binding, vnode) {\n let applications = []\n if (store.getters.user_id) {\n const account = await store.dispatch('account/getCurrentAccount')\n if (account) {\n applications = account.data.cff\n }\n }\n\n if (!applications.includes(FeatureFlags.CONTACTS_APP)) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default hasContactsApp\n","import hasContactsApp from './has-contacts-app'\n\nconst install = function(Vue) {\n Vue.directive('has-contacts-app', hasContactsApp)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nhasContactsApp.install = install\nexport default hasContactsApp\n","import store from '@/store'\nimport FeatureFlags from '../../../enum/FeatureFlags'\n\nconst hasTasksApp = {\n async inserted(el, binding, vnode) {\n let applications = []\n if (store.getters.user_id) {\n const account = await store.dispatch('account/getCurrentAccount')\n if (account) {\n applications = account.data.cff\n }\n }\n\n if (!applications.includes(FeatureFlags.TASKS_APP)) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default hasTasksApp\n","import hasTasksApp from './has-tasks-app'\n\nconst install = function(Vue) {\n Vue.directive('has-tasks-app', hasTasksApp)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nhasTasksApp.install = install\nexport default hasTasksApp\n","import store from '@/store'\nimport FeatureFlags from '../../../enum/FeatureFlags'\n\nconst hasProtocolsApp = {\n async inserted(el, binding, vnode) {\n let applications = []\n if (store.getters.user_id) {\n const account = await store.dispatch('account/getCurrentAccount')\n if (account) {\n applications = account.data.cff\n }\n }\n\n if (!applications.includes(FeatureFlags.PROTOCOLS_APP)) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default hasProtocolsApp\n","import hasProtocolsApp from './has-protocols-app'\n\nconst install = function(Vue) {\n Vue.directive('has-protocols-app', hasProtocolsApp)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nhasProtocolsApp.install = install\nexport default hasProtocolsApp\n","import store from '@/store'\nimport FeatureFlags from '../../../enum/FeatureFlags'\n\nconst hasOffersApp = {\n async inserted(el, binding, vnode) {\n let applications = []\n if (store.getters.user_id) {\n const account = await store.dispatch('account/getCurrentAccount')\n if (account) {\n applications = account.data.cff\n }\n }\n\n if (!applications.includes(FeatureFlags.OFFERS_APP)) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default hasOffersApp\n","import hasOffersApp from './has-offers-app'\n\nconst install = function(Vue) {\n Vue.directive('has-offers-app', hasOffersApp)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nhasOffersApp.install = install\nexport default hasOffersApp\n","import store from '@/store'\nimport FeatureFlags from '../../../enum/FeatureFlags'\n\nconst hasSurveysApp = {\n async inserted(el, binding, vnode) {\n let applications = []\n if (store.getters.user_id) {\n const account = await store.dispatch('account/getCurrentAccount')\n if (account) {\n applications = account.data.cff\n }\n }\n\n if (!applications.includes(FeatureFlags.SURVEYS_APP)) {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n}\n\nexport default hasSurveysApp\n","import hasSurveysApp from './has-surveys-app'\n\nconst install = function(Vue) {\n Vue.directive('has-surveys-app', hasSurveysApp)\n}\n\nif (window.Vue) {\n Vue.use(install); // eslint-disable-line\n}\n\nhasSurveysApp.install = install\nexport default hasSurveysApp\n","const title = 'centrics'\n\nexport default function getPageTitle(pageTitle) {\n return `${title}`\n}\n","import router from '@/router'\nimport store from '@/store'\n\n// import { isAuthenticated } from '@/utils/auth' // get token from cookie\nimport NProgress from 'nprogress' // progress bar\nimport 'nprogress/nprogress.css' // progress bar style\nimport getPageTitle from '@/utils/get-page-title'\nimport { generateRoutes } from './utils/routes'\n\nNProgress.configure({ showSpinner: true }) // NProgress Configuration\n\nexport const noAccountList = [\n /^\\/login/,\n /^\\/link\\/noauth/,\n /^\\/register/,\n /^\\/login\\/[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*/,\n /^\\/acc\\/[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*/,\n /^\\/accounts/,\n /^\\/forgot-password/,\n /^\\/reset-password\\/[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*/,\n /^\\/reset-password/,\n /^\\/activate/\n]\n\nrouter.beforeEach(async(to, from, next) => {\n document.title = getPageTitle(to.meta.title)\n if (!pathWhitelisted(to.path)) {\n // check if user has an account set\n store.dispatch('account/getCurrentAccount').then(async account => {\n generateRoutes(account.data).then(routes => {\n router.addRoutes(routes)\n // hack method to ensure that addRoutes is complete\n // set the replace: true, so the navigation will not leave a history record\n next({ ...to, replace: true })\n }).catch(() => {\n next()\n })\n }).catch(() => {\n next('/accounts')\n })\n } else {\n next()\n }\n})\n\nfunction pathWhitelisted(path) {\n return noAccountList.find(url => path.match(url))\n}\n","import Vue from 'vue'\n\nVue.config.errorHandler = function(err, vm, info, a) {\n// Don't ask me why I use Vue.nextTick, it just a hack.\n// detail see https://forum.vuejs.org/t/dispatch-in-vue-config-errorhandler-has-some-problem/23500\n Vue.nextTick(() => {\n console.log(err, info)\n })\n}\n","/**\n * Created by PanJiaChen on 16/11/18.\n */\n\n/**\n * Parse the time to string\n * @param {(Object|string|number)} time\n * @param {string} cFormat\n * @returns {string}\n */\nexport function parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null\n }\n const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n let date\n if (typeof time === 'object') {\n date = time\n } else {\n if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {\n time = parseInt(time)\n }\n if ((typeof time === 'number') && (time.toString().length === 10)) {\n time = time * 1000\n }\n date = new Date(time)\n }\n const formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n }\n const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\n let value = formatObj[key]\n // Note: getDay() returns 0 on Sunday\n if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }\n if (result.length > 0 && value < 10) {\n value = '0' + value\n }\n return value || 0\n })\n return time_str\n}\n\n/**\n * @param {number} time\n * @param {string} option\n * @returns {string}\n */\nexport function formatTime(time, option) {\n if (('' + time).length === 10) {\n time = parseInt(time) * 1000\n } else {\n time = +time\n }\n const d = new Date(time)\n const now = Date.now()\n\n const diff = (now - d) / 1000\n\n if (diff < 30) {\n return '刚刚'\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前'\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前'\n } else if (diff < 3600 * 24 * 2) {\n return '1天前'\n }\n if (option) {\n return parseTime(time, option)\n } else {\n return (\n d.getMonth() +\n 1 +\n '月' +\n d.getDate() +\n '日' +\n d.getHours() +\n '时' +\n d.getMinutes() +\n '分'\n )\n }\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function getQueryObject(url) {\n url = url == null ? window.location.href : url\n const search = url.substring(url.lastIndexOf('?') + 1)\n const obj = {}\n const reg = /([^?&=]+)=([^?&=]*)/g\n search.replace(reg, (rs, $1, $2) => {\n const name = decodeURIComponent($1)\n let val = decodeURIComponent($2)\n val = String(val)\n obj[name] = val\n return rs\n })\n return obj\n}\n\n/**\n * @param {string} input value\n * @returns {number} output value\n */\nexport function byteLength(str) {\n // returns the byte length of an utf8 string\n let s = str.length\n for (var i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xDC00 && code <= 0xDFFF) i--\n }\n return s\n}\n\n/**\n * @param {Array} actual\n * @returns {Array}\n */\nexport function cleanArray(actual) {\n const newArray = []\n for (let i = 0; i < actual.length; i++) {\n if (actual[i]) {\n newArray.push(actual[i])\n }\n }\n return newArray\n}\n\n/**\n * @param {Object} json\n * @returns {Array}\n */\nexport function param(json) {\n if (!json) return ''\n return cleanArray(\n Object.keys(json).map(key => {\n if (json[key] === undefined) return ''\n return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])\n })\n ).join('&')\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function param2Obj(url) {\n const search = url.split('?')[1]\n if (!search) {\n return {}\n }\n return JSON.parse(\n '{\"' +\n decodeURIComponent(search)\n .replace(/\"/g, '\\\\\"')\n .replace(/&/g, '\",\"')\n .replace(/=/g, '\":\"')\n .replace(/\\+/g, ' ') +\n '\"}'\n )\n}\n\n/**\n * @param {string} val\n * @returns {string}\n */\nexport function html2Text(val) {\n const div = document.createElement('div')\n div.innerHTML = val\n return div.textContent || div.innerText\n}\n\n/**\n * Merges two objects, giving the last one precedence\n * @param {Object} target\n * @param {(Object|Array)} source\n * @returns {Object}\n */\nexport function objectMerge(target, source) {\n if (typeof target !== 'object') {\n target = {}\n }\n if (Array.isArray(source)) {\n return source.slice()\n }\n Object.keys(source).forEach(property => {\n const sourceProperty = source[property]\n if (typeof sourceProperty === 'object') {\n target[property] = objectMerge(target[property], sourceProperty)\n } else {\n target[property] = sourceProperty\n }\n })\n return target\n}\n\n/**\n * @param {HTMLElement} element\n * @param {string} className\n */\nexport function toggleClass(element, className) {\n if (!element || !className) {\n return\n }\n let classString = element.className\n const nameIndex = classString.indexOf(className)\n if (nameIndex === -1) {\n classString += '' + className\n } else {\n classString =\n classString.substr(0, nameIndex) +\n classString.substr(nameIndex + className.length)\n }\n element.className = classString\n}\n\n/**\n * @param {string} type\n * @returns {Date}\n */\nexport function getTime(type) {\n if (type === 'start') {\n return new Date().getTime() - 3600 * 1000 * 24 * 90\n } else {\n return new Date(new Date().toDateString())\n }\n}\n\n/**\n * @param {Function} func\n * @param {number} wait\n * @param {boolean} immediate\n * @return {*}\n */\nexport function debounce(func, wait, immediate) {\n let timeout, args, context, timestamp, result\n\n const later = function() {\n // 据上一次触发时间间隔\n const last = +new Date() - timestamp\n\n // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait\n if (last < wait && last > 0) {\n timeout = setTimeout(later, wait - last)\n } else {\n timeout = null\n // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用\n if (!immediate) {\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n }\n }\n\n return function(...args) {\n context = this\n timestamp = +new Date()\n const callNow = immediate && !timeout\n // 如果延时不存在,重新设定延时\n if (!timeout) timeout = setTimeout(later, wait)\n if (callNow) {\n result = func.apply(context, args)\n context = args = null\n }\n\n return result\n }\n}\n\n/**\n * This is just a simple version of deep copy\n * Has a lot of edge cases bug\n * If you want to use a perfect deep copy, use lodash's _.cloneDeep\n * @param {Object} source\n * @returns {Object}\n */\nexport function deepClone(source) {\n if (!source && typeof source !== 'object') {\n throw new Error('error arguments', 'deepClone')\n }\n const targetObj = source.constructor === Array ? [] : {}\n Object.keys(source).forEach(keys => {\n if (source[keys] && typeof source[keys] === 'object') {\n targetObj[keys] = deepClone(source[keys])\n } else {\n targetObj[keys] = source[keys]\n }\n })\n return targetObj\n}\n\n/**\n * @param {Array} arr\n * @returns {Array}\n */\nexport function uniqueArr(arr) {\n return Array.from(new Set(arr))\n}\n\n/**\n * @returns {string}\n */\nexport function createUniqueString() {\n const timestamp = +new Date() + ''\n const randomNum = parseInt((1 + Math.random()) * 65536) + ''\n return (+(randomNum + timestamp)).toString(32)\n}\n\n/**\n * Check if an element has a class\n * @param {HTMLElement} elm\n * @param {string} cls\n * @returns {boolean}\n */\nexport function hasClass(ele, cls) {\n return !!ele.className.match(new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)'))\n}\n\n/**\n * Add class to element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function addClass(ele, cls) {\n if (!hasClass(ele, cls)) ele.className += ' ' + cls\n}\n\n/**\n * Remove class from element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function removeClass(ele, cls) {\n if (hasClass(ele, cls)) {\n const reg = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)')\n if (ele.className) {\n ele.className = ele.className.replace(reg, ' ')\n }\n }\n}\n","// import parseTime, formatTime and set to filter\nimport moment from 'moment'\nimport i18n from '@/lang'\n\nexport { parseTime, formatTime } from '@/utils'\n\n/**\n * Show plural label if time is plural number\n * @param {number} time\n * @param {string} label\n * @return {string}\n */\nfunction pluralize(time, label) {\n if (time === 1) {\n return time + label\n }\n return time + label + 's'\n}\n\n/**\n * @param {number} time\n */\nexport function timeAgo(time) {\n const between = Date.now() / 1000 - Number(time)\n if (between < 3600) {\n return pluralize(~~(between / 60), ' minute')\n } else if (between < 86400) {\n return pluralize(~~(between / 3600), ' hour')\n } else {\n return pluralize(~~(between / 86400), ' day')\n }\n}\n\n/**\n * Number formatting\n * like 10000 => 10k\n * @param {number} num\n * @param {number} digits\n */\nexport function numberFormatter(num, digits) {\n const si = [\n { value: 1E18, symbol: 'E' },\n { value: 1E15, symbol: 'P' },\n { value: 1E12, symbol: 'T' },\n { value: 1E9, symbol: 'G' },\n { value: 1E6, symbol: 'M' },\n { value: 1E3, symbol: 'k' }\n ]\n for (let i = 0; i < si.length; i++) {\n if (num >= si[i].value) {\n return (num / si[i].value + 0.1).toFixed(digits).replace(/\\.0+$|(\\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol\n }\n }\n return num.toString()\n}\n\n/**\n * 10000 => \"10,000\"\n * @param {number} num\n */\nexport function toThousandFilter(num) {\n return (+num || 0).toString().replace(/^-?\\d+/g, m => m.replace(/(?=(?!\\b)(\\d{3})+$)/g, ','))\n}\n\n/**\n * Upper case first char\n * @param {String} string\n */\nexport function uppercaseFirst(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\nexport function decimalComma(string) {\n return string.replace(/,/g, '.')\n}\n\nexport function date(value) {\n if (value) {\n return moment(value).format('DD.MM.YYYY')\n }\n}\n\nexport function timestampToDateTime(value) {\n if (value) {\n const date = moment.unix(value).format('DD.MM.YYYY HH:mm')\n if (date === 'Invalid date') {\n return 'No date available'\n } else {\n return date\n }\n }\n}\n\nexport function msTimestampToDateTime(value) {\n if (value) {\n const date = moment(value).format('DD.MM.YYYY HH:mm')\n if (date === 'Invalid date') {\n return 'No date available'\n } else {\n return date\n }\n }\n}\n\nexport function timestampToDate(value) {\n if (value) {\n return moment.unix(value).format('DD.MM.YYYY')\n }\n}\n\nexport function msTimestampToDate(value) {\n if (value) {\n return moment(value).format('DD.MM.YYYY')\n }\n}\n\nexport function dateTimePicker(value) {\n if (value) {\n return moment(value).format('DD.MM.YYYY HH:mm')\n }\n}\n\nexport function yesNo(value) {\n if (value) {\n return i18n.t('booleans.yes')\n }\n return i18n.t('booleans.no')\n}\n\nexport function gender(value) {\n if (value === 'male') {\n return i18n.t('models.user.attributes.gender.options.male')\n } else if (value === 'female') {\n return i18n.t('models.user.attributes.gender.options.female')\n }\n return value\n}\n\nexport function statusFilter(status) {\n const statusMap = {\n published: 'success',\n draft: 'info'\n }\n return statusMap[status]\n}\n\nexport function prettyJson(value) {\n return JSON.stringify(value, null, 2)\n}\n\nexport function sort(array) {\n return array.sort()\n}\n","import store from '@/store'\n\nexport default {\n methods: {\n hasFeatureFlag: async function(flag:string) {\n const account = await store.dispatch('account/getCurrentAccount')\n const applications = account.data.cff\n return applications.includes(flag)\n }\n }\n}\n","// Icons\nimport Vue from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport * as fa_all from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(fa_all.faGlobe)\nlibrary.add(fa_all.faAngleDoubleUp)\nlibrary.add(fa_all.faAngleUp)\nlibrary.add(fa_all.faAngleDown)\nlibrary.add(fa_all.faAngleDoubleDown)\nlibrary.add(fa_all.faAngleLeft)\nlibrary.add(fa_all.faAngleRight)\nlibrary.add(fa_all.faEye)\nlibrary.add(fa_all.faEyeSlash)\nlibrary.add(fa_all.faLink)\nlibrary.add(fa_all.faUnlink)\nlibrary.add(fa_all.faInfoCircle)\nlibrary.add(fa_all.faComment)\nlibrary.add(fa_all.faTasks)\nlibrary.add(fa_all.faHome)\nlibrary.add(fa_all.faAddressBook)\nlibrary.add(fa_all.faClipboardList)\nlibrary.add(fa_all.faSlidersH)\nlibrary.add(fa_all.faUserFriends)\nlibrary.add(fa_all.faCross)\nlibrary.add(fa_all.faUserTie)\nlibrary.add(fa_all.faStar)\nlibrary.add(fa_all.faPlus)\nlibrary.add(fa_all.faMinus)\nlibrary.add(fa_all.faEllipsisH)\nlibrary.add(fa_all.faCheckSquare)\nlibrary.add(fa_all.faPrint)\nlibrary.add(fa_all.faPaperPlane)\nlibrary.add(fa_all.faParagraph)\nlibrary.add(fa_all.faAlignCenter)\nlibrary.add(fa_all.faAlignRight)\nlibrary.add(fa_all.faAlignLeft)\nlibrary.add(fa_all.faAlignJustify)\nlibrary.add(fa_all.faGripLines)\nlibrary.add(fa_all.faCaretSquareDown)\nlibrary.add(fa_all.faDotCircle)\nlibrary.add(fa_all.faStarHalfAlt)\nlibrary.add(fa_all.faClock)\nlibrary.add(fa_all.faCalendarAlt)\nlibrary.add(fa_all.faCalendarDay)\nlibrary.add(fa_all.faVoteYea)\n\nlibrary.add(fa_all.faBold)\nlibrary.add(fa_all.faItalic)\nlibrary.add(fa_all.faUnderline)\nlibrary.add(fa_all.faStrikethrough)\nlibrary.add(fa_all.faHighlighter)\nlibrary.add(fa_all.faHeading)\nlibrary.add(fa_all.faQuoteRight)\nlibrary.add(fa_all.faTable)\nlibrary.add(fa_all.faUndo)\nlibrary.add(fa_all.faRedo)\nlibrary.add(fa_all.faListUl)\nlibrary.add(fa_all.faListOl)\nlibrary.add(fa_all.faQuestionCircle)\nlibrary.add(fa_all.faExclamationCircle)\nlibrary.add(fa_all.faMoneyCheck)\n\nimport * as far_all from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(far_all.faStar)\nlibrary.add(far_all.faTrashAlt)\nlibrary.add(far_all.faCheckSquare)\nlibrary.add(far_all.faSquare)\nlibrary.add(far_all.faCheckCircle)\nlibrary.add(far_all.faTimesCircle)\nlibrary.add(far_all.faCircle)\nlibrary.add(far_all.faDotCircle)\nlibrary.add(far_all.faCreditCard)\nlibrary.add(far_all.faQuestionCircle)\n\nimport * as fab_all from '@fortawesome/free-brands-svg-icons'\nlibrary.add(fab_all.faCcVisa)\n","import store from '@/store'\nimport TeamPermissions from '../../enum/Permissions'\n\nconst can = {\n methods: {\n teamAdmin: async function(team) {\n await store.dispatch('myuser/getCurrentUser')\n await store.dispatch('myuser/getMyPermissions')\n const permissions = store.getters && store.getters.permissions\n let can = false\n if (permissions) {\n permissions.team_permissions.forEach(t => {\n if (team.team_id === t.team_id) {\n if (team.is_member && team.permissions.includes(TeamPermissions.ADMIN)) {\n can = true\n }\n }\n })\n }\n return can\n },\n editTask: async function(task) {\n const current_user_id = store.getters && store.getters.user_id\n await store.dispatch('myuser/getCurrentUser')\n await store.dispatch('myuser/getMyPermissions')\n const permissions = store.getters && store.getters.permissions\n let can = false\n if (task.author_user_id === current_user_id || task.created_by === current_user_id) {\n return true\n }\n if (permissions) {\n permissions.team_permissions.forEach(team => {\n if (team.team_id === task.team_id) {\n if (team.permissions.includes(TeamPermissions.TASKS_EDIT)) {\n can = true\n }\n }\n })\n }\n return can\n },\n deleteTask: async function(task) {\n const current_user_id = store.getters && store.getters.user_id\n await store.dispatch('myuser/getCurrentUser')\n await store.dispatch('myuser/getMyPermissions')\n const permissions = store.getters && store.getters.permissions\n let can = false\n if (task.author_user_id === current_user_id || task.created_by === current_user_id) {\n return true\n }\n if (permissions) {\n permissions.team_permissions.forEach(team => {\n if (team.team_id === task.team_id) {\n if (team.permissions.includes(TeamPermissions.TASKS_DELETE)) {\n can = true\n }\n }\n })\n }\n return can\n },\n editProtocol: async function(protocol) {\n const current_user_id = store.getters && store.getters.user_id\n await store.dispatch('myuser/getCurrentUser')\n await store.dispatch('myuser/getMyPermissions')\n const permissions = store.getters && store.getters.permissions\n let can = false\n if (protocol.author_user_id === current_user_id || protocol.created_by === current_user_id) {\n return true\n }\n if (permissions) {\n permissions.team_permissions.forEach(team => {\n if (team.team_id === protocol.team_id) {\n if (team.permissions.includes(TeamPermissions.PROTOCOLS_EDIT)) {\n can = true\n }\n }\n })\n }\n return can\n },\n deleteProtocol: async function(protocol) {\n const current_user_id = store.getters && store.getters.user_id\n await store.dispatch('myuser/getCurrentUser')\n await store.dispatch('myuser/getMyPermissions')\n const permissions = store.getters && store.getters.permissions\n let can = false\n if (protocol.author_user_id === current_user_id || protocol.created_by === current_user_id) {\n return true\n }\n if (permissions) {\n permissions.team_permissions.forEach(team => {\n if (team.team_id === protocol.team_id) {\n if (team.permissions.includes(TeamPermissions.PROTOCOLS_DELETE)) {\n can = true\n }\n }\n })\n }\n return can\n }\n }\n}\n\nexport default can\n","// @ts-ignore\n// eslint-disable-next-line no-unused-vars\nimport Vue, { ObjectDirective } from 'vue'\nimport 'normalize.css/normalize.css' // a modern alternative to CSS resets\n// @ts-ignore\nimport Element from 'element-ui'\nimport './styles/element-variables.scss'\n// @ts-ignore\nimport App from './App'\nimport store from '@/store'\nimport router from '@/router'\n\nVue.config.productionTip = false\nVue.config.devtools = true\nVue.config.silent = true\n\nif (process.env['NODE_ENV'] !== 'development') {\n // disable console .log in production\n console.log = function() {}\n}\n\nimport Cookies from 'js-cookie'\n\n// @ts-ignore\nimport * as directives from '@/directive'\n// Register global directives\nObject.keys(directives).forEach(key => {\n Vue.directive(key, (directives as { [key: string ]: ObjectDirective })[key])\n})\n\nimport '@/styles/index.scss' // global css\n\nimport './permission' // permission control\nimport './utils/error-log' // error log\n\nimport * as filters from './filters' // global filters\n\nimport i18n from './lang' // internationalization\n\n// @ts-ignore\nimport VueDraggableResizable from 'vue-draggable-resizable'\nVue.component('vue-draggable-resizable', VueDraggableResizable)\n\nimport AsyncComputed from 'vue-async-computed'\nVue.use(AsyncComputed)\n\n// @ts-ignore\nimport FormBuilder from 'element-form-builder'\nVue.use(FormBuilder)\n\nVue.use(Element, {\n size: Cookies.get('size') || 'medium', // Set element-ui default size\n i18n: (key: string, value: string) => i18n.t(key, value)\n})\nimport './utils/fix-el-select-mobile-keyboard'\nimport * as moment from 'moment'\nimport 'moment/locale/de-at'\nmoment.locale('de')\n\n// Register global filter functions\n// @ts-ignore\nObject.keys(filters).forEach(key => {\n Vue.filter(key, (filters as { // @ts-ignore\n [key: string ]: Function })[key])\n})\n\n// modal support\nimport VModal from 'vue-js-modal'\nVue.use(VModal, { dialog: true, dynamicDefaults: { clickToClose: true }})\n\n// globally import feature flag mixin\nimport has from '@/mixins/permissions/has.ts'\nVue.mixin(has)\n\nimport '@/utils/fontawesome'\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\nVue.component('fa-icon', FontAwesomeIcon)\n\n// globally import permissions mixin\nimport can from '@/mixins/permissions/can'\nVue.mixin(can)\n\nnew Vue({\n el: '#app',\n router,\n store,\n i18n,\n render: h => h(App)\n})\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"theme\":\"#007996\",\"menuText\":\"#fff\",\"menuActiveText\":\"#007996\",\"menuActiveHoverText\":\"#fff\",\"subMenuActiveText\":\"#007996\",\"menuBg\":\"#007996\",\"activeMenuBg\":\"#fff\",\"menuHover\":\"rgba(0,121,150,0.9)\",\"subMenuBg\":\"#1f2d3d\",\"subMenuHover\":\"#001528\",\"sideBarWidth\":\"190px\"};","import Cookies from 'js-cookie'\n\nconst state = {\n sidebar: {\n opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,\n withoutAnimation: false\n },\n device: 'desktop',\n size: Cookies.get('size') || 'medium',\n routes: []\n}\n\nconst mutations = {\n TOGGLE_SIDEBAR: state => {\n state.sidebar.opened = !state.sidebar.opened\n state.sidebar.withoutAnimation = false\n if (state.sidebar.opened) {\n Cookies.set('sidebarStatus', 1, { expires: 365, sameSite: 'strict', secure: true })\n } else {\n Cookies.set('sidebarStatus', 0, { expires: 365, sameSite: 'strict', secure: true })\n }\n },\n CLOSE_SIDEBAR: (state, withoutAnimation) => {\n Cookies.set('sidebarStatus', 0, { expires: 365, sameSite: 'strict', secure: true })\n state.sidebar.opened = false\n state.sidebar.withoutAnimation = withoutAnimation\n },\n TOGGLE_DEVICE: (state, device) => {\n state.device = device\n },\n SET_SIZE: (state, size) => {\n state.size = size\n Cookies.set('size', size, { expires: 365, sameSite: 'strict', secure: true })\n }\n}\n\nconst actions = {\n toggleSideBar({ commit }) {\n commit('TOGGLE_SIDEBAR')\n },\n closeSideBar({ commit }, { withoutAnimation }) {\n commit('CLOSE_SIDEBAR', withoutAnimation)\n },\n toggleDevice({ commit }, device) {\n commit('TOGGLE_DEVICE', device)\n },\n setSize({ commit }, size) {\n commit('SET_SIZE', size)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n}\n","/* eslint-disable no-unused-vars */\nexport enum FeatureFlags {\n PROTOCOLS_APP = 'apps.protocols',\n OFFERS_APP = 'apps.offers',\n TASKS_APP = 'apps.tasks',\n SURVEYS_APP = 'apps.surveys',\n RECURRING_TASKS = 'apps.tasks.recurring',\n CONTACTS_APP = 'apps.contacts',\n SEND_EMAIL_FROM_COMPANY_EMAIL_ADDRESS = 'email.custom_sender_address',\n SEE_CENTRICS_UPDATE_NEWS = 'centrics.update_news',\n EXPORT_CLAIMS = 'feature.export_claims'\n}\n\n// @ts-ignore\nexport default FeatureFlags\n","import request from '@/utils/request'\nimport moment from 'moment'\nimport {\n ATTENDEE_FILTER_ATTRIBUTE,\n AUTHOR_FILTER_ATTRIBUTE,\n DATE_FILTER_ATTRIBUTE,\n PUBLISHED_FILTER_ATTRIBUTE,\n SEARCH_FILTER_ATTRIBUTE,\n TEAM_FILTER_ATTRIBUTE\n} from '@/config/search_filter/protocol_filter'\n\nexport function printProtocolById(id) {\n return request({\n url: '/api/v1/protocols/' + id + '/print',\n method: 'get',\n responseType: 'blob'\n })\n}\n\nexport function deleteComment(protocol_id, comment_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/comments/' + comment_id,\n method: 'delete'\n })\n}\n\nexport function changeContactPublic(protocol_id, contact_id, status) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/contacts/' + contact_id,\n method: 'put',\n data: { public: status }\n })\n}\n\nexport function getFilesForProtocol(protocol_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/files',\n method: 'get'\n })\n}\n\nexport function deleteFileForProtocol(protocol_id, file_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/files/' + file_id,\n method: 'delete'\n })\n}\n\nexport function removeContactToProtocolLink(protocol_id, contact_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/contacts/' + contact_id,\n method: 'delete'\n })\n}\n\nexport function removeTaskToProtocolLink(protocol_id, task_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/tasks/' + task_id,\n method: 'delete'\n })\n}\n\nexport function getAllProtocols(data = null) {\n const filterAttributes = data.filterAttributes\n const listQuery = data.listQuery\n\n const params = []\n if (listQuery) {\n if (listQuery.page) {\n params.push('page=' + listQuery.page)\n }\n if (listQuery.limit) {\n params.push('limit=' + listQuery.limit)\n }\n if (listQuery.order) {\n params.push('order=' + listQuery.order)\n }\n }\n if (filterAttributes) {\n if (filterAttributes.date && filterAttributes.date.length) {\n params.push(DATE_FILTER_ATTRIBUTE + '=' + filterAttributes.date.join(','))\n }\n if (filterAttributes.author && filterAttributes.author.length) {\n params.push(AUTHOR_FILTER_ATTRIBUTE + '=' + filterAttributes.author.join(','))\n }\n if (filterAttributes.published && filterAttributes.published.length) {\n params.push(PUBLISHED_FILTER_ATTRIBUTE + '=' + filterAttributes.published.join(','))\n }\n if (filterAttributes.attendees && filterAttributes.attendees.length) {\n params.push(ATTENDEE_FILTER_ATTRIBUTE + '=' + filterAttributes.attendees.join(','))\n }\n if (filterAttributes.teams && filterAttributes.teams.length) {\n params.push(TEAM_FILTER_ATTRIBUTE + '=' + filterAttributes.teams.join(','))\n }\n if (filterAttributes.search) {\n params.push(SEARCH_FILTER_ATTRIBUTE + '=' + filterAttributes.search)\n }\n }\n\n return request({\n url: '/api/v1/protocols?' + params.join('&'),\n method: 'get'\n })\n}\n\nexport function searchProtocolByString(search = '') {\n return request({\n url: '/api/v1/protocols?search=' + search,\n method: 'get'\n })\n}\n\nexport function linkContactToProtocol(contact_id, protocol_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/contacts',\n method: 'post',\n data: { contact_id: contact_id }\n })\n}\n\nexport function linkTaskToProtocol(task_id, protocol_id) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/tasks',\n method: 'post',\n data: { task_id: task_id }\n })\n}\n\nexport function getProtocolById(id) {\n return request({\n url: '/api/v1/protocols/' + id,\n method: 'get'\n })\n}\n\nexport function getContactsForProtocol(id) {\n return request({\n url: '/api/v1/protocols/' + id + '/contacts',\n method: 'get'\n })\n}\n\nexport function getTasksForProtocol(id, listQuery) {\n const params = []\n if (listQuery) {\n if (listQuery.page) {\n params.push('page=' + listQuery.page)\n }\n if (listQuery.limit) {\n params.push('limit=' + listQuery.limit)\n }\n if (listQuery.order) {\n params.push('order=' + listQuery.order)\n }\n }\n return request({\n url: '/api/v1/protocols/' + id + '/tasks?' + params.join('&'),\n method: 'get'\n })\n}\n\nexport function deleteProtocol(id) {\n return request({\n url: '/api/v1/protocols/' + id,\n method: 'delete'\n })\n}\n\nexport function createComment(task_id, body) {\n return request({\n url: '/api/v1/protocols/' + task_id + '/comments',\n method: 'post',\n data: { body: body }\n })\n}\n\nexport function updateComment(protocol_id, comment_id, body) {\n return request({\n url: '/api/v1/protocols/' + protocol_id + '/comments/' + comment_id,\n method: 'put',\n data: { body: body }\n })\n}\n\nexport function setWatchStatusForProtocol(id, status) {\n return request({\n url: '/api/v1/protocols/' + id + '/watch',\n method: 'patch',\n data: { status: status }\n })\n}\n\nexport function addViewer(id, user_id) {\n return request({\n url: '/api/v1/protocols/' + id + '/viewers',\n method: 'post',\n data: { user_id: user_id }\n })\n}\n\nexport function removeViewer(id, user_id) {\n return request({\n url: '/api/v1/protocols/' + id + '/viewers/' + user_id,\n method: 'delete'\n })\n}\n\n/**\n * Delete all null (or undefined) properties from an object.\n * Set 'recurse' to true if you also want to delete properties in nested objects.\n */\nfunction cleanup(test, recurse) {\n for (var i in test) {\n if (test[i] == null || test[i] === '') {\n delete test[i]\n } else if (recurse && typeof test[i] === 'object') {\n cleanup(test[i], recurse)\n }\n }\n}\n","import request from '@/utils/request'\nimport { v4 as uuidv4 } from 'uuid'\nimport moment from 'moment'\n\nexport function getAllContacts(data = null) {\n const params = []\n if (data) {\n const filterAttributes = data.filterAttributes\n const listQuery = data.listQuery\n if (listQuery) {\n params.push('page=' + listQuery.page)\n params.push('limit=' + listQuery.limit)\n if (listQuery.order) {\n params.push('order=' + listQuery.order)\n }\n }\n if (filterAttributes) {\n if (filterAttributes.number) {\n params.push('number=' + filterAttributes.number)\n }\n if (filterAttributes.name) {\n params.push('name=' + filterAttributes.name)\n }\n if (filterAttributes.type) {\n params.push('type=' + filterAttributes.type)\n }\n }\n }\n return request({\n url: '/api/v1/contacts?' + params.join('&'),\n method: 'get'\n })\n}\n\nexport function searchContactByString(search = '') {\n return request({\n url: '/api/v1/contacts?search=' + search,\n method: 'get'\n })\n}\n\nexport function createContact(data) {\n // clearing null empty values\n cleanup(data)\n if (data.contact_since) {\n data.contact_since = moment(data.contact_since).format('Y-M-D')\n }\n\n const body = {\n id: uuidv4(),\n name: data.name,\n account_manager: data.account_manager,\n key_account_manager: data.key_account_manager,\n number: data.number !== undefined ? String(data.number) : null,\n uid: data.uid,\n type: data.type,\n homepage: data.homepage,\n address: {\n zip: data.address.zip,\n street: data.address.street,\n country: data.address.country,\n city: data.address.city\n },\n contact_since: data.contact_since\n }\n\n return request({\n url: '/api/v1/contacts',\n method: 'post',\n data: body\n })\n}\n\nexport async function uploadLogo(contact_id, file) {\n return request({\n url: '/api/v1/contacts/' + contact_id + '/logo',\n method: 'post',\n data: {\n 'file': file\n }\n })\n}\n\nexport async function deleteContact(contact_id) {\n return request({\n url: '/api/v1/contacts/' + contact_id,\n method: 'delete'\n })\n}\n\nexport function updateContact(data) {\n // clearing null empty values\n cleanup(data)\n const body = {\n name: data.name,\n number: data.number !== undefined ? String(data.number) : null,\n account_manager: data.account_manager,\n key_account_manager: data.key_account_manager,\n type: data.type,\n uid: data.uid,\n homepage: data.homepage,\n address: {\n zip: data.address.zip,\n street: data.address.street,\n country: data.address.country,\n city: data.address.city\n },\n contact_since: data.contact_since\n }\n\n return request({\n url: '/api/v1/contacts/' + data.id,\n method: 'put',\n data: body\n })\n}\n\nexport function getContactById(id) {\n return request({\n url: '/api/v1/contacts/' + id,\n method: 'get'\n })\n}\n\nexport function getTasksForContact(data) {\n const params = []\n const listQuery = data.listQuery\n\n if (listQuery) {\n params.push('page=' + listQuery.page)\n params.push('limit=' + listQuery.limit)\n if (listQuery.order) {\n params.push('order=' + listQuery.order)\n }\n }\n return request({\n url: '/api/v1/contacts/' + data.contact_id + '/tasks?' + params.join('&'),\n method: 'get'\n })\n}\n\nexport function getProtocolsForContact(data) {\n let params = ''\n const listQuery = data.listQuery\n\n if (listQuery) {\n params = '?page=' + listQuery.page + '&limit=' + listQuery.limit\n }\n return request({\n url: '/api/v1/contacts/' + data.contact_id + '/protocols' + params,\n method: 'get'\n })\n}\n\nexport function getContactByNumber(id) {\n return request({\n url: '/api/v1/contacts/attributes/number/' + id,\n method: 'get'\n })\n}\n\n/**\n * Delete all null (or undefined) properties from an object.\n * Set 'recurse' to true if you also want to delete properties in nested objects.\n */\nfunction cleanup(test, recurse) {\n for (var i in test) {\n if (test[i] == null || test[i] === '' || test[i] === 0) {\n delete test[i]\n } else if (recurse && typeof test[i] === 'object') {\n cleanup(test[i], recurse)\n }\n }\n}\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!./UpdateDrawer.vue?vue&type=style&index=0&id=6c899ebd&prod&lang=scss&scoped=true&\"","import request from '@/utils/request'\n\nexport function getContactTypes(filter = null) {\n const query_params = []\n if (filter) {\n for (const [key, value] of Object.entries(filter)) {\n query_params.push('filter[' + key + ']=' + value)\n }\n }\n\n return request({\n url: '/api/v1/account_manager/contact_types?' + query_params.join('&'),\n method: 'get'\n })\n}\n\nexport function updateContactType(obj) {\n const data = {\n title: obj.title,\n short: obj.short\n }\n return request({\n url: '/api/v1/account_manager/contact_types/' + obj.id,\n method: 'put',\n data: data\n })\n}\n\nexport function storeContactType(obj) {\n const data = {\n title: obj.title,\n short: obj.short\n }\n return request({\n url: '/api/v1/account_manager/contact_types',\n method: 'post',\n data: data\n })\n}\n\nexport function deleteContactType(id) {\n return request({\n url: '/api/v1/account_manager/contact_types/' + id,\n method: 'delete'\n })\n}\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!./TermsAcceptedConsent.vue?vue&type=style&index=0&id=40bc7376&prod&lang=scss&scoped=true&\"","import { createContact, getContactById, getContactByNumber, updateContact, getTasksForContact, getProtocolsForContact, uploadLogo, deleteContact } from '@/api/contact'\n\nconst actions = {\n deleteContact({ commit }, id) {\n return new Promise((resolve, reject) => {\n deleteContact(id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n uploadLogo({ commit }, data) {\n return new Promise((resolve, reject) => {\n uploadLogo(data.contact_id, data.file).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getContactById({ commit }, id) {\n return new Promise((resolve, reject) => {\n getContactById(id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getTasksForContact({ commit }, data) {\n return new Promise((resolve, reject) => {\n getTasksForContact(data).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getProtocolsForContact({ commit }, data) {\n return new Promise((resolve, reject) => {\n getProtocolsForContact(data).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n getContactByNumber({ commit }, id) {\n return new Promise((resolve, reject) => {\n getContactByNumber(id).then(resp => {\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n })\n },\n createContact({ commit }, data) {\n return new Promise((resolve, reject) => {\n createContact(data).then(resp => {\n resolve(resp)\n }).catch(err => {\n reject(err)\n })\n })\n },\n updateContact({ commit }, data) {\n return new Promise((resolve, reject) => {\n updateContact(data).then(resp => {\n resolve(resp)\n }).catch(err => {\n reject(err)\n })\n })\n }\n}\n\nexport default {\n namespaced: true,\n actions\n}\n\n","export const LOCAL_STORAGE_PREFIX = 'protocols.'\n\nexport const SEARCH_FILTER_ATTRIBUTE = 'filter[search]'\nexport const DATE_FILTER_ATTRIBUTE = 'filter[date]'\nexport const ATTENDEE_FILTER_ATTRIBUTE = 'filter[attendee]'\nexport const AUTHOR_FILTER_ATTRIBUTE = 'filter[author]'\nexport const TEAM_FILTER_ATTRIBUTE = 'filter[team]'\nexport const PUBLISHED_FILTER_ATTRIBUTE = 'filter[published]'\n","import request from '@/utils/request'\n\nexport function getCountries() {\n return request({\n url: '/api/v1/static_content/countries',\n method: 'get'\n })\n}\n\nexport function getSecurityQuestions() {\n return request({\n url: '/api/v1/static_content/security_questions',\n method: 'get'\n })\n}\n","import { getCountries } from '@/api/static_content'\nimport { getContactTypes } from '../../api/manager/contact_type'\n\nconst state = {\n countries: [],\n contact_types: []\n}\n\nconst mutations = {\n SET_COUNTRIES: (state, countries) => {\n state.countries = countries\n },\n SET_CONTACT_TYPES: (state, types) => {\n state.contact_types = types\n }\n}\n\nconst actions = {\n resetState({ commit }) {\n commit('SET_CONTACT_TYPES', [])\n commit('SET_COUNTRIES', [])\n },\n getCountries({ commit }, force_reload = false) {\n return new Promise((resolve, reject) => {\n if (force_reload) {\n commit('SET_COUNTRIES', [])\n }\n if (state.countries.length) {\n resolve(state.user_list)\n } else {\n getCountries().then(resp => {\n if (resp) {\n commit('SET_COUNTRIES', resp.data)\n resolve(resp.data)\n }\n }).catch(err => {\n reject(err)\n })\n }\n })\n },\n getContactTypes({ commit }, force = false) {\n if (force) {\n commit('SET_CONTACT_TYPES', [])\n }\n return new Promise((resolve, reject) => {\n if (state.contact_types.length) {\n resolve(state.contact_types)\n } else {\n getContactTypes().then(resp => {\n if (resp.data.length !== 0) {\n commit('SET_CONTACT_TYPES', resp.data)\n }\n resolve(resp.data)\n }).catch(err => {\n reject(err)\n })\n }\n })\n }\n}\n\nexport default {\n namespaced: true,\n actions,\n mutations,\n state\n}\n\n","// fix el-select\nconst fixElSelect = function() {\n document.querySelectorAll('.el-select[data-is-search=\"true\"]:hover').forEach((v) => {\n const elInput = document.querySelector('.el-select[data-is-search=\"true\"]:hover input[readonly]')\n if (elInput) {\n elInput.readOnly = false\n elInput.blur()\n elInput.focus()\n }\n })\n}\ndocument.addEventListener('focusin', fixElSelect)\ndocument.addEventListener('click', fixElSelect)\ndocument.addEventListener('touchstart', fixElSelect)\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!./AppMain.vue?vue&type=style&index=1&id=54fbf490&prod&lang=scss&scoped=true&\""],"sourceRoot":""}