{"version":3,"sources":["Content/app/App.Module.ts","Content/app/App.Config.ts","Content/app/common/OAuthToken.ts","Content/app/services/App.Common.Services.module.ts","Content/app/services/GuidService.ts","Content/app/services/GlobalSettingsService.ts","Content/app/directives/validators/ValidateArgs.ts","Content/app/directives/validators/ValidatorBase.ts","Content/app/directives/validators/GroupValidateElement.ts","Content/app/directives/validators/GroupValidateArgs.ts","Content/app/directives/validators/IGroupValidator.ts","Content/app/common/UserMessageType.ts","Content/app/services/UserMessagesService.ts","Content/app/services/FormHelperService.ts","Content/app/services/ModelStateValidationService.ts","Content/app/services/ValidationErrorMessageResolverService.ts","Content/app/services/ValidationElementModifierService.ts","Content/app/common/DialogOutcome.ts","Content/app/common/MessageBoxOptions.ts","Content/app/controllers/App.Common.Controllers.module.ts","Content/app/common/IApiRequestConfig.ts","Content/app/controllers/MessageBoxController.ts","Content/app/services/NavigationHelperService.ts","Content/app/App.Run.ts","Content/app/common/App.Common.Filters.module.ts","Content/app/directives/App.Common.Directives.module.ts","Content/app/filters/App.Common.Filters.module.ts","Content/app/common/App.Common.module.ts","Content/app/common/ErrorDetail.ts","Content/app/common/ErrorDetails.ts","Content/app/common/HtmlWhitespaceFilter.ts","Content/app/common/IHttpErrorHandler.ts","Content/app/common/ScreenMode.ts","Content/app/common/User.ts","Content/app/common/WindowBroadcastMessage.ts","Content/app/directives/validators/MustInclude.ts","Content/app/directives/validators/DateValidatorBase.ts","Content/app/directives/validators/MustBeBetweenDates.ts","Content/app/directives/validators/MustBeEarlierThan.ts","Content/app/directives/validators/MustBeEqualOrEarlierThan.ts","Content/app/directives/validators/MustBeEqualOrLaterThan.ts","Content/app/directives/validators/MustBeLaterThan.ts","Content/app/directives/validators/MustBeSameAs.ts","Content/app/directives/validators/MustBeSameAsIgnoreCase.ts","Content/app/directives/validators/MustBeTelNumber.ts","Content/app/directives/validators/OverrideEmail.ts","Content/app/directives/validators/StrongPassword.ts","Content/app/directives/App.Common.Directives.run.ts","Content/app/services/LogService.ts","Content/app/services/WindowBroadcastService.ts","Content/app/services/DateHelperService.ts","Content/app/services/UsersService.ts","Content/app/services/AuthenticationService.ts","Content/app/services/ErrorHandlerService.ts","Content/app/services/ApiService.ts","Content/app/services/RegistrationService.ts","Content/app/services/MessageBoxHelperService.ts","Content/app/controllers/ScreenControllerBase.ts","Content/app/controllers/AccountVerificationRequestedController.ts","Content/app/controllers/AccountVerifiedController.ts","Content/app/controllers/ErrorController.ts","Content/app/controllers/HeaderController.ts","Content/app/controllers/NotForWindowsAuthenticationUsersController.ts","Content/app/controllers/NotFoundController.ts","Content/app/controllers/PasswordHintController.ts","Content/app/controllers/PasswordResetRequestedController.ts","Content/app/controllers/RegisterController.ts","Content/app/controllers/RegisterUserController.ts","Content/app/controllers/RegistrationCompleteController.ts","Content/app/controllers/ResetPasswordController.ts","Content/app/controllers/SignInController.ts","Content/app/controllers/TermsAndConditionsController.ts","Content/app/controllers/VerifyAccountController.ts","Content/app/controllers/WindowsAuthenticationAccessDeniedController.ts","Content/app/controllers/YourDetailsController.ts","Content/app/routes/Routes.App.ts","Content/app/services/ElementHelperService.ts","Content/app/services/InactivityMonitorService.ts","Content/app/directives/validators/GroupValidatorBase.ts"],"names":[],"mappings":"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","file":"App.js","sourcesContent":["((): void=> {\r\n var app = angular.module(\"Connect\",\r\n [\r\n // 3rd party\r\n 'ui.router',\r\n 'ngResource',\r\n\t\t\t'cgBusy',\r\n\t\t\t'duScroll',\r\n\t\t\t'ui.bootstrap',\r\n\t\t\t'ui.mask',\r\n 'ngCookies',\r\n 'ngStorage',\r\n 'ngAnimate',\r\n 'ngSanitize',\r\n //'angular-google-analytics',\r\n 'jcs-autoValidate',\r\n\r\n // App modules\r\n 'app.common.controllers',\r\n 'app.common.services',\r\n 'app.common.directives',\r\n ]);\r\n \r\n})() \r\n","/// \r\n/// \r\n/// \r\n\r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular\r\n .module('Connect')\r\n\t\t.value('duScrollDuration', 400)\r\n\t\t.value('duScrollOffset', 0)\r\n\t\t.value('cgBusyDefaults',\r\n\t\t{\r\n\t\t\tmessage: 'Busy, please wait...',\r\n\t\t\tbackdrop: true,\r\n\t\t\ttemplateUrl: 'Templates/Common/BusyOverlay.html',\r\n\t\t\tdelay: 0,\r\n\t\t\tminDuration: 500,\r\n\t\t\twrapperClass: 'cg-busy cg-busy-animation'\r\n\t\t})\r\n\t\t.config([\r\n\t\t\t'$provide',\r\n\t\t\t'$urlRouterProvider',\r\n\t\t\t'$urlMatcherFactoryProvider',\r\n\t\t\t'$locationProvider',\r\n\t\t\t'$stateProvider',\r\n\t\t\t'$httpProvider',\r\n\t\t\t'$cookiesProvider',\r\n\t\t\t'$logProvider',\r\n\t\t\t'$sessionStorageProvider',\r\n\t\t\t'$localStorageProvider',\r\n\t\t\t'uiMask.ConfigProvider',\r\n\t\t\t($provide: angular.auto.IProvideService,\r\n\t\t\t\t$urlRouterProvider: angular.ui.IUrlRouterProvider,\r\n\t\t\t\t$urlMatcherFactoryProvider: angular.ui.IUrlMatcherFactory,\r\n\t\t\t\t$locationProvider: angular.ILocationProvider,\r\n\t\t\t\t$stateProvider: angular.ui.IStateProvider,\r\n\t\t\t\t$httpProvider: any,\r\n\t\t\t\t$cookiesProvider: any,\r\n\t\t\t\t$logProvider: angular.ILogProvider,\r\n\t\t\t\t$sessionStorageProvider: angular.storage.ILocalStorageProvider,\r\n\t\t\t\t$localStorageProvider: angular.storage.ILocalStorageProvider,\r\n\t\t\t\tuiMaskConfigProvider: any) => {\r\n\r\n var badUrlHandler = ($injector: angular.auto.IInjectorService) => {\r\n\t\t\t\t\tvar $state: any = $injector.get('$state');\r\n\t\t\t\t\t$state.go('NotFound', null, {\r\n\t\t\t\t\t\tlocation: false\r\n\t\t\t\t\t});\r\n };\r\n badUrlHandler.$inject = ['$injector'];\r\n \r\n\t\t\t\t$sessionStorageProvider.setKeyPrefix('connect-');\r\n\t\t\t\t$localStorageProvider.setKeyPrefix('connect-');\r\n \r\n\t\t\t\tuiMaskConfigProvider.clearOnBlur(false);\r\n\r\n\t\t\t\tvar regexIso8601 =\r\n\t\t\t\t\t/^(\\d{4}|\\+\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,}))?(Z|([\\-+])(\\d{2}):(\\d{2}))?)?)?)$/;\r\n\r\n\t\t\t\tfunction convertDateStringsToDates(input: Object) {\r\n\t\t\t\t\tif (typeof input !== 'object' || !input) {\r\n\t\t\t\t\t\treturn input;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (let key in input) {\r\n\t\t\t\t\t\tif (!input || !input.hasOwnProperty(key)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar value: any = input[key];\r\n\t\t\t\t\t\tlet match: RegExpMatchArray;\r\n\t\t\t\t\t\t//Check for string properties which look like dates\r\n\t\t\t\t\t\tif (typeof value === 'string' && (match = value.match(regexIso8601))) {\r\n\t\t\t\t\t\t\tconst milliseconds = Date.parse(match[0]);\r\n\t\t\t\t\t\t\tif (!isNaN(milliseconds)) {\r\n\t\t\t\t\t\t\t\tinput[key] = new Date(milliseconds);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (typeof value === 'object') {\r\n\t\t\t\t\t\t\tconvertDateStringsToDates(value); //Recurse into object\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn input;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Enable automatic conversion of JSON date strings to JavaScript Date objects\r\n\t\t\t\t$httpProvider.defaults.transformResponse.push((responseData: any) => {\r\n\t\t\t\t\tconvertDateStringsToDates(responseData);\r\n\t\t\t\t\treturn responseData;\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t]);\r\n\r\n})());","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\t'use strict';\r\n\r\n\t// ReSharper disable InconsistentNaming\r\n\texport class OAuthToken {\r\n\r\n\t\tpublic access_token: string;\r\n\r\n\t\tpublic expires_in: string;\r\n\r\n\t\tpublic token_type: string;\r\n\r\n public refresh_token: string;\r\n\r\n\t\tpublic \"as:client_id\": string;\r\n\r\n\t\tpublic userName: string;\r\n\r\n\t\tpublic \".issued\": string;\r\n\r\n\t\tpublic \".expires\": string;\r\n\t}\r\n\t// ReSharper restore InconsistentNaming\r\n\r\n}","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.services', ['ngStorage']);\r\n\r\n})());","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class GuidService {\r\n\r\n\t\tpublic newGuid() {\r\n\t\t\tvar s4 = () => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n\t\t\treturn `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.guidService', GuidService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class GlobalSettingsService {\r\n\r\n\t\t//Passed through from server-side config\r\n\t\tpublic applicationName: string = $('body').data('application-name');\r\n\t\tpublic applicationNameShort: string = $('body').data('application-name-short');\r\n\t\tpublic sendAuthConfig: boolean = $('body').data('send-auth-config');\r\n\t\tpublic authenticationModeHeaderName: string = $('body').data('authentication-mode-header-name');\r\n\t\tpublic databaseHeaderName: string = $('body').data('database-header-name');\r\n\t\tpublic authenticationMode: string = $('body').data('authentication-mode') || ''; // Not set in production\r\n\t\tpublic databaseName: string = $('body').data('database-name') || ''; //Not set in production\r\n\t\tpublic useWindowsAuthentication: boolean = $('body').data('use-windows-authentication');\r\n\t\tpublic showDebugInfo: boolean = $('body').data('show-debug-info');\r\n\t\tpublic showVerboseDebugMessages: boolean = $('body').data('show-verbose-debug-messages');\r\n public sessionExpirySeconds: number = $('body').data('session-expiry-seconds');\r\n public sessionExpiryWarningSeconds: number = $('body').data('session-expiry-warning-seconds');\r\n public cookieDomain: string = $('body').data('cookie-domain');\r\n public hifApplicationLink: string = $('body').data('hif-application-link');\r\n public dashApplicationLink: string = $('body').data('dash-application-link');\r\n public citrixUrl: string = $('body').data('citrix-url');\r\n public htbMaxAlowedSearchResults: number = $('body').data('htb-max-alowed-search-results');\r\n\r\n\t\tprivate authenticationBaseUrl: string = $('body').data('authentication-base-url');\r\n\t\tpublic authenticationEndpoints = {\r\n\t\t\tbase: this.authenticationBaseUrl,\r\n\t\t\tnegotiate: `${this.authenticationBaseUrl}/api/Authentication/Negotiate`,\r\n\t\t\ttoken: `${this.authenticationBaseUrl}/api/Authentication/Token`,\r\n\t\t\trequestPasswordReset: `${this.authenticationBaseUrl}/api/Authentication/RequestPasswordReset`,\r\n resetPassword: `${this.authenticationBaseUrl}/api/Authentication/ResetPassword`,\r\n resetConnectPassword: `${this.authenticationBaseUrl}/api/Authentication/ResetConnectPassword`,\r\n changePassword: `${this.authenticationBaseUrl}/api/Authentication/ChangePassword`,\r\n registerUser: `${this.authenticationBaseUrl}/api/Authentication/RegisterUser`,\r\n registerExternalUser: `${this.authenticationBaseUrl}/api/Authentication/RegisterExternalUser`,\r\n activateUser: `${this.authenticationBaseUrl}/api/Authentication/ActivateUser`,\r\n connectActivateUser: `${this.authenticationBaseUrl}/api/Authentication/ConnectActivateUser`,\r\n connectConfirmEmail: `${this.authenticationBaseUrl}/api/Authentication/ConnectConfirmEmail`,\r\n unActivatedUser: `${this.authenticationBaseUrl}/api/Authentication/UnActivatedUser`,\r\n updateDetails: `${this.authenticationBaseUrl}/api/Authentication/UpdateDetails`,\r\n createHtbOnlySa: `${this.authenticationBaseUrl}/api/Authentication/CreateHtbOnlySa`,\r\n convertSmallDevLarge: `${this.authenticationBaseUrl}/api/Authentication/ConvertSmallDevLarge`,\r\n changeDeveloper: `${this.authenticationBaseUrl}/api/Authentication/ChangeDeveloper`,\r\n changeRequest: `${this.authenticationBaseUrl}/api/Authentication/ChangeRequest`,\r\n verifyConnectResetPasswordToken: `${this.authenticationBaseUrl}/api/Authentication/VerifyConnectResetPasswordToken`\r\n\t\t};\r\n\r\n public oAuthClientId = 'AuthWeb';\r\n\r\n\t\tpublic cookieNames = {\r\n\t\t\tauthToken: 'authToken',\r\n\t\t\twindowsAuthTokenValid: 'windowsAuthTokenValid'\r\n\t\t}\r\n\r\n public successfulActivationResponse: string = \"Your account has been activated successfully\";\r\n public invalidActivationResponse: string = \"Invalid or expired activation token\";\r\n public successfulTokenVerificationResponse: string = \"Token is valid\";\r\n public invalidPasswordResetTokenResponse: string = \"Invalid or expired password reset token\";\r\n\r\n\t\tpublic shortDateFormat = 'dd/MM/yyyy';\r\n public shortDateTimeFormat = 'dd/MM/yyyy \\'at\\' HH:mm';\r\n public shortDateTimeFormatWithSec = 'dd/MM/yyyy HH:mm:ss';\r\n public preciseDateTimeFormat = 'dd/MM/yyyy HH:mm:ss.sss';\r\n \r\n\t\tpublic mainFormName = 'mainForm';\r\n\r\n public emailRegexp = /(^.+\\@.+\\..+$)|(^\\s*$)/i;\r\n\r\n public postcodeRegexp = /^[a-z]{1,2}[0-9][a-z0-9]?\\s?[0-9][a-z]{2}$/i;\r\n\t\t\r\n public telRegexp = new RegExp('^[0-9]*$');\r\n\r\n public numRegexp = new RegExp('^[0-9]*$');\r\n\r\n\t\tpublic inputMasks = {\r\n\t\t\tschemeNo: {mask: '999999', description: 'a valid 6 digit scheme number'},\r\n\r\n\t\t\tnumericMax: (maxLength: number) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmask: _.repeat('9?', maxLength),\r\n\t\t\t\t\tdescription: `a numeric value of up to ${maxLength} characters`\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\talphabeticMax: (maxLength: number) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmask: _.repeat('9?', maxLength),\r\n\t\t\t\t\tdescription: `text up to ${maxLength} characters in length`\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tpublic isLocalhost = this.$location.host().toLowerCase() === 'localhost';\r\n\r\n\t\tpublic baseUrl: string;\r\n\t\tpublic baseUrlInternal: string;\r\n\t\tpublic baseUrlExternal: string;\r\n\r\n\t\tpublic static $inject = ['$location'];\r\n\t\tconstructor(private $location: angular.ILocationService) {\r\n\r\n\t\t\tvar protocol = `${this.$location.protocol()}://`;\r\n\t\t\tvar currentDomain = this.$location.host().toLowerCase();\r\n\t\t\tvar port = (this.$location.port() !== 80 && this.$location.port() !== 443)\r\n\t\t\t\t? `:${this.$location.port()}`\r\n\t\t\t\t: '';\r\n\t\t\tvar internalSubDomain = '', externalSubDomain = '', topDomain = currentDomain;\r\n\r\n\t\t\tif (/\\S+\\.\\S+/.test(currentDomain)) {\r\n\t\t\t\tvar subDomain = currentDomain.substr(0, currentDomain.indexOf('.'));\r\n\t\t\t\ttopDomain = currentDomain.substr(subDomain.length);\r\n\t\t\t\tinternalSubDomain = subDomain.replace('-ext', '');\r\n\t\t\t\texternalSubDomain = `${internalSubDomain}-ext`;\r\n\t\t\t}\r\n\r\n\t\t\tthis.baseUrl = `${protocol}${currentDomain}${port}`;\r\n\t\t\tthis.baseUrlInternal = `${protocol}${internalSubDomain}${topDomain}${port}`;\r\n\t\t\tthis.baseUrlExternal = `${protocol}${externalSubDomain}${topDomain}${port}`;\r\n\t\t}\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.globalSettingsService', GlobalSettingsService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\r\n\texport class ValidateArgs {\r\n\r\n\t\tpublic el: angular.IAugmentedJQuery;\r\n\r\n\t\tpublic scope: angular.IScope;\r\n\r\n\t\tpublic attributes: any;\r\n\r\n\t\tpublic form: angular.IFormController;\r\n\r\n\t\tpublic controller: Common.Controllers.IScreenController;\r\n\r\n\t\tpublic parameter: string;\r\n\r\n\t\tpublic parameterValue() {\r\n\t\t\treturn this.scope.$eval(this.parameter);\r\n\t\t};\r\n\r\n\t\tpublic attributeValue(name: string) {\r\n\t\t\tif (!this.scope || !this.attributes || typeof this.attributes[name] === 'undefined') {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn this.scope.$eval(this.attributes[name]);\r\n\t\t};\r\n\r\n\t\tpublic modelValue() {\r\n\t\t\treturn this.attributeValue('ngModel');\r\n\t\t}\r\n\r\n\t\tpublic viewValue() {\r\n\t\t\tif (!this.el) {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn this.el.val();\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n 'use strict';\r\n\r\n export abstract class ValidatorBase implements angular.IDirective, IValidator {\r\n\r\n public require = 'ng-model';\r\n\r\n public restrict = 'A';\r\n\r\n public name: string;\r\n\r\n public nameCamelCase = () => { return _.camelCase(this.name); };\r\n public link = (scope: IFormScope,\r\n el: angular.IAugmentedJQuery,\r\n attributes: Directives.IValidatorAttributes,\r\n controller: angular.INgModelController): any => {\r\n\r\n var parameter = '';\r\n if (el && el.attr) {\r\n parameter = el.attr(this.name) || '';\r\n }\r\n\r\n var args = new Directives.ValidateArgs();\r\n args.el = el;\r\n args.scope = scope;\r\n args.attributes = attributes;\r\n args.form = scope.mainForm;\r\n args.controller = scope.vm;\r\n args.parameter = parameter;\r\n\r\n el.data('linkedAttributes', attributes);\r\n\r\n var watchExpressions = this.getWatchExpressions(args);\r\n\r\n if (watchExpressions.length) {\r\n _(watchExpressions)\r\n .forEach((expression) => {\r\n scope.$watch(expression,\r\n () => {\r\n\r\n if (!this.canValidate(args)) {\r\n controller.$setValidity(this.nameCamelCase(), true);\r\n return;\r\n }\r\n\r\n var isValidArgs = new ValidateArgs();\r\n isValidArgs.el = args.el;\r\n isValidArgs.scope = args.scope;\r\n isValidArgs.attributes = args.attributes;\r\n isValidArgs.form = args.form;\r\n isValidArgs.controller = args.controller;\r\n isValidArgs.parameter = args.parameter;\r\n\r\n controller.$setValidity(this.nameCamelCase(), this.isValid(isValidArgs));\r\n });\r\n });\r\n } else {\r\n controller.$validators[this.nameCamelCase()] = () => {\r\n\r\n var isValidArgs = new ValidateArgs();\r\n isValidArgs.el = args.el;\r\n isValidArgs.scope = args.scope;\r\n isValidArgs.attributes = args.attributes;\r\n isValidArgs.form = args.form;\r\n isValidArgs.controller = args.controller;\r\n isValidArgs.parameter = args.parameter;\r\n\r\n return this.isValid(isValidArgs);\r\n };\r\n }\r\n\r\n };\r\n\r\n public resolveMessageForElement = (el: angular.IAugmentedJQuery, errorType: string) => {\r\n\r\n\t\t\t/* NOTE: The message resolver uses a difference instance of the validator than the one attached to the element.\r\n\t\t\tIt is probably possible to make it use the same instance, but for now, make no assumptions within this method\r\n\t\t\tthat you can access any state data created by the link() method (hence \"linkedAttributes\" is attached to the\r\n\t\t\telement itself as data so that it can be accessed here) */\r\n\r\n const scope = el.scope() as IFormScope;\r\n let parameter = '';\r\n if (el && el.attr) {\r\n parameter = el.attr(_.kebabCase(errorType)) || '';\r\n }\r\n const args = new Directives.ValidateArgs();\r\n args.el = el;\r\n args.scope = scope;\r\n args.form = scope ? scope.mainForm : undefined;\r\n args.controller = scope ? scope.vm : undefined;\r\n args.parameter = parameter;\r\n args.attributes = el.data('linkedAttributes');\r\n\r\n return this.resolveMessage(args);\r\n };\r\n\r\n // ReSharper disable once UnusedParameter\r\n public canValidate = (args: Directives.ValidateArgs) => {\r\n return true;\r\n };\r\n\r\n public isValid: (args: Directives.ValidateArgs) => boolean;\r\n\r\n public resolveMessage: (args: Directives.ValidateArgs) => string;\r\n\r\n // ReSharper disable once UnusedParameter\r\n public getWatchExpressions = (args: Directives.ValidateArgs): string[] => { return []; };\r\n }\r\n\r\n}","/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\r\n\texport class GroupValidateElement {\r\n\r\n\t\tpublic el: angular.IAugmentedJQuery;\r\n\r\n\t\tpublic scope: angular.IScope;\r\n\r\n\t\tpublic attributes: any;\r\n\r\n\t\tpublic attributeValue(name: string) {\r\n\t\t\tif (!this.scope || !this.attributes || typeof this.attributes[name] === 'undefined') {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn this.scope.$eval(this.attributes[name]);\r\n\t\t};\r\n\r\n\t\tpublic modelValue() {\r\n\t\t\treturn this.attributeValue('ngModel');\r\n\t\t}\r\n\r\n\t\tpublic viewValue() {\r\n\t\t\tif (!this.el) {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn this.el.val();\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\r\n\texport class GroupValidateArgs {\r\n\r\n\t\tpublic el: angular.IAugmentedJQuery;\r\n\r\n\t\tpublic group: GroupValidateElement[];\r\n\r\n\t\tpublic selector: string;\r\n\r\n\t\tpublic scope: angular.IScope;\r\n\r\n\t\tpublic attributes: angular.IAttributes;\r\n\r\n\t\tpublic form: angular.IFormController;\r\n\r\n\t\tpublic controller: Common.Controllers.IScreenController;\r\n\r\n\t\tpublic parameter: string;\r\n\r\n\t\tpublic parameterValue() {\r\n\t\t\treturn this.scope.$eval(this.parameter);\r\n\t\t};\r\n\r\n\t\tpublic attributeValue(name: string) {\r\n\t\t\tif (!this.scope || !this.attributes || typeof this.attributes[name] === 'undefined') {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn this.scope.$eval(this.attributes[name]);\r\n\t\t};\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\ndeclare module App.Common.Directives {\r\n\r\n\tinterface IGroupValidator {\r\n\r\n\t\tname: string;\r\n\r\n\t\tnameCamelCase(): string;\r\n\r\n\t\tisValid(args: GroupValidateArgs): boolean;\r\n\r\n\t\tresolveMessage(args: GroupValidateArgs): string;\r\n\r\n\t\tresolveMessageForElement(el: angular.IAugmentedJQuery, errorType: string): string;\r\n\t}\r\n\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport enum UserMessageType {Success, Error, Warning, Information, Variation}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class UserMessagesService {\r\n\r\n\t\tpublic static $inject = ['$document', '$timeout'];\r\n\r\n\t\tconstructor(private $document: duScroll.IDocumentService, private $timeout: angular.ITimeoutService) {}\r\n\r\n\t\tpublic messages = {\r\n\t\t\tsuccessMessages: [] as string[],\r\n\t\t\terrorMessages: [] as string[],\r\n\t\t\twarningMessages: [] as string[],\r\n\t\t\tinformationMessages: [] as string[],\r\n\t\t\tvariationMessages: [] as string[]\r\n } as Connect.Models.DataModels.IUserMessages;\r\n\r\n\t\tpublic deferredMessages = {\r\n\t\t\tsuccessMessages: [] as string[],\r\n\t\t\terrorMessages: [] as string[],\r\n\t\t\twarningMessages: [] as string[],\r\n\t\t\tinformationMessages: [] as string[],\r\n\t\t\tvariationMessages: [] as string[]\r\n } as Connect.Models.DataModels.IUserMessages;\r\n\r\n public addMessages(messages: Connect.Models.DataModels.IUserMessages, defer: boolean = false) {\r\n\r\n\t\t\tif (!messages) {\r\n\t\t\t\tthrow new Error('messages not defined');\r\n\t\t\t}\r\n\r\n\t\t\tconst collection = defer ? this.deferredMessages : this.messages;\r\n\r\n\t\t\tcollection.successMessages = collection.successMessages.concat(messages.successMessages || []);\r\n\t\t\tcollection.errorMessages = collection.errorMessages.concat(messages.errorMessages || []);\r\n\t\t\tcollection.warningMessages = collection.warningMessages.concat(messages.warningMessages || []);\r\n\t\t\tcollection.informationMessages = collection.informationMessages.concat(messages.informationMessages || []);\r\n\t\t\tcollection.variationMessages = collection.variationMessages.concat(messages.variationMessages || []);\r\n\r\n\t\t\tif (!defer && this.messageCount(messages)) {\r\n\t\t\t\tthis.scrollMessagesIntoView();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic addMessage(message: string, type: UserMessageType, defer: boolean = false) {\r\n\r\n\t\t\tif (!message) {\r\n\t\t\t\tthrow new Error('message not defined');\r\n\t\t\t}\r\n\r\n\t\t\tconst collection = defer ? this.deferredMessages : this.messages;\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase UserMessageType.Success:\r\n\t\t\t\t\tcollection.successMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase UserMessageType.Error:\r\n\t\t\t\t\tcollection.errorMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase UserMessageType.Warning:\r\n\t\t\t\t\tcollection.warningMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase UserMessageType.Information:\r\n\t\t\t\t\tcollection.informationMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase UserMessageType.Variation:\r\n\t\t\t\t\tcollection.variationMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tcollection.informationMessages.push(message);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (!defer) {\r\n\t\t\t\tthis.scrollMessagesIntoView();\r\n\t\t\t}\r\n\t\t}\r\n\r\n private messageCount(messages: Connect.Models.DataModels.IUserMessages) {\r\n\t\t\tif (!messages) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t\treturn _(messages)\r\n\t\t\t\t.keys()\r\n\t\t\t\t.sumBy((key: string): number => {\r\n\t\t\t\t\treturn _(key).endsWith('Messages') ? messages[key].length : 0;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic scrollMessagesIntoView() {\r\n\t\t\tconst el = angular.element('user-messages');\r\n\t\t\tif (el.length == 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.$document.duScrollToElementAnimated(el);\r\n\t\t}\r\n\r\n\t\tpublic clear() {\r\n\t\t\tthis.messages.successMessages.length = 0;\r\n\t\t\tthis.messages.errorMessages.length = 0;\r\n\t\t\tthis.messages.warningMessages.length = 0;\r\n\t\t\tthis.messages.informationMessages.length = 0;\r\n\t\t\tthis.messages.variationMessages.length = 0;\r\n\t\t}\r\n\r\n\t\tpublic clearDeferred() {\r\n\t\t\tthis.deferredMessages.successMessages.length = 0;\r\n\t\t\tthis.deferredMessages.errorMessages.length = 0;\r\n\t\t\tthis.deferredMessages.warningMessages.length = 0;\r\n\t\t\tthis.deferredMessages.informationMessages.length = 0;\r\n\t\t\tthis.deferredMessages.variationMessages.length = 0;\r\n\t\t}\r\n\r\n\t\tpublic collectDeferredMessages() {\r\n\t\t\tthis.clear();\r\n\t\t\tthis.addMessages(this.deferredMessages);\r\n\t\t\tthis.clearDeferred();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.userMessagesService', UserMessagesService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class FormHelperService {\r\n\r\n\t\tpublic static $inject = ['app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor(private globalSettings: Services.GlobalSettingsService) {\r\n\t\t\tthis.mainFormName = globalSettings.mainFormName;\r\n\t\t}\r\n\r\n\t\tpublic mainFormName: string;\r\n\r\n\t\tpublic mainFormElement(): angular.IAugmentedJQuery {\r\n\t\t\tconst el = angular.element($(`form[name=${this.mainFormName}]`));\r\n\t\t\treturn el.length ? el : null;\r\n\t\t}\r\n\r\n\t\tpublic mainFormScope(): angular.IScope {\r\n\t\t\tconst el = this.mainFormElement();\r\n\t\t\tif (!el) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn el.scope();\r\n\t\t}\r\n\r\n\t\tpublic mainForm(): angular.IFormController {\r\n\t\t\tconst scope = this.mainFormScope();\r\n\t\t\tif (!scope) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn scope[this.mainFormName];\r\n\t\t}\r\n\r\n\t\tpublic input(name: string) {\r\n\t\t\tconst form = this.mainForm();\r\n\t\t\tif (!form) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn form[name];\r\n\t\t}\r\n\r\n\t\tpublic inputElement(name: string) {\r\n\t\t\tconst el = this.mainFormElement();\r\n\t\t\tif (!el) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn el.find(`[name=${name}]`);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.formHelperService', FormHelperService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ModelStateValidationService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'app.common.services.userMessagesService',\r\n\t\t\t'app.common.services.formHelperService'\r\n\t\t];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate userMessages: Services.UserMessagesService,\r\n\t\t\tprivate formHelper: Services.FormHelperService) {}\r\n\r\n\t\tpublic modelStateMessages: {[key: string]: string} = {};\r\n\r\n\t\tpublic clearModelStateMessages() {\r\n\t\t\tthis.modelStateMessages = {};\r\n\t\t}\r\n\r\n\t\tpublic getErrorMessageForElement(el: angular.IAugmentedJQuery): string {\r\n\t\t\tconst inputName = el.attr('name');\r\n\t\t\tif (!inputName) {\r\n\t\t\t\tthrow (\r\n\t\t\t\t\t'An input with error type \"modelstate\" must have a \"name\" attribute which matches the error property name on the model state.');\r\n\t\t\t}\r\n\t\t\tif (!this.modelStateMessages[inputName]) {\r\n\t\t\t\tthrow (`No error message registered for input \"${inputName}\"`);\r\n\t\t\t}\r\n\t\t\treturn this.modelStateMessages[inputName];\r\n\t\t}\r\n\r\n\t\tpublic handleModelState(modelState: {[s: string]: string[];}): boolean {\r\n\r\n\t\t\tconst scope = this.formHelper.mainFormScope();\r\n\t\t\tconst form = this.formHelper.mainForm();\r\n\r\n\t\t\tif (!form) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.clearModelStateMessages();\r\n\r\n\t\t\t_(modelState)\r\n\t\t\t\t.keys()\r\n\t\t\t\t.forEach(key => {\r\n\r\n\t\t\t\t\tconst inputName = key.replace(/^model\\./, '');\r\n\t\t\t\t\tconst message = modelState[key].join('\\r\\n');\r\n\r\n\t\t\t\t\t/* If an input is found on the form with the same value in it's name attribute\r\n\t\t\t\t\t as the field name on the modelState, add set that input to have a validity error\r\n\t\t\t\t\tof type \"modelstate\", and add the actual message to a dictionary in the\r\n\t\t\t\t\terror message resolver so that it can be rendered next to the actual field. */\r\n\t\t\t\t\tif (form[inputName]) {\r\n\t\t\t\t\t\tthis.modelStateMessages[inputName] = message;\r\n\t\t\t\t\t\tform[inputName].$setValidity('modelstate', false);\r\n\t\t\t\t\t\tconst input = this.formHelper.inputElement(inputName);\r\n\t\t\t\t\t\tvar unwatch = scope.$watch(input.attr('ng-model'),\r\n\t\t\t\t\t\t(newValue: any, oldValue: any) => {\r\n\t\t\t\t\t\t\tif (newValue !== oldValue) {\r\n\t\t\t\t\t\t\t\tform[inputName].$setValidity('modelstate', true);\r\n\t\t\t\t\t\t\t\tunwatch();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//If no matching input field is found, add the message to the to the user messages instead\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.userMessages.addMessage(message, UserMessageType.Error);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\treturn true;\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.modelStateValidationService', ModelStateValidationService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ValidationErrorMessageResolverService {\r\n\r\n\t\tpublic standardErrorMessages: {[key: string]: string} = {};\r\n\r\n\t\tpublic validators: {[key: string]: Common.Directives.IValidator} = {};\r\n\r\n\t\tpublic groupValidators: {[key: string]: Common.Directives.IGroupValidator} = {};\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$q',\r\n\t\t\t'app.common.services.modelStateValidationService',\r\n\t\t\t'defaultErrorMessageResolver'\r\n\t\t];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate $q: angular.IQService,\r\n\t\t\tprivate modelStateValidation: Services.ModelStateValidationService,\r\n\t\t\tprivate defaultErrorMessageResolver: any) {\r\n\t\t\tdefaultErrorMessageResolver.getErrorMessages()\r\n\t\t\t\t.then((errorMessages: any) => {\r\n\t\t\t\t\t_.assign(errorMessages,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\temail: 'Please enter a valid email address',\r\n\t\t\t\t\t\tminlength: 'Please enter at least {0} characters',\r\n\t\t\t\t\t\tmaxlength: 'You have entered more than the maximum {0} characters',\r\n\t\t\t\t\t\tmin: 'Please enter the minimum number of {0}',\r\n\t\t\t\t\t\tmax: 'Please enter the maximum number of {0}',\r\n\t\t\t\t\t\trequired: 'This field is required',\r\n\t\t\t\t\t\trequiredradio: 'A selection is required',\r\n\t\t\t\t\t\trequiredcheckbox: 'A selection is required',\r\n\t\t\t\t\t\tdate: 'Please enter a valid date in the format dd/mm/yyyy',\r\n\t\t\t\t\t\tpattern: 'Please ensure the entered information adheres to the pattern {0}',\r\n\t\t\t\t\t\tnumber: 'Please enter a valid number',\r\n\t\t\t\t\t\turl: 'Please enter a valid URL in the format http(s)://www.google.com'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.standardErrorMessages = errorMessages;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic registerValidator(validator: Common.Directives.IValidator): void {\r\n\t\t\tif (this.validators[validator.nameCamelCase()] || this.groupValidators[validator.nameCamelCase()]) {\r\n\t\t\t\tthrow new Error(`Validation message resolver already registered for error type \"${validator.nameCamelCase()}\"`);\r\n\t\t\t}\r\n\t\t\tthis.validators[validator.nameCamelCase()] = validator;\r\n\t\t}\r\n\r\n\t\tpublic registerGroupValidator(validator: Common.Directives.IGroupValidator): void {\r\n\t\t\tif (this.validators[validator.nameCamelCase()] || this.groupValidators[validator.nameCamelCase()]) {\r\n\t\t\t\tthrow new Error(`Validation message resolver already registered for error type \"${validator.nameCamelCase()}\"`);\r\n\t\t\t}\r\n\t\t\tthis.groupValidators[validator.nameCamelCase()] = validator;\r\n\t\t}\r\n\r\n\t\tpublic resolve = (errorType: string, el: angular.IAugmentedJQuery): angular.IPromise => {\r\n\r\n\t\t\tconst defer = this.$q.defer();\r\n\t\t\tconst validator = this.validators[errorType];\r\n\t\t\tconst groupValidator = this.groupValidators[errorType];\r\n\t\t\tif (!validator && !groupValidator) {\r\n\r\n\t\t\t\tif (errorType === 'modelstate') {\r\n\t\t\t\t\tdefer.resolve(this.modelStateValidation.getErrorMessageForElement(el));\r\n\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t} else if (errorType === 'mask') {\r\n\t\t\t\t\tconst attributeMessage = el.attr('ui-mask-message') || 'in the required format';\r\n\t\t\t\t\tdefer.resolve(`This field must be ${attributeMessage}`);\r\n\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t} else if (this.standardErrorMessages[errorType]) {\r\n\t\t\t\t\tif (el.is(':radio'))\r\n\t\t\t\t\t\tdefer.resolve(this.defaultErrorMessageResolver.resolve(errorType+\"radio\", el));\r\n\t\t\t\t\telse if (el.is(':checkbox'))\r\n\t\t\t\t\t\tdefer.resolve(this.defaultErrorMessageResolver.resolve(errorType + \"checkbox\", el));\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tdefer.resolve(this.defaultErrorMessageResolver.resolve(errorType, el));\r\n\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow(`No validator or standard error message registered for error type \"${errorType}\"`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (validator) {\r\n\t\t\t\tdefer.resolve(validator.resolveMessageForElement(el, errorType));\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t} else {\r\n\t\t\t\tdefer.resolve(groupValidator.resolveMessageForElement(el, errorType));\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$q', 'app.common.services.modelStateValidationService', 'defaultErrorMessageResolver'];\r\n\r\n\tfunction factory($q: angular.IQService,\r\n\t\tmodelStateValidation: Services.ModelStateValidationService,\r\n\t\tdefaultErrorMessageResolver: any) {\r\n\t\treturn new ValidationErrorMessageResolverService($q, modelStateValidation, defaultErrorMessageResolver);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.factory('app.common.services.validationErrorMessageResolverService', factory);\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ValidationElementModifierService {\r\n\r\n\t\tpublic key = 'customValidationModifier';\r\n\r\n\t\tpublic makeValid(el: angular.IAugmentedJQuery): void {\r\n\t\t\tthis.makeDefault(el);\r\n\t\t}\r\n\r\n\t\tpublic makeInvalid(el: angular.IAugmentedJQuery, errorMsg: string): void {\r\n\t\t\tel.closest('.form-group').addClass('validation-error');\r\n\r\n\t\t\tlet errorEl: JQuery;\r\n\r\n\t\t\tif (el.siblings('label, div.hint').length) {\r\n\t\t\t\terrorEl = el.siblings('div.error').first();\r\n\t\t\t\tif (!errorEl.length) {\r\n\t\t\t\t\tel.siblings('label, div.hint')\r\n\t\t\t\t\t\t.last()\r\n\t\t\t\t\t\t.after(``);\r\n\t\t\t\t\terrorEl = el.siblings('div.error').first();\r\n\t\t\t\t}\r\n\t\t\t} else if (!el.is(':radio') && !el.is(':checkbox')) {\r\n\t\t\t\terrorEl = el.parent('.input-group').siblings('div.error').first();\r\n\t\t\t\tif (!errorEl.length) {\r\n\t\t\t\t\tel.parent('.input-group')\r\n\t\t\t\t\t\t.siblings('label, div.hint')\r\n\t\t\t\t\t\t.last()\r\n\t\t\t\t\t\t.after(``);\r\n\t\t\t\t\terrorEl = el.parent('.input-group').siblings('div.error').first();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// radio group or checkbox group\r\n\t\t\t\tvar formGroup = el.closest('.form-group');\r\n\t\t\t\terrorEl = formGroup.children('div.error').first();\r\n\t\t\t\tif (!errorEl.length) {\r\n\t\t\t\t\tformGroup.children()\r\n\t\t\t\t\t\t.siblings('label, div.hint')\r\n\t\t\t\t\t\t.last()\r\n\t\t\t\t\t\t.after(``);\r\n\t\t\t\t\terrorEl = formGroup.children().siblings('div.error').first();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\terrorEl.html(errorMsg);\r\n\t\t}\r\n\r\n\t\tpublic makeDefault(el: angular.IAugmentedJQuery): void {\r\n\t\t\tif (el.siblings('label, div.hint').length) {\r\n\t\t\t\tel.siblings('div.error').remove();\r\n\t\t\t} else if (!el.is(':radio') && !el.is(':checkbox')) {\r\n\t\t\t\tel.parent('.input-group').siblings('div.error').remove();\r\n\t\t\t} else {\r\n\t\t\t\t// radio group or checkbox group\r\n\t\t\t\tel.closest('.form-group').children('div.error').remove();\r\n\t\t\t}\r\n\t\t\tif (!el.closest('.form-group').find('div.error').length) {\r\n\t\t\t\tel.closest('.form-group').removeClass('validation-error');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction factory() {\r\n\t\treturn new ValidationElementModifierService();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.factory('app.common.services.validationElementModifierService', factory);\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class DialogOutcome {\r\n\r\n\t\tconstructor(\r\n\t\t\tpublic label: string,\r\n\t\t\tpublic isPrimary: boolean = false,\r\n public isCancel: boolean = false,\r\n public onClosing: () => boolean = null, // returns false, don't close\r\n public onClosed: () => any = null) {\r\n\t\t}\r\n\r\n\t\tpublic static ok = new DialogOutcome('OK', true);\r\n\t\tpublic static confirm = new DialogOutcome('Confirm', true);\r\n\t\tpublic static confirmAndSave = new DialogOutcome('Confirm and Save', true);\r\n\t\tpublic static yes = new DialogOutcome('Yes', true);\r\n\t\tpublic static cancel = new DialogOutcome('Cancel', false, true);\r\n\t\tpublic static no = new DialogOutcome('No');\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class MessageBoxOptions {\r\n\r\n\t\tconstructor(\r\n\t\t\tpublic title: string,\r\n public message: string,\r\n public outcomes: DialogOutcome[],\r\n\t\t\tpublic backdrop?: boolean | string,\r\n\t\t\tpublic keyboard: boolean = true) {}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.controllers', []);\r\n\r\n})());","/// \r\n/// \r\n\r\ndeclare module App.Common {\r\n\r\n\texport interface IApiRequestConfig {\r\n\r\n\t\tresourceName?: string;\r\n\r\n\t\turl?: string;\r\n\r\n\t\tmethod?: string;\r\n\r\n\t\tparams?: any;\r\n\r\n\t\tdata?: any;\r\n\r\n\t\theaders?: angular.IHttpRequestConfigHeaders;\r\n\r\n\t\txsrfHeaderName?: string;\r\n\r\n\t\txsrfCookieName?: string;\r\n\r\n\t\ttransformRequest?: angular.IHttpRequestTransformer | angular.IHttpRequestTransformer[];\r\n\r\n\t\ttransformResponse?: angular.IHttpResponseTransformer | angular.IHttpResponseTransformer[];\r\n\r\n\t\tparamSerializer?: string | ((obj: any) => string);\r\n\r\n\t\tcache?: any;\r\n\r\n\t\ttimeout?: number | angular.IPromise;\r\n\r\n\t\twithCredentials?: boolean;\r\n\r\n\t\tresponseType?: string;\r\n\r\n\t\tdeferUserMessageDisplay?: boolean;\r\n\r\n\t\tsuccessMessage?: string;\r\n\r\n\t\tsuppressSuccessMessage?: boolean;\r\n\r\n\t\tauthenticated?: boolean;\r\n\r\n\t\tsuppressHttpErrorDisplay?: boolean;\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\tclass MessageBoxController {\r\n\r\n\t\tpublic static $inject = ['$scope', '$uibModalInstance', 'model'];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate $scope: angular.IScope,\r\n\t\t\tprivate $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n\t\t\tpublic model: MessageBoxOptions) {}\r\n\r\n public close(result: DialogOutcome) {\r\n\r\n if (result.onClosing != null) {\r\n\t if (result.onClosing() === false) { return; }\r\n }\r\n\r\n\t\t\tthis.$uibModalInstance.close(result);\r\n\r\n if (result.onClosed != null) { result.onClosed(); }\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.messageBoxController', MessageBoxController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class NavigationHelperService {\r\n\r\n\t\tpublic static $inject = ['$state', '$rootScope', '$uibModal', '$sessionStorage'];\r\n\t\tconstructor(\r\n\t\t\tprivate $state: angular.ui.IStateService,\r\n\t\t\tprivate $rootScope: angular.IRootScopeService,\r\n\t\t\tprivate $uibModal: angular.ui.bootstrap.IModalService,\r\n\t\t\tprivate $sessionStorage: ISessionStorage) {}\r\n\r\n\t\tprivate onStateChangeOff: Function;\r\n\r\n\t\tpublic currentScreen: Controllers.IScreenController;\r\n\r\n\t\t//DO NOT MAKE PUBLIC. Use ScreenControllerBase.warnOnUnsavedChanges to bypass navigation warnings\r\n\t\tprivate bypassOnStateChange = false;\r\n\r\n\t\tpublic init() {\r\n\t\t\tif (this.onStateChangeOff) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.onStateChangeOff = this.$rootScope.$on('$beforeStateChange', this.onStateChange);\r\n\r\n\t\t\t$(window)\r\n\t\t\t\t.on('beforeunload',\r\n\t\t\t\t(event: any) => {\r\n\r\n\t\t\t\t\tif (!this.currentScreen || !this.currentScreen.hasUnsavedChanges()) {\r\n\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t}\r\n\r\n var message = 'Are you sure you want to navigate away from this screen? Any changes made will not be saved.';\r\n\t\t\t\t\tif (typeof event === 'undefined') {\r\n\t\t\t\t\t\tevent = window.event;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (event) {\r\n\t\t\t\t\t\tevent.returnValue = message;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn message;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate onStateChange = (event: angular.IAngularEvent,\r\n\t\t\ttoState: angular.ui.IState,\r\n\t\t\ttoParams: Object,\r\n\t\t\tfromState: angular.ui.IState,\r\n\t\t\tfromParams: Object,\r\n\t\t\toptions: Common.IStateOptions) => {\r\n\r\n\t\t\tif (this.bypassOnStateChange || !this.currentScreen || !toState\r\n\t\t\t\t|| (options && (options.notify === false || options.suppressUnsavedChangesWarning))) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tthis.currentScreen.canClose()\r\n\t\t\t\t.then((canClose) => {\r\n\t\t\t\t\tif (canClose) {\r\n\t\t\t\t\t\tthis.bypassOnStateChange = true;\r\n\t\t\t\t\t\tthis.$state.transitionTo(toState, toParams, options);\r\n\t\t\t\t\t\tthis.bypassOnStateChange = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tpublic redirectToSignInScreen(returnToCurrentState = true): void {\r\n\r\n\t\t\tif (this.currentScreenIsSignIn()) { return; }\r\n\r\n\t\t\tif (returnToCurrentState) {\r\n\t\t\t\tthis.$sessionStorage.returnState = this.$state.current;\r\n\t\t\t\tthis.$sessionStorage.returnStateParams = this.$state.params;\r\n\t\t\t} else {\r\n\t\t\t\tdelete this.$sessionStorage.returnState;\r\n\t\t\t\tdelete this.$sessionStorage.returnStateParams;\r\n\t\t\t}\r\n\r\n\t\t\tthis.$state.go('SignIn', null, {\r\n\t\t\t\tsuppressUnsavedChangesWarning: true\r\n\t\t\t} as angular.ui.IStateOptions);\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsSignIn() {\r\n\t\t\treturn this.$state.current.name === 'SignIn';\r\n\t\t}\r\n\r\n public currentScreenIsAuditHistory() {\r\n return this.$state.current.name === 'audithistory';\r\n }\r\n\r\n\t\tpublic currentScreenIsDataUpload() {\r\n\t\t\treturn this.$state.current.name === 'dataupload';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsCalSummary() {\r\n\t\t\treturn this.$state.current.name === 'calsummary';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenName() {\r\n\t\t\treturn this.$state.current.name;\r\n\t\t}\r\n }\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.navigationHelperService', NavigationHelperService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\t/*\r\n\t\t// initialise google analytics\r\n\t\t$window.ga('create', 'UA-75789814-8', 'auto');\r\n\r\n\t\t// track pageview on state change\r\n\t\t$rootScope.$on('$stateChangeSuccess', function (event) {\r\n\t\t\t$window.ga('send', 'pageview', $location.path());\r\n\t\t});\r\n\t\tconsole.log('HCATemplate Angular Setup!');\r\n\t});*/\r\n\r\n\r\n\tangular\r\n .module('Connect')\r\n\t\t.run([\r\n\t\t\t'$rootScope',\r\n\t\t\t'$state',\r\n\t\t\t'$q',\r\n\t\t\t'$window',\r\n\t\t\t'$sessionStorage',\r\n\t\t\t'validator',\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t'app.common.services.navigationHelperService',\r\n\t\t\t'app.common.services.authenticationService',\r\n\t\t\t'app.common.services.validationElementModifierService',\r\n\t\t\t'app.common.services.validationErrorMessageResolverService', (\r\n\t\t\t\t$rootScope: angular.IRootScopeService,\r\n\t\t\t\t$state: angular.ui.IStateService,\r\n\t\t\t\t$q: angular.IQService,\r\n\t\t\t\t$window: angular.IWindowService,\r\n\t\t\t\t$sessionStorage: App.Common.ISessionStorage,\r\n\t\t\t\tvalidator: any,\r\n\t\t\t\tglobalSettings: App.Common.Services.GlobalSettingsService,\r\n\t\t\t\tnavigationHelper: App.Common.Services.NavigationHelperService,\r\n\t\t\t\tauthentication: App.Common.Services.AuthenticationService,\r\n\t\t\t\tvalidationElementModifierService: App.Common.Services.ValidationElementModifierService,\r\n\t\t\t\tvalidationErrorMessageResolverService: App.Common.Services.ValidationErrorMessageResolverService) => {\r\n \r\n\t\t\t\tnavigationHelper.init();\r\n\r\n\t\t\t\t//Configure angular-auto-validation\r\n\t\t\t\tvalidator.registerDomModifier(validationElementModifierService.key, validationElementModifierService);\r\n\t\t\t\tvalidator.setDefaultElementModifier(validationElementModifierService.key);\r\n\t\t\t\tvalidator.setErrorMessageResolver(validationErrorMessageResolverService.resolve);\r\n\t\t\t\t// note - setting validateOnFormSubmit = true breaks client validation\r\n\t\t\t\tvalidator.defaultFormValidationOptions = {\r\n\t\t\t\t\tforceValidation: false,\r\n\t\t\t\t\tdisabled: false,\r\n\t\t\t\t\tvalidateNonVisibleControls: false,\r\n\t\t\t\t\tremoveExternalValidationErrorsOnSubmit: true,\r\n\t\t\t\t\tvalidateOnFormSubmit: true,\r\n\t\t\t\t\twaitForAsyncValidators: true\r\n\t\t\t\t};\r\n\r\n\t\t\t\t//Wrap $state.transitionTo() to fire a new event before state change\r\n\t\t\t\t//in order to allow navigation cancellation without breaking the browser's history stack\r\n\t\t\t\tvar transitionTo = $state.transitionTo;\r\n\t\t\t\t/*$state.transitionTo = (state: angular.ui.IState, params?: {}, options?: App.Common.IStateOptions): angular.IPromise => {\r\n\r\n\t\t\t\t\tvar from = $state.current, fromParams = $state.params;\r\n\t\t\t\t\tstate = state && state.name ? state : $state.get(state);\r\n\r\n\t\t\t\t\tif ((!options || options.notify !== false)\r\n\t\t\t\t\t\t&& $rootScope.$broadcast('$beforeStateChange', state, params, from, fromParams, options).defaultPrevented) {\r\n\t\t\t\t\t\treturn $q.reject(new Error('transition prevented'));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn transitionTo(state, params, options);\r\n\t\t\t\t\t}\r\n\t\t\t\t};*/\r\n\t\t\t}\r\n\t\t]);\r\n})());","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.filters', []);\r\n\r\n})());","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.directives', []);\r\n\r\n})());","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.filters', []);\r\n\r\n})());","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common',\r\n\t[\r\n\t\t'app.common.controllers',\r\n\t\t'app.common.directives',\r\n\t\t'app.common.filters',\r\n\t\t'app.common.services'\r\n\t]);\r\n\r\n})());","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class ErrorDetail {\r\n\r\n\t\tconstructor(\r\n\t\t\tpublic label: string,\r\n\t\t\tpublic value: string,\r\n\t\t\tpublic html: boolean = false) {}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class ErrorDetails {\r\n\r\n\t\tpublic title = 'Sorry, an unexpected error has occurred';\r\n\r\n\t\tpublic userMessage: string;\r\n\r\n\t\tpublic showTechnicalDetails = false;\r\n\r\n\t\tpublic errorDetails: ErrorDetail[] = [];\r\n\r\n\t\tpublic add(detail: ErrorDetail) {\r\n\t\t\tthis.errorDetails.push(detail);\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Filters {\r\n\t'use strict';\r\n\r\n\tfunction filter(input: string, includeSpaces: boolean = false): string {\r\n\t\treturn _.htmlWhitespace(input, includeSpaces);\r\n\t};\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('htmlWhitespace', [() => {return filter;}]);\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport interface IHttpErrorHandler {\r\n\r\n\t\tid: string;\r\n\r\n\t\thandle: (result: angular.IHttpPromiseCallbackArg) => angular.IPromise;\r\n\r\n\t\tcanHandle: (result: angular.IHttpPromiseCallbackArg) => boolean;\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\t'use strict';\r\n\r\n\texport enum ScreenMode {\r\n\t\tNoAccess,\r\n\t\tReadonly,\r\n\t\tEdit\r\n\t}\r\n\r\n\texport enum UserRole {\r\n\t\tProvider,\r\n\t\tIndependentAuditor,\r\n\t\tDesignManager,\r\n\t\tNone\r\n\t}\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n // TODO: rename the namespace to the same as project created for models\r\n export class User implements Connect.Models.DataModels.IUser {\r\n\r\n constructor(userData: Connect.Models.DataModels.IUser = null) {\r\n\t\t\tif (userData) {\r\n\t\t\t\t_.extend(this, userData);\r\n\t\t\t}\r\n\t\t}\r\n\r\n public username: string;\r\n public userId: string;\r\n public emailAddress: string;\r\n\r\n\t\t//public activeDirectoryUsername: string;\r\n\t\tpublic firstName: string;\r\n\t\t//public fullName: string;\r\n\t\t//public funderId: number;\r\n\t\t//public funderName: string;\r\n\t\t//public isHcaUser: boolean;\r\n\t\t//public ishqUser: boolean;\r\n\t\t//public isInternalUser: boolean;\r\n\t\t//public isPrimarySecurityAdministrator: boolean;\r\n\t\t//public isSecondarySecurityAdministrator: boolean;\r\n\t\t//public isSecurityAdministrator: boolean;\r\n\t\t//public operatingAreaId: number;\r\n\t\t//public operatingAreaName: string;\r\n\t\t//public organisationCode: string;\r\n\t\tpublic organisationName: string;\r\n\t\t//public organisationShortName: string;\r\n\t\t//public organisationType: string;\r\n // public permissions: Connect.Models.DataModels.Permission[];\r\n // public roles: Connect.Models.DataModels.Role[];\r\n\t\tpublic surname: string;\r\n\t\tpublic telephoneNumber: string;\r\n\t\t\r\n\r\n // public hasPermission(permission: Connect.Models.DataModels.Permission): boolean {\r\n\t\t//\treturn _(this.permissions).some(x => x === permission);\r\n\t\t//}\r\n\r\n // public hasRole(role: Connect.Models.DataModels.Role): boolean {\r\n\t\t//\treturn _(this.roles).some(x => x === role);\r\n\t\t//}\r\n\t}\r\n\r\n}","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class WindowBroadcastMessage {\r\n\r\n\t\tpublic timestamp: number;\r\n\r\n\t\tconstructor(\r\n\t\t\tpublic sourceWindowId: string,\r\n\t\t\tpublic eventName: string,\r\n\t\t\tpublic data: any = null\r\n\t\t) {\r\n\t\t\tthis.timestamp = Date.now();\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustInclude extends Directives.ValidatorBase {\r\n\r\n\t\tpublic name = 'must-include';\r\n\r\n\t\tpublic isValid = (args: ValidateArgs): boolean => {\r\n\t\t\treturn args.viewValue && args.viewValue().indexOf(args.parameter) > -1;\r\n\t\t};\r\n\t\tpublic resolveMessage = (args: ValidateArgs): string => {\r\n\t\t\treturn `This field must contain \"${args.parameter}\"`;\r\n\t\t};\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustInclude', () => {return new MustInclude();});\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport abstract class DateValidatorBase extends Directives.ValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor(protected $filter: angular.IFilterService,\r\n\t\t\tprotected globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper();\r\n\t\t}\r\n\r\n\t\tpublic comparisonDescription: string;\r\n\r\n\t\tpublic canValidate = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() &&\r\n\t\t\t\targs.parameterValue() &&\r\n\t\t\t\t(_.isDate(args.modelValue()) || _.isDate(new Date(args.modelValue()))) &&\r\n\t\t\t\t(_.isDate(args.parameterValue()) || _.isDate(new Date(args.parameterValue())));\r\n\t\t};\r\n\t\tpublic getWatchExpressions = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn [args.parameter, args.attributes.ngModel];\r\n\t\t};\r\n\t\tpublic resolveMessage = (args: ValidateArgs): string => {\r\n\t\t\tvar label = args.attributes[`${this.nameCamelCase()}Label`] ||\r\n\t\t\t\tthis.$filter('date')(args.parameterValue(), this.globalSettings.shortDateFormat);\r\n\t\t\treturn `This date must be ${this.comparisonDescription} ${label}`;\r\n\t\t};\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeBetweenDates extends Directives.DateValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper($filter, globalSettings);\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-between-dates-min';\r\n\r\n\t\tpublic canValidate = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() &&\r\n\t\t\t\targs.parameterValue() &&\r\n\t\t\t\t(_.isDate(args.modelValue()) || _.isDate(new Date(args.modelValue()))) &&\r\n\t\t\t\t(_.isDate(args.parameterValue()) || _.isDate(new Date(args.parameterValue()))) &&\r\n\t\t\t\t(_.isDate(args.attributeValue('mustBeBetweenDatesMax')) ||\r\n\t\t\t\t\t_.isDate(new Date(args.attributeValue('mustBeBetweenDatesMax'))));\r\n\t\t};\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() >= args.parameterValue() &&\r\n\t\t\t\targs.modelValue() <= args.attributeValue('mustBeBetweenDatesMax');\r\n\t\t};\r\n\t\tpublic getWatchExpressions = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn [\r\n\t\t\t\targs.attributes[this.nameCamelCase()],\r\n\t\t\t\targs.attributes['mustBeBetweenDatesMax'],\r\n\t\t\t\targs.attributes.ngModel\r\n\t\t\t];\r\n\t\t};\r\n\t\tpublic resolveMessage = (args: ValidateArgs): string => {\r\n\t\t\tvar minDate = args.parameterValue();\r\n\t\t\tvar maxDate = args.attributeValue('mustBeBetweenDatesMax');\r\n\t\t\tvar label = args.attributes['mustBeBetweenDatesLabel'] ||\r\n\t\t\t\t`between ${this.$filter('date')(minDate, this.globalSettings.shortDateFormat)} and ${this\r\n\t\t\t\t.$filter('date')(maxDate, this.globalSettings.shortDateFormat)}`;\r\n\t\t\treturn `This date must be ${label}`;\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeBetweenDates($filter, globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeBetweenDatesMin', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeEarlierThan extends Directives.DateValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper($filter, globalSettings);\r\n\r\n\t\t\tthis.comparisonDescription = 'earlier than';\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-earlier-than';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() < args.parameterValue();\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeEarlierThan($filter, globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeEarlierThan', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeEqualOrEarlierThan extends Directives.DateValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper($filter, globalSettings);\r\n\r\n\t\t\tthis.comparisonDescription = 'earlier than or equal to';\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-equal-or-earlier-than';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() <= args.parameterValue();\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeEqualOrEarlierThan($filter, globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeEqualOrEarlierThan', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeEqualOrLaterThan extends Directives.DateValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper($filter, globalSettings);\r\n\r\n\t\t\tthis.comparisonDescription = 'later than or equal to';\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-equal-or-later-than';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() >= args.parameterValue();\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeEqualOrLaterThan($filter, globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeEqualOrLaterThan', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeLaterThan extends Directives.DateValidatorBase {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper($filter, globalSettings);\r\n\r\n\t\t\tthis.comparisonDescription = 'later than';\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-later-than';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() > args.parameterValue();\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory($filter: angular.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeLaterThan($filter, globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeLaterThan', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeSameAs extends Directives.ValidatorBase {\r\n\r\n\t\tpublic comparisonDescription: string;\r\n\r\n\t\tpublic name = 'must-be-same-as';\r\n\r\n\t\tconstructor() {\r\n\t\t\tsuper();\r\n\t\t\tthis.comparisonDescription = 'same as';\r\n\t\t}\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn args.modelValue() === args.parameterValue();\r\n\t\t};\r\n\r\n\t\tpublic getWatchExpressions = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn [args.parameter, args.attributes.ngModel];\r\n\t\t};\r\n\t\tpublic resolveMessage = (args: ValidateArgs): string => {\r\n\t\t\tvar label = args.attributes[`${this.nameCamelCase()}Label`];\r\n\t\t\treturn `This field must be ${this.comparisonDescription} ${label}`;\r\n\t\t};\r\n\t}\r\n\r\n\tfunction factory() {\r\n\t\treturn new MustBeSameAs();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeSameAs', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeSameAsIgnoreCase extends Directives.ValidatorBase {\r\n\r\n\t\tpublic comparisonDescription: string;\r\n\r\n\t\tpublic name = 'must-be-same-as-ignore-case';\r\n\r\n\t\tconstructor() {\r\n\t\t\tsuper();\r\n\t\t\tthis.comparisonDescription = 'same as';\r\n\t\t}\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\tvar argsVal = args.modelValue();\r\n\t\t\tif (argsVal != null) argsVal = argsVal.toLowerCase();\r\n\t\t\tvar paramVal = args.parameterValue();\r\n\t\t\tif (paramVal != null) paramVal = paramVal.toLowerCase();\r\n\t\t\treturn (argsVal === paramVal);\r\n\t\t};\r\n\r\n\t\tpublic getWatchExpressions = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn [args.parameter, args.attributes.ngModel];\r\n\t\t};\r\n\t\tpublic resolveMessage = (args: ValidateArgs): string => {\r\n\t\t\tvar label = args.attributes[`${this.nameCamelCase()}Label`];\r\n\t\t\treturn `This field must be ${this.comparisonDescription} ${label}`;\r\n\t\t};\r\n\t}\r\n\r\n\tfunction factory() {\r\n\t\treturn new MustBeSameAsIgnoreCase();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeSameAsIgnoreCase', factory);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class MustBeTelNumber extends ValidatorBase {\r\n\r\n\t\tpublic static $inject = ['app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor(private globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper();\r\n\t\t}\r\n\r\n\t\tpublic name = 'must-be-tel-number';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn this.globalSettings.telRegexp.test(args.viewValue());\r\n\t\t};\r\n\r\n\t\tpublic resolveMessage = (): string => {\r\n\t\t\treturn 'Please enter a valid UK Telephone Number';\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory(globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new MustBeTelNumber(globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBeTelNumber', factory);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class OverrideEmail extends ValidatorBase {\r\n\r\n\t\tpublic static $inject = ['app.common.services.globalSettingsService'];\r\n\r\n\t\tconstructor(private globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\tsuper();\r\n\t\t}\r\n\r\n\t\tpublic name = 'imsEmail';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn this.globalSettings.emailRegexp.test(args.viewValue());\r\n\t\t};\r\n\r\n\t\tpublic resolveMessage = (): string => {\r\n\t\t\treturn 'Please enter a valid Email Address';\r\n\t\t};\r\n\t}\r\n\r\n\tfactory.$inject = ['app.common.services.globalSettingsService'];\r\n\r\n\tfunction factory(globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\treturn new OverrideEmail(globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('overrideEmail', factory);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class StrongPassword extends ValidatorBase {\r\n\r\n\t\tconstructor() {\r\n\t\t\tsuper();\r\n\t\t}\r\n\r\n\t\tpublic name = 'strong-password';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n\r\n\t\t\tvar password = args.viewValue();\r\n\r\n\t\t\tif (!password || password.length < 8 || password.length > 30 || password.indexOf('\"') > -1) { return false; }\r\n\r\n\t\t\tvar charsetCount = 0;\r\n\t\t\tif (/[A-Z]/.test(password)) { charsetCount++; }\r\n\t\t\tif (/[a-z]/.test(password)) { charsetCount++; }\r\n\t\t\tif (/[0-9]/.test(password)) { charsetCount++; }\r\n\t\t\tif (/[^A-Za-z0-9]/.test(password)) { charsetCount++; }\r\n\r\n\t\t\treturn charsetCount > 3;\r\n\t\t};\r\n\r\n\t\tpublic resolveMessage = (): string => {\r\n return 'Your password should be between 8 and 30 characters in length and contain all of the following: An UPPERCASE letter | A lowercase letter | A number | A symbol (but not the \" character)';\r\n\t\t};\r\n\t}\r\n\r\n\tfunction factory() {\r\n\t\treturn new StrongPassword();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('strongPassword', factory);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.run([\r\n\t\t\t'$injector',\r\n\t\t\t'$filter',\r\n\t\t\t'app.common.services.validationErrorMessageResolverService',\r\n\t\t\t'app.common.services.globalSettingsService', (\r\n\t\t\t\t$injector: angular.auto.IInjectorService,\r\n\t\t\t\t$filter: angular.IFilterService,\r\n\t\t\t\tvalidationErrorMessageResolverService: App.Common.Services.ValidationErrorMessageResolverService,\r\n\t\t\t\tglobalSettings: App.Common.Services.GlobalSettingsService) => {\r\n\r\n\t\t\t\tvar validators: App.Common.Directives.IValidator[] = [\r\n\t\t\t\t\tnew App.Common.Directives.MustInclude(),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeLaterThan($filter, globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeEarlierThan($filter, globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeEqualOrLaterThan($filter, globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeEqualOrEarlierThan($filter, globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeBetweenDates($filter, globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.OverrideEmail(globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeSameAs(),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeSameAsIgnoreCase(),\r\n\t\t\t\t\tnew App.Common.Directives.MustBeTelNumber(globalSettings),\r\n\t\t\t\t\tnew App.Common.Directives.StrongPassword(),\r\n\t\t\t\t];\r\n\r\n\t\t\t\tvalidators.forEach((validator: App.Common.Directives.IValidator) => {\r\n\t\t\t\t\tvalidationErrorMessageResolverService.registerValidator(validator);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t]);\r\n\r\n})());","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class LogService {\r\n\r\n\t\tpublic static $inject = ['$log', 'app.common.services.globalSettingsService'];\r\n\t\tconstructor(\r\n\t\t\tprivate $log: angular.ILogService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService) { }\r\n\r\n\t\tpublic log(...args: any[]) {\r\n\t\t\tthis.$log.log.apply(this, args);\r\n\t\t}\r\n\r\n\t\tpublic info(...args: any[]) {\r\n\t\t\tthis.$log.info.apply(this, args);\r\n\t\t}\r\n\r\n\t\tpublic warn(...args: any[]) {\r\n\t\t\tthis.$log.warn.apply(this, args);\r\n\t\t}\r\n\r\n\t\tpublic error(...args: any[]) {\r\n\t\t\tthis.$log.error.apply(this, args);\r\n\t\t}\r\n\r\n\t\tpublic debug(...args: any[]) {\r\n\t\t\tthis.$log.debug.apply(this, args);\r\n\t\t}\r\n\r\n\t\tpublic debugVerbose(...args: any[]) {\r\n\t\t\tif (this.globalSettings.showVerboseDebugMessages) {\r\n\t\t\t\tthis.$log.debug.apply(this, args);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.logService', LogService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class WindowBroadcastService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$window',\r\n\t\t\t'$rootScope',\r\n\t\t\t'$localStorage',\r\n\t\t\t'$sessionStorage',\r\n\t\t\t'app.common.services.logService',\r\n\t\t\t'app.common.services.globalSettingsService'];\r\n\t\tconstructor(\r\n\t\t\tprivate $window: angular.IWindowService,\r\n\t\t\tprivate $rootScope: angular.IRootScopeService,\r\n\t\t\tprivate $localStorage: Common.ILocalStorage,\r\n\t\t\tprivate $sessionStorage: Common.ISessionStorage,\r\n\t\t\tprivate logger: Services.LogService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService) {\r\n\r\n\t\t\tvar window = angular.element(this.$window);\r\n\t\t\twindow.on('storage', this.receive);\r\n\r\n\t\t\t$rootScope.$on('$destroy', () => {\r\n\t\t\t\twindow.off('storage', this.receive);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic send(eventName: string, data: any = null) {\r\n\t\t\tthis.logger.debug(`Sending ${eventName} message`);\r\n\t\t\tthis.$localStorage.windowBroadcast = new WindowBroadcastMessage(\r\n\t\t\t\tthis.$sessionStorage.windowId,\r\n\t\t\t\teventName,\r\n\t\t\t\tdata\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tpublic receive = (event: JQueryEventObject) => {\r\n\t\t\tvar typedEvent = (event.originalEvent || event as {}) as StorageEvent; //Work around the inadequate JQueryEventObject interface\r\n\r\n\t\t\t//Only respond to storage events for the correct storage key\r\n\t\t\tif (typedEvent.key === 'ims-windowBroadcast') {\r\n\t\t\t\tvar message = angular.fromJson(typedEvent.newValue || '') as WindowBroadcastMessage;\r\n\t\t\t\tif (message.sourceWindowId !== this.$sessionStorage.windowId) { //Only respond to events created by other windows\r\n\t\t\t\t\tthis.logger.debug(`Received ${message.eventName} event from another window`);\r\n\t\t\t\t\tthis.$rootScope.$broadcast(message.eventName, message.data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.windowBroadcastService', WindowBroadcastService);\r\n}","/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class DateHelperService {\r\n\r\n\t\tpublic differenceSeconds(start: Date, end: Date): number {\r\n\t\t\treturn Math.floor((end.valueOf() - start.valueOf()) / 1000);\r\n\t\t}\r\n\r\n\t\tpublic formatShortTimespan(seconds: number): string {\r\n\t\t\tvar minutes = Math.floor(seconds / 60);\r\n\t\t\tvar remainderSeconds = Math.floor(seconds % 60);\r\n\t\t\treturn `${_.padStart(minutes.toString(), 2, '0')}:${_.padStart(remainderSeconds.toString(), 2, '0')}`;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.dateHelperService', DateHelperService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class UsersService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$q',\r\n\t\t\t'app.common.services.logService',\r\n\t\t\t'$localStorage',\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t'app.common.services.apiService',\r\n\t\t\t'$cookies'\r\n\t\t];\r\n\r\n\t\tconstructor(private $q: angular.IQService,\r\n\t\t\tprivate logger: Services.LogService,\r\n\t\t\tprivate $localStorage: Common.ILocalStorage,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService,\r\n\t\t\tprivate api: Services.ApiService,\r\n\t\t\tprivate $cookies: ng.cookies.ICookiesService) { }\r\n\r\n\r\n\t\tpublic populateCurrentUserLocalStorage(force = false): angular.IPromise {\r\n\r\n\t\t\tif (this.$localStorage.currentUser && !force) {\r\n\t\t\t\treturn this.$q.resolve(new Common.User(this.$localStorage.currentUser));\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.debug('Getting current user data');\r\n\t\t\treturn this.api.get({\r\n\t\t\t\t\tresourceName: 'CurrentUser'\r\n }).then((data: Connect.Models.DataModels.IUser): Common.User => {\r\n\t\t\t\t\tthis.$localStorage.currentUser = data;\r\n\t\t\t\t\t// The above does not set the local storage soon enough\r\n\t\t\t\t\t// in the pipeline for the controller initialize() method\r\n\t\t\t\t\t// the below does however\r\n\t\t\t\t\tlocalStorage.setItem('hca-currentUser', JSON.stringify(data));\r\n\t\t\t\t\tvar token = this.$localStorage.authToken;\r\n\t\t\t\t\tif (token && token.expires_in) {\r\n\t\t\t\t\t\tthis.$cookies.putObject('currentUser',\r\n\t\t\t\t\t\t\tdata,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\texpires: new Date(_.now() + (parseInt(token.expires_in, 10) * 1000)),\r\n\t\t\t\t\t\t\t\tdomain: this.globalSettings.cookieDomain\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\treturn new Common.User(data);\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic clearCurrentUserLocalStorage(): void {\r\n\t\t\tdelete this.$localStorage.currentUser;\r\n\t\t\tthis.$cookies.remove('currentUser');\r\n\t\t}\r\n\r\n\t\tpublic getCurrentUser(): Common.User {\r\n\t\t\tif (this.$localStorage.currentUser == null || this.$localStorage.currentUser.username == null) {\r\n\t\t\t\treturn new Common.User(JSON.parse(localStorage.getItem('hca-currentUser')));\r\n\t\t\t}\r\n\t\t\treturn new Common.User(this.$localStorage.currentUser);\r\n\t\t}\r\n\r\n\t\tpublic updateUserDetails(model: User): angular.IPromise {\r\n\r\n\t\t\tvar postConfig: Common.IApiRequestConfig = {\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.updateDetails,\r\n\t\t\t\tauthenticated: true,\r\n\t\t\t\tdata: `username=${encodeURIComponent(this.getCurrentUser().userId)}&FirstName=${encodeURIComponent(model.firstName)}&Surname=${encodeURIComponent(model.surname)}&TelephoneNumber=${encodeURIComponent(model.telephoneNumber)}&Email=${encodeURIComponent(model.emailAddress)}`,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t},\r\n\t\t\t\tsuppressHttpErrorDisplay: false\r\n\t\t\t};\r\n\r\n\t\t\treturn this.api.post(postConfig);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.usersService', UsersService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class AuthenticationService {\r\n\r\n\t\tpublic events = {\r\n\t\t\tsignout: 'signout'\r\n\t\t}\r\n\r\n\t\tpublic model: Common.OAuthToken;\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$localStorage',\r\n\t\t\t'$sessionStorage',\r\n\t\t\t'$q',\r\n\t\t\t'$state',\r\n\t\t\t'$stateParams',\r\n\t\t\t'$rootScope',\r\n\t\t\t'$location',\r\n\t\t\t'app.common.services.logService',\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t'app.common.services.apiService',\r\n\t\t\t'app.common.services.windowBroadcastService',\r\n\t\t\t'app.common.services.usersService',\r\n\t\t\t'app.common.services.userMessagesService',\r\n\t\t\t'app.common.services.errorHandlerService',\r\n\t\t\t'app.common.services.navigationHelperService',\r\n\t\t\t'app.common.services.dateHelperService',\r\n\t\t\t'$cookies'\r\n\t\t];\r\n\r\n\t\tconstructor(private $localStorage: Common.ILocalStorage,\r\n\t\t\tprivate $sessionStorage: Common.ISessionStorage,\r\n\t\t\tprivate $q: angular.IQService,\r\n\t\t\tprivate $state: angular.ui.IStateService,\r\n\t\t\tprivate $stateParams: angular.ui.IStateParamsService,\r\n\t\t\tprivate $rootScope: angular.IRootScopeService,\r\n\t\t\tprivate $location: angular.ILocationService,\r\n\t\t\tprivate logger: Services.LogService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService,\r\n\t\t\tprivate api: Services.ApiService,\r\n\t\t\tprivate windowBroadcast: Services.WindowBroadcastService,\r\n\t\t\tprivate users: Services.UsersService,\r\n\t\t\tprivate userMessages: Services.UserMessagesService,\r\n\t\t\tprivate errorHandler: Services.ErrorHandlerService,\r\n\t\t\tprivate navigationHelper: Services.NavigationHelperService,\r\n\t\t\tprivate dateHelper: Services.DateHelperService,\r\n\t\t\tprivate $cookies: ng.cookies.ICookiesService) {\r\n\r\n\t\t\t//Respond to events fired from other windows\r\n\t\t\t$rootScope.$on(this.events.signout, () => { this.signOut(true, false); });\r\n\r\n\t\t}\r\n\r\n\t\tpublic lastAuthenticationError: string;\r\n\r\n\t\tpublic currentActiveDirectoryUsername() {\r\n\t\t\treturn this.$localStorage.currentActiveDirectoryUsername;\r\n\t\t};\r\n\r\n\t\tpublic currentUsername() {\r\n\t\t\treturn this.users.getCurrentUser().username;\r\n\t\t}\r\n\r\n\t\tpublic useWindowsAuthentication(): boolean {\r\n\t\t\treturn this.globalSettings.useWindowsAuthentication;\r\n\t\t}\r\n\r\n\t\tpublic signIn(username: string, password: string): angular.IPromise {\r\n\t\t\tthis.logger.debug('Sign in');\r\n\r\n\t\t\tthis.deleteSignInDetails();\r\n\r\n\t\t\treturn this.signInFormsAuthenticationPost(username, password)\r\n\t\t\t\t.then((token: Common.OAuthToken): angular.IPromise => {\r\n\r\n this.saveAuthToken(token);\r\n\t\t\t\t\treturn this.users.populateCurrentUserLocalStorage().then(() => this.$q.resolve());\r\n\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n\r\n\t\t\t\t\tthis.deleteSignInDetails();\r\n\r\n\t\t\t\t\tvar requestConfig = result ? result.config : {} as IApiRequestConfig;\r\n\r\n\t\t\t\t\tthis.lastAuthenticationError = result && result.data && result.data.error_description\r\n\t\t\t\t\t\t? result.data.error_description\r\n\t\t\t\t\t\t: '';\r\n\r\n\t\t\t\t\tif (this.useWindowsAuthentication()\r\n\t\t\t\t\t\t&& result\r\n\t\t\t\t\t\t&& result.status === 400\r\n\t\t\t\t\t\t&& requestConfig.data\r\n\t\t\t\t\t\t&& !requestConfig.data.refresh_token) {\r\n return this.errorHandler.handleHttpError(result);\r\n //return this.userMessages.addMessage(result.data.error_description, UserMessageType.Error, false);\r\n\t\t\t\t\t} else if (this.navigationHelper.currentScreenIsSignIn()) {\r\n\t\t\t\t\t\tthis.userMessages.addMessage(this.lastAuthenticationError\r\n\t\t\t\t\t\t\t|| 'Sorry, something went wrong with the sign in process', UserMessageType.Error);\r\n\t\t\t\t\t\t\treturn this.$q.reject();\r\n } else {\r\n //return this.userMessages.addMessage(result.data.error_description, UserMessageType.Error, false);\r\n\t\t\t\t\t\treturn this.errorHandler.handleHttpError(result);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//return this.$q.reject();\r\n\t\t\t\t});\r\n }\r\n\r\n\t\tprivate signInFormsAuthenticationPost(username: string, password: string): angular.IPromise {\r\n\t\t\tthis.logger.debugVerbose('Get auth token from OAuth service');\r\n\r\n\t\t\tvar postConfig: Common.IApiRequestConfig = {\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.token,\r\n\t\t\t\tauthenticated: true,\r\n\t\t\t\tdata: `grant_type=password&username=${encodeURIComponent(username)}&password=${encodeURIComponent(password)}&client_id=${encodeURIComponent(this.globalSettings.oAuthClientId)}`,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t},\r\n\t\t\t\tsuppressHttpErrorDisplay: false\r\n\t\t\t};\r\n\r\n\t\t\tif (this.useWindowsAuthentication()) {\r\n\t\t\t\tpostConfig.withCredentials = true;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.api.post(postConfig);\r\n\t\t}\r\n\r\n\t\t//Performs an initial kerberos handshake with the authentication service before requesting the OAuth token\r\n\t\tprivate signInWindowsAuthentication(): angular.IPromise {\r\n\t\t\tthis.logger.debug('Sign in for Windows authentication');\r\n\r\n\t\t\tvar postConfig: Common.IApiRequestConfig = {\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.negotiate,\r\n\t\t\t\tauthenticated: false,\r\n\t\t\t\tdata: `grant_type=password&username=undefined&password=undefined&client_id=${this.globalSettings.oAuthClientId}`,\r\n\t\t\t\tsuppressHttpErrorDisplay: true\r\n\t\t\t};\r\n\r\n\t\t\tif (this.useWindowsAuthentication()) {\r\n\t\t\t\tpostConfig.withCredentials = true;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.api.get(postConfig).then((username: string): angular.IPromise => {\r\n\t\t\t\tthis.deleteSignInDetails();\r\n\t\t\t\tthis.$localStorage.currentActiveDirectoryUsername = username;\r\n\t\t\t\treturn this.signIn(username, null);\r\n\t\t\t}, (result: angular.IHttpPromiseCallbackArg) => {\r\n\t\t\t\treturn this.errorHandler.handleHttpError(result);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic checkWindowsAuthenticationSignIn(force: boolean = false): angular.IPromise {\r\n\t\t\tthis.logger.debugVerbose('Checking Windows authentication');\r\n\t\t\tif (this.useWindowsAuthentication() && (force || !this.isAuthenticatedUnexpired())) {\r\n\t\t\t\treturn this.signInWindowsAuthentication();\r\n\t\t\t}\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic ensureAuthentication(force: boolean = false): angular.IPromise {\r\n\t\t\tthis.logger.debug('Ensuring the user is authenticated');\r\n\r\n\t\t\treturn !this.isAuthenticatedUnexpired() || force\r\n\t\t\t\t? this.reauthenticate(force)\r\n\t\t\t\t: this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic reauthenticate(force: boolean = false): angular.IPromise {\r\n\t\t\tthis.logger.debug('Reauthenticating');\r\n\t\t\t//debugger;\r\n\r\n if (!this.useWindowsAuthentication()) {\r\n\t\t\t\treturn this.refreshAuthToken().then(() => {\r\n\t\t\t\t\tif (!this.isAuthenticatedUnexpired()) {\r\n\t\t\t\t\t\tthis.navigationHelper.redirectToSignInScreen();\r\n\t\t\t\t\t\treturn this.$q.reject();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn this.$q.resolve();\r\n\t\t\t\t\t}\r\n }, () => {\r\n\t\t\t\t\tthis.navigationHelper.redirectToSignInScreen();\r\n\t\t\t\t\treturn this.$q.reject();\r\n\t\t\t\t});\r\n } else {\r\n\t\t\t\treturn this.checkWindowsAuthenticationSignIn(force);\r\n\t\t\t}\r\n\t\t\t//return this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic passwordIsCorrectForCurrentUser(password: string): angular.IPromise {\r\n\r\n\t\t\tif (!this.currentUsername()) { return this.$q.resolve(false); }\r\n\r\n\t\t\treturn this.signInFormsAuthenticationPost(this.currentUsername(), password).then(() => {\r\n\t\t\t\treturn this.$q.resolve(true);\r\n\t\t\t}, () => {\r\n\t\t\t\treturn this.$q.resolve(false);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic signOut = (returnToDashboard = true, broadcast = true) => {\r\n\t\t\tthis.logger.debug('Signing out');\r\n\t\t\tif (this.useWindowsAuthentication()) { return; }\r\n\t\t\tthis.deleteSignInDetails();\r\n\t\t\tif (this.navigationHelper.currentScreen && this.navigationHelper.currentScreen.isAuthenticationRequired()) {\r\n\t\t\t\tthis.navigationHelper.redirectToSignInScreen(!returnToDashboard);\r\n\t\t\t} else {\r\n\t\t\t\tdelete this.$sessionStorage.returnState;\r\n\t\t\t\tdelete this.$sessionStorage.returnStateParams;\r\n\t\t\t}\r\n\r\n\t\t\tif (broadcast) {\r\n\t\t\t\tthis.windowBroadcast.send(this.events.signout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic deleteSignInDetails() {\r\n\t\t\tthis.logger.debug('Deleting sign in details');\r\n\t\t\tthis.users.clearCurrentUserLocalStorage();\r\n\t\t\tdelete this.$localStorage.authToken;\r\n\t\t\tdelete this.$localStorage.currentActiveDirectoryUsername;\r\n\t\t\tdelete this.$localStorage.sessionTimeout;\r\n\t\t\tthis.$cookies.remove(this.globalSettings.cookieNames.authToken);\r\n\t\t\tthis.$cookies.remove(this.globalSettings.cookieNames.windowsAuthTokenValid);\r\n\r\n\t\t\tvar windowId = this.$sessionStorage.windowId; //Preserve window ID\r\n\t\t\t(this.$sessionStorage as any).$reset(); //Bug in typings file for ngstorage prevents correct call\r\n\t\t\tthis.$sessionStorage.windowId = windowId;\r\n\t\t}\r\n\r\n\t\tpublic isAuthenticated(): boolean {\r\n\t\t\treturn !!this.$localStorage.authToken && !!this.$localStorage.currentUser;\r\n\t\t}\r\n\r\n\t\tpublic isAuthenticatedUnexpired(): boolean {\r\n\t\t\tthis.logger.debugVerbose('Checking if authentication has expired');\r\n\r\n\t\t\t//No auth token\r\n\t\t\tif (!this.$localStorage.authToken) {\r\n\t\t\t\tthis.logger.debugVerbose('No authentication token found');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//Using Windows authentication and the browser has been closed\r\n\t\t\t//NOTE: Closing and re-opening the browser forces reauthentication because there is no sign-out in this mode.\r\n\t\t\t//This session-cookie-based technique ensures Windows users can get updated permissions etc.\r\n\t\t\tif (this.useWindowsAuthentication() && !this.$cookies.get(this.globalSettings.cookieNames.windowsAuthTokenValid)) {\r\n\t\t\t\tthis.logger.debugVerbose('Windows authentication cookie missing');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//For authentication to be considered unexpired, the auth token's expiry date must not have elapsed,\r\n\t\t\t//the currentUser object in local storage must be valid and the authToken cookie must be valid.\r\n\t\t\tvar result = new Date(this.$localStorage.authToken['.expires']) > new Date()\r\n\t\t\t\t&& !!this.$localStorage.currentUser\r\n\t\t\t\t&& !!this.$cookies.get(this.globalSettings.cookieNames.authToken);\r\n\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.logger.debugVerbose('Authentication is valid and unexpired');\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.debugVerbose('Authentication data is invalid or expired');\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n public refreshAuthToken(force = false): angular.IPromise {\r\n\r\n\t\t\tif (this.isAuthenticatedUnexpired() && !force) {\r\n\t\t\t\treturn this.$q.resolve();\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.$localStorage.authToken || !this.$localStorage.authToken.refresh_token) {\r\n\t\t\t\treturn this.$q.reject();\r\n\t\t\t}\r\n\r\n\t\t\tvar postConfig: Common.IApiRequestConfig = {\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.token,\r\n\t\t\t\tauthenticated: false,\r\n\t\t\t\tdata: `grant_type=refresh_token&refresh_token=${encodeURIComponent(this.$localStorage.authToken.refresh_token)}&client_id=${encodeURIComponent(this.globalSettings.oAuthClientId)}`,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif (this.useWindowsAuthentication()) {\r\n\t\t\t\tpostConfig.withCredentials = true;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.api.post(postConfig).then((token: Common.OAuthToken): angular.IPromise => {\r\n\t\t\t\tthis.saveAuthToken(token);\r\n\t\t\t\treturn this.$q.resolve(true);\r\n\t\t\t});\r\n }\r\n\r\n\t\tprivate saveAuthToken(token: Common.OAuthToken) {\r\n\t\t\tthis.logger.debugVerbose('Saving auth token');\r\n\r\n\t\t\tthis.$localStorage.authToken = token;\r\n\r\n\t\t\tif (this.useWindowsAuthentication()) {\r\n this.$cookies.putObject(this.globalSettings.cookieNames.windowsAuthTokenValid, 'true', {\r\n expires: new Date(_.now() + (parseInt(token.expires_in, 10) * 1000)),\r\n domain: this.globalSettings.cookieDomain\r\n });\r\n }\r\n\r\n\t\t\tthis.$cookies.remove(this.globalSettings.cookieNames.authToken);\r\n\t\t\tthis.$cookies.putObject(this.globalSettings.cookieNames.authToken, this.$localStorage.authToken, {\r\n expires: new Date(_.now() + (parseInt(token.expires_in, 10) * 1000)),\r\n domain: this.globalSettings.cookieDomain\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate deleteCookie(cookieName: string) {\r\n\t\t\t// To delete a cookie reliably, you have to explicitly expire it\r\n\t\t\tif (this.$cookies.getObject(cookieName)) {\r\n\t\t\t\tthis.$cookies.putObject(cookieName, \"\", {\r\n\t\t\t\t\texpires: new Date(_.now() - 1000),\r\n\t\t\t\t\tdomain: this.globalSettings.cookieDomain\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.authenticationService', AuthenticationService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ErrorHandlerService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$uibModal',\r\n\t\t\t'$rootScope',\r\n\t\t\t'$http',\r\n\t\t\t'$q',\r\n\t\t\t'$state',\r\n\t\t\t'$injector',\r\n\t\t\t'app.common.services.modelStateValidationService',\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t'app.common.services.navigationHelperService'\r\n\t\t];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate $uibModal: angular.ui.bootstrap.IModalService,\r\n\t\t\tprivate $rootScope: angular.IRootScopeService,\r\n\t\t\tprivate $http: angular.IHttpService,\r\n\t\t\tprivate $q: angular.IQService,\r\n\t\t\tprivate $state: angular.ui.IStateService,\r\n\t\t\tprivate $injector: angular.auto.IInjectorService,\r\n\t\t\tprivate modelStateValidation: Services.ModelStateValidationService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService,\r\n\t\t\tprivate navigationHelper: Services.NavigationHelperService) {\r\n\t\t}\r\n\r\n\t\tpublic errorWindow: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic errorShown = false;\r\n\r\n\t\tprivate lastErrorMessage: string;\r\n\r\n\t\tpublic handleException(error: any): void {\r\n\r\n\t\t\tif (!error) { return; }\r\n\t\t\tif (typeof error === 'string') { error = new Error(error); }\r\n\r\n\t\t\t//Prevent exception loops\r\n\t\t\tif (this.errorShown || this.lastErrorMessage === error.message) { return; }\r\n\t\t\tthis.lastErrorMessage = error.message;\r\n\r\n\t\t\t//Log the client-side exception to the server (fire-and-forget, wrapped in a try/catch to \r\n\t\t\t//prevent errors in the logging process blowing up the display of the original error)\r\n\t\t\ttry {\r\n\t\t\t\tthis.$http({\r\n\t\t\t\t\turl: 'api/ClientExceptions',\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\tstackTrace: error.stack\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} catch (e) { }\r\n\r\n\t\t\tthis.displayError(this.getErrorDetails(error));\r\n\t\t}\r\n\r\n\t\tpublic handleHttpError(result: angular.IHttpPromiseCallbackArg, suppressDisplay = false): angular.IPromise> {\r\n\r\n\t\t\t//Validation errors (model state) \r\n\t\t\tif (result.status === 400 && result.data && result.data.modelState) {\r\n\t\t\t\tif (this.modelStateValidation.handleModelState(result.data.modelState)) {\r\n\t\t\t\t\treturn this.$q.reject(result);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar errorDetails = this.getErrorDetails(result);\r\n\r\n\t\t\t//DNS failure, server offline, CORS access error etc.\r\n if (result.status === -1) {\r\n errorDetails.title = 'Network error';\r\n errorDetails.userMessage = 'Sorry, an error has occurred whilst attempting to communicate with the server';\r\n }\r\n\r\n //We intentionally create this scenario when the database is offline and show a meaningful reason to the user\r\n else if (result.status === 503) {\r\n errorDetails.title = 'Service unavailable';\r\n errorDetails.userMessage = (result && result.data)\r\n ? result.data\r\n : 'Sorry, the requested service is currently unavailable';\r\n }\r\n\r\n else if (result.status === 400 && result.data.error && result.data.error === 'invalid_grant') {\r\n\r\n\t\t\t\t// disable the error pop-ups for access denied\r\n\t suppressDisplay = true;\r\n if (result.data.error_description.indexOf('For security purposes please reset your password') > 1) {\r\n errorDetails.title = 'Access Denied';\r\n errorDetails.userMessage = result.data.error_description;\r\n this.displayPasswordResetError(errorDetails);\r\n }\r\n else {\r\n errorDetails.title = 'Access Denied';\r\n errorDetails.userMessage = result.data.error_description;\r\n }\r\n }\r\n\r\n\t\t\tif (!suppressDisplay) {\r\n this.displayError(errorDetails);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.$q.reject(result);\r\n\t\t}\r\n\r\n public displayPasswordResetError(errorDetails: ErrorDetails) {\r\n\r\n\t\t\tif (this.errorShown) { return; }\r\n\t\t\tthis.errorShown = true;\r\n\r\n\t\t\terrorDetails.showTechnicalDetails = this.globalSettings.showDebugInfo;\r\n\r\n\t\t\tvar options = {} as angular.ui.bootstrap.IModalSettings;\r\n\t\t\toptions.animation = true;\r\n\t\t\toptions.backdrop = 'static';\r\n\t\t\toptions.keyboard = false;\r\n\t\t\toptions.size = 'lg';\r\n\t\t\toptions.controller = 'app.common.controllers.errorController';\r\n\t\t\toptions.controllerAs = 'vm';\r\n\t\t\toptions.bindToController = true;\r\n options.templateUrl = 'Templates/PasswordResetErrorView.html';\r\n\t\t\toptions.resolve = {\r\n\t\t\t\tmodel: errorDetails\r\n\t\t\t};\r\n\r\n this.errorWindow = this.$uibModal.open(options);\r\n\r\n //UserMessagesService _\r\n }\r\n\r\n public displayError(errorDetails: ErrorDetails) {\r\n\r\n if (this.errorShown) { return; }\r\n this.errorShown = true;\r\n\r\n errorDetails.showTechnicalDetails = this.globalSettings.showDebugInfo;\r\n\r\n var options = {} as angular.ui.bootstrap.IModalSettings;\r\n options.animation = true;\r\n options.backdrop = 'static';\r\n options.keyboard = false;\r\n options.size = 'lg';\r\n options.controller = 'app.common.controllers.errorController';\r\n options.controllerAs = 'vm';\r\n options.bindToController = true;\r\n options.templateUrl = 'Templates/ErrorView.html';\r\n options.resolve = {\r\n model: errorDetails\r\n };\r\n\r\n this.errorWindow = this.$uibModal.open(options);\r\n\r\n //UserMessagesService _\r\n\r\n\t\t\t// Get the current controller, if it has this.userMessages add the message to that.\r\n\r\n }\r\n\r\n\t\t//Normalize disparate error object types into a standardised structure\r\n\t\tpublic getErrorDetails(error: any): ErrorDetails {\r\n\r\n\t\t\tvar errorDetails = new ErrorDetails();\r\n\r\n\t\t\tif (!error) { return errorDetails; }\r\n\r\n\t\t\tif (typeof error === 'string') { error = new Error(error); }\r\n\r\n\t\t\tif (error.title) {\r\n\t\t\t\terrorDetails.title = error.title;\r\n\t\t\t}\r\n\t\t\tif (error.userMessage) {\r\n\t\t\t\terrorDetails.userMessage = error.userMessage;\r\n\t\t\t}\r\n\t\t\tif (error.message || error.exceptionMessage) {\r\n\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Message', error.message || error.exceptionMessage));\r\n\t\t\t}\r\n\t\t\tif (error.exceptionType) {\r\n\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Exception Type', error.exceptionType));\r\n\t\t\t}\r\n if (error.stack || error.stackTrace) {\r\n errorDetails.errorDetails.push(new ErrorDetail('Stack Trace', error.stack || error.stackTrace, true));\r\n\t\t\t\t//errorDetails.errorDetails.push(new ErrorDetail('Stack Trace', _.htmlWhitespace(error.stack || error.stackTrace), true));\r\n\t\t\t}\r\n\t\t\tif (error.status) {\r\n\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('HTTP Response Code', error.status));\r\n\t\t\t}\r\n\t\t\tif (error.statusText) {\r\n\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('HTTP Response Message', error.statusText));\r\n\t\t\t}\r\n\t\t\tif (error.data) {\r\n\t\t\t\tif (error.data.message) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Message', error.data.message));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.data.messageDetail) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Message Detail', error.data.messageDetail));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.data.error_description) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Error Description', error.data.error_description));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.data.exceptionMessage) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Exception Message', error.data.exceptionMessage));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.data.exceptionType) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Exception Type', error.data.exceptionType));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.data.stackTrace) {\r\n errorDetails.errorDetails.push(new ErrorDetail('Stack Trace', error.data.stackTrace, true));\r\n //errorDetails.errorDetails.push(new ErrorDetail('Stack Trace', _.htmlWhitespace(error.data.stackTrace), true));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet inner = error.data.innerException;\r\n\t\t\t\twhile (inner && inner.innerException) {\r\n\t\t\t\t\tinner = inner.innerException;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (inner) {\r\n\t\t\t\t\tif (inner.message) {\r\n\t\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Innermost Message', inner.message));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (inner.exceptionMessage) {\r\n\t\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Innermost Exception Message', inner.exceptionMessage));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (inner.exceptionType) {\r\n\t\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Innermost Exception Type', inner.exceptionType));\r\n\t\t\t\t\t}\r\n if (inner.stackTrace) {\r\n errorDetails.errorDetails.push(new ErrorDetail('Innermost Stack Trace', inner.stackTrace, true));\r\n\t\t\t\t\t\t//errorDetails.errorDetails.push(new ErrorDetail('Innermost Stack Trace', _.htmlWhitespace(inner.stackTrace), true));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (error.config) {\r\n\t\t\t\tif (error.config.url) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Request URL', error.config.url));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.config.method) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Request Method', error.config.method));\r\n\t\t\t\t}\r\n\t\t\t\tif (error.config.params) {\r\n\t\t\t\t\terrorDetails.errorDetails.push(new ErrorDetail('Request Parameters', error.config.params));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn errorDetails;\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.errorHandlerService', ErrorHandlerService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ApiService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$http',\r\n\t\t\t'$q',\r\n\t\t\t'$localStorage',\r\n '$injector',\r\n\t\t\t'app.common.services.userMessagesService',\r\n\t\t\t'app.common.services.errorHandlerService',\r\n 'app.common.services.globalSettingsService'\r\n\t\t];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate $http: angular.IHttpService,\r\n\t\t\tprivate $q: angular.IQService,\r\n private $localStorage: Common.ILocalStorage,\r\n private $injector: angular.auto.IInjectorService,\r\n\t\t\tprivate userMessages: Services.UserMessagesService,\r\n\t\t\tprivate errorHandler: Services.ErrorHandlerService,\r\n private globalSettings: Services.GlobalSettingsService) {\r\n\t\t}\r\n\t\tpublic messageBoxWindow: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic get(config: Common.IApiRequestConfig): angular.IPromise { return this.action('GET', config); }\r\n\r\n\t\tpublic head(config: Common.IApiRequestConfig): angular.IPromise { return this.action('HEAD', config); }\r\n\r\n\t\tpublic post(config: Common.IApiRequestConfig): angular.IPromise { return this.action('POST', config); }\r\n\r\n\t\tpublic put(config: Common.IApiRequestConfig): angular.IPromise { return this.action('PUT', config); }\r\n\r\n\t\tpublic delete(config: Common.IApiRequestConfig): angular.IPromise { return this.action('DELETE', config); }\r\n\r\n\t\tpublic patch(config: Common.IApiRequestConfig): angular.IPromise { return this.action('PATCH', config); }\r\n\r\n\t\tprivate action(method: string, config: Common.IApiRequestConfig): angular.IPromise {\r\n\r\n\t\t\tif (!method || !config || method === 'POST' && !config.data) {\r\n\t\t\t\tthrow ('Invalid args');\r\n\t\t\t}\r\n\r\n\t\t\tconfig.url = config.resourceName ? `api/${config.resourceName}` : config.url;\r\n\t\t\tconfig.method = method;\r\n\r\n\t\t\tif (config.method !== 'GET' && config.method !== 'HEAD') {\r\n\t\t\t\tthis.userMessages.clear();\r\n\t\t\t}\r\n\r\n\t\t\tif (!config.headers) {\r\n\t\t\t\tconfig.headers = {} as angular.IHttpRequestConfigHeaders;\r\n\t\t\t}\r\n\r\n\t\t\tthis.addDefaultHeaders(config);\r\n\r\n\t\t\t//If left unspecified, the call is assumed to require authentication. Only config.authenticated === false prevents this\r\n\t\t\tif (typeof (config.authenticated) === 'undefined' || config.authenticated === null || config.authenticated) {\r\n\t\t\t\tthis.addAuthHeaderWithToken(config);\r\n\t\t\t}\r\n\r\n // Uncomment if tracking is needed\r\n\t\t\t//this.analytics.trackPage(config.url);\r\n\r\n\t\t\treturn this.$http(config as angular.IRequestConfig)\r\n\t\t\t\t.then((result: angular.IHttpPromiseCallbackArg>) => {\r\n\t\t\t\t\treturn this.unwrapResult(result);\r\n\t\t\t\t},\r\n\t\t\t\t(result: angular.IHttpPromiseCallbackArg) => {\r\n\r\n\t\t\t\t\tvar requestConfig = result.config as IApiRequestConfig;\r\n\r\n\t\t\t\t\tif (result.status === 401 && requestConfig.authenticated) {\r\n\t\t\t\t\t\treturn this.$injector\r\n\t\t\t\t\t\t\t.get('app.common.services.authenticationService')\r\n\t\t\t\t\t\t\t.reauthenticate()\r\n\t\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\t\tthis.$http(config as angular.IRequestConfig)\r\n\t\t\t\t\t\t\t\t\t.then((retryResult: angular.IHttpPromiseCallbackArg>) => {\r\n\t\t\t\t\t\t\t\t\t\treturn this.unwrapResult(retryResult);\r\n\t\t\t\t\t\t\t\t\t}, (retryResult: angular.IHttpPromiseCallbackArg>) => {\r\n\t\t\t\t\t\t\t\t\t\treturn this.errorHandler.handleHttpError(retryResult, config.suppressHttpErrorDisplay);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn this.errorHandler.handleHttpError(result, config.suppressHttpErrorDisplay);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tpublic addDefaultHeaders(config: Common.IApiRequestConfig | angular.IRequestConfig): void {\r\n\r\n\t\t\tif (!config) { return; }\r\n\t\t\tif (!config.headers) { config.headers = {}; }\r\n\r\n\t\t\tif (!config.headers['Accept']) {\r\n\t\t\t\tconfig.headers['Accept'] = 'application/json';\r\n\t\t\t}\r\n\t\t\tif (!config.headers['Content-Type']) {\r\n\t\t\t\tconfig.headers['Content-Type'] = 'application/json';\r\n\t\t\t}\r\n\r\n\t\t\t//if (this.globalSettings.sendAuthConfig\r\n\t\t\t//\t&& _(config.url).startsWith(this.globalSettings.authenticationEndpoints.base)\r\n\t\t\t//\t&& !_(config.url).startsWith(this.globalSettings.authenticationEndpoints.negotiate)) {\r\n\t\t\t//\tconfig.headers[this.globalSettings.authenticationModeHeaderName] = this.globalSettings.authenticationMode;\r\n\t\t\t//\tconfig.headers[this.globalSettings.databaseHeaderName] = this.globalSettings.databaseName;\r\n\t\t\t//}\r\n\t\t}\r\n\r\n\t\tpublic addAuthHeaderWithToken(config: Common.IApiRequestConfig | angular.IRequestConfig): void {\r\n\r\n\t\t\tif (!config) { return; }\r\n\t\t\tif (!config.headers) { config.headers = {}; }\r\n\r\n\t\t\tconfig.headers['Authorization'] = `Bearer ${this.$localStorage.authToken ? this.$localStorage.authToken.access_token : ''}`;\r\n\t\t};\r\n\r\n\t\tprivate unwrapResult(result: angular.IHttpPromiseCallbackArg): any {\r\n\r\n\t\t\tif (!result) { return null; }\r\n\r\n\t\t\tvar config = result.config as Common.IApiRequestConfig;\r\n\r\n\t\t\tvar hasErrorMessages = false;\r\n\r\n\t\t\tif (result.data && result.data.userMessages != null) {\r\n\r\n\t\t\t\thasErrorMessages = result.data.userMessages.errorMessages && result.data.userMessages.errorMessages.length;\r\n\r\n\t\t\t\tif (config.method !== 'GET' && config.method !== 'HEAD' && !config.suppressSuccessMessage && !hasErrorMessages) {\r\n\t\t\t\t\tthis.userMessages.addMessage(config.successMessage || 'Action completed successfully',\r\n\t\t\t\t\t\tUserMessageType.Success,\r\n\t\t\t\t\t\tconfig.deferUserMessageDisplay);\r\n\t\t\t\t}\r\n\t\t\t\tif (result.data && result.data.userMessages) {\r\n\t\t\t\t\tthis.userMessages.addMessages(result.data.userMessages, !hasErrorMessages && config.deferUserMessageDisplay);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn hasErrorMessages\r\n\t\t\t\t? this.$q.reject(result.data.value || result.data)\r\n\t\t\t\t: this.$q.resolve(result.data.value || result.data);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.apiService', ApiService);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n 'use strict';\r\n\r\n export class RegistrationService {\r\n\r\n public static $inject = [\r\n '$q',\r\n '$log',\r\n '$localStorage',\r\n 'app.common.services.globalSettingsService',\r\n 'app.common.services.apiService'\r\n ];\r\n\r\n constructor(private $q: angular.IQService,\r\n private $log: angular.ILogService,\r\n private $localStorage: Common.ILocalStorage,\r\n private globalSettings: Services.GlobalSettingsService,\r\n private api: Services.ApiService) { }\r\n\r\n public verify(token: string): angular.IPromise {\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: this.globalSettings.authenticationEndpoints.activateUser,\r\n authenticated: false,\r\n data: { username: null, token: token },\r\n suppressHttpErrorDisplay: false\r\n };\r\n return this.api.post(postConfig)\r\n .then((username: string): angular.IPromise => {\r\n return this.$q.resolve(username);\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n return this.$q.reject(result);\r\n });\r\n }\r\n \r\n // public convertSmallDevLarge(developerTargetId: number, providerCode: string): angular.IPromise {\r\n // var postConfig: Common.IApiRequestConfig = {\r\n // url: this.globalSettings.authenticationEndpoints.convertSmallDevLarge,\r\n // authenticated: true,\r\n // data: {\r\n // developerTargetId: developerTargetId,\r\n // providerCode: providerCode\r\n // },\r\n // suppressHttpErrorDisplay: false\r\n // };\r\n // return this.api.post(postConfig)\r\n // .then((stringValue: string): angular.IPromise => {\r\n // return this.$q.resolve(stringValue);\r\n // }, (result: angular.IHttpPromiseCallbackArg) => {\r\n // return this.$q.reject(result);\r\n // });\r\n // }\r\n\r\n // public changeDeveloper(existingProviderCode: string, targetProviderCode: string): angular.IPromise {\r\n // var postConfig: Common.IApiRequestConfig = {\r\n // url: this.globalSettings.authenticationEndpoints.changeDeveloper,\r\n // authenticated: true,\r\n // data: {\r\n // existingProviderCode: existingProviderCode,\r\n // targetProviderCode: targetProviderCode\r\n // },\r\n // suppressHttpErrorDisplay: false\r\n // };\r\n // return this.api.post(postConfig)\r\n // .then((stringValue: string): angular.IPromise => {\r\n // return this.$q.resolve(stringValue);\r\n // }, (result: angular.IHttpPromiseCallbackArg) => {\r\n // return this.$q.reject(result);\r\n // });\r\n // }\r\n\r\n // public createHtbOnlySa(developerTargetId: number, resetSource: string, resetUrl: string): angular.IPromise {\r\n // var postConfig: Common.IApiRequestConfig = {\r\n // url: this.globalSettings.authenticationEndpoints.createHtbOnlySa,\r\n // authenticated: true,\r\n // data: {\r\n // developerTargetId: developerTargetId,\r\n // source: resetSource,\r\n // resetUrl: resetUrl\r\n // },\r\n // suppressHttpErrorDisplay: false\r\n // };\r\n // return this.api.post(postConfig)\r\n // .then((stringValue: string): angular.IPromise => {\r\n // return this.$q.resolve(stringValue);\r\n // }, (result: angular.IHttpPromiseCallbackArg) => {\r\n // return this.$q.reject(result);\r\n // });\r\n // }\r\n\r\n public getUnActivatedId(email: string, password: string): angular.IPromise {\r\n const postConfig: Common.IApiRequestConfig = {\r\n url: this.globalSettings.authenticationEndpoints.unActivatedUser,\r\n authenticated: false,\r\n data: { email: email, password: password },\r\n suppressHttpErrorDisplay: false\r\n };\r\n return this.api.post(postConfig)\r\n .then((ids: string[]): angular.IPromise => {\r\n return this.$q.resolve(ids);\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n return this.$q.reject(result);\r\n });\r\n }\r\n\r\n\t\t//public changeRequestEmail(status: string,userName : string, forecastYear:number ,orgCode: string): angular.IPromise {\r\n // var postConfig: Common.IApiRequestConfig = {\r\n // url: this.globalSettings.authenticationEndpoints.changeRequest,\r\n // authenticated: true,\r\n // data: {\r\n // status: status,\r\n\t\t//\t\t\tuserName: userName,\r\n\t\t//\t\t\tForecastYear: forecastYear,\r\n\t\t//\t\t\tAccountUrl: `${this.globalSettings.baseUrl}/HelpToBuy/ApprovedForecastsExternal`,\r\n\t\t//\t\t\torgCode: orgCode\r\n // },\r\n // suppressHttpErrorDisplay: false\r\n // };\r\n // return this.api.post(postConfig)\r\n // .then((stringValue: string): angular.IPromise => {\r\n // return this.$q.resolve(stringValue);\r\n // }, (result: angular.IHttpPromiseCallbackArg) => {\r\n // return this.$q.reject(result);\r\n // });\r\n // }\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.services')\r\n .service('app.common.services.registrationService', RegistrationService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class MessageBoxHelperService {\r\n\r\n\t\tpublic static $inject = ['$uibModal', 'app.common.services.errorHandlerService'];\r\n\t\tconstructor(\r\n\t\t\tprivate $uibModal: angular.ui.bootstrap.IModalService,\r\n\t\t\tprivate errorHandler: Services.ErrorHandlerService\r\n\t\t) { }\r\n\r\n\t\tpublic messageBoxWindow: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic messageBox(messageBoxOptions: MessageBoxOptions): angular.ui.bootstrap.IModalServiceInstance {\r\n\r\n\t\t\t//Prevent message boxes appearing after a fatal error has been displayed\r\n\t\t\tif (this.errorHandler.errorShown) { return null; }\r\n\r\n\t\t\tvar modalOptions = {} as angular.ui.bootstrap.IModalSettings;\r\n\r\n\t\t\tmodalOptions.animation = true;\r\n\r\n\t\t\tif (messageBoxOptions.backdrop != null) {\r\n\t\t\t\tmodalOptions.backdrop = messageBoxOptions.backdrop;\r\n\t\t\t}\r\n\r\n\t\t\tif (messageBoxOptions.keyboard != null) {\r\n\t\t\t\tmodalOptions.keyboard = messageBoxOptions.keyboard;\r\n\t\t\t}\r\n\r\n\t\t\tmodalOptions.controller = 'app.common.controllers.messageBoxController';\r\n\t\t\tmodalOptions.controllerAs = 'vm';\r\n\t\t\tmodalOptions.bindToController = true;\r\n\t\t\tmodalOptions.templateUrl = 'Templates/MessageBoxView.html';\r\n\t\t\tmodalOptions.resolve = {\r\n\t\t\t\tmodel: messageBoxOptions\r\n\t\t\t};\r\n\r\n\t\t\tthis.messageBoxWindow = this.$uibModal.open(modalOptions);\r\n\r\n\t\t\treturn this.messageBoxWindow;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.messageBoxHelperService', MessageBoxHelperService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\texport abstract class ScreenControllerBase implements Controllers.IScreenController {\r\n\r\n\t\tpublic $rootScope: angular.IRootScopeService;\r\n\t\tpublic $q: angular.IQService;\r\n\t\tpublic $timeout: angular.ITimeoutService;\r\n\t\tpublic $document: duScroll.IDocumentService;\r\n\t\tpublic $filter: any;\r\n\t\tpublic $stateParams: angular.ui.IStateParamsService;\r\n\t\tpublic $sessionStorage: Common.ISessionStorage;\r\n\t\tpublic $localStorage: Common.ILocalStorage;\r\n\t\tpublic $uibModal: angular.ui.bootstrap.IModalService;\r\n\t\tpublic $location: angular.ILocationService;\r\n\t\tpublic $window: angular.IWindowService;\r\n\t\tpublic $state: angular.ui.IStateService;\r\n\t\tpublic api: Common.Services.ApiService;\r\n\t\tpublic users: Common.Services.UsersService;\r\n\t\tpublic userMessages: Common.Services.UserMessagesService;\r\n public authentication: Common.Services.AuthenticationService;\r\n public registration: Common.Services.RegistrationService;\r\n\t\tpublic globalSettings: Common.Services.GlobalSettingsService;\r\n\t\tpublic formHelper: Common.Services.FormHelperService;\r\n\t\tpublic messageBoxHelper: Common.Services.MessageBoxHelperService;\r\n\t\tpublic navigationHelper: Common.Services.NavigationHelperService;\r\n\t\tpublic inactivityMonitor: Common.Services.InactivityMonitorService;\r\n\t\tpublic analytics: any;\r\n\t\tpublic busyPromise: angular.IPromise;\r\n\t\tpublic title = \"Untitled Screen\";\r\n public titleSecondary = \"\";\r\n\t\tpublic forceReauthentication = false;\r\n\t\tpublic warnOnUnsavedChanges = true;\r\n\t\tpublic screenMode = ScreenMode.Edit;\r\n\t\tpublic scroll = 0;\r\n\t\tprivate authenticationRequired: boolean = null;\r\n\t\tprivate logger: Common.Services.LogService;\r\n\r\n\t\tpublic config = {\r\n\t\t\tdatepickerOptions: {\r\n\t\t\t\tshowWeeks: false,\r\n\t\t\t\tstartingDay: 1,\r\n\t\t\t\tclearText: 'Clear',\r\n\t\t\t\tcloseOnDateSelection: true,\r\n\t\t\t\tcloseText: 'Done',\r\n\t\t\t\tcurrentText: 'Today',\r\n showButtonBar: true\r\n },\r\n datesaveOptions: {\r\n timezone: 'UTC'\r\n }\r\n\t\t};\r\n\r\n\t\tconstructor(public $injector: angular.auto.IInjectorService) {\r\n\r\n\t\t\tthis.$rootScope = $injector.get('$rootScope');\r\n\t\t\tthis.$q = $injector.get('$q');\r\n\t\t\tthis.$timeout = $injector.get('$timeout');\r\n\t\t\tthis.$document = $injector.get('$document');\r\n\t\t\tthis.$filter = $injector.get('$filter');\r\n\t\t\tthis.$sessionStorage = $injector.get('$sessionStorage');\r\n\t\t\tthis.$localStorage = $injector.get('$localStorage');\r\n\t\t\tthis.$uibModal = $injector.get('$uibModal');\r\n\t\t\tthis.$location = $injector.get('$location');\r\n\t\t\tthis.$window = $injector.get('$window');\r\n\t\t\tthis.$state = $injector.get('$state');\r\n\t\t\tthis.$stateParams = $injector.get('$stateParams');\r\n\t\t\tthis.api = $injector.get('app.common.services.apiService');\r\n\t\t\tthis.users = $injector.get('app.common.services.usersService');\r\n\t\t\tthis.userMessages = $injector.get('app.common.services.userMessagesService');\r\n this.authentication = $injector.get('app.common.services.authenticationService');\r\n this.registration = $injector.get('app.common.services.registrationService');\r\n\t\t\tthis.globalSettings = $injector\r\n\t\t\t\t.get('app.common.services.globalSettingsService');\r\n\t\t\tthis.formHelper = $injector.get('app.common.services.formHelperService');\r\n\t\t\tthis.messageBoxHelper = $injector\r\n\t\t\t\t.get('app.common.services.messageBoxHelperService');\r\n\t\t\tthis.navigationHelper = $injector\r\n\t\t\t\t.get('app.common.services.navigationHelperService');\r\n\t\t\tthis.inactivityMonitor = $injector\r\n\t\t\t\t.get('app.common.services.inactivityMonitorService');\r\n\t\t\t//this.analytics = $injector.get('Analytics');\r\n\t\t\tthis.logger = $injector.get('app.common.services.logService');\r\n\r\n\t\t\tthis.userMessages.collectDeferredMessages();\r\n\t\t\tthis.registerFormFooterAnchor();\r\n\r\n\t\t\tthis.$document.scrollTop(0);\r\n this.navigationHelper.currentScreen = this;\r\n\r\n\t\t \r\n\r\n\t\t\tthis.busyPromise = this.beforeInitialize()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\t// Get current user info (if any), for the header info\r\n\t\t\t\t\treturn this.users.populateCurrentUserLocalStorage();\r\n\t\t\t\t})\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tif (_.isNil(this.authenticationRequired)) {\r\n\t\t\t\t\t\t//If beforeInitialize() didn't call setAuthenticationRequired(), assume authentication IS required\r\n\t\t\t\t\t\treturn this.setAuthenticationRequired(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.$q.resolve();\r\n\t\t\t\t})\r\n\t\t\t\t.then(() => { return this.initialize(); });\r\n\t\t}\r\n\r\n\t\tpublic abstract initialize(): angular.IPromise;\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic setAuthenticationRequired(isRequired: boolean): angular.IPromise {\r\n\r\n\t\t\tthis.authenticationRequired = isRequired;\r\n\r\n if (this.authenticationRequired) {\r\n var faRes = this.forceReauthentication;\r\n return this.authentication.ensureAuthentication(faRes).then(() => {\r\n return this.$q.resolve(this.inactivityMonitor.start());\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.inactivityMonitor.cancel();\r\n\t\t\t\treturn this.$q.resolve();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic isAuthenticationRequired() {\r\n\t\t\treturn this.authenticationRequired;\r\n\t\t}\r\n\r\n public notForWindowsAuthenticationUsers() {\r\n //changed this as we want windows auth users to go directly to the dashboard\r\n //after they have authenticated obviously\r\n if (this.authentication.useWindowsAuthentication()) {\r\n window.location.href = this.globalSettings.dashApplicationLink;\r\n // this.$state.go('Dashboard', null, {\r\n // //this.$state.go('NotForWindowsAuthenticationUsers', null, {\r\n\t\t\t\t//\tlocation: false,\r\n\t\t\t\t//\tsuppressUnsavedChangesWarning: true\r\n\t\t\t\t//} as Common.IStateOptions);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic controllerName() {\r\n\t\t\treturn this.constructor.toString().match(/\\w+/g)[1];\r\n\t\t}\r\n\r\n\t\tpublic viewName(instance: number = null) {\r\n\t\t\tvar viewName = this.controllerName().replace('Controller', 'View');\r\n\t\t\tif (instance != null) {\r\n\t\t\t\tviewName += viewName + '_' + instance.toString();\r\n\t\t\t}\r\n\t\t\treturn viewName;\r\n\t\t}\r\n\r\n\t\tpublic isReadonly() {\r\n\t\t\treturn this.screenMode === ScreenMode.Readonly;\r\n\t\t}\r\n\r\n\t\tpublic noAccess() {\r\n\t\t\treturn this.screenMode === ScreenMode.NoAccess;\r\n\t\t}\r\n\r\n\t\tpublic isEditable() {\r\n\t\t\treturn this.screenMode === ScreenMode.Edit;\r\n\t\t}\r\n\r\n\t\tpublic hasUnsavedChanges() {\r\n\t\t\treturn this.isEditable() && this.warnOnUnsavedChanges && this.dirty();\r\n\t\t}\r\n\r\n public checkScreenPermissions(): boolean {\r\n\t\t//public checkScreenPermissions(read: Hca.Ims.Model.Permission | Hca.Ims.Model.Permission[],\r\n\t\t//\tedit: Hca.Ims.Model.Permission | Hca.Ims.Model.Permission[] = null): boolean {\r\n\r\n\t\t//\tvar currentUser = this.users.getCurrentUser();\r\n\t\t//\tvar readPermissions = read ? _.flatten([read]) : [];\r\n\t\t//\tvar editPermissions = edit ? _.flatten([edit]) : [];\r\n\r\n\t\t//\tif (!_(currentUser.permissions).some((x: Hca.Ims.Model.Permission) => (readPermissions.some(r => r === x)))) {\r\n\t\t//\t\tthis.userMessages.addMessage('You do not have the required permission to access this screen',\r\n\t\t//\t\t\tUserMessageType.Error);\r\n\t\t//\t\tthis.screenMode = ScreenMode.NoAccess;\r\n\t\t//\t\treturn false;\r\n\t\t//\t} else if (editPermissions &&\r\n\t\t//\t\teditPermissions.length &&\r\n\t\t//\t\t!_(currentUser.permissions).some((x: Hca.Ims.Model.Permission) => (editPermissions.some(r => r === x)))) {\r\n\t\t//\t\tthis.screenMode = ScreenMode.Readonly;\r\n\t\t//\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n public checkScreenRoles(): boolean {\r\n\t\t//public checkScreenRoles(roles: Hca.Ims.Model.Role | Hca.Ims.Model.Role[]): boolean {\r\n\r\n\t\t//\tvar currentUser = this.users.getCurrentUser();\r\n\t\t//\tvar screenRoles = roles ? _.flatten([roles]) : [];\r\n\r\n\t\t//\tif (!_(currentUser.roles).some((x: Hca.Ims.Model.Role) => (screenRoles.some(r => r === x)))) {\r\n\t\t//\t\tthis.userMessages.addMessage('You do not have the required role(s) to access this screen',\r\n\t\t//\t\t\tUserMessageType.Error);\r\n\t\t//\t\tthis.screenMode = ScreenMode.NoAccess;\r\n\t\t//\t\treturn false;\r\n\t\t//\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tpublic canClose(): angular.IPromise {\r\n\r\n\t\t\tvar defer = this.$q.defer();\r\n\r\n\t\t\tif (!this.hasUnsavedChanges()) {\r\n\t\t\t\tdefer.resolve(true);\r\n\t\t\t} else {\r\n\t\t\t\tvar messageBox = this.messageBoxHelper.messageBox({\r\n\t\t\t\t\ttitle: 'Please Confirm',\r\n message: 'Are you sure you want to navigate away from this screen? Any changes made will not be saved.',\r\n\t\t\t\t\toutcomes: [DialogOutcome.ok, DialogOutcome.cancel],\r\n\t\t\t\t\tbackdrop: true,\r\n\t\t\t\t\tkeyboard: true\r\n\t\t\t\t});\r\n\r\n\t\t\t\tmessageBox.result.then((outcome: DialogOutcome) => {\r\n\t\t\t\t\tdefer.resolve(outcome === DialogOutcome.ok);\r\n\t\t\t\t},\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tdefer.resolve(false);\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn defer.promise;\r\n\t\t}\r\n\r\n\t\tprotected mainForm() {\r\n\t\t\treturn this.formHelper.mainForm();\r\n\t\t}\r\n\r\n\t\tprotected dirty() {\r\n\t\t\tvar form = this.mainForm();\r\n\t\t\treturn form && form.$dirty;\r\n\t\t}\r\n\r\n\t\tpublic canSave(): boolean {\r\n\t\t\treturn this.formHelper.mainForm().$dirty && !this.isReadonly();\r\n\t\t}\r\n\r\n\t\tpublic handleErrors(messageBox: angular.ui.bootstrap.IModalServiceInstance, title: string): void {\r\n\t\t\tif (this.userMessages.messages.errorMessages.length > 0) {\r\n\t\t\t\tvar msgs = this.userMessages.messages.errorMessages.join('');\r\n\t\t\t\tif (msgs.indexOf('validation-error-summary') > -1) {\r\n\t\t\t\t\tthis.$window.scrollTo(0, 0);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar messageBoxOptions = {} as MessageBoxOptions;\r\n\t\t\t\t\tmessageBoxOptions.title = title;\r\n\t\t\t\t\tmessageBoxOptions.message = `${this.userMessages.messages.errorMessages.join('')}`;\r\n\t\t\t\t\tmessageBoxOptions.backdrop = 'static';\r\n\t\t\t\t\tmessageBoxOptions.keyboard = false;\r\n\r\n\t\t\t\t\tvar ok = new DialogOutcome('OK', true);\r\n\t\t\t\t\tok.onClosed = () => { return false };\r\n\r\n\t\t\t\t\tmessageBoxOptions.outcomes = [ok];\r\n\t\t\t\t\tmessageBox = this.messageBoxHelper.messageBox(messageBoxOptions);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic getReturnPath(): string {\r\n\t\t\tvar inUrl = this.$location.absUrl();\r\n\t\t\tif (inUrl.indexOf('?returnUrl=') < 0) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tvar returnUrl = inUrl.substr(inUrl.indexOf('?returnUrl=') + 11);\r\n\t\t\treturn decodeURIComponent(returnUrl);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the session information for the view of the controller type provided.\r\n\t\t * The session information is used to store search and result data.\r\n\t\t * @param model = Provide a new instance of the model data to store in this session\r\n\t\t * @param instance = The instance number of this view. Most views have only one instance so this can be null or zero. Some views may be used in different modes - each mode will have different storage requirements and hence instance numbers to track these separate stores.\r\n\t\t */\r\n\t\tprotected getViewSessionStorage(model: T, instance: number = null) {\r\n\t\t\tvar defaults = {};\r\n\t\t\tdefaults[this.viewName(instance)] = model;\r\n\t\t\tthis.$sessionStorage.$default(defaults);\r\n\t\t\treturn this.$sessionStorage[this.viewName(instance)];\r\n\t\t}\r\n\r\n\t\tprotected getViewLocalStorage(model: T) {\r\n\t\t\tvar defaults = {};\r\n\t\t\tdefaults[this.viewName()] = model;\r\n\t\t\tthis.$localStorage.$default(defaults);\r\n\t\t\treturn this.$localStorage[this.viewName()];\r\n\t\t}\r\n\r\n\t\tprivate registerFormFooterAnchor(): void {\r\n\t\t\t$('main .form-footer')\r\n\t\t\t\t.on('inview',\r\n\t\t\t\t(event: Event, isInView: boolean) => {\r\n\t\t\t\t\tif (isInView) {\r\n\t\t\t\t\t\tthis.unanchorFormFooter();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.anchorFormFooter();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate anchorFormFooter(): void {\r\n\t\t\t$('.form-footer')\r\n\t\t\t\t.wrapInner('')\r\n\t\t\t\t.addClass('anchored');\r\n\t\t}\r\n\r\n\t\tprivate unanchorFormFooter(): void {\r\n\t\t\t$('.form-footer').removeClass('anchored');\r\n\t\t\t$('.form-footer-inner > .container > ').unwrap().unwrap();\r\n\t\t}\r\n\r\n public isExternalUser(): boolean {\r\n console.log('In External');\r\n var isExternal = false;\r\n //console.log('IsExternalUSer' + this.users.getCurrentUser().isInternalUser);\r\n //if (this.users.getCurrentUser().isInternalUser == undefined || !this.users.getCurrentUser().isInternalUser) {\r\n \r\n // isExternal = true;\r\n //}\r\n console.log('IsExternal Var: ' + isExternal);\r\n return isExternal;\r\n\t\t}\r\n\r\n public isInternalUser(): boolean {\t\t\r\n console.log('In Internal');\r\n var isInternal = false;\r\n //console.log('IsInternalUSer' + this.users.getCurrentUser().isInternalUser);\r\n //if (!angular.isUndefined(this.users.getCurrentUser().isInternalUser) && this.users.getCurrentUser().isInternalUser) {\r\n // isInternal = true;\r\n //}\r\n console.log('IsExternal Var: ' + isInternal);\r\n return isInternal;\r\n\t\t}\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n class AccountVerificationRequestedController extends Controllers.ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = ['$injector'];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'Account Verification Requested';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\t\t}\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\treturn this.setAuthenticationRequired(false);\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n .controller('app.common.controllers.accountVerificationRequestedController', AccountVerificationRequestedController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\tclass AccountVerifiedController extends Controllers.ScreenControllerBase {\r\n\r\n public static $inject = ['$injector'];\r\n private token: any;\r\n private userId: any;\r\n private source: any;\r\n private returnUrl: string;\r\n\r\n private activationStepsComplete: boolean = false;\r\n private activationStepsSuccessful: boolean = false;\r\n\t\tprivate activationCheckComplete: boolean = false;\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'Account Verification';\r\n this.warnOnUnsavedChanges = false;\r\n\t\t}\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\treturn this.setAuthenticationRequired(false);\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\r\n //Do something in here to call the Common Auth Service and actually fulfill the activation\r\n this.token = this.$stateParams['token'];\r\n this.userId = this.$stateParams['userId'];\r\n this.source = (this.$stateParams['source'] || '').toLowerCase();\r\n this.returnUrl = this.$stateParams['returnUrl'];\r\n\r\n return this.busyPromise = this.activateAccount()\r\n .then((result: any) => {\r\n if (result === this.globalSettings.invalidActivationResponse) {\r\n this.activationStepsComplete = true;\r\n return this.$q.reject();\r\n } else {\r\n\t\t\t\t\t\tthis.activationStepsSuccessful = this.activationStepsComplete = this.activationCheckComplete = true;\r\n return this.$q.resolve(true);\r\n }\r\n }, (result: any) => {\r\n\t\t\t\t\tthis.activationStepsComplete = this.activationCheckComplete = true;\r\n return this.$q.reject();\r\n });\r\n }\r\n\r\n private activateAccount(): angular.IPromise {\r\n\r\n var userToken = this.token;\r\n var userId = this.userId;\r\n var appSource = this.source;\r\n\r\n return this.api.post({\r\n url: this.globalSettings.authenticationEndpoints.connectActivateUser,\r\n authenticated: false,\r\n successMessage: this.globalSettings.successfulActivationResponse,\r\n data: {\r\n userId: userId,\r\n token: userToken,\r\n source: appSource\r\n }\r\n });\r\n\t\t}\r\n\r\n\t\tpublic signIn() {\r\n\t\t\tif (this.returnUrl) {\r\n\t\t\t\tthis.$state.go('ExternalSignIn', { returnUrl : this.returnUrl});\r\n\t\t\t} else {\r\n\t\t\t\tthis.$state.go('SignIn');\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.accountVerifiedController', AccountVerifiedController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\tclass ErrorController{\r\n\r\n public static $inject = ['$scope', 'model'];\r\n public $state: angular.ui.IStateService;\r\n public $stateParams: angular.ui.IStateParamsService;\r\n\r\n constructor( \r\n\t\t\tprivate $scope: angular.IScope,\r\n\t\t\tpublic model: {errorDetails: ErrorDetail[]}) {\r\n\t\t\t$scope.$on('modal.closing',\r\n\t\t\t(event: angular.IAngularEvent): void => {\r\n\t\t\t\tevent.preventDefault();\r\n });\r\n\t\t}\r\n\r\n\t\tpublic reload(): void {\r\n\t\t\tdocument.location.reload(true); //Force non-cached page reload\r\n }\r\n public resetPassword(): void {\r\n this.$state.go(\"RequestPasswordReset\");\r\n }\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.errorController', ErrorController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n class HeaderController {\r\n\r\n public signInMessage: string;\r\n public busyPromise: angular.IPromise;\r\n public projectId: string;\r\n\r\n public static $inject = [\r\n '$state',\r\n '$location',\r\n 'app.common.services.authenticationService',\r\n 'app.common.services.navigationHelperService',\r\n 'app.common.services.usersService',\r\n 'app.common.services.globalSettingsService'\r\n ];\r\n\r\n constructor(\r\n private $state: angular.ui.IStateService,\r\n private $location: angular.ILocationService,\r\n private authentication: Services.AuthenticationService,\r\n private navigationHelper: Services.NavigationHelperService,\r\n private users: Services.UsersService\r\n ) {\r\n this.signInMessage = '';\r\n this.projectId = this.$location.search()['projectId'];\r\n }\r\n\r\n\t\tpublic showHomeLink(): boolean {\r\n return !this.navigationHelper.currentScreenIsSignIn()\r\n && !this.navigationHelper.currentScreenIsAuditHistory()\r\n && !this.navigationHelper.currentScreenIsDataUpload()\r\n && !this.navigationHelper.currentScreenIsCalSummary();\r\n }\r\n\r\n\t\tpublic showCloseLink(): boolean {\r\n return this.navigationHelper.currentScreenIsAuditHistory()\r\n || this.navigationHelper.currentScreenIsDataUpload()\r\n || this.navigationHelper.currentScreenIsCalSummary();\r\n }\r\n\r\n public showSignIn(): boolean {\r\n\t\t\treturn !this.navigationHelper.currentScreenIsSignIn() && !this.useWindowsAuthentication();\r\n }\r\n\r\n public getCurrentUserFullName(): string {\r\n return this.users.getCurrentUser().username || '';\r\n //return '';\r\n }\r\n\r\n public getCurrentUsername(): string {\r\n return this.users.getCurrentUser().username;\r\n }\r\n\r\n public isFullyAuthenticated(): boolean {\r\n return this.authentication.isAuthenticated() && !!this.getCurrentUserFullName();\r\n }\r\n\r\n public useWindowsAuthentication(): boolean {\r\n return this.authentication.useWindowsAuthentication();\r\n }\r\n\r\n\t\tpublic canSignIn(): boolean {\r\n return !this.useWindowsAuthentication() && !this.isFullyAuthenticated();\r\n }\r\n\r\n public canSignOut(): boolean {\r\n return !this.useWindowsAuthentication() && this.isFullyAuthenticated();\r\n }\r\n\r\n public signOut() {\r\n this.authentication.signOut();\r\n }\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.headerController', HeaderController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n class NotForWindowsAuthenticationUsersController extends ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'You are using single sign-on';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n }\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.notForWindowsAuthenticationUsersController', NotForWindowsAuthenticationUsersController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n class NotFoundController extends ScreenControllerBase {\r\n\r\n public static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'Not found';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n }\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic back() {\r\n\t\t\tthis.$window.history.back();\r\n\t\t}\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.notFoundController', NotFoundController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n export class PasswordHintController extends Common.Controllers.ScreenControllerBase {\r\n\r\n public static $inject = [\r\n '$injector'\r\n ];\r\n\r\n public showme: boolean;\r\n public hideme: boolean;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.showme = false;\r\n this.hideme = true;\r\n this.warnOnUnsavedChanges = false;\r\n }\r\n\r\n public beforeInitialize(): angular.IPromise {\r\n return this.setAuthenticationRequired(false);\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.reject(true);\r\n }\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n .controller('app.common.controllers.passwordHintController', PasswordHintController);\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\tclass PasswordResetRequestedController extends Controllers.ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = ['$injector'];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'Password reset requested';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\t\t}\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\treturn this.setAuthenticationRequired(false);\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.passwordResetRequestedController', PasswordResetRequestedController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export class RegisterController extends Common.Controllers.ScreenControllerBase {\r\n\r\n // public registerUserViewModel: Hca.Ims.Model.IRegisterUserViewModel;\r\n // public limitedCompanyOrganisation: Hca.Ims.Model.OrganisationType;\r\n // public otherOrganisation: Hca.Ims.Model.OrganisationType;\r\n // public soleTraderOranisation: Hca.Ims.Model.OrganisationType;\r\n // public partnershipOrganisation: Hca.Ims.Model.OrganisationType;\r\n // public publicLimitedCompanyOrganisation: Hca.Ims.Model.OrganisationType;\r\n\r\n // public static $inject = ['$injector'];\r\n // public title: string;\r\n // public titleSecondary: string;\r\n // public module: string;\r\n // public today: Date;\r\n // public isDelegatedRegistration: boolean;\r\n\r\n\r\n\r\n // constructor($injector: angular.auto.IInjectorService) {\r\n // super($injector);\r\n // this.title = 'Account registration';\r\n // this.titleSecondary = 'Help to Buy: Equity Loan';\r\n // this.module = this.$stateParams['moduleName'];\r\n // this.isDelegatedRegistration = this.$stateParams['isDelegatedRegistration'];\r\n // this.today = new Date();\r\n // this.limitedCompanyOrganisation = Hca.Ims.Model.OrganisationType.LimitedCompany;\r\n // this.publicLimitedCompanyOrganisation = Hca.Ims.Model.OrganisationType.PublicLimitedCompany;\r\n // this.soleTraderOranisation = Hca.Ims.Model.OrganisationType.SoleTrader;\r\n // this.partnershipOrganisation = Hca.Ims.Model.OrganisationType.Partnership;\r\n // this.otherOrganisation = Hca.Ims.Model.OrganisationType.Other;\r\n // }\r\n\r\n // public beforeInitialize(): angular.IPromise {\r\n // return this.setAuthenticationRequired(false);\r\n // }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.reject(true);\r\n\r\n }\r\n\r\n // public save(): void {\r\n // this.userMessages.clear();\r\n // this.registerUserViewModel.registeringService = Hca.Ims.Model.ServiceType.HelpToBuy;\r\n // this.registerUserViewModel.activateAccountUrl = `${this.globalSettings.baseUrl}/SignIn`;\r\n\r\n // if (this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail\r\n // .hasAlternateContactDetail && this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail\r\n // .hasAlternateContactDetail.toString() === 'false') {\r\n // this.registerUserViewModel.firstName =\r\n // this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.primaryContactDetail.firstName;\r\n // this.registerUserViewModel.lastName =\r\n // this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.primaryContactDetail.lastName;\r\n // this.registerUserViewModel.email =\r\n // this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.primaryContactDetail.email;\r\n // } else {\r\n // this.registerUserViewModel.firstName = this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.alternateContactDetail.firstName;\r\n // this.registerUserViewModel.lastName = this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.alternateContactDetail.lastName;\r\n // this.registerUserViewModel.email = this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.alternateContactDetail.email;\r\n // }\r\n\r\n // this.registerUserViewModel.isDelegatedRegistration = this.isDelegatedRegistration;\r\n // this.registerUserViewModel.password = this.registerUserViewModel.registrationDetail\r\n // .developingOrganisationCompanyDetail.password;\r\n\r\n\r\n // //Check if the organisation already exists\r\n\t // if (!this.isLimitedCompany()) {\r\n\t\t\t\t//this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.companyHouseNumber = '';\r\n\t // }\r\n\r\n\t // this.api.get({\r\n\t\t\t\t// resourceName: 'CheckCompany',\r\n\t\t\t\t// params: {\r\n\t\t\t\t//\t companyName: this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.companyName,\r\n\t\t\t\t//\t companyNumber: this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.companyHouseNumber\r\n\t\t\t\t// }\r\n\t\t\t // })\r\n\t\t\t // .then((data: boolean): void => {\r\n\t\t\t\t//\t\tif (!data) {\r\n\t\t\t\t//\t\t\tif (this.registerUserViewModel.registrationDetail.hasParentCompany) {\r\n\t\t\t\t//\t\t\t\tif (this.registerUserViewModel.registrationDetail.parentCompany.companyHouseNumber == null) {\r\n\t\t\t\t//\t\t\t\t\tthis.registerUserViewModel.registrationDetail.parentCompany.companyHouseNumber = '';\r\n\t\t\t\t//\t\t\t\t}\r\n\r\n\t\t\t\t//\t\t this.api.get({\r\n\t\t\t\t//\t\t\t\t resourceName: 'CheckCompany',\r\n\t\t\t\t//\t\t\t\t params: {\r\n\t\t\t\t//\t\t\t\t\t companyNumber: this.registerUserViewModel.registrationDetail.parentCompany.companyHouseNumber,\r\n\t\t\t\t//\t\t\t\t\t companyName: this.registerUserViewModel.registrationDetail.parentCompany.companyName\r\n\t\t\t\t//\t\t\t\t }\r\n\t\t\t\t//\t\t\t })\r\n\t\t\t\t//\t\t\t .then((data1: boolean): void => {\r\n\t\t\t\t//\t\t\t\t if (data1) {\r\n\t\t\t\t//\t\t\t\t\t var messageBox = this.messageBoxHelper.messageBox({\r\n\t\t\t\t//\t\t\t\t\t\t title: 'Please Confirm',\r\n\t\t\t\t//\t\t\t\t\t\t message:\r\n\t\t\t\t//\t\t\t\t\t\t\t `We already hold your parent organisation on our systems. Please check as you can manage your Help to Buy account through them. If you still want to try to register please complete the page and click ok.`,\r\n\t\t\t\t//\t\t\t\t\t\t outcomes: [Common.DialogOutcome.ok, Common.DialogOutcome.no],\r\n\t\t\t\t//\t\t\t\t\t\t backdrop: true,\r\n\t\t\t\t//\t\t\t\t\t\t keyboard: true\r\n\t\t\t\t//\t\t\t\t\t });\r\n\t\t\t\t//\t\t\t\t\t messageBox.result.then((outcome: Common.DialogOutcome) => {\r\n\t\t\t\t//\t\t\t\t\t\t if (outcome === Common.DialogOutcome.ok) {\r\n\t\t\t\t//\t\t\t\t\t\t\t this.busyPromise = this.requestRegister();\r\n\t\t\t\t//\t\t\t\t\t\t }\r\n\t\t\t\t//\t\t\t\t\t });\r\n\t\t\t\t//\t\t\t\t } else {\r\n\t\t\t\t//\t\t\t\t\t this.busyPromise = this.requestRegister();\r\n\t\t\t\t//\t\t\t\t }\r\n\t\t\t\t//\t\t\t });\r\n\r\n\t\t\t\t//\t } else {\r\n\t\t\t\t//\t\t this.busyPromise = this.requestRegister();\r\n\t\t\t\t//\t }\r\n\t\t\t\t// } else {\r\n\t\t\t\t//\t this.userMessages\r\n\t\t\t\t//\t\t .addMessage('You are unable to register the same company.', UserMessageType.Error);\r\n\t\t\t\t// }\r\n\t\t\t // });\r\n\r\n // }\r\n\r\n // public shortDateFormat = 'dd/MM/yyyy';\r\n // public config = {\r\n // datepickerOptions: {\r\n // showWeeks: false,\r\n // startingDay: 1,\r\n // clearText: 'Clear',\r\n // closeOnDateSelection: true,\r\n // closeText: 'Done',\r\n // currentText: 'Today',\r\n // showButtonBar: true\r\n // },\r\n // datesaveOptions: {\r\n // timezone: 'UTC'\r\n // }\r\n // };\r\n\r\n // public isLimitedCompany() {\r\n // let result: boolean = true;\r\n // if (\r\n // this.registerUserViewModel == undefined || this.registerUserViewModel.registrationDetail == undefined || this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail == undefined) {\r\n // return false;\r\n // }\r\n\r\n // result = (\r\n // this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail\r\n // .organisationType ==\r\n // this.limitedCompanyOrganisation ||\r\n // this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.organisationType ==\r\n // this.publicLimitedCompanyOrganisation);\r\n // return result;\r\n // }\r\n\r\n // private requestRegister(): angular.IPromise {\r\n // var postConfig: Common.IApiRequestConfig = {\r\n // url: this.globalSettings.authenticationEndpoints.registerUser,\r\n // authenticated: true,\r\n // data: this.registerUserViewModel\r\n // };\r\n // return this.api.post(postConfig)\r\n // .then((r: any) => {\r\n // this.mainForm().$setPristine();\r\n // if (!r.userMessages.errorMessages.length) {\r\n // if (this.isDelegatedRegistration) {\r\n // var companyName = this.registerUserViewModel.registrationDetail.developingOrganisationCompanyDetail.companyName;\r\n // //TODO refactor this to return the providerCode via a result rather than a message\r\n // var providerCode = r.userMessages.successMessages[1];\r\n\r\n // var messageBox = this.messageBoxHelper.messageBox({\r\n // title: 'Registration Completed',\r\n // message: companyName + ` has been created under Developer Code ` + providerCode + `. A Help to Buy only Security Administrator for this developer must be created using the \"Create HTB only SA\" function`,\r\n // outcomes: [Common.DialogOutcome.close],\r\n // backdrop: true,\r\n // keyboard: true\r\n // });\r\n\r\n // messageBox.result.then((outcome: Common.DialogOutcome) => {\r\n // if (outcome === Common.DialogOutcome.close) {\r\n // //Go back to the dashboard\r\n // this.$state.go('Dashboard');\r\n // }\r\n // });\r\n // } else {\r\n // this.$state.go('RegistrationComplete', { email: this.registerUserViewModel.email });\r\n // }\r\n // }\r\n // },\r\n // (result: angular.IHttpPromiseCallbackArg) => {\r\n // if (result && result.data && result.data.error_description) {\r\n // this.userMessages.addMessage(result.data.error_description, UserMessageType.Error);\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.registerController', RegisterController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export class RegisterUserController extends Controllers.ScreenControllerBase {\r\n\r\n public static $inject = [\r\n '$injector'\r\n ];\r\n\r\n \r\n public module: string;\r\n public model: Connect.Models.DataModels.IRegisterUserViewModel;\r\n public saving: boolean;\r\n\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n\r\n\r\n this.title = 'Account Registration';\r\n this.module = this.$stateParams['moduleName'];\r\n this.saving = false;\r\n //this.setPageText();\r\n }\r\n\r\n public save(): void {\r\n this.userMessages.clear();\r\n this.saving = true;\r\n this.busyPromise = this.requestRegisterUser();\r\n }\r\n \r\n private requestRegisterUser(): angular.IPromise {\r\n this.model.registeringService = Connect.Models.DataModels.ServiceType.Unknown;\r\n this.userMessages.clear();\r\n this.model.activateAccountUrl = this.globalSettings.baseUrl + '/#'\r\n + this.$state.get('AccountVerified').url.toString()\r\n .replace(':userId', '')\r\n .replace(':source', '')\r\n .replace(':token', '')\r\n .replace(':returnUrl', '')\r\n .replace('//', '/')\r\n .replace('//', '/')\r\n\t\t\t\t\t\t\t.replace('?', '')\r\n\t\t\t\t\t\t\t.replace('//', '/');\r\n this.model.registrationDetail = null;\r\n\t this.model.returnUrl = this.$stateParams['returnUrl'];\r\n\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: this.globalSettings.authenticationEndpoints.registerExternalUser,\r\n authenticated: true,\r\n data: this.model\r\n };\r\n return this.api.post(postConfig)\r\n .then((r: any) => {\r\n this.mainForm().$setPristine();\r\n if (!r.userMessages.errorMessages.length) {\r\n this.$state.go('RegistrationComplete'); \r\n }\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n\r\n //this.userMessages.addMessage(result && result.data && result.data.error_description\r\n // ? result.data.error_description\r\n // : 'Something went wrong', UserMessageType.Error);\r\n });\r\n }\r\n\r\n public beforeInitialize(): angular.IPromise {\r\n return this.setAuthenticationRequired(false);\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.reject(true);\r\n }\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.registerUserController', RegisterUserController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export class RegistrationCompleteController extends Controllers.ScreenControllerBase {\r\n\r\n public static $inject = [\r\n '$injector'\r\n ];\r\n\r\n public email: string;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Registration Complete';\r\n }\r\n\r\n public beforeInitialize(): angular.IPromise {\r\n return this.setAuthenticationRequired(false);\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n if (this.$stateParams['email'] != null && this.$stateParams['email'].length > 0) {\r\n this.email = this.$stateParams['email'];\r\n }\r\n return this.$q.reject(true);\r\n }\r\n\r\n \r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.registrationCompleteController', RegistrationCompleteController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\t/**\r\n\t * Enumeration used to determine the way in which the PasswordReset screen is displayed and used\r\n\t */\r\n\tenum DisplayMode {\r\n\t\t//No password reset token, user not authenticated\r\n\t\tRequestPasswordReset,\r\n\t\t//Found password reset token\r\n\t\tResetPassword,\r\n\t\t//No password reset token, user authenticated\r\n ChangePassword,\r\n //New user created in WPF Security, allow user to set password for first time\r\n SetInitialPassword\r\n\t}\r\n\r\n\texport class ResetPasswordController extends Controllers.ScreenControllerBase {\r\n\r\n private token: any;\r\n private userId: any;\r\n private returnUrl: string;\r\n private resetPasswordTokenInvalid: boolean = false;\r\n\r\n public model: Connect.Models.DataModels.IPasswordReset;\r\n\t\tpublic displayMode = DisplayMode.RequestPasswordReset;\r\n\t\tpublic modeRequestPasswordReset = DisplayMode.RequestPasswordReset;\r\n\t\tpublic modeChangePassword = DisplayMode.ChangePassword;\r\n public modeResetPassword = DisplayMode.ResetPassword;\r\n public modeSetInitialPassword = DisplayMode.SetInitialPassword;\r\n\t\tpublic submitButtonLabel = 'Submit';\r\n\t\tpublic username = '';\r\n\t\tpublic currentPassword = '';\r\n\t\tpublic newPassword = '';\r\n public confirmNewPassword = '';\r\n\r\n\t\tpublic static $inject = ['$injector', 'app.common.services.errorHandlerService'];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService, private errorHandler: Services.ErrorHandlerService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.notForWindowsAuthenticationUsers();\r\n\t\t\tthis.title = 'Request a password reset';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\r\n\t\t}\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\tthis.displayMode = this.getDisplayMode();\r\n\t\t\treturn this.setAuthenticationRequired(this.displayMode === DisplayMode.ChangePassword);\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\r\n this.token = this.$stateParams['id'];\r\n this.userId = this.$stateParams['userId'];\r\n\t\t\tthis.returnUrl = this.$stateParams['returnUrl'];\r\n\t\t\tthis.displayMode = this.getDisplayMode();\r\n\r\n if (this.$stateParams['userId']) {\r\n this.username = this.$stateParams['userId'];\r\n this.mainForm().$setDirty();\r\n }\r\n\r\n\t\t\tswitch (this.displayMode) {\r\n\t\t\t\tcase DisplayMode.RequestPasswordReset:\r\n\t\t\t\t\tthis.title = 'Request a password reset';\r\n\t\t\t\t\tthis.submitButtonLabel = 'Request password reset';\r\n\t\t\t\t\tthis.authentication.deleteSignInDetails();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase DisplayMode.ResetPassword:\r\n\t\t\t\t\tthis.title = 'Choose a new password';\r\n\t\t\t\t\tthis.submitButtonLabel = 'Change password';\r\n\t\t\t\t\tthis.authentication.deleteSignInDetails();\r\n\t\t\t\t\tbreak;\r\n case DisplayMode.ChangePassword:\r\n this.title = 'Change your password';\r\n this.submitButtonLabel = 'Change password';\r\n return this.setAuthenticationRequired(true);\r\n case DisplayMode.SetInitialPassword:\r\n this.title = 'Create a new password';\r\n this.submitButtonLabel = 'Set password';\r\n break;\r\n\t\t\t}\r\n\r\n return this.verifyConnectToken();\r\n }\r\n\r\n\t public submit(): void {\r\n\r\n\t\t\tthis.userMessages.clear();\r\n\r\n\t\t\tswitch (this.displayMode) {\r\n\t\t\t\tcase DisplayMode.RequestPasswordReset:\r\n\t\t\t\t\tthis.busyPromise = this.requestPasswordReset();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase DisplayMode.ResetPassword:\r\n\t\t\t\t\tthis.busyPromise = this.resetPassword();\r\n\t\t\t\t\tbreak;\r\n case DisplayMode.ChangePassword:\r\n this.busyPromise = this.changePassword();\r\n break;\r\n case DisplayMode.SetInitialPassword:\r\n this.busyPromise = this.resetPassword();\r\n break;\r\n\t\t\t}\r\n\t\t}\r\n\r\n private requestPasswordReset(): angular.IPromise {\r\n\t\t return this.api.post({\r\n\t\t url: this.globalSettings.authenticationEndpoints.requestPasswordReset,\r\n\t\t deferUserMessageDisplay: true,\r\n\t\t suppressSuccessMessage: true,\r\n\t\t\t\tauthenticated: false,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tuserId: this.username,\r\n\t\t\t\t\tsource: 'Web',\r\n resetUrl: this.globalSettings.baseUrl + '/#'\r\n\t\t\t\t\t+ this.$state.get('ResetPassword').url.toString()\r\n\t\t\t\t\t\t.replace(':id', '')\r\n .replace(':source', '')\r\n .replace(':userId', '')\r\n .replace(':returnUrl', '')\r\n .replace('//', '/')\r\n .replace('//', '/')\r\n .replace('//', '/'), //had to put this in twice as the global replace doesnt work\r\n resetBaseUrl: this.globalSettings.baseUrl + this.$state.get('RequestPasswordReset').url.toString(),\r\n\t\t\t\t\treturnUrl: this.getReturnPath()\r\n\t\t\t\t}\r\n }).then(() => {\t\t \r\n\t\t\t\tthis.$state.go('PasswordResetRequested');\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n //Error handled elsewhere ... this just catches the handled error before exception\r\n }).catch(() => {\r\n this.userMessages.clear();\r\n this.userMessages.addMessage(\"There has been a problem. Please try again or contact the IT Service Desk on 01908 353 604.\", UserMessageType.Information);\r\n this.$state.go('RequestPasswordReset');\r\n\t\t });\r\n\t\t}\r\n\r\n private resetPassword(): angular.IPromise {\r\n\r\n var source = (this.$stateParams['source'] || '').toLowerCase();\r\n var isLegacyIms = (source === 'unify' || source === 'wpf');\r\n var userToken = this.token;\r\n var userId = this.userId;\r\n\r\n\t return this.api.post({\r\n\t\t url: this.globalSettings.authenticationEndpoints.resetConnectPassword,\r\n\t\t deferUserMessageDisplay: true,\r\n\t\t successMessage: `Your password has been ${this.displayMode === DisplayMode.ResetPassword\r\n\t\t\t ? 'reset'\r\n\t\t\t : 'set'} successfully`,\r\n\t\t suppressSuccessMessage: isLegacyIms,\r\n\t\t authenticated: false,\r\n\t\t data: {\r\n\t\t\t UserId: userId,\r\n\t\t\t token: userToken,\r\n\t\t\t newPassword: this.newPassword,\r\n\t\t\t returnUrl: this.returnUrl\r\n }\r\n }).then((username: string) => {\r\n if (isLegacyIms) {\r\n return this.$state.go(this.displayMode === DisplayMode.ResetPassword\r\n ? 'LegacyImsPasswordResetCompleted'\r\n : 'LegacyImsUserInitialized');\r\n } else {\r\n return this.authentication.signIn(username, this.newPassword).then(() => {\r\n\t if (this.returnUrl) {\r\n\t\t\t\t\t\t\tthis.$window.location.href = this.returnUrl;\r\n\t\t return this.$q.resolve();\r\n\t } else {\r\n\t\t //return this.$state.go('Dashboard');\r\n window.location.href = this.globalSettings.dashApplicationLink;\r\n\t\t return this.$q.resolve();\r\n\t }\r\n });\r\n }\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n //Error handled elsewhere ... this just catches the handled error before exception\r\n });\r\n }\r\n\r\n\t\tprivate changePassword(): angular.IPromise {\r\n\t\t\treturn this.authentication.passwordIsCorrectForCurrentUser(this.currentPassword).then((passwordIsCorrect: boolean) => {\r\n\t\t\t\tif (passwordIsCorrect) {\r\n\t\t\t\t\treturn this.api.post({\r\n\t\t\t\t\t\turl: this.globalSettings.authenticationEndpoints.changePassword,\r\n\t\t\t\t\t\tdeferUserMessageDisplay: true,\r\n\t\t\t\t\t\tsuccessMessage: 'Your password has been reset successfully',\r\n\t\t\t\t\t\tauthenticated: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\tnewPassword: this.newPassword,\r\n\t\t\t\t\t\t\tcurrentPassword: this.currentPassword\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\t//this.$state.go('Dashboard');\r\n window.location.href = this.globalSettings.dashApplicationLink;\r\n\t\t\t\t\t}, (result: angular.IHttpPromiseCallbackArg) => {\r\n //Error handled elsewhere ... this just catches the handled error before exception\r\n });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.userMessages\r\n\t\t\t\t\t\t.addMessage('Your current password is incorrect or your account could not be validated', UserMessageType.Error);\r\n\t\t\t\t\treturn this.$q.reject();\r\n\t\t\t\t}\r\n\t\t\t});\r\n }\r\n\r\n private verifyConnectToken(): angular.IPromise {\r\n if (this.displayMode !== DisplayMode.ResetPassword) {\r\n return this.$q.resolve();\r\n } else {\r\n var userToken = this.token;\r\n var userId = this.userId;\r\n return this.api.post({\r\n url: this.globalSettings.authenticationEndpoints.verifyConnectResetPasswordToken,\r\n authenticated: false,\r\n suppressSuccessMessage: true,\r\n data: {\r\n UserId: userId,\r\n token: userToken\r\n }\r\n }).then((result: any) => {\r\n if (result === this.globalSettings.successfulTokenVerificationResponse) {\r\n return this.$q.resolve();\r\n } else {\r\n this.resetPasswordTokenInvalid = true;\r\n return this.$q.reject();\r\n }\r\n }, (result: any) => {\r\n this.resetPasswordTokenInvalid = true;\r\n return this.$q.reject();\r\n });\r\n }\r\n }\r\n\r\n\t\tprivate getDisplayMode(): DisplayMode {\r\n\t\t\tif (this.$state.current.name === 'RequestPasswordReset') {\r\n\t\t\t\treturn DisplayMode.RequestPasswordReset;\r\n\t\t\t} else if (this.$state.current.name === 'ResetPassword') {\r\n\t\t\t\treturn DisplayMode.ResetPassword;\r\n } else if (this.$state.current.name === 'ChangePassword') {\r\n return DisplayMode.ChangePassword;\r\n } else if (this.$state.current.name === 'SetInitialPassword') {\r\n return DisplayMode.SetInitialPassword;\r\n\t\t\t} else {\r\n\t\t\t\treturn DisplayMode.RequestPasswordReset;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.resetPasswordController', ResetPasswordController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export enum ActivationStatus {\r\n None = 0,\r\n Fail = 1,\r\n Warning = 2,\r\n Success = 3\r\n }\r\n\r\n export class SignInController extends ScreenControllerBase {\r\n private msgActivationSuccess = 'You have activated your account. Please sign in.';\r\n private msgActivationFail = 'Unfortunately account activation has failed.';\r\n private msgActivationWarning = 'The account is not active. Please click on the link in your registration email or use the ‘Verify my account’ link to receive another email.';\r\n\t\tprivate msgInvalidSignInCredentials = 'Sorry, we could not sign you in with the credentials provided.';\r\n private titleActivationFail = 'Your activation failed';\r\n private titleActivationRequired = 'Activate your account';\r\n\r\n public activationStatus: ActivationStatus;\r\n public activationStateNone = ActivationStatus.None;\r\n public activationStateFail = ActivationStatus.Fail;\r\n public activationStateWarning = ActivationStatus.Warning;\r\n public activationStateSuccess = ActivationStatus.Success; \r\n\r\n public dashLink: string;\r\n public username: string;\r\n public password: string;\r\n public returnUrl: string;\r\n\t\tpublic returnState: angular.ui.IState;\r\n public returnStateParams: angular.ui.IState;\r\n\r\n public static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n console.log('token value start of const...');\r\n console.log(this.$stateParams['token']);\r\n\t //this.notForWindowsAuthenticationUsers();\r\n\r\n\t\t\tthis.title = 'Sign In';\r\n this.warnOnUnsavedChanges = false;\r\n\r\n this.dashLink = this.globalSettings.dashApplicationLink;\r\n this.username = this.users.getCurrentUser().username;\r\n\r\n\t\t\tthis.returnUrl = this.getReturnPath();\r\n\r\n\t\t\tthis.returnState = this.$sessionStorage.returnState;\r\n\t\t\tthis.returnStateParams = _.cloneDeep(this.$sessionStorage.returnStateParams || {});\r\n\t\t\tdelete this.$sessionStorage.returnState;\r\n delete this.$sessionStorage.returnStateParams;\r\n\r\n console.log('token value after constructor...');\r\n console.log(this.$stateParams['token']);\r\n }\r\n\r\n public beforeInitialize(): angular.IPromise {\r\n if (this.authentication.useWindowsAuthentication() && !this.isWindowsSignOut()) {\r\n return this.busyPromise = this.setAuthenticationRequired(true)\r\n .then(() => {\r\n this.returnUrl = this.getReturnPath();\r\n this.changeState();\r\n return this.$q.resolve(true);\r\n });\r\n }\r\n else {\r\n return this.setAuthenticationRequired(false);\r\n }\r\n\t\t}\r\n\r\n public initialize(): angular.IPromise {\r\n\r\n console.log('token value init...');\r\n console.log(this.$stateParams['token']);\r\n this.activationStatus = ActivationStatus.None;\r\n var returnUrl = this.returnUrl;\r\n const token: string = this.$stateParams['token'];\r\n if (token && token.trim().length >= 32) {\r\n return this.busyPromise = this.registration.verify(this.$stateParams['token'])\r\n .then((username) => {\r\n this.activationStatus = ActivationStatus.Success;\r\n this.userMessages.clear();\r\n this.userMessages.addMessage(this.msgActivationSuccess, UserMessageType.Success);\r\n this.username = username;\r\n\r\n if (this.authentication.useWindowsAuthentication()) {\r\n this.changeState();\r\n }\r\n },\r\n (result: any) => {\r\n this.title = this.titleActivationFail;\r\n this.activationStatus = ActivationStatus.Fail;\r\n this.userMessages.clear();\r\n this.userMessages.addMessage(this.msgActivationFail, UserMessageType.Error);\r\n });\r\n } else {\r\n if (this.$stateParams['userId']) {\r\n this.username = this.$stateParams['userId'];\r\n this.mainForm().$setDirty();\r\n } else {\r\n this.username = this.users.getCurrentUser().username; \r\n }\r\n }\t\r\n return this.$q.resolve(true);\r\n }\r\n\r\n public signIn(): void {\r\n this.userMessages.clear();\r\n console.log('Before:');\r\n console.dir(this.$localStorage);\r\n var returnUrl = this.returnUrl;\r\n\t\t\tthis.busyPromise = this.authentication.signIn(this.username, this.password)\r\n .then((result: ng.IPromise) => {\r\n\r\n\t\t\t\t\t\tthis.changeState();\r\n\r\n\t\t\t\t}, (failureReason: any) => {\r\n\t\t\t\t\t//if signin failed because user account is not yet activated provide user message\r\n if (failureReason === 'The account is not active. Please click on the link in your registration email or use the ‘Verify my account’ link to receive another email.') {\r\n this.title = this.titleActivationRequired;\r\n\r\n this.activationStatus = ActivationStatus.Warning;\r\n this.busyPromise = this.registration.getUnActivatedId(this.username, this.password)\r\n .then((ids: any) => {\r\n this.userMessages.clear();\r\n this.userMessages.addMessage(this.msgActivationWarning, UserMessageType.Warning);\r\n });\r\n }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\telse if (failureReason != null && failureReason.data.error === 'invalid_grant') {\r\n\t\t\t\t\t\tif (failureReason.data.error_description.indexOf('For security purposes please reset your password') > -1 || failureReason.data.error_description.indexOf('Your account has been temporarily locked') > -1) {\r\n\t\t this.userMessages.addMessage(failureReason.data.error_description, UserMessageType.Error);\r\n\t } else {\r\n\t\t this.userMessages.clear();\r\n\t\t this.userMessages.addMessage(failureReason.data.error_description, UserMessageType.Error);\r\n\t }\r\n }\r\n });\r\n }\r\n\r\n public useWindowsAuthentication(): boolean {\r\n return this.authentication.useWindowsAuthentication();\r\n }\r\n\r\n private trimWindowsSignoutParams(returnUrl:string) : string {\r\n\t\t\tif (returnUrl && returnUrl.indexOf(\"?isWindowsSignOut\") > -1) {\r\n\t\t\t\tvar indexOfWindowsSignOut = returnUrl.indexOf(\"?isWindowsSignOut\");\r\n var url = returnUrl.substring(0, indexOfWindowsSignOut);\r\n\r\n if (returnUrl.indexOf(\"#\") > -1) {\r\n returnUrl = url + returnUrl.substring(returnUrl.indexOf(\"#\"));\r\n } else {\r\n returnUrl = url;\r\n }\r\n }\r\n return returnUrl;\r\n }\r\n\r\n private changeState(): string {\r\n var returnUrl = this.returnUrl;\r\n\r\n\t returnUrl = this.trimWindowsSignoutParams(returnUrl);\r\n\r\n if (returnUrl) {\r\n\r\n\t\t\t\t// angular fix, for bizarre encoding\r\n\t\t\t\tif (returnUrl.indexOf(\"~2F\")) {\r\n\t\t\t\t\treturnUrl = returnUrl.replace(/~2F/g, '/');\r\n\t\t\t\t}\r\n\r\n return window.location.href = returnUrl;\r\n }\r\n else {\r\n\r\n if (this.returnState) {\r\n this.$state.go(this.returnState, this.returnStateParams);\r\n } else {\r\n //this.$state.go('Dashboard'); Removed as the default beaviour should be to route to HIF until the new dashboard is built\r\n return window.location.href = this.dashLink;\r\n }\r\n }\r\n }\r\n\t\r\n\t public signInWithWindowsCredentials() {\r\n this.authentication.deleteSignInDetails();\r\n\t\t\tvar returnUrl = this.$stateParams[\"returnUrl\"];\r\n\t\t if (returnUrl) {\r\n\t\t\t\twindow.location.href = \"/?returnUrl=\" + returnUrl;\r\n\t\t } else {\r\n\t\t\t window.location.href = \"/\";\r\n\t\t }\r\n\t }\r\n\r\n private isWindowsSignOut(): boolean {\r\n var returnUrl = this.$stateParams[\"returnUrl\"];\r\n if (returnUrl) {\r\n\t\t\t\t// I am checking both stateParams and windows.location.href as sometimes stateParams lost arguments\r\n\t\t\t\treturn this.$stateParams[\"returnUrl\"].indexOf(\"isWindowsSignOut=true\") > -1 || window.location.href.indexOf(\"isWindowsSignOut=true\") > -1;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.signInController', SignInController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n export class TermsAndConditionsController extends Common.Controllers.ScreenControllerBase {\r\n\r\n public static $inject = [\r\n '$injector'\r\n ];\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Terms And Conditions';\r\n }\r\n\r\n public beforeInitialize(): angular.IPromise {\r\n return this.setAuthenticationRequired(false);\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.reject(true);\r\n }\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n .controller('app.common.controllers.termsAndConditions', TermsAndConditionsController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\texport class VerifyAccountController extends Controllers.ScreenControllerBase {\r\n\r\n public model: Connect.Models.DataModels.IActivateAccount;\r\n public submitButtonLabel = 'Send email';\r\n public username = '';\r\n\r\n\t\tpublic static $inject = ['$injector', 'app.common.services.errorHandlerService'];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService, private errorHandler: Services.ErrorHandlerService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.notForWindowsAuthenticationUsers();\r\n\t\t\tthis.title = 'Verify Account';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\r\n\t\t}\r\n\r\n\t\tpublic beforeInitialize(): angular.IPromise {\r\n\t\t\treturn this.setAuthenticationRequired(false);\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\r\n if (this.$stateParams['userId']) {\r\n this.username = this.$stateParams['userId'];\r\n this.mainForm().$setDirty();\r\n }\r\n\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n public submit(): void {\r\n\r\n this.userMessages.clear();\r\n this.busyPromise = this.activateAccount();\r\n }\r\n\r\n\t\tprivate activateAccount(): angular.IPromise {\r\n\t\t\tvar activationUrl = this.globalSettings.baseUrl +\r\n\t\t\t\t'/#' +\r\n\t\t\t\tthis.$state.get('AccountVerified').url.toString()\r\n\t\t\t\t.replace(':userId', '')\r\n\t\t\t\t.replace(':source', '')\r\n\t\t\t\t.replace(':token', '')\r\n\t\t\t\t.replace(':returnUrl', '')\r\n\t\t\t\t.replace('//', '/')\r\n\t\t\t\t.replace('//', '/')\r\n\t\t\t\t.replace('?', '')\r\n\t\t\t\t.replace('//', '/');\r\n\t\t return this.api.post({\r\n\t\t url: this.globalSettings.authenticationEndpoints.connectConfirmEmail,\r\n\t\t deferUserMessageDisplay: true,\r\n\t\t suppressSuccessMessage: true,\r\n\t\t\t\tauthenticated: false,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\temailAddress: this.username,\r\n\t\t\t\t\tsource: 'Web',\r\n activationUrl: activationUrl,\r\n resetBaseUrl: this.globalSettings.baseUrl + this.$state.get('AccountVerified').url.toString()\r\n\t\t\t\t}\r\n }).then(() => {\t\t \r\n this.$state.go('AccountVerificationRequested');\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n //Error handled elsewhere ... this just catches the handled error before exception\r\n }).catch(() => {\r\n //this.userMessages.clear();\r\n this.userMessages.addMessage(\"There has been a problem. Please try again or contact the IT Service Desk on 01908 353 604.\", UserMessageType.Information);\r\n //this.$state.go('VerifyAccount');\r\n });\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.controllers')\r\n\t\t.controller('app.common.controllers.verifyAccountController', VerifyAccountController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n class WindowsAuthenticationAccessDeniedController extends ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\t\t\tthis.title = 'Access denied';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n }\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.windowsAuthenticationAccessDeniedController', WindowsAuthenticationAccessDeniedController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export class YourDetailsController extends Common.Controllers.ScreenControllerBase {\r\n\r\n public static $inject = ['$injector'];\r\n public title: string;\r\n public titleSecondary: string;\r\n public module: any;\r\n\t\tpublic model: App.Common.User;\r\n\t\tpublic messageBox: angular.ui.bootstrap.IModalServiceInstance;\r\n public returnUrl: string;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Your Details';\r\n this.module = this.$stateParams['moduleName'];\r\n\t\t\t// To handle angular path properly\r\n\t\t\tthis.returnUrl = this.getReturnPath();\r\n this.busyPromise = this.$q.resolve();\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n\t\t\treturn this.busyPromise = this.users.populateCurrentUserLocalStorage(true)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.model = this.users.getCurrentUser();\r\n\t\t\t\t});\r\n }\r\n\r\n public noAccess(): boolean {\r\n return super.noAccess() ;\r\n }\r\n\r\n\t\tpublic updateDetails(): angular.IPromise {\r\n\t\t\tthis.model.firstName = this.model.firstName ? this.model.firstName : \"\";\r\n\t\t\tthis.model.surname = this.model.surname ? this.model.surname : \"\";\r\n\t\t\tthis.model.emailAddress = this.model.emailAddress ? this.model.emailAddress : \"\";\r\n\t\t\tthis.model.telephoneNumber = this.model.telephoneNumber ? this.model.telephoneNumber : \"\";\r\n\t\t\t//this.model.organisationName = this.model.organisationName ? this.model.organisationName : \"\";\r\n\t\t\treturn this.busyPromise = this.users.updateUserDetails(this.model)\r\n .then((data: User) => {\r\n\t\t\t\t\treturn this.authentication.refreshAuthToken(true)\r\n\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\tvar messageBoxOptions = {} as MessageBoxOptions;\r\n\t\t\t\t\t\t\tmessageBoxOptions.title = `Success`;\r\n\t\t\t\t\t\t\tmessageBoxOptions.message = `Successfully updated details`;\r\n\t\t\t\t\t\t\tmessageBoxOptions.backdrop = 'static';\r\n\t\t\t\t\t\t\tmessageBoxOptions.keyboard = false;\r\n\r\n\t\t\t\t\t\t\tvar ok = new DialogOutcome('OK', true);\r\n\t\t\t\t\t\t\tok.onClosed = () => {\r\n\t\t\t\t\t\t\t\tthis.mainForm().$setPristine();\r\n\t\t\t\t\t\t\t\treturn window.location.href = this.returnUrl;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tmessageBoxOptions.outcomes = [ok];\r\n\t\t\t\t\t\t\tthis.messageBox = this.messageBoxHelper.messageBox(messageBoxOptions);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((data: any) => {\r\n\t\t\t\t\t\t\tthis.handleErrors(this.messageBox, `Error updating details`);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t\t.catch((data: any) => {\r\n\t\t\t\tthis.handleErrors(this.messageBox, `Error updating details`);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic cancel() {\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\t\t\tif (this.returnUrl == null) {\r\n\t\t\t\tdocument.location.reload(true); //Force non-cached page reload\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twindow.location.href = this.returnUrl;\r\n\t\t\t}\r\n\t\t}\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.yourDetailsController', YourDetailsController);\r\n}","/// \r\n///// \r\n\r\ndeclare var buildVersionNumber: any;\r\n\r\nmodule Connect.Routes {\r\n\r\n var app = angular.module(\"Connect\");\r\n\r\n app.config(function ($locationProvider, $stateProvider, $urlRouterProvider) {\r\n\r\n //$locationProvider.html5Mode(true).hashPrefix('');\r\n $locationProvider.hashPrefix('');\r\n\r\n $urlRouterProvider.otherwise('/SignIn/');\r\n\r\n\t $stateProvider\r\n\t\t .state('SignIn',\r\n\t\t\t {\r\n\t\t\t\t url: '/SignIn/:token',\r\n\t\t\t\t templateUrl: 'Templates/SignInView.html'\r\n\t\t\t })\r\n\t\t .state('ExternalSignIn',\r\n\t\t\t {\r\n\t\t\t\t url: '/SignIn?returnUrl',\r\n\t\t\t\t templateUrl: 'Templates/SignInView.html'\r\n })\r\n\t\t .state('RequestPasswordReset',\r\n\t\t\t {\r\n\t\t\t\t //url: '/RequestPasswordReset?userId',\r\n\t\t\t\t url: '/RequestPasswordReset?:returnUrl',\r\n\t\t\t\t templateUrl: 'Templates/ResetPasswordView.html'\r\n\t\t\t })\r\n\t\t .state('SetInitialPassword',\r\n\t\t\t {\r\n\t\t\t\t url: '/SetInitialPassword/:id/:source',\r\n\t\t\t\t templateUrl: 'Templates/ResetPasswordView.html'\r\n\t\t\t })\r\n\t\t .state('ResetPassword',\r\n\t\t\t {\r\n\t\t\t\t url: '/ResetPassword/:id/:source/:userId/:returnUrl',\r\n\t\t\t\t templateUrl: 'Templates/ResetPasswordView.html'\r\n\t\t\t })\r\n\t\t .state('ChangePassword',\r\n\t\t\t {\r\n\t\t\t\t url: '/ChangePassword',\r\n\t\t\t\t templateUrl: 'Templates/ResetPasswordView.html'\r\n\t\t\t })\r\n\t\t .state('PasswordResetRequested',\r\n\t\t\t {\r\n\t\t\t\t url: '/PasswordResetRequested',\r\n\t\t\t\t templateUrl: 'Templates/PasswordResetRequestedView.html'\r\n\t\t\t })\r\n\t\t .state('NotFound',\r\n\t\t\t {\r\n\t\t\t\t templateUrl: 'Templates/NotFoundView.html'\r\n\t\t\t })\r\n\t\t .state('YourDetails',\r\n\t\t\t {\r\n\t\t\t\t url: '/YourDetails',\r\n\t\t\t\t templateUrl: 'Templates/YourDetailsView.html'\r\n\t\t\t })\r\n\t\t .state('NotForWindowsAuthenticationUsers',\r\n\t\t\t {\r\n\t\t\t\t templateUrl: 'Templates/NotForWindowsAuthenticationUsersView.html'\r\n\t\t\t })\r\n\t\t .state('WindowsAuthenticationAccessDenied',\r\n\t\t\t {\r\n\t\t\t\t templateUrl: 'Templates/WindowsAuthenticationAccessDeniedView.html'\r\n\t\t\t })\r\n\t\t .state('RegisterUser',\r\n\t\t\t {\r\n\t\t\t\t url: '/Register/:moduleName',\r\n\t\t\t\t templateUrl: 'Templates/RegisterUser.html'\r\n\t\t\t })\r\n\t\t .state('RegisterUserDefault',\r\n\t\t\t {\r\n\t\t\t\t //url: '/Register',\r\n\t\t\t\t url: '/Register?:returnUrl',\r\n\t\t\t\t templateUrl: 'Templates/RegisterUser.html'\r\n\t\t\t })\r\n\t\t .state('RegistrationComplete',\r\n\t\t\t {\r\n\t\t\t\t url: '/RegistrationComplete/:email',\r\n\t\t\t\t templateUrl: 'Templates/RegistrationComplete.html'\r\n\t\t\t })\r\n\t\t .state('AccountVerified',\r\n\t\t\t {\r\n\t\t\t\t url: '/AccountVerified/:token/:source/:userId/?:returnUrl',\r\n\t\t\t\t templateUrl: 'Templates/AccountVerifiedView.html'\r\n\t\t\t })\r\n\t\t .state('AccountVerificationRequested',\r\n\t\t\t {\r\n\t\t\t\t url: '/AccountVerificationRequested',\r\n\t\t\t\t templateUrl: 'Templates/AccountVerificationRequestedView.html'\r\n\t\t\t })\r\n\t\t .state('VerifyAccount',\r\n\t\t\t {\r\n\t\t\t\t url: '/VerifyAccount/:userId',\r\n\t\t\t\t templateUrl: 'Templates/VerifyAccountView.html'\r\n\t\t\t })\r\n\t\t .state('TermsAndConditions',\r\n\t\t\t {\r\n\t\t\t\t url: '/TermsAndConditions',\r\n\t\t\t\t templateUrl: 'Templates/TermsAndConditionsView.html'\r\n\t\t\t })\r\n\t\t .state('Support',\r\n\t\t\t {\r\n\t\t\t\t url: '/Support',\r\n\t\t\t\t templateUrl: 'Templates/SupportView.html'\r\n\t\t\t });\r\n });\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class ElementHelperService {\r\n\r\n\t\tprivate attributeNamePrefixRegex = /^((?:x|data)[\\:\\-_])/i;\r\n\r\n\t\tpublic normalizeAttributeName(name: string) {\r\n\t\t\treturn _.camelCase(name.replace(this.attributeNamePrefixRegex, ''));\r\n\t\t}\r\n\r\n\t\tpublic getAttributes(el: angular.IAugmentedJQuery): ISimpleAttributes {\r\n\r\n\t\t\tvar result: ISimpleAttributes = {\r\n\t\t\t\t$normalize: this.normalizeAttributeName,\r\n\t\t\t\t$attr: {}\r\n\t\t\t};\r\n\r\n\t\t\tif (!el || !el.length) {\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\r\n\t\t\t_.forEach(el.get(0).attributes,\r\n\t\t\t(attribute) => {\r\n\t\t\t\tresult[result.$normalize(attribute.name)] = attribute.value;\r\n\t\t\t\tresult.$attr[result.$normalize(attribute.name)] = attribute.name;\r\n\t\t\t});\r\n\r\n\t\t\treturn result;\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.elementHelperService', ElementHelperService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class InactivityMonitorService {\r\n\r\n\t\tpublic events = {\r\n\t\t\tinactivityMonitorStart: 'inactivityMonitorStart',\r\n\t\t\tinactivityMonitorSignOut: 'inactivityMonitorSignOut'\r\n\t\t}\r\n\r\n\t\tprivate authentication: Services.AuthenticationService;\r\n\t\tprivate showConsoleLog = false;\r\n\t\tprivate second = 1000;\r\n\t\tprivate minute = this.second * 60;\r\n\t\tprivate hour = this.minute * 60;\r\n\t\tprivate day = this.hour * 24;\r\n\t\tpublic messageBoxWindow: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$localStorage',\r\n\t\t\t'$injector',\r\n\t\t\t'$timeout',\r\n\t\t\t'$interval',\r\n\t\t\t'$state',\r\n\t\t\t'$rootScope',\r\n\t\t\t'$cookies',\r\n\t\t\t'app.common.services.windowBroadcastService',\r\n\t\t\t'app.common.services.logService',\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t'app.common.services.messageBoxHelperService',\r\n\t\t\t'app.common.services.navigationHelperService',\r\n\t\t\t'app.common.services.userMessagesService',\r\n\t\t\t'app.common.services.dateHelperService'\r\n\t\t];\r\n\r\n\t\tconstructor(\r\n\t\t\tprivate $localStorage: Common.ILocalStorage,\r\n\t\t\tprivate $injector: angular.auto.IInjectorService,\r\n\t\t\tprivate $timeout: angular.ITimeoutService,\r\n\t\t\tprivate $interval: angular.IIntervalService,\r\n\t\t\tprivate $state: angular.ui.IStateService,\r\n\t\t\tprivate $rootScope: angular.IRootScopeService,\r\n\t\t\tprivate $cookies: angular.cookies.ICookiesService,\r\n\t\t\tprivate windowBroadcast: Services.WindowBroadcastService,\r\n\t\t\tprivate logger: Services.LogService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService,\r\n\t\t\tprivate messageBoxHelper: Services.MessageBoxHelperService,\r\n\t\t\tprivate navigationHelper: Services.NavigationHelperService,\r\n\t\t\tprivate userMessages: Services.UserMessagesService,\r\n\t\t\tprivate dateHelper: Services.DateHelperService\r\n\t\t) {\r\n\t\t\t\r\n\t\t\t//Respond to events fired from other windows\r\n\t\t\t$rootScope.$on(this.events.inactivityMonitorStart, () => { this.start(true, false); });\r\n\t\t\t$rootScope.$on(this.events.inactivityMonitorSignOut, () => { this.signOut(true, false); });\r\n\t\t}\r\n\r\n\t\tpublic inactivityTimeout: angular.IPromise;\r\n\r\n\t\tpublic inactivityInterval: angular.IPromise;\r\n\r\n\t\tpublic inactivityWarningIsDisplayed = false;\r\n\r\n\t\tpublic messageBox: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic start = (hideInactivityWarning = true, broadcast = true) => {\r\n\t\t\tthis.logger.debugVerbose('Start the inactivity monitor');\r\n\r\n\t\t\tif (this.globalSettings.useWindowsAuthentication\r\n\t\t\t\t|| (this.inactivityWarningIsDisplayed && !hideInactivityWarning)\r\n\t\t\t\t|| !this.getAuthenticationService().isAuthenticated()) { return; }\r\n\r\n\t\t\tthis.hideInactivityWarning();\r\n\r\n\t\t\tthis.setSessionTimeout();\r\n\r\n\t\t\tthis.cancel();\r\n\r\n\t\t\tthis.logger.debugVerbose('Set inactivity timeout');\r\n\t\t\tthis.inactivityTimeout = this.$timeout(this.showInactivityWarning,\r\n\t\t\t\t(this.globalSettings.sessionExpirySeconds - this.globalSettings.sessionExpiryWarningSeconds) * 1000);\r\n\r\n\t\t\tif (broadcast) {\r\n\t\t\t\tthis.windowBroadcast.send(this.events.inactivityMonitorStart);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic cancel() {\r\n\r\n\t\t\tthis.logger.debugVerbose('Cancel inactivity warning');\r\n\r\n\t\t\tthis.hideInactivityWarning();\r\n\r\n\t\t\tif (this.inactivityTimeout) {\r\n\t\t\t\tthis.$timeout.cancel(this.inactivityTimeout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic showInactivityWarning = () => {\r\n\t\t\tthis.logger.debugVerbose('Show inactivity warning');\r\n\t\t\tif (this.globalSettings.useWindowsAuthentication\r\n\t\t\t\t|| !this.getAuthenticationService().isAuthenticated()\r\n\t\t\t\t|| this.inactivityWarningIsDisplayed) { return; }\r\n\r\n\t\t\t//Check if another tab or window has extended the session since this timeout was set.\r\n\t\t\t//If so, extend the timeout in this window to match.\r\n\t\t\tvar remainingSeconds = this.secondsUntilSessionTimeout();\r\n\t\t\tif (remainingSeconds > this.globalSettings.sessionExpiryWarningSeconds) {\r\n\t\t\t\tthis.logger.debug('Postpone inactivity warning because another window extended the session');\r\n\t\t\t\tthis.cancel();\r\n\t\t\t\tthis.inactivityTimeout = this.$timeout(this.showInactivityWarning,\r\n\t\t\t\t\t(remainingSeconds - this.globalSettings.sessionExpiryWarningSeconds) * 1000);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar messageBoxOptions = {} as MessageBoxOptions;\r\n\t\t\tmessageBoxOptions.title = 'You have been inactive for a while';\r\n\t\t\tmessageBoxOptions.backdrop = 'static';\r\n\t\t\tmessageBoxOptions.keyboard = false;\r\n\r\n\t\t\tvar yes = new DialogOutcome('Yes', true);\r\n\t\t\tyes.onClosed = this.start;\r\n\r\n\t\t\tvar no = new DialogOutcome('No', false, true);\r\n\t\t\tno.onClosed = () => { this.signOut(true); };\r\n\r\n\t\t\tmessageBoxOptions.outcomes = [yes, no];\r\n\t\t\tthis.messageBox = this.messageBoxHelper.messageBox(messageBoxOptions);\r\n\t\t\tthis.inactivityWarningIsDisplayed = true;\r\n\r\n\t\t\tthis.inactivityInterval = this.$interval(_.partial(this.updateInactivityWarning, messageBoxOptions), 100);\r\n\t\t}\r\n\r\n\t\tpublic hideInactivityWarning() {\r\n\r\n\t\t\tthis.logger.debugVerbose('Hide inactivity warning');\r\n\r\n\t\t\tif (this.inactivityInterval) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tthis.$interval.cancel(this.inactivityInterval);\r\n\t\t\t\t} catch (ex) {}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.inactivityWarningIsDisplayed && this.messageBox) {\r\n\t\t\t\tthis.inactivityWarningIsDisplayed = false;\r\n\t\t\t\tthis.messageBox.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic updateInactivityWarning = (messageBoxOptions: MessageBoxOptions) => {\r\n\r\n\t\t\tthis.logger.debugVerbose('Updating inactivity warning');\r\n\r\n\t\t\tif (this.globalSettings.useWindowsAuthentication || !this.inactivityWarningIsDisplayed) {\r\n\t\t\t\tthis.hideInactivityWarning();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar remainingSeconds = this.secondsUntilSessionTimeout();\r\n\r\n\t\t\tif (remainingSeconds <= 0) {\r\n\t\t\t\tthis.logger.debugVerbose('Adding inactivity user message');\r\n\t\t\t\tthis.userMessages.addMessage('You have been signed out automatically due to inactivity',\r\n\t\t\t\t\tUserMessageType.Warning,\r\n\t\t\t\t\ttrue);\r\n\t\t\t\tthis.signOut(true);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar remainingTimespan = this.dateHelper.formatShortTimespan(remainingSeconds);\r\n\r\n\t\t\tif (messageBoxOptions) {\r\n\t\t\t\tmessageBoxOptions.message = `Would you like to stay signed in? If you don't respond, you will be signed out in ${remainingTimespan}.`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic checkExpiredSession() {\r\n\t\t\tthis.logger.debugVerbose('Checking for expired session data');\r\n\t\t\t//If the session expired whilst the browser was closed, force sign out now\r\n\t\t\tif (!this.getAuthenticationService().useWindowsAuthentication()\r\n\t\t\t\t&& this.getAuthenticationService().isAuthenticated()\r\n\t\t\t\t&& this.secondsUntilSessionTimeout() <= 0) {\r\n\t\t\t\tthis.logger.debugVerbose('Automatic sign out due to expired sessionTimeout in local storage');\r\n\t\t\t\t\tthis.getAuthenticationService().deleteSignInDetails();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic setSessionTimeout() {\r\n\t\t\tthis.logger.debugVerbose('Set the session timeout');\r\n\t\t\tthis.$localStorage.sessionTimeout = new Date(_.now() + (this.globalSettings.sessionExpirySeconds * 1000));\r\n\t\t}\r\n\r\n\t\tpublic getSessionTimeout() {\r\n\t\t\tvar date = this.$localStorage.sessionTimeout;\r\n\t\t\t//if (!_.isDate(date)) {\r\n\t\t\t//\ttry {\r\n // //date = new Date(date.toString());\r\n // date = new Date(date);\r\n\t\t\t//\t} catch (ex) { }\r\n\t\t\t//}\r\n\t\t\treturn _.isDate(date) ? date : null;\r\n\t\t}\r\n\r\n\t\tpublic secondsUntilSessionTimeout() {\r\n\t\t\tvar sessionTimeout = this.getSessionTimeout();\r\n\t\t\tif (!sessionTimeout) { return 0; }\r\n\t\t\tvar difference = this.dateHelper.differenceSeconds(new Date(), this.getSessionTimeout());\r\n\t\t\tthis.logger.debugVerbose(`Seconds until session timeout: ${difference}`);\r\n\t\t\treturn difference;\r\n\t\t}\r\n\r\n\t\tprivate signOut = (returnToDashboard?: boolean, broadcast = true) => {\r\n\r\n\t\t\tthis.logger.debugVerbose('Signing out from inactivity monitor service');\r\n\r\n\t\t\tthis.hideInactivityWarning();\r\n\r\n\t\t\tthis.getAuthenticationService().signOut(returnToDashboard, broadcast);\r\n\r\n\t\t\tif (broadcast) {\r\n\t\t\t\tthis.windowBroadcast.send(this.events.inactivityMonitorSignOut);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tprivate getAuthenticationService() {\r\n\t\t\tif (!this.authentication) {\r\n\t\t\t\tthis.authentication = this.$injector.get('app.common.services.authenticationService');\r\n\t\t\t}\r\n\t\t\treturn this.authentication;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.inactivityMonitorService', InactivityMonitorService);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport abstract class GroupValidatorBase implements angular.IDirective, Directives.IGroupValidator {\r\n\r\n\t\tpublic static $inject = ['app.common.services.elementHelperService'];\r\n\r\n\t\tconstructor(private elementHelperService: Common.Services.ElementHelperService) {}\r\n\r\n\t\tpublic require = 'ng-model';\r\n\r\n\t\tpublic restrict = 'A';\r\n\r\n\t\tpublic name: string;\r\n\r\n\t\tpublic nameCamelCase = () => {return _.camelCase(this.name);};\r\n\t\tpublic selector = 'input';\r\n\r\n\t\tpublic link = (scope: IFormScope,\r\n\t\t\tel: angular.IAugmentedJQuery,\r\n\t\t\tattributes: angular.IAttributes,\r\n\t\t\tcontroller: angular.INgModelController): any => {\r\n\r\n\t\t\tvar parameter = '';\r\n\t\t\tif (el && el.attr) {\r\n\t\t\t\tparameter = el.attr(this.name) || '';\r\n\t\t\t}\r\n\r\n\t\t\tvar args = new Directives.GroupValidateArgs();\r\n\t\t\targs.el = el;\r\n\t\t\targs.selector = this.selector;\r\n\t\t\targs.scope = scope;\r\n\t\t\targs.attributes = attributes;\r\n\t\t\targs.form = scope.mainForm;\r\n\t\t\targs.controller = scope.vm;\r\n\t\t\targs.parameter = parameter;\r\n\t\t\targs.group = this.getGroupElements(el, scope);\r\n\r\n\t\t\tel.data('linkedAttributes', attributes);\r\n\r\n\t\t\tvar watchExpressions = this.getWatchExpressions(args);\r\n\r\n\t\t\tif (watchExpressions.length) {\r\n\t\t\t\t_(watchExpressions)\r\n\t\t\t\t\t.forEach((expression) => {\r\n\t\t\t\t\t\tscope.$watch(expression,\r\n\t\t\t\t\t\t(newVal, oldVal, scope) => {\r\n\r\n\t\t\t\t\t\t\tif (!this.canValidate(args)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar isValidArgs = new GroupValidateArgs();\r\n\t\t\t\t\t\t\tisValidArgs.el = args.el;\r\n\t\t\t\t\t\t\tisValidArgs.selector = this.selector;\r\n\t\t\t\t\t\t\tisValidArgs.scope = args.scope;\r\n\t\t\t\t\t\t\tisValidArgs.attributes = args.attributes;\r\n\t\t\t\t\t\t\tisValidArgs.form = args.form;\r\n\t\t\t\t\t\t\tisValidArgs.controller = args.controller;\r\n\t\t\t\t\t\t\tisValidArgs.parameter = args.parameter;\r\n\t\t\t\t\t\t\tisValidArgs.group = this.getGroupElements(el, scope);\r\n\r\n\t\t\t\t\t\t\tcontroller.$setDirty();\r\n\t\t\t\t\t\t\tcontroller.$setValidity(this.nameCamelCase(), this.isValid(isValidArgs));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcontroller.$validators[this.nameCamelCase()] = () => {\r\n\r\n\t\t\t\t\tvar isValidArgs = new GroupValidateArgs();\r\n\t\t\t\t\tisValidArgs.el = args.el;\r\n\t\t\t\t\tisValidArgs.selector = this.selector;\r\n\t\t\t\t\tisValidArgs.scope = args.scope;\r\n\t\t\t\t\tisValidArgs.attributes = args.attributes;\r\n\t\t\t\t\tisValidArgs.form = args.form;\r\n\t\t\t\t\tisValidArgs.controller = args.controller;\r\n\t\t\t\t\tisValidArgs.parameter = args.parameter;\r\n\t\t\t\t\tisValidArgs.group = this.getGroupElements(el, scope);\r\n\r\n\t\t\t\t\tcontroller.$setDirty();\r\n\t\t\t\t\treturn this.isValid(isValidArgs);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tpublic resolveMessageForElement = (el: angular.IAugmentedJQuery, errorType: string) => {\r\n\r\n\t\t\t/* NOTE: The message resolver uses a difference instance of the validator than the one attached to the element.\r\n\t\t\tIt is probably possible to make it use the same instance, but for now, make no assumptions within this method\r\n\t\t\tthat you can access any state data created by the link() method (hence \"linkedAttributes\" is attached to the\r\n\t\t\telement itself as data so that it can be accessed here) */\r\n\r\n\t\t\tconst scope = el.scope() as IFormScope;\r\n\t\t\tlet parameter = '';\r\n\t\t\tif (el && el.attr) {\r\n\t\t\t\tparameter = el.attr(_.kebabCase(errorType)) || '';\r\n\t\t\t}\r\n\t\t\tconst args = new Directives.GroupValidateArgs();\r\n\t\t\targs.el = el;\r\n\t\t\targs.selector = this.selector;\r\n\t\t\targs.scope = scope;\r\n\t\t\targs.form = scope ? scope.mainForm : undefined;\r\n\t\t\targs.controller = scope ? scope.vm : undefined;\r\n\t\t\targs.parameter = parameter;\r\n\t\t\targs.attributes = el.data('linkedAttributes');\r\n\t\t\targs.group = this.getGroupElements(el, scope);\r\n\r\n\t\t\treturn this.resolveMessage(args);\r\n\t\t};\r\n\r\n\t\tprivate getGroupElements(el: angular.IAugmentedJQuery, scope: angular.IScope) {\r\n\t\t\treturn angular.element(el.find(this.selector))\r\n\t\t\t\t.map((index, x) => {\r\n\t\t\t\t\tvar groupEl = new Directives.GroupValidateElement();\r\n\t\t\t\t\tgroupEl.el = angular.element(x);\r\n\t\t\t\t\tgroupEl.scope = scope;\r\n\t\t\t\t\tgroupEl.attributes = this.elementHelperService.getAttributes(angular.element(x));\r\n\t\t\t\t\treturn groupEl;\r\n\t\t\t\t})\r\n\t\t\t\t.get();\r\n\t\t}\r\n\r\n\t\t// ReSharper disable once UnusedParameter\r\n\t\tpublic canValidate = (args: Directives.GroupValidateArgs) => {\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\tpublic isValid: (args: Directives.GroupValidateArgs) => boolean;\r\n\r\n\t\tpublic resolveMessage: (args: Directives.GroupValidateArgs) => string;\r\n\r\n\t\tpublic getWatchExpressions = (args: Directives.GroupValidateArgs) => {\r\n\r\n\t\t\treturn _.flatten([\r\n\t\t\t\t\targs.attributes[this.nameCamelCase()],\r\n\t\t\t\t\targs.group.map((x) => {\r\n\t\t\t\t\t\treturn x.attributes['ngModel'];\r\n\t\t\t\t\t})\r\n\t\t\t\t])\r\n\t\t\t\t.filter((x) => {return x;});\r\n\t\t};\r\n\t}\r\n\r\n}"],"sourceRoot":"Content/"}