angular.module("jobbnorge.common",["ui.bootstrap","ui.utils","ngCookies"]).run(["uibDatepickerConfig",function(n){n.startingDay=1}]),function(){"use strict";function n(n){n.defaults.transformResponse.push(t);n.defaults.transformRequest.splice(0,0,i)}function t(n){var f,u,i,e;if(typeof n!="object"&&n!==null)return n;for(f in n)n.hasOwnProperty(f)&&(u=n[f],typeof u=="string"&&(i=u.match(r))?(e=new Date(Number(i[2]),Number(i[3])-1,Number(i[4]),Number(i[5]),Number(i[6]),Number(i[7])),n[f]=Date.isValid(e)?e:undefined):typeof u=="object"&&t(u));return n}function i(n){var r,t;if(typeof n!="object")return n;for(r in n)n.hasOwnProperty(r)&&(t=n[r],Object.prototype.toString.call(t)==="[object Date]"?n[r]="$date('"+t.getFullYear().toString().pad(4)+"-"+(t.getMonth()+1).toString().pad(2)+"-"+t.getDate().toString().pad(2)+" "+t.getHours().toString().pad(2)+":"+t.getMinutes().toString().pad(2)+":"+t.getSeconds().toString().pad(2)+"')":typeof t=="object"&&i(t));return n}var r=/^\$date\(\'((\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}))\'\)$/;angular.module("jobbnorge.common").run(n);n.$inject=["$http"]}(),function(){"use strict";function n(){function n(n,t,i,r){function u(){var n=f(t[0]);n&&n.focus()}function e(t){n.$emit("jnDynamicFormElement::form.submit",t)}function f(n){var t=n.querySelector(".ng-invalid:not(.jn-suppress-invalid)"),i;return t&&(i=!0&&t.tagName.toLowerCase()==="form"||t.tagName.toLowerCase()==="ng-form"||t.hasAttribute("data-ng-form")||t.hasAttribute("ng-form"),i&&(t=f(t))),t}function o(){u()}r.JN=r.JN||{};r.JN.focusFirstInvalid=u;r.JN.emitFormSubmitEvent=e;t.on("submit",o)}return{restrict:"A",require:"^form",link:n}}angular.module("jobbnorge.common").directive("jnAccessibleForm",n);n.$inject=[]}(),function(){"use strict";function n(){function n(n,t){var i=[];n.$on("jnBootstrapScrollspy",function(n,r,u,f,e){var s,o;switch(r){case"add":i.push({id:u,y1:f,y2:e,isVisible:!1});break;case"remove":s=_(i).indexOf(function(n){return n.id===u});s!==-1&&i.splice(s,1);break;case"onscreen":case"offscreen":o=_(i).find(function(n){return n.id===u});o&&(o.isVisible=r==="onscreen"?!0:!1,o.y1=f,o.y2=e);i.sort(function(n,t){return n.isVisible!==t.isVisible?n.isVisible?-1:1:n.y1<=t.y1?-1:1})}t.find("a[href]").parent().removeClass("active");i.length&&(o=i[0].isVisible?i[0]:null,o&&t.find('a[href^="#'+o.id+']"').parent().addClass("active"))})}return{link:n}}function t(n){function t(t,i,r){function l(t){switch(!0){case!t&&u:n.$broadcast("jnBootstrapScrollspy","remove",u);f=null;break;case t&&!u:n.$broadcast("jnBootstrapScrollspy","add",t);f=null}u=t}function a(){var f=e.scrollTop(),r=e.height(),n=i.offset(),t=n.top-f,u=t+i.height()-1,o=!(t<0&&u<0||t>r&&u>r);return o?n.top+"x"+n.left+"x"+i.width()+"x"+i.height():"offscreen"}function s(t){if("offscreen"===t){"offscreen"!==f&&(n.$broadcast("jnBootstrapScrollspy","offscreen",u),f="offscreen");return}if(u){var h=e.scrollTop(),s=e.height(),r=i.offset().top-h,o=r+i.height()-1,c=!(r<0&&o<0||r>s&&o>s);c?(n.$broadcast("jnBootstrapScrollspy","onscreen",u,r,o),f="onscreen"):f!=="offscreen"&&(n.$broadcast("jnBootstrapScrollspy","offscreen",u),f="offscreen")}}function v(){h();c();angular.element(window).off("scroll resize",o)}var f=null,e=$(window),u,h=r.$observe("id",l),c=t.$watch(a,s),o=s.bind(undefined);angular.element(window).on("scroll resize",o);t.$on("$destroy",v)}return{link:t}}angular.module("jobbnorge.common").directive("jnBootstrapScrollspy",n).directive("jnBootstrapScrollspyEmitter",t);n.$inject=[];t.$inject=["$rootScope"]}(),function(){"use strict";function t(){function t(t,i,r,u){u&&u.$validators.email&&(u.$validators.email=function(t){return u.$isEmpty(t)||n.test(t)})}return{require:"ngModel",restrict:"A",priority:2,link:t}}var n=/^[a-zA-Z0-9!#$%&'*+//=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+//=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/im;angular.module("jobbnorge.common").constant("jnEmail",{regexp:n}).directive("jnEmail",t)}(),function(){"use strict";function n(n){function t(t,i,r){function u(t){t==="true"&&n(function(){i.focus()})}r.$observe("jnFocusIf",u)}return{restrict:"A",link:t}}angular.module("jobbnorge.common").directive("jnFocusIf",n);n.$inject=["$timeout"]}(),function(){"use strict";function n(n){function t(t,i){var u=n.site("/content/assets/images/loader-1.gif"),r=i[0].contentWindow.document;r.open();r.write('
<\/title><\/head> <\/div><\/body><\/html>');r.close()}return{restrict:"A",link:t}}angular.module("jobbnorge.common").directive("jnIframeLoader",n);n.$inject=["Url","Localization"]}(),function(){"use strict";function n(){function n(n,t){function i(){t[0].contentWindow.location.reload(!0)}function r(n){t[0].contentWindow.location.href=n}n.manager={reload:i,navigate:r}}return{restrict:"A",link:n,scope:{manager:"=jnIframe"}}}angular.module("jobbnorge.common").directive("jnIframe",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i){return function(r,u,f){function o(f){function e(n){i(u.html(n.data).contents())(r)}f?n.get(f,{cache:t}).then(e):u.empty()}var e=f.$observe("jnInclude",o);r.$on("$destroy",e)}}angular.module("jobbnorge.common").directive("jnInclude",n);n.$inject=["$http","$templateCache","$compile"]}(),function(){"use strict";function n(){function n(n,t,i,r){var u,f,e;r&&(u={},angular.copy(r,u),f=t.parent().controller("form"),f.$removeControl(r),e={$setValidity:function(n,t,i){u.$setValidity(n,t,i);f.$setValidity(n,!0,r)},$setDirty:function(){t.removeClass("ng-pristine").addClass("ng-dirty");r.$dirty=!0;r.$pristine=!1}},angular.extend(r,e))}return{restrict:"A",require:"?form",link:n}}angular.module("jobbnorge.common").directive("jnIsolateForm",n);n.$inject=[]}(),function(){"use strict";function n(n){function t(n,t){t.addClass("dropdown");n.dropdownHidden=!0}return{templateUrl:n.common("packages/clients/common/views/language-switcher-dropdown.html"),restrict:"A",link:t}}angular.module("jobbnorge.common").directive("jnLanguageSwitcherDropdown",n);n.$inject=["Url"]}(),function(){"use strict";function n(n,t){function i(i,r,u){function b(n){return n.trim()}function k(r){var u=null,s,e,o,h;return f["jnLocalize"+r]!==undefined?u=f["jnLocalize"+r].value:l&&(s=l(i),e=parseInt(r),!Number.isNaN(e)&&a&&(o=a(i),_.isArray(o)&&e
0&&t.hash()===u){e.scroll=function(){angular.element(n).off("scroll",c)};angular.element(n).on("scroll",c);e.element=r.$watch(a,v);i()}else h()}function c(){s?s=!1:h(!0)}function a(){var n=u.offset();return n.top+"x"+n.left+"x"+u.width()+"x"+u.height()}function v(){s=!0;i()}function h(n){n&&(o&&o(),o=null);for(var t in e)e[t]&&e[t]()&&(e[t]=null)}var e={element:null,scroll:null},o=f.$observe("id",l),s=!1;r.$on("$destroy",h)}return{restrict:"A",link:r}}angular.module("jobbnorge.common").directive("jnScrollToMeOnLoad",n);n.$inject=["$window","$location","$anchorScroll"]}(),function(){"use strict";function n(n,t,i){function r(r,u,f){function o(){function t(i){function u(){s(r)}e.off("mouseup",t);i.preventDefault();n(u)}e.on("mouseup",t)}function h(){u.off("mousedown",o)}var e=angular.element(t[0].body),s=i(f.jnStrongClick);u.on("mousedown",o);r.$on("$destroy",h)}return{restrict:"A",link:r}}angular.module("jobbnorge.common").directive("jnStrongClick",n);n.$inject=["$timeout","$document","$parse","$timeout"]}(),function(){"use strict";function t(){function t(t,i,r,u){u.$parsers.unshift(function(t){var i=!n.test(t);return u.$setValidity("tag",i),i?t:undefined});u.$formatters.unshift(function(t){return u.$setValidity("tag",!n.test(t)),t})}return{restrict:"A",require:"ngModel",link:t}}var n=/.*[<>].*/;angular.module("jobbnorge.common").directive("jnTagValidator",t);t.$inject=[]}(),function(){function t(t,i,r){function f(n){return i.open({templateUrl:r.commonClients("common/views/modals/form-validation-warning.html"),controller:"FormValidationWarning",resolve:{message:function(){return n}}}).result}function u(t){n(t);angular.isFunction(t.JN&&t.JN.focusFirstInvalid)&&t.JN.focusFirstInvalid();angular.isFunction(t.JN&&t.JN.emitFormSubmitEvent)&&t.JN.emitFormSubmitEvent(!1)}function e(n){var i=t.defer();return n.$valid?i.resolve():(u(n),i.reject()),i.promise}return{showAlert:f,setTouched:n,tryApply:e,focusFirstInvalid:u}}function n(n){angular.forEach(n.$error,i)}function i(n){angular.forEach(n,r)}function r(t){return angular.isFunction(t.$setSubmitted)?n(t):t.$setTouched()}angular.module("jobbnorge.common").factory("FormHelper",t);t.$inject=["$q","$uibModal","Url"]}(),function(){function n(n){return{get:n.get,set:n.put,hasConsent:function(t){if(n&&n.get("CookieInformationConsent")){var i=JSON.parse(n.get("CookieInformationConsent").replace(/\\(.)/mg,"$1").replace("'",'"').replace("/([{[,])s*([a-zA-Z0-9_]+?):/",'$1"$2":'));return i.consents_approved&&_.includes(i.consents_approved,t)}return!1}}}angular.module("jobbnorge.common").factory("Cookie",n);n.$inject=["$cookies"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function c(n,t){n.localization=n.localization||{};n.localization.isReady=t;n.localization.code=h}function l(t){function h(n){var r=s.indexOf(i);o[t]=n.data;s.splice(r,1);c(f,s.length===0);f.$broadcast("jn::localization::switch")}var r,i;if(t=t||n.localization.defaultCode,!t)throw"Language Code should be defined";return(i=t,!o[t])?!~s.indexOf(i)?(s.push(i),c(f,!1),e.get({code:t}).then(h).catch(h)):null:(r=u.defer(),r.resolve(o[t]),c(f,!0),f.$broadcast("jn::localization::switch"),r.promise)}function v(t){if(t=t||a(),h=t,t){l(t);var r=new Date;r.setDate(r.getDate()+30);i.set(n.localization.cookieName,t,{expires:r,path:"/",domain:n.auth.domain})}}function y(t,i){return i=i||h||n.localization.defaultCode,t=t!=null?t.toString().toLowerCase():t,o[i]||l(i),o[i]&&o[i][t]||t}function p(n){return n}function a(){return h}function w(){var t=parseInt(i.get(n.localization.cookieName));return Number.isNaN(t)&&(t=n.localization.defaultCode||1),t}var o={},h=w(),s=[];return c(f,!1),{cache:l,use:v,localize:y,localizeStub:p,getLanguageId:a}}function t(n){n.use()}angular.module("jobbnorge.common").factory("Localization",n).run(["Localization",t]);n.$inject=["Config","Url","Cookie","$http","$q","$rootScope","LocalizationApi"]}(),function(){"use strict";function n(n,t,i,r,u,f){function e(){if(n.isRefreshMode){i.location.reload();return}t.close()}function o(){t.dismiss()}n.isRefreshMode=!1;n.message=u;n.options=f;n.frontpage=r.frontpage();n.ok=e;n.cancel=o;f&&(f.config&&f.config.method&&(n.isRefreshMode=["GET","OPTIONS"].indexOf(f.config.method)!==-1),f.allowRefreshOnError&&(n.isRefreshMode=!0))}function t(t){function u(n){var r=t.get("Localization");return n=n||r.localizeStub("Det har oppstått en feil, som gjør at du ikke kommer videre."),i(n)}function f(n){var r=t.get("Localization");return n=n||r.localizeStub("Det har oppstått en feil ved uthenting av data."),i(n)}function e(n,r){var u=t.get("Localization");return n=n||u.localizeStub("Det har oppstått en ukjent feil."),i(n,r)}function i(n,i){return r(n,t.get("Url").common("packages/clients/common/views/error/modals/error.html"),i)}function o(n,i){return r(n,t.get("Url").common("packages/clients/common/views/error/modals/info.html"),i)}function r(i,r,u){return t.get("$uibModal").open({templateUrl:r,controller:n,backdrop:"static",resolve:{message:function(){return i},options:function(){return u}}})}return{showInvalidParameterError:u,showInvalidQueryError:f,showUnknownServerError:e,showErrorModal:i,showInfoModal:o}}angular.module("jobbnorge.common").factory("ErrorMessageContainer",t);n.$inject=["$scope","$uibModalInstance","$window","Url","message","options"];t.$inject=["$injector"]}(),function(){function n(n,t,i){return{token:function(n){return i.post(t.api("/token"),$.param(n),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},tokenRenew:function(){return i.get(t.auth.renewToken(),{params:{client_id:n.auth.clientId}})}}}angular.module("jobbnorge.common").factory("AuthApi",n);n.$inject=["Config","Url","$http"]}(),function(){"use strict";function n(n,t){return{get:function(i){return t.get(n.api("localization/dictionary?"+$.param(i),{cache:!0}))}}}angular.module("jobbnorge.common").factory("LocalizationApi",n);n.$inject=["Url","$http"]}(),function(){"use strict";function t(t,i,r,u,f){function o(i){var e=f.auth.clientId,r;return e===n?i.withCredentials=!0:i.url.slice(0,9).toLowerCase()!=="template/"&&i.url.slice(0,13).toLowerCase()!=="uib/template/"&&(r=u.get(t.get("Config").auth.cookieName),r&&(i.headers.Authorization="Bearer "+r)),i}function s(n){return n.status===401&&e(),i.reject(n)}function h(n){var t=u.get(f.auth.cookieName);return t&&(n+=(~n.indexOf("?")?"&":"?")+"access_token="+t),n}function e(n,i){var r=t.get("$state");u.get(".return-state")||(n=n||r.current,i=i||r.current.params,u.set(".return-state",angular.toJson({name:n.name,params:i}),{path:"/",domain:f.auth.domain}));r.go("login")}return{request:o,responseError:s,redirectToLogin:e,url:{tokenize:h}}}function i(n){n.interceptors.push("AuthorizationInterceptor")}function r(t,i,r,e){function o(s){function w(n){i.auth.tokenExpires=n.data.tokenExpires;r.set(i.auth.cookieName,n.data.token,{path:"/",domain:i.auth.domain,expires:new Date(i.auth.tokenExpires),http:!1});e(o,h)}function b(){e(o,h)}var c=i.auth.clientId,l=6e4,h=c===n?f*l:l,a;if(c===n&&s){e(o,l);return}if(!i.auth||!i.auth.tokenExpires){e(o,h);return}if(a=new Date(i.auth.tokenExpires),!Date.isValid(a)){e(o,h);return}var y=+new Date,v=+a,p=c===n?v:u*h;v<=y||v-y<=p?t.tokenRenew().then(w).catch(b):e(o,h)}o(!0)}var u=5,f=10,n="jobbnorge.jobbadmin";angular.module("jobbnorge.common").factory("AuthorizationInterceptor",t).config(i).run(r);t.$inject=["$injector","$q","$window","Cookie","Config"];i.$inject=["$httpProvider"];r.$inject=["AuthApi","Config","Cookie","$timeout"]}(),function(){function f(n){function t(n){return r(),n}function i(n){return r(),n}function u(t){return r(),n.reject(t)}return{requestError:t,response:i,responseError:u,show:e,hide:r}}function o(n){function t(n,t){var i=t("x-block-client");return i!==!1&&e(),n}n.interceptors.push("ClientBlockingInterceptor");n.defaults.transformRequest.push(t)}function e(){function r(){t=null;u=!0;n&&(window.clearTimeout(n),n=null);angular.element(".jn-ajax-block-ui").addClass("jn-fade-in").show()}i++;r()}function r(){i&&(i--,i||(t&&(window.clearTimeout(t),t=null),u&&(u=!1,angular.element(".jn-ajax-block-ui").removeClass("jn-fade-in"),n=setTimeout(function(){n=null;angular.element(".jn-ajax-block-ui").hide()},100))))}var t=null,n=null,i=0,u=!1;angular.module("jobbnorge.common").factory("ClientBlockingInterceptor",f).config(["$httpProvider",o]);f.$inject=["$q","$rootScope","$timeout"]}(),function(){"use strict";function n(n){function t(t){return t.url.slice(0,9).toLowerCase()!=="template/"&&t.url.slice(0,13).toLowerCase()!=="uib/template/"&&n.site.version&&(t.url+=(~t.url.indexOf("?")?"&":"?")+"v="+encodeURIComponent(n.site.version)),t}return{request:t}}function t(n){n.interceptors.push("ClientVersionInterceptor")}angular.module("jobbnorge.common").factory("ClientVersionInterceptor",n).config(t);n.$inject=["Config"];t.$inject=["$httpProvider"]}(),function(){"use strict";function n(n,t){function r(t){return t.url.slice(0,9).toLowerCase()!=="template/"&&t.url.slice(0,13).toLowerCase()!=="uib/template/"&&(t.url=i(t.url,t.method),n.system.isOldIE&&["GET","POST"].indexOf(t.method)===-1&&(t.method="POST")),t}function i(i,r){if(n.system.isOldIE){var u=t.get(n.auth.cookieName);i=i+(~i.indexOf("?")?"&":"?")+"http-method="+r;u&&(i=i+"&access_token="+u);i=i+"&content-type=text/html";i=i+"&rand="+String.random()}return i}function i(i,r){if(n.system.isOldIE){var u=t.get(n.auth.cookieName);i=i+(~i.indexOf("?")?"&":"?")+"http-method="+r;u&&(i=i+"&access_token="+u);i=i+"&content-type=text/html";i=i+"&rand="+String.random()}return i}return{request:r,prepareUrlForOldIE:i}}function t(n){n.interceptors.push("OldIEInterceptor")}angular.module("jobbnorge.common").factory("OldIEInterceptor",n).config(t);n.$inject=["Config","Cookie"];t.$inject=["$httpProvider"]}(),function(){"use strict";function n(n,t,i){function r(n){return u(n),t.reject(n)}function u(t){if(!t.isHandled)switch(t.status){case 400:switch(t.data.status){case"invalid":i.showInvalidParameterError();break;case"invalid.query":i.showInvalidQueryError()}break;case 403:(function(){try{var t=n.get("$state");t?t.go("layout.base.error.403"):console.log("No $state found")}catch(r){i.showInfoModal("Du har ikke tilgang til å se denne siden.")}})();break;case 404:(function(){var t=n.get("$state");t?t.go("layout.base.error.404"):console.log("No $state found")})();break;case 500:i.showUnknownServerError(null,t);break;case 503:case 408:(function(){var r=t.config.url.toLowerCase();r.indexOf("diplomaregistry")>-1?i.showUnknownServerError(n.get("Localization").localizeStub("{0} svarer ikke. Dette kan skyldes at tjenesten er nede. Prøv gjerne igjen senere.").format("Vitnemålsportalen"),t):i.showUnknownServerError(n.get("Localization").localizeStub("{0} svarer ikke. Dette kan skyldes at tjenesten er nede. Prøv gjerne igjen senere.").format("Tilbyderen"),t)})()}}return{responseError:r}}function t(n){n.interceptors.push("ServerErrorInterceptor")}angular.module("jobbnorge.common").factory("ServerErrorInterceptor",n).config(t);n.$inject=["$injector","$q","ErrorMessageContainer"];t.$inject=["$httpProvider"]}(),function(){"use strict";function n(){return function(n,t){if(isNaN(parseFloat(n))||!isFinite(n))return"-";typeof t=="undefined"&&(t=1);n=n||0;var i=["bytes","kB","MB","GB","TB","PB"],r=Math.floor(Math.log(n)/Math.log(1024)),u=n/Math.pow(1024,Math.floor(r));return Number.isNaN(u)?"0 "+i[0]:u.toFixed(t)+" "+i[r]}}angular.module("jobbnorge.common").filter("jnBytes",n)}(),function(){function n(n){return function(t){var u=n.getLanguageId(),r=t.split(" "),e=r[1]-1,i,f;if(r[1]={1:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],2:["January","February","March","April","May","June","July","August","September","October","November","December"],3:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],4:["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu"]}[u][e],u===2){i=r[0].slice(0,-1);f=i.length>1?parseInt(i.substr(0,1))===1?-1:[1,2,3].indexOf(parseInt(i.substr(-1,1))):[1,2,3].indexOf(parseInt(i.substr(-1,1)));switch(f){case 0:i+="st";break;case 1:i+="nd";break;case 2:i+="rd";break;default:i+="th"}r[0]=i}return r.join(" ")}}angular.module("jobbnorge.common").filter("jnDateFormat",["Localization",n])}(),function(){function n(){return function(n){return new Date(n).toISOString()}}angular.module("jobbnorge.common").filter("jnDateToISO",[n])}(),function(){function n(n){return function(t){return n.trustAs("html",t)}}angular.module("jobbnorge.common").filter("jnSantizeHtml",["$sce",n])}(),function(){"use strict";function t(n,t,i){function u(){return!!f()}function e(n){if(n&&n.data)switch(n.data.access){case"authorize":return u();case"anonymous":return!0}return!0}function o(n,t){var i=n&&n.data&&n.data.access;return i===t}function f(){return i.get(t.auth.cookieName)}var r={isAuthenticated:u,isAuthorizedState:e,isAccess:o,getAccessToken:f};return n.Auth=r,r}function n(n){this.httpProvider=n}function i(n){n.init()}function r(n,t,i,r,u,f,e,o,s){function c(t,r,f){var c=n.get("$state"),e=h;return(h=null,e&&e.name&&c)?(t.preventDefault(),u(function(){c.go(e.name,e.params)}),void 0):i.isAuthorizedState(r)?i.isAccess(r,"authorize")&&o.isUpdateNeeded()?(t.preventDefault(),o.update().then(function(){c.go(r,f)}),void 0):void 0:(t.preventDefault(),s.redirectToLogin(r,f),void 0)}var h=angular.fromJson(f.get(".return-state"));f.set(".return-state",'{"name":"","params":{"}}',{path:"/",domain:e.auth.domain,expires:new Date});t.$on("$stateChangeStart",c)}angular.module("jobbnorge.common").provider("Auth",n).config(i).run(r);t.$inject=["$rootScope","Config","Cookie"];n.$inject=["$httpProvider"];n.prototype.init=function(){this.httpProvider.defaults.useXDomain=!1;delete this.httpProvider.defaults.headers.common["X-Requested-With"]};n.prototype.$get=t;i.$inject=["AuthProvider"];r.$inject=["$injector","$rootScope","Auth","$location","$timeout","Cookie","Config","ConfigManager","AuthorizationInterceptor"]}(),function(){"use strict";function n(){this.config={common:{url:"",clientsUrl:""},system:{url:"",isOldIE:window.isOldIE},site:{url:""},host:{url:""},auth:{cookieName:"",clientId:"",authorizeUrl:"",authorizeRedirectUrl:"",externalLoginLinkUrl:"",signOutUrl:""},api:{url:"",storage:{limit:0},file:{limit:0}},localization:{area:"",cookieName:"",defaultCode:0,language:"",languages:{}},mail:{maxFileSize:""}}}function r(n){angular.merge(this.config,n)}function t(){return this.config}function i(n,t,i,r,u){function o(){return!e}function s(){function o(n){e=!0;f=null;angular.merge(u,n.data);i.$broadcast("config::update",u)}return e?n.when(!0):(f||(f=t.get(r.api("system/config")).then(o)),f)}var e=!1,f=null;return{isUpdateNeeded:o,update:s}}angular.module("jobbnorge.common").provider("Config",n).factory("ConfigManager",i);n.$inject=[];t.$inject=[];n.prototype.$get=t;n.prototype.init=r;i.$inject=["$q","$http","$rootScope","Url","Config"]}(),function(){function i(){function r(t){return n(i.config.common.url,t)}function u(t){return n(i.config.common.clientsUrl,t)}function f(t){return n(i.config.site.url,t)}function e(t){return n(i.config.jobseekerVueApp.url,t)}function o(t){return n(i.config.frontpage.url,t)}function s(t){return n(i.config.jobsoknet.url,t)}function h(t){return n(i.config.search.url,t)}function c(t){return n(i.config.api.url,t)}function l(){var n="?client_id="+encodeURIComponent(i.config.auth.clientId)+"&redirect_uri="+encodeURIComponent(i.helper.site(i.config.auth.authorizeRedirectUrl))+"&response_type=token";return i.config.auth.authorizeUrl+n}function a(){return i.config.auth.tokenUrl}function v(){var t=null,n=i.config&&i.config.system&&i.config.system.url;return i.config&&i.config.auth&&i.config.auth.cookieName&&(t=i.cookie.get(i.config.auth.cookieName)),t&&(n="?client_id="+encodeURIComponent(i.config.auth.clientId)+"&redirect_uri="+encodeURIComponent(i.helper.search())+"&token="+i.cookie.get(i.config.auth.cookieName),n=i.config.auth.signOutUrl+n),n}function y(n){var t={provider:n,client_id:i.config.auth.clientId,return_url:i.helper.site("external/externalloginlink")};return i.config.auth.externalLoginLinkUrl+"?"+$.param(t)}var i=this;this.$get=t;this.config=null;this.cookie=null;this.helper={};this.helper.common=r;this.helper.commonClients=u;this.helper.site=f;this.helper.jobseekerVueApp=e;this.helper.frontpage=o;this.helper.jobsoknet=s;this.helper.search=h;this.helper.api=c;this.helper.auth={};this.helper.auth.authorize=l;this.helper.auth.signOut=v;this.helper.auth.externalLoginLink=y;this.helper.auth.renewToken=a;this.helper.utils={};this.helper.utils.join=n}function t(n,t){return this.config=n,this.cookie=t,this.helper}function n(n,t){var i="";return n&&(n.charAt(n.length-1)!=="/"&&(n+="/"),i+=n),t&&(t.charAt(0)==="/"&&(t=t.slice(1)),i+=t),i}angular.module("jobbnorge.common").provider("Url",[i]);t.$inject=["Config","Cookie"]}(),function(){"use strict";function n(n,t,i,r){function u(){t.close()}n.ok=u;n.message=r}angular.module("jobbnorge.common").controller("FormValidationWarning",n);n.$inject=["$scope","$uibModalInstance","Localization","message"]}()