@hmcts/rpx-xui-common-lib 1.9.0-consume-jrd-e-links-api-new-version-v3 → 1.9.0-persist-postcode

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +492 -103
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +27 -24
  6. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +2 -2
  7. package/esm2015/lib/components/find-service/find-service.component.js +2 -2
  8. package/esm2015/lib/components/generic-filter/generic-filter.component.js +2 -2
  9. package/esm2015/lib/components/public_api.js +3 -1
  10. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +2 -2
  11. package/esm2015/lib/components/share-case/share-case.component.js +2 -2
  12. package/esm2015/lib/components/write-address/write-address.component.js +182 -0
  13. package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +30 -0
  14. package/esm2015/lib/exui-common-lib.module.js +6 -2
  15. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -2
  16. package/esm2015/lib/models/address-message.enum.js +11 -0
  17. package/esm2015/lib/models/address-option.model.js +21 -0
  18. package/esm2015/lib/models/address.model.js +4 -0
  19. package/esm2015/lib/models/index.js +4 -1
  20. package/esm2015/lib/models/person.model.js +1 -1
  21. package/esm2015/lib/services/address/address-parser.js +76 -0
  22. package/esm2015/lib/services/address/address-type.enum.js +7 -0
  23. package/esm2015/lib/services/address/address.service.js +50 -0
  24. package/esm2015/lib/services/public-api.js +2 -1
  25. package/fesm2015/hmcts-rpx-xui-common-lib.js +426 -58
  26. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  27. package/hmcts-rpx-xui-common-lib.d.ts +26 -23
  28. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  29. package/lib/components/public_api.d.ts +2 -0
  30. package/lib/components/write-address/write-address.component.d.ts +42 -0
  31. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +13 -0
  32. package/lib/exui-common-lib.module.d.ts +2 -1
  33. package/lib/models/address-message.enum.d.ts +9 -0
  34. package/lib/models/address-option.model.d.ts +9 -0
  35. package/lib/models/address.model.d.ts +9 -0
  36. package/lib/models/index.d.ts +3 -0
  37. package/lib/models/person.model.d.ts +8 -7
  38. package/lib/services/address/address-parser.d.ts +17 -0
  39. package/lib/services/address/address-type.enum.d.ts +5 -0
  40. package/lib/services/address/address.service.d.ts +12 -0
  41. package/lib/services/public-api.d.ts +1 -0
  42. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('rxjs'), require('@angular/router'), require('rxjs/operators'), require('launchdarkly-js-client-sdk'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/common/http'), require('rxjs/internal/observable/of'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination'), require('rpx-xui-translation')) :
3
- typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'rxjs', '@angular/router', 'rxjs/operators', 'launchdarkly-js-client-sdk', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/common/http', 'rxjs/internal/observable/of', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination', 'rpx-xui-translation'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.hmcts = global.hmcts || {}, global.hmcts["rpx-xui-common-lib"] = {}), global.ng.core, global.ng.common, global.ng.forms, global.rxjs, global.ng.router, global.rxjs.operators, global.LDClient, global.ng.platformBrowser, global.i1$1, global.i2$1, global.ng.common.http, global.rxjs["internal/observable/of"], global.ng.material.autocomplete, global.ng.material.input, global.ng.material.tabs, global.ngxPagination, global.rpxXuiTranslation));
5
- })(this, (function (exports, i0, i4, forms, rxjs, i1, operators, LDClient, i2, i1$1, i2$1, i1$2, of, autocomplete, input, tabs, ngxPagination, rpxXuiTranslation) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('rxjs'), require('@angular/router'), require('rxjs/operators'), require('launchdarkly-js-client-sdk'), require('@angular/common/http'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('rxjs/internal/observable/of'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination'), require('rpx-xui-translation')) :
3
+ typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'rxjs', '@angular/router', 'rxjs/operators', 'launchdarkly-js-client-sdk', '@angular/common/http', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', 'rxjs/internal/observable/of', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination', 'rpx-xui-translation'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.hmcts = global.hmcts || {}, global.hmcts["rpx-xui-common-lib"] = {}), global.ng.core, global.ng.common, global.ng.forms, global.rxjs, global.ng.router, global.rxjs.operators, global.LDClient, global.ng.common.http, global.ng.platformBrowser, global.i1$2, global.i2$1, global.rxjs["internal/observable/of"], global.ng.material.autocomplete, global.ng.material.input, global.ng.material.tabs, global.ngxPagination, global.rpxXuiTranslation));
5
+ })(this, (function (exports, i0, i4, forms, rxjs, i1, operators, LDClient, i1$1, i2, i1$2, i2$1, of, autocomplete, input, tabs, ngxPagination, rpxXuiTranslation) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -26,10 +26,10 @@
26
26
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
27
27
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
28
28
  var LDClient__namespace = /*#__PURE__*/_interopNamespace(LDClient);
29
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$1);
29
30
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
30
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
31
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
31
32
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
32
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
33
33
 
34
34
  var AccessibilityComponent = /** @class */ (function () {
35
35
  function AccessibilityComponent() {
@@ -857,6 +857,235 @@
857
857
  },] }
858
858
  ];
859
859
 
860
+ exports.AddressMessageEnum = void 0;
861
+ (function (AddressMessageEnum) {
862
+ AddressMessageEnum["NO_OPTION_SELECTED"] = "Please select an answer";
863
+ AddressMessageEnum["NO_STREET_SELECTED"] = "Enter building and street";
864
+ AddressMessageEnum["NO_CITY_SELECTED"] = "Enter town or city";
865
+ AddressMessageEnum["NO_COUNTRY_SELECTED"] = "Enter country";
866
+ AddressMessageEnum["NO_POSTCODE_SELECTED"] = "Enter a valid postcode";
867
+ AddressMessageEnum["SELECT_ADDRESS"] = "Select an address";
868
+ AddressMessageEnum["INVALID_POSTCODE"] = "Enter valid postcode";
869
+ })(exports.AddressMessageEnum || (exports.AddressMessageEnum = {}));
870
+
871
+ var AddressOption = /** @class */ (function () {
872
+ function AddressOption(addressModel, description) {
873
+ if (description === null) {
874
+ this.value = addressModel;
875
+ this.description = this.getDescription();
876
+ }
877
+ else {
878
+ this.description = description;
879
+ }
880
+ }
881
+ AddressOption.prototype.getDescription = function () {
882
+ return this.removeInitialCommaIfPresent("" + (this.value.addressLine1 === undefined ? '' : this.value.addressLine1) + this.prefixWithCommaIfPresent(this.value.addressLine2) + this.prefixWithCommaIfPresent(this.value.addressLine3) + ", " + this.value.postTown);
883
+ };
884
+ AddressOption.prototype.prefixWithCommaIfPresent = function (value) {
885
+ return value ? ", " + value : value;
886
+ };
887
+ AddressOption.prototype.removeInitialCommaIfPresent = function (value) {
888
+ return value.replace(new RegExp('^,', 'gi'), '');
889
+ };
890
+ return AddressOption;
891
+ }());
892
+
893
+ // tslint:disable:variable-name
894
+ var AddressModel = /** @class */ (function () {
895
+ function AddressModel() {
896
+ }
897
+ return AddressModel;
898
+ }());
899
+
900
+ exports.SharedCaseErrorMessages = void 0;
901
+ (function (SharedCaseErrorMessages) {
902
+ SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
903
+ SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
904
+ SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
905
+ })(exports.SharedCaseErrorMessages || (exports.SharedCaseErrorMessages = {}));
906
+
907
+ exports.BadgeColour = void 0;
908
+ (function (BadgeColour) {
909
+ BadgeColour["BADGE_RED"] = "hmcts-badge--red";
910
+ BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
911
+ BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
912
+ })(exports.BadgeColour || (exports.BadgeColour = {}));
913
+
914
+ var AnonymousFeatureUser = /** @class */ (function () {
915
+ function AnonymousFeatureUser() {
916
+ }
917
+ return AnonymousFeatureUser;
918
+ }());
919
+ var LoggedInFeatureUser = /** @class */ (function () {
920
+ function LoggedInFeatureUser() {
921
+ }
922
+ return LoggedInFeatureUser;
923
+ }());
924
+
925
+ var RadioFilterFieldConfig = /** @class */ (function () {
926
+ function RadioFilterFieldConfig() {
927
+ }
928
+ return RadioFilterFieldConfig;
929
+ }());
930
+
931
+ exports.BookingCheckType = void 0;
932
+ (function (BookingCheckType) {
933
+ BookingCheckType["NO_CHECK"] = "NO_CHECK";
934
+ BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
935
+ BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
936
+ })(exports.BookingCheckType || (exports.BookingCheckType = {}));
937
+
938
+ exports.PersonRole = void 0;
939
+ (function (PersonRole) {
940
+ PersonRole["JUDICIAL"] = "Judicial";
941
+ PersonRole["CASEWORKER"] = "Legal Ops";
942
+ PersonRole["ADMIN"] = "Admin";
943
+ PersonRole["CTSC"] = "CTSC";
944
+ PersonRole["ALL"] = "All";
945
+ })(exports.PersonRole || (exports.PersonRole = {}));
946
+ // Note: RoleCategory could replace PersonRole possibly
947
+ // However a lot of webapp logic is based on current PersonRole understanding
948
+ exports.RoleCategory = void 0;
949
+ (function (RoleCategory) {
950
+ RoleCategory["JUDICIAL"] = "JUDICIAL";
951
+ RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
952
+ RoleCategory["ADMIN"] = "ADMIN";
953
+ RoleCategory["CTSC"] = "CTSC";
954
+ RoleCategory["ALL"] = "ALL";
955
+ })(exports.RoleCategory || (exports.RoleCategory = {}));
956
+
957
+ var AddressType;
958
+ (function (AddressType) {
959
+ AddressType["DPA"] = "DPA";
960
+ AddressType["UK"] = "United Kingdom";
961
+ AddressType["RD06"] = "RD06";
962
+ })(AddressType || (AddressType = {}));
963
+
964
+ /**
965
+ * Moving all this logic here into Address Parser class, so that it
966
+ * will be easier for us when we move this parsing logic to into
967
+ * `Shim` java service.
968
+ */
969
+ var AddressParser = /** @class */ (function () {
970
+ function AddressParser() {
971
+ }
972
+ AddressParser.prototype.parse = function (address) {
973
+ var classification = "" + address.CLASSIFICATION_CODE;
974
+ var addressModel = new AddressModel();
975
+ addressModel.addressLine1 = this.parseAddressLine1(classification, address);
976
+ addressModel.addressLine2 = this.parseAddressLine2(classification, address);
977
+ addressModel.addressLine3 = this.parseAddressLine3(classification, address);
978
+ addressModel.postCode = address.POSTCODE;
979
+ addressModel.postTown = address.POST_TOWN;
980
+ addressModel.country = AddressType.UK;
981
+ return addressModel;
982
+ };
983
+ AddressParser.prototype.parseAddressLine1 = function (classification, address) {
984
+ var addressLine;
985
+ if (classification === AddressType.RD06) {
986
+ addressLine =
987
+ address.SUB_BUILDING_NAME + " " + address.ORGANISATION_NAME + " " + address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER;
988
+ }
989
+ else {
990
+ addressLine =
991
+ "" + address.ORGANISATION_NAME + this.prefixWithCommaIfPresent(address.BUILDING_NAME) +
992
+ (address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER);
993
+ }
994
+ return this.removeNonAddressValues(addressLine);
995
+ };
996
+ AddressParser.prototype.parseAddressLine2 = function (classification, address) {
997
+ var addressLine;
998
+ if (classification === AddressType.RD06) {
999
+ addressLine = address.BUILDING_NAME + " ";
1000
+ }
1001
+ else {
1002
+ addressLine =
1003
+ address.SUB_BUILDING_NAME + " " + address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1004
+ }
1005
+ return this.removeNonAddressValues(addressLine);
1006
+ };
1007
+ AddressParser.prototype.parseAddressLine3 = function (classification, address) {
1008
+ var addressLine;
1009
+ if (classification === AddressType.RD06) {
1010
+ addressLine =
1011
+ address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1012
+ }
1013
+ else {
1014
+ addressLine =
1015
+ address.DEPENDENT_LOCALITY + " " + address.DOUBLE_DEPENDENT_LOCALITY + " " + address.DEPENDENT_THOROUGHFARE_NAME;
1016
+ }
1017
+ return this.removeNonAddressValues(addressLine);
1018
+ };
1019
+ AddressParser.prototype.removeNonAddressValues = function (line) {
1020
+ line = line.replace(' null', ' ').replace('null ', ' ');
1021
+ line = this.removeUndefinedString(line);
1022
+ line = this.removeInitialComma(line);
1023
+ line = this.removeEmptySpaces(line);
1024
+ return line;
1025
+ };
1026
+ AddressParser.prototype.removeUndefinedString = function (value) {
1027
+ return value.replace(new RegExp('undefined', 'gi'), '');
1028
+ };
1029
+ AddressParser.prototype.removeEmptySpaces = function (value) {
1030
+ return value.replace(new RegExp(' +', 'gi'), ' ').trim();
1031
+ };
1032
+ AddressParser.prototype.removeInitialComma = function (value) {
1033
+ return value.replace(new RegExp('^,', 'gi'), '');
1034
+ };
1035
+ AddressParser.prototype.prefixWithCommaIfPresent = function (value) {
1036
+ return value ? ", " + value : value;
1037
+ };
1038
+ return AddressParser;
1039
+ }());
1040
+
1041
+ var AddressService = /** @class */ (function () {
1042
+ function AddressService(http) {
1043
+ this.http = http;
1044
+ }
1045
+ AddressService.prototype.getAddressesForPostcode = function (postcode) {
1046
+ var _this = this;
1047
+ return this.http
1048
+ .get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
1049
+ .pipe(operators.map(function (res) { return res.results; }))
1050
+ .pipe(operators.map(function (output) { return output ? output.map(function (addresses) { return _this.format(new AddressParser().parse(addresses[AddressType.DPA])); }) : []; }));
1051
+ };
1052
+ AddressService.prototype.format = function (addressModel) {
1053
+ return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
1054
+ };
1055
+ AddressService.prototype.formatAddressLines = function (addressModel) {
1056
+ var _this = this;
1057
+ ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach(function (value) {
1058
+ addressModel[value] = _this.toCapitalCase(addressModel[value]);
1059
+ });
1060
+ return addressModel;
1061
+ };
1062
+ AddressService.prototype.shiftAddressLinesUp = function (addressModel) {
1063
+ if (addressModel.addressLine2 === '') {
1064
+ addressModel.addressLine2 = addressModel.addressLine3;
1065
+ addressModel.addressLine3 = '';
1066
+ }
1067
+ if (addressModel.addressLine1 === '') {
1068
+ addressModel.addressLine1 = addressModel.addressLine2;
1069
+ addressModel.addressLine2 = '';
1070
+ }
1071
+ return addressModel;
1072
+ };
1073
+ AddressService.prototype.toCapitalCase = function (sentence) {
1074
+ sentence = sentence.toLowerCase();
1075
+ sentence.split(' ').forEach(function (value) {
1076
+ sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
1077
+ });
1078
+ return sentence;
1079
+ };
1080
+ return AddressService;
1081
+ }());
1082
+ AddressService.decorators = [
1083
+ { type: i0.Injectable }
1084
+ ];
1085
+ AddressService.ctorParameters = function () { return [
1086
+ { type: i1$1.HttpClient }
1087
+ ]; };
1088
+
860
1089
  var windowToken = new i0.InjectionToken('Window');
861
1090
  function windowProvider() { return window; }
862
1091
 
@@ -988,7 +1217,7 @@
988
1217
  var _this = this;
989
1218
  this.idle.setIdleName(idleConfig.idleServiceName);
990
1219
  this.idle.setTimeout(idleConfig.timeout);
991
- var interrupt = new i1$1.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
1220
+ var interrupt = new i1$2.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
992
1221
  this.idle.setInterrupts([interrupt]);
993
1222
  // adding delay so that user can click on sign out before the modal shuts
994
1223
  this.idle.onIdleEnd.pipe(operators.delay(250)).subscribe(function () {
@@ -1020,7 +1249,7 @@
1020
1249
  },] }
1021
1250
  ];
1022
1251
  ManageSessionServices.ctorParameters = function () { return [
1023
- { type: i1$1.Idle },
1252
+ { type: i1$2.Idle },
1024
1253
  { type: i2$1.Keepalive }
1025
1254
  ]; };
1026
1255
 
@@ -1077,8 +1306,8 @@
1077
1306
  var idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);
1078
1307
  var totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);
1079
1308
  this.idle.setTimeout(idleModalDisplayTimeInSeconds);
1080
- var docInterrupts = new i1$1.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1081
- var windowInterrupts = new i1$1.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1309
+ var docInterrupts = new i1$2.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1310
+ var windowInterrupts = new i1$2.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1082
1311
  this.idle.setInterrupts([docInterrupts, windowInterrupts]);
1083
1312
  this.subs.push(this.idle.onTimeout.subscribe(function () {
1084
1313
  _this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
@@ -1119,7 +1348,7 @@
1119
1348
  },] }
1120
1349
  ];
1121
1350
  TimeoutNotificationsService.ctorParameters = function () { return [
1122
- { type: i1$1.Idle },
1351
+ { type: i1$2.Idle },
1123
1352
  { type: i2$1.Keepalive }
1124
1353
  ]; };
1125
1354
 
@@ -1373,7 +1602,7 @@
1373
1602
  return this.http.get(RefDataDataAccessService.refDataUrl + "/regions");
1374
1603
  };
1375
1604
  RefDataDataAccessService.prototype.getLocationsByServiceCode = function (serviceCode) {
1376
- var httpParams = new i1$2.HttpParams()
1605
+ var httpParams = new i1$1.HttpParams()
1377
1606
  .append('service_code', serviceCode);
1378
1607
  return this.http.get(RefDataDataAccessService.refDataUrl + "/locations-by-service-code", { params: httpParams });
1379
1608
  };
@@ -1390,7 +1619,7 @@
1390
1619
  },] }
1391
1620
  ];
1392
1621
  RefDataDataAccessService.ctorParameters = function () { return [
1393
- { type: i1$2.HttpClient }
1622
+ { type: i1$1.HttpClient }
1394
1623
  ]; };
1395
1624
 
1396
1625
  var RefDataService = /** @class */ (function () {
@@ -2176,7 +2405,7 @@
2176
2405
  GenericFilterComponent.decorators = [
2177
2406
  { type: i0.Component, args: [{
2178
2407
  selector: 'xuilib-generic-filter',
2179
- template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ (config.cancelButtonText || 'Cancel') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n",
2408
+ template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ (config.cancelButtonText || 'Cancel') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n",
2180
2409
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2181
2410
  encapsulation: i0.ViewEncapsulation.None,
2182
2411
  styles: [".contain-classes .elevated-break{margin-bottom:20px}@media (min-width:40.0625em){.contain-classes .elevated-break{margin-bottom:30px}}.contain-classes .govuk-body--maxWidth480px{max-width:480px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-direction:column;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}.contain-classes .xui-generic-filter__field-title{display:flex;align-items:center;margin-bottom:10px}.contain-classes .govuk-select{width:100%}"]
@@ -2512,7 +2741,7 @@
2512
2741
  SelectedCaseConfirmComponent.decorators = [
2513
2742
  { type: i0.Component, args: [{
2514
2743
  selector: 'xuilib-selected-case-confirm',
2515
- template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">\n {{'Change' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'selected case' | rpxTranslate}}</span>\n </a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">\n {{'To be removed' | rpxTranslate}}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2744
+ template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">{{'Change' | rpxTranslate}}</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Name' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">{{'To be added' | rpxTranslate}}</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">\n {{'To be removed' | rpxTranslate}}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
2516
2745
  styles: [".case-share-confirm__title{margin-bottom:0}.case-share-confirm__caption-area{border-bottom:1px solid #b1b4b6;padding-bottom:10px;display:inline-block;width:100%;clear:both}.case-share-confirm__caption{float:left}.case-share-confirm__change-link{float:right}.govuk-table-column-header{width:45%}.govuk-table-column-actions{width:10%}"]
2517
2746
  },] }
2518
2747
  ];
@@ -2875,13 +3104,6 @@
2875
3104
  completeLink: [{ type: i0.Input }]
2876
3105
  };
2877
3106
 
2878
- exports.SharedCaseErrorMessages = void 0;
2879
- (function (SharedCaseErrorMessages) {
2880
- SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
2881
- SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
2882
- SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
2883
- })(exports.SharedCaseErrorMessages || (exports.SharedCaseErrorMessages = {}));
2884
-
2885
3107
  var UserSelectComponent = /** @class */ (function () {
2886
3108
  function UserSelectComponent() {
2887
3109
  this.selected = new i0.EventEmitter();
@@ -3139,7 +3361,7 @@
3139
3361
  ShareCaseComponent.decorators = [
3140
3362
  { type: i0.Component, args: [{
3141
3363
  selector: 'xuilib-share-case',
3142
- template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n",
3364
+ template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n",
3143
3365
  styles: ["select{width:100%}"]
3144
3366
  },] }
3145
3367
  ];
@@ -3377,7 +3599,7 @@
3377
3599
  CookieBannerComponent.decorators = [
3378
3600
  { type: i0.Component, args: [{
3379
3601
  selector: 'xuilib-cookie-banner',
3380
- template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\'d also like to use analytics cookies so we can understand how you use the service and make improvements.' | rpxTranslate}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n {{'Accept analytics cookies' | rpxTranslate}}\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n {{'Reject analytics cookies' | rpxTranslate}}\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">{{'View cookies' | rpxTranslate}}</a>\n </div>\n </div>\n</div>\n"
3602
+ template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.' | rpxTranslate}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n {{'Accept analytics cookies' | rpxTranslate}}\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n {{'Reject analytics cookies' | rpxTranslate}}\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">{{'View cookies' | rpxTranslate}}</a>\n </div>\n </div>\n</div>\n"
3381
3603
  },] }
3382
3604
  ];
3383
3605
  CookieBannerComponent.ctorParameters = function () { return [
@@ -3540,7 +3762,7 @@
3540
3762
  FindServiceComponent.decorators = [
3541
3763
  { type: i0.Component, args: [{
3542
3764
  selector: 'xuilib-find-service',
3543
- template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'service' | rpxTranslate}}</span>\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n </ul>\n</div>\n",
3765
+ template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n </ul>\n</div>\n",
3544
3766
  styles: ["#add-service{background-color:#ddd}"]
3545
3767
  },] }
3546
3768
  ];
@@ -3554,56 +3776,6 @@
3554
3776
  serviceFieldChanged: [{ type: i0.Output }]
3555
3777
  };
3556
3778
 
3557
- exports.BadgeColour = void 0;
3558
- (function (BadgeColour) {
3559
- BadgeColour["BADGE_RED"] = "hmcts-badge--red";
3560
- BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
3561
- BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
3562
- })(exports.BadgeColour || (exports.BadgeColour = {}));
3563
-
3564
- var AnonymousFeatureUser = /** @class */ (function () {
3565
- function AnonymousFeatureUser() {
3566
- }
3567
- return AnonymousFeatureUser;
3568
- }());
3569
- var LoggedInFeatureUser = /** @class */ (function () {
3570
- function LoggedInFeatureUser() {
3571
- }
3572
- return LoggedInFeatureUser;
3573
- }());
3574
-
3575
- var RadioFilterFieldConfig = /** @class */ (function () {
3576
- function RadioFilterFieldConfig() {
3577
- }
3578
- return RadioFilterFieldConfig;
3579
- }());
3580
-
3581
- exports.BookingCheckType = void 0;
3582
- (function (BookingCheckType) {
3583
- BookingCheckType["NO_CHECK"] = "NO_CHECK";
3584
- BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
3585
- BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
3586
- })(exports.BookingCheckType || (exports.BookingCheckType = {}));
3587
-
3588
- exports.PersonRole = void 0;
3589
- (function (PersonRole) {
3590
- PersonRole["JUDICIAL"] = "Judicial";
3591
- PersonRole["CASEWORKER"] = "Legal Ops";
3592
- PersonRole["ADMIN"] = "Admin";
3593
- PersonRole["CTSC"] = "CTSC";
3594
- PersonRole["ALL"] = "All";
3595
- })(exports.PersonRole || (exports.PersonRole = {}));
3596
- // Note: RoleCategory could replace PersonRole possibly
3597
- // However a lot of webapp logic is based on current PersonRole understanding
3598
- exports.RoleCategory = void 0;
3599
- (function (RoleCategory) {
3600
- RoleCategory["JUDICIAL"] = "JUDICIAL";
3601
- RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
3602
- RoleCategory["ADMIN"] = "ADMIN";
3603
- RoleCategory["CTSC"] = "CTSC";
3604
- RoleCategory["ALL"] = "ALL";
3605
- })(exports.RoleCategory || (exports.RoleCategory = {}));
3606
-
3607
3779
  var LocationService = /** @class */ (function () {
3608
3780
  function LocationService(http) {
3609
3781
  this.http = http;
@@ -3637,7 +3809,7 @@
3637
3809
  },] }
3638
3810
  ];
3639
3811
  LocationService.ctorParameters = function () { return [
3640
- { type: i1$2.HttpClient }
3812
+ { type: i1$1.HttpClient }
3641
3813
  ]; };
3642
3814
 
3643
3815
  var SessionStorageService = /** @class */ (function () {
@@ -4269,7 +4441,7 @@
4269
4441
  },] }
4270
4442
  ];
4271
4443
  FindAPersonService.ctorParameters = function () { return [
4272
- { type: i1$2.HttpClient },
4444
+ { type: i1$1.HttpClient },
4273
4445
  { type: SessionStorageService }
4274
4446
  ]; };
4275
4447
 
@@ -4551,7 +4723,7 @@
4551
4723
  },] }
4552
4724
  ];
4553
4725
  TaskNameService.ctorParameters = function () { return [
4554
- { type: i1$2.HttpClient },
4726
+ { type: i1$1.HttpClient },
4555
4727
  { type: SessionStorageService }
4556
4728
  ]; };
4557
4729
 
@@ -4678,6 +4850,213 @@
4678
4850
  fnTitle: [{ type: i0.Input }]
4679
4851
  };
4680
4852
 
4853
+ var WriteAddressFieldComponent = /** @class */ (function () {
4854
+ function WriteAddressFieldComponent(addressesService) {
4855
+ this.addressesService = addressesService;
4856
+ this.internationalMode = false;
4857
+ this.submissionAttempted = false;
4858
+ this.addressChosen = false;
4859
+ this.postcodeOptionSelected = new i0.EventEmitter();
4860
+ this.internationalModeStart = new i0.EventEmitter();
4861
+ this.ukAddressOptionSelected = new i0.EventEmitter();
4862
+ // indicated what error to display to user
4863
+ this.canSelectAddress = new i0.EventEmitter();
4864
+ // tells parent to reset submission attempted field
4865
+ // only relevant to when user re-clicks find address
4866
+ this.resetSubmission = new i0.EventEmitter();
4867
+ this.addressField = {
4868
+ addressLine1: '',
4869
+ addressLine2: '',
4870
+ addressLine3: '',
4871
+ postCode: '',
4872
+ postTown: '',
4873
+ country: '',
4874
+ county: ''
4875
+ };
4876
+ this.optionErrorsPresent = false;
4877
+ this.addressSelectable = false;
4878
+ this.missingPostcode = false;
4879
+ this.optionErrorMessage = exports.AddressMessageEnum.NO_OPTION_SELECTED;
4880
+ this.postcodeErrorMessage = exports.AddressMessageEnum.NO_POSTCODE_SELECTED;
4881
+ this.selectErrorMessage = exports.AddressMessageEnum.SELECT_ADDRESS;
4882
+ }
4883
+ WriteAddressFieldComponent.prototype.ngOnInit = function () {
4884
+ if (!this.formGroup.get('address')) {
4885
+ this.formGroup.addControl('address', new forms.FormControl({}));
4886
+ }
4887
+ // set the form group relevant to only the external parent component
4888
+ this.addressFormGroup = new forms.FormGroup({
4889
+ // relevant to international mode
4890
+ ukAddress: new forms.FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),
4891
+ // relevant to postocode lookup
4892
+ postcode: new forms.FormControl(''),
4893
+ addressList: new forms.FormControl('')
4894
+ });
4895
+ this.setPostcodeForm();
4896
+ };
4897
+ WriteAddressFieldComponent.prototype.findAddress = function () {
4898
+ var _this = this;
4899
+ this.resetSubmission.emit();
4900
+ if (!this.addressFormGroup.get('postcode').value) {
4901
+ this.missingPostcode = true;
4902
+ this.canSelectAddress.emit(false);
4903
+ }
4904
+ else {
4905
+ this.missingPostcode = false;
4906
+ this.addressField = null;
4907
+ var postcode_1 = this.addressFormGroup.get('postcode').value;
4908
+ this.addressOptions = [];
4909
+ this.addressesService.getAddressesForPostcode(postcode_1.replace(' ', '').toUpperCase()).subscribe(function (result) {
4910
+ result.forEach(function (address) {
4911
+ _this.addressOptions.push(new AddressOption(address, null));
4912
+ });
4913
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4914
+ }, function (error) {
4915
+ // Edited this so that errors not produced if there are no results for a postcode
4916
+ console.log("An error occurred retrieving addresses for postcode " + postcode_1 + ". " + error);
4917
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4918
+ });
4919
+ this.addressFormGroup.get('addressList').setValue(undefined);
4920
+ }
4921
+ };
4922
+ WriteAddressFieldComponent.prototype.blankAddress = function () {
4923
+ this.setFormValue();
4924
+ this.resetSubmission.emit();
4925
+ if (this.internationalMode) {
4926
+ this.internationalModeStart.emit();
4927
+ }
4928
+ };
4929
+ WriteAddressFieldComponent.prototype.shouldShowDetailFields = function () {
4930
+ if (!this.formGroup.get('address')) {
4931
+ return false;
4932
+ }
4933
+ var address = this.formGroup.get('address').value;
4934
+ var hasAddress = false;
4935
+ if (address) {
4936
+ Object.keys(address).forEach(function (key) {
4937
+ if (address[key] !== null) {
4938
+ hasAddress = true;
4939
+ }
4940
+ });
4941
+ }
4942
+ return hasAddress;
4943
+ };
4944
+ WriteAddressFieldComponent.prototype.addressSelected = function () {
4945
+ this.missingPostcode = false;
4946
+ this.addressField = this.addressFormGroup.get('addressList').value;
4947
+ this.addressChosen = true;
4948
+ this.setFormValue();
4949
+ this.postcodeOptionSelected.emit();
4950
+ };
4951
+ WriteAddressFieldComponent.prototype.ngOnChanges = function (changes) {
4952
+ var addressChange = changes['addressField'];
4953
+ var internationalChange = changes['isInternational'];
4954
+ if (addressChange) {
4955
+ this.setFormValue();
4956
+ }
4957
+ if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {
4958
+ this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');
4959
+ }
4960
+ if (!this.addressChosen && this.addressFormGroup && this.addressFormGroup.get('addressList')) {
4961
+ // resets address options on internal back
4962
+ this.addressFormGroup.get('addressList').patchValue(undefined);
4963
+ }
4964
+ this.checkIfErrorsNeeded();
4965
+ };
4966
+ WriteAddressFieldComponent.prototype.checkIfErrorsNeeded = function () {
4967
+ if (this.submissionAttempted && this.internationalMode && !this.postcodeLookupVisible()) {
4968
+ // ensure errors present when submission attmempted on international radio buttons
4969
+ this.optionErrorsPresent = true;
4970
+ this.optionErrorMessage = exports.AddressMessageEnum.NO_OPTION_SELECTED;
4971
+ }
4972
+ else {
4973
+ this.optionErrorsPresent = false;
4974
+ }
4975
+ if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {
4976
+ // ensure parent errors not present when the child form group is present
4977
+ this.optionErrorsPresent = false;
4978
+ }
4979
+ };
4980
+ WriteAddressFieldComponent.prototype.setInternationalAddress = function (isInternational) {
4981
+ this.isInternational = isInternational;
4982
+ this.ukAddressOptionSelected.emit(this.isInternational);
4983
+ };
4984
+ WriteAddressFieldComponent.prototype.postcodeErrorPresent = function (isPostcodeField) {
4985
+ var checkForField = isPostcodeField ? !this.addressSelectable : this.addressSelectable;
4986
+ return this.submissionAttempted && checkForField;
4987
+ };
4988
+ WriteAddressFieldComponent.prototype.postcodeLookupVisible = function () {
4989
+ return !this.shouldShowDetailFields() || (!this.startedInternational && !this.addressChosen);
4990
+ };
4991
+ WriteAddressFieldComponent.prototype.defaultLabel = function (numberOfAddresses) {
4992
+ this.addressSelectable = numberOfAddresses > 0 ? true : false;
4993
+ this.canSelectAddress.emit(this.addressSelectable);
4994
+ return numberOfAddresses === 0 ? 'No address found'
4995
+ : "" + numberOfAddresses + (numberOfAddresses === 1 ? ' address ' : ' addresses ') + "found";
4996
+ };
4997
+ WriteAddressFieldComponent.prototype.setFormValue = function () {
4998
+ if (this.formGroup) {
4999
+ this.formGroup.get('address').patchValue(this.addressField);
5000
+ }
5001
+ };
5002
+ WriteAddressFieldComponent.prototype.setPostcodeForm = function () {
5003
+ var postcodeNeeded = this.isInternational === undefined && this.formGroup.get('address') && this.formGroup.get('address').get('postCode');
5004
+ this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');
5005
+ };
5006
+ return WriteAddressFieldComponent;
5007
+ }());
5008
+ WriteAddressFieldComponent.decorators = [
5009
+ { type: i0.Component, args: [{
5010
+ selector: 'xuilib-write-address-field',
5011
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\" [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\n <div class=\"govuk-form-group postcodeLookup\" id=\"addressLookup\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-label\"><b>Provide address details</b></span>\n <span class=\"govuk-label\">Enter a UK postcode</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-two-thirds postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n\n <div class=\"govuk-form-group\"\n *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\" (click)=\"blankAddress()\"\n href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n </div>\n\n <div class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(false)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"yes\">\n Yes\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"no\" value=\"no\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(true)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"no\">\n No\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"address-fields\">\n <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\" [isInternational]=\"isInternational\"\n [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\"></xuilib-write-address-inputs>\n\n</div>",
5012
+ styles: [".manual-link{cursor:pointer;text-decoration:underline;margin-top:10px}.manual-link,:host{display:block}"]
5013
+ },] }
5014
+ ];
5015
+ WriteAddressFieldComponent.ctorParameters = function () { return [
5016
+ { type: AddressService }
5017
+ ]; };
5018
+ WriteAddressFieldComponent.propDecorators = {
5019
+ formGroup: [{ type: i0.Input }],
5020
+ internationalMode: [{ type: i0.Input }],
5021
+ isInternational: [{ type: i0.Input }],
5022
+ submissionAttempted: [{ type: i0.Input }],
5023
+ startedInternational: [{ type: i0.Input }],
5024
+ addressChosen: [{ type: i0.Input }],
5025
+ postcodeOptionSelected: [{ type: i0.Output }],
5026
+ internationalModeStart: [{ type: i0.Output }],
5027
+ ukAddressOptionSelected: [{ type: i0.Output }],
5028
+ canSelectAddress: [{ type: i0.Output }],
5029
+ resetSubmission: [{ type: i0.Output }]
5030
+ };
5031
+
5032
+ var WriteAddressInputsComponent = /** @class */ (function () {
5033
+ function WriteAddressInputsComponent() {
5034
+ this.MESSAGE_ENUM = exports.AddressMessageEnum;
5035
+ this.isInternational = false;
5036
+ this.submissionAttempted = false;
5037
+ this.missingPostcode = false;
5038
+ this.errorsPresent = false;
5039
+ }
5040
+ WriteAddressInputsComponent.prototype.ngOnChanges = function () {
5041
+ var addressGroup = this.formGroup.get('address');
5042
+ // if there is an issue with the formgroup, ensure error styling is displayed
5043
+ this.errorsPresent = !addressGroup.valid;
5044
+ };
5045
+ return WriteAddressInputsComponent;
5046
+ }());
5047
+ WriteAddressInputsComponent.decorators = [
5048
+ { type: i0.Component, args: [{
5049
+ selector: 'xuilib-write-address-inputs',
5050
+ template: "<ng-container>\n <form [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" formGroupName=\"address\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && errorsPresent}\">\n <label class=\"govuk-label govuk-!-font-weight-bold\">\n Enter address details\n </label>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine1\">\n Building and Street\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('addressLine1').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" type=\"text\"\n formControlName=\"addressLine1\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine2\">\n Address line 2 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine2\" name=\"addressLine2\" type=\"text\"\n formControlName=\"addressLine2\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine3\">\n Address line 3 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine3\" name=\"addressLine3\" type=\"text\"\n formControlName=\"addressLine3\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postTown\">\n Town or City\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('postTown').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"postTown\" name=\"postTown\" type=\"text\"\n formControlName=\"postTown\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"county\">\n County{{this.isInternational ? '/ State/ Province' : ''}} (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"county\" name=\"county\" type=\"text\"\n formControlName=\"county\">\n </div>\n\n <div *ngIf=\"isInternational\" class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"country\">\n Country\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('country').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{this.isInternational ? ' (Optional)' : ''}}\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n <input class=\"govuk-input govuk-!-width-one-third\" id=\"postCode\" name=\"postCode\" type=\"text\"\n formControlName=\"postCode\">\n </div>\n </div>\n</form>\n</ng-container>"
5051
+ },] }
5052
+ ];
5053
+ WriteAddressInputsComponent.ctorParameters = function () { return []; };
5054
+ WriteAddressInputsComponent.propDecorators = {
5055
+ formGroup: [{ type: i0.Input }],
5056
+ isInternational: [{ type: i0.Input }],
5057
+ submissionAttempted: [{ type: i0.Input }]
5058
+ };
5059
+
4681
5060
  var FeatureToggleDirective = /** @class */ (function () {
4682
5061
  function FeatureToggleDirective(service, viewContainer, templateRef) {
4683
5062
  this.service = service;
@@ -5340,7 +5719,7 @@
5340
5719
  HmctsIdentityBarComponent.decorators = [
5341
5720
  { type: i0.Component, args: [{
5342
5721
  selector: 'xuilib-hmcts-identity-bar',
5343
- template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n <div class=\"hmcts-identity-bar__container\">\n <div class=\"hmcts-identity-bar__details\">\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n </div>\n </div>\n</div>\n",
5722
+ template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n\n <div class=\"hmcts-identity-bar__container\">\n\n <div class=\"hmcts-identity-bar__details\">\n\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n\n </div>\n\n </div>\n\n</div>\n",
5344
5723
  styles: [""]
5345
5724
  },] }
5346
5725
  ];
@@ -5545,7 +5924,9 @@
5545
5924
  FindServiceComponent,
5546
5925
  SearchServiceComponent,
5547
5926
  SearchVenueComponent,
5548
- PaginationComponent
5927
+ PaginationComponent,
5928
+ WriteAddressFieldComponent,
5929
+ WriteAddressInputsComponent
5549
5930
  ];
5550
5931
  var GOV_UI_COMPONENTS = [
5551
5932
  HmctsIdentityBarComponent,
@@ -5682,6 +6063,9 @@
5682
6063
  */
5683
6064
 
5684
6065
  exports.AccessibilityComponent = AccessibilityComponent;
6066
+ exports.AddressModel = AddressModel;
6067
+ exports.AddressOption = AddressOption;
6068
+ exports.AddressService = AddressService;
5685
6069
  exports.AnonymousFeatureUser = AnonymousFeatureUser;
5686
6070
  exports.COMMON_COMPONENTS = COMMON_COMPONENTS;
5687
6071
  exports.CapitalizePipe = CapitalizePipe;
@@ -5765,6 +6149,8 @@
5765
6149
  exports.UserDetailsComponent = UserDetailsComponent;
5766
6150
  exports.UserListComponent = UserListComponent;
5767
6151
  exports.UserSelectComponent = UserSelectComponent;
6152
+ exports.WriteAddressFieldComponent = WriteAddressFieldComponent;
6153
+ exports.WriteAddressInputsComponent = WriteAddressInputsComponent;
5768
6154
  exports.checkboxesBeCheckedValidator = checkboxesBeCheckedValidator;
5769
6155
  exports.dateValidator = dateValidator;
5770
6156
  exports.radioGroupValidator = radioGroupValidator;
@@ -5794,30 +6180,33 @@
5794
6180
  exports["ɵbs"] = SearchServiceComponent;
5795
6181
  exports["ɵbt"] = SearchVenueComponent;
5796
6182
  exports["ɵbu"] = PaginationComponent;
5797
- exports["ɵbv"] = HmctsIdentityBarComponent;
5798
- exports["ɵbw"] = HmctsPaginationComponent;
5799
- exports["ɵbx"] = HmctsSubNavigationComponent;
5800
- exports["ɵby"] = HmctsPrimaryNavigationComponent;
5801
- exports["ɵbz"] = HmctsErrorSummaryComponent;
6183
+ exports["ɵbv"] = WriteAddressFieldComponent;
6184
+ exports["ɵbw"] = AddressService;
6185
+ exports["ɵbx"] = WriteAddressInputsComponent;
6186
+ exports["ɵby"] = HmctsIdentityBarComponent;
6187
+ exports["ɵbz"] = HmctsPaginationComponent;
5802
6188
  exports["ɵc"] = TcDisplayHtmlComponent;
5803
- exports["ɵca"] = HmctsMainWrapperComponent;
5804
- exports["ɵcb"] = HmctsBannerComponent;
5805
- exports["ɵcc"] = GovukTableComponent;
5806
- exports["ɵcd"] = GovUkInputComponent;
5807
- exports["ɵce"] = GovUkCheckboxComponent;
5808
- exports["ɵcf"] = GovUkFormGroupWrapperComponent;
5809
- exports["ɵcg"] = GovUkLabelComponent;
5810
- exports["ɵch"] = GovUkErrorMessageComponent;
5811
- exports["ɵci"] = GovUkFieldsetComponent;
5812
- exports["ɵcj"] = GovUkDateComponent;
5813
- exports["ɵck"] = GovUkCheckboxesComponent;
5814
- exports["ɵcl"] = GovUkRadioComponent;
5815
- exports["ɵcm"] = GovUkRadiosComponent;
5816
- exports["ɵcn"] = GovUkSelectComponent;
5817
- exports["ɵco"] = GovUkTextareaComponent;
5818
- exports["ɵcp"] = GovUkFileUploadComponent;
5819
- exports["ɵcq"] = RemoveHostDirective;
5820
- exports["ɵcr"] = CapitalizePipe;
6189
+ exports["ɵca"] = HmctsSubNavigationComponent;
6190
+ exports["ɵcb"] = HmctsPrimaryNavigationComponent;
6191
+ exports["ɵcc"] = HmctsErrorSummaryComponent;
6192
+ exports["ɵcd"] = HmctsMainWrapperComponent;
6193
+ exports["ɵce"] = HmctsBannerComponent;
6194
+ exports["ɵcf"] = GovukTableComponent;
6195
+ exports["ɵcg"] = GovUkInputComponent;
6196
+ exports["ɵch"] = GovUkCheckboxComponent;
6197
+ exports["ɵci"] = GovUkFormGroupWrapperComponent;
6198
+ exports["ɵcj"] = GovUkLabelComponent;
6199
+ exports["ɵck"] = GovUkErrorMessageComponent;
6200
+ exports["ɵcl"] = GovUkFieldsetComponent;
6201
+ exports["ɵcm"] = GovUkDateComponent;
6202
+ exports["ɵcn"] = GovUkCheckboxesComponent;
6203
+ exports["ɵco"] = GovUkRadioComponent;
6204
+ exports["ɵcp"] = GovUkRadiosComponent;
6205
+ exports["ɵcq"] = GovUkSelectComponent;
6206
+ exports["ɵcr"] = GovUkTextareaComponent;
6207
+ exports["ɵcs"] = GovUkFileUploadComponent;
6208
+ exports["ɵct"] = RemoveHostDirective;
6209
+ exports["ɵcu"] = CapitalizePipe;
5821
6210
  exports["ɵd"] = TcDisplayPlainComponent;
5822
6211
  exports["ɵe"] = TcConfirmComponent;
5823
6212
  exports["ɵf"] = ContactDetailsComponent;