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

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 +456 -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 +147 -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 +10 -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 +390 -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 +34 -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 +8 -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,234 @@
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 postcode";
867
+ AddressMessageEnum["INVALID_POSTCODE"] = "Enter valid postcode";
868
+ })(exports.AddressMessageEnum || (exports.AddressMessageEnum = {}));
869
+
870
+ var AddressOption = /** @class */ (function () {
871
+ function AddressOption(addressModel, description) {
872
+ if (description === null) {
873
+ this.value = addressModel;
874
+ this.description = this.getDescription();
875
+ }
876
+ else {
877
+ this.description = description;
878
+ }
879
+ }
880
+ AddressOption.prototype.getDescription = function () {
881
+ return this.removeInitialCommaIfPresent("" + (this.value.addressLine1 === undefined ? '' : this.value.addressLine1) + this.prefixWithCommaIfPresent(this.value.addressLine2) + this.prefixWithCommaIfPresent(this.value.addressLine3) + ", " + this.value.postTown);
882
+ };
883
+ AddressOption.prototype.prefixWithCommaIfPresent = function (value) {
884
+ return value ? ", " + value : value;
885
+ };
886
+ AddressOption.prototype.removeInitialCommaIfPresent = function (value) {
887
+ return value.replace(new RegExp('^,', 'gi'), '');
888
+ };
889
+ return AddressOption;
890
+ }());
891
+
892
+ // tslint:disable:variable-name
893
+ var AddressModel = /** @class */ (function () {
894
+ function AddressModel() {
895
+ }
896
+ return AddressModel;
897
+ }());
898
+
899
+ exports.SharedCaseErrorMessages = void 0;
900
+ (function (SharedCaseErrorMessages) {
901
+ SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
902
+ SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
903
+ SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
904
+ })(exports.SharedCaseErrorMessages || (exports.SharedCaseErrorMessages = {}));
905
+
906
+ exports.BadgeColour = void 0;
907
+ (function (BadgeColour) {
908
+ BadgeColour["BADGE_RED"] = "hmcts-badge--red";
909
+ BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
910
+ BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
911
+ })(exports.BadgeColour || (exports.BadgeColour = {}));
912
+
913
+ var AnonymousFeatureUser = /** @class */ (function () {
914
+ function AnonymousFeatureUser() {
915
+ }
916
+ return AnonymousFeatureUser;
917
+ }());
918
+ var LoggedInFeatureUser = /** @class */ (function () {
919
+ function LoggedInFeatureUser() {
920
+ }
921
+ return LoggedInFeatureUser;
922
+ }());
923
+
924
+ var RadioFilterFieldConfig = /** @class */ (function () {
925
+ function RadioFilterFieldConfig() {
926
+ }
927
+ return RadioFilterFieldConfig;
928
+ }());
929
+
930
+ exports.BookingCheckType = void 0;
931
+ (function (BookingCheckType) {
932
+ BookingCheckType["NO_CHECK"] = "NO_CHECK";
933
+ BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
934
+ BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
935
+ })(exports.BookingCheckType || (exports.BookingCheckType = {}));
936
+
937
+ exports.PersonRole = void 0;
938
+ (function (PersonRole) {
939
+ PersonRole["JUDICIAL"] = "Judicial";
940
+ PersonRole["CASEWORKER"] = "Legal Ops";
941
+ PersonRole["ADMIN"] = "Admin";
942
+ PersonRole["CTSC"] = "CTSC";
943
+ PersonRole["ALL"] = "All";
944
+ })(exports.PersonRole || (exports.PersonRole = {}));
945
+ // Note: RoleCategory could replace PersonRole possibly
946
+ // However a lot of webapp logic is based on current PersonRole understanding
947
+ exports.RoleCategory = void 0;
948
+ (function (RoleCategory) {
949
+ RoleCategory["JUDICIAL"] = "JUDICIAL";
950
+ RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
951
+ RoleCategory["ADMIN"] = "ADMIN";
952
+ RoleCategory["CTSC"] = "CTSC";
953
+ RoleCategory["ALL"] = "ALL";
954
+ })(exports.RoleCategory || (exports.RoleCategory = {}));
955
+
956
+ var AddressType;
957
+ (function (AddressType) {
958
+ AddressType["DPA"] = "DPA";
959
+ AddressType["UK"] = "United Kingdom";
960
+ AddressType["RD06"] = "RD06";
961
+ })(AddressType || (AddressType = {}));
962
+
963
+ /**
964
+ * Moving all this logic here into Address Parser class, so that it
965
+ * will be easier for us when we move this parsing logic to into
966
+ * `Shim` java service.
967
+ */
968
+ var AddressParser = /** @class */ (function () {
969
+ function AddressParser() {
970
+ }
971
+ AddressParser.prototype.parse = function (address) {
972
+ var classification = "" + address.CLASSIFICATION_CODE;
973
+ var addressModel = new AddressModel();
974
+ addressModel.addressLine1 = this.parseAddressLine1(classification, address);
975
+ addressModel.addressLine2 = this.parseAddressLine2(classification, address);
976
+ addressModel.addressLine3 = this.parseAddressLine3(classification, address);
977
+ addressModel.postCode = address.POSTCODE;
978
+ addressModel.postTown = address.POST_TOWN;
979
+ addressModel.country = AddressType.UK;
980
+ return addressModel;
981
+ };
982
+ AddressParser.prototype.parseAddressLine1 = function (classification, address) {
983
+ var addressLine;
984
+ if (classification === AddressType.RD06) {
985
+ addressLine =
986
+ address.SUB_BUILDING_NAME + " " + address.ORGANISATION_NAME + " " + address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER;
987
+ }
988
+ else {
989
+ addressLine =
990
+ "" + address.ORGANISATION_NAME + this.prefixWithCommaIfPresent(address.BUILDING_NAME) +
991
+ (address.DEPARTMENT_NAME + " " + address.PO_BOX_NUMBER);
992
+ }
993
+ return this.removeNonAddressValues(addressLine);
994
+ };
995
+ AddressParser.prototype.parseAddressLine2 = function (classification, address) {
996
+ var addressLine;
997
+ if (classification === AddressType.RD06) {
998
+ addressLine = address.BUILDING_NAME + " ";
999
+ }
1000
+ else {
1001
+ addressLine =
1002
+ address.SUB_BUILDING_NAME + " " + address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1003
+ }
1004
+ return this.removeNonAddressValues(addressLine);
1005
+ };
1006
+ AddressParser.prototype.parseAddressLine3 = function (classification, address) {
1007
+ var addressLine;
1008
+ if (classification === AddressType.RD06) {
1009
+ addressLine =
1010
+ address.BUILDING_NUMBER + " " + address.THOROUGHFARE_NAME;
1011
+ }
1012
+ else {
1013
+ addressLine =
1014
+ address.DEPENDENT_LOCALITY + " " + address.DOUBLE_DEPENDENT_LOCALITY + " " + address.DEPENDENT_THOROUGHFARE_NAME;
1015
+ }
1016
+ return this.removeNonAddressValues(addressLine);
1017
+ };
1018
+ AddressParser.prototype.removeNonAddressValues = function (line) {
1019
+ line = line.replace(' null', ' ').replace('null ', ' ');
1020
+ line = this.removeUndefinedString(line);
1021
+ line = this.removeInitialComma(line);
1022
+ line = this.removeEmptySpaces(line);
1023
+ return line;
1024
+ };
1025
+ AddressParser.prototype.removeUndefinedString = function (value) {
1026
+ return value.replace(new RegExp('undefined', 'gi'), '');
1027
+ };
1028
+ AddressParser.prototype.removeEmptySpaces = function (value) {
1029
+ return value.replace(new RegExp(' +', 'gi'), ' ').trim();
1030
+ };
1031
+ AddressParser.prototype.removeInitialComma = function (value) {
1032
+ return value.replace(new RegExp('^,', 'gi'), '');
1033
+ };
1034
+ AddressParser.prototype.prefixWithCommaIfPresent = function (value) {
1035
+ return value ? ", " + value : value;
1036
+ };
1037
+ return AddressParser;
1038
+ }());
1039
+
1040
+ var AddressService = /** @class */ (function () {
1041
+ function AddressService(http) {
1042
+ this.http = http;
1043
+ }
1044
+ AddressService.prototype.getAddressesForPostcode = function (postcode) {
1045
+ var _this = this;
1046
+ return this.http
1047
+ .get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
1048
+ .pipe(operators.map(function (res) { return res.results; }))
1049
+ .pipe(operators.map(function (output) { return output.map(function (addresses) { return _this.format(new AddressParser().parse(addresses[AddressType.DPA])); }); }));
1050
+ };
1051
+ AddressService.prototype.format = function (addressModel) {
1052
+ return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
1053
+ };
1054
+ AddressService.prototype.formatAddressLines = function (addressModel) {
1055
+ var _this = this;
1056
+ ['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach(function (value) {
1057
+ addressModel[value] = _this.toCapitalCase(addressModel[value]);
1058
+ });
1059
+ return addressModel;
1060
+ };
1061
+ AddressService.prototype.shiftAddressLinesUp = function (addressModel) {
1062
+ if (addressModel.addressLine2 === '') {
1063
+ addressModel.addressLine2 = addressModel.addressLine3;
1064
+ addressModel.addressLine3 = '';
1065
+ }
1066
+ if (addressModel.addressLine1 === '') {
1067
+ addressModel.addressLine1 = addressModel.addressLine2;
1068
+ addressModel.addressLine2 = '';
1069
+ }
1070
+ return addressModel;
1071
+ };
1072
+ AddressService.prototype.toCapitalCase = function (sentence) {
1073
+ sentence = sentence.toLowerCase();
1074
+ sentence.split(' ').forEach(function (value) {
1075
+ sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
1076
+ });
1077
+ return sentence;
1078
+ };
1079
+ return AddressService;
1080
+ }());
1081
+ AddressService.decorators = [
1082
+ { type: i0.Injectable }
1083
+ ];
1084
+ AddressService.ctorParameters = function () { return [
1085
+ { type: i1$1.HttpClient }
1086
+ ]; };
1087
+
860
1088
  var windowToken = new i0.InjectionToken('Window');
861
1089
  function windowProvider() { return window; }
862
1090
 
@@ -988,7 +1216,7 @@
988
1216
  var _this = this;
989
1217
  this.idle.setIdleName(idleConfig.idleServiceName);
990
1218
  this.idle.setTimeout(idleConfig.timeout);
991
- var interrupt = new i1$1.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
1219
+ var interrupt = new i1$2.DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
992
1220
  this.idle.setInterrupts([interrupt]);
993
1221
  // adding delay so that user can click on sign out before the modal shuts
994
1222
  this.idle.onIdleEnd.pipe(operators.delay(250)).subscribe(function () {
@@ -1020,7 +1248,7 @@
1020
1248
  },] }
1021
1249
  ];
1022
1250
  ManageSessionServices.ctorParameters = function () { return [
1023
- { type: i1$1.Idle },
1251
+ { type: i1$2.Idle },
1024
1252
  { type: i2$1.Keepalive }
1025
1253
  ]; };
1026
1254
 
@@ -1077,8 +1305,8 @@
1077
1305
  var idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);
1078
1306
  var totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);
1079
1307
  this.idle.setTimeout(idleModalDisplayTimeInSeconds);
1080
- var docInterrupts = new i1$1.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1081
- var windowInterrupts = new i1$1.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1308
+ var docInterrupts = new i1$2.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
1309
+ var windowInterrupts = new i1$2.WindowInterruptSource(DOCUMENT_INTERRUPTS);
1082
1310
  this.idle.setInterrupts([docInterrupts, windowInterrupts]);
1083
1311
  this.subs.push(this.idle.onTimeout.subscribe(function () {
1084
1312
  _this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
@@ -1119,7 +1347,7 @@
1119
1347
  },] }
1120
1348
  ];
1121
1349
  TimeoutNotificationsService.ctorParameters = function () { return [
1122
- { type: i1$1.Idle },
1350
+ { type: i1$2.Idle },
1123
1351
  { type: i2$1.Keepalive }
1124
1352
  ]; };
1125
1353
 
@@ -1373,7 +1601,7 @@
1373
1601
  return this.http.get(RefDataDataAccessService.refDataUrl + "/regions");
1374
1602
  };
1375
1603
  RefDataDataAccessService.prototype.getLocationsByServiceCode = function (serviceCode) {
1376
- var httpParams = new i1$2.HttpParams()
1604
+ var httpParams = new i1$1.HttpParams()
1377
1605
  .append('service_code', serviceCode);
1378
1606
  return this.http.get(RefDataDataAccessService.refDataUrl + "/locations-by-service-code", { params: httpParams });
1379
1607
  };
@@ -1390,7 +1618,7 @@
1390
1618
  },] }
1391
1619
  ];
1392
1620
  RefDataDataAccessService.ctorParameters = function () { return [
1393
- { type: i1$2.HttpClient }
1621
+ { type: i1$1.HttpClient }
1394
1622
  ]; };
1395
1623
 
1396
1624
  var RefDataService = /** @class */ (function () {
@@ -2176,7 +2404,7 @@
2176
2404
  GenericFilterComponent.decorators = [
2177
2405
  { type: i0.Component, args: [{
2178
2406
  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",
2407
+ 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
2408
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2181
2409
  encapsulation: i0.ViewEncapsulation.None,
2182
2410
  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 +2740,7 @@
2512
2740
  SelectedCaseConfirmComponent.decorators = [
2513
2741
  { type: i0.Component, args: [{
2514
2742
  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",
2743
+ 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
2744
  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
2745
  },] }
2518
2746
  ];
@@ -2875,13 +3103,6 @@
2875
3103
  completeLink: [{ type: i0.Input }]
2876
3104
  };
2877
3105
 
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
3106
  var UserSelectComponent = /** @class */ (function () {
2886
3107
  function UserSelectComponent() {
2887
3108
  this.selected = new i0.EventEmitter();
@@ -3139,7 +3360,7 @@
3139
3360
  ShareCaseComponent.decorators = [
3140
3361
  { type: i0.Component, args: [{
3141
3362
  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",
3363
+ 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
3364
  styles: ["select{width:100%}"]
3144
3365
  },] }
3145
3366
  ];
@@ -3377,7 +3598,7 @@
3377
3598
  CookieBannerComponent.decorators = [
3378
3599
  { type: i0.Component, args: [{
3379
3600
  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"
3601
+ 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
3602
  },] }
3382
3603
  ];
3383
3604
  CookieBannerComponent.ctorParameters = function () { return [
@@ -3540,7 +3761,7 @@
3540
3761
  FindServiceComponent.decorators = [
3541
3762
  { type: i0.Component, args: [{
3542
3763
  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",
3764
+ 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
3765
  styles: ["#add-service{background-color:#ddd}"]
3545
3766
  },] }
3546
3767
  ];
@@ -3554,56 +3775,6 @@
3554
3775
  serviceFieldChanged: [{ type: i0.Output }]
3555
3776
  };
3556
3777
 
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
3778
  var LocationService = /** @class */ (function () {
3608
3779
  function LocationService(http) {
3609
3780
  this.http = http;
@@ -3637,7 +3808,7 @@
3637
3808
  },] }
3638
3809
  ];
3639
3810
  LocationService.ctorParameters = function () { return [
3640
- { type: i1$2.HttpClient }
3811
+ { type: i1$1.HttpClient }
3641
3812
  ]; };
3642
3813
 
3643
3814
  var SessionStorageService = /** @class */ (function () {
@@ -4269,7 +4440,7 @@
4269
4440
  },] }
4270
4441
  ];
4271
4442
  FindAPersonService.ctorParameters = function () { return [
4272
- { type: i1$2.HttpClient },
4443
+ { type: i1$1.HttpClient },
4273
4444
  { type: SessionStorageService }
4274
4445
  ]; };
4275
4446
 
@@ -4551,7 +4722,7 @@
4551
4722
  },] }
4552
4723
  ];
4553
4724
  TaskNameService.ctorParameters = function () { return [
4554
- { type: i1$2.HttpClient },
4725
+ { type: i1$1.HttpClient },
4555
4726
  { type: SessionStorageService }
4556
4727
  ]; };
4557
4728
 
@@ -4678,6 +4849,178 @@
4678
4849
  fnTitle: [{ type: i0.Input }]
4679
4850
  };
4680
4851
 
4852
+ var WriteAddressFieldComponent = /** @class */ (function () {
4853
+ function WriteAddressFieldComponent(addressesService) {
4854
+ this.addressesService = addressesService;
4855
+ this.internationalMode = false;
4856
+ this.submissionAttempted = false;
4857
+ this.postcodeOptionSelected = new i0.EventEmitter();
4858
+ this.internationalModeStart = new i0.EventEmitter();
4859
+ this.ukAddressOptionSelected = new i0.EventEmitter();
4860
+ this.addressField = {
4861
+ addressLine1: '',
4862
+ addressLine2: '',
4863
+ addressLine3: '',
4864
+ postCode: '',
4865
+ postTown: '',
4866
+ country: '',
4867
+ county: ''
4868
+ };
4869
+ this.optionErrorsPresent = false;
4870
+ this.addressChosen = false;
4871
+ this.missingPostcode = false;
4872
+ this.optionErrorMessage = exports.AddressMessageEnum.NO_OPTION_SELECTED;
4873
+ }
4874
+ WriteAddressFieldComponent.prototype.ngOnInit = function () {
4875
+ if (!this.formGroup.get('address')) {
4876
+ this.formGroup.addControl('address', new forms.FormControl({}));
4877
+ }
4878
+ // set the form group relevant to only the external parent component
4879
+ this.addressFormGroup = new forms.FormGroup({
4880
+ // relevant to international mode
4881
+ ukAddress: new forms.FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),
4882
+ // relevant to postocode lookup
4883
+ postcode: new forms.FormControl(''),
4884
+ addressList: new forms.FormControl('')
4885
+ });
4886
+ };
4887
+ WriteAddressFieldComponent.prototype.findAddress = function () {
4888
+ var _this = this;
4889
+ if (!this.addressFormGroup.get('postcode').value) {
4890
+ this.missingPostcode = true;
4891
+ }
4892
+ else {
4893
+ this.missingPostcode = false;
4894
+ this.addressField = null;
4895
+ var postcode_1 = this.addressFormGroup.get('postcode').value;
4896
+ this.addressOptions = [];
4897
+ this.addressesService.getAddressesForPostcode(postcode_1.replace(' ', '').toUpperCase()).subscribe(function (result) {
4898
+ result.forEach(function (address) {
4899
+ _this.addressOptions.push(new AddressOption(address, null));
4900
+ });
4901
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4902
+ }, function (error) {
4903
+ console.log("An error occurred retrieving addresses for postcode " + postcode_1 + ". " + error);
4904
+ _this.addressOptions.unshift(new AddressOption(undefined, _this.defaultLabel(_this.addressOptions.length)));
4905
+ });
4906
+ this.addressFormGroup.get('addressList').setValue(undefined);
4907
+ }
4908
+ };
4909
+ WriteAddressFieldComponent.prototype.blankAddress = function () {
4910
+ this.setFormValue();
4911
+ if (this.internationalMode) {
4912
+ this.internationalModeStart.emit();
4913
+ }
4914
+ };
4915
+ WriteAddressFieldComponent.prototype.shouldShowDetailFields = function () {
4916
+ if (!this.formGroup.get('address')) {
4917
+ return false;
4918
+ }
4919
+ var address = this.formGroup.get('address').value;
4920
+ var hasAddress = false;
4921
+ if (address) {
4922
+ Object.keys(address).forEach(function (key) {
4923
+ if (address[key] !== null) {
4924
+ hasAddress = true;
4925
+ }
4926
+ });
4927
+ }
4928
+ return hasAddress;
4929
+ };
4930
+ WriteAddressFieldComponent.prototype.addressSelected = function () {
4931
+ this.addressField = this.addressFormGroup.get('addressList').value;
4932
+ this.addressChosen = true;
4933
+ this.setFormValue();
4934
+ this.postcodeOptionSelected.emit();
4935
+ };
4936
+ WriteAddressFieldComponent.prototype.ngOnChanges = function (changes) {
4937
+ var addressChange = changes['addressField'];
4938
+ var internationalChange = changes['isInternational'];
4939
+ if (addressChange) {
4940
+ this.setFormValue();
4941
+ }
4942
+ if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {
4943
+ this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');
4944
+ }
4945
+ this.checkIfErrorsNeeded();
4946
+ };
4947
+ WriteAddressFieldComponent.prototype.checkIfErrorsNeeded = function () {
4948
+ if (this.submissionAttempted && this.shouldShowDetailFields() && this.internationalMode && !this.addressChosen) {
4949
+ // ensure errors present when submission attmempted on international radio buttons
4950
+ this.optionErrorsPresent = true;
4951
+ }
4952
+ else {
4953
+ this.optionErrorsPresent = false;
4954
+ }
4955
+ if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {
4956
+ // ensure parent errors not present when the child form group is present
4957
+ this.optionErrorsPresent = false;
4958
+ }
4959
+ };
4960
+ WriteAddressFieldComponent.prototype.setInternationalAddress = function (isInternational) {
4961
+ this.isInternational = isInternational;
4962
+ this.ukAddressOptionSelected.emit(this.isInternational);
4963
+ };
4964
+ WriteAddressFieldComponent.prototype.defaultLabel = function (numberOfAddresses) {
4965
+ return numberOfAddresses === 0 ? 'No address found'
4966
+ : "" + numberOfAddresses + (numberOfAddresses === 1 ? ' address ' : ' addresses ') + "found";
4967
+ };
4968
+ WriteAddressFieldComponent.prototype.setFormValue = function () {
4969
+ if (this.formGroup) {
4970
+ this.formGroup.get('address').patchValue(this.addressField);
4971
+ }
4972
+ };
4973
+ return WriteAddressFieldComponent;
4974
+ }());
4975
+ WriteAddressFieldComponent.decorators = [
4976
+ { type: i0.Component, args: [{
4977
+ selector: 'xuilib-write-address-field',
4978
+ 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=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\">\n <div class=\"govuk-form-group postcodeLookup\" id=\"addressLookup\"\n [ngClass]=\"{'form-group-error': missingPostcode}\">\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 <span class=\"error-message\" *ngIf=\"missingPostcode\">Enter the Postcode</span>\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\n <div class=\"govuk-form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n\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\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>",
4979
+ styles: [".manual-link{cursor:pointer;text-decoration:underline}.manual-link,:host{display:block}"]
4980
+ },] }
4981
+ ];
4982
+ WriteAddressFieldComponent.ctorParameters = function () { return [
4983
+ { type: AddressService }
4984
+ ]; };
4985
+ WriteAddressFieldComponent.propDecorators = {
4986
+ formGroup: [{ type: i0.Input }],
4987
+ internationalMode: [{ type: i0.Input }],
4988
+ isInternational: [{ type: i0.Input }],
4989
+ submissionAttempted: [{ type: i0.Input }],
4990
+ startedInternational: [{ type: i0.Input }],
4991
+ postcodeOptionSelected: [{ type: i0.Output }],
4992
+ internationalModeStart: [{ type: i0.Output }],
4993
+ ukAddressOptionSelected: [{ type: i0.Output }]
4994
+ };
4995
+
4996
+ var WriteAddressInputsComponent = /** @class */ (function () {
4997
+ function WriteAddressInputsComponent() {
4998
+ this.MESSAGE_ENUM = exports.AddressMessageEnum;
4999
+ this.isInternational = false;
5000
+ this.submissionAttempted = false;
5001
+ this.missingPostcode = false;
5002
+ this.errorsPresent = false;
5003
+ }
5004
+ WriteAddressInputsComponent.prototype.ngOnChanges = function () {
5005
+ var addressGroup = this.formGroup.get('address');
5006
+ // if there is an issue with the formgroup, ensure error styling is displayed
5007
+ this.errorsPresent = !addressGroup.valid;
5008
+ };
5009
+ return WriteAddressInputsComponent;
5010
+ }());
5011
+ WriteAddressInputsComponent.decorators = [
5012
+ { type: i0.Component, args: [{
5013
+ selector: 'xuilib-write-address-inputs',
5014
+ 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>"
5015
+ },] }
5016
+ ];
5017
+ WriteAddressInputsComponent.ctorParameters = function () { return []; };
5018
+ WriteAddressInputsComponent.propDecorators = {
5019
+ formGroup: [{ type: i0.Input }],
5020
+ isInternational: [{ type: i0.Input }],
5021
+ submissionAttempted: [{ type: i0.Input }]
5022
+ };
5023
+
4681
5024
  var FeatureToggleDirective = /** @class */ (function () {
4682
5025
  function FeatureToggleDirective(service, viewContainer, templateRef) {
4683
5026
  this.service = service;
@@ -5340,7 +5683,7 @@
5340
5683
  HmctsIdentityBarComponent.decorators = [
5341
5684
  { type: i0.Component, args: [{
5342
5685
  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",
5686
+ 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
5687
  styles: [""]
5345
5688
  },] }
5346
5689
  ];
@@ -5545,7 +5888,9 @@
5545
5888
  FindServiceComponent,
5546
5889
  SearchServiceComponent,
5547
5890
  SearchVenueComponent,
5548
- PaginationComponent
5891
+ PaginationComponent,
5892
+ WriteAddressFieldComponent,
5893
+ WriteAddressInputsComponent
5549
5894
  ];
5550
5895
  var GOV_UI_COMPONENTS = [
5551
5896
  HmctsIdentityBarComponent,
@@ -5682,6 +6027,9 @@
5682
6027
  */
5683
6028
 
5684
6029
  exports.AccessibilityComponent = AccessibilityComponent;
6030
+ exports.AddressModel = AddressModel;
6031
+ exports.AddressOption = AddressOption;
6032
+ exports.AddressService = AddressService;
5685
6033
  exports.AnonymousFeatureUser = AnonymousFeatureUser;
5686
6034
  exports.COMMON_COMPONENTS = COMMON_COMPONENTS;
5687
6035
  exports.CapitalizePipe = CapitalizePipe;
@@ -5765,6 +6113,8 @@
5765
6113
  exports.UserDetailsComponent = UserDetailsComponent;
5766
6114
  exports.UserListComponent = UserListComponent;
5767
6115
  exports.UserSelectComponent = UserSelectComponent;
6116
+ exports.WriteAddressFieldComponent = WriteAddressFieldComponent;
6117
+ exports.WriteAddressInputsComponent = WriteAddressInputsComponent;
5768
6118
  exports.checkboxesBeCheckedValidator = checkboxesBeCheckedValidator;
5769
6119
  exports.dateValidator = dateValidator;
5770
6120
  exports.radioGroupValidator = radioGroupValidator;
@@ -5794,30 +6144,33 @@
5794
6144
  exports["ɵbs"] = SearchServiceComponent;
5795
6145
  exports["ɵbt"] = SearchVenueComponent;
5796
6146
  exports["ɵbu"] = PaginationComponent;
5797
- exports["ɵbv"] = HmctsIdentityBarComponent;
5798
- exports["ɵbw"] = HmctsPaginationComponent;
5799
- exports["ɵbx"] = HmctsSubNavigationComponent;
5800
- exports["ɵby"] = HmctsPrimaryNavigationComponent;
5801
- exports["ɵbz"] = HmctsErrorSummaryComponent;
6147
+ exports["ɵbv"] = WriteAddressFieldComponent;
6148
+ exports["ɵbw"] = AddressService;
6149
+ exports["ɵbx"] = WriteAddressInputsComponent;
6150
+ exports["ɵby"] = HmctsIdentityBarComponent;
6151
+ exports["ɵbz"] = HmctsPaginationComponent;
5802
6152
  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;
6153
+ exports["ɵca"] = HmctsSubNavigationComponent;
6154
+ exports["ɵcb"] = HmctsPrimaryNavigationComponent;
6155
+ exports["ɵcc"] = HmctsErrorSummaryComponent;
6156
+ exports["ɵcd"] = HmctsMainWrapperComponent;
6157
+ exports["ɵce"] = HmctsBannerComponent;
6158
+ exports["ɵcf"] = GovukTableComponent;
6159
+ exports["ɵcg"] = GovUkInputComponent;
6160
+ exports["ɵch"] = GovUkCheckboxComponent;
6161
+ exports["ɵci"] = GovUkFormGroupWrapperComponent;
6162
+ exports["ɵcj"] = GovUkLabelComponent;
6163
+ exports["ɵck"] = GovUkErrorMessageComponent;
6164
+ exports["ɵcl"] = GovUkFieldsetComponent;
6165
+ exports["ɵcm"] = GovUkDateComponent;
6166
+ exports["ɵcn"] = GovUkCheckboxesComponent;
6167
+ exports["ɵco"] = GovUkRadioComponent;
6168
+ exports["ɵcp"] = GovUkRadiosComponent;
6169
+ exports["ɵcq"] = GovUkSelectComponent;
6170
+ exports["ɵcr"] = GovUkTextareaComponent;
6171
+ exports["ɵcs"] = GovUkFileUploadComponent;
6172
+ exports["ɵct"] = RemoveHostDirective;
6173
+ exports["ɵcu"] = CapitalizePipe;
5821
6174
  exports["ɵd"] = TcDisplayPlainComponent;
5822
6175
  exports["ɵe"] = TcConfirmComponent;
5823
6176
  exports["ɵf"] = ContactDetailsComponent;