@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.
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +155 -92
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/components/find-service/find-service.component.js +7 -3
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +70 -28
- package/esm2015/lib/components/search-service/search-service.component.js +12 -5
- package/esm2015/lib/models/filter.model.js +1 -1
- package/fesm2015/hmcts-rpx-xui-common-lib.js +119 -67
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/find-service/find-service.component.d.ts +3 -0
- package/lib/components/generic-filter/generic-filter.component.d.ts +2 -1
- package/lib/components/search-service/search-service.component.d.ts +2 -1
- package/lib/models/filter.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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.
|
|
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
|
|
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 (
|
|
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 (
|
|
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 (
|
|
1036
|
-
if (
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
|
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 (
|
|
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 (
|
|
1311
|
+
finally { if (e_6) throw e_6.error; }
|
|
1290
1312
|
}
|
|
1291
1313
|
};
|
|
1292
1314
|
GenericFilterComponent.prototype.buildCheckBoxFormArray = function (field, settings) {
|
|
1293
|
-
var
|
|
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 (
|
|
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 (
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
1401
|
+
errors.push({ name: fieldName, error: field.maxSelectedError });
|
|
1376
1402
|
}
|
|
1377
1403
|
}
|
|
1378
1404
|
}
|
|
1379
|
-
catch (
|
|
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 (
|
|
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.
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
var
|
|
1459
|
-
|
|
1460
|
-
if (_this.
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
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
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
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
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
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
|