{"version":3,"sources":["app.module.js","core/core.module.js","failed-login/failed-login.module.js","forgot/forgot.module.js","layout/layout.module.js","login/login.module.js","register/register.module.js","logout/logout.module.js","mfaredirect/mfaredirect.module.js","services/services.module.js","reset/reset.module.js","core/blocks/blocks.module.js","core/blocks/exception/exception.module.js","core/blocks/router/router.module.js","core/blocks/logger/logger.module.js","app.config.js","core/constants.js","failed-login/config.route.js","directives/apSquareCheck.js","forgot/config.route.js","forgot/forgot.js","layout/header.controller.js","layout/shell.js","login/config.route.js","login/login.js","register/config.route.js","register/register.js","logout/config.route.js","logout/logout.js","mfaredirect/config.route.js","mfaredirect/mfaredirect.js","services/authentication.service.js","reset/config.route.js","reset/reset.js","core/blocks/apiendpoint.config.js","core/blocks/apiendpoint.provider.js","core/blocks/exception/exception-handler.provider.js","core/blocks/exception/exception.service.js","core/blocks/router/routehelper.js","core/blocks/logger/logger.service.js","templates.js"],"names":["angular","module","app","toastrConfig","toastr","options","timeOut","positionClass","config","configure","$inject","appErrorPrefix","appTitle","version","$logProvider","$routeProvider","routehelperConfigProvider","$httpProvider","exceptionHandler","debugEnabled","docTitle","resolveAlways","ready","value","run","authentication","$location","$rootScope","authenticationSettings","referrer","document","ssoUrl","indexOf","defaultRedirectUrl","redirectURL","search","redirect","fillAuthData","path","constant","moment","_","appRun","routehelper","configureRoutes","url","templateUrl","title","directive","restrict","scope","disabled","field","label","model","selectedClass","tabOrder","type","transclude","link","getOptions","name","style","cssClass","forEach","option","setState","index","key","length","controller","controllerAs","ForgotController","vm","this","emailAddress","securityQuestion","securityAnswer","gettingQuestion","sendingEmail","checkEmail","getSecurityQuestion","username","then","response","errorMessage","err","forgotPassword","answer","logoUrl","dynamicContentUrl","$$host","$","addClass","img","imgAr","Math","floor","random","css","ShellController","$scope","$root","date","Date","thirdparty","toLowerCase","hideHeader","element","LoginController","azureSettings","$cookies","$window","num","apDomains","defaultParam","isLoginVisible","isDefaultProvider","applicationCacheKey","notNullOrUndefined","isThirdParty","orgCacheKey","clientId","undefined","RedirectMFALogin","isUserExistInAzure","data","getNonce","nonceResponse","tenantName","policyName","passwordlessPolicy","redirectUri","nonceData","split","applicationClientId","toUpperCase","avenueCacheKey","cpoUrl","cpoCacheKey","reportingUrl","reportingCacheKey","codeChallenge","userNonce","codeVerifier","location","href","login","request","password","loggingIn","reportId","redirectUrl","orgKey","authData","JSON","parse","localStorage","getItem","setAuthDataCookie","orgcachekey","substring","password_reset_required","isUserRegisteredForMFA","mfadata","modal","passReset","console","error","copy","statusText","includes","defaultApplicationCacheKey","timeout","userKey","userkey","fingerprint","hash","local","isAuth","subDomain","remove","domain","RedirectLogin","RedirectMfa","window","open","helpdeskUrl","RegisterController","userRoles","token","registrationtoken","email","confirmPassword","confirmSecurityAnswer","canRegister","firstLogin","registering","registered","processing","changePassword","access_token","passwordChange","status","decodeURI","organization_units","topOrg","roles","applicationRoles","organizationUnitCacheKey","i","MultiPointUser","multiPointUrl","WelcomePointUser","welcomePointUrl","AppointmentsUser","CPOUser","ReportingUser","DealerReportsViewer","UserReportsViewer","InternalReportsViewer","avenueUrl","register","question","confirmAnswer","validatePassword","replace","canUserFinishRegistration","mfaredirect","getAuthData","removeItem","logout","logouturl","azureLogoutUri","MfaredirectController","nonce","welcomePointCacheKey","setItem","dealerSettingsCacheKey","dealerSettingsUrl","multiPointCacheKey","packageEditorCacheKey","packageEditorUrl","shopProvisioningCacheKey","shopProvisioningUrl","AuthenticationService","$http","$q","$browser","$document","serviceBase","apiServiceBaseUri","cookieDomain","registrationToken","encodedToken","encodeURIComponent","get","Username","Password","ApplicationCacheKey","deferred","defer","post","stringify","resolve","reject","promise","userCacheKey","user_cache_key","cookieName","userName","delete","redCapLogin","Token","ConfirmPassword","Question","Answer","ConfirmAnswer","RedirectUrl","defaults","headers","common","resetPassword","savedUsername","getObject","isRedcap","product_permissions","application_permissions","Env","cookie","expires","cookiePath","baseHref","isDefined","isUndefined","isString","str","cookieLength","toUTCString","secure","samesite","$log","warn","toJson","putObject","factory","ResetController","resettoken","redirecturl","resettingPassword","reset","updatePassword","apiEndpointProvider","ApiEndpointProvider","prototype","baseUrl","$get","provider","$provide","decorator","extendExceptionHandler","$delegate","logger","exception","cause","errorData","message","catcher","reason","$route","routehelperConfig","handlingRouteChangeError","routeCounts","errors","changes","routes","service","route","extend","when","otherwise","redirectTo","getRoutes","prop","hasOwnProperty","push","$on","event","current","previous","rejection","msg","loadedTemplateUrl","warning","showToasts","info","success","log","$templateCache","put"],"mappings":"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","file":"all.min.js","sourcesContent":["(function() {\n\tangular.module('app', [\n\t\t'app.core',\n\t\t'app.layout',\n\t\t'app.services',\n\t\t'app.login',\n\t\t'app.logout',\n\t\t'app.register',\n\t\t'app.forgot',\n\t\t'app.reset',\n\t\t'app.invalidLogin',\n 'app.constants',\n 'app.mfaredirect',\n\t\t'ngCookies'\n\t]);\n})();\n","/**\n * Created by Colin.Watson on 3/31/2015.\n */\n(function () {\n\t'use strict';\n\tangular.module('app.core', [\n // Angular Modules\n 'ngRoute',\n 'ngCookies',\n // Reusable Modules\n 'blocks.router',\n 'blocks.logger',\n 'blocks.exception',\n 'blocks',\n // Third Party Modules\n //'pascalprecht.translate'\n\t]);\n})();\n","/**\n * Forgot Password Module\n */\n(function () {\n angular.module('app.invalidLogin', []);\n})();","/**\n * Forgot Password Module\n */\n(function () {\n\tangular.module('app.forgot', []);\n})();","/**\n * Layout Module\n */\n(function () {\n\t'use strict';\n\tangular.module('app.layout', []);\n})();","/**\n * Login Module\n */\n(function () {\n\tangular.module('app.login', []);\n})();","/**\n * Register Module\n */\n(function () {\n\tangular.module('app.register', ['ui.validate']);\n})();","/**\n * Logout Module\n */\n(function () {\n\tangular.module('app.logout', []);\n})();","/**\n * Logout Module\n */\n(function () {\n angular.module('app.mfaredirect', []);\n})();","/**\n * Services Module\n */\n(function () {\n\tangular.module('app.services', []);\n})();","/**\n * Reset Password Module\n */\n(function () {\n\tangular.module('app.reset', ['ui.validate']);\n})();","/**\n * Created by Colin.Watson on 4/1/2015.\n */\n/// \n(function () {\n\t'use strict';\n\tangular.module('blocks', []);\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n(function () {\n\t'use strict';\n\tangular.module('blocks.exception', ['blocks.logger']);\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n(function () {\n\t'use strict';\n\tangular.module('blocks.router', []);\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n(function () {\n\t'use strict';\n\tangular.module('blocks.logger', []);\n})();\n","/**\n * Configuration\n */\n(function () {\n\tvar app = angular.module('app');\n\n\tapp.config(configure);\n\tapp.config(toastrConfig);\n\n\ttoastrConfig.$inject = ['toastr'];\n\tfunction toastrConfig(toastr) {\n\t\ttoastr.options.timeOut = 4000;\n\t\ttoastr.options.positionClass = 'toast-bottom-right';\n\t}\n\n\tvar config = {\n\t\tappErrorPrefix: 'SSO Error: ', //Configure the exceptionHandler decorator\n\t\tappTitle: 'SSO',\n\t\tversion: '0.1.0'\n\t};\n\tapp.value('config', config);\n\n\tconfigure.$inject = ['$logProvider', '$routeProvider', 'routehelperConfigProvider', '$httpProvider', 'exceptionHandlerProvider'];\n\tfunction configure($logProvider, $routeProvider, routehelperConfigProvider, $httpProvider, exceptionHandler) {\n\t\t// turn debugging off/on (no info or warn)\n\t\tif ($logProvider.debugEnabled) {\n\t\t\t$logProvider.debugEnabled(true);\n\t\t}\n\n\t\t// Configure the common route provider\n\t\troutehelperConfigProvider.config.$routeProvider = $routeProvider;\n\t\troutehelperConfigProvider.config.docTitle = 'SSO: ';\n\n\t\tvar resolveAlways = {\n\t\t\t/* @ngInject */\n\t\t\tready: function () {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\t\troutehelperConfigProvider.config.resolveAlways = resolveAlways;\n\n\t\t// Configure the common exception handler\n\t\texceptionHandler.configure(config.appErrorPrefix);\n\t}\n\n\tapp.config(function ($httpProvider) {\n\n\t});\n\n\tapp.run([\"authentication\", \"$location\", \"$rootScope\", 'authenticationSettings', function (authentication, $location, $rootScope, authenticationSettings) {\n\t\tvar referrer = document.referrer;\n\t\tif (authenticationSettings.ssoUrl.indexOf(referrer) > -1) {\n\t\t\treferrer = authenticationSettings.defaultRedirectUrl; // use default URL to redirect to if the referrer is the SSO site itself\n\t\t}\n\n\t\t// stores where the request to log in is coming from\n\t\t$rootScope.redirectURL = $location.search().redirect || referrer;\n\n\t\t// populates auth data from cookie\n\t\tauthentication.fillAuthData();\n\t\t$location.path($location.path());\n\t}]);\n\n})();\n\n","/**\n * Created by Colin.Watson on 4/9/2015.\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app.core')\n\t\t.constant('toastr', toastr)\n\t\t.constant('moment', moment)\n\t\t.constant('_', _);\n})();\n","/**\n * Forgot Password Route Configuration\n */\n(function () {\n 'use strict';\n\n angular\n .module('app')\n .run(appRun);\n\n appRun.$inject = ['routehelper'];\n function appRun(routehelper) {\n routehelper.configureRoutes(getRoutes());\n }\n\n function getRoutes() {\n return [\n {\n url: '/failed-login',\n config: {\n templateUrl: 'app/failed-login/failed-login.html',\n title: 'invalid login'\n }\n }\n ];\n }\n})();\n","/**\n * Created by Colin.Watson on 3/2/2015.\n */\n(function () {\n\t'use strict';\n\tangular\n\t\t.module('app')\n\t\t.directive('apSquareCheck', function () {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\ttemplateUrl: 'app/directives/templates/squareCheck.html',\n\t\t\t\tscope: {\n\t\t\t\t\tdisabled: '=',\n\t\t\t\t\tfield: '@',\n\t\t\t\t\tlabel: '@',\n\t\t\t\t\tmodel: '=',\n\t\t\t\t\toptions: '=',\n\t\t\t\t\tselectedClass: '@',\n\t\t\t\t\ttabOrder:'@',\n\t\t\t\t\ttype: '@'\n\t\t\t\t},\n\t\t\t\ttransclude: true,\n\t\t\t\tlink: function (scope) {\n\t\t\t\t\tif (!scope.selectedClass)\n\t\t\t\t\t\tscope.selectedClass = 'orange';\n\n\n\t\t\t\t\tscope.cssClass = function () {\n\t\t\t\t\t\tvar style = getOptions()[0].style;\n\t\t\t\t\t\tangular.forEach(getOptions(), function (option) {\n\t\t\t\t\t\t\tif (option.name == scope.model) {\n\t\t\t\t\t\t\t\tstyle = option.style;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn style + ' ' + scope.selectedClass;\n\t\t\t\t\t};\n\n\t\t\t\t\tscope.setState = function () {\n\t\t\t\t\t\tvar index = -1;\n\t\t\t\t\t\tangular.forEach(getOptions(), function (option, key) {\n\t\t\t\t\t\t\tif (option.name == scope.model) {\n\t\t\t\t\t\t\t\tindex = key;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (getOptions().length > index + 1)\n\t\t\t\t\t\t\tscope.model = getOptions()[index + 1].name;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tscope.model = getOptions()[0].name;\n\n\t\t\t\t\t};\n\n\t\t\t\t\tfunction getOptions() {\n\t\t\t\t\t\tif (typeof (scope.options) == 'undefined') {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: true,\n\t\t\t\t\t\t\t\t\tstyle: 'fa-check-square'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: false,\n\t\t\t\t\t\t\t\t\tstyle: 'fa-square-o'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn scope.options;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t});\n})();","/**\n * Forgot Password Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/forgot',\n\t\t\t\tconfig: {\n\t\t\t\t\ttemplateUrl: 'app/forgot/forgot.html',\n\t\t\t\t\tcontroller: 'ForgotController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttitle: 'Forgot Password'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Forgot Password Controller\n */\n(function () {\n\n\tangular.module('app.forgot')\n\t\t.controller('ForgotController', ForgotController);\n\n\tForgotController.$inject = ['authentication', 'authenticationSettings','$location'];\n\tfunction ForgotController(authentication, authenticationSettings, $location) {\n\t\t// setup model data\n\t\tvar vm = this;\n\t\tvm.emailAddress = '';\n\t\tvm.securityQuestion = '';\n\t\tvm.securityAnswer = '';\n\t\tvm.gettingQuestion = false;\n\t\tvm.sendingEmail = false;\n\t\tvm.checkEmail = false;\n\n\t\t// setup model functions\n\t\tvm.getSecurityQuestion = getSecurityQuestion;\n\t\tvm.forgotPassword = forgotPassword;\n\t\tvm.logoUrl = authenticationSettings.dynamicContentUrl + '/1234/x/images/solera-autopoint_logo2019.svg';\n\n\t\tfunction getSecurityQuestion() {\n\t\t\tvm.gettingQuestion = true;\n\t\t\tauthentication.getSecurityQuestion({ username: vm.emailAddress }).then(function (response) {\n\t\t\t\tvm.errorMessage = null;\n\t\t\t\tvm.securityQuestion = response;\n\t\t\t\tvm.gettingQuestion = false;\n\t\t\t}, function (err) {\n\t\t\t\tvm.errorMessage = 'Email Address entered is not associated with an AutoPoint account. Please try a different email address or ask your dealership Administrator to look up your email address.';\n\t\t\t\tvm.gettingQuestion = false;\n\t\t\t});\n\t\t}\n\n\t\tfunction forgotPassword() {\n\t\t\tvm.sendingEmail = true;\n\t\t\tauthentication.forgotPassword({ username: vm.emailAddress, answer: vm.securityAnswer }).then(function (response) {\n\t\t\t\tvm.errorMessage = null;\n\t\t\t\tvm.sendingEmail = false;\n\t\t\t\tvm.checkEmail = true;\n\t\t\t}, function (err) {\n\t\t\t\tvm.errorMessage = 'Invalid email address. Please try again.';\n\t\t\t\tvm.sendingEmail = false;\n\t\t\t});\n\t\t}\n\n\t\tfunction setBackgroundImage() {\n\t\t\tvar host = $location.$$host;\n\t\t\tif (host.indexOf('mercedes') > -1) {\n\t\t\t\t$(\"#forgot-view\").addClass('dsd-background');\n\t\t\t} else {\n\t\t\t\tvar imgAr = [\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back1.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back2.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back3.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back4.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back5.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back6.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back7.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back8.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back9.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back10.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back11.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back12.jpg'\n\t\t\t\t];\n\t\t\t\t\n\t\t\t\tvar num = Math.floor(Math.random() * imgAr.length);\n\t\t\t\tvar img = imgAr[num];\n\t\t\t\t$(\"#forgot-view\").css('background-image', \"url(\" + authenticationSettings.dynamicContentUrl + img + \")\");\n\t\t\t}\n\t\t}\n\t\tsetBackgroundImage();\n\n\t}\n})();","/**\n * header directive\n */\n(function () {\n\t'use strict';\n\tangular\n\t\t.module('app')\n\t\t.directive('apHeader', ['authenticationSettings', function (authenticationSettings) {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\ttemplateUrl: 'app/layout/header.html',\n\t\t\t\tscope: {},\n\t\t\t\ttransclude: true,\n\t\t\t\tlink: function (scope) {\n\t\t\t\t\tscope.logoUrl = authenticationSettings.dynamicContentUrl + '/1234/x/images/solera-autopoint_logo2019.svg';\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n})();","/**\n * Layout Controller\n */\n(function() {\n\tangular.module('app.layout').controller('ShellController', ShellController);\n\n\tShellController.$inject = ['$location', '$scope', 'authenticationSettings'];\n\tfunction ShellController($location, $scope, authenticationSettings) {\n\t\tvar vm = this;\n\t\tvm.redirect = $scope.$root.redirectURL;\n\t\tvm.logoUrl = authenticationSettings.dynamicContentUrl + '/1234/x/images/solera-autopoint_logo2019.svg';\n\t\t$scope.$root.date = new Date();\n\n\t\tif ($location.search().thirdparty && $location.search().thirdparty.toLowerCase() === 'redcap') {\n\t\t\tvm.hideHeader = true;\n\t\t\tangular.element('body').css('background-color', '#ffffff');\n\t\t\tangular.element('#wrapper').css('width', '100%');\n\t\t\tangular.element('.login-page').css('background-image', 'none');\n\t\t}\n\t}\n})();\n","/**\n * Login Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/',\n\t\t\t\tconfig: {\n\t\t\t\t\ttemplateUrl: 'app/login/login.html',\n\t\t\t\t\tcontroller: 'LoginController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttitle: 'Login'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Login Controller\n */\n(function() {\n\tangular.module('app.login').controller('LoginController', LoginController);\n\n\tLoginController.$inject = [\n\t\t'authentication',\n 'authenticationSettings',\n 'azureSettings',\n '$rootScope',\n\t\t'$cookies',\n\t\t'$location',\n\t\t'$window'\n\t];\n function LoginController(authentication, authenticationSettings, azureSettings, $rootScope, $cookies, $location, $window) {\n\t\tvar vm = this;\n\t\tvm.isLoginVisible = false; \n\t\t// get params\n\t\tvm.isDefaultProvider = true;\n\t\tvar defaultParam = $location.search().isDefaultProvider;\n\t\tif (notNullOrUndefined(defaultParam)) {\n\t\t\tvm.isDefaultProvider = defaultParam;\n\t\t}\n\n\t\tvm.isThirdParty = false;\n\t\tvm.orgCacheKey;\n\n\t\tvar applicationCacheKey = $location.search().clientId;\n\t\tif (!applicationCacheKey) {\n\t\t\t// use MultiPointII by default\n\t\t\tapplicationCacheKey = authenticationSettings.defaultApplicationCacheKey;\n\t\t}\n\n\t\tif ($location.search().timeout) {\n\t\t\tvm.errorMessage = 'You were logged out due to inactivity. Please log back in to continue.';\n }\n if (notNullOrUndefined($rootScope.errorMessage)) {\n vm.errorMessage = $rootScope.errorMessage;\n }\n\t\tif (\n\t\t\tnotNullOrUndefined($location.search().thirdparty) &&\n\t\t\t$location.search().thirdparty.toLowerCase() === 'redcap'\n\t\t) {\n\t\t\tvar userKey = $location.search().userkey;\n\n\t\t\tif (notNullOrUndefined(userKey)) {\n\t\t\t\tvm.orgCacheKey = $location.search().orgcachekey;\n\t\t\t\tvm.isThirdParty = true;\n\t\t\t\tvar fingerprint = $location.search().hash || '';\n\t\t\t\tvar isLocal = $location.search().local ? $location.search().local : 0;\n\t\t\t\tvar version = $location.search().version ? $location.search().version : 1; //If no version, set version = 1 for default\n\n\t\t\t\tredCapLogin(userKey, vm.orgCacheKey, fingerprint, isLocal, version);\n\t\t\t}\n\t\t}\n\n\t\tif (!vm.isThirdParty) {\n\t\t\tinit();\n\t\t}\n\n\t\t// Init function, ** does not fire on RedCap load **\n\t\tfunction init() {\n\t\t\t// setup model data\n\t\t\tvm.emailAddress = '';\n\t\t\tvm.password = '';\n\t\t\tvm.loggingIn = false;\n\t\t\tvm.authentication = authentication.authentication;\n\t\t\tvm.isLoginVisible = !vm.authentication.isAuth;\n\n\t\t\tif (vm.authentication.isAuth && $rootScope.redirectURL.length > 0 && !vm.isThirdParty) {\n\t\t\t\t$window.location.href = $rootScope.redirectURL;\n\t\t\t}\n\n\t\t\tvm.logoUrl = authenticationSettings.dynamicContentUrl + '/1234/x/images/solera-autopoint_logo2019.svg';\n\n\t\t\t// setup model functions\n\t\t\tvm.login = login;\n\n\t\t\tsetLoginBackgroundImage();\n\t\t\tresetCookies();\n\t\t}\n\n\t\tfunction isTrue(value) {\n\t\t\treturn value === true || value === 'true';\n\t\t}\n\n\t\tfunction notNullOrUndefined(value) {\n\t\t\treturn value !== undefined && value !== 'undefined' && value !== null;\n\t\t}\n\n\t\tfunction resetCookies() {\n\t\t\t// RSC-1609 - clear cookies for switching environments\n\t\t\tvar apCookieKeys = ['authorizationData', 'AutoPointApplicationCookie'],\n\t\t\t\tapDomains = ['local', 'qa', 'st'];\n\n\t\t\tangular.forEach(apCookieKeys, function(key) {\n\t\t\t\t//sub-environments\n\t\t\t\tangular.forEach(apDomains, function(subDomain) {\n\t\t\t\t\t$cookies.remove(key, { domain: '.' + subDomain + '.autopoint.com' });\n\t\t\t\t});\n\n\t\t\t\t//prod\n\t\t\t\t$cookies.remove(key, { domain: '.autopoint.com' });\n\t\t\t});\n }\n\n vm.RedirectLogin = function () {\n RedirectMFALogin();\n } \n\n function RedirectMFALogin() {\n authentication.isUserExistInAzure(vm.emailAddress).then(function (data) {\n if (data != null & data != undefined & data != \"\") {\n authentication.getNonce(vm.emailAddress).then(function (nonceResponse) {\n var tenantName = azureSettings.tenantName;\n var policyName = azureSettings.passwordlessPolicy;\n var clientId = azureSettings.clientId;\n var redirectUri = azureSettings.redirectUri;\n var nonceData = nonceResponse.data\n var redirect = $location.search().redirect || $rootScope.redirectURL;\n redirect = redirect ? redirect.split('#')[0] : \"\";\n var applicationClientId = '';\n applicationCacheKey = $location.search().clientId ? $location.search().clientId.toUpperCase() : authenticationSettings.avenueCacheKey;\n switch (redirect.toLowerCase()) {\n case authenticationSettings.cpoUrl.toLowerCase() + '/#/':\n case authenticationSettings.cpoUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.cpoCacheKey;\n break;\n case authenticationSettings.reportingUrl.toLowerCase() + '/#/reports/':\n case authenticationSettings.reportingUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.reportingCacheKey;\n break;\n }\n if (applicationClientId != '') {\n applicationCacheKey = applicationClientId;\n }\n var url = \"https://\" + tenantName + \".b2clogin.com/\" + tenantName + \".onmicrosoft.com/\" + policyName + \"/oauth2/v2.0/authorize?response_type=code&client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&code_challenge=\" + nonceData.codeChallenge + \"&code_challenge_method=S256&login_hint=\" + vm.emailAddress + \"&nonce=\" + nonceData.userNonce + \"&state=\" + applicationCacheKey + \";\" + vm.emailAddress + \";\" + nonceData.userNonce + \";\" + nonceData.codeVerifier;\n $window.location.href = url;\n },\n function (err) {\n $rootScope.value = err;\n vm.errorMessage = \"MFA Validation Cancelled. Please try again.\";\n });\n }\n },\n function (err) {\n $rootScope.value = err;\n vm.errorMessage = \"MFA Validation Cancelled. Please try again.\";\n });\n }\n\n vm.RedirectMfa = function () {\n window.open(authenticationSettings.helpdeskUrl);\n }\n\t\tfunction login() {\n\t\t\tvm.errorMessage = null;\n\t\t\tvar request = {\n\t\t\t\tusername: vm.emailAddress,\n\t\t\t\tpassword: vm.password,\n\t\t\t\tapplicationCacheKey: applicationCacheKey,\n\t\t\t\tisDefaultProvider: vm.isDefaultProvider\n }; \n\n\t\t\tvm.loggingIn = true;\n\t\t\tauthentication.login(request).then(\n\t\t\t\tfunction(response) {\n var response = response.data;\n vm.errorMessage = null; \n //We need third party redirects handled slightly differently\n if (vm.isThirdParty) {\n var clientId = $location.search().clientId.toUpperCase()\n var reportId= $location.search().reportId,\n redirectUrl = $location.search().redirect\n \n search = '';\n\n var authData = JSON.parse(localStorage.getItem('cookiedata'));\n authentication.setAuthDataCookie(authData, true);\n if (notNullOrUndefined(clientId) && !notNullOrUndefined(redirectUrl) && notNullOrUndefined(reportId)) {\n var orgKey = $location.search().orgcachekey.toUpperCase();\n \n // build search string\n angular.forEach($location.search(), function (value, key) {\n search += key + '=' + value + '&';\n });\n //remove last ?\n search = search.substring(0, search.length - 1);\n\n if (clientId===authenticationSettings.reportingCacheKey && notNullOrUndefined(reportId))\n {\n $rootScope.redirectURL =\n authenticationSettings.reportingUrl + '/#/reports/' + orgKey + '?' + search;\n }\n else{\n $rootScope.redirectURL =\n authenticationSettings.ssoUrl +'/#/failed-login';\n }\n } else if (notNullOrUndefined(redirectUrl)) {\n $rootScope.redirectUrl = redirectUrl;\n }\n $window.location.href = $rootScope.redirectURL;\n }\n else if (notNullOrUndefined(response.password_reset_required) &&\n isTrue(response.password_reset_required)\n ) {\n $location.search().passReset = 1;\n $location.path('/register');\n return;\n }\n else { \n authentication.isUserRegisteredForMFA(vm.emailAddress).then(function (mfadata) { \n if (!mfadata) {\n $('#mfaModal').modal('show');\n }\n else {\n RedirectMFALogin();\n }\n });\n }\n\t\t\t\t},\n function (err) {\n \n $rootScope.value = err; \n console.error('login error:', angular.copy(err));\n\t\t\t\t\tif (vm.isThirdParty) {\n\t\t\t\t\t\t$location.path('/failed-login');\n }\n if ($rootScope.value[0].statusText.includes(\"Invalid credentials\")) {\n vm.password = null;\n vm.errorMessage = 'The supplied credentials do not match our records.';\n vm.loggingIn = false;\n }\n else if ($rootScope.value[0].statusText.includes(\"Account is locked\")) {\n vm.password = null;\n vm.errorMessage = 'Too many invalid login attempts.' + '\\n' + 'Your account is currently locked.' + '\\n' + 'For immediate assistance, contact your account Admin or Manager.';\n vm.loggingIn = false;\n }\n else if ($rootScope.value[0].statusText.includes(\"Warning before locking\")) {\n vm.password = null;\n vm.errorMessage = 'The supplied credentials do no match our records.' + '\\n' + 'One more attempt left before account is locked.'\n vm.loggingIn = false;\n }\n else if ($rootScope.value[0].statusText.includes(\"Account is expired\")) {\n $location.search().passReset = 1;\n $location.path('/register');\n }\n else {\n vm.password = null;\n vm.errorMessage = 'Invalid username or password. Please try again.';\n vm.loggingIn = false;\n }\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * redCapLogin - Allows Red Cap to log users in using their credentials\n\t\t * @param {*} userKey - User login ID\n\t\t * @param {*} orgCacheKey (Optional) - Not used currently but will be used to specify a specific org in the future\n\t\t * @param {*} fingerprint - A hash signature representing the request came from a trusted source\n\t\t * @param {*} isLocal - DEV ONLY flag for testing with local ip address\n\t\t * @param {*} version - To detemine what format of fingerprint to be verified\n\t\t */\n\t\tfunction redCapLogin(userKey, orgCacheKey, fingerprint, isLocal, version) {\n vm.emailAddress = userKey;\n\t\t\tvm.password = \"redcap\"+fingerprint;\n\n login();\n\t\t}\n\n\t\tfunction setLoginBackgroundImage() {\n\t\t\tvar host = $location.$$host;\n\t\t\tif (host.indexOf('mercedes') > -1) {\n\t\t\t\t$('.login-page').addClass('dsd-background');\n\t\t\t} else {\n\t\t\t\tvar imgAr = [\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back1.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back2.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back3.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back4.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back5.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back6.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back7.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back8.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back9.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back10.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back11.jpg',\n\t\t\t\t\t'/1234/x/images/sso-backgrounds/sso-back12.jpg'\n\t\t\t\t];\n\n\t\t\t\tvar num = Math.floor(Math.random() * imgAr.length);\n\t\t\t\tvar img = imgAr[num];\n\t\t\t\t$('.login-page').css('background-image', 'url(' + authenticationSettings.dynamicContentUrl + img + ')');\n\t\t\t}\n\t\t}\n\t}\n})();\n","/**\n * Register Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/register',\n\t\t\t\tconfig: {\n\t\t\t\t\ttemplateUrl: 'app/register/register.html',\n\t\t\t\t\tcontroller: 'RegisterController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttitle: 'Register'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Register Controller\n */\n(function () {\n\n angular.module('app.register')\n .controller('RegisterController', RegisterController);\n\n RegisterController.$inject = ['authentication', 'authenticationSettings','azureSettings', 'userRoles', '$rootScope', '$location', '$window'];\n function RegisterController(authentication, authenticationSettings, azureSettings, userRoles, $rootScope, $location, $window) {\n\t\t// get params\n\t\tvar token = $location.search().registrationtoken;\n\n // setup model data\n var vm = this;\n vm.emailAddress = $location.search().email;\n vm.password = '';\n vm.confirmPassword = '';\n vm.securityQuestion = '';\n vm.securityAnswer = '';\n vm.confirmSecurityAnswer = '';\n vm.canRegister = false;\n vm.firstLogin = $location.search().passReset;\n vm.registering = false;\n vm.registered = false;\n vm.processing = false;\n\n\t\t// setup model functions\n\t\tvm.changePassword = changePassword;\n\t\tvm.register = register;\n vm.validatePassword = validatePassword;\n\n var applicationCacheKey = $location.search().clientId;\n if (!applicationCacheKey) {\n // use MultiPointII by default\n applicationCacheKey = authenticationSettings.defaultApplicationCacheKey;\n }\n\n\t\t// With the new default password changes (RSCQ2-28 & RSCQ2-31), the endpoint for canUserFinishReg isn't needed\n\t\tif(vm.firstLogin === undefined || (vm.firstLogin !== undefined && !vm.firstLogin)) {\n\t\t\tcanUserFinishRegistration();\n\t\t}\n\n function canUserFinishRegistration() {\n authentication.canUserFinishRegistration(vm.emailAddress, token).then(function (response) {\n if (response === false) {\n $window.location.href = $rootScope.redirectURL;\n }\n });\n }\n\n function changePassword() {\n vm.processing = true;\n\n var authData = JSON.parse(localStorage.getItem('cookiedata'));\n vm.emailAddress = authData.username;\n var request = {\n username: authData.username,\n token: authData.access_token,\n password: vm.password\n };\n authentication.passwordChange(request)\n .then(function (response) {\n\n if (response.status === 204 || response.status === '204' || response.data === 'Password successfully updated.') {\n if ($location.search().redirect !== undefined && $location.search().redirect !== 'undefined' && $location.search().redirect !== null) {\n $rootScope.redirectUrl = decodeURI($location.search().redirect);\n } else {\n if (authData.organization_units.length > 0) {\n var topOrg = authData.organization_units[0],\n roles = topOrg.applicationRoles,\n orgKey = topOrg.organizationUnitCacheKey,\n search = $location.search();\n\n $rootScope.redirectURL = undefined;\n\n for (var i = 0; i < roles.length; i++) {\n if ($rootScope.redirectURL === undefined) {\n switch (roles[i]) {\n case userRoles.MultiPointUser:\n $rootScope.redirectURL = authenticationSettings.multiPointUrl + '/#/' + orgKey + '/route-sheet';\n break;\n case userRoles.WelcomePointUser:\n $rootScope.redirectURL = authenticationSettings.welcomePointUrl + '/#/?org=' + orgKey + '&sys=WP&' + search;\n break;\n case userRoles.AppointmentsUser:\n break;\n case userRoles.CPOUser:\n $rootScope.redirectURL = authenticationSettings.cpoUrl + '/#/' + orgKey + '/route-sheet?' + search;\n break;\n case userRoles.ReportingUser:\n case userRoles.DealerReportsViewer:\n case userRoles.UserReportsViewer:\n case userRoles.InternalReportsViewer:\n $rootScope.redirectURL = authenticationSettings.reportingUrl + '/#/reports/' + orgKey + '?' + search;\n break;\n default:\n break;\n }\n }\n }\n }\n }\n\n vm.processing = false;\n // If nothing else was set, set to Avenue\n if ($rootScope.redirectUrl === undefined) {\n $rootScope.redirectURL = authenticationSettings.avenueUrl + '/#/' + orgKey;\n }\n authentication.isUserRegisteredForMFA(vm.emailAddress).then(function (mfadata) {\n if (!mfadata) {\n $('#mfaModal').modal('show');\n }\n else {\n RedirectMFALogin();\n }\n });\n }\n else {\n\n vm.errorMessage = response.data;\n vm.processing = false;\n vm.registering = false;\n }\n },\n function (err) {\n\n vm.errorMessage = 'Unable to reset password. Please try again.';\n vm.processing = false;\n vm.registering = false;\n }\n );\n }\n\n function register() {\n vm.errorMessage = null;\n var request = {\n username: vm.emailAddress,\n token: token,\n password: vm.password,\n confirmPassword: vm.confirmPassword,\n question: vm.securityQuestion,\n answer: vm.securityAnswer,\n confirmAnswer: vm.confirmSecurityAnswer\n };\n\n vm.registering = true;\n authentication.register(request).then(function (response) {\n vm.errorMessage = null;\n vm.registered = true;\n login();\n }, function (err) {\n vm.errorMessage = 'Unable to save registration. Please try again.';\n vm.registering = false;\n });\n }\n vm.RedirectMfa = function () {\n window.open(authenticationSettings.helpdeskUrl);\n }\n vm.RedirectLogin = function () {\n RedirectMFALogin();\n }\n\n function RedirectMFALogin() {\n authentication.isUserExistInAzure(vm.emailAddress).then(function (data) {\n if (data != null & data != undefined & data != \"\") {\n var nonce = authentication.getNonce(vm.emailAddress).then(function (nonceResponse) {\n var tenantName = azureSettings.tenantName;\n var policyName = azureSettings.passwordlessPolicy;\n var clientId = azureSettings.clientId;\n var redirectUri = azureSettings.redirectUri;\n var nonceData = nonceResponse.data\n var redirect = $location.search().redirect || $rootScope.redirectURL;\n var applicationClientId = '';\n switch (redirect.toLowerCase()) {\n case authenticationSettings.cpoUrl.toLowerCase() + '/#/':\n case authenticationSettings.cpoUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.cpoCacheKey;\n break;\n case authenticationSettings.reportingUrl.toLowerCase() + '/#/reports/':\n case authenticationSettings.reportingUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.reportingCacheKey;\n break;\n }\n if (applicationClientId != '') {\n applicationCacheKey = applicationClientId;\n }\n var url = \"https://\" + tenantName + \".b2clogin.com/\" + tenantName + \".onmicrosoft.com/\" + policyName + \"/oauth2/v2.0/authorize?response_type=code&client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&code_challenge=\" + nonceData.codeChallenge + \"&code_challenge_method=S256&login_hint=\" + vm.emailAddress + \"&nonce=\" + nonceData.userNonce + \"&state=\" + applicationCacheKey + \";\" + vm.emailAddress + \";\" + nonceData.userNonce + \";\" + nonceData.codeVerifier;\n $window.location.href = url;\n },\n function (err) {\n $rootScope.value = err;\n vm.errorMessage = \"MFA Validation Cancelled. Please try again.\";\n });\n }\n });\n }\n function login() {\n var request = {\n username: vm.emailAddress,\n password: vm.password,\n applicationCacheKey: authenticationSettings.defaultApplicationCacheKey\n };\n\n authentication.login(request).then(function (response) {\n authentication.isUserRegisteredForMFA(vm.emailAddress).then(function (mfadata) {\n if (!mfadata) {\n $('#mfaModal').modal('show');\n }\n else {\n RedirectMFALogin();\n }\n });\n \n\t\t\t}, function (err) {\n\t\t\t\t$location.path('/');\n\t\t\t});\n\t\t}\n\n function validatePassword() {\n if (vm.password === undefined) {\n return;\n }\n\n vm.canRegister = vm.password.replace(/\\s/g, '').length !== 0;\n }\n }\n})();\n","/**\n * Logout Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/logout',\n\t\t\t\tconfig: {\n\t\t\t\t\ttemplateUrl: 'app/logout/logout.html',\n\t\t\t\t\tcontroller: 'LogoutController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttitle: 'Logout'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Logout Controller\n */\n(function () {\n\n\tangular.module('app.logout')\n\t\t.controller('LogoutController', LoginController);\n\n LoginController.$inject = ['authentication', '$location', 'azureSettings','$rootScope'];\n function LoginController(authentication, $location, azureSettings, $rootScope) {\n var mfaredirect = localStorage.getItem('mfaredirect');\n // log out\n\t\tlogout();\n \n function logout() { \n var authdata = authentication.getAuthData(); \n if (authdata || mfaredirect == 'true') { \n localStorage.removeItem('cookiedata');\n localStorage.removeItem('mfaredirect');\n authentication.logout();\n var tenantName = azureSettings.tenantName;\n var policyName = azureSettings.passwordlessPolicy;\n var logouturl = azureSettings.azureLogoutUri; \n var clientId = $location.search().clientId;\n var redirect = $location.search().redirect || $rootScope.redirectURL; \n var redirectUri = redirect?redirect.split('#')[0]:\"\"; \n var url = \"https://\" + tenantName + \".b2clogin.com/\" + tenantName + \".onmicrosoft.com/\" + policyName + \"/oauth2/v2.0/logout?post_logout_redirect_uri=\" + logouturl + \"&state=\" + redirectUri + ';' + clientId;\n window.location.href = url;\n } \n \n $location.path('/'); \n\t\t}\n\t}\n})();","/**\n * Logout Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/mfaredirect',\n\t\t\t\tconfig: {\n templateUrl: 'app/mfaredirect/mfaredirect.html',\n controller: 'MfaredirectController',\n\t\t\t\t\tcontrollerAs: 'vm',\n title: 'Mfaredirect'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Logout Controller\n */\n(function () {\n\n angular.module('app.mfaredirect')\n .controller('MfaredirectController', MfaredirectController);\n\n MfaredirectController.$inject = ['authentication', 'authenticationSettings', '$location', '$rootScope', '$window'];\n function MfaredirectController(authentication, authenticationSettings, $location, $rootScope,$window) {\n\n var vm = this; \n vm.errorMessage = ''; \n redirect(); \n \n function redirect() { \n var clientId = $location.search().clientId.toUpperCase(); \n var nonce = $location.search().nonce.toUpperCase();\n vm.mfaredirect = true;\n if (notNullOrUndefined($location.search().error)) {\n vm.errorMessage = $location.search().error;\n }\n if (clientId == authenticationSettings.welcomePointCacheKey) {\n if (vm.errorMessage == '') {\n $rootScope.redirectURL =\n authenticationSettings.welcomePointUrl + '/#/login/mfa/' + nonce+'/' + vm.mfaredirect+ '/';\n }\n else {\n vm.mfaredirect = false;\n $rootScope.redirectURL =\n authenticationSettings.welcomePointUrl + '/#/login/mfa/' + nonce + '/'+ vm.mfaredirect + '/' + vm.errorMessage;\n \n }\n }\n else {\n if (vm.errorMessage != '') {\n var url = authenticationSettings.ssoUrl + '/#/logout/?clientId=' + clientId;\n $rootScope.errorMessage = vm.errorMessage;\n localStorage.setItem('mfaredirect', 'false');\n authentication.logout();\n $window.location.href = url;\n return;\n } \n var authData = JSON.parse(localStorage.getItem('cookiedata'));\n authentication.setAuthDataCookie(authData);\n localStorage.setItem('mfaredirect', 'true');\n switch (clientId) { \n case authenticationSettings.cpoCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.cpoUrl;\n break;\n case authenticationSettings.dealerSettingsCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.dealerSettingsUrl;\n break;\n case authenticationSettings.multiPointCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.multiPointUrl;\n break;\n case authenticationSettings.packageEditorCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.packageEditorUrl;\n break;\n case authenticationSettings.reportingCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.reportingUrl;\n break; \n \n case authenticationSettings.shopProvisioningCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.shopProvisioningUrl + '/#/organization';\n break;\n case authenticationSettings.avenueCacheKey:\n $rootScope.redirectURL =\n authenticationSettings.avenueUrl;\n break;\n } \n }\n $window.location.href = $rootScope.redirectURL;\n } \n\n function notNullOrUndefined(value) {\n return value !== undefined && value !== 'undefined' && value !== null;\n }\n\t}\n})();","\"use strict\";\n\n(function () {\n\n\tangular.module('app.services')\n\t\t.factory(\"authentication\", AuthenticationService);\n\n AuthenticationService.$inject = ['$http', '$q', '$cookies', 'authenticationSettings', '$rootScope','$browser','$document'];\n function AuthenticationService($http, $q, $cookies, authenticationSettings, $rootScope,$browser,$document) {\n\n\t\tvar serviceBase = authenticationSettings.apiServiceBaseUri;\n\t\tif (serviceBase.indexOf('/', serviceBase.length - 1) === -1) {\n\t\t\tserviceBase = serviceBase + '/';\n\t\t}\n\n\t\tvar cookieDomain = authenticationSettings.cookieDomain;\n\n\t\tvar authentication = {\n\t\t\tisAuth: false,\n\t\t\tusername: \"\",\n\t\t\tredirectUrl: \"\"\n\t\t};\n\n\t\tvar vm = this;\n\n\t\tfillAuthData();\n\n\t\treturn {\n\t\t\tcanUserFinishRegistration: canUserFinishRegistration,\n\t\t\tlogin: login,\n\t\t\tlogout: logout,\n\t\t\tredCapLogin: redCapLogin,\n\t\t\tregister: register,\n\t\t\tgetSecurityQuestion: getSecurityQuestion,\n\t\t\tforgotPassword: forgotPassword,\n\t\t\tpasswordChange: passwordChange,\n\t\t\tresetPassword: resetPassword,\n\t\t\tgetAuthData: getAuthData,\n\t\t\tfillAuthData: fillAuthData,\n authentication: authentication,\n getNonce: getNonce,\n isUserExistInAzure: isUserExistInAzure,\n setAuthDataCookie: setAuthDataCookie,\n isUserRegisteredForMFA: isUserRegisteredForMFA\n\t\t};\n\n\t\tfunction canUserFinishRegistration(username, registrationToken) {\n\t\t\tvar encodedToken = encodeURIComponent(registrationToken);\n\t\t\treturn $http.get(serviceBase + 'auth/register/is-allowed?username=' + username + '®istrationtoken=' + encodedToken).then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\t//\n\t\t// Login - request { username: string, password: string, applicationCacheKey: string, rememberUsername: boolean }\n\t\t//\n\t\tfunction login(request) {\n\t\t\tvar data = {\n\t\t\t\tUsername: request.username,\n\t\t\t\tPassword: request.password,\n\t\t\t\tApplicationCacheKey: request.applicationCacheKey\n\t\t\t};\n\n\t\t\tvar deferred = $q.defer();\n $http.post(serviceBase + \"auth/login?isDefaultProvider=\" + request.isDefaultProvider, data).then(function (response) {\n localStorage.setItem('cookiedata', JSON.stringify(response.data)); \n\t\t\t\tauthentication.isAuth = true;\n\t\t\t\tauthentication.username = request.username;\n\n deferred.resolve(response);\n }, function (err) {\n deferred.reject([err]);\n });\n\n\t\t\treturn deferred.promise;\n }\n //\n //Nonce Token\n //\n function getNonce(username) {\n var nonceData = {\n UserNonce: \"\",\n Codechallenge: \"\",\n Codeverfier: \"\"\n };\n\n var deferred = $q.defer();\n $http.get(serviceBase + \"auth/azure/user-nonce?signInName=\" + username).then(function (response) {\n if (response) {\n\n nonceData = response;\n deferred.resolve(nonceData);\n }\n }, function (err) {\n deferred.reject([err]);\n });\n\n return deferred.promise;\n\n }\n\n\n function isUserExistInAzure(userName) {\n var deferred = $q.defer();\n $http.get(serviceBase + \"auth/azure/create-user?signInName=\" + userName).then(function (response) {\n if (response) {\n \n deferred.resolve(response);\n }\n }, function (err) {\n deferred.reject([err]);\n });\n\n return deferred.promise;\n\n }\n\n function isUserRegisteredForMFA(userName) {\n var deferred = $q.defer();\n $http.get(serviceBase + \"auth/azure/isregistered-mfaoptions?signInName=\" + userName).then(function (response) {\n if (response) {\n\n deferred.resolve(response.data);\n }\n }, function (err) {\n deferred.reject([err]);\n });\n\n return deferred.promise;\n\n }\n\n\t\t//\n\t\t// Logout\n\t\t//\n function logout() { \n\t\t\tvar authData = getAuthData();\n\t\t\tif (authData) {\n\n\t\t\t\tvar userCacheKey = authData.user_cache_key;\n\n\t\t\t\t// clear auth data\n\t\t\t\tauthData = {};\n\n\t\t\t\t// clear the cookie\n\t\t\t\tsetAuthDataCookie(authData);\n\n\t\t\t\t// delete cookie - this isn't removed immediately\n\t\t\t\tdeleteAuthDataCookie();\n\n\t\t\t\tauthentication.isAuth = false;\n authentication.userName = \"\"; \n\n\t\t\t\t// logout\n\t\t\t\tif (userCacheKey) {\n\t\t\t\t\t$http.delete(serviceBase + \"auth/logout?userCacheKey=\" + userCacheKey);\n } \n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Password Change\n\t\t * API endpoint for customers who need to change password on initial login\n\t\t * @param {*} request\n\t\t */\n function passwordChange(request) {\n var data = {\n Username: request.username,\n Password: request.password\n };\n var deferred = $q.defer();\n \n // This feels like a giant, embarrassing Band-Aid, but SSO has never had auth headers set up before\n $http.defaults.headers.common['Authorization'] = 'Bearer ' + request.token;\n\n return $http.post(serviceBase + 'auth/password/change', data).then(function (response) {\n \n return response;\n\n }, function (err) {\n deferred.reject([err]);\n });\n\n }\n\n\t\t/**\n\t\t * redCapLogin\n\t\t * Allow users to login through RedCap - params: login, fingerprint, version\n\t\t * @param {*} login\n\t\t * @param {*} fingerprint\n\t\t * @param {*} local\n\t\t * @param {*} version\n\t\t */\n\t\tfunction redCapLogin(login, fingerprint, local, version) {\n\t\t\tvar deferred = $q.defer();\n\n\t\t\t$http.post(serviceBase + 'auth/hash-client?valueToHash='+login+'&fingerprint='+fingerprint+'&isLocal='+local+'&version='+version)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tvar hash = 'redcap' + response.data;\n\t\t\t\t\tdeferred.resolve(hash);\n\t\t\t\t}, function(err) {\n\t\t\t\t\tdeferred.reject();\n\t\t\t\t});\n\n\t\t\treturn deferred.promise;\n\t\t}\n\n\t\t//\n\t\t// Register - request { username: string, token: string, password: string, confirmPassword: string, question: string, answer: string, confirmAnswer: string }\n\t\t//\n\t\tfunction register(request) {\n\t\t\tvar data = {\n\t\t\t\tUsername: request.username,\n\t\t\t\tToken: request.token,\n\t\t\t\tPassword: request.password,\n\t\t\t\tConfirmPassword: request.confirmPassword,\n\t\t\t\tQuestion: request.question,\n\t\t\t\tAnswer: request.answer,\n\t\t\t\tConfirmAnswer: request.confirmAnswer\n\t\t\t};\n\n\t\t\treturn $http.post(serviceBase + \"auth/register\", data).then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\t//\n\t\t// Get Security Question - request { username: string }\n\t\t//\n\t\tfunction getSecurityQuestion(request) {\n\t\t\treturn $http.get(serviceBase + \"auth/password/question?username=\" + request.username).then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\t//\n\t\t// Forgot Password - request { username: string, answer: string }\n\t\t//\n\t\tfunction forgotPassword(request) {\n\t\t\tvar data = {\n\t\t\t\tUsername: request.username,\n\t\t\t\tAnswer: request.answer,\n\t\t\t\tRedirectUrl: $rootScope.redirectURL\n\t\t\t};\n\n\t\t\treturn $http.post(serviceBase + 'auth/password/forgot', data).then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n //\n // Reset Password - request { username: string, password: string, token: string }\n //\n function resetPassword(request) {\n var data = {\n Username: request.username,\n Token: request.token,\n Password: request.password\n };\n var deferred = $q.defer();\n \n return $http.post(serviceBase + \"auth/password/reset\", data).then(function (response) {\n \n return response\n\n }, function (err) {\n \n deferred.reject([err]);\n });\n \n }\n //\n // Fill Authorization Data\n //\n function fillAuthData() {\n //populates data from cookie\n var authData = getAuthData();\n if (authData) {\n if (!authData.access_token) {\n // not logged in\n authentication.savedUsername = authData.savedUsername;\n } else {\n // logged in\n authentication.isAuth = true;\n authentication.username = authData.username;\n\n\t\t\t\t\t// This feels like a giant, embarrassing Band-Aid, but SSO has never had auth headers set up before\n\t\t\t\t\t$http.defaults.headers.common['Authorization'] = 'Bearer ' + authData.access_token;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tauthentication.redirectUrl = $rootScope.redirectURL;\n\t\t}\n\n\t\t//\n\t\t// Get Authorization Data\n\t\t//\n\t\tfunction getAuthData() {\n\t\t\tvar authData = $cookies.getObject(authenticationSettings.cookieName);\n\t\t\tif (!authData) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn authData;\n\t\t}\n\n\t\tfunction setAuthDataCookie(authData, isRedcap= false) {\n\t\t\t// This will ensure that ONLY the needed values will make it to the authData cookie and the permissions will be stripped from the object.\n\t\t\tdelete authData.product_permissions;\n\t\t\tdelete authData.application_permissions;\n\t\t\tif (authData.organization_units && authData.organization_units[0]) {\n\t\t\t\tauthData.organization_units = [authData.organization_units[0]];\n\t\t\t}\n\t\t\tauthData.Env = getEnvFromDomain();\n\t\t\tif(isRedcap)\n\t\t\t{\n\t\t\t $document[0].cookie = buildCookieString(authenticationSettings.cookieName,angular.toJson(authData),{ domain: cookieDomain, samesite: \"None\", secure:true});\n\t\t\t\t//$cookies.putObject(authenticationSettings.cookieName, authData, { domain: cookieDomain, samesite: \"None\"});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t $cookies.putObject(authenticationSettings.cookieName, authData, { domain: cookieDomain });\n\n\t\t\t}\n\t\t}\n\t\tfunction buildCookieString(name, value, options) {\n\t\t\tvar path, expires;\n\t\t\toptions = options || {};\n\t\t\texpires = options.expires;\n\t\t\tvar cookiePath = $browser.baseHref();\n\t\t\tpath = angular.isDefined(options.path) ? options.path : cookiePath;\n\t\t\tif (angular.isUndefined(value)) {\n\t\t\t expires = 'Thu, 01 Jan 1970 00:00:00 GMT';\n\t\t\t value = '';\n\t\t\t}\n\t\t\tif (angular.isString(expires)) {\n\t\t\t expires = new Date(expires);\n\t\t\t}\n\t\t\n\t\t\tvar str = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n\t\t\tstr += path ? ';path=' + path : '';\n\t\t\tstr += options.domain ? ';domain=' + options.domain : '';\n\t\t\tstr += expires ? ';expires=' + expires.toUTCString() : '';\n\t\t\tstr += options.secure ? ';secure' : '';\n\t\t\tstr += options.samesite ? ';samesite=' + options.samesite : '';\n\t\t\n\t\t\t// per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum:\n\t\t\t// - 300 cookies\n\t\t\t// - 20 cookies per unique domain\n\t\t\t// - 4096 bytes per cookie\n\t\t\tvar cookieLength = str.length + 1;\n\t\t\tif (cookieLength > 4096) {\n\t\t\t $log.warn('Cookie \\'' + name +\n\t\t\t\t'\\' possibly not set or overflowed because it was too large (' +\n\t\t\t\tcookieLength + ' > 4096 bytes)!');\n\t\t\t}\n\t\t\n\t\t\treturn str;\n\t\t }\n\t\t\n\t\tfunction deleteAuthDataCookie() {\n\t\t\t$cookies.remove(authenticationSettings.cookieName);\n\t\t}\n\n\t\tfunction getEnvFromDomain() {\n\t\t\tswitch (cookieDomain) {\n case '.dv.autopoint.com':\n return 'dev';\n case '.qa.autopoint.com':\n return 'qa';\n case '.st.autopoint.com':\n return 'stage';\n case '.autopoint.com':\n return 'prod';\n default:\n return 'local';\n }\n\t\t}\n\t}\n})();\n","/**\n * Reset Password Route Configuration\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('app')\n\t\t.run(appRun);\n\n\tappRun.$inject = ['routehelper'];\n\tfunction appRun(routehelper) {\n\t\troutehelper.configureRoutes(getRoutes());\n\t}\n\n\tfunction getRoutes() {\n\t\treturn [\n\t\t\t{\n\t\t\t\turl: '/reset',\n\t\t\t\tconfig: {\n\t\t\t\t\ttemplateUrl: 'app/reset/reset.html',\n\t\t\t\t\tcontroller: 'ResetController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttitle: 'Reset Password'\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n})();\n","/**\n * Reset Password Controller\n */\n(function () {\n\n angular.module('app.reset')\n .controller('ResetController', ResetController);\n\n ResetController.$inject = ['authentication', 'authenticationSettings','azureSettings' ,'$rootScope', '$location', '$window'];\n function ResetController(authentication, authenticationSettings, azureSettings, $rootScope, $location, $window) {\n\t\t// get params\n\t\tvar token = $location.search().resettoken;\n\t\tvar redirectUrl = $location.search().redirecturl;\n\n\t\t// setup model data\n\t\tvar vm = this;\n\t\tvm.emailAddress = $location.search().email;\n\t\tvm.resettingPassword = false;\n\t\tvm.reset = false;\n\t\t\n\t\t// setup model functions\n vm.updatePassword = updatePassword;\n var applicationCacheKey = $location.search().clientId;\n if (!applicationCacheKey) {\n // use MultiPointII by default\n applicationCacheKey = authenticationSettings.defaultApplicationCacheKey;\n }\n\n function updatePassword() {\n vm.resettingPassword = true;\n authentication.resetPassword({ username: vm.emailAddress, password: vm.password, token: token }).then(function (response) {\n vm.errorMessage = null;\n\n if (response.data === 'Password successfully updated.') {\n vm.reset = true;\n login();\n\n }\n else {\n vm.errorMessage = response.data;\n vm.resettingPassword = false;\n }\n }, function (err) {\n\n vm.errorMessage = 'Unable to reset password. Please try again.';\n vm.resettingPassword = false;\n });\n }\n vm.RedirectMfa = function () {\n window.open(authenticationSettings.helpdeskUrl);\n }\n vm.RedirectLogin = function () {\n RedirectMFALogin();\n }\n function RedirectMFALogin(){\n authentication.isUserExistInAzure(vm.emailAddress).then(function (data) {\n if (data != null & data != undefined & data != \"\") {\n authentication.getNonce(vm.emailAddress).then(function (nonceResponse) {\n var tenantName = azureSettings.tenantName;\n var policyName = azureSettings.passwordlessPolicy;\n var clientId = azureSettings.clientId;\n var redirectUri = azureSettings.redirectUri;\n var nonceData = nonceResponse.data\n var redirect = $location.search().redirecturl || $rootScope.redirectURL;\n var redirectUrl = redirect ? redirect.split('#')[0] : \"\";\n var applicationClientId = '';\n switch (redirectUrl.toLowerCase()) {\n\n case authenticationSettings.cpoUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.cpoCacheKey;\n break;\n\n case authenticationSettings.reportingUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.reportingCacheKey;\n break;\n case authenticationSettings.dealerSettingsUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.dealerSettingsCacheKey;\n break;\n case authenticationSettings.multiPointUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.multiPointCacheKey;\n break;\n case authenticationSettings.shopProvisioningUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.shopProvisioningCacheKey;\n break;\n case authenticationSettings.packageEditorUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.packageEditorCacheKey;\n break;\n case authenticationSettings.avenueUrl.toLowerCase() + '/':\n applicationClientId = authenticationSettings.avenueCacheKey;\n break;\n }\n if (applicationClientId != '') {\n applicationCacheKey = applicationClientId;\n }\n var url = \"https://\" + tenantName + \".b2clogin.com/\" + tenantName + \".onmicrosoft.com/\" + policyName + \"/oauth2/v2.0/authorize?response_type=code&client_id=\" + clientId + \"&redirect_uri=\" + redirectUri + \"&scope=openid&code_challenge=\" + nonceData.codeChallenge + \"&code_challenge_method=S256&login_hint=\" + vm.emailAddress + \"&nonce=\" + nonceData.userNonce + \"&state=\" + applicationCacheKey + \";\" + vm.emailAddress + \";\" + nonceData.userNonce + \";\" + nonceData.codeVerifier;\n $window.location.href = url;\n },\n function (err) {\n $rootScope.value = err;\n vm.errorMessage = \"MFA Validation Cancelled. Please try again.\";\n });\n }\n });\n }\n\n function login() {\n var authData = authentication.getAuthData;\n\n var request = {\n username: vm.emailAddress,\n password: vm.password,\n applicationCacheKey: authenticationSettings.defaultApplicationCacheKey\n };\n\n\t\t\tauthentication.login(request).then(function (response) {\n authentication.isUserRegisteredForMFA(vm.emailAddress).then(function (mfadata) {\n if (!mfadata) {\n $('#mfaModal').modal('show');\n }\n else {\n RedirectMFALogin();\n }\n });\n\t\t\t}, function (err) {\n\t\t\t\t$location.path('/');\n\t\t\t});\n\t\t}\n\t}\n})();","/**\n * Created by Colin.Watson on 4/1/2015.\n */\n/// \n(function () {\n\t'use strict';\n\tangular.module('blocks').config(config);\n\tconfig.$inject = ['blocks.ApiEndpointProvider'];\n\tfunction config(apiEndpointProvider) {\n\t\tapiEndpointProvider.configure('http://localhost:9999');\n\t}\n})();\n","/**\n * Created by Colin.Watson on 4/1/2015.\n */\n/// \n(function () {\n\t'use strict';\n\tvar ApiEndpointProvider = (function () {\n\t\tfunction ApiEndpointProvider() {\n\t\t}\n\t\tApiEndpointProvider.prototype.configure = function (baseUrl) {\n\t\t\tthis.config = {\n\t\t\t\tbaseUrl: baseUrl\n\t\t\t};\n\t\t};\n\t\tApiEndpointProvider.prototype.$get = function () {\n\t\t\treturn this.config;\n\t\t};\n\t\treturn ApiEndpointProvider;\n\t})();\n\tangular.module('blocks').provider('blocks.ApiEndpoint', ApiEndpointProvider);\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n// Include in index.html so that app level exceptions are handled.\n\n(function () {\n\t'use strict';\n\t/*jshint validthis:true */\n\n\tangular\n\t\t.module('blocks.exception')\n\t\t.provider('exceptionHandler', exceptionHandlerProvider)\n\t\t.config(config);\n\n\t/**\n\t * Must configure the exception handling\n\t * @return {[type]}\n\t */\n\tfunction exceptionHandlerProvider() {\n\t\tthis.config = {\n\t\t\tappErrorPrefix: undefined\n\t\t};\n\n\t\tthis.configure = function (appErrorPrefix) {\n\t\t\tthis.config.appErrorPrefix = appErrorPrefix;\n\t\t};\n\n\t\tthis.$get = function () {\n\t\t\treturn { config: this.config };\n\t\t};\n\t}\n\n\t/**\n\t * Configure by setting an optional string value for appErrorPrefix.\n\t * Accessible via config.appErrorPrefix (via config value).\n\t * @param {[type]} $provide\n\t * @return {[type]}\n\t * @ngInject\n\t */\n\tconfig.$inject = ['$provide'];\n\tfunction config($provide) {\n\t\t$provide.decorator('$exceptionHandler', extendExceptionHandler);\n\t}\n\n\t/**\n\t * Extend the $exceptionHandler service to also display a toast.\n\t * @param {Object} $delegate\n\t * @param {Object} exceptionHandler\n\t * @param {Object} logger\n\t * @return {Function} the decorated $exceptionHandler service\n\t */\n\textendExceptionHandler.$inject = ['$delegate', 'exceptionHandler', 'LoggerService'];\n\tfunction extendExceptionHandler($delegate, exceptionHandler, logger) {\n\t\treturn function (exception, cause) {\n\t\t\tvar appErrorPrefix = exceptionHandler.config.appErrorPrefix || '';\n\t\t\tvar errorData = { exception: exception, cause: cause };\n\t\t\texception.message = appErrorPrefix + exception.message;\n\t\t\t$delegate(exception, cause);\n\t\t\t/**\n\t\t\t * Could add the error to a service's collection,\n\t\t\t * add errors to $rootScope, log errors to remote web server,\n\t\t\t * or log locally. Or throw hard. It is entirely up to you.\n\t\t\t * throw exception;\n\t\t\t *\n\t\t\t * @example\n\t\t\t * throw { message: 'error message we added' };\n\t\t\t */\n\t\t\tlogger.error(exception.message, errorData);\n\t\t};\n\t}\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n\n(function () {\n\t'use strict';\n\n\tangular\n .module('blocks.exception')\n .factory('ExceptionHandler', exception);\n\n\texception.$inject = ['LoggerService'];\n\tfunction exception(logger) {\n\t\tvar service = {\n\t\t\tcatcher: catcher\n\t\t};\n\t\treturn service;\n\n\t\tfunction catcher(message) {\n\t\t\treturn function (reason) {\n\t\t\t\tlogger.error(message, reason);\n\t\t\t};\n\t\t}\n\t}\n})();\n","(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('blocks.router')\n\t\t.provider('routehelperConfig', routehelperConfig)\n\t\t.factory('routehelper', routehelper);\n\n\t// Must configure via the routehelperConfigProvider\n\tfunction routehelperConfig() {\n\t\t/* jshint validthis:true */\n\t\tthis.config = {\n\t\t\t// These are the properties we need to set\n\t\t\t// $routeProvider: undefined\n\t\t\t// docTitle: ''\n\t\t\t// resolveAlways: {ready: function(){ } }\n\t\t};\n\n\t\tthis.$get = function () {\n\t\t\treturn {\n\t\t\t\tconfig: this.config\n\t\t\t};\n\t\t};\n\t}\n\n\troutehelper.$inject = ['$location', '$rootScope', '$route', 'LoggerService', 'routehelperConfig'];\n\tfunction routehelper($location, $rootScope, $route, logger, routehelperConfig) {\n\t\tvar handlingRouteChangeError = false;\n\t\tvar routeCounts = {\n\t\t\terrors: 0,\n\t\t\tchanges: 0\n\t\t};\n\t\tvar routes = [];\n\t\tvar $routeProvider = routehelperConfig.config.$routeProvider;\n\n\t\tvar service = {\n\t\t\tconfigureRoutes: configureRoutes,\n\t\t\tgetRoutes: getRoutes,\n\t\t\trouteCounts: routeCounts\n\t\t};\n\n\t\tinit();\n\n\t\treturn service;\n\t\t///////////////\n\n\t\tfunction configureRoutes(routes) {\n\t\t\troutes.forEach(function (route) {\n\t\t\t\troute.config.resolve =\n\t\t\t\t\tangular.extend(route.config.resolve || {}, routehelperConfig.config.resolveAlways);\n\t\t\t\t$routeProvider.when(route.url, route.config);\n\t\t\t});\n\t\t\t$routeProvider.otherwise({ redirectTo: '/' });\n\t\t}\n\n\t\tfunction handleRoutingErrors() {\n\t\t\t// Route cancellation:\n\t\t\t// On routing error, go to the dashboard.\n\t\t\t// Provide an exit clause if it tries to do it twice.\n\t\t\t$rootScope.$on('$routeChangeError',\n\t\t\t\tfunction (event, current, previous, rejection) {\n\t\t\t\t\tif (handlingRouteChangeError) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\trouteCounts.errors++;\n\t\t\t\t\thandlingRouteChangeError = true;\n\t\t\t\t\tvar destination = (current && (current.title || current.name || current.loadedTemplateUrl)) ||\n\t\t\t\t\t\t'unknown target';\n\t\t\t\t\tvar msg = 'Error routing to ' + destination + '. ' + (rejection.msg || '');\n\t\t\t\t\tlogger.warning(msg, [current]);\n\t\t\t\t\t$location.path('/');\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tfunction init() {\n\t\t\thandleRoutingErrors();\n\t\t\tupdateDocTitle();\n\t\t}\n\n\t\tfunction getRoutes() {\n\t\t\tfor (var prop in $route.routes) {\n\t\t\t\tif ($route.routes.hasOwnProperty(prop)) {\n\t\t\t\t\tvar route = $route.routes[prop];\n\t\t\t\t\tvar isRoute = !!route.title;\n\t\t\t\t\tif (isRoute) {\n\t\t\t\t\t\troutes.push(route);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn routes;\n\t\t}\n\n\t\tfunction updateDocTitle() {\n\t\t\t$rootScope.$on('$routeChangeSuccess',\n\t\t\t\tfunction (event, current, previous) {\n\t\t\t\t\trouteCounts.changes++;\n\t\t\t\t\thandlingRouteChangeError = false;\n\t\t\t\t\tvar title = routehelperConfig.config.docTitle + ' ' + (current.title || '');\n\t\t\t\t\t$rootScope.title = title; // data bind to \n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n})();\n","/**\n * Created by Colin.Watson on 4/2/2015.\n */\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('blocks.logger')\n\t\t.factory('LoggerService', logger);\n\n\tlogger.$inject = ['$log', 'toastr'];\n\n\tfunction logger($log, toastr) {\n\t\tvar service = {\n\t\t\tshowToasts: true,\n\n\t\t\terror: error,\n\t\t\tinfo: info,\n\t\t\tsuccess: success,\n\t\t\twarning: warning,\n\n\t\t\t// straight to console; bypass toastr\n\t\t\tlog: $log.log\n\t\t};\n\n\t\treturn service;\n\t\t/////////////////////\n\n\t\tfunction error(message, data, title) {\n\t\t\ttoastr.error(message, title);\n\t\t\t$log.error('Error: ' + message, data);\n\t\t}\n\n\t\tfunction info(message, data, title) {\n\t\t\ttoastr.info(message, title);\n\t\t\t$log.info('Info: ' + message, data);\n\t\t}\n\n\t\tfunction success(message, data, title) {\n\t\t\ttoastr.success(message, title);\n\t\t\t$log.info('Success: ' + message, data);\n\t\t}\n\n\t\tfunction warning(message, data, title) {\n\t\t\ttoastr.warning(message, title);\n\t\t\t$log.warn('Warning: ' + message, data);\n\t\t}\n\t}\n}());\n","angular.module('app.core').run(['$templateCache', function($templateCache) {$templateCache.put('app/failed-login/failed-login.html','<div class=text-center><h4><strong>INVALID LOGIN</strong></h4><p>Your login information is not valid. Please contact support for assistance.</p></div>');\n$templateCache.put('app/layout/footer.html','<footer class=text-center ng-controller=ShellController><span class=copyright>Copyright \\xA9 {{date | date: \\'yyyy\\'}} AutoPoint, Inc. All rights reserved.</span></footer>');\n$templateCache.put('app/layout/header.html','<header><div class=header-bar><a href=\"/#/\"><img id=header-img ng-src={{logoUrl}} alt=AutoPoint></a></div></header>');\n$templateCache.put('app/layout/shell.html','<div ng-controller=\"ShellController as vm\"><ap-header ng-if=!vm.hideHeader></ap-header><div id=wrapper><div id=content ng-class=\"{container: !vm.hideHeader}\"><img ng-if=!vm.hideHeader id=ap-logo ng-src=\"{{ vm.logoUrl }}\" alt=AutoPoint><div ng-view></div></div><div ng-if=!vm.hideHeader ng-include=\"\\'app/layout/footer.html\\'\"></div></div></div>');\n$templateCache.put('app/logout/logout.html','<div>Logging out...</div>');\n$templateCache.put('app/login/login.html','<div id=login-view><div class=login-page><div class=login-content><div class=modal-content id=left-column ng-if=vm.isLoginVisible><img id=ap-logo ng-src={{vm.logoUrl}} alt=AutoPoint><form name=loginform><div class=\"text-danger error-message\" style=\"white-space: pre-line;\">{{vm.errorMessage}}</div><div class=form-group><input ng-if=\"vm.isDefaultProvider === true\" class=\"form-control login-input\" name=email placeholder=\"Email Address\" required ng-model=vm.emailAddress ng-disabled=vm.loggingIn autofocus tabindex=1> <input ng-if=\"vm.isDefaultProvider !== true\" class=\"form-control login-input\" name=email placeholder=Username required ng-model=vm.emailAddress ng-disabled=vm.loggingIn autofocus tabindex=1><div class=text-danger ng-show=\"loginform.email.$error.required && loginform.email.$dirty && vm.isDefaultProvider === true\">Please enter your email address</div><div class=text-danger ng-show=\"!loginform.email.$error.required && loginform.email.$error.email && loginform.email.$dirty && vm.isDefaultProvider === true\">Please enter a valid email addresss</div></div><div class=form-group><input class=\"form-control login-input\" name=password type=password placeholder=Password required ng-model=vm.password ng-disabled=vm.loggingIn tabindex=2></div><button class=\"btn btn-sm btn-primary\" ng-disabled=vm.loggingIn ng-click=vm.login() tabindex=3>Login</button><br><br><a href=\"./#/forgot/\" ng-disabled=vm.loggingIn>Forgot your password?</a></form><div class=copyright-text><div class=pull-right>copyright © {{date | date: \\'yyyy\\'}} AutoPoint Inc. All rights reserved.</div></div></div></div></div></div><div class=modal id=mfaModal aria-hidden=true data-backdrop=static data-keyboard=false><div class=\"modal-dialog border\"><div class=\"modal-content mfa-body\"><div class=\"modal-header mfa-header\"><h4 class=\"fa modal-title\">Multi-Factor Authentication</h4><div class=pull-right><button type=button class=\"btn-pad-left btn btn-default btn-sm\" ng-click=vm.RedirectLogin()><i class=\"fa fa-times\"></i></button></div></div><div class=\"modal-body mfa-body\"><div>Security Enhancement</div><br><div>In order to protect you and your customers\\' data and remain compliant<br>with Federal Regulations, we have implemented <b>Multi Factor Authentication</b>,<br>which will require a verification code sent to you by your choice of methods.<br><br></div><div><img src=/content/images/mobile_32.png alt=\"Mobile Number\" height=20> <span>Mobile Number</span> <span class=iconspace></span> <img src=/content/images/app_32.png alt=Authenticator height=20> <span>Authenticator</span><br></div><br><div>You can Learn More about it by clicking the link below and then scroll down to the<br>MFA information tab or Continue to MPi.</div><br><div class=pull-left><a class=ahover ng-click=vm.RedirectMfa()>Learn More</a></div><br><br><div>Thanks<br>Team Solera</div></div><div class=\"modal-footer mfa-footer\"><button type=button class=\"btn btn-primary\" ng-click=vm.RedirectLogin()>Continue to Application</button></div></div></div></div>');\n$templateCache.put('app/forgot/forgot.html','<div id=forgot-view class=login-page><div id=main><div class=\"modal-content forgot-content\" id=left-column><img id=ap-logo ng-src={{vm.logoUrl}} alt=AutoPoint><div ng-if=\"!vm.checkEmail && !vm.securityQuestion\"><div class=main-title><h4 class=text-left>Problems logging in?</h4><ul class=text-left><li>Make sure you\\'re typing in the email address associated with your account</li><li>Passwords are case sensitive so make sure CAPS LOCK is not enabled</li></ul><br><h5>If you still can\\'t login, enter your email address to reset your password.</h5><form name=forgotform><div class=form-group><input class=form-control name=email type=email placeholder=\"Email address\" required ng-model=vm.emailAddress ng-disabled=vm.sendingEmail><div class=text-danger ng-show=\"forgotform.email.$error.required && forgotform.email.$dirty\">Please enter your email address</div><div class=text-danger ng-show=\"!forgotform.email.$error.required && forgotform.email.$error.email && forgotform.email.$dirty\">Please enter a valid email address</div></div><button class=\"btn btn-primary\" ng-disabled=\"forgotform.$invalid || vm.sendingEmail\" ng-click=vm.forgotPassword()>Continue</button><div class=text-danger>{{vm.errorMessage}}</div></form></div></div><div ng-if=vm.checkEmail><div class=main-title><h4>Thank you.</h4><h5>An email has been sent to reset your password.</h5><div class=close-window><h5>You may now close this tab or window.</h5></div></div></div><div class=copyright-text><div class=pull-right>copyright © {{date | date: \\'yyyy\\'}} AutoPoint Inc. All rights reserved.</div></div></div></div></div>');\n$templateCache.put('app/register/register.html','<div id=register-view><div class=row><div class=col-sm-12 id=main><div ng-if=!vm.registered><div class=main-title><h4>Password Expired! Enter a new Password</h4><h5>{{vm.emailAddress}}</h5></div><form name=registerform><div class=form-group><input class=form-control name=password type=password placeholder=Password required ng-model=vm.password ng-disabled=vm.registering ng-blur=vm.validatePassword()><div class=text-danger ng-show=\"registerform.password.$error.required && registerform.password.$dirty\">Please enter a password</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.password.$error.validator && registerform.password.$dirty\">Minimum 8 characters</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.password.$error.validator && registerform.password.$dirty\">Maximum 20 characters</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.password.$error.validator && registerform.password.$dirty\">1 Number</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.password.$error.validator && registerform.password.$dirty\">1 Upper case letter</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Lower case letter</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Special character (#?!@$%^&_()+=*-)</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.password.$error.validator && registerform.password.$dirty\">Last 4 passwords can\\'t be reused.</div></div><div class=form-group><input class=form-control name=confirmPassword type=password placeholder=\"Confirm Password\" ui-validate=\"\\'$value==vm.password\\'\" ui-validate-watch=\"\\'vm.password\\'\" required ng-model=vm.confirmPassword ng-disabled=vm.registering><div class=text-danger ng-show=\"registerform.confirmPassword.$error.required && registerform.confirmPassword.$dirty\">Please re-enter to confirm password</div><div class=text-danger ng-show=\"!registerform.confirmPassword.$error.required && registerform.confirmPassword.$error.validator && registerform.confirmPassword.$dirty\">Confirm password must match password</div></div><button ng-if=!vm.firstLogin class=\"btn btn-primary\" ng-disabled=\"registerform.$invalid || vm.registering || !vm.canRegister\" ng-click=vm.register()>Register</button> <button ng-if=vm.firstLogin class=\"btn btn-primary\" ng-disabled=\"registerform.$invalid || vm.registering || !vm.canRegister\" ng-click=vm.changePassword()><span ng-show=!vm.processing>Update Password</span> <span ng-show=vm.processing>Processing...</span></button><div class=text-danger>{{vm.errorMessage}}</div><div class=banner><h4>Your password should contain</h4><ol><li>Minimum 8 characters.</li><li>Maximum 20 characters.</li><li>1 Number</li><li>1 Upper case letter</li><li>1 Lower case letter</li><li>1 Special character (#?!@$%^&_()+=*-)</li><li>Last 4 passwords can\\'t be reused.</li></ol></div></form></div><div ng-if=vm.registered><div class=main-title><h4>Thank you.</h4><h5>You have been successfully registered.</h5></div></div></div></div></div><div class=modal id=mfaModal aria-hidden=true data-backdrop=static data-keyboard=false><div class=\"modal-dialog border\"><div class=\"modal-content mfa-body\"><div class=\"modal-header mfa-header\"><h4 class=\"fa modal-title\">Multi-Factor Authentication</h4><div class=pull-right><button type=button class=\"btn-pad-left btn btn-default btn-sm\" ng-click=vm.RedirectLogin()><i class=\"fa fa-times\"></i></button></div></div><div class=\"modal-body mfa-body\"><div>Security Enhancement</div><br><div>In order to protect you and your customers\\' data and remain compliant<br>with Federal Regulations, we have implemented <b>Multi Factor Authentication</b>,<br>which will require a verification code sent to you by your choice of methods.<br><br></div><div><img src=/content/images/mobile_32.png alt=\"Mobile Number\" height=20> <span>Mobile Number</span> <span class=iconspace></span> <img src=/content/images/app_32.png alt=Authenticator height=20> <span>Authenticator</span><br></div><br><div>You can Learn More about it by clicking the link below and then scroll down to the<br>MFA information tab or Continue to MPi.</div><br><div class=pull-left><a class=ahover ng-click=vm.RedirectMfa()>Learn More</a></div><br><br><div>Thanks<br>Team Solera</div></div><div class=\"modal-footer mfa-footer\"><button type=button class=\"btn btn-primary\" ng-click=vm.RedirectLogin()>Continue to Application</button></div></div></div></div>');\n$templateCache.put('app/mfaredirect/mfaredirect.html','<div><div id=spinner><div id=spinner-content><span class=\"fa fa-spin fa-spinner\"></span><div id=spinner-message></div></div></div></div>');\n$templateCache.put('app/reset/reset.html','<div id=reset-view><div class=row><div class=col-sm-12 id=main><div ng-if=!vm.reset><div class=main-title><h4>Enter a new password.</h4><h5>{{vm.emailAddress}}</h5></div><form name=resetform><div class=form-group><input class=form-control name=password type=password placeholder=Password required ng-model=vm.password ng-disabled=vm.resettingPassword><div class=text-danger ng-show=\"resetform.password.$error.required && resetform.password.$dirty\">Please enter a new password</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">Minimum 8 characters</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">Maximum 20 characters</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Number</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Upper case letter</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Lower case letter</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">1 Special character (#?!@$%^&_()+=*-)</div><div class=text-danger ng-show=\"!resetform.password.$error.required && resetform.password.$error.validator && resetform.password.$dirty\">Last 4 passwords can\\'t be reused.</div></div><div class=form-group><input class=form-control name=confirmPassword type=password placeholder=\"Confirm Password\" ui-validate=\"\\'$value==vm.password\\'\" ui-validate-watch=\"\\'vm.password\\'\" required ng-model=vm.confirmPassword ng-disabled=vm.resettingPassword><div class=text-danger ng-show=\"resetform.confirmPassword.$error.required && resetform.confirmPassword.$dirty\">Please enter a confirm password</div><div class=text-danger ng-show=\"!resetform.confirmPassword.$error.required && resetform.confirmPassword.$error.validator && resetform.confirmPassword.$dirty\">Confirm password must match password</div></div><button class=\"btn btn-primary\" ng-disabled=\"registerform.$invalid || vm.resettingPassword\" ng-click=vm.updatePassword()>Update</button><div class=text-danger>{{vm.errorMessage}}</div><div class=banner><h4>Your password should contain</h4><ol><li>Minimum 8 characters.</li><li>Maximum 20 characters.</li><li>1 Number</li><li>1 Upper case letter</li><li>1 Lower case letter</li><li>1 Special character (#?!@$%^&_()+=*-)</li><li>Last 4 passwords can\\'t be reused.</li></ol></div></form></div><div ng-if=vm.reset><div class=main-title><h4>Thank you.</h4><h5>You have successfully reset your password.</h5></div></div></div></div></div><div class=modal id=mfaModal aria-hidden=true data-backdrop=static data-keyboard=false><div class=\"modal-dialog border\"><div class=\"modal-content mfa-body\"><div class=\"modal-header mfa-header\"><h4 class=\"fa modal-title\">Multi-Factor Authentication</h4><div class=pull-right><button type=button class=\"btn-pad-left btn btn-default btn-sm\" ng-click=vm.RedirectLogin()><i class=\"fa fa-times\"></i></button></div></div><div class=\"modal-body mfa-body\"><div>Security Enhancement</div><br><div>In order to protect you and your customers\\' data and remain compliant<br>with Federal Regulations, we have implemented <b>Multi Factor Authentication</b>,<br>which will require a verification code sent to you by your choice of methods.<br><br></div><div><img src=/content/images/mobile_32.png alt=\"Mobile Number\" height=20> <span>Mobile Number</span> <span class=iconspace></span> <img src=/content/images/app_32.png alt=Authenticator height=20> <span>Authenticator</span><br></div><br><div>You can Learn More about it by clicking the link below and then scroll down to the<br>MFA information tab or Continue to MPi.</div><br><div class=pull-left><a class=ahover ng-click=vm.RedirectMfa()>Learn More</a></div><br><br><div>Thanks<br>Team Solera</div></div><div class=\"modal-footer mfa-footer\"><button type=button class=\"btn btn-primary\" ng-click=vm.RedirectLogin()>Continue to Application</button></div></div></div></div>');\n$templateCache.put('app/directives/templates/squareCheck.html','<div class=ap-checkbox ng-click=setState()><input type=checkbox id={{model}} ng-class=cssClass()> <label for={{model}} tabindex={{tabOrder}}>{{label}}</label> <span ng-transclude></span></div>');}]);"]}