{"version":3,"sources":["Scripts/Javascript/jQueryPlugins/InView.js","Source/Scripts/Common/LodashMixins.ts","Source/Scripts/Common/Services/App.Common.Services.module.ts","Source/Scripts/Common/Directives/App.Common.Directives.module.ts","Source/Scripts/Common/Controllers/App.Common.Controllers.module.ts","Source/Scripts/Common/Filters/App.Common.Filters.module.ts","Source/Scripts/Common/App.Common.module.ts","Source/Scripts/HiLO/Directives/App.HiLO.Directives.module.ts","Source/Scripts/HiLO/Controllers/App.HiLO.Controllers.module.ts","Source/Scripts/HiLO/Services/App.HiLO.Services.module.ts","Source/Scripts/Templates.ts","Source/Scripts/HiLO/App.HiLO.module.ts","Source/Scripts/app.module.ts","Source/Scripts/App.config.ts","Source/Scripts/Common/OAuthToken.ts","Source/Scripts/Common/Services/ValidationElementModifierService.ts","Source/Scripts/Common/Directives/Validators/ValidateArgs.ts","Source/Scripts/Common/Directives/Validators/ValidatorBase.ts","Source/Scripts/Common/Directives/Validators/GroupValidateElement.ts","Source/Scripts/Common/Directives/Validators/GroupValidateArgs.ts","Source/Scripts/Common/Directives/Validators/IGroupValidator.ts","Source/Scripts/Common/UserMessageType.ts","Source/Scripts/Common/Services/UserMessagesService.ts","Source/Scripts/Common/Services/GuidService.ts","Source/Scripts/Common/Services/GlobalSettingsService.ts","Source/Scripts/Common/Services/FormHelperService.ts","Source/Scripts/Common/Services/ModelStateValidationService.ts","Source/Scripts/Common/Services/ValidationErrorMessageResolverService.ts","Source/Scripts/Common/DialogOutcome.ts","Source/Scripts/Common/BootstrapSize.ts","Source/Scripts/Common/ModalDialogConfig.ts","Source/Scripts/Common/MessageBoxConfig.ts","Source/Scripts/Common/IApiRequestConfig.ts","Source/Scripts/Common/Services/LogService.ts","Source/Scripts/Common/ScreenMode.ts","Source/Scripts/Common/IHttpErrorHandler.ts","Source/Scripts/Common/ErrorDetail.ts","Source/Scripts/Common/ErrorDetails.ts","Source/Scripts/Common/WindowBroadcastMessage.ts","Source/Scripts/Common/Services/WindowBroadcastService.ts","Source/Scripts/Common/HiLOUser.ts","Source/Scripts/Common/Services/UsersService.ts","Source/Scripts/Common/Services/AuthenticationService.ts","Source/Scripts/Common/Services/ErrorHandlerService.ts","Source/Scripts/Common/Services/ApiService.ts","Source/Scripts/Common/Controllers/ControllerBase.ts","Source/Scripts/Common/Controllers/ModalDialogControllerBase.ts","Source/Scripts/Common/Controllers/MessageBoxController.ts","Source/Scripts/Common/Services/NavigationHelperService.ts","Source/Scripts/App.run.ts","Source/Scripts/Common/App.Common.Models.module.ts","Source/Scripts/Common/RoutesBase.ts","Source/Scripts/Common/App.Common.routes.ts","Source/Scripts/Common/DocumentUploadConfig.ts","Source/Scripts/Common/ModelEditorConfig.ts","Source/Scripts/Common/PicklistConfig.ts","Source/Scripts/HiLO/App.HiLO.routes.ts","Source/Scripts/Common/Services/AddressFinderService.ts","Source/Scripts/Common/Controllers/AddressFinderController.ts","Source/Scripts/Common/Controllers/DocumentUploadController.ts","Source/Scripts/Common/Controllers/ErrorController.ts","Source/Scripts/Common/Controllers/LeftnavControllerBase.ts","Source/Scripts/Common/Controllers/ModelEditorControllerBase.ts","Source/Scripts/Common/Controllers/ScreenControllerBase.ts","Source/Scripts/Common/Controllers/NoScreenAccessController.ts","Source/Scripts/Common/Controllers/NotForWindowsAuthenticationUsersController.ts","Source/Scripts/Common/Controllers/NotFoundController.ts","Source/Scripts/Common/Controllers/PasswordResetRequestedController.ts","Source/Scripts/Common/Controllers/PicklistControllerBase.ts","Source/Scripts/Common/Controllers/ResetPasswordController.ts","Source/Scripts/Common/Controllers/SectionScreenControllerBase.ts","Source/Scripts/Common/Controllers/SignInController.ts","Source/Scripts/Common/Services/EnumHelperService.ts","Source/Scripts/Common/Controllers/UserInterfaceTestsController.ts","Source/Scripts/Common/Controllers/UserMessagesController.ts","Source/Scripts/Common/Controllers/UserProfile.ts","Source/Scripts/Common/Controllers/WindowsAuthenticationAccessDeniedController.ts","Source/Scripts/Common/Directives/AddressFinderDirective.ts","Source/Scripts/Common/Directives/Validators/MustInclude.ts","Source/Scripts/Common/Directives/Validators/DateValidatorBase.ts","Source/Scripts/Common/Directives/Validators/MustBeBetweenDates.ts","Source/Scripts/Common/Directives/Validators/MustBeEarlierThan.ts","Source/Scripts/Common/Directives/Validators/MustBeEqualOrEarlierThan.ts","Source/Scripts/Common/Directives/Validators/MustBeEqualOrLaterThan.ts","Source/Scripts/Common/Directives/Validators/MustBeLaterThan.ts","Source/Scripts/Common/Directives/Validators/MustBeSameAs.ts","Source/Scripts/Common/Directives/Validators/OverrideEmail.ts","Source/Scripts/Common/Directives/Validators/StrongPassword.ts","Source/Scripts/Common/Directives/App.Common.Directives.run.ts","Source/Scripts/Common/Directives/AutoSave.ts","Source/Scripts/Common/Directives/Capitalise.ts","Source/Scripts/Common/Directives/OrsumTable.Controller.ts","Source/Scripts/Common/Directives/OrsumTable.Directive.ts","Source/Scripts/Common/Directives/PageHeading.ts","Source/Scripts/Common/Directives/UserMessagesDirective.ts","Source/Scripts/Common/Filters/BytesFilter.ts","Source/Scripts/Common/Filters/FinancialYearEndFilter.ts","Source/Scripts/Common/Filters/FinancialYearFilter.ts","Source/Scripts/Common/Filters/FinancialYearStartFilter.ts","Source/Scripts/Common/Filters/HcaDateFilter.ts","Source/Scripts/Common/Filters/HcaDateTimeFilter.ts","Source/Scripts/Common/Filters/HtmlWhitespaceFilter.ts","Source/Scripts/Common/Filters/MultilineAddressFilter.ts","Source/Scripts/Common/Filters/SinglelineAddressFilter.ts","Source/Scripts/Common/Filters/YesNoFilter.ts","Source/Scripts/Common/Services/DateHelperService.ts","Source/Scripts/Common/Services/ElementHelperService.ts","Source/Scripts/Common/Services/EnumDataService.ts","Source/Scripts/Common/Services/ModalService.ts","Source/Scripts/Common/Services/ValidationPasswordStrengthService.ts","Source/Scripts/HiLO/Controllers/HilOControllerBase.ts","Source/Scripts/HiLO/Controllers/ApplyWorksController.ts","Source/Scripts/HiLO/Controllers/BodyController.ts","Source/Scripts/HiLO/Controllers/HeadController.ts","Source/Scripts/HiLO/Controllers/HeaderController.ts","Source/Scripts/HiLO/Controllers/HomeController.ts","Source/Scripts/HiLO/Controllers/PredecessorOrganisationsController.ts","Source/Scripts/HiLO/Controllers/ReleaseChargeController.ts","Source/Scripts/HiLO/Controllers/SellLeaseController.ts","Source/Scripts/HiLO/Controllers/SubmissionCompleteController.ts","Source/Scripts/HiLO/Controllers/SupportController.ts","Source/Scripts/HiLO/Controllers/SupportingDocumentUploadController.ts","Source/Scripts/HiLO/Controllers/TypeOfDocumentController.ts","Source/Scripts/HiLO/Controllers/UploadTesterController.ts","Source/Scripts/HiLO/Directives/TypeOfDocument.ts","Source/Scripts/HiLO/Services/QuestionHelperService.ts","Source/Scripts/HiLO/Services/ReferenceDataService.ts","Source/Scripts/HiLO/Services/ReferenceNumberService.ts","Source/Scripts/Common/Directives/Validators/GroupValidatorBase.ts","Source/Scripts/Common/Directives/Validators/MustBeNumber.ts","Source/Scripts/Common/Directives/Validators/MustEqual.ts","Source/Scripts/Common/Directives/Validators/Postcode.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC9JA,2DAA2D;AAC3D,oDAAoD;AACpD,yCAAyC;AACzC,2CAA2C;AAE3C,CAAC,CAAC;IACD,YAAY,CAAC;IAEb,CAAC,CAAC,KAAK,CAAC;QACP,gBAAgB,EAAE,UAAC,KAAa,EAAE,aAA8B;YAA9B,6BAA8B,GAA9B,qBAA8B;YAC/D,OAAA,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;iBACrD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACrC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QAFvC,CAEuC;KACxC,CAAC,CAAC;AAEJ,CAA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","file":"App.js","sourcesContent":["/**\r\n * Adapted from http://github.com/protonet/jquery.inview/\r\n */\r\n(function (factory) {\r\n\tif (typeof define == 'function' && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine(['jquery'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// Node, CommonJS\r\n\t\tmodule.exports = factory(require('jquery'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($) {\r\n\r\n\tvar inviewObjects = [], viewportSize, viewportOffset,\r\n\t\td = document, w = window, documentElement = d.documentElement, timer;\r\n\r\n\t$.event.special.inview = {\r\n\t\tadd: function (data) {\r\n\t\t\tinviewObjects.push({ data: data, $element: $(this), element: this });\r\n\t\t\t// Use setInterval in order to also make sure this captures elements within\r\n\t\t\t// \"overflow:scroll\" elements or elements that appeared in the dom tree due to\r\n\t\t\t// dom manipulation and reflow\r\n\t\t\t// old: $(window).scroll(checkInView);\r\n\t\t\t//\r\n\t\t\t// By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays\r\n\t\t\t// intervals while the user scrolls. Therefore the inview event might fire a bit late there\r\n\t\t\t//\r\n\t\t\t// Don't waste cycles with an interval until we get at least one element that\r\n\t\t\t// has bound to the inview event.\r\n\t\t\tif (!timer && inviewObjects.length) {\r\n\t\t\t\ttimer = setInterval(checkInView, 250);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tremove: function (data) {\r\n\t\t\tfor (var i = 0; i < inviewObjects.length; i++) {\r\n\t\t\t\tvar inviewObject = inviewObjects[i];\r\n\t\t\t\tif (inviewObject.element === this && inviewObject.data.guid === data.guid) {\r\n\t\t\t\t\tinviewObjects.splice(i, 1);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Clear interval when we no longer have any elements listening\r\n\t\t\tif (!inviewObjects.length) {\r\n\t\t\t\tclearInterval(timer);\r\n\t\t\t\ttimer = null;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getViewportSize() {\r\n\t\tvar mode, domObject, size = { height: w.innerHeight, width: w.innerWidth };\r\n\r\n\t\t// if this is correct then return it. iPad has compat Mode, so will\r\n\t\t// go into check clientHeight/clientWidth (which has the wrong value).\r\n\t\tif (!size.height) {\r\n\t\t\tmode = d.compatMode;\r\n\t\t\tif (mode || !$.support.boxModel) { // IE, Gecko\r\n\t\t\t\tdomObject = mode === 'CSS1Compat' ?\r\n\t\t\t\t\tdocumentElement : // Standards\r\n\t\t\t\t d.body; // Quirks\r\n\t\t\t\tsize = {\r\n\t\t\t\t\theight: domObject.clientHeight,\r\n\t\t\t\t\twidth: domObject.clientWidth\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn size;\r\n\t}\r\n\r\n\tfunction getViewportOffset() {\r\n\t\treturn {\r\n\t\t\ttop: w.pageYOffset || documentElement.scrollTop || d.body.scrollTop,\r\n\t\t\tleft: w.pageXOffset || documentElement.scrollLeft || d.body.scrollLeft\r\n\t\t};\r\n\t}\r\n\r\n\tfunction checkInView() {\r\n\t\tif (!inviewObjects.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar i = 0, $elements = $.map(inviewObjects, function (inviewObject) {\r\n\t\t\tvar selector = inviewObject.data.selector,\r\n\t\t\t\t$element = inviewObject.$element;\r\n\t\t\treturn selector ? $element.find(selector) : $element;\r\n\t\t});\r\n\r\n\t\tviewportSize = viewportSize || getViewportSize();\r\n\t\tviewportOffset = viewportOffset || getViewportOffset();\r\n\r\n\t\tfor (; i < inviewObjects.length; i++) {\r\n\t\t\t// Ignore elements that are not in the DOM tree\r\n\t\t\tif (!$.contains(documentElement, $elements[i][0])) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tvar $element = $($elements[i]),\r\n\t\t\t\telementSize = { height: $element[0].offsetHeight, width: $element[0].offsetWidth },\r\n\t\t\t\telementOffset = $element.offset(),\r\n\t\t\t\tinView = $element.data('inview');\r\n\r\n\t\t\t// Don't ask me why because I haven't figured out yet:\r\n\t\t\t// viewportOffset and viewportSize are sometimes suddenly null in Firefox 5.\r\n\t\t\t// Even though it sounds weird:\r\n\t\t\t// It seems that the execution of this function is interferred by the onresize/onscroll event\r\n\t\t\t// where viewportOffset and viewportSize are unset\r\n\t\t\tif (!viewportOffset || !viewportSize) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (elementOffset.top + elementSize.height > viewportOffset.top &&\r\n\t\t\t\telementOffset.top < viewportOffset.top + viewportSize.height &&\r\n\t\t\t\telementOffset.left + elementSize.width > viewportOffset.left &&\r\n\t\t\t\telementOffset.left < viewportOffset.left + viewportSize.width) {\r\n\t\t\t\tif (typeof inView === 'undefined' || !inView) {\r\n\t\t\t\t\t$element.data('inview', true).trigger('inview', [true]);\r\n\t\t\t\t}\r\n\t\t\t} else if (typeof inView === 'undefined' || inView) {\r\n\t\t\t\t$element.data('inview', false).trigger('inview', [false]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t$(w).bind(\"scroll resize scrollstop\", function () {\r\n\t\tviewportSize = viewportOffset = null;\r\n\t});\r\n\r\n\t// IE < 9 scrolls to focused elements without firing the \"scroll\" event\r\n\tif (!documentElement.addEventListener && documentElement.attachEvent) {\r\n\t\tdocumentElement.attachEvent(\"onfocusin\", function () {\r\n\t\t\tviewportOffset = null;\r\n\t\t});\r\n\t}\r\n}));\r\n\r\njQuery.fn.isInView = function (container, offsetHeight) {\r\n if (container) {\r\n var paddingOffset = 50; // includes some contingency\r\n offsetHeight = offsetHeight || 0;\r\n var elementTop = $(this).position().top + offsetHeight + paddingOffset;\r\n var elementBottom = elementTop + $(this).outerHeight();\r\n var containerTop = container.scrollTop();\r\n var containerBottom = containerTop + container.height();\r\n\t\treturn elementBottom > containerTop && elementTop < containerBottom;\r\n\t} else {\r\n\t\tvar elementTop = $(this).offset().top;\r\n\t\tvar elementBottom = elementTop + $(this).outerHeight();\r\n\t\tvar viewportTop = $(window).scrollTop();\r\n\t\tvar viewportBottom = viewportTop + $(window).height();\r\n\t\treturn elementBottom > viewportTop && elementTop < viewportBottom;\r\n\t}\r\n};","/// \r\n/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\t_.mixin({\r\n\t\t'htmlWhitespace': (value: string, includeSpaces: boolean = false) =>\r\n\t\t\t(includeSpaces ? value.replace(/ /g, ' ') : value)\r\n\t\t\t\t.replace(/\\t/g, _.repeat(' ', 4))\r\n\t\t\t\t.replace(/\\r\\n|\\n\\r|\\r|\\n/g, '
')\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.services', ['ngStorage']);\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.controllers', []);\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\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.hilo.directives', []);\r\n\r\n})());","/// \r\n/// \r\n\r\n((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.hilo.controllers', [\r\n\t\t\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.hilo.services', ['ngStorage']);\r\n\r\n})());","angular.module('app.templates', []).run(['$templateCache', function($templateCache: angular.ITemplateCacheService) {$templateCache.put('Templates/Common/AddressFinderView.html','
Please enter a valid UK postcode.
This field is required.
We cannot find any addresses for that postcode. Please try another postcode.
Enter the address manually

Address

');\n$templateCache.put('Templates/Common/BusyOverlay.html','
{{$message}}
');\n$templateCache.put('Templates/Common/ChangePasswordView.html','
This should be between 8 and 30 characters in length and contain at least three of the following:
  • An UPPERCASE letter
  • A lowercase letter
  • A number
  • A symbol (but not the " character)
');\n$templateCache.put('Templates/Common/DocumentUploadView.html','

{{vm.config.title}}

Only PDF documents are allowed. The maximum file size is {{vm.globalSettings.maxFileUploadSize | bytes:0}}.
Click here to select or drop a PDF to upload
Uploading {{vm.selectedFile.name}} ({{vm.selectedFile.size | bytes:1}})
{{vm.uploadProgress}}% uploaded
Processing uploaded file on server…
{{vm.selectedFile.name}} ({{vm.selectedFile.size | bytes:1}})
Uploaded successfully. Please enter associated details below.
{{vm.config.model.filename}} ({{vm.config.model.size | bytes:1}})
Uploaded by {{vm.config.model.uploadedBy.fullName}} on {{vm.config.model.uploadedDate | hcaDate}}
');\n$templateCache.put('Templates/Common/ErrorView.html','

{{vm.model.title}}

{{vm.model.userMessage}}

Please reload the page. If the problem persists, contact the Service Desk.


Technical Details

{{detail.label}}
{{detail.value}}
');\n$templateCache.put('Templates/Common/MessageBoxView.html','

{{vm.config.title}}

');\n$templateCache.put('Templates/Common/ModelEditorView.html','

');\n$templateCache.put('Templates/Common/NoScreenAccessView.html','

You don\\'t have permission to view this screen. If you require access, please request the necessary permission from your administrator.

');\n$templateCache.put('Templates/Common/NotForWindowsAuthenticationUsersView.html','

This feature is not available because you have been authenticated using single sign-on as {{vm.authentication.currentActiveDirectoryUsername()}}. If you want to sign in as a different user, use this URL instead. reconfigure your project to use Windows authentication mode.

');\n$templateCache.put('Templates/Common/NotFoundView.html','

The page or resource you requested could not be located

Please check the URL and try again.

');\n$templateCache.put('Templates/Common/PasswordResetRequestedView.html','

If the email address you provided was valid, you will receive an email containing further instructions. If you do not receive the email, please check your junk folder.

');\n$templateCache.put('Templates/Common/PicklistView.html','

{{vm.config.title}}

');\n$templateCache.put('Templates/Common/RequestPasswordResetView.html','

If the email address you provided was valid, you will receive an email containing further instructions. If you do not receive the email, please check your junk folder.

');\n$templateCache.put('Templates/Common/ResetPasswordView.html','
This should be between 8 and 30 characters in length and contain at least three of the following:
  • An UPPERCASE letter
  • A lowercase letter
  • A number
  • A symbol (but not the " character)
');\n$templateCache.put('Templates/Common/SignInView.html','
');\n$templateCache.put('Templates/Common/UserInterfaceTestsView.html','');\n$templateCache.put('Templates/Common/UserMessagesView.html','
');\n$templateCache.put('Templates/Common/UserProfileView.html','

This is a place holder for your profile - unfortunatley there is not a lot to do at the moment but if you really want to do something why not change your password?

');\n$templateCache.put('Templates/Common/WindowsAuthenticationAccessDeniedView.html','

Your Windows account has not been granted access to this application. You are currently using single sign-on as {{vm.authentication.currentActiveDirectoryUsername()}}. If you want to sign in as a different user, use this URL instead. reconfigure your project to use Forms authentication mode.

Reason for sign in failure:
');\n$templateCache.put('Templates/HiLO/ApplyWorksView.html','

Permission to carry out works


Before you proceed

To carry out works to your property you will need to supply us with the following in PDF format.

  • {{file.name}} {{file.description}}

{{vm.questionHelper.propertyWithinEngland.text}}

{{vm.questionHelper.propertyWithinEngland.hint}}

Is the consent required by a mortgage or charge under one of the following schemes?

0\" ng-bind-html=vm.warningMessage>

{{vm.questionHelper.propertyWithinGreaterLondon.text}}

{{vm.questionHelper.propertyWithinGreaterLondon.error}}

{{vm.questionHelper.registeredLandRegistry.text}}

Property Information

Please provide us with the details related to the property for which consent is required.

Enter the postcode (or choose to enter address manually)

Details of the document which states consent is required

Details of any planning permission for the works for which consent is requested:

');\n$templateCache.put('Templates/HiLO/ConsentingOrganisationSection.html','
');\n$templateCache.put('Templates/HiLO/DocumentUploadView.html','
');\n$templateCache.put('Templates/HiLO/FileUploadSection.html','

Upload supporting documents

Please upload the following documents

  • {{file.name}} {{file.isRequired ? \"\" : \"(optional)\"}}

Please upload file:

{{vm.currentUpload}}

{{vm.numberFilesRemaining()}} mandatory file{{vm.numberFilesRemaining() === 1 ? \"\" : \"s\"}} remaining to upload

Files uploaded

0\">
Document TypeFile Uploaded
{{file.displayName}}{{file.filename}}

Do you wish to upload additional documents?

');\n$templateCache.put('Templates/HiLO/HomeView.html','

{{vm.titleSecondary}}

Please choose from the following options:

Application for variation or release of a Restrictive Covenant

If you wish to make a request for the variation or release of a restrictive covenant that affects your property then please send full details of your request to {{vm.globalSettings.emails.calEnquiresEmail}}

Other organisations for which we can process applications

We might still be able to help you even if the Homes and Communities Agency/Homes England isn\\u2019t named in your title deeds. This is the list of organisations which may be named in your title deeds where we can deal with your application.

');\n$templateCache.put('Templates/HiLO/PermissionToSellView.html','

To complete the form you must have certain documents ready to be uploaded, please do not proceed untill you have the following:

  • A copy of the land registry title in question
  • A copy of the agreement in question
  • Copy of Agreement

Address Of Firm

Property Details

0\">

Uploaded Files

{{file.filename}}

Does it relate to section 9 of these act?

Does the restriction require certification of compliance with particular provision

Full details of the deed which imposed the restriction on title including:

You cannot apply for this online

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation

');\n$templateCache.put('Templates/HiLO/PersonalDetails.html','

Your details

Address of individual / firm

');\n$templateCache.put('Templates/HiLO/PredecessorOrganisationsView.html','

Homes England may be able to deal with applications where one of the following organisations is involved.

  • {{org.name}}
');\n$templateCache.put('Templates/HiLO/PreReqSection.html','

{{questionHelper.propertyWithinEngland.text}}

{{questionHelper.propertyWithinEngland.hint}}
{{questionHelper.propertyWithinEngland.error}}

Is your property in Greater London Authority?

Please contact the Greater London Authority on 020 7983 4000.

Is the title of the property registered at the Land Registry?

Please contact {{vm.globalSettings.emails.corporateContactEmail}}
');\n$templateCache.put('Templates/HiLO/PropertyInfoSection.html','
You should include all registered title numbers
');\n$templateCache.put('Templates/HiLO/ReleaseChargeView.html','

Release mortgage or legal charge


Before you proceed

You will need to submit a separate application per charge.

Before you continue, you will need to obtain a copy of your mortgage or charge deed. You will need information from it to complete the application.

{{vm.questionHelperService.propertyWithinEngland.text}}

{{vm.questionHelperService.propertyWithinEngland.hint}}
{{vm.questionHelperService.propertyWithinEngland.error}}

Is the mortgage provided under one of these schemes?

0\" class=red ng-bind-html=vm.warningMessage>

{{vm.questionHelperService.registeredLandRegistry.text}}

Property Information

Please provide us with the details related to the property that the charge affects.

Enter the postcode (or choose to enter address manually) of the property which you require

You should include all registered title numbers

Property Information

Does the charge secure the payment of clawback (or overage) if the property is developed or its use is changed?

Has there been any development or change of use of the property?

Your application cannot be processed using this system. Please send full details of your application to {{vm.globalSettings.emails.corporateContactEmail}}

Do you want to apply for permission to sell, lease or otherwise dispose of the property?

The deed which created the charge will include a requirement to provide us (or our predecessor organisations) with a direct covenant from the purchaser/tenant etc. You need to identify this provision
Your application cannot be processed using this system. Please send full details of your application to {{vm.globalSettings.emails.corporateContactEmail}}

Full details of the deed which requires the direct covenant to be provided:

The date of deed must be earlier than or equal to today

Does the transfer/conveyance include a prescribed form of covenant to be provided?

Prepare draft deed of covenant in prescribed form and submit with your application.
(Right click on the \\'Download\\' button and select Save target as.. from the menu)
Download

Is it Housing Corporation charge?

Have you received confirmation from Link Mortgage Services that Homes England has not sold its interest in the charge to Link Mortgage Services?

Full details of the deed which imposed the charge on title:

The date of deed must be earlier than or equal to today
You will need to send an email to Link Mortgage Services using the following email address {{vm.globalSettings.emails.capitaMortgageEmail}} to get their confirmation that Homes England has not sold its interest in the charge to Link Mortgage Services. You cannot proceed with your application until you have the written confirmation from Link Mortgage Services.

{{vm.questionHelperService.propertyWithinGreaterLondon.text}}

{{vm.questionHelperService.propertyWithinGreaterLondon.error}}

Is this a staircasing of a shared ownership lease (other than a key worker lease)?

');\n$templateCache.put('Templates/HiLO/SellLeaseView.html','

Permission to sell or lease property


Before you proceed

To request permission to sell or lease your property you will need to supply us with the following (in PDF format)

  • {{file.name}} {{file.description}}

{{vm.questionHelperService.propertyWithinEngland.text}}

{{vm.questionHelperService.propertyWithinEngland.hint}}
{{vm.questionHelperService.propertyWithinEngland.error}}

Is the consent required under a mortgage or charge provided under one of these schemes?

0\" ng-bind-html=vm.warningMessage>

Does the restriction relate to Section 172 of the Housing and Regeneration Act 2008, Section 133 of the Housing Act 1988, Section 171D of the Housing Act 1985, Section 9 of the Housing Associations Act 1985, Section 173 of the Local Government and Housing Act 1989 or Section 9 of the Housing Act 1996?

Your enquiry relates to the regulation of social housing and cannot be processed using this service. Please note that it is likely that the regulator\\u2019s consent is no longer required. Further information can be found here: Notifications about disposals - GOV.UK. If you need to make contact with the regulation team please email your enquiry to {{vm.globalSettings.emails.rnTeamEmail}}

Does the restriction require compliance with particular provision of a specified document?

The restriction will have been imposed by a deed (usually a conveyance, transfer or deed of covenant) to which we or one of our predecessor organisations were a party. You should review the title register and identify the relevant deed.

{{vm.questionHelperService.propertyWithinGreaterLondon.text}}

{{vm.questionHelperService.propertyWithinGreaterLondon.error}}

{{vm.questionHelperService.registeredLandRegistry.text}}

Property Information

Please provide us with the details related to the property for which consent is required

Enter the postcode (or choose to enter address manually) of the property which you require

Consent information

Full details of the deed which imposed the restriction on title:

Does the transfer/conveyance which imposed the restriction include a standard form of covenant to be provided to comply with the restriction?

Prepare draft deed of covenant in prescribed form and submit with your application.
(Right click on the \\'Download\\' button and select Save target as.. from the menu)
Download
');\n$templateCache.put('Templates/HiLO/StaircasingSection.html','
');\n$templateCache.put('Templates/HiLO/SubmissionCompleteView.html','

Your submission is complete

Your reference is: {{vm.id}}

Please keep a note of this reference and quote it on any correspondence with us relating to your application.

You have requested the following from Homes England:

  • {{vm.product}}

There may be an administration fee payable for this service

We will contact you within 10 working days

Finished
');\n$templateCache.put('Templates/HiLO/SupportView.html','

Support

If you experience problems using this beta digital service please contact our Service Desk:

');\n$templateCache.put('Templates/HiLO/UploadTestView.html','
');\n$templateCache.put('Templates/HiLO/Directives/TypeOfDocView.html','
');\n$templateCache.put('Templates/HiLO/Sections/FileListSection.html','

To request permission for you to sell or lease your property you will need to supply us with

  • {{file.name}}
');\n$templateCache.put('Templates/HiLO/Sections/IsKeyWorkerSaleSection.html','

Is this a sale of a key worker property?

Have you complied with the obligation to find a key worker to sell to?

You cannot proceed with your application until you have evidence of compliance with the obligation to find another key worker to sell to.
Your application cannot be processed using this system. Please send full details of your application to {{vm.globalSettings.emails.corporateContactEmail}}
');\n$templateCache.put('Templates/HiLO/Sections/KeyWorkerDetailsSection.html','
');\n$templateCache.put('Templates/HiLO/Sections/Questions/CurrentMarketValueQuestion.html','
');\n$templateCache.put('Templates/HiLO/Sections/Questions/KeyWorkerOnwardSaleQuestion.html','

Is this an onward sale to another keyworker?

');}]);","/// \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.hilo',\r\n\t\t[\r\n\t\t\t'app.hilo.controllers',\r\n\t\t\t'app.hilo.directives',\r\n\t\t\t'app.hilo.services',\r\n\t\t\t'app.templates'\r\n\t\t]);\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', [\r\n\r\n\t\t\t//Third party dependencies\r\n\t\t\t'angular-google-analytics',\r\n\t\t\t'chart.js',\r\n\t\t\t'angular-busy',\r\n\t\t\t'duScroll',\r\n\t\t\t'jcs-autoValidate',\r\n\t\t\t'ngAnimate',\r\n\t\t\t'ngSanitize',\r\n\t\t\t'ngStorage',\r\n\t\t\t'tableSort',\r\n\t\t\t'ui.bootstrap',\r\n\t\t\t'ui.mask',\r\n\t\t\t'ui.router',\r\n\t\t\t'ngFileUpload',\r\n\t\t\t'ngCookies',\r\n\t\t\t'monospaced.elastic',\r\n\r\n\t\t\t//Application modules\r\n\t\t\t'app.templates',\r\n\t\t\t'app.common',\r\n\t\t\t'app.hilo'\r\n\t\t]);\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')\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'AnalyticsProvider',\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.IStorageProvider,\r\n\t\t\t\t$localStorageProvider: angular.storage.IStorageProvider,\r\n\t\t\t\tuiMaskConfigProvider: any,\r\n\t\t\t\tanalyticsProvider: angular.google.analytics.AnalyticsProvider) => {\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 $urlRouterProvider.otherwise(badUrlHandler);\r\n\r\n\t\t\t\t$urlMatcherFactoryProvider.strictMode(false);\r\n\t\t\t\t$urlMatcherFactoryProvider.caseInsensitive(true);\r\n\r\n\t\t\t\t$locationProvider.html5Mode(true);\r\n\r\n\t\t\t\t$sessionStorageProvider.setKeyPrefix('hilo-');\r\n\t\t\t\t$localStorageProvider.setKeyPrefix('hilo-');\r\n\r\n\t\t\t\tvar defaults = $cookiesProvider.defaults as angular.cookies.ICookiesOptions;\r\n\t\t\t\tdefaults.secure = window.location.protocol === 'https';\r\n\t\t\t\tdefaults.domain = window['__appConfig'].cookieDomain;\r\n\r\n\t\t\t\t$logProvider.debugEnabled(window['__appConfig'].showDebugInfo);\r\n\r\n\t\t\t\tvar googleAnalyticsTrackingId = window['__appConfig'].googleAnalyticsTrackingId;\r\n\r\n\t\t\t\tif (googleAnalyticsTrackingId) {\r\n\t\t\t\t\tanalyticsProvider\r\n\t\t\t\t\t\t.setAccount(googleAnalyticsTrackingId)\r\n\t\t\t\t\t\t.setHybridMobileSupport(true)\r\n\t\t\t\t\t\t.logAllCalls(true)\r\n\t\t\t\t\t\t.trackPages(true)\r\n\t\t\t\t\t\t.setPageEvent('$stateChangeSuccess');\r\n\r\n\t\t\t\t\tif (window.location.hostname === 'localhost') {\r\n\t\t\t\t\t\tanalyticsProvider.setDomainName('none');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar decorator = ($delegate: any, $injector: angular.auto.IInjectorService) => (exception: any, cause: any) => {\r\n\t\t\t\t\tvar errorHandler = $injector\r\n\t\t\t\t\t\t.get('app.common.services.errorHandlerService') as App.Common.Services.ErrorHandlerService;\r\n\t\t\t\t\terrorHandler.handleException(exception);\r\n\t\t\t\t\t$delegate(exception, cause);\r\n\t\t\t\t};\r\n\t\t\t\tdecorator.$inject = ['$delegate', '$injector'];\r\n\r\n\t\t\t\t$provide.decorator('$exceptionHandler', decorator);\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\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 {\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\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 {\r\n\t\t\t\tel.parent('.input-group').siblings('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\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\t'use strict';\r\n\r\n\texport abstract class ValidatorBase implements angular.IDirective, IValidator {\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 link = (scope: IFormScope,\r\n\t\t\tel: angular.IAugmentedJQuery,\r\n\t\t\tattributes: Directives.IValidatorAttributes,\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.ValidateArgs();\r\n\t\t\targs.el = el;\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\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() => {\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 ValidateArgs();\r\n\t\t\t\t\t\t\tisValidArgs.el = args.el;\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\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 ValidateArgs();\r\n\t\t\t\t\tisValidArgs.el = args.el;\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\r\n\t\t\t\t\treturn this.isValid(isValidArgs);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\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.ValidateArgs();\r\n\t\t\targs.el = el;\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\r\n\t\t\treturn this.resolveMessage(args);\r\n\t\t};\r\n\r\n\t\t// ReSharper disable once UnusedParameter\r\n\t\tpublic canValidate = (args: Directives.ValidateArgs) => {\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\tpublic isValid: (args: Directives.ValidateArgs) => boolean;\r\n\r\n\t\tpublic resolveMessage: (args: Directives.ValidateArgs) => string;\r\n\r\n\t\t// ReSharper disable once UnusedParameter\r\n\t\tpublic getWatchExpressions = (args: Directives.ValidateArgs): string[] => {return [];};\r\n\t}\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\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\t\t} as Hca.HiLO.Model.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\t\t} as Hca.HiLO.Model.IUserMessages;\r\n\r\n\t\tpublic addMessages(messages: Hca.HiLO.Model.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\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\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\t\tprivate messageCount(messages: Hca.HiLO.Model.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) {\r\n\t\t\t\treturn;\r\n\t\t\t}\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}\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}\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\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\tprivate _appConfig : any = window['__appConfig'];\r\n\r\n\t\tpublic applicationName: string = this._appConfig.applicationName;\r\n\t\tpublic applicationNameShort: string = this._appConfig.applicationNameShort;\r\n\t\tpublic verboseLogging: boolean = this._appConfig.verboseLogging;\r\n\t\tpublic showVerboseDebugMessages: boolean = this._appConfig.showVerboseDebugMessages;\r\n\t\tpublic showDebugInfo: boolean = this._appConfig.showDebugInfo;\r\n\t\tpublic googleAnalyticsTrackingId: string = this._appConfig.googleAnalyticsTrackingId;\r\n\t\tpublic useWindowsAuthentication: boolean = this._appConfig.useWindowsAuthentication;\r\n\t\tpublic databaseName: string = this._appConfig.databaseName;\r\n\t\tpublic cookieDomain: string = this._appConfig.cookieDomain;\r\n\t\tpublic hiloSupportStart: string = this._appConfig.hiLOSupportStart;\r\n\t\tpublic allowedFileUploadExtensions: string[] = this._appConfig.allowedFileUploadExtensions;\r\n\t\tpublic maxFileUploadSize: number = this._appConfig.maxFileUploadSize;\r\n\t\tpublic emails = {\r\n\t\t\tregConsentsEmail: this._appConfig.hiLORegConsentsEmail,\r\n\t\t\tcapitaMortgageEmail: this._appConfig.hiLOCapitaMortgageEmail,\r\n\t\t\tcontactUs: this._appConfig.contactUsEmail,\r\n\t\t\tdestinationEmail: this._appConfig.hiLODestinationEmail,\r\n\t\t\tpostSalesAgentContactEmail: this._appConfig.hiLOPostSalesAgentContactEmail,\r\n\t\t\tchargesTeamEmail: this._appConfig.hiLOChargesTeamEmail,\r\n\t\t\tcorporateContactEmail: this._appConfig.hiLOCorporateContactEmail,\r\n digitalServicesFeedbackEmail: this._appConfig.hiLODigitalServicesFeedbackEmail,\r\n calEnquiresEmail: this._appConfig.hiLOCalEnquiresEmail,\r\n rnTeamEmail: this._appConfig.hiLORnTeamEmail\r\n\t\t};\r\n\t\t\r\n\t\t//location of the unauthorized page\r\n\t\tpublic unauthorized = '/Error/Unauthorized';\r\n\r\n\t\tpublic authenticationBaseUrl: string;\r\n\t\tpublic authenticationEndpoints: {\r\n\t\t\tbase: string,\r\n\t\t\tnegotiate: string,\r\n\t\t\ttoken: string,\r\n\t\t\trequestPasswordReset: string,\r\n resetPassword: string,\r\n changePassword: string;\r\n\t\t};\r\n\r\n\t\tpublic broadcastEvents = {\r\n\t\t\tauthenticationComplete: 'authenticationComplete'\r\n\t\t};\r\n\r\n\t\tpublic oAuthClientId = 'hilo';\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\t\t// Todo: SS for WW - push these down to the StringFormats.cs as they already exist in there\r\n\t\tpublic shortDateFormat = 'dd/MM/yyyy';\r\n\t\tpublic shortDateTimeFormat = 'dd/MM/yyyy \\'at\\' HH:mm';\r\n\t\tpublic preciseDateTimeFormat = 'dd/MM/yyyy HH:mm:ss.sss';\r\n\t\tpublic dropdownUnselectedValue = '-- Select --';\r\n\r\n\t\tpublic datepickerOptions = {\r\n\t\t\tshowWeeks: false,\r\n\t\t\tstartingDay: 1,\r\n\t\t\tclearText: 'Clear',\r\n\t\t\tcloseOnDateSelection: true,\r\n\t\t\tcloseText: 'Done',\r\n\t\t\tcurrentText: 'Today',\r\n\t\t\tshowButtonBar: true,\r\n\t\t\tmaxDate: Date.now()\r\n\t\t};\r\n\r\n\t\tpublic mainFormName = 'mainForm';\r\n\r\n\t\tpublic 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\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\tthis.authenticationBaseUrl = this.baseUrl;\r\n\r\n\t\t\tthis.authenticationEndpoints = {\r\n\t\t\t\tbase: this.authenticationBaseUrl,\r\n\t\t\t\tnegotiate: `${this.authenticationBaseUrl}/api/Authentication/Negotiate`,\r\n\t\t\t\ttoken: `${this.authenticationBaseUrl}/api/Authentication/Token`,\r\n\t\t\t\trequestPasswordReset: `${this.authenticationBaseUrl}/api/Authentication/RequestPasswordReset`,\r\n\t\t\t\tresetPassword: `${this.authenticationBaseUrl}/api/Authentication/ResetPassword`,\r\n\t\t\t\tchangePassword: `${this.authenticationBaseUrl}/api/Authentication/ChangePassword`\r\n\t\t\t};\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\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 public mainFormName: string;\r\n public subFormName: 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 }\r\n\r\n public subFormElement(): angular.IAugmentedJQuery {\r\n const el = angular.element($(`ng-form[name=${this.subFormName}]`));\r\n return el.length ? el : null;\r\n }\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 }\r\n\r\n public subFormScope(): angular.IScope {\r\n\r\n const el = this.subFormElement();\r\n if (!el) {\r\n return null;\r\n }\r\n return el.scope();\r\n }\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 }\r\n\r\n public subForm(name: string): angular.IFormController {\r\n\r\n this.subFormName = name;\r\n const scope = this.subFormScope();\r\n if (!scope) {\r\n return null;\r\n }\r\n return scope[this.subFormName];\r\n }\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 }\r\n public getFormController(formName: string): angular.IFormController {\r\n const el = angular.element($(`form[name=${formName}]`));\r\n if (el.length) {\r\n if (el.scope()) {\r\n return el.scope()[formName];\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\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 'use strict';\r\n\r\n export class ValidationErrorMessageResolverService {\r\n\r\n public standardErrorMessages: {[key: string]: string} = {};\r\n\r\n public validators: {[key: string]: Common.Directives.IValidator} = {};\r\n\r\n public groupValidators: {[key: string]: Common.Directives.IGroupValidator} = {};\r\n\r\n public static $inject = [\r\n '$q',\r\n 'app.common.services.modelStateValidationService',\r\n 'defaultErrorMessageResolver'\r\n ];\r\n\r\n constructor(\r\n private $q: angular.IQService,\r\n private modelStateValidation: Services.ModelStateValidationService,\r\n private defaultErrorMessageResolver: any) {\r\n defaultErrorMessageResolver.getErrorMessages()\r\n .then((errorMessages: any) => {\r\n _.assign(errorMessages,\r\n {\r\n email: 'Please enter a valid email address',\r\n minlength: 'Please enter at least {0} characters',\r\n maxlength: 'You have entered more than the maximum {0} characters',\r\n min: 'Please enter the minimum number of {0}',\r\n max: 'Please enter the maximum number of {0}',\r\n required: 'This field is required',\r\n date: 'Please enter a valid date in the format dd/mm/yyyy',\r\n pattern: 'Please ensure the entered information adheres to the pattern {0}',\r\n number: 'Please enter a valid number',\r\n url: 'Please enter a valid URL in the format http(s)://www.google.com',\r\n parse: 'Please enter a valid date in the format dd/mm/yyyy'\r\n });\r\n this.standardErrorMessages = errorMessages;\r\n });\r\n }\r\n\r\n public registerValidator(validator: Common.Directives.IValidator): void {\r\n if (this.validators[validator.nameCamelCase()] || this.groupValidators[validator.nameCamelCase()]) {\r\n throw new Error(`Validation message resolver already registered for error type \"${validator.nameCamelCase()}\"`);\r\n }\r\n this.validators[validator.nameCamelCase()] = validator;\r\n }\r\n\r\n public registerGroupValidator(validator: Common.Directives.IGroupValidator): void {\r\n if (this.validators[validator.nameCamelCase()] || this.groupValidators[validator.nameCamelCase()]) {\r\n throw new Error(`Validation message resolver already registered for error type \"${validator.nameCamelCase()}\"`);\r\n }\r\n this.groupValidators[validator.nameCamelCase()] = validator;\r\n }\r\n\r\n public resolve = (errorType: string, el: angular.IAugmentedJQuery): angular.IPromise => {\r\n\r\n const defer = this.$q.defer();\r\n const validator = this.validators[errorType];\r\n const groupValidator = this.groupValidators[errorType];\r\n\r\n if (!validator && !groupValidator) {\r\n\r\n if (errorType === 'modelstate') {\r\n defer.resolve(this.modelStateValidation.getErrorMessageForElement(el));\r\n return defer.promise;\r\n } else if (errorType === 'mask') {\r\n const attributeMessage = el.attr('ui-mask-message') || 'in the required format';\r\n defer.resolve(`This field must be ${attributeMessage}`);\r\n return defer.promise;\r\n } else if (this.standardErrorMessages[errorType]) {\r\n defer.resolve(this.defaultErrorMessageResolver.resolve(errorType, el));\r\n return defer.promise;\r\n } else {\r\n throw(`No validator or standard error message registered for error type \"${errorType}\"`);\r\n }\r\n }\r\n\r\n if (validator) {\r\n defer.resolve(validator.resolveMessageForElement(el, errorType));\r\n return defer.promise;\r\n } else {\r\n defer.resolve(groupValidator.resolveMessageForElement(el, errorType));\r\n return defer.promise;\r\n }\r\n };\r\n }\r\n\r\n factory.$inject = ['$q', 'app.common.services.modelStateValidationService', 'defaultErrorMessageResolver'];\r\n\r\n function factory($q: angular.IQService,\r\n modelStateValidation: Services.ModelStateValidationService,\r\n defaultErrorMessageResolver: any) {\r\n return new ValidationErrorMessageResolverService($q, modelStateValidation, defaultErrorMessageResolver);\r\n }\r\n\r\n angular\r\n .module('app.common.services')\r\n .factory('app.common.services.validationErrorMessageResolverService', 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\t\t}\r\n\r\n\t\tpublic static ok = new DialogOutcome('OK', true);\r\n\t\tpublic static save = new DialogOutcome('Save', 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\nmodule App.Common {\r\n\r\n\texport enum BootstrapSize {\r\n\r\n\t\tLarge,\r\n\t\tMedium,\r\n\t\tSmall\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class ModalDialogConfig {\r\n\r\n\t\tpublic title: string;\r\n\r\n\t\tpublic scope: angular.IScope;\r\n\r\n\t\tpublic component: string;\r\n\r\n\t\tpublic templateUrl: string;\r\n\r\n\t\tpublic template: string;\r\n\r\n\t\tpublic controller: string;\r\n\r\n\t\tpublic canDismissWithBackdropClick = false;\r\n\r\n\t\tpublic canDismissWithEscapeKey = false;\r\n\r\n\t\tpublic size = BootstrapSize.Small;\r\n\r\n\t\tpublic screenMode = ScreenMode.Edit;\r\n\r\n\t\tpublic onClose: (result: TResult) => void;\r\n\r\n\t\tpublic onClosing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic onDismiss: (result: TResult) => void;\r\n\r\n\t\tpublic onDismissing: (result: TResult) => angular.IPromise;\r\n\r\n\t}\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class MessageBoxConfig implements IConvertibleToModalDialogConfig {\r\n\r\n\t\tpublic onClose: (result: TResult) => void;\r\n\r\n\t\tpublic onClosing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic onDismiss: (result: TResult) => void;\r\n\r\n\t\tpublic onDismissing: (result: TResult) => angular.IPromise;\r\n\t\tpublic templateUrl: string;\r\n\t\tpublic controller: string;\r\n\r\n\t\tconstructor(\r\n\t\t\tpublic title: string,\r\n\t\t\tpublic message: string,\r\n\t\t\tpublic outcomes: DialogOutcome[] = [DialogOutcome.ok],\r\n\t\t\tpublic canDismissWithBackdropClick = false,\r\n\t\t\tpublic canDismissWithEscapeKey = false,\r\n\t\t\tpublic size = BootstrapSize.Medium) {\r\n\t\t}\r\n\r\n\t\tpublic toModalDialogConfig() {\r\n\t\t\tvar config = new ModalDialogConfig();\r\n\t\t\tconfig.title = this.title;\r\n\t\t\tconfig.templateUrl = 'Templates/Common/MessageBoxView.html';\r\n\t\t\tconfig.controller = 'app.common.controllers.messageBoxController';\r\n\t\t\tconfig.size = this.size;\r\n\t\t\tconfig.canDismissWithBackdropClick = this.canDismissWithBackdropClick;\r\n\t\t\tconfig.canDismissWithEscapeKey = this.canDismissWithEscapeKey;\r\n\t\t\tconfig.onClose = this.onClose;\r\n\t\t\tconfig.onClosing = this.onClosing;\r\n\t\t\tconfig.onDismiss = this.onDismiss;\r\n\t\t\tconfig.onDismissing = this.onDismissing;\r\n\t\t\treturn config;\r\n\t\t}\r\n\r\n\t}\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\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\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\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\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 occured';\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\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.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 === 'hilo-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.apply(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 {\r\n\r\n\texport class HiLOUser implements Hca.HiLO.ViewModel.IUserViewModel {\r\n\r\n\t\tconstructor(userData: Hca.HiLO.ViewModel.IUserViewModel = 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\t\tpublic amesPanelManager: string;\r\n\t\tpublic delegationLevel: number;\r\n\t\tpublic department: string;\r\n\t\tpublic directorate: string;\r\n\t\tpublic emailAddress: string;\r\n\t\tpublic firstName: string;\r\n\t\tpublic fullName: string;\r\n\t\tpublic isActiveUser: boolean;\r\n\t\tpublic isInternalUser: boolean;\r\n\t\tpublic jobTitle: string;\r\n\t\tpublic lineManagerId: string;\r\n\t\tpublic lineManagerName: string;\r\n\t\tpublic mobileNumber: string;\r\n\t\tpublic officeAddress: Hca.HiLO.ViewModel.IAddressViewModel;\r\n\t\tpublic officeLocation: string;\r\n\t\tpublic permissions: Hca.HiLO.Model.Identity.Permissions[];\r\n\t\tpublic roles: Hca.HiLO.Model.Identity.Roles[];\r\n\t\tpublic surname: string;\r\n\t\tpublic telephoneNumber: string;\r\n\t\tpublic username: string;\r\n\t\tpublic editable: boolean;\r\n\t\tpublic id: string;\r\n\t\tpublic name: string;\r\n\t\tpublic state: Hca.HiLO.ObjectState;\r\n\r\n\t\tpublic hasPermission(permission: Hca.HiLO.Model.Identity.Permissions): boolean {\r\n\t\t\treturn _(this.permissions).some(x => x === permission);\r\n\t\t}\r\n\r\n\t\tpublic hasRole(role: Hca.HiLO.Model.Identity.Roles): boolean {\r\n\t\t\treturn _(this.roles).some(x => x === role);\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\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];\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}\r\n\r\n\t\tpublic populateCurrentUserLocalStorage(): angular.IPromise {\r\n\r\n\t\t\tif (this.$localStorage.currentUser) {\r\n\t\t\t\treturn this.$q.resolve(new Common.HiLOUser(this.$localStorage.currentUser));\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.debug('Getting current user data');\r\n\r\n\t\t\treturn this.api.get({\r\n\t\t\t\t\tresourceName: 'CurrentUser'\r\n\t\t\t\t}).then((data: Hca.HiLO.ViewModel.IUserViewModel): Common.HiLOUser => {\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('hilo-currentUser', JSON.stringify(data));\r\n\t\t\t\t\treturn new Common.HiLOUser(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}\r\n\r\n\t\tpublic getCurrentUser() : Common.HiLOUser {\r\n\t\t\treturn new Common.HiLOUser(this.$localStorage.currentUser);\r\n\t\t}\r\n\r\n\t\tpublic getUserById(id: any): angular.IPromise {\r\n\t\t\treturn this.api.get({\r\n\t\t\t\tresourceName: 'User',\r\n\t\t\t\tparams: { id: id }\r\n\t\t\t})\r\n\t\t\t.then((data: Hca.HiLO.ViewModel.IUserViewModel): any => {\r\n\t\t\t\treturn data;\r\n\t\t\t});\t\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.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(\r\n\t\t\tprivate $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\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(): string {\r\n\t\t\treturn this.users.getCurrentUser().username;\r\n\t\t}\r\n\r\n\t\tpublic currentUserEmail(): string {\r\n\t\t\treturn this.users.getCurrentUser().emailAddress;\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\r\n\t\t\tthis.logger.debug('Sign in');\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\t\t\t\t\tthis.saveAuthToken(token);\r\n\t\t\t\t\treturn this.users.populateCurrentUserLocalStorage().then(() => this.$q.resolve());\r\n }, (result: angular.IHttpPromiseCallbackArg) => {\r\n\t\t\t\t\tthis.deleteSignInDetails();\r\n\t\t\t\t\tvar requestConfig = result ? result.config : {} as IApiRequestConfig;\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\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\t\t\t\t\t\t//go to the unauthorized page\r\n\t\t\t\t\t\tthis.$state.go('WindowsAuthenticationAccessDenied', null, {location: false,suppressUnsavedChangesWarning: true} as Common.IStateOptions);\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} else {\r\n\t\t\t\t\t\treturn this.errorHandler.handleHttpError(result);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn 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\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: false,\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: 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.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\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\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\r\n\t\t\tthis.logger.debug('Ensuring the user is authenticated');\r\n\t\t\treturn !this.isAuthenticatedUnexpired() || force ? this.reauthenticate(force) : this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic reauthenticate(force: boolean = false): angular.IPromise {\r\n\r\n\t\t\tthis.logger.debug('Reauthenticating');\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}\r\n\r\n\t\tpublic passwordIsCorrectForCurrentUser(password: string): angular.IPromise {\r\n\r\n\t\t\tif (!this.currentUserEmail()) {\r\n\t\t\t\treturn this.$q.resolve(false);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.signInFormsAuthenticationPost(this.currentUserEmail(), 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 = (returnToHome = true, broadcast = true) => {\r\n\r\n\t\t\tthis.logger.debug('Signing out');\r\n\r\n\t\t\tif (this.useWindowsAuthentication()) {\r\n\t\t\t\treturn;\r\n\t\t\t}\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(!returnToHome);\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\r\n\t\t\t//TODO: WW to CW - Rewrite in line with Help To Buy Changes\r\n\t\t\tthis.logger.debug('Deleting sign in details');\r\n\t\t\tthis.users.clearCurrentUserLocalStorage();\r\n\t\t\t//localStorage.removeItem('ims-authToken');\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\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\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\r\n\t\t\tthis.logger.debugVerbose('Checking if authentication has expired');\r\n\r\n\t\t\t//TODO: WW for WW - Fix\r\n\t\t\t//return true;\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(): angular.IPromise {\r\n\r\n\t\t\tif (this.isAuthenticatedUnexpired()) {\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\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\t\t\t\tthis.$cookies.put(this.globalSettings.cookieNames.windowsAuthTokenValid, 'true');\r\n\t\t\t}\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\t\t\t\texpires: new Date(_.now() + (parseInt(token.expires_in, 10) * 1000))\r\n\t\t\t});\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.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\t\t\tif (result.status === -1) {\r\n\t\t\t\terrorDetails.title = 'Network error';\r\n\t\t\t\terrorDetails.userMessage = 'Sorry, an error has occurred whilst attempting to communicate with the server';\r\n\t\t\t}\r\n\r\n\t\t\t//We intentionally create this scenario when the database is offline and show a meaningful reason to the user\r\n\t\t\telse if (result.status === 503) {\r\n\t\t\t\terrorDetails.title = 'Service unavailable';\r\n\t\t\t\terrorDetails.userMessage = (result && result.data)\r\n\t\t\t\t\t? result.data\r\n\t\t\t\t\t: 'Sorry, the requested service is currently unavailable';\r\n\t\t\t}\r\n\r\n\t\t\tif (!suppressDisplay) {\r\n\t\t\t\tthis.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\t\tpublic displayError(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 config = {} as angular.ui.bootstrap.IModalSettings;\r\n\t\t\tconfig.animation = true;\r\n\t\t\tconfig.backdrop = 'static';\r\n\t\t\tconfig.keyboard = false;\r\n\t\t\tconfig.size = 'lg';\r\n\t\t\tconfig.controller = 'app.common.controllers.errorController';\r\n\t\t\tconfig.controllerAs = 'vm';\r\n\t\t\tconfig.bindToController = true;\r\n\t\t\tconfig.templateUrl = 'Templates/Common/ErrorView.html';\r\n\t\t\tconfig.resolve = {\r\n\t\t\t\tmodel: errorDetails\r\n\t\t\t};\r\n\r\n\t\t\tthis.errorWindow = this.$uibModal.open(config);\r\n\t\t}\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\t\t\tif (error.stack || error.stackTrace) {\r\n\t\t\t\terrorDetails.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\t\t\t\t\terrorDetails.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\t\t\t\t\tif (inner.stackTrace) {\r\n\t\t\t\t\t\terrorDetails.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\t'Analytics'\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\tprivate analytics: any) {\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\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\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\tvar unwrapped = result.data && result.data.value ? result.data.value : result.data;\r\n\t\t\treturn hasErrorMessages\r\n\t\t\t\t? this.$q.reject(unwrapped)\r\n\t\t\t\t: this.$q.resolve(unwrapped);\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\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 ControllerBase implements Controllers.IController, Controllers.IInitialize {\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\t\tpublic errorHandler: Common.Services.ErrorHandlerService;\r\n\t\tpublic authentication: Common.Services.AuthenticationService;\r\n\t\tpublic globalSettings: Common.Services.GlobalSettingsService;\r\n\t\tpublic formHelper: Common.Services.FormHelperService;\r\n\t\tpublic modal: Common.Services.ModalService;\r\n\t\tpublic navigationHelper: Common.Services.NavigationHelperService;\r\n\t\tpublic analytics: any;\r\n public logger: Common.Services.LogService;\r\n\r\n\t\tpublic title = 'Untitled Screen';\r\n\t\tpublic titleSecondary = '';\r\n\t\tpublic warnOnUnsavedChanges = true;\r\n\t\tpublic screenMode = ScreenMode.Edit;\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\t\t\tthis.errorHandler = $injector.get('app.common.services.errorHandlerService');\r\n\t\t\tthis.authentication = $injector\r\n\t\t\t\t.get('app.common.services.authenticationService');\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.modal = $injector\r\n\t\t\t\t.get('app.common.services.modalService');\r\n\t\t\tthis.navigationHelper = $injector\r\n\t\t\t\t.get('app.common.services.navigationHelperService');\r\n\t\t\tthis.analytics = $injector.get('Analytics');\r\n\t\t\tthis.logger = $injector.get('app.common.services.logService');\r\n\r\n\t\t}\r\n\r\n\t\tpublic abstract initialize(): angular.IPromise;\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\t\tprotected abstract mainForm(): angular.IFormController;\r\n\r\n\t\tprotected setPristine() {\r\n\t\t\tvar form = this.mainForm();\r\n\t\t\tif (!form) { return; }\r\n\t\t\tform.$setPristine();\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.mainForm().$dirty && !this.isReadonly();\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\t\t\r\n\t}\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 abstract class ModalDialogControllerBase extends ControllerBase implements IModalDialogController {\r\n\r\n\r\n\r\n constructor(public $injector: angular.auto.IInjectorService,\r\n private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n protected modalConfig: ModalDialogConfig,\r\n private $uibModalStack: angular.ui.bootstrap.IModalStackService) {\r\n super($injector);\r\n\r\n this.$rootScope.$on('$stateChangeStart', event => {\r\n\r\n\r\n if (angular.isDefined($uibModalStack)) {\r\n\r\n //get the popup\r\n var top = $uibModalStack.getTop();\r\n\r\n if (angular.isDefined(top) && top != null) {\r\n\r\n //get the main form on the popup\r\n var modelForm = top.value.modalScope[top.value.modalScope.vm.mainFormName()];\r\n\r\n //errors on the main form of the popup?\r\n if (modelForm != null && modelForm.$submitted && modelForm.$invalid) {\r\n console.log('preventing....');\r\n //prevent closing \r\n event.preventDefault();\r\n } else {\r\n //otherwise close\t\t\t\r\n $uibModalStack.dismiss(top.key);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public close(result?: any): angular.IPromise {\r\n\r\n var deferred = this.$q.defer();\r\n\r\n if (this.modalConfig.onClosing && _.isFunction(this.modalConfig.onClosing)) {\r\n return this.modalConfig.onClosing(result)\r\n .then(() => {\r\n this.closeModal(result);\r\n deferred.resolve(result);\r\n },\r\n () => {\r\n deferred.reject(result);\r\n });\r\n } else {\r\n this.closeModal(result);\r\n deferred.resolve(result);\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public dismiss(result?: any): angular.IPromise {\r\n\r\n var deferred = this.$q.defer();\r\n\r\n if (this.modalConfig.onDismissing && _.isFunction(this.modalConfig.onDismissing)) {\r\n return this.modalConfig.onDismissing(result)\r\n .then(() => {\r\n this.dismissModal(result);\r\n deferred.resolve(result);\r\n },\r\n () => {\r\n deferred.reject(result);\r\n });\r\n } else {\r\n this.dismissModal(result);\r\n deferred.resolve(result);\r\n }\r\n function silenceUncaughtInPromise(promise) {\n return promise.then(undefined, () =>{ }) && promise;\n }\r\n\r\n return silenceUncaughtInPromise(deferred.promise);\r\n }\r\n\r\n private closeModal(result: any) {\r\n this.$uibModalInstance.close(result);\r\n if (this.modalConfig.onClose && _.isFunction(this.modalConfig.onClose)) {\r\n this.modalConfig.onClose(result);\r\n }\r\n }\r\n\r\n private dismissModal(result?: any) {\r\n this.$uibModalInstance.dismiss(result);\r\n if (this.modalConfig.onDismiss && _.isFunction(this.modalConfig.onDismiss)) {\r\n this.modalConfig.onDismiss(result);\r\n }\r\n }\r\n\r\n public isReadonly() {\r\n return false; //this.modalConfig.screenMode === ScreenMode.Readonly;\r\n }\r\n\r\n public canSave(): boolean {\r\n return this.mainForm().$dirty && !this.isReadonly();\r\n }\r\n\r\n //This must be unique for each popup which may appear on the screen at the same time\r\n public abstract mainFormName(): string;\r\n\r\n protected mainFormElement(): angular.IAugmentedJQuery {\r\n const el = angular.element($(`form[name=${this.mainFormName()}]`));\r\n return el.length ? el : null;\r\n }\r\n\r\n protected mainFormScope(): angular.IScope {\r\n const el = this.mainFormElement();\r\n if (!el) {\r\n return null;\r\n }\r\n return el.scope();\r\n }\r\n\r\n protected mainForm(): angular.IFormController {\r\n const scope = this.mainFormScope();\r\n if (!scope) {\r\n return null;\r\n }\r\n return scope[this.mainFormName()];\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 class MessageBoxController extends Controllers.ModalDialogControllerBase {\r\n\r\n public static $inject = ['$injector', '$uibModalInstance', 'config', 'modalConfig', '$uibModalStack'];\r\n constructor(\r\n $injector: angular.auto.IInjectorService,\r\n $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n public config: MessageBoxConfig,\r\n modalConfig: ModalDialogConfig,\r\n $uibModalStack: angular.ui.bootstrap.IModalStackService) {\r\n super($injector, $uibModalInstance, modalConfig, $uibModalStack);\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.resolve();\r\n }\r\n\r\n public mainFormName(): any {\r\n return 'messageBoxForm';\r\n }\r\n\r\n public selectOutcome(outcome: DialogOutcome) {\r\n if (outcome.isCancel) {\r\n this.dismiss(outcome);\r\n } else {\r\n super.close(outcome);\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.messageBoxController', MessageBoxController);\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 NavigationHelperService {\r\n\r\n\t\tpublic static $inject = ['$q', '$state', '$rootScope', '$uibModal', '$sessionStorage', '$injector'];\r\n\t\tconstructor(\r\n\t\t\tprivate $q: angular.IQService,\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\t\t\tprivate $injector: angular.auto.IInjectorService) {\r\n\t\t}\r\n\r\n\t\tprivate onStateChangeOff: Function;\r\n\r\n\t\tpublic currentScreen: Controllers.IScreenController;\r\n\r\n\t\tpublic currentLeftnav: Controllers.ILeftnavController;\r\n\r\n\t\tpublic initializers: Common.Controllers.IInitialize[] = [];\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\tvar errorHandler = this.$injector.get('app.common.services.errorHandlerService') as Services.ErrorHandlerService;\r\n\t\t\t\t\tif (!this.currentScreen || !this.currentScreen.hasUnsavedChanges() || errorHandler.errorShown) {\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\tpublic registerInitializer(controller: Common.Controllers.IInitialize) {\r\n\t\t\tthis.initializers.push(controller);\r\n\t\t}\r\n\r\n\t\tpublic unregisterInitializer(controller: Common.Controllers.IInitialize) {\r\n\t\t\tthis.initializers = _.without(this.initializers, controller);\r\n\t\t}\r\n\r\n\t\tpublic runInitializers(): angular.IPromise {\r\n\t\t\tvar initializers = this.initializers.map((initializer) => initializer.initialize());\r\n\t\t\tif (this.currentLeftnav) {\r\n\t\t\t\tinitializers.push(this.currentLeftnav.initialize());\r\n\t\t\t}\r\n\t\t\treturn this.$q.all(initializers);\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.name;\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\t\tpublic currentScreenIsHome() {\r\n\t\t\treturn this.$state.current.name === 'Home';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsDeeds() {\r\n\t\t\treturn this.$state.current.name === 'Deeds';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsAdmin() {\r\n\t\t\treturn this.$state.current.name === 'Admin';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsTasks() {\r\n\t\t\treturn this.$state.current.name === 'Tasks';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsSettings() {\r\n\t\t\treturn this.$state.current.name === 'Settings';\r\n\t\t}\r\n\r\n\t\tpublic currentScreenIsInstructions() {\r\n\t\t\treturn this.$state.current.name.substr(0, 11) === 'Instruction';\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.currentLeftnav = null;\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}\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\t'use strict';\r\n\r\n\tangular\r\n\t\t.module('app')\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'app.common.services.guidService', (\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\t\t\t\tguid: App.Common.Services.GuidService) => {\r\n\r\n\t\t\t\tif (!$sessionStorage.windowId) {\r\n\t\t\t\t\t$sessionStorage.windowId = guid.newGuid();\r\n\t\t\t\t}\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\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 };\r\n\r\n function silenceUncaughtInPromise(promise) {\n return promise.then(undefined, function () { }) && promise;\n }\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 return silenceUncaughtInPromise($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((() => {\r\n\t'use strict';\r\n\r\n\tangular.module('app.common.models', []);\r\n\r\n})());","/// \r\n/// \r\n\r\nmodule App.Common {\r\n\t'use strict';\r\n\r\n\texport interface IStateConfig {\r\n\t\tname?: string;\r\n\t\turl?: string;\r\n\t\tmainUrl?: string;\r\n\t\tleftnavUrl?: string;\r\n\t}\r\n\r\n\texport abstract class RoutesBase {\r\n\r\n\t\tpublic static $inject = ['$stateProvider'];\r\n\t\tconstructor(protected $stateProvider: angular.ui.IStateProvider) { }\r\n\r\n\t\tprotected templateDir: string;\r\n\r\n\t\tpublic addStateWithConfig(config: IStateConfig) {\r\n\t\t\tthis.$stateProvider\r\n\t\t\t\t.state(config.name, {\r\n\t\t\t\t\turl: config.url,\r\n\t\t\t\t\tviews: {\r\n\t\t\t\t\t\t'main': { templateUrl: config.mainUrl },\r\n\t\t\t\t\t\t'leftnav': { templateUrl: config.leftnavUrl }\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic addState(name: string, config: IStateConfig = null) {\r\n\t\t\tthis.addStateWithConfig(_.extend({\r\n\t\t\t\tname: name,\r\n\t\t\t\turl: `/${name}`,\r\n\t\t\t\tmainUrl: `Templates/${this.templateDir}/${name}View.html`\r\n\t\t\t}, config || {} as IStateConfig));\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 {\r\n\t'use strict';\r\n\r\n\tclass CommonRoutes extends Common.RoutesBase {\r\n\r\n\t\tpublic static $inject = ['$stateProvider'];\r\n\t\tconstructor($stateProvider: angular.ui.IStateProvider) {\r\n\t\t\tsuper($stateProvider);\r\n\r\n\t\t\tthis.templateDir = 'Common';\r\n\r\n\t\t\tthis.addState('RequestPasswordReset');\r\n\r\n\t\t\tthis.addState('SignIn');\r\n\t\t\tthis.addState('SetInitialPassword', { url: '/SetInitialPassword/:id/:source' });\r\n\t\t\tthis.addState('ResetPassword', { url: '/ResetPassword/:id' });\r\n\t\t\tthis.addState('ChangePassword');\r\n\t\t\tthis.addState('NotFound', { url: null });\r\n\t\t\tthis.addState('NotForWindowsAuthenticationUsers', { url: null });\r\n\t\t\tthis.addState('WindowsAuthenticationAccessDenied', { url: null });\r\n\t\t\tthis.addState('UserInterfaceTests');\r\n\t\t\tthis.addState('NoScreenAccess', { url: null });\r\n\t\t\tthis.addState('UserProfile', { url: null });\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tangular\r\n .module('app.common')\r\n\t\t.config(['$stateProvider', ($stateProvider: angular.ui.IStateProvider) => {\r\n\t\t\treturn new CommonRoutes($stateProvider);\r\n\t\t}]);\r\n\r\n}\r\n","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common {\r\n\r\n\texport class DocumentUploadConfig implements IConvertibleToModalDialogConfig {\r\n\r\n\t\tpublic title: string;\r\n\r\n\t\tpublic model: T;\r\n\r\n\t\tpublic message: string;\r\n\r\n\t\tpublic controller: string;\r\n\r\n\t\tpublic templateUrl: string;\r\n\r\n\t\tpublic size = BootstrapSize.Medium;\r\n\r\n\t\tpublic saveApiRequestConfig: IApiRequestConfig;\r\n\r\n\t\tpublic onClose: (result: TResult) => void;\r\n\r\n\t\tpublic onClosing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic onDismiss: (result: TResult) => void;\r\n\r\n\t\tpublic onDismissing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic toModalDialogConfig() {\r\n\t\t\tvar config = new ModalDialogConfig();\r\n\t\t\tconfig.title = this.title;\r\n\t\t\tconfig.templateUrl = 'Templates/Common/DocumentUploadView.html';\r\n\t\t\tconfig.controller = this.controller || 'app.common.controllers.documentUploadController';\r\n\t\t\tconfig.size = this.size;\r\n\t\t\tconfig.canDismissWithBackdropClick = false;\r\n\t\t\tconfig.canDismissWithEscapeKey = false;\r\n\t\t\tconfig.onClose = this.onClose;\r\n\t\t\tconfig.onClosing = this.onClosing;\r\n\t\t\tconfig.onDismiss = this.onDismiss;\r\n\t\t\tconfig.onDismissing = this.onDismissing;\r\n\t\t\treturn config;\r\n\t\t}\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 ModelEditorConfig {\r\n\r\n\t\tpublic title: string;\r\n\r\n\t\tpublic message: string;\r\n\r\n\t\tpublic controller: string;\r\n\r\n\t\tpublic templateUrl: string;\r\n\r\n\t\tpublic model: T;\r\n\r\n\t\tpublic size = BootstrapSize.Medium;\r\n\r\n\t\tpublic screenMode: ScreenMode;\r\n\r\n\t\tpublic onClose: (result: TResult) => void;\r\n\r\n\t\tpublic onClosing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic onDismiss: (result: TResult) => void;\r\n\r\n\t\tpublic onDismissing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic toModalDialogConfig() {\r\n\t\t\tvar config = new ModalDialogConfig();\r\n\t\t\tconfig.title = this.title;\r\n\t\t\tconfig.templateUrl = 'Templates/Common/ModelEditorView.html';\r\n\t\t\tconfig.controller = this.controller;\r\n\t\t\tconfig.size = this.size;\r\n\t\t\tconfig.canDismissWithBackdropClick = false;\r\n\t\t\tconfig.canDismissWithEscapeKey = false;\r\n\t\t\tconfig.onClose = this.onClose;\r\n\t\t\tconfig.onClosing = this.onClosing;\r\n\t\t\tconfig.onDismiss = this.onDismiss;\r\n\t\t\tconfig.onDismissing = this.onDismissing;\r\n\t\t\tconfig.screenMode = this.screenMode;\r\n\t\t\treturn config;\r\n\t\t}\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 PicklistConfig implements IConvertibleToModalDialogConfig {\r\n\r\n\t\tpublic title: string;\r\n\r\n\t\tpublic selectedItem: T;\r\n\r\n\t\tpublic size = BootstrapSize.Medium;\r\n\r\n\t\tpublic controller: string;\r\n\r\n\t\tpublic templateUrl: string;\r\n\r\n\t\tpublic onClose: (result: TResult) => void;\r\n\r\n\t\tpublic onClosing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic onDismiss: (result: TResult) => void;\r\n\r\n\t\tpublic onDismissing: (result: TResult) => angular.IPromise;\r\n\r\n\t\tpublic toModalDialogConfig() {\r\n\t\t\tvar config = new ModalDialogConfig();\r\n\t\t\tconfig.title = this.title;\r\n\t\t\tconfig.templateUrl = this.templateUrl || 'Templates/Common/PicklistView.html';\r\n\t\t\tconfig.controller = this.controller;\r\n\t\t\tconfig.size = this.size;\r\n\t\t\tconfig.canDismissWithBackdropClick = false;\r\n\t\t\tconfig.canDismissWithEscapeKey = true;\r\n\t\t\tconfig.onClose = this.onClose;\r\n\t\t\tconfig.onClosing = this.onClosing;\r\n\t\t\tconfig.onDismiss = this.onDismiss;\r\n\t\t\tconfig.onDismissing = this.onDismissing;\r\n\t\t\treturn config;\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\n/// \r\n\r\nmodule App.HiLO {\r\n 'use strict';\r\n\r\n class HiLORoutes extends Common.RoutesBase {\r\n\r\n public static $inject = ['$stateProvider'];\r\n\r\n constructor($stateProvider: angular.ui.IStateProvider) {\r\n super($stateProvider);\r\n\r\n this.templateDir = 'HiLO';\r\n\r\n this.addState('Home', { url: '/', mainUrl: 'Templates/HiLO/HomeView.html' });\r\n this.addState('SellLease');\r\n this.addState('ApplyWorks');\r\n this.addState('ReleaseCharge');\r\n this.addState('SubmissionComplete', { url: '/SubmissionComplete/:id/:product' });\r\n this.addState('PredecessorOrganisations', { url: '/PredecessorOrganisations', mainUrl: 'Templates/HiLO/PredecessorOrganisationsView.html' });\r\n this.addState('Support');\r\n\r\n // this.addState('UploadTest');\r\n\r\n }\r\n\r\n }\r\n\r\n angular\r\n .module('app.hilo')\r\n .config([\r\n '$stateProvider', ($stateProvider: angular.ui.IStateProvider) => {\r\n return new HiLORoutes($stateProvider);\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 AddressFinderService {\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];\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}\r\n\r\n\t\tpublic find(postcode: string): angular.IPromise;\r\n\r\n\t\tpublic find(postcode: string, doorNumber?: string) : angular.IPromise{\r\n\r\n\t\t\tvar params;\r\n\r\n\t\t\t//check if doorNumber is provided\r\n\t\t\tif (doorNumber) {\r\n\t\t\t\tparams = {\r\n\t\t\t\t\tpostcode: postcode,\r\n\t\t\t\t\tdoorNumber: doorNumber\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tparams = { postcode: postcode };\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn this.api.get({\r\n\t\t\t\tresourceName: 'Address',\r\n\t\t\t\tparams: params\r\n\t\t\t}).then((data: Hca.HiLO.ViewModel.IAddressViewModel[]): any => {\r\n\t\t\t\treturn data;\r\n\t\t\t});\t\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.addressFinderService', AddressFinderService);\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 AddressFinderController {\r\n\r\n public static $inject = ['$scope', '$injector'];\r\n\r\n public model: Hca.HiLO.ViewModel.IAddressFinderViewModel;\r\n public targetAddress: Hca.HiLO.ViewModel.IAddressViewModel;\r\n public api: Common.Services.ApiService;\r\n public globalSettings: Common.Services.GlobalSettingsService;\r\n public showManualEntry = false;\r\n public header: string;\r\n\r\n public postCodeInvalidMessage = 'The postcode is not in the correct format.';\r\n public doorNumberInvalidMessage = 'The door number is not in the correct format.';\r\n\r\n private doorNumberRegexp = /[0-9]{1,4}[A-Z]?/i;\r\n\r\n public showNoMatchingAddressesError = false;\r\n public postCodeInvalid = false;\r\n public postCodeRequired = false;\r\n public busyPromise: angular.IPromise;\r\n\r\n constructor(private $scope: angular.IScope, $injector: angular.auto.IInjectorService) {\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.globalSettings = $injector.get('app.common.services.globalSettingsService');\r\n this.targetAddress = this['ngModel'];\r\n this.header = this['header'];\r\n\r\n if (angular.isDefined(this.targetAddress) && this.targetAddress != null && this.targetAddress.line1 != null && this.targetAddress.line1 !== '') {\r\n this.showManualEntry = true;\r\n }\r\n\r\n }\r\n\r\n\t\t/* retrieve a list of addresses based on \r\n\t\t the postcode and door number provided */\r\n public findAddress(): void {\r\n this.targetAddress = this['ngModel'];\r\n //reset validation\r\n this.postCodeRequired = false;\r\n this.postCodeInvalid = false;\r\n this.showNoMatchingAddressesError = false;\r\n\r\n //validate\r\n if (angular.isUndefined(this.model) || this.model.postCode === null || this.model.postCode === '') {\r\n this.postCodeRequired = true;\r\n return;\r\n }\r\n else if (!this.globalSettings.postcodeRegexp.test(this.model.postCode)) {\r\n this.postCodeInvalid = true;\r\n return;\r\n }\r\n\r\n\t\t\t/* call TMS address api,\r\n\t\t\t which will then call address finder service, \r\n\t\t\t which will then call the ordanance survey api */\r\n this.busyPromise = this.api.get({\r\n resourceName: 'Address',\r\n params: { postcode: this.model.postCode }\r\n }).then((data: Hca.HiLO.ViewModel.IAddressSummaryViewModel[]): any => {\r\n this.model.addresses = data;\r\n if (this.model.addresses === null || this.model.addresses.length === 0) {\r\n this.showNoMatchingAddressesError = true;\r\n } else if (this.model.addresses.length === 1) {\r\n //only 1 found? selected it\r\n this.model.selectedAddress = this.model.addresses[0];\r\n angular.copy(this.model.selectedAddress, this.targetAddress);\r\n }\r\n });\r\n }\r\n\r\n\t\t/* when ngModel is provided in the html declaration\r\n\t\t assign the currently selected address to it */\r\n public addressChange() {\r\n if (angular.isDefined(this['ngModel'])) {\r\n angular.copy(this.model.selectedAddress, this.targetAddress);\r\n }\r\n //hide manual address entry panel\r\n this.showManualEntry = true;\r\n \r\n }\r\n\r\n /* when addresses are populated enable their selection */\r\n public enableAddresses(): boolean {\r\n return angular.isDefined(this.model)\r\n && this.model.addresses != null\r\n && this.model.addresses.length > 0;\r\n }\r\n\r\n /* handler for key pressing on the postcode input */\r\n public addressFinderKeyPress(keyEvent): boolean {\r\n //hit enter? search\r\n if (keyEvent.which === 13) {\r\n this.findAddress();\r\n keyEvent.preventDefault();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public isAddressFinderInvalid(): boolean {\r\n return this.showNoMatchingAddressesError || this.postCodeInvalid || this.postCodeRequired;\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 DocumentUploadController extends ModalDialogControllerBase {\r\n\r\n public selectedFile: File;\r\n public documentId: string;\r\n public uploading = false;\r\n public uploadStarted = false;\r\n public uploadCompleted = false;\r\n public uploadProgress: number;\r\n public uploadPromise: angular.angularFileUpload.IUploadPromise;\r\n public cancelled = false;\r\n public editMode = false;\r\n public showNotes = true;\r\n protected guid: Common.Services.GuidService;\r\n protected uploader: angular.angularFileUpload.IUploadService;\r\n\r\n public static $inject = [\r\n '$injector',\r\n '$uibModalInstance',\r\n 'config',\r\n 'modalConfig',\r\n '$uibModalStack'\r\n ];\r\n constructor(\r\n $injector: angular.auto.IInjectorService,\r\n $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n public config: DocumentUploadConfig,\r\n modalConfig: ModalDialogConfig,\r\n $uibModalStack: angular.ui.bootstrap.IModalStackService\r\n ) {\r\n\r\n super($injector, $uibModalInstance, modalConfig, $uibModalStack);\r\n\r\n this.guid = $injector.get('app.common.services.guidService');\r\n this.uploader = $injector.get('Upload');\r\n\r\n if (!this.config.model) {\r\n this.config.model = {} as T;\r\n } else {\r\n this.documentId = this.config.model.id;\r\n this.editMode = true;\r\n }\r\n }\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.resolve();\r\n }\r\n\r\n private mbForBytes(valueInBytes): string {\r\n // This always gives us two dp\r\n // Want only significant figures down to 2 dp\r\n var mbWithTwoDp = (valueInBytes / Math.pow(1024, 2)).toFixed(2);\r\n var output = mbWithTwoDp;\r\n while (output[output.length - 1] === \"0\" && output.indexOf(\".\") > -1) {\r\n output = output.substring(0, output.length - 1);\r\n if (output[output.length - 1] === \".\") {\r\n output = output.substring(0, output.length - 1);\r\n break;\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n public mainFormName(): any {\r\n return 'documentUploadForm';\r\n }\r\n\r\n public upload(file: any) {\r\n this.userMessages.clear();\r\n if (!file) {\r\n this.userMessages.addMessage('Only files of type PDF that are less than ' + this.mbForBytes(this.globalSettings.maxFileUploadSize) + 'mb can be uploaded', Common.UserMessageType.Error);\r\n } else if (file.$error === 'maxSize' || file.size > this.globalSettings.maxFileUploadSize) {\r\n this.userMessages.addMessage(\r\n 'The max filesize is ' + this.mbForBytes(this.globalSettings.maxFileUploadSize) + 'mb and the file is ' + this.mbForBytes(file.size) + 'mb.',\r\n Common.UserMessageType.Error);\r\n } else if (file.$error === 'pattern') {\r\n this.userMessages.addMessage('FILETYPE ERROR - CHANGE THIS MESSAGE', Common.UserMessageType.Error, false);\r\n } else if (file.$error) {\r\n this.userMessages.addMessage(file.$error, Common.UserMessageType.Error);\r\n }\r\n\r\n if (this.userMessages.messages.errorMessages.length> 0) {\r\n this.close();\r\n return;\r\n }\r\n\r\n this.documentId = this.documentId || this.guid.newGuid();\r\n\r\n var config = {\r\n url: `/api/${this.config.saveApiRequestConfig.resourceName}/Upload`,\r\n params: { id: this.documentId },\r\n data: {\r\n file: this.selectedFile\r\n },\r\n headers: {} as angular.IHttpRequestConfigHeaders,\r\n method: 'POST'\r\n } as angular.angularFileUpload.IFileUploadConfigFile;\r\n\r\n this.api.addDefaultHeaders(config);\r\n this.api.addAuthHeaderWithToken(config);\r\n\r\n this.uploadStarted = true;\r\n this.uploading = true;\r\n this.uploadProgress = 0;\r\n\r\n this.uploadPromise = this.uploader.upload(config);\r\n\r\n this.uploadPromise\r\n .then(() => {\r\n this.uploading = false;\r\n this.uploadCompleted = true;\r\n this.config.model.filename = this.selectedFile.name;\r\n this.config.model.id = this.documentId;\r\n this.close();\r\n },\r\n (result: angular.IHttpPromiseCallbackArg) => {\r\n if (this.cancelled) { return this.$q.resolve(); }\r\n if (result.status === 409) {\r\n this.modal.messageBox('Virus Detected', 'The server detected a virus in the uploaded file. The file has not been uploaded.');\r\n this.reset();\r\n\r\n return this.$q.resolve();\r\n } else {\r\n return this.errorHandler.handleHttpError(result, false);\r\n }\r\n\r\n },\r\n (progress: angular.angularFileUpload.IFileProgressEvent) => {\r\n this.uploadProgress = Math.round(100.0 * progress.loaded / progress.total);\r\n });\r\n }\r\n\r\n public reset() {\r\n this.documentId = null;\r\n this.uploadStarted = false;\r\n this.uploading = false;\r\n this.uploadCompleted = false;\r\n this.selectedFile = null;\r\n }\r\n\r\n public canSave() {\r\n return this.editMode || (!!this.selectedFile && this.uploadCompleted);\r\n }\r\n\r\n public save() {\r\n this.documentId = this.documentId || this.guid.newGuid();\r\n\r\n this.config.model = this.config.model || {} as T;\r\n\r\n if (!this.editMode) {\r\n this.config.model.id = this.documentId;\r\n this.config.model.filename = this.selectedFile.name;\r\n this.config.model.fileLastModifiedDate = this.selectedFile.lastModifiedDate;\r\n this.config.model.size = this.selectedFile.size;\r\n }\r\n\r\n this.config.saveApiRequestConfig.data = this.config.model;\r\n\r\n this.api.post(this.config.saveApiRequestConfig).then(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n public cancel() {\r\n \r\n this.close();\r\n\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.documentUploadController', DocumentUploadController);\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\t\tpublic static $inject = ['$scope', 'model'];\r\n\r\n\t\tconstructor(\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\t\t\t});\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\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.errorController', ErrorController);\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 LeftnavControllerBase implements Controllers.ILeftnavController, Controllers.IInitialize {\r\n\r\n\t\tpublic $rootScope: angular.IRootScopeService;\r\n\t\tpublic $q: angular.IQService;\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 $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 authentication: Common.Services.AuthenticationService;\r\n\t\tpublic globalSettings: Common.Services.GlobalSettingsService;\r\n\t\tpublic navigationHelper: Common.Services.NavigationHelperService;\r\n\t\tpublic analytics: any;\r\n\t\tprivate logger: Common.Services.LogService;\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.$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.$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.authentication = $injector\r\n\t\t\t\t.get('app.common.services.authenticationService');\r\n\t\t\tthis.globalSettings = $injector\r\n\t\t\t\t.get('app.common.services.globalSettingsService');\r\n\t\t\tthis.navigationHelper = $injector\r\n\t\t\t\t.get('app.common.services.navigationHelperService');\r\n\t\t\tthis.analytics = $injector.get('Analytics');\r\n\t\t\tthis.logger = $injector.get('app.common.services.logService');\r\n\r\n\t\t\tthis.navigationHelper.currentLeftnav = this;\r\n\t\t}\r\n\r\n\t\tpublic abstract initialize(): angular.IPromise;\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\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}\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 abstract class ModelEditorControllerBase extends Controllers.ModalDialogControllerBase {\r\n\r\n public static $inject = ['$injector', '$uibModalInstance', 'config', 'modalConfig'];\r\n constructor(\r\n $injector: angular.auto.IInjectorService,\r\n $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n public config: ModelEditorConfig,\r\n modalConfig: ModalDialogConfig,\r\n $uibModalStack: angular.ui.bootstrap.IModalStackService\r\n ) {\r\n super($injector, $uibModalInstance, modalConfig, $uibModalStack);\r\n }\r\n\r\n\r\n\r\n public mainFormName() {\r\n return this.controllerName().replace('Controller', 'Form');\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/// \r\n\r\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\texport abstract class ScreenControllerBase extends ControllerBase implements Controllers.IScreenController, Controllers.IInitialize {\r\n\r\n\t\tpublic busyPromise: angular.IPromise;\r\n\t\tpublic fullWidth = false;\r\n\t\tpublic forceReauthentication = false;\r\n\t\tpublic scroll = 0;\r\n\t\tprivate authenticationRequired: boolean = null;\r\n\r\n\t\tconstructor(public $injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\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\t\t\tthis.navigationHelper.currentScreen = this;\r\n\r\n\t\t\tthis.busyPromise = this.beforeInitialize()\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(() => {\r\n\t\t\t\t\treturn this.$q.all([this.navigationHelper.runInitializers(), this.initialize()]);\r\n\t\t\t\t});\r\n\t\t}\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\t\t\tif (this.authenticationRequired) {\r\n\t\t\t\treturn this.authentication.ensureAuthentication(this.forceReauthentication);\r\n\t\t\t} else {\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\t\tpublic notForWindowsAuthenticationUsers() {\r\n\t\t\tif (this.authentication.useWindowsAuthentication()) {\r\n\t\t\t\tthis.$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 checkScreenPermissions(\r\n\t\t\tread: Hca.HiLO.Model.Identity.Permissions | Hca.HiLO.Model.Identity.Permissions[],\r\n\t\t\tedit: Hca.HiLO.Model.Identity.Permissions | Hca.HiLO.Model.Identity.Permissions[] = null\r\n\t\t): 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.HiLO.Model.Identity.Permissions) => (readPermissions.some(r => r === x)))) {\r\n\t\t\t\tthis.userMessages.addMessage('You do not have the required permission to access this screen', UserMessageType.Error);\r\n\t\t\t\tthis.screenMode = ScreenMode.NoAccess;\r\n\t\t\t\tthis.$state.go('NoScreenAccess');\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.HiLO.Model.Identity.Permissions) => (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\t\tpublic checkScreenRoles(\r\n\t\t\troles: Hca.HiLO.Model.Identity.Roles | Hca.HiLO.Model.Identity.Roles[]\r\n\t\t): 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.HiLO.Model.Identity.Roles) => (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() || this.errorHandler.errorShown) {\r\n\t\t\t\tdefer.resolve(true);\r\n\t\t\t} else {\r\n\t\t\t\tvar messageBox = this.modal.messageBox(\r\n\t\t\t\t\t'Please Confirm',\r\n\t\t\t\t\t'Are you sure you want to navigate away from this screen? Any changes made will not be saved.',\r\n\t\t\t\t\t[DialogOutcome.ok, DialogOutcome.cancel],\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\ttrue\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\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-fluid > ').unwrap().unwrap();\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 'use strict';\r\n\r\n class NoScreenAccessController 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 = 'Permission Denied';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\t\t\tthis.fullWidth = true;\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.noScreenAccessController', NoScreenAccessController);\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 public beforeInitialize(): angular.IPromise {\r\n return this.setAuthenticationRequired(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\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\tprivate titleRequestPassword = 'Request a password reset';\r\n\t\tprivate titleThankYou = 'Thank you, now check your email';\r\n\r\n\t\tpublic hasRequestedPassword = false;\r\n\t\tpublic username : string;\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\t\t\tthis.fullWidth = true;\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\tthis.setTitle();\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Request a password reset.\r\n\t\t * This results in an email being sent to the user which\r\n\t\t * prompts the user to follow a link to resaet their password.\r\n\t\t */\r\n\t\tpublic requestPasswordReset(): void {\r\n\t\t\t//built the request\r\n\t\t\tlet request = {\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.requestPasswordReset,\r\n\t\t\t\tdeferUserMessageDisplay: true,\r\n\t\t\t\tsuppressSuccessMessage: 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\tuseWindowsAuthentication: false,\r\n\t\t\t\t\tresetUrl: 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', '{token}')\r\n\t\t\t\t\t\t.replace(':source', '{source}')\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t//perform the request\r\n\t\t\tthis.busyPromise = this.api.post(request).then(() => {\r\n\t\t\t\tthis.hasRequestedPassword = true;\r\n\t\t\t}).catch(() => {\r\n\t\t\t\tthis.userMessages.clear();\r\n\t\t\t\tthis.hasRequestedPassword = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate setTitle(): void {\r\n\t\t\tthis.title = this.hasRequestedPassword ? this.titleThankYou : this.titleRequestPassword;\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\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n export abstract class PicklistControllerBase extends Controllers.ModalDialogControllerBase {\r\n\r\n public static $inject = ['$injector', '$uibModalInstance', 'config', 'modalConfig', '$uibModalStack'];\r\n constructor(\r\n $injector: angular.auto.IInjectorService,\r\n $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n public config: PicklistConfig,\r\n modalConfig: ModalDialogConfig,\r\n $uibModalStack: angular.ui.bootstrap.IModalStackService) {\r\n super($injector, $uibModalInstance, modalConfig, $uibModalStack);\r\n }\r\n\r\n public tableConfig: Controllers.OrsumTableConfig;\r\n\r\n public mainFormName() {\r\n return this.controllerName().replace('Controller', 'Form');\r\n }\r\n\r\n public select(item: T, actionName: string) {\r\n if (!!this.config && !!actionName && actionName === 'rowClick') {\r\n this.config.selectedItem = item;\r\n super.close(item);\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\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\tclass ResetPasswordController extends Controllers.ScreenControllerBase {\r\n\r\n\t\tprivate token: any;\r\n\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\t\tpublic confirmNewPassword = '';\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.notForWindowsAuthenticationUsers();\r\n\t\t\tthis.title = 'Request a password reset';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\t\t\tthis.fullWidth = true;\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\t\t\tthis.token = this.$stateParams['id'];\r\n\t\t\tthis.displayMode = this.getDisplayMode();\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\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic 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\t\tprivate requestPasswordReset(): angular.IPromise {\r\n\t\t\treturn this.api.post({\r\n\t\t\t\turl: this.globalSettings.authenticationEndpoints.requestPasswordReset,\r\n\t\t\t\tdeferUserMessageDisplay: true,\r\n\t\t\t\tsuppressSuccessMessage: 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\t\t\t\t\tresetUrl: 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', '{token}')\r\n\t\t\t\t\t\t.replace(':source', '{source}')\r\n\t\t\t\t}\r\n\t\t\t}).then(() => {\r\n\t\t\t\tthis.$state.go('PasswordResetRequested');\r\n\t\t\t});\r\n\t\t}\r\n\r\n private resetPassword(): angular.IPromise {\r\n\t\t\tlet currentUser = this.users.getCurrentUser();\r\n\t\t\tthis.username = currentUser.username;\r\n return this.api.post({\r\n url: this.globalSettings.authenticationEndpoints.resetPassword,\r\n deferUserMessageDisplay: true,\r\n successMessage: `Your password has been ${this.displayMode === DisplayMode.ResetPassword ? 'reset' : 'set'} successfully`,\r\n authenticated: false,\r\n data: {\r\n token: this.token,\r\n newPassword: this.newPassword\r\n }\r\n }).then((username: string) => {\r\n\t\t\t\tthis.userMessages.collectDeferredMessages();\r\n\t\t\t\treturn this.authentication.signIn(username, this.newPassword).then(() => {\r\n\t\t\t\t\treturn this.$state.go('Home');\r\n\t\t\t\t});\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\tthis.$state.go('Home');\r\n\t\t\t\t\t});\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\t\t}\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\nmodule App.Common.Controllers {\r\n\t'use strict';\r\n\r\n\texport abstract class SectionScreenControllerBase extends ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$injector'\r\n\t\t];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\t\t\tthis.instructionId = this.$stateParams['id'];\r\n\t\t}\r\n\r\n\t\tpublic instructionId: any;\r\n\r\n\t}\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 class SignInController extends ScreenControllerBase {\r\n\r\n public username: string;\r\n\r\n\t\tpublic password: string;\r\n\r\n\t\tpublic returnState: angular.ui.IState;\r\n\r\n\t\tpublic returnStateParams: angular.ui.IState;\r\n\r\n\t\tpublic emailRegexp: string;\r\n\r\n public static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\t this.fullWidth = true;\r\n\t\t\tthis.notForWindowsAuthenticationUsers();\r\n\r\n\t\t\tthis.emailRegexp = this.globalSettings.emailRegexp.toString();\r\n\t\t\tthis.title = 'Sign in';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\r\n this.username = this.users.getCurrentUser().emailAddress;\r\n\t\t\tif (!!this.username) {\r\n\t\t\t\tthis.username = this.username.toUpperCase();\r\n\t\t\t}\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\t\t\tdelete this.$sessionStorage.returnStateParams;\r\n\t\t\t//clear existing localstorage\r\n\t\t\tthis.authentication.signOut(false, false);\r\n }\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(true);\r\n\t\t}\r\n\r\n public signIn(): void {\r\n\t this.userMessages.clear();\r\n\r\n\t\t\tthis.busyPromise = this.authentication.signIn(this.username, this.password)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tif (this.returnState) {\r\n\t\t\t\t\t\tthis.$state.go(this.returnState, this.returnStateParams);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.$state.go('Home');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n }\r\n\r\n public useWindowsAuthentication(): boolean {\r\n return this.authentication.useWindowsAuthentication();\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\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\texport class EnumHelperService {\r\n\r\n\t\tpublic getNames(e: any) {\r\n\t\t\treturn Object.keys(e).filter(x => isNaN(parseInt(x, 10)));\r\n\t\t}\r\n\r\n\t\tpublic getValues(e: any) {\r\n\t\t\treturn Object.keys(e).map(x => parseInt(x, 10)).filter(x => !isNaN(x));\r\n\t\t}\r\n\r\n\t\tpublic getNamesAndValues(e: any) {\r\n\t\t\treturn this.getValues(e).map(x => {return {name: e[x] as string, value: x};});\r\n\t\t}\r\n\r\n\t\tpublic hasName(e: any, name: string) {\r\n\t\t\treturn !!this.getNames(e).indexOf(name);\r\n\t\t}\r\n\r\n\t\tpublic hasValue(e: any, value: number) {\r\n\t\t\treturn !!this.getValues(e).indexOf(value);\r\n\t\t}\r\n\r\n\t\tpublic getValue(e: any, name: string) {\r\n\t\t\treturn e[name];\r\n\t\t}\r\n\r\n\t\tpublic getName(e: any, value: number) {\r\n\t\t\treturn e[value];\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.enumHelperService', EnumHelperService);\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 TestPerson {\r\n\t\tconstructor(\r\n\t\t\tpublic firstName: string,\r\n\t\t\tpublic lastName: string,\r\n\t\t\tpublic age: number,\r\n\t\t\tpublic jobTitle: string,\r\n\t\t\tpublic progress: number) {}\r\n\r\n\t\tpublic name = () => `${this.firstName} ${this.lastName}`;\r\n\t\tpublic nameReverse = () => `${this.lastName}, ${this.firstName}`;\r\n\t}\r\n\r\n\tclass UserInterfaceTestsController extends Controllers.ScreenControllerBase {\r\n\r\n\t\tpublic static $inject = ['$injector', 'app.common.services.enumHelperService'];\r\n\r\n\t\tconstructor($injector: angular.auto.IInjectorService, private enumHelper: Common.Services.EnumHelperService) {\r\n\t\t\tsuper($injector);\r\n\r\n\t\t\tthis.title = 'User Interface Tests';\r\n\t\t}\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve(true);\r\n\t\t}\r\n\r\n\t\tpublic errorTest(errorType: string) {\r\n\t\t\tthis.busyPromise = this.api.get({\r\n\t\t\t\tresourceName: 'ErrorTests',\r\n\t\t\t\tparams: { id: errorType }\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic badHostname() {\r\n\t\t\tthis.busyPromise = this.api.get({\r\n\t\t\t\turl: 'http://nonexistentdomain.gov.uk/api/BadData'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic throwRuntimeException(): string {\r\n\t\t\tconst x: any = {};\r\n\t\t\treturn x.foo.bar;\r\n\t\t}\r\n\r\n\t\tpublic badWebApiRoute(): void {\r\n\t\t\tthis.busyPromise = this.api.get({\r\n\t\t\t\tresourceName: 'BadController'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpublic userMessage(message: string, type: string, defer: boolean = false): void {\r\n\t\t\tthis.userMessages.addMessage(`${message} created at ${this\r\n\t\t\t\t.$filter('date')(new Date(), this.globalSettings.preciseDateTimeFormat)}`,\r\n\t\t\t\tthis.enumHelper.getValue(UserMessageType, type),\r\n\t\t\t\tdefer);\r\n\t\t}\r\n\r\n\t\tpublic clearUserMessages() {\r\n\t\t\tthis.userMessages.clear();\r\n\t\t}\r\n\r\n\t\tpublic collectDeferredUserMessages() {\r\n\t\t\tthis.userMessages.collectDeferredMessages();\r\n\t\t}\r\n\r\n\t\tpublic testTableData: TestPerson[] = [\r\n\t\t\tnew TestPerson('Joe', 'Bloggs', 23, 'Farmer', 40),\r\n\t\t\tnew TestPerson('Fred', 'Smith', 9, 'Student', 89),\r\n\t\t\tnew TestPerson('Alice', 'Evans', 32, 'Plumber', 21)\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.userInterfaceTestsController', UserInterfaceTestsController);\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 UserMessagesController {\r\n\r\n\t\tpublic model: Hca.HiLO.Model.IUserMessages;\r\n\r\n\t\tpublic static $inject = ['app.common.services.userMessagesService'];\r\n\r\n\t\tconstructor(userMessages: Common.Services.UserMessagesService) {\r\n\t\t\tthis.model = userMessages.messages;\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\n/// \r\n\r\nmodule App.Common.Controllers {\r\n 'use strict';\r\n\r\n class UserProfileController extends ScreenControllerBase {\r\n\r\n public username: string;\r\n\r\n\t\tpublic password: string;\r\n\r\n\t\tpublic returnState: angular.ui.IState;\r\n\r\n\t\tpublic returnStateParams: angular.ui.IState;\r\n\r\n public static $inject = ['$injector'];\r\n constructor($injector: angular.auto.IInjectorService) {\r\n\t\t\tsuper($injector);\r\n\t this.fullWidth = true;\r\n\t this.notForWindowsAuthenticationUsers();\r\n\r\n\t\t\tthis.title = 'User Profile';\r\n\t\t\tthis.warnOnUnsavedChanges = false;\r\n\r\n this.username = this.users.getCurrentUser().username;\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\t\t\tdelete this.$sessionStorage.returnStateParams;\r\n }\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\treturn this.$q.resolve(true);\r\n\t\t}\r\n\r\n public useWindowsAuthentication(): boolean {\r\n return this.authentication.useWindowsAuthentication();\r\n }\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.controllers')\r\n .controller('app.common.controllers.userProfileController', UserProfileController);\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\t\t\tthis.fullWidth = true;\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\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class AddressFinderDirective implements angular.IDirective {\r\n\r\n\t\tpublic addressFinderDirective() { }\r\n\r\n\t\tpublic restrict = 'E';\r\n\r\n\t\tpublic controller = Common.Controllers.AddressFinderController;\r\n\r\n\t\tpublic controllerAs = 'ap';\r\n\r\n\t\tpublic bindToController = true;\r\n\r\n\t\tpublic transclude = false;\r\n\r\n\t\tpublic template: string;\r\n\r\n public scope = { ngModel: '=', header: '@' } as { [boundProperty: string]: string };\r\n\r\n\t\tpublic require = ['ngModel'];\r\n\r\n public templateUrl = 'Templates/Common/AddressFinderView.html';\r\n\r\n\t}\r\n \r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('addressfinder', () => { return new AddressFinderDirective(); });\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 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 = 'hiloEmail';\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\t\t\treturn 'Your password does not meet the complexity requirements';\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\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.StrongPassword(),\r\n\t\t\t\t\tnew App.Common.Directives.MustBePostcode(globalSettings)\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\n/// \r\n\r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\tclass AutoSaveController {\r\n\t\tpublic autoSaveFormName: string;\r\n\t\tpublic autoSaveFnName: string;\r\n\t\tpublic autoSaveFn:() => angular.IPromise;\r\n\t\tpublic debounce: number = 1500;\r\n\t\tpublic form: angular.IFormController;\r\n\t\tpublic timerReference: number;\r\n\t\tpublic formWatchesCancel: any[] = [];\r\n\r\n\t\tpublic static $inject = ['$scope', '$element', '$attrs'];\r\n\r\n\t\tconstructor(private $scope: angular.IScope, $element: angular.IAugmentedJQuery, private $attrs: angular.IAttributes) {\r\n\t\t\tthis.autoSaveFormName = $element[0]['name'];\r\n\t\t\tthis.autoSaveFnName = this.$attrs['autoSave'];\r\n\t\t\tif (!!($attrs['autoSaveDebounce']) && parseInt($attrs['autoSaveDebounce'],10) > 1000) {\r\n\t\t\t\tthis.debounce = parseInt($attrs['autoSaveDebounce'], 10);\r\n\t\t\t}\r\n\r\n\t\t\tif ($element[0].tagName.toLowerCase() !== 'form') {\r\n\t\t\t\tthrow Error('directive auto-save must be applied on tag
');\r\n\t\t\t}\r\n\t\t\tif (!(!!this.autoSaveFnName)) {\r\n\t\t\t\tthrow Error('attribute auto-save of such directive must have a value - the name of the saving function');\r\n\t\t\t}\r\n\t\t\t//watch the form for changes\r\n\t\t\t$scope.$watch(this.autoSaveFormName, (newVal: angular.IFormController, oldVal: angular.IFormController) => {\r\n\t\t\t\t//remember the updated form\r\n\t\t\t\tthis.form = newVal;\r\n\t\t\t\t//check all fields on the form\r\n\t\t\t\tangular.forEach(this.form, function (value: angular.INgModelController, key: string) {\r\n\t\t\t\t\tif (typeof value === 'object' && value.hasOwnProperty('$modelValue')) {\r\n\t\t\t\t\t\t//define a watch for this field\r\n\t\t\t\t\t\t$scope.$watch(`${this.autoSaveFormName}.${key}.$dirty`, (newVal, oldVal) => {\r\n\t\t\t\t\t\t\t//if the field is dirty\r\n\t\t\t\t\t\t\tif (newVal) {\r\n\t\t\t\t\t\t\t\t//get the field\r\n\t\t\t\t\t\t\t\tlet element = jQuery(`[name='${key}']`);\r\n\t\t\t\t\t\t\t\tif (!!element && element.length > 0) {\r\n\t\t\t\t\t\t\t\t\t//check the field is not ignored by auto-save\r\n\t\t\t\t\t\t\t\t\tif (!element[0].hasAttribute('auto-save-ignore')) {\r\n\t\t\t\t\t\t\t\t\t\t//mark this field as pristine so we can monitor an future changes before the form is saved\r\n\t\t\t\t\t\t\t\t\t\t$scope.$eval(`${this.autoSaveFormName}.${key}`)['$setPristine']();\r\n\t\t\t\t\t\t\t\t\t\t//stop any pending saves\r\n\t\t\t\t\t\t\t\t\t\tclearTimeout(this.timerReference);\r\n\t\t\t\t\t\t\t\t\t\t//queue a save\r\n\t\t\t\t\t\t\t\t\t\tthis.timerReference = setTimeout(this.doSave, this.debounce, this);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t//this field does not trigger auto-save so set the form as pristine\r\n\t\t\t\t\t\t\t\t\t\t$scope.$eval(`${this.autoSaveFormName}`)['$setPristine']();\r\n\t\t\t\t\t\t\t\t\t}\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}, true);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this);\r\n\t\t\t}, true);\r\n\t\t\t//get the reference to the auto-save field on the host controller\r\n\t\t\tthis.getAutoSaveFunction();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Perform a save\r\n\t\t * @param autoSaveController\r\n\t\t */\r\n\t\tpublic doSave(autoSaveController: AutoSaveController): void {\r\n\t\t\ttry {\r\n\t\t\t\t//get a reference to the main form\r\n\t\t\t\tlet element = jQuery(`[name='${autoSaveController.autoSaveFormName}']`);\r\n\t\t\t\tif (!!element && element.length > 0) {\r\n\t\t\t\t\t//add a saving message the to document\r\n\t\t\t\t\tlet style = 'position:fixed;top:0;right:0;';\r\n\t\t\t\t\tstyle += 'margin:5px 5px 0 0;';\r\n\t\t\t\t\tstyle += 'background:#ddd;';\r\n\t\t\t\t\tstyle += 'padding:2px 5px 2px 5px;';\r\n\t\t\t\t\tstyle += 'border-radius:5px 5px 5px 5px;';\r\n\t\t\t\t\telement.append(`
auto saving...
`);\r\n\t\t\t\t}\r\n\t\t\t\t//invoke the save\r\n\t\t\t\tautoSaveController.autoSaveFn().then((success:any) => {\r\n\t\t\t\t\t//saved completed\r\n\t\t\t\t}).catch((error: any) => {\r\n\t\t\t\t\tconsole.error('Error in autoSave!');\r\n\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t}).finally(() => {\r\n\t\t\t\t\t//the save has completed - remove the saving message\r\n\t\t\t\t\tjQuery('#autoSaveSaving').remove();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\t//report the error\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the auto-save function on the host controller\r\n\t\t */\r\n\t\tprivate getAutoSaveFunction(): void {\r\n\t\t\t//split the supplied function \r\n\t\t\tvar parts:any[] = this.$attrs['autoSave'].split('.');\r\n\t\t\tvar bindingContext = this.$scope;\r\n\t\t\tthis.autoSaveFn = this.$scope[parts[0]];\r\n\t\t\tif (parts.length > 1) {\r\n\t\t\t\tfor (var i = 1, l = parts.length; i < l; i++) {\r\n\t\t\t\t\tthis.autoSaveFn = this.autoSaveFn[parts[i]];\r\n\t\t\t\t\tbindingContext = bindingContext[parts[i - 1]];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.autoSaveFn) {\r\n\t\t\t\tthis.autoSaveFn = this.autoSaveFn.bind(bindingContext);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.error('Could not find auto-saving function', this.$attrs['autoSave'], 'on the scope. When specifying the method call, don\\'t need to include the parenthesis and make sure it returns an angular.IProimise.');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport class AutoSaveDirective implements angular.IDirective {\r\n\t\tpublic restrict = 'A';\r\n\t\tpublic scope = false;\r\n\t\tpublic controller = AutoSaveController;\r\n\t}\r\n\r\n\tangular.module('app.common.directives').directive('autoSave', () => { return new AutoSaveDirective(); });\r\n}\r\n","/// \r\nmodule App.Common.Directives {\r\n 'use strict';\r\n\r\n export class Capitalise implements angular.IDirective {\r\n \r\n public restrict = 'A';\r\n public require = '?ngModel';\r\n\r\n public link = (scope:angular.IScope, element:angular.IAugmentedJQuery, attrs:angular.IAttributes, ctrl:any)=>{\r\n \r\n var capitalize = (inputValue:string) => {\r\n if (inputValue == undefined) inputValue = '';\r\n var capitalized = inputValue.toUpperCase();\r\n if (capitalized !== inputValue) {\r\n ctrl.$setViewValue(capitalized);\r\n ctrl.$render();\r\n }\r\n return capitalized;\r\n }\r\n ctrl.$parsers.push(capitalize);\r\n capitalize(scope[attrs['ngModel']]);\r\n\r\n };\r\n\r\n }\r\n\r\n angular\r\n .module('app.common.directives')\r\n .directive('capitalise', () => { return new Capitalise(); });\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 * The click callback function interface. \r\n\t * This callback function should be defined on the parent\r\n\t * with this signature so that OrsumTable can call it.\r\n\t * If click events are to be handled then this value mnust be defined.\r\n\t */\r\n\texport interface IOrsumTableClickCallback {\r\n\t\t(row: any, actionName?: string, ngClickEvent?: angular.IAngularEvent): void\r\n\t}\r\n\r\n\t/**\r\n\t * The filter callback function interface.\r\n\t * This callback function should be defined on the parent\r\n\t * with this signature so that OrsumTable can call it.\r\n\t * If filter events are to be handled within the parent then this value must be defined\r\n\t * otherwise OrsumTable will filter the table using it's inbuilt filtrering mechanism.\r\n\t */\r\n\texport interface IOrsumTableFilterCallBack {\r\n\t\t(filter: string, filterColumn: string): any[]\r\n\t}\r\n\r\n\t/**\r\n\t * The OrsumTable configuratrion\r\n\t */\r\n\texport class OrsumTableConfig {\r\n\t\t/**\r\n\t\t * The unique name assigned to this OrsumTable.\r\n\t\t * Each OrsumTable in a view should have a unique name.\r\n\t\t */\r\n\t\tpublic uniqueName: string;\r\n\t\t/**\r\n\t\t * The configuration of each column in the table\r\n\t\t */\r\n\t\tpublic columns: IOrsumTableColumnConfig[];\r\n\t\t/**\r\n\t\t * The rows of data.\r\n\t\t * PLEASE NOTE: If this is null then webApiConfig must be provided.\r\n\t\t */\r\n\t\tpublic rows: any[];\r\n\t\t/**\r\n\t\t * An expression to be added to the ng-click attribute on each table row\r\n\t\t */\r\n\t\tpublic rowClick: string = null;\r\n\t\t/**\r\n\t\t* The initialize \r\n\t\t*/\r\n\t\tpublic orsumTableController: OrsumTableController;\r\n\t\t/**\r\n\t\t* The callback function that will be called on the\r\n\t\t* parent when a clickable object is activated.\r\n\t\t*/\r\n\t\tpublic clickCallBack: string; //IOrsumTableClickCallback;\r\n\t\t/**\r\n\t\t* The callback function that will be called on the\r\n\t\t* parent when the user is filtering the data.\r\n\t\t* If this value is null then OrsumTable will perform it's own filtering.\r\n\t\t*/\r\n\t\tpublic filterCallBack: string; //IOrsumTableFilterCallBack;\r\n\t\t/**\r\n\t\t * The host controller which is hosting the OrsumTable configuration\r\n\t\t */\r\n\t\tpublic hostController: any;\r\n\t\t/**\r\n\t\t * Add a specific class to table when Orsum table is shown on modal pop-up only\r\n\t\t */\r\n\t\tpublic tableClass: string;\r\n\t}\r\n\r\n\t/**\r\n\t * The OrsumTable column configuration\r\n\t */\r\n\texport interface IOrsumTableColumnConfig {\r\n\t\t/**\r\n\t\t * The original column id as it appears in the view model\r\n\t\t */\r\n\t\tcolumnId: string;\r\n\t\t/**\r\n\t\t * The column display as it should appear in the column header\r\n\t\t */\r\n\t\tcolumnDisplayName: string;\r\n\t\t/**\r\n\t\t * The column display template. This can be a combinition of html and angular.\r\n\t\t * The basic format to display the view model id column would be {{row[\"id\"]}}.\r\n\t\t * The term row must be used as the \"row\" is used in the parent ng-repeat=\"row in tableData\"\r\n\t\t */\r\n\t\tcolumnDisplayTemplate?: string;\r\n\r\n\t\tcolumnDisplayTemplateHtml?: string;\r\n\r\n\t\tnotSortable?: boolean;\r\n\r\n\t\tnotClickable?: boolean;\r\n\r\n\t\tnotGroupable?: boolean;\r\n}\r\n\r\n\t/**\r\n\t * A single group of related rows\r\n\t */\r\n\texport class OrsumTableGroup {\r\n\t\tpublic groupData: T[];\r\n\t\tpublic groupKey: string;\r\n\t\tconstructor() {\r\n\t\t\tthis.groupData = [];\r\n\t\t\tthis.groupKey = '';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A number of groups of grouped rows\r\n\t */\r\n\texport class OrsumTableGroupedData {\r\n\t\tpublic numberOfGroups: number;\r\n\t\tpublic groups: OrsumTableGroup[];\r\n\r\n\t\tconstructor() {\r\n\t\t\tthis.numberOfGroups = 0;\r\n\t\t\tthis.groups = [];\r\n\t\t}\r\n\r\n\t\tpublic reset(): void {\r\n\t\t\tthis.numberOfGroups = 0;\r\n\t\t\tthis.groups = [];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The main controller for OrsumTable\r\n\t */\r\n\texport class OrsumTableController {\r\n\t\t//required dependencies\r\n\t\tpublic static $inject = ['$rootScope', '$scope', '$injector'];\r\n\t\t//required web api service\r\n\t\tpublic api: Common.Services.ApiService;\r\n\t\t//the configuration for the table and source of table data\r\n\t\tprivate configuration: OrsumTableConfig;\r\n\t\t//the grouped, sorted and filtered data \r\n\t\tprivate groupedTableData = new OrsumTableGroupedData();\r\n\t\t//the id of this instance of OrsumTable\r\n\t\tprivate thisOrsumTableId: number;\r\n\r\n\t\t//the column by which to sort the data and the direction\r\n\t\tpublic sortByColumnId: string;\r\n\t\tpublic sortByColumnReverse = false;\r\n\t\t//the column by which to group the data and indication if grouping has been selected\r\n\t\tpublic groupByColumnId: string;\r\n\t\tpublic groupByColumnSelected = false;\r\n\t\t//the filter string, the column by which to filter the data and indication if filter has been selected\r\n\t\tpublic filterBy: string;\r\n\t\tpublic filterByColumnId: string;\r\n\t\tpublic filterByColumnSelected = false;\r\n\t\t//the column header names found from the first row of the data\r\n\t\tpublic rowColumns: string[];\r\n\t\t//flag to indicate that the data has been provided\r\n\t\tpublic hasInitialised = false;\r\n\t\t/**\r\n\t\t * Create instance of this controller\r\n\t\t * @param $rootScope\r\n\t\t * @param $scope\r\n\t\t * @param $injector\r\n\t\t */\r\n\t\tconstructor(private $rootScope: any, private $scope: any, $injector: angular.auto.IInjectorService) {\r\n\t\t\tthis.api = $injector.get('app.common.services.apiService');\r\n\t\t\tthis.configuration = $scope.ostConfig;\r\n\t\t\t//assign the initialize method so it can be called by the parent controller\r\n\t\t\tthis.configuration.orsumTableController = this;\r\n\t\t\t//call the initialise\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Initialize the controller with the data that must be displayed in the table\r\n\t\t * @param data\r\n\t\t */\r\n\t\tpublic initialize(data?: any[]): void {\r\n\t\t\tif (!!data) {\r\n\t\t\t\tthis.configuration.rows = data;\r\n\t\t\t\tthis.groupedTableData = this.groupSortFilterRawData(this.configuration.rows, this.groupByColumnId, this.sortByColumnId);\r\n\t\t\t\tthis.rowColumns = this.getColumnHeaders();\r\n\t\t\t\tthis.hasInitialised = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Gets the field names from the first row of the data\r\n\t\t * and returns them as column headers\r\n\t\t */\r\n\t\tpublic getColumnHeaders(exclude?: string): string[] {\r\n\t\t\tlet result: string[] = [];\r\n\t\t\tif (this.configuration.rows && this.configuration.rows[0]) {\r\n\t\t\t\tlet keys = Object.keys(this.configuration.rows[0]);\r\n\t\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\t\tif (keys[i].substr(0, 1) !== '$' && keys[i] !== exclude) {\r\n\t\t\t\t\t\tresult.push(keys[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Sets the grouping criteria for the table data \r\n\t\t * @param groupBy\r\n\t\t */\r\n\t\tpublic setGroupBy(groupBy: string): void {\r\n\t\t\tthis.groupByColumnSelected = false;\r\n\t\t\tthis.groupByColumnId = null;\r\n\t\t\tif (!!(groupBy) && groupBy !== 'None') {\r\n\t\t\t\tthis.groupByColumnSelected = true;\r\n\t\t\t\tthis.groupByColumnId = groupBy;\r\n\t\t\t}\r\n\t\t\tthis.getRows(this.groupByColumnId, this.sortByColumnId, this.filterBy);\r\n\t\t\tthis.reset();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Sets the sort order of data within a group\r\n\t\t * @param sortBy\r\n\t\t */\r\n\t\tpublic setSortBy(sortBy: string): void {\r\n\t\t\tif (sortBy === this.sortByColumnId && this.sortByColumnReverse) {\r\n\t\t\t\tthis.sortByColumnReverse = false;\r\n\t\t\t\tthis.sortByColumnId = null;\r\n\t\t\t} \r\n\t\t\telse if (sortBy === this.sortByColumnId) {\r\n\t\t\t\tthis.sortByColumnReverse = !this.sortByColumnReverse;\r\n\t\t\t} else {\r\n\t\t\t\tthis.sortByColumnId = sortBy;\r\n\t\t\t\tthis.sortByColumnReverse = false;\r\n\t\t\t}\r\n\t\t\tthis.recalcTableData();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Set the filter field\r\n\t\t * @param filterBy\r\n\t\t */\r\n\t\tpublic setFilterBy(filterByColumnId: string): void {\r\n\t\t\tthis.filterByColumnSelected = false;\r\n\t\t\tthis.filterByColumnId = null;\r\n\t\t\tif (!!(filterByColumnId) && filterByColumnId !== 'All Columns') {\r\n\t\t\t\tthis.filterByColumnSelected = true;\r\n\t\t\t\tthis.filterByColumnId = filterByColumnId;\r\n\t\t\t}\r\n\t\t\tthis.recalcTableData();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Perform the filter search\r\n\t\t */\r\n\t\tpublic recalcTableData(): void {\r\n\t\t\tthis.getRows(this.groupByColumnId, this.sortByColumnId, this.filterBy);\r\n\t\t\tthis.reset();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Gets the number of groups found with the current groupBy clause\r\n\t\t */\r\n\t\tpublic getNumberOfGroups(): number {\r\n\t\t\treturn this.groupedTableData.numberOfGroups;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get an zero based array of integers representing the group indexes.\r\n\t\t * This is used to iterate through all available groups\r\n\t\t * @param numberOfGroups\r\n\t\t */\r\n\t\tpublic getGroupIndex(numberOfGroups: number): number[] {\r\n\t\t\tlet result: number[] = [];\r\n\t\t\tfor (var i = 0; i < numberOfGroups; i++) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the group of rows contained within the indexed group\r\n\t\t * @param index\r\n\t\t */\r\n\t\tpublic getGroup(index: number): any[] {\r\n\t\t\tif (this.groupedTableData.numberOfGroups >= 1) {\r\n\t\t\t\treturn this.groupedTableData.groups[index].groupData;\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the value by which the indexed group of rows is grouped\r\n\t\t * @param index\r\n\t\t */\r\n\t\tpublic getGroupKey(index: number): string {\r\n\t\t\tif (this.groupedTableData.numberOfGroups >= 1) {\r\n\t\t\t\treturn this.groupedTableData.groups[index].groupKey;\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the total number of rows in the data\r\n\t\t */\r\n\t\tpublic getTotalRows(): number {\r\n\t\t\tlet rows = 0;\r\n\t\t\tif (!!this.configuration && !!this.configuration.rows) {\r\n\t\t\t\trows = this.configuration.rows.length;\r\n\t\t\t}\r\n\t\t\treturn rows;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Toggle the state of Expand or Collapse on the grouped rows\r\n\t\t * @param target\r\n\t\t */\r\n\t\tpublic expandCollapseToggle(target: any): void {\r\n\t\t\tif (!!(target)) {\r\n\t\t\t\tlet id = `#expalapse${target.$id}`;\r\n\t\t\t\tjQuery(id).toggleClass('expand').toggleClass('collapsed').nextUntil('tr.groupHeader').slideToggle(100);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Setup the view\r\n\t\t * @param target\r\n\t\t */\r\n\t\tpublic registerTable(id: number): void {\r\n\t\t\tthis.thisOrsumTableId = id;\r\n\t\t\t//for (var i = 0; i < this.configuration.columns.length; i++) {\r\n\t\t\t//\tlet selector = `#colHeader${this.configuration.columns[i].columnId}`;\r\n\t\t\t//}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the display name for the provided view model name\r\n\t\t * @param clmnHdr\r\n\t\t */\r\n\t\tpublic getColumnDisplayName(clmnHdr: string): string {\r\n\t\t\tlet result = clmnHdr;\r\n\t\t\tfor (var i = 0; i < this.configuration.columns.length; i++) {\r\n\r\n\t\t\t\tif (this.configuration.columns[i].columnId === clmnHdr) {\r\n\t\t\t\t\tresult = this.configuration.columns[i].columnDisplayName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tpublic getColumnDisplayFormat(clmnHdr: string): string {\r\n\t\t\tlet result = `{{${clmnHdr}}}`;\r\n\t\t\tfor (var i = 0; i < this.configuration.columns.length; i++) {\r\n\t\t\t\tif (this.configuration.columns[i].columnId === clmnHdr) {\r\n\t\t\t\t\tresult = this.configuration.columns[i].columnDisplayTemplate;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Invoke the viewModel.Method(params) which is expected to reside on the scope.$parent\r\n\t\t * Note - if this directive is nested within another directive then it may be necessary to iterate\r\n\t\t * down through the $parent until the .$scope.$parent.....$parent[viewModel] is located\r\n\t\t * @param viewModelMethod\r\n\t\t * @param params\r\n\t\t */\r\n\t\tpublic clickCallBack(row: any, actionName: string, ngClickEvent?: angular.IAngularEvent): void {\r\n\t\t\tif (!!this.configuration.clickCallBack) {\r\n\t\t\t\tif (ngClickEvent !== undefined) {\r\n\t\t\t\t\tthis.configuration.hostController[this.configuration.clickCallBack](row, actionName, ngClickEvent);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.configuration.hostController[this.configuration.clickCallBack](row, actionName);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.recalcTableData();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Reset the collapsed groups to expanded\r\n\t\t */\r\n\t\tprivate reset(): void {\r\n\t\t\tjQuery(`#orsumTable${this.thisOrsumTableId} .groupHeader.collapsed`).toggleClass('expand').nextUntil('tr.groupHeader').slideToggle(100);\r\n\t\t\tjQuery(`#orsumTable${this.thisOrsumTableId} .groupHeader.collapsed`).toggleClass('collapsed');\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Returns the table data grouped and sorted \r\n\t\t */\r\n\t\tprivate getRows(groupBy: string, sortBy: string, filterBy: string): void {\r\n\t\t\tthis.groupedTableData = this.groupSortFilterRawData(this.configuration.rows, groupBy, sortBy, filterBy);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Filter the rawData return rows containing the supplied filter\r\n\t\t * @param rawData\r\n\t\t * @param filterBy\r\n\t\t */\r\n\t\tprivate filterRawData(rawData: any[], filterBy?: string): any[] {\r\n\t\t\tif (!!(filterBy) && filterBy.length > 0) {\r\n\t\t\t\trawData = _.filter(rawData, (item: any) => {\r\n\t\t\t\t\tlet result = false;\r\n\t\t\t\t\tlet fields = this.getColumnHeaders();\r\n\t\t\t\t\tif (!!(this.filterByColumnId)) {\r\n\t\t\t\t\t\t//we have a filter by column - only check for matches in the specified column\r\n\t\t\t\t\t\tif (item[this.filterByColumnId].toString().toLowerCase().indexOf(filterBy.toLowerCase()) !== -1) {\r\n\t\t\t\t\t\t\tresult = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//search for matches in all columns\r\n\t\t\t\t\t\tfor (var k = 0; k < fields.length; k++) {\r\n\t\t\t\t\t\t\tif (!!(item[fields[k]]) && item[fields[k]].toString().toLowerCase().indexOf(filterBy.toLowerCase()) !== -1) {\r\n\t\t\t\t\t\t\t\tresult = true;\r\n\t\t\t\t\t\t\t\tbreak;\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\treturn result;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn rawData;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Group the raw data, by the groupBy, into the OrsumTableGroupedData\r\n\t\t * @param rawData\r\n\t\t * @param groupBy\r\n\t\t */\r\n\t\tprivate groupRawData(rawData: any[], groupBy?: string): OrsumTableGroupedData {\r\n\t\t\tlet result = new OrsumTableGroupedData();\r\n\t\t\tlet group = new OrsumTableGroup();\r\n\t\t\tif (!!(groupBy)) {\r\n\t\t\t\t//sort data by the specified group\r\n\t\t\t\tlet sortByGroupByResult = _.sortBy(rawData, groupBy);\r\n\t\t\t\tfor (var i = 0; i < sortByGroupByResult.length; i++) {\r\n\t\t\t\t\t//look if we have detected a new group\r\n\t\t\t\t\tif ((i === 0) || (this.getKeyValue(sortByGroupByResult[i], groupBy) !== this.getKeyValue(sortByGroupByResult[i - 1], groupBy))) {\r\n\t\t\t\t\t\t//save the last group\r\n\t\t\t\t\t\tresult.groups.push(group);\r\n\t\t\t\t\t\t//create a new group\r\n\t\t\t\t\t\tgroup = new OrsumTableGroup();\r\n\t\t\t\t\t\tresult.numberOfGroups += 1;\r\n\t\t\t\t\t\tgroup.groupKey = this.getKeyValue(sortByGroupByResult[i], groupBy);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//push the data into the current group\r\n\t\t\t\t\tgroup.groupData.push(sortByGroupByResult[i]);\r\n\t\t\t\t}\r\n\t\t\t\t//save the last group\r\n\t\t\t\tresult.groups.push(group);\r\n\t\t\t\t//drop the first, empty group\r\n\t\t\t\tresult.groups.shift();\r\n\t\t\t} else {\r\n\t\t\t\t//no grouping - all in 1 group\r\n\t\t\t\tresult.numberOfGroups = 1;\r\n\t\t\t\tgroup.groupData = rawData;\r\n\t\t\t\tresult.groups.push(group);\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Sort the rows by the sortBy within each of the groups\r\n\t\t * @param groupedTableData\r\n\t\t * @param sortBy\r\n\t\t */\r\n\t\tprivate sortGroupedTableData(groupedTableData: OrsumTableGroupedData, sortBy?: string): OrsumTableGroupedData {\r\n\t\t\tif (!!(sortBy)) {\r\n\t\t\t\t//sort each group\r\n\t\t\t\tfor (var j = 0; j < groupedTableData.groups.length; j++) {\r\n\t\t\t\t\tgroupedTableData.groups[j].groupData = _.sortBy(groupedTableData.groups[j].groupData, sortBy);\r\n\t\t\t\t\t//reverse the order if required\r\n\t\t\t\t\tif (this.sortByColumnReverse) {\r\n\t\t\t\t\t\tgroupedTableData.groups[j].groupData.reverse();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn groupedTableData;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Return the rawData after it has been grouped and sorted\r\n\t\t * @param rawData\r\n\t\t * @param groupBy\r\n\t\t * @param sortBy\r\n\t\t * @param filterBy\r\n\t\t */\r\n\t\tprivate groupSortFilterRawData(rawData: any[], groupBy?: string, sortBy?: string, filterBy?: string): OrsumTableGroupedData {\r\n\t\t\tlet result: OrsumTableGroupedData;\r\n\t\t\t//Step 1 - filter the data\r\n\t\t\tif (!!this.configuration.filterCallBack) {\r\n\t\t\t\t//call the parent filterby function\r\n\t\t\t\t//the parent will filter and set the data into the rows\r\n\t\t\t\trawData = this.configuration.hostController[this.configuration.filterCallBack](filterBy, this.filterByColumnId);\r\n\t\t\t} else {\r\n\t\t\t\trawData = this.filterRawData(rawData, filterBy);\r\n\t\t\t}\r\n\t\t\t//Step 2 - Perform the groupBy\r\n\t\t\tresult = this.groupRawData(rawData, groupBy);\r\n\t\t\t//Step 3 - perform the sort by\r\n\t\t\tresult = this.sortGroupedTableData(result, sortBy);\r\n\t\t\t//return the results\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the value of the key from object\r\n\t\t * @param object\r\n\t\t * @param key\r\n\t\t */\r\n\t\tprivate getKeyValue(object: Object, key: string): any {\r\n\t\t\tlet result: any = null;\r\n\t\t\tif (!!(object)) {\r\n\t\t\t\tresult = object[key];\r\n\t\t\t}\r\n\t\t\treturn result;\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.orsumTableController', OrsumTableController);\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.Directives {\r\n\t'use strict';\r\n\r\n\texport class OrsumTableDirective implements angular.IDirective {\r\n\t\tprivate uniqueName: string;\r\n\r\n\t\tpublic static $inject = ['$compile'];\r\n\r\n\t\tpublic constructor(private $compile: any) {\r\n\t\t}\r\n\r\n\t\tpublic restrict = 'E';\r\n\r\n\t\tpublic controller = Common.Controllers.OrsumTableController; //['$scope', '$injector', 'navigationHelper', Common.Controllers.OrsumTableController];\r\n\r\n\t\tpublic controllerAs = 'ost';\r\n\r\n\t\tpublic bindToController = false;\r\n\r\n\t\tpublic transclude = false;\r\n\r\n\t\tpublic scope: boolean | { [index: string]: string; } = { 'ostConfig': '=' };\r\n\r\n\t\tpublic link = (scope: angular.IScope, element: angular.IAugmentedJQuery, attrs: angular.IAttributes, ctrl: any, compile: any) => {\r\n\t\t\tlet config = scope['ostConfig'];\r\n\t\t\tthis.uniqueName = scope['ostConfig']['uniqueName'];\r\n\t\t\tlet html = this.getTemplate(config);\r\n\t\t\telement[0].innerHTML = html;\r\n\t\t\tthis.$compile(element.contents())(scope);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * No template is specified as it is modified and set in the Link function\r\n\t\t */\r\n\t\tpublic template = '';\r\n\r\n\t\t/**\r\n\t\t * Generate the html template, modifying the html with the supplied configuration\r\n\t\t * @param config\r\n\t\t */\r\n\t\tprivate getTemplate(config: Common.Controllers.OrsumTableConfig): string {\r\n\t\t\tlet i = 0;\r\n\t\t\tlet result = '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
    ';\r\n\t\t\tresult += '
  • All Columns
  • ';\r\n\t\t\tresult += '
  • ';\r\n\t\t\tfor (i = 0; i < config.columns.length; i++) {\r\n\t\t\t\tif (!config.columns[i].notSortable) {\r\n\t\t\t\t\tresult += `
  • ${config.columns[i].columnDisplayName}
  • `;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '
';\r\n\t\t\tresult += '';\r\n\t\t\tif (!!config.tableClass) {\r\n\t\t\t\tresult += ``;\r\n\t\t\t}\r\n\t\t\telse result += '
';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tfor (i = 0; i < config.columns.length; i++) {\r\n\t\t\t\tresult += `';\r\n\t\t\t}\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\t//display initialising if no data provided\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tresult += ``;\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\t//display no rows if no rows\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tresult += ``;\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\t//display rows of grouped data if rows found\r\n\t\t\tresult += ' 0\" ng-repeat=\"i in ost.getGroupIndex(ost.getNumberOfGroups()) track by $index\">';\r\n\t\t\tresult += ' 1\" id=\"expandable\" class=\"group-header expand\" ng-click=\"ost.expandCollapseToggle(this)\">';\r\n\t\t\tresult += ``;\r\n\t\t\tresult += '';\r\n\t\t\tresult += ``;\r\n\t\t\tfor (i = 0; i < config.columns.length; i++) {\r\n\t\t\t\tvar click = `${(config.rowClick && !config.columns[i].notClickable ? ` ng-click=\"${config.rowClick}\"` : '')}`;\r\n\t\t\t\tif (config.columns[i].columnDisplayTemplate) {\r\n\t\t\t\t\tresult += `${config.columns[i].columnDisplayTemplate}`;\r\n\t\t\t\t} else if (config.columns[i].columnDisplayTemplateHtml) {\r\n\t\t\t\t\tresult += ``;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult += ` `;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tresult += '';\r\n\t\t\tresult += '';\r\n\t\t\tresult += '
`;\r\n\t\t\t\tif (!config.columns[i].notSortable) {\r\n\t\t\t\t\tresult += ``;\r\n\t\t\t\t}\r\n\t\t\t\tresult += config.columns[i].columnDisplayName;\r\n\t\t\t\tif (!config.columns[i].notSortable) {\r\n\t\t\t\t\tresult += '';\r\n\t\t\t\t}\r\n\t\t\t\tresult += '
Waiting for the data to initialise...
No data
{{ost.getGroupKey($index)}}
';\r\n\t\t\tresult += '
';\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Generate the table td's, one for each column in the config\r\n\t\t * @param config\r\n\t\t */\r\n\t\tprivate generateTemplateRowTd(config: Common.Controllers.OrsumTableConfig): string {\r\n\t\t\tlet result = '';\r\n\t\t\tif (!!(config)) {\r\n\t\t\t\tfor (var i = 0; i < config.columns.length; i++) {\r\n\t\t\t\t\tresult += `${config.columns[i].columnDisplayTemplate}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfactory.$inject = ['$compile'];\r\n\t/**\r\n\t * factory method used so that $compile can be injected\r\n\t * @param $compile\r\n\t */\r\n\tfunction factory($compile: angular.ICompileProvider) {\r\n\t\treturn new OrsumTableDirective($compile);\r\n\t}\r\n\r\n\tangular.module('app.common.directives').directive('orsumTable', factory);\r\n}\r\n\r\n\r\n","/// \r\nmodule App.Common.Directives {\r\n\t'use strict';\r\n\r\n\texport class PageHeading implements angular.IDirective {\r\n\r\n\t\tpublic template: string;\r\n\r\n public scope = {\r\n titleSecondary: '@',\r\n titlePrimary: '@'\r\n\t\t} as { [boundProperty: string]: string };\r\n\r\n constructor() {\r\n this.template =\r\n\t\t\t\t'
' + \r\n\t\t\t\t'
' +\r\n\t\t\t\t\t'

{{titlePrimary}}

' +\r\n\t\t\t\t\t'

{{titleSecondary}}

' +\r\n\t\t\t\t'
' +\r\n\t\t\t'
';\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('pageHeading', () => { return new PageHeading(); });\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\tclass UserMessagesDirective implements angular.IDirective {\r\n\r\n\t\tpublic restrict = 'E';\r\n\r\n\t\tpublic controller = Common.Controllers.UserMessagesController;\r\n\r\n\t\tpublic controllerAs = 'vm';\r\n\r\n\t\tpublic bindToController = true;\r\n\r\n\t\tpublic scope = {} as { [boundProperty: string]: string };\r\n\r\n\t\tpublic templateUrl = 'Templates/Common/UserMessagesView.html';\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('userMessages', () => {return new UserMessagesDirective();});\r\n}","/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Filters {\r\n\t'use strict';\r\n\r\n\tfunction filter(bytes: number, precision: number = 2): string {\r\n\t\tif (isNaN(parseFloat(bytes as any)) || !isFinite(bytes)) { return ''; }\r\n\t\tif (typeof precision === 'undefined') { precision = 1; }\r\n\t\tvar units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'],\r\n\t\t\tnumber = Math.floor(Math.log(bytes) / Math.log(1024));\r\n\t\treturn (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number];\r\n\t};\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('bytes', [() => {return filter;}]);\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: number): Date {\r\n\t\tif (!input) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!/^\\d{4}$/.test(input.toString())) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn new Date(input + 1, 2, 31);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('financialYearEnd', [() => {return filter;}]);\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: number): string {\r\n\t\tif (!input) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tif (!/^\\d{4}$/.test(input.toString())) {\r\n\t\t\treturn input.toString();\r\n\t\t}\r\n\t\treturn `${input}/${(input + 1).toString().substr(2)}`;\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('financialYear', [() => {return filter;}]);\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: number): Date {\r\n\t\tif (!input) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!/^\\d{4}$/.test(input.toString())) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn new Date(input, 3, 1);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('financialYearStart', [() => {return filter;}]);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Filters {\r\n\t'use strict';\r\n\r\n\texport class HcaDateFilter {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\t\tconstructor($filter: ng.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\treturn (input: Date): string => {\r\n\t\t\t\tvar angularDateFilter = $filter('date');\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\treturn angularDateFilter(input, globalSettings.shortDateFormat, 'UTC');\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn '';\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.filters')\r\n\t\t.filter('hcaDate', HcaDateFilter);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Filters {\r\n\t'use strict';\r\n\r\n\texport class HcaDateTimeFilter {\r\n\r\n\t\tpublic static $inject = ['$filter', 'app.common.services.globalSettingsService'];\r\n\t\tconstructor($filter: ng.IFilterService, globalSettings: Common.Services.GlobalSettingsService) {\r\n\t\t\treturn (input: Date): string => {\r\n\t\t\t\tvar angularDateFilter = $filter('date');\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\treturn angularDateFilter(input, globalSettings.shortDateTimeFormat);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn '';\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.filters')\r\n\t\t.filter('hcaDate', HcaDateFilter);\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\n\r\nmodule App.Common.Filters {\r\n\t'use strict';\r\n\r\n\tfunction filter(input: Hca.HiLO.ViewModel.IAddressViewModel, nonHtml: boolean): string {\r\n\t\tif (!input) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tvar addressLines = [\r\n\t\t\tinput.line1,\r\n\t\t\tinput.line2,\r\n\t\t\tinput.line3,\r\n\t\t\tinput.line4,\r\n\t\t\tinput.townOrCity,\r\n\t\t\tinput.county,\r\n\t\t\tinput.postcode\r\n\t\t];\r\n\r\n\t\treturn _.compact(addressLines).join(nonHtml ? '\\n' : '
');\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('multilineAddress', [() => { return filter; }]);\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: Hca.HiLO.ViewModel.IAddressViewModel): string {\r\n\t\tif (!input) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tvar addressLines = [\r\n\t\t\tinput.line1,\r\n\t\t\tinput.line2,\r\n\t\t\tinput.line3,\r\n\t\t\tinput.line4,\r\n\t\t\tinput.townOrCity,\r\n\t\t\tinput.county\t\t\t\r\n\t\t];\r\n\r\n\t\t//compact\r\n\t\tvar addressLinesCompacted = _.compact(addressLines).join(', ');\r\n\t\tvar postCodeCompacted = _.compact([input.postcode]);\r\n\r\n\t\t//concatinate\r\n\t\tvar singleLine = `${addressLinesCompacted} ${postCodeCompacted}`;\r\n\r\n\t\t//ensure there is no double commas or spaces\r\n\t\tsingleLine = singleLine.replace(`,,`, `,`).replace(` `, ` `);\r\n\t\r\n\t\treturn singleLine.trim();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('singlelineAddress', [() => { return filter; }]);\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: boolean): string {\r\n\t\treturn input ? 'Yes' : 'No';\r\n\t};\r\n\r\n\tangular\r\n\t\t.module('app.common.filters')\r\n\t\t.filter('yesNo', [() => {return filter;}]);\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\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\nmodule App.Common.Services {\r\n\t'use strict';\r\n\r\n\tinterface IEnumItemHash {\r\n\t\t[key: string]: IEnumLookupItem;\r\n\t}\r\n\r\n class EnumDataService {\r\n\r\n public api: Services.ApiService;\r\n public $q: angular.IQService;\r\n public $sessionStorage: Common.ISessionStorage;\r\n\r\n public static $inject = ['$injector'];\r\n\r\n constructor(public $injector: angular.auto.IInjectorService) {\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.$q = $injector.get('$q');\r\n this.$sessionStorage = $injector.get('$sessionStorage');\r\n }\r\n }\r\n\r\n angular\r\n\t\t.module('app.common.services')\r\n\t\t.service('app.common.services.enumDataService', EnumDataService);\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 ModalService {\r\n\r\n\t\tpublic static $inject = [\r\n\t\t\t'$uibModal',\r\n\t\t\t'app.common.services.errorHandlerService'];\r\n\t\tconstructor(\r\n\t\t\tprotected $uibModal: angular.ui.bootstrap.IModalService,\r\n\t\t\tprotected errorHandler: Services.ErrorHandlerService\r\n\t\t) { }\r\n\r\n\t\tpublic modalWindow: angular.ui.bootstrap.IModalServiceInstance;\r\n\r\n\t\tpublic messageBox(\r\n\t\t\ttitle: string,\r\n\t\t\tmessage: string,\r\n\t\t\toutcomes: DialogOutcome[] = [DialogOutcome.ok],\r\n\t\t\tcanDismissWithBackdropClick = false,\r\n\t\t\tcanDismissWithEscapeKey = false,\r\n\t\t\tsize = BootstrapSize.Medium) {\r\n\t\t\treturn this.open(new MessageBoxConfig(title, message, outcomes, canDismissWithBackdropClick, canDismissWithEscapeKey, size));\r\n\t\t}\r\n\r\n\t\tpublic open(config: T): angular.ui.bootstrap.IModalServiceInstance {\r\n\r\n\t\t\t//Prevent modal dialogs 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 modalSettings = {} as angular.ui.bootstrap.IModalSettings;\r\n\t\t\tvar modalConfig = config.toModalDialogConfig();\r\n\r\n\t\t\tmodalSettings.animation = true;\r\n\t\t\tmodalSettings.scope = modalConfig.scope;\r\n\t\t\tif (!modalConfig.canDismissWithBackdropClick) {\r\n\t\t\t\tmodalSettings.backdrop = 'static';\r\n\t\t\t}\r\n\t\t\tmodalSettings.keyboard = modalConfig.canDismissWithEscapeKey;\r\n\t\t\tmodalSettings.controller = modalConfig.controller;\r\n\t\t\tif (modalSettings.controller) {\r\n\t\t\t\tmodalSettings.controllerAs = 'vm';\r\n\t\t\t\tmodalSettings.bindToController = true;\r\n\t\t\t}\r\n\t\t\tmodalSettings.component = modalConfig.component;\r\n\t\t\tmodalSettings.template = modalConfig.template;\r\n\t\t\tmodalSettings.templateUrl = modalConfig.templateUrl;\r\n\t\t\tmodalSettings.resolve = {\r\n\t\t\t\tconfig: config,\r\n\t\t\t\tmodalConfig: modalConfig\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tswitch (modalConfig.size) {\r\n\t\t\t\tcase BootstrapSize.Large:\r\n\t\t\t\t\tmodalSettings.size = 'lg';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase BootstrapSize.Medium:\r\n\t\t\t\t\tmodalSettings.size = 'md';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase BootstrapSize.Small:\r\n\t\t\t\t\tmodalSettings.size = 'sm';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tmodalSettings.size = 'sm';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.modalWindow = this.$uibModal.open(modalSettings);\r\n\r\n\t\t\treturn this.modalWindow;\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.modalService', ModalService);\r\n}","","/// \r\nmodule App.HiLO.Controllers {\r\n\r\n export enum ExclusionList {\r\n none = 0,\r\n charges = 1,\r\n target = 2\r\n }\r\n\r\n\texport class SimpleFile{\r\n public name: string;\r\n public description: string;\r\n public isRequired:boolean = true;\r\n public hasUploaded: boolean = false;\r\n\t\tpublic isAdditional: boolean = false;\r\n\t\tpublic skipped: boolean = false;\r\n }\r\n \r\n\r\n 'use strict';\r\n export abstract class HiLOControllerBase extends App.Common.Controllers.ScreenControllerBase {\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 extraDocument: SimpleFile = { name: 'Additional Documents', description: 'Supporting Document', hasUploaded: false, isAdditional: true, isRequired: false, skipped: false };\r\n public extraFileCounter = 0;\r\n\r\n public model: T;\r\n public refNumberService: App.HiLO.Services.ReferenceNumberService;\r\n public referenceDataService: App.HiLO.Services.ReferenceDataService;\r\n public currentSection: number;\r\n public uploadedFiles: string[];\r\n public enableContinue: boolean;\r\n public filesToUpload: SimpleFile[];\r\n\r\n public currentUpload: string;\r\n public isNotExcluded: boolean;\r\n public warningMessage: string;\r\n public ExclusionList = ExclusionList;\r\n public showAddtionalUpload: boolean;\r\n public today: Date;\r\n\r\n public predecessorOrgs: {name: string}[] = [];\r\n\r\n constructor(public $injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.currentSection = 0;\r\n this.uploadedFiles = [];\r\n this.refNumberService = $injector.get('app.hilo.services.referenceNumberService');\r\n this.referenceDataService = $injector.get('app.hilo.services.referenceDataService');\r\n this.today = new Date();\r\n this.showAddtionalUpload = false;\r\n\t\t\tthis.referenceDataService.getData().then((response) => {\r\n this.predecessorOrgs = <{name: string}[]>response.data;\r\n });\r\n }\r\n\r\n public currentFormName: string = 'preReq';\r\n\r\n protected mainForm() {\r\n // return this.formHelper.mainForm();\r\n return this.formHelper.getFormController(this.currentFormName);\r\n }\r\n\r\n public setContinueState(value: boolean): void {\r\n this.enableContinue = value;\r\n }\r\n\r\n public requiredDocs(): number {\r\n\t return _.filter(this.filesToUpload, ['isRequired', true]).length;\r\n }\r\n\r\n public requiredDocsUploaded() {\r\n return _.filter(this.filesToUpload, { 'hasUploaded': true, 'isRequired': true }).length === this.requiredDocs();\r\n }\r\n\r\n public docsUploaded(): boolean {\r\n return _.filter(this.filesToUpload, { 'hasUploaded': true }).length ===this.filesToUpload.length;\r\n }\r\n\r\n public setProviderSchemes(provider: ExclusionList) {\r\n\r\n switch (provider) {\r\n case ExclusionList.none:\r\n this.isNotExcluded = true;\r\n this.model.isNotExcluded = true;\r\n this.setWarningMessage(ExclusionList.none);\r\n this.setModelChange('isNotExcluded');\r\n break;\r\n case ExclusionList.charges:\r\n this.isNotExcluded = false;\r\n this.model.isNotExcluded = false;\r\n this.setModelChange('isNotExcluded');\r\n this.setWarningMessage(provider);\r\n break;\r\n case ExclusionList.target:\r\n this.isNotExcluded = false;\r\n this.model.isNotExcluded = false;\r\n\r\n this.setModelChange('isNotExcluded');\r\n this.setWarningMessage(provider);\r\n break;\r\n default:\r\n this.isNotExcluded = false;\r\n this.model.isNotExcluded = false;\r\n\r\n this.setModelChange('isNotExcluded');\r\n this.setWarningMessage(provider);\r\n break;\r\n }\r\n }\r\n\r\n private getMailLinkForEmail(email: string){\r\n return \"\" + email + \"\";\r\n }\r\n\r\n public setWarningMessage = (provider: ExclusionList) => {\r\n const warningBase = \"Sorry we cannot help you. Please contact \";\r\n switch (provider) {\r\n case ExclusionList.none:\r\n this.warningMessage = '';\r\n\r\n break;\r\n case ExclusionList.target:\r\n this.warningMessage = warningBase\r\n + this.getMailLinkForEmail(this.globalSettings.emails.postSalesAgentContactEmail);\r\n break;\r\n case ExclusionList.charges:\r\n this.warningMessage = warningBase\r\n + this.getMailLinkForEmail(this.globalSettings.emails.chargesTeamEmail);\r\n break;\r\n default:\r\n this.warningMessage = \"\";\r\n break;\r\n }\r\n }\r\n\r\n public questionList = [\r\n\r\n ];\r\n\r\n public setModelChange(ctrl) {\r\n // ToDo: why was this left in?\r\n // for (var property in this.model) {\r\n // console.log(this.model[property]);\r\n // }\r\n\r\n var parent = _.find(this.questionList, { name: ctrl });\r\n\r\n var lower = _.filter(this.questionList, (q) => {\r\n return q.order > parent.order;\r\n })\r\n\r\n _.forEach(lower, (l) => {\r\n for (var property in this.model) {\r\n\r\n if (l.name === property) {\r\n this.model[property] = undefined;\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n\t\tpublic skipDocument() {\r\n\t\t\tvar file = _.find(this.filesToUpload, x => x.name === this.currentUpload);\r\n\t\t\tfile.skipped = true;\r\n\t\t\tvar skippedDocument = {\r\n\t\t\t\tdisplayName: this.currentUpload,\r\n\t\t\t\tfilename: \"N/A (skipped)\",\r\n\t\t\t\tskipped: true\r\n\t\t\t};\r\n\t\t\tthis.model.uploadedFiles.push(skippedDocument);\r\n\t\t\tthis.setCurrentUpload();\r\n\t\t\t\r\n\t\t}\r\n\t\tpublic canSkip() {\r\n\t\t\tvar file = _.find(this.filesToUpload, x => x.name === this.currentUpload);\r\n\t\t\treturn file && !file.isRequired;\r\n\t\t}\r\n\t\tpublic unskip(displayName) {\r\n\t\t\t_.remove(this.model.uploadedFiles, x => x.displayName === displayName);\r\n\t\t\tvar file = _.find(this.filesToUpload, x => x.name === displayName);\r\n\t\t\tfile.skipped = false;\r\n\t\t\tthis.setCurrentUpload();\r\n\t\t}\r\n public addDocument(document?: Hca.HiLO.ViewModel.IDocumentViewModel, isExtra?: boolean): void {\r\n if (isExtra) {\r\n this.extraFileCounter++;\r\n this.extraDocument.name = this.extraDocument.name + ' ' + this.extraFileCounter;\r\n this.filesToUpload.push(this.extraDocument);\r\n this.currentUpload = this.extraDocument.name;\r\n\r\n }\r\n\r\n var config = new Common.DocumentUploadConfig();\r\n config.title = this.currentUpload;\r\n config.controller = 'app.hilo.controllers.supportingDocumentUploadController';\r\n config.saveApiRequestConfig = {\r\n resourceName: 'LegalDocument'\r\n }\r\n config.model = document ? _.cloneDeep(document) : null;\r\n\r\n config.onClose = () => {\r\n\r\n if (config.model.filename) {\r\n config.model.displayName = this.currentUpload;\r\n this.model.uploadedFiles.push(config.model);\r\n this.model.id = config.model.id;\r\n var file = _.find(this.filesToUpload, ['name', this.currentUpload]);\r\n\r\n if (file && file !== undefined && file.isAdditional) {\r\n _.remove(this.filesToUpload, file);\r\n this.setCurrentUpload();\r\n\r\n } else {\r\n\r\n file.hasUploaded = true;\r\n this.setCurrentUpload();\r\n }\r\n }\r\n else {\r\n // Could be virus or unsupported upload\r\n if (isExtra)\r\n {\r\n var file = _.find(this.filesToUpload, ['name', this.currentUpload]);\r\n _.remove(this.filesToUpload, file);\r\n this.setCurrentUpload();\r\n }\r\n }\r\n };\r\n this.modal.open(config);\r\n }\r\n\r\n\r\n public deleteDocument(id: string) {\r\n\r\n return this.busyPromise = this.api.delete({\r\n resourceName: 'LegalDocument/Delete',\r\n params: { id: id }\r\n }).then(() => {\r\n\r\n var oldFile = _.find(this.model.uploadedFiles, (o) => {\r\n return o.id === id;\r\n });\r\n\r\n if (oldFile.displayName.substring(0, 10) !== 'Additional') {\r\n\r\n\r\n var fileFromList = _.find(this.filesToUpload, ['name', oldFile.displayName]);\r\n _.forEach(this.filesToUpload, (file) => {\r\n if (file.name === oldFile.displayName) {\r\n file.hasUploaded = false;\r\n this.currentUpload = file.name;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n fileFromList.hasUploaded = false;\r\n\r\n if (this.currentFormName === '') { oldFile.displayName }\r\n }\r\n _.pull(this.model.uploadedFiles, oldFile);\r\n });\r\n };\r\n\r\n public numberFilesRemaining():number{\r\n return _.filter(this.filesToUpload, { 'hasUploaded': false,'isRequired':true}).length\r\n }\r\n\r\n\t\tprivate setCurrentUpload(): void {\r\n if (this.filesToUpload.length > 0) {\r\n var remainingFiles = _.filter(this.filesToUpload, {hasUploaded: false, skipped: false});\r\n if (remainingFiles.length === 0) {\r\n this.currentUpload = '';\r\n }\r\n else {\r\n this.currentUpload = remainingFiles[0].name;\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.HiLO.Controllers {\r\n 'use strict';\r\n\r\n class ApplyWorksController extends HiLOControllerBase {\r\n public static $inject = ['$injector'];\r\n public model: Hca.HiLO.ViewModel.IConsentForWorksViewModel;\r\n public api: Common.Services.ApiService;\r\n public selectedExclusionValue: string;\r\n public questionHelper: App.HiLO.Services.QuestionHelperService;\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.model = {\r\n isuk: undefined,\r\n isgla:undefined,\r\n productName: 'Grant consent for you to carry out works or alterations to your property',\r\n\r\n contactDetails: {\r\n contactAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel\r\n },\r\n propertyAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel,\r\n uploadedFiles: []\r\n\r\n } as Hca.HiLO.ViewModel.IConsentForWorksViewModel;\r\n\r\n this.questionHelper = $injector.get('app.hilo.services.questionHelperService');\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.title = 'Permission to carry out works - Homes England';\r\n this.titleSecondary = 'Grant Permission to Sell or Lease Property.';\r\n\r\n this.filesToUpload = [\r\n { name: 'Copy of deed', description: 'containing the requirement to obtain our consent', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'Plans / drawings of work', description: 'of the proposed works/works carried out', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'Copy of planning permission', description: '(if planning permission is required for the works)', hasUploaded: false, isAdditional: false, isRequired: false, skipped: false },\r\n\t\t\t\t{ name: 'Current copy of land registry title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false }\r\n\r\n ];\r\n\r\n this.questionList = [\r\n { order: 1, name: 'isuk' },\r\n { order: 2, name: 'isNotExcluded' },\r\n { order: 3, name: 'isgla' },\r\n { order: 4, name: 'isLandRegistry' }\r\n ];\r\n\r\n this.currentUpload = this.filesToUpload[0].name;\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\r\n return this.$q.resolve();\r\n }\r\n\r\n public updateSection(value: number, formName: string) {\r\n this.$window.scrollTo(0, 0);\r\n this.currentFormName = formName;\r\n if (this.currentSection < 4 && this.currentSection > -1) {\r\n this.currentSection = value;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n public save(): angular.IPromise {\r\n\r\n\r\n this.userMessages.clear();\r\n this.$window.scrollTo(0, 0);\r\n\r\n this.refNumberService.getReferenceNumber('W').then((data: string) => {\r\n this.model.referenceNumber = data;\r\n\r\n\t this.model.uploadedFiles = _.filter(this.model.uploadedFiles, x => !(x).skipped);\r\n\r\n // this.model.referenceNumber = ref;\r\n this.model.formSubmission = JSON.stringify(this.model);\r\n\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: 'api/FormSubmission/ConsentForWorks',\r\n authenticated: false,\r\n data: this.model\r\n };\r\n\r\n this.busyPromise = this.api.post(postConfig)\r\n .then((r: any) => {\r\n this.mainForm().$setPristine();\r\n this.$state.go('SubmissionComplete', { id: this.model.referenceNumber, product: '1' });\r\n });\r\n\r\n return this.$q.resolve();\r\n });\r\n return this.$q.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.applyWorksController', ApplyWorksController);\r\n\r\n}","/// \r\n/// \r\n/// \r\nmodule App.HiLO.Controllers {\r\n\t'use strict';\r\n\r\n\tclass BodyController {\r\n\r\n public static $inject = [\r\n\t\t\t'app.common.services.navigationHelperService'];\r\n constructor(\r\n\t\t\tpublic navigationHelper: Common.Services.NavigationHelperService) {\r\n }\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.hilo.controllers')\r\n\t\t.controller('app.hilo.controllers.bodyController', BodyController);\r\n\r\n}","/// \r\n/// \r\n/// \r\nmodule App.HiLO.Controllers {\r\n\t'use strict';\r\n\r\n\tclass HeadController {\r\n\r\n\t\tpublic static $inject = ['app.common.services.navigationHelperService'];\r\n\t\tconstructor(public navigationHelper: Common.Services.NavigationHelperService) {}\r\n\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.hilo.controllers')\r\n\t\t.controller('app.hilo.controllers.headController', HeadController);\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 implements IInitialize {\r\n\r\n\t\tprivate autheticated = false;\r\n\r\n\t\tpublic signInMessage: string;\r\n\t\tpublic searchString: string;\r\n\t\tpublic api: Common.Services.ApiService;\r\n public busyPromise: angular.IPromise;\r\n\t\tpublic showHeader = false;\r\n\r\n public static $inject = [\r\n\t\t\t'$q',\r\n '$rootScope',\r\n '$state',\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\t\t\t'app.common.services.apiService',\r\n\t\t\t'$uibModal',\r\n\t\t\t'app.common.services.errorHandlerService',\r\n\t\t\t'app.common.services.modalService'\r\n ];\r\n\r\n constructor(\r\n\t\t\tprivate $q: angular.IQService,\r\n private $rootScope: angular.IRootScopeService,\r\n private $state: angular.ui.IStateService,\r\n private authentication: Services.AuthenticationService,\r\n private navigationHelper: Services.NavigationHelperService,\r\n private users: Services.UsersService,\r\n\t\t\tprivate globalSettings: Services.GlobalSettingsService,\r\n\t\t\tprivate apiService: Services.ApiService,\r\n\t\t\tprivate $uibModal: angular.ui.bootstrap.IModalService,\r\n\t\t\tprivate errorHandler: Services.ErrorHandlerService,\r\n\t\t\tprivate modal: Services.ModalService\r\n\t\t) {\r\n\t\t\t//register the initializer so this initialize() method is called once authenticated\r\n\t this.navigationHelper.registerInitializer(this);\r\n\r\n this.signInMessage = '';\r\n\t\t\t//subscribe to the broadcast event: this.globalSettings.broadcastEvents.authenticationComplete\r\n\t\t\tthis.$rootScope.$on(this.globalSettings.broadcastEvents.authenticationComplete, data => {\r\n\t\t\t\tthis.autheticated = true;\r\n\t\t\t});\r\n }\r\n\r\n\t\tpublic initialize(): angular.IPromise {\r\n\t\t\t//this is called once we are \r\n\t\t\tthis.showHeader = true;\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tpublic showHomeLink(): boolean {\r\n return !this.navigationHelper.currentScreenIsSignIn()\r\n\t\t\t\t&& !this.navigationHelper.currentScreenIsHome();\r\n }\r\n\r\n public showSignIn(): boolean {\r\n\t\t\treturn !this.navigationHelper.currentScreenIsSignIn();\r\n }\r\n\r\n public getCurrentUserFullName(): string {\r\n return this.users.getCurrentUser().fullName || '';\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\t public search(): void {\r\n\t\t\tvar config = new MessageBoxConfig(\r\n\t\t\t\t'Search Result',\r\n\t\t\t\tthis.searchString,\r\n\t\t\t\t[Common.DialogOutcome.ok],\r\n\t\t\t\ttrue,\r\n\t\t\t\ttrue\r\n\t\t\t);\r\n\t\t\tthis.modal.open(config);\r\n\t }\r\n\r\n }\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.headerController', HeaderController);\r\n}","/// \r\n/// \r\n/// \r\n/// \r\nmodule App.HiLO.Controllers {\r\n \r\n 'use strict';\r\n\r\n class HomeController extends App.Common.Controllers.ScreenControllerBase {\r\n public static $inject = ['$injector'];\r\n public busyPromise: angular.IPromise;\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Request a consent or discharge for your property - Homes England';\r\n this.titleSecondary = 'Request a consent or discharge for your property';\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.resolve() ; \r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.homeController', HomeController);\r\n\r\n}","\r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n\r\nmodule App.HiLO.Controllers {\r\n 'use strict';\r\n\r\n class PredecessorOrganisationsController extends App.Common.Controllers.ScreenControllerBase {\r\n \r\n public busyPromise: angular.IPromise;\r\n public orgs: any = [];\r\n public referenceDataService : App.HiLO.Services.ReferenceDataService;\r\n public static $inject = [\r\n '$injector'\r\n \r\n ];\r\n\r\n constructor(\r\n $injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.referenceDataService = $injector.get('app.hilo.services.referenceDataService');\r\n this.title = 'List of predecessor organisations';\r\n this.titleSecondary = 'Other organisations for which we can process applications';\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.referenceDataService.getData().then((response) => {\r\n this.orgs = response.data;\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.predecessorOrganisationsController', PredecessorOrganisationsController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.HiLO.Controllers {\r\n\r\n\r\n\r\n 'use strict';\r\n\r\n class ReleaseChargeController extends HiLOControllerBase {\r\n public static $inject = ['$injector'];\r\n public model: Hca.HiLO.ViewModel.IReleaseChargeViewModel;\r\n public api: Common.Services.ApiService;\r\n public selectedExclusionValue: string;\r\n public questionHelperService: App.HiLO.Services.QuestionHelperService;\r\n\r\n private q56 = [\r\n\t\t\t{ name: 'Current copy of the registered title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Current copy of the title plan', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Staircasing obligation document', description: ', a copy of the document which contains the obligation to make a payment to Homes England or one of its predecessor organisations when a tenant staircases', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Valuation of the property', description: '(by a RICS surveyor dated within the last 6 months)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Populated land registry form', description: 'DS1 or DS3 with plan (as appropriate)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false, docLink: ['download DS1 form','download DS3 form'] },\r\n\t\t\t{ name: 'Populated land registry form RX4', description: '(with plan if appropriate)', hasUploaded: false, isAdditional: false, isRequired: false, skipped: false, docLink: ['download RX4 form'] }\r\n ];//q56\r\n private q58 = [\r\n\t\t\t{ name: 'Current copy of the registered title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Current copy of the title plan', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'A copy of charge or mortgage', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n { name: 'Confirmation from Link Mortgage Services', description: 'that the charge has not been transferred to them', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Populated land registry form', description: 'DS1 or DS3 with plan (as appropriate)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false, docLink: ['download DS1 form', 'download DS3 form'] },\r\n\t\t\t{ name: 'Populated land registry form RX4', description: '(with plan if appropriate)', hasUploaded: false, isAdditional: false, isRequired: false, skipped: false, docLink: ['download RX4 form'] }\r\n ];//q58\r\n private q57 = [\r\n\t\t\t{ name: 'Current copy of the registered title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Current copy of the registered plan', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Copy of lease', description: ' which contains the obligations to be complied with on disposal', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Evidence of compliance', description: '(with obligation to find another keyworker to sell to)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Valuation of the property', description: '(by a RICS surveyor dated within the last 6 months)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false }, \r\n\t\t\t{ name: 'Confirmation of Keyworker status', description: '(of vendor)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Populated land registry form', description: 'DS1 or DS3 with plan (as appropriate)', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false, docLink: ['download DS1 form', 'download DS3 form'] },\r\n\t\t\t{ name: 'Populated land registry form RX4', description: '(with plan if appropriate)', hasUploaded: false, isAdditional: false, isRequired: false, skipped: false, docLink: ['download RX4 form'] }\r\n\r\n ]; // Q57\r\n\r\n private q65 =[\r\n\t\t\t{ name: 'Current copy of registered title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Current copy of title plan', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Copy of the deed', description: '(usually a conveyance or transfer) which imposed the restriction', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t{ name: 'Draft deed of covenant', description: 'required to comply with the restriction', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false }];\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.model = {\r\n productName: 'Release mortgage or legal charge',\r\n contactDetails: {\r\n contactAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel\r\n },\r\n propertyAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel,\r\n uploadedFiles: []\r\n\r\n } as Hca.HiLO.ViewModel.IReleaseChargeViewModel;\r\n\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.title = 'Release mortgage or legal charge - Homes England';\r\n this.titleSecondary = 'Grant Permission to Sell or Lease Property.';\r\n\r\n this.questionHelperService = $injector.get('app.hilo.services.questionHelperService');\r\n \r\n this.filesToUpload = this.q57;\r\n\r\n\r\n this.questionList = [\r\n { order: 1, name: 'isuk' },\r\n { order: 2, name: 'isNotExcluded' },\r\n { order: 3, name: 'isLandRegistry' }\r\n ];\r\n\r\n\r\n this.currentUpload = this.filesToUpload[0].name;\r\n\t (window).rc = this;\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\r\n return this.$q.resolve();\r\n }\r\n\r\n\t\tpublic isInFuture(value) {\r\n\t\t\treturn value > new Date();\r\n\t\t}\r\n\r\n public updateSection(value: number, formName: string) {\r\n this.$window.scrollTo(0, 0);\r\n this.currentFormName = formName;\r\n if (this.currentSection < 4 && this.currentSection > -1) {\r\n this.currentSection = value;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n public setDocList()\r\n {\r\n if (this.model.hasCapitaConfirmation === true)\r\n {\r\n this.filesToUpload = this.q58;\r\n this.currentUpload = this.filesToUpload[0].name;\r\n return;\r\n }\r\n\r\n \r\n\r\n if (this.model.isKeyWorkerOnwardSale)\r\n {\r\n this.filesToUpload = this.q57;\r\n this.currentUpload = this.filesToUpload[0].name;\r\n return;\r\n }\r\n\r\n if (this.model.hasCompliedKeyworkerSale)\r\n {\r\n\r\n this.filesToUpload = this.q57;\r\n this.currentUpload = this.filesToUpload[0].name;\r\n return;\r\n }\r\n\r\n if (this.model.isDispose === true) {\r\n\r\n this.filesToUpload = this.q65;\r\n this.currentUpload = this.filesToUpload[0].name;\r\n return;\r\n }\r\n \r\n if (this.model.isKeyWorkerProperty || !this.model.isKeyWorkerProperty) {\r\n this.filesToUpload = this.q56;\r\n this.currentUpload = this.filesToUpload[0].name;\r\n return;\r\n }\r\n this.currentUpload = this.filesToUpload[0].name;\r\n }\r\n\r\n\r\n public save(): angular.IPromise {\r\n\r\n\r\n this.userMessages.clear();\r\n this.$window.scrollTo(0, 0);\r\n\r\n this.refNumberService.getReferenceNumber('D').then((data: string) => {\r\n this.model.referenceNumber = data;\r\n\r\n\t this.model.uploadedFiles = _.filter(this.model.uploadedFiles, x => !(x).skipped);\r\n\r\n // this.model.referenceNumber = ref;\r\n this.model.formSubmission = JSON.stringify(this.model);\r\n\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: 'api/FormSubmission/ReleaseCharge',\r\n authenticated: false,\r\n data: this.model\r\n };\r\n\r\n this.busyPromise = this.api.post(postConfig)\r\n .then((r: any) => {\r\n this.mainForm().$setPristine();\r\n this.$state.go('SubmissionComplete', { id: this.model.referenceNumber, product: '2' });\r\n });\r\n\r\n return this.$q.resolve();\r\n });\r\n return this.$q.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.releaseChargeController', ReleaseChargeController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.HiLO.Controllers {\r\n\r\n\r\n\r\n 'use strict';\r\n\r\n class SellLeaseController extends HiLOControllerBase {\r\n public static $inject = ['$injector'];\r\n public model: Hca.HiLO.ViewModel.IPermissionToSellViewModel;\r\n public api: Common.Services.ApiService;\r\n public selectedExclusionValue: string;\r\n public questionHelperService: App.HiLO.Services.QuestionHelperService;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.model = {\r\n productName: 'Permission to sell or lease property',\r\n\r\n contactDetails: {\r\n contactAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel\r\n },\r\n propertyAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel,\r\n uploadedFiles: []\r\n\r\n } as Hca.HiLO.ViewModel.IPermissionToSellViewModel;\r\n\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.questionHelperService = $injector.get('app.hilo.services.questionHelperService');\r\n this.title = 'Permission to sell or lease property - Homes England';\r\n this.titleSecondary = 'Grant Permission to Sell or Lease Property.';\r\n\r\n this.filesToUpload = [\r\n\t\t\t\t{ name: 'Current copy of registered title', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'Current copy of title plan', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'Copy of the deed', description: '(usually a conveyance or transfer) which imposed the restriction', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false},\r\n\t\t\t\t{ name: 'Draft deed of covenant', description: 'required to comply with the restriction', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false }\r\n\r\n ];\r\n\r\n this.questionList = [\r\n { order: 1, name: 'isuk' },\r\n { order: 2, name: 'isNotExcluded' },\r\n { order: 3, name: 'isSection9' },\r\n { order: 4, name: 'isComplianceCertificationRequired' }, \r\n { order: 5, name: 'isgla' },\r\n { order: 6, name: 'isLandRegistry' }\r\n ];\r\n\r\n this.currentUpload = this.filesToUpload[0].name;\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\r\n return this.$q.resolve();\r\n }\r\n\r\n\r\n\r\n public updateSection(value: number, formName: string) {\r\n this.$window.scrollTo(0, 0);\r\n this.currentFormName = formName;\r\n if (this.currentSection < 4 && this.currentSection > -1) {\r\n this.currentSection = value;\r\n }\r\n\r\n }\r\n\r\n\r\n public disableProductInfo(): boolean {\r\n\r\n var isDisabled;\r\n if (this.model.includeStandardForm) {\r\n isDisabled = !this.model.hasCheckedStandardForm;\r\n }\r\n else {\r\n isDisabled = false;\r\n }\r\n return isDisabled;\r\n\r\n }\r\n\r\n public save(): angular.IPromise {\r\n\r\n\r\n this.userMessages.clear();\r\n this.$window.scrollTo(0, 0);\r\n\r\n this.refNumberService.getReferenceNumber('C').then((data: string) => {\r\n this.model.referenceNumber = data;\r\n\r\n\t this.model.uploadedFiles = _.filter(this.model.uploadedFiles, x => !(x).skipped);\r\n\r\n // this.model.referenceNumber = ref;\r\n this.model.formSubmission = JSON.stringify(this.model);\r\n\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: 'api/FormSubmission/PermissionToSell',\r\n authenticated: false,\r\n data: this.model\r\n };\r\n\r\n this.busyPromise = this.api.post(postConfig)\r\n .then((r: any) => {\r\n this.mainForm().$setPristine();\r\n this.$state.go('SubmissionComplete', { id: this.model.referenceNumber, product: '3' });\r\n });\r\n\r\n return this.$q.resolve();\r\n });\r\n return this.$q.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.sellLeaseController', SellLeaseController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\nmodule App.HiLO.Controllers {\r\n\r\n 'use strict';\r\n\r\n class SubmissionCompleteController extends App.Common.Controllers.ScreenControllerBase {\r\n public static $inject = ['$injector'];\r\n public busyPromise: angular.IPromise;\r\n public id: string;\r\n public product: string;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Property Consents';\r\n this.id = this.$stateParams['id'];\r\n this.product = this.getProduct(this.$stateParams['product']);\r\n\r\n this.busyPromise = this.$q.resolve();\r\n\r\n }\r\n 4\r\n public getProduct(id): string {\r\n var name;\r\n switch (id) {\r\n case '1':\r\n name = 'Permission to carry out works';\r\n break;\r\n case '2':\r\n name = 'Release mortgage or legal charge';\r\n break;\r\n case '3':\r\n name = 'Permission to sell or lease property';\r\n break;\r\n default:\r\n name = '';\r\n break;\r\n }\r\n\r\n return name;\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.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.submissionCompleteController', SubmissionCompleteController);\r\n\r\n}","/// \r\n/// \r\n/// \r\n/// \r\nmodule App.HiLO.Controllers {\r\n\r\n 'use strict';\r\n\r\n class SupportController extends App.Common.Controllers.ScreenControllerBase {\r\n public static $inject = ['$injector'];\r\n public busyPromise: angular.IPromise;\r\n public id: string;\r\n public product: string;\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.title = 'Property Consents';\r\n\r\n this.busyPromise = this.$q.resolve();\r\n\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.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.supportController', SupportController);\r\n\r\n}","\r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.HiLO.Controllers {\r\n import DocumentUploadConfig = App.Common.DocumentUploadConfig;\r\n import ModalDialogConfig = App.Common.ModalDialogConfig;\r\n 'use strict';\r\n\r\n class SupportingDocumentUploadController extends App.Common.Controllers.DocumentUploadController {\r\n \r\n public busyPromise: angular.IPromise;\r\n public static $inject = [\r\n '$injector',\r\n '$uibModalInstance',\r\n 'config',\r\n 'modalConfig',\r\n '$uibModalStack'\r\n ];\r\n\r\n constructor(\r\n $injector: angular.auto.IInjectorService,\r\n $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n public config: DocumentUploadConfig,\r\n modalConfig: ModalDialogConfig,\r\n $uibModalStack: angular.ui.bootstrap.IModalStackService) {\r\n super($injector, $uibModalInstance, config, modalConfig, $uibModalStack);\r\n }\r\n\r\n\r\n public initialize(): angular.IPromise {\r\n return this.$q.resolve(); \r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.supportingDocumentUploadController', SupportingDocumentUploadController);\r\n\r\n}","module App.HiLO.Controllers {\r\n 'use strict';\r\n\r\n export class TypeOfDocumentController {\r\n\r\n public showOther: boolean;\r\n public otherDescriptionOfDeed: string;\r\n public descriptionOfDeed: string = 'set in declaration';\r\n public test: string;\r\n\r\n constructor()\r\n {\r\n this.test = this['ngModel'];\r\n }\r\n\r\n public handleChange()\r\n {\r\n if (this.descriptionOfDeed === 'Other') {\r\n \r\n this.showOther = true;\r\n }\r\n else\r\n {\r\n this.showOther = false;\r\n }\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.typeOfDocumentController', TypeOfDocumentController);\r\n}\r\n\r\n","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.HiLO.Controllers {\r\n\r\n\r\n\r\n 'use strict';\r\n\r\n class UploadTesterController extends HiLOControllerBase {\r\n public static $inject = ['$injector'];\r\n public model: Hca.HiLO.ViewModel.IPermissionToSellViewModel;\r\n public api: Common.Services.ApiService;\r\n public selectedExclusionValue: string;\r\n public testDirec: string = 'hello';\r\n\r\n\r\n constructor($injector: angular.auto.IInjectorService) {\r\n super($injector);\r\n this.model = {\r\n productName: 'Grant consent for you to carry out works or alterations to your property',\r\n descriptionOfDeed:'xxx',\r\n contactDetails: {\r\n contactAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel\r\n },\r\n propertyAddress: {} as Hca.HiLO.ViewModel.IAddressViewModel,\r\n uploadedFiles: []\r\n\r\n } as Hca.HiLO.ViewModel.IPermissionToSellViewModel;\r\n\r\n this.api = $injector.get('app.common.services.apiService');\r\n this.title = 'Legal Services';\r\n this.titleSecondary = 'Grant Permission to Sell or Lease Property.';\r\n \r\n this.filesToUpload = [\r\n\t\t\t\t{ name: 'Copy of deed', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'Doc 2', description: '', hasUploaded: false, isAdditional: false, isRequired: true, skipped: false },\r\n\t\t\t\t{ name: 'doc 3', description: '', hasUploaded: false, isAdditional: false, isRequired: false, skipped: false }\r\n\r\n ];\r\n\r\n this.currentUpload = this.filesToUpload[0].name;\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\r\n return this.$q.resolve();\r\n }\r\n\r\n public updateSection(value: number, formName: string) {\r\n this.$window.scrollTo(0, 0);\r\n this.currentFormName = formName;\r\n if (this.currentSection < 4 && this.currentSection > -1) {\r\n this.currentSection = value;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n public save(): angular.IPromise {\r\n\r\n\r\n this.userMessages.clear();\r\n this.$window.scrollTo(0, 0);\r\n\r\n this.refNumberService.getReferenceNumber('W').then((data: string) => {\r\n this.model.referenceNumber = data;\r\n\r\n // this.model.referenceNumber = ref;\r\n this.model.formSubmission = JSON.stringify(this.model);\r\n\r\n var postConfig: Common.IApiRequestConfig = {\r\n url: 'api/FormSubmission/ConsentForWorks',\r\n authenticated: false,\r\n data: this.model\r\n };\r\n\r\n this.busyPromise = this.api.post(postConfig)\r\n .then((r: any) => {\r\n this.mainForm().$setPristine();\r\n this.$state.go('SubmissionComplete', { id: this.model.referenceNumber, product: '1' });\r\n });\r\n\r\n return this.$q.resolve();\r\n });\r\n return this.$q.resolve();\r\n }\r\n\r\n }\r\n\r\n\r\n angular\r\n .module('app.hilo.controllers')\r\n .controller('app.hilo.controllers.uploadTesterController', UploadTesterController);\r\n\r\n}","/// \r\n/// \r\nmodule App.HiLO.Directives {\r\n 'use strict';\r\n\r\n export class TypeOfDocumentDirective implements angular.IDirective {\r\n\r\n public typeOfDocumentDirective() { };\r\n\r\n public transclude = false;\r\n\r\n public template: string;\r\n\r\n public restrict = 'E';\r\n\r\n public controller = HiLO.Controllers.TypeOfDocumentController;\r\n\r\n public controllerAs = 'td';\r\n\r\n public scope = {\r\n descriptionOfDeed: '=ngModel',\r\n otherDescriptionOfDeed: '=otherDescription',\r\n\r\n } as { [boundProperty: string]: string };\r\n\r\n public bindToController = true;\r\n\r\n public templateUrl = 'Templates/HiLO/Directives/TypeOfDocView.html';\r\n public require = ['ngModel'];\r\n }\r\n angular\r\n .module('app.hilo.directives')\r\n .directive('typeOfDocument', () => { return new TypeOfDocumentDirective(); });\r\n} ","module App.HiLO.Services {\r\n 'use strict';\r\n export class QuestionHelperService {\r\n public static $inject = [\r\n\t\t\t'app.common.services.globalSettingsService',\r\n\t\t\t\"$sce\"\r\n ];\r\n\r\n constructor(\r\n\t\t\tprivate _globalSettingsService: Common.Services.GlobalSettingsService) {\r\n\t\t};\r\n\t\tcorporateContactEmail: string = this._globalSettingsService.emails.corporateContactEmail;\r\n\t\tpropertyWithinEngland: IQuestionInfo = {\r\n\t\t\ttext: \"Is your property located within England?\",\r\n\t\t\thint: \"Homes England only has responsibility for properties in England\",\r\n\t\t\terror: \"Homes England only has responsibility for properties in England. We will not be able to help you with this request.\"\r\n\t\t};\r\n\r\n\t\tpropertyWithinGreaterLondon: IQuestionInfo = {\r\n\t\t\ttext: \"Is your property in Greater London Authority?\",\r\n\t\t\terror: \"Please contact the Greater London Authority on 020 7983 4000.\"\r\n\t\t};\r\n\r\n\t\tregisteredLandRegistry: IQuestionInfo = {\r\n\t\t\ttext: \"Is the title of the property registered at the Land Registry?\",\r\n\t\t\terror: \"Please contact \" + this.corporateContactEmail + \"\"\r\n\t\t}\r\n }\r\n\r\n\texport interface IQuestionInfo{\r\n\t\ttext: string;\r\n\t\thint?: string;\r\n\t\terror: string | any;\r\n\t}\r\n\r\n angular\r\n .module('app.hilo.services')\r\n .service('app.hilo.services.questionHelperService', QuestionHelperService);\r\n}","module App.HiLO.Services {\r\n 'use strict';\r\n export class ReferenceDataService {\r\n public static $inject = [\r\n '$http',\r\n '$q',\r\n '$injector',\r\n 'app.common.services.apiService'\r\n\r\n ];\r\n\r\n constructor(private $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private $injector: angular.auto.IInjectorService ) {\r\n this.$http = $injector.get('$http');\r\n };\r\n\r\n\r\n public getData() {\r\n return this.$http.get('Data/PredecessorOrganisations.json');\r\n }\r\n }\r\n\r\n angular\r\n .module('app.hilo.services')\r\n .service('app.hilo.services.referenceDataService', ReferenceDataService);\r\n}","/// \r\n/// \r\n\r\nmodule App.HiLO.Services {\r\n 'use strict';\r\n\r\n export class ReferenceNumberService {\r\n\r\n\r\n public static $inject = [\r\n '$q',\r\n 'app.common.services.apiService'\r\n\r\n ];\r\n\r\n private prefix: string = 'HILO';\r\n private nextSeq: string;\r\n\r\n constructor(private $q: angular.IQService, private api: Common.Services.ApiService) {\r\n\r\n }\r\n\r\n public getReferenceNumber(productLetter: string): angular.IPromise {\r\n var deferred = this.$q.defer();\r\n this.getNextSequence().then(() => {\r\n var referenceNumber = this.prefix + '/' + productLetter + '/' + this.getYear() + '/' + this.nextSeq;\r\n deferred.resolve(referenceNumber);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n private getNextSequence(): angular.IPromise {\r\n\r\n\r\n return this.api.get({\r\n resourceName: 'SequenceNumber'\r\n })\r\n .then((data: number): void => {\r\n this.nextSeq = data.toString();\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n private getYear(): string {\r\n var d = new Date();\r\n\r\n return d.getFullYear().toString().substr(2, 3);\r\n\r\n }\r\n\r\n }\r\n\r\n angular\r\n .module('app.hilo.services')\r\n .service('app.hilo.services.referenceNumberService', ReferenceNumberService);\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): GroupValidateElement[] {\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()) as any;\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}","/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\nmodule App.Common.Directives {\r\n 'use strict';\r\n\r\n export class MustBeNumber extends ValidatorBase {\r\n\r\n public static $inject = ['app.common.services.globalSettingsService'];\r\n\r\n constructor(private globalSettings: Common.Services.GlobalSettingsService) {\r\n super();\r\n }\r\n\r\n public name = 'must-be-number';\r\n\r\n public isValid = (args: Directives.ValidateArgs) => {\r\n return this.globalSettings.numRegexp.test(args.viewValue());\r\n };\r\n\r\n public resolveMessage = (): string => {\r\n return 'Please enter a valid Number';\r\n };\r\n }\r\n\r\n factory.$inject = ['app.common.services.globalSettingsService'];\r\n\r\n function factory(globalSettings: Common.Services.GlobalSettingsService) {\r\n return new MustBeNumber(globalSettings);\r\n }\r\n\r\n angular\r\n .module('app.common.directives')\r\n .directive('mustBeNumber', 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 MustEqual extends Directives.ValidatorBase {\r\n\r\n\t\tpublic comparisonDescription: string;\r\n\r\n\t\tpublic name = 'must-equal';\r\n\r\n\t\tconstructor() {\r\n\t\t\tsuper();\r\n\t\t\tthis.comparisonDescription = 'equal to';\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 MustEqual();\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustEqual', 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 MustBePostcode 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-postcode';\r\n\r\n\t\tpublic isValid = (args: Directives.ValidateArgs) => {\r\n return this.globalSettings.postcodeRegexp.test(args.viewValue());\r\n\t\t};\r\n\r\n\t\tpublic resolveMessage = (): string => {\r\n\t\t\treturn 'Please enter a valid postcode';\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 return new MustBePostcode(globalSettings);\r\n\t}\r\n\r\n\tangular\r\n\t\t.module('app.common.directives')\r\n\t\t.directive('mustBePostcode', factory);\r\n\r\n}"],"sourceRoot":"Source/"}