{"version":3,"file":"js/app.02c2b235.js","mappings":"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GACVC,YAAa,CAACwyB,EAAAA,GAAgBmjB,qBAC9B11C,QAASi1D,GAEXj4C,MAAO,uCACP7T,QAAS,CACPirD,EACAE,EACA,CACEt3C,MAAO,uCACPuc,MAAO,6DACP93B,KAAM,UAER,CACEub,MAAO,yCACPuc,MAAO,iBACP93B,KAAM,UAERI,EACA,CACEmb,MAAO,gDACPuc,MAAO,yBACP93B,KAAM,QAER8yD,EACAC,EACAC,MAKAgB,EAAa,CACjBrB,EACA,CACEp3C,MAAO,6CACPuc,MAAO,kCACP93B,KAAM,aAER4yD,EACA,CACEr3C,MAAO,sCACPuc,MAAO,UACP93B,KAAM,UAERgzD,EACA,CACEz3C,MAAO,uCACPuc,MAAO,WACP93B,KAAM,UAER,CACEub,MAAO,uCACPuc,MAAO,qCACP93B,KAAM,UAER,CACEub,MAAO,4CACPuc,MAAO,wBACP93B,KAAM,UAER,CACEub,MAAO,yBACPuc,MAAO,SACP93B,KAAM,UAER,CACEub,MAAO,mDACPuc,MAAO,sBACP93B,KAAM,UAER,CACEub,MAAO,4CACPuc,MAAO,aACP93B,KAAM,UAERI,EACA,CACEmb,MAAO,sCACPuc,MAAO,oBACP93B,KAAM,WAGJi0D,EAAa,CACjB,CACEh1D,UAAW,UACXC,UAAW,aACXmB,MAAO,uCAIE6zD,EAAwBpxC,OAAOorC,OAAO,CACjDiG,eAAgB,CACdr8B,MAAO,iBACPp0B,MAAO,CACLvF,QAAS,CAACg1D,GACV/0D,QAAS,GACTC,SAAU,GACVC,YAAa,CAACwyB,EAAAA,GAAgBmjB,qBAC9B11C,QAAS01D,GAEX14C,MAAO,uCACP7T,QAASssD,GAEXI,4BAA6B,CAC3Bt8B,MAAO,kBACPp0B,MAAO,CACLvF,QAAS,GACTC,QAAS,GACTC,SAAU,CACR,CACE+B,OAAQ2zC,EAAAA,GAASC,gBAAgBlc,MACjCt4B,OAAQ,MAEV,CACEY,OAAQ2zC,EAAAA,GAASsgB,mBAAmBv8B,MACpCt4B,OAAQ,OAGZlB,YAAa,CAACwyB,EAAAA,GAAgBmjB,qBAC9B11C,QAAS01D,GAEX14C,MAAO,uCACP7T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W,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAA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","sources":["webpack://WSM/./src/authentication/index.js","webpack://WSM/./src/classes/Search.js","webpack://WSM/./src/components/omnischema/omniselect/Services.js","webpack://WSM/./src/components/omnischema/omniselect/store.js","webpack://WSM/./src/assets/languages/nl.js","webpack://WSM/./src/assets/languages/en.js","webpack://WSM/./src/plugins/i18n.js","webpack://WSM/./src/App.vue","webpack://WSM/src/App.vue","webpack://WSM/./src/App.vue?c036","webpack://WSM/./src/App.vue?0e40","webpack://WSM/./src/guards/index.js","webpack://WSM/./src/router/index.js","webpack://WSM/./src/main.js","webpack://WSM/./src/services/SearchServices.js","webpack://WSM/./src/services/security/UserServices.js","webpack://WSM/./src/services/security/TenantServices.js","webpack://WSM/./src/services/DomainServices.js","webpack://WSM/./src/store/tenant.js","webpack://WSM/./src/services/InstanceDefinitionServices.js","webpack://WSM/./src/store/instanceDefinitions.js","webpack://WSM/./src/services/GenericInstanceServices.js","webpack://WSM/./src/store/genericInstance.js","webpack://WSM/./src/store/search.js","webpack://WSM/./src/services/ActivityServices.js","webpack://WSM/./src/store/activity.js","webpack://WSM/./src/services/InstanceFlowServices.js","webpack://WSM/./src/store/instanceFlow.js","webpack://WSM/./src/services/NotificationServices.js","webpack://WSM/./src/store/notifications.js","webpack://WSM/./src/services/ChatServices.js","webpack://WSM/./src/store/chat.js","webpack://WSM/./src/services/MediaServices.js","webpack://WSM/./src/store/media.js","webpack://WSM/./src/services/ProcessServices.js","webpack://WSM/./src/store/talentProfile.js","webpack://WSM/./src/store/requests.js","webpack://WSM/./src/store/candidates.js","webpack://WSM/./src/store/loopbaanadvies.js","webpack://WSM/./src/store/applications.js","webpack://WSM/./src/store/process.js","webpack://WSM/./src/store/recruitment.js","webpack://WSM/./src/services/MatchboxServices.js","webpack://WSM/./src/services/OmniConnectorServices.js","webpack://WSM/./src/store/matchbox.js","webpack://WSM/./src/store/recruitmentText.js","webpack://WSM/./src/services/ConfigurationServices.js","webpack://WSM/./src/store/configurations.js","webpack://WSM/./src/services/EmailTemplateServices.js","webpack://WSM/./src/store/emailTemplates.js","webpack://WSM/./src/store/breadcrumbs.js","webpack://WSM/./src/services/MappingExecutionServices.js","webpack://WSM/./src/store/mapping.js","webpack://WSM/./src/services/ConceptDefinitionServices.js","webpack://WSM/./src/store/conceptDefinitions.js","webpack://WSM/./src/store/talentPoolProfile.js","webpack://WSM/./src/store/index.js","webpack://WSM/./src/utils/ApiResponseValidator.js","webpack://WSM/./src/utils/ErrorHandler.js","webpack://WSM/./src/utils/GeneralConst/Breadcrumbs.js","webpack://WSM/./src/utils/GeneralConst/Candidate.js","webpack://WSM/./src/utils/GeneralConst/CapacityRequest.js","webpack://WSM/./src/utils/GeneralConst/Loopbaanadvies.js","webpack://WSM/./src/utils/GeneralConst/Queries.js","webpack://WSM/./src/utils/GeneralConst/TalentProfile.js","webpack://WSM/./src/utils/GeneralConstants.js","webpack://WSM/./src/utils/GeneralUtils.js","webpack://WSM/./src/utils/IdUtils.js","webpack://WSM/./src/utils/Links.js","webpack://WSM/./src/utils/UserRoles.js","webpack://WSM/./src/utils/Utils/CapacityRequestUtils.js","webpack://WSM/./src/utils/Utils/LoopbaanadviesUtils.js","webpack://WSM/webpack/bootstrap","webpack://WSM/webpack/runtime/amd options","webpack://WSM/webpack/runtime/chunk loaded","webpack://WSM/webpack/runtime/compat get default export","webpack://WSM/webpack/runtime/define property getters","webpack://WSM/webpack/runtime/ensure chunk","webpack://WSM/webpack/runtime/get javascript chunk filename","webpack://WSM/webpack/runtime/get mini-css chunk filename","webpack://WSM/webpack/runtime/global","webpack://WSM/webpack/runtime/hasOwnProperty shorthand","webpack://WSM/webpack/runtime/load script","webpack://WSM/webpack/runtime/make namespace object","webpack://WSM/webpack/runtime/node module decorator","webpack://WSM/webpack/runtime/publicPath","webpack://WSM/webpack/runtime/css loading","webpack://WSM/webpack/runtime/jsonp chunk loading","webpack://WSM/webpack/startup"],"sourcesContent":["import Oidc from \"oidc-client\";\n\nimport Vue from \"vue\";\n\n/**\n * Reference for oidc-client used in this class https://github.com/IdentityModel/oidc-client-js/wiki\n */\n\nlet globalUserManager = null;\nlet globalSilentRenewalInterval = null;\n\nexport default {\n userManager: null,\n initialized: false,\n redirected: false,\n signingOut: false,\n\n async initialize() {\n if (!this.initialized) {\n this.userManager = getUserManager();\n this.initialized = true;\n }\n },\n\n async signIn(timeoutId, url) {\n getDomain(url);\n getUserManager()\n .signinRedirect()\n .then(() => clearTimeout(timeoutId))\n .catch((err) => console.error(err));\n },\n\n signOut() {\n this.signingOut = true;\n localStorage.removeItem(\"identityProviderId\");\n localStorage.removeItem(\"identityProvider\");\n\n if (globalSilentRenewalInterval) {\n clearInterval(globalSilentRenewalInterval);\n globalSilentRenewalInterval = null;\n }\n\n this.userManager\n .removeUser()\n .catch((e) => console.warn(\"Could not remove user\"));\n\n this.userManager.signoutRedirect().catch((err) => {\n Vue.$router.push({\n name: \"GoTo\",\n params: { tenantId: process.env.VUE_APP_TENANT_IDENTIFICATION },\n });\n console.error(err);\n });\n },\n\n async acquireOmnimapToken() {\n let user;\n let id_token;\n try {\n user = await this.userManager.getUser();\n if (user) {\n id_token = user.id_token;\n }\n } catch (e) {\n console.error(\"Could not determine auth user\", e);\n }\n\n if (!id_token && !this.redirected && !this.signingOut) {\n // No valid id token, redirecting to idp\n this.redirected = true;\n\n if (!localStorage.getItem(\"identityProvider\")) {\n this.signOut();\n } else {\n this.userManager.signinRedirect().catch((err) => console.error(err));\n }\n }\n\n // Throw error here to avoid firing requests with no bearer token if no id token is found when\n // this function is called in the Services\n if (id_token) {\n return id_token;\n } else {\n throw new Error(\"No id token found\");\n }\n },\n\n async completeSilentRenew() {\n return getUserManager().signinSilentCallback();\n },\n\n async completeAuthentication(url) {\n // We initialize the user manager with event handling and silent renewal when authentication is\n // is complete.\n getDomain(url);\n await this.initialize();\n this.setEventHandlers();\n\n await this.userManager.signinRedirectCallback();\n\n // Force a silent renewal every 5 minutes\n try {\n if (!globalSilentRenewalInterval) {\n console.debug(\"Setting forced silent renewal interval\");\n globalSilentRenewalInterval = setInterval(\n this.forcedSilentRenewalUsingRefreshToken,\n process.env.VUE_APP_FORCED_SILENT_RENEWAL_MILLISECONDS\n );\n }\n } catch (e) {\n console.error(\"Error setting silent renewal interval\", e);\n }\n },\n\n forcedSilentRenewalUsingRefreshToken() {\n try {\n getUserManager()\n .getUser()\n .then((user) => {\n if (user && user.refresh_token) {\n console.debug(\"Forcing silent renewal using refresh token\");\n getUserManager()._useRefreshToken({\n refresh_token: user.refresh_token,\n });\n } else {\n console.warn(\"No refresh token, update oauth2 response type\");\n }\n });\n } catch (e) {\n console.warn(\"Silent renewal attempt failed\", e);\n }\n },\n\n // Set all event handlers for authentication events\n setEventHandlers() {\n // The expiry events will only fire if an access token has been requested\n this.userManager.events.addAccessTokenExpiring(\n this.handleAccessTokenExpiring\n );\n this.userManager.events.addAccessTokenExpired(\n this.handleAccessTokenExpired\n );\n this.userManager.events.addUserLoaded(this.handleUserLoaded);\n this.userManager.events.addSilentRenewError(this.handleSilentRenewalError);\n },\n\n handleUserLoaded() {\n // Not relevant yet\n },\n\n handleAccessTokenExpiring() {\n // The silent renewal should be automatically subscribed to this event\n console.debug(\"Access token expiring event\");\n },\n\n handleAccessTokenExpired() {\n // If the access token has expired the user needs to be redirected to login page\n getUserManager()\n .signinRedirect()\n .catch((e) => console.error(e.message));\n },\n\n handleSilentRenewalError() {\n // If the silent renewal failed the user needs to be redirected to login page\n console.error(\"Silent renewal error event\");\n getUserManager()\n .signinRedirect()\n .catch((e) => console.error(e.message));\n },\n\n // Check if id token is expired\n isIdTokenExpired(id_token) {\n // Use internal jwt utils\n const payload = this.userManager._joseUtil.parseJwt(id_token).payload;\n const now = parseInt(Date.now() / 1000);\n const adjustedExpiry =\n payload.exp - process.env.VUE_APP_BEFORE_EXPIRY_ID_TOKEN_SECONDS;\n return adjustedExpiry < now;\n },\n\n async getUser() {\n if (this.userManager) {\n return await this.userManager.getUser();\n }\n },\n\n async checkActiveSessionForIdentityProvider(url) {\n getDomain(url);\n const identityProviderId = localStorage.getItem(\"identityProviderId\");\n if (identityProviderId) {\n const identityProvider = JSON.parse(\n localStorage.getItem(\"identityProvider\")\n );\n const timeoutId = setTimeout(this.noResponse, 3000, identityProvider);\n await this.signIn(timeoutId, url);\n return true;\n } else {\n return false;\n }\n },\n\n resetUserManager() {\n globalUserManager = null;\n this.userManager = null;\n },\n};\n\nlet __redirectURL = null;\nlet __silentRedirectURL = null;\n\nfunction getDomain(url) {\n // Some weird concurrency happening, therefore sometimes the url might not be found in store,\n // so we take it from sessionStorage\n if (url) {\n __redirectURL = url + \"landingPage\";\n __silentRedirectURL = url + \"auth/silentRenew\";\n } else if (sessionStorage.getItem(\"vanityDomain\")) {\n __redirectURL = sessionStorage.getItem(\"vanityDomain\") + \"landingPage\";\n __silentRedirectURL =\n sessionStorage.getItem(\"vanityDomain\") + \"auth/silentRenew\";\n }\n}\n\n// Static method to create a user manager instance\nfunction getUserManager() {\n const identityProvider = _getIdentityProvider();\n\n if (globalUserManager) {\n return globalUserManager;\n }\n\n if (identityProvider) {\n const oidcSettings = _getSettings(identityProvider);\n const mgr = new Oidc.UserManager(oidcSettings);\n _setCustomJwtValidation(mgr);\n\n // Just to be sure, set logger here\n // Oidc.Log.logger = console;\n globalUserManager = mgr;\n return mgr;\n } else {\n console.error(\"Identity provider not found\");\n }\n}\n\n// Return the identity provider stored in the session storage\nfunction _getIdentityProvider() {\n return localStorage.getItem(\"identityProvider\")\n ? JSON.parse(localStorage.getItem(\"identityProvider\"))\n : null;\n}\n\n// Create OIDC settings\nfunction _getSettings(identityProvider) {\n const oidcSettings = {\n userStore: new Oidc.WebStorageStateStore(),\n client_id: identityProvider.client_id,\n authority: identityProvider.authority,\n redirect_uri: __redirectURL\n ? __redirectURL\n : process.env.VUE_APP_REDIRECT_URI,\n response_type: identityProvider.supported_response_type,\n silent_redirect_uri: __silentRedirectURL\n ? __silentRedirectURL\n : process.env.VUE_APP_SILENT_REDIRECT_URI,\n silentRequestTimeout: process.env.VUE_APP_SILENT_RENEW_TIMEOUT,\n accessTokenExpiringNotificationTime:\n process.env.VUE_APP_BEFORE_EXPIRY_SECONDS,\n loadUserInfo: false,\n scope: \"profile openid\",\n revokeAccessTokenOnSignout: true,\n post_logout_redirect_uri: window.location.origin,\n };\n\n if (\n identityProvider &&\n identityProvider.hasOwnProperty(\"data\") &&\n identityProvider.data.hasOwnProperty(\"additional_config\")\n ) {\n for (const key in identityProvider.data.additional_config) {\n if (identityProvider.data.additional_config.hasOwnProperty(key)) {\n oidcSettings[key] = identityProvider.data.additional_config[key];\n }\n }\n }\n return oidcSettings;\n}\n\n// Validation workaround for AD multitenancy\nfunction _setCustomJwtValidation(mgr) {\n mgr._joseUtil.validateJwtAttributes = async function (\n jwt,\n issuer,\n audience,\n clockSkew,\n now,\n timeInsensitive\n ) {\n if (!clockSkew) {\n clockSkew = 0;\n }\n\n if (!now) {\n now = parseInt(Date.now() / 1000);\n }\n\n const payload = this.parseJwt(jwt).payload;\n\n if (!payload.iss) {\n Oidc.Log.error(\"JoseUtil._validateJwt: issuer was not provided\");\n return Promise.reject(new Error(\"issuer was not provided\"));\n }\n\n // The presence of this placeholder indicates multitenancy AD issuer like:\n // https://login.microsoftonline.com/{tenantid}/v2.0\n const microsoftIssuerPresent = issuer.includes(\n process.env.VUE_APP_AZURE_ISSUER_TID_PLACEHOLDER\n );\n\n if (microsoftIssuerPresent) {\n // Replace tenant id placeholder with tid in token\n issuer = issuer.replace(\"{tenantid}\", payload.tid);\n }\n\n if (payload.iss !== issuer) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: Invalid issuer in token\",\n payload.iss\n );\n return Promise.reject(\n new Error(\"Invalid issuer in token: \" + payload.iss)\n );\n }\n\n if (!payload.aud) {\n Oidc.Log.error(\"JoseUtil._validateJwt: aud was not provided\");\n return Promise.reject(new Error(\"aud was not provided\"));\n }\n const validAudience =\n payload.aud === audience ||\n (Array.isArray(payload.aud) && payload.aud.indexOf(audience) >= 0);\n if (!validAudience) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: Invalid audience in token\",\n payload.aud\n );\n return Promise.reject(\n new Error(\"Invalid audience in token: \" + payload.aud)\n );\n }\n if (payload.azp && payload.azp !== audience) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: Invalid azp in token\",\n payload.azp\n );\n return Promise.reject(new Error(\"Invalid azp in token: \" + payload.azp));\n }\n\n if (!timeInsensitive) {\n const lowerNow = now + clockSkew;\n const upperNow = now - clockSkew;\n\n if (!payload.iat) {\n Oidc.Log.error(\"JoseUtil._validateJwt: iat was not provided\");\n return Promise.reject(new Error(\"iat was not provided\"));\n }\n if (lowerNow < payload.iat) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: iat is in the future\",\n payload.iat\n );\n return Promise.reject(\n new Error(\"iat is in the future: \" + payload.iat)\n );\n }\n\n if (payload.nbf && lowerNow < payload.nbf) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: nbf is in the future\",\n payload.nbf\n );\n return Promise.reject(\n new Error(\"nbf is in the future: \" + payload.nbf)\n );\n }\n\n if (!payload.exp) {\n Oidc.Log.error(\"JoseUtil._validateJwt: exp was not provided\");\n return Promise.reject(new Error(\"exp was not provided\"));\n }\n if (payload.exp < upperNow) {\n Oidc.Log.error(\n \"JoseUtil._validateJwt: exp is in the past\",\n payload.exp\n );\n return Promise.reject(new Error(\"exp is in the past:\" + payload.exp));\n }\n }\n return Promise.resolve(payload);\n };\n}\n","import { ClassException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nconst SEARCH_FIELDS = [\n \"NAME\",\n \"CONTENT\",\n \"STATUS\",\n \"IDENTIFICATION\",\n \"IDENTIFIER\",\n];\n\n/***\n * Creates a new Query instance based on input\n *\n * @class\n * @typedef {Object} Query\n * @param {Content[]} [content] - An optional array filled with Content-items\n * @param {Context[]} [context] - An optional array filled with Context-items\n * @param {Status[]} [statuses] - An optional array filled with Status-items\n * @param {string[]} [definitions] - An optional array filled with instance definitions\n * @param {string[]} [definitions] - An optional array filled with instance definitions\n * @param {Sorting[]} [sorting] - An optional array filled with Sorting-items\n * @param {TextSearch[]} [text_search] - An optional array filled with TextSearch-items\n */\nexport class Query {\n constructor({\n content,\n context,\n statuses,\n definitions,\n sorting,\n text_search,\n timestamps,\n }) {\n this.content =\n content && content.length && Array.isArray(content)\n ? content.map((item) => new Content(item))\n : [];\n this.context =\n context && Array.isArray(context)\n ? context.map((item) => new Context(item))\n : [];\n this.statuses =\n statuses && Array.isArray(statuses)\n ? statuses.map((item) => new Status(item))\n : [];\n this.definitions = definitions ? definitions : [];\n this.sorting =\n sorting && Array.isArray(sorting)\n ? sorting.map((item) => new Sorting(item))\n : [\n { sort_type: \"text_score\", direction: \"DESCENDING\" },\n { sort_type: \"timestamp_created\", direction: \"DESCENDING\" },\n ];\n this.text_search =\n text_search && Array.isArray(text_search)\n ? text_search.map((item) => new TextSearch(item))\n : [];\n if (Array.isArray(timestamps) && timestamps.length) {\n this.timestamps = timestamps.map((item) => new Timestamp(item));\n } else {\n this.timestamps = [];\n }\n }\n}\n\n/***\n * Creates a new Content instance based on input\n *\n * @class\n * @typedef {Object} Content\n * @param {string} key - A required param that should contain the key to filter\n * @param {string} [datatype] - A optional param that defines the type of data to be filtered on.\n * @param {String[]} [values] - An optional array filled with the values to filter on.\n * @param {Object.} [period] - An optional object that, if provided, should contain a comparator and timestamp.\n * @param {string} [and_or] - An optional param that should be one of these values: \"AND\", \"OR\", null, undefined\n *\n * @example\n * new Content({\n * key: \"functie-werktitel-display-value\",\n * datatype: \"STRING\",\n * values: [\n * \"bestekschrijver\",\n * \"Communicatiemedewerker\"\n * ]\n * });\n *\n * @example\n * new Content({\n * key: \"data-startontvangen\",\n * datatype: \"DATE\",\n * period: {\n * comparator: \"LT\",\n * timestamp: \"2021-10-31T23:00:00.000Z\", \"2021-12-01T22:59:59.000Z\"\n * }\n * });\n */\nexport class Content {\n constructor({\n key,\n datatype,\n values,\n period,\n and_or,\n comparator,\n timestamp_value,\n }) {\n if (!key) {\n throw new ClassException(\n \"Content instance cannot be created without key\"\n );\n }\n if (and_or && and_or !== \"AND\" && and_or !== \"OR\") {\n throw new ClassException(\n 'Content instance expects and_or param to be one of the following: \"AND\", \"OR\", null, undefined. Currently value is: ' +\n and_or\n );\n }\n if (period && !period.timestamp && !period.comparator) {\n throw new ClassException(\n \"Content instance expects period param to contain a timestamp and a comparator.\"\n );\n }\n if (values && !Array.isArray(values)) {\n throw new ClassException(\n \"Content instance expects values param to be of type Array.\"\n );\n }\n\n this.key = key;\n this.and_or = and_or ? and_or : \"AND\";\n this.datatype = datatype ? datatype : \"STRING\";\n\n if (period?.timestamp && period?.comparator) {\n this.comparator = period.comparator;\n this.timestamp_value = period.timestamp;\n } else if (timestamp_value && comparator) {\n this.comparator = comparator;\n this.timestamp_value = timestamp_value;\n } else {\n this.values = values ? values : [];\n }\n }\n}\n\n/***\n * Creates a new Context instance based on input\n *\n * @class\n * @typedef {Object} Context\n * @param {string} role - A required param that should contain the role-name of the context\n * @param {String[]} [instance_identifiers] - An optional array filled with the instance identifications to filter on.\n * @param {string} [direction] - A optional param that defines the directions of the relation.\n * @param {string} [and_or] - An optional param that should be one of these values: \"AND\", \"OR\", null, undefined\n *\n * @example\n * new Context({\n * role: \"Aanvrager\",\n * instance_identifiers: [\"2c0aeaa4-6d18-4dbb-ae91-cba4425e0f8d\"],\n * direction: \"from\"\n * });\n */\nexport class Context {\n constructor({ role, instance_identifiers, direction, and_or }) {\n if (!role) {\n throw new ClassException(\"Context cannot be created without role\");\n }\n if (instance_identifiers && !Array.isArray(instance_identifiers)) {\n throw new ClassException(\n \"Context instance expects instance_identifiers param to be of type Array.\"\n );\n }\n if (and_or && and_or !== \"AND\" && and_or !== \"OR\") {\n throw new ClassException(\n 'Context instance expects and_or param to be one of the following: \"AND\", \"OR\", null, undefined. Currently value is: ' +\n and_or\n );\n }\n if (direction && direction !== \"from\" && direction !== \"to\") {\n throw new ClassException(\n 'Context instance expects direction param to be one of the following: \"from\", \"to\", null, undefined. Currently value is: ' +\n direction\n );\n }\n\n this.role = role;\n this.start = new Date();\n this.instance_identifiers = instance_identifiers\n ? instance_identifiers\n : [];\n this.direction = direction ? direction : \"from\";\n this.and_or = and_or ? and_or : \"OR\";\n }\n}\n\nexport class Timestamp {\n constructor({ type, timestamp_from, timestamp_to, and_or = \"AND\" }) {\n if (!type) {\n throw new ClassException(\n \"Timestamp instance expects type param to contain a timestamp type\"\n );\n }\n if (!timestamp_from) {\n throw new ClassException(\n \"Timestamp instance expects timestamp_from param to contain a timestamp\"\n );\n }\n\n this.and_or = and_or;\n this.type = type;\n this.timestamp_from = new Date(timestamp_from).toISOString();\n\n if (timestamp_to) {\n this.timestamp_to = new Date(timestamp_to).toISOString();\n }\n }\n}\n\n/***\n * Creates a new Status instance based on input\n *\n * @class\n * @typedef {Object} Status\n * @param {string} status - A required param that should contain the status-value\n * @param {string} [and_or] - An optional param that should be one of these values: \"AND\", \"OR\", null, undefined\n *\n * @example\n * new Status({\n * status: \"concept\",\n * });\n */\nexport class Status {\n constructor({ status, and_or }) {\n if (!status) {\n throw new ClassException(\"Status cannot be created without status\");\n }\n if (and_or && and_or !== \"AND\" && and_or !== \"OR\") {\n throw new ClassException(\n 'Status instance expects and_or param to be one of the following: \"AND\", \"OR\", null, undefined. Currently value is: ' +\n and_or\n );\n }\n\n this.status = status;\n this.and_or = and_or ? and_or : \"OR\";\n }\n}\n\n/***\n * Creates a new Sorting instance based on input\n *\n * @class\n * @typedef {Object} Sorting\n * @param {string} sort_type - A required param that should contain the sort-type. Sort_type needs to be one of the following:\n * \"name\", \"identifier\", \"identification\", \"timestamp_created\", \"last_updated_timestamp\", \"content\", \"status\"\n * @param {string} [direction] - A optional param that defines the sorting direction. Needs to be one of the following:\n * \"ASCENDING\", \"DESCENDING\"\n * @param {string} [field] - An semi-required param that should be submitted if sort_type === \"content\"\n *\n * @example\n * new Sorting({\n * sort_type: \"text_score\",\n * direction: \"DESCENDING\"\n * });\n *\n * @example\n * new Sorting({\n * sort_type: \"content\",\n * direction: \"DESCENDING\",\n * field: \"functie-vakgebied\"\n * });\n */\nexport class Sorting {\n constructor({ sort_type, direction, field }) {\n if (!sort_type) {\n throw new ClassException(\"Sorting cannot be created without sort_type\");\n }\n if (direction && direction !== \"ASCENDING\" && direction !== \"DESCENDING\") {\n throw new ClassException(\n 'Sorting instance expects direction param to be one of the following: \"ASCENDING\", \"DESCENDING\", null, undefined. Currently value is: ' +\n direction\n );\n }\n if (sort_type === \"content\" && !field) {\n throw new ClassException(\n \"Sorting instance cannot be created without field if sort_type is content\"\n );\n }\n\n this.sort_type = sort_type;\n this.direction = direction ? direction : \"ASCENDING\";\n\n if (sort_type === \"content\") {\n this.field = field;\n }\n }\n}\n\n/***\n * Creates a new TextSearch instance based on input\n *\n * @class\n * @typedef {Object} TextSearch\n * @param {string} text_query - A required param that should contain the text to search on.\n * @param {string} [and_or] - An optional param that should be one of these values: \"AND\", \"OR\", null, undefined\n * @param {boolean} [fuzzy] - An optional param that determines if fuzzy search is needed.\n * @param {string[]} [search_fields] - An optional param that defines where text-search should be done.\n *\n * @example\n * new TextSearch({\n * text_query: \"Test\",\n * fuzzy: true\n * });\n */\nexport class TextSearch {\n constructor({ text_query, and_or, fuzzy, search_fields }) {\n if (!text_query) {\n throw new ClassException(\n \"Text search cannot be created without text_query\"\n );\n }\n if (and_or && and_or !== \"AND\" && and_or !== \"OR\") {\n throw new ClassException(\n 'TextSearch instance expects and_or param to be one of the following: \"AND\", \"OR\", null, undefined. Currently value is: ' +\n and_or\n );\n }\n if (fuzzy && typeof fuzzy !== \"boolean\") {\n throw new ClassException(\n \"TextSearch instance expects fuzzy param to be an boolean. Currently value is of type \" +\n typeof and_or\n );\n }\n if (search_fields && !Array.isArray(search_fields)) {\n throw new ClassException(\n \"TextSearch instance expects search_fields param to be of type Array.\"\n );\n }\n if (\n search_fields &&\n !search_fields.every((field) => SEARCH_FIELDS.includes(field))\n ) {\n throw new ClassException(\n \"TextSearch instance expects search_fields to be one of the following:\" +\n SEARCH_FIELDS +\n \".\"\n );\n }\n\n this.text_query = text_query;\n this.and_or = and_or ? and_or : \"AND\";\n this.fuzzy = fuzzy ? fuzzy : true;\n this.search_fields = search_fields\n ? search_fields\n : [\"NAME\", \"CONTENT\", \"IDENTIFIER\", \"STATUS\"];\n }\n}\n\nexport class InstanceQuery extends Query {\n constructor(instanceIdentification) {\n if (!IdUtils.isUUID(instanceIdentification)) {\n throw new ClassException(\n \"Invalid identification to create InstanceQuery\"\n );\n }\n\n super({});\n this.instance_identifications = [instanceIdentification];\n }\n}\n","import axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport {\n validateApiOkResponse,\n validateApiSearchResponse,\n} from \"@/utils/ApiResponseValidator\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\n\nconst INSTANCE_RESOURCE = \"/generic/instances/\";\nconst INSTANCE_INCLUDE = \"?include=\";\n\nexport class OmniselectServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getFromUrl(url) {\n return this.OMNIMAP.get(url, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getInstance({ instanceId, properties }) {\n let url;\n if (properties) {\n url = INSTANCE_RESOURCE + instanceId + INSTANCE_INCLUDE + properties;\n } else {\n url = INSTANCE_RESOURCE + instanceId;\n }\n\n return this.OMNIMAP.get(url, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { OmniselectServices } from \"./Services\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nconst state = {\n omniselectServices: null,\n searchServices: null,\n};\n\nconst getters = {\n omniselectServices: (state) => state.omniselectServices,\n searchServices: (state) => state.searchServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the OmniselectServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getOmniselectServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.omniselectServices) {\n commit(\n \"SET_OMNISELECT_SERVICES\",\n new OmniselectServices(rootGetters.organisationId)\n );\n }\n\n return getters.omniselectServices;\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateOmniselectServices: ({ getters, rootGetters }) => {\n const omniselectServices = getters.omniselectServices;\n if (omniselectServices) {\n omniselectServices.setOrganisation(rootGetters.organisationId);\n }\n },\n\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateSearchServices: ({ getters, rootGetters }) => {\n const searchServices = getters.searchServices;\n if (searchServices) {\n searchServices.setOrganisation(rootGetters.organisationId);\n }\n },\n\n /**\n * Performs a searchquery on the Omnimap Elasticsearch API.\n *\n * @param getters\n * @param dispatch\n * @param pageSize\n * @param pageNumber\n * @param query\n * @param searchExact\n * @param searchFields\n * @return {Promise<{instances: [], meta: *}|{instances: *, meta: *}>}\n */\n omniselectSearch: async (\n { dispatch },\n {\n pageSize = process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n pageNumber = process.env.VUE_APP_GLOBAL_PAGE_NUMBER,\n query,\n searchExact = false,\n searchFields,\n searchIncludes,\n }\n ) => {\n // Input validation\n if (!pageSize || !pageNumber || !query || !searchFields) {\n throw new StoreException(\"Missing value\");\n }\n const searchServices = await dispatch(\"getSearchServices\");\n try {\n const response = await searchServices.postInstanceQuery(\n pageSize,\n pageNumber,\n query,\n searchExact,\n searchFields,\n searchIncludes\n );\n\n if (response && \"meta\" in response && response.meta) {\n return { meta: response.meta, instances: response.data };\n } else {\n return { meta: response.meta, instances: [] };\n }\n } catch (error) {\n throw new StoreException(\"Omniselect Search error: \" + error);\n }\n },\n\n /**\n * Performs a get GET request to an omnimap endpoint.\n *\n * @param getters\n * @param dispatch\n * @param url\n * @return {Promise}\n */\n omniselectGet: async ({ dispatch }, url) => {\n // Input validation\n if (!url) {\n throw new StoreException(\"Missing value\");\n }\n\n const omniselectServices = await dispatch(\"getOmniselectServices\");\n try {\n return await omniselectServices.getFromUrl(url);\n } catch (error) {\n throw new StoreException(\"Omniselect Get error: \" + error);\n }\n },\n\n getInstance: async ({ commit, getters, dispatch }, instanceId) => {\n if (!IdUtils.isUUID(instanceId)) {\n console.error(\n \"No valid instance identification found. Unable to retrieve instance.\"\n );\n return;\n }\n\n // Setup for retrieving instance from server\n const omniselectServices = await dispatch(\"getOmniselectServices\");\n const properties = [\"content\"];\n let instance = null;\n\n try {\n // Get instance\n instance = await omniselectServices.getInstance({\n instanceId,\n properties,\n });\n return instance;\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while loading instance: \\n\" + error.message\n );\n }\n },\n};\n\nconst mutations = {\n SET_OMNISELECT_SERVICES: (state, payload) =>\n Vue.set(state, \"omniselectServices\", payload),\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import ElementLanguage from \"element-ui/lib/locale/lang/nl\";\n\nconst messages = {\n general: {\n welcome: \"Welkom\",\n select: \"Selecteer\",\n process: \"Verwerken\",\n scrollToLoad: \"Scroll om meer te laden\",\n clickToLoad: \"Klik om meer te laden\",\n noMore: \"Geen resultaten meer\",\n loaded: \"geladen\",\n ownOrganisations: \"Eigen organisaties\",\n genericError:\n \"Sorry, er is een probleem opgetreden. Probeer het later opnieuw.\",\n cancel: \"Annuleren\",\n sitemap: \"Sitemap\",\n home: \"Home\",\n homepage: \"Homepage\",\n vacancies: \"Vacatures\",\n carrier_education: \"Loopbaan en opleiding\",\n newCapacityRequest: \"Aanvraag indienen\",\n faq: \"Veel gestelde vragen\",\n contact: \"Contact\",\n privacy: \"Privacy\",\n cookies: \"Cookies\",\n accessibility: \"Toegankelijkheid\",\n exact: \"Exact\",\n submit: \"Indienen\",\n losseVacature: \"Losse vacature\",\n aanvraag: \"Aanvraag\",\n },\n login: {\n selectLoginMethod: \"Selecteer een login methode\",\n logout: \"Uitloggen\",\n },\n omniselect: {\n loading: \"Laden...\",\n noQuery: \"Geen zoekopdracht beschikbaar\",\n noPath: \"Geen doelpad beschikbaar\",\n noJsonpath: \"Geen JSONPath beschikbaar\",\n noUrl: \"Geen URL beschikbaar\",\n invalidPath: \"Ongeldig doelpad\",\n initError: \"Fout bij het laden van de resultaten\",\n searchError: \"Fout bij ophalen van de selectie\",\n invalidResult: \"ONGELDIG RESULTAAT\",\n path: \"Pad\",\n result: \"Resultaat\",\n noResult: \"GEEN RESULTAAT\",\n noResults: \"Geen resultaat\",\n validPaths: \"Bekijk geldige paden\",\n missingVariables:\n \"Vul andere velden in het formulier in om dit selectieveld aan te vullen.\",\n neededValues: \"Benodigde waardes\",\n invalidValues:\n \"Een variabele heeft een ongeldige waarde gekregen en de gegevens kunnen niet worden opgehaald.\",\n checkValues: \"Controleer de waardes van\",\n },\n organisationSelection: {\n selectOrganisation: \"Selecteer organisatie\",\n },\n actions: {\n download: \"Downloaden\",\n },\n columns: {\n general: \"Algemeen\",\n instance: \"Dossier\",\n title: \"Titel\",\n name: \"Naam\",\n documentName: \"Documentnaam\",\n fileName: \"Bestandsnaam\",\n instanceName: \"Dossier naam\",\n identification: \"Identificatie\",\n id: \"ID\",\n identifier: \"ID\",\n description: \"Beschrijving\",\n since: \"Sinds\",\n until: \"Tot\",\n role: \"Relatie\",\n operations: \"Acties\",\n path: \"Pad\",\n type: \"Type\",\n created: \"Aangemaakt door\",\n createdTime: \"Aangemaakt\",\n updated: \"Gewijzigd door\",\n updatedTime: \"Gewijzigd\",\n organisation: \"Organisatie\",\n workmethod: \"Werkmethode\",\n actions: \"Acties\",\n timestamp_created: \"Datum aangemaakt\",\n timestamp_any_update: \"Datum laatst gewijzigd\",\n status: \"Status\",\n relevance: \"Relevantie\",\n jobfunction: \"Huidige functie\",\n category: \"Categorie\",\n surname: \"Achternaam\",\n locations: \"Locatie\",\n rate: \"Tarief\",\n details: \"Details\",\n jobs: \"Jobs\",\n candidates: \"Kandidaten\",\n label_from: \"Relatie\",\n related_instance_identification: \"Gerelateerd dossieridentificatie\",\n related_instance_identifier: \"Gerelateerd dossier ID\",\n related_instance_name: \"Gerelateerde dossiernaam\",\n version: \"Versie\",\n retentionPeriod: \"Bewaren tot\",\n tags: \"Tags\",\n },\n terms: {\n lba: \"Loopbaanadviseur\",\n endReview: \"Eindbeoordelingen\",\n applicationProgress: \"Sollicitatieverloop\",\n schedule: \"Planning\",\n history: \"Historie\",\n actions: \"Acties\",\n profile: \"Profiel\",\n reviews: \"Beoordelingen\",\n communication: \"Communicatie\",\n nomination: \"Voordracht\",\n jobFunctions: \"Jobfuncties\",\n exampleText: \"Voorbeeldtekst\",\n selectionCommission: \"Selectiecommissie\",\n selectionCommissionMembers: \"Selectiecommissieleden\",\n publicationData: \"Publicatiedata\",\n mantelPartijen: \"Mantelpartijen\",\n recruitmentArchive: \"Wervingsarchief\",\n beoordelingen: \"Beoordelingen\",\n },\n};\n\nconst omnischemaMessages = {\n // OmniSchema\n schema: {\n //General\n select: \"Selecteer\",\n isRequired: \"Veld is verplicht\",\n open: \"Open\",\n createMapping: \"Creëer mapping\",\n checkAll: \"Vink alle aan\",\n identification: \"identificatie\",\n isExported: \"Data wordt geëxporteerd\",\n parentExported: \"Geëxporteerd door parent\",\n inline: \"Inline\",\n\n //JSONArray\n more: \"meer\",\n loadMore: \"Laad meer\",\n addItem: \"Voeg {item} toe\",\n\n //JSONString\n selectTime: \"Selecteer tijd\",\n selectDate: \"Selecteer datum\",\n selectDateTime: \"Selecteer datum en tijd\",\n navigateToInstance: \"Navigeer naar dossier\",\n missingDestination: \"Link mist {type}\",\n noTimeSet: \"Geselecteerde tijd is 00:00\",\n\n //CustomComponent\n customComponentPlaceholder:\n \"Dit is een placeholder voor het custom component \",\n slotName: \"Slot naam\",\n returnedObject: \"Teruggegeven object\",\n\n //DateRange\n start: \"Begin\",\n end: \"Einde\",\n\n //Table\n addValue: \"Waarde toevoegen\",\n addRow: \"Rij toevoegen\",\n editRow: \"Rij bewerken\",\n deleteRow: \"Verwijder rij\",\n save: \"Opslaan\",\n showList: \"Toon lijst\",\n hideList: \"Verberg lijst\",\n newRow: \"Nieuwe rij\",\n showAll: \"Toon alles\",\n total: \"Totaal\",\n\n //WYSIWYG\n history: \"Geschiedenis\",\n undo: \"Ongedaan maken\",\n redo: \"Opnieuw\",\n text: \"Tekst\",\n bold: \"Vet\",\n italic: \"Cursief\",\n underline: \"Onderstrepen\",\n strike: \"Doorstrepen\",\n header: \"Titel | Titels\",\n lists: \"Lists\",\n orderedList: \"Geordende lijst\",\n bulletList: \"Ongeordende lijst\",\n table: \"Tabel\",\n tableFunctions: \"Tabelfuncties\",\n createTable: \"Maak tabel\",\n deleteTable: \"Tabel verwijderen\",\n addColumnBefore: \"Kolom toevoegen voor\",\n addColumnAfter: \"Kolom toevoegen na\",\n deleteColumn: \"Kolom verwijderen\",\n addRowAfter: \"Voeg rij toe na\",\n addRowBefore: \"Voeg rij toe voor\",\n toggleCellMerge: \"Toggle cel samenvoegen\",\n link: \"Link - om een link toe te voegen, selecteer een woord in de editor, plak de link in het invoerveld en druk op de Enter-toets\",\n },\n\n // Editor\n editor: {\n schema: \"Schema\",\n fullEditor: \"Volledige editor\",\n definition: \"Definitie\",\n definitions: \"Definities\",\n //Types\n reference: \"Referentie\",\n grouping: \"Groepen\",\n group: \"Groep\",\n object: \"Object\",\n list: \"Lijst\",\n text: \"Tekst\",\n textarea: \"Tekstveld\",\n email: \"E-mailadres\",\n url: \"URL input\",\n texteditor: \"Tekstverwerker\",\n options: \"Opties\",\n link: \"Link\",\n button: \"Knop\",\n external: \"Extern\",\n internal: \"Intern\",\n dates: \"Datumvelden\",\n time: \"Tijd\",\n date: \"Datum\",\n dateTime: \"Datum & tijd\",\n dateRange: \"Periode\",\n boolean: \"Boolean\",\n checkbox: \"Checkbox\",\n confirmCheckbox: \"Bevestig checkbox\",\n numbers: \"Getallen\",\n number: \"Getal\",\n integer: \"Integer\",\n rating: \"Beoordeling\",\n slider: \"Slider\",\n sliderOptions: \"Slider opties\",\n currency: \"Valuta\",\n selection: \"Selectie\",\n select: \"Selectie veld\",\n multipleSelect: \"Meervoudig selectie veld\",\n custom: \"Custom\",\n customComponent: \"Custom component\",\n noCustom: \"Geen components gevonden. Voer naam handmatig in.\",\n customWrongType:\n \"Incorrect type {type}. Verwacht data type: {exptected_type}\",\n omniselect: \"Omniselect\",\n omniMultiSelect: \"Meervoudige Omniselect\",\n omnilookup: \"Omnilookup\",\n location: \"Locatie\",\n media: \"Media\",\n other: \"Overige\",\n rrule: \"R-Rule\",\n validation: \"Validatie\",\n advancedValidation: \"Geavanceerde validatie\",\n validationErrors: \"Validatie fouten\",\n page: \"Pagina\",\n pattern: \"Patroon\",\n errorMessage: \"Foutmelding\",\n invalidRegex: \"Ongeldige regex\",\n delete: \"Verwijderen\",\n duplicate: \"Dupliceer\",\n compareText: \"Vergelijk tekst\",\n compareInfo:\n \"Toont de verschillen tussen twee stukken tekst. \" +\n \"Via een mapping kan tekst geplaats worden in de oud en nieuw properties.\",\n old: \"Oud\",\n new: \"Nieuw\",\n\n addExportLocation: \"Exportlocatie toevoegen\",\n removeExportLocation: \"Verwijder deze exportlocatie\",\n tableName: \"Tabelnaam\",\n columnName: \"Kolomnaam\",\n dataTypesLocked: \"U moet eerst een bestemming selecteren\",\n rowInserts: \"Rij-inzetstukken\",\n\n //ADD Component\n addTo: \"Voeg toe aan\",\n title: \"Titel\",\n type: \"Type\",\n itemType: \"Item type\",\n selectType: \"Selecteer type\",\n cancel: \"Annuleren\",\n add: \"Toevoegen\",\n notAvailable: \"Key is al in gebruik\",\n selectItemType: \"Selecteer lijst item type\",\n noTitle: \"Voer een titel in\",\n invalidKey: \"Ongeldige key\",\n noItems: \"Nog geen items in\",\n noDefinitions: \"Nog geen definities\",\n\n //Edit component\n edit: \"Wijzig\",\n path: \"Pad\",\n general: \"Algemeen\",\n settings: \"Instellingen\",\n advanced: \"Geavanceerd\",\n export: \"Export\",\n security: \"Beveiliging\",\n rules: \"Regels\",\n conditionalRendering: \"Conditional rendering\",\n noConditionalRendering: \"Nog geen conditional rendering toegevoegd.\",\n conditionalOptionsInfo:\n \"Verberg of blokkeer opties op basis van waardes in het schema.\",\n info: \"Info\",\n deprecated: \"Verouderd\",\n displaySubtitle: \"Geef info weer als subtitel\",\n required: \"Verplicht veld\",\n showAtCreation: \"Toon bij aanmaken dossier\",\n readOnly: \"Alleen lezen\",\n hidden: \"Verborgen veld\",\n indexElastic: \"Indexeer voor selectiescherm\",\n privacySensitive: \"Privacy gevoelige data\",\n executeMapping: \"Uitvoeren van de mapping\",\n mappedValue: \"Gemapte waarde\",\n exportSettings: \"Data exporteer instellingen\",\n destination: \"Bestemming\",\n dataType: \"Datatype\",\n table: \"Tabel\",\n tableRow: \"Tabel rij\",\n column: \"Kolom\",\n checkPresence: \"Controleer aanwezigheid\",\n create: \"Creëer\",\n createRenderRules: \"Creëer render regels voor\",\n revertChanges: \"Wijzigingen ongedaan maken\",\n requiredRules: \"Verplicht regels\",\n textTextarea: \"Tekst/Teksveld\",\n textTextareaInfo:\n \"Bij een tekstveld zorgt verplicht ervoor dat de waarde moet bestaan \" +\n \"in de data, maar deze waarde kan ngo wel leeg zijn. \" +\n \"Als het werkelijk een waarde moeten hebben, zet dan de Min Lengte op 1.\",\n requiredChild: \"Verplicht veld Child\",\n requiredChildInfo:\n \"Wanneer het parent object van het verplichte veld niet op verplicht staat, \" +\n \"zal de validatie niet activeren, tenzij het parent object ook in de data bestaat. \" +\n \"Om een veld verplicht te maken zonder dat de parent bestaat, kan de parent ook op verplicht gezet worden.\",\n requiredCheckbox:\n \"Een Boolean welke verplicht is kan ZOWEL aangevinkt als leeg zijn, \" +\n \"als u alleen aangevinkte waarden wil accepteren, gebruik dan een BooleanConfirm.\",\n optional: \"Optioneel\",\n optionalInfo:\n \"Een optioneel veld is niet verplicht, maar wordt getoond wanneer alleen verplichte velden getoond worden.\",\n requiredBoolean: \"Een verplichte boolean heeft false als standaard waarde.\",\n requiredBooleanConfirm: \"Deze checkbox is verplicht\",\n mappingIdentification: \"Mapping identificatie\",\n placeholder: \"Placeholder\",\n tableFooter: \"Tabel voettekst key\",\n tableFooterPlaceholder: \"Voer een unieke key in\",\n\n //JSONString\n format: \"Format\",\n formatInfo:\n \"Gebruik deze karakters om de data weer te geven zoals gewenst. \" +\n \"Rechts is een voorbeeld van wat de karakters representeren.\" +\n \"Andere karakters kunnen worden gebruikt om de waardes te scheiden. (-, /, [space]).\",\n dateCharactersOnly:\n 'Type \"Datum\" mag alleen datumtekens bevatten, zoals dd-MM-yyyy',\n year: \"Jaar\",\n month: \"Maand\",\n day: \"Dag\",\n hour: \"Uur\",\n minute: \"Minuut\",\n second: \"Seconde\",\n includeTime: \"Inclusief tijd\",\n linkText: \"Link tekst\",\n test: \"Test\",\n minLength: \"Min lengte\",\n maxLength: \"Max lengte\",\n minItems: \"Min items\",\n maxItems: \"Max items\",\n minMax: \"Min en Max waarde\",\n minMaxLength: \"Min en Max lengte\",\n minMaxItems: \"Min en Max items\",\n default: \"Standaard\",\n defaultValue: \"Standaard waarde\",\n tabs: \"Tabs\",\n wizard: \"Wizard\",\n next: \"Volgende\",\n previous: \"Vorige\",\n rows: \"Rijen\",\n selectDate: \"Selecteer Datum\",\n selectDateTime: \"Selecteer datum & tijd\",\n start: \"Begin\",\n end: \"Einde\",\n clickable: \"Klikbaar\",\n noPagination: \"Geen paginering\",\n\n //JSONArray\n cantAdd: \"Items kunnen niet worden toegevoegd\",\n disallowAdd: \"Toevoegen niet toestaan\",\n cantDelete: \"Items kunnen niet worden verwijderd\",\n disallowDelete: \"Verwijderen niet toestaan\",\n tableView: \"Tabel weergave\",\n collapse: \"Inklapbaar | Ingeklapt\",\n\n //JSONEnum\n checkboxGroup: \"Checkbox groep\",\n allowCreate: \"Sta creëeren toe\",\n radioDisplay: \"Radioknoppen\",\n noDefault: \"Geen standaard\",\n newOption: \"Nieuwe optie\",\n uniqueOption: \"Opties moeten uniek zijn\",\n\n //JSONNumber\n minimum: \"Minimum\",\n maximum: \"Maximum\",\n separator: \"Scheidingsteken\",\n steps: \"Stappen\",\n notDividable: \"Niet deelbaar door\",\n showStops: \"Toon stops\",\n\n //JSONObject\n update: \"Update\",\n\n //Location\n selectMapConfiguration: \"Selecteer kaartconfiguratie\",\n noMapConfigurations: \"Er zijn geen kaartconfiguraties beschikbaar\",\n\n //Media\n selectMediaDefinition: \"Selecteer mediadefinitie\",\n noMediaDefinition: \"Geen mediadefinities beschikbaar\",\n infoMediaPath:\n \"In alle gevallen moet het pad eindigen op '/'. Als het pad genest is, voer dan alle mapnamen in, gescheiden door '/'. Voorbeeld: 'map/submap'. Indien leeg gelaten, wordt het bestand toegevoegd aan de hoofdmap.\",\n\n //Omniselect\n flexible: \"Flexibel\",\n searchIncludes: \"Zoek inhoud\",\n searchOptions: \"Zoek opties\",\n getPathInfo:\n \"Selecteer een lijst van data uit de response van de url met gebruik van een jsonpath.\",\n getFilterInfo:\n \"Filter de data van de Get response met gebruik van een json path.\",\n display: \"Weergave\",\n infoDisplay:\n \"Vul het jsonpath in naar de waarde die weergegeven moet worden \" +\n \"in de resultaten (meestal $.name).\",\n queryLength: \"Zoekterm lengte\",\n queryLengthInfo:\n \"Hoeveel karakters moeten worden ingevoerd, voordat de zoek opdracht uitgevoerd wordt?\\n\" +\n \"Dit verminderd het aantal API calls, omdat de zoek opdracht minder vaak wordt uitgevoerd.\",\n save: \"Opslag\",\n infoSave:\n \"Vul het jsonpath in naar de waarde die opgeslagen moet worden (meestal $.identification).\",\n populateFields: \"Vul andere velden\",\n contextDefinitionIdentification: \"Context definitie identificatie\",\n infoContextDefinitionIdentification:\n \"Vul een context definitie identificatie in als de waarde ook in de relaties verwerkt moet worden\",\n viewInstance: \"Toon de knop om het dossier weer te geven\",\n navigateInstance: \"Toon de knop om naar het dossier te navigeren\",\n field: \"Veld | Velden\",\n property: \"Eigendom\",\n variable: \"Variabele | Variabelen\",\n infoVariables:\n \"Het {type} veld accepteert variabelen die worden vervangen met waardes uit het formulier. \" +\n \"Om een variabele toe te voegen aan de {type} plaats een term tussen dubbele accolades, \" +\n \"zoals dit: \",\n omnilookupVariable:\n \"De standaard query-variabele moet aan de url worden toegevoegd\",\n queryField: \"Omnilookup zoekveld\",\n infoVariablesJSON:\n \"De quotes om de variabele zijn nodig, zonder is de query niet geldig.\",\n variableName: \"naam_variabele\",\n referSelf: \"Mag niet naar eigen pad refereren\",\n omniconnectPlaceholder: \"Placeholder\",\n omniconnectPlaceholderInfo:\n \"Voordat een resultaat geselecteerd is staat een standaard tekst \" +\n \"in het selectieveld, bepaal hier welke tekst. Laat dit veld leeg voor de standaard waarde: \" +\n \"'Selecteer'\",\n omniconnectSelect: \"Selectie pad\",\n omniconnectSelectInfo:\n \"Met de waarde verkregen via dit pad, wordt een enkel resultaat \" +\n \"uit de lijst met data gehaald. Wanneer de lijst met resultaten afkomstig is \" +\n \"van 'api-url/resultaten-lijst', wordt de waarde van het selectie pad achter de url geplaatst \" +\n \"om een enkel resultaat op te halen 'api-url/resultaten-lijst/selectie-waarde'. \" +\n \"Dit is vaak $.identification of $.index\",\n omniconnectSearch: \"Zoeken\",\n omniconnectSearchInfo:\n \"De lijst met resultaten wordt niet gelijk geladen. De gebruiker moet \" +\n \"een zoekterm invullen en resulaten gebaseerd op die zoekterm worden weergegeven. \" +\n \"Deze input definieert de property uit de resultaten waarop de gebruiker kan zoeken, \" +\n \"voer bijvoorbeeld 'name' in om de gebruiker op namen te laten zoeken.\",\n\n //Conditional Rendering\n action: \"Actie | Acties\",\n newAction: \"Nieuwe actie\",\n selectAction: \"Selecteer actie\",\n condition: \"Conditie | Condities\",\n addCondition: \"Conditie toevoegen\",\n conditionsIncomplete: \"Condities zijn onvolledig\",\n show: \"Tonen\",\n hide: \"Verbergen\",\n disable: \"Blokkeren\",\n makeRequired: \"Verplicht maken\",\n description: \"Beschrijving\",\n source: \"Bron\",\n comparator: \"Vergelijker\",\n eq: \"is gelijk aan\",\n ne: \"is niet gelijk aan\",\n gt: \"is groter dan\",\n ge: \"is groter dan of gelijk aan\",\n lt: \"is kleiner dan\",\n le: \"is kleiner dan of gelijk aan\",\n valueType: \"Waarde type\",\n value: \"Waarde\",\n selectComparator: \"Selecteer een vergelijker\",\n selectPath: \"Selecteer pad\",\n selectPathCompare: \"Selecteer pad om mee te vergelijken\",\n selectedOwnPath: \"Eigen pad kan niet geselecteerd worden\",\n enterValue: \"Voer waarde in om mee te vergelijken\",\n addConditions:\n \"Voeg ten minste {n} conditie toe | Voeg ten minste {n} condities toe\",\n relative: \"Reletief\",\n specific: \"Specifiek\",\n difference: \"Verschil\",\n differenceInfo:\n \"Voer een negatief nummer in, om te kijken naar een datum in het verleden.\",\n leaveDateEmpty:\n \"Laat leeg om de huidige datum te gebruiken bij instance weergave.\",\n compareDate: \"Vergelijk datum\",\n businessDays: \"Tel alleen werkdagen\",\n dateCompareInfo:\n \"Bij het vergelijken van datums, wordt het verschil \" +\n \"tussen 2 datums en een opgegeven verschil vergeleken.
\" +\n \"Bron 1 is een variable datum ingevoerd in data van het schema.
\" +\n \"Bron 2 is de huidige datum, of een opgegeven statische datum.

\" +\n \"Voorbeelden
\" +\n \"Kijk of de datum (Bron 1) vandaag is:
\" +\n \"Bron 1 == Verschil: 0

\" +\n \"Kijk of de datum (Bron 1) in de toekomst is:
\" +\n \"Bron 1 > Verschil: 0

\" +\n \"Kijk of de datum 2 of meer dagen geleden is:
\" +\n \"Bron 1 <= Verschil: -2\",\n\n noFutureDates: \"Na\",\n noPastDates: \"Voordat\",\n dateLimits: \"Datum limitaties\",\n limitDateInfo:\n \"Beperk het datumbereik dat een gebruiker kan selecteren. U zult een oriëntatie (datums in het verleden of in de toekomst) en een referentiedatum moeten specificeren die vandaag (dynamisch) kan zijn, een ander datumitem in het schema of een aangepaste datum.\",\n limitDate: \"Stel beperkingen voor de datumkiezer in\",\n today: \"Vandaag\",\n customDate: \"Aangepaste datum\",\n orientation: \"Tijd oriëntatie\",\n limitOrientation: \"Oriëntatie\",\n dateReference: \"Datum referentie\",\n pickDate: \"Kies een datum\",\n\n checkPresenceHelp1:\n \"Als u dit selecteert, wordt de geëxporteerde waarde een booleaanse waarde die true is als de gegevens aanwezig zijn en anders false.\",\n checkPresenceHelp2:\n \"Het kan worden gebruikt wanneer bepaalde gegevenseigenschappen verborgen willen worden voor de exportbestemming en nog steeds aangeven of ze aanwezig zijn of niet.\",\n\n deselectCheckPresence:\n \"Schakel het selectievakje Controleer aanwezigheid uit om het gegevenstype te kunnen bewerken\",\n\n updateRate: \"Update frequentie\",\n\n updateRates: {\n everyMinute: \"Elke minuut\",\n fiveMinutes: \"Elke 5 minuten\",\n fifteenMinutes: \"Elke 15 minuten\",\n thirtyMinutes: \"Elke 30 minuten\",\n hourly: \"Elk uur\",\n fourHours: \"Elke 4 uur\",\n eightHours: \"Elke 8 uur\",\n daily: \"Dagelijks\",\n },\n\n exportDestinations: \"Exportbestemmingen\",\n exportLocations: \"Exportlocaties\",\n exportFullContent: \"Exporteer volledige content\",\n },\n\n //Security\n security: {\n path: \"pad\",\n copy: \"Kopieer leesregels | Kopieer eigen organisatiecontext | Kopieer mandaat organisatiecontext\",\n write: \"Schrijf\",\n select: \"Selecteren\",\n read: \"Lezen\",\n context: \"Context\",\n application: \"Applicatie\",\n own: \"Eigen\",\n mandate: \"Mandaat organisaties\",\n roleSet: \"Rollen set\",\n inherited: \"Beveiligingsinstellingen overgenomen van de parent\",\n selectRoles: \"Selecteer rollen\",\n allowAll: \"Sta alles toe\",\n name: \"Naam\",\n rules: \"Regels\",\n rule: \"Regel\",\n allow: \"STA TOE\",\n deny: \"WEIGER\",\n actions: \"Acties\",\n view: \"Bekijken\",\n start: \"Starten\",\n cancel: \"Annuleren\",\n finish: \"Afronden\",\n create: \"Creëren\",\n all: \"Alle\",\n personalContext: \"Persoonlijke context\",\n organisationContext: \"Organisatie context\",\n applicationContext: \"Applicatie context\",\n\n securityRule: \"Beveiligingsregel\",\n copyRule: \"Kopieer de regel en plak deze als laatste\",\n copyType: \"Kopieer alle regels van {action1} naar {action2}\",\n orderMatters:\n \"Begin met de meest gedetailleerde regel en eindig met de meest algemene\",\n noInstanceSecurity: \"Geen beveiligingsregels voor het dossier toegevoegd\",\n noInstanceSecurityTooltip:\n \"Als er geen dossierbeveiligingsregels zijn opgegeven, kunnen alle gebruikers het dossier {action}. Content- en procesbeveiligingsregels blijven onafhankelijk\",\n saveAlert:\n \"Zorg ervoor dat u alle soorten beveiligingscontext instelt om een geldige regel te maken\",\n allAllowed: \"Alles toegestaan\",\n\n noContentSecurity: \"Geen beveiligingsregels voor content toegevoegd\",\n noContentSecurityTooltip:\n \"Als er geen contentbeveiligingsregels zijn opgegeven, kunnen alle gebruikers het {action}. Dossier- en procesbeveiligingsregels blijven onafhankelijk\",\n },\n\n //RRules\n rrule: {\n frequency: \"Frequentie\",\n count: \"Aantal keer\",\n yearly: \"Elk jaar\",\n monthly: \"Elke maand\",\n weekly: \"Elke week\",\n daily: \"Elke dag\",\n hourly: \"Elk uur\",\n minutely: \"Elke minuut\",\n secondly: \"Elke seconde\",\n interval: \"Interval\",\n delay: \"Vertraging\",\n inSeconds: \"in secondes\",\n restriction: \"Beperking\",\n onlyWeekDays: \"Alleen op weekdagen\",\n onlyWeekends: \"Alleen in weekenden\",\n after: \"na\",\n every: \"Elke\",\n for: \"Voor\",\n times: \"Keer\",\n and: \"En\",\n execute: \"Voer uit\",\n seconds: \"seconden\",\n minutes: \"minuten\",\n hours: \"uren\",\n second: \"seconde | {n} seconden\",\n minute: \"minuut | {n} minuten\",\n hour: \"uur | {n} uren\",\n day: \"dag | {n} dagen\",\n week: \"week | {n} weken\",\n month: \"maand | {n} maanden\",\n year: \"jaar | {n} jaren\",\n },\n\n //securityToText Util\n securityToText: {\n all: \"Alle\",\n\n view: \"Bekijken\",\n start: \"Starten\",\n cancel: \"Annuleren\",\n finish: \"Afronden\",\n create: \"Creëren\",\n select: \"Selecteren\",\n read: \"Lezen\",\n get: \"Krijgen\",\n\n actions: \"Acties\",\n\n own: \"eigen\",\n mandate: \"mandaat\",\n\n personalContext: \"Persoonlijke context\",\n organisationContext: \"Organisatie context\",\n applicationContext: \"Applicatie context\",\n\n denySingular: \"wordt geweigerd voor \",\n denyPlural: \"worden geweigerd voor \",\n allowSingular: \"is toegestaan voor \",\n allowPlural: \"worden toegestaan voor \",\n\n theFollowing: \"de volgende \",\n in: \"in \",\n and: \"en \",\n or: \" of \",\n\n role: \"Rol | Rollen\",\n\n nobody: \"Niemand\",\n everybody: \"Allemaal\",\n\n unknown: \"onbekende rol\",\n users: \"Gebruikers \",\n applicationRole: \"met applicatierol \",\n\n whichAreRelated: \"die verband houden \",\n withTheir: \"met hun \",\n as: \"als \",\n ownOrganisation: \"eigen organisatie \",\n mandate_context_roles: \"mandaatorganisatie \",\n user_context_roles: \"gebruikerscontext \",\n\n toTheInstance: \"naar het dossier in kwestie\",\n },\n newSecurityToText: {\n allAllowed: \"Elke gebruiker mag een dossier van dit type {action}.\",\n noneAllowed: \"Niemand mag een dossier van dit type {action}.\",\n someAllowed:\n \"Gebruiker kan een dossier {action} als ze aan alle volgende criteria voldoen: \",\n specify: \"Geef alle overige criteria op om een geldige regel te maken.\",\n application_roles: \"ze de applicatierol hebben van\",\n mandate_context_roles:\n \"hun mandaatorganisatie gerelateerd is aan het dossier als\",\n own_context_roles:\n \"hun eigen organisatie gerelateerd is aan het dossier als\",\n user_context_roles: \"ze gerelateerd zijn aan het dossier als\",\n },\n};\n\nexport default Object.assign(\n Object.assign(messages, ElementLanguage),\n omnischemaMessages\n);\n","import ElementLanguage from \"element-ui/lib/locale/lang/en\";\n\nconst messages = {\n general: {\n welcome: \"Welcome\",\n select: \"Select\",\n process: \"Process\",\n scrollToLoad: \"Scroll to load more\",\n clickToLoad: \"Click to load more\",\n noMore: \"No more results\",\n loaded: \"loaded\",\n ownOrganisations: \"Own organisations\",\n genericError: \"Sorry, a problem has occured. Please try again later.\",\n cancel: \"Cancel\",\n sitemap: \"Sitemap\",\n home: \"Home\",\n homepage: \"Homepage\",\n vacancies: \"Vacancies\",\n carrier_education: \"Carrier and education\",\n newCapacityRequest: \"Request new capacity\",\n faq: \"Frequently asked questions\",\n contact: \"Contact\",\n privacy: \"Privacy\",\n cookies: \"Cookies\",\n accessibility: \"Accessibility\",\n exact: \"Exact\",\n submit: \"Submit\",\n losseVacature: \"Losse vacature\",\n aanvraag: \"Aanvraag\",\n },\n login: {\n selectLoginMethod: \"Select login method\",\n logout: \"Log out\",\n },\n omniselect: {\n loading: \"Loading...\",\n noQuery: \"No query available\",\n noPath: \"No path available\",\n noJsonpath: \"No JSONPath available\",\n noUrl: \"No URL available\",\n invalidPath: \"Invalid path\",\n initError: \"Error on loading results\",\n searchError: \"Error on searching selection\",\n invalidResult: \"INVALID RESULT\",\n path: \"Path\",\n result: \"Result\",\n noResult: \"NO RESULT\",\n noResults: \"No results\",\n validPaths: \"Check valid paths\",\n missingVariables: \"\",\n neededValues: \"Needed values\",\n invalidValues:\n \"A variable has gotten an invalid value and the data can't be retrieved.\",\n checkValues: \"Check the values of\",\n },\n organisationSelection: {\n selectOrganisation: \"Select organisation\",\n },\n actions: {\n download: \"Download\",\n },\n columns: {\n general: \"General\",\n instance: \"Instance\",\n title: \"Title\",\n name: \"Name\",\n documentName: \"Document name\",\n fileName: \"File name\",\n instancenceName: \"Instance name\",\n identification: \"Identification\",\n id: \"ID\",\n identifier: \"ID\",\n description: \"Description\",\n since: \"Since\",\n until: \"Until\",\n role: \"Relation\",\n operations: \"Actions\",\n path: \"Path\",\n type: \"Type\",\n created: \"Created by\",\n createdTime: \"Created\",\n updated: \"Updated by\",\n updatedTime: \"Updated\",\n organisation: \"Organisation\",\n workmethod: \"Work method\",\n actions: \"Actions\",\n timestamp_created: \"Date created\",\n timestamp_any_update: \"Date last update\",\n status: \"Status\",\n relevance: \"Relevance\",\n jobfunction: \"Current job title\",\n category: \"Category\",\n surname: \"Surname\",\n locations: \"Location\",\n rate: \"Rate\",\n details: \"Details\",\n jobs: \"Jobs\",\n candidates: \"Candidates\",\n label_from: \"Relatie\",\n related_instance_identification: \"Related instance identification\",\n related_instance_identifier: \"Related instance ID\",\n related_instance_name: \"Related instance name\",\n version: \"Version\",\n retentionPeriod: \"Keep until\",\n tags: \"Tags\",\n },\n terms: {\n lba: \"Career advisor\",\n endReview: \"End review\",\n applicationProgress: \"Application progress\",\n schedule: \"Schedule\",\n history: \"History\",\n actions: \"Actions\",\n profile: \"Profile\",\n reviews: \"Beoordelingen\",\n communication: \"Communication\",\n nomination: \"Nomination\",\n jobFunctions: \"Jobfunctions\",\n exampleText: \"Example text\",\n selectionCommission: \"Selection commission\",\n selectionCommissionMembers: \"Selection commission members\",\n publicationData: \"Publicationdata\",\n mantelPartijen: \"Mantelpartijen\",\n recruitmentArchive: \"Recruitment archive\",\n beoordelingen: \"Beoordelingen\",\n },\n};\n\nconst omnischemaMessages = {\n // OmniSchema\n schema: {\n //General\n select: \"Select\",\n isRequired: \"Field is required\",\n open: \"Open\",\n createMapping: \"Create mapping\",\n checkAll: \"Check all\",\n identification: \"identification\",\n isExported: \"Data is exported\",\n parentExported: \"Exported through parent\",\n inline: \"Inline\",\n\n //JSONArray\n more: \"more\",\n loadMore: \"Load more\",\n addItem: \"Add {item}\",\n\n //JSONString\n selectTime: \"Select time\",\n selectDate: \"Select date\",\n selectDateTime: \"Select date and time\",\n navigateToInstance: \"Navigate to instance\",\n missingDestination: \"Link is missing {type}\",\n noTimeSet: \"Selected time is 00:00\",\n\n //CustomComponent\n customComponentPlaceholder:\n \"This is a placeholder for the custom component \",\n slotName: \"Slot name\",\n returnedObject: \"Returned object\",\n\n //DateRange\n start: \"Start\",\n end: \"End\",\n\n //Table\n addValue: \"Add value\",\n addRow: \"Add row\",\n editRow: \"Edit row\",\n deleteRow: \"Delete row\",\n save: \"Save\",\n showList: \"Show list\",\n hideList: \"Hide list\",\n newRow: \"New row\",\n showAll: \"Show all\",\n total: \"Total\",\n\n //WYSIWYG\n history: \"History\",\n undo: \"Undo\",\n redo: \"Redo\",\n text: \"Text\",\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n strike: \"Strikethrough\",\n header: \"Header | Headers\",\n lists: \"Lists\",\n orderedList: \"Ordered list\",\n bulletList: \"Unordered list\",\n table: \"Table\",\n tableFunctions: \"Table functions\",\n createTable: \"Create table\",\n deleteTable: \"Delete table\",\n addColumnBefore: \"Add column before\",\n addColumnAfter: \"Add column after\",\n deleteColumn: \"Delete column\",\n addRowAfter: \"Add row after\",\n addRowBefore: \"Add row before\",\n toggleCellMerge: \"Toggle cell merge\",\n link: \"Link - to add a link select a word in the editor, then paste the link in the input field and hit the Enter key\",\n },\n\n // Editor\n editor: {\n schema: \"Schema\",\n fullEditor: \"Full editor\",\n definition: \"Definition\",\n definitions: \"Definitions\",\n //Types\n reference: \"Reference\",\n grouping: \"Grouping\",\n group: \"Group\",\n object: \"Object\",\n list: \"List\",\n text: \"Text\",\n textarea: \"Textarea\",\n email: \"Email address\",\n url: \"URL input\",\n texteditor: \"Text Editor\",\n options: \"Options\",\n link: \"Link\",\n button: \"Button\",\n external: \"External\",\n internal: \"Internal\",\n dates: \"Dates\",\n time: \"Time\",\n date: \"Date\",\n dateTime: \"Date & time\",\n dateRange: \"Date range\",\n boolean: \"Boolean\",\n checkbox: \"Checkbox\",\n confirmCheckbox: \"Confirm checkbox\",\n numbers: \"Numbers\",\n number: \"Number\",\n integer: \"Integer\",\n rating: \"Rating\",\n slider: \"Slider\",\n sliderOptions: \"Slider options\",\n currency: \"Currency\",\n selection: \"Selection\",\n select: \"Select\",\n multipleSelect: \"Multiple select\",\n custom: \"Custom\",\n customComponent: \"Custom component\",\n noCustom: \"No components found. Enter name manually.\",\n customWrongType:\n \"Incorrect type {type}. Expected data type: {exptected_type}\",\n omniselect: \"Omniselect\",\n omniMultiSelect: \"Multiple Omniselect\",\n omnilookup: \"Omnilookup\",\n location: \"Location\",\n media: \"Media\",\n other: \"Other\",\n rrule: \"R-Rule\",\n validation: \"Validation\",\n advancedValidation: \"Advanced validation\",\n validationErrors: \"Validation errors\",\n page: \"Page\",\n pattern: \"Pattern\",\n errorMessage: \"Error message\",\n invalidRegex: \"Invalid regex\",\n delete: \"Delete\",\n duplicate: \"Duplicate\",\n compareText: \"Compare text\",\n compareInfo:\n \"Displays the differences between two parts of text. \" +\n \"With a mapping text can placed in the old and new properties.\",\n old: \"Old\",\n new: \"New\",\n\n addExportLocation: \"Add export location\",\n removeExportLocation: \"Remove this export location\",\n tableName: \"Table name\",\n columnName: \"Column name\",\n dataTypesLocked: \"You must select a destination first\",\n rowInserts: \"Row inserts\",\n\n //ADD Component\n addTo: \"Add to\",\n title: \"Title\",\n type: \"Type\",\n itemType: \"Item type\",\n selectType: \"Select type\",\n cancel: \"Cancel\",\n add: \"Add\",\n notAvailable: \"Key is already in use\",\n selectItemType: \"Select list item type\",\n noTitle: \"Enter a title\",\n invalidKey: \"Invalid key\",\n noItems: \"No items yet in\",\n noDefinitions: \"No definitions\",\n\n //Edit component\n edit: \"Edit\",\n path: \"path\",\n general: \"General\",\n settings: \"Settings\",\n advanced: \"Advanced\",\n export: \"Export\",\n security: \"Security\",\n rules: \"Rules\",\n conditionalRendering: \"Conditional rendering\",\n noConditionalRendering: \"No conditional rendering added.\",\n conditionalOptionsInfo:\n \"Conditionally hide or disable options based on values in the schema.\",\n info: \"Info\",\n deprecated: \"Deprecated\",\n displaySubtitle: \"Show info as subtitle\",\n required: \"Required\",\n showAtCreation: \"Show at create instance\",\n readOnly: \"Read Only\",\n hidden: \"Hidden\",\n indexElastic: \"Index for selection screen\",\n privacySensitive: \"Privacy sensitive data\",\n executeMapping: \"Execute mapping\",\n mappedValue: \"Mapped value\",\n exportSettings: \"Data export settings\",\n destination: \"Destination\",\n dataType: \"Datatype\",\n table: \"Table\",\n tableRow: \"Table row\",\n column: \"Column\",\n checkPresence: \"Check Presence\",\n create: \"Create\",\n createRenderRules: \"Create render rules for\",\n revertChanges: \"Revert Changes\",\n requiredRules: \"Required rules\",\n textTextarea: \"Text/Textarea\",\n textTextareaInfo:\n \"For text, required makes the property required in the data, but it can \" +\n \"still have an empty value. If a string must have a value, set it's Min Length to 1 or higher.\",\n requiredChild: \"Required Child\",\n requiredChildInfo:\n \"If the parent object of the required property is not set to required, \" +\n \"validation will not trigger unless the parent is present in the data. To make a \" +\n \"property required even when the parent is not existant, make the parent required as well.\",\n requiredCheckbox:\n \"A Boolean which is required can be BOTH checked and unchecked, \" +\n \"if you want only checked values to be valid, please use a BooleanConfirm.\",\n optional: \"Optional\",\n optionalInfo:\n \"An optional field is not required, but displayed when only required fields are shown.\",\n requiredBoolean: \"A required boolean has it's default set to false.\",\n requiredBooleanConfirm: \"This checkbox is required\",\n mappingIdentification: \"Mapping identification\",\n placeholder: \"Placeholder\",\n tableFooter: \"Table footer key\",\n tableFooterPlaceholder: \"Add a unique key\",\n\n //JSONString\n format: \"Format\",\n formatInfo:\n \"Use these characters to display the date as desired. On the right is an example\" +\n \"of what the charachters represent. \" +\n \"Other characters can be used to separate the values. (-, /, [space]).\",\n dateCharactersOnly:\n 'Type \"Date\" can only include Date characters, such as dd-MM-yyyy',\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n second: \"Second\",\n includeTime: \"Include time\",\n linkText: \"Link text\",\n test: \"Test\",\n minLength: \"Min length\",\n maxLength: \"Max length\",\n minItems: \"Min items\",\n maxItems: \"Max items\",\n minMax: \"Min and Max values\",\n minMaxLength: \"Min and Max length\",\n minMaxItems: \"Min and Max items\",\n default: \"Default\",\n defaultValue: \"Default value\",\n tabs: \"Tabs\",\n wizard: \"Wizard\",\n next: \"Next\",\n previous: \"Previous\",\n rows: \"Rows\",\n selectTime: \"Select time\",\n selectDate: \"Select date\",\n selectDateTime: \"Select date & time\",\n start: \"Start\",\n end: \"End\",\n clickable: \"Clickable\",\n noPagination: \"No pagination\",\n\n //JSONArray\n cantAdd: \"Items cannot be added\",\n disallowAdd: \"Disallow add\",\n cantDelete: \"Items cannot be deleted\",\n disallowDelete: \"Disallow delete\",\n tableView: \"Table view\",\n collapse: \"Collapsible | Collapsed\",\n\n //JSONEnum\n checkboxGroup: \"Checkbox group\",\n allowCreate: \"Allow create\",\n radioDisplay: \"Radio display\",\n noDefault: \"No default\",\n newOption: \"New option\",\n uniqueOption: \"Options must be unique\",\n\n //JSONNumber\n minimum: \"Minimum\",\n maximum: \"Maximum\",\n separator: \"Separator\",\n steps: \"Steps\",\n notDividable: \"Not dividable by\",\n showStops: \"Show stops\",\n\n //JSONObject\n update: \"Update\",\n\n //Location\n selectMapConfiguration: \"Select map configuration\",\n noMapConfigurations: \"No map configurations available\",\n\n //Media\n selectMediaDefinition: \"Select media definition\",\n noMediaDefinition: \"No media definitions available\",\n infoMediaPath:\n \"In all cases the path should end with '/'. If the path is nested, input all folder names separated by '/'. Example: 'folder/subFolder/'. If left empty, file will be added to the root folder.\",\n\n //Omniselect\n flexible: \"Flexible\",\n searchIncludes: \"Search includes\",\n searchOptions: \"Search options\",\n getPathInfo:\n \"Select an array of data from the response of the url using a json path.\",\n getFilterInfo: \"Filter the data of the Get response using a json path.\",\n display: \"Display\",\n infoDisplay:\n \"Enter the jsonpath to property that should be displayed \" +\n \"in the results (usually $.name).\",\n queryLength: \"Query length\",\n queryLengthInfo:\n \"How many characters must be entered before the search call is done?\\n\" +\n \"This reduces the amount of API calls, because the search is called less often.\",\n save: \"Save\",\n infoSave:\n \"Enter the jsonpath to property that should be saved (usually $.identification).\",\n populateFields: \"Populate other fields\",\n contextDefinitionIdentification: \"Context definition identification\",\n infoContextDefinitionIdentification:\n \"Selected instances will be added to the context of the current instance based on the given context definition identification\",\n viewInstance: \"Show button to view instance\",\n navigateInstance: \"Show button to navigate to instance\",\n field: \"Field | Fields\",\n property: \"Property\",\n variable: \"Variable | Variables\",\n infoVariables:\n \"The {type} field allows variables that will be replaced with values from the form. \" +\n \"To add a variable to the {type} place a term between double curly brackets, \" +\n \"like this: \",\n omniLookupVariable:\n \"The default query variable needs to be added to the url\",\n queryField: \"Omnilookup query field\",\n infoVariablesJSON:\n \"The quotations around the variable are required, without the query is not valid.\",\n variableName: \"variable_name\",\n referSelf: \"Can't refer to own path\",\n omniconnectPlaceholder: \"Placeholder\",\n omniconnectPlaceholderInfo:\n \"Before a result is selected there is a standard placeholder text \" +\n \"in the selection box, determine that placeholder with this input. Leave blank for the \" +\n \"default value: 'Select'\",\n omniconnectSelect: \"Select path\",\n omniconnectSelectInfo:\n \"With the value from this path a single result from the list of data \" +\n \"will be selected. When your list of resulst comes from 'api-url/list-of-results',\" +\n \"the value of this selection path will be put at the end of the url to fetch a single result \" +\n \"'api-url/list-of-results/select-value'. This is often $.identification or $.index\",\n omniconnectSearch: \"Search\",\n omniconnectSearchInfo:\n \"Initially the list of results is not loaded. The user needs to \" +\n \"input a search term and results will be displayed based an that search. This input \" +\n \"defines the property in the results that the user can search on, \" +\n \"for instance enter 'name' to allow the user to search for names.\",\n\n //Conditional Rendering\n action: \"Action | Actions\",\n newAction: \"New action\",\n selectAction: \"Select action\",\n condition: \"Condition | Conditions\",\n addCondition: \"Add condition\",\n conditionsIncomplete: \"Conditions are incomplete\",\n show: \"Show\",\n hide: \"Hide\",\n disable: \"Disable\",\n makeRequired: \"Required\",\n description: \"Description\",\n source: \"Source\",\n comparator: \"Comparator\",\n eq: \"is equal to\",\n ne: \"is not equal to\",\n gt: \"is greater than\",\n ge: \"is greater than or equal to\",\n lt: \"is less than\",\n le: \"is less than or equal to\",\n valueType: \"Value Type\",\n value: \"Value\",\n selectComparator: \"Select comparator\",\n selectPath: \"Select path\",\n selectPathCompare: \"Select path to compare with\",\n selectedOwnPath: \"Can't compare with self, select a differen path\",\n enterValue: \"Enter value to compare with\",\n addConditions: \"Add at least {n} condition | Add at least {n} conditions\",\n relative: \"Relative\",\n specific: \"Specific\",\n difference: \"Difference\",\n differenceInfo: \"Enter a negative number to look at dates in the past.\",\n leaveDateEmpty:\n \"Leave empty to use the current date when the instance is viewed.\",\n compareDate: \"Date to compare with\",\n businessDays: \"Only count business days\",\n dateCompareInfo:\n \"When comparing dates, we are checking the difference \" +\n \"between 2 dates against a provided difference.
\" +\n \"Source 1 is a variable date provided in the data of the schema.
\" +\n \"Source 2b> is either the current date, or a provided static date.

\" +\n \"Examples
\" +\n \"Check if the date is today.
\" +\n \"Source 1 == Difference: 0

\" +\n \"Check if the date is in the future.
\" +\n \"Source 1 > Difference: 0

\" +\n \"Check if the date is 2 or more days ago
\" +\n \"Source 1 <= Difference: -2\",\n\n noFutureDates: \"After\",\n noPastDates: \"Before\",\n dateLimits: \"Date limitations\",\n limitDateInfo:\n \"Limit the date range a user can select. You will have to specify an orientation (past or future dates) and a reference date which can be today (dynamic), another date item in the schema or a custom date.\",\n limitDate: \"Set date picker limitations\",\n today: \"Today\",\n customDate: \"Custom date\",\n orientation: \"Time orientation\",\n limitOrientation: \"Orientation\",\n dateReference: \"Date reference\",\n pickDate: \"Pick a date\",\n\n checkPresenceHelp1:\n \"By selecting this, the exported value will be a boolean that is true if data is present and false otherwise.\",\n checkPresenceHelp2:\n \"It can be used when certain data properties want to be hidden from the export destination still informing whether they are present or not.\",\n\n deselectCheckPresence:\n \"Deselect Check presence to be able to edit data type\",\n\n updateRate: \"Update rate\",\n\n updateRates: {\n everyMinute: \"Every minute\",\n fiveMinutes: \"Every 5 minutes\",\n fifteenMinutes: \"Every 15 minutes\",\n thirtyMinutes: \"Every 30 minutes\",\n hourly: \"Every hour\",\n fourHours: \"Every 4 hours\",\n eightHours: \"Every 8 hours\",\n daily: \"Daily\",\n },\n\n exportDestinations: \"Export destinations\",\n exportLocations: \"Export locations\",\n exportFullContent: \"Export full content\",\n },\n\n //Security\n security: {\n path: \"path\",\n copy: \"Copy read rules | Copy own organisation context | Copy mandate organisation context\",\n read: \"Read\",\n write: \"Write\",\n select: \"Select\",\n context: \"Context\",\n application: \"Application\",\n own: \"Own\",\n mandate: \"Mandate organisations\",\n roleSet: \"Role set\",\n inherited: \"Security settings inherited from the parent\",\n selectRoles: \"Select roles\",\n allowAll: \"Allow all\",\n name: \"Name\",\n rules: \"Rules\",\n rule: \"Rule\",\n allow: \"ALLOW\",\n deny: \"DENY\",\n actions: \"Actions\",\n view: \"View\",\n start: \"Start\",\n cancel: \"Cancel\",\n finish: \"Finish\",\n create: \"Create\",\n all: \"All\",\n personalContext: \"Personal context\",\n organisationContext: \"Organisation context\",\n applicationContext: \"Application context\",\n\n securityRule: \"Security rule\",\n copyRule: \"Copy the rule and paste it as the last one\",\n copyType: \"Copy all the rules from {action1} to {action2}\",\n orderMatters:\n \"Start with the most detailed rule and end with the most general one\",\n noInstanceSecurity: \"No instance security rules added yet\",\n noInstanceSecurityTooltip:\n \"When there are no instance security rules specified, all users can {action} the instance. Content and process security rules remain independent\",\n saveAlert:\n \"Make sure to set all types of security context in order to create a valid rule\",\n allAllowed: \"All allowed\",\n\n noContentSecurity: \"No content security rules added yet\",\n noContentSecurityTooltip:\n \"When there are no content security rules specified, all users can {action} it. Instance and process security rules remain independent\",\n },\n\n //RRules\n rrule: {\n frequency: \"Frequency\",\n count: \"Count\",\n yearly: \"Yearly\",\n monthly: \"Monthly\",\n weekly: \"Weekly\",\n daily: \"Daily\",\n hourly: \"Hourly\",\n minutely: \"Minutely\",\n secondly: \"Secondly\",\n interval: \"Interval\",\n delay: \"Delay\",\n inSeconds: \"in seconds\",\n restriction: \"Restriction\",\n onlyWeekDays: \"Only on week days\",\n onlyWeekends: \"Only on weekends\",\n after: \"after\",\n every: \"Every\",\n for: \"For\",\n times: \"Times\",\n and: \"And\",\n execute: \"Execute\",\n seconds: \"seconds\",\n minutes: \"minutes\",\n hours: \"hours\",\n second: \"second | {n} seconds\",\n minute: \"minute | {n} minutes\",\n hour: \"hour | {n} hours\",\n day: \"day | {n} days\",\n week: \"week | {n} weeks\",\n month: \"month | {n} months\",\n year: \"year | {n} years\",\n },\n\n //securityToText Util\n securityToText: {\n all: \"All\",\n\n view: \"View\",\n start: \"Start\",\n cancel: \"Cancel\",\n finish: \"Finish\",\n create: \"Create\",\n select: \"Select\",\n read: \"Read\",\n get: \"Get\",\n\n actions: \"Actions\",\n\n own: \"own\",\n mandate: \"mandate\",\n\n personalContext: \"Personal context\",\n organisationContext: \"Organisation context\",\n applicationContext: \"Application context\",\n\n denySingular: \"is denied for \",\n denyPlural: \"are denied for \",\n allowSingular: \"is allowed for \",\n allowPlural: \"are allowed for \",\n\n theFollowing: \"the following \",\n in: \"in \",\n and: \"and\",\n or: \" or \",\n\n role: \"Role | Roles\",\n\n nobody: \"Nobody\",\n everybody: \"Everybody\",\n\n unknown: \"unknown role\",\n\n users: \"users \",\n applicationRole: \"with application role \",\n whichAreRelated: \"which are related \",\n withTheir: \"with their \",\n as: \"as \",\n ownOrganisation: \"own organisation \",\n mandate_context_roles: \"mandate organisation \",\n user_context_roles: \"user context \",\n\n toTheInstance: \" to the instance in question\",\n },\n newSecurityToText: {\n allAllowed: \"Every user can {action} an instance.\",\n noneAllowed: \"No user can {action} an instance.\",\n someAllowed:\n \"User can {action} an instance if they meet all following criteria: \",\n specify: \"Specify all remaining criteria to create a valid rule.\",\n application_roles: \"they have application role of\",\n mandate_context_roles:\n \"their mandate organisation is related to the instance as\",\n own_context_roles: \"their own organisation is related to the instance as\",\n user_context_roles: \"they are related to the instance as\",\n },\n};\n\nexport default Object.assign(\n Object.assign(messages, ElementLanguage),\n omnischemaMessages\n);\n","import Vue from \"vue\";\nimport VueI18n from \"vue-i18n\";\nimport nl from \"../assets/languages/nl\";\nimport en from \"../assets/languages/en\";\n\nVue.use(VueI18n);\nexport const i18n = new VueI18n({\n locale: \"nl\",\n fallbackLocale: \"nl\",\n messages: {\n nl: nl,\n en: en,\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.$mq,attrs:{\"id\":\"app\"}},[_c('router-view',{key:_vm.$route.path})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=71192b9e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=71192b9e&prod&lang=css\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=71192b9e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/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\n/**\n * Checks if browser is a Internet Explorer, if it is redirect to error message\n * @returns {boolean}\n */\nfunction isBrowserIE(next) {\n if (\n navigator &&\n navigator.userAgent &&\n typeof navigator.userAgent === \"string\"\n ) {\n const userAgentString = navigator.userAgent;\n\n const IExplorer =\n userAgentString.indexOf(\"MSIE\") > -1 ||\n !(\n userAgentString.indexOf(\"Safari\") > -1 ||\n userAgentString.indexOf(\"Chrome\") > -1 ||\n userAgentString.indexOf(\"Firefox\") > -1\n );\n\n if (IExplorer) {\n next({ name: \"Error\", params: { code: 404, internetExplorer: true } });\n }\n return IExplorer;\n }\n}\n\n/**\n * Validates if the tenant id parameter in the to contains a valid tenant id.\n *\n * @param to\n * @param from\n * @param next\n * @return {Promise}\n */\nexport async function validTenantGuard(to, _from, next) {\n if (!isBrowserIE(next)) {\n try {\n if (to.params.invitationKey) {\n sessionStorage.setItem(\"invitationKey\", to.params.invitationKey);\n }\n if (to.query) {\n for (const [key, value] of Object.entries(to.query)) {\n sessionStorage.setItem(key, value);\n }\n }\n\n await fetchDomain();\n next();\n } catch (error) {\n // On error of tenant validation, navigate to error page\n console.error(error);\n next(\"/\");\n }\n }\n}\n\n/**\n *\n * @param to\n * @param from\n * @param next\n * @return {Promise}\n */\nexport async function landingPageGuard(to, _from, next) {\n if (!isBrowserIE(next)) {\n // Check if a tenant id is known in localstorage, else show error page\n const tenantId = process.env.VUE_APP_TENANT_IDENTIFICATION;\n\n if (tenantId === \"\") {\n await this.$router.push({\n name: \"Error\",\n params: {\n code: 400,\n errorMessage:\n \"The needs to be replaced \\n by the tenant-id known to Omnimap.\",\n },\n });\n } else if (tenantId) {\n if (to.query) {\n for (const [key, value] of Object.entries(to.query)) {\n sessionStorage.setItem(key, value);\n }\n }\n next();\n } else {\n await fetchDomain();\n next(\"/403\");\n }\n }\n}\n\nexport async function organisationGuard(_to, from, next) {\n if (!isBrowserIE(next)) {\n if (from.name === null) {\n next({ path: \"/landingPage\" });\n }\n\n // Check if a tenant id is known in localstorage, else show error page\n const tenantId = process.env.VUE_APP_TENANT_IDENTIFICATION;\n\n if (tenantId) {\n if (\n store &&\n Object.keys(store.getters[\"userOrganisations\"]).length === 0\n ) {\n next({\n name: \"GoTo\",\n });\n } else {\n next();\n }\n } else {\n await fetchDomain();\n next(\"/\");\n }\n }\n}\n\nexport async function userGuard(to, from, next) {\n if (!isBrowserIE(next)) {\n if (from.name === null) {\n // Check for existing tenant id\n await fetchDomain();\n if (process.env.VUE_APP_TENANT_IDENTIFICATION) {\n if (to.query) {\n for (const [key, value] of Object.entries(to.query)) {\n sessionStorage.setItem(key, value);\n }\n }\n next({\n name: \"GoTo\",\n });\n } else {\n // If no tenant found, go to error\n await fetchDomain();\n next(\"/\");\n }\n } else {\n next();\n }\n }\n}\n\nasync function fetchDomain() {\n let currentOrigin = window.location.origin;\n if (currentOrigin.lastIndexOf(\"/\") !== currentOrigin.length - 1) {\n currentOrigin += \"/\";\n }\n const storedDomain = sessionStorage.getItem(\"vanityDomain\");\n\n // Only make call to fetch domains if we know it exists or origin isnt the same as host\n try {\n if (storedDomain) {\n await store._actions[\"tenantStore/fetchTenantDataByDomain\"][0](\n storedDomain\n );\n } else if (currentOrigin !== process.env.VUE_APP_HOST) {\n await store._actions[\"tenantStore/fetchTenantDataByDomain\"][0](\n currentOrigin\n );\n }\n } catch (e) {\n console.error(\"ERROR\", e);\n }\n}\n\nexport async function domainGuard(to, _from, next) {\n if (to.query) {\n for (const [key, value] of Object.entries(to.query)) {\n sessionStorage.setItem(key, value);\n }\n }\n next({ name: \"GoTo\" });\n}\n","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport {\n validTenantGuard,\n userGuard,\n landingPageGuard,\n organisationGuard,\n} from \"@/guards\";\nimport { RoutesTitles, Breadcrumbs } from \"@/utils/GeneralConstants\";\n\nVue.use(Router);\n\nexport default new Router({\n mode: \"history\",\n linkActiveClass: \"active\", // active class for non-exact links.\n linkExactActiveClass: \"exact-active\", // active class for *exact* links.\n base: process.env.BASE_URL,\n scrollBehavior() {\n const el = document.getElementById(\"app\");\n el.scrollTo(0, 0);\n },\n routes: [\n /* [START]: General */\n {\n path: \"/\",\n name: \"GoTo\",\n component: () =>\n import(/* webpackChunkName: \"login\" */ \"@/views/GoTo.vue\"),\n beforeEnter: validTenantGuard,\n },\n {\n path: \"/landingPage\",\n name: \"LandingPage\",\n component: () =>\n import(/* webpackChunkName: \"landingpage\" */ \"@/views/LandingPage.vue\"),\n beforeEnter: landingPageGuard,\n },\n {\n path: \"/organisationSelect\",\n name: \"OrganisationSelect\",\n component: () =>\n import(\n /* webpackChunkName: \"organisations\" */ \"@/views/OrganisationSelect.vue\"\n ),\n beforeEnter: organisationGuard,\n meta: { title: RoutesTitles.ORGANISATIES },\n },\n {\n path: \"/auth/silentRenew\",\n name: \"SilentRenew\",\n component: () =>\n import(/* webpackChunkName: \"silentrenew\" */ \"@/views/SilentRenew.vue\"),\n },\n {\n path: \"/invite/:invitationKey\",\n name: \"NewUserLogin\",\n component: () =>\n import(/* webpackChunkName: \"newuser\" */ \"@/views/GoTo.vue\"),\n beforeEnter: validTenantGuard,\n },\n /* [END]: General */\n\n /* [START]: Dashboard */\n {\n path: \"/dashboard\",\n name: \"Dashboard\",\n component: () =>\n import(/* webpackChunkName: \"dashboard\" */ \"@/views/Dashboard.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.DASHBOARD,\n breadcrumb: Breadcrumbs.DASHBOARD,\n },\n },\n /* [END]: Dashboard */\n\n /* [START]: Mijn sollicitaties */\n {\n path: \"/dashboard/sollicitaties/:instanceId/details/:candidateId/actie/:actionId\",\n name: \"SollicitatieDetailsActie\",\n component: () =>\n import(/* webpackChunkName: \"Sollicitaties\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.SOLLICITATIE_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/sollicitaties/:instanceId/details/:candidateId\",\n name: \"SollicitatieDetails\",\n component: () =>\n import(/* webpackChunkName: \"Sollicitaties\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.SOLLICITATIE_DETAILS,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/sollicitaties\",\n name: \"Sollicitaties\",\n component: () =>\n import(/* webpackChunkName: \"Sollicitaties\" */ \"@/views/Sollicitaties\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_SOLLICITATIES,\n breadcrumb: Breadcrumbs.MIJN_SOLLICITATIES,\n },\n },\n /* [END]: Mijn sollicitaties */\n\n /* [START]: Mijn Werving & Selectie */\n /* [START]: Mijn Werving & Selectie -> Mijn Aanvragen */\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/kandidaat/:candidateId/actie/:actionId\",\n name: \"KandidaatActie\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/kandidaat/:candidateId/:tab\",\n name: \"KandidaatActies\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/kandidaat/:candidateId\",\n name: \"Kandidaat\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/actie/:actionId\",\n name: \"Actie\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/tab/:tab/bulkactie/:actionId\",\n name: \"Bulkactie\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.BULKACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId/tab/:tab\",\n name: \"AanvraagTab\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen/:instanceId\",\n name: \"Aanvraag\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/aanvragen\",\n name: \"Aanvragen\",\n component: () =>\n import(/* webpackChunkName: \"aanvragen\" */ \"@/views/Aanvragen.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_AANVRAGEN,\n breadcrumb: Breadcrumbs.AANVRAGEN,\n },\n },\n /* [END]: Mijn Werving & Selectie -> Mijn Aanvragen */\n\n /* [START]: Mijn Werving & Selectie -> Mijn Acties */\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/kandidaat/:candidateId/actie/:actionId\",\n name: \"ActiesAanvraagKandidaatActie\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/kandidaat/:candidateId/:tab\",\n name: \"ActiesAanvraagKandidaatActies\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/kandidaat/:candidateId\",\n name: \"ActiesAanvraagKandidaat\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/bulkactie/:actionId\",\n name: \"ActiesAanvraagBulkactie\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.BULKACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/actie/:actionId\",\n name: \"ActiesAanvraagActie\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId/tab/:tab\",\n name: \"ActiesAanvraagTab\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties/:instanceId\",\n name: \"ActiesAanvraag\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/wervingselectie/acties\",\n name: \"Acties\",\n component: () =>\n import(/* webpackChunkName: \"acties\" */ \"@/views/Acties.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_ACTIES,\n breadcrumb: Breadcrumbs.MIJN_ACTIES,\n },\n },\n /* [END]: Mijn Werving & Selectie -> Mijn Acties */\n\n {\n path: \"/dashboard/wervingselectie/nieuweaanvraag\",\n name: \"NieuweAanvraag\",\n component: () =>\n import(\n /* webpackChunkName: \"nieuweaanvraag\" */ \"@/views/NieuweAanvraag.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.NIEUWE_AANVRAAG,\n breadcrumb: Breadcrumbs.NIEUWE_AANVRAAG,\n },\n },\n {\n path: \"/dashboard/wervingselectie\",\n name: \"WervingSelectie\",\n component: () =>\n import(\n /* webpackChunkName: \"WervingSelectie\" */ \"@/views/WervingSelectie.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_WS,\n breadcrumb: Breadcrumbs.MIJN_WS,\n },\n },\n /* [END]: Mijn Werving & Selectie */\n\n /* [START]: Profiel */\n {\n path: \"/dashboard/profiel/:instanceId/actie/:actionId/source/:source\",\n name: \"ProfielActie\",\n component: () =>\n import(/* webpackChunkName: \"profiel\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.PROFIEL_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/profiel/jobalert\",\n name: \"JobAlert\",\n component: () =>\n import(/* webpackChunkName: \"profiel\" */ \"@/views/JobAlert.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.JOB_ALERTS,\n breadcrumb: Breadcrumbs.JOB_ALERTS,\n },\n },\n {\n path: \"/dashboard/profiel\",\n name: \"Profiel\",\n component: () =>\n import(/* webpackChunkName: \"profiel\" */ \"@/views/Profiel.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_PROFIEL,\n breadcrumb: Breadcrumbs.MIJN_PROFIEL,\n },\n },\n {\n path: \"/dashboard/profiel/vacatures\",\n name: \"Recommendations\",\n component: () =>\n import(/* webpackChunkName: \"profiel\" */ \"@/views/Recommendations.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.AANBEVOLEN_VACATURES,\n breadcrumb: Breadcrumbs.AANBEVOLEN_VACATURES,\n },\n },\n /* [END]: Profiel */\n\n /* [START]: Recruitment */\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/kandidaat/:candidateId/actie/:actionId\",\n name: \"RecruitmentKandidaatActie\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_KANDIDAAT_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/kandidaat/:candidateId/:tab\",\n name: \"RecruitmentKandidaatActies\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/kandidaat/:candidateId\",\n name: \"RecruitmentKandidaat\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/actie/:actionId\",\n name: \"RecruitmentAanvraagActie\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_AANVRAAG_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/tab/:tab/bulkactie/:actionId\",\n name: \"RecruitmentAanvraagBulkactie\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_BULKACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId/tab/:tab\",\n name: \"RecruitmentAanvraagTab\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen/:instanceId\",\n name: \"RecruitmentAanvraag\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_AANVRAAG,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/aanvragen\",\n name: \"RecruitmentAanvragen\",\n component: () =>\n import(\n /* webpackChunkName: \"recruitment\" */ \"@/views/RecruitmentAanvragen.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.RECRUITMENT_AANVRAGEN,\n breadcrumb: Breadcrumbs.AANVRAGEN,\n },\n },\n {\n path: \"/dashboard/recruitment/nieuwelossevacature\",\n name: \"NieuweLosseVacature\",\n component: () =>\n import(\n /* webpackChunkName: \"recruitment\" */ \"@/views/NieuweAanvraag.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.NIEUWE_LOSSE_VACATURE,\n breadcrumb: Breadcrumbs.NIEUWE_LOSSE_VACATURE,\n },\n },\n {\n path: \"/dashboard/recruitment/lossevacatures/:instanceId/actie/:actionId\",\n name: \"LosseVacatureActie\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LOSSE_VACATURE_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/lossevacatures/:instanceId/tab/:tab\",\n name: \"LosseVacatureTab\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LOSSE_VACATURE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/lossevacatures/:instanceId\",\n name: \"LosseVacature\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LOSSE_VACATURE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/lossevacatures\",\n name: \"LosseVacatures\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Aanvragen.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LOSSE_VACATURES,\n breadcrumb: Breadcrumbs.LOSSE_VACATURES,\n },\n },\n {\n path: \"/dashboard/recruitment/talentpool/:instanceId/actie/:actionId\",\n name: \"TalentpoolProfielActie\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.TALENTPOOL_PROFIEL_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/talentpool/:instanceId\",\n name: \"TalentpoolProfiel\",\n component: () =>\n import(\n /* webpackChunkName: \"recruitment\" */ \"@/views/TalentpoolProfiel.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.TALENTPOOL_PROFIEL,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/recruitment/talentpool\",\n name: \"Talentpool\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Talentpool.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.TALENTPOOL,\n breadcrumb: Breadcrumbs.TALENTPOOL,\n },\n },\n {\n path: \"/dashboard/recruitment\",\n name: \"Recruitment\",\n component: () =>\n import(/* webpackChunkName: \"recruitment\" */ \"@/views/Recruitment.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_RECRUITMENT,\n breadcrumb: Breadcrumbs.MIJN_RECRUITMENT,\n },\n },\n /* [END]: Recruitment */\n\n /* [START]: Loopbaanadvies */\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/kandidaat/:candidateId/actie/:actionId\",\n name: \"LBAVacatureKandidaatActie\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_KANDIDAAT_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/kandidaat/:candidateId/:tab\",\n name: \"LBAVacatureKandidaatActies\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/kandidaat/:candidateId\",\n name: \"LBAVacatureKandidaat\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Kandidaat.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_KANDIDAAT,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/actie/:actionId\",\n name: \"LBAVacatureActie\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_ACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/tab/:tab/bulkactie/:actionId\",\n name: \"LBAVacatureBulkactie\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_BULKACTIE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId/tab/:tab\",\n name: \"LBAVacatureTab\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_VACATURE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures/:instanceId\",\n name: \"LBAVacature\",\n component: () =>\n import(/* webpackChunkName: \"vacatures\" */ \"@/views/Aanvraag.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_VACATURE,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/vacatures\",\n name: \"Vacatures\",\n component: () =>\n import(\n /* webpackChunkName: \"vacatures\" */ \"@/views/LoopbaanadviesVacatures.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_VACATURES,\n breadcrumb: Breadcrumbs.VACATURES,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/profielen/:instanceId/actie/:actionId\",\n name: \"LBAProfielActie\",\n component: () =>\n import(/* webpackChunkName: \"profielen\" */ \"@/views/Actie.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.PROFIEL_ACTIE_LBA,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/profielen/:instanceId\",\n name: \"LBAProfiel\",\n component: () =>\n import(/* webpackChunkName: \"profielen\" */ \"@/views/Profiel.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_PROFIEL,\n breadcrumb: Breadcrumbs.DYNAMIC,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies/profielen\",\n name: \"Profielen\",\n component: () =>\n import(\n /* webpackChunkName: \"profielen\" */ \"@/views/LoopbaanadviesProfielen.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.LBA_PROFIELEN,\n breadcrumb: Breadcrumbs.PROFIELEN,\n },\n },\n {\n path: \"/dashboard/loopbaanadvies\",\n name: \"Loopbaanadvies\",\n component: () =>\n import(\n /* webpackChunkName: \"loopbaanadvies\" */ \"@/views/Loopbaanadvies.vue\"\n ),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.MIJN_LBA,\n breadcrumb: Breadcrumbs.MIJN_LBA,\n },\n },\n /* [END]: Loopbaanadvies */\n\n {\n path: \"/dashboard/database\",\n name: \"Database\",\n component: () =>\n import(/* webpackChunkName: \"loopbaanadvies\" */ \"@/views/Matchbox.vue\"),\n beforeEnter: userGuard,\n meta: {\n title: RoutesTitles.DATABASE,\n breadcrumb: Breadcrumbs.DATABASE,\n },\n },\n\n /* [START]: Error */\n {\n path: \"/:code\",\n name: \"Error\",\n component: () =>\n import(/* webpackChunkName: \"error\" */ \"@/views/Error.vue\"),\n meta: { title: \"Fout\" },\n },\n {\n path: \"*\",\n redirect: \"/404\",\n },\n /* [END]: Error */\n ],\n});\n","import Vue from \"vue\";\nimport \"babel-polyfill\";\n\n/* Internationalization */\nimport { i18n } from \"./plugins/i18n\";\n\n/* UI Framework */\nimport Element from \"element-ui\";\nimport \"element-ui/lib/theme-chalk/index.css\";\n\nVue.use(Element, { i18n: (key, value) => i18n.t(key, value) });\n\nimport VueMq from \"vue-mq\";\nVue.use(VueMq, {\n breakpoints: {\n // default breakpoints - customize this\n sm: 575,\n md: 1024,\n lg: Infinity,\n },\n defaultBreakpoint: \"sm\", // customize this for SSR\n});\n\n// Fabric UI\nimport \"office-ui-fabric-core/dist/css/fabric.min.css\";\n\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\n\nVue.config.productionTip = false;\n\nimport OmniComponents from \"@omnimap2/ui-components\";\nimport \"@omnimap2/ui-components/dist/style.css\";\nVue.use(OmniComponents, { store, locale: i18n.locale });\n\nnew Vue({\n router,\n store,\n i18n,\n render: (h) => h(App),\n}).$mount(\"#app\");\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { validateApiSearchResponse } from \"@/utils/ApiResponseValidator\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { Query } from \"@/classes/Search\";\n\nconst SEARCH_RESOURCE = \"/search/\";\nconst EXPORT_RESOURCE = \"/search/export\";\nconst PROPERTY_RESOURCE = \"search/definitions/properties/codes/\";\nconst ROLES_FROM_RESOURCE = \"search/definitions/context/from/roles/\";\nconst ROLES_TO_RESOURCE = \"search/definitions/context/to/roles/\";\nconst STATUSES_RESOURCE = \"search/definitions/statuses\";\n\nexport class SearchServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getPropertyCodes(definitionIds, query) {\n if (!query) {\n query = \"\";\n }\n\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n const bearer = await authentication.acquireOmnimapToken();\n return this.OMNIMAP.post(PROPERTY_RESOURCE + \"?q=\" + query, body, {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getToInstancesByRole(definitionIds, roleName, searchQuery) {\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n const bearer = await authentication.acquireOmnimapToken();\n\n return this.OMNIMAP.post(\n ROLES_TO_RESOURCE + roleName + \"/?q=\" + searchQuery + \"&size=50\",\n body,\n {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getFromInstancesByRole(definitionIds, roleName, searchQuery) {\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n const bearer = await authentication.acquireOmnimapToken();\n\n return this.OMNIMAP.post(\n ROLES_FROM_RESOURCE + roleName + \"/?q=\" + searchQuery + \"&size=50\",\n body,\n {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getContentKeys(definitionIds) {\n const bearer = await authentication.acquireOmnimapToken();\n\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n return this.OMNIMAP.post(\n SEARCH_RESOURCE + \"definitions/content/keys/\",\n body,\n {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getContentValues(definitionIds, content, query) {\n const bearer = await authentication.acquireOmnimapToken();\n\n if (!query) {\n query = \"\";\n }\n\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n return this.OMNIMAP.post(\n SEARCH_RESOURCE +\n \"definitions/content/keys/\" +\n content +\n \"/values?q=\" +\n query,\n body,\n {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getAllStatuses(definitionIds) {\n const bearer = await authentication.acquireOmnimapToken();\n\n if (typeof definitionIds === \"string\") {\n definitionIds = [definitionIds];\n }\n\n const body = {\n definitions: definitionIds ? definitionIds : [],\n };\n\n return this.OMNIMAP.post(STATUSES_RESOURCE, body, {\n headers: {\n Authorization: \"Bearer \" + bearer,\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getRelevantStatuses(definitionId, query) {\n if (typeof definitionId === \"string\") {\n definitionId = [definitionId];\n }\n\n const body = {\n definitions: definitionId ? definitionId : [],\n query,\n };\n\n return this.OMNIMAP.post(STATUSES_RESOURCE, body, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async postInstanceQuery(\n pageSize,\n pageNumber,\n query,\n fuzzySearch,\n searchFields,\n searchIncludes\n ) {\n if (!query) {\n throw new ServiceException(\"Geen query ontvangen\");\n }\n if (!pageNumber) {\n throw new ServiceException(\"Geen pageNumber ontvangen\");\n }\n if (!pageSize) {\n throw new ServiceException(\"Geen pageSize ontvangen\");\n }\n\n const textSearch =\n query &&\n query[\"search_query\"] &&\n typeof query.search_query === \"string\" &&\n query.search_query.trim().length > 1;\n\n if (textSearch && !searchFields) {\n searchFields = [\"NAME\", \"CONTENT\", \"IDENTIFIER\"];\n }\n\n if (textSearch && typeof fuzzySearch !== \"boolean\") {\n throw new ServiceException(\"Geen geldige text searchquery.\");\n }\n\n let includes;\n if (searchIncludes) {\n includes = searchIncludes.join(\",\");\n } else {\n includes = \"PROPERTIES,MONITORING,CONTENT,CONTEXT\";\n if (query.add_location) {\n includes += \",LOCATIONS\";\n }\n }\n\n const body = JSON.parse(JSON.stringify(query));\n\n delete body.add_location;\n delete body.search_query;\n\n if (textSearch) {\n body[\"text_search\"] = [\n {\n text_query: query.search_query,\n search_fields: searchFields,\n fuzzy: fuzzySearch,\n and_or: \"OR\",\n },\n ];\n }\n\n let sorting;\n if (body && body.sorting && body.sorting.length) {\n sorting = [...body[\"sorting\"]];\n } else {\n sorting = [{ sort_type: \"text_score\", direction: \"DESCENDING\" }];\n }\n body[\"sorting\"] = sorting;\n\n const url =\n SEARCH_RESOURCE +\n \"?page-size=\" +\n pageSize +\n \"&page-number=\" +\n pageNumber +\n \"&includes=\" +\n includes;\n\n return this.OMNIMAP.post(url, body, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getSearchResult(pageSize, pageNumber, query) {\n if (!query || !(query instanceof Query)) {\n throw new ServiceException(\"Geen query ontvangen\");\n }\n if (!pageNumber) {\n throw new ServiceException(\"Geen pageNumber ontvangen\");\n }\n if (!pageSize) {\n throw new ServiceException(\"Geen pageSize ontvangen\");\n }\n\n const url =\n SEARCH_RESOURCE +\n \"?page-size=\" +\n pageSize +\n \"&page-number=\" +\n pageNumber +\n \"&includes=\" +\n \"CONTENT,CONTEXT\";\n\n return this.OMNIMAP.post(url, query, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async export(payload, pageSize) {\n return this.OMNIMAP.post(\n EXPORT_RESOURCE + \"?includes=PROPERTIES,CONTENT&page-size=\" + pageSize,\n payload,\n {\n responseType: \"blob\",\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"omnimap_instances_export.xls\");\n document.body.appendChild(link);\n link.click();\n })\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async exportWithSettings(payload, pageSize, settings) {\n let query = `?includes=PROPERTIES,CONTENT&page-size=${pageSize}`;\n\n if (settings.date_format) {\n query += `&date-time-format=${settings.date_format}`;\n }\n\n return this.OMNIMAP.post(EXPORT_RESOURCE + query, payload, {\n responseType: \"blob\",\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"omnimap_instances_export.xls\");\n document.body.appendChild(link);\n link.click();\n })\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Function to export an Excel file including results acquired with multiple queries\n * @param payload\n * @returns {Promise>}\n */\n async exportMultiple(payload) {\n return this.OMNIMAP.post(\n EXPORT_RESOURCE + \"-multiple?includes=CONTENT\",\n payload,\n {\n responseType: \"blob\",\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"omnimap_instances_export.xls\");\n document.body.appendChild(link);\n link.click();\n })\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","/**\n * Services to create and manipulate the user.\n *\n * @file This files defines the UserServices.\n * @author Omnimap\n * @since 2020.12.30\n * @version 1\n */\n\nimport axios from \"axios\";\nimport authentication from \"../../authentication\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\n\nconst USER_PROFILE_RESOURCE = \"/security/users/profile\";\nconst USER_ORGANISATIONS_RESOURCE = \"/security/users/organisations\";\nconst REGISTRATION_RESOURCE = \"/security/users/registration\";\nconst USER_ACTIVATION_RESOURCE = \"/security/users/activate\";\nconst INVITATION_RESOURCE = \"/security/users/status?invitation-key=\";\n\nconst IDENTITY_PROVIDER = \"/security/authentication/identity_providers\";\n\nexport class UserServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getUserProfile() {\n return this.OMNIMAP.get(USER_PROFILE_RESOURCE, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async getUserOrganisations() {\n return this.OMNIMAP.get(USER_ORGANISATIONS_RESOURCE, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async checkUserRegistration() {\n return this.OMNIMAP.get(REGISTRATION_RESOURCE, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async registerUser() {\n return this.OMNIMAP.post(\n REGISTRATION_RESOURCE,\n {},\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n async checkInvitationKey(invitationKey) {\n return this.OMNIMAP.get(INVITATION_RESOURCE + invitationKey, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async getIdentityProviders() {\n return this.OMNIMAP.get(IDENTITY_PROVIDER, {})\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n\n async getIdentityProvider(identification) {\n return this.OMNIMAP.get(IDENTITY_PROVIDER + \"/\" + identification)\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async postActivateUser(invitationKey) {\n return this.OMNIMAP.post(\n USER_ACTIVATION_RESOURCE,\n {\n invitation_key: invitationKey,\n },\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n}\n","/**\n * Services to retrieve tenant related data.\n *\n * @file This files defines the TenantServices.\n * @author Omnimap\n * @since 2020.12.30\n * @version 1\n */\n\nimport axios from \"axios\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\nimport authentication from \"@/authentication\";\n\nconst TENANT = \"/security/tenants\";\nconst LOGO = \"/logos\";\nconst TYPE = \"?type=\";\n\nconst TENANT_ID = \"/\" + process.env.VUE_APP_TENANT_IDENTIFICATION;\n\nexport class TenantServices {\n /**\n * Construct axios\n * @param organisationId: The unique identification of the organisation\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n /**\n * Set the organisation identification\n * @param organisationId: The unique identification of the organisation\n */\n setOrganisation(organisationId) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisationId;\n }\n\n /**\n * Retrieve the information of the tenant\n * @url {base}/security/tenants/{tenantId}\n * @returns {Promise>}\n */\n async get() {\n return this.OMNIMAP.get(TENANT + TENANT_ID, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Retrieve the logo of the tenant\n * @url {base}/security/tenants/logos/{tenantId}\n * @param type\n * @returns {Promise>}\n */\n async getLogo(type) {\n return this.OMNIMAP.get(TENANT + LOGO + TENANT_ID + TYPE + type, {\n responseType: \"blob\",\n headers: {},\n }).then((response) => validateApiOkResponse(response));\n }\n}\n","import axios from \"axios\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\nconst DOMAIN_RESOURCE = \"security/tenants/domain\";\n\nexport class DomainServices {\n constructor() {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n });\n }\n\n async retrieveTenantByDomain(domain) {\n return this.OMNIMAP.post(DOMAIN_RESOURCE, domain)\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n console.error(error);\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { TenantServices } from \"@/services/security/TenantServices\";\nimport { DomainServices } from \"@/services/DomainServices\";\n\nconst state = {\n tenantServices: null,\n domainServices: null,\n\n tenant: null,\n redirectURL: null,\n};\n\nconst getters = {\n tenantServices: (state) => state.tenantServices,\n domainServices: (state) => state.domainServices,\n\n tenant: (state) => state.tenant,\n redirectURL: (state) => state.redirectURL,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the TenantServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getTenantServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.tenantServices) {\n commit(\n \"SET_TENANT_SERVICES\",\n new TenantServices(rootGetters.organisationId)\n );\n }\n\n return getters.tenantServices;\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n getDomainServices: async ({ getters, commit }) => {\n try {\n if (null === getters.domainServices) {\n commit(\"SET_DOMAIN_SERVICES\", new DomainServices());\n }\n\n return getters.domainServices;\n } catch (error) {\n throw new StoreException(\"retrieveDomainServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateTenantServices: ({ getters, rootGetters }) => {\n try {\n const tenantServices = getters.tenantServices;\n if (tenantServices) {\n tenantServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Function which fetches the tenant, and commits it to the store.\n *\n * @param getters\n * @param commit\n * @param dispatch\n * @return {Promise}\n */\n getTenant: async ({ commit, dispatch }) => {\n try {\n const tenantServices = await dispatch(\"getTenantServices\");\n\n commit(\"SET_TENANT\", await tenantServices.get());\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Fetches tenant data based on domain\n * @param commit\n * @param dispatch\n * @param domain\n * @returns {Promise}\n */\n fetchTenantDataByDomain: async ({ commit, dispatch }, domain) => {\n if (!domain) {\n throw new StoreException(\"Domain name is missing\");\n }\n try {\n const payload = {\n domain: domain,\n };\n\n const domainServices = await dispatch(\"getDomainServices\");\n\n const tenantData = await domainServices.retrieveTenantByDomain(payload);\n // set tenant id and url in storage and store\n if (tenantData) {\n if (tenantData.identification) {\n sessionStorage.setItem(\"tenantId\", tenantData.identification);\n dispatch(\"setTenantId\", tenantData.identification, { root: true });\n }\n if (\n tenantData.vanity_domains &&\n Array.isArray(tenantData.vanity_domains)\n ) {\n tenantData.vanity_domains.forEach((vanityDomain) => {\n if (vanityDomain.domain_name === domain) {\n commit(\"SET_REDIRECT_URL\", vanityDomain.domain_name);\n sessionStorage.setItem(\"vanityDomain\", vanityDomain.domain_name);\n }\n });\n }\n }\n return tenantData;\n } catch (error) {\n throw new StoreException(\n \"Error retrieving tenant data based on domain: \" + error.message\n );\n }\n },\n};\n\nconst mutations = {\n SET_TENANT_SERVICES: (state, payload) =>\n Vue.set(state, \"tenantServices\", payload),\n SET_DOMAIN_SERVICES: (state, payload) =>\n Vue.set(state, \"domainServices\", payload),\n\n SET_TENANT: (state, payload) => Vue.set(state, \"tenant\", payload),\n SET_REDIRECT_URL: (state, payload) => Vue.set(state, \"redirectURL\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","/**\n * Services to manipulate existing instance definitions.\n *\n * @file This files defines the InstanceDefinitionServices.\n * @author Omnimap\n * @since 2020.12.30\n * @version 1\n */\n\nimport axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\nimport { Identifications, ActionType } from \"../utils/GeneralConstants\";\n\nconst INSTANCE_RESOURCE = \"/definitions/instance-definitions/\";\nconst PERMISSIONS_PARAM = \"?permissions=\";\nconst PAGE_NUMBER_PARAM = \"&page-number=\";\nconst PAGE_SIZE_PARAM = \"&page-size=\";\n\nexport class InstanceDefinitionServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n /**\n * Sets the organisation (more information welcome)\n * @param organisation\n */\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n /**\n * Fetches full instance definition based on the instance definition ID\n * @param instanceDefinitionId\n * @returns {Promise<*>}\n */\n async getInstanceDefinition(instanceDefinitionId) {\n // Input validation – is provided instance definition ID correct?\n if (!Object.values(Identifications).includes(instanceDefinitionId)) {\n throw new ServiceException(\"Invalid instance identification\");\n }\n return this.OMNIMAP.get(INSTANCE_RESOURCE + instanceDefinitionId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n\n /**\n * Gets a list of actions of a given type that a user is able to perform\n * @param action\n * @param pageNumber\n * @param pageSize\n * @returns {Promise<*>}\n */\n async checkPermissionsForActionType({ action, pageNumber, pageSize }) {\n // Input validation – is provided permissions type correct?\n if (!Object.values(ActionType).includes(action)) {\n throw new ServiceException(\"Invalid permissions type\");\n }\n // Input validation – are provided page number and page size correct?\n if (typeof pageNumber !== \"number\" || typeof pageSize !== \"number\") {\n throw new ServiceException(\"Invalid page number or page size\");\n }\n return this.OMNIMAP.get(\n INSTANCE_RESOURCE +\n PERMISSIONS_PARAM +\n action +\n PAGE_NUMBER_PARAM +\n pageNumber +\n PAGE_SIZE_PARAM +\n pageSize,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { InstanceDefinitionServices } from \"@/services/InstanceDefinitionServices\";\nimport { Identifications } from \"../utils/GeneralConstants\";\n\nconst state = {\n instanceDefinitionServices: null,\n};\n\nconst getters = {\n instanceDefinitionServices: (state) => state.instanceDefinitionServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the InstanceDefinitionServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getInstanceDefinitionServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.instanceDefinitionServices) {\n commit(\n \"SET_INSTANCE_DEFINITION_SERVICES\",\n new InstanceDefinitionServices(rootGetters.organisationId)\n );\n }\n\n return getters.instanceDefinitionServices;\n } catch (error) {\n throw new StoreException(\"retrieveTenantServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateInstanceDefinitionServices: ({ getters, rootGetters }) => {\n try {\n const instanceDefinitionServices = getters.instanceDefinitionServices;\n if (instanceDefinitionServices) {\n instanceDefinitionServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Fetches full instance definition based on the instance definition ID\n * @param dispatch\n * @param instanceDefinitionId\n * @returns {Promise<*>}\n */\n getInstanceDefinition: async ({ dispatch }, instanceDefinitionId) => {\n // Input validation – is provided instance definition ID correct?\n if (!Object.values(Identifications).includes(instanceDefinitionId)) {\n throw new StoreException(\"Invalid instance identification\");\n }\n try {\n const instanceDefinitionServices = await dispatch(\n \"getInstanceDefinitionServices\"\n );\n return await instanceDefinitionServices.getInstanceDefinition(\n instanceDefinitionId\n );\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_INSTANCE_DEFINITION_SERVICES: (state, payload) =>\n Vue.set(state, \"instanceDefinitionServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport {\n validateApiOkResponse,\n validateApiSearchResponse,\n} from \"@/utils/ApiResponseValidator\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\n\nconst INSTANCE_IDENTIFICATION = \"?instance_identification=\";\nconst ACTIVITY_INPUT_DATA = \"/activity/inputdata\";\nconst ACTIVITY_DEFINITIONS = \"/activity-definitions\";\nconst GENERIC_INSTANCES = \"/generic/instances\";\nconst CONCEPT_RESOURCE = \"/generic/instance-concepts\";\nconst FINALISE_CONCEPT = \"/finalise\";\nconst INSTANCES = \"/instances\";\nconst CONTEXT = \"/context\";\nconst STATUS = \"/status\";\nconst FLOW = \"/flow\";\nconst V2 = \"/v2/\";\n\nexport class GenericInstanceServices {\n /**\n * Constructs axios\n * @param organisationId: The unique identification of the organisation\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n /**\n * Sets the organisation identification\n * @param organisationId: The unique identification of the organisation\n */\n setOrganisation(organisationId) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisationId;\n }\n\n /**\n * Gets the instance data using provided instance ID\n * @url {base}/generic/instances/{identification}\n * @param identificationId: The unique identification of the instance.\n * @returns {Promise>}\n */\n async getGenericInstance(identificationId) {\n return this.OMNIMAP.get(GENERIC_INSTANCES + \"/\" + identificationId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiSearchResponse(response));\n }\n\n /**\n * Creates a new instance\n * @url {base}/generic/instances\n * @param newInstanceData\n * @returns {Promise>}\n */\n async postGenericInstance(newInstanceData) {\n return this.OMNIMAP.post(GENERIC_INSTANCES, newInstanceData, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async createConcept(concept) {\n return this.OMNIMAP.post(CONCEPT_RESOURCE + V2, concept, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async finaliseConcept(conceptId) {\n return this.OMNIMAP.post(\n CONCEPT_RESOURCE + \"/\" + conceptId + FINALISE_CONCEPT,\n {},\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Updates an instance identified with provided instance ID\n * @url {base}/generic/instances/{identification}\n * @returns {Promise>}\n * @param identification\n * @param content\n */\n async patchGenericInstance(identification, content) {\n return this.OMNIMAP.patch(\n GENERIC_INSTANCES + \"/v2/\" + identification + \"?validate=false\",\n content,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => {\n validateApiOkResponse(response);\n });\n }\n\n /**\n * Sets the status of a given instance\n * @param identificationId\n * @param input\n * @returns {Promise<*>}\n */\n async setStatus(identificationId, input) {\n return this.OMNIMAP.post(\n GENERIC_INSTANCES + \"/\" + identificationId + STATUS,\n input,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Retrieves the list of contexts from the given instance.\n * @param instanceIdentification\n * @param pageNumber\n * @returns {Promise<*>}\n */\n async getInstanceContextPage(instanceIdentification, pageNumber) {\n if (!IdUtils.isUUID(instanceIdentification)) {\n throw new ServiceException(\n \"Invalid instance identification to retrieve context\"\n );\n }\n\n return this.OMNIMAP.get(\n GENERIC_INSTANCES +\n V2 +\n instanceIdentification +\n CONTEXT +\n \"?page-size=\" +\n process.env.VUE_APP_CONTEXT_PAGE_SIZE +\n \"&page-number=\" +\n pageNumber,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Gets the context of a given instance\n * @param instanceIdentification\n * @returns {Promise<*[]>}\n */\n async getInstanceContext(instanceIdentification) {\n let result = [];\n let meta = { current_page: 0 };\n\n do {\n meta.current_page += 1;\n const response = await this.getInstanceContextPage(\n instanceIdentification,\n meta.current_page\n );\n meta = response.meta;\n if (response && response.data) {\n result = result.concat(response.data);\n }\n } while (meta.total_pages && meta.total_pages > meta.current_page);\n\n return result;\n }\n\n /**\n * Get the schema of an activity\n * @param activityDefinitionId\n * @returns {Promise}\n */\n async getActivitySchema(instanceId, activityDefinitionId) {\n return this.OMNIMAP.get(\n \"/instances/\" +\n instanceId +\n FLOW +\n ACTIVITY_DEFINITIONS +\n \"/\" +\n activityDefinitionId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Gets bulk actions available for supplied instances\n * @param instanceIds (identifications of instances on which you want to perform the bulk action)\n * @returns {Promise}\n */\n async getBulkActions(instanceIds) {\n return this.OMNIMAP.get(\n INSTANCES + FLOW + INSTANCE_IDENTIFICATION + instanceIds.join(\",\"),\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Prepares a bulk action for the execution\n * @param stageId (action.definition.identification)\n * @param instanceIds (identifications of instances on which you perform the bulk action)\n * @param body (JSONData of the action)\n * @returns {Promise<*>}\n */\n async prepareBulkAction(stageId, instanceIds, body) {\n return this.OMNIMAP.post(\n INSTANCES +\n FLOW +\n \"/\" +\n stageId +\n ACTIVITY_INPUT_DATA +\n INSTANCE_IDENTIFICATION +\n instanceIds.join(\",\"),\n body,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Executes a bulk action\n * @param stageId\n * @param activityType\n * @param instanceIds\n * @param body\n * @returns {Promise<*>}\n */\n async executeBulkAction(stageId, activityType, instanceIds, body) {\n return this.OMNIMAP.post(\n INSTANCES +\n FLOW +\n \"/\" +\n stageId +\n \"/\" +\n activityType +\n INSTANCE_IDENTIFICATION +\n instanceIds.join(\",\"),\n body,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { GenericInstanceServices } from \"@/services/GenericInstanceServices\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nconst state = {\n genericInstanceServices: null,\n contextServices: null,\n};\n\nconst getters = {\n genericInstanceServices: (state) => state.genericInstanceServices,\n contextServices: (state) => state.contextServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the GenericInstanceServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getGenericInstanceServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.genericInstanceServices) {\n commit(\n \"SET_GENERIC_INSTANCE_SERVICES\",\n new GenericInstanceServices(rootGetters.organisationId)\n );\n }\n\n return getters.genericInstanceServices;\n } catch (error) {\n throw new StoreException(\"getGenericInstanceServices: \" + error.message);\n }\n },\n\n /**\n * Fetches an instance based on the identification\n * @param dispatch\n * @param instanceId\n * @returns {Promise<*>}\n */\n getGenericInstance: async ({ dispatch }, instanceId) => {\n // Check if the provided instance ID is valid\n if (!IdUtils.isUUID(instanceId)) {\n console.error(\n \"No valid instance identification found. Unable to retrieve instance.\"\n );\n return;\n }\n\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await genericInstanceServices.getGenericInstance(instanceId);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Posts a new instance\n * @param dispatch\n * @param newInstanceData\n * @returns {Promise<*>}\n */\n postGenericInstance: async ({ dispatch }, newInstanceData) => {\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await genericInstanceServices.postGenericInstance(newInstanceData);\n } catch (error) {\n console.error(error);\n }\n },\n\n async createConcept({ dispatch }, concept) {\n if (!concept || !concept.hasOwnProperty(\"relationships\")) {\n throw new StoreException(\"Invalid input\");\n }\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await genericInstanceServices.createConcept(concept);\n } catch (error) {\n throw new StoreException(error.message);\n }\n },\n\n async finaliseConcept({ dispatch }, conceptId) {\n if (!conceptId || !IdUtils.isUUID(conceptId)) {\n throw new StoreException(\"Invalid input\");\n }\n\n try {\n const getGenericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await getGenericInstanceServices.finaliseConcept(conceptId);\n } catch (error) {\n throw new StoreException(error.message);\n }\n },\n\n /**\n * Patches (updates) an instance – function could be improved\n * @param dispatch\n * @param newInstanceData\n * @returns {Promise<*>}\n */\n patchGenericInstance: async ({ dispatch }, newInstanceData) => {\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await genericInstanceServices.patchGenericInstance(\n newInstanceData\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets a status of an instance\n * @param dispatch\n * @param input\n * @returns {Promise<*>}\n */\n setStatus: async ({ dispatch }, instanceData) => {\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n const { identification } = instanceData;\n if (!IdUtils.isUUID(identification)) {\n console.error(\n \"No valid instance identification found. Unable to proceed.\"\n );\n return;\n }\n\n delete instanceData.identification;\n\n return await genericInstanceServices.setStatus(\n identification,\n instanceData\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Gets the context of an instance\n * @param dispatch\n * @param instanceId\n * @returns {Promise<*>}\n */\n getInstanceContext: async ({ dispatch }, instanceId) => {\n if (IdUtils.isUUID(instanceId)) {\n try {\n const contextServices = await dispatch(\"getGenericInstanceServices\");\n\n return await contextServices.getInstanceContext(instanceId);\n } catch (e) {\n console.error(e);\n }\n } else {\n console.error(\n \"No valid instance identification found. Unable to retrieve the context.\"\n );\n }\n },\n};\n\nconst mutations = {\n SET_GENERIC_INSTANCE_SERVICES: (state, payload) =>\n Vue.set(state, \"genericInstanceServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { InstanceQuery } from \"@/classes/Search\";\nimport {\n ConfigurationCodes,\n DynamicVariables,\n ColumnTypes,\n} from \"@/utils/GeneralConstants\";\n\nconst state = {\n searchServices: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n retrieveInstances: async (\n { dispatch },\n { pageSize = 30, pageNumber = 1, query }\n ) => {\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n\n return await searchServices.postInstanceQuery(\n pageSize,\n pageNumber,\n query,\n false\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n retrieveSearchResult: async (\n { dispatch },\n { pageSize, pageNumber, query }\n ) => {\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n return await searchServices.getSearchResult(pageSize, pageNumber, query);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves all statuses associated with a certain instance definition\n * @param dispatch\n * @param definitionIds\n * @returns {Promise<{data: *, meta: *}>}\n */\n retrieveAllStatuses: async ({ dispatch }, definitionIds) => {\n const searchServices = await dispatch(\"getSearchServices\");\n\n return searchServices.getAllStatuses(definitionIds);\n },\n\n /**\n * Retrieves statuses associated with search results of supplied query\n * @param dispatch\n * @param getters\n * @param definitionIds\n * @param query\n * @returns {Promise<*[]>}\n */\n retrieveRelevantStatuses: async ({ dispatch }, { definitionId, query }) => {\n const searchServices = await dispatch(\"getSearchServices\");\n\n // If supplied query has specified statuses, replace the value with empty array\n if (query.hasOwnProperty(\"statuses\") && query.statuses.length) {\n query.statuses = [];\n }\n // If there's no response (or data in response) – return empty array\n const response = await searchServices.getRelevantStatuses(\n definitionId,\n query\n );\n if (!response || !response.hasOwnProperty(\"data\")) {\n return [];\n }\n // Add all statuses (only it's values) to result array\n const result = [];\n if (response && response.data && response.data.length) {\n for (const status of response.data) {\n result.push(status.status);\n }\n }\n\n // Return sorted result\n return result.sort();\n },\n\n retrieveContentValues: async (\n { dispatch },\n { contentKey, definitionIds, textSearch }\n ) => {\n const searchServices = await dispatch(\"getSearchServices\");\n\n return searchServices.getContentValues(\n definitionIds,\n contentKey,\n textSearch\n );\n },\n\n retrieveContextValues: async (\n { dispatch },\n { roleName, definitionIds, direction, textSearch }\n ) => {\n const searchServices = await dispatch(\"getSearchServices\");\n\n if (direction && direction === \"from\") {\n return searchServices.getFromInstancesByRole(\n definitionIds,\n roleName,\n textSearch ? textSearch : \"\"\n );\n } else {\n return searchServices.getToInstancesByRole(\n definitionIds,\n roleName,\n textSearch ? textSearch : \"\"\n );\n }\n },\n\n /**\n * Action to get a single instance from the search API.\n * @param dispatch\n * @param instanceId\n * @return {Promise<*>}\n */\n searchSingleInstance: async ({ dispatch }, instanceId) => {\n if (!IdUtils.isUUID(instanceId)) {\n throw new StoreException(\"Ongeldige identificatie ontvangen.\");\n }\n\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n const searchResult = await searchServices.getSearchResult(\n 1,\n 1,\n new InstanceQuery(instanceId)\n );\n\n if (searchResult?.meta?.total_found === 1) {\n return searchResult.data[0];\n }\n } catch (e) {\n console.error(e);\n }\n },\n\n /**\n * Export an Excel file including results of single or multiple queries\n * @param rootGetters\n * @param dispatch\n * @param params\n * @returns {Promise<*|AxiosResponse<*>>}\n */\n export: async ({ rootGetters, dispatch }, params) => {\n const searchServices = await dispatch(\"getSearchServices\");\n\n // Step 1: Setting the payload\n let payload = {};\n // Case multiple queries\n if (Array.isArray(params.query) && params.query.length) {\n const queries = [...params.query];\n\n queries.map(async (item) => {\n item = await dispatch(\"convertQueryContent\", item);\n item = await dispatch(\"setStatusTimestampsInRequest\", item);\n item = await dispatch(\"removeAndOrInQuery\", item);\n return item;\n });\n payload.queries = queries;\n // Case single query\n } else {\n payload = { ...params.query };\n payload = await dispatch(\"convertQueryContent\", payload);\n payload = await dispatch(\"setStatusTimestampsInRequest\", payload);\n payload = await dispatch(\"removeAndOrInQuery\", payload);\n }\n\n // Step 2: Setting the columns\n const columns = params.columns.map((column) => column.value);\n const identifier = columns.includes(\"identifier\");\n const identification = columns.includes(\"identification\");\n\n payload.columns = columns.map((column) => {\n let newColumn = column.split(\".\");\n newColumn = { path: newColumn.join(\"/\") };\n return newColumn;\n });\n\n if (identifier && !identification) {\n payload.columns.unshift({\n path: \"identification\",\n });\n }\n\n if (payload.queries) {\n // Further steps for multiple queries export\n return searchServices.exportMultiple(payload);\n } else {\n // Further steps for single query export\n const pageSize =\n params.size && typeof params.size === \"number\" ? params.size : 10000;\n\n const config = await dispatch(\n \"configurations/retrieveConfigurationByReference\",\n {\n code: ConfigurationCodes.EXCEL_EXPORT,\n reference: rootGetters.tenantId,\n },\n { root: true }\n );\n const settings = config && config.data ? config.data : {};\n return searchServices.exportWithSettings(payload, pageSize, settings);\n }\n },\n\n /**\n * Converts a query so it's valid for the API\n * @param dispatch\n * @param query\n * @returns {Promise}\n */\n async convertQueryContent({ dispatch }, query) {\n const newQuery = JSON.parse(JSON.stringify(query));\n\n /* If a query exist with a certain wildcard, like $CURRENT_USER_ID,\n Change this to the logged in user credentials */\n const extraContents = [];\n\n if (newQuery.hasOwnProperty(\"content\")) {\n newQuery.content = await Promise.all(\n newQuery.content.map(async (item) => {\n if (!item.hasOwnProperty(\"values\")) {\n return item;\n }\n\n //Replace any wildcard like user schema path or current user/organization with the actual content\n item = await dispatch(\"replaceWildcardsWithValueInContent\", item);\n\n const code = item.values.find(\n (value) => typeof value === \"string\" && value.startsWith(\"$DATE_\")\n );\n\n // If there is a dynamic datecode saved, get the period belonging.\n if (code) {\n if (item.datatype === \"DATERANGE\") {\n item[\"period\"] = actions.dateMapper(code);\n\n if (\n item.hasOwnProperty(\"period\") &&\n item.hasOwnProperty(\"values\")\n ) {\n delete item.values;\n }\n } else {\n // content that has a date as type.\n item[\"comparator\"] = \"GTE\";\n item[\"timestamp_value\"] = actions.dateMapper(code)[0];\n // Requires a second content entry to work.\n const extraContent = {\n and_or: item.and_or,\n datatype: item.datatype,\n key: item.key,\n comparator: \"LT\",\n timestamp_value: actions.dateMapper(code)[1],\n };\n extraContents.push(extraContent);\n }\n delete item.values;\n } else if (\n item.datatype === \"DATE\" ||\n item.datatype === \"DATE-TIME\"\n ) {\n // When there is a date typed content selected by user, but the period is not yet selected, the content only contains an\n // empty values array. However, the API needs a comparator and date to not break the layout.\n // TLDR; When the user has not yet selected a period, filter on the dates that came after 1 January 1970.\n item[\"comparator\"] = \"GTE\";\n item[\"timestamp_value\"] = new Date(1970, 1, 1);\n }\n\n // If a daterange without dates is passed. create a period with empty values\n if (\n item.datatype === \"DATERANGE\" &&\n item.hasOwnProperty(\"values\") &&\n !item.hasOwnProperty(\"period\")\n ) {\n delete item.values;\n item.period = [\"\", \"\"];\n return item;\n }\n\n return item;\n })\n );\n\n newQuery.content = newQuery.content.concat(extraContents);\n }\n return newQuery;\n },\n\n setStatusTimestampsInRequest(_context, query) {\n if (query.hasOwnProperty(\"statuses\") && query.statuses.length) {\n if (query.statuses[0].hasOwnProperty(\"value\")) {\n query.statuses.forEach((status) => {\n const dates = actions.dateMapper(status.value[0]);\n status[\"start_date\"] = dates[0];\n status[\"end_date\"] = dates[1];\n delete status.value;\n });\n }\n if (query.hasOwnProperty(\"content\") && query.content.length) {\n if (query.content.some((content) => content.key === \"status\")) {\n query.content = query.content.filter(\n (content) => content.key !== \"status\"\n );\n }\n }\n }\n return query;\n },\n\n /**\n * Checks if query has the and_or property, which is not being accepted by the API anymore.\n * When the query comes from an 'old' filter, the and_or property needs to be deleted first.\n * @param query where to search for the and_or property and delete that\n * @return Corrected query\n */\n removeAndOrInQuery(_context, query) {\n if (query.and_or) {\n delete query.and_or;\n }\n return query;\n },\n\n /**\n * Gets for a certain dynamic date code the period belonging to it.\n * @param code (a dynamic date code)\n * @returns {Date[]}\n */\n dateMapper(code) {\n const date = new Date();\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n\n const start = new Date(date);\n const end = new Date(date);\n\n if (code === \"$DATE_DAY\") {\n end.setDate(end.getDate() + 1);\n } else if (code === \"$DATE_WEEK\") {\n end.setDate(end.getDate() + 7);\n } else if (code === \"$DATE_MONTH\") {\n end.setMonth(end.getMonth() + 1);\n } else if (code === \"$DATE_3MONTHS\") {\n end.setMonth(end.getMonth() + 3);\n } else if (code === \"$DATE_YEAR\") {\n end.setFullYear(end.getFullYear() + 1);\n } else if (code === \"$DATE_LAST_DAY\") {\n start.setDate(start.getDate() - 1);\n } else if (code === \"$DATE_LAST_WEEK\") {\n start.setDate(start.getDate() - 7);\n } else if (code === \"$DATE_LAST_MONTH\") {\n start.setMonth(start.getMonth() - 1);\n } else if (code === \"$DATE_LAST_3MONTHS\") {\n start.setMonth(start.getMonth() - 3);\n } else if (code === \"$DATE_LAST_YEAR\") {\n start.setFullYear(start.getFullYear() - 1);\n }\n return [start, end];\n },\n\n /**\n * Replaces any user schema path within the 'content' property of a query with the actual value it points to\n * @param rootGetters\n * @param queryItem\n * @returns {*}\n */\n replaceWildcardsWithValueInContent: async (\n { rootGetters, dispatch },\n queryItem\n ) => {\n if (queryItem && queryItem.values) {\n const arrayOfItems = queryItem.values;\n\n //First look for and in case replace wild cards like 'Current user ID' & 'Current user Org'\n const idIndex = arrayOfItems.indexOf(DynamicVariables.CURRENT_USER_ID);\n const nameIndex = arrayOfItems.indexOf(\n DynamicVariables.CURRENT_USER_NAME\n );\n const organisationIndex = arrayOfItems.indexOf(\n DynamicVariables.CURRENT_ORGANISATION\n );\n if (idIndex !== -1) {\n arrayOfItems[idIndex] = rootGetters.userId;\n }\n if (nameIndex !== -1) {\n arrayOfItems[nameIndex] = rootGetters.userName;\n }\n if (organisationIndex !== -1) {\n arrayOfItems[organisationIndex] = rootGetters.organisationId;\n }\n\n // Then check if the query contains any user schema paths,\n const userSchemaPaths = arrayOfItems.filter(\n (value) => typeof value === \"string\" && value.startsWith(\"$.user.\")\n );\n\n const pathValuePairs = await dispatch(\n \"getContentOfUserSchemaPath\",\n userSchemaPaths\n );\n\n if (pathValuePairs && userSchemaPaths) {\n for (const pathItem of userSchemaPaths) {\n //first remove path\n const indexOfPath = arrayOfItems.indexOf(pathItem);\n arrayOfItems.splice(indexOfPath, 1);\n\n //then add corresponding value if existing\n if (\n pathValuePairs[pathItem] !== null &&\n pathValuePairs[pathItem] !== undefined &&\n pathValuePairs[pathItem] !== \"\"\n ) {\n arrayOfItems.push(pathValuePairs[pathItem]);\n }\n }\n }\n }\n return queryItem;\n },\n\n /**\n * Based on a list of user schema paths this will return an object with path & corresponding value.\n * @param rootGetters\n * @param userSchemaPaths\n * @returns {{}}\n */\n getContentOfUserSchemaPath({ rootGetters }, userSchemaPaths) {\n if (\n userSchemaPaths &&\n Array.isArray(userSchemaPaths) &&\n userSchemaPaths.length\n ) {\n const userSchemaData = rootGetters.user;\n if (userSchemaData && userSchemaData.profile) {\n return this.formatUserSchemaPathContent(\n userSchemaPaths,\n userSchemaData\n );\n }\n }\n return {};\n },\n\n formatUserSchemaPathContent(userSchemaPaths, userSchemaData) {\n // Loop through the user schema paths present in the query\n const output = {};\n let value;\n\n for (const pathItem of userSchemaPaths) {\n output[pathItem] = \"\";\n\n // Get the actual path by removing the symbol \"$\" and keyword \"user\"\n const path = pathItem.split(\".\").splice(2);\n\n // If length is 1 then value and type can be found at root level\n if (path.length === 1) {\n value = userSchemaData.profile[path[0]];\n\n // Otherwise it means that data is nested so loop through the user data till the right path is reached\n } else if (path.length > 1) {\n for (const item of path) {\n if (\n value === undefined &&\n userSchemaData.profile.hasOwnProperty(item)\n ) {\n value = userSchemaData.profile[item];\n } else if (value && value[item]) {\n value = value[item];\n } else {\n value = null;\n }\n }\n }\n output[pathItem] = value;\n }\n return output;\n },\n\n retrieveColumns: async ({ dispatch }, payload) => {\n const searchServices = await dispatch(\"getSearchServices\");\n const columns = [\n {\n label: \"General\",\n options: [\n {\n label: \"columns.identification\",\n value: \"identification\",\n type: ColumnTypes.STRING,\n },\n {\n label: \"columns.id\",\n value: \"identifier\",\n type: ColumnTypes.STRING,\n },\n {\n label: \"columns.type\",\n value: \"relationships.definition.name\",\n type: ColumnTypes.STRING,\n width: \"120px\",\n },\n {\n label: \"columns.name\",\n value: \"name\",\n type: ColumnTypes.STRING,\n },\n {\n label: \"columns.timestamp_created\",\n value: \"timestamp_created\",\n type: ColumnTypes.TIMESTAMP,\n },\n {\n label: \"columns.timestamp_any_update\",\n value: \"timestamp_any_update\",\n type: ColumnTypes.TIMESTAMP,\n },\n {\n label: \"columns.status\",\n value: \"status\",\n type: ColumnTypes.STRING,\n },\n ],\n },\n ];\n\n let response = await searchServices.getPropertyCodes(\n payload.definitionIds,\n payload.query\n );\n const properties = {\n label: \"Properties\",\n options: [],\n };\n if (response.data && Array.isArray(response.data)) {\n response.data.forEach(function (property) {\n if (\n property.hasOwnProperty(\"code\") &&\n property.hasOwnProperty(\"datatype\")\n ) {\n properties.options.push({\n value: \"propertiesList.\" + property.code + \".value\",\n label: property.code,\n type: property.datatype,\n });\n }\n });\n }\n columns.push(properties);\n\n response = await searchServices.getContentKeys(\n payload.definitionIds,\n payload.query\n );\n const content = {\n label: \"Content\",\n options: [],\n };\n if (response.data && Array.isArray(response.data)) {\n response.data.forEach(function (contentItem) {\n if (\n contentItem.hasOwnProperty(\"key\") &&\n contentItem.hasOwnProperty(\"interface_key\") &&\n contentItem.hasOwnProperty(\"datatype\")\n ) {\n content.options.push({\n value: \"content.\" + contentItem[\"key\"],\n label: contentItem[\"interface_key\"],\n datatype: contentItem.datatype,\n });\n }\n });\n }\n columns.push(content);\n return columns;\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","/**\n * Services to create and manipulate activities.\n *\n * @file This files defines the ActivityServices.\n * @author Omnimap\n * @since 2020.12.30\n * @version 1\n */\n\nimport axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\n// Base resource\nconst ACTIVITY = \"/activities\";\nconst DEFINITION = \"/definition\";\n\n// Input data definition resources\nconst INPUT_DATA = \"/inputdata\";\nconst INPUT_MAPPING = \"/inputmapping\";\nconst INPUT_MEDIA = \"/inputmedia\";\nconst OUTPUT_DATA = \"/outputdata\";\nconst OUTPUT_MAPPING = \"/outputmapping\";\nconst OUTPUT_MEDIA = \"/outputmedia\";\n\n// Mapping data resources\nconst MAP_INPUT = \"/mapinput\";\nconst MAP_OUTPUT = \"/mapoutput\";\n\n// Action resources\nconst REFRESH = \"/refresh\";\nconst SNOOZE = \"/snooze\";\nconst WAKE = \"/wake\";\n\nconst START = \"/start\";\nconst VALIDATE = \"/validate\";\nconst AWAIT_VALIDATION = \"/await-validation\";\nconst NOTIFY = \"/notify\";\n\nconst DETAILS = \"/details\";\n\nexport class ActivityServices {\n /**\n * Construct axios\n * @param organisationId: The unique identification of the organisation\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n /**\n * Set the organisation identification\n * @param organisationId: The unique identification of the organisation\n */\n setOrganisation(organisationId) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisationId;\n }\n\n /**\n * The plain registration of an activity without trying to start it.\n * No validation will be performed.\n * All available information can be provided, but this is not necessary because it is also possible to do this with individual calls to the API.\n * @url {base}/activities/{activity}\n * @param definition\n * @returns {Promise>}\n */\n async postActivity(definition) {\n return this.OMNIMAP.post(ACTIVITY, definition, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get activity based on the activity identification.\n * @url {base}/activities/{activity}\n * @param activityId: The unique identification of the activity\n * @returns {Promise>}\n */\n async getActivity(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the definition of an activity.\n * @url {base}/activities/{activity}/definition\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getActivityDefinition(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + DEFINITION, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the input data definition of an activity.\n * @url {base}/activities/{activity}/definition/inputdata\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getInputDataDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_DATA,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the input data definition of an activity.\n * @url {base}/activities/{activity}/definition/inputdata\n * @param activityId: The unique identification of the activity.\n * @param structureDefinition: The definition of the input data of the activity.\n * @returns {Promise>}\n */\n async setInputDataDefinition(activityId, structureDefinition) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_DATA,\n structureDefinition,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the input mapping definition of an activity.\n * @url {base}/activities/{activity}/definition/inputmapping\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getInputMappingDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_MAPPING,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the input mapping definition of an activity\n * @url {base}/activities/{activity}/definition/inputmapping\n * @param activityId: The unique identification of the activity.\n * @param mapping: Define the input mapping definition.\n * @returns {Promise>}\n */\n async setInputMappingDefinition(activityId, mapping) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_MAPPING,\n mapping,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the input media definition of an activity.\n * @url {base}/activities/{activity}/definition/inputmedia\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getInputMediaDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_MEDIA,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the input media definition of an activity.\n * @url {base}/activities/{activity}/definition/inputmedia\n * @param activityId: The unique identification of the activity.\n * @param mediaDefinition: The definition of the input media to add to the definition of the activity.\n * @returns {Promise>}\n */\n async setInputMediaDefinition(activityId, mediaDefinition) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + INPUT_MEDIA,\n mediaDefinition,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the output data definition of an activity.\n * @url {base}/activities/{activity}/definition/outputdata\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getOutputDataDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_DATA,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the output data definition of an activity.\n * @url {base}/activities/{activity}/definition/outputdata\n * @param activityId: The unique identification of the activity.\n * @param structureDefinition: The definition of the output data of the activity.\n * @returns {Promise>}\n */\n async setOutputDataDefinition(activityId, structureDefinition) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_DATA,\n structureDefinition,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the output mapping definition of an activity.\n * @url {base}/activities/{activity}/definition/outputmapping\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getOutputMappingDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_MAPPING,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the output mapping definition of an activity.\n * @url {base}/activities/{activity}/definition/outputmapping\n * @param activityId: The unique identification of the activity.\n * @param mapping: The definition of the output mapping of the activity.\n * @returns {Promise>}\n */\n async setOutputMappingDefinition(activityId, mapping) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_MAPPING,\n mapping,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the output media definition of an activity.\n * @url {base}/activities/{activity}/definition/outputmedia\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getOutputMediaDefinition(activityId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_MEDIA,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the output media definition of an activity.\n * @url {base}/activities/{activity}/definition/outputmedia\n * @param activityId: The unique identification of the activity.\n * @param mediaDefinition: The definition of the output media to add to the definition of the activity.\n * @returns {Promise>}\n */\n async setOutputMediaDefinition(activityId, mediaDefinition) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + DEFINITION + OUTPUT_MEDIA,\n mediaDefinition,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the available input data of an activity to be used by the mapping (if applicable).\n * @url {base}/activities/{activity}/inputdata\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getInputData(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + INPUT_DATA, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the input data to be used by the mapping (if applicable) and to used by the implementation.\n * Optional because it should be possible to execute an implementation without any input data.\n * Setting input is a ‘merge’ functionality.\n * It merges the data provided with the data available in the instance.\n * @url {base}/activities/{activity}/inputdata\n * @param activityId: The unique identification of the activity.\n * @param mediaDefinition: The definition of the output media to add to the definition of the activity.\n * @returns {Promise>}\n */\n async setInputData(activityId, data) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + INPUT_DATA, data, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get all available input media of an activity.\n * @url {base}/activities/{activity}/inputmedia\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getInputMedia(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + INPUT_MEDIA, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the input media of an activity.\n * @url {base}/activities/{activity}/inputmedia\n * @param activityId: The unique identification of the activity.\n * @param content\n * @param contentName\n * @param contentRole\n * @param contentType\n * @param format\n * @param mimeType\n * @returns {Promise>}\n */\n async setInputMedium(\n activityId,\n content,\n contentName,\n contentRole,\n contentType,\n format,\n mimeType\n ) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + INPUT_MEDIA,\n {\n content,\n contentName,\n contentRole,\n contentType,\n format,\n mimeType,\n },\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get a specific input media of an activity.\n * @url {base}/activities/{activity}/inputmedia/{medium}\n * @param activityId: The unique identification of the activity.\n * @param mediumId: The unique identification of the medium.\n * @returns {Promise>}\n */\n async getInputMedium(activityId, mediumId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + INPUT_MEDIA + \"/\" + mediumId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Delete a specific input medium belonging to an activity.\n * @url {base}/activities/{activity}/inputmedia/{medium}\n * @param activityId: The unique identification of the activity.\n * @param mediumId: The unique identification of the medium.\n * @returns {Promise>}\n */\n async deleteInputMedium(activityId, mediumId) {\n return this.OMNIMAP.delete(\n ACTIVITY + \"/\" + activityId + INPUT_MEDIA + \"/\" + mediumId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Transforming the input data based on the provided input mapping.\n * Only executed if input data AND input mapping is available.\n * The result of the mapping is saved with the activity.\n * @url {base}/activities/{activity}/mapinput\n * @param activityId: The unique identification of the activity.\n * @param structureDefinition: The definition of the input data of the activity.\n * @returns {Promise>}\n */\n async mapInput(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + MAP_INPUT, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Transforming the response of the implementation to format as needed by the instance.\n * Only possible if an output mapping is available and if the processing of the implementation is 'OK’.\n * The result of the mapping is saved with the activity.\n * @url {base}/activities/{activity}/mapoutput\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async mapOutput(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + MAP_OUTPUT, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Transforming the response of the implementation to format as needed by the instance.\n * Only possible if an output mapping is available and if the processing of the implementation is 'OK’.\n * The result of the mapping is saved with the activity.\n * @url {base}/activities/{activity}/outputdata\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getOutputData(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + OUTPUT_DATA, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the output data of an activity\n * @url {base}/activities/{activity}/outputdata\n * @param activityId: The unique identification of the activity.\n * @param data: The data of the activity to be created.\n * @returns {Promise>}\n */\n async setOutputData(activityId, data) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + OUTPUT_DATA, data, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get all available output media of an activity.\n * @url {base}/activities/{activity}/outputmedia\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getOutputMedia(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + OUTPUT_MEDIA, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Set the output media of an activity.\n * @url {base}/activities/{activity}/outputmedia\n * @param activityId: The unique identification of the activity.\n * @param content\n * @param contentRole\n * @param contentType\n * @returns {Promise>}\n */\n async setOutputMedium(activityId, content, contentRole, contentType) {\n return this.OMNIMAP.post(\n ACTIVITY + \"/\" + activityId + OUTPUT_MEDIA,\n {\n content,\n contentRole,\n contentType,\n },\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get a specific output media of an activity.\n * @url {base}/activities/{activity}/outputmedia/{medium}\n * @param activityId: The unique identification of the activity.\n * @param mediumId: The unique identification of the medium.\n * @returns {Promise>}\n */\n async getOutputMedium(activityId, mediumId) {\n return this.OMNIMAP.get(\n ACTIVITY + \"/\" + activityId + OUTPUT_MEDIA + \"/\" + mediumId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Delete a specific output medium belonging to an activity.\n * * @url {base}/activities/{activity}/outputmedia/{medium}\n * @param activityId: The unique identification of the activity.\n * @param mediumId: The unique identification of the medium.\n * @returns {Promise>}\n */\n async deleteOutputMedia(activityId, mediumId) {\n return this.OMNIMAP.delete(\n ACTIVITY + \"/\" + activityId + OUTPUT_MEDIA + mediumId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Refresh the activity as if starting over\n * @url {base}/activities/{activity}/refresh\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async refresh(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + REFRESH, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get detailed information.\n * @url {base}/activities/{activity}/snooze\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getSnoozedActivity(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + SNOOZE, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Start an activity using the available data.\n * @url {base}/activities/{activity}/start\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async startActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + START, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Attempt to validate the activity\n * @url {base}/activities/{activity}/validate\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async validateActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + VALIDATE, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Snoozing a activity will the deadlines and warnings from reports.\n * @url {base}/activities/{activity}/snooze\n * @param activityId: The unique identification of the activity.\n * @param until: is a ISO-8601 (UTC) format, for example 2016-03-10T11:24:59Z\n * @returns {Promise>}\n */\n async snoozeActivity(activityId, until) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + SNOOZE, until, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Wake a activity from a snooze / sleep.\n * @url {base}/activities/{id}/wake\n * @param activityId: Unique identification of the activity to be waked.\n * @returns {Promise>}\n */\n async wakeActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + WAKE, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Attempt to validate activity. If no auto-start or validation passes, return activity. Otherwise return error.\n * @url {base}/activities/{activity}/await-validation\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getActivityAfterValidation(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + AWAIT_VALIDATION, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Notify the process to update\n * @url {base}/activities/notify\n * @param notification\n */\n async notify(notification) {\n return this.OMNIMAP.post(ACTIVITY + NOTIFY, notification, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /***\n * Get details of an activity\n * @param activityId\n * @returns {Promise<*>}\n */\n async getActivityDetails(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + DETAILS, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { ActivityServices } from \"@/services/ActivityServices\";\n\nconst state = {\n activityServices: null,\n};\n\nconst getters = {\n activityServices: (state) => state.activityServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the ActivityServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getActivityServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.activityServices) {\n commit(\n \"SET_ACTIVITY_SERVICES\",\n new ActivityServices(rootGetters.organisationId)\n );\n }\n\n return getters.activityServices;\n } catch (error) {\n throw new StoreException(\"retrieveTenantServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateActivityServices: ({ getters, rootGetters }) => {\n try {\n const activityServices = getters.activityServices;\n if (activityServices) {\n activityServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n getInputDataDefinition: async ({ dispatch }, activityId) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.getInputDataDefinition(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n getInputData: async ({ dispatch }, activityId) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.getInputData(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n setInputData: async ({ dispatch }, payload) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.setInputData(\n payload.activityId,\n payload.input\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n getActivityDefinition: async ({ dispatch }, activityId) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.getActivityDefinition(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n validateActivity: async ({ dispatch }, activityId) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.validateActivity(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n getActivityDetails: async ({ dispatch }, activityId) => {\n try {\n const activityServices = await dispatch(\"getActivityServices\");\n\n return await activityServices.getActivityDetails(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_ACTIVITY_SERVICES: (state, payload) =>\n Vue.set(state, \"activityServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","/**\n * Services to create and manipulate flows.\n *\n * @file This files defines the FlowServices.\n * @author Omnimap\n * @since 2021.03.29\n * @version 1\n */\n\nimport axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\n// Base resource\nconst FLOW = \"/flow\";\nconst START = \"/start\";\nconst FINISH = \"/finish\";\nconst VALIDATE = \"/validate\";\nconst INSTANCES = \"/instances\";\nconst GENERIC = \"/generic\";\nconst STAGES = \"/stages\";\nconst ACTIVITY = \"/activities\";\nconst DEFINITION = \"/definition\";\nconst MONITORING = \"/monitoring\";\nconst ACTIONS = \"/actions\";\nconst INPUT_DATA = \"/inputdata\";\n\n// Mapping data resources\nconst MAP_INPUT = \"/mapinput\";\n\nexport class InstanceFlowServices {\n /**\n * Construct axios\n * @param organisationId: The unique identification of the organisation\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n /**\n * Set the organisation identification\n * @param organisationId: The unique identification of the organisation\n */\n setOrganisation(organisationId) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisationId;\n }\n\n async getInstanceMonitoring(instanceId) {\n return this.OMNIMAP.get(\n GENERIC + INSTANCES + \"/\" + instanceId + MONITORING,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get instance flow based on the instance identification.\n * @url {base}/instances/{indentification}/flow\n * @param instanceId: The unique identification of the instance\n * @returns {Promise>}\n */\n async getInstanceFlow(instanceId) {\n return this.OMNIMAP.get(INSTANCES + \"/\" + instanceId + FLOW, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async startInstanceFlow(instanceId, flowId) {\n return this.OMNIMAP.post(\n INSTANCES + \"/\" + instanceId + FLOW + \"/\" + flowId + START,\n {},\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n async finishInstanceFlow(instanceId, flowId) {\n return this.OMNIMAP.post(\n INSTANCES + \"/\" + instanceId + FLOW + \"/\" + flowId + FINISH,\n {},\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n async getStage(instanceId, stageId) {\n return this.OMNIMAP.get(\n INSTANCES + \"/\" + instanceId + FLOW + STAGES + \"/\" + stageId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get the data definition of an activity.\n * @url {base}/activities/{activity}/definition\n * @param activityId: The unique identification of the activity.\n * @returns {Promise>}\n */\n async getActivityDefinitionData(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId + DEFINITION, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async setInputData(activityId, data) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + INPUT_DATA, data, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async mapInput(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + MAP_INPUT, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async getActivity(activityId) {\n return this.OMNIMAP.get(ACTIVITY + \"/\" + activityId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async startActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + START, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async finishActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + FINISH, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async validateActivity(activityId) {\n return this.OMNIMAP.post(ACTIVITY + \"/\" + activityId + VALIDATE, null, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n async getActions(instanceId) {\n return this.OMNIMAP.get(INSTANCES + \"/\" + instanceId + ACTIONS, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { InstanceFlowServices } from \"@/services/InstanceFlowServices\";\nimport { AanvraagSpecialActions } from \"@/utils/GeneralConst/CapacityRequest\";\nimport { ActivityStates } from \"@/utils/GeneralConstants\";\n\nconst state = {\n instanceFlowServices: null,\n};\n\nconst getters = {\n instanceFlowServices: (state) => state.instanceFlowServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the InstanceFlowServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getInstanceFlowServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.instanceFlowServices) {\n commit(\n \"SET_INSTANCE_FLOW_SERVICES\",\n new InstanceFlowServices(rootGetters.organisationId)\n );\n }\n\n return getters.instanceFlowServices;\n } catch (error) {\n throw new StoreException(\"retrieveTenantServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateInstanceFlowServices: ({ getters, rootGetters }) => {\n try {\n const instanceFlowServices = getters.instanceFlowServices;\n if (instanceFlowServices) {\n instanceFlowServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n getInstanceMonitoring: async ({ dispatch }, instanceId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.getInstanceMonitoring(instanceId);\n } catch (error) {\n console.error(error);\n }\n },\n\n getInstanceFlow: async ({ dispatch }, instanceId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.getInstanceFlow(instanceId);\n } catch (error) {\n console.error(error);\n }\n },\n\n startInstanceFlow: async ({ dispatch }, payload) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.startInstanceFlow(\n payload.instanceId,\n payload.flowId\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n finishInstanceFlow: async ({ dispatch }, payload) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.finishInstanceFlow(\n payload.instanceId,\n payload.flowId\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n getStage: async ({ dispatch }, payload) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n return await instanceFlowServices.getStage(\n payload.instanceId,\n payload.stageId\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n getActivityDefinitionData: async ({ dispatch }, activityIdentification) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.getActivityDefinitionData(\n activityIdentification\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n setInputData: async ({ dispatch }, payload) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.setInputData(\n payload.activityId,\n payload.input\n );\n } catch (error) {\n console.error(error);\n }\n },\n\n mapInput: async ({ dispatch }, activityId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.mapInput(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n getActivity: async ({ dispatch }, activityId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.getActivity(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n startActivity: async ({ dispatch }, activityId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.startActivity(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n finishActivity: async ({ dispatch }, activityId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.finishActivity(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n validateActivity: async ({ dispatch }, activityId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n\n return await instanceFlowServices.validateActivity(activityId);\n } catch (error) {\n console.error(error);\n }\n },\n\n getActions: async ({ dispatch }, instanceId) => {\n try {\n const instanceFlowServices = await dispatch(\"getInstanceFlowServices\");\n const allActions = await instanceFlowServices.getActions(instanceId);\n const specialActions = [];\n const otherActions = [];\n const specialIdentifications = Object.values(AanvraagSpecialActions);\n\n if (allActions && allActions.stages_list) {\n const actions = allActions.stages_list.filter(\n (stage) =>\n stage.definition.type !== \"composite\" &&\n (stage.state === ActivityStates.CREATED ||\n stage.state === ActivityStates.STARTED)\n );\n\n for (const action of actions) {\n if (\n action.definition.identification &&\n specialIdentifications.includes(action.definition.identification)\n ) {\n specialActions.push(action);\n } else {\n otherActions.push(action);\n }\n }\n }\n\n return [allActions, specialActions, otherActions];\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_INSTANCE_FLOW_SERVICES: (state, payload) =>\n Vue.set(state, \"instanceFlowServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport {\n validateApiOkResponse,\n validateApiSearchResponse,\n} from \"@/utils/ApiResponseValidator\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\n\nconst GENERIC = \"/generic/\";\nconst INSTANCE_RESOURCE = \"/generic/instances/\";\nconst SUBSCRIPTION_RESOURCE = \"/subscription\";\nconst READ = \"/read\";\nconst NOTIFICATION_RESOURCE = \"notifications\";\n\nexport class NotificationServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n organisation_identification: organisation,\n },\n });\n }\n\n /**\n * Retrieve subscription\n * @param instanceId\n * @returns {Promise>}\n */\n async getSubscription(instanceId) {\n return this.OMNIMAP.get(\n INSTANCE_RESOURCE + instanceId + SUBSCRIPTION_RESOURCE,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Subscribe to an instance\n * @param instanceId\n * @returns {Promise>}\n */\n async postSubscription(instanceId) {\n const body = {};\n return this.OMNIMAP.post(\n INSTANCE_RESOURCE + instanceId + SUBSCRIPTION_RESOURCE,\n body,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Unsubscribe from an instance\n * @param instanceId\n * @returns {Promise>}\n */\n async deleteSubscription(instanceId) {\n return this.OMNIMAP.delete(\n INSTANCE_RESOURCE + instanceId + SUBSCRIPTION_RESOURCE,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Edit subscription\n * @param instanceId\n * @returns {Promise>}\n */\n async editSubscription(instanceId) {\n const body = {};\n return this.OMNIMAP.put(\n INSTANCE_RESOURCE + instanceId + SUBSCRIPTION_RESOURCE,\n body,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async retrieveUserNotifications(read, pageNumber, pageSize) {\n return this.OMNIMAP.get(\n GENERIC +\n NOTIFICATION_RESOURCE +\n \"?include_read=\" +\n read +\n \"&page-number=\" +\n pageNumber +\n \"&page-size=\" +\n pageSize,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async putUserNotifications(body) {\n return this.OMNIMAP.put(GENERIC + NOTIFICATION_RESOURCE + READ, body, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async retrieveInstanceNotifications(read) {\n let result = [];\n let meta = { current_page: 0 };\n\n do {\n meta.current_page += 1;\n const response = await this.retrieveInstanceNotificationsPage(\n read,\n meta.current_page\n );\n meta = response.meta;\n if (response.hasOwnProperty(\"data\") && response.data !== undefined) {\n result = result.concat(response.data);\n }\n } while (meta.total_pages && meta.total_pages > meta.current_page);\n\n return result;\n }\n\n async retrieveInstanceNotificationsPage(read, pageNumber) {\n return this.OMNIMAP.get(\n INSTANCE_RESOURCE +\n NOTIFICATION_RESOURCE +\n \"?include_read=\" +\n read +\n \"&page-number=\" +\n pageNumber +\n \"&page-size=30\",\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async putInstanceNotifications(body) {\n return this.OMNIMAP.put(\n INSTANCE_RESOURCE + NOTIFICATION_RESOURCE + READ,\n body,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { NotificationServices } from \"@/services/NotificationServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { SearchServices } from \"@/services/SearchServices\";\n\nconst state = {\n notificationServices: null,\n searchServices: null,\n userNotifications: null,\n includeReadUserNotifications: false,\n userNotificationsMeta: { total_found: 0 },\n currentUserNotificationsPage: 1,\n currentUserNotificationsPageSize: 100,\n};\n\nconst getters = {\n notificationServices: (state) => state.notificationServices,\n searchServices: (state) => state.searchServices,\n userNotifications: (state) =>\n state.userNotifications ? state.userNotifications : [],\n numberOfUserNotifications: (state) =>\n state.userNotificationsMeta ? state.userNotificationsMeta.total_found : 0,\n includeReadUserNotifications: (state) => state.includeReadUserNotifications,\n userNotificationsMeta: (state) => state.userNotificationsMeta,\n currentUserNotificationsPage: (state) => state.currentUserNotificationsPage,\n currentUserNotificationsPageSize: (state) =>\n state.currentUserNotificationsPageSize,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the NotificationServices API object.\n *\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getNotificationServices: async ({ getters, rootGetters, commit }) => {\n if (rootGetters.organisationId) {\n try {\n if (null === getters.notificationServices) {\n commit(\n \"SET_NOTIFICATION_SERVICES\",\n new NotificationServices(rootGetters.organisationId)\n );\n }\n\n return getters.notificationServices;\n } catch (error) {\n throw new StoreException(\"getNotificationServices: \" + error.message);\n }\n }\n },\n\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Toggles if the user notifications should include the read notification, and retrieves the user notifications again.\n *\n * @param commit\n * @param getters\n * @param dispatch\n * @return {Promise<*>}\n */\n toggleIncludeReadUserNotifications: async ({ commit, getters, dispatch }) => {\n commit(\n \"SET_INCLUDE_READ_USER_NOTIFICATIONS\",\n !getters.includeReadUserNotifications\n );\n return await dispatch(\"retrieveUserNotifications\", {\n pageNumber: getters.currentUserNotificationsPage,\n pageSize: getters.currentUserNotificationsPageSize,\n });\n },\n\n /**\n * Retrieves a page of notifications for the user.\n *\n * @param dispatch\n * @param getters\n * @param commit\n * @param pageNumber\n * @param pageSize\n * @return {any}\n */\n retrieveUserNotifications: async (\n { dispatch, getters, commit },\n { pageNumber, pageSize }\n ) => {\n // Handle passed page params\n if (!pageNumber) {\n pageNumber = getters.currentUserNotificationsPage;\n } else {\n commit(\"SET_CURRENT_USER_NOTIFICATIONS_PAGE\", pageNumber);\n }\n if (!pageSize) {\n pageSize = getters.currentUserNotificationsPageSize;\n } else {\n commit(\"SET_CURRENT_USER_NOTIFICATIONS_PAGE_SIZE\", pageSize);\n }\n\n try {\n const notificationServices = await dispatch(\"getNotificationServices\");\n const notifications =\n await notificationServices.retrieveUserNotifications(\n getters.includeReadUserNotifications,\n pageNumber,\n pageSize\n );\n\n if (\n notifications &&\n notifications.hasOwnProperty(\"data\") &&\n Array.isArray(notifications.data)\n ) {\n commit(\"SET_USER_NOTIFICATIONS\", notifications.data);\n commit(\"SET_USER_NOTIFICATIONS_META\", notifications.meta);\n await dispatch(\"addWervingsTekstToNotifications\");\n } else {\n commit(\"SET_USER_NOTIFICATIONS\", []);\n commit(\"SET_USER_NOTIFICATIONS_META\", { total_found: 0 });\n }\n\n return getters.userNotifications;\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * For the currently stored user notifications, add the indexed instance content and update the state.\n *\n * @param dispatch\n * @param getters\n * @param commit\n * @return {Promise}\n */\n addWervingsTekstToNotifications: async ({ dispatch, getters, commit }) => {\n if (Array.isArray(getters.userNotifications)) {\n // Extract the set of instance ids for which the notifications are present\n const notificationInstanceIds = new Set(\n getters.userNotifications\n .filter((notification) =>\n IdUtils.isUUID(notification.instance?.identification)\n )\n .map((notification) => notification.instance.identification)\n );\n\n try {\n // Query the instances of the notifications\n const searchServices = await dispatch(\"getSearchServices\");\n const searchQuery = {\n instance_identifications: notificationInstanceIds,\n };\n\n const searchResults = await searchServices.postInstanceQuery(\n notificationInstanceIds.size,\n 1,\n searchQuery,\n false,\n null,\n [\"CONTENT\"]\n );\n\n // Add the instance data to the already known notifications, and update the state\n if (searchResults && searchResults.data) {\n const updatedNotifications = getters.userNotifications.map(\n (notification) => {\n const instanceData = searchResults.data.find(\n (dataItem) =>\n dataItem.identification ===\n notification?.instance?.identification\n );\n\n if (instanceData && Object.keys(instanceData).length) {\n notification.instance = instanceData;\n }\n return notification;\n }\n );\n commit(\"SET_USER_NOTIFICATIONS\", updatedNotifications);\n }\n } catch (error) {\n console.error(error);\n }\n }\n },\n\n /**\n * Function which marks the passed list of notification ids as read, and refreshes the current list.\n *\n * @param dispatch\n * @param notificationIds\n * @return {Promise<*>}\n */\n markNotificationsAsRead: async ({ dispatch }, notificationIds) => {\n // Validate notificationIds as an array of ids\n if (\n !notificationIds ||\n !Array.isArray(notificationIds) ||\n notificationIds.some((id) => !IdUtils.isUUID(id))\n ) {\n throw new StoreException(\n \"markNotificationsAsRead requires a list of identifications\"\n );\n }\n\n try {\n // Put the notifications as read, and refresh the current list\n const notificationServices = await dispatch(\"getNotificationServices\");\n await notificationServices.putUserNotifications(notificationIds);\n await dispatch(\"retrieveUserNotifications\", {});\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_NOTIFICATION_SERVICES: (state, payload) =>\n Vue.set(state, \"notificationServices\", payload),\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n SET_USER_NOTIFICATIONS: (state, payload) =>\n Vue.set(state, \"userNotifications\", payload),\n SET_INCLUDE_READ_USER_NOTIFICATIONS: (state, payload) =>\n Vue.set(state, \"includeReadUserNotifications\", payload),\n SET_USER_NOTIFICATIONS_META: (state, payload) =>\n Vue.set(state, \"userNotificationsMeta\", payload),\n SET_CURRENT_USER_NOTIFICATIONS_PAGE: (state, payload) =>\n Vue.set(state, \"currentUserNotificationsPage\", payload),\n SET_CURRENT_USER_NOTIFICATIONS_PAGE_SIZE: (state, payload) =>\n Vue.set(state, \"currentUserNotificationsPageSize\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport {\n validateApiOkResponse,\n validateApiSearchResponse,\n} from \"@/utils/ApiResponseValidator\";\n\n/**\n * Declare all resources\n */\nconst INSTANCE_RESOURCE = \"/generic/instances/\";\nconst CHAT_RESOURCE_END = \"/chat\";\n\nexport class ChatServices {\n /**\n * Construct axios\n * @param organisationId\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n /**\n * Get chat by id\n *\n * @param chatId\n * @returns {Promise | never>}\n */\n async retrieveChat(instanceId) {\n return this.OMNIMAP.get(\n INSTANCE_RESOURCE + instanceId + CHAT_RESOURCE_END,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Get chat by id\n *\n * @param chatId\n * @returns {Promise | never>}\n */\n async retrieveChatByPage(payload) {\n const url =\n INSTANCE_RESOURCE +\n payload.instanceId +\n CHAT_RESOURCE_END +\n \"?page-size=\" +\n payload.pageSize +\n \"&page-number=\" +\n payload.pageNumber;\n\n return this.OMNIMAP.get(url, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Create chat for an instance\n *\n * @returns {Promise>}\n */\n async createChat(instanceId, message) {\n return this.OMNIMAP.post(\n INSTANCE_RESOURCE + instanceId + CHAT_RESOURCE_END,\n { message: message },\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Update a chat by id\n *\n * @returns {Promise>}\n */\n async updateChat(payload) {\n return this.OMNIMAP.put(\n INSTANCE_RESOURCE +\n payload.instanceId +\n CHAT_RESOURCE_END +\n \"/\" +\n payload.messageId,\n { message: payload.message },\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Remove a chat by id\n *\n * @returns {Promise>}\n */\n async removeChat(instanceId, messageId) {\n return this.OMNIMAP.delete(\n INSTANCE_RESOURCE + instanceId + CHAT_RESOURCE_END + \"/\" + messageId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { ChatServices } from \"@/services/ChatServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\n\nconst state = {\n ChatServices: null,\n};\n\nconst getters = {\n ChatServices: (state) => state.ChatServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the ChatServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getChatServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.ChatServices) {\n commit(\n \"SET_CHAT_SERVICES\",\n new ChatServices(rootGetters.organisationId)\n );\n }\n\n return getters.ChatServices;\n } catch (error) {\n throw new StoreException(\"getChatServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateChatServices: ({ getters, rootGetters }) => {\n try {\n const ChatServices = getters.ChatServices;\n if (ChatServices) {\n ChatServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n retrieveChat: async ({ dispatch }, instanceId) => {\n try {\n const ChatServices = await dispatch(\"getChatServices\");\n\n return await ChatServices.retrieveChat(instanceId);\n } catch (error) {\n console.error(error);\n }\n },\n\n retrieveChatByPage: async ({ dispatch }, payload) => {\n try {\n const ChatServices = await dispatch(\"getChatServices\");\n\n return await ChatServices.retrieveChatByPage(payload);\n } catch (error) {\n console.error(error);\n }\n },\n\n createChat: async ({ dispatch }, payload) => {\n try {\n const ChatServices = await dispatch(\"getChatServices\");\n\n return await ChatServices.createChat(payload.instanceId, payload.message);\n } catch (error) {\n console.error(error);\n }\n },\n\n updateChat: async ({ dispatch }, payload) => {\n try {\n const ChatServices = await dispatch(\"getChatServices\");\n\n return await ChatServices.updateChat(payload);\n } catch (error) {\n console.error(error);\n }\n },\n\n removeChat: async ({ dispatch }, payload) => {\n try {\n const ChatServices = await dispatch(\"getChatServices\");\n\n return await ChatServices.removeChat(\n payload.instanceId,\n payload.messageId\n );\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_CHAT_SERVICES: (state, payload) =>\n Vue.set(state, \"ChatServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"../utils/ErrorHandler\";\nimport {\n validateApiOkResponse,\n validateApiSearchResponse,\n} from \"../utils/ApiResponseValidator\";\nimport { formData } from \"../utils/GeneralConstants\";\n\nconst INSTANCES_RESOURCE_START = \"/generic/instances/\";\nconst MEDIA_RESOURCE_END = \"/media\";\nconst MEDIA_BINARY_RESOURCE_START = \"/generic/media/\";\nconst MEDIA_BINARY_RESOURCE_END = \"/content\";\nconst MEDIA_RESOURCE_PATH_END = \"/media/path\";\nconst MEDIUM_RESOURCE_END = \"/medium\";\nconst MEDIUM_CONTENT = \"/mediumcontent\";\nconst PDF_FORMAT = \"?format=pdf\";\nconst MEDIA_V3 = \"/generic/media/v3\";\n\nexport class MediaServices {\n /**\n * Construct axios\n * @param organisationId\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getMedia(instanceId, pageSize, pageNumber) {\n pageSize = pageSize ?? process.env.VUE_APP_GLOBAL_PAGE_SIZE;\n pageNumber = pageNumber ?? process.env.VUE_APP_GLOBAL_PAGE_NUMBER;\n return this.OMNIMAP.get(\n INSTANCES_RESOURCE_START +\n instanceId +\n MEDIA_RESOURCE_END +\n `?page-size=${pageSize}&page-number=${pageNumber}`,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiSearchResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Get media associated with an instance\n *\n * @param instanceId\n * @param formData\n * @returns {Promise | never>}\n */\n async retrievePathForInstance(instanceId, formData) {\n return this.OMNIMAP.post(\n INSTANCES_RESOURCE_START + instanceId + MEDIA_RESOURCE_PATH_END,\n formData,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async retrieveMediaForInstance(instanceId) {\n return this.OMNIMAP.get(\n INSTANCES_RESOURCE_START + instanceId + MEDIA_RESOURCE_END,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async retrieveMediumMetadata(fileId) {\n return this.OMNIMAP.get(MEDIA_BINARY_RESOURCE_START + fileId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Get file (as binary blob) by id\n *\n * @param fileId\n * @param pdf\n * @returns {Promise | never>}\n */\n async retrieveFile({ fileId, pdf = false }) {\n return this.OMNIMAP.get(\n MEDIA_BINARY_RESOURCE_START +\n fileId +\n MEDIA_BINARY_RESOURCE_END +\n (pdf ? PDF_FORMAT : \"\"),\n {\n responseType: \"blob\",\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => response.data)\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Create media binary associated with a file and a media metadata\n *\n * @param mediumId\n * @param formData\n * @returns {Promise | never>}\n */\n async createMediaBinary(mediumId, formData) {\n return this.OMNIMAP.post(\n MEDIA_BINARY_RESOURCE_START + mediumId + MEDIA_BINARY_RESOURCE_END,\n formData,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n\n /**\n * Create media metadata associated with an instance and file metadata\n *\n * @param instanceId\n * @param metadata\n * @returns {Promise | never>}\n */\n async createMediaMetadata(instanceId, metadata) {\n return this.OMNIMAP.post(\n INSTANCES_RESOURCE_START + instanceId + MEDIUM_RESOURCE_END,\n metadata,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Update existing media binary associated with a file and a media metadata\n *\n * @param mediumId\n * @param formData\n * @returns {Promise | never>}\n */\n async updateMediaBinary(mediumId, formData) {\n return this.OMNIMAP.put(\n MEDIA_BINARY_RESOURCE_START + mediumId + MEDIA_BINARY_RESOURCE_END,\n formData,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Create and link media file to tenant/concept/none (instance expected to be available in Q1 2025)\n * @returns {Promise | never>}\n * @param data\n */\n async linkMedia(data) {\n return this.OMNIMAP.post(MEDIA_V3, data, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n /**\n * Upload binary and metadata\n *\n * @param instanceId\n * @param formData\n * @returns {Promise | never>}\n */\n async uploadMediumContent(instanceId, formData) {\n return this.OMNIMAP.post(\n INSTANCES_RESOURCE_START + instanceId + MEDIUM_CONTENT,\n formData,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async deleteMedia(mediumId) {\n return this.OMNIMAP.delete(MEDIA_BINARY_RESOURCE_START + mediumId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { MediaServices } from \"@/services/MediaServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { FileExtentions } from \"@/utils/GeneralConstants\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport {\n validateMediaNameOrPath,\n validateStoreInput,\n checkMimeType,\n} from \"@/utils/GeneralUtils\";\n\nconst state = {\n mediaServices: null,\n media: [],\n omnimedia: [],\n omnimediaIds: [],\n mediaToBeDeleted: [],\n uploadingMedia: false,\n isActivity: true,\n};\n\nconst getters = {\n mediaServices: (state) => state.mediaServices,\n media: (state) => state.media,\n omnimedia: (state) => state.omnimedia,\n omnimediaIds: (state) => state.omnimediaIds,\n mediaToBeDeleted: (state) => state.mediaToBeDeleted,\n uploadingMedia: (state) => state.uploadingMedia,\n isActivity: (state) => state.isActivity,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the MediaServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getMediaServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.mediaServices) {\n if (\"\" === rootGetters.tenantId) {\n throw new StoreException(\"No tenant id known.\");\n } else {\n commit(\n \"SET_MEDIA_SERVICES\",\n new MediaServices(rootGetters.organisationId)\n );\n }\n }\n\n return getters.mediaServices;\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieve media by instance id\n *\n * @param commit\n * @param getters\n * @param dispatch\n * @param fileId\n * @returns media\n */\n retrieveMedia: async (\n { commit, dispatch },\n { instanceId, pageSize, pageNumber }\n ) => {\n const mediaServices = await dispatch(\"getMediaServices\");\n try {\n const media = await mediaServices.getMedia(\n instanceId,\n pageSize,\n pageNumber\n );\n commit(\"SET_MEDIA\", media);\n return media;\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving file: \\n\" + error.message\n );\n }\n },\n\n retrieveFile: async ({ getters, dispatch }, { fileId, pdf = false }) => {\n const mediaServices = await dispatch(\"getMediaServices\");\n try {\n const selectedMedia = getters.media.data.find(\n (media) => media.identification === fileId\n );\n\n return await mediaServices.retrieveFile({ fileId: fileId, pdf: pdf });\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving file: \\n\" + error.message\n );\n }\n },\n\n deleteMedia: async ({ dispatch }, medium_identification) => {\n if (medium_identification) {\n try {\n const mediaServices = await dispatch(\"getMediaServices\");\n await mediaServices.deleteMedia(medium_identification);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to delete media file: \\n\" +\n error.message\n );\n }\n }\n },\n\n createMedia: async ({ dispatch }, { instanceId, metadata, file }) => {\n const mediaServices = await dispatch(\"getMediaServices\");\n\n if (!instanceId) {\n throw new StoreException(\"No instance id given.\");\n } else if (!metadata.name) {\n throw new StoreException(\"No name given.\");\n // } else if (!metadata.definition_code) {\n } else if (!metadata.relationships.definition) {\n throw new StoreException(\"No medium definition given.\");\n } else if (!file) {\n throw new StoreException(\"No files given.\");\n } else {\n // Check metadata (mimetype)\n if (!metadata.mime_type) {\n // Check for common file extensions not supported by upload component\n const fileExt = metadata.name.slice(metadata.name.lastIndexOf(\".\") + 1);\n if (FileExtentions[fileExt]) {\n metadata.mime_type = FileExtentions[fileExt];\n } else {\n throw new StoreException(\"Unsupported media type\");\n }\n }\n\n try {\n // Post metadata\n metadata.path = metadata.path ? metadata.path : \"\";\n const newMedium = await mediaServices.createMediaMetadata(\n instanceId,\n metadata\n );\n\n // Create formData for files payload\n const formData = new FormData();\n formData.append(\"content\", file);\n formData.append(\"contentName\", metadata.name);\n formData.append(\"contentType\", metadata.mime_type);\n formData.append(\"path\", metadata.path);\n\n // Post media binary using the new medium metadata object\n await mediaServices.createMediaBinary(\n newMedium.identification,\n formData\n );\n } catch (error) {\n throw new StoreException(error);\n }\n }\n },\n\n createMediaV3: async ({ dispatch }, body) => {\n try {\n if (!body) {\n throw new StoreException(\"Invalid input\");\n }\n const mediaServices = await dispatch(\"getMediaServices\");\n await mediaServices.linkMedia(body);\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n linkMedia: async (\n { dispatch },\n { targetId, metadata, linkType, mediaDefinitionId }\n ) => {\n if (\n !IdUtils.isUUID(targetId) ||\n !IdUtils.isUUID(metadata?.identification) ||\n !linkType ||\n !IdUtils.isUUID(mediaDefinitionId)\n ) {\n throw new StoreException(\"Invalid input\");\n }\n try {\n const payload = {\n link_target: targetId,\n medium_identification: metadata.identification,\n link_type: linkType,\n path: \"/\",\n medium_definition: mediaDefinitionId,\n metadata: metadata,\n };\n const mediaServices = await dispatch(\"getMediaServices\");\n await mediaServices.linkMedia(payload);\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n retrieveMediumMetadata: async ({ commit, getters, dispatch }, { fileId }) => {\n if (!IdUtils.isUUID(fileId)) {\n throw new StoreException(\"Invalid input\");\n }\n try {\n const mediaServices = await dispatch(\"getMediaServices\");\n return mediaServices.retrieveMediumMetadata(fileId);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving metadata: \\n\" + error.message\n );\n }\n },\n\n setOmnimedia({ commit, getters }, payload) {\n if (!Array.isArray(payload)) {\n const media = getters.omnimedia.slice();\n media.push(payload);\n commit(\"SET_OMNIMEDIA\", media);\n } else {\n commit(\"SET_OMNIMEDIA\", payload);\n }\n },\n setOmnimediaId({ commit, getters }, payload) {\n if (!Array.isArray(payload)) {\n const ids = getters.omnimediaIds.slice();\n ids.push(payload);\n commit(\"SET_OMNIMEDIA_IDS\", ids);\n } else {\n commit(\"SET_OMNIMEDIA_IDS\", payload);\n }\n },\n removeOmnimediaId({ commit, getters }, payload) {\n let ids = getters.omnimediaIds.slice();\n ids = ids.filter((id) => id.id !== payload);\n commit(\"SET_OMNIMEDIA_IDS\", ids);\n },\n setMediaToBeDeleted({ commit, getters }, payload) {\n if (!Array.isArray(payload)) {\n const ids = getters.mediaToBeDeleted.slice();\n ids.push(payload);\n commit(\"SET_DELETE_MEDIA\", ids);\n } else {\n commit(\"SET_DELETE_MEDIA\", payload);\n }\n },\n\n async createMediumContent({ dispatch }, { instanceId, metadata, file }) {\n // Validate input\n if (!IdUtils.isUUID(instanceId) || !metadata || !file) {\n throw new StoreException(\"Invalid input for createMediumContent\");\n }\n validateStoreInput(metadata, [\"filename\", \"definition_code\"]);\n // Check metadata for unsafe characters\n if (\n !validateMediaNameOrPath(metadata.filename) ||\n (metadata.path && !validateMediaNameOrPath(metadata.path))\n ) {\n throw new StoreException(\"Invalid filename and/or path\");\n }\n\n // Check metadata (mimetype)\n metadata = checkMimeType(metadata);\n\n const mediaServices = await dispatch(\"getMediaServices\");\n try {\n // Create formData for files payload\n const formData = new FormData();\n formData.append(\"content\", file);\n formData.append(\"metadata\", JSON.stringify(metadata));\n // Post media binary and metadata\n return mediaServices.uploadMediumContent(instanceId, formData);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while uploading media file: \\n\" + error.message\n );\n }\n },\n\n setUploadingMedia({ commit, getters }, isUploading) {\n commit(\"SET_UPLOADING_MEDIA\", isUploading);\n },\n setIsActivity({ commit }, payload) {\n commit(\"SET_IS_ACTIVITY\", payload);\n },\n};\nconst mutations = {\n SET_MEDIA_SERVICES: (state, payload) =>\n Vue.set(state, \"mediaServices\", payload),\n SET_MEDIA: (state, payload) => Vue.set(state, \"media\", payload),\n SET_OMNIMEDIA: (state, payload) => Vue.set(state, \"omnimedia\", payload),\n SET_OMNIMEDIA_IDS: (state, payload) =>\n Vue.set(state, \"omnimediaIds\", payload),\n SET_DELETE_MEDIA: (state, payload) =>\n Vue.set(state, \"mediaToBeDeleted\", payload),\n SET_UPLOADING_MEDIA: (state, payload) =>\n Vue.set(state, \"uploadingMedia\", payload),\n SET_IS_ACTIVITY: (state, payload) => Vue.set(state, \"isActivity\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\nimport IdUtils from \"../utils/IdUtils\";\n\nconst INSTANCE_RESOURCE = \"/instances/\";\nconst FLOW_RESOURCE = \"/flow/\";\nconst DEFINITION_RESOURCE = \"definitions/\";\nconst STAGES_RESOURCE = \"stages/\";\nconst START_AND_EXECUTE_RESOURCE = \"/start-and-execute\";\n\nexport class ProcessServices {\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n /**\n * Function to get the current FLOW state of the given instance process.\n *\n * @param instanceId\n * @return {Promise | never>}\n */\n async getInstanceProcessStatus(instanceId) {\n if (!IdUtils.isUUID(instanceId)) {\n throw new ServiceException(\"No instance id given\");\n }\n\n return this.OMNIMAP.get(INSTANCE_RESOURCE + instanceId + FLOW_RESOURCE, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Gets a specific instance stage.\n *\n * @param instanceId\n * @param stageId\n * @return {Promise | never>}\n */\n async getStage(instanceId, stageId) {\n return this.OMNIMAP.get(\n INSTANCE_RESOURCE +\n instanceId +\n FLOW_RESOURCE +\n STAGES_RESOURCE +\n stageId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Automatically start & execute the provided instance stage.\n *\n * @param instanceId\n * @param stageDefinitionId\n * @param inputData\n * @return {Promise | never>}\n */\n async startAndExecuteStage(instanceId, stageDefinitionId, inputData = {}) {\n const data = { activity_input_strategy: \"INPUT\" };\n if (inputData && inputData !== {} && Object.keys(inputData)?.length) {\n data.activity_input_data = inputData;\n }\n\n return this.OMNIMAP.post(\n INSTANCE_RESOURCE +\n instanceId +\n FLOW_RESOURCE +\n DEFINITION_RESOURCE +\n stageDefinitionId +\n START_AND_EXECUTE_RESOURCE,\n data,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n \"Content-Type\": \"application/json\",\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n}\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { ProcessServices } from \"@/services/ProcessServices\";\nimport { GenericInstanceServices } from \"@/services/GenericInstanceServices\";\nimport { Identifications } from \"@/utils/GeneralConstants\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport {\n searchProfileQuery,\n TalentProfileStatuses,\n TalentProfileActions,\n} from \"@/utils/GeneralConst/TalentProfile\";\n\nconst state = {\n searchServices: null,\n genericInstanceServices: null,\n processServices: null,\n profileIdentification: null,\n profileData: null,\n JSONSchemaTalentProfile: undefined,\n JSONDataTalentProfile: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n genericInstanceServices: (state) => state.genericInstanceServices,\n processServices: (state) => state.processServices,\n profileIdentification: (state) => state.profileIdentification,\n profileData: (state) => state.profileData,\n JSONSchemaTalentProfile: (state) => state.JSONSchemaTalentProfile,\n JSONDataTalentProfile: (state) => state.JSONDataTalentProfile,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the ProcessServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getProcessServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.processServices) {\n commit(\n \"SET_PROCESS_SERVICES\",\n new ProcessServices(rootGetters.organisationId)\n );\n }\n\n return getters.processServices;\n } catch (error) {\n throw new StoreException(\"getProcessServices: \" + error.message);\n }\n },\n\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Internal action for initializing and returning the GenericInstanceServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getGenericInstanceServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.genericInstanceServices) {\n commit(\n \"SET_GENERIC_INSTANCE_SERVICES\",\n new GenericInstanceServices(rootGetters.organisationId)\n );\n }\n return getters.genericInstanceServices;\n } catch (error) {\n throw new StoreException(\"getGenericInstanceServices: \" + error.message);\n }\n },\n\n /**\n * Finds the talent profile ID based on the user ID\n * @param commit\n * @param dispatch\n * @param getters\n * @param rootGetters\n * @param userId\n * @returns {Promise}\n */\n findProfileId: async (\n { commit, dispatch, rootGetters },\n { userId = null }\n ) => {\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n\n // Determines user ID based on the supplied variable\n const Id = userId ? userId : rootGetters.userId;\n // Updates the searchProfileQuery with user ID\n const query = JSON.parse(JSON.stringify(searchProfileQuery));\n\n query.context[0].instance_identifiers = [Id];\n // sort so that the latest profile is on top. Just in case a user somehow has more than one profile\n query.sorting = [\n { sort_type: \"timestamp_created\", direction: \"DESCENDING\" },\n ];\n\n // Posts the instance query\n const result = await searchServices.postInstanceQuery(\n process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n process.env.VUE_APP_GLOBAL_PAGE_NUMBER,\n query\n );\n // Sets profile ID based on the response\n if (result.data && result.data.length > 0) {\n commit(\"SET_PROFILE_ID\", result.data[0].identification);\n return result.data[0].identification;\n } else {\n commit(\"SET_PROFILE_ID\", null);\n commit(\"SET_PROFILE_DATA\", null);\n }\n } catch (error) {\n throw new StoreException(\"findProfileId: \" + error.message);\n }\n },\n\n /**\n * Retrieves the TalentProfile of the provided or logged-in user.\n * @param commit\n * @param dispatch\n * @param getters\n * @param profileId\n * @return {Promise}\n */\n fetchProfileData: async ({ commit, dispatch, getters }, profileId = null) => {\n // Fetches profile ID in case no ID is supplied or available in the store\n try {\n if (!getters.profileIdentification && !profileId) {\n await dispatch(\"findProfileId\");\n }\n\n // Determines profile ID based on the supplied variable\n const id = profileId ? profileId : getters.profileIdentification;\n // Sets the profile ID in the store (in case there was none)\n await commit(\"SET_PROFILE_ID\", id);\n\n // Fetches profile data based on profile ID and updates the value in the store\n if (id) {\n if (!IdUtils.isUUID(id)) {\n console.error(\n \"No valid instance identification found. Unable to retrieve instance.\"\n );\n return;\n }\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n const result = await genericInstanceServices.getGenericInstance(id);\n\n commit(\"SET_JSON_DATA_TALENT_PROFILE\", result.data.content);\n commit(\"SET_PROFILE_DATA\", result);\n }\n\n // Fetch the whole profile instance using the profile ID\n if (profileId) {\n const genericInstanceServices = getters.genericInstanceServices;\n const profileResult = await genericInstanceServices.getGenericInstance(\n profileId\n );\n commit(\"SET_JSON_DATA_TALENT_PROFILE\", profileResult.data.content);\n commit(\"SET_PROFILE_DATA\", profileResult);\n return profileResult;\n }\n } catch (error) {\n throw new StoreException(\"fetchProfileData: \" + error.message);\n }\n },\n\n /**\n * Saves the new talent profile instance and displays the profile info on the page\n * @param commit\n * @param dispatch\n * @param newProfileData\n * @returns {Promise<*>}\n */\n createAndFetchNewProfile: async ({ commit, dispatch }, newProfileData) => {\n try {\n // Posts a new instance of the talent profile\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n const result = await genericInstanceServices.postGenericInstance(\n newProfileData\n );\n // Sets a profile ID of the new profile\n const identification = result.identification;\n commit(\"SET_PROFILE_ID\", identification);\n commit(\"SET_PROFILE_DATA\", result);\n // Retrieves the profile by calling the function\n return await dispatch(\"fetchProfileData\");\n } catch (error) {\n throw new StoreException(\"createAndFetchNewProfile: \" + error.message);\n }\n },\n\n startAndExecuteStatusAction: async ({ getters, dispatch }, status) => {\n if (!status) {\n throw new StoreException(\"Status niet gevonden\");\n }\n if (\n !getters.profileData ||\n !getters.profileData.data ||\n !getters.profileData.data.identification\n ) {\n throw new StoreException(\"Geen profiel gevonden\");\n }\n\n const { bewerkt: edited, goedgekeurd: approved } =\n getters.profileData.data.content?.data;\n\n let stageDefinitionIdentification = \"\";\n let payload = {};\n switch (status) {\n case TalentProfileStatuses.NIEUW:\n stageDefinitionIdentification = TalentProfileActions.INDIENENPROFIEL;\n payload = {\n indienen: true,\n actief: \"Ja\",\n };\n break;\n case TalentProfileStatuses.GEWIJZIGD:\n case TalentProfileStatuses.AANVULLING_NODIG:\n stageDefinitionIdentification =\n TalentProfileActions.INDIENENWIJZIGINGEN;\n payload = {\n indienen: true,\n actief: \"Ja\",\n };\n break;\n case TalentProfileStatuses.INACTIEF:\n case TalentProfileStatuses.VERLOPEN:\n stageDefinitionIdentification = TalentProfileActions.ACTIVERENPROFIEL;\n payload = {\n ditprofielkanwordengeactiveerd: true,\n status:\n edited === \"Nee\" && approved === \"Ja\" ? \"ACTIEF\" : \"TER AKKOORD\",\n };\n break;\n case TalentProfileStatuses.ACTIEF:\n stageDefinitionIdentification = TalentProfileActions.DEACTIVERENPROFIEL;\n payload = {\n deactiveren: true,\n status: \"INACTIEF\",\n };\n break;\n default:\n break;\n }\n\n const processServices = await dispatch(\"getProcessServices\");\n try {\n await processServices.startAndExecuteStage(\n getters.profileData.data.identification,\n stageDefinitionIdentification,\n payload\n );\n } catch (error) {\n throw new StoreException(\n \"Er gaat iets mis met het uitvoeren van deze actie\"\n );\n }\n },\n\n /**\n * Saves job alert settings of given user\n * @param dispatch\n * @param userId\n * @param vakgebieden\n * @param frequency\n * @param werkendenkniveau\n * @param dienstverband_typevacature\n * @returns {Promise}\n */\n startAndExecuteJobAlert: async (\n { dispatch },\n {\n userId,\n vakgebieden,\n frequency,\n werkendenkniveau,\n dienstverband_typevacature,\n }\n ) => {\n if (\n userId &&\n frequency &&\n (vakgebieden?.length ||\n werkendenkniveau?.length ||\n dienstverband_typevacature?.length)\n ) {\n const processServices = await dispatch(\"getProcessServices\");\n try {\n await processServices.startAndExecuteStage(\n userId,\n Identifications.STAGE_DEFINITION_JOBALERT_BIJWERKEN,\n {\n vakgebieden,\n frequency,\n werkendenkniveau,\n dienstverband_typevacature,\n }\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while updating job alert settings\"\n );\n }\n }\n },\n\n /**\n * Resets job alert settings of given user and unsubscribe them from job alerts\n * @param dispatch\n * @param userId\n * @returns {Promise}\n */\n startAndExecuteUnsubscribe: async ({ dispatch }, { userId }) => {\n if (userId) {\n const processServices = await dispatch(\"getProcessServices\");\n try {\n await processServices.startAndExecuteStage(\n userId,\n Identifications.STAGE_DEFINITION_JOBALERT_AFMELDEN\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while unsubscribing from job alert\"\n );\n }\n }\n },\n\n /**\n * Clears profile data and JSON profile data\n * @param getters\n * @param commit\n */\n clearProfile: ({ getters, commit }) => {\n if (getters.profileData) {\n commit(\"SET_PROFILE_DATA\", null);\n }\n if (getters.JSONDataTalentProfile) {\n commit(\"SET_JSON_DATA_TALENT_PROFILE\", null);\n }\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n SET_GENERIC_INSTANCE_SERVICES: (state, payload) =>\n Vue.set(state, \"genericInstanceServices\", payload),\n SET_PROCESS_SERVICES: (state, payload) =>\n Vue.set(state, \"processServices\", payload),\n SET_PROFILE_ID: (state, payload) =>\n Vue.set(state, \"profileIdentification\", payload),\n SET_PROFILE_DATA: (state, payload) => Vue.set(state, \"profileData\", payload),\n SET_JSON_SCHEMA_TALENT_PROFILE: (state, payload) =>\n Vue.set(state, \"JSONSchemaTalentProfile\", payload),\n SET_JSON_DATA_TALENT_PROFILE: (state, payload) =>\n Vue.set(state, \"JSONDataTalentProfile\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { decideAction } from \"@/utils/Utils/CapacityRequestUtils\";\nimport { Identifications } from \"@/utils/GeneralConstants\";\nimport { MyRequestsTabs } from \"@/utils/GeneralConst/CapacityRequest\";\nimport { MyRequestsQueries } from \"@/utils/GeneralConst/Queries\";\n\nconst state = {\n searchServices: null,\n loading: false,\n timeout: null,\n pagination: {\n page_size: 10,\n page_number: 1,\n },\n query: {},\n\n myRequests: {},\n lastRetrieved: null,\n meta: null,\n metaFiltered: null,\n totalActions: 0,\n\n isTypeLosse: undefined,\n losseVacatures: null,\n metaLosseVacatures: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n loading: (state) => state.loading,\n timeout: (state) => state.timeout,\n pagination: (state) => state.pagination,\n pageSize: (state) => state.pagination.page_size,\n pageNumber: (state) => state.pagination.page_number,\n query: (state) => state.query,\n\n myRequests: (state) => state.myRequests,\n lastRetrieved: (state) => state.lastRetrieved,\n meta: (state) => state.meta,\n metaFiltered: (state) => state.metaFiltered,\n totalActions: (state) => (state.totalActions ? state.totalActions : 0),\n\n isTypeLosse: (state) => state.isTypeLosse,\n losseVacatures: (state) => state.losseVacatures,\n metaLosseVacatures: (state) => state.metaLosseVacatures,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Sets the type of request (is in an individual request – \"losse vacancy\"?)\n * @param commit\n * @param isLosseVacature\n */\n setTypeOfRequest: ({ commit }, isLosseVacature) => {\n commit(\"SET_TYPE_REQUEST\", isLosseVacature);\n },\n\n /**\n * Triggers a function to retrieve correct type of capacity requests (regular or \"losse\")\n * @param getters\n * @param dispatch\n * @returns {Promise}\n */\n updateRequests: async ({ getters, dispatch }) => {\n if (getters.isTypeLosse) {\n await dispatch(\"retrieveLosseVacatures\");\n } else {\n await dispatch(\"retrieveMyRequests\", true);\n }\n },\n\n /**\n * Resets the values of page number and all elements of the query\n * @param commit\n * @param dispatch\n */\n resetPageAndQuery: ({ commit, dispatch }) => {\n commit(\"SET_PAGE_NUMBER\", 1);\n dispatch(\"setQuery\");\n },\n\n /**\n * Sets the page number selected by the user and retrieves correct data to show\n * @param commit\n * @param dispatch\n * @param pageNumber\n * @returns {Promise}\n */\n setPage: async ({ commit, dispatch }, pageNumber) => {\n try {\n commit(\"SET_PAGE_NUMBER\", pageNumber);\n\n await dispatch(\"updateRequests\", true);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets the sorting settings based on the user's choice\n * @param commit\n * @param dispatch\n * @param direction\n * @returns {Promise}\n */\n setSorting: async ({ commit, dispatch }, direction) => {\n try {\n commit(\"SET_QUERY_SORTING\", [\n { sort_type: \"timestamp_created\", direction: direction },\n ]);\n\n await dispatch(\"updateRequests\", true);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets the text search based on the user's text search input\n * @param commit\n * @param text\n * @returns {Promise}\n */\n setTextSearch: async ({ commit }, text) => {\n try {\n if (text) {\n const textQuery = {\n text_query: text,\n search_fields: [\"NAME\", \"CONTENT\", \"IDENTIFIER\", \"STATUS\"],\n fuzzy: true,\n and_or: \"OR\",\n };\n\n commit(\"SET_QUERY_TEXT_SEARCH\", [textQuery]);\n } else {\n commit(\"SET_QUERY_TEXT_SEARCH\", null);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets the status of the data items selected by the user\n * @param commit\n * @param dispatch\n * @param status\n * @returns {Promise}\n */\n setStatus: async ({ commit, dispatch }, status) => {\n try {\n const statusList = [];\n if (status?.length) {\n status.forEach((item) => {\n statusList.push({\n status: item,\n and_or: \"OR\",\n });\n });\n }\n commit(\"SET_QUERY_STATUSES\", statusList);\n\n await dispatch(\"updateRequests\", true);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves actions for each capacity request\n * @param getters\n * @param dispatch\n * @param commit\n * @returns {Promise}\n */\n retrieveAllActions: async ({ getters, dispatch, commit }) => {\n // Clear the old value\n commit(\"SET_AMOUNT_ACTIONS\", 0);\n try {\n if (!getters.isTypeLosse) {\n for (const identification in getters.myRequests) {\n if (getters.myRequests.hasOwnProperty(identification)) {\n await dispatch(\"retrieveActionsForRequest\", identification);\n }\n }\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves actions for a specific capacity request determined by ID\n * @param getters\n * @param dispatch\n * @param commit\n * @param id\n * @returns {Promise}\n */\n retrieveActionsForRequest: async ({ getters, dispatch, commit }, id) => {\n try {\n const request = await decideAction(getters.myRequests[id]);\n\n if (!request?.actions?.actions) {\n // Retrieve actions of the instance\n const [all, special, other] = await dispatch(\n \"instanceFlow/getActions\",\n id,\n { root: true }\n );\n\n request.actions = {\n flow: all,\n specialActions: special,\n actions: other,\n };\n }\n\n const hasActions = { id: id, hasActions: request.actions.actions.length };\n\n if (getters.myRequests[id]) {\n commit(\"SET_REQUEST_ACTIONS\", { id: id, payload: request.actions });\n commit(\"SET_HAS_ACTIONS\", hasActions);\n }\n if (request.actions.actions.length) {\n // Amount of actions is the number of instances where actions are required\n commit(\"SET_AMOUNT_ACTIONS\", getters.totalActions + 1);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves the requests related to the logged user and starts a timer to retrieve them every 15000ms for a maximum of 2.5 minutes.\n * @param getters\n * @param commit\n * @param dispatch\n * @returns {Promise}\n */\n init: async ({ getters, commit, dispatch }) => {\n await dispatch(\"retrieveMyRequests\");\n\n if (!getters.timeout) {\n for (let i = 0; i < 10; i++) {\n await new Promise((resolve) => {\n const timeout = setTimeout(resolve, 15000);\n commit(\"SET_TIME_OUT\", timeout);\n });\n\n await dispatch(\"retrieveMyRequests\");\n }\n\n commit(\"SET_TIME_OUT\", null);\n }\n },\n\n /**\n * Retrieves the amount of capacity requests related to the logged user\n * @param rootGetters\n * @param dispatch\n * @param getters\n * @param commit\n * @returns {Promise}\n */\n retrieveAmountOfRequests: async ({ rootGetters, dispatch, commit }) => {\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n const query = { ...MyRequestsQueries.MANAGER };\n\n query.context.instance_identifiers = [rootGetters.userId];\n\n const { meta } = await searchServices.postInstanceQuery(1, 1, query);\n\n commit(\"SET_AMOUNT_REQUESTS\", meta);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves capacity requests based on selected query\n * It only fetches them if: forceUpdate is true, they have not been updated in 15 minutes, or the amount of instances has updated.\n * @param getters\n * @param dispatch\n * @param commit\n * @param forceUpdate\n * @returns {Promise}\n */\n retrieveMyRequests: async (\n { getters, dispatch, commit },\n forceUpdate = false\n ) => {\n try {\n // Copy the meta for comparing later on\n const metaBefore = { ...getters.meta };\n\n // Update the meta data to determine if new instances have been added\n await dispatch(\"retrieveAmountOfRequests\");\n\n // Only do function when forceUpdate is set, after a 15 min have passed or if the amount of instances has changed\n if (\n !forceUpdate &&\n getters.lastRetrieved &&\n getters.lastRetrieved.getTime() + 900000 > new Date().getTime() &&\n getters.myRequests &&\n getters.meta.total_found === metaBefore.total_found &&\n getters.pagination.page_number === getters.metaFiltered.current_page\n ) {\n commit(\"SET_LOADING\", false);\n return;\n } else {\n commit(\"SET_LOADING\", true);\n }\n\n const searchServices = await dispatch(\"getSearchServices\");\n\n // Retrieve the instances based on the active query and page\n const { data, meta } = await searchServices.postInstanceQuery(\n getters.pageSize,\n getters.pageNumber,\n getters.query\n );\n\n // If there are instances, update the state accordingly. If no instances found, clear the store.\n if (data) {\n const mapped = data.map((item) => ({ [item.identification]: item }));\n const mappedData = Object.assign({}, ...mapped);\n commit(\"SET_MY_REQUESTS\", mappedData);\n } else {\n commit(\"SET_MY_REQUESTS\", {});\n }\n\n // Update the meta data of filtered requests\n commit(\"SET_AMOUNT_FILTERED_REQUESTS\", meta);\n\n // Update timestamp to validate if 15 minutes have passed.\n commit(\"SET_LAST_RETRIEVED\", new Date());\n\n // Retrieve actions and chat for each instance\n await dispatch(\"retrieveAllActions\");\n await dispatch(\"retrieveAllChats\");\n } catch (error) {\n console.error(error);\n } finally {\n commit(\"SET_LOADING\", false);\n }\n },\n\n /**\n * Sets the query based on the active tab (each tab in My Requests view corresponds with a specific query)\n * @param commit\n * @param activeTab\n * @returns {Promise}\n */\n setQuery: async ({ commit }, activeTab) => {\n // Set the query depending on the active tab\n let query = {};\n switch (activeTab) {\n case MyRequestsTabs.LOPENDE:\n query = { ...MyRequestsQueries.LOPENDE };\n break;\n case MyRequestsTabs.ALLE:\n query = { ...MyRequestsQueries.ALLE };\n break;\n case MyRequestsTabs.VERLENGINGEN:\n query = { ...MyRequestsQueries.VERLENGINGEN };\n break;\n default:\n query = { ...MyRequestsQueries.ALLE };\n query.content = [];\n break;\n }\n commit(\"SET_QUERY\", query);\n },\n\n /**\n * Retrieves chat messages for all instances\n * @param getters\n * @param dispatch\n * @returns {Promise}\n */\n retrieveAllChats: async ({ getters, dispatch }) => {\n try {\n for (const identification in getters.myRequests) {\n if (getters.myRequests.hasOwnProperty(identification)) {\n await dispatch(\"retrieveChatForRequest\", identification);\n }\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves chat messages for a specific instance specified with ID\n * @param getters\n * @param dispatch\n * @param commit\n * @param identification\n * @returns {Promise}\n */\n retrieveChatForRequest: async (\n { getters, dispatch, commit },\n identification\n ) => {\n try {\n // Retrieves chat messages of the instance\n const result = await dispatch(\"chat/retrieveChat\", identification, {\n root: true,\n });\n\n // If instance is in the state (required because the state may have changed in the mean-time\n if (getters.myRequests[identification]) {\n commit(\"SET_REQUEST_CHAT\", {\n id: identification,\n payload: result,\n });\n\n // Set boolean to make UI faster\n commit(\"SET_HAS_CHAT\", {\n id: identification,\n hasChat: !!(result && result.length),\n });\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Retrieves all individual vacancies\n * @param getters\n * @param dispatch\n * @param commit\n * @returns {Promise}\n */\n retrieveLosseVacatures: async ({ getters, dispatch, commit }) => {\n const searchServices = await dispatch(\"getSearchServices\");\n const query = { ...getters.query };\n query.definitions = [Identifications.LOSSE_VACATURE];\n\n // If there is text search present in the query, update the sorting to sort on the text_score\n if (\n Array.isArray(getters.query.text_search) &&\n getters.query.text_search.length > 0\n ) {\n query.sorting = {\n type: \"text_score\",\n direction: \"DESCENDING\",\n };\n }\n\n // Retrieve the instances based on the active query and page\n const { data, meta } = await searchServices.postInstanceQuery(\n getters.pageSize,\n getters.pageNumber,\n query\n );\n\n // If there are instances, update the state accordingly. If no instances found, clear the store.\n if (data) {\n const mapped = data.map((item) => ({ [item.identification]: item }));\n const mappedData = Object.assign({}, ...mapped);\n commit(\"SET_LOSSE_VACATURES\", mappedData);\n } else {\n commit(\"SET_LOSSE_VACATURES\", {});\n }\n\n // Update the meta data of losse vacatures\n commit(\"SET_META_LOSSE_VACATURES\", meta);\n\n // Retrieve actions for each instance\n await dispatch(\"retrieveAllActions\");\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n SET_LOADING: (state, payload) => Vue.set(state, \"loading\", payload),\n SET_TIME_OUT: (state, payload) => Vue.set(state, \"timeout\", payload),\n\n SET_PAGE_NUMBER: (state, payload) =>\n Vue.set(state.pagination, \"page_number\", payload),\n SET_QUERY: (state, payload) => Vue.set(state, \"query\", payload),\n SET_QUERY_SORTING: (state, payload) =>\n Vue.set(state.query, \"sorting\", payload),\n SET_QUERY_TEXT_SEARCH: (state, payload) =>\n Vue.set(state.query, \"text_search\", payload),\n SET_QUERY_STATUSES: (state, payload) =>\n Vue.set(state.query, \"statuses\", payload),\n\n SET_REQUEST_ACTIONS: (state, { id, payload }) =>\n Vue.set(state.myRequests[id], \"actions\", payload),\n SET_HAS_ACTIONS: (state, { id, hasActions }) =>\n Vue.set(state.myRequests[id], \"hasActions\", hasActions),\n\n SET_MY_REQUESTS: (state, payload) => Vue.set(state, \"myRequests\", payload),\n SET_AMOUNT_REQUESTS: (state, payload) => Vue.set(state, \"meta\", payload),\n SET_AMOUNT_FILTERED_REQUESTS: (state, payload) =>\n Vue.set(state, \"metaFiltered\", payload),\n SET_REQUEST_CHAT: (state, { id, payload }) =>\n Vue.set(state.myRequests[id], \"chat\", payload),\n SET_HAS_CHAT: (state, { id, hasChat }) =>\n Vue.set(state.myRequests[id], \"hasChat\", hasChat),\n SET_AMOUNT_ACTIONS: (state, payload) =>\n Vue.set(state, \"totalActions\", payload),\n SET_LAST_RETRIEVED: (state, payload) =>\n Vue.set(state, \"lastRetrieved\", payload),\n\n SET_LOSSE_VACATURES: (state, payload) =>\n Vue.set(state, \"losseVacatures\", payload),\n SET_META_LOSSE_VACATURES: (state, payload) =>\n Vue.set(state, \"metaLosseVacatures\", payload),\n SET_TYPE_REQUEST: (state, payload) => Vue.set(state, \"isTypeLosse\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport {\n ActivityStates,\n Identifications,\n SortDirections,\n} from \"@/utils/GeneralConstants\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { CandidateTabs, CandidateView } from \"@/utils/GeneralConst/Candidate\";\nimport { createCustomSortingFunction } from \"@/utils/GeneralUtils\";\n\nconst TEXT = {\n text_query: null,\n search_fields: [\"NAME\", \"CONTENT\"],\n fuzzy: false,\n and_or: \"OR\",\n};\n\nconst CONTEXT = {\n role: \"Interne Kandidaat\",\n instance_identifiers: [],\n direction: \"to\",\n and_or: \"OR\",\n start: new Date(),\n};\n\nconst SELECTION_COMMISSION_CONTENT_QUERY = [\n {\n values: [\"nee\"],\n key: \"data-preselectie\",\n and_or: \"OR\",\n datatype: \"STRING\",\n },\n {\n values: [\"ja\"],\n key: \"data-preselectievoltooid\",\n and_or: \"OR\",\n datatype: \"STRING\",\n },\n];\n\nconst VOORRANG_STATUSES_QUERY_MANAGER = [\n {\n status: \"beoordelen voordracht\",\n and_or: \"OR\",\n },\n {\n status: \"afwijzing na voordracht\",\n and_or: \"OR\",\n },\n {\n status: \"afgewezen\",\n and_or: \"OR\",\n },\n {\n status: \"inplannen plaatsingsgesprek\",\n and_or: \"OR\",\n },\n {\n status: \"arbeidsvoorwaardengesprek\",\n and_or: \"OR\",\n },\n {\n status: \"afwijzing na plaatsingsgesprek\",\n and_or: \"OR\",\n },\n {\n status: \"avw overeengekomen\",\n and_or: \"OR\",\n },\n];\n\nconst state = {\n searchServices: null,\n instanceId: null,\n\n allCandidates: [],\n candidates: {},\n selectedCandidate: null,\n selectedCandidateIndex: 0,\n bulkActionsCandidates: null,\n\n page_number: 1,\n\n query: {\n definitions: [Identifications.KANDIDAAT],\n sorting: [\n { sort_type: \"text_score\", direction: \"DESCENDING\" },\n { sort_type: \"timestamp_created\", direction: \"DESCENDING\" },\n ],\n },\n\n voorrangQuery: {\n definitions: [Identifications.VOORRANGSKANDIDAAT],\n sorting: [\n { sort_type: \"text_score\", direction: \"DESCENDING\" },\n { sort_type: \"timestamp_created\", direction: \"DESCENDING\" },\n ],\n statuses: [],\n },\n tabs: [],\n\n isRecentActionBeoordelen: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n instanceId: (state) => state.instanceId,\n\n getCandidates: (state) => state.allCandidates,\n getCandidate: (state) => (id) => state.candidates[id],\n getSelectedCandidate: (state) => state.selectedCandidate,\n getSelectedCandidateIndex: (state) => state.selectedCandidateIndex,\n bulkActionsCandidates: (state) => state.bulkActionsCandidates,\n\n getSearch: (state) => state.query?.text_search,\n getQuery: (state) => state.query,\n getVoorrangQuery: (state) => state.voorrangQuery,\n\n tabs: (state) => state.tabs,\n isRecentActionBeoordelen: (state) => state.isRecentActionBeoordelen,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Function to retrieve both kinds (regular and priority) candidates\n * IMPORTANT!\n * Different types of candidates are fetched separately (due to optional status and content\n * values that can be added to the query) and later merged into one array (allCandidates).\n * @param dispatch\n * @param getters\n * @param commit\n * @param instanceId\n * @param fetchActions\n * @param updateStore\n * @returns {Promise<*[]>}\n */\n retrieveCandidates: async (\n { dispatch, getters, commit },\n { instanceId, fetchActions = true, updateStore = true }\n ) => {\n // Input validation\n if (!instanceId && !getters.instanceId) {\n console.error(\"No instance id provided\");\n return;\n }\n\n const capacityRequestId = instanceId ? instanceId : getters.instanceId;\n\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n\n await dispatch(\"updateCandidateQuery\", capacityRequestId);\n await dispatch(\"updatePriorityCandidateQuery\", capacityRequestId);\n\n let generalMeta = {\n current_page: 0,\n };\n let general = [];\n let voorrangMeta = {\n current_page: 0,\n };\n let voorrang = [];\n\n // Retrieve all general candidates\n do {\n generalMeta.current_page += 1;\n const generalResponse = await searchServices.postInstanceQuery(\n process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n generalMeta.current_page,\n getters.getQuery\n );\n generalMeta = generalResponse.meta;\n if (generalResponse && generalResponse.data) {\n general = general.concat(generalResponse.data);\n }\n } while (\n generalMeta.total_pages &&\n generalMeta.total_pages > generalMeta.current_page\n );\n\n // Retrieve all priority candidates\n do {\n voorrangMeta.current_page += 1;\n const voorrangResponse = await searchServices.postInstanceQuery(\n process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n voorrangMeta.current_page,\n getters.getVoorrangQuery\n );\n voorrangMeta = voorrangResponse.meta;\n if (voorrangResponse && voorrangResponse.data) {\n voorrang = voorrang.concat(voorrangResponse.data);\n }\n } while (\n voorrangMeta.total_pages &&\n voorrangMeta.total_pages > voorrangMeta.current_page\n );\n\n let candidates = [...general, ...voorrang];\n\n if (fetchActions) {\n candidates = await dispatch(\"fetchCandidatesActions\", candidates);\n }\n if (updateStore) {\n commit(\"SET_CANDIDATES\", candidates);\n } else {\n return candidates;\n }\n } catch (e) {\n console.error(e);\n }\n },\n\n /**\n * Function to set other available candidate actions\n * @param _context\n * @param actions\n * @returns {*[]}\n */\n setOtherActions: (_context, actions) => {\n let other = [];\n for (const action of actions) {\n if (\n actions.filter(\n (a) =>\n a.definition.identification === action.definition.identification\n ).length > 1\n ) {\n if (action.state === ActivityStates.STARTED) {\n other = [...other, action];\n }\n } else {\n other = [...other, action];\n }\n }\n return other;\n },\n\n /**\n * Function to fetch actions of each candidate in candidates array\n * @param dispatch\n * @param candidates\n * @returns {Promise<*>}\n */\n fetchCandidatesActions: async ({ dispatch }, candidates) => {\n try {\n for (const candidate of candidates) {\n const [_all, special, others] = await dispatch(\n \"instanceFlow/getActions\",\n candidate.identification,\n {\n root: true,\n }\n );\n\n if (others && special) {\n candidate.actions = dispatch(\"setOtherActions\", others);\n candidate.specialActions = special;\n }\n }\n } catch (e) {\n console.error(e);\n }\n return candidates;\n },\n\n /**\n * Function to retrieve a candidate by ID\n * @param dispatch\n * @param getters\n * @param commit\n * @param candidateId\n * @return {Promise}\n */\n retrieveCandidate: async ({ dispatch, commit }, candidateId) => {\n // Input validation\n if (!IdUtils.isUUID(candidateId)) {\n throw new StoreException(\"Invalid id to retrieveCandidate\");\n }\n\n let candidateInstance = false;\n\n try {\n // Retrieve instance\n candidateInstance = await dispatch(\n \"genericInstance/getGenericInstance\",\n candidateId,\n { root: true }\n );\n } catch (error) {\n console.error(error);\n }\n\n // Validate if instance is a candidate\n if (\n !candidateInstance.data ||\n !candidateInstance.data.hasOwnProperty(\"relationships\") ||\n (candidateInstance.data.relationships.definition.identification !==\n Identifications.KANDIDAAT &&\n candidateInstance.data.relationships.definition.identification !==\n Identifications.VOORRANGSKANDIDAAT)\n ) {\n candidateInstance = false;\n }\n\n if (!candidateInstance) {\n // No instance retrieved\n throw new StoreException(\"No candidate found in retrieveCandidate\");\n } else {\n // Also retrieve the full context of the candidate\n candidateInstance.data.relationships.context = await dispatch(\n \"genericInstance/getInstanceContext\",\n candidateId,\n {\n root: true,\n }\n );\n\n // Store and return\n commit(\"ADD_CANDIDATE\", candidateInstance.data);\n }\n return candidateInstance.data ? candidateInstance.data : undefined;\n },\n\n /**\n * Function to update the regular candidates query with relevant context and content\n * @param rootGetters\n * @param commit\n * @param capacityRequestId\n * @returns {Promise}\n */\n updateCandidateQuery: async ({ rootGetters, commit }, capacityRequestId) => {\n // Setup internal and external context query params\n const internal = { ...CONTEXT };\n internal.role = \"Interne Kandidaat\";\n internal.instance_identifiers = [capacityRequestId];\n\n const external = { ...CONTEXT };\n external.role = \"Externe Kandidaat\";\n external.instance_identifiers = [capacityRequestId];\n\n commit(\"SET_QUERY_CONTEXT\", [internal, external]);\n\n // If the user is not allowed to see all candidates, add the pre-selection content query filter\n if (\n !rootGetters.isUserAdmin &&\n !rootGetters.isUserRecruiter &&\n !rootGetters.isUserBackoffice\n ) {\n commit(\"SET_QUERY_CONTENT\", SELECTION_COMMISSION_CONTENT_QUERY);\n } else {\n // If allowed, clear the content query filter from any previous applied fiters\n commit(\"SET_QUERY_CONTENT\", []);\n }\n },\n\n /**\n * Function to update the priority candidates query with relevant context and status\n * @param rootGetters\n * @param commit\n * @param capacityRequestId\n * @returns {Promise}\n */\n updatePriorityCandidateQuery: async (\n { rootGetters, commit },\n capacityRequestId\n ) => {\n // Setup basic Priority Candidate query context\n const context = { ...CONTEXT };\n context.role = \"Voorrangskandidaat\";\n context.instance_identifiers = [capacityRequestId];\n\n // If the user is not allowed to see all priority candidates, they should also be related as 'Manager'\n if (\n !rootGetters.isUserAdmin &&\n !rootGetters.isUserRecruiter &&\n !rootGetters.isUserBackoffice &&\n !rootGetters.isUserLBA\n ) {\n context.and_or = \"AND\";\n\n const managerContext = { ...CONTEXT };\n managerContext.role = \"Manager\";\n managerContext.and_or = \"AND\";\n managerContext.direction = \"from\";\n managerContext.instance_identifiers = [rootGetters.userId];\n\n commit(\"SET_VOORRANG_QUERY_CONTEXT\", [context, managerContext]);\n commit(\"SET_VOORRANG_QUERY_STATUS\", VOORRANG_STATUSES_QUERY_MANAGER);\n } else {\n commit(\"SET_VOORRANG_QUERY_CONTEXT\", [context]);\n }\n },\n\n /**\n * Function to set search term in the regular candidates query\n * @param commit\n * @param text\n * @returns {Promise}\n */\n setSearch: async ({ commit }, text) => {\n try {\n if (text) {\n const textQuery = TEXT;\n textQuery.text_query = text;\n\n commit(\"SET_QUERY_TEXT_SEARCH\", [textQuery]);\n } else {\n commit(\"SET_QUERY_TEXT_SEARCH\", []);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Function to set status in the regular candidates query\n * @param commit\n * @param dispatch\n * @param getters\n * @param status\n * @returns {Promise}\n */\n setStatus: async ({ commit, dispatch, getters }, status) => {\n try {\n if (status) {\n commit(\"SET_QUERY_STATUSES\", [{ status: status, and_or: \"OR\" }]);\n } else {\n commit(\"SET_QUERY_STATUSES\", []);\n }\n\n await dispatch(\"retrieveCandidates\", { instanceId: getters.instanceId });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Function to set selected candidate index in the store\n * @param commit\n * @param val\n * @returns {Promise}\n */\n setSelectedCandidateIndex: async ({ commit }, val) => {\n commit(\"SET_CANDIDATE_INDEX\", val);\n },\n\n /**\n * Function to set selected candidate object in the store\n * @param commit\n * @param val\n * @returns {Promise}\n */\n setSelectedCandidate: async ({ commit }, val) => {\n commit(\"SET_SELECTED_CANDIDATE\", val);\n },\n\n /**\n * Function to set instance (capacity request) ID in the store\n * @param commit\n * @param val\n * @returns {Promise}\n */\n setInstanceId: async ({ commit }, val) => {\n commit(\"SET_INSTANCE_ID\", val);\n },\n\n /**\n * Function to set available tabs for the candidate view\n * @param commit\n * @param routeName\n * @param isVoorrangskandidaat\n * @returns {Promise}\n */\n setTabs: async ({ commit }, { routeName, isVoorrangskandidaat }) => {\n if (routeName && routeName === \"SollicitatieDetails\") {\n const tabs = [\n CandidateTabs.JOUWSOLLICITATIE,\n CandidateTabs.SOLLICITATIEVERLOOP,\n CandidateTabs.ACTIES,\n CandidateTabs.COMMUNICATIE,\n ];\n if (isVoorrangskandidaat) {\n tabs.splice(1, 1); // Delete Sollicitatieverloop\n }\n commit(\"SET_TABS\", tabs);\n } else if (routeName && CandidateView.STANDARD.includes(routeName)) {\n commit(\"SET_TABS\", [\n CandidateTabs.PROFIEL,\n CandidateTabs.ACTIES,\n CandidateTabs.SOLLICITATIEVERLOOP,\n CandidateTabs.COMMUNICATIE,\n CandidateTabs.BEOORDELINGEN,\n ]);\n }\n },\n\n /**\n * Function to reset the values in the store\n * @param commit\n * @returns {Promise}\n */\n reset: async ({ commit }) => {\n commit(\"SET_CANDIDATES\", null);\n commit(\"SET_INSTANCE_ID\", null);\n commit(\"SET_CANDIDATE_INDEX\", null);\n commit(\"SET_SELECTED_CANDIDATE\", null);\n },\n\n /**\n * Function to set available bulk actions\n * @param commit\n * @param candidatesData\n */\n setBulkActionCandidates({ commit }, candidatesData) {\n commit(\n \"SET_BULK_ACTIONS_CANDIDATES\",\n candidatesData ? candidatesData : null\n );\n },\n\n /**\n * Function to confirm whetehr the last executed action was a review action\n * @param commit\n * @param isRecentActionBeoordelen\n */\n setIfRecentActionBeoordelen({ commit }, isRecentActionBeoordelen) {\n commit(\"SET_IF_RECENT_ACTION_BEOORDELEN\", isRecentActionBeoordelen);\n },\n\n /**\n * Function to sort the candidates array by provided property and selected order\n * @param getters\n * @param commit\n * @param sorting\n */\n sortCandidates({ getters, commit }, sorting) {\n let sortedCandidates = getters.getCandidates;\n\n // If there's sorting order defined, sort the candidates array accordingly\n if (sorting.order) {\n // If status is the sorting prop, create an extra property \"sortStatus\" that takes the status value (string)\n if (sorting.prop === \"status\") {\n sortedCandidates.forEach((candidate) => {\n candidate.sortStatus = candidate.status[0].status;\n });\n sortedCandidates.sort(\n createCustomSortingFunction(\"sortStatus\", null, sorting.order)\n );\n } else {\n sortedCandidates.sort(\n createCustomSortingFunction(sorting.prop, null, sorting.order)\n );\n }\n } else {\n // If there's no sort order provided, apply default sorting\n sortedCandidates.sort(\n createCustomSortingFunction(\n \"timestamp_created\",\n null,\n SortDirections.DESCENDING\n )\n );\n }\n commit(\"SET_CANDIDATES\", sortedCandidates);\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n\n SET_CANDIDATES: (state, payload) => Vue.set(state, \"allCandidates\", payload),\n\n SET_SELECTED_CANDIDATE: (state, payload) =>\n Vue.set(state, \"selectedCandidate\", payload),\n\n SET_CANDIDATE_INDEX: (state, payload) =>\n Vue.set(state, \"selectedCandidateIndex\", payload),\n\n SET_BULK_ACTIONS_CANDIDATES: (state, payload) =>\n Vue.set(state, \"bulkActionsCandidates\", payload),\n\n ADD_CANDIDATE: (state, payload) =>\n Vue.set(state.candidates, payload.identification, payload),\n\n SET_TABS: (state, payload) => Vue.set(state, \"tabs\", payload),\n\n SET_QUERY_CONTEXT: (state, payload) =>\n Vue.set(state.query, \"context\", payload),\n\n SET_VOORRANG_QUERY_CONTEXT: (state, payload) =>\n Vue.set(state.voorrangQuery, \"context\", payload),\n\n SET_QUERY_CONTENT: (state, payload) =>\n Vue.set(state.query, \"content\", payload),\n\n SET_VOORRANG_QUERY_STATUS: (state, payload) =>\n Vue.set(state.voorrangQuery, \"statuses\", payload),\n\n SET_QUERY_TEXT_SEARCH: (state, payload) => {\n Vue.set(state.query, \"text_search\", payload);\n Vue.set(state.voorrangQuery, \"text_search\", payload);\n },\n SET_QUERY_STATUSES: (state, payload) => {\n Vue.set(state.query, \"statuses\", payload);\n Vue.set(state.voorrangQuery, \"statuses\", payload);\n },\n SET_INSTANCE_ID: (state, payload) => Vue.set(state, \"instanceId\", payload),\n SET_IF_RECENT_ACTION_BEOORDELEN: (state, payload) =>\n Vue.set(state, \"isRecentActionBeoordelen\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport {\n Roles,\n Identifications,\n Statuses,\n searchFields,\n} from \"@/utils/GeneralConstants\";\nimport {\n LBATabs,\n LBAGeneralActions,\n LBAVoorrangskandidatenActions,\n TypeKandidaat,\n} from \"@/utils/GeneralConst/Loopbaanadvies\";\nimport {\n TalentProfileTypes,\n TalentProfileStatuses,\n} from \"@/utils/GeneralConst/TalentProfile\";\nimport {\n setTableFormatForLBAProfiles,\n mapToGetArrayOfIdsAndNames,\n} from \"@/utils/Utils/LoopbaanadviesUtils\";\nimport { AanvraagNonShowActions } from \"@/utils/GeneralConst/CapacityRequest\";\n\nconst state = {\n searchServices: null,\n activeTab: \"\",\n currentFilter: \"\",\n currentSearch: \"\",\n fuzzySearch: true,\n pageNumberCurrentProfilesTab: 1,\n\n profilesSearchQuery: {},\n LBAContext: [\n {\n role: Roles.LOOPBAAN_ADVISEUR,\n start: new Date().toISOString(),\n and_or: \"OR\",\n direction: \"from\",\n instance_identifiers: [],\n },\n ],\n VoorangskandidatenContent: {\n values: [\n \"boventallig\",\n \"pre-boventallig\",\n \"re-integratie\",\n \"administratief geplaatst\",\n ],\n key: \"zoekrichting-categorie\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n\n nrMyProfiles: null,\n nrVacanciesInMobilityPhase: null,\n\n queryForVacanciesInMobilityPhase: {\n statuses: [\n {\n and_or: \"OR\",\n status: Statuses.MOBILITEITSFASE.label,\n },\n ],\n sorting: [\n {\n sort_type: \"timestamp_created\",\n direction: \"DESCENDING\",\n },\n ],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n },\n dataVacanciesInMobilityPhase: null,\n metaVacanciesInMobilityPhase: null,\n\n dataSelectedProfiles: null,\n metaSelectedProfiles: null,\n\n pageNrAllProfiles: 1,\n dataAllProfiles: {},\n metaAllProfiles: {},\n mappedDataAllProfiles: null,\n\n pageNrVoorangskandidaten: 1,\n dataVoorangskandidaten: {},\n metaVoorangskandidaten: {},\n mappedDataVoorangskandidaten: null,\n\n pageNrMyCandidates: 1,\n dataMyCandidates: {},\n metaMyCandidates: {},\n mappedDataMyCandidates: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n activeTab: (state) => state.activeTab,\n currentFilter: (state) => state.currentFilter,\n currentSearch: (state) => state.currentSearch,\n fuzzySearch: (state) => state.fuzzySearch,\n pageNumberCurrentProfilesTab: (state) => state.pageNumberCurrentProfilesTab,\n\n profilesSearchQuery: (state) => state.profilesSearchQuery,\n LBAContext: (state) => state.LBAContext,\n VoorangskandidatenContent: (state) => state.VoorangskandidatenContent,\n\n nrMyProfiles: (state) => state.nrMyProfiles,\n nrVacanciesInMobilityPhase: (state) => state.nrVacanciesInMobilityPhase,\n\n queryForVacanciesInMobilityPhase: (state) =>\n state.queryForVacanciesInMobilityPhase,\n dataVacanciesInMobilityPhase: (state) => state.dataVacanciesInMobilityPhase,\n metaVacanciesInMobilityPhase: (state) => state.metaVacanciesInMobilityPhase,\n\n dataSelectedProfiles: (state) => state.dataSelectedProfiles,\n metaSelectedProfiles: (state) => state.metaSelectedProfiles,\n\n pageNrAllProfiles: (state) => state.pageNrAllProfiles,\n dataAllProfiles: (state) => state.dataAllProfiles,\n metaAllProfiles: (state) => state.metaAllProfiles,\n mappedDataAllProfiles: (state) => state.mappedDataAllProfiles,\n\n pageNrVoorangskandidaten: (state) => state.pageNrVoorangskandidaten,\n dataVoorangskandidaten: (state) => state.dataVoorangskandidaten,\n metaVoorangskandidaten: (state) => state.metaVoorangskandidaten,\n mappedDataVoorangskandidaten: (state) => state.mappedDataVoorangskandidaten,\n\n pageNrMyCandidates: (state) => state.pageNrMyCandidates,\n dataMyCandidates: (state) => state.dataMyCandidates,\n metaMyCandidates: (state) => state.metaMyCandidates,\n mappedDataMyCandidates: (state) => state.mappedDataMyCandidates,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /* LOOPBAANADVIES: PROFIELEN */\n\n /**\n * Fetches the number of the talent profiles assigned to a logged loopbaanadviseur.\n * @param getters\n * @param dispatch\n * @param commit\n * @returns {Promise}\n */\n getNrMyProfiles: async ({ getters, dispatch, commit }) => {\n try {\n // Determine which tab is currently active in order to set the right query\n commit(\"SET_ACTIVE_TAB\", LBATabs.ALLE_PROFIELEN);\n await dispatch(\"setCorrectSearchQuery\", { filter: null });\n\n const searchServices = await dispatch(\"getSearchServices\");\n\n // Retrieve the instances based on the created query and page\n const { meta } = await searchServices.postInstanceQuery(\n process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n process.env.VUE_APP_GLOBAL_PAGE_NUMBER,\n getters.profilesSearchQuery\n );\n commit(\"SET_NUMBER_MY_PROFILES\", meta.total_found);\n commit(\"SET_META_MY_CANDIDATES\", meta);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets currently active tab in order to show the corresponding data.\n * @param commit\n * @param tab\n * @returns {Promise}\n */\n setActiveTab: async ({ commit }, { tab = null }) => {\n try {\n if (!tab) {\n tab = LBATabs.ALLE_PROFIELEN;\n }\n // Checks if the submitted tab name is correct in reference to the constants file\n if (Object.values(LBATabs).indexOf(tab) < 0) {\n console.error(\"The name of the tab is incorrect. Try again.\");\n }\n await commit(\"SET_ACTIVE_TAB\", tab);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Set correct search query to fetch the talent profiles' data meeting the criteria determined by the tab name and supplied by a user.\n * @param rootGetters\n * @param getters\n * @param commit\n * @param filter\n * @param searchTerm\n * @returns {Promise}\n */\n setCorrectSearchQuery: async (\n { rootGetters, getters, commit },\n { filter, searchTerm }\n ) => {\n try {\n const query = {\n definitions: [Identifications.TALENT_PROFIEL],\n statuses: [\n { status: TalentProfileStatuses.ACTIEF, and_or: \"OR\" },\n { status: TalentProfileStatuses.TER_AKKOORD, and_or: \"OR\" },\n { status: TalentProfileStatuses.AANVULLING_NODIG, and_or: \"OR\" },\n ],\n };\n\n // Sets the query parameters (context, content and statuses) based on the current active tab\n switch (getters.activeTab) {\n case LBATabs.ALLE_PROFIELEN:\n delete query.context;\n delete query.content;\n break;\n case LBATabs.VOORANGSKANDIDATEN:\n query.content = [getters.VoorangskandidatenContent];\n delete query.context;\n break;\n case LBATabs.MIJN_KANDIDATEN:\n query.context = getters.LBAContext;\n query.context[0].instance_identifiers = [rootGetters.userId];\n delete query.statuses;\n delete query.content;\n break;\n default:\n break;\n }\n\n // Checks if the submitted filter is correct based on the list saved in the constants file\n if (filter && Object.values(TalentProfileTypes).indexOf(filter) < 0) {\n console.error(\"Submitted filter is incorrect. Try again.\");\n }\n\n // Sets new value of the filter in the store\n if (filter) {\n commit(\"SET_CURRENT_FILTER\", filter);\n } else {\n commit(\"SET_CURRENT_FILTER\", null);\n }\n\n // Sets the content of the query depending on the active tab – allActions tab has also other required content in the query\n if (filter) {\n query.content = [\n {\n values: [filter],\n key: \"algemeen-type\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n ];\n } else if (!filter) {\n delete query.content;\n }\n\n if (filter && getters.activeTab === LBATabs.VOORANGSKANDIDATEN) {\n query.content = [\n getters.VoorangskandidatenContent,\n {\n values: [filter],\n key: \"algemeen-type\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n ];\n } else if (!filter && getters.activeTab === LBATabs.VOORANGSKANDIDATEN) {\n query.content = [getters.VoorangskandidatenContent];\n }\n\n // Checks if the submitted searchTerm is of the right type\n if (searchTerm && typeof searchTerm !== \"string\") {\n console.error(\"Submitted search term is incorrect. Try again.\");\n }\n\n // Sets new value of the searchTerm in the store\n if (searchTerm) {\n query.search_query = searchTerm;\n commit(\"SET_CURRENT_SEARCH\", searchTerm);\n } else {\n delete query.search_query;\n commit(\"SET_CURRENT_SEARCH\", null);\n }\n\n // Sets new value of the search query in the store\n commit(\"SET_PROFILE_SEARCH_QUERY\", query);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Fetches the talent profiles' data based on the search query (set with the function above).\n * @param rootGetters\n * @param getters\n * @param dispatch\n * @param commit\n * @param filter\n * @param searchTerm\n * @param fuzzySearch\n * @returns {Promise}\n */\n fetchTheData: async (\n { getters, dispatch, commit },\n { filter, searchTerm, fuzzySearch }\n ) => {\n try {\n // Checks if fuzzySearch variable is of the right type\n if (fuzzySearch && typeof fuzzySearch !== \"boolean\") {\n console.error(\"Submitted search type is incorrect. Try again.\");\n }\n // Assigns the value to the current filter considering user's input and filter's state in the store\n const thisFilter = filter ? filter : getters.currentFilter;\n // Assigns the value to the current search term considering user's input and search term's state in the store\n const thisSearch = searchTerm ? searchTerm : getters.currentSearch;\n\n // Calls the function to set the correct query for the current data-fetching call\n await dispatch(\"setCorrectSearchQuery\", {\n filter: thisFilter,\n searchTerm: thisSearch,\n });\n\n // Assigns the value to the current fuzzySearch considering user's input and fuzzySearch's state in the store\n const thisFuzzySearch = fuzzySearch ? fuzzySearch : getters.fuzzySearch;\n // Updates the value of the fuzzySearch in the store\n commit(\"SET_FUZZY_SEARCH\", thisFuzzySearch);\n\n // Sets the number of the page to fetch depending on the user's input and active tab\n let pageNumber = 0;\n switch (getters.activeTab) {\n case LBATabs.ALLE_PROFIELEN:\n pageNumber = getters.pageNrAllProfiles;\n break;\n case LBATabs.VOORANGSKANDIDATEN:\n pageNumber = getters.pageNrVoorangskandidaten;\n break;\n case LBATabs.MIJN_KANDIDATEN:\n pageNumber = getters.pageNrMyCandidates;\n break;\n default:\n break;\n }\n\n // Gets the rest of the parameters from the store (including the newly-set query)\n const pageSize = process.env.VUE_APP_GLOBAL_PAGE_SIZE;\n const query = getters.profilesSearchQuery;\n\n const searchServices = await dispatch(\"getSearchServices\");\n const { data, meta } = await searchServices.postInstanceQuery(\n pageSize,\n pageNumber,\n query,\n thisFuzzySearch,\n searchFields\n );\n\n // Sets the data object of the active tab with the fetched data\n let mappedProfilesData;\n if (data) {\n const mapped = data.map((item) => ({ [item.identification]: item }));\n mappedProfilesData = Object.assign({}, ...mapped);\n }\n await commit(\"SET_META_SELECTED_PROFILES\", meta);\n switch (getters.activeTab) {\n case LBATabs.ALLE_PROFIELEN:\n await commit(\n \"SET_DATA_ALL_PROFILES\",\n mappedProfilesData ? mappedProfilesData : {}\n );\n await commit(\"SET_META_ALL_PROFILES\", meta);\n break;\n case LBATabs.VOORANGSKANDIDATEN:\n await commit(\n \"SET_DATA_VOORANGSKANDIDATEN\",\n mappedProfilesData ? mappedProfilesData : {}\n );\n await commit(\"SET_META_VOORANGSKANDIDATEN\", meta);\n break;\n case LBATabs.MIJN_KANDIDATEN:\n await commit(\n \"SET_DATA_MY_CANDIDATES\",\n mappedProfilesData ? mappedProfilesData : {}\n );\n await commit(\"SET_META_MY_CANDIDATES\", meta);\n break;\n default:\n break;\n }\n\n // Calls the function to map the data so it can be displayed in the table\n await dispatch(\"mapTheData\");\n\n // Calls the function to set the data of currently viewed tab (profiles segment)\n await dispatch(\"setDataSelectedProfiles\");\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Maps the data object to turn it into an array formatted properly for el-table.\n * @param commit\n * @param getters\n * @returns {Promise}\n */\n mapTheData: async ({ commit, getters }) => {\n try {\n let array;\n // Selects the right data object (based on the active tab) and turn it into an array of values\n\n switch (getters.activeTab) {\n case LBATabs.ALLE_PROFIELEN:\n array = Object.values(getters.dataAllProfiles);\n await commit(\n \"SET_MAPPED_DATA_ALL_PROFILES\",\n setTableFormatForLBAProfiles(array)\n );\n break;\n case LBATabs.VOORANGSKANDIDATEN:\n array = Object.values(getters.dataVoorangskandidaten);\n await commit(\n \"SET_MAPPED_DATA_VOORANGSKANDIDATEN\",\n setTableFormatForLBAProfiles(array)\n );\n break;\n case LBATabs.MIJN_KANDIDATEN:\n array = Object.values(getters.dataMyCandidates);\n await commit(\n \"SET_MAPPED_DATA_MY_CANDIDATES\",\n setTableFormatForLBAProfiles(array)\n );\n break;\n default:\n break;\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Cancels the filter currently applied on the data.\n * @param commit\n * @returns {Promise}\n */\n cancelAppliedFilter: async ({ commit, dispatch }) => {\n try {\n // Cancels the current filter\n await commit(\"SET_CURRENT_FILTER\", null);\n // Calls the search function to repeat the call with the updated parameters\n await dispatch(\"fetchTheData\", { filter: null });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Cancels the search currently applied on the data.\n * @param commit\n * @returns {Promise}\n */\n cancelAppliedSearch: async ({ commit, dispatch, getters }) => {\n try {\n // Cancels the current searchTerm and sets the fuzzySearch to default (not exact)\n await commit(\"SET_CURRENT_SEARCH\", null);\n await commit(\"SET_FUZZY_SEARCH\", true);\n // Calls the search function to repeat the call with the updated parameters\n await dispatch(\"fetchTheData\", { filter: getters.currentFilter });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets the exactness of the search call (fuzzy is not exact).\n * @param commit\n * @param dispatch\n * @param getters\n * @returns {Promise}\n */\n setFuzzySearch: async ({ commit, dispatch, getters }) => {\n try {\n // Sets the value of the fuzzySearch to the opposite value\n const currentFuzzy = getters.fuzzySearch;\n await commit(\"SET_FUZZY_SEARCH\", !currentFuzzy);\n // Calls the search function to repeat the call with the updated parameters\n await dispatch(\"fetchTheData\", { filter: null });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Sets the page number based on user's input and fetches the data from a given page.\n * @param commit\n * @param dispatch\n * @param getters\n * @param pageNumber\n * @returns {Promise}\n */\n setPageNumber: async ({ commit, dispatch, getters }, pageNumber) => {\n try {\n // Checks if the submitted pageNumber is of the correct type\n if (typeof pageNumber !== \"number\") {\n console.error(\"Submitted page number is incorrect. Try again.\");\n }\n // Sets the value of the current page for a certain tab (currently active one)\n switch (getters.activeTab) {\n case LBATabs.ALLE_PROFIELEN:\n await commit(\"SET_PAGE_NR_ALL_PROFILES\", pageNumber);\n break;\n case LBATabs.VOORANGSKANDIDATEN:\n await commit(\"SET_PAGE_NR_VOORANGSKANDIDATEN\", pageNumber);\n break;\n case LBATabs.MIJN_KANDIDATEN:\n await commit(\"SET_PAGE_NR_MY_CANDIDATES\", pageNumber);\n break;\n default:\n break;\n }\n // Sets the page number for the current tab in the Profiles Overview of LBA\n await commit(\"SET_PAGE_NR_CURRENT_PROFILES_TAB\", pageNumber);\n // Calls the search function to repeat the call with the updated parameters\n await dispatch(\"fetchTheData\", { filter: null });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Cancels the filter and the search currently applied on the data.\n * @param dispatch\n * @param commit\n * @returns {Promise}\n */\n resetTheView: async ({ dispatch, commit }) => {\n try {\n // Cancels the current filter, the searchTerm and sets the fuzzySearch to default (not exact)\n await commit(\"SET_CURRENT_FILTER\", null);\n await commit(\"SET_CURRENT_SEARCH\", null);\n await commit(\"SET_FUZZY_SEARCH\", true);\n // Calls the search function to repeat the call with the updated parameters\n await dispatch(\"fetchTheData\", { filter: null });\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Step 1: Sets the data of all the profiles based on the currently viewed tab and selected data manipulation.\n * Step 2: Formats the data to receive an object of IDs and full names of the profile owners.\n * @param commit\n * @param getters\n * @param dispatch\n * @returns {Promise}\n */\n setDataSelectedProfiles: async ({ commit, getters, dispatch }) => {\n const pageSize = getters.metaSelectedProfiles.total_found;\n const pageNumber = process.env.VUE_APP_GLOBAL_PAGE_NUMBER;\n const query = getters.profilesSearchQuery;\n const thisFuzzySearch = getters.fuzzySearch;\n\n if (pageSize > 0) {\n // Fetches the data of all the profiles reusing the query that was just set for the fetchTheData() function\n // Only the page size has been replaced with the meta.total_found\n const searchServices = await dispatch(\"getSearchServices\");\n const { data } = await searchServices.postInstanceQuery(\n pageSize,\n pageNumber,\n query,\n thisFuzzySearch,\n searchFields\n );\n // Sets the data of selected profiles with formatted data object (IDs and names)\n commit(\n \"SET_DATA_SELECTED_PROFILES\",\n data ? mapToGetArrayOfIdsAndNames(data) : null\n );\n } else {\n commit(\"SET_DATA_SELECTED_PROFILES\", null);\n }\n },\n\n /* LOOPBAANADVIES VACATURES */\n\n /**\n * Fetches the data and meta of vacancies in the mobility phase.\n * @param rootGetters\n * @param dispatch\n * @param getters\n * @param commit\n * @returns {Promise}\n */\n getVacanciesInMobilityPhase: async ({ dispatch, getters, commit }) => {\n try {\n const searchServices = await dispatch(\"getSearchServices\");\n\n const query = getters.queryForVacanciesInMobilityPhase;\n const { meta, data } = await searchServices.postInstanceQuery(\n process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n process.env.VUE_APP_GLOBAL_PAGE_NUMBER,\n query\n );\n\n if (data) {\n commit(\n \"SET_DATA_VACANCIES_IN_MOBILITY_PHASE\",\n data.reduce(\n (obj, cur) => ({\n ...obj,\n [cur.identification]: cur,\n }),\n {}\n )\n );\n }\n commit(\"SET_NUMBER_VACANCIES_IN_MOBILITY_PHASE\", meta.total_found);\n commit(\"SET_META_VACANCIES_IN_MOBILITY_PHASE\", meta);\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Gets the actions assigned to a certain vacancy.\n * @param dispatch\n * @param vacatureId\n * @returns {Promise<*>}\n */\n getVacancyActions: async ({ dispatch }, vacatureId) => {\n try {\n // Fetches the actions of one instance based on that instance's ID\n const [allActions, specialActions, otherActions] = await dispatch(\n \"instanceFlow/getActions\",\n vacatureId,\n {\n root: true,\n }\n );\n\n if (otherActions) {\n // Map the actions array so it meets the OmniTable requirements\n const mappedActions = otherActions.map((action) => {\n return {\n key: action.identification,\n label: action.definition.name,\n id: action.identification,\n definitionId: action.definition.identification,\n };\n });\n return mappedActions.filter(\n (action) =>\n !Object.values(AanvraagNonShowActions).includes(action.definitionId)\n );\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Fetches the actions assigned to a particular profile instance based on that instance's ID\n * @param dispatch\n * @param requestId\n * @returns {Promise<*>}\n */\n getProfileActions: async ({ dispatch }, profileId, profileType) => {\n try {\n // Fetches the actions of one profile instance based on that instance's ID.\n const [allActions, specialActions, otherActions] = await dispatch(\n \"instanceFlow/getActions\",\n profileId,\n {\n root: true,\n }\n );\n\n let actions;\n // Filters the actions to receive a list of actions available for a certain profile type.\n if (otherActions) {\n if (profileType === TypeKandidaat.VOORANGSKANDIDAAT) {\n actions = otherActions.filter((action) => {\n return Object.values(LBAVoorrangskandidatenActions).includes(\n action.definition.identification\n );\n });\n } else {\n actions = otherActions.filter((action) => {\n return Object.values(LBAGeneralActions).includes(\n action.definition.identification\n );\n });\n }\n }\n\n if (actions) {\n return actions.map((action) => {\n return {\n key: action.identification,\n label: action.definition.name,\n id: action.identification,\n };\n });\n }\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n SET_ACTIVE_TAB: (state, payload) => Vue.set(state, \"activeTab\", payload),\n SET_CURRENT_FILTER: (state, payload) =>\n Vue.set(state, \"currentFilter\", payload),\n SET_CURRENT_SEARCH: (state, payload) =>\n Vue.set(state, \"currentSearch\", payload),\n SET_FUZZY_SEARCH: (state, payload) => Vue.set(state, \"fuzzySearch\", payload),\n SET_PAGE_NR_CURRENT_PROFILES_TAB: (state, payload) =>\n Vue.set(state, \"pageNumberCurrentProfilesTab\", payload),\n\n SET_PROFILE_SEARCH_QUERY: (state, payload) =>\n Vue.set(state, \"profilesSearchQuery\", payload),\n\n SET_NUMBER_MY_PROFILES: (state, payload) =>\n Vue.set(state, \"nrMyProfiles\", payload),\n SET_NUMBER_VACANCIES_IN_MOBILITY_PHASE: (state, payload) =>\n Vue.set(state, \"nrVacanciesInMobilityPhase\", payload),\n\n SET_DATA_VACANCIES_IN_MOBILITY_PHASE: (state, payload) =>\n Vue.set(state, \"dataVacanciesInMobilityPhase\", payload),\n SET_META_VACANCIES_IN_MOBILITY_PHASE: (state, payload) =>\n Vue.set(state, \"metaVacanciesInMobilityPhase\", payload),\n\n SET_DATA_SELECTED_PROFILES: (state, payload) =>\n Vue.set(state, \"dataSelectedProfiles\", payload),\n SET_META_SELECTED_PROFILES: (state, payload) =>\n Vue.set(state, \"metaSelectedProfiles\", payload),\n\n SET_PAGE_NR_ALL_PROFILES: (state, payload) =>\n Vue.set(state, \"pageNrAllProfiles\", payload),\n SET_DATA_ALL_PROFILES: (state, payload) =>\n Vue.set(state, \"dataAllProfiles\", payload),\n SET_META_ALL_PROFILES: (state, payload) =>\n Vue.set(state, \"metaAllProfiles\", payload),\n SET_MAPPED_DATA_ALL_PROFILES: (state, payload) =>\n Vue.set(state, \"mappedDataAllProfiles\", payload),\n\n SET_PAGE_NR_VOORANGSKANDIDATEN: (state, payload) =>\n Vue.set(state, \"pageNrVoorangskandidaten\", payload),\n SET_DATA_VOORANGSKANDIDATEN: (state, payload) =>\n Vue.set(state, \"dataVoorangskandidaten\", payload),\n SET_META_VOORANGSKANDIDATEN: (state, payload) =>\n Vue.set(state, \"metaVoorangskandidaten\", payload),\n SET_MAPPED_DATA_VOORANGSKANDIDATEN: (state, payload) =>\n Vue.set(state, \"mappedDataVoorangskandidaten\", payload),\n\n SET_PAGE_NR_MY_CANDIDATES: (state, payload) =>\n Vue.set(state, \"pageNrMyCandidates\", payload),\n SET_DATA_MY_CANDIDATES: (state, payload) =>\n Vue.set(state, \"dataMyCandidates\", payload),\n SET_META_MY_CANDIDATES: (state, payload) =>\n Vue.set(state, \"metaMyCandidates\", payload),\n SET_MAPPED_DATA_MY_CANDIDATES: (state, payload) =>\n Vue.set(state, \"mappedDataMyCandidates\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { ProcessServices } from \"@/services/ProcessServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { Identifications, Roles } from \"@/utils/GeneralConstants\";\nimport { ApplicationsTypes } from \"@/utils/GeneralConst/Candidate\";\n\nconst state = {\n searchServices: null,\n processServices: null,\n myApplications: null,\n pageSize: process.env.VUE_APP_GLOBAL_PAGE_SIZE,\n pageNumber: 1,\n meta: null,\n query: null,\n\n applicationType: null,\n sorting: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n processServices: (state) => state.processServices,\n myApplications: (state) => {\n if (!state || !state.myApplications) {\n return null;\n }\n return state.myApplications;\n },\n pageSize: (state) => state.pageSize,\n pageNumber: (state) => state.pageNumber,\n query: (state) => state.query,\n meta: (state) => state.meta,\n applicationType: (state) => state.applicationType,\n sorting: (state) => state.sorting,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateSearchServices: ({ getters, rootGetters }) => {\n try {\n const searchServices = getters.searchServices;\n if (searchServices) {\n searchServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Internal action for initializing and returning the ProcessServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getProcessServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.processServices) {\n commit(\n \"SET_PROCESS_SERVICES\",\n new ProcessServices(rootGetters.organisationId)\n );\n }\n\n return getters.processServices;\n } catch (error) {\n throw new StoreException(\"getProcessServices: \" + error.message);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n *\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateProcessServices: ({ getters, rootGetters }) => {\n try {\n const processServices = getters.processServices;\n if (processServices) {\n processServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Configure the query to fetch specific applications\n * @param rootGetters\n * @param getters\n * @param commit\n * @param refresh\n * @returns {any}\n */\n configureQuery: ({ rootGetters, getters, commit }, refresh = false) => {\n if (getters.query && !refresh) {\n return getters.query;\n }\n\n const query = {\n context: [\n {\n role: Roles.KANDIDAAT_HOUDER,\n instance_identifiers: [rootGetters.userId],\n direction: \"from\",\n and_or: \"OR\",\n start: new Date(),\n },\n {\n role: Roles.VOORRANGSKANDIDAAT_HOUDER,\n instance_identifiers: [rootGetters.userId],\n direction: \"from\",\n and_or: \"OR\",\n start: new Date(),\n },\n ],\n definitions: [\n Identifications.KANDIDAAT,\n Identifications.VOORRANGSKANDIDAAT,\n ],\n };\n\n const applicationType = getters.applicationType\n ? getters.applicationType\n : ApplicationsTypes.ALLE.label;\n let statuses;\n\n if (applicationType === ApplicationsTypes.ALLE.label) {\n statuses = [];\n } else if (applicationType === ApplicationsTypes.LOPEND.label) {\n statuses = ApplicationsTypes.LOPEND.statuses.map((statusName) => {\n return { status: statusName, and_or: \"OR\" };\n });\n } else if (applicationType === ApplicationsTypes.AFGEROND.label) {\n statuses = ApplicationsTypes.AFGEROND.statuses.map((statusName) => {\n return { status: statusName, and_or: \"OR\" };\n });\n }\n Vue.set(query, \"statuses\", statuses);\n\n if (getters.sorting) {\n Vue.set(query, \"sorting\", [\n {\n sort_type: getters.sorting.type,\n direction: getters.sorting.direction,\n },\n ]);\n }\n commit(\"SET_QUERY\", query);\n return query;\n },\n\n /**\n * Retrieves open applications assigned to a logged user\n * @param getters\n * @param commit\n * @param dispatch\n * @param refresh\n * @returns {Promise}\n */\n retrieveMyApplications: async (\n { getters, commit, dispatch },\n refresh = false\n ) => {\n const searchServices = await dispatch(\"getSearchServices\");\n try {\n await dispatch(\"configureQuery\", refresh);\n\n const { data, meta } = await searchServices.postInstanceQuery(\n getters.pageSize,\n getters.pageNumber,\n getters.query,\n false\n );\n commit(\"SET_MY_APPLICATIONS\", data);\n commit(\"SET_META\", meta);\n } catch (error) {\n console.error(error);\n\n throw new StoreException(\n \"Something went wrong while retrieving my open applications\"\n );\n }\n },\n\n /**\n * Withdraws a given application\n * @param dispatch\n * @param instanceId\n * @returns {Promise}\n */\n startAndExecuteIntrekkenSollicitatie: async ({ dispatch }, instanceId) => {\n const processServices = await dispatch(\"getProcessServices\");\n try {\n await processServices.startAndExecuteStage(\n instanceId,\n Identifications.STAGE_DEFINITION_INTREKKEN_SOLLICITATIE,\n {\n zekerweten: true,\n }\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving my open applications\"\n );\n }\n },\n\n /**\n * Sets the page number\n * @param commit\n * @param dispatch\n * @param pageNumber\n * @returns {Promise}\n */\n setPageNumber: async ({ commit, dispatch }, pageNumber) => {\n commit(\"SET_PAGE_NUMBER\", pageNumber);\n await dispatch(\"retrieveMyApplications\");\n },\n\n /**\n * Sets the type of the applications that indicates the statuses of the applications\n * @param commit\n * @param status\n * @returns {Promise}\n */\n setApplicationType: async ({ commit }, applicationType) => {\n commit(\"SET_APPLICATION_TYPE\", applicationType);\n },\n\n /**\n * Sets sorting\n * @param commit\n * @param sorting\n * @returns {Promise}\n */\n setSorting: async ({ commit }, sorting) => {\n if (sorting && sorting.type) {\n if (!sorting.direction) {\n sorting.direction = \"DESCENDING\";\n }\n commit(\"SET_SORTING\", sorting);\n } else {\n commit(\"SET_SORTING\", null);\n }\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n SET_PROCESS_SERVICES: (state, payload) =>\n Vue.set(state, \"processServices\", payload),\n SET_MY_APPLICATIONS: (state, payload) =>\n Vue.set(state, \"myApplications\", payload),\n SET_META: (state, payload) => Vue.set(state, \"meta\", payload),\n\n SET_PAGE_NUMBER: (state, payload) => Vue.set(state, \"pageNumber\", payload),\n SET_PAGE_SIZE: (state, payload) => Vue.set(state, \"pageSize\", payload),\n SET_QUERY: (state, payload) => Vue.set(state, \"query\", payload),\n\n SET_APPLICATION_TYPE: (state, payload) =>\n Vue.set(state, \"applicationType\", payload),\n SET_SORTING: (state, payload) => Vue.set(state, \"sorting\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { GenericInstanceServices } from \"@/services/GenericInstanceServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { BulkActions } from \"@/utils/GeneralConstants\";\nimport { ProcessServices } from \"@/services/ProcessServices\";\n\nconst state = {\n genericInstanceServices: null,\n processServices: null,\n};\n\nconst getters = {\n genericInstanceServices: (state) => state.genericInstanceServices,\n processServices: (state) => state.processServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the GenericInstanceServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getGenericInstanceServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.genericInstanceServices) {\n commit(\n \"SET_GENERIC_INSTANCE_SERVICES\",\n new GenericInstanceServices(rootGetters.organisationId)\n );\n }\n return getters.genericInstanceServices;\n } catch (error) {\n throw new StoreException(\"getGenericInstanceServices: \" + error.message);\n }\n },\n\n /**\n * Internal action for initializing and returning the ProcessServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getProcessServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.processServices) {\n commit(\n \"SET_PROCESS_SERVICES\",\n new ProcessServices(rootGetters.organisationId)\n );\n }\n\n return getters.processServices;\n } catch (error) {\n throw new StoreException(\"getProcessServices: \" + error.message);\n }\n },\n\n /**\n * Fetches single activity's schema\n * @param dispatch\n * @param instanceId\n * @param activityDefinitionId\n * @returns {Promise<*>}\n */\n getActivitySchema: async (\n { dispatch },\n { instanceId, activityDefinitionId }\n ) => {\n if (!instanceId) {\n throw new StoreException(\"No instanceId provided\");\n }\n\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n return await genericInstanceServices.getActivitySchema(\n instanceId,\n activityDefinitionId\n );\n },\n\n /**\n * Fetches bulk actions available for selected instances\n * @param dispatch\n * @param instanceIds\n * @returns {Promise<*|undefined>}\n */\n getAvailableBulkActions: async ({ dispatch }, instanceIds) => {\n // Check if supplied data is an array of UUIDs\n if (!Array.isArray(instanceIds)) {\n throw new StoreException(\"Supplied data needs to be of the type array.\");\n }\n if (!instanceIds || !instanceIds.length) {\n throw new StoreException(\"The array can't be empty\");\n }\n if (instanceIds.map((id) => IdUtils.isUUID(id)).some((el) => !el)) {\n throw new StoreException(\n \"Supplied data needs to only includes instances' IDs.\"\n );\n }\n\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n const bulkActions = await genericInstanceServices.getBulkActions(\n instanceIds\n );\n return bulkActions && bulkActions.data && bulkActions.data.stages\n ? bulkActions.data.stages.filter((stage) =>\n Object.values(BulkActions).includes(stage.definition.identification)\n )\n : [];\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to get the available actions: \" +\n error.message\n );\n }\n },\n\n /**\n * Starts the process of performing a bulk action\n * @param dispatch\n * @param payload\n * @returns {Promise<*>}\n */\n prepareAvailableBulkAction: async (\n { dispatch },\n { stageId, activityType, instanceIds, body }\n ) => {\n if (!stageId || !activityType || !instanceIds) {\n throw new StoreException(\n \"stageId, activityType and instanceIds need to be supplied\"\n );\n }\n if (!activityType || typeof activityType !== \"string\") {\n throw new StoreException(\"No valid activityType provided\");\n }\n if (!instanceIds || !Array.isArray(instanceIds)) {\n throw new StoreException(\"No valid instanceIds provided\");\n }\n\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n\n return await genericInstanceServices.prepareBulkAction(\n stageId,\n instanceIds,\n body\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to prepare the action: \" +\n error.message\n );\n }\n },\n\n /**\n * Finishes the process of performing a bulk action\n * @param dispatch\n * @param stageId\n * @param activityType\n * @param instanceIds\n * @param body\n * @param payload\n * @returns {Promise<*|undefined>}\n */\n executeAvailableBulkAction: async (\n { dispatch },\n { stageId, activityType, instanceIds, body }\n ) => {\n if (!stageId || !activityType || !instanceIds) {\n throw new StoreException(\n \"stageId, activityType and instanceIds need to be supplied\"\n );\n }\n if (!activityType || typeof activityType !== \"string\") {\n throw new StoreException(\"No valid activityType provided\");\n }\n if (!instanceIds || !Array.isArray(instanceIds)) {\n throw new StoreException(\"No valid instanceIds provided\");\n }\n\n try {\n const genericInstanceServices = await dispatch(\n \"getGenericInstanceServices\"\n );\n\n return await genericInstanceServices.executeBulkAction(\n stageId,\n activityType,\n instanceIds,\n body\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to execute the action: \" +\n error.message\n );\n }\n },\n\n /**\n * Function to trigger (start) and execute process step of given instance with provided input\n * @param dispatch\n * @param stageId\n * @param instanceId\n * @param body\n * @returns {Promise>}\n */\n startAndExecuteAction: async (\n { dispatch },\n { stageId, instanceId, body }\n ) => {\n if (!stageId || !instanceId) {\n throw new StoreException(\"stageId and instanceId need to be supplied\");\n }\n\n try {\n const processServices = await dispatch(\"getProcessServices\");\n return await processServices.startAndExecuteStage(\n instanceId,\n stageId,\n body\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to execute the action: \" +\n error.message\n );\n }\n },\n};\n\nconst mutations = {\n SET_GENERIC_INSTANCE_SERVICES: (state, payload) =>\n Vue.set(state, \"genericInstanceServices\", payload),\n SET_PROCESS_SERVICES: (state, payload) =>\n Vue.set(state, \"processServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { SearchServices } from \"@/services/SearchServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { AanvraagNonShowActions } from \"@/utils/GeneralConst/CapacityRequest\";\n\nconst state = {\n searchServices: null,\n requestsNr: null,\n};\n\nconst getters = {\n searchServices: (state) => state.searchServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the SearchServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getSearchServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.searchServices) {\n commit(\n \"SET_SEARCH_SERVICES\",\n new SearchServices(rootGetters.organisationId)\n );\n }\n return getters.searchServices;\n } catch (error) {\n throw new StoreException(\"getSearchServices: \" + error.message);\n }\n },\n\n /**\n * Fetches the actions assigned to a particular instance based on that instance's ID\n * @param dispatch\n * @param requestId\n * @returns {Promise<*>}\n */\n getRequestActions: async ({ dispatch }, requestId) => {\n try {\n // Fetches the actions of one instance based on that instance's ID\n const [allActions, specialActions, otherActions] = await dispatch(\n \"instanceFlow/getActions\",\n requestId,\n {\n root: true,\n }\n );\n\n if (otherActions) {\n // Map the actions array so it meets the OmniTable requirements\n const mappedActions = otherActions.map((action) => {\n return {\n key: action.identification,\n label: action.definition.name,\n id: action.identification,\n definitionId: action.definition.identification,\n };\n });\n return mappedActions.filter(\n (action) =>\n !Object.values(AanvraagNonShowActions).includes(action.definitionId)\n );\n }\n } catch (error) {\n console.error(error);\n }\n },\n};\n\nconst mutations = {\n SET_SEARCH_SERVICES: (state, payload) =>\n Vue.set(state, \"searchServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nexport class MatchboxServices {\n constructor(bearer) {\n this.MATCHBOX = axios.create({\n baseURL: process.env.VUE_APP_MATCHBOX_API,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + bearer,\n },\n });\n }\n\n async getCandidates(options, filters, pageSize, pageNumber) {\n options.language = \"DUT\";\n const from = pageSize * pageNumber - pageSize;\n const data = {\n matchProfile: options,\n from: from,\n size: pageSize,\n queryParams: {\n scoreType: \"MUTUAL_FORWARD_SCORE\",\n },\n userLanguage: \"DUT\",\n };\n\n if (Object.keys(filters).length) {\n data.matchFilter = filters;\n }\n const url = \"hrmatching/match2candidates/amsterdam-candidates\";\n\n return this.MATCHBOX.post(url, JSON.stringify(data))\n .then((response) => {\n if (response.status === 200) {\n return response.data;\n } else {\n throw new ServiceException(\"Unable to retrieve candidates\");\n }\n })\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n\n async getJobs(payload, filter, pageSize, pageNumber, minScore = 0.0) {\n payload.language = \"DUT\";\n const from = pageSize * pageNumber - pageSize;\n\n const data = {\n matchProfile: payload,\n matchFilter: filter,\n minScore: minScore,\n from: from,\n size: pageSize,\n queryParams: {\n scoreType: \"MUTUAL_FORWARD_SCORE\",\n },\n userLanguage: \"DUT\",\n };\n\n const url = \"/hrmatching/match2jobs/amsterdam-jobs\";\n\n return this.MATCHBOX.post(url, JSON.stringify(data))\n .then((response) => {\n if (response.status === 200) {\n return response.data;\n } else {\n throw new ServiceException(\"Unable to retrieve jobs\");\n }\n })\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n\n async getMatchProfileFromJob(jobIdentification) {\n const url = \"/hrmatching/jobs_index/amsterdam-jobs/doc/\";\n\n return this.MATCHBOX.get(url + jobIdentification + \"?language=DUT\")\n .then((response) => {\n if (response.status === 200) {\n return response.data;\n } else if (response.status === 404) {\n return response.status;\n } else {\n throw new ServiceException(\n \"Unable to retrieve match profile from job\"\n );\n }\n })\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async getJobFromCandidate(candidateId) {\n const url = \"/hrmatching/candidates_index/amsterdam-candidates/doc/\";\n\n return this.MATCHBOX.get(url + candidateId + \"?language=DUT\")\n .then((response) => {\n if (response.status === 200) {\n return response.data;\n } else if (response.status === 404) {\n return response.status;\n } else {\n throw new ServiceException(\n \"Unable to retrieve match profile from candidate\"\n );\n }\n })\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async findPrefix(payload) {\n const url = \"ontology/findPrefix?filterOnIndex=false\";\n return this.MATCHBOX.post(url, payload)\n .then((response) => {\n if (response.status === 200) {\n return response.data;\n } else {\n throw new ServiceException(\"Unable to search for prefix\");\n }\n })\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n}\n","/**\n * Services to create and manipulate OmniConnectors.\n *\n * @file This files defines the OmniConnectorServices.\n * @author Omnimap\n * @since 2020.12.30\n * @version 1\n */\n\nimport axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\n// Base resource\nconst OMNICONNECT = \"/omniconnectors\";\nconst DEFINITIONS = \"/definitions\";\n\n// Action resources\nconst CONNECT = \"/connect\";\n\nexport class OmniConnectorServices {\n /**\n * Construct axios\n * @param organisationId: The unique identification of the organisation\n */\n constructor(organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n /**\n * Set the organisation identification\n * @param organisationId: The unique identification of the organisation\n */\n setOrganisation(organisationId) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisationId;\n }\n\n /**\n * Connect to an external endpoint using the specified OmniConnector\n * @url {base}/omniconnectors/{identification}/connect\n * @param omniConnectorId: The unique identification of the OmniConnector\n * @param input\n * @returns {Promise>}\n */\n async connect(omniConnectorId, input) {\n return this.OMNIMAP.post(\n OMNICONNECT + \"/\" + omniConnectorId + CONNECT,\n input,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get all OmniConnectors\n * @url {base}/omniconnectors/definitions\n * @returns {Promise>}\n */\n async getAll() {\n return this.OMNIMAP.get(OMNICONNECT + DEFINITIONS, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Create a new OmniConnector definition\n * @url {base}/omniconnectors/definitions\n * @param definition\n * @returns {Promise>}\n */\n async create(definition) {\n return this.OMNIMAP.post(OMNICONNECT + DEFINITIONS, definition, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get an OmniConnector with the specified identification.\n * @url {base}/omniconnectors/definitions/{identification}\n * @param omniConnectorId: The unique identification of the OmniConnector\n * @returns {Promise>}\n */\n async get(omniConnectorId) {\n return this.OMNIMAP.get(OMNICONNECT + DEFINITIONS + \"/\" + omniConnectorId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Update an omniconnector definition.\n * @url {base}/omniconnectors/definitions/{identification}\n * @param omniConnectorId: The unique identification of the OmniConnector\n * @param definition\n * @returns {Promise>}\n */\n async update(omniConnectorId, definition) {\n return this.OMNIMAP.put(\n OMNICONNECT + DEFINITIONS + \"/\" + omniConnectorId,\n definition,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n\n /**\n * Get all OmniConnectors\n * @url {base}/omniconnectors/definitions/{identification}\n * @param omniConnectorId: The unique identification of the OmniConnector\n * @returns {Promise>}\n */\n async delete(omniConnectorId) {\n return this.OMNIMAP.delete(\n OMNICONNECT + DEFINITIONS + \"/\" + omniConnectorId,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n ).then((response) => validateApiOkResponse(response));\n }\n}\n","import Vue from \"vue\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport { MatchboxServices } from \"@/services/MatchboxServices\";\nimport { OmniConnectorServices } from \"@/services/OmniConnectorServices\";\nimport IdUtils from \"../utils/IdUtils\";\n\nconst state = {\n matchboxServices: null,\n omniConnectorServices: null,\n bearerToken: null,\n bearerTokenExpiration: null,\n\n matches: [],\n totalFound: 0,\n pageSize: 30,\n pageNumber: 1,\n};\n\nconst getters = {\n matchboxServices: (state) => state.matchboxServices,\n omniConnectorServices: (state) => state.omniConnectorServices,\n bearerToken: (state) => state.bearerToken,\n bearerTokenExpiration: (state) => state.bearerTokenExpiration,\n matches: (state) => state.matches,\n totalFound: (state) => state.totalFound,\n pageNumber: (state) => state.pageNumber,\n pageSize: (state) => state.pageSize,\n};\n\nconst actions = {\n getMatchboxServices: async ({ getters, commit, dispatch }) => {\n if (null === getters.matchboxServices) {\n if (\n null === getters.bearerToken ||\n new Date() >= getters.bearerTokenExpiration\n ) {\n await dispatch(\"getMatchboxToken\");\n }\n\n commit(\n \"SET_MATCHBOX_SERVICES\",\n new MatchboxServices(getters.bearerToken)\n );\n }\n\n return getters.matchboxServices;\n },\n\n getOmniConnectorServices: async ({ getters, rootGetters, commit }) => {\n if (null === getters.omniConnectorServices) {\n if (\"\" === rootGetters.tenantId) {\n throw new StoreException(\"No tenant id known.\");\n } else {\n commit(\n \"SET_OMNICONNECTOR_SERVICES\",\n new OmniConnectorServices(rootGetters.organisationId)\n );\n }\n }\n\n return getters.omniConnectorServices;\n },\n\n getMatchboxToken: async ({ commit, dispatch }) => {\n try {\n const omniConnectorServices = await dispatch(\"getOmniConnectorServices\");\n const currentDate = new Date();\n const expirationDate = new Date();\n\n const result = await omniConnectorServices.connect(\n process.env.VUE_APP_MATCHBOX_OMNICONNECT_ID,\n {}\n );\n\n if (result && \"data\" in result) {\n commit(\"SET_BEARER_TOKEN\", result.data.access_token);\n expirationDate.setTime(\n currentDate.getTime() + result.data.expires_in * 1000\n );\n\n commit(\"SET_BEARER_TOKEN_EXPIRATION\", expirationDate);\n }\n } catch (e) {\n throw new StoreException(\n \"Something went wrong while acquiring token: \\n\" + e\n );\n }\n },\n\n formatPayload: async (_context, payload) => {\n const payloadCopy = JSON.parse(JSON.stringify(payload));\n if (!payload?.locations?.value[0]?.label) {\n delete payloadCopy.locations;\n }\n\n for (const property in payloadCopy) {\n // format the content of the property\n if (\n payloadCopy[property] &&\n payloadCopy[property].value &&\n payloadCopy[property].value.length\n ) {\n payloadCopy[property].value = payloadCopy[property].value.map(\n (block) => {\n return {\n labels: block.labels,\n required: block.required,\n weight: block.weight,\n };\n }\n );\n }\n\n if (payload[property].hasOwnProperty(\"custom\")) {\n delete payloadCopy[property].custom;\n }\n if (payload[property].hasOwnProperty(\"label\")) {\n delete payloadCopy[property].label;\n }\n\n // Remove the following properties since matchbox doesn't recognize them\n const propertiesToDelete = [\n \"workExperiences\",\n \"educations\",\n \"cvLanguage\",\n ];\n if (propertiesToDelete.includes(property)) {\n delete payloadCopy[property];\n }\n\n // delete empty properties\n if (payload[property].value && !payload[property].value.length) {\n delete payloadCopy[property];\n }\n }\n\n // Set the \"special\" properties in canse they have a value\n if (Object.keys(payloadCopy?.extraProperties?.content).length) {\n const content = JSON.parse(\n JSON.stringify(payloadCopy?.extraProperties?.content)\n );\n if (content?.workingAndThinking?.profileValue.length) {\n // Set werk- en denkniveau\n content[\"werkDenkNiveau\"] = content.workingAndThinking;\n delete content.workingAndThinking;\n } else {\n delete content.workingAndThinking;\n }\n if (content?.salaryScale?.profileValue.length) {\n // Set salaris schaal\n content[\"salarisSchaal\"] = content.salaryScale;\n delete content.salaryScale;\n } else {\n delete content.salaryScale;\n }\n payloadCopy.extraProperties.content = content;\n }\n return payloadCopy;\n },\n\n getCandidates: async (\n { commit, dispatch, getters },\n { options, filters }\n ) => {\n try {\n const matchboxServices = await dispatch(\"getMatchboxServices\");\n\n const payloadCopy = await dispatch(\"formatPayload\", options);\n\n const response = await matchboxServices.getCandidates(\n payloadCopy,\n filters,\n getters.pageSize,\n getters.pageNumber\n );\n\n if (response && response.hasOwnProperty(\"count\")) {\n commit(\"SET_TOTAL_FOUND\", response.count);\n }\n\n let matches;\n if (response && response.hasOwnProperty(\"matches\")) {\n matches = response.matches.map((match) => {\n const formattedMatch = match;\n formattedMatch.score = match.score * 100;\n formattedMatch.identification = match.id;\n if (\n match.document &&\n match.document.hasOwnProperty(\"jobFunctionLabels\") &&\n match.document.jobFunctionLabels.length\n ) {\n // label property needed for the columns of InstanceList\n formattedMatch.document.jobFunctionLabel =\n match.document.jobFunctionLabels[0];\n }\n return formattedMatch;\n });\n } else if (response === 404) {\n matches = [];\n }\n commit(\"SET_MATCHES\", matches);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while acquiring candidates: \\n\" + error\n );\n }\n },\n\n getJobs: async (\n { commit, dispatch },\n { payload, pageSize, pageNumber = 1 }\n ) => {\n try {\n const matchboxServices = await dispatch(\"getMatchboxServices\");\n const payloadCopy = await dispatch(\"formatPayload\", payload);\n\n // Add filter\n const filter = {\n bool: {\n must: [\n { term: { \"extraProperties.status\": \"GEPUBLICEERD\" } },\n {\n term: {\n \"extraProperties.content.soortaanvraag.typeaanvraag\":\n \"Nieuwe medewerker\",\n },\n },\n {\n bool: {\n should: [\n {\n bool: {\n must: [\n {\n range: {\n \"extraProperties.content.wervingstekst.plaatsingsdata.plaatsingsperiodeVan\":\n {\n lte: \"now/d\",\n },\n },\n },\n {\n range: {\n \"extraProperties.content.wervingstekst.plaatsingsdata.plaatsingsperiodeTot\":\n {\n gte: \"now/d\",\n },\n },\n },\n ],\n },\n },\n {\n bool: {\n must: [\n {\n range: {\n \"extraProperties.content.externewervingstekst.plaatsingsdata.plaatsingsperiodeVan\":\n {\n lte: \"now/d\",\n },\n },\n },\n {\n range: {\n \"extraProperties.content.externewervingstekst.plaatsingsdata.plaatsingsperiodeTot\":\n {\n gte: \"now/d\",\n },\n },\n },\n ],\n },\n },\n ],\n },\n },\n ],\n },\n };\n\n const minScore = 0.6;\n\n const response = await matchboxServices.getJobs(\n payloadCopy,\n filter,\n pageSize,\n pageNumber,\n minScore\n );\n\n if (response && response.hasOwnProperty(\"count\")) {\n commit(\"SET_TOTAL_FOUND\", response.count);\n }\n let matches;\n if (response && response.hasOwnProperty(\"matches\")) {\n matches = response.matches.map((match) => {\n const formattedMatch = match;\n formattedMatch.score = match.score * 100;\n return formattedMatch;\n });\n } else if (response === 404) {\n matches = [];\n }\n commit(\"SET_MATCHES\", matches);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while acquiring candidates: \\n\" + error\n );\n }\n },\n\n getSuggestions: async ({ dispatch }, payload) => {\n const matchboxServices = await dispatch(\"getMatchboxServices\");\n if (!payload) {\n throw new StoreException(\"Please provide a request body\");\n }\n try {\n return await matchboxServices.findPrefix(payload);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving suggestions: \\n\" + error\n );\n }\n },\n\n getMatchProfileFromJob: async ({ dispatch }, jobIdentification) => {\n const matchboxServices = await dispatch(\"getMatchboxServices\");\n if (!IdUtils.isUUID(jobIdentification)) {\n throw new StoreException(\"Please provide a valid job identification\");\n }\n try {\n return await matchboxServices.getMatchProfileFromJob(jobIdentification);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving match profile from job: \\n\" +\n error\n );\n }\n },\n\n getJobFromCandidate: async ({ dispatch }, candidateIdentification) => {\n const matchboxServices = await dispatch(\"getMatchboxServices\");\n if (!IdUtils.isUUID(candidateIdentification)) {\n throw new StoreException(\n \"Please provide a valid candidate identification\"\n );\n }\n try {\n return await matchboxServices.getJobFromCandidate(\n candidateIdentification\n );\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while jobs based on candidate profile: \\n\" + error\n );\n }\n },\n\n setPageNumber: ({ commit }, payload) => {\n if (payload) {\n commit(\"SET_PAGE_NUMBER\", payload);\n }\n },\n\n setPageSize: ({ commit }, payload) => {\n if (payload) {\n commit(\"SET_PAGE_SIZE\", payload);\n }\n },\n\n setMatches: ({ commit }, payload) => {\n commit(\"SET_MATCHES\", payload);\n },\n\n setTotalFound: ({ commit }, payload) => {\n commit(\"SET_TOTAL_FOUND\", payload);\n },\n};\n\nconst mutations = {\n SET_MATCHBOX_SERVICES: (state, payload) =>\n Vue.set(state, \"matchboxServices\", payload),\n SET_OMNICONNECTOR_SERVICES: (state, payload) =>\n Vue.set(state, \"omniConnectorServices\", payload),\n SET_BEARER_TOKEN: (state, payload) => Vue.set(state, \"bearerToken\", payload),\n SET_BEARER_TOKEN_EXPIRATION: (state, payload) =>\n Vue.set(state, \"bearerTokenExpiration\", payload),\n SET_MATCHES: (state, payload) => Vue.set(state, \"matches\", payload),\n SET_TOTAL_FOUND: (state, payload) => Vue.set(state, \"totalFound\", payload),\n SET_PAGE_NUMBER: (state, payload) => Vue.set(state, \"pageNumber\", payload),\n SET_PAGE_SIZE: (state, payload) => Vue.set(state, \"pageSize\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\n\nconst state = {\n selectedExample: null,\n};\n\nconst getters = {\n selectedExample: (state) => state.selectedExample,\n};\n\nconst actions = {\n setSelectedExample: ({ commit }, exampleText) => {\n commit(\"SET_SELECTED_EXAMPLE\", exampleText);\n },\n\n clearSelectedExample: ({ dispatch }) => {\n dispatch(\"setSelectedExample\", null);\n },\n};\n\nconst mutations = {\n SET_SELECTED_EXAMPLE: (state, payload) =>\n Vue.set(state, \"selectedExample\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\nconst CONFIGURATION_RESOURCE = \"/definitions/configuration/\";\nconst CLIENT_RESOURCE = \"client/\" + process.env.VUE_APP_CLIENT + \"/\";\nconst CODE_RESOURCE = \"code/\";\nconst REFERENCE_RESOURCE = \"reference/\";\n\nexport class ConfigurationServices {\n /**\n * Construct axios\n * @param organisation\n */\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getConfigByReference(payload) {\n if (\n !payload ||\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"reference\")\n ) {\n throw new ServiceException(\n \"Missing required parameter to retrieve configuration by reference\"\n );\n }\n return this.OMNIMAP.get(\n CONFIGURATION_RESOURCE +\n CLIENT_RESOURCE +\n CODE_RESOURCE +\n payload.code +\n \"/\" +\n REFERENCE_RESOURCE +\n payload.reference +\n \"/\",\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async createConfig(payload) {\n if (\n !payload ||\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"description\") ||\n !payload.hasOwnProperty(\"reference\") ||\n !payload.hasOwnProperty(\"data\")\n ) {\n throw new ServiceException(\n \"Missing required parameter to create a configuration\"\n );\n }\n\n payload[\"client_identification\"] = process.env.VUE_APP_CLIENT;\n return this.OMNIMAP.post(CONFIGURATION_RESOURCE, payload, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n\n async updateConfig(payload) {\n if (\n !payload ||\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"description\") ||\n !payload.hasOwnProperty(\"reference\") ||\n !payload.hasOwnProperty(\"data\")\n ) {\n throw new ServiceException(\n \"Missing required parameter to update a configuration\"\n );\n }\n\n payload[\"client_identification\"] = process.env.VUE_APP_CLIENT;\n\n return this.OMNIMAP.put(\n CONFIGURATION_RESOURCE + payload.identification,\n payload,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { ConfigurationServices } from \"@/services/ConfigurationServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { StandardFilters } from \"@/utils/GeneralConstants\";\n\nconst state = {\n configurationServices: null,\n configurations: [],\n buttonPermissionsConfig: null,\n selectedPreset: null,\n personalPresets: null,\n};\n\n/*\n * Create getters for all items in state\n */\nconst getters = {\n configurationServices: (state) => state.configurationServices,\n buttonPermissionsConfig: (state) => state.buttonPermissionsConfig,\n selectedPreset: (state) => state.selectedPreset,\n personalPresets: (state) => state.personalPresets,\n};\n\nconst actions = {\n /**\n * Getting the configurationService. When configurationService is not set, set the configurationService.\n * @param commit\n * @param getters\n * @param rootGetters\n * @returns {Promise}\n */\n retrieveConfigurationServices: async ({ commit, getters, rootGetters }) => {\n try {\n if (getters.configurationServices == null) {\n if (rootGetters.tenantId === \"\") {\n throw new Error(\"Tenant id not found.\");\n }\n\n commit(\n \"SET_CONFIGURATION_SERVICES\",\n new ConfigurationServices(rootGetters.organisationId)\n );\n }\n return getters.configurationServices;\n } catch (error) {\n throw new StoreException(\"retrieveConfigurationServices: \" + error);\n }\n },\n\n /**\n * Retrieves configuration by reference\n * @param commit\n * @param dispatch\n * @param payload\n * @returns {Promise<*>}\n */\n retrieveConfigurationByReference: async ({ commit, dispatch }, payload) => {\n // Input validation\n if (\n !payload ||\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"reference\") ||\n !IdUtils.isUUID(payload.reference)\n ) {\n throw new StoreException(\"Invalid configuration reference\");\n }\n try {\n const configurationServices = await dispatch(\n \"retrieveConfigurationServices\"\n );\n const config = await configurationServices.getConfigByReference(payload);\n\n if (payload.code === \"BUTTON_PERMISSIONS\") {\n commit(\"SET_BUTTON_PERMISSIONS_CONFIG\", config);\n }\n\n return config;\n } catch (error) {\n throw new StoreException(\"retrieveConfiguration: \" + error);\n }\n },\n\n /**\n * Retrieves all filters for a provided tenant, organisation and user\n * @param code\n * @param commit\n * @param dispatch\n * @param rootGetters\n * @returns {Promise<*[]>}\n */\n retrievePersonalPresets: async (\n { commit, dispatch, rootGetters },\n code = StandardFilters.WSM_FILTER\n ) => {\n let references = [\n rootGetters.tenantId,\n rootGetters.organisationId,\n rootGetters.userId,\n ];\n const roles = await dispatch(\"retrieveRolesOfUser\");\n\n const rolesIDs = [];\n if (roles && Array.isArray(roles) && roles.length) {\n for (const role of roles) {\n if (\n role &&\n role.constructor === Object &&\n role.hasOwnProperty(\"identification\")\n ) {\n rolesIDs.push(role.identification);\n }\n }\n }\n\n if (rolesIDs.length) {\n references = references.concat(rolesIDs);\n }\n\n const presets = [];\n let reference, preset;\n\n for (reference of references) {\n try {\n preset = await dispatch(\"retrieveConfigurationByReference\", {\n code: code,\n reference: reference,\n });\n\n if (\n preset.hasOwnProperty(\"data\") &&\n preset.data.hasOwnProperty(\"filters\") &&\n Array.isArray(preset.data.filters)\n ) {\n preset.data.filters.forEach((item) => presets.push(item));\n } else if (\n preset &&\n preset.hasOwnProperty(\"data\") &&\n typeof preset.data === \"object\"\n ) {\n presets.push(preset.data);\n }\n } catch (e) {\n // do nothing\n }\n }\n commit(\"SET_PERSONAL_PRESETS\", presets);\n return presets;\n },\n\n /**\n * Retrives all the roles of a logged user\n * @param rootGetters\n * @returns {Promise<*[]>}\n */\n retrieveRolesOfUser: async ({ rootGetters }) => {\n const roles = [];\n const user = rootGetters.user;\n const currentDateTime = new Date();\n\n if (user.hasOwnProperty(\"relationships\")) {\n if (user.relationships.hasOwnProperty(\"roles\")) {\n user.relationships.roles.forEach((role) => {\n if (\n !role.hasOwnProperty(\"valid_until\") &&\n role.hasOwnProperty(\"valid_from\")\n ) {\n if (\n new Date(role.valid_from) < currentDateTime &&\n role.hasOwnProperty(\"role\")\n ) {\n roles.push(role.role);\n }\n } else if (\n role.hasOwnProperty(\"valid_until\") &&\n role.hasOwnProperty(\"valid_from\")\n ) {\n if (\n new Date(role.valid_from) < currentDateTime &&\n currentDateTime < new Date(role.valid_until) &&\n role.hasOwnProperty(\"role\")\n ) {\n roles.push(role.role);\n }\n }\n });\n }\n }\n return roles;\n },\n\n /**\n * Creates a new preset – selection of columns and a query\n * @param commit\n * @param dispatch\n * @param rootGetters\n * @param name\n * @param query\n * @param columns\n * @param code\n * @returns {Promise}\n */\n createPreset: async (\n { commit, dispatch, rootGetters },\n { name, query, columns, code = StandardFilters.WSM_FILTER }\n ) => {\n let presets;\n let userPreset = null;\n\n try {\n userPreset = await dispatch(\"retrieveConfigurationByReference\", {\n code: code,\n reference: rootGetters.userId,\n });\n\n presets = userPreset.data;\n } catch (e) {\n presets = null;\n }\n\n if (!presets) {\n const firstName = rootGetters.user.alias.split(\" \")[0];\n presets = {\n label: firstName + \"'s filters\",\n value: \"USER\",\n children: [],\n };\n }\n\n const identification = IdUtils.generateUUID();\n presets.children.push({\n value: identification,\n label: name,\n query: query,\n columns: columns,\n canBeDeleted: true,\n });\n\n if (userPreset) {\n const config = userPreset;\n config.data = presets;\n\n await dispatch(\"updateConfiguration\", config);\n } else {\n const config = {\n code: code,\n description: \"USER FILTERS\",\n reference: rootGetters.userId,\n data: presets,\n };\n await dispatch(\"createConfiguration\", config);\n }\n\n await dispatch(\"retrievePersonalPresets\", code);\n\n commit(\"SET_SELECTED_PRESET\", [\"USER\", identification]);\n return identification;\n },\n\n /**\n * Deletes a preset based on its identification\n * @param commit\n * @param dispatch\n * @param rootGetters\n * @param identification\n * @param code\n * @returns {Promise}\n */\n deletePreset: async (\n { commit, dispatch, rootGetters },\n { identification, code = StandardFilters.WSM_FILTER }\n ) => {\n const userFilter = await dispatch(\"retrieveConfigurationByReference\", {\n code: code,\n reference: rootGetters.userId,\n });\n\n const filters = userFilter.data;\n filters.children = filters.children.filter(\n (filter) => filter.value !== identification\n );\n\n if (userFilter) {\n const config = userFilter;\n config.data = filters;\n\n await dispatch(\"updateConfiguration\", config);\n }\n\n await dispatch(\"retrievePersonalPresets\");\n\n commit(\"SET_SELECTED_PRESET\", [\"USER\", identification]);\n },\n\n /**\n * Update a configuration\n * @param dispatch\n * @param payload\n * @returns {Promise<*>}\n */\n updateConfiguration: async ({ dispatch }, payload) => {\n if (\n !payload ||\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"identification\") ||\n !payload.hasOwnProperty(\"description\") ||\n !payload.hasOwnProperty(\"reference\") ||\n !payload.hasOwnProperty(\"data\")\n ) {\n throw new StoreException(\n \"Missing required parameter to create a configuration\"\n );\n }\n try {\n const configurationServices = await dispatch(\n \"retrieveConfigurationServices\"\n );\n return await configurationServices.updateConfig(payload);\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n /**\n * Create a configuration\n * @param dispatch\n * @param payload\n * @returns {Promise<*>}\n */\n createConfiguration: async ({ dispatch }, payload) => {\n if (\n !payload.hasOwnProperty(\"code\") ||\n !payload.hasOwnProperty(\"description\") ||\n !payload.hasOwnProperty(\"reference\") ||\n !payload.hasOwnProperty(\"data\")\n ) {\n throw new StoreException(\n \"Missing required parameter to create a configuration\"\n );\n }\n\n try {\n const configurationServices = await dispatch(\n \"retrieveConfigurationServices\"\n );\n return await configurationServices.createConfig(payload);\n } catch (error) {\n throw new StoreException(\"createConfiguration: \" + error);\n }\n },\n};\n\nconst mutations = {\n SET_CONFIGURATION_SERVICES: (state, payload) =>\n Vue.set(state, \"configurationServices\", payload),\n SET_BUTTON_PERMISSIONS_CONFIG: (state, payload) =>\n Vue.set(state, \"buttonPermissionsConfig\", payload),\n SET_SELECTED_PRESET: (state, payload) =>\n Vue.set(state, \"selectedPreset\", payload),\n SET_PERSONAL_PRESETS: (state, payload) =>\n Vue.set(state, \"personalPresets\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\n\nimport authentication from \"../authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\nconst EMAILS_RESOURCE = \"/definitions/email-templates\";\n\nexport class EmailTemplateServices {\n /**\n * Construct axios\n * @param organisation\n */\n constructor(organisation) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n });\n\n if (organisation) {\n this.setOrganisation(organisation);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getEmailTemplate(emailTemplateId) {\n return this.OMNIMAP.get(EMAILS_RESOURCE + \"/\" + emailTemplateId, {\n headers: {\n Authorization: \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n })\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error);\n });\n }\n}\n","import Vue from \"vue\";\nimport { EmailTemplateServices } from \"@/services/EmailTemplateServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\n\nconst state = {\n emailTemplateServices: null,\n};\n\nconst getters = {\n emailTemplateServices: (state) => state.emailTemplateServices,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the EmailTemplateServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @return {Promise}\n */\n getEmailTemplateServices: async ({ getters, rootGetters, commit }) => {\n try {\n if (null === getters.emailTemplateServices) {\n if (\"\" === rootGetters.tenantId) {\n throw new StoreException(\"No tenant id known.\");\n } else {\n commit(\n \"SET_EMAIL_TEMPLATE_SERVICES\",\n new EmailTemplateServices(rootGetters.organisationId)\n );\n }\n }\n\n return getters.emailTemplateServices;\n } catch (error) {\n console.error(error);\n }\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateEmailTemplateServices: ({ getters, rootGetters }) => {\n try {\n const emailTemplateServices = getters.emailTemplateServices;\n if (emailTemplateServices) {\n emailTemplateServices.setOrganisation(rootGetters.organisationId);\n }\n } catch (error) {\n console.error(error);\n }\n },\n\n retrieveEmailTemplate: async ({ dispatch }, templateId) => {\n const emailTemplateServices = await dispatch(\"getEmailTemplateServices\");\n try {\n return await emailTemplateServices.getEmailTemplate(templateId);\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while retrieving file: \\n\" + error.message\n );\n }\n },\n};\n\nconst mutations = {\n SET_EMAIL_TEMPLATE_SERVICES: (state, payload) =>\n Vue.set(state, \"emailTemplateServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport { Breadcrumbs } from \"@/utils/GeneralConst/Breadcrumbs\";\n\nconst state = {\n instance: { id: undefined, name: undefined },\n candidate: { id: undefined, name: undefined },\n profile: { id: undefined, name: undefined },\n action: { id: undefined, name: undefined },\n};\n\nconst getters = {\n instance: (state) => state.instance,\n candidate: (state) => state.candidate,\n profile: (state) => state.profile,\n action: (state) => state.action,\n};\n\nconst actions = {\n setBreadcrumb: ({ commit }, { type, id, name }) => {\n switch (type) {\n case Breadcrumbs.INSTANCE:\n commit(\"SET_INSTANCE\", { id: id, name: name });\n break;\n case Breadcrumbs.CANDIDATE:\n commit(\"SET_CANDIDATE\", { id: id, name: name });\n break;\n case Breadcrumbs.PROFILE:\n commit(\"SET_PROFILE\", { id: id, name: name });\n break;\n case Breadcrumbs.ACTION:\n commit(\"SET_ACTION\", { id: id, name: name });\n break;\n default:\n // Do nothing\n break;\n }\n },\n};\n\nconst mutations = {\n SET_INSTANCE: (state, payload) => Vue.set(state, \"instance\", payload),\n SET_CANDIDATE: (state, payload) => Vue.set(state, \"candidate\", payload),\n SET_PROFILE: (state, payload) => Vue.set(state, \"profile\", payload),\n SET_ACTION: (state, payload) => Vue.set(state, \"action\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\nconst MAPPING_EXECUTION_RESOURCE = \"/mapping/execute/\";\n\nexport class MappingExecutionServices {\n /**\n * Construct axios\n * @param tenantId\n * @param organisationId\n */\n constructor(tenantId, organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: tenantId,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getOutputDataUsingPost(mappingId, mappingData) {\n return this.OMNIMAP.post(\n MAPPING_EXECUTION_RESOURCE + mappingId,\n mappingData,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { MappingExecutionServices } from \"@/services/MappingExecutionServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nconst state = {\n mappingExecutionServices: null,\n isExecutingMapping: false,\n};\n\nconst getters = {\n mappingExecutionServices: (state) => state.mappingExecutionServices,\n getIsExecutingMapping: (state) => state.isExecutingMapping,\n};\n\nconst actions = {\n /**\n * Internal action for initializing and returning the mappingExecutionServices API object.\n * @param getters\n * @param rootGetters\n * @param commit\n * @returns {any}\n */\n getMappingExecutionServices: async ({ getters, rootGetters, commit }) => {\n if (null === getters.mappingExecutionServices) {\n if (\"\" === rootGetters.tenantId) {\n throw new StoreException(\"No tenant id known.\");\n } else {\n commit(\n \"SET_MAPPING_EXECUTION_SERVICES\",\n new MappingExecutionServices(\n rootGetters.tenantId,\n rootGetters.organisationId\n )\n );\n }\n }\n\n return getters.mappingExecutionServices;\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise, the organisation id will be set on creation.\n * @param getters\n * @param rootGetters\n */\n updateMappingExecutionServices: ({ getters, rootGetters }) => {\n const mappingExecutionServices = getters.mappingExecutionServices;\n if (mappingExecutionServices) {\n mappingExecutionServices.setOrganisation(rootGetters.organisationId);\n }\n },\n\n async postMappingCalculation(\n { dispatch },\n { mapping_identification, mappingData }\n ) {\n if (!IdUtils.isUUID(mapping_identification) || !mappingData) {\n throw new StoreException(\"Invalid input for post mapping calculation\");\n }\n dispatch(\"setIsExecutingMapping\", true);\n try {\n const mappingExecutionServices = await dispatch(\n \"getMappingExecutionServices\"\n );\n const response = await mappingExecutionServices.getOutputDataUsingPost(\n mapping_identification,\n mappingData\n );\n if (response) {\n return response;\n }\n return null;\n } catch (error) {\n throw new StoreException(\n \"Something went wrong while trying to post the mapping execution: \\n\" +\n error.message\n );\n }\n },\n\n setIsExecutingMapping({ commit }, payload) {\n commit(\"SET_IS_EXECUTING_MAPPING\", payload);\n },\n};\n\nconst mutations = {\n SET_MAPPING_EXECUTION_SERVICES: (state, payload) =>\n Vue.set(state, \"mappingExecutionServices\", payload),\n SET_IS_EXECUTING_MAPPING: (state, payload) =>\n Vue.set(state, \"isExecutingMapping\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import axios from \"axios\";\nimport authentication from \"@/authentication\";\nimport { ServiceException } from \"@/utils/ErrorHandler\";\nimport { validateApiOkResponse } from \"@/utils/ApiResponseValidator\";\n\n/**\n * Declare all resources\n */\nconst CONCEPT_DEFINITION_RESOURCE = \"/definitions/concept-definitions\";\n\nconst PAGE_SIZE = 30;\n\nexport class ConceptDefinitionServices {\n /**\n * Construct axios\n * @param tenantId\n * @param organisationId\n */\n constructor(tenantId, organisationId) {\n this.OMNIMAP = axios.create({\n baseURL: process.env.VUE_APP_OMNIMAP_API_ROOT,\n headers: {\n tenant_identification: tenantId,\n },\n });\n\n if (organisationId) {\n this.setOrganisation(organisationId);\n }\n }\n\n setOrganisation(organisation) {\n this.OMNIMAP.defaults.headers.common[\"organisation_identification\"] =\n organisation;\n }\n\n async getConceptDefinition(conceptDefinitionIdentification) {\n return this.OMNIMAP.get(\n CONCEPT_DEFINITION_RESOURCE + \"/\" + conceptDefinitionIdentification,\n {\n headers: {\n Authorization:\n \"Bearer \" + (await authentication.acquireOmnimapToken()),\n },\n }\n )\n .then((response) => validateApiOkResponse(response))\n .catch((error) => {\n throw new ServiceException(error.message);\n });\n }\n}\n","import Vue from \"vue\";\nimport { ConceptDefinitionServices } from \"@/services/ConceptDefinitionServices\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nconst state = {\n conceptDefinitionServices: null,\n};\n\n/*\n * Create getters for all items in state\n */\nconst getters = {\n conceptDefinitionServices: (state) => state.conceptDefinitionServices,\n};\n\nconst actions = {\n /**\n * Getting the conceptDefinitionServices. When conceptDefinitionServices is not set, set the conceptDefinitionServices.\n *\n * @param rootGetters\n * @param getters\n * @param commit\n * @returns {Promise}\n */\n retrieveConceptDefinitionServices: async ({\n getters,\n rootGetters,\n commit,\n }) => {\n if (getters.conceptDefinitionServices == null) {\n if (rootGetters.tenantId === \"\") {\n throw new StoreException(\"No tenant id known.\");\n }\n commit(\n \"SET_CONCEPT_DEFINITION_SERVICES\",\n new ConceptDefinitionServices(\n rootGetters.tenantId,\n rootGetters.organisationId\n )\n );\n }\n return getters.conceptDefinitionServices;\n },\n\n getConceptDefinition: async ({ dispatch }, conceptDefinitionId) => {\n if (!IdUtils.isUUID(conceptDefinitionId)) {\n throw new StoreException(\n \"Unable to retrieve concept definition. Required ID is missing or not valid\"\n );\n }\n\n try {\n const conceptDefinitionServices = await dispatch(\n \"retrieveConceptDefinitionServices\"\n );\n return await conceptDefinitionServices.getConceptDefinition(\n conceptDefinitionId\n );\n } catch (e) {\n throw new StoreException(\n \"Unable to retrieve concept definition. \" + e.message\n );\n }\n },\n};\n\nconst mutations = {\n SET_CONCEPT_DEFINITION_SERVICES: (state, payload) =>\n Vue.set(state, \"conceptDefinitionServices\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\n\nconst state = {\n selectedTalentPoolProfileIndex: 0,\n selectedTalentPoolProfile: {},\n allTalentPoolProfiles: {},\n showLogbook: false,\n vacanciesUpdate: false,\n};\n\nconst getters = {\n selectedTalentPoolProfileIndex: (state) =>\n state.selectedTalentPoolProfileIndex,\n selectedTalentPoolProfile: (state) => state.selectedTalentPoolProfile,\n allTalentPoolProfiles: (state) => state.allTalentPoolProfiles,\n showLogbook: (state) => state.showLogbook,\n vacanciesUpdate: (state) => state.vacanciesUpdate,\n};\n\nconst actions = {\n /**\n * Function to set the value of allTalentPoolProfiles and default selected index\n * @param commit\n * @param data\n */\n setAllTalentPoolProfiles: ({ commit }, data) => {\n commit(\"SET_ALL_TALENT_POOL_PROFILES\", data);\n commit(\"SET_SELECTED_TALENT_POOL_PROFILE_INDEX\", 0);\n },\n\n /**\n * Function to set the value of selectedTalentPoolProfileIndex and fetch relevant profile\n * @param commit\n * @param dispatch\n * @param index\n * @returns {Promise}\n */\n setSelectedTalentPoolProfileIndex: async ({ commit, dispatch }, index) => {\n commit(\"SET_SELECTED_TALENT_POOL_PROFILE_INDEX\", index);\n if (index || index === 0) {\n await dispatch(\"getTalentPoolProfile\", { index: index });\n }\n },\n\n /**\n * Function to set the value of selectedTalentPoolProfile\n * @param commit\n * @param instance\n */\n setSelectedTalentPoolProfile: ({ commit }, instance) => {\n commit(\"SET_SELECTED_TALENT_POOL_PROFILE\", instance);\n },\n\n /**\n * Function to fetch talent pool profile indicated with an index\n * @param getters\n * @param dispatch\n * @param commit\n * @param index\n * @param profileId\n * @returns {Promise}\n */\n getTalentPoolProfile: async (\n { getters, dispatch, commit },\n { index, profileId }\n ) => {\n let instanceId = profileId;\n if (!IdUtils.isUUID(instanceId)) {\n if (!getters.allTalentPoolProfiles) {\n throw new StoreException(\"No data found\");\n }\n\n const instance = getters.allTalentPoolProfiles[index];\n if (!instance) {\n throw new StoreException(\"No instance found\");\n }\n\n if (!IdUtils.isUUID(instance?.identification)) {\n throw new StoreException(\"Invalid ID\");\n }\n instanceId = instance.identification;\n }\n\n try {\n const talentPoolProfile = await dispatch(\n \"genericInstance/getGenericInstance\",\n instanceId,\n { root: true }\n );\n commit(\"SET_SELECTED_TALENT_POOL_PROFILE\", talentPoolProfile);\n } catch (error) {\n throw new StoreException(error);\n }\n },\n\n setShowLogbook: ({ commit }, value) => {\n commit(\"SET_SHOW_LOGBOOK\", value);\n },\n\n setVacanciesUpdate: ({ commit }, value) => {\n commit(\"SET_VACANCIES_UPDATE\", value);\n },\n};\n\nconst mutations = {\n SET_ALL_TALENT_POOL_PROFILES: (state, payload) =>\n Vue.set(state, \"allTalentPoolProfiles\", payload),\n SET_SELECTED_TALENT_POOL_PROFILE: (state, payload) =>\n Vue.set(state, \"selectedTalentPoolProfile\", payload),\n SET_SELECTED_TALENT_POOL_PROFILE_INDEX: (state, payload) =>\n Vue.set(state, \"selectedTalentPoolProfileIndex\", payload),\n SET_SHOW_LOGBOOK: (state, payload) => Vue.set(state, \"showLogbook\", payload),\n SET_VACANCIES_UPDATE: (state, payload) =>\n Vue.set(state, \"vacanciesUpdate\", payload),\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\n/* Plugins */\nimport merge from \"deepmerge\";\n\n/* Utils */\nimport { StoreException } from \"@/utils/ErrorHandler\";\n\n/* Constants */\nimport {\n AccessDatabaseProfielen,\n AccessMijnActies,\n AccessMijnLoopbaanadvies,\n AccessMijnRecruitment,\n AccessMijnTalenten,\n AccessMijnWervingEnSelectie,\n AllUserRoles,\n} from \"@/utils/UserRoles\";\n\n/* Services */\nimport { UserServices } from \"@/services/security/UserServices\";\n\n/* Store Modules */\nimport tenantStore from \"@/store/tenant\";\nimport omniselect from \"@/components/omnischema/omniselect/store\";\nimport instanceDefinitions from \"@/store/instanceDefinitions\";\nimport genericInstance from \"@/store/genericInstance\";\nimport search from \"@/store/search\";\nimport activity from \"@/store/activity\";\nimport instanceFlow from \"@/store/instanceFlow\";\nimport notifications from \"@/store/notifications\";\nimport chat from \"@/store/chat\";\nimport media from \"@/store/media\";\nimport talentProfile from \"@/store/talentProfile\";\nimport requests from \"@/store/requests\";\nimport candidates from \"@/store/candidates\";\nimport loopbaanadvies from \"@/store/loopbaanadvies\";\nimport applications from \"@/store/applications\";\nimport processStore from \"@/store/process\";\nimport recruitment from \"@/store/recruitment\";\nimport matchbox from \"@/store/matchbox\";\nimport { checkIfUserHasThisRole } from \"@/utils/GeneralUtils\";\nimport IdUtils from \"@/utils/IdUtils\";\nimport {\n DeeplinkActions,\n Identifications,\n RoutesNames,\n Roles,\n} from \"@/utils/GeneralConstants\";\nimport { Links } from \"@/utils/Links\";\nimport recruitmentText from \"@/store/recruitmentText\";\nimport configurations from \"@/store/configurations\";\nimport emailTemplates from \"@/store/emailTemplates\";\nimport breadcrumbs from \"@/store/breadcrumbs\";\nimport mapping from \"@/store/mapping\";\nimport conceptDefinitions from \"@/store/conceptDefinitions\";\nimport talentPoolProfile from \"@/store/talentPoolProfile\";\n\nrequire(\"es6-promise\").polyfill();\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n state: {\n userServices: null,\n\n tenant: {\n identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n },\n\n organisation: {\n identification: null,\n },\n\n user: {\n identification: \"\",\n profile: {},\n organisations: {\n mandate_organisations: [],\n own_organisations: [],\n },\n },\n\n controleerAanvragen: false,\n\n canAccessMijnRecruitment: null,\n canAccessMijnWervingEnSelectie: null,\n canAccessMijnLoopbaanadvies: null,\n canAccessDatabaseProfielen: null,\n canAccessMijnTalenten: null,\n canAccessMijnActies: null,\n canAccessFaq: null,\n isAccessChecked: false,\n },\n\n getters: {\n userServices: (state) => state.userServices,\n\n tenant: (state) => state.tenant,\n tenantId: (state) => state.tenant.identification,\n\n organisation: (state) => state.organisation,\n organisationId: (state) => state.organisation.identification,\n\n user: (state) => state.user,\n userId: (state) => state.user.identification,\n userName: (state) => state.user.alias,\n userOrganisations: (state) => state.user.organisations,\n userOwnOrganisations: (state) => state.user.organisations.own_organisations,\n userMandateOrganisations: (state) =>\n state.user.organisations.mandate_organisations,\n\n controleerAanvragen: (state) => state.controleerAanvragen,\n\n canAccessMijnRecruitment: (state) => state.canAccessMijnRecruitment,\n canAccessMijnWervingEnSelectie: (state) =>\n state.canAccessMijnWervingEnSelectie,\n canAccessMijnLoopbaanadvies: (state) => state.canAccessMijnLoopbaanadvies,\n canAccessDatabaseProfielen: (state) => state.canAccessDatabaseProfielen,\n canAccessMijnTalenten: (state) => state.canAccessMijnTalenten,\n canAccessMijnActies: (state) => state.canAccessMijnActies,\n canAccessFaq: (state) => state.canAccessFaq,\n isAccessChecked: (state) => state.isAccessChecked,\n\n isUserAdmin: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.ADMINISTRATOR) ||\n checkIfUserHasThisRole(state.user, AllUserRoles.ADMIN),\n isUserManager: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.MANAGER),\n isUserLBA: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.LOOPBAAN_ADVISEUR),\n isUserBackoffice: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.BACKOFFICE_MEDEWERKER),\n isUserRecruiter: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.RECRUITER),\n isUserStandaardGebruiker: (state) =>\n checkIfUserHasThisRole(state.user, AllUserRoles.STANDAARD_GEBRUIKER),\n },\n\n actions: {\n /**\n * Function to create the UserServices for the known tenant id.\n * Throws a StoreException on missing tenant id.\n * @param commit\n * @param getters\n * @return {getters.userServices|(function(*): (null|getters.userServices|(function(*))))|null}\n */\n getUserServices: ({ commit, getters }) => {\n if (!getters.userServices) {\n if (!getters.tenantId) {\n throw new StoreException(\"No tenant known\");\n } else {\n commit(\"SET_USER_SERVICES\", new UserServices());\n }\n }\n return getters.userServices;\n },\n\n /**\n * Updates the internal services with a new organisation id, if the internal services have already\n * been created. Otherwise the organisation id will be set on creation.\n * @param dispatch\n * @param rootGetters\n * @return {Promise}\n */\n updateUserServices: ({ getters, rootGetters }) => {\n const userServices = getters.userServices;\n if (userServices) {\n userServices.setOrganisation(rootGetters.organisationId);\n }\n },\n\n setTenantId: ({ commit }) => {\n commit(\"SET_TENANT\", {\n identification: process.env.VUE_APP_TENANT_IDENTIFICATION,\n });\n },\n\n /**\n * Function which fetches the tenant for the given tenant id, and commits it to the store.\n * @param getters\n * @param commit\n * @param dispatch\n * @return {Promise}\n */\n fetchTenant: async ({ commit, dispatch }) => {\n await dispatch(\"setTenantId\", process.env.VUE_APP_TENANT_IDENTIFICATION);\n\n const tenantServices = await dispatch(\"tenantStore/getTenantServices\");\n\n commit(\"SET_TENANT\", await tenantServices.get());\n },\n\n /**\n * Fetches the identity providers of the active tenant.\n * @param dispatch\n * @return {Promise}\n */\n fetchIdentityProviders: async ({ dispatch }) => {\n const userServices = await dispatch(\"getUserServices\");\n try {\n const idProviders = await userServices.getIdentityProviders();\n\n // Filter out unsupported id providers\n return idProviders.filter(\n (provider) => provider.openid_connect && provider.source === \"MSLIVE\"\n );\n } catch (e) {\n throw new StoreException(e.message);\n }\n },\n\n fetchIdentityProvider: async ({ dispatch }, identification) => {\n if (!IdUtils.isUUID(identification)) {\n throw new StoreException(\"Please provide a valid identification\");\n }\n\n const userServices = await dispatch(\"getUserServices\");\n try {\n return await userServices.getIdentityProvider(identification);\n } catch (e) {\n throw new StoreException(e.message);\n }\n },\n\n /**\n * Check the user registration\n * @param dispatch\n * @returns {Promise}\n */\n checkRegistration: async ({ dispatch }) => {\n const userServices = await dispatch(\"getUserServices\");\n try {\n return await userServices.checkUserRegistration();\n } catch (e) {\n throw new StoreException(e.message);\n }\n },\n\n /**\n * Register a user\n * @param dispatch\n * @returns {Promise<*>}\n */\n registerUser: async ({ dispatch }) => {\n const userServices = await dispatch(\"getUserServices\");\n try {\n return await userServices.registerUser();\n } catch (e) {\n throw new StoreException(e.message);\n }\n },\n\n /**\n * Check if the invitation key is valid\n * @param dispatch\n * @param invitationKey\n * @returns {Promise<*>}\n */\n checkInvitationKey: async ({ dispatch }, invitationKey) => {\n if (!invitationKey) {\n throw new StoreException(\"Invitation key is missing\");\n }\n const userServices = await dispatch(\"getUserServices\");\n try {\n return await userServices.checkInvitationKey(invitationKey);\n } catch (e) {\n throw new StoreException(e.message);\n }\n },\n\n /**\n * Fetches all organisations the currently logged in user is authorised to.\n * When only 1 organisation is found, this organisation is also selected.\n * @param commit\n * @param dispatch\n * @return {Promise}\n */\n fetchUserOrganisations: async ({ commit, dispatch }) => {\n const userServices = await dispatch(\"getUserServices\");\n\n let errors = false;\n\n try {\n // Get user organisations\n const userOrganisations = await userServices.getUserOrganisations();\n\n if (userOrganisations) {\n // Add the user organisations to the store\n commit(\"UPDATE_USER\", { organisations: userOrganisations });\n\n // Select the only organisation if there is only 1\n if (\n \"mandate_organisations\" in userOrganisations &&\n \"own_organisations\" in userOrganisations\n ) {\n if (\n userOrganisations.mandate_organisations.length === 1 &&\n userOrganisations.own_organisations.length === 0\n ) {\n await dispatch(\n \"selectUserOrganisation\",\n userOrganisations.mandate_organisations[0].identification\n );\n } else if (\n userOrganisations.mandate_organisations.length === 0 &&\n userOrganisations.own_organisations.length === 1\n ) {\n await dispatch(\n \"selectUserOrganisation\",\n userOrganisations.own_organisations[0].identification\n );\n }\n }\n } else {\n // On no organisations found, create an error\n errors = new StoreException(\"No organisations for the current user\");\n }\n } catch (e) {\n throw new StoreException(e.message);\n }\n\n if (errors) {\n throw errors;\n }\n },\n\n /**\n * Function to activate the currently validated user with an invitation key.\n * @param dispatch\n * @param invitationKey\n * @return {Promise<*>}\n */\n activateUser: async ({ dispatch }, invitationKey) => {\n try {\n const userServices = await dispatch(\"getUserServices\");\n\n return await userServices.postActivateUser(invitationKey);\n } catch (e) {\n throw new StoreException(e.getMessage());\n }\n },\n\n /**\n * Select and set the organisation based on an organisation identification\n * @param commit\n * @param dispatch\n * @param getters\n * @param organisationId\n * @return {Promise}\n */\n selectUserOrganisation: async (\n { commit, dispatch, getters },\n organisationId\n ) => {\n // Check if the given organisation id is present in the user organisations\n let organisation = false;\n const foundOwnOrganisation = getters.userOwnOrganisations.find(\n (userOrg) => userOrg.identification === organisationId\n );\n if (foundOwnOrganisation) {\n organisation = foundOwnOrganisation;\n } else {\n const foundMandateOrganisation = getters.userMandateOrganisations.find(\n (userOrg) => userOrg.identification === organisationId\n );\n if (foundMandateOrganisation) {\n organisation = foundMandateOrganisation;\n }\n }\n\n // If so, set the found organisation as the current organisation\n if (organisation) {\n commit(\"SET_ORGANISATION\", organisation);\n await dispatch(\"updateUserServices\");\n\n // Get user profile for organisation\n await dispatch(\"fetchUser\");\n\n // Update services\n await Promise.all([\n dispatch(\"tenantStore/updateTenantServices\"),\n dispatch(\"instanceDefinitions/updateInstanceDefinitionServices\"),\n ]);\n } else {\n // If not, throw error\n throw new StoreException(\"Invalid organisation id received.\");\n }\n },\n\n /**\n * Fetches the user profile of the currently logged in user, and commits it to the store.\n * @param commit\n * @param dispatch\n * @param getters\n * @return {Promise}\n */\n fetchUser: async ({ commit, dispatch }) => {\n const userServices = await dispatch(\"getUserServices\");\n\n const user = await userServices.getUserProfile();\n\n commit(\"UPDATE_USER\", user);\n },\n\n /**\n * Set user's access rights to certain website sections based on the user's roles.\n * @param commit\n * @param getters\n * @param userRelationships\n * @returns {Promise}\n */\n setUserAccessRights: async ({ commit, getters }, userRelationships) => {\n if (!getters.isAccessChecked) {\n const userRoles = userRelationships.roles.map(\n (role) => role.role.identification\n );\n\n const canAccessMijnRecruitment = userRoles.some((role) =>\n AccessMijnRecruitment.includes(role)\n );\n const canAccessMijnWervingEnSelectie = userRoles.some((role) =>\n AccessMijnWervingEnSelectie.includes(role)\n );\n const canAccessMijnLoopbaanadvies = userRoles.some((role) =>\n AccessMijnLoopbaanadvies.includes(role)\n );\n const canAccessDatabaseProfielen = userRoles.some((role) =>\n AccessDatabaseProfielen.includes(role)\n );\n const canAccessMijnTalenten = userRoles.some((role) =>\n AccessMijnTalenten.includes(role)\n );\n const canAccessMijnActies = userRoles.some((role) =>\n AccessMijnActies.includes(role)\n );\n const canAccessFaq = userRoles.includes(\n AllUserRoles.STANDAARD_GEBRUIKER\n );\n\n commit(\"CAN_ACCESS_MIJN_RECRUITMENT\", canAccessMijnRecruitment);\n commit(\n \"CAN_ACCESS_MIJN_WERVING_EN_SELECTIE\",\n canAccessMijnWervingEnSelectie\n );\n commit(\"CAN_ACCESS_MIJN_LOOPBAANADVIES\", canAccessMijnLoopbaanadvies);\n commit(\"CAN_ACCESS_DATABASE_PROFIELEN\", canAccessDatabaseProfielen);\n commit(\"CAN_ACCESS_MIJN_TALENTEN\", canAccessMijnTalenten);\n commit(\"CAN_ACCESS_MIJN_TAKEN\", canAccessMijnActies);\n commit(\"CAN_ACCESS_FAQ\", canAccessFaq);\n commit(\"IS_ACCESS_CHECKED\", true);\n }\n },\n\n /**\n *\n * @param dispatch\n * @param getters\n * @param instanceId\n * @return {Promise<{params: {}}>}\n */\n determineInstanceRoute: async ({ dispatch, getters }, instanceId) => {\n const route = { name: \"\", params: {} };\n\n // Handle routing to a non-dynamic path\n // instanceId is not an actual instance ID, but it includes a string that determines the route\n if (!IdUtils.isUUID(instanceId)) {\n // If the input is not an ID, it should be a known action\n if (Object.values(DeeplinkActions).includes(instanceId)) {\n switch (instanceId) {\n case DeeplinkActions.CREATE_CAPACITY_REQUEST:\n route.name = RoutesNames.NIEUWE_AANVRAAG;\n route.params = Links.NEW;\n break;\n case DeeplinkActions.WERVING_SELECTIE:\n route.name = RoutesNames.WERVINGSELECTIE;\n route.params = Links.MIJN_WERVING_EN_SELECTIE;\n break;\n case DeeplinkActions.WERVING_SELECTIE_ACTIES:\n route.name = RoutesNames.ACTIES;\n route.params = Links.MIJN_TAKEN;\n break;\n case DeeplinkActions.WERVING_SELECTIE_AANVRAGEN:\n route.name = RoutesNames.AANVRAGEN;\n route.params = Links.MIJN_TAKEN;\n break;\n case DeeplinkActions.RECRUITMENT:\n route.name = RoutesNames.RECRUITMENT;\n route.params = Links.MIJN_RECRUITMENT;\n break;\n case DeeplinkActions.RECRUITMENT_AANVRAGEN:\n route.name = RoutesNames.RECRUITMENT_AANVRAGEN;\n route.params = Links.RECRUITMENT_AANVRAGEN;\n break;\n case DeeplinkActions.RECRUITMENT_LOSSE_VACATURES:\n route.name = RoutesNames.RECRUITMENT_LOSSE_VACATURES;\n route.params = Links.RECRUITMENT_LOSSE_VACATURES;\n break;\n case DeeplinkActions.RECRUITMENT_NEW_LOSSE_VACATURE:\n route.name = RoutesNames.RECRUITMENT_NEW_LOSSE_VACATURE;\n route.params = Links.RECRUITMENT_NEW_LOSSE_VACATURE;\n break;\n case DeeplinkActions.RECRUITMENT_TALENTPOOL:\n route.name = RoutesNames.RECRUITMENT_TALENTPOOL;\n route.params = Links.TALENTPOOL;\n break;\n case DeeplinkActions.MY_PROFILE:\n route.name = RoutesNames.PROFIEL;\n route.params = Links.MIJN_PROFIEL;\n break;\n case DeeplinkActions.MY_APPLICATIONS:\n route.name = RoutesNames.SOLLICITATIES;\n route.params = Links.MIJN_SOLLICITATIES;\n break;\n case DeeplinkActions.MY_JOBALERTS:\n route.name = RoutesNames.JOB_ALERT;\n route.params = Links.JOB_ALERT;\n break;\n case DeeplinkActions.LOOPBAANADVIES:\n route.name = RoutesNames.LOOPBAANADVIES;\n route.params = Links.MIJN_LOOPBAANADVIES;\n break;\n case DeeplinkActions.LOOPBAANADVIES_PROFIELEN:\n route.name = RoutesNames.PROFIELEN;\n route.params = Links.LBA_PROFIELEN;\n break;\n case DeeplinkActions.LOOPBAANADVIES_VACATURES:\n route.name = RoutesNames.VACATURES;\n route.params = Links.LBA_VACATURES;\n break;\n case DeeplinkActions.DATABASE:\n route.name = RoutesNames.DATABASE;\n route.params = Links.DATABASE;\n break;\n default:\n // Do nothing\n break;\n }\n return route;\n }\n }\n\n // Search for instance\n const instance = await dispatch(\n \"search/searchSingleInstance\",\n instanceId\n );\n\n // Check instance definition and user's relation to instance\n switch (instance.relationships.definition.identification) {\n // For a capacity request, always navigate to the Aanvraag page\n case Identifications.AANVRAAG_CAPACITEIT:\n route.name = route.params.name = RoutesNames.AANVRAAG;\n route.params.instanceId = instanceId;\n break;\n\n case Identifications.TALENT_PROFIEL:\n // For Talent Profiel, check if it is the user's own profile\n if (\n instance.relationships.context.find(\n (context) => context.role === Roles.TALENT_PROFIEL_HOUDER\n ).relationships.related_instance.identification === getters.userId\n ) {\n // Navigate to own profile\n route.name = RoutesNames.PROFIEL;\n delete route.params;\n } else {\n // Navigate to profile in LBA\n route.name = route.params.name = RoutesNames.LBA_PROFIEL;\n route.params.instanceId = instanceId;\n route.params.instanceName = instance.name;\n }\n break;\n\n case Identifications.KANDIDAAT:\n // Find the related capacity request of the candidate, and fill shared route params\n const relatedRequest = instance.relationships.context.find(\n (context) =>\n context.role === Roles.INTERNE_KANDIDAAT ||\n context.role === Roles.EXTERNE_KANDIDAAT\n );\n route.params = {\n instanceId:\n relatedRequest.relationships.related_instance.identification,\n instanceName: relatedRequest.relationships.related_instance.name,\n candidateId: instanceId,\n candidateName: instance.name,\n };\n\n // If this is the user's own application candidate instance, navigate to application details\n if (\n instance.relationships.context.find(\n (context) => context.role === Roles.KANDIDAAT_HOUDER\n ).relationships.related_instance.identification === getters.userId\n ) {\n route.name = route.params.name = RoutesNames.SOLLICITATIE_DETAILS;\n } else {\n // Else, navigate to candidate route within the capacity request\n route.name = route.params.name = RoutesNames.KANDIDAAT;\n }\n break;\n\n case Identifications.VOORRANGSKANDIDAAT:\n // Find the related capacity request of the priority candidate, and fill shared route params\n const relatedPriorityRequest = instance.relationships.context.find(\n (context) => context.role === Roles.VOORRANGSKANDIDAAT\n );\n route.params = {\n instanceId:\n relatedPriorityRequest.relationships.related_instance\n .identification,\n instanceName:\n relatedPriorityRequest.relationships.related_instance.name,\n candidateId: instanceId,\n candidateName: instance.name,\n };\n\n // If this is the user's own application prioritycandidate instance, navigate to application details\n if (\n instance.relationships.context.find(\n (context) => context.role === Roles.VOORRANGSKANDIDAAT_HOUDER\n ).relationships.related_instance.identification === getters.userId\n ) {\n route.name = route.params.name = RoutesNames.SOLLICITATIE_DETAILS;\n } else {\n // Else, navigate to priority candidate route within the capacity request\n route.name = route.params.name = RoutesNames.KANDIDAAT;\n }\n break;\n\n case Identifications.TALENTPOOL_PROFIEL:\n route.name = route.params.name = RoutesNames.TALENTPOOL_PROFIEL;\n route.params.instanceId = instanceId;\n break;\n\n default:\n throw new StoreException(\n \"Kan geen route bepalen voor gegeven identificatie.\"\n );\n }\n\n return route;\n },\n },\n\n mutations: {\n SET_TENANT: (state, payload) => Vue.set(state, \"tenant\", payload),\n\n SET_ORGANISATION: (state, payload) =>\n Vue.set(state, \"organisation\", payload),\n\n UPDATE_USER: (state, payload) =>\n Vue.set(\n state,\n \"user\",\n merge(state.user, payload, {\n arrayMerge: (_destinationArray, sourceArray) => sourceArray,\n })\n ),\n\n SET_USER_SERVICES: (state, payload) =>\n Vue.set(state, \"userServices\", payload),\n\n SET_CONTROLEER_AANVRAGEN: (state, payload) =>\n Vue.set(state, \"controleerAanvragen\", payload),\n\n CAN_ACCESS_MIJN_RECRUITMENT: (state, payload) =>\n Vue.set(state, \"canAccessMijnRecruitment\", payload),\n CAN_ACCESS_MIJN_WERVING_EN_SELECTIE: (state, payload) =>\n Vue.set(state, \"canAccessMijnWervingEnSelectie\", payload),\n CAN_ACCESS_MIJN_LOOPBAANADVIES: (state, payload) =>\n Vue.set(state, \"canAccessMijnLoopbaanadvies\", payload),\n CAN_ACCESS_DATABASE_PROFIELEN: (state, payload) =>\n Vue.set(state, \"canAccessDatabaseProfielen\", payload),\n CAN_ACCESS_MIJN_TALENTEN: (state, payload) =>\n Vue.set(state, \"canAccessMijnTalenten\", payload),\n CAN_ACCESS_MIJN_TAKEN: (state, payload) =>\n Vue.set(state, \"canAccessMijnActies\", payload),\n CAN_ACCESS_FAQ: (state, payload) => Vue.set(state, \"canAccessFaq\", payload),\n IS_ACCESS_CHECKED: (state, payload) =>\n Vue.set(state, \"isAccessChecked\", payload),\n },\n modules: {\n tenantStore: tenantStore,\n omniselect: omniselect,\n instanceDefinitions: instanceDefinitions,\n search: search,\n genericInstance: genericInstance,\n activity: activity,\n instanceFlow: instanceFlow,\n notifications: notifications,\n chat: chat,\n media: media,\n candidates: candidates,\n talentProfile: talentProfile,\n recruitment: recruitment,\n requests: requests,\n loopbaanadvies: loopbaanadvies,\n applications: applications,\n process: processStore,\n matchbox: matchbox,\n recruitmentText: recruitmentText,\n configurations: configurations,\n emailTemplates: emailTemplates,\n breadcrumbs: breadcrumbs,\n mapping: mapping,\n conceptDefinitions: conceptDefinitions,\n talentPoolProfile: talentPoolProfile,\n },\n});\n","import { ServiceException } from \"./ErrorHandler\";\nconst invalid = \"Invalid response status\";\n\nexport function validateApiOkResponse(response) {\n // Check response status code\n if (response.status !== 200) {\n throw new ServiceException(invalid);\n }\n\n if (response.data instanceof Blob) {\n return response.data;\n }\n\n // Check for Omnimap response structure\n if (!(\"result\" in response.data)) {\n return response.data;\n }\n\n // Check api response code\n if (\n response.data.result.status === \"OK\" ||\n response.data.result.status === \"INFO\"\n ) {\n return response.data.data;\n } else if (response.data.result.status === \"WARNING\" && response.data.data) {\n return response.data.data;\n } else if (response.data.result.status === \"ERROR\") {\n if (response.data.result.errors.length === 1) {\n throw new ServiceException(response.data.result.errors[0].detail);\n } else {\n throw new ServiceException(\"Multiple errors detected\");\n }\n } else {\n throw new ServiceException(response.data.result.detail);\n }\n}\n\nexport function validateApiAcceptedResponse(response) {\n // Check response status code\n if (response.status !== 202) {\n throw new ServiceException(invalid);\n }\n\n // No response object for accepted responses\n return true;\n}\n\nexport function validateApiSearchResponse(response) {\n // Check response status code\n if (response.status !== 200) {\n throw new ServiceException(invalid);\n }\n\n // Check api response code\n if (\n response.data.result.status === \"OK\" ||\n response.data.result.status === \"INFO\"\n ) {\n return {\n meta: response.data.meta,\n data: response.data.data,\n };\n } else if (response.data.result.status === \"ERROR\") {\n if (response.data.result.errors.length === 1) {\n throw new ServiceException(response.data.result.errors[0].detail);\n } else {\n throw new ServiceException(\"Multiple errors detected\");\n }\n } else {\n throw new ServiceException(response.data.result.detail);\n }\n}\n","class Exception extends Error {\n constructor(type, error) {\n super(error);\n this.name = type;\n }\n\n get toString() {\n const errMessage = this.name + \" - \" + this.message;\n return () => errMessage;\n }\n}\n\nexport class ServiceException extends Exception {\n constructor(error) {\n super(\"ServiceException\", error);\n }\n}\n\nexport class ComponentException extends Exception {\n constructor(error) {\n super(\"ComponentException\", error);\n }\n}\n\nexport class StoreException extends Exception {\n constructor(error) {\n super(\"StoreException\", error);\n }\n}\n\nexport class UtilException extends Exception {\n constructor(error) {\n super(\"UtilException\", error);\n }\n}\n\nexport class ClassException extends Exception {\n constructor(error) {\n super(\"ClassException\", error);\n }\n}\n","export const Prefixes = Object.freeze({\n ALL: [\n \"sollicitaties\",\n \"aanvragen\",\n \"acties\",\n \"actions\",\n \"profiel\",\n \"profielen\",\n \"vacatures\",\n \"actie\",\n \"kandidaat\",\n \"tab\",\n \"source\",\n \"dashboard\",\n \"sollicitaties\",\n \"recruitment\",\n \"wervingselectie\",\n \"loopbaanadvies\",\n \"database\",\n \"nieuweaanvraag\",\n \"profile\",\n \"bulkactie\",\n \"lossevacatures\",\n \"talentpool\",\n ],\n NOT_SHOW_IN_BREADCRUMBS: [\n \"profile\",\n \"actie\",\n \"actions\",\n \"kandidaat\",\n \"tab\",\n \"source\",\n \"candidates\",\n \"details\",\n \"bulkactie\",\n ],\n INSTANCE: [\n \"sollicitaties\",\n \"aanvragen\",\n \"acties\",\n \"actions\",\n \"profiel\",\n \"profielen\",\n \"vacatures\",\n \"lossevacatures\",\n \"talentpool\",\n ],\n ACTION: \"actie\",\n BULK_ACTION: \"bulkactie\",\n CANDIDATE: \"kandidaat\",\n TAB: \"tab\",\n SOURCE: \"source\",\n TALENTPOOL: \"talentpool\",\n REQUEST_INSTANCE: [\n \"sollicitaties\",\n \"aanvragen\",\n \"acties\",\n \"actions\",\n \"vacatures\",\n \"lossevacatures\",\n ],\n PROFILE_INSTANCE: \"profielen\",\n MY_PROFILE_INSTANCE: \"profiel\",\n MY_SOLLICITATIES: \"sollicitaties\",\n DETAILS: \"details\",\n});\n\nexport const NotShowCrumbs = Object.freeze([\"tab\", \"source\", \"details\"]);\n\nexport const DynamicTypes = Object.freeze({\n INSTANCE: \"instance\",\n ACTION: \"action\",\n CANDIDATE: \"candidate\",\n TAB: \"tab\",\n SOURCE: \"source\",\n APPLICANT: \"details\",\n BULK_ACTION: \"bulkactie\",\n TALENTPOOL_PROFILE: \"talentpool_profile\",\n});\n\nexport const RouteNames = Object.freeze({\n AANVRAGEN: \"Aanvragen\",\n RECRUITMENT: \"Recruitment\",\n});\n\nexport const Breadcrumbs = Object.freeze({\n INSTANCE: \"instance\",\n CANDIDATE: \"candidate\",\n PROFILE: \"profile\",\n ACTION: \"action\",\n TAB: \"tab\",\n SOURCE: \"source\",\n TALENTPOOL_PROFILE: \"talentpool_profile\",\n});\n","export const CandidateTabs = Object.freeze({\n PROFIEL: \"Profiel\",\n BEOORDELINGEN: \"Beoordelingen\",\n JOUWSOLLICITATIE: \"Jouw sollicitaties\",\n ACTIES: \"Acties\",\n SOLLICITATIEVERLOOP: \"Sollicitatieverloop\",\n COMMUNICATIE: \"Communicatie\",\n});\n\nexport const CandidateRoles = Object.freeze({\n INTERNE_KANDIDAAT: \"Interne Kandidaat\",\n EXTERNE_KANDIDAAT: \"Externe Kandidaat\",\n VOORRANGS_KANDIDAAT: \"Voorrangskandidaat\",\n});\n\nexport const AddReviewActionIds = Object.freeze([\n \"b7875f13-0578-41dc-8dad-ff7336405644\",\n \"dfbe9e48-dfe2-46c8-be9a-3e6a4664f797\",\n]);\n\nexport const EditReviewActionId = Object.freeze([\n \"be56d72e-f0bc-43fb-84ec-44c7494afd18\",\n \"a33baf6d-f5f5-4215-8780-d26e106b83ae\",\n]);\n\nexport const ReviewedCandidatesStates = Object.freeze([\n \"AFGEWEZEN\",\n \"AVW OVEREENGEKOMEN\",\n \"INGETROKKEN\",\n]);\n\nexport const CandidatieActivities = Object.freeze({\n AANPASSEN_SOLLICITATIE: \"d608ade0-575f-46bd-a31d-0c3e38278d27\",\n});\n\nexport const CandidateProfileRoles = Object.freeze([\"Talentprofiel\"]);\n\nexport const CandidateView = Object.freeze({\n STANDARD: [\n \"Kandidaat\",\n \"RecruitmentKandidaat\",\n \"LBAVacatureKandidaat\",\n \"ActiesAanvraagKandidaat\",\n \"AanvraagActieKandidaat\",\n ],\n APPLICANT: [\"SollicitatieDetails\"],\n});\n\nexport const CandidateStatuses = Object.freeze({\n ALL: {\n value: null,\n label: \"Alle\",\n filterable: true,\n },\n NIEUW: {\n value: \"NIEUW\",\n label: \"Nieuw\",\n filterable: false,\n },\n TER_BEOORDELING: {\n value: \"TER BEOORDELING\",\n label: \"In behandeling\",\n filterable: true,\n },\n UITGENODIGD_VOOR_SELECTIERONDE: {\n value: \"UITGENODIGD VOOR SELECTIERONDE\",\n label: \"Uitgenodigd\",\n filterable: false,\n },\n ARBEIDSVOORWAARDEGESPREK: {\n value: \"ARBEIDSVOORWAARDEGESPREK\",\n label: \"Arbeidsvoorwaardegesprek\",\n filterable: false,\n },\n INGETROKKEN: {\n value: \"INGETROKKEN\",\n label: \"Ingetrokken\",\n filterable: false,\n },\n AFGEWEZEN: { value: \"AFGEWEZEN\", label: \"Afgewezen\", filterable: true },\n RESERVE: { value: \"IN RESERVE\", label: \"Reserve\", filterable: true },\n AANGENOMEN: { value: \"AANGENOMEN\", label: \"Aangenomen\", filterable: true },\n});\n\nexport const ApplicationsTypes = Object.freeze({\n ALLE: {\n statuses: null,\n label: \"Alle\",\n filterable: true,\n },\n LOPEND: {\n statuses: [\n \"afwijzen\",\n \"arbeidsvoorwaardengesprek\",\n \"avw overeengekome\",\n \"in reserve\",\n \"inplannen avw gesprek\",\n \"nieuw\",\n \"ter beoordeling\",\n \"uitgenodigd voor gesprek\",\n \"uitgenodigd voor selectieronde\",\n \"uitnodigen voor gesprek\",\n ],\n label: \"Lopend\",\n filterable: true,\n },\n AFGEROND: {\n statuses: [\"aangenomen\", \"afgewezen\", \"ingetrokken\"],\n label: \"Afgerond\",\n filterable: true,\n },\n});\n\nexport const CandidateSorting = Object.freeze({\n DEFAULT: {\n value: {\n type: \"timestamp_any_update\",\n direction: \"DESCENDING\",\n },\n label: \"Update, laatste eerst\",\n },\n timestamp_any_update: {\n value: {\n type: \"timestamp_any_update\",\n direction: \"ASCENDING\",\n },\n label: \"Update, oudste eerst\",\n },\n});\n\nexport const BulkActionInputMapping = Object.freeze({\n IN_REVERSE: `

Bedankt voor jouw sollicitatie op de functie van %Publicatietitel% - %CAnummer%. Inmiddels hebben we alle kandidaten beoordeeld en gaan we met een aantal geselecteerden verder in gesprek. Hoewel jouw profiel onze interesse heeft gewekt, is onze eerste keuze niet op jou gevallen. Wel zouden we je graag in reserve houden.

Het is mogelijk dat de volgende selectieronde geen match oplevert. Op dat moment nemen wij contact met jou op om alsnog deel te nemen aan het vervolg van het selectieproces. Natuurlijk alleen wanneer jij hiermee instemt. Ook wanneer wij wel een geschikte kandidaat vinden, ontvang je een bericht. Zo blijf je op de hoogte van het sollicitatieproces.

Het is goed om te weten dat jouw sollicitatie zichtbaar blijft in jouw profiel. Ga naar amsterdam.nl/werkenbij en log in met jouw e-mailadres en wachtwoord. Vervolgens vind je jouw sollicitatie onder \\`Mijn sollicitaties\\`. Je kunt daar ook de wervingstekst raadplegen.

Met vriendelijke groet,
[naam contactpersoon]
[functie contactpersoon]
Gemeente Amsterdam
[e-mailadres contactpersoon]

De gemeente Amsterdam volgt bij werving en selectie de NVP Sollicitatiecode. Vier weken na het afronden van de sollicitatieprocedure worden gegevens over jouw sollicitatie geanonimiseerd. In jouw profiel hou jij inzicht in jouw eigen gegevens. Medewerkers van de gemeente Amsterdam kunnen deze gegevens niet inzien en beschikken enkel over statistische data.

`,\n AFWIJZEN: `

Bedankt voor jouw sollicitatie op de functie van %Publicatietitel% - %CAnummer%. Wij hebben deze met aandacht bekeken en waarderen je interesse. Helaas is onze keuze niet op jou gevallen. [vul afwijsreden in]

Hoewel er nu geen match is, kan dit de volgende keer wel het geval zijn. Ben je op zoek naar een volgende loopbaanstap, bekijk dan geregeld het actuele aanbod van vacatures. Ook kun je een job alert instellen via jouw profiel. Dan ontvang je de vacatures van jouw voorkeur direct in jouw mailbox. Wij wensen je veel succes bij het vinden van een passende functie.

Het is goed om te weten dat jouw sollicitatie zichtbaar blijft in jouw profiel. Ga naar amsterdam.nl/werkenbij en log in met jouw e-mailadres en wachtwoord. Vervolgens vind je jouw sollicitatie onder \\`Mijn sollicitaties\\`.

Met vriendelijke groet,
[naam contactpersoon]
[functie contactpersoon]
Gemeente Amsterdam

[e-mailadres contactpersoon]
[telefoonnummer contactpersoon]

De gemeente Amsterdam volgt bij werving en selectie de NVP Sollicitatiecode. Vier weken na het afronden van de sollicitatieprocedure worden gegevens over jouw sollicitatie geanonimiseerd. In jouw profiel hou jij inzicht in jouw eigen gegevens. Medewerkers van de gemeente Amsterdam kunnen deze gegevens niet inzien en beschikken enkel over statistische data.

`,\n});\n\nexport const ErrorMessage =\n \"Sorry. Er is een probleem opgetreden bij het ophalen van de acties. Probeer het later opnieuw.\";\n","import { BulkActions } from \"@/utils/GeneralConstants\";\n\nexport const AanvraagSpecialActions = Object.freeze({\n WIJZIGEN_BACKOFFICE_MEDEWERKER: \"00bd2bb1-a7c6-4d48-b16c-ee3d9fb722e3\",\n WIJZIGEN_SELECTIECOMMISSIELEDEN: \"2c7b1379-d233-4090-96f0-fc7ea8fc57f5\",\n WIJZIGEN_CONTACTPERSONEN: \"a8bb656a-3928-41f1-a434-4db6e3e7472e\",\n AANPASSEN_EMAILADRESSEN: \"df45717e-63b6-492c-8a2b-b31a2d54dda1\",\n WIJZIGEN_AANVRAAG: \"291c7c7e-b350-4857-a874-76324c7601ae\",\n KOPIEREN_AANVRAAG: \"1e880b5e-48a4-4751-a20e-dde9d14475ae\",\n ANNULEREN_AANVRAAG: \"68ca9c58-d480-4b4a-9b18-73337ec5e996\",\n ANNULEREN_AANVRAAG_BACKOFFICE: \"419902c2-f161-482a-aacf-03e9f49bd91a\",\n TOEVOEGEN_EXTERNE_KANDIDAAT_AAN_VACATURE:\n \"f167567e-1ef6-43cf-9af1-47550a35de11\",\n TOEVOEGEN_INTERNE_KANDIDAAT_AAN_VACATURE:\n \"9003c527-b9c9-40b2-8c5a-8006bcf14e9e\",\n WIJZIGEN_TARIEF: \"16523869-5042-4665-ae49-bf4dff8489d9\",\n});\n\nexport const AanvraagNonShowActions = Object.freeze({\n AANMAKEN_INTERNE_KANDIDAAT: \"51612027-a3d0-45e5-9cda-c598c8736fbe\",\n AANMAKEN_EXTERNE_KANDIDAAT: \"b8f43e03-9669-4845-b489-ed5826513ea6\",\n ...BulkActions,\n});\n\nexport const SpecialIdentifications = Object.freeze({\n WIJZIGEN_CONTACTPERSONEN: \"a8bb656a-3928-41f1-a434-4db6e3e7472e\",\n KOPIEREN_AANVRAAG: \"1e880b5e-48a4-4751-a20e-dde9d14475ae\",\n ...BulkActions,\n});\n\nexport const NotAllowedToContinueActionIds = Object.freeze([\n \"bf0ad64a-892d-41e9-86d4-6bac0d18a0e4\",\n]);\n\nexport const EndStatuses = Object.freeze([\n \"AFGEWEZEN\",\n \"AVW OVEREENGEKOMEN\",\n \"INGETROKKEN\",\n \"GEEN MATCH\",\n]);\n\nexport const ContextRoles = Object.freeze({\n SELECTIECOMMISSIE: {\n name: \"Selectiecommissie\",\n },\n MANAGER: {\n name: \"Manager\",\n },\n});\n\nexport const InformationTabs = Object.freeze({\n AANVRAAG_GEGEVENS: \"Aanvraag gegevens\",\n INTERNE_WERVINGSTEKST: \"Interne wervingstekst\",\n EXTERNE_WERVINGSTEKST: \"Externe wervingstekst\",\n WERVING_EN_SELECTIEPROCES: \"Werving- & selectieproces\",\n});\n\nexport const AanvraagGegevens = Object.freeze([\n \"functie\",\n \"soortaanvraag\",\n \"contactgegevens\",\n \"contractgegevens\",\n \"akkoordenenadviezen\",\n \"organisatiegegevens\",\n \"data\",\n]);\nexport const ExcludedSchemaValues = Object.freeze([\n \"competentie1\",\n \"competentie2\",\n \"competentie3\",\n \"competentie4\",\n \"competentie5\",\n \"competentie6\",\n]);\nexport const AanvraagComposites = Object.freeze({\n BEWERKEN: \"5b8c3db9-51b9-435a-b18e-0f5fb8fb0c32\",\n MOBILITEITSFASE: \"faf71a2c-3e78-45e2-96a4-e38ab6dd5e12\",\n WERVEN_EN_SELECTEREN: \"d2bd5e9c-b93d-4e70-aee5-08a3cd9aaaba\",\n AFRONDEN_VERLENGING: \"e359fb12-f9e5-4ba8-b71a-c89583439c52\",\n});\n\nexport const MyRequestsTabs = Object.freeze({\n LOPENDE: \"Lopende aanvragen\",\n ALLE: \"Alle aanvragen\",\n VERLENGINGEN: \"Verlengingen\",\n});\n","export const LBATabs = Object.freeze({\n ALLE_PROFIELEN: \"Alle profielen\",\n VOORANGSKANDIDATEN: \"Voorangskandidaten\",\n MIJN_KANDIDATEN: \"Mijn kandidaten\",\n});\nexport const LBAGeneralActions = Object.freeze({\n ACCORDEREN_PROFIEL: \"8b11ec45-34f5-4e88-b4f7-01954dec4ed7\",\n WIJZIGEN_LBA: \"16d53621-eb6b-43d5-b08c-48e236a35c40\",\n WIJZIGEN_CATEGORIE: \"e916d426-fae0-4eaf-a509-1893e775c5ce\",\n ACCORDEREN_EN_INDIENEN: \"3120d0c9-1253-4487-8a1c-4ceea96991d8\",\n});\nexport const LBAVoorrangskandidatenActions = Object.freeze({\n ACCORDEREN_PROFIEL: \"8b11ec45-34f5-4e88-b4f7-01954dec4ed7\",\n WIJZIGEN_LBA: \"16d53621-eb6b-43d5-b08c-48e236a35c40\",\n WIJZIGEN_CATEGORIE: \"e916d426-fae0-4eaf-a509-1893e775c5ce\",\n DEACTIVEREN_PROFIEL: \"42b56410-c263-4d0d-97cd-14ef5b53627a\",\n ACCORDEREN_EN_INDIENEN: \"3120d0c9-1253-4487-8a1c-4ceea96991d8\",\n});\nexport const Voorrangskandidaten = [\n \"boventallig\",\n \"pre-boventallig\",\n \"re-integratie\",\n \"administratief geplaatst\",\n];\n\nexport const TypeKandidaat = Object.freeze({\n VOORANGSKANDIDAAT: \"Voorangskandidaat\",\n});\n","import { Identifications, Statuses } from \"@/utils/GeneralConstants\";\n\nconst ID = {\n label: \"ID\",\n value: \"identifier\",\n type: \"STRING\",\n};\nconst publicatietitel = {\n value: \"content.functie-publicatietitel\",\n label: \"Publicatietitel\",\n type: \"STRING\",\n};\nconst startontvangen = {\n value: \"content.data-startontvangen\",\n label: \"Start ontvangen\",\n type: \"DATE-TIME\",\n};\nconst bomedewerker = {\n value: \"content.data-bomedewerker\",\n label: \"Behandelaar\",\n type: \"STRING\",\n};\nconst vakgebied = {\n value: \"content.functie-vakgebied\",\n label: \"Vakgebied\",\n type: \"STRING\",\n};\nconst directie = {\n value: \"content.organisatiegegevens-directie\",\n label: \"Directie/stadsdeel\",\n type: \"STRING\",\n};\nconst status = {\n label: \"Status\",\n type: \"STRING\",\n value: \"status\",\n};\nconst werktitel = {\n value: \"content.functie-werktitel-display-value\",\n label: \"Werktitel\",\n type: \"STRING\",\n};\nconst typeaanvraag = {\n key: \"soortaanvraag-typeaanvraag\",\n and_or: \"AND\",\n datatype: \"STRING\",\n};\nconst nieuweMedewerker = {\n ...typeaanvraag,\n values: [\"nieuwe medewerker\"],\n};\nconst verlenging = {\n ...typeaanvraag,\n values: [\"verlenging\"],\n};\nconst stagiairs = {\n ...typeaanvraag,\n values: [\"stagiairs\"],\n};\n\nconst nieuweMedewerkerColumns = [\n ID,\n publicatietitel,\n startontvangen,\n {\n value: \"content.soortaanvraag-typecapaciteit\",\n label: \"Welk type capaciteit vraag je aan?\",\n type: \"STRING\",\n },\n status,\n bomedewerker,\n vakgebied,\n directie,\n];\nconst stagesColumns = [\n ID,\n startontvangen,\n werktitel,\n {\n value: \"content.soortaanvraag-typestage\",\n label: \"Welk type stage vraag je aan?\",\n type: \"STRING\",\n },\n status,\n bomedewerker,\n directie,\n vakgebied,\n];\nconst sortingStartOntvangen = [\n {\n sort_type: \"content\",\n direction: \"DESCENDING\",\n field: \"data-startontvangen\",\n },\n];\nexport const RecruitmentQueries = Object.freeze({\n ALLES: {\n label: \"Alles\",\n query: {\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n content: [],\n },\n value: \"5bba704e-edc1-490e-ace9-5ee09490c3be\",\n columns: [\n ID,\n publicatietitel,\n werktitel,\n startontvangen,\n status,\n bomedewerker,\n ],\n },\n NIEUWE_MEDEWERKER_ALLES: {\n label: \"Nieuwe medewerker (Alles)\",\n query: {\n content: [nieuweMedewerker],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [],\n },\n value: \"758ede30-2c24-423a-b0f1-d3a86c06839c\",\n columns: nieuweMedewerkerColumns,\n },\n NIEUWE_MEDEWERKERS_LOPEND: {\n label: \"Nieuwe medewerker (Lopend)\",\n value: \"4aea704e-edc1-490e-ace9-5ee09490c3be\",\n query: {\n content: [nieuweMedewerker],\n context: [],\n statuses: [\n {\n status: \"aanvullen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"voorlopig ingevuld\",\n and_or: \"OR\",\n },\n {\n status: \"accorderen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"aanvulling nodig\",\n and_or: \"OR\",\n },\n {\n status: \"gepubliceerd\",\n and_or: \"OR\",\n },\n {\n status: \"in behandeling\",\n and_or: \"OR\",\n },\n {\n status: \"mobiliteitsfase\",\n and_or: \"OR\",\n },\n {\n status: \"nieuw\",\n and_or: \"OR\",\n },\n {\n status: \"ter publicatie\",\n and_or: \"OR\",\n },\n {\n status: \"ter akkoord\",\n and_or: \"OR\",\n },\n ],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [],\n },\n columns: nieuweMedewerkerColumns,\n },\n STAGES_ALLES: {\n label: \"Stages (Alles)\",\n value: \"76c24c1b-f1e7-412f-896f-17d818346357\",\n query: {\n content: [stagiairs],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: sortingStartOntvangen,\n },\n columns: stagesColumns,\n },\n STAGES_LOPEND: {\n label: \"Stages (Lopend)\",\n value: \"b770725c-cb7f-480c-8df6-99305e15077d\",\n query: {\n content: [stagiairs],\n context: [],\n statuses: [\n {\n status: \"aanvullen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"accorderen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"aanvulling nodig\",\n and_or: \"OR\",\n },\n {\n status: \"gepubliceerd\",\n and_or: \"OR\",\n },\n {\n status: \"in behandeling\",\n and_or: \"OR\",\n },\n {\n status: \"nieuw\",\n and_or: \"OR\",\n },\n {\n status: \"ter publicatie\",\n and_or: \"OR\",\n },\n {\n status: \"ter akkoord\",\n and_or: \"OR\",\n },\n {\n status: \"voorlopig ingevuld\",\n and_or: \"OR\",\n },\n ],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: sortingStartOntvangen,\n },\n columns: stagesColumns,\n },\n VERLENGINGEN_ALLES: {\n label: \"Verlengingen (Alles)\",\n query: {\n content: [verlenging],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: sortingStartOntvangen,\n },\n value: \"425cc3cf-f6a8-4045-bb78-0952d97115c8\",\n columns: [\n ID,\n startontvangen,\n {\n value: \"content.soortaanvraag-typeverlenging\",\n label: \"Voor welk soort capaciteit wil je een verlenging indienen?\",\n type: \"STRING\",\n },\n {\n value: \"content.contractgegevens-naamkandidaat\",\n label: \"Naam kandidaat\",\n type: \"STRING\",\n },\n status,\n {\n value: \"content.contractgegevens-startdatumverlenging\",\n label: \"Startdatum verlenging \",\n type: \"DATE\",\n },\n bomedewerker,\n vakgebied,\n directie,\n ],\n },\n});\n\nconst LBAColumns = [\n ID,\n {\n value: \"content.data-startbehandelenloopbaanadvies\",\n label: \"Start behandelen loopbaanadvies\",\n type: \"DATE-TIME\",\n },\n publicatietitel,\n {\n value: \"content.organisatiegegevens-cluster\",\n label: \"Cluster\",\n type: \"STRING\",\n },\n directie,\n {\n value: \"content.organisatiegegevens-afdeling\",\n label: \"Afdeling\",\n type: \"STRING\",\n },\n {\n value: \"content.soortaanvraag-typecapaciteit\",\n label: \"Welk type capaciteit vraag je aan?\",\n type: \"STRING\",\n },\n {\n value: \"content.data-functie-generiekefunctienaam\",\n label: \"Generieke functienaam\",\n type: \"STRING\",\n },\n {\n value: \"content.functie-schaal\",\n label: \"Schaal\",\n type: \"STRING\",\n },\n {\n value: \"content.wervingstekst-inhetkort-werkendenkniveau\",\n label: \"Werk- en denkniveau\",\n type: \"STRING\",\n },\n {\n value: \"content.wervingstekst-inhetkort-aantalfte\",\n label: \"Aantal fte\",\n type: \"NUMBER\",\n },\n status,\n {\n value: \"content.kandidaten-supermatchernaam\",\n label: \"Supermatcher naam\",\n type: \"STRING\",\n },\n];\nconst LBASorting = [\n {\n sort_type: \"content\",\n direction: \"DESCENDING\",\n field: \"data-startbehandelenloopbaanadvies\",\n },\n];\n\nexport const LoopbaanadviesQueries = Object.freeze({\n ALLE_VACATURES: {\n label: \"Alle vacatures\",\n query: {\n content: [nieuweMedewerker],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: LBASorting,\n },\n value: \"932b4732-736b-4562-8e2d-e6908fd969f1\",\n columns: LBAColumns,\n },\n VACATURES_IN_MOBILITEITFASE: {\n label: \"Mobiliteitsfase\",\n query: {\n content: [],\n context: [],\n statuses: [\n {\n status: Statuses.MOBILITEITSFASE.label,\n and_or: \"OR\",\n },\n {\n status: Statuses.VOORLOPIG_INGEVULD.label,\n and_or: \"OR\",\n },\n ],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: LBASorting,\n },\n value: \"7897026a-b3c9-40f6-8377-17cec195cd2a\",\n columns: LBAColumns,\n },\n});\n\nexport const MyRequestsQueries = Object.freeze({\n LOPENDE: {\n content: [\n {\n values: [\"nieuwe medewerker\", \"stagiairs\"],\n key: \"soortaanvraag-typeaanvraag\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n ],\n context: [],\n statuses: [\n {\n status: \"aanvullen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"aanvulling nodig\",\n and_or: \"OR\",\n },\n {\n status: \"accorderen wervingstekst\",\n and_or: \"OR\",\n },\n {\n status: \"concept\",\n and_or: \"OR\",\n },\n {\n status: \"gepubliceerd\",\n and_or: \"OR\",\n },\n {\n status: \"in behandeling\",\n and_or: \"OR\",\n },\n {\n status: \"mobiliteitsfase\",\n and_or: \"OR\",\n },\n {\n status: \"ter akkoord\",\n and_or: \"OR\",\n },\n {\n status: \"nieuw\",\n and_or: \"OR\",\n },\n {\n status: \"ter publicatie\",\n and_or: \"OR\",\n },\n {\n status: \"voorlopig ingevuld\",\n and_or: \"OR\",\n },\n ],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [{ sort_type: \"timestamp_created\", direction: \"DESCENDING\" }],\n },\n ALLE: {\n content: [\n {\n values: [\"nieuwe medewerker\", \"stagiairs\"],\n key: \"soortaanvraag-typeaanvraag\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n ],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [{ sort_type: \"timestamp_created\", direction: \"DESCENDING\" }],\n },\n VERLENGINGEN: {\n content: [\n {\n values: [\"verlenging\"],\n key: \"soortaanvraag-typeaanvraag\",\n and_or: \"AND\",\n datatype: \"STRING\",\n },\n ],\n context: [],\n statuses: [],\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [{ sort_type: \"timestamp_created\", direction: \"DESCENDING\" }],\n },\n MANAGER: {\n definitions: [Identifications.AANVRAAG_CAPACITEIT],\n sorting: [{ sort_type: \"timestamp_created\", direction: \"DESCENDING\" }],\n context: [\n {\n role: \"Manager\",\n instance_identifiers: [],\n direction: \"from\",\n and_or: \"OR\",\n start: new Date().toISOString(),\n },\n ],\n text_search: null,\n statuses: [],\n },\n ALLE_LOSSE: {\n content: [],\n context: [],\n statuses: [],\n definitions: [Identifications.LOSSE_VACATURE],\n sorting: [{ sort_type: \"timestamp_created\", direction: \"DESCENDING\" }],\n },\n});\n","import { Identifications, Roles } from \"@/utils/GeneralConstants\";\n\nexport const searchProfileQuery = {\n context: [\n {\n role: Roles.TALENT_PROFIEL_HOUDER,\n instance_identifiers: null,\n direction: \"from\",\n and_or: \"OR\",\n start: new Date().toISOString(),\n },\n ],\n definitions: [Identifications.TALENT_PROFIEL],\n};\n\nexport const ProfileOwnerActions = Object.freeze({\n CONTROLEREN_EN_INDIENEN: \"0f3dfc7b-c9c0-45a8-b16b-d3de31191b81\",\n});\n\nexport const TalentProfileTypes = Object.freeze({\n interne_medewerker: \"Interne medewerker\",\n interne_kandidaat: \"Interne kandidaat\",\n externe_kandidaat: \"Externe kandidaat\",\n voorrangskandidaat: \"Voorrangskandidaat\",\n externe_voorrangskandidaat: \"Externe voorrangskandidaat\",\n});\n\nexport const TalentProfileStatuses = Object.freeze({\n NIEUW: \"NIEUW\",\n GEWIJZIGD: \"GEWIJZIGD\",\n ACTIEF: \"ACTIEF\",\n TER_AKKOORD: \"TER AKKOORD\",\n AANVULLING_NODIG: \"AANVULLING NODIG\",\n INACTIEF: \"INACTIEF\",\n VERLOPEN: \"VERLOPEN\",\n});\n\nexport const ProfileActionsLBA = Object.freeze({\n ALGEMEEN: \"e79cbc77-439e-49dd-b786-9d90805c6565\",\n OMSCHRIJVING: \"475da0d4-c4bf-4976-bde6-73c626834ae4\",\n WERKERVARING: \"fd1f6875-0125-441c-8bc6-7f33fb55d05e\",\n OPLEIDINGEN: \"ebf0a961-3565-4e22-942e-c801a37e794a\",\n CERTIFICATEN_EN_CURSUSSEN: \"ee9287a8-b80d-4e2c-afb9-053aa019de7e\",\n EXPERTISES: \"f40b6350-5704-4571-8257-f8169b804e1b\",\n TALEN_EN_RIJBEWIJS: \"bfc8782d-e691-49ec-bda6-619d7353264d\",\n COMPETENTIES: \"f8925693-2793-416c-92af-a42f6edac2ff\",\n ZOEKRICHTING: \"8e07e510-cdbf-4c99-a8ca-19c791bcb231\",\n BESCHIKBAARHEID: \"ff697099-9639-4f72-81ae-9a3a3ef308d5\",\n});\nexport const ProfileActionsOwner = Object.freeze({\n ALGEMEEN: \"563a12c9-46ef-42ed-b150-ea00fd67f450\",\n OMSCHRIJVING: \"69b37c2c-3b0a-4aa2-b73b-527939fe7f41\",\n WERKERVARING: \"db8a2ba3-61ec-449a-bdcf-354352c01678\",\n OPLEIDINGEN: \"63b79b5f-f441-4f60-8493-6f3bae909db9\",\n CERTIFICATEN_EN_CURSUSSEN: \"1a40835f-3095-4fa7-af77-43d67e7b6878\",\n EXPERTISES: \"b6041415-eaaf-437c-b9e7-79af10ff4e85\",\n TALEN_EN_RIJBEWIJS: \"daedcee4-fac8-4b38-99a2-4b1691701d23\",\n COMPETENTIES: \"bd742690-7129-4393-973f-e97ad0afc0a0\",\n ZOEKRICHTING: \"1f2e263c-2230-4461-8312-1668a28f8085\",\n BESCHIKBAARHEID: \"b1c5177f-d6dd-4f03-aaec-5e2952034415\",\n});\n\nexport const TalentProfileActions = Object.freeze({\n PROFIELOPSTELLEN: \"2be18ed8-8164-4a93-96d5-9b5c5aa3f5f6\",\n INDIENENPROFIEL: \"0f3dfc7b-c9c0-45a8-b16b-d3de31191b81\",\n INDIENENWIJZIGINGEN: \"193a81b4-b2f1-4a51-8ee5-d3a063116fcc\",\n ACTIVERENPROFIEL: \"ee0a21be-7932-4dbe-bba0-e5adcbdf46f5\",\n DEACTIVERENPROFIEL: \"9b0b8d2d-fdc3-49ec-9240-987d8dc36161\",\n});\n\nexport const ProfileCategories = Object.freeze({\n BOVENTALLIG: \"Boventallig\",\n REINTEGRATIE: \"Re-integratie\",\n ADMINISTRATIEF_GEPLAATST: \"Administratief geplaatst\",\n PREBOVENTALLIG: \"Pre-boventallig\",\n INTERNE_MEDEWERKER: \"Interne medewerker\",\n UITZENDKRACHT: \"Uitzendkracht\",\n TRAINEE: \"Trainee\",\n WW: \"WW\",\n EXTERNE_SOLLICITANT: \"Lager onderwijs\",\n OUDSTAGIAIRE: \"Oud-stagiaire\",\n ARBEIDSBEPERKING: \"Arbeidsbeperking\",\n});\n\nexport const ProfileWizardTitles = Object.freeze({\n gegevensophalenuitmijnpo: \"MijnP&O koppeling\",\n algemeneinformatie: \"algemene gegevens\",\n omschrijving: \"omschrijving\",\n werkervaring: \"werkervaring\",\n opleidingen: \"opleidingen\",\n certificatenencursussen: \"certificaten en cursussen\",\n expertises: \"expertises\",\n talenenrijbewijs: \"talen en rijbewijs\",\n competenties: \"competenties\",\n infoloopbaan: \"loopbaan\",\n zoekrichting: \"zoekrichting\",\n beschikbaarheid: \"beschikbaarheid\",\n});\n\nexport const ProfileSectionsLabels = Object({\n GENERAL: \"ALGEMEEN\",\n DESCRIPTION: \"OMSCHRIJVING\",\n WORK_EXPERIENCE: \"WERKERVARING\",\n EDUCATION: \"OPLEIDINGEN\",\n CERTIFICATES: \"CERTIFICATEN_EN_CURSUSSEN\",\n LANGUAGES: \"TALEN_EN_RIJBEWIJS\",\n COMPETENCIES: \"COMPETENTIES\",\n EXPERTISES: \"EXPERTISES\",\n SEARCH: \"ZOEKRICHTING\",\n AVAILABILITY: \"BESCHIKBAARHEID\",\n});\n\nexport const ShowItemsAsRecords = [\"Werkervaring\"];\n","// Taken from https://www.sitepoint.com/mime-types-complete-list/\nconst dmf = \"x-world/x-3dmf\";\nconst octetStream = \"application/octet-stream\";\nconst postScript = \"application/postscript\";\nconst aiff = \"audio/aiff\";\nconst plain = \"text/plain\";\nconst xDirector = \"application/x-director\";\nconst msWord = \"application/msword\";\nconst dwg = \"image/vnd.dwg\";\nconst make = \"audio/make\";\nconst hpHpgl = \"application/vnd.hp-hpgl\";\nconst jpeg = \"image/jpeg\";\nconst midi = \"audio/midi\";\nconst mpeg = \"video/mpeg\";\nconst rfc822 = \"message/rfc822\";\nconst quicktime = \"video/quicktime\";\nconst xProject = \"application/x-project\";\nconst msPowerpoint = \"application/vnd.ms-powerpoint\";\nconst xQuicktime = \"image/x-quicktime\";\nconst realAudio = \"audio/x-pn-realaudio\";\nconst xTroff = \"application/x-troff\";\nconst xKoan = \"application/x-koan\";\nconst uriList = \"text/uri-list\";\nconst xVisio = \"application/x-visio\";\nconst wordPerfect = \"application/wordperfect\";\nconst excel = \"application/excel\";\nconst msExcel = \"application/vnd.ms-excel\";\n\nexport const FileExtentions = Object.freeze({\n \"3dm\": dmf,\n \"3dmf\": dmf,\n a: octetStream,\n aab: \"application/x-authorware-bin\",\n aam: \"application/x-authorware-map\",\n aas: \"application/x-authorware-seg\",\n abc: \"text/vnd.abc\",\n acgi: \"text/html\",\n afl: \"video/animaflex\",\n ai: postScript,\n aif: aiff,\n aifc: aiff,\n aiff: aiff,\n aim: \"application/x-aim\",\n aip: \"text/x-audiosoft-intra\",\n ani: \"application/x-navi-animation\",\n aos: \"application/x-nokia-9000-communicator-add-on-software\",\n aps: \"application/mime\",\n arc: octetStream,\n arj: \"application/arj\",\n art: \"image/x-jg\",\n asf: \"video/x-ms-asf\",\n asm: \"text/x-asm\",\n asp: \"text/asp\",\n asx: \"application/x-mplayer2\",\n au: \"audio/basic\",\n avi: \"application/x-troff-msvideo\",\n avs: \"video/avs-video\",\n bcpio: \"application/x-bcpio\",\n bin: octetStream,\n bm: \"image/bmp\",\n bmp: \"image/bmp\",\n boo: \"application/book\",\n book: \"application/book\",\n boz: \"application/x-bzip2\",\n bsh: \"application/x-bsh\",\n bz: \"application/x-bzip\",\n bz2: \"application/x-bzip2\",\n c: plain,\n \"c++\": plain,\n cat: \"application/vnd.ms-pki.seccat\",\n cc: plain,\n ccad: \"application/clariscad\",\n cco: \"application/x-cocoa\",\n cdf: \"application/cdf\",\n cha: \"application/x-chat\",\n chat: \"application/x-chat\",\n class: \"application/java\",\n com: octetStream,\n conf: plain,\n cpio: \"application/x-cpio\",\n cpp: \"text/x-c\",\n cpt: \"application/x-cpt\",\n crl: \"application/pkcs-crl\",\n csh: \"application/x-csh\",\n css: \"text/css\",\n cxx: plain,\n dcr: xDirector,\n deepv: \"application/x-deepv\",\n def: plain,\n der: \"application/x-x509-ca-cert\",\n dif: \"video/x-dv\",\n dir: xDirector,\n dl: \"video/dl\",\n doc: msWord,\n dot: msWord,\n dp: \"application/commonground\",\n drw: \"application/drafting\",\n dump: octetStream,\n dv: \"video/x-dv\",\n dvi: \"application/x-dvi\",\n dwf: \"model/vnd.dwf\",\n dwg: dwg,\n dxf: dwg,\n dxr: xDirector,\n el: \"text/x-script.elisp\",\n elc: \"application/x-elc\",\n env: \"application/x-envoy\",\n eps: postScript,\n es: \"application/x-esrehber\",\n etx: \"text/x-setext\",\n evy: \"application/envoy\",\n exe: octetStream,\n f: plain,\n f77: \"text/x-fortran\",\n f90: plain,\n fdf: \"application/vnd.fdf\",\n fif: \"image/fif\",\n fli: \"video/fli\",\n flo: \"image/florian\",\n flx: \"text/vnd.fmi.flexstor\",\n fmf: \"video/x-atomic3d-feature\",\n for: plain,\n fpx: \"image/vnd.fpx\",\n frl: \"application/freeloader\",\n funk: make,\n g: plain,\n g3: \"image/g3fax\",\n gif: \"image/gif\",\n gl: \"video/gl\",\n gsd: \"audio/x-gsm\",\n gsm: \"audio/x-gsm\",\n gsp: \"application/x-gsp\",\n gss: \"application/x-gss\",\n gtar: \"application/x-gtar\",\n gz: \"application/x-gzip\",\n gzip: \"application/x-gzip\",\n h: plain,\n hdf: \"application/x-hdf\",\n help: \"application/x-helpfile\",\n hgl: hpHpgl,\n hh: plain,\n hlb: \"text/x-script\",\n hlp: \"application/hlp\",\n hpg: hpHpgl,\n hpgl: hpHpgl,\n hqx: \"application/binhex\",\n hta: \"application/hta\",\n htc: \"text/x-component\",\n htm: \"text/html\",\n html: \"text/html\",\n htmls: \"text/html\",\n htt: \"text/webviewhtml\",\n htx: \"text/html\",\n ice: \"x-conference/x-cooltalk\",\n ico: \"image/x-icon\",\n idc: plain,\n ief: \"image/ief\",\n iefs: \"image/ief\",\n iges: \"model/iges\",\n igs: \"model/iges\",\n ima: \"application/x-ima\",\n imap: \"application/x-httpd-imap\",\n inf: \"application/inf\",\n ins: \"application/x-internett-signup\",\n ip: \"application/x-ip2\",\n isu: \"video/x-isvideo\",\n it: \"audio/it\",\n iv: \"application/x-inventor\",\n ivr: \"i-world/i-vrml\",\n ivy: \"application/x-livescreen\",\n jam: \"audio/x-jam\",\n jav: plain,\n java: \"text/x-java-source\",\n jcm: \"application/x-java-commerce\",\n jfif: jpeg,\n \"jfif-tbnl\": jpeg,\n jpe: jpeg,\n jpeg: jpeg,\n jpg: jpeg,\n jps: \"image/x-jps\",\n js: \"text/javascript\",\n jut: \"image/jutvision\",\n kar: midi,\n ksh: \"application/x-ksh\",\n la: \"audio/nspaudio\",\n lam: \"audio/x-liveaudio\",\n latex: \"application/x-latex\",\n lha: octetStream,\n lhx: octetStream,\n list: plain,\n lma: \"audio/nspaudio\",\n log: plain,\n lsp: \"application/x-lisp\",\n lst: plain,\n lsx: \"text/x-la-asf\",\n ltx: \"application/x-latex\",\n lzh: octetStream,\n lzx: octetStream,\n m: plain,\n m1v: mpeg,\n m2a: \"audio/mpeg\",\n m2v: mpeg,\n m3u: \"audio/x-mpequrl\",\n man: \"application/x-troff-man\",\n map: \"application/x-navimap\",\n mar: plain,\n mbd: \"application/mbedlet\",\n mc$: \"application/x-magic-cap-package-1.0\",\n mcd: \"application/mcad\",\n mcf: \"text/mcf\",\n mcp: \"application/netmc\",\n me: \"application/x-troff-me\",\n mht: rfc822,\n mhtml: rfc822,\n mid: midi,\n midi: midi,\n mif: \"application/x-frame\",\n mime: \"www/mime\",\n mjf: \"audio/x-vnd.audioexplosion.mjuicemediafile\",\n mjpg: \"video/x-motion-jpeg\",\n mm: \"application/base64\",\n mme: \"application/base64\",\n mod: \"audio/mod\",\n moov: quicktime,\n mov: quicktime,\n movie: \"video/x-sgi-movie\",\n mp2: mpeg,\n mp3: mpeg,\n mpa: mpeg,\n mpc: xProject,\n mpe: mpeg,\n mpeg: mpeg,\n mpg: mpeg,\n mpga: \"audio/mpeg\",\n mpp: \"application/vnd.ms-project\",\n mpt: xProject,\n mpv: xProject,\n mpx: xProject,\n mrc: \"application/marc\",\n ms: \"application/x-troff-ms\",\n mv: \"video/x-sgi-movie\",\n my: make,\n mzz: \"application/x-vnd.audioexplosion.mzz\",\n nap: \"image/naplps\",\n naplps: \"image/naplps\",\n nc: \"application/x-netcdf\",\n ncm: \"application/vnd.nokia.configuration-message\",\n nif: \"image/x-niff\",\n niff: \"image/x-niff\",\n nix: \"application/x-mix-transfer\",\n nsc: \"application/x-conference\",\n nvd: \"application/x-navidoc\",\n o: octetStream,\n oda: \"application/oda\",\n omc: \"application/x-omc\",\n omcd: \"application/x-omcdatamaker\",\n omcr: \"application/x-omcregerator\",\n p: \"text/x-pascal\",\n p10: \"application/pkcs10\",\n p12: \"application/pkcs-12\",\n p7a: \"application/x-pkcs7-signature\",\n p7c: \"application/pkcs7-mime\",\n p7m: \"application/pkcs7-mime\",\n p7r: \"application/x-pkcs7-certreqresp\",\n p7s: \"application/pkcs7-signature\",\n part: \"application/pro_eng\",\n pas: \"text/pascal\",\n pbm: \"image/x-portable-bitmap\",\n pcl: \"application/vnd.hp-pcl\",\n pct: \"image/x-pict\",\n pcx: \"image/x-pcx\",\n pdb: \"chemical/x-pdb\",\n pdf: \"application/pdf\",\n pfunk: make,\n pgm: \"image/x-portable-graymap\",\n pic: \"image/pict\",\n pict: \"image/pict\",\n pkg: \"application/x-newton-compatible-pkg\",\n pko: \"application/vnd.ms-pki.pko\",\n pl: plain,\n plx: \"application/x-pixclscript\",\n pm: \"image/x-xpixmap\",\n pm4: \"application/x-pagemaker\",\n pm5: \"application/x-pagemaker\",\n png: \"image/png\",\n pnm: \"image/x-portable-anymap\",\n pot: msPowerpoint,\n pov: \"model/x-pov\",\n ppa: msPowerpoint,\n ppm: \"image/x-portable-pixmap\",\n pps: msPowerpoint,\n ppt: msPowerpoint,\n ppz: \"application/mspowerpoint\",\n pre: \"application/x-freelance\",\n prt: \"application/pro_eng\",\n ps: postScript,\n psd: octetStream,\n pvu: \"paleovu/x-pv\",\n pwz: msPowerpoint,\n py: \"text/x-script.phyton\",\n pyc: \"application/x-bytecode.python\",\n qcp: \"audio/vnd.qcelp\",\n qd3: dmf,\n qd3d: dmf,\n qif: xQuicktime,\n qt: quicktime,\n qtc: \"video/x-qtc\",\n qti: xQuicktime,\n qtif: xQuicktime,\n ra: \"audio/x-realaudio\",\n ram: realAudio,\n ras: \"image/cmu-raster\",\n rast: \"image/cmu-raster\",\n rexx: \"text/x-script.rexx\",\n rf: \"image/vnd.rn-realflash\",\n rgb: \"image/x-rgb\",\n rm: \"application/vnd.rn-realmedia\",\n rmi: \"audio/mid\",\n rmm: realAudio,\n rmp: realAudio,\n rnx: \"application/vnd.rn-realplayer\",\n roff: xTroff,\n rp: \"image/vnd.rn-realpix\",\n rpm: \"audio/x-pn-realaudio-plugin\",\n rt: \"text/richtext\",\n rtf: \"application/rtf\",\n rtx: \"application/rtf\",\n rv: \"video/vnd.rn-realvideo\",\n s: \"text/x-asm\",\n s3m: \"audio/s3m\",\n saveme: octetStream,\n sbk: \"application/x-tbook\",\n scm: \"video/x-scm\",\n sdml: plain,\n sdp: \"application/sdp\",\n sdr: \"application/sounder\",\n sea: \"application/sea\",\n set: \"application/set\",\n sgm: \"text/sgml\",\n sgml: \"text/sgml\",\n sh: \"text/x-script.sh\",\n shar: \"application/x-shar\",\n shtml: \"text/html\",\n sid: \"audio/x-psid\",\n sit: \"application/x-sit\",\n skd: xKoan,\n skm: xKoan,\n skp: xKoan,\n skt: xKoan,\n sl: \"application/x-seelogo\",\n smi: \"application/smil\",\n smil: \"application/smil\",\n snd: \"audio/basic\",\n sol: \"application/solids\",\n spc: \"text/x-speech\",\n spl: \"application/futuresplash\",\n spr: \"application/x-sprite\",\n sprite: \"application/x-sprite\",\n src: \"application/x-wais-source\",\n ssi: \"text/x-server-parsed-html\",\n ssm: \"application/streamingmedia\",\n sst: \"application/vnd.ms-pki.certstore\",\n step: \"application/step\",\n stl: \"application/sla\",\n stp: \"application/step\",\n sv4cpio: \"application/x-sv4cpio\",\n sv4crc: \"application/x-sv4crc\",\n svf: dwg,\n swf: \"application/x-shockwave-flash\",\n t: xTroff,\n talk: \"text/x-speech\",\n tar: \"application/x-tar\",\n tbk: \"application/toolbook\",\n tcl: \"application/x-tcl\",\n tcsh: \"text/x-script.tcsh\",\n tex: \"application/x-tex\",\n texi: \"application/x-texinfo\",\n texinfo: \"application/x-texinfo\",\n text: plain,\n tgz: \"application/x-compressed\",\n tif: \"image/tiff\",\n tiff: \"image/tiff\",\n tr: xTroff,\n tsi: \"audio/tsp-audio\",\n tsp: \"application/dsptype\",\n tsv: \"text/tab-separated-values\",\n turbot: \"image/florian\",\n txt: plain,\n uil: \"text/x-uil\",\n uni: uriList,\n unis: uriList,\n unv: \"application/i-deas\",\n uri: uriList,\n uris: uriList,\n ustar: \"application/x-ustar\",\n uu: octetStream,\n uue: \"text/x-uuencode\",\n vcd: \"application/x-cdlink\",\n vcs: \"text/x-vcalendar\",\n vda: \"application/vda\",\n vdo: \"video/vdo\",\n vew: \"application/groupwise\",\n viv: \"video/vnd.vivo\",\n vivo: \"video/vnd.vivo\",\n vmd: \"application/vocaltec-media-desc\",\n vmf: \"application/vocaltec-media-file\",\n voc: \"audio/voc\",\n vos: \"video/vosaic\",\n vox: \"audio/voxware\",\n vqe: \"audio/x-twinvq-plugin\",\n vqf: \"audio/x-twinvq\",\n vql: \"audio/x-twinvq-plugin\",\n vrml: \"application/x-vrml\",\n vrt: \"x-world/x-vrt\",\n vsd: xVisio,\n vst: xVisio,\n vsw: xVisio,\n w60: \"application/wordperfect6.0\",\n w61: \"application/wordperfect6.1\",\n w6w: msWord,\n wav: \"audio/wav\",\n wb1: \"application/x-qpro\",\n wbmp: \"image/vnd.wap.wbmp\",\n web: \"application/vnd.xara\",\n wiz: msWord,\n wk1: \"application/x-123\",\n wmf: \"windows/metafile\",\n wml: \"text/vnd.wap.wml\",\n wmlc: \"application/vnd.wap.wmlc\",\n wmls: \"text/vnd.wap.wmlscript\",\n wmlsc: \"application/vnd.wap.wmlscriptc\",\n word: msWord,\n wp: wordPerfect,\n wp5: wordPerfect,\n wp6: wordPerfect,\n wpd: wordPerfect,\n wq1: \"application/x-lotus\",\n wri: \"application/mswrite\",\n wrl: \"model/vrml\",\n wrz: \"model/vrml\",\n wsc: \"text/scriplet\",\n wsrc: \"application/x-wais-source\",\n wtk: \"application/x-wintalk\",\n xbm: \"image/xbm\",\n xdr: \"video/x-amt-demorun\",\n xgz: \"xgl/drawing\",\n xif: \"image/vnd.xiff\",\n xl: excel,\n xla: excel,\n xlb: msExcel,\n xlc: msExcel,\n xld: \"application/x-excel\",\n xlk: \"application/x-excel\",\n xll: msExcel,\n xlm: msExcel,\n xls: msExcel,\n xlt: excel,\n xlv: excel,\n xlw: msExcel,\n xm: \"audio/xm\",\n xml: \"application/xml\",\n xmz: \"xgl/movie\",\n xpix: \"application/x-vnd.ls-xpix\",\n xpm: \"image/xpm\",\n \"x-png\": \"image/png\",\n xsr: \"video/x-amt-showrun\",\n xwd: \"image/x-xwd\",\n xyz: \"chemical/x-pdb\",\n z: \"application/x-compressed\",\n zip: \"application/zip\",\n zoo: octetStream,\n zsh: \"text/x-script.zsh\",\n\n //Content types below this point are retrieved from different sources\n dgn: \"image/vnd.dgn\",\n eml: rfc822,\n msg: \"application/vnd.ms-outlook\",\n mkv: \"video/x-matroska\",\n m4p: \"audio/m4p\",\n});\n\nexport const Files = Object.freeze({\n maxSize: 100000000,\n});\n\nexport const Identifications = Object.freeze({\n AANVRAAG_CAPACITEIT: \"4cacef5f-da68-4730-81d0-d76ac928e8b4\",\n AFAS_SYNCHRONISATIE: \"6ff52979-7d78-4e09-ad0f-571497a897e1\",\n BACKGROUND: \"c254cf89-3d1a-4738-802a-80c6c8c5dd1f\",\n BACKOFFICE: \"c0697f32-fbe4-495d-9eb6-186e0790fc96\",\n DIRECTEUR: \"fc84405f-8e04-4489-b5d4-9884c6d7ca83\",\n FUNCTIENAAM: \"dfc723ce-cc4c-4149-b306-8b0308fee2fc\",\n INCIDENT: \"d9f3c45e-4868-479f-99cf-f6e3e863c91b\",\n KANDIDAAT: \"3ea703ea-22ba-4398-824f-d16b24f7549f\",\n LEIDINGGEVENDE: \"eb9bfd6e-f861-417d-8dd3-bba5c3ff0fe0\",\n NOTE: \"c5a0b5cc-f9dd-412f-b0d0-aa4dea84da79\",\n ORGANISATION: \"95b52b57-7ea5-4b8e-a986-1e1d79becdaf\",\n PDFTemplates: \"3179d501-de5d-448f-af79-60eaaad9ff15\",\n SELECTERENENBESLISSEN: \"c4245e98-b90c-4e97-836b-d878a75219d2\",\n TALENT_PROFIEL: \"4d6cd2c3-933b-4f5a-9bd0-9156c98cf0aa\",\n USER: \"e5453dd2-7cd0-4de6-b38a-89904b8f86bd\",\n VOORRANGSKANDIDAAT: \"7fb23540-a724-41bc-bea2-816a74e21734\",\n WERKLOCATIE: \"dd45fb7b-001b-4777-a5d8-85758db0ffc9\",\n WERKTITEL: \"0f6fe8b8-987e-49f0-a6ad-05fae81d8232\",\n LOSSE_VACATURE: \"7e429fd2-533c-41a6-a993-78c7a8201b3d\",\n TALENTPOOL_PROFIEL: \"12145c6f-e0ce-46ff-96c5-01e334757e55\",\n TALENTPOOL: \"1dcdf36e-e42b-4bb3-800e-b2715e45b1e5\",\n\n STAGE_DEFINITION_SELECTEREN: \"37d476c5-df05-4e2f-b566-d746519f3f9e\",\n STAGE_DEFINITION_VOLTOOIEN_AANVRAAG: \"d30c3741-ae9a-4c1d-85f4-f23bc9564c4c\",\n STAGE_DEFINITION_INTREKKEN_SOLLICITATIE:\n \"74e2c506-95ab-4b4d-a5b9-25b695493034\",\n STAGE_DEFINITION_AFAS_KOPPELING: \"4bc4533e-7e91-4f5a-b037-3c479ea829cb\",\n STAGE_DEFINITION_JOBALERT_BIJWERKEN: \"605d19a0-9075-4a38-8cca-5e52eb891cf4\",\n STAGE_DEFINITION_JOBALERT_AFMELDEN: \"99556200-b869-4487-9556-1d4db5b69f3a\",\n\n PDF_GENERATOR: \"1136032a-9262-4753-91f1-b8e31971917c\",\n\n CONCEPT_AANVRAAG_CAPACITEIT: \"7a5c6915-4522-4733-94fd-d7e819deace5\",\n CONCEPT_LOSSE_VACATURE: \"411d128b-aeda-4cba-a3be-790074fb7619\",\n});\n\nexport const Roles = Object.freeze({\n SELECTIECOMMISSIE: \"Selectiecommissie\",\n MANAGER: \"Manager\",\n AANVRAGER: \"Aanvrager\",\n PRIMAIR_CONTACTPERSOON: \"Primair contactpersoon\",\n SECUNDAIR_CONTACTPERSOON_1: \"Secundair contactpersoon 1\",\n SECUNDAIR_CONTACTPERSOON_2: \"Secundair contactpersoon 2\",\n TALENT_PROFIEL_HOUDER: \"Talentprofielhouder\",\n VOORRANGSKANDIDAAT_HOUDER: \"Voorrangskandidaathouder\",\n VOORRANGSKANDIDAAT: \"Voorrangskandidaat\",\n KANDIDAAT_HOUDER: \"Kandidaathouder\",\n LOOPBAAN_ADVISEUR: \"Loopbaan adviseur\",\n TALENTPOOL_HOUDER: \"Talentpool houder\",\n EIGENAAR_PROFIEL: \"Eigenaar profiel\",\n TALENTPOOL_LID: \"Talentpool lid\",\n INTERNE_KANDIDAAT: \"Interne Kandidaat\",\n EXTERNE_KANDIDAAT: \"Externe Kandidaat\",\n});\n\nexport const Codes = Object.freeze({\n AANVRAAG_CAPACITEIT: \"AANVRAAG_CAPACITEIT\",\n AFAS_SYNCHRONISATIE: \"AFAS_SYNCHRONISATIE\",\n BACKGROUND_PROCESS: \"BACKGROUND\",\n BACKOFFICE: \"BACKOFFICE\",\n DIRECTEUR: \"DIRECTEUR\",\n FUNCTIENAAM: \"FUNCTIENAAM\",\n INCIDENT: \"INCIDENT\",\n KANDIDAAT: \"KANDIDAAT\",\n LEIDINGGEVENDE: \"LEIDINGGEVENDE\",\n NOTE: \"NOTE\",\n ORGANISATION: \"ORGANISATION\",\n PDFTemplates: \"PDFTemplates\",\n SELECTERENENBESLISSEN: \"SELECTERENENBESLISSEN\",\n TALENT_PROFIEL: \"TALENT_PROFIEL\",\n USER: \"USER\",\n VOORRANGSKANDIDAAT: \"VOORRANGSKANDIDAAT\",\n WERKLOCATIE: \"WERKLOCATIE\",\n WERKTITEL: \"WERKTITEL\",\n LOSSE_VACATURE: \"LOSSE_VACATURE\",\n});\n\nexport const ConceptCodes = Object.freeze({\n AANVRAAG_CAPACITEIT: \"NA\",\n LOSSE_VACATURE: \"LV\",\n});\n\n// Type of actions a user can perform (important for checking permissions)\nexport const ActionType = Object.freeze({\n GET: \"get\",\n POST: \"post\",\n PUT: \"put\",\n PATCH: \"patch\",\n DELETE: \"delete\",\n COPY: \"copy\",\n HEAD: \"head\",\n OPTIONS: \"options\",\n LINK: \"link\",\n UNLINK: \"unlink\",\n PURGE: \"purge\",\n LOCK: \"lock\",\n UNLOCK: \"unlock\",\n PROPFIND: \"propfind\",\n VIEW: \"view\",\n});\n\nexport const RolesAllowedToReview = Object.freeze({\n ADMINISTRATOR: \"d754ed82-fb46-4dca-a6fc-3e1b7665361e\",\n BACKOFFICE: \"8861bf51-eafe-443d-bb46-ca41242364b2\",\n RECRUITER: \"8ca64ae6-bcb1-40b0-9f5d-78750af175b0\",\n LOOPBAAN_ADVISEUR: \"9f3f1eb2-694d-4a0f-bfed-409c32643b33\",\n});\n\nexport const ContextAllowedToReview = Object.freeze({\n MANAGER: \"Manager\",\n SELECTIECOMMISSIE: \"Selectiecommissie\",\n PRIMAIRE_CONTACTPERSOON: \"Primair contactpersoon\",\n});\n\nexport const SpecialSteps = Object.freeze({\n SELECTIERONDE: \"d7b447eb-5a43-4848-b517-bbe4f5e3e2cb\",\n ANONIMISEREN: \"8090a369-5f16-4d75-afe2-84eff04b8f62\",\n});\n\nexport const Statuses = Object.freeze({\n AANVULLING_NODIG: {\n value: \"AANVULLING NODIG\",\n label: \"Aanvulling nodig\",\n },\n ACCORDEREN_WERVINGSTEKST: {\n value: \"ACCORDEREN WERVINGSTEKST\",\n label: \"Accorderen wervingstekst\",\n },\n ALL: {\n value: \"\",\n label: \"Alle statussen\",\n },\n CONCEPT: {\n value: \"CONCEPT\",\n label: \"Concept\",\n },\n DEFINITIEF_INGEVULD: {\n value: \"DEFINITIEF INGEVULD\",\n label: \"Definitief ingevuld\",\n },\n GEANNULEERD: {\n value: \"GEANNULEERD\",\n label: \"Geannuleerd\",\n },\n GEPUBLICEERD: {\n value: \"GEPUBLICEERD\",\n label: \"Gepubliceerd\",\n },\n IN_BEHANDELING: {\n value: \"IN BEHANDELING\",\n label: \"In behandeling\",\n },\n INGETROKKEN: {\n value: \"INGETROKKEN\",\n label: \"Ingetrokken\",\n },\n MOBILITEITSFASE: {\n value: \"MOBILITEITSFASE\",\n label: \"Mobiliteitsfase\",\n },\n NIEUW: {\n value: \"NIEUW\",\n label: \"Nieuw\",\n },\n TER_AKKOORD: {\n value: \"TER AKKOORD\",\n label: \"Ter akkoord\",\n },\n TER_PUBLICATIE: {\n value: \"TER PUBLICATIE\",\n label: \"Ter publicatie\",\n },\n VERLENGING_EXTERNE_PARTIJ: {\n value: \"VERLENGING EXTERNE PARTIJ\",\n label: \"Verlenging externe partij\",\n },\n VOORLOPIG_INGEVULD: {\n value: \"VOORLOPIG INGEVULD\",\n label: \"Voorlopig ingevuld\",\n },\n});\n\nexport const dateFormatOptions = Object.freeze({\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n});\n\nexport const searchFields = Object.freeze([\"NAME\", \"CONTENT\"]);\n\nexport const Recruitment = Object.freeze({\n ACTIVITIES_WITH_PREVIEW: [\n \"9ffe0495-83ee-40db-875c-be3b8fbd4c5a\",\n \"7abc5082-80b9-4e56-bdb6-47a9387396ac\",\n \"35d6bdb4-29b2-4bc2-b8db-937ba20e3291\",\n \"a16fc1b4-4989-4cfc-9285-3564803c7796\",\n ],\n ACTIVITIES_WITH_TEMP_SAVE: [\"e4bf5a26-43e5-4b17-af11-a59a5e7c664c\"],\n});\n\n// Actions using Wizard component to navigate user to next section.\n// The user should land on teh top of the new wizard page.\nexport const ActionsWithWizardTopNavigation = Object.freeze({\n OPSTELLEN_WERVINGSTEKST: \"9ffe0495-83ee-40db-875c-be3b8fbd4c5a\",\n});\n\nexport const DeeplinkActions = Object.freeze({\n CREATE_CAPACITY_REQUEST: \"nieuweAanvraag\",\n WERVING_SELECTIE: \"wervingselectie\",\n WERVING_SELECTIE_ACTIES: \"wervingselectieActies\",\n WERVING_SELECTIE_AANVRAGEN: \"wervingselectieAanvragen\",\n\n RECRUITMENT: \"recruitment\",\n RECRUITMENT_AANVRAGEN: \"recruitmentAanvragen\",\n RECRUITMENT_LOSSE_VACATURES: \"recruitmentLosseVacatures\",\n RECRUITMENT_NEW_LOSSE_VACATURE: \"recruitmentNewLosseVacature\",\n RECRUITMENT_TALENTPOOL: \"recruitmentTalentpool\",\n\n MY_PROFILE: \"mijnProfiel\",\n MY_APPLICATIONS: \"mijnSollicitaties\",\n MY_JOBALERTS: \"mijnJobAlerts\",\n\n LOOPBAANADVIES: \"loopbaanadvies\",\n LOOPBAANADVIES_PROFIELEN: \"loopbaanadviesProfielen\",\n LOOPBAANADVIES_VACATURES: \"loopbaanadviesVacatures\",\n\n DATABASE: \"database\",\n});\n\nexport const BulkActions = Object.freeze({\n PRESELECTIE_IN_RESERVE: \"33b6022f-6a42-414a-b520-e0d386d349e4\", // In reserve plaatsen\n PRESELECTIE_AFWIJZEN: \"4dab9b95-3a43-4fc8-b3ef-eceb0aac2553\", // Afwijzen\n PRESELECTIE_VRIJE_MAIL: \"e5bfed79-fdeb-4d5a-a9a4-9880b09a41eb\", // Versturen vrije e-mail\n PRESELECTIE_AFRONDEN: \"30caaaf1-25ae-48ce-94e0-8bcedd16e6e9\", // Afronden preselectie\n\n SELECTIE_IN_RESERVE: \"dd56b9c1-f7ec-4fd2-b514-2a18d5218882\", // In reserve plaatsen\n SELECTIE_AFWIJZEN: \"470e8070-1c4b-4750-9c78-05024e9bcc19\", // Afwijzen\n SELECTIE_VRIJE_MAIL: \"4cdbe58b-a768-4a7a-bb9c-cfac59c16050\", // Versturen vrije e-mail\n});\n\nexport const ConfigurationCodes = Object.freeze({\n EXCEL_EXPORT: \"EXCEL_EXPORT\",\n});\n\nexport const DynamicVariables = Object.freeze({\n CURRENT_USER: \"$CURRENT_USER\",\n CURRENT_ORGANISATION: \"$CURRENT_ORGANISATION\",\n CURRENT_USER_NAME: \"$CURRENT_USER_NAME\",\n CURRENT_USER_ID: \"$CURRENT_USER_ID\",\n});\n\nexport const NotificationsType = Object.freeze({\n TALENT: \"talentprofiel\",\n AANVRAAG: \"capaciteitsaanvraag\",\n});\n\nexport const ColumnTypes = Object.freeze({\n STRING: \"STRING\",\n BOOLEAN: \"BOOLEAN\",\n TIMESTAMP: \"TIMESTAMP\",\n DATE: \"DATE\",\n DATE_TIME: \"DATE-TIME\",\n PROGRESS: \"PROGRESS\",\n BUTTON: \"BUTTON\",\n TAGS: \"TAGS\",\n});\n\nexport const StandardFilters = Object.freeze({\n WSM_FILTER: \"WSM_FILTER\",\n});\n\nexport const SortDirections = Object.freeze({\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n});\n\nexport const BannerText = Object.freeze({\n ZOMERRECES:\n \"Van 25 juli t/m 26 augustus is het Vacatureloket alleen van 9.00 uur tot 13.00 uur telefonisch bereikbaar. In verband met de zomervakantie is er een lagere bezetting en kan het 2 à 3 werkdagen langer duren voordat jouw aanvraag of verlenging in behandeling wordt genomen.\",\n VACATURE_PROCESS: {\n CONTENT:\n \"Voor vaste en tijdelijke vacatures is het proces gewijzigd. Wij organiseren informatiesessies over deze aanpassingen. \",\n LINK: \"Klik hier om je aan te melden.\",\n URL: \"https://tamtam.amsterdam.nl/do/startpage?id=3911743-737461727470616765\",\n },\n});\n\nexport const PageSize = Object.freeze({\n RecruitmentText: 5,\n});\n\nexport const PageNumber = Object.freeze({\n RecruitmentText: 1,\n OmniAdvancedTable: 1,\n});\n\nexport const Sorting = Object.freeze({\n DESCENDING: {\n sort_type: \"text_score\",\n direction: \"DESCENDING\",\n },\n ASCENDING: {\n sort_type: \"text_score\",\n direction: \"ASCENDING\",\n },\n});\n\nexport const RoutesTitles = Object.freeze({\n ORGANISATIES: \"Organisaties\",\n DASHBOARD: \"Dashboard\",\n SOLLICITATIE_ACTIE: \"Sollicitatie actie\",\n SOLLICITATIE_DETAILS: \"Sollicitatie details\",\n MIJN_SOLLICITATIES: \"Mijn sollicitaties\",\n ACTIE: \"Actie\",\n KANDIDAAT: \"Kandidaat\",\n BULKACTIE: \"Bulkactie\",\n AANVRAAG: \"Aanvraag\",\n MIJN_AANVRAGEN: \"Mijn aanvragen\",\n MIJN_ACTIES: \"Mijn acties\",\n NIEUWE_AANVRAAG: \"Nieuwe Aanvraag\",\n MIJN_WS: \"Mijn Werving & Selectie\",\n PROFIEL_ACTIE: \"Profiel Actie\",\n JOB_ALERTS: \"Job alerts\",\n MIJN_PROFIEL: \"Mijn Profiel\",\n AANBEVOLEN_VACATURES: \"Aanbevolen vacatures\",\n RECRUITMENT_KANDIDAAT_ACTIE: \"Recruitment Kandidaat Actie\",\n RECRUITMENT_KANDIDAAT: \"Recruitment Kandidaat\",\n RECRUITMENT_AANVRAAG_ACTIE: \"Recruitment Aanvraag Actie\",\n RECRUITMENT_BULKACTIE: \"Recruitment Bulkactie\",\n RECRUITMENT_AANVRAAG: \"Recruitment Aanvraag\",\n RECRUITMENT_AANVRAGEN: \"Recruitment Aanvragen\",\n NIEUWE_LOSSE_VACATURE: \"Nieuwe losse vacature\",\n LOSSE_VACATURE_ACTIE: \"Losse vacature actie\",\n LOSSE_VACATURE: \"Losse vacature\",\n LOSSE_VACATURES: \"Losse vacatures\",\n MIJN_RECRUITMENT: \"Mijn recruitment\",\n LBA_KANDIDAAT_ACTIE: \"Loopbaanadvies Kandidaat Actie\",\n LBA_KANDIDAAT: \"Loopbaanadvies Kandidaat\",\n LBA_ACTIE: \"Loopbaanadvies Actie\",\n LBA_BULKACTIE: \"Loopbaanadvies Bulkactie\",\n LBA_VACATURE: \"Loopbaanadvies Vacature\",\n LBA_VACATURES: \"Loopbaanadvies Vacatures\",\n PROFIEL_ACTIE_LBA: \"Profiel Actie voor LBA\",\n LBA_PROFIEL: \"Loopbaanadvies Profiel\",\n LBA_PROFIELEN: \"Loopbaanadvies Profielen\",\n MIJN_LBA: \"Mijn Loopbaanadvies\",\n DATABASE: \"Database\",\n TALENTPOOL: \"Talentpool\",\n TALENTPOOL_PROFIEL: \"Talentpool profiel\",\n TALENTPOOL_PROFIEL_ACTIE: \"Talentpool profiel actie\",\n});\n\nexport const RoutesNames = Object.freeze({\n NIEUWE_AANVRAAG: \"NieuweAanvraag\",\n WERVINGSELECTIE: \"WervingSelectie\",\n ACTIES: \"Acties\",\n AANVRAAG: \"Aanvraag\",\n AANVRAGEN: \"Aanvragen\",\n KANDIDAAT: \"Kandidaat\",\n\n RECRUITMENT: \"Recruitment\",\n RECRUITMENT_AANVRAGEN: \"RecruitmentAanvragen\",\n RECRUITMENT_LOSSE_VACATURES: \"LosseVacatures\",\n RECRUITMENT_NEW_LOSSE_VACATURE: \"NieuweLosseVacature\",\n RECRUITMENT_TALENTPOOL: \"Talentpool\",\n\n PROFIEL: \"Profiel\",\n TALENTPOOL_PROFIEL: \"TalentpoolProfiel\",\n SOLLICITATIES: \"Sollicitaties\",\n SOLLICITATIE_DETAILS: \"SollicitatieDetails\",\n JOB_ALERT: \"JobAlert\",\n\n LOOPBAANADVIES: \"Loopbaanadvies\",\n PROFIELEN: \"Profielen\",\n LBA_PROFIEL: \"LBAProfiel\",\n VACATURES: \"Vacatures\",\n\n DATABASE: \"Database\",\n});\n\nexport const Breadcrumbs = Object.freeze({\n DYNAMIC: \"dynamic\",\n DASHBOARD: \"Dashboard\",\n MIJN_SOLLICITATIES: \"Mijn sollicitaties\",\n AANVRAGEN: \"Aanvragen\",\n MIJN_ACTIES: \"Mijn acties\",\n NIEUWE_AANVRAAG: \"Nieuwe Aanvraag\",\n MIJN_WS: \"Mijn Werving & Selectie\",\n JOB_ALERTS: \"Job alerts\",\n MIJN_PROFIEL: \"Mijn Profiel\",\n AANBEVOLEN_VACATURES: \"Aanbevolen vacatures\",\n RECRUITMENT_AANVRAAG: \"Recruitment Aanvraag\",\n RECRUITMENT_AANVRAGEN: \"Recruitment Aanvragen\",\n NIEUWE_LOSSE_VACATURE: \"Nieuwe losse vacature\",\n LOSSE_VACATURES: \"Losse vacatures\",\n MIJN_RECRUITMENT: \"Mijn recruitment\",\n VACATURES: \"Vacatures\",\n PROFIELEN: \"Profielen\",\n MIJN_LBA: \"Mijn Loopbaanadvies\",\n DATABASE: \"Database\",\n TALENTPOOL: \"Talentpool\",\n TALENTPOOL_PROFIEL: \"Talentpool profiel\",\n});\n\nexport const DataType = Object.freeze({\n DATE_TIME: \"DATE-TIME\",\n STRING: \"STRING\",\n});\n\n/**\n * Names of the routes that allow preset management in OmniAdvancedTable\n * @type {Readonly}\n */\nexport const OmniAdvancedTablePresets = Object.freeze([\n \"RecruitmentAanvragen\",\n \"Vacatures\",\n \"Talentpool\",\n]);\n\nexport const KeysGroup = Object.freeze({\n GENERAL: \"General\",\n ALGEMEEN: \"Algemeen\",\n PROPERTIES: \"Properties\",\n CONTENT: \"Content\",\n});\n\nexport const MediaLinkTypes = Object.freeze({\n CONCEPT: \"CONCEPT\",\n INSTANCE: \"INSTANCE\",\n TENANT: \"TENANT\",\n NONE: \"NONE\",\n});\n\nexport const MediaDefinitions = Object.freeze({\n AANVRAAG_BIJLAGE: \"b4b5e90c-3876-4eeb-a6ed-0beee14bc41d\",\n C_V: \"7c8b61f2-2832-4193-9a21-7767b9cbf7d7\",\n MOTIVATIE: \"46341f23-9dc3-40c7-9cc2-7ed1a76ea7ee\",\n});\n\nexport const ActivityStates = Object.freeze({\n CREATED: \"CREATED\",\n STARTED: \"STARTED\",\n FINISHED: \"FINISHED\",\n EXPECTED: \"EXPECTED\",\n});\n","import { FileExtentions, SortDirections } from \"@/utils/GeneralConstants\";\nimport jp from \"jsonpath\";\nimport { StoreException } from \"@/utils/ErrorHandler\";\nimport IdUtils from \"@/utils/IdUtils\";\n\nexport function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Gets a filename, removes unsafe characters and sets file extension to lower .\n *\n * Unsafe characters in this case are: %\n *\n * @param string\n * @param timestamp\n * @returns {string|*}\n */\nexport function removeUnsafeCharacters(string, timestamp) {\n if (string && typeof string === \"string\") {\n //Check if file extension is present\n const indexOfSuffix = string.lastIndexOf(\".\");\n if (indexOfSuffix >= 0) {\n // Get the file name and remove the unsafe characters:\n const fileName = string\n .slice(0, indexOfSuffix)\n .replaceAll(/[%,<>\\\\*\\\\?\\\\|\\\\/'\":`]/g, \"\");\n // Get the file extension and set it to lower case:\n const suffix = string.slice(indexOfSuffix + 1).toLowerCase();\n // If there is a timestamp, replace the \":\" character:\n const safeTimestamp = timestamp ? timestamp.replace(/:/g, \"_\") : null;\n // Set the modified file name:\n const modifiedFileName = safeTimestamp\n ? `${fileName}-${safeTimestamp}`\n : fileName;\n // return the modified file name with the file extension:\n return `${modifiedFileName}.${suffix}`;\n }\n }\n return string;\n}\n\n/**\n * The function allows for sorting by one property or by two.\n * If provided, the secondSortingProperty will be analyzed after the first one\n * and order will be affected accordingly\n * @param sortingProperty\n * @param secondSortingProperty\n * @param direction\n * @returns {function(...[*]=)}\n */\nexport function createCustomSortingFunction(\n sortingProperty,\n secondSortingProperty = undefined,\n direction = null\n) {\n if (\n sortingProperty &&\n \"string\" === typeof sortingProperty &&\n sortingProperty.length > 0\n ) {\n // Assign values\n let sortingProp = sortingProperty;\n let secondSortingProp = secondSortingProperty;\n\n // Create ascending sorting function\n if (direction === SortDirections.ASCENDING) {\n return function (a, b) {\n if (sortingProperty.includes(\"content\")) {\n sortingProp = sortingProperty.slice(8);\n a = a.content;\n b = b.content;\n }\n if (a[sortingProp] > b[sortingProp] || !b[sortingProp]) {\n return 1;\n }\n if (a[sortingProp] < b[sortingProp] || !a[sortingProp]) {\n return -1;\n }\n // If there's a second sorting property – include it\n if (secondSortingProp && a[secondSortingProp] > b[secondSortingProp]) {\n return 1;\n }\n if (secondSortingProp && a[secondSortingProp] < b[secondSortingProp]) {\n return -1;\n }\n return 0;\n };\n // Create descending sorting function\n } else if (direction === SortDirections.DESCENDING) {\n return function (a, b) {\n if (sortingProperty.includes(\"content\")) {\n sortingProp = sortingProperty.slice(8);\n a = a.content;\n b = b.content;\n }\n\n if (a[sortingProp] > b[sortingProp] || !a[sortingProp]) {\n return -1;\n }\n if (a[sortingProp] < b[sortingProp] || !b[sortingProp]) {\n return 1;\n }\n // If there's a second sorting property – include it\n if (secondSortingProp && a[secondSortingProp] > b[secondSortingProp]) {\n return -1;\n }\n if (secondSortingProp && a[secondSortingProp] < b[secondSortingProp]) {\n return 1;\n }\n return 0;\n };\n }\n } else {\n throw new Error(\"Cannot generate sorting function without input\");\n }\n}\n\nexport function sortByScoreAndLabel(a, b) {\n if (\n a.hasOwnProperty(\"individualScore\") &&\n b.hasOwnProperty(\"individualScore\") &&\n a.hasOwnProperty(\"label\") &&\n b.hasOwnProperty(\"label\")\n ) {\n return createCustomSortingFunction(\n \"individualScore\",\n \"label\",\n SortDirections.ASCENDING\n )(a, b);\n } else {\n return null;\n }\n}\n\n/**\n * Checks if certain user has a certain role\n * @param user\n * @param roleId\n * @returns {*}\n * @constructor\n */\nexport const checkIfUserHasThisRole = function (user, roleId) {\n const userRoles = user.relationships.roles;\n return userRoles.some((role) => role.role.identification === roleId);\n};\n\n/**\n * Returen a date with format dd-MM-yyyy\n * @param value Date\n * @returns {string}\n */\nexport function displayDate(value) {\n const date = new Date(value);\n\n let day = date.getDate();\n let month = date.getMonth() + 1;\n const year = date.getFullYear();\n\n day = day < 10 ? `0${day}` : day;\n month = month < 10 ? `0${month}` : month;\n\n return `${day}-${month}-${year}`;\n}\n\n/**\n * Returns a number formatted to a currency. Euro by default\n * @param value\n * @param locale\n * @param currency\n * @returns {string}\n */\nexport function displayCurrency(value, locale = \"nl-NL\", currency = \"EUR\") {\n const number = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currency,\n }).format(value);\n\n // Replace ,00 with ,-\n return number.replace(/\\,00$/, \",-\");\n}\n\n/**\n * Determines the names of possible routes to navigate to based on the current route name.\n * @param routeName\n * @returns {{requestRouteName: undefined, tabName: undefined, sectionRouteName: undefined, actionRouteName: undefined, candidateRouteName: undefined, actionInstanceRouteName: undefined, bulkActionRouteName: undefined}}\n */\nconst ACTIONS = \"actions\";\nconst CANDIDATES = \"candidates\";\n\nconst CandidatesTabRoutes = [\n \"Aanvraag\",\n \"AanvraagTab\",\n \"LBAVacature\",\n \"LBAVacatureTab\",\n \"RecruitmentAanvraag\",\n \"RecruitmentAanvraagTab\",\n \"Kandidaat\",\n \"KandidaatActies\",\n \"Bulkactie\",\n \"ActiesAanvraagKandidaat\",\n \"ActiesAanvraagKandidaatActies\",\n \"ActiesAanvraagActie\",\n \"ActiesAanvraagBulkactie\",\n \"RecruitmentKandidaat\",\n \"RecruitmentKandidaatActies\",\n \"LBAVacatureKandidaat\",\n \"LBAVacatureKandidaatActies\",\n \"RecruitmentAanvraagBulkactie\",\n \"LBAVacatureBulkactie\",\n];\n\nconst ActionsTabRoutes = [\n \"KandidaatActie\",\n \"Actie\",\n \"ActiesAanvraagKandidaatActie\",\n \"RecruitmentKandidaatActie\",\n \"RecruitmentAanvraagActie\",\n \"LBAVacatureKandidaatActie\",\n \"LBAVacatureActie\",\n \"LosseVacatureActie\",\n];\n\nexport function getRouteName(routeName) {\n let actionRouteName,\n candidateRouteName,\n bulkActionRouteName,\n actionInstanceRouteName,\n requestRouteName,\n sectionRouteName = null;\n\n switch (routeName) {\n case \"Aanvraag\":\n case \"AanvraagTab\":\n actionRouteName = \"Actie\";\n candidateRouteName = \"Kandidaat\";\n bulkActionRouteName = \"Bulkactie\";\n break;\n case \"LBAVacature\":\n case \"LBAVacatureTab\":\n actionRouteName = \"LBAVacatureActie\";\n candidateRouteName = \"LBAVacatureKandidaat\";\n bulkActionRouteName = \"LBAVacatureBulkactie\";\n break;\n case \"RecruitmentAanvraag\":\n case \"RecruitmentAanvraagTab\":\n actionRouteName = \"RecruitmentAanvraagActie\";\n candidateRouteName = \"RecruitmentKandidaat\";\n bulkActionRouteName = \"RecruitmentAanvraagBulkactie\";\n break;\n case \"ActiesAanvraag\":\n case \"ActiesAanvraagTab\":\n actionRouteName = \"ActiesAanvraagActie\";\n candidateRouteName = \"ActiesAanvraagKandidaat\";\n bulkActionRouteName = \"ActiesAanvraagBulkactie\";\n break;\n case \"LosseVacature\":\n case \"LosseVacatureTab\":\n actionRouteName = \"LosseVacatureActie\";\n break;\n case \"Sollicitaties\":\n case \"SollicitatieDetails\":\n candidateRouteName = \"SollicitatieDetails\";\n actionInstanceRouteName = \"Sollicitaties\";\n actionRouteName = \"SollicitatieDetailsActie\";\n break;\n case \"SollicitatieDetailsActie\":\n actionInstanceRouteName = \"SollicitatieDetails\";\n break;\n case \"KandidaatActie\":\n actionInstanceRouteName = \"KandidaatActies\";\n break;\n case \"Kandidaat\":\n case \"KandidaatActies\":\n case \"Bulkactie\":\n case \"Actie\":\n actionInstanceRouteName = \"AanvraagTab\";\n actionRouteName = \"KandidaatActie\";\n break;\n case \"ActiesAanvraagKandidaatActie\":\n actionInstanceRouteName = \"ActiesAanvraagKandidaatActies\";\n break;\n case \"ActiesAanvraagKandidaat\":\n case \"ActiesAanvraagKandidaatActies\":\n case \"ActiesAanvraagActie\":\n case \"ActiesAanvraagBulkactie\":\n actionInstanceRouteName = \"ActiesAanvraagTab\";\n actionRouteName = \"ActiesAanvraagKandidaatActie\";\n break;\n case \"ProfielActie\":\n actionInstanceRouteName = \"Profiel\";\n break;\n case \"RecruitmentKandidaatActie\":\n actionInstanceRouteName = \"RecruitmentKandidaatActies\";\n break;\n case \"RecruitmentKandidaat\":\n case \"RecruitmentKandidaatActies\":\n case \"RecruitmentAanvraagActie\":\n actionInstanceRouteName = \"RecruitmentAanvraagTab\";\n actionRouteName = \"RecruitmentKandidaatActie\";\n break;\n case \"LBAVacatureKandidaatActie\":\n actionInstanceRouteName = \"LBAVacatureKandidaatActies\";\n break;\n case \"LBAVacatureKandidaat\":\n case \"LBAVacatureKandidaatActies\":\n case \"LBAVacatureActie\":\n actionInstanceRouteName = \"LBAVacatureTab\";\n actionRouteName = \"LBAVacatureKandidaatActie\";\n break;\n case \"LBAProfielActie\":\n actionInstanceRouteName = \"LBAProfiel\";\n break;\n case \"LosseVacatureActie\":\n actionInstanceRouteName = \"LosseVacatureTab\";\n break;\n case \"NieuweAanvraag\":\n requestRouteName = \"Aanvraag\";\n sectionRouteName = \"WervingSelectie\";\n break;\n case \"NieuweLosseVacature\":\n requestRouteName = \"LosseVacature\";\n sectionRouteName = \"Recruitment\";\n break;\n case \"RecruitmentAanvraagBulkactie\":\n actionInstanceRouteName = \"RecruitmentAanvraag\";\n break;\n case \"LBAVacatureBulkactie\":\n actionInstanceRouteName = \"LBAVacature\";\n break;\n case \"TalentpoolProfielActie\":\n actionInstanceRouteName = \"TalentpoolProfiel\";\n break;\n default:\n // Do nothing\n break;\n }\n\n const tabName = setTabName(routeName);\n\n return {\n actionRouteName: actionRouteName,\n candidateRouteName: candidateRouteName,\n bulkActionRouteName: bulkActionRouteName,\n requestRouteName: requestRouteName,\n tabName: tabName,\n actionInstanceRouteName: actionInstanceRouteName,\n sectionRouteName: sectionRouteName,\n };\n}\n\nexport function setTabName(routeName) {\n if (CandidatesTabRoutes.includes(routeName)) {\n return CANDIDATES;\n } else if (ActionsTabRoutes.includes(routeName)) {\n return ACTIONS;\n }\n return null;\n}\n\nexport function getGeneralColumnName(value) {\n const endIndex = value.indexOf(\".\") + 1;\n value = value.slice(endIndex, value.length);\n let name = value;\n\n switch (value) {\n case \"identification\":\n name = \"Identificatie\";\n break;\n case \"id\":\n name = \"ID\";\n break;\n case \"name\":\n name = \"Naam\";\n break;\n case \"timestamp_created\":\n name = \"Datum aangemaakt\";\n break;\n case \"timestamp_any_update\":\n name = \"Datum laatst gewijzigd\";\n break;\n case \"Welk type capaciteit vraag je aan?\":\n name = \"Type capaciteit\";\n break;\n default:\n name = name[0].toUpperCase() + name.slice(1);\n }\n return name;\n}\n\nexport function getColumnWidth(label) {\n if (label && label.length) {\n const width = 150 + label.length * 6;\n return width > 270 ? \"270px\" : width + \"px\";\n }\n return null;\n}\n\nexport function valueFromPath(data, path) {\n //Make sure the path is formatted as a JSONPath\n //Add $. of it's not present\n const regex = /^\\$/g;\n path = path.match(regex) || path === \"\" ? path : `$.${path}`;\n\n const value = jp.query(data, path);\n\n return value[0]; //jsonpath will return the single value as an array, so return value[0]\n}\n\n/**\n * Function to generate full name based on provided first and last name\n * @param firstname\n * @param lastName\n * @returns {string|*}\n */\nexport function getFullName(firstname, lastName) {\n if (!firstname && !lastName) {\n return null;\n } else if (firstname) {\n return lastName ? `${firstname} ${lastName}` : firstname;\n }\n}\n\n/**\n * Function to verify whether a file is of type image\n * @param fileName\n * @returns {boolean}\n */\nexport function isImage(fileName) {\n if (!fileName?.length) {\n return false;\n } else {\n let fileExtension = fileName.slice(fileName.lastIndexOf(\".\") + 1);\n fileExtension = fileExtension.toLowerCase();\n const extensions = [\n \"apng\",\n \"avif\",\n \"gif\",\n \"jpg\",\n \"jpeg\",\n \"jfif\",\n \"pjpeg\",\n \"pjp\",\n \"png\",\n \"svg\",\n \"webp\",\n ];\n return extensions.includes(fileExtension);\n }\n}\n\n/**\n * Function to verify whether a file is of type PDF\n * @param metadata\n * @returns {boolean}\n */\nexport function isPDF(metadata) {\n if (metadata?.mime_type) {\n return metadata.mime_type === \"application/pdf\";\n } else if (metadata?.filename) {\n let fileExtension = metadata.filename.slice(\n metadata.filename.lastIndexOf(\".\") + 1\n );\n fileExtension = fileExtension.toLowerCase();\n return fileExtension === \"pdf\";\n } else {\n return false;\n }\n}\n\nexport function isOffice(metadata) {\n if (metadata?.mime_type) {\n return (\n metadata.mime_type ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n metadata.mime_type === \"application/msword\"\n );\n } else if (metadata?.filename) {\n let fileExtension = metadata.filename.slice(\n metadata.filename.lastIndexOf(\".\") + 1\n );\n fileExtension = fileExtension.toLowerCase();\n return fileExtension === \"doc\" || fileExtension === \"docx\";\n } else {\n return false;\n }\n}\n\nexport function checkMimeType(metadata) {\n // Check metadata (mimetype)\n if (!metadata.mime_type) {\n // Check for common file extensions not supported by upload component\n let fileExt = \"\";\n if (metadata.name && metadata.name.length) {\n fileExt = metadata.name.slice(metadata.name.lastIndexOf(\".\") + 1);\n if (\n fileExt &&\n !FileExtentions[fileExt] &&\n metadata.filename &&\n metadata.filename.length\n ) {\n fileExt = metadata.filename.slice(\n metadata.filename.lastIndexOf(\".\") + 1\n );\n }\n } else if (metadata.filename && metadata.filename.length) {\n fileExt = metadata.filename.slice(metadata.filename.lastIndexOf(\".\") + 1);\n }\n fileExt = fileExt.toLowerCase();\n\n if (fileExt && FileExtentions[fileExt]) {\n metadata.mime_type = FileExtentions[fileExt];\n } else {\n throw new StoreException(\"Unsupported media type\");\n }\n }\n return metadata;\n}\n\nexport function validateStoreInput(\n input,\n requiredProperties = [],\n messageStart = \"Could not validate store input: \"\n) {\n if (!input) {\n throw new StoreException(`${messageStart} nothing received to validate`);\n } else if (!Array.isArray(requiredProperties)) {\n throw new StoreException(\n `${messageStart} invalid properties to validate, please provide a list of properties to validate`\n );\n } else if (requiredProperties.length > 0) {\n const missingProperties = [];\n for (const prop of requiredProperties) {\n if (\n !input.hasOwnProperty(prop) ||\n (prop === \"identification\" && !IdUtils.isUUID(input[prop]))\n ) {\n missingProperties.push(prop);\n }\n }\n\n if (missingProperties.length > 0) {\n throw new StoreException(\n `${messageStart} Missing properties: ${missingProperties.toString()}`\n );\n }\n }\n return true;\n}\n\n/**\n * Function to validate media paths based on the following conditions:\n * - paths are separated on /\n * - a path should have a minimum length of 1\n * @param string\n */\nexport function validateMediaNameOrPath(string) {\n // Check if a path is provided\n if (typeof string === \"string\") {\n // Special case, empty string, also valid path\n if (string === \"\") {\n return true;\n }\n\n // Remove any initial or closing /\n if (string.indexOf(\"/\") === 0) {\n string = string.slice(1);\n }\n if (string.lastIndexOf(\"/\") === string.length - 1) {\n string = string.slice(0, string.length - 1);\n }\n\n // Split the path on separation char /\n const pathParts = string.split(\"/\");\n for (const pathPart of pathParts) {\n // Check each path segment\n if (pathPart.trim().length === 0 || pathPart.includes(\"%\")) {\n return false;\n }\n }\n } else {\n // Input should be a string\n return false;\n }\n return true;\n}\n","export default {\n generateUUID: function b(a) {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, b);\n },\n\n isUUID: function (uuid) {\n if (uuid) {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n uuid\n );\n } else {\n return false;\n }\n },\n\n getUUIDFromLink: function (link) {\n if (link && typeof link === \"string\") {\n let startIndexOfId = link.lastIndexOf(\"/\");\n startIndexOfId++;\n return link.slice(startIndexOfId);\n } else {\n return null;\n }\n },\n};\n","export const Links = Object.freeze({\n DASHBOARD: { name: \"Dashboard\" },\n\n MIJN_RECRUITMENT: { name: \"Recruitment\" },\n RECRUITMENT_AANVRAGEN: { name: \"RecruitmentAanvragen\" },\n RECRUITMENT_LOSSE_VACATURES: { name: \"RecruitmentLosseVacatures\" },\n RECRUITMENT_NEW_LOSSE_VACATURE: { name: \"RecruitmentNewLosseVacature\" },\n TALENTPOOL: { name: \"Talentpool\" },\n\n MIJN_WERVING_EN_SELECTIE: { name: \"WervingSelectie\" },\n MIJN_TAKEN: { name: \"Acties\" },\n AANVRAGEN: { name: \"Aanvragen\" },\n NEW: { name: \"NieuweAanvraag\" },\n\n MIJN_PROFIEL: { name: \"Profiel\" },\n JOB_ALERT: { name: \"JobAlert\" },\n MIJN_TALENTEN: { name: \"Profielen\" },\n MIJN_SOLLICITATIES: { name: \"Sollicitaties\" },\n RECOMMENDATIONS: { name: \"Recommendations\" },\n\n MIJN_LOOPBAANADVIES: { name: \"Loopbaanadvies\" },\n LBA_PROFIELEN: { name: \"Profielen\" },\n LBA_VACATURES: { name: \"Vacatures\" },\n\n DATABASE: { name: \"Database\" },\n\n INTERNE_VACATURES: process.env.VUE_APP_WERKENBIJ + \"vacatures\",\n WERKEN_BIJ_AMSTERDAM_NL: process.env.VUE_APP_WERKENBIJ,\n CARRIERE_EN_CONTACT: process.env.VUE_APP_WERKENBIJ + \"over-ons\",\n FAQ: process.env.VUE_APP_WERKENBIJ + \"veelgestelde-vragen\",\n LOOPBAAN_OPLEIDING: process.env.VUE_APP_WERKENBIJ + \"loopbaan-en-opleiding\",\n\n LINKEDIN: \"https://www.linkedin.com/company/gemeente-amsterdam/jobs/\",\n FACEBOOK: \"https://www.facebook.com/gemeenteamsterdam\",\n TWITTER: \"https://twitter.com/AmsterdamNL\",\n INSTAGRAM: \"https://www.instagram.com/gemeenteamsterdam/\",\n YOUTUBE: \"https://www.youtube.com/channel/UCEiYFPFR5jGhFakHhbswlig\",\n\n PRIVACY:\n process.env.VUE_APP_WERKENBIJ + \"algemene-privacyverklaring-medewerkers\",\n COOKIES: process.env.VUE_APP_WERKENBIJ + \"cookiebeleid\",\n ACCESSIBILITY: process.env.VUE_APP_WERKENBIJ + \"toegankelijkheid\",\n});\n","export const AllUserRoles = Object.freeze({\n ADMIN: \"5262039e-be6a-4d64-a8a7-1d8bc37048b0\",\n ADMINISTRATOR: \"d754ed82-fb46-4dca-a6fc-3e1b7665361e\",\n BACKOFFICE_MEDEWERKER: \"8861bf51-eafe-443d-bb46-ca41242364b2\",\n LOOPBAAN_ADVISEUR: \"9f3f1eb2-694d-4a0f-bfed-409c32643b33\",\n MANAGER: \"488b7325-7b92-4fde-920a-a6c008a7bd73\",\n RECRUITER: \"8ca64ae6-bcb1-40b0-9f5d-78750af175b0\",\n STANDAARD_GEBRUIKER: \"c6f2ad11-4dc6-49c3-bb70-9719f2f6a243\",\n});\n\n// Roles allowed to see \"Mijn recruitment\" tile in the Dashboard\nexport const AccessMijnRecruitment = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.BACKOFFICE_MEDEWERKER,\n AllUserRoles.RECRUITER,\n]);\n\n// Roles allowed to see \"Mijn werving en selectie\" tile in the Dashboard\nexport const AccessMijnWervingEnSelectie = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.MANAGER,\n AllUserRoles.LOOPBAAN_ADVISEUR,\n AllUserRoles.BACKOFFICE_MEDEWERKER,\n AllUserRoles.STANDAARD_GEBRUIKER,\n]);\n\n// Roles allowed to see \"Mijn profile\" tile in the Dashboard\nexport const AccessMijnProfiel = AllUserRoles;\n\n// Roles allowed to see \"Mijn loopbaanadvies\" tile in the Dashboard\nexport const AccessMijnLoopbaanadvies = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.LOOPBAAN_ADVISEUR,\n]);\n\n// Roles allowed to see \"Mijn sollicitaties\" tile in the Dashboard\nexport const AccessMijnSollicitaties = AllUserRoles;\n\n// Roles allowed to see \"Database Profielen\" tile in the Dashboard\nexport const AccessDatabaseProfielen = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.BACKOFFICE_MEDEWERKER,\n AllUserRoles.RECRUITER,\n AllUserRoles.LOOPBAAN_ADVISEUR,\n]);\n\n// Roles allowed to see \"Mijn talenten\" item in the Header menu\nexport const AccessMijnTalenten = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.LOOPBAAN_ADVISEUR,\n AllUserRoles.MANAGER,\n]);\n\n// Roles allowed to see \"Mijn acties\" item in the Header menu\nexport const AccessMijnActies = Object.freeze([\n AllUserRoles.ADMIN,\n AllUserRoles.ADMINISTRATOR,\n AllUserRoles.LOOPBAAN_ADVISEUR,\n AllUserRoles.RECRUITER,\n]);\n","import {\n AanvraagNonShowActions,\n EndStatuses,\n} from \"@/utils/GeneralConst/CapacityRequest\";\nimport { ActivityStates, Roles } from \"@/utils/GeneralConstants\";\nimport store from \"@/store\";\n\n/**\n * Checks for candidates of a request.\n * @param request\n * @param placeholder\n * @returns {Promise<*>}\n */\nexport const decideAction = async (request, placeholder = \"urgentAction\") => {\n const candidates = await store.dispatch(\"candidates/retrieveCandidates\", {\n instanceId: request ? request.identification : null,\n fetchActions: false,\n updateStore: false,\n });\n\n if (\n Array.isArray(candidates) &&\n candidates.some(\n (candidate) => !EndStatuses.includes(candidate.status[0].status)\n )\n ) {\n // If available candidates are found, show \"Beoordelen kandidaten\"\n request[placeholder] = \"Beoordelen kandidaten\";\n } else {\n // Check how the user is related to the capacity request\n if (request && request.relationships && request.relationships.context) {\n const userRelations = request.relationships.context\n .filter(\n (relation) =>\n relation.relationships.related_instance.identification ===\n store.getters[\"userId\"] && !relation.until\n )\n .map((relation) => relation.role);\n\n if (userRelations && userRelations.includes !== Roles.SELECTIECOMMISSIE) {\n // Search for an action for any other role than selectiecommissie\n request = await selectAction(request, placeholder);\n }\n }\n }\n return request;\n};\n\n/**\n * Checks for actions of a request\n * @param request\n * @param placeholder\n * @returns {Promise<*>}\n */\nexport const selectAction = async (request, placeholder) => {\n const [all, special, others] = await store.dispatch(\n \"instanceFlow/getActions\",\n request.identification\n );\n\n request.actions = {\n flow: all,\n specialActions: special,\n };\n\n // Filter out non-required and non-created/started actions\n request.actions.actions = others.filter(\n (stage) =>\n (stage.state === ActivityStates.CREATED ||\n stage.state === ActivityStates.STARTED) &&\n !Object.values(AanvraagNonShowActions).includes(\n stage.definition.identification\n )\n );\n\n if (request.actions.actions.length && request.actions.actions[0].definition) {\n // If actions are available, select first action\n request[placeholder] = request.actions.actions[0].definition.name;\n }\n\n return request;\n};\n","import { dateFormatOptions } from \"@/utils/GeneralConstants\";\nconst roepnaam = \"algemeen-roepnaam\";\nconst achternaam = \"algemeen-achternaam\";\nexport const setFullNameWithDot = function (firstName, lastName) {\n let fullName;\n if (firstName && lastName) {\n fullName = firstName[0] + \". \" + lastName;\n } else if (!firstName && lastName) {\n fullName = lastName;\n } else if (firstName && !lastName) {\n fullName = firstName[0];\n } else {\n fullName = \"Talent profiel\";\n }\n return fullName;\n};\nexport const setFullName = function (firstName, lastName) {\n let fullName;\n if (firstName && lastName) {\n fullName = firstName + \" \" + lastName;\n } else if (!firstName && lastName) {\n fullName = lastName;\n } else if (firstName && !lastName) {\n fullName = firstName;\n } else {\n fullName = \"Talent profiel\";\n }\n return fullName;\n};\nexport const setTableFormatForLBAProfiles = function (array) {\n // Check if submitted data has a format of the array.\n if (!Array.isArray(array)) {\n console.error(\n \"The function requires you to supply an array. Try again and be mindful this time.\"\n );\n } else {\n return array.map((el) => {\n const newEl = {\n identification: el.identification,\n firstName: el.content[roepnaam],\n lastName: el.content[achternaam],\n fullName: setFullNameWithDot(\n el.content[roepnaam],\n el.content[achternaam]\n ),\n type: el.content[\"algemeen-type\"],\n category: el.content[\"zoekrichting-categorie\"],\n scale: el.content[\"zoekrichting-huidigesalarisschaal\"],\n maxHours: el.content[\"zoekrichting-beschikbaarheid-urenmaximaal\"],\n careerAdvisor: el.content[\"data-loopbaanadviseur\"],\n expirationDate: el.content?.data?.verloopdatum,\n status:\n el.status[0]?.status[0] + el.status[0]?.status.slice(1).toLowerCase(),\n };\n\n if (newEl.expirationDate) {\n newEl.expirationDate = new Date(\n newEl.expirationDate\n ).toLocaleDateString(\"nl-NL\", dateFormatOptions);\n }\n\n return newEl;\n });\n }\n};\nexport const mapToGetArrayOfIdsAndNames = function (object) {\n const arrayOfValues = Object.values(object);\n return arrayOfValues.map((el) => {\n return {\n id: el.identification,\n fullName: setFullName(el.content[roepnaam], el.content[achternaam]),\n fullNameWithDot: setFullNameWithDot(\n el.content[roepnaam],\n el.content[achternaam]\n ),\n };\n });\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"520\":\"profiel\",\"945\":\"dashboard\",\"1779\":\"error\",\"2097\":\"vacatures\",\"3003\":\"WervingSelectie\",\"3186\":\"Sollicitaties\",\"3795\":\"silentrenew\",\"4472\":\"aanvragen\",\"4547\":\"loopbaanadvies\",\"6966\":\"login\",\"7237\":\"landingpage\",\"7243\":\"recruitment\",\"8639\":\"nieuweaanvraag\",\"9633\":\"profielen\",\"9834\":\"acties\",\"9844\":\"organisations\"}[chunkId] || chunkId) + \".\" + {\"76\":\"358cd42f\",\"106\":\"edb33659\",\"136\":\"765af0b5\",\"179\":\"646bfdb7\",\"249\":\"68421594\",\"256\":\"136eb3bd\",\"287\":\"7844e602\",\"406\":\"9e60c021\",\"437\":\"09086b82\",\"451\":\"2fa6ce71\",\"474\":\"56ac1586\",\"520\":\"c5b3264d\",\"535\":\"d53896a5\",\"614\":\"209c2015\",\"770\":\"1a9dfe9c\",\"803\":\"45e93d7d\",\"884\":\"8763e6d0\",\"890\":\"e08f357b\",\"945\":\"ee2ac1ae\",\"1012\":\"8bef79bc\",\"1018\":\"eef7d06e\",\"1168\":\"d08d3e24\",\"1261\":\"668f744a\",\"1282\":\"2239c76c\",\"1327\":\"a461ba23\",\"1355\":\"8b0b920a\",\"1546\":\"cfaf1946\",\"1562\":\"f5fd5ed5\",\"1586\":\"9161348b\",\"1730\":\"22c2a75e\",\"1779\":\"b77709c9\",\"1806\":\"be1f1793\",\"1814\":\"fd074eb5\",\"1926\":\"eff613b6\",\"1990\":\"8b3511a7\",\"1997\":\"d4207462\",\"2013\":\"896f1cff\",\"2059\":\"ae6342f9\",\"2095\":\"cbbbf950\",\"2096\":\"0ea3e382\",\"2097\":\"5f1c204d\",\"2126\":\"3f36ce09\",\"2192\":\"641e6e04\",\"2245\":\"86c90599\",\"2268\":\"97e0c710\",\"2310\":\"38d2cb9d\",\"2353\":\"598a9752\",\"2373\":\"ccdc7caa\",\"2377\":\"0f4743f3\",\"2452\":\"f5eed02c\",\"2605\":\"e3bb14d3\",\"2670\":\"0e1e46d0\",\"2804\":\"5f974523\",\"2860\":\"11cbf46e\",\"3003\":\"ee1fcb17\",\"3039\":\"0a297438\",\"3186\":\"3d359d58\",\"3200\":\"fbe3978e\",\"3223\":\"1c3d2588\",\"3245\":\"01ae93c1\",\"3294\":\"29418ec7\",\"3298\":\"dd20c6c1\",\"3420\":\"0a8fbc49\",\"3443\":\"287fa512\",\"3448\":\"3f77ebde\",\"3459\":\"5c6ca14a\",\"3570\":\"283ef870\",\"3587\":\"cbe33c51\",\"3594\":\"7488cbf3\",\"3601\":\"9a4eeb14\",\"3646\":\"e8e120ea\",\"3676\":\"bb82431c\",\"3711\":\"a5d5673d\",\"3716\":\"f9e8acc2\",\"3747\":\"edc8bc3c\",\"3795\":\"157545aa\",\"3852\":\"12e1ab47\",\"3912\":\"31ef3a9f\",\"3966\":\"8186e5d5\",\"3989\":\"3708a35e\",\"3994\":\"d4eff82c\",\"4033\":\"b7234d97\",\"4054\":\"8e3b969d\",\"4060\":\"1514dff7\",\"4111\":\"8e2f1d96\",\"4127\":\"aa033ba5\",\"4179\":\"67a12e2a\",\"4181\":\"f6505da3\",\"4202\":\"cd5f00b3\",\"4234\":\"06256948\",\"4316\":\"3718c7d6\",\"4323\":\"650c2b73\",\"4397\":\"5c402576\",\"4464\":\"b0a6d93f\",\"4472\":\"6f84cb31\",\"4533\":\"a7a80512\",\"4547\":\"afae9155\",\"4557\":\"a2a903c9\",\"4564\":\"3aafe428\",\"4618\":\"0c75539d\",\"4736\":\"d98d5970\",\"4748\":\"f993e4d4\",\"4822\":\"fb4e092f\",\"5031\":\"1489f2c1\",\"5067\":\"37ee835a\",\"5135\":\"9839681f\",\"5189\":\"1f8d4d67\",\"5224\":\"882702a8\",\"5429\":\"3b80effc\",\"5446\":\"61e0b9bf\",\"5469\":\"8a2782d9\",\"5565\":\"2e67d87f\",\"5571\":\"e7ba49c5\",\"5582\":\"f01f3c96\",\"5605\":\"7e701a4b\",\"5662\":\"dc2be1a3\",\"5677\":\"99acd31a\",\"5726\":\"96599817\",\"5777\":\"5e017449\",\"5835\":\"e29f303a\",\"5847\":\"0b7b0ae7\",\"5914\":\"351a2f94\",\"5929\":\"2e001609\",\"5975\":\"24662289\",\"5992\":\"0430623f\",\"6009\":\"f9c78a61\",\"6057\":\"001b113c\",\"6167\":\"b7c681b5\",\"6171\":\"c2d9add8\",\"6427\":\"7e35a38b\",\"6434\":\"2b5b64b7\",\"6468\":\"244e6b60\",\"6536\":\"d33b12d4\",\"6592\":\"4c32c94b\",\"6716\":\"18c5c346\",\"6734\":\"16233d63\",\"6746\":\"c81a859d\",\"6865\":\"e5d34168\",\"6953\":\"17c064b1\",\"6966\":\"f88227a3\",\"7029\":\"ca8af921\",\"7032\":\"6283f223\",\"7071\":\"c8e1db9c\",\"7081\":\"e3d05292\",\"7091\":\"4e0b2cf7\",\"7109\":\"e3330647\",\"7116\":\"50cbe4bc\",\"7177\":\"2c7e22e5\",\"7237\":\"1ac816ee\",\"7243\":\"00113471\",\"7281\":\"40a9c9b3\",\"7329\":\"c2957caf\",\"7415\":\"74f03399\",\"7442\":\"52183dd3\",\"7463\":\"c7a3e886\",\"7638\":\"5fb3c657\",\"7657\":\"298fe691\",\"7739\":\"e32c1bea\",\"7756\":\"c23e2ce3\",\"7777\":\"f3d55622\",\"7807\":\"fd00d04a\",\"7837\":\"d338ffdb\",\"7844\":\"cb856300\",\"7865\":\"91b42fbe\",\"7886\":\"cb8e4bc4\",\"7906\":\"15798acd\",\"7909\":\"46858c6c\",\"7919\":\"a8518d69\",\"7945\":\"dc7d505b\",\"7956\":\"6945f21f\",\"7973\":\"4cbd3708\",\"8127\":\"d2836264\",\"8144\":\"c133b766\",\"8159\":\"dfc501d3\",\"8208\":\"35accdd9\",\"8264\":\"17a5b677\",\"8293\":\"08ac864a\",\"8317\":\"4d4cfc9c\",\"8526\":\"e0a4f197\",\"8598\":\"c3ae2021\",\"8608\":\"1442095d\",\"8639\":\"a8b5aed4\",\"8648\":\"e5895dea\",\"8655\":\"bce9853f\",\"8664\":\"50f2f8b7\",\"8741\":\"cb2b39b1\",\"8742\":\"a46e4efc\",\"8753\":\"4392c978\",\"8757\":\"305033cc\",\"8782\":\"657a1993\",\"8794\":\"5ed6857c\",\"8851\":\"4c03b694\",\"8892\":\"c5518933\",\"8901\":\"a5f09920\",\"8903\":\"72f6f379\",\"9083\":\"352f7dfb\",\"9135\":\"3c769e19\",\"9181\":\"1db2def1\",\"9251\":\"b0aaa980\",\"9417\":\"1d594d9d\",\"9490\":\"9c404996\",\"9583\":\"3a64a47a\",\"9633\":\"66c47ebc\",\"9655\":\"42c0d21d\",\"9670\":\"a9dc034a\",\"9699\":\"7ba3c977\",\"9715\":\"6c9edcb2\",\"9723\":\"06711527\",\"9728\":\"ef795ae0\",\"9735\":\"822f341d\",\"9834\":\"be536e99\",\"9844\":\"49951d4b\",\"9982\":\"dd7ea1d9\",\"9999\":\"804356d6\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"520\":\"profiel\",\"945\":\"dashboard\",\"1779\":\"error\",\"2097\":\"vacatures\",\"3003\":\"WervingSelectie\",\"3186\":\"Sollicitaties\",\"4472\":\"aanvragen\",\"4547\":\"loopbaanadvies\",\"6966\":\"login\",\"7237\":\"landingpage\",\"7243\":\"recruitment\",\"8639\":\"nieuweaanvraag\",\"9633\":\"profielen\",\"9834\":\"acties\",\"9844\":\"organisations\"}[chunkId] || chunkId) + \".\" + {\"106\":\"58a4fd12\",\"249\":\"ccbe1742\",\"256\":\"0c05d4ae\",\"474\":\"26052598\",\"520\":\"79364a1a\",\"535\":\"dd7ea1be\",\"945\":\"b4df3d31\",\"1282\":\"34fe553a\",\"1327\":\"6c640114\",\"1779\":\"5d05aef2\",\"1926\":\"cb06fe8d\",\"1990\":\"d8c1c0e8\",\"2097\":\"2954555b\",\"2310\":\"9e60407a\",\"3003\":\"6a58c01e\",\"3039\":\"7b90e5d4\",\"3186\":\"770c2d5f\",\"3601\":\"d5fafb43\",\"3711\":\"744082db\",\"3716\":\"15b9a03e\",\"3989\":\"1374c786\",\"3994\":\"d1f9db67\",\"4127\":\"73f3c4c2\",\"4179\":\"7e72f91e\",\"4234\":\"7cf2f20c\",\"4316\":\"a0b147c0\",\"4472\":\"04c1735e\",\"4547\":\"fd26c0ea\",\"4822\":\"55d1900a\",\"5031\":\"15b9a03e\",\"5135\":\"1d452f55\",\"5662\":\"747877b9\",\"5777\":\"ae38142a\",\"5847\":\"fa2bb800\",\"5975\":\"cbae7536\",\"6427\":\"e9048ced\",\"6434\":\"6d86f851\",\"6865\":\"0cf0cec4\",\"6966\":\"8bcf328c\",\"7177\":\"df67e26b\",\"7237\":\"43c3990d\",\"7243\":\"2a0babe5\",\"7281\":\"58a4fd12\",\"7807\":\"9cbfecd5\",\"7909\":\"934370af\",\"7919\":\"06fc736e\",\"8159\":\"7aadc9f1\",\"8317\":\"5b43cd45\",\"8639\":\"08ffcc61\",\"8655\":\"d9e0aa02\",\"8782\":\"72b6f1cd\",\"9633\":\"d54e97e3\",\"9699\":\"a53f5fa9\",\"9834\":\"d9200153\",\"9844\":\"22df283a\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"WSM:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"106\":1,\"249\":1,\"256\":1,\"474\":1,\"520\":1,\"535\":1,\"945\":1,\"1282\":1,\"1327\":1,\"1779\":1,\"1926\":1,\"1990\":1,\"2097\":1,\"2310\":1,\"3003\":1,\"3039\":1,\"3186\":1,\"3601\":1,\"3711\":1,\"3716\":1,\"3989\":1,\"3994\":1,\"4127\":1,\"4179\":1,\"4234\":1,\"4316\":1,\"4472\":1,\"4547\":1,\"4822\":1,\"5031\":1,\"5135\":1,\"5662\":1,\"5777\":1,\"5847\":1,\"5975\":1,\"6427\":1,\"6434\":1,\"6865\":1,\"6966\":1,\"7177\":1,\"7237\":1,\"7243\":1,\"7281\":1,\"7807\":1,\"7909\":1,\"7919\":1,\"8159\":1,\"8317\":1,\"8639\":1,\"8655\":1,\"8782\":1,\"9633\":1,\"9699\":1,\"9834\":1,\"9844\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(8(159|655|782)|(192|431|696)6|5135|7281|7807|9699)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkWSM\"] = self[\"webpackChunkWSM\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(64063); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["globalUserManager","globalSilentRenewalInterval","userManager","initialized","redirected","signingOut","initialize","this","getUserManager","signIn","timeoutId","url","getDomain","signinRedirect","then","clearTimeout","catch","err","console","error","signOut","localStorage","removeItem","clearInterval","removeUser","e","warn","signoutRedirect","Vue","$router","push","name","params","tenantId","process","acquireOmnimapToken","user","id_token","getUser","getItem","Error","completeSilentRenew","signinSilentCallback","completeAuthentication","setEventHandlers","signinRedirectCallback","debug","setInterval","forcedSilentRenewalUsingRefreshToken","refresh_token","_useRefreshToken","events","addAccessTokenExpiring","handleAccessTokenExpiring","addAccessTokenExpired","handleAccessTokenExpired","addUserLoaded","handleUserLoaded","addSilentRenewError","handleSilentRenewalError","message","isIdTokenExpired","payload","_joseUtil","parseJwt","now","parseInt","Date","adjustedExpiry","exp","checkActiveSessionForIdentityProvider","identityProviderId","identityProvider","JSON","parse","setTimeout","noResponse","resetUserManager","__redirectURL","__silentRedirectURL","sessionStorage","_getIdentityProvider","oidcSettings","_getSettings","mgr","Oidc","_setCustomJwtValidation","userStore","client_id","authority","redirect_uri","response_type","supported_response_type","silent_redirect_uri","silentRequestTimeout","accessTokenExpiringNotificationTime","loadUserInfo","scope","revokeAccessTokenOnSignout","post_logout_redirect_uri","window","location","origin","hasOwnProperty","data","key","additional_config","validateJwtAttributes","async","jwt","issuer","audience","clockSkew","timeInsensitive","iss","Promise","reject","microsoftIssuerPresent","includes","replace","tid","aud","validAudience","Array","isArray","indexOf","azp","lowerNow","upperNow","iat","nbf","resolve","SEARCH_FIELDS","Query","constructor","content","context","statuses","definitions","sorting","text_search","timestamps","length","map","item","Content","Context","Status","Sorting","sort_type","direction","TextSearch","Timestamp","datatype","values","period","and_or","comparator","timestamp_value","ClassException","timestamp","role","instance_identifiers","start","type","timestamp_from","timestamp_to","toISOString","status","field","text_query","fuzzy","search_fields","every","InstanceQuery","instanceIdentification","IdUtils","isUUID","super","instance_identifications","INSTANCE_RESOURCE","INSTANCE_INCLUDE","OmniselectServices","organisation","OMNIMAP","axios","create","baseURL","headers","tenant_identification","setOrganisation","defaults","common","getFromUrl","get","Authorization","authentication","response","validateApiSearchResponse","ServiceException","getInstance","instanceId","properties","validateApiOkResponse","state","omniselectServices","searchServices","getters","actions","getOmniselectServices","rootGetters","commit","organisationId","StoreException","updateOmniselectServices","getSearchServices","SearchServices","updateSearchServices","omniselectSearch","dispatch","pageSize","pageNumber","query","searchExact","searchFields","searchIncludes","postInstanceQuery","meta","instances","omniselectGet","instance","mutations","SET_OMNISELECT_SERVICES","SET_SEARCH_SERVICES","namespaced","messages","general","welcome","select","scrollToLoad","clickToLoad","noMore","loaded","ownOrganisations","genericError","cancel","sitemap","home","homepage","vacancies","carrier_education","newCapacityRequest","faq","contact","privacy","cookies","accessibility","exact","submit","losseVacature","aanvraag","login","selectLoginMethod","logout","omniselect","loading","noQuery","noPath","noJsonpath","noUrl","invalidPath","initError","searchError","invalidResult","path","result","noResult","noResults","validPaths","missingVariables","neededValues","invalidValues","checkValues","organisationSelection","selectOrganisation","download","columns","title","documentName","fileName","instanceName","identification","id","identifier","description","since","until","operations","created","createdTime","updated","updatedTime","workmethod","timestamp_created","timestamp_any_update","relevance","jobfunction","category","surname","locations","rate","details","jobs","candidates","label_from","related_instance_identification","related_instance_identifier","related_instance_name","version","retentionPeriod","tags","terms","lba","endReview","applicationProgress","schedule","history","profile","reviews","communication","nomination","jobFunctions","exampleText","selectionCommission","selectionCommissionMembers","publicationData","mantelPartijen","recruitmentArchive","beoordelingen","omnischemaMessages","schema","isRequired","open","createMapping","checkAll","isExported","parentExported","inline","more","loadMore","addItem","selectTime","selectDate","selectDateTime","navigateToInstance","missingDestination","noTimeSet","customComponentPlaceholder","slotName","returnedObject","end","addValue","addRow","editRow","deleteRow","save","showList","hideList","newRow","showAll","total","undo","redo","text","bold","italic","underline","strike","header","lists","orderedList","bulletList","table","tableFunctions","createTable","deleteTable","addColumnBefore","addColumnAfter","deleteColumn","addRowAfter","addRowBefore","toggleCellMerge","link","editor","fullEditor","definition","reference","grouping","group","object","list","textarea","email","texteditor","options","button","external","internal","dates","time","date","dateTime","dateRange","boolean","checkbox","confirmCheckbox","numbers","number","integer","rating","slider","sliderOptions","currency","selection","multipleSelect","custom","customComponent","noCustom","customWrongType","omniMultiSelect","omnilookup","media","other","rrule","validation","advancedValidation","validationErrors","page","pattern","errorMessage","invalidRegex","delete","duplicate","compareText","compareInfo","old","new","addExportLocation","removeExportLocation","tableName","columnName","dataTypesLocked","rowInserts","addTo","itemType","selectType","add","notAvailable","selectItemType","noTitle","invalidKey","noItems","noDefinitions","edit","settings","advanced","export","security","rules","conditionalRendering","noConditionalRendering","conditionalOptionsInfo","info","deprecated","displaySubtitle","required","showAtCreation","readOnly","hidden","indexElastic","privacySensitive","executeMapping","mappedValue","exportSettings","destination","dataType","tableRow","column","checkPresence","createRenderRules","revertChanges","requiredRules","textTextarea","textTextareaInfo","requiredChild","requiredChildInfo","requiredCheckbox","optional","optionalInfo","requiredBoolean","requiredBooleanConfirm","mappingIdentification","placeholder","tableFooter","tableFooterPlaceholder","format","formatInfo","dateCharactersOnly","year","month","day","hour","minute","second","includeTime","linkText","test","minLength","maxLength","minItems","maxItems","minMax","minMaxLength","minMaxItems","default","defaultValue","tabs","wizard","next","previous","rows","clickable","noPagination","cantAdd","disallowAdd","cantDelete","disallowDelete","tableView","collapse","checkboxGroup","allowCreate","radioDisplay","noDefault","newOption","uniqueOption","minimum","maximum","separator","steps","notDividable","showStops","update","selectMapConfiguration","noMapConfigurations","selectMediaDefinition","noMediaDefinition","infoMediaPath","flexible","searchOptions","getPathInfo","getFilterInfo","display","infoDisplay","queryLength","queryLengthInfo","infoSave","populateFields","contextDefinitionIdentification","infoContextDefinitionIdentification","viewInstance","navigateInstance","property","variable","infoVariables","omnilookupVariable","queryField","infoVariablesJSON","variableName","referSelf","omniconnectPlaceholder","omniconnectPlaceholderInfo","omniconnectSelect","omniconnectSelectInfo","omniconnectSearch","omniconnectSearchInfo","action","newAction","selectAction","condition","addCondition","conditionsIncomplete","show","hide","disable","makeRequired","source","eq","ne","gt","ge","lt","le","valueType","value","selectComparator","selectPath","selectPathCompare","selectedOwnPath","enterValue","addConditions","relative","specific","difference","differenceInfo","leaveDateEmpty","compareDate","businessDays","dateCompareInfo","noFutureDates","noPastDates","dateLimits","limitDateInfo","limitDate","today","customDate","orientation","limitOrientation","dateReference","pickDate","checkPresenceHelp1","checkPresenceHelp2","deselectCheckPresence","updateRate","updateRates","everyMinute","fiveMinutes","fifteenMinutes","thirtyMinutes","hourly","fourHours","eightHours","daily","exportDestinations","exportLocations","exportFullContent","copy","write","read","application","own","mandate","roleSet","inherited","selectRoles","allowAll","rule","allow","deny","view","finish","all","personalContext","organisationContext","applicationContext","securityRule","copyRule","copyType","orderMatters","noInstanceSecurity","noInstanceSecurityTooltip","saveAlert","allAllowed","noContentSecurity","noContentSecurityTooltip","frequency","count","yearly","monthly","weekly","minutely","secondly","interval","delay","inSeconds","restriction","onlyWeekDays","onlyWeekends","after","for","times","and","execute","seconds","minutes","hours","week","securityToText","denySingular","denyPlural","allowSingular","allowPlural","theFollowing","in","or","nobody","everybody","unknown","users","applicationRole","whichAreRelated","withTheir","as","ownOrganisation","mandate_context_roles","user_context_roles","toTheInstance","newSecurityToText","noneAllowed","someAllowed","specify","application_roles","own_context_roles","Object","assign","ElementLanguage","instancenceName","omniLookupVariable","use","VueI18n","i18n","locale","fallbackLocale","nl","en","render","_vm","_c","_self","class","$mq","attrs","$route","staticRenderFns","computed","mapGetters","pageTitle","mounted","redirectURL","beforeMount","require","$i18n","watch","to","document","component","isBrowserIE","navigator","userAgent","userAgentString","IExplorer","code","internetExplorer","validTenantGuard","_from","invitationKey","setItem","entries","fetchDomain","landingPageGuard","organisationGuard","_to","from","store","keys","userGuard","currentOrigin","lastIndexOf","storedDomain","_actions","Router","mode","linkActiveClass","linkExactActiveClass","base","scrollBehavior","el","getElementById","scrollTo","routes","beforeEnter","RoutesTitles","ORGANISATIES","DASHBOARD","breadcrumb","Breadcrumbs","SOLLICITATIE_ACTIE","DYNAMIC","SOLLICITATIE_DETAILS","MIJN_SOLLICITATIES","ACTIE","KANDIDAAT","BULKACTIE","AANVRAAG","MIJN_AANVRAGEN","AANVRAGEN","MIJN_ACTIES","NIEUWE_AANVRAAG","MIJN_WS","PROFIEL_ACTIE","JOB_ALERTS","MIJN_PROFIEL","AANBEVOLEN_VACATURES","RECRUITMENT_KANDIDAAT_ACTIE","RECRUITMENT_KANDIDAAT","RECRUITMENT_AANVRAAG_ACTIE","RECRUITMENT_BULKACTIE","RECRUITMENT_AANVRAAG","RECRUITMENT_AANVRAGEN","NIEUWE_LOSSE_VACATURE","LOSSE_VACATURE_ACTIE","LOSSE_VACATURE","LOSSE_VACATURES","TALENTPOOL_PROFIEL_ACTIE","TALENTPOOL_PROFIEL","TALENTPOOL","MIJN_RECRUITMENT","LBA_KANDIDAAT_ACTIE","LBA_KANDIDAAT","LBA_ACTIE","LBA_BULKACTIE","LBA_VACATURE","LBA_VACATURES","VACATURES","PROFIEL_ACTIE_LBA","LBA_PROFIEL","LBA_PROFIELEN","PROFIELEN","MIJN_LBA","DATABASE","redirect","Element","t","VueMq","breakpoints","sm","md","lg","Infinity","defaultBreakpoint","config","productionTip","OmniComponents","router","h","App","$mount","SEARCH_RESOURCE","EXPORT_RESOURCE","PROPERTY_RESOURCE","ROLES_FROM_RESOURCE","ROLES_TO_RESOURCE","STATUSES_RESOURCE","getPropertyCodes","definitionIds","body","bearer","post","getToInstancesByRole","roleName","searchQuery","getFromInstancesByRole","getContentKeys","getContentValues","getAllStatuses","getRelevantStatuses","definitionId","fuzzySearch","textSearch","search_query","trim","join","add_location","stringify","getSearchResult","responseType","URL","createObjectURL","Blob","createElement","href","setAttribute","appendChild","click","exportWithSettings","date_format","exportMultiple","USER_PROFILE_RESOURCE","USER_ORGANISATIONS_RESOURCE","REGISTRATION_RESOURCE","USER_ACTIVATION_RESOURCE","INVITATION_RESOURCE","IDENTITY_PROVIDER","UserServices","getUserProfile","getUserOrganisations","checkUserRegistration","registerUser","checkInvitationKey","getIdentityProviders","getIdentityProvider","postActivateUser","invitation_key","TENANT","LOGO","TYPE","TENANT_ID","TenantServices","getLogo","DOMAIN_RESOURCE","DomainServices","retrieveTenantByDomain","domain","tenantServices","domainServices","tenant","getTenantServices","getDomainServices","updateTenantServices","getTenant","fetchTenantDataByDomain","tenantData","root","vanity_domains","forEach","vanityDomain","domain_name","SET_TENANT_SERVICES","SET_DOMAIN_SERVICES","SET_TENANT","SET_REDIRECT_URL","PERMISSIONS_PARAM","PAGE_NUMBER_PARAM","PAGE_SIZE_PARAM","InstanceDefinitionServices","getInstanceDefinition","instanceDefinitionId","Identifications","checkPermissionsForActionType","ActionType","instanceDefinitionServices","getInstanceDefinitionServices","updateInstanceDefinitionServices","SET_INSTANCE_DEFINITION_SERVICES","INSTANCE_IDENTIFICATION","ACTIVITY_INPUT_DATA","ACTIVITY_DEFINITIONS","GENERIC_INSTANCES","CONCEPT_RESOURCE","FINALISE_CONCEPT","INSTANCES","CONTEXT","STATUS","FLOW","V2","GenericInstanceServices","getGenericInstance","identificationId","postGenericInstance","newInstanceData","createConcept","concept","finaliseConcept","conceptId","patchGenericInstance","patch","setStatus","input","getInstanceContextPage","getInstanceContext","current_page","concat","total_pages","getActivitySchema","activityDefinitionId","getBulkActions","instanceIds","prepareBulkAction","stageId","executeBulkAction","activityType","genericInstanceServices","contextServices","getGenericInstanceServices","instanceData","SET_GENERIC_INSTANCE_SERVICES","retrieveInstances","retrieveSearchResult","retrieveAllStatuses","retrieveRelevantStatuses","sort","retrieveContentValues","contentKey","retrieveContextValues","searchSingleInstance","searchResult","total_found","queries","newColumn","split","unshift","size","ConfigurationCodes","EXCEL_EXPORT","convertQueryContent","newQuery","extraContents","find","startsWith","dateMapper","extraContent","setStatusTimestampsInRequest","_context","some","filter","removeAndOrInQuery","setHours","setMinutes","setSeconds","setMilliseconds","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","replaceWildcardsWithValueInContent","queryItem","arrayOfItems","idIndex","DynamicVariables","CURRENT_USER_ID","nameIndex","CURRENT_USER_NAME","organisationIndex","CURRENT_ORGANISATION","userId","userName","userSchemaPaths","pathValuePairs","pathItem","indexOfPath","splice","undefined","getContentOfUserSchemaPath","userSchemaData","formatUserSchemaPathContent","output","retrieveColumns","label","ColumnTypes","STRING","width","TIMESTAMP","contentItem","ACTIVITY","DEFINITION","INPUT_DATA","INPUT_MAPPING","INPUT_MEDIA","OUTPUT_DATA","OUTPUT_MAPPING","OUTPUT_MEDIA","MAP_INPUT","MAP_OUTPUT","REFRESH","SNOOZE","WAKE","START","VALIDATE","AWAIT_VALIDATION","NOTIFY","DETAILS","ActivityServices","postActivity","getActivity","activityId","getActivityDefinition","getInputDataDefinition","setInputDataDefinition","structureDefinition","getInputMappingDefinition","setInputMappingDefinition","mapping","getInputMediaDefinition","setInputMediaDefinition","mediaDefinition","getOutputDataDefinition","setOutputDataDefinition","getOutputMappingDefinition","setOutputMappingDefinition","getOutputMediaDefinition","setOutputMediaDefinition","getInputData","setInputData","getInputMedia","setInputMedium","contentName","contentRole","contentType","mimeType","getInputMedium","mediumId","deleteInputMedium","mapInput","mapOutput","getOutputData","setOutputData","getOutputMedia","setOutputMedium","getOutputMedium","deleteOutputMedia","refresh","getSnoozedActivity","startActivity","validateActivity","snoozeActivity","wakeActivity","getActivityAfterValidation","notify","notification","getActivityDetails","activityServices","getActivityServices","updateActivityServices","SET_ACTIVITY_SERVICES","FINISH","GENERIC","STAGES","MONITORING","ACTIONS","InstanceFlowServices","getInstanceMonitoring","getInstanceFlow","startInstanceFlow","flowId","finishInstanceFlow","getStage","getActivityDefinitionData","finishActivity","getActions","instanceFlowServices","getInstanceFlowServices","updateInstanceFlowServices","activityIdentification","allActions","specialActions","otherActions","specialIdentifications","AanvraagSpecialActions","stages_list","stage","ActivityStates","CREATED","STARTED","SET_INSTANCE_FLOW_SERVICES","SUBSCRIPTION_RESOURCE","READ","NOTIFICATION_RESOURCE","NotificationServices","organisation_identification","getSubscription","postSubscription","deleteSubscription","editSubscription","put","retrieveUserNotifications","putUserNotifications","retrieveInstanceNotifications","retrieveInstanceNotificationsPage","putInstanceNotifications","notificationServices","userNotifications","includeReadUserNotifications","userNotificationsMeta","currentUserNotificationsPage","currentUserNotificationsPageSize","numberOfUserNotifications","getNotificationServices","toggleIncludeReadUserNotifications","notifications","addWervingsTekstToNotifications","notificationInstanceIds","Set","searchResults","updatedNotifications","dataItem","markNotificationsAsRead","notificationIds","SET_NOTIFICATION_SERVICES","SET_USER_NOTIFICATIONS","SET_INCLUDE_READ_USER_NOTIFICATIONS","SET_USER_NOTIFICATIONS_META","SET_CURRENT_USER_NOTIFICATIONS_PAGE","SET_CURRENT_USER_NOTIFICATIONS_PAGE_SIZE","CHAT_RESOURCE_END","ChatServices","retrieveChat","retrieveChatByPage","createChat","updateChat","messageId","removeChat","getChatServices","updateChatServices","SET_CHAT_SERVICES","INSTANCES_RESOURCE_START","MEDIA_RESOURCE_END","MEDIA_BINARY_RESOURCE_START","MEDIA_BINARY_RESOURCE_END","MEDIA_RESOURCE_PATH_END","MEDIUM_RESOURCE_END","MEDIUM_CONTENT","PDF_FORMAT","MEDIA_V3","MediaServices","getMedia","retrievePathForInstance","formData","retrieveMediaForInstance","retrieveMediumMetadata","fileId","retrieveFile","pdf","createMediaBinary","createMediaMetadata","metadata","updateMediaBinary","linkMedia","uploadMediumContent","deleteMedia","mediaServices","omnimedia","omnimediaIds","mediaToBeDeleted","uploadingMedia","isActivity","getMediaServices","retrieveMedia","medium_identification","createMedia","file","relationships","mime_type","fileExt","slice","FileExtentions","newMedium","FormData","append","createMediaV3","targetId","linkType","mediaDefinitionId","link_target","link_type","medium_definition","setOmnimedia","setOmnimediaId","ids","removeOmnimediaId","setMediaToBeDeleted","createMediumContent","validateStoreInput","validateMediaNameOrPath","filename","checkMimeType","setUploadingMedia","isUploading","setIsActivity","SET_MEDIA_SERVICES","SET_MEDIA","SET_OMNIMEDIA","SET_OMNIMEDIA_IDS","SET_DELETE_MEDIA","SET_UPLOADING_MEDIA","SET_IS_ACTIVITY","FLOW_RESOURCE","DEFINITION_RESOURCE","STAGES_RESOURCE","START_AND_EXECUTE_RESOURCE","ProcessServices","getInstanceProcessStatus","startAndExecuteStage","stageDefinitionId","inputData","activity_input_strategy","activity_input_data","processServices","profileIdentification","profileData","JSONSchemaTalentProfile","JSONDataTalentProfile","getProcessServices","findProfileId","Id","searchProfileQuery","fetchProfileData","profileId","profileResult","createAndFetchNewProfile","newProfileData","startAndExecuteStatusAction","bewerkt","edited","goedgekeurd","approved","stageDefinitionIdentification","TalentProfileStatuses","NIEUW","TalentProfileActions","INDIENENPROFIEL","indienen","actief","GEWIJZIGD","AANVULLING_NODIG","INDIENENWIJZIGINGEN","INACTIEF","VERLOPEN","ACTIVERENPROFIEL","ditprofielkanwordengeactiveerd","ACTIEF","DEACTIVERENPROFIEL","deactiveren","startAndExecuteJobAlert","vakgebieden","werkendenkniveau","dienstverband_typevacature","STAGE_DEFINITION_JOBALERT_BIJWERKEN","startAndExecuteUnsubscribe","STAGE_DEFINITION_JOBALERT_AFMELDEN","clearProfile","SET_PROCESS_SERVICES","SET_PROFILE_ID","SET_PROFILE_DATA","SET_JSON_SCHEMA_TALENT_PROFILE","SET_JSON_DATA_TALENT_PROFILE","timeout","pagination","page_size","page_number","myRequests","lastRetrieved","metaFiltered","totalActions","isTypeLosse","losseVacatures","metaLosseVacatures","setTypeOfRequest","isLosseVacature","updateRequests","resetPageAndQuery","setPage","setSorting","setTextSearch","textQuery","statusList","retrieveAllActions","retrieveActionsForRequest","request","decideAction","special","flow","hasActions","init","i","retrieveAmountOfRequests","MyRequestsQueries","MANAGER","retrieveMyRequests","forceUpdate","metaBefore","getTime","mapped","mappedData","setQuery","activeTab","MyRequestsTabs","LOPENDE","ALLE","VERLENGINGEN","retrieveAllChats","retrieveChatForRequest","hasChat","retrieveLosseVacatures","SET_LOADING","SET_TIME_OUT","SET_PAGE_NUMBER","SET_QUERY","SET_QUERY_SORTING","SET_QUERY_TEXT_SEARCH","SET_QUERY_STATUSES","SET_REQUEST_ACTIONS","SET_HAS_ACTIONS","SET_MY_REQUESTS","SET_AMOUNT_REQUESTS","SET_AMOUNT_FILTERED_REQUESTS","SET_REQUEST_CHAT","SET_HAS_CHAT","SET_AMOUNT_ACTIONS","SET_LAST_RETRIEVED","SET_LOSSE_VACATURES","SET_META_LOSSE_VACATURES","SET_TYPE_REQUEST","TEXT","SELECTION_COMMISSION_CONTENT_QUERY","VOORRANG_STATUSES_QUERY_MANAGER","allCandidates","selectedCandidate","selectedCandidateIndex","bulkActionsCandidates","voorrangQuery","VOORRANGSKANDIDAAT","isRecentActionBeoordelen","getCandidates","getCandidate","getSelectedCandidate","getSelectedCandidateIndex","getSearch","getQuery","getVoorrangQuery","retrieveCandidates","fetchActions","updateStore","capacityRequestId","generalMeta","voorrangMeta","voorrang","generalResponse","voorrangResponse","setOtherActions","a","fetchCandidatesActions","candidate","_all","others","retrieveCandidate","candidateId","candidateInstance","updateCandidateQuery","isUserAdmin","isUserRecruiter","isUserBackoffice","updatePriorityCandidateQuery","isUserLBA","managerContext","setSearch","setSelectedCandidateIndex","val","setSelectedCandidate","setInstanceId","setTabs","routeName","isVoorrangskandidaat","CandidateTabs","JOUWSOLLICITATIE","SOLLICITATIEVERLOOP","ACTIES","COMMUNICATIE","CandidateView","STANDARD","PROFIEL","BEOORDELINGEN","reset","setBulkActionCandidates","candidatesData","setIfRecentActionBeoordelen","sortCandidates","sortedCandidates","order","prop","sortStatus","createCustomSortingFunction","SortDirections","DESCENDING","SET_CANDIDATES","SET_SELECTED_CANDIDATE","SET_CANDIDATE_INDEX","SET_BULK_ACTIONS_CANDIDATES","ADD_CANDIDATE","SET_TABS","SET_QUERY_CONTEXT","SET_VOORRANG_QUERY_CONTEXT","SET_QUERY_CONTENT","SET_VOORRANG_QUERY_STATUS","SET_INSTANCE_ID","SET_IF_RECENT_ACTION_BEOORDELEN","currentFilter","currentSearch","pageNumberCurrentProfilesTab","profilesSearchQuery","LBAContext","Roles","LOOPBAAN_ADVISEUR","VoorangskandidatenContent","nrMyProfiles","nrVacanciesInMobilityPhase","queryForVacanciesInMobilityPhase","Statuses","MOBILITEITSFASE","AANVRAAG_CAPACITEIT","dataVacanciesInMobilityPhase","metaVacanciesInMobilityPhase","dataSelectedProfiles","metaSelectedProfiles","pageNrAllProfiles","dataAllProfiles","metaAllProfiles","mappedDataAllProfiles","pageNrVoorangskandidaten","dataVoorangskandidaten","metaVoorangskandidaten","mappedDataVoorangskandidaten","pageNrMyCandidates","dataMyCandidates","metaMyCandidates","mappedDataMyCandidates","getNrMyProfiles","LBATabs","ALLE_PROFIELEN","setActiveTab","tab","setCorrectSearchQuery","searchTerm","TALENT_PROFIEL","TER_AKKOORD","VOORANGSKANDIDATEN","MIJN_KANDIDATEN","TalentProfileTypes","fetchTheData","thisFilter","thisSearch","thisFuzzySearch","mappedProfilesData","mapTheData","array","setTableFormatForLBAProfiles","cancelAppliedFilter","cancelAppliedSearch","setFuzzySearch","currentFuzzy","setPageNumber","resetTheView","setDataSelectedProfiles","mapToGetArrayOfIdsAndNames","getVacanciesInMobilityPhase","reduce","obj","cur","getVacancyActions","vacatureId","mappedActions","AanvraagNonShowActions","getProfileActions","profileType","TypeKandidaat","VOORANGSKANDIDAAT","LBAVoorrangskandidatenActions","LBAGeneralActions","SET_ACTIVE_TAB","SET_CURRENT_FILTER","SET_CURRENT_SEARCH","SET_FUZZY_SEARCH","SET_PAGE_NR_CURRENT_PROFILES_TAB","SET_PROFILE_SEARCH_QUERY","SET_NUMBER_MY_PROFILES","SET_NUMBER_VACANCIES_IN_MOBILITY_PHASE","SET_DATA_VACANCIES_IN_MOBILITY_PHASE","SET_META_VACANCIES_IN_MOBILITY_PHASE","SET_DATA_SELECTED_PROFILES","SET_META_SELECTED_PROFILES","SET_PAGE_NR_ALL_PROFILES","SET_DATA_ALL_PROFILES","SET_META_ALL_PROFILES","SET_MAPPED_DATA_ALL_PROFILES","SET_PAGE_NR_VOORANGSKANDIDATEN","SET_DATA_VOORANGSKANDIDATEN","SET_META_VOORANGSKANDIDATEN","SET_MAPPED_DATA_VOORANGSKANDIDATEN","SET_PAGE_NR_MY_CANDIDATES","SET_DATA_MY_CANDIDATES","SET_META_MY_CANDIDATES","SET_MAPPED_DATA_MY_CANDIDATES","myApplications","applicationType","updateProcessServices","configureQuery","KANDIDAAT_HOUDER","VOORRANGSKANDIDAAT_HOUDER","ApplicationsTypes","LOPEND","statusName","AFGEROND","retrieveMyApplications","startAndExecuteIntrekkenSollicitatie","STAGE_DEFINITION_INTREKKEN_SOLLICITATIE","zekerweten","setApplicationType","SET_MY_APPLICATIONS","SET_META","SET_PAGE_SIZE","SET_APPLICATION_TYPE","SET_SORTING","getAvailableBulkActions","bulkActions","stages","BulkActions","prepareAvailableBulkAction","executeAvailableBulkAction","startAndExecuteAction","requestsNr","getRequestActions","requestId","MatchboxServices","MATCHBOX","filters","language","matchProfile","queryParams","scoreType","userLanguage","matchFilter","getJobs","minScore","getMatchProfileFromJob","jobIdentification","getJobFromCandidate","findPrefix","OMNICONNECT","DEFINITIONS","CONNECT","OmniConnectorServices","connect","omniConnectorId","getAll","matchboxServices","omniConnectorServices","bearerToken","bearerTokenExpiration","matches","totalFound","getMatchboxServices","getOmniConnectorServices","getMatchboxToken","currentDate","expirationDate","access_token","setTime","expires_in","formatPayload","payloadCopy","block","labels","weight","propertiesToDelete","extraProperties","workingAndThinking","profileValue","salaryScale","match","formattedMatch","score","jobFunctionLabels","jobFunctionLabel","bool","must","term","should","range","lte","gte","getSuggestions","candidateIdentification","setPageSize","setMatches","setTotalFound","SET_MATCHBOX_SERVICES","SET_OMNICONNECTOR_SERVICES","SET_BEARER_TOKEN","SET_BEARER_TOKEN_EXPIRATION","SET_MATCHES","SET_TOTAL_FOUND","selectedExample","setSelectedExample","clearSelectedExample","SET_SELECTED_EXAMPLE","CONFIGURATION_RESOURCE","CLIENT_RESOURCE","CODE_RESOURCE","REFERENCE_RESOURCE","ConfigurationServices","getConfigByReference","createConfig","updateConfig","configurationServices","configurations","buttonPermissionsConfig","selectedPreset","personalPresets","retrieveConfigurationServices","retrieveConfigurationByReference","retrievePersonalPresets","StandardFilters","WSM_FILTER","references","roles","rolesIDs","presets","preset","retrieveRolesOfUser","currentDateTime","valid_from","valid_until","createPreset","userPreset","firstName","alias","children","generateUUID","canBeDeleted","deletePreset","userFilter","updateConfiguration","createConfiguration","SET_CONFIGURATION_SERVICES","SET_BUTTON_PERMISSIONS_CONFIG","SET_SELECTED_PRESET","SET_PERSONAL_PRESETS","EMAILS_RESOURCE","EmailTemplateServices","getEmailTemplate","emailTemplateId","emailTemplateServices","getEmailTemplateServices","updateEmailTemplateServices","retrieveEmailTemplate","templateId","SET_EMAIL_TEMPLATE_SERVICES","setBreadcrumb","INSTANCE","CANDIDATE","PROFILE","ACTION","SET_INSTANCE","SET_CANDIDATE","SET_PROFILE","SET_ACTION","MAPPING_EXECUTION_RESOURCE","MappingExecutionServices","getOutputDataUsingPost","mappingId","mappingData","mappingExecutionServices","isExecutingMapping","getIsExecutingMapping","getMappingExecutionServices","updateMappingExecutionServices","postMappingCalculation","mapping_identification","setIsExecutingMapping","SET_MAPPING_EXECUTION_SERVICES","SET_IS_EXECUTING_MAPPING","CONCEPT_DEFINITION_RESOURCE","ConceptDefinitionServices","getConceptDefinition","conceptDefinitionIdentification","conceptDefinitionServices","retrieveConceptDefinitionServices","conceptDefinitionId","SET_CONCEPT_DEFINITION_SERVICES","selectedTalentPoolProfileIndex","selectedTalentPoolProfile","allTalentPoolProfiles","showLogbook","vacanciesUpdate","setAllTalentPoolProfiles","setSelectedTalentPoolProfileIndex","index","setSelectedTalentPoolProfile","getTalentPoolProfile","talentPoolProfile","setShowLogbook","setVacanciesUpdate","SET_ALL_TALENT_POOL_PROFILES","SET_SELECTED_TALENT_POOL_PROFILE","SET_SELECTED_TALENT_POOL_PROFILE_INDEX","SET_SHOW_LOGBOOK","SET_VACANCIES_UPDATE","Vuex","userServices","organisations","mandate_organisations","own_organisations","controleerAanvragen","canAccessMijnRecruitment","canAccessMijnWervingEnSelectie","canAccessMijnLoopbaanadvies","canAccessDatabaseProfielen","canAccessMijnTalenten","canAccessMijnActies","canAccessFaq","isAccessChecked","userOrganisations","userOwnOrganisations","userMandateOrganisations","checkIfUserHasThisRole","AllUserRoles","ADMINISTRATOR","ADMIN","isUserManager","BACKOFFICE_MEDEWERKER","RECRUITER","isUserStandaardGebruiker","STANDAARD_GEBRUIKER","getUserServices","updateUserServices","setTenantId","fetchTenant","fetchIdentityProviders","idProviders","provider","openid_connect","fetchIdentityProvider","checkRegistration","fetchUserOrganisations","errors","activateUser","getMessage","selectUserOrganisation","foundOwnOrganisation","userOrg","foundMandateOrganisation","fetchUser","setUserAccessRights","userRelationships","userRoles","AccessMijnRecruitment","AccessMijnWervingEnSelectie","AccessMijnLoopbaanadvies","AccessDatabaseProfielen","AccessMijnTalenten","AccessMijnActies","determineInstanceRoute","route","DeeplinkActions","CREATE_CAPACITY_REQUEST","RoutesNames","Links","NEW","WERVING_SELECTIE","WERVINGSELECTIE","MIJN_WERVING_EN_SELECTIE","WERVING_SELECTIE_ACTIES","MIJN_TAKEN","WERVING_SELECTIE_AANVRAGEN","RECRUITMENT","RECRUITMENT_LOSSE_VACATURES","RECRUITMENT_NEW_LOSSE_VACATURE","RECRUITMENT_TALENTPOOL","MY_PROFILE","MY_APPLICATIONS","SOLLICITATIES","MY_JOBALERTS","JOB_ALERT","LOOPBAANADVIES","MIJN_LOOPBAANADVIES","LOOPBAANADVIES_PROFIELEN","LOOPBAANADVIES_VACATURES","TALENT_PROFIEL_HOUDER","related_instance","relatedRequest","INTERNE_KANDIDAAT","EXTERNE_KANDIDAAT","candidateName","relatedPriorityRequest","SET_ORGANISATION","UPDATE_USER","merge","arrayMerge","_destinationArray","sourceArray","SET_USER_SERVICES","SET_CONTROLEER_AANVRAGEN","CAN_ACCESS_MIJN_RECRUITMENT","CAN_ACCESS_MIJN_WERVING_EN_SELECTIE","CAN_ACCESS_MIJN_LOOPBAANADVIES","CAN_ACCESS_DATABASE_PROFIELEN","CAN_ACCESS_MIJN_TALENTEN","CAN_ACCESS_MIJN_TAKEN","CAN_ACCESS_FAQ","IS_ACCESS_CHECKED","modules","tenantStore","instanceDefinitions","search","genericInstance","activity","instanceFlow","chat","talentProfile","recruitment","requests","loopbaanadvies","applications","processStore","matchbox","recruitmentText","emailTemplates","breadcrumbs","conceptDefinitions","invalid","detail","Exception","toString","errMessage","ComponentException","Prefixes","freeze","ALL","NOT_SHOW_IN_BREADCRUMBS","BULK_ACTION","TAB","SOURCE","REQUEST_INSTANCE","PROFILE_INSTANCE","MY_PROFILE_INSTANCE","MY_SOLLICITATIES","NotShowCrumbs","DynamicTypes","APPLICANT","TALENTPOOL_PROFILE","RouteNames","CandidateRoles","VOORRANGS_KANDIDAAT","AddReviewActionIds","EditReviewActionId","ReviewedCandidatesStates","CandidatieActivities","AANPASSEN_SOLLICITATIE","CandidateProfileRoles","CandidateStatuses","filterable","TER_BEOORDELING","UITGENODIGD_VOOR_SELECTIERONDE","ARBEIDSVOORWAARDEGESPREK","INGETROKKEN","AFGEWEZEN","RESERVE","AANGENOMEN","CandidateSorting","DEFAULT","BulkActionInputMapping","IN_REVERSE","AFWIJZEN","ErrorMessage","WIJZIGEN_BACKOFFICE_MEDEWERKER","WIJZIGEN_SELECTIECOMMISSIELEDEN","WIJZIGEN_CONTACTPERSONEN","AANPASSEN_EMAILADRESSEN","WIJZIGEN_AANVRAAG","KOPIEREN_AANVRAAG","ANNULEREN_AANVRAAG","ANNULEREN_AANVRAAG_BACKOFFICE","TOEVOEGEN_EXTERNE_KANDIDAAT_AAN_VACATURE","TOEVOEGEN_INTERNE_KANDIDAAT_AAN_VACATURE","WIJZIGEN_TARIEF","AANMAKEN_INTERNE_KANDIDAAT","AANMAKEN_EXTERNE_KANDIDAAT","SpecialIdentifications","NotAllowedToContinueActionIds","EndStatuses","ContextRoles","SELECTIECOMMISSIE","InformationTabs","AANVRAAG_GEGEVENS","INTERNE_WERVINGSTEKST","EXTERNE_WERVINGSTEKST","WERVING_EN_SELECTIEPROCES","AanvraagGegevens","ExcludedSchemaValues","AanvraagComposites","BEWERKEN","WERVEN_EN_SELECTEREN","AFRONDEN_VERLENGING","ACCORDEREN_PROFIEL","WIJZIGEN_LBA","WIJZIGEN_CATEGORIE","ACCORDEREN_EN_INDIENEN","DEACTIVEREN_PROFIEL","Voorrangskandidaten","ID","publicatietitel","startontvangen","bomedewerker","vakgebied","directie","werktitel","typeaanvraag","nieuweMedewerker","verlenging","stagiairs","nieuweMedewerkerColumns","stagesColumns","sortingStartOntvangen","RecruitmentQueries","ALLES","NIEUWE_MEDEWERKER_ALLES","NIEUWE_MEDEWERKERS_LOPEND","STAGES_ALLES","STAGES_LOPEND","VERLENGINGEN_ALLES","LBAColumns","LBASorting","LoopbaanadviesQueries","ALLE_VACATURES","VACATURES_IN_MOBILITEITFASE","VOORLOPIG_INGEVULD","ALLE_LOSSE","ProfileOwnerActions","CONTROLEREN_EN_INDIENEN","interne_medewerker","interne_kandidaat","externe_kandidaat","voorrangskandidaat","externe_voorrangskandidaat","ProfileActionsLBA","ALGEMEEN","OMSCHRIJVING","WERKERVARING","OPLEIDINGEN","CERTIFICATEN_EN_CURSUSSEN","EXPERTISES","TALEN_EN_RIJBEWIJS","COMPETENTIES","ZOEKRICHTING","BESCHIKBAARHEID","ProfileActionsOwner","PROFIELOPSTELLEN","ProfileCategories","BOVENTALLIG","REINTEGRATIE","ADMINISTRATIEF_GEPLAATST","PREBOVENTALLIG","INTERNE_MEDEWERKER","UITZENDKRACHT","TRAINEE","WW","EXTERNE_SOLLICITANT","OUDSTAGIAIRE","ARBEIDSBEPERKING","ProfileWizardTitles","gegevensophalenuitmijnpo","algemeneinformatie","omschrijving","werkervaring","opleidingen","certificatenencursussen","expertises","talenenrijbewijs","competenties","infoloopbaan","zoekrichting","beschikbaarheid","ProfileSectionsLabels","GENERAL","DESCRIPTION","WORK_EXPERIENCE","EDUCATION","CERTIFICATES","LANGUAGES","COMPETENCIES","SEARCH","AVAILABILITY","ShowItemsAsRecords","dmf","octetStream","postScript","aiff","plain","xDirector","msWord","dwg","make","hpHpgl","jpeg","midi","mpeg","rfc822","quicktime","xProject","msPowerpoint","xQuicktime","realAudio","xTroff","xKoan","uriList","xVisio","wordPerfect","excel","msExcel","aab","aam","aas","abc","acgi","afl","ai","aif","aifc","aim","aip","ani","aos","aps","arc","arj","art","asf","asm","asp","asx","au","avi","avs","bcpio","bin","bm","bmp","boo","book","boz","bsh","bz","bz2","c","cat","cc","ccad","cco","cdf","cha","com","conf","cpio","cpp","cpt","crl","csh","css","cxx","dcr","deepv","def","der","dif","dir","dl","doc","dot","dp","drw","dump","dv","dvi","dwf","dxf","dxr","elc","env","eps","es","etx","evy","exe","f","f77","f90","fdf","fif","fli","flo","flx","fmf","fpx","frl","funk","g","g3","gif","gl","gsd","gsm","gsp","gss","gtar","gz","gzip","hdf","help","hgl","hh","hlb","hlp","hpg","hpgl","hqx","hta","htc","htm","html","htmls","htt","htx","ice","ico","idc","ief","iefs","iges","igs","ima","imap","inf","ins","ip","isu","it","iv","ivr","ivy","jam","jav","java","jcm","jfif","jpe","jpg","jps","js","jut","kar","ksh","la","lam","latex","lha","lhx","lma","log","lsp","lst","lsx","ltx","lzh","lzx","m","m1v","m2a","m2v","m3u","man","mar","mbd","mc$","mcd","mcf","mcp","me","mht","mhtml","mid","mif","mime","mjf","mjpg","mm","mme","mod","moov","mov","movie","mp2","mp3","mpa","mpc","mpe","mpg","mpga","mpp","mpt","mpv","mpx","mrc","ms","mv","my","mzz","nap","naplps","nc","ncm","nif","niff","nix","nsc","nvd","o","oda","omc","omcd","omcr","p","p10","p12","p7a","p7c","p7m","p7r","p7s","part","pas","pbm","pcl","pct","pcx","pdb","pfunk","pgm","pic","pict","pkg","pko","pl","plx","pm","pm4","pm5","png","pnm","pot","pov","ppa","ppm","pps","ppt","ppz","pre","prt","ps","psd","pvu","pwz","py","pyc","qcp","qd3","qd3d","qif","qt","qtc","qti","qtif","ra","ram","ras","rast","rexx","rf","rgb","rm","rmi","rmm","rmp","rnx","roff","rp","rpm","rt","rtf","rtx","rv","s","s3m","saveme","sbk","scm","sdml","sdp","sdr","sea","set","sgm","sgml","sh","shar","shtml","sid","sit","skd","skm","skp","skt","sl","smi","smil","snd","sol","spc","spl","spr","sprite","src","ssi","ssm","sst","step","stl","stp","sv4cpio","sv4crc","svf","swf","talk","tar","tbk","tcl","tcsh","tex","texi","texinfo","tgz","tif","tiff","tr","tsi","tsp","tsv","turbot","txt","uil","uni","unis","unv","uri","uris","ustar","uu","uue","vcd","vcs","vda","vdo","vew","viv","vivo","vmd","vmf","voc","vos","vox","vqe","vqf","vql","vrml","vrt","vsd","vst","vsw","w60","w61","w6w","wav","wb1","wbmp","web","wiz","wk1","wmf","wml","wmlc","wmls","wmlsc","word","wp","wp5","wp6","wpd","wq1","wri","wrl","wrz","wsc","wsrc","wtk","xbm","xdr","xgz","xif","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xls","xlt","xlv","xlw","xm","xml","xmz","xpix","xpm","xsr","xwd","xyz","z","zip","zoo","zsh","dgn","eml","msg","mkv","m4p","Files","maxSize","AFAS_SYNCHRONISATIE","BACKGROUND","BACKOFFICE","DIRECTEUR","FUNCTIENAAM","INCIDENT","LEIDINGGEVENDE","NOTE","ORGANISATION","PDFTemplates","SELECTERENENBESLISSEN","USER","WERKLOCATIE","WERKTITEL","STAGE_DEFINITION_SELECTEREN","STAGE_DEFINITION_VOLTOOIEN_AANVRAAG","STAGE_DEFINITION_AFAS_KOPPELING","PDF_GENERATOR","CONCEPT_AANVRAAG_CAPACITEIT","CONCEPT_LOSSE_VACATURE","AANVRAGER","PRIMAIR_CONTACTPERSOON","SECUNDAIR_CONTACTPERSOON_1","SECUNDAIR_CONTACTPERSOON_2","TALENTPOOL_HOUDER","EIGENAAR_PROFIEL","TALENTPOOL_LID","Codes","BACKGROUND_PROCESS","ConceptCodes","GET","POST","PUT","PATCH","DELETE","COPY","HEAD","OPTIONS","LINK","UNLINK","PURGE","LOCK","UNLOCK","PROPFIND","VIEW","RolesAllowedToReview","ContextAllowedToReview","PRIMAIRE_CONTACTPERSOON","SpecialSteps","SELECTIERONDE","ANONIMISEREN","ACCORDEREN_WERVINGSTEKST","CONCEPT","DEFINITIEF_INGEVULD","GEANNULEERD","GEPUBLICEERD","IN_BEHANDELING","TER_PUBLICATIE","VERLENGING_EXTERNE_PARTIJ","dateFormatOptions","Recruitment","ACTIVITIES_WITH_PREVIEW","ACTIVITIES_WITH_TEMP_SAVE","ActionsWithWizardTopNavigation","OPSTELLEN_WERVINGSTEKST","PRESELECTIE_IN_RESERVE","PRESELECTIE_AFWIJZEN","PRESELECTIE_VRIJE_MAIL","PRESELECTIE_AFRONDEN","SELECTIE_IN_RESERVE","SELECTIE_AFWIJZEN","SELECTIE_VRIJE_MAIL","CURRENT_USER","NotificationsType","TALENT","BOOLEAN","DATE","DATE_TIME","PROGRESS","BUTTON","TAGS","ASCENDING","PageSize","ZOMERRECES","VACATURE_PROCESS","CONTENT","RecruitmentText","PageNumber","OmniAdvancedTable","DataType","OmniAdvancedTablePresets","KeysGroup","PROPERTIES","MediaLinkTypes","NONE","MediaDefinitions","AANVRAAG_BIJLAGE","C_V","MOTIVATIE","FINISHED","EXPECTED","sleep","removeUnsafeCharacters","string","indexOfSuffix","replaceAll","suffix","toLowerCase","safeTimestamp","modifiedFileName","sortingProperty","secondSortingProperty","sortingProp","secondSortingProp","b","sortByScoreAndLabel","roleId","displayDate","displayCurrency","Intl","NumberFormat","style","CANDIDATES","CandidatesTabRoutes","ActionsTabRoutes","getRouteName","actionRouteName","candidateRouteName","bulkActionRouteName","actionInstanceRouteName","requestRouteName","sectionRouteName","tabName","setTabName","getGeneralColumnName","endIndex","toUpperCase","getColumnWidth","valueFromPath","regex","jp","getFullName","firstname","lastName","isImage","fileExtension","extensions","isPDF","isOffice","requiredProperties","messageStart","missingProperties","pathParts","pathPart","Math","random","uuid","getUUIDFromLink","startIndexOfId","MIJN_TALENTEN","RECOMMENDATIONS","INTERNE_VACATURES","WERKEN_BIJ_AMSTERDAM_NL","CARRIERE_EN_CONTACT","FAQ","LOOPBAAN_OPLEIDING","LINKEDIN","FACEBOOK","TWITTER","INSTAGRAM","YOUTUBE","PRIVACY","COOKIES","ACCESSIBILITY","userRelations","relation","roepnaam","achternaam","setFullNameWithDot","fullName","setFullName","newEl","scale","maxHours","careerAdvisor","verloopdatum","toLocaleDateString","arrayOfValues","fullNameWithDot","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","fulfilled","j","r","n","getter","__esModule","d","defineProperty","enumerable","chunkId","promises","u","miniCssF","globalThis","Function","prototype","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}