@hmcts/rpx-xui-common-lib 1.8.10-generic-filter-readonly-changes → 1.8.10-generic-filter-readonly-changes-3

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.
@@ -856,6 +856,9 @@
856
856
  _this.form.get('user-services').push(new forms.FormControl({ key: 'All', label: 'All' }));
857
857
  }
858
858
  };
859
+ this.searchTermServiceForm = this.fb.group({
860
+ searchTerm: ['']
861
+ });
859
862
  }
860
863
  Object.defineProperty(GenericFilterComponent.prototype, "config", {
861
864
  get: function () {
@@ -909,7 +912,9 @@
909
912
  var services = this.config.fields.find(function (field) { return field.name === 'user-services'; });
910
913
  if (services) {
911
914
  this.startFilterSkillsByServices(this.form, services);
912
- this.initValuesFromCacheForSkillsByServices();
915
+ if (!this._config.copyFields) {
916
+ this.initValuesFromCacheForSkillsByServices();
917
+ }
913
918
  }
914
919
  };
915
920
  GenericFilterComponent.prototype.ngOnDestroy = function () {
@@ -986,6 +991,7 @@
986
991
  return field.disable ? field.disable : null;
987
992
  };
988
993
  GenericFilterComponent.prototype.applyFilter = function (form) {
994
+ var e_1, _a;
989
995
  this.submitted = true;
990
996
  form.markAsTouched();
991
997
  if (form.valid) {
@@ -1001,13 +1007,29 @@
1001
1007
  else {
1002
1008
  this.emitFormErrors(form);
1003
1009
  }
1010
+ try {
1011
+ for (var _b = __values(this.config.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
1012
+ var field = _c.value;
1013
+ var fieldName = field.name;
1014
+ if (fieldName === 'user-services') {
1015
+ this.searchTermServiceForm.reset();
1016
+ }
1017
+ }
1018
+ }
1019
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
1020
+ finally {
1021
+ try {
1022
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1023
+ }
1024
+ finally { if (e_1) throw e_1.error; }
1025
+ }
1004
1026
  if (this._config.applyButtonCallback) {
1005
1027
  this._config.applyButtonCallback();
1006
1028
  }
1007
1029
  };
1008
1030
  // when domain changes ensure that person field is reset
1009
1031
  GenericFilterComponent.prototype.fieldChanged = function (field, form) {
1010
- var e_1, _a;
1032
+ var e_2, _a;
1011
1033
  // TODO - Do similar with jurisdiction/service for caseworkers by services
1012
1034
  if (field.changeResetFields && field.changeResetFields.length) {
1013
1035
  try {
@@ -1016,12 +1038,12 @@
1016
1038
  this.resetField(resetField, form);
1017
1039
  }
1018
1040
  }
1019
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
1041
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
1020
1042
  finally {
1021
1043
  try {
1022
1044
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1023
1045
  }
1024
- finally { if (e_1) throw e_1.error; }
1046
+ finally { if (e_2) throw e_2.error; }
1025
1047
  }
1026
1048
  }
1027
1049
  };
@@ -1032,8 +1054,8 @@
1032
1054
  this.form.get(name).patchValue(value);
1033
1055
  }
1034
1056
  };
1035
- GenericFilterComponent.prototype.inputServiceChanged = function (e, field) {
1036
- if (e === undefined) {
1057
+ GenericFilterComponent.prototype.inputServiceChanged = function (selectedNotAddedService, field) {
1058
+ if (selectedNotAddedService === undefined) {
1037
1059
  this.addAllOption(field);
1038
1060
  }
1039
1061
  else {
@@ -1058,7 +1080,7 @@
1058
1080
  }
1059
1081
  };
1060
1082
  GenericFilterComponent.prototype.updatePersonControls = function (values, field) {
1061
- var e_2, _a;
1083
+ var e_3, _a;
1062
1084
  var keys;
1063
1085
  if (!values) {
1064
1086
  keys = Object.keys(this.form.get(field.name).value);
@@ -1075,12 +1097,12 @@
1075
1097
  }
1076
1098
  }
1077
1099
  }
1078
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
1100
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
1079
1101
  finally {
1080
1102
  try {
1081
1103
  if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
1082
1104
  }
1083
- finally { if (e_2) throw e_2.error; }
1105
+ finally { if (e_3) throw e_3.error; }
1084
1106
  }
1085
1107
  };
1086
1108
  GenericFilterComponent.prototype.checkBoxChecked = function (field, i) {
@@ -1090,7 +1112,7 @@
1090
1112
  this.form.get(field.name).patchValue(values);
1091
1113
  };
1092
1114
  GenericFilterComponent.prototype.toggleSelectAll = function (event, form, item, field) {
1093
- var e_3, _a;
1115
+ var e_4, _a;
1094
1116
  var isChecked = event.target.checked;
1095
1117
  var formArray = form.get(field.name);
1096
1118
  if (!item.selectAll) {
@@ -1135,12 +1157,12 @@
1135
1157
  this.resetField(resetField, form);
1136
1158
  }
1137
1159
  }
1138
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
1160
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
1139
1161
  finally {
1140
1162
  try {
1141
1163
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1142
1164
  }
1143
- finally { if (e_3) throw e_3.error; }
1165
+ finally { if (e_4) throw e_4.error; }
1144
1166
  }
1145
1167
  }
1146
1168
  if (field.name === 'user-services') {
@@ -1172,7 +1194,7 @@
1172
1194
  this.filterSkillsByServices(servicesArray, this.config);
1173
1195
  };
1174
1196
  GenericFilterComponent.prototype.resetField = function (resetField, form) {
1175
- var e_4, _a;
1197
+ var e_5, _a;
1176
1198
  var control = form.get(resetField);
1177
1199
  var defaultValue = this.config.cancelSetting.fields.find(function (f) { return f.name === resetField; });
1178
1200
  if (control instanceof forms.FormArray) {
@@ -1188,12 +1210,12 @@
1188
1210
  this.resetField(key, control);
1189
1211
  }
1190
1212
  }
1191
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
1213
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
1192
1214
  finally {
1193
1215
  try {
1194
1216
  if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2);
1195
1217
  }
1196
- finally { if (e_4) throw e_4.error; }
1218
+ finally { if (e_5) throw e_5.error; }
1197
1219
  }
1198
1220
  }
1199
1221
  else if (control instanceof forms.FormControl) {
@@ -1216,7 +1238,7 @@
1216
1238
  this._settings = this.filterService.get(this.config.id);
1217
1239
  };
1218
1240
  GenericFilterComponent.prototype.buildForm = function (config, settings, reset) {
1219
- var e_5, _a;
1241
+ var e_6, _a;
1220
1242
  var findPersonControl = this.form ? this.form.get('findPersonControl') : null;
1221
1243
  this.form = this.fb.group({});
1222
1244
  if (findPersonControl) {
@@ -1281,16 +1303,16 @@
1281
1303
  _loop_1(field);
1282
1304
  }
1283
1305
  }
1284
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
1306
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
1285
1307
  finally {
1286
1308
  try {
1287
1309
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1288
1310
  }
1289
- finally { if (e_5) throw e_5.error; }
1311
+ finally { if (e_6) throw e_6.error; }
1290
1312
  }
1291
1313
  };
1292
1314
  GenericFilterComponent.prototype.buildCheckBoxFormArray = function (field, settings) {
1293
- var e_6, _a;
1315
+ var e_7, _a;
1294
1316
  var validators = GenericFilterComponent.addFormValidators(field);
1295
1317
  var formArray = this.fb.array([], validators);
1296
1318
  var defaultValues;
@@ -1310,17 +1332,17 @@
1310
1332
  _loop_2(option);
1311
1333
  }
1312
1334
  }
1313
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
1335
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
1314
1336
  finally {
1315
1337
  try {
1316
1338
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1317
1339
  }
1318
- finally { if (e_6) throw e_6.error; }
1340
+ finally { if (e_7) throw e_7.error; }
1319
1341
  }
1320
1342
  return formArray;
1321
1343
  };
1322
1344
  GenericFilterComponent.prototype.buildFormArray = function (field, settings) {
1323
- var e_7, _a;
1345
+ var e_8, _a;
1324
1346
  var validators = GenericFilterComponent.addFormValidators(field);
1325
1347
  var formArray = this.fb.array([], validators);
1326
1348
  var defaultValues;
@@ -1333,12 +1355,12 @@
1333
1355
  formArray.push(new forms.FormControl(defaultValue));
1334
1356
  }
1335
1357
  }
1336
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
1358
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
1337
1359
  finally {
1338
1360
  try {
1339
1361
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1340
1362
  }
1341
- finally { if (e_7) throw e_7.error; }
1363
+ finally { if (e_8) throw e_8.error; }
1342
1364
  }
1343
1365
  }
1344
1366
  }
@@ -1362,26 +1384,30 @@
1362
1384
  });
1363
1385
  };
1364
1386
  GenericFilterComponent.prototype.emitFormErrors = function (form) {
1365
- var e_8, _a;
1387
+ var e_9, _a;
1366
1388
  var errors = [];
1367
1389
  try {
1368
1390
  for (var _b = __values(this.config.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
1369
1391
  var field = _c.value;
1370
- var formGroup = form.get(field.name);
1392
+ var fieldName = field.name;
1393
+ var formGroup = form.get(fieldName);
1371
1394
  if (formGroup && formGroup.errors && (formGroup.errors.minlength || formGroup.errors.required)) {
1372
- errors.push({ name: field.name, error: field.minSelectedError });
1395
+ errors.push({ name: fieldName, error: field.minSelectedError });
1396
+ if (fieldName === 'user-services') {
1397
+ this.searchTermServiceForm.reset();
1398
+ }
1373
1399
  }
1374
1400
  if (formGroup && formGroup.errors && formGroup.errors.maxlength) {
1375
- errors.push({ name: field.name, error: field.maxSelectedError });
1401
+ errors.push({ name: fieldName, error: field.maxSelectedError });
1376
1402
  }
1377
1403
  }
1378
1404
  }
1379
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
1405
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
1380
1406
  finally {
1381
1407
  try {
1382
1408
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1383
1409
  }
1384
- finally { if (e_8) throw e_8.error; }
1410
+ finally { if (e_9) throw e_9.error; }
1385
1411
  }
1386
1412
  // remove duplicates
1387
1413
  errors = errors.filter(function (filterError, i, arr) {
@@ -1451,29 +1477,56 @@
1451
1477
  userSkillsCheckboxField.options = [];
1452
1478
  userSkillsCheckboxField.options = this.filteredSkillsByServicesCheckbox;
1453
1479
  this.form.setControl('user-skills', new forms.FormArray([]));
1454
- this.filteredSkillsByServicesCheckbox.forEach(function () {
1455
- _this.form.get('user-skills').push(new forms.FormControl(false));
1456
- });
1457
- var prevValues = this.filteredSkillsByServicesCheckbox.map(function (skill) {
1458
- var selected = false;
1459
- if (_this.settings && _this.settings.fields) {
1460
- if (_this.previousSelectedNestedCheckbox.length > 0) {
1461
- selected = _this.previousSelectedNestedCheckbox.includes(skill.key);
1462
- }
1463
- var isSelectedUserSkill = void 0;
1464
- var selectedUserSkills = _this.settings.fields.find(function (setting) { return setting.name === 'user-skills'; });
1465
- if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {
1466
- isSelectedUserSkill = selectedUserSkills.value.findIndex(function (val) { return Number(val) === Number(skill.key); });
1467
- selected = isSelectedUserSkill !== -1;
1480
+ if (!this._config.copyFields) {
1481
+ this.filteredSkillsByServicesCheckbox.forEach(function () {
1482
+ _this.form.get('user-skills').push(new forms.FormControl(false));
1483
+ });
1484
+ var prevValues = this.filteredSkillsByServicesCheckbox.map(function (skill) {
1485
+ var selected = false;
1486
+ if (_this.settings && _this.settings.fields) {
1487
+ if (_this.previousSelectedNestedCheckbox.length > 0) {
1488
+ selected = _this.previousSelectedNestedCheckbox.includes(skill.key);
1489
+ }
1490
+ var isSelectedUserSkill = void 0;
1491
+ var selectedUserSkills = _this.settings.fields.find(function (setting) { return setting.name === 'user-skills'; });
1492
+ if (selectedUserSkills && selectedUserSkills.value && selectedUserSkills.value.length > 0) {
1493
+ isSelectedUserSkill = selectedUserSkills.value.findIndex(function (val) { return Number(val) === Number(skill.key); });
1494
+ selected = isSelectedUserSkill !== -1;
1495
+ }
1496
+ if (_this.previousSelectedNestedCheckbox.length > 0) {
1497
+ // Pick up from previous selected
1498
+ selected = _this.previousSelectedNestedCheckbox.includes(String(skill.key));
1499
+ }
1468
1500
  }
1469
- if (_this.previousSelectedNestedCheckbox.length > 0) {
1470
- // Pick up from previous selected
1471
- selected = _this.previousSelectedNestedCheckbox.includes(String(skill.key));
1501
+ return selected;
1502
+ });
1503
+ this.form.get('user-skills').setValue(prevValues);
1504
+ }
1505
+ else {
1506
+ var preSelectedSkills_1 = [];
1507
+ this.filteredSkillsByServicesCheckbox.map(function (skillsByServices, index) {
1508
+ for (var i = 0; i < _this._config.preSelectedNestedCheckbox.length; i++) {
1509
+ var skillCopyValue = _this._config.preSelectedNestedCheckbox[i];
1510
+ if (skillCopyValue.toString() === skillsByServices.key.toString()) {
1511
+ preSelectedSkills_1[index] = true;
1512
+ break;
1513
+ }
1514
+ else {
1515
+ preSelectedSkills_1[index] = false;
1516
+ }
1472
1517
  }
1518
+ });
1519
+ if (preSelectedSkills_1.length > 0) {
1520
+ preSelectedSkills_1.forEach(function (h) {
1521
+ _this.form.get('user-skills').push(new forms.FormControl(h));
1522
+ });
1473
1523
  }
1474
- return selected;
1475
- });
1476
- this.form.get('user-skills').setValue(prevValues);
1524
+ else {
1525
+ this.filteredSkillsByServicesCheckbox.map(function () {
1526
+ _this.form.get('user-skills').push(new forms.FormControl(false));
1527
+ });
1528
+ }
1529
+ }
1477
1530
  return this.filteredSkillsByServicesCheckbox;
1478
1531
  }
1479
1532
  }
@@ -1513,7 +1566,7 @@
1513
1566
  GenericFilterComponent.decorators = [
1514
1567
  { type: i0.Component, args: [{
1515
1568
  selector: 'xuilib-generic-filter',
1516
- 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?.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 <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\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:</span> {{field.maxSelectedError}}\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:</span> {{field.emailError}}\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=\"'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}}</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}}</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 [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\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.taskName\"\n [userIncluded]=\"false\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged($event, field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [selectedServices]=\"form.get(field.name)?.value\"\n [services]=\"field.options\"\n [field]=\"field\">\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'}}</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'}}</button>\n </div>\n </div>\n</form>\n",
1569
+ 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?.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 <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\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:</span> {{field.maxSelectedError}}\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:</span> {{field.emailError}}\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=\"'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}}</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}}</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 [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\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.taskName\"\n [userIncluded]=\"false\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged($event, field)\"\n [form]=\"form\"\n [searchTermServiceForm]=\"searchTermServiceForm\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [selectedServices]=\"form.get(field.name)?.value\"\n [services]=\"field.options\"\n [field]=\"field\">\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'}}</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'}}</button>\n </div>\n </div>\n</form>\n",
1517
1570
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1518
1571
  encapsulation: i0.ViewEncapsulation.None,
1519
1572
  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%}"]
@@ -3876,6 +3929,53 @@
3876
3929
  xuilibLet: [{ type: i0.Input }]
3877
3930
  };
3878
3931
 
3932
+ var SearchServiceComponent = /** @class */ (function () {
3933
+ function SearchServiceComponent(fb) {
3934
+ this.fb = fb;
3935
+ this.showAutocomplete = false;
3936
+ this.serviceChanged = new i0.EventEmitter();
3937
+ this.minSearchCharacters = 3;
3938
+ this.term = '';
3939
+ this.form = this.fb.group({
3940
+ searchTerm: ['']
3941
+ });
3942
+ }
3943
+ SearchServiceComponent.prototype.onInput = function () {
3944
+ // Todo
3945
+ };
3946
+ SearchServiceComponent.prototype.resetSearchTerm = function () {
3947
+ this.form.controls.searchTerm.patchValue('', { emitEvent: false, onlySelf: true });
3948
+ };
3949
+ SearchServiceComponent.prototype.onSelectionChanged = function ($event) {
3950
+ var _a;
3951
+ var label = (_a = $event.source) === null || _a === void 0 ? void 0 : _a.value;
3952
+ if (label && $event.source.selected) {
3953
+ var selectedService = this.services.find(function (s) { return s.label === label; });
3954
+ this.serviceChanged.emit(selectedService);
3955
+ }
3956
+ };
3957
+ return SearchServiceComponent;
3958
+ }());
3959
+ SearchServiceComponent.decorators = [
3960
+ { type: i0.Component, args: [{
3961
+ selector: 'exui-search-service',
3962
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChanged($event)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
3963
+ styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
3964
+ },] }
3965
+ ];
3966
+ SearchServiceComponent.ctorParameters = function () { return [
3967
+ { type: forms.FormBuilder }
3968
+ ]; };
3969
+ SearchServiceComponent.propDecorators = {
3970
+ services: [{ type: i0.Input }],
3971
+ selectedServices: [{ type: i0.Input }],
3972
+ disabled: [{ type: i0.Input }],
3973
+ delay: [{ type: i0.Input }],
3974
+ form: [{ type: i0.Input }],
3975
+ showAutocomplete: [{ type: i0.Input }],
3976
+ serviceChanged: [{ type: i0.Output }]
3977
+ };
3978
+
3879
3979
  var FindServiceComponent = /** @class */ (function () {
3880
3980
  function FindServiceComponent() {
3881
3981
  this.services = [];
@@ -3926,6 +4026,7 @@
3926
4026
  }
3927
4027
  this.tempSelectedService = null;
3928
4028
  this.serviceFieldChanged.emit(this.tempSelectedService);
4029
+ this.searchServiceComponent.resetSearchTerm();
3929
4030
  };
3930
4031
  FindServiceComponent.prototype.removeService = function (service) {
3931
4032
  if (service.key) {
@@ -3996,7 +4097,7 @@
3996
4097
  FindServiceComponent.decorators = [
3997
4098
  { type: i0.Component, args: [{
3998
4099
  selector: 'xuilib-find-service',
3999
- 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}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [services]=\"services\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n (serviceChanged)=\"onServiceSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\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 *ngIf=\"selection.key!=='All'\" class=\"hmcts-filter__tag\" (click)=\"removeService(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n",
4100
+ 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}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [services]=\"services\"\n [form]=\"searchTermServiceForm\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n (serviceChanged)=\"onServiceSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\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 *ngIf=\"selection.key!=='All'\" class=\"hmcts-filter__tag\" (click)=\"removeService(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n",
4000
4101
  styles: ["#add-service{background-color:#ddd}"]
4001
4102
  },] }
4002
4103
  ];
@@ -4005,11 +4106,13 @@
4005
4106
  fields: [{ type: i0.Input }],
4006
4107
  serviceTitle: [{ type: i0.Input }],
4007
4108
  form: [{ type: i0.Input }],
4109
+ searchTermServiceForm: [{ type: i0.Input }],
4008
4110
  services: [{ type: i0.Input }],
4009
4111
  selectedServices: [{ type: i0.Input }],
4010
4112
  enableAddServiceButton: [{ type: i0.Input }],
4011
4113
  disabled: [{ type: i0.Input }],
4012
4114
  disableInputField: [{ type: i0.Input }],
4115
+ searchServiceComponent: [{ type: i0.ViewChild, args: [SearchServiceComponent, { static: true },] }],
4013
4116
  serviceFieldChanged: [{ type: i0.Output }]
4014
4117
  };
4015
4118
 
@@ -4140,46 +4243,6 @@
4140
4243
  disabled: [{ type: i0.Input }]
4141
4244
  };
4142
4245
 
4143
- var SearchServiceComponent = /** @class */ (function () {
4144
- function SearchServiceComponent(fb) {
4145
- this.fb = fb;
4146
- this.showAutocomplete = false;
4147
- this.serviceChanged = new i0.EventEmitter();
4148
- this.minSearchCharacters = 3;
4149
- this.term = '';
4150
- this.form = this.fb.group({
4151
- searchTerm: ['']
4152
- });
4153
- }
4154
- SearchServiceComponent.prototype.onInput = function () {
4155
- // Todo
4156
- };
4157
- SearchServiceComponent.prototype.onSelectionChanged = function (label) {
4158
- var selectedService = this.services.find(function (s) { return s.label === label; });
4159
- this.serviceChanged.emit(selectedService);
4160
- };
4161
- return SearchServiceComponent;
4162
- }());
4163
- SearchServiceComponent.decorators = [
4164
- { type: i0.Component, args: [{
4165
- selector: 'exui-search-service',
4166
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChanged($event.source.value)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
4167
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
4168
- },] }
4169
- ];
4170
- SearchServiceComponent.ctorParameters = function () { return [
4171
- { type: forms.FormBuilder }
4172
- ]; };
4173
- SearchServiceComponent.propDecorators = {
4174
- services: [{ type: i0.Input }],
4175
- selectedServices: [{ type: i0.Input }],
4176
- disabled: [{ type: i0.Input }],
4177
- delay: [{ type: i0.Input }],
4178
- form: [{ type: i0.Input }],
4179
- showAutocomplete: [{ type: i0.Input }],
4180
- serviceChanged: [{ type: i0.Output }]
4181
- };
4182
-
4183
4246
  /*
4184
4247
  * Gov Uk Checkbox Dumb Component responsible for
4185
4248
  * displaying checkbox input and hint