1(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`65d81946eb8214c7fd110d544405589f180c3c9d`};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`1cc7cb98-f483-453f-8c4a-ee04e31ff0c6`,e._sentryDebugIdIdentifier=`sentry-dbid-1cc7cb98-f483-453f-8c4a-ee04e31ff0c6`)}catch{}})();import{i as e,n as t}from"./i18nInstance-amGtpvA8.js";var n=`application/json`,r=class{#e=[];#t;#n=!0;#r;#i=this.#O(console.info);#a=this.#O(console.warn);#o={enable:!0,callbackList:[],interval:5};#s;didInitialize=!1;authenticated=!1;loginRequired=!1;responseMode=`fragment`;responseType=`code`;flow=`standard`;timeSkew=null;redirectUri;silentCheckSsoRedirectUri;silentCheckSsoFallback=!0;pkceMethod=`S256`;enableLogging=!1;logoutMethod=`GET`;scope;messageReceiveTimeout=1e4;idToken;idTokenParsed;token;tokenParsed;refreshToken;refreshTokenParsed;clientId;sessionId;subject;authServerUrl;realm;realmAccess;resourceAccess;profile;userInfo;endpoints;tokenTimeoutHandle;onAuthSuccess;onAuthError;onAuthRefreshSuccess;onAuthRefreshError;onTokenExpired;onAuthLogout;onReady;onActionUpdate;constructor(e){if(typeof e!=`string`&&!b(e))throw Error(`The 'Keycloak' constructor must be provided with a configuration object, or a URL to a JSON configuration file.`);if(b(e)){let t=`oidcProvider`in e?[`clientId`]:[`url`,`realm`,`clientId`];for(let n of t)if(!(n in e))throw Error(`The configuration object is missing the required '${n}' property.`)}globalThis.isSecureContext||this.#a(`[KEYCLOAK] Keycloak JS must be used in a 'secure context' to function properly as it relies on browser APIs that are otherwise not available. 2Continuing to run your application insecurely will lead to unexpected behavior and breakage. 3 4For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts`),this.#s=e}init=async(e={})=>{if(this.didInitialize)throw Error(`A 'Keycloak' instance can only be initialized once.`);if(this.didInitialize=!0,this.#r=d(),this.#t=typeof e.adapter==`string`&&[`default`,`cordova`,`cordova-native`].includes(e.adapter)?this.#c(e.adapter):typeof e.adapter==`object`?e.adapter:`Cordova`in window||`cordova`in window?this.#c(`cordova`):this.#c(`default`),e.useNonce!==void 0&&(this.#n=e.useNonce),e.checkLoginIframe!==void 0&&(this.#o.enable=e.checkLoginIframe),e.checkLoginIframeInterval&&(this.#o.interval=e.checkLoginIframeInterval),e.onLoad===`login-required`&&(this.loginRequired=!0),e.responseMode){if(e.responseMode===`query`||e.responseMode===`fragment`)this.responseMode=e.responseMode;else throw Error(`Invalid value for responseMode`)}if(e.flow){switch(e.flow){case`standard`:this.responseType=`code`;break;case`implicit`:this.responseType=`id_token token`;break;case`hybrid`:this.responseType=`code id_token token`;break;default:throw Error(`Invalid value for flow`)}this.flow=e.flow}if(typeof e.timeSkew==`number`&&(this.timeSkew=e.timeSkew),e.redirectUri&&(this.redirectUri=e.redirectUri),e.silentCheckSsoRedirectUri&&(this.silentCheckSsoRedirectUri=e.silentCheckSsoRedirectUri),typeof e.silentCheckSsoFallback==`boolean`&&(this.silentCheckSsoFallback=e.silentCheckSsoFallback),e.pkceMethod!==void 0){if(e.pkceMethod!==`S256`&&e.pkceMethod!==!1)throw TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${e.pkceMethod}.`);this.pkceMethod=e.pkceMethod}return typeof e.enableLogging==`boolean`&&(this.enableLogging=e.enableLogging),e.logoutMethod===`POST`&&(this.logoutMethod=`POST`),typeof e.scope==`string`&&(this.scope=e.scope),typeof e.messageReceiveTimeout==`number`&&e.messageReceiveTimeout>0&&(this.messageReceiveTimeout=e.messageReceiveTimeout),await this.#f(),await this.#g(),await this.#_(e),this.onReady?.(this.authenticated),this.authenticated};#c(e){if(e==="default")return this.#l();if(e===`cordova`)return this.#o.enable=!1,this.#u();if(e===`cordova-native`)return this.#o.enable=!1,this.#d();throw Error(`invalid adapter type: `+e)}#l(){let e=e=>e?.redirectUri||this.redirectUri||globalThis.location.href;return{login:async e=>(window.location.assign(await this.createLoginUrl(e)),await new Promise(()=>{})),logout:async t=>{if((t?.logoutMethod??this.logoutMethod)===`GET`){window.location.replace(this.createLogoutUrl(t));return}let n=document.createElement(`form`);n.setAttribute(`method`,`POST`),n.setAttribute(`action`,this.createLogoutUrl(t)),n.style.display=`none`;let r={id_token_hint:this.idToken,client_id:this.clientId,post_logout_redirect_uri:e(t)};for(let[e,t]of Object.entries(r)){let r=document.createElement(`input`);r.setAttribute(`type`,`hidden`),r.setAttribute(`name`,e),r.setAttribute(`value`,t),n.appendChild(r)}document.body.appendChild(n),n.submit()},register:async e=>(window.location.assign(await this.createRegisterUrl(e)),await new Promise(()=>{})),accountManagement:async()=>{let e=this.createAccountUrl();if(e!==void 0)window.location.href=e;else throw Error(`Not supported by the OIDC server`);return await new Promise(()=>{})},redirectUri:e}}
4#u(){let e=(e,t,n)=>window.cordova&&window.cordova.InAppBrowser?window.cordova.InAppBrowser.open(e,t,n):window.open(e,t,n),t=e=>e&&e.cordovaOptions?Object.keys(e.cordovaOptions).reduce((t,n)=>(t[n]=e.cordovaOptions[n],t),{}):{},n=e=>Object.keys(e).reduce((t,n)=>(t.push(n+`=`+e[n]),t),[]).join(`,`),r=e=>{let r=t(e);return r.location=`no`,e&&e.prompt===`none`&&(r.hidden=`yes`),n(r)},i=()=>this.redirectUri||`http://localhost`;return{login:async t=>{let n=r(t),a=await this.createLoginUrl(t),o=e(a,`_blank`,n),s=!1,c=!1;function l(){c=!0,o.close()}return await new Promise((e,t)=>{o.addEventListener(`loadstart`,async n=>{if(n.url.indexOf(i())===0){let r=this.#x(n.url);s=!0,l();try{await this.#w(r),e()}catch(e){t(e)}}}),o.addEventListener(`loaderror`,async n=>{if(!s){if(n.url.indexOf(i())===0){let r=this.#x(n.url);s=!0,l();try{await this.#w(r),e()}catch(e){t(e)}}else t(Error(`Unable to process login.`)),l()}}),o.addEventListener(`exit`,function(e){c||t(Error(`User closed the login window.`))})})},logout:async t=>{let n=this.createLogoutUrl(t),r=e(n,`_blank`,`location=no,hidden=yes,clearcache=yes`),a=!1;r.addEventListener(`loadstart`,e=>{e.url.indexOf(i())===0&&r.close()}),r.addEventListener(`loaderror`,e=>{e.url.indexOf(i())===0||(a=!0),r.close()}),await new Promise((e,t)=>{r.addEventListener(`exit`,()=>{a?t(Error(`User closed the login window.`)):(this.clearToken(),e())})})},register:async t=>{let n=await this.createRegisterUrl(),a=r(t),o=e(n,`_blank`,a);await new Promise((e,t)=>{o.addEventListener(`loadstart`,async n=>{if(n.url.indexOf(i())===0){o.close();let r=this.#x(n.url);try{await this.#w(r),e()}catch(e){t(e)}}})})},accountManagement:async()=>{let t=this.createAccountUrl();if(t!==void 0){let n=e(t,`_blank`,`location=no`);n.addEventListener(`loadstart`,function(e){e.url.indexOf(i())===0&&n.close()})}else throw Error(`Not supported by the OIDC server`)},redirectUri:()=>i()}}#d(){return{login:async e=>{let t=await this.createLoginUrl(e);await new Promise((e,n)=>{universalLinks.subscribe(`keycloak`,async t=>{universalLinks.unsubscribe(`keycloak`),window.cordova.plugins.browsertab.close();let r=this.#x(t.url);try{await this.#w(r),e()}catch(e){n(e)}}),window.cordova.plugins.browsertab.openUrl(t)})},logout:async e=>{let t=this.createLogoutUrl(e);await new Promise(e=>{universalLinks.subscribe(`keycloak`,()=>{universalLinks.unsubscribe(`keycloak`),window.cordova.plugins.browsertab.close(),this.clearToken(),e()}),window.cordova.plugins.browsertab.openUrl(t)})},register:async e=>{let t=await this.createRegisterUrl(e);await new Promise((e,n)=>{universalLinks.subscribe(`keycloak`,async t=>{universalLinks.unsubscribe(`keycloak`),window.cordova.plugins.browsertab.close();let r=this.#x(t.url);try{await this.#w(r),e()}catch(e){n(e)}}),window.cordova.plugins.browsertab.openUrl(t)})},accountManagement:async()=>{let e=this.createAccountUrl();if(e!==void 0)window.cordova.plugins.browsertab.openUrl(e);else throw Error(`Not supported by the OIDC server`)},redirectUri:e=>e&&e.redirectUri?e.redirectUri:this.redirectUri?this.redirectUri:`http://localhost`}}async#f(){if(typeof this.#s==`string`){let e=await x(this.#s);this.authServerUrl=e[`auth-server-url`],this.realm=e.realm,this.clientId=e.resource,this.#p()}else this.clientId=this.#s.clientId,`oidcProvider`in this.#s?await this.#m(this.#s.oidcProvider):(this.authServerUrl=this.#s.url,this.realm=this.#s.realm,this.#p())}#p(){this.endpoints={authorize:()=>this.#D()+`/protocol/openid-connect/auth`,token:()=>this.#D()+`/protocol/openid-connect/token`,logout:()=>this.#D()+`/protocol/openid-connect/logout`,checkSessionIframe:()=>this.#D()+`/protocol/openid-connect/login-status-iframe.html`,thirdPartyCookiesIframe:()=>this.#D()+`/protocol/openid-connect/3p-cookies/step1.html`,register:()=>this.#D()+`/protocol/openid-connect/registrations`,userinfo:()=>this.#D()+`/protocol/openid-connect/userinfo`}}async#m(e){if(typeof e==`string`){let t=await ee(`${D(e)}/.well-known/openid-configuration`);this.#h(t)}else this.#h(e)}#h(e){this.endpoints={authorize(){return e.authorization_endpoint},token(){return e.token_endpoint},logout(){if(!e.end_session_endpoint)throw Error(`Not supported by the OIDC server`);return e.end_session_endpoint},checkSessionIframe(){if(!e.check_session_iframe)throw Error(`Not supported by the OIDC server`);return e.check_session_iframe},register(){throw Error(`Redirection to "Register user" page not supported in standard OIDC mode`)},userinfo(){if(!e.userinfo_endpoint)throw Error(`Not supported by the OIDC server`);return e.userinfo_endpoint}}}async#g(){if(!this.#o.enable&&!this.silentCheckSsoRedirectUri||typeof this.endpoints.thirdPartyCookiesIframe!=`function`)return;let e=document.createElement(`iframe`);return e.setAttribute(`src`,this.endpoints.thirdPartyCookiesIframe()),e.setAttribute(`s
4andbox`,`allow-storage-access-by-user-activation allow-scripts allow-same-origin`),e.setAttribute(`title`,`keycloak-3p-check-iframe`),e.style.display=`none`,document.body.appendChild(e),await u(new Promise(t=>{let n=r=>{e.contentWindow===r.source&&(r.data===`supported`||r.data===`unsupported`)&&(r.data===`unsupported`&&(this.#a(`[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means: 5 6 - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication). 7 - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab). 8 9For more information see: https://www.keycloak.org/securing-apps/javascript-adapter#_modern_browsers`),this.#o.enable=!1,this.silentCheckSsoFallback&&(this.silentCheckSsoRedirectUri=void 0)),document.body.removeChild(e),window.removeEventListener(`message`,n),t())};window.addEventListener(`message`,n,!1)}),this.messageReceiveTimeout,`Timeout when waiting for 3rd party check iframe message.`)}async#_(e){let t=this.#x(window.location.href);if(t?.newUrl&&window.history.replaceState(window.history.state,``,t.newUrl),t&&t.valid){await this.#v(),await this.#w(t);return}let n=async t=>{let n={};t||(n.prompt=`none`),e.locale&&(n.locale=e.locale),await this.login(n)},r=async()=>{switch(e.onLoad){case`check-sso`:this.#o.enable?(await this.#v(),await this.#y()||(this.silentCheckSsoRedirectUri?await this.#b():await n(!1))):this.silentCheckSsoRedirectUri?await this.#b():await n(!1);break;case`login-required`:await n(!0);break;default:throw Error(`Invalid value for onLoad`)}};if(e.token&&e.refreshToken){if(this.#E(e.token,e.refreshToken,e.idToken),this.#o.enable)await this.#v(),await this.#y()&&(this.onAuthSuccess?.(),this.#T());else try{await this.updateToken(-1),this.onAuthSuccess?.()}catch(t){if(this.onAuthError?.(),e.onLoad)await r();else throw t}}else e.onLoad&&await r()}async#v(){if(!this.#o.enable||this.#o.iframe)return;let e=document.createElement(`iframe`);this.#o.iframe=e,e.setAttribute(`src`,this.endpoints.checkSessionIframe()),e.setAttribute(`sandbox`,`allow-storage-access-by-user-activation allow-scripts allow-same-origin`),e.setAttribute(`title`,`keycloak-session-iframe`),e.style.display=`none`,document.body.appendChild(e),window.addEventListener(`message`,e=>{if(e.origin!==this.#o.iframeOrigin||this.#o.iframe?.contentWindow!==e.source||e.data!==`unchanged`&&e.data!==`changed`&&e.data!==`error`)return;e.data!==`unchanged`&&this.clearToken();let t=this.#o.callbackList;this.#o.callbackList=[];for(let n of t.reverse())e.data===`error`?n(Error(`Error while checking login iframe`)):n(null,e.data===`unchanged`)},!1),await new Promise(t=>{e.addEventListener(`load`,()=>{let e=this.endpoints.authorize();e.startsWith(`/`)?this.#o.iframeOrigin=globalThis.location.origin:this.#o.iframeOrigin=new URL(e).origin,t()})})}async#y(){if(!this.#o.iframe||!this.#o.iframeOrigin)return;let e=`${this.clientId} ${this.sessionId?this.sessionId:``}`,t=this.#o.iframeOrigin;return await new Promise((n,r)=>{this.#o.callbackList.push((e,t)=>e?r(e):n(t)),this.#o.callbackList.length===1&&this.#o.iframe?.contentWindow?.postMessage(e,t)})}async#b(){let e=document.createElement(`iframe`),t=await this.createLoginUrl({prompt:`none`,redirectUri:this.silentCheckSsoRedirectUri});return e.setAttribute(`src`,t),e.setAttribute(`sandbox`,`allow-storage-access-by-user-activation allow-scripts allow-same-origin`),e.setAttribute(`title`,`keycloak-silent-check-sso`),e.style.display=`none`,document.body.appendChild(e),await new Promise((t,n)=>{let r=async i=>{if(i.origin!==window.location.origin||e.contentWindow!==i.source)return;let a=this.#x(i.data);try{await this.#w(a),t()}catch(e){n(e)}document.body.removeChild(e),window.removeEventListener(`message`,r)};window.addEventListener(`message`,r)})}#x(e){let t=this.#S(e);if(!t)return;let n=this.#r.get(t.state);return n&&(t.valid=!0,t.redirectUri=n.redirectUri,t.storedNonce=n.nonce,t.prompt=n.prompt,t.pkceCodeVerifier=n.pkceCodeVerifier,t.loginOptions=n.loginOptions),t}#S(e){let t=[];switch(this.flow){case`standard`:t=[`code`,`state`,`session_state`,`kc_action_status`,`kc_action`,`iss`];break;case`implicit`:t=[`access_token`,`token_type`,`id_token`,`state`,`session_state`,`expires_in`,`kc_action_status`,`kc_action`,`iss`];break;case`hybrid`:t=[`access_token`,`token_type`,`id_token`,`code`,`state`,`session_state`,`expires_in`,`kc_action_status`,`kc_action`,`iss`]}t.push(`error`),t.push(`error_description`),t.push(`error_uri`);let n=new URL(e),r=``,i;if(this.responseMode===`query`&&n.searchParams.size>0?(i=this.#C(n.search,t),n.search=i.paramsString,r=n.toString()):this.responseMode===`fragment`&&n.hash.length>0&&(i=this.#C(n.hash.substring(1),t),n.hash=i.paramsString,r=n.toString()),i?.oauthParams){if(this.flow===`standard`||this.flow===`hybrid`){if((i.oauthParams.code||i.oauthParams.error)&&i.oauthParams.state)return i.oauthParams.newUrl=r,i.oauthParams}else if(this.flow===`implicit`&&(i.oauthParams.access_token||i.oauthParams.error)&&i.oauthParams.state)return i.oauthParams.newUrl=r,i.oauthParams}}#C(e,t){let n=e.split(`&`),r={},i=``;for(let e of n.reverse()){let n=new URLSearchParams(e).entries().next().value;if(!n){i=`&`+i;continue}let[a,o]=n;t.includes(a)&&!(a in r)?r[a]=o:i=i.length===0?e:e+`&`+i}return{paramsString:i,oauthParams:r}}
9async#w(e){let{code:t,error:n,prompt:r}=e,i=new Date().getTime(),a=(t,n,r)=>{if(i=(i+new Date().getTime())/2,this.#E(t,n,r,i),this.#n&&this.idTokenParsed&&this.idTokenParsed.nonce!==e.storedNonce)throw this.#i(`[KEYCLOAK] Invalid nonce, clearing token`),this.clearToken(),Error(`Invalid nonce.`)};if(e.kc_action_status&&this.onActionUpdate&&this.onActionUpdate(e.kc_action_status,e.kc_action),n){if(r!==`none`){if(e.error_description&&e.error_description===`authentication_expired`)await this.login(e.loginOptions);else{let t={error:n,error_description:e.error_description};throw this.onAuthError?.(t),t}}return}if(this.flow!==`standard`&&(e.access_token||e.id_token)&&(a(e.access_token,void 0,e.id_token),this.onAuthSuccess?.()),this.flow!==`implicit`&&t)try{let n=await S(this.endpoints.token(),t,this.clientId,e.redirectUri,e.pkceCodeVerifier);a(n.access_token,n.refresh_token,n.id_token),this.flow===`standard`&&this.onAuthSuccess?.(),this.#T()}catch(e){throw this.onAuthError?.(),e}}async#T(){this.#o.enable&&this.token&&(await ne(this.#o.interval*1e3),await this.#y()&&await this.#T())}login=e=>this.#t.login(e);createLoginUrl=async e=>{let t=i(),n=i(),r=this.#t.redirectUri(e),c={state:t,nonce:n,redirectUri:r,loginOptions:e};e?.prompt&&(c.prompt=e.prompt);let l=e?.action===`register`?this.endpoints.register():this.endpoints.authorize(),u=e?.scope||this.scope,d=u?u.split(` `):[];d.includes(`openid`)||d.unshift(`openid`),u=d.join(` `);let f=new URLSearchParams([[`client_id`,this.clientId],[`redirect_uri`,r],[`state`,t],[`response_mode`,this.responseMode],[`response_type`,this.responseType],[`scope`,u]]);if(this.#n&&f.append(`nonce`,n),e?.prompt&&f.append(`prompt`,e.prompt),typeof e?.maxAge==`number`&&f.append(`max_age`,e.maxAge.toString()),e?.loginHint&&f.append(`login_hint`,e.loginHint),e?.idpHint&&f.append(`kc_idp_hint`,e.idpHint),e?.action&&e.action!==`register`&&f.append(`kc_action`,e.action),e?.locale&&f.append(`ui_locales`,e.locale),e?.acr&&f.append(`claims`,a(e.acr)),e?.acrValues&&f.append(`acr_values`,e.acrValues),this.pkceMethod)try{let e=o(96),t=await s(this.pkceMethod,e);c.pkceCodeVerifier=e,f.append(`code_challenge`,t),f.append(`code_challenge_method`,this.pkceMethod)}catch(e){throw Error(`Failed to generate PKCE challenge.`,{cause:e})}return this.#r.add(c),`${l}?${f.toString()}`};logout=e=>this.#t.logout(e);createLogoutUrl=e=>{let t=e?.logoutMethod??this.logoutMethod,n=this.endpoints.logout();if(t===`POST`)return n;let r=new URLSearchParams([[`client_id`,this.clientId],[`post_logout_redirect_uri`,this.#t.redirectUri(e)]]);return this.idToken&&r.append(`id_token_hint`,this.idToken),`${n}?${r.toString()}`};register=e=>this.#t.register(e);createRegisterUrl=e=>this.createLoginUrl({...e,action:`register`});createAccountUrl=e=>{let t=this.#D();if(!t)throw Error(`Unable to create account URL, make sure the adapter is not configured using a generic OIDC provider.`);return`${t}/account?${new URLSearchParams([[`referrer`,this.clientId],[`referrer_uri`,this.#t.redirectUri(e)]]).toString()}`};accountManagement=()=>this.#t.accountManagement();hasRealmRole=e=>{let t=this.realmAccess;return!!t&&t.roles.indexOf(e)>=0};hasResourceRole=(e,t)=>{if(!this.resourceAccess)return!1;let n=this.resourceAccess[t||this.clientId];return!!n&&n.roles.indexOf(e)>=0};loadUserProfile=async()=>{let e=this.#D();if(!e)throw Error(`Unable to load user profile, make sure the adapter is not configured using a generic OIDC provider.`);let t=await w(`${e}/account`,{headers:[E(this.token)]});return this.profile=t};loadUserInfo=async()=>{let e=await w(this.endpoints.userinfo(),{headers:[E(this.token)]});return this.userInfo=e};isTokenExpired=e=>{if(!this.tokenParsed||!this.refreshToken&&this.flow!==`implicit`)throw Error(`Not authenticated`);if(this.timeSkew==null)return this.#i(`[KEYCLOAK] Unable to determine if token is expired as timeskew is not set`),!0;if(typeof this.tokenParsed.exp!=`number`)return!1;let t=this.tokenParsed.exp-Math.ceil(new Date().getTime()/1e3)+this.timeSkew;if(e){if(isNaN(e))throw Error(`Invalid minValidity`);t-=e}return t<0};updateToken=async e=>{if(!this.refreshToken)throw Error(`Unable to update token, no refresh token available.`);e||=5,this.#o.enable&&await this.#y();let t=!1;if(e===-1?(t=!0,this.#i(`[KEYCLOAK] Refreshing token: forced refresh`)):(!this.tokenParsed||this.isTokenExpired(e))&&(t=!0,this.#i(`[KEYCLOAK] Refreshing token: token expired`)),!t)return!1;let{promise:n,resolve:r,reject:i}=Promise.withResolvers();if(this.#e.push({resolve:r,reject:i}),this.#e.length===1){let e=this.endpoints.token(),t=new Date().getTime();try{let n=await C(e,this.refreshToken,this.clientId);this.#i(`[KEYCLOAK] Token refreshed`),t=(t+new Date().getTime())/2,this.#
9E(n.access_token,n.refresh_token,n.id_token,t),this.onAuthRefreshSuccess?.();for(let e=this.#e.pop();e!=null;e=this.#e.pop())e.resolve(!0)}catch(e){this.#a(`[KEYCLOAK] Failed to refresh token`),e instanceof te&&e.response.status===400&&this.clearToken(),this.onAuthRefreshError?.();for(let t=this.#e.pop();t!=null;t=this.#e.pop())t.reject(e)}}return await n};clearToken=()=>{this.token&&(this.#E(),this.onAuthLogout?.(),this.loginRequired&&this.login())};#E(e,t,n,r){if(this.tokenTimeoutHandle&&=(clearTimeout(this.tokenTimeoutHandle),void 0),t?(this.refreshToken=t,this.refreshTokenParsed=_(t)):(delete this.refreshToken,delete this.refreshTokenParsed),n?(this.idToken=n,this.idTokenParsed=_(n)):(delete this.idToken,delete this.idTokenParsed),e){if(this.token=e,this.tokenParsed=_(e),this.sessionId=this.tokenParsed.sid,this.authenticated=!0,this.subject=this.tokenParsed.sub,this.realmAccess=this.tokenParsed.realm_access,this.resourceAccess=this.tokenParsed.resource_access,r&&(this.timeSkew=Math.floor(r/1e3)-this.tokenParsed.iat),this.timeSkew!==null&&(this.#i(`[KEYCLOAK] Estimated time difference between browser and server is `+this.timeSkew+` seconds`),this.onTokenExpired)){let e=(this.tokenParsed.exp-new Date().getTime()/1e3+this.timeSkew)*1e3;this.#i(`[KEYCLOAK] Token expires in `+Math.round(e/1e3)+` s`),e<=0?this.onTokenExpired():this.tokenTimeoutHandle=window.setTimeout(this.onTokenExpired,e)}}else delete this.token,delete this.tokenParsed,delete this.subject,delete this.realmAccess,delete this.resourceAccess,this.authenticated=!1}#D(){if(this.authServerUrl!==void 0)return`${D(this.authServerUrl)}/realms/${encodeURIComponent(this.realm)}`}#O(e){return t=>{this.enableLogging&&e.call(console,t)}}};function i(){if(typeof crypto>`u`||crypto.randomUUID===void 0)throw Error(`Web Crypto API is not available.`);return crypto.randomUUID()}function a(e){return JSON.stringify({id_token:{acr:e}})}function o(e){return c(e,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`)}async function s(e,t){if(e!==`S256`)throw TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${e}'.`);return h(new Uint8Array(await g(t))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function c(e,t){let n=l(e),r=Array(e);for(let i=0;i<e;i++)r[i]=t.charCodeAt(n[i]%t.length);return String.fromCharCode.apply(null,r)}function l(e){if(typeof crypto>`u`||crypto.getRandomValues===void 0)throw Error(`Web Crypto API is not available.`);return crypto.getRandomValues(new Uint8Array(e))}function u(e,t,n){let r,i=new Promise(function(e,i){r=window.setTimeout(function(){i(Error(n||`Promise is not settled within timeout of `+t+`ms`))},t)});return Promise.race([e,i]).finally(function(){clearTimeout(r)})}function d(){try{return new p}catch{return new m}}var f=`kc-callback-`,p=class{constructor(){globalThis.localStorage.setItem(`kc-test`,`test`),globalThis.localStorage.removeItem(`kc-test`)}get(e){if(!e)return null;this.#e();let t=f+e,n=globalThis.localStorage.getItem(t);return n?(globalThis.localStorage.removeItem(t),JSON.parse(n)):null}add(e){this.#e();let t=f+e.state,n=JSON.stringify({...e,expires:Date.now()+36e5});try{globalThis.localStorage.setItem(t,n)}catch{this.#t(),globalThis.localStorage.setItem(t,n)}}#e(){let e=Date.now();for(let[t,n]of this.#n()){let r=this.#r(n);(r===null||r<e)&&globalThis.localStorage.removeItem(t)}}#t(){for(let[e]of this.#n())globalThis.localStorage.removeItem(e)}#n(){return Object.entries(globalThis.localStorage).filter(([e])=>e.startsWith(f))}#r(e){let t;try{t=JSON.parse(e)}catch{return null}return b(t)&&`expires`in t&&typeof t.expires==`number`?t.expires:null}},m=class{get(e){if(!e)return null;let t=this.#e(f+e);return this.#t(f+e,``,this.#n(-100)),t?JSON.parse(t):null}add(e){this.#t(f+e.state,JSON.stringify(e),this.#n(60))}#e(e){let t=e+`=`,n=document.cookie.split(`;`);for(let e=0;e<n.length;e++){let r=n[e];for(;r.charAt(0)===` `;)r=r.substring(1);if(r.indexOf(t)===0)return r.substring(t.length,r.length)}return``}#t(e,t,n){let r=e+`=`+t+`; expires=`+n.toUTCString()+`; `;document.cookie=r}#n(e){let t=new Date;return t.setTime(t.getTime()+e*60*1e3),t}};function h(e){let t=String.fromCodePoint(...e);return btoa(t)}async function g(e){let t=new TextEncoder().encode(e);if(typeof crypto>`u`||crypto.subtle===void 0)throw Error(`Web Crypto API is not available.`);return await crypto.subtle.digest(`SHA-256`,t)}function _(e){let[,t]=e.split(`.`);if(typeof t!=`string`)throw Error(`Unable to decode token, payload not found.`);let n;try{n=v(t)}catch(e){throw Error(`Unable to decode token, payload is not a valid Base64URL value.`,{cause:e})}try{return JSON.parse(n)}catch(e){throw Error(`Unable to decode token, payload is not a valid JSON value.`,{cause:e})}}function v(e){let t=e.replaceAll(`-`,`+`).replaceAll(`_`,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`Input is not of the correct length.`)}try{return y(t)}catch{return atob(t)}}function y(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function b(e){return typeof e==`object`&&!!e}async function x(e){return await w(e)}async function ee(e){return await w(e)}async function S(e,t,n,r,i){let a=new URLSearchParams([[`code`,t],[`grant_type`,`authorization_code`],[`client_id`,n],[`redirect_uri`,r]]);return i&&a.append(`code_verifier`,i),await w(e,{method:`POST`,credentials:`include`,body:a})}
9async function C(e,t,n){return await w(e,{method:`POST`,credentials:`include`,body:new URLSearchParams([[`grant_type`,`refresh_token`],[`refresh_token`,t],[`client_id`,n]])})}async function w(e,t={}){let r=new Headers(t.headers);return r.set(`Accept`,n),await(await T(e,{...t,headers:r})).json()}async function T(e,t){let n=await fetch(e,t);if(!n.ok)throw new te(`Server responded with an invalid status.`,{response:n});return n}function E(e){if(!e)throw Error(`Unable to build authorization header, token is not set, make sure the user is authenticated.`);return[`Authorization`,`bearer ${e}`]}function D(e){return e.endsWith(`/`)?e.slice(0,-1):e}var te=class extends Error{response;constructor(e,t){super(e,t),this.response=t.response}},ne=e=>new Promise(t=>setTimeout(t,e)),O=e=>typeof e==`string`,k=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},A=e=>e==null?``:String(e),re=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},ie=/###/g,ae=e=>e&&e.includes(`###`)?e.replace(ie,`.`):e,oe=e=>!e||O(e),j=(e,t,n)=>{let r=O(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(oe(e))return{};let t=ae(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return oe(e)?{}:{obj:e,k:ae(r[i])}},se=(e,t,n)=>{let{obj:r,k:i}=j(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=j(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=j(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},ce=(e,t,n,r)=>{let{obj:i,k:a}=j(e,t,Object);i[a]=i[a]||[],i[a].push(n)},M=(e,t)=>{let{obj:n,k:r}=j(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},le=(e,t,n)=>{let r=M(e,n);return r===void 0?M(t,n):r},N=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(Object.prototype.hasOwnProperty.call(e,r)?O(e[r])||e[r]instanceof String||O(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):N(e[r],t[r],n):e[r]=t[r]);return e},P=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),ue={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},de=e=>O(e)?e.replace(/[&<>"'\/]/g,e=>ue[e]):e,fe=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}
vendor: 16,227 bytes, line 9
9,pe=[` `,`,`,`?`,`!`,`;`],me=new fe(20),he=(e,t,n)=>{t||=``,n||=``;let r=pe.filter(e=>!t.includes(e)&&!n.includes(e));if(r.length===0)return!0;let i=me.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},F=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].includes(typeof t)&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},I=e=>e?.replace(/_/g,`-`),ge={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},L=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||ge,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(e=e.map(e=>O(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g,` `):e),O(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},R=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n(e,...t)})}},_e=class extends R{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.includes(`.`)?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):O(n)&&i?o.push(...n.split(i)):o.push(n)));let s=M(this.data,o);return!s&&!t&&!n&&e.includes(`.`)&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!O(n)?s:F(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.includes(`.`)&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),se(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(O(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.includes(`.`)&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=M(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?N(s,n,i):s={...s,...n},se(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},ve={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},ye=Symbol(`i18next/PATH_KEY`);function be(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===ye?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function z(e,t){let{[ye]:n}=e(be()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`,a=t?.enableSelector===`strict`;if(n.length>1&&i){let e=t?.ns,o=a?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(o&&(a?o:o.length>1?o.slice(1):[]).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var B=e=>!O(e)&&typeof e!=`boolean`&&typeof e!=`number`,V=class e extends R{constructor(e,t={}){super(),re([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=L.create(`translator`),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=B(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.includes(n),o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!he(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:O(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.includes(a[0]))&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:O(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=z(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?z(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,_=[`[object Number]`,`[object Function]`,`[object RegExp]`],v=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=i.count!==void 0&&!O(i.count),x=e.hasDefaultValue(i),ee=b?this.pluralResolver.getSuffix(d,i.count,i):``,S=i.ordinal&&b?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,C=b&&!i.ordinal&&i.count===0,w=C&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${ee}`]||i[`defaultValue${S}`]||i.defaultValue,T=m;y&&!m&&x&&(T=w);let E=B(T),D=Object.prototype.toString.apply(T);if(y&&T&&E&&!_.includes(D)&&!(O(v)&&Array.isArray(T))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,T,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(T),t=e?[]:{},n=e?g:h;for(let e in T)if(Object.prototype.hasOwnProperty.call(T,e)){let r=`${n}${o}${e}`;t[e]=x&&!m?this.translate(r,{...i,defaultValue:B(w)?w[e]:void 0,joinArrays:!1,ns:c}):this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=T[e])}m=t}}else if(y&&O(v)&&Array.isArray(m))m=m.join(v),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&x&&(e=!0,m=w),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=x&&w!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,b&&!c?`${s}${this.pluralResolver.getSuffix(d,i.count,i)}`:s,c?w:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=x&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);C&&i[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||w)})}):n(e,s,w))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=O(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!O(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=O(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=ve.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return O(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?z(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!O(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(O(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!this.checkedLoadedFor[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(this.checkedLoadedFor[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.startsWith(i)&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.startsWith(i)&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!O(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r={...r,count:e.count}),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith(`defaultValue`)&&e[t]!==void 0)return!0;return!1}},H=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=L.create(`languageUtils`),this.resolveHierarchyCache={}}clearCache(){this.resolveHierarchyCache={}}getScriptPartFromCode(e){if(e=I(e),!e||!e.includes(`-`))return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=I(e),!e||!e.includes(`-`))return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(O(e)&&e.includes(`-`)){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?!0:!e.includes(`-`)&&!r.includes(`-`)?!1:!!(e.includes(`-`)&&!r.includes(`-`)&&e.slice(0,e.indexOf(`-`))===r||e.startsWith(r)&&r.length>1))}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),O(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];
9return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.options.fallbackLng,r=Array.isArray(n)?n.join(`|`):n;r!==this._cachedFallbackLng&&(this.resolveHierarchyCache={},this._cachedFallbackLng=r);let i=t===void 0||t===!1||O(t),a=t===void 0&&typeof this.options.fallbackLng==`function`,o=O(e)&&i&&!a,s=null;if(o){let n;n=t===void 0?`undefined`:t===!1?`boolean:false`:`string:${t}`,s=`${e.length}:${e}|${n}`}if(s!==null){let e=this.resolveHierarchyCache[s];if(e!==void 0)return e.slice()}let c=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),l=[],u=e=>{e&&(this.isSupportedCode(e)?l.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return O(e)&&(e.includes(`-`)||e.includes(`_`))?(this.options.load!==`languageOnly`&&u(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&u(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&u(this.getLanguagePartFromCode(e))):O(e)&&u(this.formatLanguageCode(e)),c.forEach(e=>{l.includes(e)||u(this.formatLanguageCode(e))}),s===null?l:(this.resolveHierarchyCache[s]=l,l.slice())}},U={zero:0,one:1,two:2,few:3,many:4,other:5},W={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},xe=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=L.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=I(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),W;if(!e.match(/-|_/))return W;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>U[e]-U[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},G=(e,t,n,r=`.`,i=!0)=>{let a=le(e,t,n);return!a&&i&&O(n)&&(a=F(e,n,r),a===void 0&&(a=F(t,n,r))),a},Se=e=>e.replace(/\$/g,`$$$$`),Ce=class{constructor(e={}){this.logger=L.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?de:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?P(i):a||`{{`,this.suffix=o?P(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u?P(u):`-`,this.unescapeSuffix=this.unescapePrefix?``:l?P(l):``,this.nestingPrefix=d?P(d):f||P(`$t(`),this.nestingSuffix=p?P(p):m||P(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_!==void 0&&_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(!e.includes(this.formatSeparator)){let i=G(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(G(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp(),!this.escapeValue&&typeof e==`string`&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn(`nesting options string contains interpolated variables with escapeValue: false â if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.`);let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.ski
vendor: 22,337 bytes, line 9
9pOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>e},{regex:this.regexp,safeValue:e=>this.escapeValue?this.escape(e):e}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0){if(typeof l==`function`){let t=l(e,i,r);a=O(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``}else!O(a)&&!this.useRawValueToEscape&&(a=A(a));let s=t.safeValue(a);if(e=e.replace(i[0],Se(s)),u?(t.regex.lastIndex+=s.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(!e.includes(n))return e;let r=e.split(RegExp(`${P(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.includes(this.prefix)&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!O(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/s.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!O(i))return i;O(i)||(i=A(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],Se(A(i))),this.regexp.lastIndex=0}return e}},we=e=>{let t=e.toLowerCase().trim(),n={};if(e.includes(`(`)){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].slice(0,-1);t===`currency`&&!i.includes(`:`)?n.currency||=i.trim():t===`relativetime`&&!i.includes(`:`)?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},Te=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(I(r),i),t[o]=s),s(n)}},Ee=e=>(t,n,r)=>e(I(n),r)(t),De=class{constructor(e={}){this.logger=L.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?Te:Ee;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Te(t)}format(e,t,n,r={}){if(!t||e==null)return e;let i=t.split(this.formatSeparator),a=[];for(let e=0;e<i.length;e++){let t=i[e];for(;t.indexOf(`(`)>-1&&!t.includes(`)`)&&e+1<i.length;)t=`${t}${this.formatSeparator}${i[++e]}`;a.push(t)}return a.reduce((e,t)=>{let{formatName:i,formatOptions:a}=we(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${i}`),e},e)}},Oe=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},ke=class extends R{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=L.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{ce(n.loaded,[i],a),Oe(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read(e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();O(e)&&(e=this.languageUtils.toResolveHierarchy(e)),O(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(n!=null&&n!==``){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}},K=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),O(e[1])&&(t.defaultValue=e[1]),O(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),q=e=>(O(e.ns)&&(e.ns=[e.ns]),O(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),O(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes(`cimode`)&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),e),J=()=>{},Ae=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},Y=class e extends R{constructor(e={},t){if(super(),this.options=q(e),this.services={},this.logger=L,this.modules={external:[]},Ae(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(O(e.ns)?e.defaultNS=e.ns:e.ns.includes(`translation`)||(e.defaultNS=e.ns[0]));let n=K();this.options={...n,...this.options,...q(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?L.init(r(this.modules.logger),this.options):L.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:De;let t=new H(this.options);this.store=new _e(this.options.resources,this.options);let n=this.services;n.logger=L,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new xe(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=r(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new Ce(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new ke(r(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=r(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=r(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new V(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=J,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=k(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=J){let n=t,r=O(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&(e.includes(t)||e.push(t))})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=k();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=J,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&ve.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&![`cimode`,`dev`].includes(e)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(![`cimode`,`dev`].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&!this.languages.includes(e)&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=k();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=O(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(O(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n,r){let i=r?.scopeNs,a=(e,t,...r)=>{let o;o=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(r)),o.lng=o.lng||a.lng,o.lngs=o.lngs||a.lngs;let s=o.ns!==void 0&&o.ns!==null;o.ns=o.ns||a.ns,o.keyPrefix!==``&&(o.keyPrefix=o.keyPrefix||n||a.keyPrefix);let c={...this.options,...o};Array.isArray(i)&&!s&&(c.ns=i),typeof o.keyPrefix==`function`&&(o.keyPrefix=z(o.keyPrefix,c));let l=this.options.keySeparator||`.`,u;return o.keyPrefix&&Array.isArray(e)?u=e.map(e=>(typeof e==`function`&&(e=z(e,c)),`${o.keyPrefix}${l}${e}`)):(typeof e==`function`&&(e=z(e,c)),u=o.keyPrefix?`${o.keyPrefix}${l}${e}`:e),this.t(u,o)};return O(e)?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=k();return this.options.ns?(O(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=k();O(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>!r.includes(e)&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new H(K());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.includes(n.getLanguagePartFromCode(e))||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=J){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new _e(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...K().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new Ce(n)}return a.translator=new V(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();Y.createInstance,Y.dir,Y.init,Y.loadResources,Y.reloadResources,Y.use,Y.changeLanguage,Y.getFixedT;var je=Y.t;Y.exists,Y.setDefaultNamespace,Y.hasLoadedNamespace,Y.loadNamespaces,Y.loadLanguages,localStorage.getItem(`lang`)===null&&localStorage.setItem(`lang`,`nl`),Y.use({type:`3rdParty`,init(n){e(n.options.react),t(n)}}).init({debug:!1,lng:localStorage.getItem(`lang`)||`nl`,fallbackLng:`en`,resources:{en:{translations:{home:`Home`,welcome:`Welcome to The Talentpool Community`,maintenance_title:`Website Under Maintenance`,maintenance_body:`We're currently performing maintenance. Please come back later.`,maintenance_try_again:`Try again`,email:`Email`,password:`Password`,f_password:`Forgot your password?`,organizations:`Organizations`,professions:`Professions`,prof_subtitle:`The number of vacancies is shown for each profession and compared to the number of students graduating.`,find_prof:`Find a profession`,my_groups:`My groups`,search_profession:`Search profession`,similar_profession:`Matching professions`,top_ten_text:`top 10 professions`,vacancies:`Vacancies`,role:`Role`,staff:`Users`,student_group:`Students group`,overview_of_staff:`Overview of the Staff Members`,add_staff:`Add Staff Members`,overview_of_org:`Overview of the Organizations`,search:`Search`,new_org:`New Organization`,add_org:`Add Organization`,create_new_org:`Create new Organization`,overview_group_text:`Overview of the all the groups.`,add_new_group:`Add new group`,new_staff:`New staff`,add_new_staff:`Add new staff`,select_group:`Select group`,search_group:`Search group`,forgot_password:`Forgot password`,enter_email_proceed:`Enter your email address and we'll send you a confirmation code to reset a new password.`,return_login:`Return to login`,check_your_email:`Check your email`,sent_confirmation_on:`We have sent you an confirmation code on`,reset_password:`Reset Password`,top_10:`Top 10 skills`,no_times_in_group:`number of times in the group`,top_10_skills_profession:`and top 10 skills and profession`,studenten:`students`,change_password:`Change password`,old_password:`Old Password`,new_password:`New Password`,profile:`Profile`,update_profile:`Update Profile`,first_name:`First Name`,last_name:`Last Name`,privacy_statement:`Privacy statement`,Cookiebeleid:`Cookie Policy`,previous:`Previous`,next:`Next`,showing_page:`Showing page`,delete:`Delete`,close:`Close`,submit:`Submit`,most_added:`most added`,invite_members:`Invite Members`,view_profile:`View profile`,add_user:`Add user`,organization_name:`Organization Name`,link_created:`Link Created`,number_of_clicks:`Number of Clicks`,link_type:`Link Type`,link_expires:`Link
9Expires`,first_signup:`First Signup`,last_signup:`Last Signup`,no_of_signups:`Number of Signups`,invite_organization_admin:`Invite Organization Admin`,update_organization:`Update Organization`,delete_organization:`Delete Organization`,group_name:`Group Name`,add_members:`Add members`,create_group:`Create group`,didnt_receive_email:`Didn't receive the email ?`,resend_verification:`Resend Verification`,no_of_groups:`No of groups`,label:`Label filter`,actions:`Actions`,delete_user:`Delete User`,would_delete:`Would you like to delete`,del_org:`Would you like to delete the organization? Deleteing will result in loss of all data.`,group:`Group`,students_count:`Group Members`,managed_by:`Managed by`,delete_group:`Delete group`,delete_member:`Delete Member`,candidate_list:`Candidate List`,compare_professions:`Compare professions`,see_shared:`See shared skills per profession`,work_experience:`Work experience`,work_preference:`Work preference`,education:`Education`,hobby:`Hobby`,language:`Language`,certificate:`Certificate`,complete:`Complete`,group_statistics:`Group statistics`,matched_skills:`matched skills`,welcome_text:`Welcome back!`,your_email:`Your Email Address`,your_password:`Your Password`,password_reset:`Password reset`,reset_text:`Your password has been successfully reset.`,setup_account:`Setup your Account`,for_first:`For first time login setup your password to begin.`,login:`Login`,overview_group:`Overview of all the groups`,overview_profession:`Compare professions on matching skills`,about_me:`About me`,personal_details:`Personal Details`,dob:`Date of birth`,telephone:`Phone Number`,adres:`Address`,not_yet_filled:`Not yet filled`,name:`Name`,view_job_market:`View job market`,invite:`Invite`,remove_staff_member:`Remove staff member`,remove_member:`Remove member`,update_group:`Update group name`,update:`Update`,select_excel:`Select an Excel file from your computer or OneDrive.`,remove:`Remove`,request_new_password:`Request new password`,confirmation_code_sent:`Confirmation code has been sent`,we_have_sent_confirmation:`We have sent a confirmation code by email. You need this to request a new password.`,continue:`Continue`,reset_pass:`Reset Password`,enter_new_password:`Enter a new password to log in again`,confirmation_code:`Confirmation code`,view_group:`View group`,view_organization:`View organization`,edit_organization:`Edit organization`,no_groups_found:`No groups found`,import_csv:`OR Import user using CSV`,select_from_computer:`Select a CSV file from your computer`,add:`Add`,no_user_found:`No user found`,welcome_h1:`Welcome`,select_group_member:`Select group member`,overview_group_member:`Overview of Individual group member`,view_member_statistics:`View member statistics`,my_group_members:`My group members`,view_group_statistics:`View Group Statistics`,groups:`Groups`,talentpool:`Talentpool`,talentpools:`Talentpools`,list_user_talent:`List of users in talentpool`,view_links:`View Links`,create_links:`Create Link`,select_validity_days:`Select validaty in days`,generate:`Generate`,note:`Note`,note_text:`In generated link replace {email} with the email of the person to be invited.`,list_of_links:`List of links in groups`,links:`Links`,reset:`Reset`,created_date_time:`Created Date and time`,expiration_date_time:`Expiration Date and time`,validity_days:`Validity(days)`,clicked_impressions:`Clicked Impressions`,copy_link:`Copy Link`,disable_link:`Disable Link`,disable_confirmation_text:`Are you sure you want to disable the link from `,disable:`Disable`,generating:`Generating...`,job_seeker_insights:`Job Seeker Insights`,overview_job_seeker:`Overview of job seeker insights`,job_application_insights:`Job Application Insights`,get_job_application_over:`Get job application insights for The Talentpool Community users`,referral_insights:`Referral Insights`,overview_referral_analytics:`Overview of referral analytics`,error_failed_to_load_referral_data:`Failed to load referral analytics data`,error_invalid_data_format:`Server returned invalid data format`,error_network_connection:`Network connection error. Please check your internet connection.`,error_unauthorized:`You are not authorized to view this data`,error_forbidden:`Access to this data is forbidden`,error_referral_data_not_found:`Referral analytics data not found`,error_server_error:`Server error. Please try again later.`,error_unexpected_error:`An unexpected error occurred while loading data`,organization:`Organization`,link_details:`Link Details`,signup_details:`Signup Details`,profile_completeness_ranges:`Profile Completeness Ranges`,completeness_less_than_10:`< 10%`,completeness_10_to_19:`10-19%`,completeness_20_to_29:`20-29%`,completeness_30_to_39:`30-39%`,completeness_40_to_49:`40-49%`,completeness_50_to_59:`50-59%`,completeness_60_to_69:`60-69%`,completeness_70_to_79:`70-79%`,completeness_80_to_89:`80-89%`,completeness_90_to_100:`90-100%`,link_type_default:`Default`,search_organization:`Search organization...`,filter_by_link_type:`Filter by link type`,filter_by:`Filter by`,year:`Year`,month:`Month`,day:`Day`,week:`Week`,search_candidates:`Search candidate`,candidates:`Candidates`,select_candidate:`Select candidate`,show_vacancies:`Show vacancies`,no_vacancies:`No vacancies`,all_vacancies:`All vacancies`,my_candidates:`My candidates`,search_vacancies:`Search vacancies`,search_and_match:`Search and Match`,accompaniment:`Accompaniment`,send_vacancy:`Send vacancy`,all_vacancy_search_text:`Search by function, description, skill`,search_by_candidate_email:`Search by candidate email address`,search_job_application:`Search job applications`,total_no_of_users:`Total no. Users`,total_no_of_active_users:`Total no. Active Users`,total_no_of_applications:`Total no. Applications`,no_of_users:`No. of Users`,n
9o_of_applications:`No of. Applications`,cv_comp:`CV Completeness by %`,job_app_state_insight:`Job Application state insight`,continue_to_apply:`Continue to apply`,awaiting_reply:`Awaiting Reply`,request_for_contact:`Request for contact`,awaiting_job_seeker_reply:`Awaiting Reply from jobseeker`,profile_has_been_shared:`Profile has been shared`,auto_share_full_cv:`Auto-shared full cv`,abort_job_seeker_removed_application:`Abort jobseeker removed application`,abort_job_seeker_ignores_anonymous_cv:`Abort job seeker ignores anonymous cv`,abort_job_seeker_ignores_full_cv:`Abort job seeker ignores fullcv`,abort_hiring_party_rejects_anonymous_cv:`Abort hiring party rejects anonymouscv`,abort_hiring_party_ignores_anonymous_cv:`Abort hiring party ignores anonymouscv`,abort_job_digger_closed_job:`Abort job digger closed job`,hiring_party_awaiting_reply:`Hiring party awaiting reply`,job_seeker_set_toggles_for_full_cv:`Job seeker set toggles for full cv`,job_seeker_set_toggles_for_anonymous_cv:`Job seeker set toggles for anonymous cv`,job_seeker_set_toggles_for_profile:`Job seeker sets toggles for profile`,profile_shared:`Profile shared`,profile_and_contacts_shared:`Profile and contacts shared`,job_seeker_reply_to_invite_hiring_manager:`Invited by hiring manager`,abort_job_seeker_reply_to_invite_hiring_manager:`abort job seekers ignores invite`,total:`Total Job Applications`,route_and_review:`Route and review`,job_seeker_shared_full_cv:`Job seeker shared full cv`,closed_shared_full_cv:`Closed shared full cv`,closed_profile_shared:`Closed shared profile`,abort_application_expired:`Application expired (closed)`,abort_cannot_c
9ontact_hiring_party:`Cannot contact hiring party (closed)`,abort_hiring_party_ignores_application:`Hiring party ignores application (closed)`,abort_hiring_party_rejects_application:`Hiring party rejects application (closed)`,wait_for_skillscv_admin:`Wait for The Talentpool Community admin`,wait_for_hiring_party:`Wait for hiring party`,wait_for_jobseeker:`Wait for jobseeker`,confirm_password:`Confirm password`,my_applications:`My applications`,applications:`Applications`,view_vacancy:`View vacancy`,invite_candidates:`Invite candidates`,invite_user:`Invite user`,invite_users_to:`Invite users to`,statistics_group:`Statistics Group`,statistics_member:`Statistics Member`,coaching:`Coaching`,create_invite_link:`Create invite link`,link_name:`Link name`,view_QR_code:`View QR Code`,create_an_account:`Create an account`,congratulations_text:`Congratulations! You have been successfully registered!`,all_applications:`All applications`,select_org:`Select Organization`,search_location:`Search Location`,has_active_profile:`Has active profiel`,no_active_profile:`No active proifle`,has_filled_in_profile:`Has filled in profile`,not_filled_in:`Not filled in `,remove_text_1:`Are you sure you want to remove`,remove_text_2:`from TalentPool?`,select_cv_filters:`Select CV filters`,call_member:`Call member`,mail_member:`Mail member`,member_was_contacted:`Member was contacted`,member_already_contacted:`Member already Contacted`,find_best_candidate:`Find the best candidates`,best_candidate_for_vac:`Best Matches`,member_since:`Member since`,last_online:`Last online`,bij:`at`,select_with_edu_level:`Candidate's educational level`,select_cand_around:`Select candidates around`,matching_skills_between:`and candidate`,share_vacancy:`Share vacancy`,search_location_vac:`Search by location of vacancy`,all_candidates:`All candidates`,events:`Events`,campaigns:`Campaigns`,event_list:`Event list`,search_events:`Search events`,add_event:`Add event`,event_name:`Event name`,event_description:`Event description`,start_date:`Start date`,end_date:`End date`,create_event:`Create event`,event_info:`Event info`,participating_organizations:`Participating organizations`,invite_links:`Invite links`,update_event:`Upd
9ate event`,organization_details:`Organization details`,email_senders_name:`Email senders name`,enter_subdomain:`Enter subdomain`,roles:`Roles`,vacancy_details:`Vacancy details`,vacancy_url:`Vacancy URL`,vacancy_contact_email:`Vacancy contact email`,vacancy_company_name:`Vacancy Company name`,update_link:`Update Link`,go_to_page:`Go to page`,copy_page_url:`Copy page url`,copy_tooltip_text:`Copy link for Email Automation Tool`,copy_link_text:`Link copied to clipboard. Note: Replace {email} with the email of the person to be invited`,shared_anonymous_profile:`The job seeker is interested in one of your vacancies. Request their contact information to proceed.`,requested_full_profile:`Awaiting the job seekers reply to obtain their contact information.`,shared_full_profile:`Kindly contact the job seeker to arrange an appointment.`,closed:`The application process is now closed.`,talentpool_name:`Talentpool name`,talentpool_description:`Talentpool description`,search_talentpools:`Search talentpools`,talentpool_info:`Talentpool Info`,upload_remove_logo:`Upload / Remove Logo`,upload_logo:`Upload Logo`,crop_image:`Crop Image`,remove_image:`Remove Image`,cropped_image_preview:`Cropped Image preview`,add_organizations:`Add Organizations`,add_organizations_to_talentpool:`Add Organizations to Talentpool`,organization_list:`Organization list`,delete_organization_from_talentpool:`Delete Organization from talentpool`,add_talentpool:`Add Talentpool`,enter_talentpool_name:`Enter talentpool name`,enter_talentpool_description:`Enter talentpool description`,short_description:`A short description of the talentpool, as marketed to job seekers.`,talentpool_name_marketed:`The name of the talentpool, as marketed to job seekers.`,create_talentpool:`Create Talentpool`,update_talentpool:`Update Talentpool`,talentpool_list:`Talentpool List`,initiated_by_hiring_manager:`Initiated by own organization`,initiated_by_job_seeker:`Initiated by job seeker`,select_active_applications:`Select active applications`,go_back:`Go Back`,modified:`Modified`,select_location:`Select Location`,ask_for_candidate_information:`Ask for candidate information`,cv_not_relevant_for_vacancy:`CV is not relevant for vacancy`,cv_relevant_for_vacancy:`CV is relevant for vacancy`,show_all_running_applications:`Show all running applications of the candidate`,view_anonymous_skills_cv:`View anonymous Talentpool profile`,request_contact_details:`Request contact details`,view_full_skills_cv:`View full Talentpool profile`,view_more:`view more`,update_range:`Update Range`,select_range:`Select Range`,no_data_found:`No data found`,no_matching_candidates_found:`No matching candidates found`,request_contact_info:`Request for contact information`,plan_interview:`Plan interview`,closed_applications:`Closed applications`,contact_info_request_message:`The job seeker is interested in one of your vacancies. Request their contact information to proceed.`,awaiting_contact_info:`Awaiting contact information`,awaiting_contact_info_reply_message:`Awaiting the job seeker's reply to obtain their contact information.`,contact_job_seeker_message:`Kindly contact the job seeker to arrange an appointment.`,application_process_closed_message:`The application process is now closed.`,selected_candidate:`Candidate:`,back:`Back`,show_application:`Show application`,reload_applications:`Reload applications`,invited_date_time:`Invited date and time`,remove_organization:`Remove Organization`,select_talentpool:`Select Talentpool`,talentpool_filter:`Talentpool Filter`,include_only_filter:`Search within talentpools`,exclude_filter:`Search excluding talentpools`,no_filter:`Select a filter option`,select_talentpools:`Select Talentpool(s)`,org_overview:`Overview of organizations which take part at the event and are searching for job seekers for their vacancies.`,campaign_overview:`Overview of campaign links, based on which job seekers are invited at the event and to create their Talentpool profile account.`,email_sent:`Email has been sent`,something_wrong_contact_admin:`Something went wrong! You can contact admin`,issue_sending_email:`There was an issue sending email`,logout_success:`Logout successfully`,user_updated:`User updated!`,try_again_something_wrong:`Something Went wrong. Please try again`,authentication_failed:`Unable to sign in`,authentication_failed_description:`Your session could not be connected to an application account.`,authentication_unavailable:`Authentication is temporarily unavailable`,authentication_unavailable_description:`Please try again.`,try_again:`Try again`,group_deleted:`Group deleted!`,member_deleted:`Member deleted!`,group_created_success:`Group successfully created!`,upload_success:`Upload Success`,invited_success:`Invited Successfully!`,link_disabled_success:`Link disabled successfully!`,link_created_success:`Link created successfully`,error_generating_link:`There was an error generating the link`,link_copied_to_clipboard:`Link copied to clipboard. Note: Visit the page and enter the email of the person to be invited`,link_updated:`Link Updated!`,new_org_created_success:`New Organization created successfully!`,org_updated_success:`Organization updated successfully!`,new_vacancy_added:`New vacancy added`,vacancy_updated:`Vacancy updated`,org_deleted:`Organization deleted`,org_deleted_redirecting:`Organization deleted redirecting to main page!`,user_deleted_success:`User deleted successfully!`,vacancy_deleted:`Vacancy deleted!`,user_added_to_org_success:`User added to Organization successfully!`,module_added_success:`Module added successfully!`,module_deleted_success:`Module deleted successfully!`,org_added_to_talentpool:`Organization added to talentpool!`,talentpool_deleted:`Talentpool deleted!`,talentpool_logo_updated:`Talentpool logo updated!`,org_logo_updated:`Organization logo updated!`,talentpool_created_success:`Talentpool created successfully!`,talentpool_updated_success:`Talentpool Updated successfully!`,no_cv_found:`No CV foun
9d`,settings:`Settings`,select_date:`Select date`,add_modules:`Add Modules`,email_sender_name:`The name of the person sending emails on behalf of The Talentpool Community`,sender_name_email_invite:`The sender which should appear in email invite`,enter_name:`Enter name..`,fill_details_vacancy_url:`Fill in the details regarding the url on which the organization is hosting its jobs: vacancy_url the url and vacancy email the email address the emails should be sent to when a job seeker applies to a job hosted on the url.`,add_vacancy:`Add Vacancy`,select_theme:`Select theme`,provide_prefix:`You will need to provide a prefix if you select search and match module.`,ecommerce_id:`E-commerce ID`,enter_ecommerce_id:`Enter E-commerce ID`,ecommerce_id_tooltip:`The e-commerce ID is the organization's WooCommerce / Wordpress ID that links the subscription data for this organization.`,ecommerce_details:`E-commerce Details`,ecommerce_id_updated_success:`E-commerce ID updated successfully`,invalid_uuid_format:`Invalid UUID format`,update_datetime:`Update Datetime`,offer_name:`Offer Name`,max_no_users:`Max Users`,max_candidates:`Max Candidates`,one_in_one_out_multiplier:`One in One Out Multiplier`,one_in_one_out_base_modifier:`Base Modifier`,one_in_one_out_credit_threshold:`Credit Threshold`,date_created:`Date Created`,my_vacancy_details:`My Vacancy Details`,add_vacancy_details:`Add vacancy details`,update_vacancy_details:`Update vacancy details`,enter_vacancy_url:`Enter vacancy URL`,enter_vacancy_contact_email:`Enter vacancy contact email`,enter_vacancy_contact_name:`Enter vacancy contact name`,organization_users:`Organization users`,organization_modules:`Organization Modules`,my_modules:`My Modules`,activate_module:`Activate Module`,disable_module:`Disable Module`,add_module:`Add Module`,edit_vacancy_details:`Edit vacancy details`,delete_vacancy_details:`Delete vacancy details`,vacancy_config_op_equals:`equals`,vacancy_config_op_contains:`contains`,vacancy_config_and:`AND`,vacancy_config_source_label:`Source`,vacancy_config_source_jobdigger:`JobDigger`,vacancy_config_source_intelligence_group:`Intelligence Group`,vacancy_config_max_age_days:`Max age (days)`,vacancy_config_max_age_default:`default`,vacancy_config_run_probe:`Run probe`,vacancy_config_probe_uses_uri_host:`Saving always sends every match rule in the list. The probe is separate: it needs one page URL, taken from the first domain rule above.`,vacancy_config_probe_needs_uri_host:`Add at least one domain rule with a value so the probe can request a page URL.`,vacancy_config_save_confirm:`Confirm and save`,vacancy_config_save_without_confirm:`Save without verified vacancy`,vacancy_config_save_need_example_or_use_unverified:`Use âSave without verified vacancyâ, or run the probe again until an example vacancy is found.`,vacancy_config_probe_before_save:`Run the probe before saving.`,vacancy_config_source_url_wildcard:`URL pattern must include a * wildcard.`,vacancy_config_match_rules:`Match rules`,vacancy_config_field_label:`Match field`,vacancy_config_operator_label:`Operator`,vacancy_config_value_label:`Value`,vacancy_config_add_rule:`Add rule`,vacancy_config_field_option_uri_host:`Domain`,vacancy_config_field_option_source_url:`URL pattern`,vacancy_config_field_option_external_organization_id:`Intelligence Group organization ID`,vacancy_config_source_url_placeholder:`URL pattern with * (required)`,vacancy_config_intelligence_group_id_placeholder:`Organization ID`,vacancy_config_intelligence_group_id_required:`Enter the Intelligence Group organization ID.`,vacancy_config_intelligence_group_id_number:`Intelligence Group organization ID must be a number.`,vacancy_config_intelligence_group_scraped:`Scraped with the Intelligence Group Vacancy Scraper (#{{id}})`,vacancy_config_probe_match_value_required:`Enter the domain or URL pattern for this match rule.`,vacancy_config_probe_example_header:`Example match`,vacancy_config_probe_example_confirm:`Confirm that this vacancy belongs to your organization`,vacancy_config_validation_max_age_days:`Max age (days) must be left empty for the default, set to 0, or at least {{minDays}} for source {{source}}.`,vacancy_config_error_duplicate_vacancy_url:`Your organization already has a vacancy configuration for this domain / URL pattern.`,vacancy_config_error_vacancy_url_used_by_other_org:`This domain / URL pattern is already used by another organization.`,running_application:`running application`,running_applications:`running applications`,view:`View`,already_applied:`Already applied`,job_seekers:`Job seekers`,invite_link_for_unknown_job_seekers:`Invite link for unknown job seekers, to be used in general campaigns, such as a banner`,invite_link_for_known_job_seekers:`Invite link for known job seekers, to be used in email automation tools, such as ATS`,setup_org:`Finish setup`,email_sender_tooltip:`The senders name utilized for sending emails on behalf of the organization. Example: work at my company`,email_sender_email_tooltip:`The senders email utilized for sending emails on behalf of the organization. Example: [email protected]`,select_priv_fil:`Select private filters`,show_priv_cand:`Show private candidates`,add_url:`Confirm if this job posting is yours`,search_url:`Provide a URL for one of your job postings`,my_organization:`My Organization`,invalid_url:`Url is not val
9id. The Url should always start with https://`,enter_email_senders_name:`work at my company`,enter_email_placeholder:`[email protected]`,generic_email:`Generic email address`,enter_url:`https://workat.yourorg.com/joboffers`,search_match_plus:`Search and Match Plus`,terms_and_cond:`Terms and conditions`,manage_subscription:`Manage subscription`,please_enter_url:`Please enter at least one URL.`,data_warn:`Deleteing will result in loss of all data.`,email_sent_from:`Emails to job seekers are sent from`,welcome_tp_manager:`Welcome to the Talentpool Manager!`,ur_sub_is_active:`Your subscription is not active`,please_renew:`Please renew it on the below link in order to gain access to the account`,renew_sub:`Renew Subscription`,help_text_search_org:`In case you don't find the vacancy url you are looking for, please send an email to [email protected] with the URL, and we will respond within a few days. After completing your registration, you can get started. Good luck!`,referrals_only_subscription_intro:`Your current subscription only includes Referrals, without the Search & Match Plus module. Interested in Search & Match Plus? Contact us at`,subscription_usage:`Subscription usage`,number_of_users:`Number of Users`,max_users:`Max users`,limit_exceeded:`Limit exceeded. Please contact account manager.`,no_of_cand_requests:`Number of full CVs shared with`,max_cand_req:`Max candidates requests`,inv_limit_reached:`Invite limit reached`,no_cand_invitations:`Number of new candidates in The Talentpool Community thanks to invitation from`,no_cand_send_inv:`Number of complete CVs that `,still_request:`can still request`,inv_more_cand:`Invite more candidates so you can request candidate information.`,you_can:`You can request`,job_seekers_end:`complete CVs.`,one_in_one_out_explaination:`If an organization has a one in, one out policy, the number of candidates the organization invites must always be greater than the number of candidates for whom it requests the full profile. `,apply_for_one_in_out:`Apply one in one out rule.`,always_show_candidate_names:`Always show candidate names`,skip_candidate_approval_full_cv_sharing:`Skip candidate approval for full cv sharing`,always_show_candidate_personal_details:`Always show candidate personal details`,allow_hide_non_pool_vacancies:`Allow to hide non-pool vacancies from pool members`,allow_hide_non_pool_vacancies_tooltip:`If this is enabled, talent pool members can only see vacancies that belong to organizations linked to the talent pools theyâre a member of. Note: this might motivate a member to leave your talent pool!`,register_job_seekers:`register job seekers`,activated_job_seekers:`activated job seekers`,total_full_profile_requests:`total full profile requests`,total_full_profile_shared:`total full profile shared`,subscription_fetch_error:`We encountered an issue fetching your subscription information. Our engineers have been alerted and are addressing the problem as quickly as possible. Thank you for your patience.`,show_run_app:`running application`,show_run_apps:`running applications`,maybe_a_match:`Maybe a match`,not_a_match:`Not a match`,no_label:`No label`,select_status:`Select status`,match_status:`Match status`,cand_location:`Candidate's location`,place_status:`e.g Already applied`,place_edu:`e.g. MBO, HBO`,place_location:`e.g. Amsterdam`,profession:`Profession`,invitation_content_link:`Invite a candidate via a link`,invitation_content_qr_code:`Invite a candidate via a QR code`,invitation_content_website:`Invite a candidate via a registration button`,invitation_content_ats:`Invite a candidate via ATS / external system`,invitation_content_email:`Invite a candidate via email`,purpose:`Purpose`,implementation:`Implementation`,client_impact:`Client Impact`,via_link_purpose:`For social media post and e-mail marketing.`,via_link_implementation:`Please copy the link from the snippet on the right and paste it into your preferred tool.`,via_link_impact:`Candidates accessing this link are redirected to a signup page. `,via_link_impact_talentpool:`Candidates accessing this link are redirected to a signup page. After signing up your talentpool is shown in the app as a filter to shown all the vacancies of the companies participating in the talentpool.`,via_qr_purpose:`For event promotions, posters, group signups and campaign materials.`,via_qr_implementation:`Please copy the QR code to your clipboard and paste it wherever you want to display it. Alternatively, you can download it in PNG format.`,via_qr_impact:`Candidates accessing this QR code are redirected to a signup page. `,via_qr_impact_talentpool:`Candidates accessing this QR code are redirected to a signup page. After signing up your talentpool is shown in the app as a filter to shown all the vacancies of the companies participating in the talentpool.`,via_website_purpose:`For a website or e-mail footer`,via_website_implementation:`Copy the code mentioned in the snippet on the right and add the code to your website.`,via_website_impact:`Candidates clicking on the signup button are redirected to a signup page.`,via_website_impact_talentpool:`Candidates clicking on the signup button are redirected to a signup page. After signing up your talentpool is shown in the app as a filter to shown all the vacancies of the companies participating in the talentpool.`,via_ats_purpose:`For integration with your ATS/automated email system`,via_ats_implementation:`To automate the Talentpool profile signup process, you can integrate it with your ATS or automated email system. The integration will depend on the specific ATS you use. Assuming your email system supports HTML templates, we have created an email template for your reference. Simply replace the {email} placeholder with the candidate's email address and you are good to go.`,via_ats_impact:`Candidates clicking on the signup link in the email are redirected to a signup page.`,via_ats_impact_talentpool:`Candidates clicking on the signup link in the email are redirected to a signup page. After signing up your talentpool is shown in the app as a filter to shown all the vacancies of the companies participating in the talentpool.`,partial_match:`Partial match`,found_on_cv:`Found on CV`,found_on_similar_skill:`Found on similar skill`,search_in_cv_of_candidates:`Search in CV of candidates`,min:`Min`,max:`Max`,my_account:`My account`,account:`Account`,logout:`Logout`,filter:`Filter`,apply_filter:`Apply filter`,City_Province:`City/Province`,range:`Range`,location:`Location`,skill_capital:`SKILLS`,potential_match:`Potential match`,job_seeker:`Job seeker`,change_username:`Change username`,contact_support:`Contact Support`,the_talentpool_community:`The Talentpool Community`,home_welcome:`Welcome to your Talentpool Manager!`,match_candidate:`Match candidates`,find_candidate:`Find the best candidates`,top_candidate:`Top candidates`,refer_applicant:`Refer Candidate/Applicant`,reject_refer_applicant:`Refer rejected applicants to the talentpool`,invite_candidate:`Invite candidates`,invite_best_candidate:`Invite the best candidates`,help_title_1:`What do I see on this screen?`,help_title_2:`What happens when I press the Request candidate information button?`,help_title_3:`How is the match done?`,help_body_1:`On this page you will find an overview of the best candidates for the vacancy you have selected. The candidates are ranked based on their Skills Match with the vacancy. This Skillsmatch is displayed above each candidate's anonymous Talentpool profile. The darker the color, the better the match between the candidate and the vacancy. You can get in touch with the candidate b
9y pressing the Request candidate information button.`,help_body_1_1:`You can further filter the list of candidates by education level and location. If you have taken the Talent Pool module and your company is part of one or more Talent Pools, you can also view the anonymous Talentpool profile of the candidates who have been invited to these Talent Pools.`,help_body_2:`By requesting the candidate information a job application will be opened on your behalf for the candidate. The candidate will receive an e-mail to respond to provide their full CV, including personal information, such that you can contact the candidate directly either through phone or e-mail. As soon as the application request is sent to the candidate, you can check the application status on the "All applications" page.`,help_body_3:`Using the skills and profession of the vacancy we match them against the profiles of job seekers. The green colour in the match area represents a perfect match at work experience or skill level, while the grey colour represent a partial match.`,help:`Help`,skill:`Skills`,matching_skill:`Matching skills`,contact:`Contact`,invite_headline_line_1:`Your talents deserve`,invite_headline_line_2:`the right match!`,invite_referral_line:`<strong>{{name}}</strong> refers you to your next opportunity.`,invite_pool_referral_line:`<strong>{{organizationName}}</strong> refers you to your next opportunity. The <strong>{{groupName}}</strong>.`,invite_body_1:`Through The Talentpool Community, you are directly matched with vacancies that suit you, from employers throughout the Netherlands. Additionally, our 90+ affiliated employers can view your profile and actively approach you.`,invite_pool_body_1:`Through The Talentpool Community, you are directly matched with vacancies that suit you. Additionally, affiliated employers of The Talentpool Community can view your profile and actively approach you.`,invite_body_2:`Create a profile for free by uploading your CV or filling in your experience. Your Talentpool profile, including your skills, is created using AI. This makes you visible to employers and allows you to apply directly to all available vacancies in the Netherlands.`,invite_pool_body_2:`Create a profile for free by uploading your CV or filling in your experience. Your Talentpool profile, including your skills, is created using AI. This makes you visible to employers and allows you to apply directly to available vacancies in the Netherlands.`,invite_pool_existing_profile:`Do you already have a Talentpool profile? Then log in here to be added to the "{{name}}".`,invite_join_community_title:`Join <span>The Talentpool Community</span>`,invite_join_pool_title:`Join the <span>{{name}}</span>`,invite_create_subtitle:`Enter your email address to create a profile or log in`,invite_email_placeholder:`Type here`,invite_start_now:`Start now`,invite_form_label:`Invite form`,validation_old_password_required:`Old password is required`,validation_new_password_required:`New password is required`,validation_confirm_password_required:`Confirm password is required`,validation_password_min_length:`Password must be at least 6 characters`,validation_this_required:`This is required`,validation_must_be_string:`This must be a string`,validation_invalid_base64:`Invalid base64 string`,validation_invalid_url:`Invalid URL`,validation_unrecognized_url:`URL not recognized`,validation_enter_at_least_one_url:`Please enter at least one URL`,validation_no_special_chars:`Should not contain special characters or numbers`,validation_name_no_at_dot:`Name cannot contain @ or .`,validation_add_vacancy_url_if_module:`Add vaccancy url if search and match plus module selected`,validation_add_email_if_module:`Add Email if search and match plus module selected`,validation_vacancy_url_required_if_contact_filled:`If vacancyContactEmail or vacancyCompanyName is filled, vacancyUrl is required`,validation_passwords_dont_match:`Passwords don't match`,validation_old_new_password_same:`Old password and new password can't be the same`,validation_invalid_email:`Invalid email`,validation_email_required:`Email is required`,validation_password_required:`Password is required`,initiated_by:`Initiated by`,downloading:`Downloading...`,token_expired:`Token expired`,logged_in:`Logged In`,logged_out:`Logged Out`,api_documents:`API Documents`,application_date:`Application date`,notified_applicant:`Notified Applicant`,uploading:`Uploading...`,loading:`Loading...`,download_pdf:`Download PDF`,upload:`Upload`,send:`Send`,error_occurred_try_again:`An error occurred. Please try again later.`,something_went_wrong_tr
9y_again:`Something went wrong, Please try again later.`,sentry_error_title:`Something went wrong!`,sentry_error_message:`Brace yourself till we get the error fixed. You may also try to refresh the page or logout.`,reload_app:`Reload App`,both:`Both`,admin:`Admin`,labor_market:`Labor market`,analytics:`Analytics`,api:`API`,invite_to_join:`Invite to join`,invite_to_join_talentpool:`Invite to join talentpool`,sign_up_now:`Sign Up Now`,company_name:`Company Name`,update_location:`Update Location`,select_city:`Select City`,page_not_found:`Page Not Found`,edit_role:`Edit Role`,select_role:`Select Role`,no_data:`No data`,no_data_to_display:`No data to display`,vacancy_not_found:`Vacancy no longer available`,vacancy_not_found_help:`This vacancy may have been removed or the link may be outdated. Try searching for vacancies again.`,preview:`Preview`,copy_qr:`Copy QR`,current_image:`Current Image`,update_modules:`Update Modules`,modules_list:`Modules list`,delete_talentpool:`Delete Talentpool`,primary_color:`Primary color`,secondary_color:`Secondary color`,tertiary_color:`Tertiary color`,other_color:`Other color`,active:`Active`,inactive:`Inactive`,last_online_filter:`Last online`,last_online_week:`Last week`,last_online_month:`Last month`,last_online_year:`Last year`,last_online_no_limit:`No limit`,one_in_one_out:`One in one out`,invitation_successfully_sent:`Invitation successfully sent!`,now_just_login:`Now just login`,error_invalid_url_parameters:`Error invalid url parameters`,you_have_successfully_invited:`You have successfully invited your candidate!`,unfortunately_link_not_valid:`Unfortunately, this link is (no longer) valid!`,invite_failed_contact_message:`Questions? Please <a href="mailto:[email protected]">contact</a> us`,contact_us:`Contact us`,email_not_found_go_back:`Email not found go back to login page`,working_at_company:`Working at company`,coaching_module:`Coaching module`,job_market_analysis_module:`Job market analysis module`,search_and_match_module:`Search and match module`,admin_module:`Admin Module`,search_and_match_plus_module:`Search and match Plus module`,event_manager_module:`Event manager module`,talentpool_manager_module:`Talentpool manager module`,vacancies_management_module:`Vacancies management module`,vacancy_management_section:`Vacancies management`,invitation_link_for_email:`Invitation link for email`,sample_text_for_email:`Sample text to use in email`,or_invite_multiple_users:`OR you can invite multiple users`,filters:`Filters`,found_data_in:`Found data in:`,skills:`Skills`,direct_invitation:`Direct Invitation:`,invite_members_button:`Invite Members`,generate_qr_code:`Generate QR Code`,no_more_data:`No more data`,uitstroom:`Uitstroom`,vacatures:`Vacatures`,kok:`Kok`,medewerker_fastservice:`Medewerker Fastservice`,ondernemer_horeca:`Entrepreneur Hospitality`,via_ats_email_template:`Hi, <br/><br/>You know us as a company that goes for you. We have good news if you're looking for the job that really fits!<br/><br/>Recently, we've become part of a group of companies that can directly match with all your skills and the vacancies they have. Do you want to become visible in that way too? Take 10 minutes and fill in your Talentpool profile via the <a href="{{linkUrl}}">link</a>.<br/><br/>Be part of the new way of searching and matching, welcome to our community ð<br/><br/>Good luck!<br/><br/>Ps. You see for yourself what you're matched with and can directly express your interest to the company with the most suitable vacancy`,download_qr:`Download QR`,copied:`Copied!`,block_content_title:`Complete your registration and get started.`,block_content_subtitle:`You use the Talentpool Manager to search for candidates for your vacancies. To get started, we need to complete your registration with two more pieces of information:`,block_content_accordion_1_title:`1. Which email address should we use?`,block_content_accordion_1_body:`<p>From the Talentpool Manager, you will soon be approaching candidates for your vacancies. When searching for suitable candidates, you will initially see anonymized CVs. If you find a candidate interesting, you can ask this candidate to share their full CV with you. From the Talentpool Manager, we will send this candidate an email requesting them to share his or her CV with you.</p><p>For sending this email, we need the email address of your company used for applications (for example, <b>[email protected]</b>) and its description (for example, <b>Working at company</b>). You can fill in this information under My Organization.</p>`,block_content_accordion_2_title:`2. Where can your vacancies be found?`,block_content_accordion_2_body:`<p>Finally, we would like to know where your vacancies are located on the internet (for example: <b>workatcompany.com</b>). We ask you to provide the link to your vacancies.</p><p>It may be that your vacancies cannot yet be found by us. In that case, please send an email to [email protected] with the URL, and we will respond within a few days. After completing your registration, you can get started. Good luck!</p>`,invite_success_email_sent:`An email has been sent to the account`,invite_success_new_account:`New account? Then you will receive a confirmation email`,invite_success_login:`Log directly into The Talentpool Community`,example_csv:`Example CSV`,remove_existing_logo:`Remove E
9xisting Logo`,delete_talentpool_confirmation:`Would you like to delete the <span class="text-purple fw-semibold">{{itemName}}</span>?`,user_successfully_invited:`User {{email}} successfully invited!`,delete_vacancy_confirmation:`Would you like to delete the <span class="text-purple fw-semibold">{{itemName}}</span> vacancy details?`,delete_group_confirmation:`Would you like to delete the <span class="text-purple fw-semibold">{{itemName}}</span>? {{deleteing_will_result_in_loss}}`,vacancy_details_text:`vacancy details`,invite_to:`Invite to`,deleteing_will_result_in_loss:`Deleting will result in loss of all data.`,extra_credits:`Extra credits`,extra_credits_unlock_tooltip:`Refer at least {{threshold}} candidates to unlock your extra credits!`,common:{loading:`Loading...`,cancel:`Cancel`,not_available:`-`},vacancy_management:{create_new:`Create new vacancy`,create:{title:`Create New Vacancy`},edit:{title:`Edit Vacancy`},form:{function_title:`Function Title`,location:`Location`,location_city:`Location City`,location_state:`Location State`,location_country:`Location Country`,contract_type:`Contract Type`,select_contract_type:`Select contract type`,work_schedule:`Work Schedule`,select_work_schedule:`Select work schedule`,hours_per_week_min:`Hours per Week (Min)`,hours_per_week_max:`Hours per Week (Max)`,hours_per_week:`Hours per Week`,work_environment:`Work Environment`,select_work_environment:`Select work environment`,compensation_type:`Compensation Type`,select_compensation_type:`Select compensation type`,compensation_min:`Compensation Min`,compensation_max:`Compensation Max`,experience_years_min:`Experience Years (Min)`,experience_years_max:`Experience Years (Max)`,starting_date:`Starting Date`,expiry_date:`Expiry Date`,work_days:`Work Days`,day_parts:`Day Parts`,job_description:`Job Description`,selected_location:`Selected Location`,min_education_level:`Minimum Level of Education`},placeholders:{function_title:`Enter the job title`,job_description:`Enter detailed job description...`,location_search:`Search for a location...`,hours_min:`e.g., 32`,hours_max:`e.g., 40`,compensation_min:`e.g., 3000`,compensation_max:`e.g., 5000`,experience_min:`e.g., 2`,experience_max:`e.g., 5`,date_format:`dd-mm-yyyy`,min_education_level:`Select minimum level of education`},enums:{contract:`Contract`,freelance:`Freelance`,permanent:`Permanent`,temporary:`Temporary`,internship:`Internship`,volunteer:`Volunteer`,other:`Other`,fulltime:`Full-time`,parttime:`Part-time`,full_time:`Full-time`,part_time:`Part-time`,flexible:`Flexible`,shift:`Shift`,shift_work:`Shift Work`,remote:`Remote`,hybrid:`Hybrid`,"on-site":`On-site`,on_site:`On-site`,hourly:`Hourly`,monthly:`Monthly`,monthly_salary:`Monthly Salary`,hourly_rate:`Hourly Rate`,daily_rate:`Daily Rate`,project_fee:`Project Fee`,monday:`Monday`,tuesday:`Tuesday`,wednesday:`Wednesday`,thursday:`Thursday`,friday:`Friday`,saturday:`Saturday`,sunday:`Sunday`,morning:`Morning`,afternoon:`Afternoon`,evening:`Evening`,night:`Night`},table:{function_title:`Function Title`,location:`Location`,status:`Status`,starting_date:`Starting Date`,expiry_date:`Expiry Date`,created:`Created`,updated:`Updated`},status:{active:`Active`,inactive:`Inactive`},filter:{status:`Filter by Status`,all:`All Vacancies`,inactive:`Inactive`},network_error_mock_data:`Network error - using mock data for development`,fetch_error:`Failed to fetch vacancies`,fetch_vacancy_error:`Failed to load vacancy details`,vacancy_not_found:`Vacancy not found`,create_error:`Failed to create vacancy`,update_error:`Failed to update vacancy`,creating:`Creating...`,updating:`Updating...`,create_vacancy:`Create Vacancy`,update_vacancy:`Update Vacancy`,archive_error:`Failed to archive vacancy`,archive_vacancy:`Archive Vacancy`,archive_vacancy_confirmation:`Are you sure you want to archive this vacancy? The vacancy will no longer be publicly visible.`,continue_and_archive:`Continue & Archive`,archiving:`Archiving...`,unarchive_vacancy:`Reactivate Vacancy`,unarchive_vacancy_confirmation:`Are you sure you want to reactivate this vacancy? The vacancy will become publicly visible again.`,continue_and_unarchive:`Continue & Reactivate`,unarchiving:`Reactivating...`,development_mode:`Development Mode`,no_vacancies_found:`No Vacancies Found`,no_vacancies_message:`There are no vacancies available at the moment.`,validation:{required_fields:`Function title and job description are required`,location_required:`Location is required`,function_title_required:`Function title is required`,function_title_min:`Function title must be at least 3 characters`,function_title_max:`Function title must be at most 255 characters`,job_description_required:`Job description is required`,job_description_min:`Job description must be at least 20 characters`,location_country_iso2:`Country must be a valid ISO 3166-1 alpha-2 code (e.g. NL, BE)`,location_zip_max:`Postal code must be at most {{max}} characters`},update_forbidden:`This vacancy cannot be edited because it is managed by an external source.`},admin_vacancy_management:{title:`Vacancy Management`,vacancies_for_organization:`Vacancies for {{organization}}`,back_to_organizations:`Back to Organizations`,view_vacancies:`View Vacancies`,fetch_organizations_error:`Failed to fetch organizations`,no_organizations_foun
9d:`No organizations with vacancies found`,no_organizations_message:`There are currently no organizations that have vacancies.`,table:{organization_name:`Organization Name`,organization_subdomain:`Organization Vacancies Site`,actions:`Actions`}},warning_modal:{title:`Do you want to leave without saving? Your changes will be lost.`,cancel:`Go back`,continue:`Continue without saving`},apply_for_position:`Apply for Position`,job_title:`Job Title`,full_name:`Full Name`,phone:`Phone`,city:`City`,confirm_email:`Confirm Email`,available_from:`Available From`,motivation_questions_remarks:`Motivation, Questions and/or Remarks`,upload_cv:`Upload CV`,optional:`Optional`,accepted_formats_pdf_doc_docx:`Accepted formats: PDF, DOC, DOCX`,i_agree_to_terms_and_conditions:`I agree that The Talentpool Community can process my data and share it with the organization I am applying at`,submit_application:`Submit Application`,application_submitted_successfully:`Application submitted successfully!`,error_submitting_application:`Error submitting application`,error_loading_page:`Error loading page`,invalid_organization_id:`Invalid organization ID`,emails_do_not_match:`Email addresses do not match`,must_agree_terms:`You must agree to the terms and conditions`,organization_not_found:`Organization not found`,unexpected_response_status:`Unexpected response from server`,apply_at_organization:`Apply at {{organization}}`,application_form:`Application Form`,available_from_must_be_today_or_future:`Available from date must be today or in the future`,save_anyway:`Save anyway`,pool_exclusivity_days:`Pool exclusivity maximum (days)`,pool_exclusivity_days_tooltip:`Maximum number of days a talent pool may keep new members exclusive. Set to 0 to turn off exclusivity options for all pools in this organization.`,talentpool_exclusivity_days:`Member exclusivity period (days)`,talentpool_exclusivity_days_tooltip:`Number of days new members stay exclusive to organizations with access to this pool (0 = not exclusive). Cannot exceed the organization maximum.`,hide_non_pool_vacancies_pool:`Hide non-pool vacancies from pool members`,hide_non_pool_vacancies_pool_tooltip:`If this is enabled, talent pool members can only see vacancies that belong to organizations linked to the talent pools theyâre a member of. Note: this might motivate a member to leave your talent pool!`,exclude:`Exclude`,enter_days:`Enter number of days`,no_limit:`No limit`,never:`never`,until_expiry:`Expires`,expired:`Expired`,disabled:`Disabled`,members_exclusive_days:`New members are exclusive to organisations with access to this pool for {{days}} days`,new_members_exclusive:`New talent pool members are initially exclusive to organisations with access to this pool`,candidates_stats_header:`About the {{totalCountCandidates}} candidates referred by {{organization}}`,candidates_stats_sub_header:`Number of times a candidates referred by {{organization}}`,approached_for_vacancy:`was approached for a vacancy`,applied_for_vacancy:`applied for a vacancy themselves`,shared_full_cv:`shared their full CV`,hours_ago:`hours ago`,days_ago:`days ago`,days:`days`,application_details:`Application details`,date_applied:`Date applied`,current_status:`Current status`,status:`Status`,notes:`Notes`,add_note:`Add a note`,no_notes_found:`No notes found`,view_talentpool_profile:`View Talentpool profile`,"recruitment.candidate":`Candidate`,"recruitment.vacancy_title":`Vacancy title`,"recruitment.column.new":`New`,"recruitment.column.in_progress":`In progress`,"recruitment.column.completed":`Completed`,"recruitment.status.applied":`Applied`,"recruitment.status.approached":`Approached`,"recruitment.status.first_interview":`First interview`,"recruitment.status.second_interview":`Second interview`,"recruitment.status.negotiation":`Negotiation`,"recruitment.status.hired":`Hired`,"recruitment.status.rejected":`Rejected`,"recruitment.status.no_response":`No response`,"recruitment.status.withdrawn":`Withdrawn`,"recruitment.status.expired":`Expired`,"recruitment.notes.role_info":`Depending on your role you can see only your own notes, or all notes.`,"recruitment.change_status":`Change status`,"recruitment.view_profile":`View profile`,"recruitment.applied_on":`Applied on`,"recruitment.days_since_applied":`Applied {{count}} days ago`,"recruitment.notes":`Notes`,"recruitment.add_note":`Add note`,"recruitment.delete_note":`Delete note`,"recruitment.note_placeholder":`Write a noteâ¦`,private_for_days_in_talentpool:`Private for {{days}} days in talent pool {{talentpool}}`,select_filter_type:`Select filter type`,Help:`Help`,Update:`Update`,Km:`Km`,countries:{NL:`the Netherlands`,BE:`Belgium`,DE:`Germany`,FR:`France`,LU:`Luxembourg`,GB:`United Kingdom`,UK:`United Kingdom`,US:`United States`}}},nl:{translations:{home:`Home`,welcome:`Welkom to the TalentPool manager`,maintenance_title:`Website tijdelijk in onderhoud`,maintenance_body:`We voeren momenteel onderhoud uit. Kom later terug.`,maintenance_try_again:`Opnieuw proberen`,email:`E-mailadres`,password:`Wachtwoord`,f_password:`Je wachtwoord vergeten?`,organizations:`Organisaties`,professions:`Beroepen`,prof_subtitle:`Per beroep wordt het aantal vacatures getoond en afgezet tegen het aantal studenten dat als afstudeerder uitstroomt.`,find_prof:`Zoek een beroep`,my_groups:`Mijn groepen`,search_profession:`Zoek beroep`,similar_profession:`Matchende beroepen`,top_ten_text:`Op basis van top 10 skills`,vacancies:`Vacatures`,role:`Rol`,staff:`Gebruikers`,student_group:`Studenten groep`,overview_of_staff:`Overzicht van de medewerkers`,add_staff:`Medewerker toevoegen`,overview_of_org:`Overzicht van de organisaties`,search:`Zoeken`,new_org:`Nieuwe organisatie`,add_org:`Organisatie toevoegen`,create_new_org:`Maak een nieuwe organisatie aan`,overview_group_text:`Overzicht van alle groepen.`,add_new_group:`Nieuwe groep toevoegen`,new_staff:`Nieuwe medewerker`,add_new_staff:`Nieuwe medewerker toevoegen`,select_group:`Selecteer groep`,search_group:`Zoek een groep`,forgot_password:`Wachtwoord vergeten`,enter_email_proceed:`Vul je e-mailadres in en we sturen je een bevestigingscode om een nieuw w
9achtwoord opnieuw in te stellen.`,return_login:`Keer terug naar inloggen`,check_your_email:`Controleer je e-mail`,sent_confirmation_on:`We hebben je een bevestigingscode opgestuurd`,reset_password:`Wachtwoord opnieuw instellen`,top_10:`Top 10 skills`,no_times_in_group:`aantal keer dat de skill voorkomt in de groep`,top_10_skills_profession:`Op basis van top 10 skills`,studenten:`studenten`,change_password:`Verander wachtwoord`,old_password:`Oud wachtwoord`,new_password:`Nieuw wachtwoord`,profile:`Profiel`,update_profile:`Profiel bijwerken`,first_name:`Voornaam`,last_name:`Achternaam`,privacy_statement:`Privacyverklaring`,Cookiebeleid:`Cookiebeleid`,previous:`Vorig`,next:`Volgende`,showing_page:`Pagina weergeven`,delete:`Verwijderen`,close:`Afsluiten`,submit:`Toevoegen`,most_added:`meest toegevoegd`,invite_members:`Nodig deelnemers uit`,view_profile:`Bekijk profiel`,add_user:`Voeg gebruiker toe`,organization_name:`Organisatie naam`,link_created:`Link Aangemaakt`,number_of_clicks:`Aantal Klikken`,link_type:`Link Type`,link_expires:`Link Verloopt`,first_signup:`Eerste Aanmelding`,last_signup:`Laatste Aanmelding`,no_of_signups:`Aantal Aanmeldingen`,invite_organization_admin:`Nodig organisatiebeheerder uit`,update_organization:`Organisatie updaten`,delete_organization:`Verwijder organisatie`,group_name:`Groepsnaam`,add_members:`Deelnemers toevoegen`,create_group:`Groep aanmaken`,didnt_receive_email:`Heb de e-mail niet ontvangen`,resend_verification:`Stuur verificatie opnieuw`,no_of_groups:`Aantal groepen`,label:`Label filter`,actions:`Acties`,delete_user:`Verwijder gebruiker`,would_delete:`Wil je verwijderen`,del_org:`Wil je de organisatie verwijderen? Bij het verwijderen gaan alle gegevens verloren.`,group:`Groep`,students_count:`Deelnemers`,managed_by:`Beheerd door`,delete_group:`Verwijder groep`,delete_member:`Lid verwijderen`,candidate_list:`Kandidatenlijst`,compare_professions:`Beroepen vergelijken`,see_shared:`Zie gedeelde skills per beroep`,work_experience:`Werkervaring`,work_preference:`Werkvoorkeur`,education:`Opleiding`,hobby:`Hobby's`,language:`Talen`,certificate:`Certificaten`,complete:`Ingevuld`,group_statistics:`Groepsstatistieken`,matched_skills:`matchende skills`,welcome_text:`Welkom terug!`,your_email:`Je e-mailadres`,your_password:`Je wachtwoord`,password_reset:`Wachtwoord reset`,reset_text:`Je wachtwoord is succesvol gereset.`,setup_account:`Maak je account aan`,for_first:`Stel voor de eerste keer inloggen je tijdelijk wachtwoord in om te beginnen.`,login:`Inloggen`,overview_group:`Overzicht van al de groepen`,overview_profession:`Vergelijk beroepen op matchende skills`,about_me:`Over mij`,personal_details:`Persoonsgegevens`,dob:`Geboortedatum`,telephone:`Telefoonnummer`,adres:`Adres`,not_yet_filled:`Nog niet ingevuld`,name:`Naam`,view_job_market:`Bekijk groepsstatistieken`,invite:`Uitnodiging`,remove_staff_member:`Personeelslid verwijderen`,remove_member:`Lid verwijderen`,update_group:`Bewerk groepsnaam`,update:`Bijwerken`,select_excel:`Selecteer een Excel bestand vanaf je computer of OneDrive.`,remove:`Verwijder`,request_new_password:`Vraag nieuw wachtwoord aan`,confirmation_code_sent:`Bevestigingscode is verstuurd`,we_have_sent_confirmation:`We hebben een bevestigingscode per mail verstuurd. Deze heb je nodig om een nieuw wachtwoord aan te vragen.`,reset_pass:`Stel wachtwoord opnieuw in`,enter_new_password:`Vul een nieuw wachtwoord in om opnieuw in te loggen `,confirmation_code:`Bevestigingscode`,view_group:`Bekijk groep`,view_organization:`Bekijk organisatie`,edit_organization:`Bewerk organisatie`,no_groups_found:`Geen groepen gevonden`,import_csv:`Upload een CSV bestand om meerdere deelnemers toe te voegen`,select_from_computer:`Selecteer een CSV bestand vanaf je computer`,add:`Toevoegen`,no_user_found:`Geen gebruikers gevonden`,welcome_h1:`Welkom`,select_group_member:`Selecteer groepslid`,overview_group_member:`Overzicht van Individueel groepslid`,view_member_statistics:`Bekijk deelnemersstatistieken`,my_group_members:`Mijn deelnemers`,view_group_statistics:`Groepsstatistieken bekijken`,groups:`Groepen`,talentpool:`Talentpool`,talentpools:`Talentpools`,list_user_talent:`Aantal gebruikers in talentpool`,view_links:`Bekijk alle links`,create_links:`Genereer link`,select_val
9idity_days:`Selecteer geldigheid in dagen`,generate:`Genereer`,note:`Note`,note_text:`Pas in de link {email} aan met het e-mailadres van de kandidaat.`,list_of_links:`Lijst van links in de groep`,links:`Links`,reset:`Reset`,created_date_time:`Aangemaakt op`,expiration_date_time:`Geldigheidsdatum en -tijd`,validity_days:`Geldigheid(dagen)`,clicked_impressions:`Aantal kliks`,copy_link:`Kopieer Link`,disable_link:`Deactiveer link`,disable_confirmation_text:`Weet je zeker dat je deze link inactief wil maken op `,disable:`Disable`,active:`Actief`,inactive:`Inactief`,last_online_filter:`Laatst online`,last_online_week:`Afgelopen week`,last_online_month:`Afgelopen maand`,last_online_year:`Afgelopen jaar`,last_online_no_limit:`Geen limiet`,generating:`Genereren...`,job_seeker_insights:`Statistieken kandidaat`,overview_job_seeker:`Overzicht statistieken over de kandidaten`,job_application_insights:`Statistieken sollicitaties`,referral_insights:`Statistieken doorverwijzen`,overview_referral_analytics:`Overzicht van referentie analytics`,error_failed_to_load_referral_data:`Kon referentie analytics gegevens niet laden`,error_invalid_data_format:`Server heeft ongeldig gegevensformaat geretourneerd`,error_network_connection:`Netwerkverbindingsfout. Controleer uw internetverbinding.`,error_unauthorized:`U bent niet geautoriseerd om deze gegevens te bekijken`,error_forbidden:`Toegang tot deze gegevens is verboden`,error_referral_data_not_found:`Referentie analytics gegevens niet gevonden`,error_server_error:`Serverfout. Probeer het later opnieuw.`,error_unexpected_error:`Er is een onverwachte fout opgetreden bij het laden van gegevens`,organization:`Organisatie`,link_details:`Link Details`,signup_details:`Aanmeldingsdetails`,profile_completeness_ranges:`Volledigheid CV %`,completeness_less_than_10:`< 10%`,completeness_10_to_19:`10-19%`,completeness_20_to_29:`20-29%`,completeness_30_to_39:`30-39%`,completeness_40_to_49:`40-49%`,completeness_50_to_59:`50-59%`,completeness_60_to_69:`60-69%`,completeness_70_to_79:`70-79%`,completeness_80_to_89:`80-89%`,completeness_90_to_100:`90-100%`,link_type_default:`Standaard`,search_organization:`Zoek organisatie...`,filter_by_link_type:`Filter op link type`,get_job_application_over:`Overzicht statistieken over de sollicitaties`,filter_by:`Filter op`,year:`Jaar`,month:`Maand`,day:`Dag`,week:`Week`,search_candidates:`Zoek kandidaat`,candidates:`Kandidaten`,select_candidate:`Selecteer kandidaat`,show_vacancies:`Bekijk vacatures`,no_vacancies:`Geen vacatures`,all_vacancies:`Alle vacatures`,my_candidates:`Mijn kandidaten`,search_vacancies:`Zoek vacature`,search_and_match:`Zoek en Match`,accompaniment:`Begeleiding`,send_vacancy:`Vacature versturen`,all_vacancy_search_text:`Zoek op functie, omschrijving, skill`,search_by_candidate_email:`Zoek op e-mailadres van kandidaat`,search_job_application:`Zoek sollicitatie`,total_no_of_users:`Aantal gebruikers`,total_no_of_active_users:`Aantal actieve gebruikers`,total_no_of_applications:`Aantal sollicitaties`,no_of_users:`Aantal gebruikers`,no_of_applications:`Aantal sollicitaties`,cv_comp:`Volledigheid CV`,job_app_state_insight:`Inzichten sollicitaties`,continue_to_apply:`S
9ollicitatie aangemaakt`,awaiting_reply:`Anonieme sollicitatie verstuurd`,request_for_contact:`Volledig profiel aangevraagd`,awaiting_job_seeker_reply:`Afwachting van antwoord van werkzoekende`,profile_has_been_shared:`Volledig profiel gedeeld`,auto_share_full_cv:`Volledig cv automatisch gedeeld`,abort_job_seeker_removed_application:`Sollicitatie ingetrokken (gesloten)`,abort_job_seeker_ignores_anonymous_cv:`Anonieme sollicitatie niet verstuurd (gesloten)`,abort_job_seeker_ignores_full_cv:`Volledig profiel niet gedeeld (gesloten)`,abort_hiring_party_rejects_anonymous_cv:`Anonieme CV afgewezen (gesloten)`,abort_hiring_party_ignores_anonymous_cv:`Anonieme CV genegeerd (gesloten)`,abort_job_digger_closed_job:`Vacature niet meer actief (gesloten)`,hiring_party_awaiting_reply:`Wervende partij wacht op antwoord`,job_seeker_set_toggles_for_full_cv:`Werkzoekende stelt schakelaars in voor volledig cv`,job_seeker_set_toggles_for_anonymous_cv:`Werkzoekende stelt schakelaars in voor anoniem cv`,job_seeker_set_toggles_for_profile:`Werkzoekende stelt schakelaars in voor profiel`,profile_shared:`Profiel gedeeld`,profile_and_contacts_shared:`Profiel en contactgegevens gedeeld`,job_seeker_reply_to_invite_hiring_manager:`Uitgenodigd door de wervingsmanager`,abort_job_seeker_reply_to_invite_hiring_manager:`Annuleer werkzoekende negeert uitnodiging`,total:`Totale sollicitaties`,route_and_review:`Route en beoordeling`,job_seeker_shared_full_cv:`Werkzoekende deelde volledig cv`,closed_shared_full_cv:`Gesloten gedeeld volledig cv`,closed_profile_shared:`Gesloten gedeeld profiel`,abort_application_expired:`Sollicitatie verlopen (gesloten)`,abort_cannot_c
9ontact_hiring_party:`Kan wervende partij niet bereiken (gesloten)`,abort_hiring_party_ignores_application:`Wervende partij negeert sollicitatie (gesloten)`,abort_hiring_party_rejects_application:`Wervende partij wijst sollicitatie af (gesloten)`,wait_for_skillscv_admin:`Wachten op The Talentpool Community-beheerder`,wait_for_hiring_party:`Wachten op inhuurpartij`,wait_for_jobseeker:`Wachten op werkzoekende`,confirm_password:`Bevestig wachtwoord`,my_applications:`Mijn Sollicitaties`,applications:`Sollicitaties`,view_vacancy:`Bekijk vacature`,invite_candidates:`Kandidaten uitnodigen`,invite_user:`Gebruiker uitnodigen`,invite_users_to:`Nodig gebruikers uit voor`,statistics_group:`Statistieken voor groep`,statistics_member:`Statistieken voor deelnemers`,coaching:`Coaching`,create_invite_link:`Genereer uitnodigingslink`,link_name:`linknaam`,view_QR_code:`QR-code bekijken`,create_an_account:`Account aanmaken`,congratulations_text:`Gefeliciteerd! Je bent succesvol aangemeld!`,all_applications:`Alle sollicitaties`,select_org:`Selecteer organisatie`,search_location:`Zoek Locatie`,has_active_profile:`Aangemaakte Talentpool-profielen`,no_active_profile:`Niet-aangemaakte Talentpool-profielen`,has_filled_in_profile:`Ingevulde Talentpool-profielen`,not_filled_in:`Lege Talentpool-profielen`,remove_text_1:`Weet je zeker dat je`,remove_text_2:`wilt verwijderen uit TalentPool?`,select_cv_filters:`Filter op status Talentpool-profiel`,call_member:`Bel kandidaat`,mail_member:`E-mail kandidaat`,member_was_contacted:`Kandidaat is benaderd voor vacature`,member_already_contacted:`Lid al gecontacteerd`,find_best_candidate:`Vind beste kandidaten`,best_candidate_for_vac:`Beste matches`,member_since:`Lid sinds`,last_online:`Laatst online`,bij:`bij`,select_with_edu_level:`opleidingsniveau kandidaat`,select_cand_around:`Selecteer kandidaten rondom`,matching_skills_between:`en kandidaat`,share_vacancy:`Deel vacature`,search_location_vac:`Geef een locatie van de vacature op`,all_candidates:`Alle kandidaten`,events:`Evenementen`,campaigns:`Campagnes`,event_list:`Evenementen en campagnes`,search_events:`Zoek op evenement of campagne `,add_event:`Evenement toevoegen `,event_name:`Evenementnaam`,event_description:`Evenementomschrijving`,start_date:`Startdatum`,end_date:`Einddatum`,create_event:`Maak evenement aan`,event_info:`Evenement info`,participating_organizations:`Deelnemende bedrijven`,invite_links:`Uitnodigingslinks`,update_event:`Upd
9ate evenement`,organization_details:`Organisatie informatie`,email_senders_name:`Afzender e-mail`,enter_subdomain:`Voeg subdomein toe`,roles:`Rollen`,vacancy_details:`Waar staan je vacatures?`,vacancy_url:`Url Link naar vacatures`,vacancy_contact_email:`E-mailadres voor de sollicitaties`,vacancy_company_name:`Bedrijfsnaam getoond in Talentpoolmanager`,update_link:`Bijwerken`,go_to_page:`Ga naar pagina`,copy_page_url:`Kopieer de paginalink`,copy_tooltip_text:`Kopieer link voor E-mail Automation Tool`,copy_link_text:`Link gekopieerd naar klembord. Vervang {email} met het e-mailadres van de ontvanger`,shared_anonymous_profile:`De werkzoekende heeft interesse in een positie. Verzoek hun contactgegevens om verder te gaan.`,requested_full_profile:`We wachten op het antwoord van de werkzoekende om hun contactgegevens te verkrijgen.`,shared_full_profile:`Neem vriendelijk contact op met de werkzoekende om een afspraak te regelen.`,closed:`Het sollicitatieproces is nu gesloten.`,talentpool_name:`Naam van talentpool`,talentpool_description:`Beschrijving van talentpool`,search_talentpools:`Zoek talentpools`,talentpool_info:`Talentpool informatie`,upload_remove_logo:`Logo uploaden / verwijderen`,upload_logo:`Logo uploaden`,crop_image:`Afbeelding bijsnijden`,remove_image:`Afbeelding verwijderen`,cropped_image_preview:`Voorbeeld van bijgesneden afbeelding`,add_organizations:`Organisaties toevoegen`,add_organizations_to_talentpool:`Organisaties toevoegen aan talentpool`,organization_list:`Organisatielijst`,delete_organization_from_talentpool:`Organisatie verwijderen uit talentpool`,add_talentpool:`Talentpool toevoegen`,enter_talentpool_name:`Voer de naam van de talentpool in`,enter_talentpool_description:`Voer de beschrijving van de talentpool in`,short_description:`Een korte beschrijving van de talentpool, zoals getoond wordt aan de werkzoekenden.`,talentpool_name_marketed:`De naam van de talentpool, zoals getoond wordt aan de werkzoekenden.`,create_talentpool:`Talentpool aanmaken`,update_talentpool:`Talentpool bijwerken`,talentpool_list:`Lijst met talentpools`,initiated_by_hiring_manager:`Geïnitieerd door eigen organisatie`,initiated_by_job_seeker:`Geïnitieerd door werkzoekende`,select_active_applications:`Selecteer vacature`,go_back:`Ga terug`,modified:`gewijzigd`,select_location:`Selecteer Locatie`,ask_for_candidate_information:`Vraag om kandidaatinformatie`,cv_not_relevant_for_vacancy:`CV is niet relevant voor de vacature`,cv_relevant_for_vacancy:`CV is relevant voor de vacature`,show_all_running_applications:`Toon alle lopende aanvragen van de kandidaat`,view_anonymous_skills_cv:`Bekijk anoniem Talentpool-profiel`,request_contact_details:`Vraag contactgegevens op`,view_full_skills_cv:`Bekijk volledig Talentpool-profiel`,view_more:`Bekijk meer`,update_range:`Bereik bijwerken`,select_range:`Bereik selecteren`,no_data_found:`Geen gegevens gevonden`,no_matching_candidates_found:`Geen matchende kandidaten gevonden`,request_contact_info:`Verzoek om contactgegevens`,plan_interview:`Plan sollicitatiegesprek`,closed_applications:`Gesloten sollicitaties`,contact_info_request_message:`De werkzoekende is geïnteresseerd in een van je vacatures. Vraag hun contactgegevens om verder te gaan.`,awaiting_contact_info:`Wachten op contactgegevens`,awaiting_contact_info_reply_message:`In afwachting van het antwoord van de werkzoekende om hun contactgegevens te verkrijgen.`,contact_job_seeker_message:`Neem vriendelijk contact op met de werkzoekende om een afspraak te maken.`,application_process_closed_message:`Het sollicitatieproces is nu gesloten.`,selected_candidate:`Kandidaat:`,back:`Terug`,show_application:`Toon sollicitatie`,reload_applications:`Toepassingen herladen`,invited_date_time:`Uitnodigingsdatum en tijd`,remove_organization:`Organisatie verwijderen`,select_talentpool:`Selecteer Talentpool`,talentpool_filter:`Talentpool Filter`,include_only_filter:`Zoek binnen talentpools`,exclude_filter:`Sluit talentpools uit`,no_filter:`Selecteer een filteroptie`,select_talentpools:`Selecteer Talentpool(s)`,org_overview:`Overzicht van organisaties die deelnemen aan het evenement en op zoek zijn naar werkzoekenden voor hun vacatures.`,campaign_overview:`Via het aanmaken van deze link kunnen kandidaten uitgenodigd worden de talentpool in te stromen.`,email_sent:`E-mail is verzonden`,something_wrong_contact_admin:`Er is iets misgegaan! Je kunt contact opnemen met de beheerder`,issue_sending_email:`Er is een probleem opgetreden bij het verzenden van e-mail`,logout_success:`Succesvol uitgelogd`,user_updated:`Gebruiker bijgewerkt!`,try_again_something_wrong:`Er is iets misgegaan. Probeer het opnieuw`,authentication_failed:`Inloggen is niet gelukt`,authentication_failed_description:`Je sessie kon niet aan een account in de applicatie worden gekoppeld.`,authentication_unavailable:`Inloggen is tijdelijk niet beschikbaar`,authentication_unavailable_description:`Probeer het opnieuw.`,try_again:`Probeer opnieuw`,group_deleted:`Groep verwijderd!`,member_deleted:`Lid verwijderd!`,group_created_success:`Groep succesvol aangemaakt!`,upload_success:`Uploaden gelukt`,invited_success:`Uitgenodigd Succesvol!`,link_disabled_success:`Link succesvol uitgeschakeld!`,link_created_success:`Link succesvol aangemaakt`,error_generating_link:`Er is een fout opgetreden bij het genereren van de link`,link_copied_to_clipboard:`Link gekopieerd naar klembord. Opmerking: Bezoek de pagina en voer het e-mailadres in van de persoon die moet worden uitgenodigd`,link_updated:`Link bijgewerkt!`,new_org_created_success:`Nieuwe organisatie succesvol aangemaakt!`,org_updated_success:`Organisatie succesvol bijgewerkt!`,new_vacancy_added:`Nieuwe vacature toegevoegd`,vacancy_updated:`Vacature bijgewerkt`,org_deleted:`Organisatie verwijderd`,org_deleted_redirecting:`Organisatie verwijderd, doorsturen naar hoofdpagina!`,user_deleted_success:`Gebruiker succesvol verwijderd!`,vacancy_deleted:`Vacature verwijderd!`,user_added_to_org_success:`Gebruiker succesvol toegevoegd aan Organisatie!`,module_added_success:`Module succesvol toegevoegd!`,module_deleted_success:`Module succesvol verwijderd!`,org_added_to_talentpool:`Organisatie toegevoegd aan talentpool!`,talentpool_deleted:`Talentpool verwijderd!`,talentpool_logo_updated:`Talentpool logo bijgewerkt!`,org_logo_updated:`Organisatielogo bijgewerkt!`,talentpool_created_success:`Talentpool succesvol aangemaakt!`,talentpool_updated_success:`Talentpool succesvol bijgewerkt!`,no_cv_found:`Geen CV gevonden`,settings:`Instellingen`,select_date:`Selecteer datum`,add_modules:`Modules toevoegen`,email_sender_name:`De naam van de persoon die e-mails namens The Talentpool Community verstuurt`,sender_name_email_invite:`De afzender die in de e-mailuitnodiging moet verschijnen`,enter_name:`Voer naam in..`,fill_details_vacancy_url:`Vul de URLs in met betrekking tot waar de URLs wordt gehost. BV: Op www.olympia.nl worden alle banen gepubliceerd voor Olympia Uitzendbureau`,add_vacancy:`URL toevoegen`,select_theme:`Thema selecteren`,provide_prefix:`Je moet een voorvoegsel opgeven als je de zoek- en matchmodule selecteert.`,ecommerce_id:`E-commerce ID`,enter_ecommerce_id:`Voer E-commerce ID in`,ecommerce_id_tooltip:`Het e-commerce ID is het organisatie-ID uit WooCommerce / Wordpress die de abonnementsgegevens voor deze organisatie koppelt.`,ecommerce_details:`E-commerce Details`,ecommerce_id_updated_success:`E-commerce ID succesvol bijgewerkt`,invali
9d_uuid_format:`Ongeldig UUID-formaat`,update_datetime:`Bijwerkdatum`,offer_name:`Pakketnaam`,max_no_users:`Max Gebruikers`,max_candidates:`Max Kandidaten`,one_in_one_out_multiplier:`One in One Out Multiplier`,one_in_one_out_base_modifier:`Basis Modifier`,one_in_one_out_credit_threshold:`Kredietdrempel`,date_created:`Aanmaakdatum`,my_vacancy_details:`Mijn Vacaturegegevens`,add_vacancy_details:`Vacature details toevoegen`,update_vacancy_details:`Vacaturegegevens bijwerken`,enter_vacancy_url:`Voer de vacature-URL in`,enter_vacancy_contact_email:`Voer het e-mailadres van de contactpersoon voor de vacature in`,enter_vacancy_contact_name:`Voer de naam van de contactpersoon voor de vacature in`,organization_users:`Organisatiegebruikers`,organization_modules:`Organisatiemodules`,my_modules:`Mijn Modules`,activate_module:`Module activeren`,disable_module:`Module uitschakelen`,add_module:`Module toevoegen`,edit_vacancy_details:`Vacaturegegevens bewerken`,delete_vacancy_details:`Vacaturegegevens verwijderen`,vacancy_config_op_equals:`is gelijk aan`,vacancy_config_op_contains:`bevat`,vacancy_config_and:`EN`,vacancy_config_source_label:`Bron`,vacancy_config_source_jobdigger:`JobDigger`,vacancy_config_source_intelligence_group:`Intelligence Group`,vacancy_config_max_age_days:`Max. leeftijd (dagen)`,vacancy_config_max_age_default:`standaard`,vacancy_config_run_probe:`Probe uitvoeren`,vacancy_config_probe_uses_uri_host:`Bij opslaan worden alle matchregels in de lijst meegestuurd. De probe is apart: die heeft één pagina-URL nodig, afgeleid van de eerste domeinregel hierboven.`,vacancy_config_probe_needs_uri_host:`Voeg minstens één domeinregel met een waarde toe zodat de probe een pagina-URL kan gebruiken.`,vacancy_config_save_confirm:`Bevestigen en opslaan`,vacancy_config_save_without_confirm:`Opslaan zonder gecontroleerde vacature`,vacancy_config_save_need_example_or_use_unverified:`Kies âOpslaan zonder gecontroleerde vacatureâ, of voer de probe opnieuw uit tot er een voorbeeldvacature is.`,vacancy_config_probe_before_save:`Voer eerst de probe uit voordat je opslaat.`,vacancy_config_source_url_wildcard:`URL-patroon moet een * bevatten.`,vacancy_config_match_rules:`Matchregels`,vacancy_config_field_label:`Matchveld`,vacancy_config_operator_label:`Operator`,vacancy_config_value_label:`Waarde`,vacancy_config_add_rule:`Regel toevoegen`,vacancy_config_field_option_uri_host:`Domein`,vacancy_config_field_option_source_url:`URL-patroon`,vacancy_config_field_option_external_organization_id:`Intelligence Group-organisatie-ID`,vacancy_config_source_url_placeholder:`URL-patroon met * (verplicht)`,vacancy_config_intelligence_group_id_placeholder:`Organisatie-ID`,vacancy_config_intelligence_group_id_required:`Vul het Intelligence Group-organisatie-ID in.`,vacancy_config_intelligence_group_id_number:`Intelligence Group-organisatie-ID moet een nummer zijn.`,vacancy_config_intelligence_group_scraped:`Gescrapet met de Intelligence Group Vacancy Scraper (#{{id}})`,vacancy_config_probe_match_value_required:`Vul het domein of het URL-patroon in voor deze matchregel.`,vacancy_config_probe_example_header:`Voorbeeldmatch`,vacancy_config_probe_example_confirm:`Bevestig dat deze vacature bij jouw organisatie hoort.`,vacancy_config_validation_max_age_days:`Max. leeftijd (dagen) moet leeg zijn (standaard), 0 zijn, of minstens {{minDays}} voor bron {{source}}.`,vacancy_config_error_duplicate_vacancy_url:`Jouw organisatie heeft al een vacatureconfiguratie voor dit domein / URL-patroon.`,vacancy_config_error_vacancy_url_used_by_other_org:`Dit domein / URL-patroon wordt al door een andere organisatie gebruikt.`,running_application:`lopende sollicitatie`,running_applications:`lopende sollicitaties`,view:`Bekijk`,already_applied:`Sollicitatie loopt`,job_seekers:`Job seekers`,invite_link_for_unknown_job_seekers:`Uitnodigingslink voor onbekende werkzoekenden, te gebruiken in algemene campagnes, zoals een banner`,invite_link_for_known_job_seekers:`Uitnodigingslink voor bekende werkzoekenden, te gebruiken in e-mail automatiserings tools, zoals ATS`,setup_org:`Voltooi registratie`,email_sender_tooltip:`De naam van de afzender die wordt gebruikt voor het verzenden van e-mails naar de kandidaten. Bijvoorbeeld: werken bij mijnbedrijf`,email_sender_email_tooltip:`Het e-mailadres waar de sollicitaties binnen komen. Bijvoorbeeld: [email protected]`,select_priv_fil:`Selecteer privéfilters`,show_priv_cand:`Toon privékandidaten`,add_url:`Bevestig dat deze vacature van je organisatie is`,search_url:`Waar staan je vacatures?`,my_organization:`Mijn Organisatie`,invali
9d_url:`Url is niet geldig. Url moet altijd met https:// beginnen`,enter_email_senders_name:`werken bij mijnbedrijf`,enter_email_placeholder:`[email protected]`,generic_email:`e-mailadres`,enter_url:`https://werkenbij.jouworg.nl/vacatures`,search_match_plus:`Zoek en Match Plus`,terms_and_cond:`Voorwaarden`,manage_subscription:`Beheer abonnement`,please_enter_url:`Voer minimaal één URL in`,data_warn:`Bij het verwijderen gaan alle gegevens verloren.`,email_sent_from:`E-mails naar werkzoekenden worden verzonden vanuit`,welcome_tp_manager:`Welkom in de Talentpool Manager!`,ur_sub_is_active:`Je abonnement is niet actief`,please_renew:`Verleng het via de onderstaande link om toegang tot je account te krijgen.`,renew_sub:`Abonnement verlengen`,help_text_search_org:`Als je de vacature-URL die je zoekt niet kunt vinden, stuur dan een e-mail naar [email protected] met de URL, en we zullen binnen een paar dagen reageren. Na het voltooien van je registratie kun je aan de slag. Succes!`,referrals_only_subscription_intro:`Je huidige abonnement bevat alleen 'Doorverwijzen', zonder de 'Zoek & Match Plus' module. Geïnteresseerd in 'Zoek & Match Plus'? Neem contact met ons op via`,subscription_usage:`Abonnementsgebruik`,number_of_users:`Aantal Gebruikers`,max_users:`Maximaal aantal gebruikers`,limit_exceeded:`Limiet overschreden. Neem alstublieft contact op met de accountmanager.`,no_of_cand_requests:`Aantal volledige CV's gedeeld met`,max_cand_req:`Maximaal aantal kandidatenaanvragen`,inv_limit_reached:`Uitnodigingslimiet bereikt`,no_cand_invitations:`Aantal nieuwe kandidaten in The Talentpool Community dankzij uitnodiging van`,no_cand_send_inv:`Aantal volledige CV's dat`,still_request:`nog kan opvragen`,inv_more_cand:`Nodig meer kandidaten uit zodat je kandidaatinformatie kunt opvragen.`,you_can:`Je kunt`,job_seekers_end:`volledige CV's opvragen.`,one_in_one_out_explaination:`Als een organisatie 1 in 1 uit heeft moet het aantal kandidaten dat de organisatie uitnodigt altijd groter zijn dan het aantal kandidaten waarvan hij het volledig profiel opvraagt. `,apply_for_one_in_out:`Pas 1 in 1 uit regel toe.`,always_show_candidate_names:`Altijd kandidaatnamen tonen`,skip_candidate_approval_full_cv_sharing:`Kandidatengoedkeuring voor volledig cv delen overslaan`,always_show_candidate_personal_details:`Altijd kandidaat persoonsgegevens tonen`,allow_hide_non_pool_vacancies:`Toestaan om niet-pool vacatures te verbergen voor pool leden`,allow_hide_non_pool_vacancies_tooltip:`Als deze optie is ingeschakeld, kunnen leden van de talentenpool alleen vacatures zien van organisaties die zijn gekoppeld aan de talentenpools waarvan zij lid zijn. Let op: dit kan een lid ertoe aanzetten om de talentenpool te verlaten!`,register_job_seekers:`geregistreerde werkzoekenden`,activated_job_seekers:`geactiveerde werkzoekenden`,total_full_profile_requests:`totaal volledige profielaanvragen`,total_full_profile_shared:`totaal volledige profielen gedeeld`,subscription_fetch_error:`We hebben een probleem ondervonden bij het ophalen van je abonnementsinformatie. Onze technici zijn op de hoogte gebracht en werken zo snel mogelijk aan een oplossing. Bedankt voor je geduld.`,show_run_app:`lopende sollicitatie`,show_run_apps:`lopende sollicitaties`,maybe_a_match:`Misschien een match`,not_a_match:`Geen goede match`,no_label:`Zonder label`,select_status:`Selecteer status`,match_status:`Wedstrijdstatus`,cand_location:`Locatie van de kandidaat`,place_status:`bijv. Sollicitatie loopt`,place_edu:`bijv. MBO, HBO`,place_location:`bijv. Amsterdam`,profession:`Beroep`,invitation_content_link:`Nodig een kandidaat uit via een link`,invitation_content_qr_code:`Nodig een kandidaat uit via een QR code`,invitation_content_website:`Nodig een kandidaat uit via een aanmeldknop`,invitation_content_ats:`Nodig een kandidaat uit via ATS / extern systeem`,invitation_content_email:`Kandidaat per e-mail uitnodigen`,purpose:`Doel`,implementation:`Implementatie`,client_impact:`Impact op de klant`,via_link_purpose:`Voor social media posts en e-mailmarketing.`,via_link_implementation:`Kopieer de link aan de rechterkant en plak deze in je voorkeursprogramma.`,via_link_
9impact:`Kandidaten die deze link gebruiken, worden doorgestuurd naar een aanmeldingspagina.`,via_link_impact_talentpool:`Kandidaten die deze link gebruiken, worden doorgestuurd naar een aanmeldingspagina. Na aanmelding wordt je talentpool in de app weergegeven als een filter om alle vacatures van de deelnemende bedrijven in de talentpool te tonen.`,via_qr_purpose:`Voor evenementen, posters, groepsaanmeldingen en campagnemateriaal.`,via_qr_implementation:`Kopieer de QR-code naar je klembord en plak deze waar je maar wilt. Je kunt de QR-code ook downloaden in PNG-formaat.`,via_qr_impact:`Kandidaten die deze QR-code gebruiken, worden doorgestuurd naar een aanmeldingspagina.`,via_qr_impact_talentpool:`Kandidaten die deze QR-code gebruiken, worden doorgestuurd naar een aanmeldingspagina. Na aanmelding wordt je talentpool in de app weergegeven als een filter om alle vacatures van de deelnemende bedrijven in de talentpool te tonen.`,via_website_purpose:`Voor een website of e-mail footer.`,via_website_implementation:`Kopieer de code aan de rechterkant en voeg de html-code toe aan je website.`,via_website_impact:`Kandidaten die op de aanmeldknop klikken, worden doorgestuurd naar een aanmeldingspagina.`,via_website_impact_talentpool:`Kandidaten die op de aanmeldknop klikken, worden doorgestuurd naar een aanmeldingspagina. Na aanmelding wordt je talentpool in de app weergegeven als een filter om alle vacatures van de deelnemende bedrijven in de talentpool te tonen.`,via_ats_purpose:`Voor integratie met je ATS/geautomatiseerd e-mailsysteem.`,via_ats_implementation:`Om het aanmeldproces van het Talentpool-profiel te automatiseren, kun je het integreren met je ATS of geautomatiseerde e-mailsysteem. De integratie hangt af van het specifieke ATS dat je gebruikt. Aangezien je e-mailsysteem waarschijnlijk HTML-sjablonen ondersteunt, hebben we een e-mailsjabloon voor je referentie gemaakt. Vervang eenvoudig de {email} placeholder door het e-mailadres van de kandidaat. Je kunt natuurlijk de text naar eigen wens verder aanpassen.`,via_ats_impact:`Kandidaten die op de aanmeldlink in de e-mail klikken, worden doorgestuurd naar een aanmeldingspagina.`,via_ats_impact_talentpool:`Kandidaten die op de aanmeldlink in de e-mail klikken, worden doorgestuurd naar een aanmeldingspagina. Na aanmelding wordt je talentpool in de app weergegeven als een filter om alle vacatures van de deelnemende bedrijven in de talentpool te tonen.`,partial_match:`Gedeeltelijke overeenkomst`,found_on_cv:`Gevonden op CV`,found_on_similar_skill:`Gevonden op vergelijkbare vaardigheid`,search_in_cv_of_candidates:`Zoek in CV van kandidaten`,min:`Min`,max:`Max`,my_account:`Mijn account`,account:`Account`,logout:`Uitloggen`,filter:`Filter`,apply_filter:`Filter toepassen`,City_Province:`Stad/provincie`,range:`Bereik`,location:`Locatie`,skill_capital:`VAARDIGHEDEN`,potential_match:`Misschien een match`,job_seeker:`Werkzoekende`,change_username:`Wijzig gebruikersnaam`,contact_support:`Contact Ondersteuning`,the_talentpool_community:`The Talentpool Community`,home_welcome:`Welkom bij je Talentpool Manager!`,match_candidate:`Kandidaten matchen`,find_candidate:`Vind de beste kandidaten`,top_candidate:`Top kandidaten`,refer_applicant:`Kandidaat/sollicitant doorverwijzen`,reject_refer_applicant:`Verwijs afgewezen sollicitanten door naar de talentpool`,invite_candidate:`Kandidaten uitnodigen`,invite_best_candidate:`Nodig de beste kandidaten uit`,help_title_1:`Wat zie ik op dit scherm?`,help_title_2:`Wat gebeurd er als ik op de knop Vraag om kandidaatinformatie druk?`,help_title_3:`Hoe wordt de match gemaakt?`,help_body_1:` Op deze pagina vind je een overzicht van de beste kandidaten voor de vacature die je hebt geselecteerd. De kandidaten zijn gerangschikt op basis van hun Skillsmatch met de vacature. Deze Skillsmatch wordt weergegeven boven het anonieme Talentpool-profiel van elke kandidaat. Hoe donkerder de kleur, hoe beter de match tussen de kandidaat en de vacature. Je kan in contact komen met de kandidaat door op de knop Vraag om kandidaatinformatie te drukken.`,help_body_1_1:`Je kunt de lijst van kandidaten verder filteren op opleidingsniveau en locatie. Als je de Talentpool module hebt afgenomen en jouw bedrijf onderdeel is van een of meerdere Talentpools, kun je ook het anonieme Talentpool-profiel van de kandidaten bekijken die uitgenodigd zijn voor deze Talentpools.`,help_body_2:`Door het opvragen van de kandidaatinformatie wordt er namens je een sollicitatie geopend voor de kandidaat. De kandidaat ontvangt een e-mail om te reageren en hu
9n volledige CV te verstrekken, inclusief persoonlijke informatie, zodat je rechtstreeks contact kunt opnemen met de kandidaat, zowel telefonisch als via e-mail. Zodra het sollicitatieverzoek naar de kandidaat is verzonden, kun je de sollicitatiestatus controleren op de pagina Alle sollicitaties.`,help_body_3:`Met behulp van de vaardigheden en het beroep van de vacature vergelijken we deze met de profielen van werkzoekenden. De groene kleur in het matchgebied geeft een perfecte match weer op werkervaring of vaardigheidsniveau, terwijl de grijze kleur een gedeeltelijke match weergeeft.`,help:`Help`,skill:`Vaardigheden`,matching_skill:`Vaardigheden matchen`,contact:`Contact`,invite_headline_line_1:`Jouw talenten verdienen`,invite_headline_line_2:`de juiste match!`,invite_referral_line:`<strong>{{name}}</strong> verwijst je door naar jouw volgende kans.`,invite_pool_referral_line:`<strong>{{organizationName}}</strong> verwijst je door naar jouw volgende kans. De <strong>{{groupName}}</strong>.`,invite_body_1:`Via The Talentpool Community word je direct gekoppeld aan vacatures die bij jou passen, van werkgevers door heel Nederland. Daarnaast kunnen onze 90+ aangesloten werkgevers jouw profiel bekijken en jou actief benaderen.`,invite_pool_body_1:`Via The Talentpool Community word je direct gekoppeld aan vacatures die bij jou passen. Daarnaast kunnen aangesloten werkgevers van The Talentpool Community jouw profiel bekijken en jou actief benaderen.`,invite_body_2:`Maak gratis een profiel aan door je cv te uploaden of je ervaring in te vullen. Aan de hand van AI wordt jouw Talentpool-profiel opgesteld, inclusief jouw skills. Zo ben je zichtbaar voor werkgevers én kun je zelf direct solliciteren op alle beschikbare vacatures in Nederland.`,invite_pool_body_2:`Maak gratis een profiel aan door je cv te uploaden of je ervaring in te vullen. Aan de hand van AI wordt jouw Talentpool-profiel opgesteld, inclusief jouw skills. Zo ben je zichtbaar voor werkgevers én kun je zelf direct solliciteren op beschikbare vacatures in Nederland.`,invite_pool_existing_profile:`Heb je al een Talentpool-profiel? Log dan hier in om toegevoegd te worden aan de <strong>"{{name}}"</strong>.`,invite_join_community_title:`Word lid van <span>The Talentpool Community</span>`,invite_join_pool_title:`Word lid van de <span>{{name}}</span>`,invite_create_subtitle:`Vul je e-mailadres in om een profiel aan te maken of in te loggen`,invite_email_placeholder:`Typ hier`,invite_start_now:`Start nu`,invite_form_label:`Uitnodigingsformulier`,validation_old_password_required:`Oud wachtwoord is verplicht`,validation_new_password_required:`Nieuw wachtwoord is verplicht`,validation_confirm_password_required:`Bevestig wachtwoord is verplicht`,validation_password_min_length:`Wachtwoord moet minimaal 6 tekens bevatten`,validation_this_required:`Dit is verplicht`,validation_must_be_string:`Dit moet een tekst zijn`,validation_invalid_base64:`Ongeldige base64 string`,validation_invalid_url:`Ongeldige URL`,validation_unrecognized_url:`URL niet herkend`,validation_enter_at_least_one_url:`Voer minimaal één URL in`,validation_no_special_chars:`Mag geen speciale tekens of cijfers bevatten`,validation_name_no_at_dot:`Naam mag geen @ of . bevatten`,validation_add_vacancy_url_if_module:`Voeg vacature URL toe als zoek- en matchmodule is geselecteerd`,validation_add_email_if_module:`Voeg e-mail toe als zoek- en matchmodule is geselecteerd`,validation_vacancy_url_required_if_contact_filled:`Als vacancyContactEmail of vacancyCompanyName is ingevuld, is vacancyUrl verplicht`,validation_passwords_dont_match:`Wachtwoorden komen niet overeen`,validation_old_new_password_same:`Oud wachtwoord en nieuw wachtwoord kunnen niet hetzelfde zijn`,validation_invalid_email:`Ongeldig e-mailadres`,validation_email_required:`E-mailadres is verplicht`,validation_password_required:`Wachtwoord is verplicht`,initiated_by:`Geïnitieerd door`,downloading:`Downloaden...`,token_expired:`Token verlopen`,logged_in:`Ingelogd`,logged_out:`Uitgelogd`,api_documents:`API Documenten`,application_date:`Sollicitatiedatum`,notified_applicant:`Kandidaat genotificeerd`,continue:`Ga verder`,uploading:`Uploaden...`,loading:`Laden...`,download_pdf:`PDF downloaden`,upload:`Uploaden`,send:`Versturen`,error_occurred_try_again:`Er is een fout opgetreden. Probeer het later opnieuw.`,something_went_wrong_tr
9y_again:`Er is iets misgegaan. Probeer het later opnieuw.`,sentry_error_title:`Er is iets misgegaan!`,sentry_error_message:`Houd vol totdat we de fout hebben opgelost. Je kunt ook proberen de pagina te vernieuwen of uit te loggen.`,reload_app:`App herladen`,both:`Beiden`,admin:`Admin`,labor_market:`Arbeidsmarkt`,analytics:`Analytics`,api:`API`,invite_to_join:`Uitnodigen om deel te nemen`,invite_to_join_talentpool:`Uitnodigen om deel te nemen aan talentpool`,sign_up_now:`Nu aanmelden`,company_name:`Bedrijfsnaam`,update_location:`Locatie bijwerken`,select_city:`Selecteer stad`,page_not_found:`Pagina niet gevonden`,edit_role:`Rol bewerken`,select_role:`Selecteer rol`,no_data:`Geen gegevens`,no_data_to_display:`Geen gegevens om weer te geven`,vacancy_not_found:`Vacature niet meer beschikbaar`,vacancy_not_found_help:`Deze vacature is mogelijk verwijderd of de link is verouderd. Zoek opnieuw naar vacatures.`,preview:`Voorbeeld`,copy_qr:`QR kopiëren`,current_image:`Huidige afbeelding`,update_modules:`Modules bijwerken`,modules_list:`Modules lijst`,delete_talentpool:`Talentpool verwijderen`,primary_color:`Primaire kleur`,secondary_color:`Secundaire kleur`,tertiary_color:`Tertiaire kleur`,other_color:`Andere kleur`,one_in_one_out:`Eén in, één uit`,invitation_successfully_sent:`Uitnodiging succesvol verzonden!`,now_just_login:`Nu alleen nog inloggen`,error_invalid_url_parameters:`Fout ongeldige URL parameters`,you_have_successfully_invited:`Je hebt je kandidaat succesvol uitgenodigd!`,unfortunately_link_not_valid:`Helaas, deze link is niet (meer) geldig!`,invite_failed_contact_message:`Vragen? Neem <a href="mailto:[email protected]">contact</a> met ons op`,contact_us:`Neem contact met ons op`,email_not_found_go_back:`E-mail niet gevonden ga terug naar inlogpagina`,working_at_company:`Werken bij bedrijf`,coaching_module:`Begeleidingsmodule`,job_market_analysis_module:`Arbeidsmarktanalyse module`,search_and_match_module:`Zoek- en matchmodule`,admin_module:`Beheermodule`,search_and_match_plus_module:`Zoek- en match Plus module`,event_manager_module:`Evenementbeheer module`,talentpool_manager_module:`Talentpoolbeheer module`,vacancies_management_module:`Vacaturebeheer module`,vacancy_management_section:`Vacaturebeheer`,invitation_link_for_email:`Uitnodigingslink voor in mail`,sample_text_for_email:`Voorbeeldtekst om te gebruiken in de mail`,or_invite_multiple_users:`OF je kunt meerdere gebruikers uitnodigen`,filters:`Filters`,found_data_in:`Gevonden gegevens in:`,skills:`Skills`,direct_invitation:`Directe uitnodiging:`,invite_members_button:`Leden uitnodigen`,generate_qr_code:`QR-code genereren`,no_more_data:`Geen gegevens meer`,uitstroom:`Uitstroom`,vacatures:`Vacatures`,kok:`Kok`,medewerker_fastservice:`Medewerker Fastservice`,ondernemer_horeca:`Ondernemer Horeca`,via_ats_email_template:`Hoi, <br/><br/>Je kent ons als een bedrijf dat voor je gaat. We hebben goed nieuws als je op zoek bent naar de baan die écht past!<br/><br/>Sinds kort maken we deel uit van een groep bedrijven die rechtstreeks kunnen matchen met al jouw skills en de vacatures die zij hebben. Wil je op die manier ook zichtbaar worden? Pak 10 minuten de tijd en vul je Talentpool-profiel in via de <a href="{{linkUrl}}">link</a>.<br/><br/>Maak deel uit van dé nieuwe manier van zoeken en matchen, welkom in onze community ð<br/><br/>Succes!<br/><br/>Ps. Je ziet zélf waarmee je gematcht wordt en kan rechtstreeks je belangstelling kenbaar maken bij het bedrijf met de meest passende vacature`,download_qr:`Download QR`,copied:`Gekopieerd!`,block_content_title:`Voltooi je registratie en ga aan de slag.`,block_content_subtitle:`De Talentpool gebruik je voor het zoeken van kandidaten bij je vacatures. Om aan de slag te gaan moeten we eerst je registratie voltooien met nog twee gegevens:`,block_content_accordion_1_title:`1. Welk mailadres moeten we gebruiken?`,block_content_accordion_1_body:`<p>Vanuit de Talentpool Manager ga je straks kandidaten benaderen voor jouw vacatures. Bij het zoeken naar geschikte kandidaten zie je in eerste instantie geanonimiseerde CV's. Vind je een kandidaat interessant, dan kan je deze kandidaat vragen zijn volledige CV met je te delen. Vanuit de Talentpool Manager sturen we deze kandidaat een e-mail met het verzoek z
9ijn of haar CV met je te delen.</p><p>Voor het versturen van deze email hebben we het e-mailadres van je bedrijf nodig dat voor sollicitaties wordt gebruikt (bijvoorbeeld <b>[email protected]</b>) en de omschrijving daarvan (bijvoorbeeld <b>Werken bij bedrijf</b>). Deze gegevens kun je invullen onder Mijn Organisatie.</p>`,block_content_accordion_2_title:`2. Waar zijn je vacatures te vinden?`,block_content_accordion_2_body:`<p>Tenslotte willen we nog weten waar je vacatures op het internet staan (bijvoorbeeld <b>werkenbijbedrijf.nl</b>). We vragen je om de link naar je vacatures op te geven.</p><p>Het kan overigens zijn dat je vacatures nog niet door ons gevonden kunnen worden. In dat geval graag een e-mail sturen naar [email protected] met de URL en wij reageren binnen enkele dagen. Na het voltooien van je registratie kan je aan de slag. Succes!</p>`,invite_success_email_sent:`Er is een e-mail verstuurd naar het account`,invite_success_new_account:`Nieuw account? Dan ontvang je een bevestigingsmail`,invite_success_login:`Log direct in op The Talentpool Community`,example_csv:`Voorbeeld CSV`,remove_existing_logo:`Bestaand logo verwijderen`,delete_talentpool_confirmation:`Wil je de <span class="text-purple fw-semibold">{{itemName}}</span> verwijderen?`,user_successfully_invited:`Gebruiker {{email}} succesvol uitgenodigd!`,delete_vacancy_confirmation:`Wil je de <span class="text-purple fw-semibold">{{itemName}}</span> vacaturegegevens verwijderen?`,delete_group_confirmation:`Wil je de <span class="text-purple fw-semibold">{{itemName}}</span> verwijderen? {{deleteing_will_result_in_loss}}`,vacancy_details_text:`vacaturegegevens`,invite_to:`Uitnodigen voor`,deleteing_will_result_in_loss:`Verwijderen resulteert in verlies van alle gegevens.`,extra_credits:`Extra credits`,extra_credits_unlock_tooltip:`Verwijs minimaal {{threshold}} kandidaten door om je extra credits te ontgrendelen!`,common:{loading:`Laden...`,cancel:`Annuleren`,not_available:`-`},vacancy_management:{create_new:`Nieuwe vacature aanmaken`,create:{title:`Nieuwe Vacature aanmaken`},edit:{title:`Vacature bewerken`},form:{function_title:`Functietitel`,location:`Locatie`,location_city:`Locatie stad`,location_state:`Locatie provincie`,location_country:`Locatie land`,contract_type:`Contracttype`,select_contract_type:`Selecteer contracttype`,work_schedule:`Dienstverband`,select_work_schedule:`Selecteer dienstverband`,hours_per_week_min:`Uren per week (Min)`,hours_per_week_max:`Uren per week (Max)`,hours_per_week:`Uren per week`,work_environment:`Werkomgeving`,select_work_environment:`Selecteer werkomgeving`,compensation_type:`Vergoedingstype`,select_compensation_type:`Selecteer vergoedingstype`,compensation_min:`Vergoeding Min`,compensation_max:`Vergoeding Max`,experience_years_min:`Ervaringsjaren (Min)`,experience_years_max:`Ervaringsjaren (Max)`,starting_date:`Startdatum`,expiry_date:`Vervaldatum`,work_days:`Werkdagen`,day_parts:`Dagdelen`,job_description:`Functieomschrijving`,selected_location:`Geselecteerde locatie`,min_education_level:`Minimaal opleidingsniveau`},placeholders:{function_title:`Voer de functietitel in`,job_description:`Voer gedetailleerde functieomschrijving in...`,location_search:`Zoek naar een locatie...`,hours_min:`bijv. 32`,hours_max:`bijv. 40`,compensation_min:`bijv. 3000`,compensation_max:`bijv. 5000`,experience_min:`bijv. 2`,experience_max:`bijv. 5`,date_format:`dd-mm-jjjj`,min_education_level:`Selecteer minimaal opleidingsniveau`},enums:{contract:`Contract`,freelance:`Freelance`,permanent:`Vast`,temporary:`Tijdelijk`,internship:`Stage`,volunteer:`Vrijwilliger`,other:`Anders`,fulltime:`Voltijd`,parttime:`Deeltijd`,full_time:`Voltijd`,part_time:`Deeltijd`,flexible:`Flexibel`,shift:`Ploegendienst`,shift_work:`Ploegendienst`,remote:`Op afstand`,hybrid:`Hybride`,"on-site":`Op locatie`,on_site:`Op locatie`,hourly:`Per uur`,monthly:`Per maand`,monthly_salary:`Maandsalaris`,hourly_rate:`Uurtarief`,daily_rate:`Dagtarief`,project_fee:`Projecttarief`,monday:`Maandag`,tuesday:`Dinsdag`,wednesday:`Woensdag`,thursday:`Donderdag`,friday:`Vrijdag`,saturday:`Zaterdag`,sunday:`Zondag`,morning:`Ochtend`,afternoon:`Middag`,evening:`Avond`,night:`Nacht`},table:{function_title:`Functietitel`,location:`Locatie`,status:`Status`,starting_date:`Startdatum`,expiry_date:`Vervaldatum`,created:`Aangemaakt`,updated:`Bijgewerkt`},status:{active:`Actief`,inactive:`Inactief`},filter:{status:`Filter op Status`,all:`Alle vacatures`,inactive:`Inactief`},network_error_mock_data:`Netwerkfout - gebruik mock data voor ontwikkeling`,fetch_error:`Fout bij ophalen vacatures`,fetch_vacancy_error:`Fout bij laden vacaturedetails`,vacancy_not_found:`Vacature niet gevonden`,create_error:`Fout bij aanmaken vacature`,update_error:`Fout bij bijwerken vacature`,creating:`Aanmaken...`,updating:`Bijwerken...`,create_vacancy:`Vacature aanmaken`,update_vacancy:`Vacature bijwerken`,archive_error:`Fout bij archiveren vacature`,archive_vacancy:`Vacature archiveren`,archive_vacancy_confirmation:`Weet je zeker dat je deze vacature wilt archiveren? De vacature zal niet meer publiekelijk zichtbaar zijn.`,continue_and_archive:`Doorgaan & archiveren`,archiving:`Archiveren...`,unarchive_vacancy:`Vacature heractiveren`,unarchive_vacancy_confirmation:`Weet je zeker dat je deze vacature wilt heractiveren? De vacature zal weer publiekelijk zichtbaar worden.`,continue_and_unarchive:`Doorgaan & heractiveren`,unarchiving:`Heractiveren...`,development_mode:`Ontwikkelingsmodus`,n
9o_vacancies_found:`Geen vacatures gevonden`,no_vacancies_message:`Er zijn momenteel geen vacatures beschikbaar.`,validation:{required_fields:`Functietitel en functieomschrijving zijn verplicht`,location_required:`Locatie is verplicht`,function_title_required:`Functietitel is verplicht`,function_title_min:`Functietitel moet minimaal 3 tekens bevatten`,function_title_max:`Functietitel mag maximaal 255 tekens bevatten`,job_description_required:`Functieomschrijving is verplicht`,job_description_min:`Functieomschrijving moet minimaal 20 tekens bevatten`,location_country_iso2:`Land moet een geldige ISO 3166-1 alpha-2 code zijn (bijv. NL, BE)`,location_zip_max:`Postcode mag maximaal {{max}} tekens bevatten`},update_forbidden:`Deze vacature kan niet worden bewerkt omdat deze door een externe bron wordt beheerd.`},admin_vacancy_management:{title:`Vacaturebeheer`,vacancies_for_organization:`Vacatures voor {{organization}}`,back_to_organizations:`Terug naar organisaties`,view_vacancies:`Bekijk vacatures`,fetch_organizations_error:`Fout bij ophalen organisaties`,no_organizations_found:`Geen organisaties met vacatures gevonden`,no_organizations_message:`Er zijn momenteel geen organisaties die vacatures hebben.`,table:{organization_name:`Organisatienaam`,organization_subdomain:`Organisatie vacaturesite`,actions:`Acties`}},warning_modal:{title:`Wil je doorgaan zonder op te slaan? Je wijzigingen gaan dan verloren.`,cancel:`Terug`,continue:`Doorgaan zonder op te slaan`},apply_for_position:`Solliciteer voor Functie`,job_title:`Functietitel`,full_name:`Volledige naam`,phone:`Telefoon`,city:`Woonplaats`,confirm_email:`Bevestig e-mail`,available_from:`Beschikbaar vanaf`,motivation_questions_remarks:`Motivatie, vragen en/of opmerkingen`,upload_cv:`CV uploaden`,accepted_formats_pdf_doc_docx:`Geaccepteerde formaten: PDF, DOC, DOCX`,i_agree_to_terms_and_conditions:`Ik ga akkoord dat The Talentpool Community mijn gegevens mag verwerken en deze kan delen met de organisatie waarbij ik solliciteer`,submit_application:`Sollicitatie Indienen`,application_submitted_successfully:`Sollicitatie succesvol ingediend!`,error_submitting_application:`Fout bij indienen sollicitatie`,error_loading_page:`Fout bij laden pagina`,invalid_organization_id:`Ongeldige organisatie ID`,emails_do_not_match:`E-mailadressen komen niet overeen`,must_agree_terms:`Je moet akkoord gaan met de algemene voorwaarden`,organization_not_found:`Organisatie niet gevonden`,unexpected_response_status:`Onverwachte reactie van server`,apply_at_organization:`Solliciteer bij {{organization}}`,application_form:`Sollicitatieformulier`,available_from_must_be_today_or_future:`Beschikbaar vanaf datum moet vandaag of in de toekomst zijn`,save_anyway:`Toch opslaan`,pool_exclusivity_days:`Maximum pool-exclusiviteit (dagen)`,pool_exclusivity_days_tooltip:`Maximum aantal dagen dat een talentenpool nieuwe leden exclusief mag houden. Zet op 0 om exclusiviteitsopties voor alle pools van deze organisatie uit te schakelen.`,talentpool_exclusivity_days:`Exclusiviteitsperiode voor leden (dagen)`,talentpool_exclusivity_days_tooltip:`Aantal dagen dat nieuwe leden exclusief blijven voor organisaties met toegang tot deze pool (0 = niet exclusief). Mag het maximum van de organisatie niet overschrijden.`,hide_non_pool_vacancies_pool:`Verberg niet-pool vacatures voor pool leden`,hide_non_pool_vacancies_pool_tooltip:`Als deze optie is ingeschakeld, kunnen leden van de talentenpool alleen vacatures zien van organisaties die zijn gekoppeld aan de talentenpools waarvan zij lid zijn. Let op: dit kan een lid ertoe aanzetten om de talentenpool te verlaten!`,exclude:`Uitsluiten`,enter_days:`Voer aantal dagen in`,no_limit:`Geen limiet`,never:`nooit`,until_expiry:`Vervalt`,expired:`Verlopen`,disabled:`Uitgeschakeld`,members_exclusive_days:`Nieuwe leden zijn exclusief te zien voor organisaties met toegang tot deze pool voor {{days}} dagen`,new_members_exclusive:`Nieuwe talentenpool leden zijn aanvankelijk exclusief te zien voor organisaties met toegang tot deze pool`,candidates_stats_header:`Over de {{totalCountCandidates}} door {{organization}} doorverwezen kandidaten`,candidates_stats_sub_header:`Aantal keer dat een door {{organization}} doorverwezen kandidaat`,approached_for_vacancy:`is benaderd voor een vacature`,applied_for_vacancy:`zelf heeft gesolliciteerd op een vacature`,shared_full_cv:`hun volledige CV heeft gedeeld`,hours_ago:`uur geleden`,days_ago:`dagen geleden`,days:`dagen`,application_details:`Sollicitatiedetails`,date_applied:`Sollicitatiedatum`,current_status:`Huidige status`,status:`Status`,notes:`Notities`,add_note:`Voeg een notitie toe`,no_notes_found:`Geen notities gevonden`,view_talentpool_profile:`Bekijk Talentpool-profiel`,private_for_days_in_talentpool:`Privé voor {{days}} dagen in talentpool {{talentpool}}`,"recruitment.candidate":`Candidaat`,"recruitment.vacancy_title":`Vacature titel`,"recruitment.column.new":`Nieuw binnen`,"recruitment.column.in_progress":`In procedure`,"recruitment.column.completed":`Afgerond`,"recruitment.status.applied":`Gesolliciteerd`,"recruitment.status.approached":`Benaderd`,"recruitment.status.first_interview":`Eerste gesprek`,"recruitment.status.second_interview":`Tweede gesprek`,"recruitment.status.negotiation":`Onderhandeling`,"recruitment.status.hired":`Aangenomen`,"recruitment.status.rejected":`Afgewezen`,"recruitment.status.no_response":`Geen antwoord`,"recruitment.status.withdrawn":`Teruggetrokken`,"recruitment.status.expired":`Verlopen`,"recruitment.notes.role_info":`Afhankelijk van je rol kun je alleen je eigen notities, of alle notities zien.`,"recruitment.change_status":`Status wijzigen`,"recruitment.view_profile":`Bekijk profiel`,"recruitment.applied_on":`Gesolliciteerd op`,"recruitment.days_since_applied":`{{count}} dagen geleden gesolliciteerd`,"recruitment.notes":`Notities`,"recruitment.add_note":`Notitie toevoegen`,"recruitment.delete_note":`Notitie verwijderen`,"recruitment.note_placeholder":`Schrijf een notitieâ¦`,select_filter_type:`Selecteer filtertype`,optional:`Optioneel`,Help:`Help`,Update:`Bijwerken`,Km:`Km`,countries:{NL:`Nederland`,BE:`België`,DE:`Duitsland`,FR:`Frankrijk`,LU:`Luxemburg`,GB:`Verenigd Koninkrijk`,UK:`Verenigd Koninkrijk`,US:`Verenigde Staten`}}}},ns:[`translations`],defaultNS:`translations`}),Y.languages=[`en`,`nl`];var X=Y,Z=()=>
9{if(X.language&&[`nl`,`en`].includes(X.language))return X.language;let e=localStorage.getItem(`lang`);return e&&[`nl`,`en`].includes(e)?e:`nl`},Q=new r({url:`https://auth.thetalentpoolcommunity.nl`,realm:`tpc-organization`,clientId:`tpc-organization-frontend`}),Me=1e4,Ne=class extends Error{constructor(){super(`Keycloak initialization timed out`),this.name=`KeycloakInitializationTimeoutError`}},$,Pe=()=>[new URLSearchParams(window.location.search),new URLSearchParams(window.location.hash.replace(/^#/,``))].some(e=>e.has(`state`)&&(e.has(`code`)||e.has(`error`))),Fe=()=>Q.init({onLoad:`check-sso`,pkceMethod:`S256`,checkLoginIframe:!1,silentCheckSsoRedirectUri:`${window.location.origin}/silent-check-sso.html`,silentCheckSsoFallback:!0}),Ie=async(e=!0)=>{if($??=Fe(),!e)return $;let t,n=new Promise((e,n)=>{t=setTimeout(()=>n(new Ne),Me)});try{return await Promise.race([$,n])}finally{t&&clearTimeout(t)}},Le=e=>(sessionStorage.setItem(`keycloak-return-to`,e||`/`),Q.login({redirectUri:`${window.location.origin}/auth/callback`,locale:Z()})),Re=()=>Q.logout({redirectUri:`${window.location.origin}/login`}),ze=()=>{let e=sessionStorage.getItem(`keycloak-return-to`)||`/`;return sessionStorage.removeItem(`keycloak-return-to`),e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`},Be=async(e=30)=>{if(Q.authenticated)try{return await Q.updateToken(e),Q.token}catch(e){throw Q.clearToken(),e}},Ve=()=>(sessionStorage.setItem(`keycloak-return-to`,`${window.location.pathname}${window.location.search}${window.location.hash}`),Q.login({action:`UPDATE_PASSWORD`,redirectUri:`${window.location.origin}/auth/callback`,locale:Z()}));export{Q as a,Ve as c,Y as d,z as f,Ie as i,Z as l,Be as n,Le as o,je as p,Pe as r,Re as s,ze as t,X as u}; 10//# sourceMappingURL=keycloak-B--4m4wC.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.